- 密码简史:穿越远古 展望未来
- 杨义先
- 2548字
- 2021-01-07 18:29:49
1.4 古希腊密码
在古希腊,密码痕迹更是随处可见。比如,在美索不达米亚地区的塞琉西亚遗址,就出土了一小块大约公元前1500年的石片,其上刻有楔形文字,用一种简单的编码方式,记录了为陶瓷上釉的配方。
公元前4世纪所写的一本名叫《包围圈中如何逃生》的书中,也专门用了一章的篇幅来介绍消息加密,所给出的方法更是千奇百怪。比如,在一份文件中,用小圆点在某些字母上标出记号,而这些字母则拼出秘密消息;或者将秘密消息缝在鞋衬内;或者将秘密消息写在树叶上,再把树叶隐藏在伤兵的绷带中;或者将秘密消息写在铅片上,然后把铅片做成饰品,佩戴在身上;或者在木片上钻孔,来代表24个希腊字母,并用一根细线依次穿过明文消息的每个字母,然后,在收信端,友方顺着这根细线,就可把秘密消息恢复出来等。
如果某位叛徒想要携带一封密信,投敌叛变到附近敌营中,那又该咋办呢?在《包围圈中如何逃生》一书中,竟然也给这样的叛徒出了一个好主意:即把密信缝在叛徒的铠甲边缘,等待对方某队士兵巡查而至;当敌兵在近前搜查时,叛徒假装从马上跌落,然后便被俘虏;待到成功抵达敌营,见到长官后,那封密信也就送到了。
在公元前2世纪,希腊人波利比奥斯,还发明了这样一种数字加密系统:把24个希腊字母放入一个事先约定的、如今被称为“波利比奥斯方块”的5×5棋盘格中,于是,每个字母便可用一个数对(x, y)来表示,其中,x和y都是1至5之间的某个整数。如果发信方想将棋盘中第x行y列中的那个字母告诉友方,那么,他只需左手伸出x个指头,而右手伸出y个指头就行了;若敌方不知道那个事先约定的棋盘格,他就完全读不懂这些手势的含义。
波利比奥斯设计上述密码的动机,显然也与战争密切相关,这一点从他的坎坷经历便能够看出。实际上,波利比奥斯生于公元前203年的古希腊,当时古罗马和古迦太基正为争夺地中海西部统治权而展开一场著名的战争,史称第二次布匿克战争。古迦太基的主帅汉尼拔,率6万大军穿过阿尔卑斯山,入侵罗马。罗马则出兵马赛,切断了汉尼拔的补给;此时迦太基国内矛盾激化,汉尼拔回军驰援,罗马乘机进攻古迦太基,使后者丧失了全部海外领地,被迫交出了舰船,并向罗马赔款。大约在37岁左右,波利比奥斯作为政治犯,与其他人质一起被送到了罗马,并在罗马知道了许多有关第二次布匿克战争的情况。大约在54岁左右,波利比奥斯又亲历了第三次布匿克战争,并被罗马主帅小西庇阿带到了非洲战场;这次是罗马以强凌弱,长期围困迦太基城;迦太基不甘被攻,奋起反击。可惜,最后迦太基战败,惨遭屠城,其领土终于成为罗马的一个省份——阿非利加行省;后来,波利比奥斯也成了罗马公民。除设计密码外,波利比奥斯一生还完成了许多重要的经典著作,比如,长达40章的《通史》,以及业已失传的《论战术》《罗曼提亚战争史》《菲罗波门传》等;直到公元前121年,波利比奥斯才以82岁的高龄去世。
此外,古代亚述人和巴比伦人,也经常使用变形的楔形文字,在黏土石碑上签名和标注年代,以此炫耀其知识。在伊拉克的乌鲁克地区,在公元前1世纪,当时的密码专家们把自己的名字加密成一串串数字。在伊拉克的苏萨地区,也发现了不少疑似密码本的碎片,其上出现了一些数字与楔形符号的对应表,可用于完成相应的替换加密。
隐写术也是古希腊人常用的一种加密方法。比如,《历史》一书中,就记载了公元前5世纪,希腊与波斯的一场战争。书中讲述了一位名叫德马拉托斯的希腊流亡者,如何成功躲过敌方警戒,把消息传回祖国的故事。其办法便是:流亡者先刮去一块木片上的石蜡,并将秘密消息写在木片上,然后再用新的石蜡覆盖住消息;于是,这些木片就看似一片空白。当这些木片送回祖国后,收信者再把石蜡刮掉,就轻松读出了木片上的秘密消息。最终,希腊人据此情报,组建了一支船队,在萨拉米斯战役中打败了波斯人。
在另一个传说中,隐写术用得更巧。首先,剃掉信使的头发,然后将秘密消息写在光头上,待到信使的头发重新长出来后,他就可以空着手,安全抵达目的地;然后,再剃掉头发,秘密消息就显现了。
后来,在公元1世纪,又有人发明了一种奇特的隐形墨水:用某种植物液汁做成的一种乳液,用该乳液在白纸上写好秘密消息后,将纸张晒干,这时字迹就会变得透明不可见;但是稍微加热纸张,乳液便被烤焦变成棕色。其实,现在已经知道,任何富含碳的有机液体,都具有这种功效;所以,经常有些间谍,在情急之下,甚至干脆拿尿液当隐形墨水。到了15世纪,意大利科学家波尔塔,更设计了一种隐写妙法:他把明矾溶解在醋里,制成墨水;然后,把消息写在煮熟的鸡蛋壳上,墨水就会渗透蛋壳,浸入凝固的蛋白上,而在蛋壳上却只剩一片空白。当该鸡蛋被送到合法的收信方后,只需剥去蛋壳,消息就清晰地显现在蛋白上了。
除了隐写术,古希腊人还喜欢使用另一类密码,如今称为“置换密码”,它将明文中的字母,按一定规则进行位移,即对明文字母做一个置换。比如,把前后每对字母进行交换,那么,明文消息“Thebus”,在忽略了其中的空格后,就被加密成了“Htbesu”;解密时,接收方只需反转这个过程即可。还有一种叫“栅格”的置换密码,它将明文字母按序排成两行,并且按列的顺序写入;比如,消息“The bus”就排成:
TEU
HBS
然后,再将它们按行排序出来,就得到加密后的消息TEUHBS;解密过程,则反向进行便可。当然,这里的“两行”,也可以是三行或更多行;只要收信方和发信方都使用同样的行数,那么消息解密便可轻松完成。其实,此处的“栅格”可以是双方约定的任何维度的网格。
在古希腊的众多密码中,对今天影响最大的,可能要数公元前700年左右,古希腊军队使用的、由斯巴达人发明的一种如今叫作“斯巴达棒”的密码,它用圆木棍来进行保密通信。其使用方法是:把长带状羊皮纸均匀缠绕在圆木棍上,然后在上面按正常顺序书写文字;最后再解开羊皮纸,于是,纸上就只有杂乱无章的字符,这就完成了加密操作。在合法的接收端,解密者再次以同样的方式,将密文纸带均匀缠绕到同样粗细的棍子上,于是就能看出当初加密前所写的文字内容了。而对破译者来说,由于他不知道棍子的粗细,所以,即使是他将该纸带缠绕在其他圆棍上,照样也读不懂加密信息。
斯巴达棒也许是人类最早使用的文字加解密工具,其加密原理属于密码学中的置换法,因为它的加密操作,仅仅基于文本中字母阅读顺序的改变,准确地说,也是某种二维矩阵“栅格”。