注册 找回密码
搜索
查看: 369|回复: 0
打印 上一主题 下一主题

凯撒大帝的加密术:剃光士兵的头 烙上不同印迹

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-12 19:18:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(转帖)

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

你可以把这首诗发给女友,聪明的她一定能看出这是藏头诗。其实,藏头诗就是一种加密术,它反映出了加密术的本质——变换坐标系。

加密术最早应用于古代战争,传说凯撒大帝有一个能加密的办法,就是在写命令前做一个对应表,明码:A B…Y Z,密码:D E…B C,如果他想写BABY,就用EDEB来表示。

但是这种简单的加密方法很容易被敌方猜到。敌人从1到25推25次,得到25组新编码,必有一种是真的。把这组编码区别出来非常容易,因为其他24组都是毫无意义的字母组合,找个识字的人就可以看得出来。

有个聪明人给凯撒出了个主意,搞个乱序的。例如A对Q,B对F,只要保证一一对应没重复就行了——这种方法被后人称为“单表系统”。

这招很不错,但它还是有一个漏洞。以英文为例,一篇文档里每个字母出现的次数是不同的(见左图)。例如E出现的最多,如果一份密文中R出现的最多,那会不会就是E?即使不是E,也应是明文中出现次数较多的字母。按照这种思路,天啊,密码解开了。

现在又轮到加密方纠结了。他们想:如果把频次区别消除掉,敌人不就没办法了吗?

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

其实凯撒还可以称得上隐写术的鼻祖。他知道自己的加密术并不很安全,有人又给他出了一招:把一批士兵的头发剃光,用火烙铁在脑顶上烙上不同印迹,并做好记录,但士兵们却一头雾水。大战之前,凯撒要求大将们牢记一组对应关系,梅花疤代表“马上率部向我驰援”,三角疤代表“固守阵地”等等。

战斗中凯撒被围困了,情况很危机。他拿来记录本,把烙梅花疤的几个人都点了出来,命令他们沿不同的路线到大将处报到。这些人出发了,有的人成功地找到了大将,二话不说被剃了头发。也有人被俘,严刑拷打也问不出情报,因为他的确不知道情报。距离剃头烙疤的时间已经很久了,士兵新长出的头发已经遮盖了烙疤。

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

本版积分规则

关于都市网 | 服务条款 | 开放平台 | 广告服务 | 商务洽谈 | 都市网招聘 | 都市网公益 | 客服中心 | 网站导航 | 版权所有

手机版|小黑屋|Comsenz Inc.  

© 2001-2013 源码论坛 Inc.    Powered by Weekend Design Discuz! X3.2

GMT+8, 2024-12-13 05:36 , Processed in 0.104697 second(s), 18 queries .

快速回复 返回顶部 返回列表