0

我正在研究一些密码(只是理论,还没有编码)。目前我正在做山密码,我可以很好地使用它。然而,我遇到了一个困扰我的问题。例如,我正在加密字母 A 和 I. A将是0and I 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,它不能相乘。有什么建议么?

4

1 回答 1

2

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

关键是您的加密矩阵不能用作希尔密码的加密/解密密钥。原因是加密矩阵必须有一个inverse matrix(模26)。换句话说,determinant矩阵的 必须是nonzero,而不是除以2or 13。事实上,determinant你的矩阵的 是24 mod 26,它不能满足希尔密码的这个要求。这就是为什么您得到奇怪的结果并且解密将失败的原因。

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

于 2013-05-21T11:47:02.637 回答