首页 > 编程知识 正文

c语言暴力破解代码,希尔密码求密钥

时间:2023-05-03 11:40:56 阅读:163000 作者:1814

这是在百科全书上看到的,有不明白的地方。 调查资料后,进行了修改。 希望能帮到大家

加密

例如,密钥(就像密码学中没有密钥这个词一样)矩阵

1 3

0 2

这是加密的密钥

明文: HI THERE

如果去掉空格,以2个字符的组,按照字母顺序(例如,a为1 )变换为矩阵的数值,则如下所示,末尾的e为填充字符。

HI TH ER EE

8 20 5 5

9 8 18 5

HI经过矩阵运算转换为IS。 关于具体的算法,请参考以下说明。 (mod求馀数运算符。 )

|1 3| 8 :1*8 3*9=35 MOD26=9=I

|0 2| 9 :0*8 2*9=18 MOD26=18=R

用同样的方法将“HI THERE”转换为密文“IR RPGJTJ”,注意明文中的两个e分别为密文中的g和t。

解密

解密时,必须计算出密钥的逆矩阵,然后根据加密过程进行逆运算。

逆矩阵算法的公式:(与线性代数有关) ) )。

例如密钥矩阵=

|1 7|

|0 3|

AD-BC=1*3-0*7=3 3*X=1 mod26,因此X=9

于是,我决定

| 1 7 | | 3 -7 |

| |的逆矩阵为9 * | |

| 0 3 | | 0 1 |

假设密文为“FOAOESWO”

FO AO ES WO

6 1 5 23

15 15 19 15

9*|3-7|6=9*(3*6-7*15 )=-783 mod26=23=W

|01|15=9*(0*61*15 )=135 mod26=5=E

所以密文“FOAOESWO”的明文是“WEREDONE”

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。