如何计算Hill Cipher算法中的反密钥矩阵?

栏目: 编程工具 · 发布时间: 7年前

内容简介:我发现很难理解在Hill Cipher算法中计算矩阵的逆矩阵的方式.我知道这一切都是在模运算中完成的,但不知怎的,事情并没有加起来.我真的很感激一个简单的解释!考虑以下Hill Cipher密钥矩阵:请使用上面的矩阵进行说明.

我发现很难理解在Hill Cipher算法中计算矩阵的逆矩阵的方式.我知道这一切都是在模运算中完成的,但不知怎的,事情并没有加起来.我真的很感激一个简单的解释!

考虑以下Hill Cipher密钥矩阵:

请使用上面的矩阵进行说明.

您必须学习属于 Number Theory 的 Linear congruence theorem 和 extended GCD algorithm ,以便了解 modulo arithmetic

背后的数学.

例如,矩阵K的逆是(1 / det(K))*伴随(K),其中det(K)<> 0.

我假设您不理解如何以模运算计算 1/det(K) ,这里是线性同余和GCD发挥作用的地方.

你的K有det(K)= – 121.让我们说模m是26.我们想要x *( – 121)= 1(mod 26).[a = b(mod m)意味着a-b = N * m]

我们可以很容易地发现,对于x = 3,上述同余是正确的,因为26精确地除(3 *( – 121)-1).当然,正确的方法是反向使用GCD来计算x,但我没有时间解释它是如何做的.检查扩展的GCD算法:)

现在,inv(K)= 3 *([3 -8],[ – 17 5])(mod 26)=([9-24],[ – 51 15])(mod 26)=([9 2] ,[1 15]).

更新:查看 Basics of Computational Number Theory 以了解如何使用Extended Euclidean算法计算模块化逆.注意-121 mod 26 = 9,因此对于gcd(9,26)= 1,我们得到(-1,3).

翻译自:https://stackoverflow.com/questions/960190/how-to-calculate-the-inverse-key-matrix-in-hill-cipher-algorithm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

C专家编程

C专家编程

[美] Peter Vander Linde / 徐波 / 人民邮电出版社 / 2002-12 / 40.00元

《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。 书中对C的历史、语言特性、声明、数组、指针、链接、运行时、内存,以及如何进一步学习C++等问题作了细致的讲解和深入的分析。全书撷取几十几个实例进行讲解,对C程序员具有非常高的实用价值。 这本《C专家编程》可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员......一起来看看 《C专家编程》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具