希尔密码
这个计算器使用希尔密码来加密/解密文本块。
本内容采用知识共享署名/相同方式共享许可协议3.0(未移植)进行许可。这意味着你可以在相同的许可条件下自由地重新发布或修改本内容,并且必须在你的网站上放置一个超链接到本作品https://zh.planetcalc.com/3327/,以注明原作者。此外,请不要修改本内容中对原作的任何引用(如果有的话)。
根据百度百科的定义,在经典密码学中,希尔密码是一种基于线性代数的多字代换密码 。 由 希尔(Lester S. Hill )于 1929 年发明,它是第一个可以同时操作三个以上符号的实用密码(虽然勉强可以)。 计算器下方的密码说明假定您具备矩阵的基本知识。
希尔密码的原理
首先,使用的字母表(字母表是一组符号,例如,上述计算器中的字母表包括空格、逗号和句号)的符号被编码为数字,例如,符号在集合中的顺序号。然后我们选择一个n x n的矩阵,这将是密码的密钥。文本被分成大小为n的块,每个块形成大小为n的向量,每个向量乘以n x n的密钥矩阵,结果,大小为n的向量,就是一个加密文本块。使用模运算;也就是说,所有的操作(加法、减法和乘法)都在整数环中进行,其中模数为m—字母表的长度。这使我们能够强迫结果属于同一个字母表。
密钥是矩阵;然而,使用密钥短语更加方便,并可转换为数字和矩阵。为了创建一个n x n大小的矩阵,密钥短语长度应该是一个整数的平方,即4,9,16。
对密钥的其他限制是由于需要解密加密的文本:)
要做到这一点,我们需要在 - 以 m 为模的整数环中有一个密钥矩阵的模倒数。
如果源向量B乘以矩阵A得到向量C,那么要从向量C中恢复向量B(解密文本),需要将它乘以矩阵的模倒数。
因此它们有以下限制:
矩阵的行列式不应该等于零,而且,矩阵的行列式应该有一个 模逆元。
该公式强加后者
.
其中乘法运算用模乘逆元运算代替除法运算。
为了有模乘逆元,行列式和模数(字母表的长度)应该是互质整数,请参考模乘逆元计算器。为了增加这种概率,字母表被扩大,所以它的长度成为质整数。这就是为什么上面的计算器中的英文字母用空格、逗号和点扩展到29个符号;29是一个质整数。
并不是每个密钥短语都有资格成为密钥; 然而,那些符合条件的就足够了。
评论