本章学习内容
1.几种历史著名的密码:
- 凯撒密码
- 简单替换密码
- Enigma
2.破译方法
- 暴力破译
- 频率分析
2.1 凯撒密码
1.概念:
将明文中的的字母表按照一定的字数进行平移进行加密。
2.加密:
在凯撒密码中,按一定的字数平移是这个密码的算法,平移的字数是这个密码的密钥。
3.解密:
使用与加密时相同的秘钥进行反向平移操作。
但这需要发送者与接受者提前商量好秘钥。那么,不知道秘钥的人如何破译呢?
2.2 暴力破解
凯撒密码的密钥是平移的字数,有0-25共26种,全部尝试一遍,就会发现,只有当秘钥为3时,解密的字符串有意义。
像这样,将所有可能的密钥全部尝试一遍破译方法称为暴力破解。由于这种方法的本质是从所有的密钥中找到正确的密钥,也称作穷举搜索。
显而易见,凯撒密码非常弱,无法保护重要的秘密。
2.3 简单替换密码
1.概念:
将字母表中的26个字母分别与字母本身建立一一对立的关系。这样,将一套字母表替换成另一套字母表的密码,成为简单替换密码。
2.加密:
根据替换表,将明文中的字母一一替换。
3.解密:
使用加密时使用的替换表进行反向替换,替换表就是简单替换密码的密钥。
4.简单替换密码的密钥空间
一种密码能够使用的“所有密钥的集合”,称为密钥空间。密钥的总数就是密钥空间的大小。密钥空间越大,暴力破解就越困难。
因为简单替换密码中第一个字母可以替换26个字母,以此类推,简单替换密码共有26!个密钥。相当于4兆的1000兆倍。即使以每秒10亿个密钥的速度破译,也需要花费120亿年,所以简单替换密码很难通过暴力破解的方法进行解密。
2.4 频率分析
1.使用频率分析密码破译方法能够破译简单替换密码。
2.使用频率分析进行破译,示例如下:
3.结论:
- 除了高频字母外,低频字母也能成为线索。
- 搞清开头和结尾能够成为线索,搞清单词之间的分隔也能成为线索。
- 密文越长越容易破译
- 同一个字母连续出现能够成为线索(这是因为在简单替换密码种,某个字母在替换表中所对应的另一个字母是固定的)
- 破译的速度会越来越快
2.5 Enigma(恩尼格玛)
1.概念:
2.使用Enigma进行加密通信
Enigma是一种由键盘、齿轮、灯泡和电池组成的机器,通过这一台机器就可以进行加密和解密。
发送者和接收者都有Enigma密码机,发送者用Enigma密码机进行加密,然后通过无线电进行发送,接收者接收到密文后,使用Enigma密码机进行解密。
由于发送者和接收者需要相同的密钥才能完成加密通信,因此发送者和接收者会提前收到一本名叫国防军密码本的册子,里面记载了发送者和接收者使用的每日密码,发送者和接收者分别按照册子指示来设置Enigma。
3.Enigma的构造
3.1 键盘和灯泡:
将明文通过键盘输入,通过复杂的电路,就会使灯泡亮起来,变成密文。如:键盘输入a,灯泡D亮,就将a加密成D.
3.2 接线板:
是一种通过改变接线方式来改变字母对应关系的部件。接线板上的接线方式是根据国防军密码本中的每日密码设置的。
3.3 转子:
一个圆盘状的装置,两侧的接触点之间通过电线连接。每个转自内部的接线无法改变。
当输入一个字母时,第一个转子转1/26圈;第一个转子转一圈,第二个转子转1/26圈;第二个转子转一圈,第三个转子转1/26圈。第一、二、三个转子依次相当于时钟的秒针、分针、时针。
转子从右往左排序,分别为转子1、2、3
4.Enigma密码机如何工作?
以下视频使用3D模型及动画,详细介绍了Enigma密码机的工作原理。
Enigma密码机是如何工作的?_哔哩哔哩_bilibili(4:13开始)
5.Enigma加密
5.1 设置Enigma
根据国防军密码本的每日密码设置Enigma,即接线板接线、排列转子的顺序、转子位置。
5.2 进行通信加密
接下来,发送发送者想出的三个字母(psv),将其重复输入(psvpsv),通过Enigma进行加密,这三个字母称为通信密码。
5.3 重新设置Enigma
通信密码实际上是Enigma的三个转子的位置,将第一、二、三个转子分别转到p、s、v对应的位置。
5.4 加密信息
将明文通过Enigma进行加密
5.5 拼接
将“加密后的通信密码+加密的信息”进行拼接,通过无线电发送过去。
6.每日密码和通信密码
每日密码是用来加密通信密码的,通信密码是用来加密信息的。也就是说,每日密码是用来加密密钥的密钥,这样的密钥,被称为“密钥加密密钥”‘。
之所以进行两重加密,即使用通信密码加密信息,用每日密码加密通信密码,是因为用同一个密钥加密的密文越多,破译的线索也越多,被破译的风险也会相应增加。两重加密,降低了被破译的风险。
7.避免通信错误
在Enigma时期,由于无线电质量不好,通信密码会出现tonton通信错误,所以要将通信密码输入两遍。这样,接收者可以进行校验,即是否是三个字母重复两次,来判断是否发生通信错误。
8.Enigma解密
8.1 分解
将接收到的信息分为两部分,即前六个字母和剩下部分。
8.2 设置Enigma
根据国防军密码本的每日密码设置Enigma
8.3 解密通信密码
输入前六个字母,通过Enigma进行解密,观察是否是重复的三个字母,判断是否出现通信错误。
8.4 重新设置Enigma
根据通信密码重新设置Enigma
8.5 解密消息
在键盘中输入密文,从灯泡读取记录下来
9.Enigma的弱点
- 将通信密码连续输入两次并加密。
破译者知道,密文开头的6个字母被破解之后的明文一定是3个字母重复两次的形式。
- 通信密码是人为选定的
发送者可能会选定与自己有关的的密码,如:自己名字,aaa等。密码系统中选定的密钥应该是无法预测的随机数。
- 必须派发国防军密码本
如果没有国防军密码本,将不能通信;此外,如果国防军密码本被泄露,也会造成麻烦,必须重新制作密码本并发放全军。
- 在加密通信最开始的6次输入中,只有第一个转子会转
10.Enigma的破译
Enigma密码机保密并不依赖于“隐蔽式安全性”,即使知晓Enigma的构造,不知道Enigma的设置也难以破译。
注:Enigma将字母加密后的字母一定不是本身
2.6 为什么要将密码算法和密钥分开
如果不分开的话,每加密一次,就需要产生一个新的密码算法,太麻烦。我们总希望能够重复使用一个密码算法,但是使用次数过多,被破译的可能性越大,因此在密码算法中增加一个可变的部分,就是密钥。将密码算法和密钥分开就是为了能够重复使用密码算法,且不增加被破译的风险。
现在有一部分密码算法标准化,即使密码算法标准化,但密文的机密性丝毫没有被降低。因为密码算法和密钥是分开的。