数学和密码学一直是不可分割的两门学科,像我们熟悉的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、可将密文数字序列转换为其对应字母,即为密文字符串。
- 解密:
解密流程与加密相同,唯一不同之处在于需先求出加密密钥的逆矩阵,在做矩阵相成时,用密文分组乘以逆矩阵,结果即为明文。
希尔密码的优缺点
由于希尔密码采用矩阵运算加密,因此在相同的明文加密时,可能会出现不同的密文,因此可以很好的抵御字母频率攻击法,对抗唯密文攻击的强度较高,但是容易受到已知明文攻击。
免责声明:素材源于网络,如有侵权,请联系删稿。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。