人類使用密碼的曆史,從今天已知的,最早可以一直追溯到古巴比倫人的泥板文字。古埃及人、古羅馬人、古阿拉伯人……幾乎世界曆史上所有文明都使用過密碼。軍事和外交一直是密碼應用的最重要的領域,國王、將軍、外交官以及陰謀分子等,為了在通訊過程中保護自己信息不被外人所知,使用過形形色色的密碼;而為了刺探於己不利的秘密,他們又絞盡腦汁地試圖破譯對手的密碼。加密與解密一直是密碼學這枚硬幣互相對抗又互相促進的兩麵。在所有用於軍事和外交的密碼裏,最著名的恐怕應屬第二次世界大戰中德國方麵使用的ENIGMA(讀作“恩尼格瑪”,意為“謎”)。
直到第一次世界大戰結束為止,所有密碼都是使用手工來編碼的。直截了當地說,就是鉛筆加紙的方式。在我國,郵電局電報編碼和譯碼直到很晚(大概是20世紀80年代初)還在使用這種手工方法。手工編碼的方式給使用密碼的一方帶來很多的不便。首先,這使得發送信息的效率極其低下。明文(就是沒有經過加密的原始文本)必須由加密員人工一個一個字母地轉換為密文。考慮到不能多次重複同一種明文到密文的轉換方式(這很容易使敵人猜出這種轉換方式),和民用的電報編碼解碼不同,加密人員並不能把轉換方式牢記於心。轉換通常是采用查表的方法,所查表又每日不同,所以解碼速度極慢。而接收密碼一方又要用同樣的方式將密文轉為明文。其次,這種效率低下的手工操作也使得許多複雜的保密性能更好的加密方法不能被實際應用,而簡單的加密方法根本不能抵擋解密學的威力。
解密一方當時正值春風得意之時,幾百年來被認為堅不可破的維吉耐爾密碼和它的變種也被破解。而無線電報的發明,使得截獲密文易如反掌。無論是軍事方麵還是民用商業方麵都需要一種可靠而又有效的方法來保證通訊的安全。
1918年,德國發明家亞瑟·謝爾比烏斯和他的朋友理查德·裏特創辦了謝爾比烏斯和裏特公司。這是一家專營把新技術轉化為應用方麵的企業,很像現在的高新技術公司,利潤不小,可是風險也很大。謝爾比烏斯負責研究和開發方麵,緊追當時的新潮流。他曾在漢諾威和慕尼黑研究過電氣應用,他的一個想法就是要用20世紀的電氣技術來取代那種過時的鉛筆加紙的加密方法。
謝爾比烏斯發明的加密電子機械名叫ENIGMA,在以後的年代裏,它將被證明是有史以來最為可靠的加密係統之一,而對這種可靠性的盲目樂觀,又使它的使用者遭到了滅頂之災。這是後話,暫且不提。
ENIGMA看起來是一個裝滿了複雜而精致的元件的盒子。不過要是我們把它打開來,就可以看到它可以被分解成相當簡單的幾部分。下麵的圖是它的最基本部分的示意圖,我們可以看見它的三個部分:鍵盤、轉子和顯示器。
在上麵ENIGMA的照片上,我們看見水平麵板的下麵部分就是鍵盤,一共有26個鍵,鍵盤排列接近我們現在使用的計算機鍵盤。為了使消息盡量地短和更難以破譯,空格和標點符號都被省略。在示意圖中我們隻畫了6個鍵。實物照片中,鍵盤上方就是顯示器,它由標示了同樣字母的26個小燈組成,當鍵盤上的某個鍵被按下時,和此字母被加密後的密文相對應的小燈就在顯示器上亮起來。同樣地,在示意圖上我們隻畫了六個小燈。在顯示器的上方是三個轉子,它們的主要部分隱藏在麵板之下,在示意圖中我們暫時隻畫了一個轉子。
鍵盤、轉子和顯示器由電線相連,轉子本身也集成了6條線路(在實物中是26條),把鍵盤的信號對應到顯示器不同的小燈上去。在示意圖中我們可以看到,如果按下a鍵,那麼燈B就會亮,這意味著a被加密成了B。同樣地我們看到,b被加密成了A,c被加密成了D,d被加密成了F,e被加密成了E,f被加密成了C。於是如果我們在鍵盤上依次鍵入cafe(咖啡),顯示器上就會依次顯示DBCE。這是最簡單的加密方法之一,把每一個字母都按一一對應的方法替換為另一個字母,這樣的加密方式叫做“簡單替換密碼”。