作者: [英]B.杰克·科普兰
出版社: 中信出版集团
副标题: 智能时代的拓荒者
原作名: Turing: Pioneer of the Information Age
内容摘录
第五章 与U型潜艇的战争
通过使用一种被称为“已知明文”(cribs)的东西,图灵开始了他对U型潜艇和其他类型的德国船只上恩尼格玛密码机的破译工作。已知明文通常是一小段简单的德语,密码破译者认为它可以构成信息的一部分。由于德语信息的模式化性质,某些惯用短语很可能出现。例如,图灵使用的一个已知明文是“FORT”(德语Fortset-zung的缩写,意思是承接上文,继续)。由于信息通常分几个部分发送,“FORT”是一个非常好用的已知明文。另一个是“WEWA”(德语Wetter Warte的缩写,意思是气象站)。“EINS”作为一组常见的字母,则是一个更可靠的已知明文——获取的密文中有大约九成的概率会出现“EINS”一词。1
由于许多恩尼格玛密码机操作员不够老练,产生了更长且更奇特的已知明文。“德国的操作员是有着幼稚习惯的简单灵魂。”英国密码破译指挥官丹尼斯顿冷冷地说。2气象站定期发送包含常规短语的信息,例如“夜间天气”(“WETTER FUER DIE NACHT”)和“东部海峡局势”(“ZUSTAND OST WAERTIGER KANAL”)。一个海军基地甚至每天晚上都会发送确认信息“按命令点亮信标”(“FEUER BRANNTEN WIE BEFOHLEN”)。这是一个“非常完美的已知明文”,帕特里克·马洪(Patrick Mahon)说道,他是一个天才的“已知明文破译者”,并于1944年接任8号木屋的负责人。3
基于恩尼格玛密码机从不会将一个字母编译成相同字母这一事实(例如“A”无论如何不会被编译成“A”),密码破译者通常可以锁定信息中已知明文短语的位置,这是反射板设计的结果——从转子里出来的字母肯定和输入的字母不一样(见图7)。破译者会沿着被加密的文字滑动,例如
ZUSTANDOSTWAERTIGERKANAL,寻找哪个位置上的字母没有匹配上。当已知明文中的一个字母与加密文中同一位置上的一个字母一样时,这个位置被称为“碰撞”(cra-shes,见图10)。“碰撞”出现,表明该已知明文放错了地方。如果已知明文的长度超过大约30个字母,那么它很有可能会在除正确位置之外的任何地方产生“碰撞”。如果“碰撞”几乎无法避免,那么很有可能是因为这段已知明文实际上没有出现在这段信息中,即密码破译者猜测错误。
图10 遇到了两处碰撞
图片来源:杰克·科普兰和达斯汀·巴雷特。
一旦锁定了放置已知明文的潜在位置,破译者就会尝试向左或向右延长该文字片段。如果这样做被证明是可行的,则变相证明了该已知明文是正确的。在这一开创性尝试中,图灵利用了这样一个事实,即“FORT”的右边总是跟随一个用来标识先前信息的数字,例如2300。标识数字通常指的是上一条信息的发送时间。通过对被捕的无线电通信兵芬克马特·迈耶(Funkmaat Meyer)的成功审问,图灵得知数字是以词的形式输入的。4“那个囚犯告诉我们,”图灵淡淡地说,“数字的所有字母都被完整地拼出”——例如ZWEI-DREINULNUL(2300)。5也许图灵自己也参与了审讯。一旦确定只有数字跟在FORT之后,破译者就可以不遗余力地一个接一个地尝试所有的可能性,以寻找一个不会“碰撞”的情况。图灵将此称为“令人哭泣的四十”(Forty Weepy)方法,这个名字由FORT和一组令人难忘的字母YWEEPY组成,这组紧跟着FORT的字母出现在1937年的一条信息中。6
————————————
【找书籍加微gaiword】
————————————