俞大维早年先后留学美国和德国,精研数学、数理逻辑、弹道学和军事学。在留德期间他担任华夏国民政府军政部参事,负责两国间国防兵工业的联系合作事宜,他自然对德国商用和军用的eniga恩尼格玛密码机有所了解。
俞大维也深知密码学和数学之间有着一脉相承的密切联系。
他不解地道:“eniga密码机的应用已有近20年之久,从商用型进一步改进发展而来的军用型在德军中作为标准的制式密码机也已装备使用了十年。”
“德国人非常自信地认为他们掌握了世界最先进、最安全、无法破译的通讯加密系统。按照我们获悉的资料,这个密码机的原理从数学上看是无法破解的。”
“三个转子一共有 26x26x26=17576 个不同的密码表。这三个转子设计成可以互相交换位置,共有6种不同的排列方式,密钥空间增加到了 17576x6=105456,大约十万个。插线板将6对字母用连线两两互换,又将密码数量增加了1000 亿倍,密钥空间达到一亿亿个的水平,这是一个天文数字,暴力破解被认为是不可能的。”
宋鸿飞道:“从数学上看的确是这样,不过破译密码并不等同于数学计算,机器设计上的缺陷以及使用上的一些固定习惯和漏洞都可以作为突破口,这就大有文章可做了。”
俞大维对于密码学方面的研究涉猎不多,他愈发按捺不住心中的震惊,几乎要惊呼起来:“你是说竟然有几处漏洞?这可真是石破天惊,叫人不敢相信!”
恩尼格玛密码机是利用机械转轮及电路系统的组合来实现复杂加密和解密的装置,恩格玛机的高明之处就在于它在进行高强度的复式替换加密的同时,便携性和操作简易性也几乎做到了极致,它被广泛应用在德国军事和外交的无线电通信中。
在历史上德国人先后生产了各种型号的恩尼格玛密码机达10万台之多,德国陆、海、空军和情报机构如虎添翼。
恩尼格玛密码机的结构主要由扰码转子、反射器、插线板、键盘和指示灯组成。它的安全性在于“复式替换密码”的特性,其核心在于三大灵魂部件——转子、接线板、反射器。
发报者每次按下某个按键时,由于转子会持续的跟着转动,通过不同的连接线路,每次输入的字母会就会随机替换成另外一个字母,使得每次得到的加密字母都会不一样。
如果只有一个转子,那就是一个固定不变的密码表,加密方式就是简单的单字母替换加密,这在密码学上很容易被破解。
但多个转子同时使用,就变成了很难破译的“复式替换密码”加密方式。这样相同的明文字母可以有不同的替代加密字母,而相同的密文字母又可能代表不同的明文字母,这种设计即使对手对截获的密文进行字频分析也是无效的。
德军恩尼格玛机的操作员每个月都会收到一本密码本,指定本月的每一天所使用的密钥,这个“每日密钥”每一天更换一次,它包含三个部分:三个转子的排列顺序、转子字母的初始位置以及插线板的设置。
宋鸿飞道:“一个大国的情报机构,通过间谍活动完全可以搞到这几样:一是恩尼格玛机的原理及内部构造,包括每个转子的线路;二是德军的对恩尼格玛机的操作守则。”
俞大维点点头,他知道对于一个国家的情报机构来说,搞来这些东西并不是不可能的。
宋鸿飞又道:“但要想破译密文,就必须还要知道密码机的每日初始设置——即每日密钥。德国人希望当密码机和密码本泄露时对方依然无法破解,又采取了一些防范措施。”
使用恩尼格玛机发送密电时,发送者设置好“每日密钥”,然后他会随意敲入3个字母,这3个字母就是发送密文的“信息密钥”。为了防止误操作,德军规定将这3个字母重复打一遍,这3个字母就会被转换成其它6个加密字母。
然后,发送者将转子重新设置为这3个字母,再依次输入明文得到密文,即每次发报都先用每日密钥生成一个信息密钥,再用这个信息密钥加密明文,并将这6个字母的密钥附加在密文前面发送给接收方。
接收方将信息解密时,首先按照密码本中的“每日密钥”设置好,然后输入密文中的头6个字母。由于反射器的巧妙作用,明文输入得到密文,密文输入得到明文,这样就得到这6个加密字母的明文,即发送者的3个字母的“信息密钥”。
然后,接收方再将转子设置为这个信息密钥,再依次将密文输入密码机,就可以得到解密后明文了。
“ 这个步骤有两处缺陷,”宋鸿飞缓缓地道,“首先,发送者需要将信息密钥固定附加到密文开头,这就使第三方能够得知这6个字母就是密码——即3个转子的设置。第二,这6个字母出现了连续重复输入,这在密码学上是一个严重的错误。”
宋鸿飞知道,正是利用了这个弱点,波兰总参谋部密码局早在30年代初就破