在古罗马,虽然流传下来的密码资料并不多,但对后世的影响却很大,特别是以恺撒命名的“恺撒密码”,甚至开创了至今仍有价值的一大类密码——“移位密码”。
恺撒,史称恺撒大帝,罗马共和国末期杰出的军事家和政治家;他以其卓越的才能,成为了罗马帝国的奠基者。恺撒的全名是盖乌斯·尤利乌斯·恺撒,公元前100年7月13日生于罗马。其父担任过财政官、大法官等职务,还曾出任过小亚细亚总督;其母来自显赫的贵族之家,其外祖父曾任当时的执政官。少年恺撒就读于专门培养贵族子弟的学校,他天赋异禀,十几岁就发表了自己的文学作品《赫库力斯的功勋》和悲剧《俄狄浦斯》。他酷爱古希腊文化,特别是希腊的古典文学;还喜欢体育运动,精通骑马、剑术等;他肌肉发达,体魄强健。成年后,历任过财务官、祭司长、大法官、执政官、监察官、独裁官等职。在处理军事政务时,他沉稳内敛,认真严谨;在与他人商讨事务时,他言谈得体,颇有风度;在为人处世时,他宽厚仁慈,开朗大度;但他喜欢独断专行,渴求知识,醉心于开创伟业。公元前60年,恺撒与庞培、克拉苏秘密结成三巨头同盟,随后出任高卢总督,并在8年时间里征服了高卢全境(今法国一带),还袭击了日耳曼和不列颠。公元前49年,他率军占领罗马,打败庞培,集大权于一身,实行独裁统治,还制定了《儒略历》。公元前44年3月15日,恺撒被暗杀,享年56岁。恺撒死后,其甥孙(也是其养子)屋大维,开创了罗马帝国,并成为首位罗马帝国皇帝。
恺撒密码的加密原理很简单:把每个英文字母,用其随后的第三个字母来代替,比如,A变成D,B变成E,……,X、Y、Z变成A、B、C;于是,明文“A dog”加密后,就变成了密文“D grj”。解密时,也很简单,只需把密文中的每个英文字母,用其前面的第三个字母来代替就行了,比如,A,B,C分别变成X,Y,Z,……,D变成A,E变成B,等等;于是,密文“D grj”就被解密成了明文“A dog”。
据说,“恺撒密码”备受恺撒青睐,以至他在日常信件中,也都要使用这种加密方法;所以,恺撒在战争中占尽优势,以至他的敌手读不懂他的任何机要信息,最后只好纷纷扔下武器,乖乖投降。猛然一看,“只将字母按顺序进行3个位移”好像很平凡;但在英文字母表中,可做从1到25之间的任意移位,每个字母也可用任意其他字母来代替,只要收信人知道原来的密钥,即那个事先约定的变换表;这就意味着,在简单的替换密码中,存在着的变化可能性达到天文数字的403 291 461 126 605 635 584 000 000种!根据古代的计算水平,假设测试一个可能的替换需要1秒钟,那么,试图通过穷举法,来破解该替换密码所需要的时间,将超过宇宙年龄的10倍!
恺撒密码还有一种扩展型,称为仿射密码,其原理是:将a,b,…,z这26个英文字母,分别用0,1,…,25这26个整数表示;于是,加密算法的数学公式就是这样一个仿射变换 C =( aM + b )mod 26。其中,( X ) mod 26表示模26运算,即 X 除以26后的余数; a 是与26互质的任何一个整数,即除13之外,在0到25之间的任何一个奇数; b 也是任何一个0到25之间的整数;( a , b )便是密钥,特别是当 a =1、 b =3时,它所对应的仿射密码,就刚好是恺撒密码。相应的解密算法便是 M = a -1 ( C - b ) mod 26。仿射密码的安全强度,远远大于恺撒密码,当然也肯定经受不起现今计算机的穷举攻击。
关于恺撒与密码的故事还有很多,有兴趣的读者,建议阅读恺撒亲自撰写的报告文学《高卢战记》。该书比较平实地记述了恺撒许多事迹,特别是他在“恺撒密码”的帮助下,按时间先后顺序所经历过的各次主要战争,包括:针对厄尔维几人的战争,针对日耳曼人的战争,针对比尔及人的战争,针对文内几人的海战和对日耳曼人的报复,入侵不列颠的战争,镇压高卢大叛乱和阿来西亚之战等。此外,书中还记述了恺撒的作战心得和在高卢的外交活动,当然这些都离不开“恺撒密码”的暗助。其中,阿来西亚之战是全书最为精彩的章节,也是高潮之所在。初战时,双方骑兵冲杀,恺撒果断派出日耳曼骑兵,击败高卢骑兵;敌方主将战败后,躲进阿来西亚城,闭门不出。恺撒便在城外构筑防御工事,严密封锁阿来西亚。高卢各邦得知主将被困阿来西亚后,便迅速组建了一支联军,共八千骑兵和二十五万步兵前来驰援。高卢人企图通过内外夹击,消灭恺撒的军队。恺撒则临危不乱,他把全体步兵分别布置在工事两侧,拼命防守,然后命令骑兵出战。恺撒再次使用日耳曼骑兵,击溃了高卢人,使得形势逐渐好转;于是,恺撒下令,四处追赶撤退中的外围敌军,使他们无法重新集结;同时,又将从困城中冲出来的敌人再次逼了回去。此后,恺撒又多次击退了外围高卢援军,双方互相拉锯,损失惨重。再后来,高卢人针对恺撒防御工事的一个薄弱点,发动了绝地偷袭。总之,此役战线很长,双方陷入胶着;关键时刻,恺撒身先士卒,只身投入战斗。士兵们在其勇敢精神的鼓舞下,奋力拼杀,终于彻底击溃了高卢人。敌方主将眼见外援基本被歼,败局已定,只好投降。至此,高卢战事基本结束,恺撒也巩固了罗马在高卢的统治地位。而所有这些战场战术的调兵遣将命令,都得益于恺撒密码的神助,否则,他可能早就被对手“包了饺子”。
若用今天的标准去评判,恺撒密码确实算不上先进;但在当时,它却相当超前。比如,恺撒的继承者,罗马帝国的首任皇帝屋大维,在密码方面就远远逊色于恺撒大帝,因为屋大维在需要加密文件时,竟然只是简单地把a写为b,把b写为c,……,把z写为a等;其安全性显然远远劣于恺撒密码,若真被敌方破译了,肯定会吃败仗。
关于恺撒密码被长期广泛使用的情况,还有这样一个真实的现代事例:在意大利有一个黑社会老大。他在经历了40多年的逃亡生活后,终于在2006年被捕入狱,而其失手的原因竟是:他在与其同伙进行保密通信时,仍傻乎乎地使用了恺撒移位密码!只不过不是用D代替A,而是用4代替A,用5代替B,以此类推。这位黑社会老大一直担心手机不安全,所以,他坚持用笔记方式来经营和管理其犯罪集团;当这些笔记落入警局后,很快就被破解了,其犯罪集团也被一网打尽。