四方密碼加密與解密
明文
密文
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | A | B | C | D | E |
2 | F | G | H | I | J |
3 | K | L | M | N | O |
4 | P | R | S | T | U |
5 | V | W | X | Y | Z |
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 |
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | A | B | C | D | E |
2 | F | G | H | I | J |
3 | K | L | M | N | O |
4 | P | R | S | T | U |
5 | V | W | X | Y | Z |
什麼是四方密碼?
四方密碼(Four-square cipher)是一種對稱式加密法,與兩方密碼類似,四方密碼使用了四個字母方陣,但與兩方密碼不同的是,它需要兩個祕鑰和兩個字母表,形成四個獨立的方陣。這種結構使得四方密碼比兩方密碼更加複雜和安全。
在四方密碼中,首先生成四個方陣:
- 左上方陣(第一方陣):使用一個字母表生成;
- 右上方陣(第二方陣):使用第一個祕鑰生成;
- 左下方陣(第三方陣):使用第二個祕鑰生成;
- 右下方陣(第四方陣):使用另一個字母表生成。
明文中的每一對字母會分別被替換為這四個方陣中的字母,增加了加密的難度和安全性。
四方密碼如何加密?
四方密碼的加密過程如下:
- 準備明文:去除明文中不在字母表中的字元,如空格和標點符號等等。
- 設置兩個祕鑰和兩個字母表:祕鑰的長度與複雜性將決定加密的效果。
- 生成四個字母方陣: 根據字母表和祕鑰,分別生成的四個字母方陣。
- 將明文分為字母對:按照兩兩一組,將明文分成字母對,如果字母數為奇數,可在最後一個字母后面填充一個字元,如“X”。
- 替換字母:對每一對字母,分別在左上和右下方陣中(第一和第四方陣)查找它們的位置。接著,在右上和左下方陣中(第二和第三方陣)找出兩個字母,使其與原字母對組成一個矩形,取矩形對角線上的字母替換原先字母對。
- 生成密文:將所有字母對按此規則逐一替換,最終生成密文。
示例
假設要用下面4個資訊來加密“HELLO”
- 字母表 1:ABCDEFGHIKLMNOPQRSTUVWXYZ(注意沒有字母“J”)
- 字母表 2:ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 祕鑰 1:FOUR
- 祕鑰 2:KEYWORDS
1. 生成四個字母方陣
字母表 1
A | B | C | D | E |
F | G | H | I | K |
L | M | N | O | P |
Q | R | S | T | U |
V | W | X | Y | Z |
祕鑰 1
F | O | U | R | A |
B | C | D | E | G |
H | I | J | K | L |
M | N | P | Q | S |
T | V | W | X | Y |
K | E | Y | W | O |
R | D | S | A | B |
C | F | G | H | I |
J | L | M | N | P |
Q | T | U | V | X |
祕鑰 2
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
字母表 2
2. 將明文分為字母對
“HELLO”會分為“HE”, “LL”, “OX”。
3. 替換字母
- HE → GY
- LL → IC
- OX → KV
因此,HELLO 的加密結果為:GYICKV
四方密碼如何解密?
解密過程與加密過程相似,關鍵在於替換字母時,要先在右上和左下方陣中(第二和第三方陣)找出密文字母對,然後,在左上和右下方陣中(第一和第四方陣)查找對應的明文字母,逐一替換完成解密。
例如,根據加密提供的字母表和祕鑰要解密“GYICKV”資訊。
首先,根據字母表和祕鑰生成4個字母方陣,同加密時一致。
接著,將密文“GYICKV”拆成字母對:“GY”,“IC”,“KV”。
最後,替換字母,根據密文字母對在右上和左下方陣中(第二和第三方陣)找出位置;然後,在左上和右下方陣中(第一和第四方陣)查找對應的明文字母,使它們形成一個矩形。
- GY → HE
- IC → LL
- KV → OX
所以,GYICKV 的解密結果為:HELLOX