《密码——智慧长河里的明珠》

古典密码(二)

33
3202
2

实际上,字母表很简单,就是将26个字母写成一个正方形,依次用了26种凯撒移位。而它的复杂之处就在于每个密码字母都可能代表26个原始字母,所以很难破译。

现在,我们来看一下如何使用这种密码。

首先,我们还是需要一个关键词。还以MEDICINCAL为关键词,Iwill see you in Lincoln park tomorrow afternoon为信息。我们需要将关键词重复的写在信息的上方:

MEDICINALMEDICINALMEDICINALMEDICINALMEDIC

iwillseeyouinlincolnparktomorrowafternoon

下面我们开始对信息进行加密。信息的第一个字母为i,它所对应的关键词字母是M,那么我们在维吉那正方形中的最左边一列中找到“M”,然后在它所在的横行中找到与“i”对应的字母“V”。所以加密后的第一个字母为“V”。依次类推,将信息中的字母全部替代掉,就可以得到一封完整的密码信了。从加密的方式来看,关键词越长,加密的复杂性越高。同时,如果我们将关键词进行二次加密,则破译难度将会更大。

很多年以来,维吉尼亚密码都被认为是不可破解的,但查尔斯?巴贝奇(Charles Babbage),一个独立的英国富人在19世纪50年代向人们展示了事实并非如此。而在另一方面,巴贝奇为世人所熟知还在于其在计算机科学领域的卓越贡献。他通过寻找重复的字母段破解了这个密码系统。下面就是他破解的具体过程。

维吉尼亚密码的优势在于,这种密码被假定为它将不同位置的字母进行不同形式的加密。比如同一段文字中的“THE” 可能在前面表现为“UPK”,但在后面则被表现为“BNF”。但是,第一个和第三个“THE”都会被编码为“UPK”。第一个“THE”中的“T”会用“B”来进行编码,而第三个“THE”中的“T”也同样是用“B”来编码。发生这种情况是因为第三个“THE”是排在第一个“THE”后面第21个字母,而3字密钥BIG会在重复7次之后又回到了最开始。在任何比密钥要长得多的加密信息中,都会不可避免地出现类似这样的重复。而一个解密者应该如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出现了两次,第一个"U"到下一个"U"会数21个字母,这样一来,巴贝奇就可以推断出密钥的长度是21的整除数。或者换种说法,他可以推断出21是密钥的倍数。如果获得了足够多类似的线索,巴贝奇就可以知道密钥的确切长度。一旦他知道了密钥长度,他就可以对加密信息进行日常频率分析。这样,就来到了我们上述提到的频率分析法了,然后经过精密的计算,巴贝奇便得出了维吉尼亚密码的解密方法了。

从巴贝奇的解密过程来看,我们可以得出结论:一个优秀的解密人不仅要有敏锐的观察力、丰富的联想能力以及高超的数学能力,对于古典密码学习和见识的经验也是十分重要的。


1.2中国古代密码起源

看过了西方古典的密码简述,我们接下来将目光转向古老的东方文明。在几千年前的中国,我们的祖先亦有着超凡的智慧。下面,我们就来看一下中国古代都有哪些令人惊叹的“密码艺术”

1.2.1阴符

首先是用于古代战争的“阴符”。据《太公六韬》所载,其由姜尚(即姜子牙,公元前1128年—公元前1015年)发明,距今已有3000多年的历史了。

关于“阴符”的来源,是源于一场惊险的战争。相传商纣王末年,在姜太公的辅佐下,周氏由弱变强。但局势依然动荡,叛军四起。有一次姜子牙带领军队外出时,周军指挥大营被叛兵包围,情况危急。姜太公欲令信使突围,回朝搬兵。但由于当时通讯不便,他亦没有明显的信物;怕信使遗忘机密,又怕周文王不认识信使,耽误军务大事,于是就将自己珍爱的鱼竿折成数节,每节长短不一,各代表一件军机,令信使牢记,不得外传。信使几经周折,逃过了敌方的搜捕,回到朝中。周文王将几节鱼竿合在一起,亲自检验,周文王辨认出是姜太公的心爱之物,便得到信息,相信了信使的话,亲率大军到事发地点,解了姜太公之危。事后,姜太公拿着那几节使他转危为安的鱼竿,灵光一现。他将鱼竿传信的办法加以改进,便发明了“阴符”。

一套阴符包括尺寸不等,形状各异的符,每只符都表示特定的含义,而阴符的形状和表达的意思是事先约定好的,所以收信人在接到发信人的阴符后,可以明白其意思。

最初的“阴符”是竹制的,后又改用木片、铜片等。“阴符”上无文字,无图案,传“符”人不知“符”中含义,即使被俘,叛变投敌,敌人也难以知道“符”的内容。

下面是部分阴符的规格。

大胜克敌之符,长一尺;

破军擒将之符,长九寸;

降城得邑之符,长八寸;

却敌报远之符,长七寸;

警众坚守之符,长六寸;

请粮益兵之符,长五寸;

败军亡将之符,长四寸;

失利亡士之符,长三寸。

1.2.2阴书

所谓“阴书”,就是把一封竖写的秘密文书横截成3段,派出3个人各执一段,于不同时间、不同路线分别出发,先后送给收件者。收件者收齐了3段文件才能悉知秘密文书的全部内容。万一送件途中某一发送者被敌方截获,敌方也难以解读文书的全部内容。

阴书由阴符演变而来,能比阴符传递更具体的消息,是古代通信中另一种保守秘密的方法,相传也是由姜子牙发明。

据《六韬·龙韬·阴书》记载,武王问姜太公:“如果我要率领军队深入敌国境内,根据敌情进行灵活的机动来谋求出其不意的胜利。事情繁杂,我要想给远方的军队传递信息,用阴符难以说明问题;彼此相距又十分遥远,言语难通。在这种情况下应该怎么办?”

姜太公回答道:“所有密谋大计在传递时,都应当用阴书,而不用阴符。国君用阴书向主将传达指示,主将用阴书向国君请示问题,这种阴书都是一合而再离、三发而一知的。所谓一合而再离,就是把一封书信分为三个部分;所谓三发而一知,就是派三个人送信,每人只是其中的一部分,相互参差,即使送信的人也不知道书信里完整的内容,这就叫阴书。”如此一来,即使一个信使被敌方抓捕或是叛变,都不用担心军情泄露。

1.2.3字验

字验是宋代军事通信保密之法。以旧诗为载体的军事通讯“密码”。即战前制定军中常有之事四十余条,如请箭、请弓、请粮料、请添兵、请移营、被贼围、战不胜、将士叛等;选旧诗四十字,不得重字,每字依次配一条,作为暗号。在使用时,就以暗号代替具体的事件。其字号由主将战前临时编排,限少数将领掌握,不得漏入军中。如果发生改变,就以将领最新颁布的为准。

字验之法可以随时按需要更动,具有相当的灵活性,它不但能保证情报落入敌手之后不致泄密,而且即使通讯人中途变节,情报也能确保安然无恙。

在三国时期,曹操平汉中时,欲进兵,怕马超拒守。欲收兵,又恐蜀兵耻笑,心中犹豫不决。就在这个时候,庖官进鸡汤,曹擦看见碗中的鸡肋,沉思不语。这时有人入账,请示曹操夜间的口令,曹操随口答道:“鸡肋!”这时,曹军一谋士杨修见令传鸡肋,便让随行军士收拾行装,准备归程。其余的将士们便问杨修,何以得知魏王要回师,杨修说:“从今夜口令,便知魏王退兵之心已决。鸡肋,食之无味,弃之可惜。今进不能胜,退恐人笑,在此无益,不如早归。魏王班师就在这几日,故早准备行装,以免临行慌乱。”曹操听说后大怒,以扰乱军心为由处死了杨修。这便是“杨修之死”的故事。其中,曹操下达的“鸡肋”口令,究竟是有撤军的意思还只是随口一说,我们不得而知,但从这个故事中我们便可以看出,“夜间口令”在三国时期的军事中已经被广泛使用了,而且为保证军情不被泄密,通常是由将领直接下令的,且更换的频率是非常高的。 Image title

1.2.4反切码

“反切码”是著名的抗倭将领、军事家戚继光发明的,最初依然是用于军事方面。“反切码”这个名字源自反切拼音。何谓反切拼音?即用两个字为另一个字注音,取第一个字的声母和第二个字的韵母,进行拼音,例如:第一个字为“山”,那么信息中第一个字拼音的声母即为“sh”;第二字为“洗”,则信息中第一个的韵母为“i”。这样我们便可以得出第一个的读音是“shi”,则推测可能的字就可以了。这种加密的方式在当时被称为最难破解的“密电码”。

戚继光专门编了两首诗歌,作为“密码本”:一首是:“柳边求气低,波他争日时。莺蒙语出喜,打掌与君知”;另一首是:“春花香,秋山开,嘉宾欢歌须金杯,孤灯光辉烧银缸。之东郊,过西桥,鸡声催初天,奇梅歪遮沟。”

这两首诗歌是反切码全部秘密所在。取前一首中的前20个字的声母,依次分别编号1-20;取后一首36字韵母,顺序编号1-36。再将当时福州方言字音的八种声调,也按顺序编上号码1-8,形成完整的“反切码”体系。其使用方法是:如送回的情报上的密码有一串是5-25-2,对照声母编号5是“低”字,韵母歌编号25是“西”字,两字的声母和韵母合到一起了是di,对照声调是2,就可以切射出“敌”字。此外,戚继光编写了一本《八音字义便览》,作为训练情报人员的专门教材。

戚继光的密码编写技术,无疑在当时是很实用很科学的,主要体现在:一是作为声母韵母的诗词本身就是保密的,没有获知其内容根本无法破译;二是反切方法也是保密的,不懂得反切法的技术对敌方来说也是无法获知所传输内容的。

1.2.5析字法

古人将汉字的构造方法分析、归纳为“六书”,即象形、指事、会意、形声、转注、假借。据此,将汉字分为音、形、义3个方面。汉语传统修辞学根据这一原理,创制了“析字格”这种游戏式的隐语。

如《三国演义》有民谣道:“千里草,何青青;十日卜,不得生。”其实就是说董卓作恶多端,人人痛恨,因为“千里草”为“董”,“十日卜”为“卓”。

又如:公元683年(唐弘道元年),唐高宗死后唐中宗即位。武则天以皇太后名义临朝称帝,不到两个月又废唐中宗,立第四子李旦(唐睿宗)为皇帝,但朝政大事均由自己专断。因此,引起大臣裴炎、徐敬业和骆宾王等人的强烈反对。于是,徐敬业聚兵10万人,于扬州起兵,反抗武则天统治。裴炎为徐敬业作内应,欲以析字手段为其传递秘密信息。后因有人告密,裴炎被捕,其未发出的密信落到武则天手中。这封密信上只有“青鵝”二字,群臣对此大惑不解。最后,还是武则天破解了“青鵝”的秘密:“青”字拆开来就是“十二月”;而“鵝”字拆开来就是“我自与”。密信的意思是让徐敬业、骆宾王等率兵于12月进发,裴炎在内部接应。“青鵝”破译后,裴炎遂被杀,接着,武则天派兵击败了徐敬业和骆宾王的武装反抗。

这两个都是经典的“析字法”密码典例。“析字法”是与汉字的结构密切相关的一类加密方法,极具中华传统文化的特色。通常,加密信息的过程都十分精妙,能解出其中缘由的人都有极高的文学修养。我们在正月十五猜灯谜的过程中,有一类灯谜就是利用了此种方式进行设迷的。

1.2.6隐语法

隐语也称暗语,是把秘密信息变换成字面上有一定意义,但与该信息完全无关的话语。就如同用“蜡烛”二字代表“苍蝇”的含义一般,是一种沿用时间很长,应用范围很广的自然语言保密方法。

《左传·宣公十二年》记载,春秋时楚子欲攻打萧国,萧国实力较为弱小,萧国大夫还无社恐怕自己在战争中受到牵连,便在战前向楚国大夫申叔展求救。申叔展为避免对话被闲人偷听,便用隐语问还无社:“你有麦粷吗?”,还无社答:“没有。”申叔展又问:“你有山鞠穷吗?”还无社仍答:“没有。”在这里,麦粷和山鞠穷是两种防治风温的中草药,申叔展用这两种药名做隐语,暗指水坑水井,暗示还无社在战斗中身藏水井里。申叔展见还无社没有领会隐语的含义,便进一步暗示:“你得了风湿病怎么办?”还无社这才将隐语与水井联系起来,明白了申叔展的意思。次日,萧国战败,申叔展救出了藏匿在废水井中的还无社。

而我们接触到的最著名的隐语,可能就是《林海雪原》中东北山匪间用的“黑话”了。他们之间用的词语都让旁人摸不着头脑,但却逐渐发展成为彼此间交流的一种独特“语言”。

1.2.7藏头诗、藏尾诗、漏格诗及绘画

我国古代早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载。这种方式在现如今也常常被应用。一般人通常只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。Image title

如《水浒传》中梁山为了拉卢俊义入伙,“智多星”吴用和宋江便生出一段“吴用智赚玉麒麟”的故事来,利用卢俊义正为躲避“血光之灾”的惶恐心理,将其逼上梁山。他写了四句卦歌:

芦花丛中一扁舟,

俊杰俄从此地游。

义士若能知此理,

反躬难逃可无忧。

其中暗藏“卢俊义反”四字。结果,这首诗成了官府治罪的证据,密信的官员竟以此为证据逮捕卢俊义,最终把卢俊义“逼”上了梁山。Image title

在现代的影视作品中,更广为人知的是唐伯虎写的藏头诗:“我爱秋香”:

我画蓝江水悠悠,

爱晚亭上枫叶愁。

秋月溶溶照佛寺,

香烟袅袅绕经楼。

一首文采不斐的写景诗,细看居然表达了深深的情谊。同样,这件佳事也为密码神秘的面纱里增添了浪漫的色彩。

看过了古典密码里古人的智慧,接下来就跟随历史的脚步,来看一下生产力急速发展后,近代的密码又呈现出什么样的形态了吧。

评委点评 评语汇总
匿名 2018-01-25 15:13

非常有意思的一篇科普文章,图文并茂,让人清楚的了解了密码的前世今生。而且行文非常流畅,文字内容易懂,非常有意思,没有枯燥乏味之感。把科普的内容传达到了,很不错。

匿名 2018-01-08 22:20

本文非常全面、系统地介绍了古今中外密码发展的历程,许多内容写得生动有趣,特别是采用比喻手法来写,读起来趣味盎然,引人入胜。由于过于追求全面系统,内容显得庞杂,主线不够清晰,在一定程度上影响阅读和记忆的效果。

匿名 2018-01-08 19:47

密码一文,洋洋洒洒,古今中外,涉猎深广,生活工作,无不存在,小小密码,学问真大!

匿名 2018-01-08 19:29

作者掌握了很多这方面的知识,表达也是通畅有余,考虑到密码及其解释很不易,所以这一点很难得。也让我长了不少知识。可以进一步提升的是:如能在思想性和逻辑关联性上能再强一点,就更好。因为加密和破译是一对永恒的矛盾,永远在此消彼长中提升和进步中。

目录(共6章)

投票需在微信中进行!

请在微信中访问本页面!