Dec 10, 2010

凯撒的加密术

原文地址: http://songshuhui.net/archives/46557

送上开场诗一首:我用相思作玉杯,真情当酒意相随,爱心已醉何时醒,你似蝴蝶梦里飞。

你可以把这首诗发给你女友,聪明的她一定能看出这是首藏头诗,从而明白你的心意。其实,藏头诗就是一种加密术,它通过坐标变换的方式隐藏了秘密,这个例子虽然很简单,但它反映出了加密术的本质–变换坐标系。

加密术最早应用于古代战争,当时是靠士兵随身携带的信件来传递情报,但总是免不了被敌方俘虏,从而使情报落入敌手,这对作战部队而言可是生死悠关的 大事。传说当时的凯撒大帝有一个能加密的办法,就在写命令前做一个对应表,明码: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,当然别的数也可以,作战前由凯撒定好移位数后通知大将 们,战时就可以进行保密通信了。这种加密方式其实就是把坐标系横移了3格。但是,这种简单的加密方法也很容易被敌方猜到,敌人从1到25推25次,得到 25组新编码,必有一种编码是真实的情报内容,把这组编码区别出来非常容易,因为其它24组都是毫无意义的字母组合,只有这一组是有意义的句子,找个识字 的人就可以看得出来。
既然这种加密手段并不安全,那凯撒该怎么办呢?有个聪明人给他出了个主意,对应表不按字母顺序写,搞个乱序的。例如A对Q,B对F,随意配对,只要 保证26个明密码一一对应没有重复就行了。每次出征前,凯撒就会搞个非常杂乱的明密码对应表,然后发给大将。这招很不错,敌人即使截获了密文,由于不知道 明密码对应表,也很难搞明白,这其实也是坐标系统的一种变换,这种方法被后人称为“单表系统”。

这种乱序的加密术比顺序的安全多了,但它还是有一个明显的漏洞。以英文为例,一篇文档里每个字母的出现次数是不同的,例如E出现的次数最多,甚至可 以搞出个频次表来,如果一份密文中R出现的次数最多,那这个R会不会就是E呢?这个猜想很合理,即使代表的不是E,那它代表的也应是明文中出现次数较多的 字母。按照这种思路试试吧,卖糕的,密码解开了。

现在又轮到加密方纠结了,他们想,破解方是在拿明密文中字母出现的频次做文章,如果我们能把频次的区别消除掉,他们不就没办法了吗?道理虽然很好,但怎样才能消除这种频次的差别呢,毕竟明文中字母的频次就是不一样,这本身没法改变啊。

功夫不负有心人,有一天加密方终于找到了解决问题的关键,这个关键就是“多表”,每个明文都对应多个密文,例如图上的A分别对应着XGV,这三个密 文的选择取决于明文的位置,A在第一位时选X,第二位时选G,第三位时选V。将整个一段明话按三位一段进行分组后就可以加密了。这个例子是三维的,维数还 可以更多,那就更难破译了。这种多表系统非常有效,但其实还是有统计规律可循的,只是短短一段密文是不足以找到规律的。

这种对应规律相对固定的多表系统,还是给破解带来了突破口。随着技术的发展,人们开始尝试用机械改良这种多表系统,通过引入更多的变化来增大破解的难度。二战期间德军有一种 加密转轮机,四个轮子负责把输入的明码置乱成密码,其对应规律是动态变化的,使破译难度大大增加。有一个负责管理加密转轮机的德军军官汉斯.施密特,为了 钱与盟军情报人员勾搭上了,他提供了该机的技术资料,得到了相当于现在1千万法郎的报酬,后来他害怕了想退出,但已经由不得他了,他先后与盟军情报人员接 头34次,波兰顶级数学家里杰斯基等人在这些绝密情报的帮助下终于将该转轮机完全破解。

还是回到凯撒吧,他当然知道自己的加密术并不很安全,送情报的士兵被抓后受刑不过就会把密信交出来,如果防止传令兵被俘后泄露情报呢?有人又给他出 了一招:把一批士兵的头发剃光,并用火烙铁在脑顶上烙上不同的印迹,并对哪个兵烙上什么样的疤做好记录,被烙的士兵一头雾水,不明白这是为什么。大战之 前,凯撒召集大将,并要求他们牢记一组对应关系,梅花疤代表“马上率部向我驰援”,三角疤代表“固守阵地”等等。

战斗中凯撒被围困了,情况很危机,他拿来了记录本,把烙梅花疤的几个人都点了出来,命令他们沿不同的路线到大将处报到,“不用我们传个口信或带个情 报吗?”这些人很不解,“不用,你们到大将处报个到就算完成了任务”凯撒说到。这些人出发了,有的人成功地找到了大将报到,大将二话不说,立即给他剃头查 疤。也有的人被俘,严刑拷打也问不出情报,因为他的确不知道情报。距离剃头烙疤的时间已经很久了,士兵新长出的头发已经遮盖了烙疤,敌人也轻易察觉不到这 个蹊跷。

加密后的密文即使摆在敌人面前,他们也搞不清楚其真实内容,但让他们知道了这是件隐藏着重要情报的密文,就会拼命破解,这总归不是好事。如果密文摆 在他们面前,他们竟然毫无察觉,那当然更好了,这就是隐写术。凯撒给传令兵头上烙疤就是隐写术的鼻祖。谍报小说里经常会介绍到这样的场景,潜伏者用淀粉水 写情报,晾干后再在上面写一封信作为掩护,收信者并不关注信的内容,而是在信纸上涂上一层碘,淀粉水情报就会变成蓝色显示出来了。这样的一封信,即使让特 务机关拆开审查,只要不知道这个门道,那什么也查不出来。

很多加密术看起来非常巧妙,但随着计算机的诞生,这些被称为古典密码术的方法全部失效,因为它们根本抵挡不住计算机的穷举分析。现代密码学的思路跟 古典密码术非常不同,它是先找出一个数学难题,然后把加密方法归结到这个难题,若解不出这个数学难题就破解不了他的密码。隐写术也逐渐脱离了物理和化学反 应,而是与加密术结合了起来,把秘密隐藏在数据中,现代密码学更加引人入胜,且等以后慢慢道来。

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger