当前位置:   article > 正文

CTF---密码学(1)--古典密码-理论与实战详解_ctf古典密码1

ctf古典密码1

密码学的三个发展阶段:

密码学的首要目的是隐藏信息的涵义,而并不是隐藏信息的存在,这是密码学与隐写术的一个重要区别。
密码学的发展大概经历了三个阶段:

古典密码阶段(1949年以前):

早期的数据加密技术比较简单,复杂程度不高,安全性较低,大部分都是一些具有艺术特征的字谜。随着工业革命的到来和二次世界大战的爆发,数据加密技术有了突破性的发展。出现了一些比较复杂的加密算法以及机械的加密设备。

近代密码阶段 (1949-1975年):

 在这期间由于计算机的诞生,使得加密技术从机械时代提升到了电子时代。这使得复杂计算的加密技术成为可能,也使得加密算法在复杂程度和安全性上得到了很大的提高。

     现代密码阶段(1976年至今):

美国密码学专家Diffie和Hellman在1976年提出公开密钥密码体制的概念,这是现代密码学的重大发明,也为密码学提供了全新的方向。
总的来说,密码学一般分为古典密码学和现代密码学:
古代密码学没有清晰的定义,依赖于密码创作者的想象力。通常包括单表替换加密,多表替换加密和其他的加密方法。
现代密码学起源于20世纪中后期。主要包含:对称加密(DES,AES,RC4);非对称加密(RSA,ElGamal,椭圆曲线加密);哈希函数(MD5,SHA-1,SHA-512);数字签名(RSA签名,ElGamal签名,DSA签名)

密码设计的根本目标:

  • 机密性:确保数据在传输或存储的过程中不被窃取
  • 完整性:确保数据在传输或存储的过程中不被篡改或损坏
  • 可用性:确保数据在需要的时候可以被合法的用户访问或使用
  • 认证性:确保数据的来源和真实性
  • 不可否认性:确保发送者无法否认其发送的数据,可以证明数据的来源和真实性
其中,前三者被称为信息安全的CIA三要素

常见的利用密码学的攻击方法:

  • 唯密文攻击:指在仅知道已加密数据(即密文)的情况下攻击
  • 已知明文攻击:指在掌握了某段明文和对应密文的情况下攻击
  • 选择明文攻击:指攻击者除了知道加密算法外,还可以选定明文消息从而得到加密后的密文。
  • 选择密文攻击:指攻击者可以选择密文进行解密。
  1. 唯密文攻击在攻击对称密码体制和非对称密码体制时都适用;
  2. 已知明文攻击多用于攻击对称密码体制;
  3. 选择明文攻击和选择密文攻击多用于攻击非对称密码体制;

一、古典密码:

一.1 古典密码---摩斯密码:

摩斯密码(Morse code)是一种用于传输信息的编码系统,通过使用短脉冲(点)和长脉冲(划)的组合来表示字母、数字和标点符号。摩斯密码最初被用于电报通信,但至今仍在某些情况下使用,如无线电通信、求救信号等。
摩斯密码使用了两个基本的信号单位:点(·)和划(—)。通过这两个单位的组合,可以表达不同的字母、数字和标点符号。

摩斯密码基本码表:

如下是摩斯密码的基本码表
字母(注意都是大写字母!):

 通过字母码表可以发现,国际通用的求救信号SOS对应的摩斯密码为"...---..."

数字: 

 标点符号:

 非英文字符:

特殊符号:

 摩斯密码实战演练:

这里使用"攻防世界"中的题目:攻防世界官网icon-default.png?t=N7T8https://adworld.xctf.org.cn/

 注册并登陆后搜索Morse即可找到:

 再点击下载附件:

 附件打开后发现是由长度不等的1和0组成,这里需要把1和0转换为摩斯密码中对应的划和点:

  1. 11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110
  2. -- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.

 得到了对应的摩斯码后就可以通过查询摩斯密码的基本码表来进行解密了,但是这里一个一个的查过于麻烦,一方为大家推荐一个解密网站(这个网站也可以直接解密01组合的内容,不需要再转换为点划组合):

摩斯密码在线解密icon-default.png?t=N7T8https://www.lddgo.net/encrypt/morse

 

 得到对应的明文后,还需要应题目要求将大写字母转换为小写,最终得到flag:

  1. 11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110
  2. -- --- .-. ... . -.-. --- -.. . .. ... ... --- .. -. - . .-. . ... - .. -. --.
  3. MORSECODEISSOINTERESTING
  4. morsecodeissointeresting
  5. syberpeace{morsecodeissointeresting}

一.2 古典密码---换位密码

一.2.1 换位密码---栅栏密码

栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合...每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文

算法一:

明文: The quick brown fox jumps over the lazy dog

去空格: Thequickbrownfoxjumpsoverthelazydog

分组(两个一组): Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g

第一组: Teucbonojmsvrhlzdg

第二组: hqikrwfxupoeteayo

密文: Teucbonojmsvrhlzdghqikrwfxupoeteayo

这段密文的对应解密方式就是先将整段密文分为两组:

  1. Teucbonojmsvrhlzdg
  2. hqikrwfxupoeteayo

 然后再对分出的第一组中插入空格,最后依次用第二组中的字符替换第一组中的空格:

  1. Teucbonojmsvrhlzdghqikrwfxupoeteayo
  2. 对密文进行分组:
  3. Teucbonojmsvrhlzdg
  4. hqikrwfxupoeteayo
  5. 各组依次穿插:
  6. T e u c b o n o j m s v r h l z d g
  7. h q i k r w f x u p o e t e a y o
  8. 得到明文:
  9. Thequickbrownfoxjumpsoverthelazydog
算法二:

已知密文为:hrelldlioswmoe

该密文的处理方式:

 对应的明文就是:hello world is me 

那么这段明文的加密方式就是先将整段明文分为两组,再将第二组依次插入第一组的两个字符之间:

  1. 先对明文分组:
  2. hellowo
  3. rldisme
  4. 各组依次穿插:
  5. h e l l o w o
  6. r l d i s m e
  7. 得到密文:
  8. hrelldlioswmoe
 两种算法的比较与总结:
  1. 假如有十位同学,他们的编号以及原始顺序为abcdefghij(明文)
  2. 那么第一种算法的加密方式为:
  3. 将十位同学分为两人一组:ab cd ef gh ig一共分为5
  4. 再将每组的第一位同学放在一起,第二位同学放在一起:
  5. acegi bdfhg
  6. 最终得到密文:acegibdfhg
  7. 第二种算法的加密方式为:
  8. 10位同学分为两组:
  9. abcde
  10. fghij
  11. 再将第二组的同学依次插入第一组之间:
  12. a b c d e
  13. f g h i j
  14. 最终得到密文:afbgchdiej
  15. 可以看到算法一的解密方式就是算法二的加密方式,反之亦然

一.2.2 换位密码---凯撒密码 

将明文中的每个字母都按照其在字母表中的顺序向后(或向前)移动固定数目(循环移动)作为密文
  1. 例如将abcde按照向后移3位的方式进行加密:
  2. >>>abcde
  3. abcdefghik
  4. 最终得出:
  5. abcde>>>defgh
  1. iodj{khoor zrug} 位移三位
  2. abcdefghijklmnopqrstuvwxyz
  3. flag{hello word}

一.2.3 换位密码---曲路密码

曲路密码需要事先约定“曲路路径”也就是密钥:

例如,假如有一个明文:flag{my-name-is-luoyifang#!}(共27个字符),要求加密方式为行或列为3:

如果是3行,那么就需要一个3行9列的表格:

flag{my-n
ame-is-lu
oyfang}#!

对应的密文就是!un-l#}-ymsgni{g--afealmyoaf 

如果是3列,那么就需要一个9行3列的表格:

fla
g{m
y-n
ame
-is
-lu
oyi
fag
}#!

 对应的密文就是!giusenmal{-milya#}fo--aygf

一.2.4 换位密码---列移位密码

列移位密码和曲路密码相似,也需要分成表格,不过行列数是由密钥决定的:

给定明文为:The quick brown fox jumps over the lazy dog

给定密钥为how are u (一共7个字符,对应的表格就应当为7列),以how are u在字母表中的出现的先后顺序进行编号,我们就有a为1,e为2,h为3,o为4,r为5,u为6,w为7,所以先写出a列,其次e列,以此类推写出的结果便是密文:

 密文: qoury inpho Tkool hbxva uwmtd cfseg erjez

一.3  古典密码---替换密码

一.3.1 单表替换加密

单表替换加密就是将字母表中的字母用另一个顺序被打乱的表来代替:

 这种加密方式由于密钥字母为26个(有时会更多,例如用字母表之外的字符代替),非常难以爆破!

 一.3.2 多表替换加密

棋盘密码:

明文luoyifang,加密后就是:31 45 34 54 24 21 11 33 22

Vigenere 维吉尼亚密码

使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式

 明文:qiudianzanqiuguanzhu (求点赞求关注)

密文:luoyifang(洛一方)

加密时首先将密钥填充至与明文一致:

  1. q i u d i a n z a n q i u g u a n z h u
  2. l u o y i f a n g l u o y i f a n g l u

然后查表得密文:bci.....(后面就不写啦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/610951
推荐阅读
相关标签