数学和密码学一直是不可分割的两门学科,像我们熟悉的RSA算法就是基于数学中大素数之积难被分解所设计的。那么我们今天来了解一种将字母替换为数字的密码——希尔密码。

希尔密码简介

希尔密码(Hill Cipher)是Lester S. Hill在1929年发明的,它是运用基本矩阵论原理的替换密码,首先将字母转换为数字,将字母分成多个n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。需要注意的是密钥矩阵必须是可逆的,即矩阵的行列式和26互质。

希尔密码

希尔密码的原理

每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果mod26。用作加密的矩阵(即密匙)必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。

  • 加密:

1、定义一个矩阵a(须存在逆矩阵)作为加密密钥:

[1,2,1]

[0,2,1]

[1,0,2]

2、将需要加密的明文字母转换为其对应的字母表数字(1-a,2-b……);

3、将转换后的明文数字序列按照密钥矩阵的阶数进行分组(如本次为3个字符一组);

4、每组数字序列和密钥矩阵进行矩阵的乘法运算(1x3 矩阵乘以 3x3矩阵),结果即为密文数字序列;

5、可将密文数字序列转换为其对应字母,即为密文字符串。

  • 解密:

解密流程与加密相同,唯一不同之处在于需先求出加密密钥的逆矩阵,在做矩阵相成时,用密文分组乘以逆矩阵,结果即为明文。

希尔密码

希尔密码的优缺点

由于希尔密码采用矩阵运算加密,因此在相同的明文加密时,可能会出现不同的密文,因此可以很好的抵御字母频率攻击法,对抗唯密文攻击的强度较高,但是容易受到已知明文攻击。

免责声明:素材源于网络,如有侵权,请联系删稿。