“Hill的加密与解密” 


wKiom1b06QajKGjaAAAqLz5Pxr4581.png

       Hill加密是另一种多字母代替密码,与多表代替密码不同的是,Hill密码要求将明文分成同等规模的若干个分组(最后一个分组涉及到填充),每一个分组被整体的加密代换,即希尔密码属于分组加密。Hill密码的算法思想是:将一个分组中的d个连续的明文字母通过线性变换转换为d个密文字母。这种变换由d个线性方程决定,其中每个字母被分配一个数值(0,1,。。。,25)。解密只需要做一次逆变换就可以了,密钥就是变换矩阵本身。


       设明文为一维矩阵m,密文为一维矩阵c,密钥用k矩阵表示,则:

wKioL1b057mQ0rzVAAAdTWnxYAQ682.png

即密文分组=明文分组*密钥矩阵。


       本程序使用的密钥是:

wKiom1b06CTSjgy9AAAZnz97wrs097.png


      下面是具体的源程序:

—头文件:classical.h
#pragma o