盡管簡單地“將信息起來”與我們今天熟知的密碼學相差甚遠,被稱為“隱匿法”的秘密書寫方式卻標志著人們開始探索信息保密的方式。
2
加密法
隱匿法僅僅將信息藏匿起來,一旦藏匿的方式暴露,或是負責傳達信息的信使叛變,信息安全也無從保證。加密法則注重信息本身的含義,信息的發出方與接收方事先約定,將信息按照一定的規則進行轉譯(encipher),接收方在收到后遵循約定的規則就可以還原原始信息,而即使信息被第三方截獲,如果不知道轉譯規則,也無法還原出原始信息。
加密法的出現標志著古典密碼學的開端。在上面的例子中,未經加密的原始信息稱為明文(plaintext),按照特定的規則對明文進行轉譯后得到的信息稱為密文(ciphertext),這個規則稱為加密算法。古典密碼學的加密算法大多是以字母、單詞或是短語為基本單位,又可分為置換法(Transposition ciphers)和替換法(Substitution ciphers)兩大類。
置換法依照一定的規則,改變原始信息中的字母排列順序。公元前5世紀,斯巴達軍隊采用一種名為“密碼棒”(Scytale)的工具對信息進行加密。發信人將長條形的羊皮紙帶纏繞在一根木棒上,將信息橫向書寫,最后將羊皮紙解下。收信人將信紙纏繞在同樣直徑的木棒上,就能夠還原信息。而羊皮紙上的文字看起來是無意義的,并且用尺寸不相同的木棒也無法還原出原始信息。
但只要了解這種密碼的加密方式,就能很容易地解讀密文。從密文的第一個字母開始,每數到它之后的第N個字母,記下該字母。記錄到密文結尾后,再從第二個字母開始重復這樣的操作,以此類推,很快就可以還原明文信息。其中N取決于木棒的直徑,寫下N個字母后,紙帶正好繞木棒一圈,選擇不同的N,同樣的明文經過加密得到的密文也不相同。發信人和收信人要事先約定好同樣的N,收信人才能還原密文。同時N不能被第三方知曉,才能保證加密通信的安全。這里的N稱為密鑰,是加密通信的參與方共同享有的秘密知識(secretary knowledge),用于加密和解密信息。
替換法將原始信息中的字母按照一定的規則替換成其他字母。據傳,凱撒大帝使用替換式加密法寫作書信。凱撒大帝將信息中的每個字母后移三位,例如A替換成D,Y替換成B,這種加密法稱為凱撒挪移式加密法(Caesar cipher)。在這個例子中,密文相比明文,每個字母都被后移了3位,密鑰可以用3表示。密鑰可能的取值范圍為1~25的自然數(密鑰為0時,密文與原文相同),稱為密鑰空間。明文里所有可能出現的字母的集合稱為明文空間,密文里可能出現的字母集合稱為密文空間,替換法中的密鑰可以表示為明文空間到密文空間的一個映射,在古典密碼學中又稱為密碼表。密文空間可以與明文空間相同,例如凱撒密碼中,密文的字母仍然是26個拉丁字母。密文空間也可以是明文空間的超集,例如在密文中混入一些無效字符,以干擾試圖破譯密碼的行動。密文空間還可以與明文空間完全不相關,例如在柯南道爾所著的福爾摩斯系列的《跳舞的人》(the Adventure of Dancing Men)中,罪犯用26種形態各異的跳舞的小人來替換英文字母。
公元8世紀,阿拉伯哈里發帝國的第二個世襲王朝――阿拔斯王朝在巴格達定都,其建立之初的一百年是伊斯蘭文明的黃金時代。據記載,阿拔斯王朝的官員們使用替換式加密法保護機密的行政事務、稅收數據,相信這能夠幫助他們建立一個廉潔、高效的政府。巴士拉的語言學家卡里爾(Al-Khalil)撰寫了《加密信息手冊》(Book of Cryptographic Messages),使用排列組合對阿拉伯語單詞的加密法進行分析。此外,阿拉伯的學者們還開創了破譯加密信息的科學――密碼分析學(Cryptanalysis)。
3持續千年的智力競賽:加密與解密
古典密碼學多用于軍事、政治、外交領域重要情報的傳遞,希望刺探這些秘密的人自然不在少數。阿拉伯學者們在統計語言學資料時發現,在樣本容量較大,有意義的阿拉伯語文本中,每個字母出現的頻率是不一樣的。字母a和字母l在阿拉伯語中出現頻率最高(這里用阿拉伯語字母的拉丁轉寫表示),因為“al”是阿拉伯語中的定冠詞,相當于英語的“the”,此外,元音的出現頻率也比較高。這些成果很快被運用到密文分析中。
此文由 中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 密碼學初探:信息的藝術――區塊鏈技術引卷之十一