兩方密碼加密與解密

明文
密文
12345
1EXAMP
2LBCDF
3GHIJK
4NOQRS
5TUVWY
12345
1KEYWO
2RDABC
3FGHIJ
4LMNPQ
5STUVX

什麼是兩方密碼?

兩方密碼(Two-square cipher)是一種基於替換式密碼的密碼算法,其主要特點是使用了兩個獨立的字母方陣來進行加密和解密操作。與傳統的單方陣密碼(如普萊費爾密碼)相比,兩個方陣的使用增加了加密的複雜性,使得破解起來更加困難。

兩方密碼與普萊費爾密碼的區別

特性兩方密碼普萊費爾密碼
方陣數量使用兩個獨立的字母方陣,每個方陣由一個秘鑰生成,用來加密每對字母。只使用一個字母方陣,由單一秘鑰生成,通常是5×5的表格,所有字母(或字母與數字)都放置在該方陣中。
加密方式對於每對字母,分別在兩個不同的方陣中找到它們的行列座標,並根據位置關係進行替換。對於每個字母,使用單一方陣中的位置進行替換。
安全性由於使用了兩個獨立的秘鑰和兩個方陣,安全性較普萊費爾密碼更強。即使敵方破解了一個方陣,另一個方陣仍然保持密封。單一方陣的加密方法相對簡單,破解時只需要分析方陣中的字母順序,因此相較於兩方密碼,安全性較低。
解密過程解密時需要分別使用兩個方陣,將密文中的字母依照原始位置還原,透過逆向操作(如按列或行提取字母)來恢復明文。解密時只需要使用同一個方陣,透過逆向轉換來恢復明文。

兩方密碼如何加密?

兩方密碼的加密過程分為幾個步驟:

  1. 準備明文
  2. 設置兩個祕鑰:兩方密碼需要兩個不同的祕鑰,每個祕鑰用於生成一個5×5的字母方陣。每個祕鑰的字母表通過去重後按順序填入方陣,剩下的空位則按順序補充字母表中未出現的字母。
  3. 將明文分為兩兩一組的字母對:將明文中的每兩個字母組合成一對(如果字母數為奇數,則加一個填充字母,如“X”)。
  4. 替換字母:對每一對字母,找到這兩個字母在兩個方陣中的位置,然後,用它們所在的行與列形成一個矩形,取矩形對角線上的字母替換。
  5. 生成密文:通過上面的替換步驟,將所有明文對轉換成對應的密文。

示例

假設用兩個祕鑰 “MONARCHY”和“BIPINXDFGKL”加密“HELLO”。

1. 根據祕鑰生成方陣

MONAR
CHYBD
EFGIJ
KLPQS
TUVWX
BIPNX
DFGKL
ACEHJ
MOQRS
TUVWY

2. 將明文分組

每兩個字母組合成一對,HELLO可拆分為“HE”, “LL”, “OX”(字母數為奇數,O後面補充一個X)。

3. 替換字母

所以,HELLO 對應的密文為:YCSFRI

兩方密碼如何解密?

兩方密碼解密過程與加密步驟完全一致,通過反向替換的步驟,逐一恢復出明文。

示例

根據上方提供的兩個祕鑰解密“YCSFRI”資訊

1. 將密文分組

兩兩一組,YCSFRI 可拆分為“YC”, “SF”, “RI”。

2. 替換字母

所以,YCSFRI 的明文為:HELLOX

分享頁面