ADFGVX和ADFGX加密與解密

明文
密文
ADFGVX
AABCDEF
DGHIJKL
FMNOPQR
GSTUVWX
VYZ0123
X456789

什麼是ADFGVX密碼?

ADFGVX密碼是一種多重字母替換密碼,最早由德國軍方在第一次世界大戰期間使用。它結合了替換和置換的原理,使用一個6×6的方陣來加密字母,字母在方陣中被替換成兩個字元的組合。ADFGVX密碼的名稱來自於這個方陣的六個字母(A、D、F、G、V、X),這些字母分別代表了方陣中的行和列,如下圖:

ADFGVX

在ADFGVX密碼中,每個明文字元首先被替換成一個由兩個字母組成的行列代碼,這些字母根據一個預定的字母表來映射。如字母 M 對應的行列代碼為:FA。加密的第二步是將這些由字母組成的代碼根據祕鑰重新排列,形成一個新順序,從而最終得到密文。

ADFGVX 與 ADFGX 密碼的比較

雖然ADFGVX密碼和ADFGX密碼都屬於同一種密碼體系,但它們之間還是存在一些重要的差異。這些差異主要體現在字母表的結構和使用的字元數上,進而影響到加密和解密的複雜性和適用場景。

特性ADFGVX密碼ADFGX密碼
字母表大小6×6方陣,包含36個字符(字母 + 數字)5×5方陣,包含25个字符(字母)
行、列號A、D、F、G、V、XA、D、F、G、X
加密複雜度較高,能加密更多類型的字符,安全性更強較低,僅處理字母,加密複雜度較簡單
安全性更強,適用於更高安全性需求較弱,適合簡單加密需求
適用場景適用於包含字母和數字的複雜資訊加密,如軍事通訊等適用於僅包含字母的簡單加密需求

ADFGVX 和 ADFGX 密碼如何加密?

  1. 準備明文:刪除明文中的任何非字母字元(如空格、標點等)。
  2. 構建字母方陣:設置字母表,根據字母表生成 ADFGVX 或 ADFGX 方陣。
  3. 替換明文字元:對明文中的每個字母,根據字母方陣找到對應的行和列,替換為一個由兩個字母組成的行列代碼。
  4. 構建祕鑰表格:根據祕鑰重新構建表格,把行列代碼寫入這個表格,按行填充。
  5. 表格排序:根據祕鑰的字母順序,重新整理列的順序。
  6. 生成密文:逐列讀取表格中的代碼,獲取最終密文。

示例

假設明文為:“HELLO WORLD”,使用默認字母表(A - Z 0 - 9),在ADFGVX模式,用祕鑰“KEYWORD”來加密

1. 構建字母方陣

ADFGVX
AABCDEF
DGHIJKL
FMNOPQR
GSTUVWX
VYZ0123
X456789

2. 替換明文字符

3. 構建並填充祕鑰表格(橫向填充)

KEYWORD
3276451
DDAVDXD
XFFGVFF
FXDXAG

4. 排序表格

DEKORWY
1234567
DDDDXVA
FFXVFGF
XFAGXD

5. 生成密文

按列讀取,獲取最終密文:DFDFXDXFDVAXFGVGXAFD

ADFGVX密碼如何解密?

解密過程與加密過程的步驟類似,獲取行列字母座標後,要按照祕鑰的字母順序(A - Z)填充到表格中。注意:要判斷是否能完全填充,若不能,哪些單元格不能填充。填充完成後再還原成祕鑰的原先順序;接著,按行(橫向)從上到下,兩兩組合讀出行列座標;最後,根據重新組合的行列座標和字母表方陣還原明文資訊。

分享頁面