简述希尔密码

数学和密码学一直是不可分割的两门学科,像我们熟悉的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、可将密文数字序列转换为其对应字母,即为密文字符串。

  • 解密:

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

希尔密码

希尔密码的优缺点

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

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

相关推荐

简述仿射密码

在说起古典密码时,凯撒密码总是绕不开的话题,它是将明文与密钥相加,从而得到的密文,而我们今天要了解的仿射密码,则是将明文与密钥的一部分相乘,然后再加上密钥的另一部分,以此来实现加密。 仿射密码简介 ...

简述曲路密码

在古典密码中大致可以分为移位和替换两种,在移位密码中字母不变,位置改变;替换密码中则是字母改变,位置不变。今天我们就来了解一种比较简单的移位密码——曲路密码。 曲路密码的简介 曲路密码发明者和发明时间 ...

简述ADFGVX密码

在之前的文章中,我们了解了波利比乌斯密码,它是一种棋盘方阵密码,而我们今天要了解的密码是由它改良而来,在第一次世界大战中被德军广泛使用的ADFGVX密码。 ADFGVX密码简介 ADFGVX密码被认为是“人力加密时代 ...

简述培根密码

大家应该都吃过培根这种食物,但你可知道在古典密码中有一种以“培根”为命名的密码算法。今天我们就来通过本文了解一下这个“培根密码”。 培根密码简介 培根密码有名“倍康尼密码”,英文明文Bacon's cipher,它并不 ...