历史上的几种简单密码
3中历史上著名的密码:凯撒密码、简单替换密码、Enigma。
两种密码破译方法:暴力攻击和频率分析。
凯撒密码
相传尤利乌斯.凯撒(古罗马的军事统帅)用过的密码。
凯撒密码是将明文中所使用的字母表按照一定的字数平移来进行加密的。 如下图(平移3个字母)
凯撒密码的加密
明文内容为helloworld
,密钥为3
,加密结果为KHOORZRUOG
。
明文 | 密文 |
---|---|
h | K |
e | H |
l | O |
l | O |
o | R |
w | Z |
o | R |
r | U |
l | O |
d | G |
凯撒密码的解密
使用与加密时相同的密钥进行反向的平移操作。
暴力破解
凯撒密码中,密钥就是字母表平移的字数,因此加密使用的密钥只有0~25共25种(为0时等于没加密)。
所以在破解时可以将所有密钥都尝试一边,最终从得到的所有的明文中选择最符合条件的那个。
上面这种将所有密钥都尝试一边的方法,称为暴力破解。由于这种方法的本质是从所有密钥中找出正确的密钥,又称为穷举搜索。
简单替换密码
如果将字母表中的26个字母,分别与这26个字母本身建立1对1的对应关系,那么无论哪一种对应关系都可以当作密码来使用。
这种将明文中所使用的字母表替换为另一套字母表的密码称为简单替换密码。凯撒密码也可以说是简单替换密码的一种。
加密
简单替换密码的加密过程是依次将明文中的每一个字母按照替换表替换成另一个字母。
解密
使用加密时的替换表进行反向替换,即可解密。
加解密使用相同的替换表,因此发送者和接收者必须事先拥有该替换表。
密钥空间
凯撒密码可以使用暴力破解来破译,但简单替换密码不行。
术语 | 含义 |
---|---|
密钥空间 | 一种密码可以使用的所有密钥的集合 |
密钥空间大小 | 所有可用密钥的总数 |
密钥空间越大,暴力破解就越困难。
简单替换密码的密钥空间大小为 $26! = 26 \times 25 \times 24 \times 23 \times …\times 1=403291461126605635584000000 \approx 4 \times 10^{26} \approx 2^{88}$
频率分析破译密码
频率分析利用了明文中的字母的出现频率与密文中的字母出现频率一致这一特性。
😀结论:
- 除了高频字母之外,低频字母也能够成为线索。
- 密文越长越容易破译。
- 同一字母连续出现能够成为线索。(因为某个字母在替换表中所对应的另一个字母是固定。)
- 破译的速度会越来越快。
Enigma
Enigma是一种由键盘、齿轮、电池和灯泡组成的机器,通过该机器就可以完成加密和解密两种操作。
接线板是一种通过改变接线方式来改变字母对应关系的部件。
转子是一种圆盘状的装置,其两侧的接触点之间通过电线相连。转子在每输入一个字母时自动旋转。当输入1个字母时,转子1旋转4分之1圈(因为仅有 4个字母)。转子1每旋转4圈,转子2旋转1圈,以此类推。
加解密
发送者和接收者各自拥有一台Enigma。发送者使用Enigma将明文加密,将生成的密文通过无线电发送给接收者。接收者将接收到的密文用自己的Engima解密,从而得到密文。
发送者和接收者必须使用相同的密钥才能够完成加密通信。
每当按下Engima上的一个键,就会点亮一个灯泡。操作Engima的人可以在按键的同时读出灯泡对应的字母,然后记录这个字母。这个操作在发送者一侧是加密,在接收者一侧是解密(只要将键和灯泡的读法互换一下)。
Enigma的设计并不依赖于隐蔽式安全性
总结
密码 | 密码算法 | 密钥 |
---|---|---|
凯撒密码 | 将明文中的每个字母按照指定的字母数平移 | 平移的字母数量 |
简单替换密码 | 按照替换表对字母表进行替换 | 替换表 |
Enigma(通信密码的加密) | 使用Engima密码机,通过接线版的接线方式、3个转子的顺序、每个转子的旋转位置对字母进行替换 | 接线板的接线方式、3个转子的顺序、每个转子的旋转位置 |
Enigma(通信电文的加密) | 使用接线板的接线方式和3个转子的顺序固定的Enigma密码机,按照每个转子的旋转位置对字母进行替换 | 每个转子的旋转位置 |