跳轉到內容

密碼學/維吉尼亞密碼

來自華夏公益教科書,開放的書籍,開放的世界

維吉尼亞密碼

[編輯 | 編輯原始碼]

維吉尼亞密碼是 16 世紀 Blaise de Vigenere 開發的最著名且最簡單的多表代換密碼之一。維吉尼亞密碼的操作方式類似於凱撒密碼,但是,它不是將明文字元偏移固定值 n,而是選擇一個關鍵詞(或短語),並使用該關鍵詞中字元的序數來確定偏移量。生成密文的流程很簡單,但它在 300 年間未被破解。該系統非常簡單,以至於維吉尼亞加密系統已被發現和重新發現數十次。

例如,如果關鍵詞是“KEY”,明文是“VIGENERE CIPHER”,則首先必須重複金鑰,使其與文字長度相同(因此金鑰變為keykeykeykeyke)。接下來,V(22)的序數值透過 K(11)的序數值偏移,得到 F(6),I(9)的序數值透過 E(5)的序數值偏移,得到 M(13),等等。金鑰會重複,直到整個訊息被加密。

P: VIGENERECIPHER
K: KEYKEYKEYKEYKE
C: FMEORCBIASTFOV

一種更簡單但等效的加密文字方法是寫出字母表和金鑰的每個字母,並簡單地將字母配對。

ABCDEFGHIJKLMNOPQRSTUVWXYZ

KLMNOPQRSTUVWXYZABCDEFGHIJ
EFGHIJKLMNOPQRSTUVWXYZABCD
YZABCDEFGHIJKLMNOPQRSTUVWX

首先,第一行中的 V 會與第二行中的 F 對齊。然後,向下移動一行,你會發現第一行中的 I 與第三行中的 M 對齊。在到達最後一行後,你將繼續將字母與第二行對齊。這使用了完全相同的密碼,只是在手工進行加密時,這是一種更容易執行的加密方法。

凱撒密碼可以被視為維吉尼亞密碼的特例,其中選擇的關鍵詞只有一個字元長。

用演算法來表達這種密碼將是

(plain_text_letter + (key_letter - 1)) mod 26 = cipher_text_letter

GROMARK 密碼

[編輯 | 編輯原始碼]

格朗斯菲爾德密碼是維吉尼亞密碼的一種變體,它使用偽隨機十進位制金鑰。[1]

格朗斯菲爾德密碼是由約瑟夫·德·布龍克霍斯特(Gronsfeld 伯爵)在 1744 年發明的。[2]

格朗斯菲爾德伯爵(Gronsfeld 密碼)開發的密碼在整個歐洲使用。它的加密和解密與維吉尼亞密碼相同,只是金鑰是十進位制數字塊(根據需要重複),將每個明文字元偏移 0 到 9,而不是字母塊(根據需要重複),將每個明文字元偏移 0 到 25。它比維吉尼亞密碼更受歡迎,儘管它有侷限性。

用演算法來表達這種密碼將是:[3]

(plain_text_letter + key_digit) mod 26 = cipher_text_letter

GROMARK 密碼是使用混合字母表和執行金鑰的格朗斯菲爾德密碼。[4]

執行金鑰密碼

[編輯 | 編輯原始碼]

執行金鑰密碼是一種多表代換密碼,它使用一段文字(通常來自一本書)來提供一個非常長的金鑰流。通常,要使用的書籍會在事前達成一致,而要使用的段落會在每次傳送訊息時隨機選擇,並在訊息中的某個地方秘密地指示出來。

密碼分析員會看到密文字母分佈中出現峰值,對應於當高頻明文字母被高頻金鑰文字字母加密時形成的字母。[5]

如果密碼分析員發現兩個密文是用相同的“一次性”密碼(錯誤地)加密兩個不同的明文訊息生成的,那麼密碼分析員可以將這兩個訊息合併以生成一個新的密文,該密文與使用其中一個原始明文訊息作為執行金鑰加密另一個原始明文的結果相同,然後使用解密執行金鑰密碼的技術來嘗試恢復這兩個明文。


進一步閱讀

[編輯 | 編輯原始碼]

在本手冊的後續章節中,我們將討論破解維吉尼亞密碼的技術。

  1. "GROMARK 密碼及其變體"
  2. "格朗斯菲爾德密碼".
  3. Jerry Metzger. "美國密碼協會及其影響". 美國密碼協會出版物。第 8 章:“密碼交換和密碼標準”。第 "格朗斯菲爾德密碼" 節。
  4. Jerry Metzger. "美國密碼協會密碼交換和密碼標準”。第 "GROMARK 密碼"
  5. Sravana Reddy; Kevin Knight. "解碼執行金鑰密碼". 2012.
華夏公益教科書