五千年(敝帚自珍)

主题:【原创】被征服的谜――ENIGMA的故事(四):波兰人的绝地反击(中下) -- 1001n

共:💬32 🌺46
全看分页树展 · 主题 跟帖
家园 斗胆来解释一下啊

算是补充1001n兄的内容,顺便回答大家的问题。

如1001n兄文中所述,Enigma机有好几道密码手续。第一道是每个转轮的设置,第二道是转轮的位置,第三道是插线板的设置。Enigma的转轮上是个接线板,还有一圈字母。这个接线板跟字母的对应是可以调节的,密码本上用接线板上的一个洞指到某个字母的位置来指明对应关系。比方说,今天A是对换到Z的,明天我改一下转轮,A就对到B上去了。这个设置叫做“内部设置”(inner setting)。转轮的位置是在所有转轮都装到机器里以后进行设置的,Enigma机上有一个窗口,可以看到底下转轮们最朝上的一个字母。这个是通信双方约定的加密起始点,也通过密码本来指明。这个叫做“外部设置”(outer setting)。插线板的用途主要是把6对字母对换。比方说今天某个字母应该加密成A的,结果出来变成了X。同样的X也就变成了A。

说明了Enigma的设置方法,下面就可以讲讲德国陆军的加解密过程了。现在有两个报务员甲和乙,甲打算发报给乙。甲拿出密码本,按照要求把自己的机器全部设置好。然后,他要自己想一个三位字母的密码。比方说,密码本上规定的外部设置是ABC,他自己想的密码是DEF。那么,他就先把机器的转轮拨到ABC的位置上,然后在键盘上连按两遍DEF,这样一来他就得到了一个加密的六位字母(比方说TJKWFU)。然后,他把机器转轮拨到DEF的位置上,开始加密实际的电文。最后发送时,他先把TJKWFU发出去,然后再发正文。乙收到电报以后,也把自己的机器拨到当天的设置上,头六个字母解密出来是DEFDEF,于是他就知道剩下的电文应该把轮子拨到DEF的位置上才能解密。这样一来,由于每个电报都是用不同的密钥加密的,看起来应该更加保险。

实际上不是这样。因为每个电文开头这六个字母都是用同样的设置,这就成了一个弱点。换句话说,同样的字母、同样的条件,加密出来的结果当然也是一样的。因为头六个字母实际只动到了最右边那一个转轮,可以想见,如果收集到了足够的电文,那就有办法搞清楚这个转轮的接线、内部和外部设置。现在假定有一个报务员丙,他自己想的三位字母是DXO,这三个字母加密两遍出来是TRSWWO。注意到没有,他的加密中,头一个字母跟第四个字母跟甲的加密是一样的!对于破解者而言,这当然说明甲和丙用的第一个字母是一样的。这同时也说明,T下面是W,这两个字母今天有特殊的联系。如果又收到一组字母WSJFCK,破解者可以合理地推断,W后面是J,这两个字母也有特殊联系。如此一来,只要收到的电文足够多,就可以构造出一个有特殊联系的字母串TWJ...一串下去。最后一个字母又会绕回到T上。Rejewski从数学上证明了,这样的字母串只有那么多种可能。这就是“字母循环圈表法”。收集到了足够的字母串以后,Rejewski就可以构造一个硕大的方程。最开始这个方程里有太多的未知数,但加上情报得来的部分旧密钥以后,Rejewski找出了Enigma的转轮连线方式。有了连线方式,Rejewski就可以单用字母串找出当天的密钥,一切都豁然明朗了。

有人可能要问:不是还有那个插线板加密嘛?Rejewski用群论的方法证明了,在一定程度上那个插线板是可以忽略掉的。换句话说那东西意思不大,并没有增加什么破解的难度。

我先说到这里吧。头盔先戴好,大家砸砖。。。

元宝推荐:不爱吱声,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河