仿射密碼

仿射密碼是一種替換密碼。加法密碼和乘法密碼結合就構成仿射密碼。

基本信息

加密舉例

密鑰K=(7,3),用仿射密碼加密明文hot。
三個字母對應的數值是7、14和19。分別加密如下:
(7×7+3)mod26=52mod26=0
(7×14+3)mod26=101mod26=23
(7×19+3)mod26=136mod26=6
三個密文數值為0、23和6,對應的密文是AXG。

加密舉例

設密鑰K=(7,3),用仿射密碼加密明文hot。
三個字母對應的數值是7、14和19。分別加密如下:
(7×7+3)mod26=52mod26=0
(7×14+3)mod26=101mod26=23
(7×19+3)mod26=136mod26=6
三個密文數值為0、23和6,對應的密文是AXG。
解密舉例編輯
本例是按照上例來解密的,也就是用仿射密碼解密密文AXG,密鑰k=(7,3)。
三個字母對應的數值是0、23、6。解密如下:
由解密Dk(c)=k3(c-k2)modn(其中(k3×k1)mod26=1);
可知k3×7=1(mod26)(其實,就是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)modn<=>Dk(c)=-11(c-3)mod26.
對於第一位A:
-11(0-3)mod26=(-11*-3)mod26=7;
對於第二位X:
-11(23-3)mod26=(-11*20)mod26=(-220)mod26=(26*-9)+14=14;
([2]用計算器求(-220)mod26,不同的計算器會有不同的結果,百度的計算器求得就是14,直接百度搜尋:(-220)mod26就可以了,不能直接在計算器上輸入-220mod26,那樣會得出負數。其實,可以這樣算,算出(-11)mod26=15,再計算(15*20)mod26=14)
對於第三位G:
-11(6-3)mod26=(-11*3)mod26=(-33)mod26=19;(計算方法如上)
三個明文值為7,14,19,對應的明文是HOT,也就是hot。

密碼學的相關知識

相關搜尋

熱門詞條

聯絡我們