多表代换明码
A | B | C | D | E | F | G | H | I | J | K | L | M |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
首先将明文 M 分为由 n 个字母形成的分组 M 1,M2,…,Mj,每个分组 M i的加密为:
Ci ≡ AMi + B(mod N)
其中 (A, B) 是秘钥,A 是 n * n 的可逆矩阵。
每个密文 C i的解密为:
Mi ≡ A-1(Ci – B)(mod N)
例子
设 n =3,N=26,明文为“YOUR PIN NO IS FOUR ONE TWO SIX”
$$
A=
\begin{Bmatrix}
11 & 2 & 19 \\
5 & 23 & 25 \\
20 & 7 & 17
\end{Bmatrix}
$$
$$
B=\begin{Bmatrix} 0 \\ 0 \\ 0 \end{Bmatrix}
$$
加密
将明文按每三个字母从新分组:“YOU RPI NNO ISF OUR ONE TWO SIX”。
代换为数字示意:
M1 = 24 14 20
M2 = 17 15 8
M3 = 13 13 14
M4 = 8 18 5
M5 = 14 20 17
M6 = 14 13 4
M7 = 19 22 14
M8 = 18 8 23
依据公式 Ci ≡ AMi + B(mod N) 计算 C i:
C1 = AM1 + B(mod N)
= A[0][0]×M1[0] + A[0][1]×M1[1] + A[0][2]×M1[2] + B[0](mod 26)
= 11×24 + 2×14 + 19×20 + 0(mod 26)
= 672(mod 26)
= 22
= A[1][0]×M1[0] + A[1][1]×M1[1] + A[1][2]×M1[2] + B[1](mod 26)
= 5×24 + 23×14 + 25×20 + 0(mod 26)
= 942(mod 26)
= 6
= A[2][0]×M1[0] + A[2][1]×M1[1] + A[2][2]×M1[2] + B[2](mod 26)
= 20×24 + 7×14 + 17×20 + 0(mod 26)
= 918(mod 26)
= 8
C1 =(22 6 8)= WGI
= A[0][0]×M2[0] + A[0][1]×M2[1] + A[0][2]×M2[2] + B[0](mod 26)
= 11×17 + 2×15 + 19×8 + 0(mod 26)
= 5
= A[1][0]×M2[0] + A[1][1]×M2[1] + A[1][2]×M2[2] + B[1](mod 26)
= 5×17 + 23×15 + 25×8 + 0(mod 26)
= 6
= A[2][0]×M2[0] + A[2][1]×M2[1] + A[2][2]×M2[2] + B[2](mod 26)
= 20×17 + 7×15 + 17×8 + 0(mod 26)
= 9
C2 =(5 6 9)= FGJ
C3 =(19 12 17)= TMR
C4 =(11 7 7)= LHH
C5 =(23 19 7)= XTH
C6 =(22 1 23)= WBX
C7 =(25 15 18)= ZPS
C8 =(1 17 1)= BRB
密文为:WGI FGJ TMR LHH XTH WBX ZPS BRB
解密
Mi ≡ A-1(Ci – B)(mod N)