四方密码加密与解密
明文
密文
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