一张表梳理历史朝代顺序

古代的实例

密码术被广泛应用之前,人们先是用隐文术为秘密信息加密。

隐文术,就是把文字隐藏起来的方法。古希腊时,一位流亡的希腊人听说波斯暴君薛西斯要进攻希腊,就将消息刻在一块木板上,再在上面涂一层蜡盖住刻痕。木板传到希腊,希腊人得知将受到攻击,提前整顿武备,挫败了波斯的进攻。

近代隐文术中比较有趣的例子,是在一张纸的不同位置上挖一些小窟窿,用这张纸蒙上一篇布满文字的公开文献,比如一张报纸,透过小窟窿露出来的字就是发信者想传递的原文。

电影《火烧圆明园》《美丽心灵》中都有类似的情节。隐文术发展到现代,已经与密写药水和缩微胶卷等技术联系在一起。

隐文术的缺点是它过分依赖物质介质。如果用密码术的术语形容,它的加密法和密钥太容易引起人们的注意,那是一把看得见的钥匙,而不是一种码。

易位与替换

密码术主要有两种:易位法和替换法。

易位法在公元前5世纪就被斯巴达人用于加密军事信息。所谓易位,就是原文和密文的文字(或字母)不变,只是按照一定的规则改变它们的位置或前后顺序。举例来说——

原文“我的密码你永远不懂”。

可以按照如下加密法加密:

我密你远懂的码永不

最后得出伪文“我密你远懂的码永不”。

要想让接收者看懂,你只需将密钥“懂后回行,间隔镶入”通知接收者就可以了。当然,这是最简单的易位。

如果把一个句子拆成三层、四层,破解的难度就会增加。

替换法,是将原文文字或字母按照规则用其他文字或字母替换。

比如原文“我的密码你永远不懂”。密钥是:流氓兔=我.表情=密码.你=恐龙。

利用替换术制订的著名密码,早期可以举恺撒密码为例。恺撒密码的规则是,原文的每一个字母被替换成字母表中排在此字母后三位的字母。如原文为“Attack”(进攻),按照恺撒密码的加密规则:A—D,t—w、c—f、k—n,就被加密成“Dwwdfn”。

接收者收到密文后,按加密规则进行逆推,即可得出原文。恺撒密码在几个世纪内一直被广泛使用,被认为是非常安全的。

直到公元9世纪,阿拉伯科学家阿尔·金迪提出的字母频率分析法终结了恺撒密码无法破译的神话。

16世纪,法国外交官维热纳尔设计了一种更复杂的字母替换规则。运用这种规则先要排列一个字母方阵,然后规定一个单词作为密钥,对照原文在方阵中找出密文。

维热纳尔替换法能够掩盖密文中字母出现的频率。但是到19世纪,维热纳尔替换法还是被一位普鲁士人找到了破译规律。

恺撒密码和维热纳尔替换法只是人工加密法中比较著名的例子。约从19世纪初开始,人们已经研制出机器加密装置。计算机发明之前的密码机,以第二次世界大战中大出风头的恩尼格玛密码机最为著名。

发明和破译密码的代价

两次世界大战期间,无数天才的大脑在不断地发明和破译着一堆堆信息。

1917年,德国决定实行无限制潜艇战,以封锁英国的海上运输,作战对象包括尚保持中立的美国。

为避免美国宣战,德国决定先下手,并制订了一个绝密计划:策动墨西哥与日本对美国宣战,使美国腹背受敌,自顾不暇。这一绝密方案的电报被英国截获了,英国的密码学家破译了密文。消息传出,美国举国哗然,4月16日,美国向德国宣战。9个月后,德国投降。

1919年,德国谢尔比斯发明了一种新的密码编码装置——恩尼格玛(Enigma)密码机,它成为历史上最难破解的加密系统,被德国军方大量采用。

随着二战的爆发,破译恩尼格玛的重要性与日俱增。为此,英国荟萃全国最好的数学家、密码学家来完成这一任务。最终,由于德国报务员的失误,英国破译了恩尼格玛的秘密,开始源源不断地接收并破译德军的电报。

1940年11月12日,德国下达了“月光奏鸣曲”计划,决定在14日摧毁英国考文垂市,被破译的德军的进攻命令送到英国首相丘吉尔的手上。如果此时通知考文垂市的居民撤退,虽然能减少考文垂市的损失,但会使德国怀疑恩尼格玛已被破译,从而改用其他密码,使英国断了绝密情报的来源。

为了麻痹德军,丘吉尔决定牺牲考文垂市,不采取任何防范措施。最后,德国飞机准时到来并狂轰滥炸,将全城夷为平地,居民伤亡惨重。沉重的代价换来的收获是,德国始终坚信恩尼格玛没被破译,一直使用到大战结束。英军则在北非战场的对德作战中,在诺曼底登陆战役中,都靠恩尼格玛取得了重要情报。

现代密码学的开始:非对称加密体系

1976年12月,美国政府正式启用IBM公司研制的新型密码系统——数据编码标准,简称DES。DES的采用,解决了密码系统标准化的问题,至今仍是美国官方认定的加密标准。

虽然统一了数据编码标准,人们还是经常在信息保密方面遇到难题。其中最突出的一个难题是,传统的加密技术都采用单密钥方法,信息发送者使用密钥将原文加密。

接收者使用同一密钥解密。没有密钥,就无法译回原文。长期以来,一直有一个根本问题困扰着密码学家,就是如何将密钥安全传递到接收者手中。这种方法费时费力不说,也不安全。

解决这个难题的是笛福和赫尔曼,他们的解决方案是“双重加锁方案”。用双密钥方法加密原文,发文方和收文方无需传递密钥。举一个例子:

流氓兔要和恐龙秘密通信,他们各有一把自己掌管钥匙的锁。流氓兔将原文放在一个盒子中,挂上自己的锁,送给恐龙。恐龙在盒子上加挂上自己的锁,将盒子回送给流氓兔。流氓兔取下自己的锁,再把盒子送到恐龙手中。这时,盒子上只挂着恐龙的锁,恐龙就可以用自己掌管的钥匙开锁取出原文了。

在双重加锁方案的基础上,笛福经过进一步研究,发明了“非对称加密”密码体系。传统的加密系统中,用于加密的密钥与解密的密钥完全相同,解密过程只是加密过程的反演,被称为“对称加密”。

非对称加密系统中,加密密钥不同于解密密钥,加密密钥公之于众,称为公开密钥,供所有人加密发送原文。解密密钥是私人密钥,只有收件人自己掌握,可用来解密别人发给自己的原文。

“非对称加密”已经完美地解决了密钥分发的问题。但是要将“双重加锁方案”和“非对称加密”体系应用到计算机和互联网中,还需要设计一套简便的算法。

麻省理工大学计算机科学实验室的三位研究员最后成功地完成了这一任务,他们创建了RSA“非对称加密”体系,是现代密码学中最有影响的密码系统。