加密术相关历史典故

来源:互联网 发布:淘宝店过户 编辑:程序博客网 时间:2024/05/16 18:42

加密术和科学相比,历史更为悠久。在很早以前,人们就已经开始利用密码或者暗语传递信息了。公元前480年,古希腊几乎就被十分强大的波斯帝国所征服。是一条藏于蜡封药片上的秘密消息,让希腊人在大吃一惊的同时,提前做好了准备,并得以在萨拉米斯战役中毫不留情地打败了波斯人,才使得希腊进入了一个黄金时代。如果没有这条消息,希腊在当年就会成为波斯的臣民,西方文明的历史将会是另外一番景象了。

在历史上,层出不穷地出现过因传递信息被察觉或者破译的事情。1587年,苏格兰女王玛丽在监狱中策划一场刺杀伊丽莎白女王使自己登上王位的阴谋。由于进出监狱的一切物品都要接受检查,玛丽与同谋者发明了一种密码,把编入密码的消息藏入啤酒桶盖中,再进行交换。不巧,英格兰的间谍大师沃尔辛厄姆爵士发现了密信,在破译之后仿照玛丽的书信风格编写了玛丽给同谋者的一条假消息,引诱叛变者透露出了参与阴谋的全部人员名单。这些密码就成了玛丽叛国罪行的证据,她也因此被两道斧印结束了生命。

第二次世界大战,其实就是第一次的信息战争。编码和解码,成了战争期间最为重要的事情之一。这里且说两个典型的案例。

第一个案例是导致日本舰队覆灭的信息战。1942年春,美国军界正在为连吃败仗而震惊不已,敌对方日本在太平洋战事中则是高歌猛进。就在这关键时刻,美军的密码破译员截获并破译了日军的一个情报,说美方有一处代号是AF的基地,很快将成为一次重大海上袭击目标。太平洋有很多岛屿上都有美军基地,AF指的是哪个岛呢?在纠结之中,指挥官罗什福尔想到一个办法,他命令中途岛基地发送一个虚假求助信息,就说岛上的淡水蒸馏系统发生故障,基地几无淡水。日本人监听到了这一信息,很快,美国人也受到了日本电波发出的一个微弱信号:“AF缺淡水。”于是,美军明白了,日本人想偷袭中途岛。 194264,日本舰队司令山本五十六带领的作战舰队,迎面撞上了恭候的美国舰队,经过激战,日本四艘航空母舰被击沉,美军只损失了一艘航空母舰。一败涂地的日军狼狈返航,整个太平洋战争从此输掉。

第二个案例是针对德国的U型潜艇的。二战初期,德国的U型潜艇舰队几乎扼住了英国的岛屿要塞,1940年下半年,U型潜艇在大西洋,每个月将英国及其盟国的50万吨货物送到海底,几乎迫使英国屈服。幸亏英国和波兰的一个高级译电小组成功解析出U型潜艇之间通信的密码,使得盟军能够将这些U型潜艇击沉,让英国喘了一口气。

一个信息,从发布者到接受者的整个过程中,一定会经历编码、传送、解码三个阶段。编码就是将信息加密的过程。一个信息只希望特定的对象知道时,就需要编码。有这样一首诗:

我用相思作玉杯,真情当酒意相随,爱心已醉何时醒,你似蝴蝶梦里飞。

稍微分析一下,就会发现这是一首藏头诗,是恋爱的一方在向另一方表达心意。其实,藏头诗就是一种加密术(编码术),它通过坐标变换的方式隐藏了秘密。这个例子虽然很简单,但它反映出了加密术的本质——变换坐标系。

加密术最早应用于古代战争。通讯员在传递情报的过程中,免不了会被对方俘虏,从而使情报落入敌手。这对于作战部队来说,可是生死攸关的大事。为此,指挥部和前线作战部队就会做一些有关编码的约定,使情报采取加密的方式进行传递,而通讯员自己并不知情。传说当年的凯撒大帝就发明了一个编码加密的办法,即在写命令前做一个对应表,明码:A B C D E F....W X Y Z,密码:D E F G H I....Z A B C,如果他想写BABY,就用EDEB来表示。当大将收到了EDEB这个密码后,向前推3个字母,就得到了明文。

这种加密方式其实就是把坐标系横移了3格。但是,这种简单的加密方法也很容易被敌方猜到。只要密码破译者每次将字母向前推1格,看看得到的新单词是否存在或者是否有实际意义即可。

按顺序排列的对应表不安全,怎么办?人们又有了新的创意:对应表不按字母顺序写,搞个乱序的。例如AQBF,随意配对,只要保证26个明密码一一对应没有重复就行了。发信息的人和接收信息的人事前做好约定,接到信息之后一对表就可以还原。这种乱序的加密术确实安全多了,但它还是有一个明显的漏洞。以英文为例,如果一个字母单独成词,那么它不是A就是I;其次,一篇文档里每个字母的出现次数是不同的,例如E出现的次数最多,X在文章中就非常罕见,只要明白了这些字母出现的频率,花一点时间对照一下,就会很方便地破解那条信息。

这真是道高一尺魔高一丈啊!你会编码,自然就会有解码的方式。研究编码的人们只好进一步开动脑筋,在寻新的高招。别说,还真让他们给研究出来了。让每个明文都对应多个密文,可以用下面的例子来说明:在下例中,明文A分别对应着密文XGV,这三个密文的选择取决于明文的位置,A在第一位时选X,第二位时选G,第三位时选V。将整个一段明话按三位一段进行分组后就可以加密了。这个例子是三维的,维数还可以更多,那就更难破译了。这种系统非常有效,但其实还是有统计规律可循的,只是短短一段密文是不足以找到规律的。

明文:    A  B  C  D  E  F  G  H  I  J  K  L  M  N……

              密文1 X  Y  Z  A  B  C  D  E  F  G  H  I  J  K……

              密文2 G  H  I  J   K   L  M N  A S  R  Z  Y  F……

              密文3 V  Y  B  E  H  K  N Q   Z  C R  W……

        明文:ABC  DEF   GAI  EBA  AAF

        密文:XHB  AKK  DGT  BHV  XGK

这种对应规律相对固定的编码系统,还是给破解带来了突破口。随着技术的发展,人们开始尝试用机械改良这种编码系统。19182月,德国发明家谢尔比斯为一台“不可破译”的编码机申请了一项专利,不久以后它就成为举世闻名的恩尼格玛密码机。经过人们的不断完善,到了二战时期成为最为重要的通信工具。一台标准的恩尼格玛密码机总共能有3×10114种以上的密码配置方法,如果单纯分析这种密码,预计破译的时间长达亿万年,所以称其为“不可破译”,也不是空穴来风。

但图灵改变了这一切。二战时期,在英格兰白金汉郡的布莱奇利公园里,密码破译专家图灵和他的伙伴们,利用几个小时就能破译出一条恩尼格玛密码机发出的信息。也正是因为如此,才使得德国的U型潜艇得到了打击,也改变了大西洋战争的发展趋势。从某种意义上说,对恩尼格玛密码机密码的破译,就像一颗闪亮的星,迎来了计算机科学和信息学的诞生,而图灵的思想,是两者的重要组成部分。

图灵是如何改变着一切的呢?这涉及到一个重要的概念——冗余度。先举两个例子来说吧。两个人在一个嘈杂的环境里交谈,尽管听起来声音是断断续续的,但依然可以理解对方的意思,使对话不至于跑题;所有国家的语言,在向对方传递信息的时候,发出去的信息总是多于对方所需要的信息,虽然有时候发出去的信息不完整、有残缺,对方还是可以根据这些残缺的信息来推断出语言发送者想表达的意思。所谓的冗余度,就是在一个句子或一条消息中得到额外提示,从而使含义得到理解。即使一个消息的一部分被去掉,它的含义仍然能保持不变。这就是冗余度的精髓所在。

之所以会这样,是因为所有的语言都是有规则的,正是这种规则,为语言提供了自己的结构,也提供了冗余度。读者在阅读这些语言的时候,除了文字本身,通常还会从语言结构的角度去把握。冗余度是一种安全机制,是它保证了消息能够到达,即使消息在途中受到一定的损坏也没有关系。

大家都知道,电脑中的压缩软件可以使我们的文件变小,以便在一个U盘中装入更多的文件。压缩软件的工作原理就是通过从一个文件中去掉(几乎)所有的冗余度,只留下关键的部分。而解压的过程,就是根据语言结构和规则,恢复冗余度的过程。由此可知,信息和冗余度是互补的,当我们从一条信息中去掉冗余度时,留下来的就是信息。

密码学所要面对的关键问题是,在保留一条信息的核心内容时,去掉或者掩盖这条信息的冗余度。如果密码没有冗余度,是很难被破解的,因为我们无法将其和相关的语言规则建立联系。恩尼格玛密码机的缺点之一,就是在密码信息中加入了冗余度,造成保密性减弱。比方说,该密码机从不让字母发生变化,一个已经加密的字母E,可能是其他任何字母,但不可能是E。这样一来,就为破解提供了一点点信息。缺点之二是德国人的交流方式,他们的语言风格也会在密码中呈现出来。图灵等人首先破译德国人的加密天气预报,从中获得德国人的密码语言风格,再将其运用到对军事密码的破译之中。

还是那句话,道高一尺魔高一丈啊!

 

《解码宇宙:新信息科学看天地万物》  []查尔斯·塞费/  隋竹梅/  上海科技教育出版社  2010.4


0 0
原创粉丝点击