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