仿射密码的解密举例

仿射密码的解密举例,第1张

本例是按照上例来解密盯宽的,也就是用仿射密码解密密文AXG,密钥k=(7,3)。

三个字母对应的数值是0、23、6。解密如下:

由解密Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1);

可顷悔知k3×7=1(mod 26)(其实,就是1/mod26),也就是存在整数t,使7×k3+26t=1。(1)

利用辗转相除法求解k3:

26 = 7 * 3 + 5;(2)(对26作形如:a * b + c,其中 c 就是余数)

7 = 5 * 1 + 2;(3)(作形如: a = c * m + n ,其中 a ,c 是上一步的, m 是乘数 ,n 是余数)

5 = 2 * 2 + 1;(一直循环上一步,直到余数 n = 1)

进行回代:

1 = 5 - 2 * 2

= 5 - (7 - 5 * 1) * 2(第一个2用(3)式来代替,也就是2 = 7 - 5 * 1)

= 3 * 5 - 2 * 7

= 3 * (26 - 7 * 3) - 2 * 7(5用(2)式来代替,也就是5 = 26 - 7 * 3)

= -11 * 7 + 3 * 26(直到不用进行代替,也就是得到只有7和26的表达式)

对比(1)式可知:t = 3 ,k3 = -11;

所以:Dk(c)=k3(c- k2) mod n <=>Dk(c)=-11(c- 3) mod 26 .

对于第一位 A :

-11 ( 0 - 3 ) mod 26 = ( -11 * -3 )mod 26 = 7

对于第二位 X :

-11 ( 23 - 3 ) mod 26 = ( -11 * 20 ) mod 26 = ( -220 ) mod 26 = ( 26 * -9 ) + 14 = 14

( 用计算器求 (-220) mod 26 ,不同的计算器会有不同的结果,百度的计算器求得就是 14 ,直接百度搜索:(-220) mod 26 就可以了,不能直接在计算器上输入 -220mod26 ,那样会得出负数。其实,可以这样算,算出(-11)mod 26 =15,再计算 (15 * 20)mod26 = 14)

对于第三位 G :

-11 ( 6 - 3 ) mod 26 = ( -11 * 3 )mod 26 = ( -33 )mod 26 = 19(计算方法如上)

三个明文值为 7,14,19,对应的凯乎亮明文是HOT,也就是hot。

码和乘法密码联合起来,就得到了所谓的仿射密码(affine cipher)—— 两种密码与一对密钥的组合。乘法密码使用第一个密钥,加法密码使用第二个密钥。如图3-11所示,仿射密码其实就是被先后使用的两种密码。我们本来可以提出一种有关加密和解密的复杂运算,如C = (P ′ k1 + k2) mod 26和P = ((C - k2) ′ k1-1) mod 26。然而,我们棚空用临时结果(T)表示两种单独的运算,以表明无论什么时候使用密码组合,均需确保在行的另链春瞎一端要有一个逆,该逆在加密和解密过程中使用的顺序是相反森毕的。如果加法是加密过程中的最终运算,那么减法就是解密过程中的初始运算。

在仿射密码中,明文P和密文C的关系是

图3-11 仿射密码

例3.9

C:\Users\使用者名称\Documents\亮陆Rockstar Games\GTA V

到此路敬缺顷径找到settings把<DX_Version value="1" /扮型 ,0改成1就好了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12558889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存