希尔密码

这个计算器使用希尔密码来加密/解密文本块。

根据百度百科的定义,在经典密码学中,希尔密码是一种基于线性代数的多字代换密码 。 由 希尔(Lester S. Hill )于 1929 年发明,它是第一个可以同时操作三个以上符号的实用密码(虽然勉强可以)。 计算器下方的密码说明假定您具备矩阵的基本知识。

PLANETCALC, 希尔密码

希尔密码

所有要加密的符号必须属于字母
转换的文本
 

希尔密码的原理

首先,使用的字母表(字母表是一组符号,例如,上述计算器中的字母表包括空格、逗号和句号)的符号被编码为数字,例如,符号在集合中的顺序号。然后我们选择一个n x n的矩阵,这将是密码的密钥。文本被分成大小为n的块,每个块形成大小为n的向量,每个向量乘以n x n的密钥矩阵,结果,大小为n的向量,就是一个加密文本块。使用模运算;也就是说,所有的操作(加法、减法和乘法)都在整数环中进行,其中模数为m—字母表的长度。这使我们能够强迫结果属于同一个字母表。

密钥是矩阵;然而,使用密钥短语更加方便,并可转换为数字和矩阵。为了创建一个n x n大小的矩阵,密钥短语长度应该是一个整数的平方,即4,9,16。

对密钥的其他限制是由于需要解密加密的文本:)

要做到这一点,我们需要在 {Z}}_{{m}}^{n} - 以 m 为模的整数环中有一个密钥矩阵的模倒数。

如果源向量B乘以矩阵A得到向量C,那么要从向量C中恢复向量B(解密文本),需要将它乘以矩阵的模倒数。

BA=C \to CA^{-1}=BAA^{-1}=BE=B

因此它们有以下限制:
矩阵的行列式不应该等于零,而且,矩阵的行列式应该有一个 模逆元。

该公式强加后者

A^{-1} = \frac{1}{\det A}\cdot C^* \to A^{-1} = (det A)^{-1}\cdot C^*.

其中乘法运算用模乘逆元运算代替除法运算。

为了有模乘逆元,行列式和模数(字母表的长度)应该是互质整数,请参考模乘逆元计算器。为了增加这种概率,字母表被扩大,所以它的长度成为质整数。这就是为什么上面的计算器中的英文字母用空格、逗号和点扩展到29个符号;29是一个质整数。

并不是每个密钥短语都有资格成为密钥; 然而,那些符合条件的就足够了。

URL 复制到剪贴板
PLANETCALC, 希尔密码

评论