李子臣 譚亦夫 宋培非
人類文明發(fā)展到使用語(yǔ)言和文字后,就產(chǎn)生了通信保密和身份認(rèn)證的問題,這是密碼學(xué)的主要任務(wù)。古典密碼學(xué)與其說(shuō)是一門學(xué)科,不如說(shuō)是一門藝術(shù),它們反映出古人的高超智慧和絕妙想象力,并且蘊(yùn)涵了現(xiàn)代密碼學(xué)思想的萌芽。
大約在公元前700年,古希臘軍隊(duì)采用一種叫作Scytale的圓木棍來(lái)進(jìn)行保密通信。其使用方法是:把長(zhǎng)帶子狀的羊皮紙纏繞在圓木棍上,然后在上面寫字;解下羊皮紙后,上面只有雜亂無(wú)章的字符,只有再次以同樣的方式纏繞到同樣粗細(xì)的棍子上,才能看出所寫的內(nèi)容。
這種Scytale圓木棍也許是人類最早使用的文字加密、解密工具,據(jù)說(shuō)主要是古希臘城邦中的斯巴達(dá)人在使用它,所以它又被叫作“天書”。
Scytale圓木棍的加密原理屬于密碼學(xué)中的“移位法”加密,因?yàn)樗ㄟ^(guò)改變文本中字母的閱讀順序來(lái)達(dá)到加密的目的。
公元前60年前后,古羅馬的執(zhí)政官和軍隊(duì)統(tǒng)帥愷撒發(fā)明了一種把所有的字母按字母表順序循環(huán)移位的文字加密方法。例如,當(dāng)規(guī)定按字母表順移3位時(shí),那么a就寫成d,b寫成e,c寫成f……x寫成a,y寫成b,z寫成c。
比如,Knowledge is power(知識(shí)就是力量),就寫成:NQRZOHGJHLVSRZHU。
從密碼學(xué)的角度來(lái)看,愷撒加密法屬于“單字母表替換”加密,而且替換的規(guī)則很簡(jiǎn)單。然而,愷撒加密的思想對(duì)西方古典密碼學(xué)的發(fā)展有較大的影響。事實(shí)上,直到第二次世界大戰(zhàn)結(jié)束,西方所使用的加密方法還大多屬于“字母表替換”加密,只是替換的規(guī)則越來(lái)越復(fù)雜而已。
替換加密就是把普通信文中的文字符號(hào)替換成其他文字符號(hào)以達(dá)到加密的目的,其替換規(guī)則只有通信雙方知道。西方國(guó)家大都使用拼音文字,只有二十幾個(gè)字母和幾個(gè)標(biāo)點(diǎn)符號(hào),文字符號(hào)較少,所以很適合用替換法加密。
愷撒密碼就是一種替換加密方法,但這種加密方法具有“明密異同性”,利用頻率分析法比較容易破解。
于是,從15世紀(jì)中葉起,歐洲人開始研究設(shè)計(jì)“多字母表替換加密”方法,即明文中同一個(gè)字母在不同的位置上會(huì)有不同的替換符號(hào)。其中最有名的當(dāng)屬維吉尼亞密碼。它主要使用一張字母矩陣表,其中第一行是任意給定的字母表,第二行是第一行左循環(huán)移一位,最后一位的字母移至第一位,而形成的字母替換表。第三行又是第二行左循環(huán)移一位,以下各行依次類推。加密時(shí),對(duì)于明文中的同一個(gè)字母,當(dāng)其第一次出現(xiàn)時(shí),使用表的第一行來(lái)替換,第二次出現(xiàn)時(shí)使用第二行替換,依次類推。如果該字母出現(xiàn)的次數(shù)超過(guò)矩陣的行數(shù),則回到第一行繼續(xù)下去。解密同加密一樣,也是從上到下逐行進(jìn)行。
維吉尼亞密碼后來(lái)出現(xiàn)過(guò)多種改進(jìn)和變形。其中一種變形就是,由密鑰確定密文所在的行,明文確定明文所在的列,在加密方陣中,行和列的交叉就是相應(yīng)的明文。
使用維吉尼亞密碼加密的過(guò)程中,一個(gè)明文字母根據(jù)在明文中出現(xiàn)的順序或者密鑰的不同,會(huì)有多種變化,最多能有26種變化。而愷撒密碼加密與明文字母的順序沒有關(guān)系,只有一種變換。所以愷撒密碼是“單表密碼體制”,而維吉尼亞密碼是“多表密碼體制”。顯然,多表加密比單表加密復(fù)雜得多,因此其破解難度也增加了許多。自從維吉尼亞加密術(shù)出現(xiàn)以后,多表加密成為歐洲人最常用的加密方法。
公元7世紀(jì)開始興盛的阿拉伯民族是最早系統(tǒng)總結(jié)并使用密碼分析方法的民族。
1987年,科學(xué)家發(fā)現(xiàn)了肯迪在公元850年前后寫的《解碼手冊(cè)》。
書中關(guān)于密碼分析的描述如下:如果我們已經(jīng)知道了一份密文所使用的語(yǔ)言,要破解它的一種方法是找一份用同樣語(yǔ)言寫的明文,大約有一頁(yè)紙的長(zhǎng)度。然后統(tǒng)計(jì)其中每個(gè)字母出現(xiàn)的次數(shù),把出現(xiàn)頻率最高的字母叫作“第一”,出現(xiàn)頻率次高的字母叫作“第二”,以此類推,直到數(shù)完明文中所有的字母。然后再看待破解的那份密文,同樣對(duì)其中的符號(hào)做頻率排序。我們找到出現(xiàn)頻率最高的那個(gè)符號(hào)并把它替換為上述的“第一”字母,找到出現(xiàn)頻率次高的符號(hào)并把它替換為“第二”字母,找到第三高的符號(hào)并替換為“第三”字母,直到數(shù)完密文中的所有符號(hào)。
這是歷史上最早的研究用頻率分析法破解密碼的文獻(xiàn),比西方的同類文獻(xiàn)早了大約300年。基于字母和單詞的統(tǒng)計(jì)學(xué)特性的頻率分析方法,一直是破解密碼最基本和最常用的方法。
例如,已知經(jīng)愷撒密碼加密過(guò)的密文:
HQGHDYRUWRVHHWKHJRRGLQHYHUBVLWXDWLRQ
統(tǒng)計(jì)得出H是出現(xiàn)次數(shù)最多的字母,頻率為0.194。
根據(jù)英文中字母出現(xiàn)概率的統(tǒng)計(jì)數(shù)據(jù),字母e出現(xiàn)的概率最高,為0.127。
那么,密文字母H的明文就應(yīng)該是e,H對(duì)應(yīng)的數(shù)字為7,e對(duì)應(yīng)的數(shù)字為4,于是根據(jù)愷撒密碼加密規(guī)則,將密文中的字母向右移3位,就可得到明文。解密后得出明文:Endeavor to see the good in every situation(努力在每種情況下看到好的一面)。
第二次世界大戰(zhàn)中的密碼戰(zhàn),是當(dāng)時(shí)敵對(duì)雙方最優(yōu)秀的科學(xué)大腦和最先進(jìn)的科技之間的生死較量,但究其所依據(jù)的加密原理,仍然是替換和移位,破解原理是基于字母和單詞的頻率分析,只是復(fù)雜的程度不同而已。當(dāng)然,肯迪的方法只能破解較原始的單表替換加密方法,對(duì)于較復(fù)雜的多表替換加密方法是無(wú)能為力的。然而,對(duì)于多表古典密碼體制,將密文的重合指數(shù)方法和密文中字母統(tǒng)計(jì)規(guī)律相結(jié)合,同樣可以破譯。