希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。
特点:
- 很难抵抗已知明文攻击,如果获得一些明密对,则能解出密文矩阵
我们举个例子:
假设已知明文friday利用n=2的Hill密码加密,得到密文PQCFKU,求秘钥K
-
n等于2,说明把friday分成3段,矩阵是2*2的
-
根据字母与整数的对应关系:(5,17)---->(15,16),(8,3)---->(2,5),(0,24)—>(10,20),得到
-
解出K
-
用(0,24)—>(10,20)验证K
-
得到密钥K就随便破解密文了
注意:
- 结算的结果还要mod26,比如(5,17)---->(15,16),5*7+17*8=171,171mod26=15
- 当n不知道时候,多次猜n,然后验证
- 已知明密文对,很好攻击Hill密码
总结:
- 希尔加密算法的基本思想是,将d个明文字母通过线性变换将它们转换为d个密文字母。解密只要作一次逆变换就可以了,密钥就是变换矩阵本身。
- 希尔密码是多字母代换密码的一种