服了酷到让人望而生畏密码学能解释得如此简单图解密码技术( 八 )


之所以要采用两重加密,即用通信密码来加密消息,用每日密码来加密通信密码,是因为用同一个密钥所加密的密文越多,破译的线索也会越多,被破译的危险性也会相应增加 。
六、避免通信错误
在通信密码的加密中,我们需要将通信密码psv 连续输入两次,即psvpsv 。这是因为在使用Enigma 的时代,无线电的质量很差 , 可能会发生通信错误 。如果通信密码没有被正确传送,接收者也就无法解密通信内容 。而通过连续输入两次通信密码(psvpsv),接收者就可以对通信密码进行校验 , 也就是检查一下解密后得到的通信密码是不是3 个字母重复两次这样的形式 。
七、Enigma 的解密
下面我们来看看Enigma 是如何解密的(图9) 。

服了酷到让人望而生畏密码学能解释得如此简单图解密码技术

文章插图
图9 用Enigma 解密
解密的操作步骤如下 。
(1) 分解
接收者将接收到的电文分解成两个部分,即开头的6 个字母ATCDVT 和剩下的字母KXNWP 。
(2) 设置Enigma
接收者查阅国防军密码本中的每日密码,并按照该密码设置Enigma,这一步和发送者进行的操作是相同的 。
(3) 解密通信密码
接下来 , 接收者将加密后的通信密码ATCDVT 进行解密 。接收者在Enigma 的键盘上输入ATCDVT 这6 个字母,然后将亮起的灯泡对应的字母psvpsv 记下来 。因为psvpsv 是psv 重复两次的形式,所以接收者可以判断在通信过程中没有发生错误 。
(4) 重新设置Enigma
接下来,接收者根据通信密码psv 重新设置Enigma 。
(5) 解密消息
接下来,接收者对消息进行解密 。
接收者将电文的剩余部分KXNWP 逐一用键盘输入,然后从灯泡读取结果并记下来,这样接收者就得到了nacht 这5 个字母,也就是完成了对发送者发送的消息进行解密的过程 。
上面就是解密的操作步骤 。
八、Enigma 的弱点
上文中我们讲解了Enigma 的构造以及加密和解密的过程 。通过这些信息,我们应该已经可以找到Enigma 的一些弱点了 。
Enigma 可以在每次输入时,通过3 个转子的旋转来改变电路 。然而,在加密通信密码这一重要步骤(最开始的6 次输入)中,实际上只有转子1 会旋转 , 这就是Enigma 的弱点之一 。
将通信密码连续输入两次并加密也是一个弱点,因为密码破译者可以知道 , 密文开头的6个字母被解密之后的明文一定是3 个字母重复两次的形式 。
通信密码是人为选定的也是一个弱点,因为通信密码必须不能被密码破译者推测出来 。然而现实中的发送者却有可能使用aaa、bbb 这样简单的密码,也经常有人用自己女朋友的名字当作密码,不知道是因为怕麻烦 , 还是因为过于相信Enigma 的安全性,或者是没有充分理解通信密码的重要性 。密码系统中使用的密钥不能是人为选定的,而应该使用无法预测的随机数来生成 。
必须派发国防军密码本也可以说是一个弱点 。如果没有国防军密码本,就无法使用Enigma进行通信,但如果国防军密码本落到敌人手里,就会带来大麻烦 。如果现在所使用的国防军密码本被敌人得到,哪怕只泄露了一本,也必须重新制作新的密码本并发放到全军 。“必须配送密钥”这个问题,在广泛使用计算机进行的现代密码通信中也是非常重要的 。
九、Enigma 的破译
当时,Enigma 被认为是一种无法破译的密码机 , 为了破译Enigma,欧洲各国的密码破译者们付出了巨大的努力 。
首先,法国和英国的密码破译者通过间谍活动得到了德军使用的Enigma 的构造 。然而,即便知道了Enigma 的构造,也还是无法破解Enigma 的密码,这是因为 Enigma 的设计并不依赖于“隐蔽式安全性”( security by obscurity) 。即使密码破译者得到了Enigma密码机(相当于密码算法),只要不知道Enigma 的设置(相当于密钥),就无法破译密码 。