第一章 密码小传
“世界上有两种密码:一种是防止你的小妹妹看你的文件;另一种是防止当局阅读你的文件资料。”
- 布鲁士 . 施耐尔 (Bruce Schneier)
你要防止小妹妹偷看你的文件,似乎不必太伤脑筋。最简单的办法,你像“达芬奇密码”那本书上说的那样,把文字左右颠倒着写,小妹妹就以为你写的是天书。要防止当局阅读你的文件,可就不像防小妹妹那么容易了。假如你是个很幸运的人,当了国家的大官,你就要想办法不让别的国家阅读你的秘密。这你可就要使上浑身的解数了,有时还是不行。国与国之间互相偷听对方的秘密,自古以来就是平常事。为了不让人家知道自己的秘密,人们用了很多办法,隐写术是一种。隐写术只须纸笔,当然,你要懂点化学,否则你的隐写很容易被敌人读出来。密码是另外一种。密码的最大好处就是,即使敌人拿到了你的文本,也不知道如何阅读。早在公元前1900年,一个古埃及书写员就在一个铭文中使用了非标准的象形文字,这是人类最早的有记录的密码术。但是密码的普遍运用,则是起始于两千多年前的罗马帝国的凯撒大帝。凯撒大帝不但是一个军事家,思想家,政治家,同时还是一个发明家。他在指挥军队作战时,经常遇到一个难题:如何把军事命令准确无误地送到前方。那个时候没有无线电。送命令是先写下来然后派一个士兵骑马送到前线。可是送信的士兵常常在途中被敌人捉去。敌人杀那个士兵的头倒不要紧,要是从那士兵身上搜到那最重要的情报,就要耽误军机大事了。怎么样才能让敌人无法阅读那情报呢?凯撒大帝想了一个在当时是绝顶聪明的办法:把每一个字母按某种规律用其它字母代替。比如说,用后4位字母替代 – A用E替代,B用F替代,等等。这里,“4”就叫密码钥匙(密匙)。这样,原来的明码文就变成了不容易阅读的密码文。这个加密法就叫凯撒替代法。下面一段文字就是用凯撒替代密码方法加了密。你可以破译还原它吗?它用的密匙是什么?
Euhdn Mdsdqhvh Frghv lq ZZLL
怎么样?看出来了吗?显然,你只要知道密钥,就可构造一张映射表。其加密和解密均可根据此映射表进行。凯撤密码的优点是密钥简单易记。但它的密码文与明码文的对应关系过于简单,故安全性很差。在英文中,凯撒替代法的密匙(空间)总共只有25个(第26个等于不加密)。这也就是说,你最多只要猜25遍,就 可以破翻译任何凯撤密码。如此容易,所以在今天只有教科书上还介绍凯撤密码,没有人还在使用它。当然,你要用凯撤密码防止小妹妹偷看你的文件,还是会很有效的。
那么,如何防止当局阅读你的文件呢?这你就要动点脑筋了。显然,你不可以用对付小妹妹的那个办法来对付当局。不过,我们还是有一些简单易行的加密的办法,即使当局要阅读你的文件,也要头疼好几天。这其中之一就是换位密码。
换位密码是采用移位法进行加密的。它把明文中的字母重新排列,本身不变,但位置变了,换位密码是靠重新安排字母的次序,而不是隐藏他们。最最最最最简单的例子就是把明文中的字母的顺序倒过来写,然后以固定长度的字母组发送或记录,例如:
明文: computer systems
密文: smetsys retupmoc
这就是“达芬奇密码”那本书上说的办法。当然,这种换位法太简单,只能拿来骗小妹妹。要让当局稍微头疼几天,你的换位密码就要稍微复杂一点,比如说,采用列换位法:
将明文字符分割成为若干个(例如5个)一列的分组,并按一组后面跟着另一组的形式排好,最后,不全的组可以用不常使用的字符或a,b,c…填满。密文是取各列来产生的(竖读)。
例:明文:BREAK JAPANESE CODES IN WWII
进行排列后,变成这样:
B R E A K
J A P A N
E S E C O
D E S I N
W W I I A
这还是明文。要把它变成密文很容易:从最左边一列开始,从上往下读,这就把明文变成了密文:
BJEDWBASEWEPESIAACIIKNONA
这里,我们使用的密钥为5
怎么样?要破译这段密文,在不懂得加密方法和密匙的情况下,大概要头疼好几天的。你可以使用更好的换位方法,跟当局玩捉迷藏的游戏。
十九世纪的人类最伟大的发明之中,有两项为现代通讯奠定了基础,这就是莫尔斯发明的莫尔斯电码和马可尼发明的无线电通讯。这两项发明使人类远距离即时通讯的梦想成为现实。莫尔斯电码和无线电通讯的结合,就是我们今天仍然在普遍使用的无线电报。无线电报在军事上的应用,使得战场上军事指令可以迅速传送到各个单位,并增强了部队之间联系和协调。但是,通过无线电波送出的每条信息不仅己方可以收到,敌方也同样可以收到,收听敌方的电讯信息,叫做“截获”(“interception”)。 叫敌方不截获己方的电文几乎是不可能的。唯一的办法就是给每条信息加密。这事说起容易做起难。
就在人们还没有找到给无线电通讯加密的好办法的时候,第一次世界大战不合时宜地的爆发了,这给所有的密码和解码人员打了个措手不及,哪个国家掌握了相对来说比较好的密码技术,哪个国家就有情报优势。一场惊心动魄的秘密通讯的全球战役打响了。
在第一次世界大战之初,由于无线电通讯保密还没有好的办法,古老的隐文保密方法还在被普遍应用。有一天,在德法边界上,有一位德国农妇在从法国一边过边界时受到了法国哨兵的盘查。哨兵打开农妇提着的篮子后,发现里面不过是些熟鸡蛋而已,就打算放那个农妇过界。那个哨兵大概是由于无聊,随便拿起一个鸡蛋抛向空中又接在手中。这不过是一个小动作而已,没想到那个农妇惊慌失措。那哨兵顿起疑心,他将鸡蛋剥开,发现蛋白上布满了字迹,都是英军的详细布防图,还有各军旅的番号。其实,这是一种很简单的密写方法:用醋酸在蛋壳上写字,等醋酸干了后将鸡蛋煮熟,字迹便透过蛋壳印在蛋白上,外面却没有任何痕迹。法军恍然大悟,怪不得德军对协约国的驻防情况了如指掌,原来德国还有这雕虫小技。
隐文式加密毕竟是古老的方法,它要求加密方法的秘密隐藏。一旦这种方法被对方发现,就彻底失效了。要对方找不到自己的加密方法,似乎十分困难。最理想的办法,就是干脆让对方知道加密的方法,但是把密匙做的很机密,让对方累死也找不到。这都是后话了。
有线通讯相对来说比无线通讯较容易保密,因为敌人要截获有线通讯至少要挂个监听器在线路上,这就比较容易被发现。但是,有线通讯也相对来说较容易被阻断。抗日战争中敌后武工队大割电话线,就是破坏日本鬼子的有线通讯。不过,这项阻断通讯方法的发明专利权却不在敌后武工队手里。1914年8月5日,英国“泰尔柯尼亚”号(Telconia)拖船上的一个潜水员一怒之下割断了德国在北大西洋海下的一条国际通信电缆。其实,他当时也不知道那海底电缆究竟担负着什么通讯工作,反正是德国人铺设的就对了。管它呢,先割了再说。这一割不要紧,德国不得不转用瑞士或美国的电缆,或者干脆用无线电通讯来弥补这个损失。而美国是英国的盟国,自然会和英国分享截获的德国通讯。英国也在日夜监听德国的所有无线电通讯。这可乐坏了在英国海军部40号工作室的人们。那个时候,英国情报局第五处还在娘肚子里没有出生,40号工作室就是英国的全部密码破译家当了。你可别以为那里的工作人员都是什么专家学者。那里什么样的怪人都有:占星学大师、橡棋大师、朴克大师、语言学家、数学家,等等等等。你要是有本事猜迷,你就很有可能 被40号工作室召去服务。拿今天的标准看,你的本事可能要比当年在40号工作室的人们要大很多。尽管40号工作室人才济济,还是不能掌握德国的所有情报秘密。不过他们的运气实在好,一个月后,传来了特大喜讯:同盟者俄国人在波罗的海截获的一艘德国巡洋舰上找到了一本德国海军密码本。这本密码很快被送到了40号工作室。靠了这本密码,英国获得了许多德国战船的动向。
第一次世界大战期间,法国的密码人员也立下奇功。一开始,他们掌握了德国的好几套密码,可以得心应手地掌握德军的许多情报。但是,从1918年3月5日开始,他们截获的德军密电中就只有A、D、F、G、X五个字母了。这是怎么一回事?
原来,当时的德军已经意识到他们的密码可能已经被敌方成功地破译了。于是,他们就在考虑换一套新的密码。他们有很多新的方案。经过反复研究与实验,密码专家尼贝尔设计的方案被证明安全性最高。这种密码只需要五个字母:A、D、F、G、X,画一个5×5的正方形,在左边和上边写好A、D、F、G、X,然后再在表中亳无规律地填入25个字母(i与j合而为一),见下图:
A D F G X
A n b x r u
D q o k d v
F a h s g f
G m z c l t
X e ij p y w
这样,拍发单词MESSAGE前可以编为密码:GA XA FF FF FA FG XA。这个加密方法看起来很悬乎,其实并不很难破译。只要有足够的文本,很容易找出规律来。
当时德军的前锋部队已经到达距离巴黎只有80公里的地方了。一个重大问题摆在法军总部面前:鲁登道夫将军的下一个进攻目标在哪里? 协约国应该在哪里集结战略后备队呢?
法国密码破译专家乔治 • 潘万手上拿着德国人的电文,焦急万分。虽然他已经发现了德国人最新加密的方法,但是还没有找到相应的密匙。他已经好几天没有合眼了。就在他几乎放弃的时候,突然眼前一亮:被截获的德军情报中添加了一个新的字母“V”,这不就把密匙找到了吗?乔治•潘万猜到,增加一个字母就意味着基本坐标方框已经从5×5扩大为6×6的正方形,而这一定是为了把数字0—9直接进行编码的需要。6月3日凌晨,潘万和他的伙伴们成功地破译了仅仅几小时以前截到的一份电报,它泄露了德军下一步将进攻巴黎北部贡比涅的计划。协约军总司令、法国参谋总长福煦元帅立即调动他的后备队进驻贡比涅的阵地。德法两军的战斗持续了五天,最后以德军的失败结束。
尽管德国人的密码实在很糟糕,但比起当时的俄国,他们还是幸运很多。1914年8月,俄军派出两支部队以钳形之势深入东普鲁士包围田纳伯格村附近的德军。德军人单势孤,但能够听到俄军的无线通讯。俄军的密码系统低级而且混乱。截取的情报告诉德军:俄军的南面部队比北面部队行进要快。德军马上发起攻势,摧毁了俄军南面部队,俘虏了十万人,俄军死亡和失踪约计三万人。这是一战中对俄军的第一次重创,俄军自此开始崩溃,直至革命爆发。很显然,俄军失败的部分原因,就在于没有一个良好的密码系统。
近代密码学历史上最惊心动魄的密码破译事件开始于1917年1月17日。那一天英国海军40号工作室的情报人员 威廉 . 蒙哥马利(William Montgomery)和尼杰. 格雷(Nigel Gray)接到一份刚刚截获的以德国最高外交密码0075加密的电报。0075这个令人无法想象的系统由一万个词和词组组成,与一千个数字码群对应。当时40号工作室的情报人员还不能破译它。密电是德国外交部长阿瑟•齐麦曼发给驻华盛顿大使约翰•冯•贝伦朵尔夫,然后继续传给德国驻墨西哥大使亨尼希•冯•艾克哈尔特,电文将在那里解密,然后交给墨西哥总统瓦律斯提阿诺•加汉扎。
密件从柏林经美国海底电缆送到了华盛顿时,就被英军截获了。虽然英国意识到了它的重要性,但还是不能破译它。就在这时,接到密件的德国驻美大使约翰•冯•贝伦朵尔夫在他的华盛顿办公室里犯了个致命的错误:他们将电报用新的0075密件本译出后,又用老的密码加密后用无线电报传送到墨西哥城。这个无线电报也被英国截获了。而老的密码早已经被40号工作室的情报人员掌握。这样一来,40号工作室有了同一文件的两个加密版本,一个用的是已知的老密码加密的,另外一个是用新的未知的密码加密的。大使先生没有意识到,他已经犯下了一个密码使用者所能犯的最不可饶恕的错误 – 为密码破译人员提供了明码文本和密码文本。有了这两个文本,破译0075密码就可以顺利的多了。
蒙哥马利和 格雷在拿到那些文本后开始了艰苦的工作:先把那个通过无线电截获的密件用旧密码译出,这让他俩一夜没合眼。然后,他们拿译好的文本同那份用0075加密的文件相比较,找出密码的规律。他们俩无论如何也没想到,他们那一夜的工作使他们的名字写上了密码学史册,永远被人们称道。那个电文最后导致了美国加入第一次世界大战。
尽管1915年美国的远洋客轮“露斯塔尼亚”号被德军击沉,美国实际上并没有卷入第一次世界大战的意思。美、德两国曾达成默契:只要德国对其潜艇的行动加以限制,不再染指美国商船,美国将继续保持中立。齐麦曼的这份电文概括了德国要在1917年2月1日重新开始无限制海战以抑制英国的企图。为了让美国不能参战,齐麦曼建议墨西哥入侵美国,重新宣布得克萨斯州、新墨西哥州和亚里桑纳州归其所有。德国还要墨西哥说服日本进攻美国,并由德国提供军事和资金援助。
英国海军部看到这份电文,大喜。他们迫不及待地要让美国知道这件事,好把美国赶快拖下水。但是,英国刚刚得到了0075密码,却又不能让德国知道这件事。怎么办呢?英国就耍了个花招:送了一个特工到墨西哥电报局,从电报局那里得到了送往墨西哥总统的解了密的文件拷贝。然后,英国人把那个文件拷贝先送给美国驻墨西哥大使馆。这样一来,这个秘密看起来就是在墨西哥泄露的。
美国接到那份文本后被德国这一恶劣行径愤怒了。六个星期后,美国对德国宣战。这为德国的最后失败敲响了丧钟。
这可能是密码改写历史的一个最典型的事件。齐麦曼的电文使美国相信德国是美国的敌人。德国利用密码破译击败了俄军,反过来又因自己的密码被破译而加速走向了灭亡。
下一章,我们要谈谈美国是如何加入这一个惊心动魄的国际游戏的。
- Re: 二次大战中盟军打败日本海军的秘密武器 (2)posted on 08/19/2005
讲得太快了,要知道这里许多不是学密码解码的,另外对那些战争的
背景也希望能交待得细一点....我想,再写一部厚厚的达芬奇密码也
是不错的主意。
谢谢好文!
Please paste HTML code and press Enter.
(c) 2010 Maya Chilam Foundation