45
Enigma是以字母为单位进行加密,一个明文字母,必然对应一个密文字母,这是一个流水式连续加密的过程。艾伦·图灵想到,抛开机器的加入提高了效率之外,整个过程其实包含了数步到数十步的工作,不管最后的结果有多复杂,每一步不就像论文中提到了能够高效完成单一任务的“虚拟机器”吗?既然如此,倘若能制造出“万能虚拟机器”,对Enigma的工作进行模仿,将所有的可能性跑一遍,其中必定有正确的结果。
艾伦眼睛一亮,心中默算了一遍:Enigma最常使用3个转轮,有60种排列变化,理论上需要把17576种可能性跑上60次。假设机器“跑”一步需要半秒,“跑”完一种特定排列需要146.5分钟,“跑”完60种可能需要146个小时。
说干就干,一到布莱切利庄园,艾伦就向斯图亚特说了自己的想法。这想法新颖而别致,为令人焦头烂额的破解Enigma密码任务寻找到了一条光明大道。146小时,与之前预计的两千万年,有天壤之别。而且,长期的情报分析经验告诉斯图尔特:运气一般不会那么差,“跑”最后一种排列组合才是正确的。因为有大量样本,还有气象短电报这种捷径,破译密匙的平均时间,应该会减少一半,大约73个小时,也就是3天左右,而这已经是可以接受的范围了。
参考波兰人送来的Bomba的设计图纸,艾伦·图灵和八号棚屋的同伴们一起设计了“破解单元”。Bomba虽然败于升级版的Enigma,但它“机械化计算”的思路却是正确的。同Bomba类似,“破解单元”也可以看成是逆向运转的Enigma。但艾伦他们做了很大的改进,把每一个破解单元进行横向并联。这样,它们工作时不会彼此干扰,一旦某个单元计算中正确的结果,所有的单元都会停下来。这样的破解单元一共并联了36个,可以同时模仿36台Enigma,这样“跑”完60种排列组合,只需要4个小时多一点点。