棋盘密码加密解密
棋盘序列
- 棋盘密码只加密字母,不区分大小写(ADFGVX棋盘还可加密数字),若输入其它字符则原样保留。
- 若输入多行(段落),每行是单独加密的。
- Polybius/ADFGX棋盘由于I/J在同一格,解密后需人工确认I和J。
- ADFGX/ADFGVX棋盘原则上需要密钥二次加密,但可留空不使用密钥。若使用,则必须符合棋盘密码严格定义,即:
- Polybius/ADFGX明文只能是连续字母。
- ADFGVX明文只能是连续字母或数字或两者。
- Polybius密文必定是连续数字,且在1-5之间。
- ADFGX/ADFGVX密文必定是连续字母,且是ADFGX或ADFGVX。
棋盘密码属于古典密码,采用矩阵排列方法进行加密。本页面可对以下几种棋盘密码进行加密和解密:
㈠ 波利比奥斯棋盘(Polybius Checkerboard)
公元前2世纪,希腊人Polybius发明了这种加密方法。他设计了一个5行5列的方阵用来排列26个字母(其中I和J在同一格),这样就可以用某个字母对应的行列数表示它,达到加密目的。下面是基础方阵字母表(按顺序排列):
1 | 2 | 3 | 4 | 5 | |
1 | A | B | C | D | E |
2 | F | G | H | I/J | K |
3 | L | M | N | O | P |
4 | Q | R | S | T | U |
5 | V | W | X | Y | Z |
例如“hello”用棋盘密码加密后变成“2315313134”。实际应用中,方阵中的字母顺序会被打乱,然后分发给信息发送方和接收方,增加第三方破解难度。
-
特点:
- 明文只能是字母;
- 密文全部为数字;
- 密文长度是明文的两倍,即偶数;
- 明文字母I和J的密文编码相同,解密后需人工确认。
㈡ ADFGX棋盘密码
第一次世界大战中德军发明了ADFGX棋盘密码,它是Polybius棋盘密码的改良版本,以适应当时的电报信息加密传送。ADFGX密码将Polybius棋盘中的12345替换成ADFGX,因此密文由数字变成了字母。然后使用一个密钥将密文再次移位加密,得到最终密文。
A | D | F | G | X | |
A | A | B | C | D | E |
D | F | G | H | I/J | K |
F | L | M | N | O | P |
G | Q | R | S | T | U |
X | V | W | X | Y | Z |
例如“hello”用ADFGX棋盘加密得到密文“DFAXFAFAFG”,然后用密钥“bye”再次加密:
b | y | e |
D | F | A |
X | F | A |
F | A | F |
G |
密钥有几个字母,就有多少列,然后将密文一行一行填入。把密钥“bye”按字母顺序重排为“bey”,依照这个顺序将表格中的字母一列一列的抄写得到:DXFGAAFFFA,这就是最终密文。
可见,由于增加了密钥,ADFGX棋盘的加密强度明显高于Polybius棋盘密码。
-
特点:
- 明文只能是字母;
- 密文只会是字母:ADFGX;
- 密文长度是明文的两倍,即偶数;
- 明文字母I和J的密文编码相同,解密后需人工确认。
㈢ ADFGVX棋盘密码
它是ADFGX棋盘的加强版本,增加了一个行列,用V表示。如此形成6行6列的棋盘,容纳26个字母、10个数字,总计36个字符。加密强度更高,且解密时不再刻意区分I和J。
A | D | F | G | V | X | |
A | A | B | C | D | E | F |
D | G | H | I | J | K | L |
F | M | N | O | P | Q | R |
G | S | T | U | V | W | X |
V | Y | Z | 0 | 1 | 2 | 3 |
X | 4 | 5 | 6 | 7 | 8 | 9 |
例如“hello”用ADFGVX棋盘加密得到密文“DDAVDXDXFF”,然后用密钥“bye”再次加密:
b | y | e |
D | D | A |
V | D | X |
D | X | F |
F |
依照“bey”的顺序抄写列,得到最终密文:DVDFAXFDDX。
-
特点:
- 明文只能是字母或数字或两者;
- 密文只会是字母:ADFGVX;
- 密文长度是明文的两倍,即偶数。