Hill密码是多字母代换古典密码,利用矩阵乘法实现加密解密,本文用C++实现Hill密码的加解密流程并解析其数学原理。
希尔密码加密解密原理
希尔密码是运用基本矩阵论原理的替换密码。每个字母当作26进制数字:A=0,B=1…一串字母当成n维向量,跟一个$n×n$的矩阵相乘,再将得出的结果MOD 26。注意用作加密的矩阵(即密钥)必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。
1 加密的矩阵为随机矩阵
代码
1 | /*hillcrypto.cpp*/ |
结果

2 加密的矩阵为密钥矩阵
代码
1 | /*hill.cpp*/ |
结果


