我正在研究一些密码(只是理论,还没有编码)。目前我在做山密码,我可以使用它。但是我遇到了一个困扰我的问题。比方说,我正在加密字母A和I. A
将是0
和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,这是不能乘以的。有什么建议吗?
答案 0 :(得分:2)
是。 16 % 26 = 16
和260 % 26 = 0.
重点是您的加密矩阵不能用作Hill密码的加密/解密密钥。
原因是加密矩阵必须具有inverse matrix
(模26
)。换句话说,矩阵的determinant
必须为nonzero
,而不是2
或13
。事实上,
矩阵的determinant
为24 mod 26
,无法满足Hill密码的此要求。这就是你得到奇怪结果并且解密失败的原因。
因此,尝试生成具有所需属性的另一个加密矩阵。例如,
3 5
1 2
可用作加密矩阵。