兩方密碼加密與解密
明文
密文
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | E | X | A | M | P |
2 | L | B | C | D | F |
3 | G | H | I | J | K |
4 | N | O | Q | R | S |
5 | T | U | V | W | Y |
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | K | E | Y | W | O |
2 | R | D | A | B | C |
3 | F | G | H | I | J |
4 | L | M | N | P | Q |
5 | S | T | U | V | X |
什麼是兩方密碼?
兩方密碼(Two-square cipher)是一種基於替換式密碼的密碼算法,其主要特點是使用了兩個獨立的字母方陣來進行加密和解密操作。與傳統的單方陣密碼(如普萊費爾密碼)相比,兩個方陣的使用增加了加密的複雜性,使得破解起來更加困難。
兩方密碼與普萊費爾密碼的區別
特性 | 兩方密碼 | 普萊費爾密碼 |
---|---|---|
方陣數量 | 使用兩個獨立的字母方陣,每個方陣由一個秘鑰生成,用來加密每對字母。 | 只使用一個字母方陣,由單一秘鑰生成,通常是5×5的表格,所有字母(或字母與數字)都放置在該方陣中。 |
加密方式 | 對於每對字母,分別在兩個不同的方陣中找到它們的行列座標,並根據位置關係進行替換。 | 對於每個字母,使用單一方陣中的位置進行替換。 |
安全性 | 由於使用了兩個獨立的秘鑰和兩個方陣,安全性較普萊費爾密碼更強。即使敵方破解了一個方陣,另一個方陣仍然保持密封。 | 單一方陣的加密方法相對簡單,破解時只需要分析方陣中的字母順序,因此相較於兩方密碼,安全性較低。 |
解密過程 | 解密時需要分別使用兩個方陣,將密文中的字母依照原始位置還原,透過逆向操作(如按列或行提取字母)來恢復明文。 | 解密時只需要使用同一個方陣,透過逆向轉換來恢復明文。 |
兩方密碼如何加密?
兩方密碼的加密過程分為幾個步驟:
- 準備明文
- 設置兩個祕鑰:兩方密碼需要兩個不同的祕鑰,每個祕鑰用於生成一個5×5的字母方陣。每個祕鑰的字母表通過去重後按順序填入方陣,剩下的空位則按順序補充字母表中未出現的字母。
- 將明文分為兩兩一組的字母對:將明文中的每兩個字母組合成一對(如果字母數為奇數,則加一個填充字母,如“X”)。
- 替換字母:對每一對字母,找到這兩個字母在兩個方陣中的位置,然後,用它們所在的行與列形成一個矩形,取矩形對角線上的字母替換。
- 生成密文:通過上面的替換步驟,將所有明文對轉換成對應的密文。
示例
假設用兩個祕鑰 “MONARCHY”和“BIPINXDFGKL”加密“HELLO”。
1. 根據祕鑰生成方陣
M | O | N | A | R |
C | H | Y | B | D |
E | F | G | I | J |
K | L | P | Q | S |
T | U | V | W | X |
B | I | P | N | X |
D | F | G | K | L |
A | C | E | H | J |
M | O | Q | R | S |
T | U | V | W | Y |
2. 將明文分組
每兩個字母組合成一對,HELLO可拆分為“HE”, “LL”, “OX”(字母數為奇數,O後面補充一個X)。
3. 替換字母
- HE → YC
- LL → SF
- OX → RI
所以,HELLO 對應的密文為:YCSFRI。
兩方密碼如何解密?
兩方密碼解密過程與加密步驟完全一致,通過反向替換的步驟,逐一恢復出明文。
示例
根據上方提供的兩個祕鑰解密“YCSFRI”資訊
1. 將密文分組
兩兩一組,YCSFRI 可拆分為“YC”, “SF”, “RI”。
2. 替換字母
- YC → HE
- SF → LL
- RI → OX
所以,YCSFRI 的明文為:HELLOX。