但多个转子同时使用,就变成了很难破译的“复式替换密码”加密方式。这样相同的明文字母可以有不同的替代加密字母,而相同的密文字母又可能代表不同的明文字母,这种设计即使对手对截获的密文进行字频分析也是无效的。
德军恩尼格玛机的操作员每个月都会收到一本密码本,指定本月的每一天所使用的密钥,这个“每日密钥”每一天更换一次,它包含三个部分:三个转子的排列顺序、转子字母的初始位置以及插线板的设置。
宋鸿飞道:“一个大国的情报机构,通过间谍活动完全可以搞到这几样:一是恩尼格玛机的原理及内部构造,包括每个转子的线路;二是德军的对恩尼格玛机的操作守则。”
俞大维点点头,他知道对于一个国家的情报机构来说,搞来这些东西并不是不可能的。
宋鸿飞又道:“但要想破译密文,就必须还要知道密码机的每日初始设置——即每日密钥。德国人希望当密码机和密码本泄露时对方依然无法破解,又采取了一些防范措施。”
使用恩尼格玛机发送密电时,发送者设置好“每日密钥”,然后他会随意敲入3个字母,这3个字母就是发送密文的“信息密钥”。为了防止误操作,德军规定将这3个字母重复打一遍,这3个字母就会被转换成其它6个加密字母。
然后,发送者将转子重新设置为这3个字母,再依次输入明文得到密文,即每次发报都先用每日密钥生成一个信息密钥,再用这个信息密钥加密明文,并将这6个字母的密钥附加在密文前面发送给接收方。
接收方将信息解密时,首先按照密码本中的“每日密钥”设置好,然后输入密文中的头6个字母。由于反射器的巧妙作用,明文输入得到密文,密文输入得到明文,这样就得到这6个加密字母的明文,即发送者的3个字母的“信息密钥”。
然后,接收方再将转子设置为这个信息密钥,再依次将密文输入密码机,就可以得到解密后明文了。
“ 这个步骤有两处缺陷,”宋鸿飞缓缓地道,“首先,发送者需要将信息密钥固定附加到密文开头,这就使第三方能够得知这6个字母就是密码——即3个转子的设置。第二,这6个字母出现了连续重复输入,这在密码学上是一个严重的错误。”