人類(lèi)文明發(fā)展到使用語(yǔ)言和文字后,就產(chǎn)生了保密通信和身份認(rèn)證問(wèn)題,這是密碼學(xué)的主要任務(wù)。古典密碼學(xué)與其說(shuō)是一門(mén)科學(xué),不如說(shuō)更像是一門(mén)藝術(shù),它們反映出古人的高超智慧和絕妙想象力,并且蘊(yùn)涵了現(xiàn)代密碼學(xué)思想的萌芽。
古希臘圓木棍“天書(shū)”的加密原理屬于密碼學(xué)中的“移位法”加密,因?yàn)樗ㄟ^(guò)改變文本中字母的閱讀順序來(lái)達(dá)到加密的目的
大約在公元前700年,古希臘軍隊(duì)用一種叫作Scytale的圓木棍來(lái)進(jìn)行保密通信。其使用方法是:把長(zhǎng)帶子狀羊皮紙纏繞在圓木棍上,然后在上面寫(xiě)字;解下羊皮紙后,上面只有雜亂無(wú)章的字符,只有再次以同樣的方式纏繞到同樣粗細(xì)的棍子上,才能看出所寫(xiě)的內(nèi)容。
這種Scytale圓木棍也許是人類(lèi)最早使用的文字加密解密工具,據(jù)說(shuō)主要是古希臘城邦中的斯巴達(dá)人在使用它,所以又被叫作“天書(shū)”。
圓木棍“天書(shū)”的加密原理屬于密碼學(xué)中的“移位法”加密,因?yàn)樗ㄟ^(guò)改變文本中字母的閱讀順序來(lái)達(dá)到加密的目的。
公元100多年前,古羅馬的執(zhí)政官和軍隊(duì)統(tǒng)帥愷撒發(fā)明了一種把所有的字母按字母表順序循環(huán)移位的文字加密方法。例如,當(dāng)規(guī)定按字母表順移3位的話,那么a就寫(xiě)成 d,b寫(xiě)成 e,c寫(xiě)成 f……x寫(xiě)成 a,y 寫(xiě)成 b,z寫(xiě)成 c。
從密碼學(xué)的角度來(lái)看,愷撒加密法屬于“單字母表替換”加密,而且替換的規(guī)則很簡(jiǎn)單。然而,愷撒加密的思想對(duì)于西方古典密碼學(xué)的發(fā)展有較大影響。事實(shí)上,直到第二次世界大戰(zhàn)結(jié)束,西方所使用的加密方法大多屬于“字母表替換”加密,只是替換的規(guī)則越來(lái)越復(fù)雜而已。
西方國(guó)家大都使用拼音文字,只有二十幾個(gè)字母和幾個(gè)標(biāo)點(diǎn)符號(hào),文字符號(hào)較少,所以很適合用替換法加密。如上文提到的愷撒密碼,就是一種替換加密。加密過(guò)程就是按照愷撒密碼字母替換表替換,把每一個(gè)明文字母替換成密文行中相應(yīng)的一個(gè)字母。
這種加密方法具有“明密異同性”,利用頻率分析法可以破解。
于是,從15世紀(jì)中葉起,歐洲人開(kāi)始研究設(shè)計(jì)“多字母表替換加密”方法,即明文中同一個(gè)字母在不同的位置上會(huì)有不同的替換符號(hào)。其中最有名的當(dāng)屬維吉尼亞密碼。它主要使用一張字母矩陣表,其中第一行是任意給定的字母表,第二行是第一行左循環(huán)移一位,最后一位的字母移至第一位,而形成的字母替換表。第三行又是第二行左循環(huán)移一位,以下各行以此類(lèi)推。加密時(shí),對(duì)于明文中的同一個(gè)字母,當(dāng)其第一次出現(xiàn)時(shí),使用表的第一行來(lái)替換,第二次出現(xiàn)時(shí)使用第二行替換,以此類(lèi)推。如果該字母出現(xiàn)次數(shù)已超過(guò)矩陣的行數(shù),則回到第一行繼續(xù)下去。解密同加密一樣,也是從上到下逐行進(jìn)行。
維吉尼亞密碼后來(lái)出現(xiàn)過(guò)多種改進(jìn)和變形。其中一種變形就是,由密鑰確定密文所在行,明文確定明文所在列,在加密方陣中,行和列的交叉就是相應(yīng)的明文。
維吉尼亞加密過(guò)程中,一個(gè)明文字母根據(jù)在明文中出現(xiàn)的順序或者密鑰的不同,會(huì)有多種變化,最多能有26種變化。而愷撒密碼加密與明文字母的順序沒(méi)有關(guān)系,只有一種變換。所以愷撒密碼是“單表密碼體制”,而維吉尼亞密碼是“多表密碼體制”。顯然,多表加密比單表加密復(fù)雜許多,因此其破解難度也加大許多。自從維吉尼亞加密術(shù)出現(xiàn)以后,多表加密成為歐洲人最常用的加密方法。
從古到今,軍隊(duì)歷來(lái)是使用密碼最頻繁的地方,因?yàn)楸Wo(hù)己方秘密并洞悉敵方秘密是克敵制勝的重要條件。中國(guó)古代有著豐富的軍事實(shí)踐和發(fā)達(dá)的軍事理論,其中不乏巧妙、規(guī)范和系統(tǒng)的保密通信和身份認(rèn)證方法,比如兵書(shū)《六韜》中的“陰符”和“陰書(shū)”。
“陰符”和“陰書(shū)”就是“加密后的信息”或“密文”,其加密的方法,相當(dāng)于現(xiàn)代密碼學(xué)中變換的代替或移位。
除了使用“陰符”、“陰書(shū)”等形式外,在傳遞內(nèi)容上也設(shè)置一些不易被敵方所破譯的符號(hào),這實(shí)際上就是一種軍事密碼,稱作隱語(yǔ)。
隱語(yǔ),古代亦稱作“瘦語(yǔ)”或“瘦辭”。瘦就是隱藏、隱含的意思。瘦辭出現(xiàn)得很早,《國(guó)語(yǔ)·晉語(yǔ)五》云:“有秦客瘦辭于朝,大夫莫之能對(duì)也。”元朝周密的《齊東野語(yǔ)》中說(shuō):“古之所謂瘦辭,即今之隱語(yǔ),而俗所謂謎?!笨梢?jiàn),隱語(yǔ)也就是謎語(yǔ)。
這種猜謎似的隱語(yǔ),對(duì)于軍事秘密通訊來(lái)說(shuō),畢竟需要通訊雙方心有靈犀,方能較為準(zhǔn)確地溝通,但也容易發(fā)生誤會(huì)。為了使其既準(zhǔn)確、明晰,又不讓別人了解,古人在設(shè)計(jì)隱語(yǔ)方面逐漸形成一套術(shù)語(yǔ),事先將要聯(lián)絡(luò)的事項(xiàng)以術(shù)語(yǔ)的形式編排好次序,將領(lǐng)們平時(shí)均加以熟記,每次作戰(zhàn)之前,主將與每個(gè)受命出戰(zhàn)的偏將約定,雙方以某一首沒(méi)有重復(fù)用字的五言律詩(shī)為“字驗(yàn)”。若有事報(bào)告,就隨意寫(xiě)成一封書(shū)信,將要報(bào)告之事的次序?qū)?yīng)于該詩(shī)中的第幾字,然后在普通書(shū)信中的某字旁加一記號(hào)即可,主將回復(fù)亦如法炮制。