数学与二战军事密码一.密码的定义最尖端军事技术其实是密码,你永远不可能理解其中的巨大代价与深奥。
——萨苏从字面上看,“密码”应该是指密文中所用的符号。
但这些符号若不代表着某些明文,那它们也仅仅是符号而已。
因此“密码”应该是隐藏着明文信息的密文符号。
一般来说,我们有了以下定义:所谓一个密码体制,是由如下五个部分组成的一个系统:(1)明文系统μ(2)密文系统π(3)密钥集合K(4)加密变换集合E及加密算法e(5)解密变换集合D及解密算法dK中的任一密钥k,既作为加密算法e的参数决定了E中的一个加密变换ek:μ→π,同时又作为解密算法d的参数决定了D中的一个解密变换d k:π→μ,并且ek 与dk互为逆变换,即对明文集合中的任一明文语句M,恒有dk(ek(M))=M。
因此可以明确地说,“密码”一般就是指“密码体制”。
在不引起混淆的情况下,有时也指一个密钥已具体给定的密码体制。
二. 二战军事密码的数学原理到了二战,数学原理已经被广泛应用到军事密码的编制中,早已不再是早期密码的那种字母调换等简单的编制方式。
这里简单列举几种典型的军事密码及其大致原理。
在太平洋战争爆发之前,日本军方就发明了一种被称为“紫密”的机编密码,编制这种密码的机电式密码机,被日本人称为“九七式欧文印字机”。
紫密机由两部分组成,一是按键印字部分,其中按键部分用于将明文打字输入,印字部分用于密文的打印输出。
而位于右半部的第二部分是加密部分,当你将26个字母中的一个数字输入机器以后,密钥轮就会转动,按照事先设定好的程序进行转换,而输出的将是另一个让所有的数学家都束手无策的字母。
因为这种紫密密码机一共有4个密钥轮,所以就会产生(264*26!)个可能的密钥,这是一个令人难以想象的天文数字。
而在大洋另一边的德国,德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)和理查德·里特(Richard Ritter)也发明了一种被称为“恩尼格玛”(ENIGMA,意为哑谜)的电气编码机械。
该密码机核心部分是三个直径6厘米的转子,它们的主要部分隐藏在面板下。
之所以叫“转子”,因为它会转,这就是关键。
当按下键盘上的一个字母键,相应加密后的字母在显示器上通过灯泡闪亮来显示,而转子就自动地转动一个字母的位置。
同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,又可以代表明文中的不同字母,字母频率分析法在这里丝毫无用武之地了。
这种加密方式在密码学上被称为“复式替换密码”。
但是如果连续键入26个字母,转子就会整整转一圈,回到原始的方向上,这时编码就和最初重复了。
而在加密过程中,重复的现象就很是最大的破绽,因为这可以使破译密码的人从中发现规律。
于是“恩尼格玛”又增加了一个转子,当第一个转子转动整整一圈以后,它上面有一个齿轮拨动第二个转子,使得它的方向转动一个字母的位置。
因此只有在26x26=676个字母后才会重复原来的编码。
而事实上“恩尼格玛”有三个转子(二战后期德国海军使用的“恩尼格玛”甚至有四个转子!)。
因此我们可以很简单地计算出,要想通过“暴力破译法”还原明文,需要试验多少种可能性:三个转子不同的方向组成了26x26x26=17576种可能性;三个转子间不同的相对位置为6种可能性;连接板上两两交换6对字母的可能性则是异常庞大,有100391791500种;于是一共有17576x6x100391791500,其结果大约为10000000000000000!即一亿亿种可能性!这样庞大的可能性,换言之,即便能动员大量的人力物力,要想靠“暴力破译法”来逐一试验可能性,那几乎是不可能的。
而收发双方,则只要按照约定的转子方向、位置和连接板连线状况,就可以非常轻松简单地进行通讯了。
这就是“恩尼格玛”密码机的保密原理。
三.破解“AF”成功偷袭珍珠港之后,日本军方升级了上文提到的“紫密”体系,称为“舰队密码体制”。
这套密码是高级司令部才能使用的战略级密码,被美国情报人员命名为“JN-25b”。
由于在珍珠港蒙受了巨大损失,美国海军痛感情报的重要,开始大力加强情报收集分析和密码破译工作,几乎将全部情报部门的力量都投入到破译“JN-25b”情报中来。
此外,美国还向盟国请求支援,包括英国设在中国香港,后转移到新加坡、锡兰的远东情报站,以及荷兰的荷属东印度群岛情报站等,都同时截取大量的“JN-25b”通讯,破译后转给美国海军情报部门汇总分析,以便做出准确判断。
早在5月中旬,美国太平洋舰队总部作战情报处,在截获日本的电报中,发现了“AF”一词,引起了情报人员的注意。
到了5月20日,他们又截收到一份电报,内容是日本联合舰队给各部队下达的作战计划。
里面多次提到“AF”,看来“AF”好像指的是一个地方。
经过分析,作战情报处认为可能是指中途岛。
但这个情报到底准确不准确呢?作战情报处的罗彻福特海军中校苦思苦想,最后想出了一个能证明“AF”指的就是中途岛的计策。
他通过潜艇电报系统向中途岛发出指示,要守岛的指挥官用普通英文发出紧急无线电报,说中途岛上的供水蒸馏塔坏了。
又由第十四海区司令官布洛克海军少将立即回电说,有一艘供水船正前往该岛紧急供水。
这个计策果然很灵,不出24小时,作战情报处就截获日本从威台岛的电台发出的密电,上面说“AF”缺少淡水。
接着日方又在密电中发出命令,要部队多带水。
美国太平洋舰队总司令尼米兹海军上将确认,“AF”就是中途岛,了解到日军的作战意图后,立即制订了对付山本五十六的作战计划。
要求避免同优势之敌进行正面对抗,必须以消耗战来削弱敌人的兵力,用潜艇和轰炸机袭击各个孤立之敌。
为了保证美国的航空母舰在合适的时间到达合适的地点,尼米兹命令作战情报处必须提供“AF”行动的准确时间。
5月24日,密文终于得以破解:6月4日,日本舰载机攻击部队将从西北方向袭击中途岛,方位325°,在离中途岛175英里处被会我方发现,时间是中途岛时间6时。
于是针对山本的计划,美国太平洋舰队设下了一个陷阱:当日军的战斗机离开航母攻击中途岛的时候,美军3艘航母上的战斗机就趁势轰炸日军航母,给它们以毁灭性的打击。
1942年6月4日清晨,日本攻击机群直扑中途岛。
可是,日本轰炸机想要在中途岛消灭对方航空力量企图却落空了。
它们所能找到的轰炸目标,只不过是空荡的飞行跑道和几座空机库,岛上所有的飞机此时都已经飞上了高空。
他们并不知道,那些本应该停在中途岛上的飞机,此时已经在飞往攻击他们舰队的路上。
没过多久,美军的32架轰炸机仅用11分钟,就先后击沉了日军的3艘航母——中途岛之战,美国损失航空母舰1艘、驱逐舰1艘,以及147架飞机,307人阵亡;而日本损失航空母舰4艘,重巡洋舰1艘,以及285架飞机,3500人阵亡。
这场战役,实质上成了太平洋战争的转折点。
四.“恩尼格玛”的丧钟“恩尼格玛”密码的问世,宣告了手工编码技术的结束,奠定了计算机加密技术的基础。
在二战中,德国凭借这种号称“永远无法破译的超级密码”取得了一个又一个令自己兴奋的战果。
在此情况下,盟军更是集中了所有情报力量对其进行破解。
虽然有很多种关于“恩尼格玛”的破译说法,但最令人信服的还是波兰数学家Marian Rejewski利用理论数学的方法成功作出了破解。
当年他能成功做出破解很大程度上是由于德国人使用了一个错误的加密协议。
对于一台三个转轮的“恩尼格玛”,如果转接板的接法不变的话,那么加密函数可以由转轮起始时所在的3字母序列唯一确定,被称作密钥。
当时德国的做法是,每天有一个当日的密钥,在每次发送的时候再随机确定一个3字母的会话密钥,把会话密钥重复一次形成一个6字母序列(防止打错),用当日密钥加密,然后再把用会话密钥加密后的信息附加到后面整个发送出去。
按照木桶原则,这种加密方式本身不会给保密性带来任何好处,反而由于明文这种有规律的3字符重复给破解带来了意想不到的好处。
虽然后来德国改变了这一做法,但是由于这个错误造成Marian Rejewski的破解成功,使得后来的研究人员注意到理论数学在破解上的应用,英国人在Marian Rejewski的研究基础上最终破解了修改后的“恩尼格玛”。
为了保守这一机密,英国情报部门采取了一系列严密措施。
1940年11月12日,布莱奇利庄园截获并破译了德国空军总司令发给其驻西欧各航空站的一批密码电报,得知德国空军将出动500多架轰炸机对英国的考文垂市进行大规模空袭。
此时,英国尚有十分充足的预警时间,完全可以通知考文垂市作好防空准备,避免大的损失。
但是,英军高层考虑到德军可能会因此而推断出密码泄密的问题。
丘吉尔首相果断下令不将此事通报考文垂市。
结果,在德国空军按计划进行的空袭中,有6万多名市民丧命。
英国用如此大的代价蒙蔽了德国人,使他们坚信“恩尼格玛”密码万无一失,于是便继续放心大胆地使用。
事后证明,英国人的血没有白流。
恩尼格玛密码逐渐成为英国人手中一把最具杀伤力的利刃。
在后来的阿拉曼战役、攻占西西里岛、诺曼底登陆等具有决定意义的军事行动中,英国和盟军都通过破译恩尼格玛密码及时掌握了战场主动权,使得胜负天平逐渐偏向了盟军一方。
五.结语灵活运用数学原理是密码学的核心,密码学则是现代军事情报领域的核心。
虽然战争是个令人讨厌的话题,但也正是军事密码与数学紧密的联系,我们必须正视应用数学在战争中的重要地位,从而把握局势的进程,正如戴维·卡恩所说:“难得有这样的机会,破译者居然把历史掌握在自己手里。
”[参考文献][1]《战争中的数学——军事密码学》,李长生,邹祁,上海科技教育出版社,2009年[2]《密码学原理与实践》,Douglas R.Stinson,电子工业出版社,2009年7月[3]《密码学导引》,冯登国,裴定一,科学教育出版社,2003年1月。