我想实现Hill密码,但我认为我在理解算法本身时遇到了问题。
我将使用的密钥是2X2矩阵,每次我将编码2个字符。 我将密钥矩阵与2个字符的矩阵相乘,然后将结果模数为26,作为此等式。
C = E(K, P) = KP mod 26
where: K:key
P:plain text
我是这样做的,但是有些不对劲。我用我书中的例子来测试我的算法。由于纯文本为friday
,密钥为: int key[][] = {{5, 8}, {17, 3}}
;
结果应为PQCFKU
。
首字母f
,r
,f= 5
,r=17
字母顺序
f
的加密为(5*5 + 17*8)%26 =5 => f
,P
我犯的错误在哪里?
答案 0 :(得分:2)
如果:http://slidefinder.net/c/chapter_classical_encryption_techniques_jen/11206531/p2是你的书,矩阵[[5,8] [17,3]]不是你的加密密钥......它是输入矩阵。 5 = F,17 = R,8 = I,3 = D.K是加密密钥,幻灯片中未给出。你必须求解线性代数方程才能得到K.
如果您的图书中的示例仍然存在问题,请尝试http://www.cs.uri.edu/cryptography/classicalhill.htm获取加密和解密的简单2x2密钥示例。