雙密碼加密與解密

明文
密文
12345
1BIFDA
2CEGHJ
3KLMNO
4PQRST
5UVWXY

什麼是雙密碼?

雙密碼(Bifid Cipher)是一種結合了替換式密碼和置換式密碼的加密算法,它由英國密碼學家 Barrett 在20世紀初發明。與傳統的替換式密碼不同,雙密碼通過兩階段的加密過程,使得加密後的密文更為複雜,提升了加密的強度。雙密碼的加密過程既包括對字母的替換,又包括對這些字母位置的置換,從而為明文提供了更高的安全性。

雙密碼的加密過程主要分為兩個步驟:

  1. 替換:使用一個字母方陣(通常是5×5的方陣)來進行替換。
  2. 置換:對替換後的字母位置進行置換,進一步加密。

雙密碼如何加密?

雙密碼的加密過程可以通過以下幾個步驟進行說明:

  1. 根據祕鑰,生成字母方陣:根據祕鑰和標準字母表(A -Z)生成一個 5×5 的字母方陣。
  2. 替換階段:將明文中的每個字母按照字母方陣找到其對應的行和列,並記錄下每個字母的位置,每個字母會被替換為其所在的行和列的數位對。
  3. 置換階段:在替換階段之後,將所有的行號和列號分開,形成兩個數位序列。接下來,將行號和列號按縱向方向,依次整理到表格中。
  4. 組合新的行列座標:把整理好的表格數據,按行(橫向)從上到下依次讀出;然後,兩兩一組組成新的行列座標。
  5. 密文生成:根據新的行列座標,從字母方陣中找到對應的字母,組成最終的密文資訊。

示例

假設明文為:“HELLO”,祕鑰為“KEY”。

1. 生成字母方陣

12345
1KEYAB
2CDFGH
3IJLMN
4OPQRS
5TUVWX

2. 獲取明文座標

3. 行列座標按縱向整理到表格

明文HELLO
行號21334
列號52331

4. 橫向重新組合行列座標,並分組

(2, 1), (3, 3), (4, 5), (2, 3), (3, 1)

5. 生成密文

所以,HELLO 的加密結果為:CLSFI

雙密碼如何解密?

雙密碼的解密過程與加密過程是反向操作,根據密文字母取得行列座標後,要把行列座標橫向組合成一個新的字串。再把字串一分為二,形成一個兩行N列的表格;接下來,按列(縱向)方向重新組合行列座標;最後,把新的行列座標轉為字母即可得到明文資訊。

示例

假設我們要用祕鑰“KEY”來解密“CLSFI”

1. 把密文字元轉換成座標

2. 橫向組合成一個新的字串

2, 1, 3, 3, 4, 5, 2, 3, 3, 1

3. 把字串一分為二整理到表格中

21334
52331

4. 按列方向重新組合行列座標

(2, 5), (1, 2), (3, 3), (3, 3), (4, 1)

5. 把新座標解密成明文

因此,CLSFI 的對應的明文資訊為:HELLO

分享頁面