来源于我的博客
希尔加密法
根据字典序将字母转化为数字(0-25)
设定密钥矩阵(n*n),将明文转化为r*n的矩阵
将明文矩阵与密钥矩阵相乘即可得到密文矩阵(结果模26),再将其转化为字母即可.
以3*3密钥矩阵为例:(确保密钥矩阵能求逆)
int key[3][3] = {
6,13,20,
24,16,17,
1,10,15
};
假设明文CAT,C=2,A=0,T=19,明文矩阵:(2,0,19)T
则密文矩阵:
[(6,13,20)T(24,16,17)T(1,10,15)T]×(2,0,19)T
=(31,216,325)T=(5,8,13)T(mod 26)
密文:5=F , 8=I, 13=N :FIN