包偉
摘 要:密碼學有悠久的歷史,本文就主要介紹古典密碼學的隱文術和密碼術,其中密碼術又包括換位密碼和代替密碼并對其進行分析。
關鍵詞:古典密碼學;換位密碼;代替密碼
1 引言
密碼學一詞來源于古希臘的Crypto和Graphein,其含義是密寫。它是以認識密碼變換的本質(zhì)、研究密碼保密與破譯的基本規(guī)律為對象的學科,也是研究密碼編制、密碼破譯和密碼系統(tǒng)設計的一門綜合性科學。
密碼學從以手工作業(yè)為主的古典密碼學發(fā)展到現(xiàn)在采用進行計算機加解密的現(xiàn)代密碼學,共經(jīng)歷了幾千年的演變。由于早期的古典密碼處于手工作業(yè)階段,它的密碼算法雖然已經(jīng)經(jīng)受不住現(xiàn)代破譯手段的攻擊, 但是它們對現(xiàn)代密碼學的研究是功不可沒的, 其加密的基本思想至今被廣泛使用。本文就主要介紹古典密碼學的隱文術和密碼術,其中密碼術又包括換位密碼和代替密碼。
2 隱文術
早期的密碼通信,只是簡單的把消息隱藏起來,而這種通過把信息隱藏起來的密碼通信就被稱為隱文術。有歷史記載最早的密碼是刻在墓碑上的。那是在公元前1900年,象形文字已經(jīng)普遍使用,貴族克努姆霍特普二世的墓碑上記載了在阿梅連希第二法老王朝供職期間它所建立的功勛。上面的象形文字不同于當時通用的埃及象形文字,而是由一位擅長書寫的人經(jīng)過變形處理之后寫的。古今中外隱文術的例子不勝枚舉,例如在我國古代將信息寫在小塊絲綢上,塞進一個小球里,再用蠟給封上,然后讓信使吞下這個蠟球。16世紀意大利的科學家發(fā)明了一種隱形藥水,用少許明礬和一點醋混在一起,用這種墨水將信息寫在煮熟的雞蛋殼上,墨水溶液就會經(jīng)蛋殼上的微孔滲透進去,在已凝固的雞蛋白表面留下印跡,這樣剝?nèi)サ皻ず缶湍茏x取信息了。
3 密碼術
隱文術的長久使用,表明它對信息的保密確實起到了一定的作用,但它也有一個明顯的弱點,即信息一但被截獲,就會暴露無疑,因此在隱文術發(fā)展的同時,還有另一種方法也在演化,即密碼術。所謂密碼術是將信息按照某種特定的規(guī)則打亂,隱藏信息的意思。密碼術又主要分為兩大類,一類是換位密碼,一類是代替密碼。
3.1 換位密碼
換位密碼又稱置換密碼即在加密/解密過程中,信息元素只有位置上的變化,而沒有形態(tài)上的變化。
換位密碼的優(yōu)點是可以打破明文消息中的某些固定結構模式,使來自明文或密鑰的信息充分擴散到密文中,達到信息擴散的目的。但由于信息元素的形態(tài)在加密/解密過程中沒有變化,使得各信息元素出現(xiàn)的頻率在明文和密文中相同。密碼分析者通過對密文的統(tǒng)計分析就可能得到相應明文的有關信息,甚至全部明文。有一種換位密碼叫做周期性換位密碼,它是指將明文按密鑰長度分組,每組中的字符按密鑰K中數(shù)字的指示位置進行換位的一種加密方法。
例如:要將明文M=Can you understand按密鑰3,4,2,1進行周期換位加密。
第一步,因密鑰長度為4,所以按周期長度4對明文進行分組,每組字母的上方標出密鑰,結果如下:
第二步,按照密鑰K=3,4,2,1的指示將每組中的字母進行換位,密鑰中每一個數(shù)字表示其對應的字母在密文分組中的位置。所以換位以后的密文如下:
當接收者收到此密文后,便可按照與發(fā)送者事先約定好的密鑰將密文變換成明文。
3.2 代替密碼
代替密碼又叫做替換密碼,它是在加密/解密過程中,信息元素之間的位置排列關系沒有發(fā)生變化,而是形態(tài)發(fā)生了變化。
代替密碼的優(yōu)點是可以使明文和密鑰的信息混雜在一起,使人很難確定明文和密鑰是如何變成密文的。代替密碼又可進一步分為單表代替密碼和多表代替密碼。
1、單表代替密碼
單表代換密碼是對明文的所有字母都用一個固定的明文字母表變換到密文字母表的映射。愷撒密碼即是一種典型的單表代替密碼,愷撒密碼的加密方法是將英文中的每一個字母固定地用比自身位置大3的字母來代替。如表1所示,a用d代替,b用e代替,x用a代替,以此類推。
圖1 維熱納爾密碼表
例如:要將明文M=Can you understand進行愷撒變換,根據(jù)表1便可得到密文C=fdq brx xqghuvwdqg。當接收者收到此密文后,便可按照字母表將密文變換成明文。
(2)多表代替密碼
多表代替密碼是以一系列(兩個以上)代替密碼表依次對明文消息的字母進行代替的加密方法。16世紀晚期,法國的維熱納爾提出著名的維熱納爾方陣密碼表即是一種多表代替密碼。如圖1所示即為維熱納爾方陣密碼表,它的基本陣列是26 行26 列的方陣。方陣的第一行是a 到z 按正常順序排列的字母表,第二行是第一行左移循環(huán)一位得到的,第三行又是第二循環(huán)左移一位得到的,依此類推得到其余各行,然后在基本方陣的最上方附加一行最左側附加一列分別依序?qū)懮蟖 到z,共26 個字母表。把上面的附加行看作是明文序列則下面的26 行就分別構成了左移0 位1 位2 位一直到25 位的26 個單表代替密碼,密文序列加密時按照密鑰字的指示決定采用哪一個單表進行代替。
下面我們用一個實例來說明維熱納爾密碼加密的原理。設密鑰字是encryption,待加密的密文是public key distribution。由于密鑰字比明文短,所以要重復書寫密鑰字以得與明文等長的密鑰序列,其加密的最終結果如表2所示。
現(xiàn)在按上表對明文進行加密代換第一個密鑰字母是e 對第一個明文字母p 進行加密時,選用左邊附加列上的字母e 對應的那一行作為代替密碼表查出與p 相對應的密文字母是T,第二個密鑰字母是n 用附加列上字母n 所對應的一行作為代替密碼表與明文u 進行替換對應的密文是H,同理將所有的密文字母替換完畢就可以得到表2 中所示的密文THDCGRDMMQMFVRGQNBWBR。
4 結束語
古典密碼還有一些算法,例如棋盤密碼、九宮格密碼以及意大利數(shù)學家卡爾達諾發(fā)明的利用“漏隔板”進行加密的密碼等等。由于條件和技術發(fā)展所限,古典密碼學沒有涉及非常高深或者復雜的理論,其安全性也主要取決于密碼算法,但其“代替”和“換位”的基本思想,為后來現(xiàn)代密碼學成為系統(tǒng)的學科以及相關學科的發(fā)展奠定了堅實的基礎。
參考文獻
[1]西蒙辛格,《密碼故事》,海南出版社,2001年10月,第1版
[2]慕建軍,《古典密碼學》,西安電子科大出版社