A. 恩尼格玛密码机的弱点
在一次大战其间,英国的情报机关非常严密地监控了德国方面的通讯,丘吉尔的书和英国海军部的报告中透露的消息只不过是一鳞半爪。事实上,将美国引入一次大战的齐末曼(Arthur Zimmermann,1916年起任德国外交部长)电报就是由著名的英国40局破译的。在此电报中德国密谋墨西哥对美国发动攻击,这使得美国最终决定对德宣战。但是英国人的障眼法用得如此之好,使得德国人一直以为是墨西哥方面泄漏了秘密。
战后英国仍旧保持着对德国通讯的监听,并保持着很高的破译率。但是从1926年开始,他们开始收到一些不知所云的信息——ENIGMA开始投入使用。德国方面使用的ENIGMA越多,40局破解不了的电文就越多。美国人和法国人碰到的情况也一样,他们对ENIGMA一筹莫展。德国从此拥有了世界上最为可靠的通讯保密系统。
一次大战的战胜国很快就放弃了破译这种新型密码的努力。也许是出于自信,在他们看来,在凡尔赛条约约束下的德国已经造成不了什么危害。由于看不到破译德国密码的必要性,盟国的密码分析专家懒散下来,干这一行的头脑似乎也变得越来越平庸。在科学的其他领域,我们说失败乃成功之母;而在密码分析领域,我们则应该说恐惧乃成功之母。普法战争造就了法国一代优秀的密码分析专家,而一次大战中英国能够破译德国的通讯密码,对失败的极大恐惧产生的动力无疑起了巨大的作用。
历史又一次重演。因为在欧洲有一个国家对德国抱有这种极大的恐惧——这就是在一战灰烬中浴火重生的新独立的波兰。在她的西面,是对失去旧日领土耿耿于怀的德国,而在东面,则是要输出革命的苏维埃联盟。对于波兰来说,关于这两个强邻的情报是有关生死存亡的大事,波兰的密码分析专家不可能象他们的英美法同事那样爱干不干——他们必须知道这两个大国都在想什么。在此情况下波兰设立了自己的破译机构,波军总参二局密码处(Biuro Szyfrow)。密码处的高效率在1919-1920年波苏战争中明显地体现出来,军事上屡尝败绩的波兰在密码分析方面却一枝独秀。在苏军兵临华沙城下的情况下,1920年一年他们破译了大约400条苏军信息。在对西面德国的通讯的监控方面,波兰人也保持了同样的高效率——直到1926年ENIGMA登场。
波兰人想方设法搞到了一台商用的ENIGMA机器,大致弄清楚了它的工作原理。但是军用型的转子内部布线和商用型的完全不同,没有这个情报,想要破译德军的电报可谓难如登天。波兰人使出了浑身的解数,甚至病急乱投医,请了个据说有天眼通功能的“大师”来遥感德国人机器里转子的线路图——当然和所有的“大师”一样,一遇上这种硬碰硬的事情,神乎其神的天眼通也不灵了。
这时事情有了转机。
汉斯-提罗·施密特(Hans-Thilo Schimdt)于1888年出生在柏林的一个中产阶级家庭里,一次大战时当过兵打过仗。根据凡尔赛条约,战败后的德国进行了裁军,施密特就在被裁之列。退了伍后他开了个小肥皂厂,心想下海从商赚点钱。结果战后的经济萧条和通货膨胀让他破了产。此时他不名一文,却还有一个家要养。
和他潦倒的处境相反,他的大哥鲁道夫(Rudolph)在战后春风得意。和汉斯-提罗一样都是一次大战的老兵,可鲁道夫没有被裁减,相反却一路高升。到了二十年代,他当上了德国通讯部门的头头,就是他正式命令在军队中使用ENIGMA。和大哥的成功比起来,汉斯-提罗自然觉得脸上无光。
可是破产后汉斯-提罗不得不放下自尊心来去见大哥,求他在政府部门替自己谋个职位。鲁道夫给他的二弟在密码处(Chiffrierstelle)找了个位置。这是专门负责德国密码通讯的机构——ENIGMA的指挥中心,拥有大量绝密情报。汉斯-提罗把一家留在巴伐利亚,因为在那里生活费用相对较低,勉强可以度日。就这样他一个人孤零零地搬到了柏林,拿着可怜的薪水,对大哥又羡又妒,对抛弃他的社会深恶痛绝。
接下来的事情可想而知。如果把自己可以轻松搞到的绝密情报出卖给外国情报机构,一方面可以赚取不少自己紧缺的钱,一方面可以以此报复这个抛弃了他的国家。1931年11月8日,施密特化名为艾斯克(Asche)和法国情报人员在比利时接头,在旅馆里他向法国情报人员提供了两份珍贵的有关ENIGMA操作和转子内部线路的资料,得到一万马克。靠这两份资料,盟国就完全可以复制出一台军用的ENIGMA机。
不过事情并不象想象的那么简单。要破译ENIGMA密码,靠这些情报还远远不够。德军的一份对ENIGMA的评估写道:“即使敌人获取了一台同样的机器,它仍旧能够保证其加密系统的保密性。”就算有了一台ENIGMA,如果不知道密钥(就是转子自身的初始方向,转子之间的相互位置,以及连接板连线的状况)的话,想破译电文,就要尝试数以亿亿计的组合,这是不现实的。
“加密系统的保密性只应建立在对密钥的保密上,不应该取决于加密算法的保密。”这是密码学中的金科玉律。加密算法可以直接是某个抽象的数学算法,比如通用的DEA和RSA算法,也可以是实现某个算法的象ENIGMA这样的加密机械或专门用于加密的电子芯片等加密器件,还可以是经过编译的在计算机上可执行的加密程序,比如在互联网通信中被广泛使用的PGP(Pretty Good Privacy)。因为对加密算法的保密是困难的。对手可以用窃取、购买的方法来取得算法、加密器件或者程序。如果得到的是加密器件或者程序,可以对它们进行反向工程而最终获得加密算法。如果只是密钥失密,那么失密的只是和此密钥有关的情报,日后通讯的保密性可以通过更换密钥来补救;但如果是加密算法失密,而整个系统的保密性又建立在算法的秘密性上,那么所有由此算法加密的信息就会全部暴露。更糟糕是,为了使以后的通讯保持秘密,必须完全更换加密算法,这意味着更新加密器械或更换程序。比起简单地更换密钥,这要耗费大量财富和管理资源(大规模更换加密器械和程序会使对手更有机会乘虚而入!)。
正如前面所言,ENIGMA的设计使得搞到了它的秘密的法国人也一筹莫展。法国密码分析人员断定这种密码是不可破译的。他们甚至根本就懒得根据搞到的情报去复制一台ENIGMA。
在法国和波兰签订过一个军事合作协议。波兰方面一直坚持要取得所有关于ENIGMA的情报。既然看来自己拿着也没什么用,法国人就把从施密特那里买来的情报交给了波兰人。和法国人不同,破译ENIGMA对波兰来说至关重要,就算死马也要当作活马医。现在他们总算能迈出最初的一步了。
在施密特提供的关于ENIGMA的情报中,不仅有关于ENIGMA构造和转子内部连线的描述,还有德国人使用ENIGMA进行编码的具体规定。每个月每台ENIGMA机的操作员都会收到一本当月的新密钥,上面有此月每天使用的密钥。比如说,第一天的密钥可以是这个样子:1.连接板的连接:A/L-P/R-T/D-B/W-K/F-O/Y。2.转子的顺序:2,3,1;转子的初始方向:Q-C-W。
当操作员要发送某条消息时,他首先从密钥本中查到以上信息。然后按照上面的规定,首先用连线把连接板上的A字母和L字母,P字母和R字母……连接起来;然后把2号转子放在ENIGMA的第一个转子位置上,把3号转子放在第二个位置上,把1号转子放在第三个位置上;最后,他调整转子的方向(从照片上可以看到每个转子的边上都刻着一圈字母用来显示转子所处的方向),使得三个转子上的字母Q、C和W分别朝上。在接收信息的另一方,操作员也进行同样的准备(他也有一本同样的密钥本),就可以进行收信解码的工作了。
调整好ENIGMA,操作员可以开始对明文加密了。但是我们看到每天只有一个密钥,如果这一天的几百封电报都以这个密钥加密发送的话,暗中截听信号的敌方就会取得大量的以同一密钥加密的信息,这对保密工作来说不是个好兆头。我们记得在简单替换密码的情况下,如果密码分析专家能得到大量的密文,就可以使用统计方法将其破解。
尽管不知道对ENIGMA是否可以采用类似的统计方法,德国人还是留了个心眼。他们决定在按当日密钥调整好ENIGMA机后并不直接加密要发送的明文。相反地,首先发送的是一个新的密钥。连接板的连线顺序和转子的顺序并不改变,和当日通用的密钥相同;想反地,转子的初始方向将被改变。操作员首先按照上面所说的方法按当日密钥调整好ENIGMA,然后随机地选择三个字母,比如说PGH。他把PGH在键盘上连打两遍,加密为比如说KIVBJE(注意到两次PGH被加密为不同的形式,第一次KIV,第二次BJE,这正是ENIGMA的特点,它是一种复式替换密码)。然后他把KIVBJE记在电文的最前面。接着他重新调整三个转子的初始方向到PGH,然后才正式对明文加密。
用这种方法每一条电文都有属于自己的三个表示转子初始方向的密钥。把密钥输入两遍是为了防止偶然的发报或者接收错误,起着纠错的作用。收报一方在按当日密钥调整好ENIGMA机后,先输入密文的头六个字母KIVBJE,解密得到PGHPGH,于是确认没有错误。然后把三个转子的初始方向调整到PGH,接着就可以正式解密其余的密文了。
如果不使用对每条电文都不同的密钥,那么每天很可能总共会有几千条电文也就是几百万个字母的消息以同一个密钥加密。而采用每条电文都有自己的密钥这个方法后,当日密钥所加密的就是很少的几万个字母,而且这些字母都是随机选取,和有意义的电文性质不同,不可能用统计方法破译。
乍一看来这种方法无懈可击。可是波兰人铁了心,必须在这厚厚的护甲上撕出一个口子来。
在此以前,密码分析人员通常是语言天才,精通对语言方面特征的分析。但是既然ENIGMA是一种机械加密装置,波兰总参二局密码处就考虑到,是否一个具有科学头脑的人更适合于它的破译工作呢?
1929年1月,波兹南大学数学系主任兹德齐斯罗·克里格罗夫斯基(Zdzislaw Krygowski)教授开列了一张系里最优秀的数学家的名单,在这张名单上,有以后被称为密码研究“波兰三杰”的马里安·雷杰夫斯基(Marian Rejewski),杰尔兹·罗佐基(Jerzy Rozycki)和亨里克·佐加尔斯基(Henryk Zygalski)。波兹南大学并非当时波兰最有名的大学,但是它地处波兰南部,那里直到1918年还是德国领土,所以所有这些数学家都能讲流利的德语。
在三位被密码局招聘的数学家中,雷杰夫斯基的表现最为出色。当年他是个架着一副近视眼镜,脸上略带羞色的二十三岁小伙子。他的在大学里学的专业是统计学,打算以后去干保险业行当,也许在此之前他从未想到会在密码分析方面大展身手。在经过短期的密码分析训练后,他把所有的精力都投入到破解ENIGMA的工作中去。
雷杰夫斯基深知“重复乃密码大敌”。在ENIGMA密码中,最明显的重复莫过于每条电文最开始的那六个字母——它由三个字母的密钥重复两次加密而成。德国人没有想到这里会是看似固若金汤的ENIGMA防线的弱点。
德方每封密文最开始的六个字母,是此信密钥的三个字母重复两遍,由当日密钥加密而成。比如说这封信的密钥是ULJ(这是开始加密明文时由操作员临时随机选取的),那么操作员首先用当日通用的密钥加密ULJULJ,得到六个字母的加密后序列,比如说PEFNWZ,然后再用ULJ来作为密钥加密正文,最后把PEFNWZ放在加密后的正文前,一起用电报发给收信方。
雷杰夫斯基每天都会收到一大堆截获的德国电报,所以一天中可以得到许多这样的六个字母串,它们都由同一个当日密钥加密而成。比如说他收到四个电报,其中每封电报的开头的六个字母为:第一封电报:L O K R G M;第二封电报:M V T X Z E;第三封电报:J K T M P E;第四封电报:D V Y P Z X。对于每封电报来说,它的第一个字母和第四个字母都是由同一个字母加密而来,同样地第二和第五个字母以及第三和第六个字母也是分别由同一个字母加密而来。比如说在第一封电报中,字母L和R是由同一字母加密而来。这个字母之所以先被加密成L,然后又被加密成了R,是因为在此期间转子向前转动了三个字母的位置。
从L和R是由同一个字母加密而来这点,雷杰夫斯基就有了判断转子的初始位置的一条线索。当转子处于这个初始位置时,字母L和R在某种意义下具有紧密的联系。每天截获的大量电文能够给出许多这样的紧密联系,从而使雷杰夫斯基最终能够判断出转子的初始位置。在上面的第二、三、四封电报中,我们看见M和X,J和M,D和P都有这种联系:
第四个字母:___P_____M_RX_____________
如果雷杰夫斯基每天可以得到充分多的电报,他就可以把上面这个关系表补充完整:
第四个字母:FQHPLWOGBMVRXUYCZITNJEASDK
光凭这个对应表格,雷杰夫斯基还是没办法知道当天的通用密钥。可是他知道,这个表格是由当天的通用密钥决定的,而且只由它决定。如果密钥不同,那么这个表格也应该不同——那么,有没有一种办法可以从这个对应表来推断出当日的通用密钥呢?雷杰夫斯基对这样的表格进行了仔细观察。从字母A开始看,它被对应成F;而F在此表中又被对应成W,接下去它被对应成A,我们又回到了最先开始的字母,于是就有了一个循环的字母圈A→F→W→A。如果考虑所有的字母,雷杰夫斯基就能写出关于此对应表的所有的循环圈:A→F→W→A。
3个字母的循环圈B→Q→Z→K→V→E→L→R→I→B;9个字母的循环圈C→H→G→O→Y→D→P→C;7个字母的循环圈J→M→X→S→T→N→U→J。
7个字母的循环圈这里我们只是考虑了第一和第四个字母形成的对应表。同样地对第二和第五、第三和第六个字母形成的对应表,我们也可以写出类似的字母循环圈。由于每天的密钥都不同,雷杰夫斯基得到的循环圈也各不相同。
雷杰夫斯基观察到,这些循环圈长短不一。这使他有了一个重要的灵感:虽然这些循环圈是由当日密钥,也就是转子的位置,它们的初始方向以及连接板上字母置换造成的,但是每组循环圈的个数和每个循环圈的长度,却仅仅是由转子的位置和它们的初始方向决定的,和连接板上字母交换的情况无关!
假定在上面这个例子中,原来在接线板上字母S和G由一根连线相连。转子的位置和它们的初始方向保持不变,去掉这根连线而将字母T和K连在一起,那么第一和第四个字母的对应表就会变成:
第一个字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ,第四个字母:FQHPLWKSBMNRXUYCZIOVJEAGDT(原来的G对应O,S对应T,去掉G和S的连线后,G就对应T,但是T被新的连线接到了K,所以G最终对应着K。其他受影响的字母还有H、K、S、T、X、Z)。而循环圈表就变成了:A→F→W→A。
3个字母的循环圈B→Q→Z→T→V→E→L→R→I→B;9个字母的循环圈C→H→S→O→Y→D→P→C;7个字母的循环圈J→M→X→G→K→N→U→J。
7个字母的循环圈某些循环圈中的字母变了,但是循环圈的数目仍旧是四个,每个循环圈的长度也没有改变。应用置换变换的理论,雷杰夫斯基可以从数学上严格证明这一点对于任何的连线变化都是成立的。
这是一个非常重大的进展。我们知道,如果要强行试遍所有的密钥来破解密文,那得要试一亿亿个密钥之多;但是ENIGMA的数量巨大的密钥主要是由连接板来提供的,如果只考虑转子的位置和它们的初始方向,只有105456种可能性。虽然这还是一个很大的数字,但是把所有的可能性都试验一遍,已经是一件可以做到的事情了。
波兰人按照汉斯-提罗·施密特提供的情报复制出了ENIGMA样机。到了1934年,他们有了十几台波兰造ENIGMA。雷杰夫斯基和他的同事们每天都在ENIGMA前工作,一个接一个地试验转子的不同位置和初始方向,然后产生相应的字母对应表并构造相应的字母循环圈,并把它们记录下来。比如说其中的一个记录可以是这样的:第一和第四字母对应表中有4个循环圈,长度分别为3,9,7,7;
第二和第五字母对应表中有4个循环圈,长度分别为2,3,9,12;
第三和第六字母对应表中有5个循环圈,长度分别为5,5,5,3,8;
当对所有105456种转子位置和初始方向都编好记录以后,破译ENIGMA生成的密文就比较容易了。首先要取得足够的当日电文来构造字母对应表并且写出字母循环圈;然后根据循环圈的数目和它们的长度从记录表中检索出相对应的转子位置和初始方向:这就是当日的密钥(连接板的情况还未知)。循环圈的个数和长度可以看作是这个密钥的“指纹”——通过建立密钥“指纹”档案,雷杰夫斯基就能及时地把当天的密钥找出来。通过分离转子的状态和连接板的状态,雷杰夫斯基大大简化了破译ENIGMA的工作。建立这样一个档案花了整整一年时间,工作相当艰苦,有时工作人员的手指都被磨出血来。
必须指出的是,上面对雷杰夫斯基的工作的介绍是极其简单化的,只以举例的形式介绍了其中最重要的思路。雷杰夫斯基对于ENIGMA的分析是在密码分析史上最重要的成就之一,整个工作都是严格地数学化了的(求解关于置换矩阵的方程),决非上面所举例子可以包含。比如说,找到当日密钥中转子状态后,还需要找到连接板状态,才能真正译出密文。另外,ENIGMA中转子中的线路并非总是固定不变,雷杰夫斯基的理论允许从密文和密钥倒推出转子内部的连线状态。即便是施密特提供的情报也未明确指出转子内部的连线状态,雷杰夫斯基一项重要工作就是成功地判断出军用型ENIGMA的转子上字母以字母表顺序排列,而不是如商用型那样,字母以键盘上的顺序排列。另外还要指出的是,雷杰夫斯基的同事,尤其是另两位数学家罗佐基和佐加尔斯基在破译工作中也作出了很重要的贡献。佐加尔斯基还设计了用在纸上钻孔的方法来迅速查询对应于某类字母循环圈的转子状态的方法。
在雷杰夫斯基和他的同事的努力下,波兰情报部门在后来的几年里成功地掌握了大量德国方面的情报。据估计,在1933年1月到1939年9月这六年多的时间里,波兰方面一共破译了近十万条德方的消息,其中最重要的有德国在包括苏台德地区兵力重新部署的情报,这对波兰的安全是极大的威胁。对ENIGMA的破解即便在总参二局领导层内部也属最高机密,军官们会收到标有“维奇尔”(Wicher,破译ENIGMA行动的代号)的情报,他们被告知这些情报绝对可靠,但来源绝密。1934年,纳粹德国元帅赫尔曼·戈林访问华沙,他怎么也没有怀疑波兰人已经掌握了他的机密。当他和德国高级官员向位处波兰密码处附近的无名战士墓献花圈时,雷杰夫斯基正透过办公室的窗子望着他们,心中为自己能知道他们最机密的通讯而狂喜不已。
当德国人对ENIGMA转子连线作出一点改动以后,花了一年功夫建立起来的密钥“指纹”档案就变得毫无用处了。但是雷杰夫斯基和罗佐基有了一个更好的主意。他们在ENIGMA的基础上设计了一台能自动验证所有26*26*26=17576个转子方向的机器,为了同时试验三个转子的所有可能位置的排列,就需要6台同样的机器(这样就可以试遍所有的17576*6=105456种转子位置和初始方向)。所有这6台ENIGMA和为使它们协作的其他器材组成了一整个大约一米高的机器,能在两小时内找出当日密钥。罗佐基把它取名为“炸弹”(La Bomba),可能是因为它运转起来震耳欲聋的声响;不过也有人传说,制造这样一台机器的主意是雷杰夫斯基一次在饭店里吃叫做“炸弹”的冰淇淋时想到的。无论如何,“炸弹”实现了密码分析机械化,它是对ENIGMA机械加密的一种很自然的回应手段。
30年代的大部分日子里,雷杰夫斯基和他的同事们不断地从事着寻找密钥的工作,时不时地还要修复出了故障的“炸弹”。他们不知道的是,在密码处处长格维多·兰杰(Gwido Langer)少校的抽屉里,已经有了他们正在绞尽脑汁试图寻找的东西。
事实上,在提供了两份极其重要的关于ENIGMA的情报后,汉斯-提罗·施密特还在继续向法国情报机关提供关于德国通讯的情报。在1931年后的七年中,他和法国情报人员接头二十次,每次都提供若干德国通讯用密码本,上面记载着一个月中每天使用的当日密钥。汉斯-提罗·施密特总共提供了三十八个月的密码。兰杰少校通过法国密码处(“第二处”)负责人居斯塔夫·贝特朗(Guistav Bertrand)上尉得到了这些密码本。如果雷杰夫斯基能够预先知道这些密码,无疑可以节省大量的时间,从而进行其他的同样十分重要的破译工作。
但是兰杰少校觉得雷杰夫斯基的小组应该习惯于单独工作,以便在将来得不到密码本的时候,也能同样破译ENIGMA。我们的确不知道,如果自1931年来没有这样的压力,雷杰夫斯基是否能够有上面所述的重要工作。
波兰密码局的破译能力在1938年的十二月达到了极限,德国人加强了ENIGMA的加密能力。每台ENIGMA机增加了两个可供选择的转子。原来三个转子不同的排列方式有6种,从五个转子中选取三个装入机器中的方式达到了5*4*3=60种。这就意味着要达到原来的效率,“炸弹”中必须有60台机器同时运转,而不是原来的6台。建造这样一台“炸弹”的价格是密码处总预算的十五倍!在1939年一月,连接板上的连线又由六根增加到十根,这样就只剩6个字母不会被交换。密钥的总数达到了一万五千九百亿亿个,是原来的一万五千九百倍。
虽然波兰数学家们成功地推断出了第四和第五个转子中的连线状态,雷杰夫斯基也证明了ENIGMA并非象德国人或盟国密码分析专家想象的那样坚不可破,但是他的方法终于也不适用了。这时兰杰少校应该从他的抽屉里拿出施密特提供的密码本来——但是正是德国人增加转子个数的时候,施密特停止了和法国情报部门的接头。七年中施密特不断地提供给波兰人能靠自己的力量破译的密钥,波兰人急需这些密钥,他们却再也搞不到了。
这对波兰是一个致命的打击。因为ENIGMA不仅仅是德国秘密通讯的手段,更是希特勒“闪电战”(blitzkrieg)的关键。所谓的“闪电战”是一种大规模快速协同作战,各装甲部队之间,它们和步兵、炮兵之间必须能够快速而保密地进行联系。不仅如此,地面部队的进攻还必须由斯图卡轰炸机群掩护支援,它们之间也必须有可靠的联络手段。闪电战的力量在于:在快速的通讯保证下的快速进攻。
如果波兰不能知道德军的通讯,那么想要抵挡德国的入侵是毫无希望的,现在看来这在几个月里就会发生。1939年4月27日德国撕毁同波兰签订的互不侵犯条约,侵占了苏台德地区;在德国国内,反波兰的声浪不断高涨。在此情况下,兰杰少校决定把直到现在还对盟国保密的关于ENIGMA的破译方法告诉盟国同行,以便在波兰遭到入侵后,拥有更大人力物力财力的盟国还可以继续对雷杰夫斯基的方法进行研究。
兰杰少校致电他的英国和法国同行,邀请他们来华沙紧急讨论有关ENIGMA的事项。英法密码分析专家到达波兰密码处总部,全然不知波兰人葫芦里卖的什么药。具有讽刺意味的是,这次会面中用来交流使用的语言是……德语——这是唯一的在场三方所有人都懂的语言。兰杰少校将他们领到一间房间,在那里有一个被黑布蒙住的东西,当黑布被揭开时,英法的密码分析专家目瞪口呆。出现在他们眼前的是一台雷杰夫斯基的“炸弹”。当听到雷杰夫斯基破译ENIGMA的方法时,他们意识到波兰在密码分析方面比世界上任何国家先进至少十年。法国人尤其吃惊,他们以为他们得到的情报用处不大,所以很慷慨地把它们转给了波兰人,他们却让波兰人一直瞒着。英法密码分析专家对波兰同行的感激是无以言表的,直到那时,他们在破译德国密码的方面毫无进展。
兰杰少校给英法密码分析专家的最后惊喜是宣布赠送给他们两台ENIGMA的复制品,以及“炸弹”的图纸,它们由法国密码处的贝特朗(他是个少校了)通过外交邮包寄往巴黎。在横渡英吉利海峡的渡船上有两位看似平常的旅客:英国作家沙夏·居特里(Sacha Guitry)和他的太太女演员依弗娜·普林坦普斯(Yvonne Printemps)。但是在他们的旅行箱里却藏着当时英国最高的机密:一台波兰制造的ENIGMA。为了避开无所不在的德国间谍的耳目,ENIGMA就这样来到了英国,在那里等待它的将是它的彻底灭亡。
两星期后的1939年9月1日,希特勒发动“闪电战”入侵波兰。9月17日,苏联入侵波兰。9月28日,德军占领华沙,波兰不复存在。
B. 替换式密码的介绍
替换式密码,又名取代加密法,是密码学中按规律把文字加密的一种方式。替换式密码中可以用不同的字母数为单元,例如每一个或两个字母为一单元。密文接收者解密时需用原加密方式解码才能获得原文本。由于英语中替换式密码会把26个字母拆开,使用替换式密码较为容易;相反,中文需要建立密码本,然后遂字替换。然而由于中文字极多,完全替换不合经济效益。而且中文中每个字由不同大小的字根来组字,较难转换,因此使用替换式密码的示例比较少。当以替换式密码与置换式密码(英语:Transposition cipher)(或称转位式密码或移转式密码1)相比较时,会发现转位式密码只是把明文中的单元的位置改变,而单元本身没有作出改变;相反,替换式密码只是把单元转换,但密文中单元的位置没有改变。替换式密码亦有许多不同类型。如果每一个字母为一单元(或称元素)进行加密操作,就可以称之为“简易替换密码”(英语:simplesubstitution cipher)或“单表加密”(英语:monoalphabeticcipher)又称为单字母替换加密;字母群体为单元的加密则称为“多表加密”(英语:polyalphabeticcipher)或“表格式加密”(英语:polygraphic)。单表加密只可在一个单元中使用同一种替换加密,而多表加密则可在一个单元使用不同的加密方式,明文单元映射到密文上可以有好几种可能性,反之亦然。
C. 解释在古典密码学中什么是频率攻击
这是对应于简单替换密码的一个破解方法,取比较著名的凯撒法为例:"凯撒法"就是一 种简单替换法,它把每个字母和它在字母表中后若干个位置中的那个字母相对应。比如说我们取后三个位置,那么字母的一一对应就如下表所示:
明码字母表:abcdefghijklmnopqrstuvwxyz
密码字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
于是我们就可以从明文得到密文:(veni,vidi,vici,“我来,我见,我征服”是儒勒·凯撒征服本都王法那西斯后向罗马元老院宣告的名言)
明文:veni,vidi,vici
密文:YHAL,YLGL,YLFL
很明显,这种简单的方法只有26种可能性,不足以实际应用。一般上是规定一个比较随意的一一对应,比如
明码字母表:abcdefghijklmnopqrstuvwxyz
密码字母表:JQKLZNDOWECPAHRBSMYITUGVXF
甚至可以自己定义一个密码字母图形而不采用拉丁字母。但是用这种方法所得到的密文还是相当容易被破解的。至迟在公元九世纪,阿拉伯的密码破译专家就已经娴熟地掌握了用统计字母出现频率的方法来击破简单替换密码。破解的原理很简单:在每种拼音文字语言中,每个字母出现的频率并不相同,比如说在英语中,e出现的次数就要大大高于其他字母。所以如果取得了足够多的密文,通过统计每个字母出现的频率,我们就可以猜出密码中的一个字母对应于明码中哪个字母(当然还要通过揣摩上下文等基本密码破译手段)。柯南·道尔在他著名的福尔摩斯探案集中《跳舞的人》里详细叙述了福尔摩斯使用频率统计法破译跳舞人形密码的过程。
频率分析法对"复式替换密码"就没有用了,比如德国的二战时期的Enigma。
D. 二战期间,德国研制的enigma机的工作原理是什么
下面的图是它的最基本部分的示意图,我们可以看见它的三个部分:键盘、转子和显示器。
我们看见这里键盘和显示器中的相同字母由电线连在一起。事实上那是一个很巧妙的开关,不过我们并不需要知道它的具体情况。我们只需要知道,当一个键被按下时,信号不是直接从键盘传到显示器(要是这样就没有加密了),而是首先通过三个转子连成的一条线路,然后经过反射器再回到三个转子,通过另一条线路再到达显示器上,比如说上图中b键被按下时,亮的是D灯。我们看看如果这时按的不是b键而是d键,那么信号恰好按照上面b键被按下时的相反方向通行,最后到达B灯。换句话说,在这种设计下,反射器虽然没有象转子那样增加可能的不重复的方向,但是它可以使译码的过程和编码的过程完全一样。
E. 谁知道英格玛机
爱伦图灵是一个极聪明的科学家,毕业於剑桥皇家学院后攻读普林斯敦大学并专研逻辑学及电子计算机理论。他的第一个发明“电动式计算机”是他在布莱契庄园工作时的构思,功能是在於将“数字”代替“文字”,其原理就是把数字乘上一个密数字后即成为密文,后来图灵又拜访了法国的布鲁诺并且有“图灵式炸弹机”的想法,此炸弹机破译德国的“英格玛机”电文。后来再更进一步地图灵致力於“大型计算机”,他将大型计算机发展到极限,并思索一台机器如何能像人类一样思考,利用它做的事又能到什麼程度,这就是我们们今天所谓的“人工智慧”。图灵的一生曲曲折折,身为同性恋的他虽有著越的成就,但却被人以同性恋为耻,因而在后世书中支字不提,直到霍赫胡特於<<爱伦.图灵>>一书中将之发扬光大。
由於当时的英国已深知密码部门的重要性因此徵用了一所庄园位於布雷契莱地区,1939年8月,密码学校迁移至此,同时她们也有必要徵募专业人员而这时年轻有为的数学家图灵顺理成章成为庄园的一份子。
而由图零所设计的第一台炸弹机於1940年投入使用,之后又经过数学家戈登委尔什曼成功的改进机器,1941年末布雷契莱中原内已有12台这样的机器以供使用,1943年增至60台。
1940年5月,电文的开始不再出现对破译大有裨益的6个字母掩饰所有可能的调节机器的方法变的更加麻烦。
介绍循环测定器及炸弹机
1.何谓循环测定机?用途为何?
我们知道英格码机有一个相当特别的性质--密钥的变化性,在每天新的日程开始,英格码机就做一次改变,这样的特性让波兰密码学家头痛不已!为解决此问题,他们发明了循环测定器还因应这样的情形,如此一来,减轻了不少的负担,但令人好奇的是,它是如何运作的呢?其实就是由密钥轮的转换及灯泡的闪烁来求得其中是否有关联性?是否有一定的规则可循?循环测定器无法解密或加密,仅仅可以找出其规则性而已,一直发展到最后,密码学家甚至可以搜寻少数的无线电报,藉由循环测定器,即可找出当天密钥˙
2.循环测定器是如何发展制炸弹机?
1938年,德国将英格码机的互动轮变换了,并且是密钥轮由三个增加至五个,每日使用时随机取出三个密钥轮作排列,以作为当日的使用,这样的改变,使得原本的循环测定器,显得力不从心,因为波兰密码学家要破解的量增加了十倍之多,进而发展出更为复杂的机器---炸弹机,并且以一台炸弹机来模拟英格码机,增加效率,这就是炸弹机的发展˙
1940年德国出征挪威,这十庄园已经成功破译第一批密码,一年后,在挪威外海有一架被击落的德国飞机上发现一台英格玛机,且得到一本密钥本。同一年德国在攻打法国时,德的情报部队又在征战途中被俘虏,因此英国又获得更多的资料。再这年五月时,英国缴获一艘德国潜舰,又得到一本密本跟一台英格玛机,这一切获得的讯息推动了之后炸弹机的进一步发展。
1941年九月,德军原本要偷袭敌军,但是英军潜舰突然出现并且攻打德军,这使得德国知道密码被破译的可能性很大。(因为此海域平时人烟稀少。)
1942年年初,德军就用新的机器,因此英军便无法破解,这使得当时的大西洋战役美军的护航舰队做多3次来回大西洋就被击沉,使得此役僵持不下。但是到了十月,在英国的海法港发现有德国的潜舰,於是在英军强力攻击下,德潜舰又被击败,因此英军又获得最新的电码本,因此,1942年十二月庄园又开始能破译德军的电报了。
“超级”是破译英格玛机的代称。
1940年11月,”超级机”侦破德国想更攻击考文垂市,邱吉尔面临是要史考文垂市免遭 大难或是著眼将来拯救更多人的生命而不泄漏”超级机”的秘密,而邱吉尔选择了后者 。
1974年,温特博特姆出书”超级秘密”,但是此书普遍引起反感,因为在书中完全不提 雷耶佛斯基和图灵,并给人认为德国放弃入侵英国全是”超级”的功劳,因此历史学家认为这太夸大了。