首页 > 代码库 > 希尔密码加密解密

希尔密码加密解密

这个我是从百科中看到的,但是有些地方看不懂,在查阅资料后,进行了修改,希望对大家有帮助
加密
例如:密钥(密码学中好象没有密匙一词)矩阵
    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”

希尔密码加密解密