密碼學(xué)來歷及相關(guān)術(shù)語
其實在公元前,秘密書信已用于戰(zhàn)爭之中。西洋“史學(xué)之父”希羅多德(Herodotus)的《歷史》(The Histories)當(dāng)中記載了一些最早的秘密書信故事。公元前5世紀(jì),希臘城邦為對抗奴役和侵略,與波斯發(fā)生多次沖突和戰(zhàn)爭。于公元前480年,波斯秘密結(jié)了強(qiáng)大的軍隊,準(zhǔn)備對雅典(Athens)和斯巴達(dá)(Sparta)發(fā)動一次突襲。希臘人狄馬拉圖斯(Demaratus)在波斯的蘇薩城(Susa)里看到了這次集結(jié),便利用了一層蠟把木板上的字遮蓋住,送往并告知了希臘人波斯的圖謀。最后,波斯海軍覆沒于雅典附近的沙拉米斯灣(Salamis Bay)。由于古時多數(shù)人并不識字,最早的秘密書寫的形式只用到紙筆或等同物品,隨著識字率提高,就開始需要真正的密碼學(xué)了。最古典的兩個加密技巧是:置換(Transposition cipher):將字母順序重新排列,例如‘help me’變成‘ehpl em’。替代(substitution cipher):有系統(tǒng)地將一組字母換成其他字母或符號,例如‘fly at once’變成‘gmz bu podf’(每個字母用下一個字母取代)。
密鑰:分為加密密鑰和解密密鑰。明文:沒有進(jìn)行加密,能夠直接代表原文含義的信息。密文:經(jīng)過加密處理處理之后,隱藏原文含義的信息。加密:將明文轉(zhuǎn)換成密文的實施過程。解密:將密文轉(zhuǎn)換成明文的實施過程。密碼算法:密碼系統(tǒng)采用的加密方法和解密方法,隨著基于數(shù)學(xué)密碼技術(shù)的發(fā)展,加密方法一般稱為加密算法,解密方法一般稱為解密算法。直到現(xiàn)代以前,密碼學(xué)幾乎專指加密(encryption)算法:將普通信息(明文,plaintext)轉(zhuǎn)換成難以理解的資料(密文,ciphertext)的過程;解密(decryption)算法則是其相反的過程:由密文轉(zhuǎn)換回明文;加解密包含了這兩種算法,一般加密即同時指稱加密(encrypt或encipher)與解密(decrypt或decipher)的技術(shù)。加解密的具體運(yùn)作由兩部分決定:一個是算法,另一個是密鑰。
密鑰是一個用于加解密算法的秘密參數(shù),通常只有通訊者擁有。歷史上,密鑰通常未經(jīng)認(rèn)證或完整性測試而被直接使用在密碼機(jī)上。密碼協(xié)議(cryptographic protocol)是使用密碼技術(shù)的通信協(xié)議(communication protocol)。近代密碼學(xué)者多認(rèn)為除了傳統(tǒng)上的加解密算法,密碼協(xié)議也一樣重要,兩者為密碼學(xué)研究的兩大課題。在英文中,cryptography和cryptology都可代表密碼學(xué),前者又稱密碼術(shù)。但更嚴(yán)謹(jǐn)?shù)卣f,前者(cryptography)指密碼技術(shù)的使用,而后者(cryptology)指研究密碼的學(xué)科,包含密碼術(shù)與密碼分析。密碼分析(cryptanalysis)是研究如何破解密碼學(xué)的學(xué)科。
但在實際使用中,通常都稱密碼學(xué)(英文通常稱cryptography),而不具體區(qū)分其含義。口語上,編碼(code)常意指加密或隱藏信息的各種方法。然而,在密碼學(xué)中,編碼有更特定的意義:它意指以碼字(code word)取代特定的明文。例如,以‘蘋果派’(apple pie)替換‘拂曉攻擊’(attack at dawn)。編碼已經(jīng)不再被使用在嚴(yán)謹(jǐn)?shù)拿艽a學(xué),它在信息論或通訊原理上有更明確的意義。在漢語口語中,電腦系統(tǒng)或網(wǎng)絡(luò)使用的個人帳戶口令(password)也常被以密碼代稱,雖然口令亦屬密碼學(xué)研究的范圍,但學(xué)術(shù)上口令與密碼學(xué)中所稱的鑰匙(key)并不相同,即使兩者間常有密切的關(guān)連。