首页 > 代码库 > 希尔密码加密解密
希尔密码加密解密
这个我是从百科中看到的,但是有些地方看不懂,在查阅资料后,进行了修改,希望对大家有帮助
加密
例如:密钥(密码学中好象没有密匙一词)矩阵
1 3
0 2
这个是加密的密钥
明文:HI THERE
去空格,2个字母一组,根据字母表顺序(如a就是1)换成矩阵数值如下,末尾的E为填充字元:
HI TH ER EE
8 20 5 5
9 8 18 5
HI 经过矩阵运算转换为 IS,具体算法参考下面的说明(mod是求余运算符):
|1 3| 8 :1*8+3*9=35 MOD26=9 =I
|0 2| 9 :0*8+2*9=18 MOD26=18=R
用同样的方法把“HI THERE”转换为密文“IR RPGJTJ”,注意明文中的两个E分别变为密文中的G和T。
解密
解密时,必须先算出密钥的逆矩阵,然后再根据加密的过程做逆运算。
逆矩阵算法公式:(与线性代数有关)
例如密钥矩阵=
|1 7|
|0 3|
AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9
因此
| 1 7 | | 3 -7 |
| | 的逆矩阵为:9 * | |
| 0 3 | | 0 1 |
假设密文为“FOAOESWO”
FO AO ES WO
6 1 5 23
15 15 19 15
9* |3 -7| 6= 9*(3*6-7*15)=-783 mod26 = 23=W
|0 1| 15 = 9*(0*6+1*15)= 135 mod26 = 5 =E
所以密文“FOAOESWO”的明文为“WEREDONE”
希尔密码加密解密