为什么说加法密码 乘法密码 仿射密码 置换密码 Hill密码以及Vigenere密码 (希尔密码算法)

2023-03-03 7:22:56 密码用途 思思

加法密码就是真典密码学中的恺撒密码格式是:密文=(明文+密钥)mod26,剩法密码是恺撒密码发展出来,格式是:密文=明文x实钥mon26;置换密码就是在简单的纵行换位密码中,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26;Vigenere是恺撒密码演变而来。使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

有兴趣可以了解一下古典密码学,这里面都有。

希尔密码的Hill cipher

三、Hill cipher(希尔密码)

Hill cipher是1929年提出的一种密码体制。

设d是一正整数,定义。Hill cipher的主要思想是利用线性变换方法,不同的是这种变换是在 上运算。

例如:设d=2,每个明文单元使用 来表示,同样密文单元用 表示,具体的加密中, 将被表示为 的线性组合。

如:

利用线性代数的知识,可得

这个运算在 上进行,即mod26,密钥K一般取一个m*m的矩阵,记为。对明文 ,以 ,则加密算法为:

也可表示成。

希尔密码求解

希尔加密算法的基本思想是,将d个明文字母通过线性变换将它们转换为d个密文字母。解密只要作一次逆变换就可以了,密钥就是变换矩阵本身。如信息“NOSLEEPPING”对应着一组编码14,15,19,12,5,5,16,16,9,14,7。但如果按这种方式直接传输出去,则很容易被敌方破译。于是必须采取加密措施,即用一个约定的加密矩阵K乘以原信号B,传输信号为C=KB(加密),收到信号的一方再将信号还原(破译)为B=KC。如果敌方不知道加密矩阵,则很难破译。

解密

第一步,求密匙矩阵K的逆矩阵[2]K。K可用Mathematica计算。

Inverse123-120213∥MatrixForm=-614-3125-1-3,

即K=-614-3125-1-3。

第二步,由得Y=KX得X=KY(i=1,2,3,4),再次进行矩阵乘法运算:

X=KY=-614-3125-1-3671610=141519;

X=KY=-614-3125-1-327-244=1255;

X=KY=-614-3125-1-3501675=16169;

X=KY=-614-3125-1-321035=1470。

这样原来的信息编码为14,15,19,12,5,5,16,16,9,14,7。

第三步,对照编码表,即可获得对方发来的信息内容为“NOSLEEPPING”。

什么是希尔密码?

希尔密码(Hill Password)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。注意用作加密的矩阵(即密匙)在\mathbb_^n必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。

希尔密码是基于矩阵的线性变换,希尔密码相对于前面介绍的移位密码以及放射密码而言,其最大的好处就是隐藏了字符的频率信息,使得传统的通过字频来破译密文的方法失效.希尔密码不是足够安全的,如今已被证实。