⑴ 仿射密碼的加密舉例
設密鑰K= (7, 3), 用仿射密碼加密明文hot。
三個字母對應的數值是7、14和19。分別加密如下:
(7×7 + 3) mod 26 = 52 mod 26 =0
(7×14 + 3) mod 26 = 101 mod 26 =23
(7×19 + 3) mod 26 =136 mod 26 =6
三個密文數值為0、23和6,對應的密文是AXG。
⑵ 為什麼說加法密碼、乘法密碼、仿射密碼、置換密碼、Hill密碼以及Vigenere密碼
加法密碼就是真典密碼學中的愷撒密碼格式是:密文=(明文+密鑰)mod26,剩法密碼是愷撒密碼發展出來,格式是:密文=明文x實鑰mon26;置換密碼就是在簡單的縱行換位密碼中,明文以固定的寬度水平的寫在一張圖表紙上,密文按垂直方向讀出,解密就是密文按相同的寬度垂直的寫在圖表紙上,然後水平的讀出明文。希爾密碼(Hill Cipher)是運用基本矩陣論原理的替換密碼,由Lester S. Hill在1929年發明。每個字母當作26進制數字:A=0, B=1, C=2... 一串字母當成n維向量,跟一個n×n的矩陣相乘,再將得出的結果MOD26;Vigenere是愷撒密碼演變而來。使用一系列凱撒密碼組成密碼字母表的加密演算法,屬於多表密碼的一種簡單形式。
有興趣可以了解一下古典密碼學,這裡面都有。
⑶ 用仿射密碼解謎下列密文
碼和乘法密碼聯合起來,就得到了所謂的仿射密碼(affine cipher)—— 兩種密碼與一對密鑰的組合。乘法密碼使用第一個密鑰,加法密碼使用第二個密鑰。如圖3-11所示,仿射密碼其實就是被先後使用的兩種密碼。我們本來可以提出一種有關加密和解密的復雜運算,如C = (P ′ k1 + k2) mod 26和P = ((C - k2) ′ k1-1) mod 26。然而,我們用臨時結果(T)表示兩種單獨的運算,以表明無論什麼時候使用密碼組合,均需確保在行的另一端要有一個逆,該逆在加密和解密過程中使用的順序是相反的。如果加法是加密過程中的最終運算,那麼減法就是解密過程中的初始運算。
在仿射密碼中,明文P和密文C的關系是
圖3-11 仿射密碼
例3.9
⑷ 仿射密碼的解密舉例
本例是按照上例來解密的,也就是用仿射密碼解密密文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。
⑸ NJUPT《 現代密碼學 》
(有些計算錯誤懶得改了,方法都是對的)
2) Caesar 密碼 :26個英文字母與整數0~25對應,Caesar 密碼密鑰數量過少。
將Caesar 密碼一般化,取任意的整數k作為密鑰:
加密變換:c = E(k,p) = (p+k)(mod26)
解密變換:p = D(k,c) = (c-k)(mod26)
一般單表替代密碼演算法特點:
① 密鑰空間K很大,|K| = 26!
② 移位密碼是替換密碼的一個特例,它僅含26個置換做為密鑰空間。
③ 密鑰n不便記憶,通常會採用密鑰短語密碼:選用英文短語或單詞串作為密鑰,去掉其中重復的字母,其它字母依次寫於此字母串後,就可構造出一個字母替代表。
3) 仿射密碼 :一種線性變換。仿射密碼的明文空間和密文空間與移位密碼相同,但密鑰空間為 K = {(k1,k2)|k1,k2∈Z₂₆,gcd(k1,26) = 1};
對任意 m∈M,c∈C,k = (k1,k2)∈K,定義加密變換和解密變換為:
c = ek(m) = k1m+k2 (mod26)
m = dk(c) = k1^-1(c-k2) (mod26)
⑹ c=(3m+5)mod26怎麼運算
下式是仿射密碼的加密變換 c= (3m+5) mod 26
該密碼的密鑰空間是多少? 求出消息「hello」對應的密文 ?寫出它的解密變換 ?試對密文進行解密 解:
1.密鑰空間為 n n =312。
2.hello 五個字母對應的數字分別是 7,4,11,11,14
3.分別加密如下: (3*7+5)mod26=0 (3*4+5)mod26=17 (3*11+5)mod26=12 (3*11+5)mod26=12
(3*14+5)mod26=21
⑺ 仿射加密法的注意事項
注1. 仿射加密函數要求gcd(a,26)=1,即要求a和26互素,否則 就不是一個單射函數。
注2. 從仿射加密函數的表達式易知,當a=1,b=3時,這種仿射密碼就是著名的凱撒密碼。
注3. 在求解仿射解密函數時,需要求a在Z26上的乘法逆元a-1∈Z26,這可由擴展歐幾里得演算法求解,下表列出了在Z26上所有與26互素元素的乘法逆元:
1-13-15-17-19-111-115-117-119-121-123-125-11921153197231151725
⑻ 仿射密碼 加密函數怎麼轉解密函數
仿射加密法與單碼加密法沒什麼不同,因為明文的每個字母分別只映射到一個密文字母。仿射密碼的加密演算法就是一個線性變換。
⑼ 若已知某仿射密碼加密明文字元為e、h的對應密文字元為f、w,試求仿射密碼的密鑰K
1、密鑰是K=bp,設密鑰k1,k2.f=(e+k1)mod26,w=(h+k2)mod26, e=4,f=5,h=7,w=22,代入後可以解。按字母順序,a-z相當於0-25。
2、密鑰為xr。計算公式f=(e*k1+k2)mod26,w=(e*k1+k2)mod,k1取值范圍是0-25,且與26互質的數(即1,3,5,7,9...25,共13個,k2取值范圍0-25。
⑽ 下面密文是用模26下的仿射密碼加密的gzyyf,明文以he開頭,試解密消息
hellk.仿射密碼公式是:密文=明文剩於密鑰1加密鑰2然後和與26取余,即e(x)=(ax+b)mod26. 從提示he開頭,代入即g=(ha+b)mon26,z=(ea+b)mod26,可求得a=11. b=7.,從而得出其它結果。註:公式中,a表示密鑰1,且與26互質,即取值是1.3.5.7...23.25共13個,b是密鑰2,取值范圍是0-25.0-25對應英文字母a-z. 所以h=7,e=4,其它類推。還有,結果不應該是hello? 算出來是hellk.