仿射密碼的解密舉例
本例是按照上例來解密的,也就是用仿射密碼解密密文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。