如果不期望结果,则使用Hill密码实现

时间:2013-05-21 00:08:02

标签: security cryptography encryption

我正在研究一些密码(只是理论,还没有编码)。目前我在做山密码,我可以使用它。但是我遇到了一个困扰我的问题。比方说,我正在加密字母A和I. A将是0I 8。现在把我的加密盒放在:

 K= 18 2
    23 0

这一切都很好。我可以加密:

A = 18 * 0 = 0     2 * 8 = 16

问题是添加这些结果会产生16. 16%26只是16吗?这是我用于加密的号码吗?如果我有一个加密,结果是260%26,会出现类似的问题。这会变成10还是0?当你将260除以26得到10.为了完成模运算,我将带走任何整数,并将余数乘以26.当然,如果我在这种情况下这样做,那么我得到0,这是不能乘以的。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

是。 16 % 26 = 16260 % 26 = 0.

重点是您的加密矩阵不能用作Hill密码的加密/解密密钥。 原因是加密矩阵必须具有inverse matrix(模26)。换句话说,矩阵的determinant必须为nonzero,而不是213。事实上, 矩阵的determinant24 mod 26,无法满足Hill密码的此要求。这就是你得到奇怪结果并且解密失败的原因。

因此,尝试生成具有所需属性的另一个加密矩阵。例如,
3 5
1 2可用作加密矩阵。