【正文】
racteristics. 密鑰為the playfair cipher was invented by Charles Wheatstone。THEPLAYFI/JRCWSNVDBOGKMQUXZ將明文按照兩個(gè)字母分組為:ci ph er su si ng su bs ti tu ti on so rt ra ns po si ti on sa re no ts ec ur eb ec au se of la ng ua ge ch ar ac te ri st ic sx則密文為:NA LE LF OE NF GX OE OW PA EM PA GS OU AL AY VN EG NF PA GS CF FL SG EC TS ZF HO TS FM OF US TR GX MF OP WT YA CD HP AR CE AN NU 假設(shè)密鑰為“encryption”,用維吉尼亞密碼加密消息symmetric schemes require both parties to share a mon secret key。 明文M:symmetricschemesrequirebothpartiestoshareamonsecretkey 密鑰K:encryptionencryptionencryptionencryptionencryptionencrypt 將明文和密鑰轉(zhuǎn)化為數(shù)字 明文=(18,24,12,12,4,19,17,8,2,18,2,7,4,12,4,18,17,4,16,20,8,17,4,1,14,19,7,15,0,17,19,8,4,18,19,8,4,18,19,14,18,7,0,17,4,0,2,14,12,12,14,13,18,4,2,17,4,19,10,4,24) 密鑰=(4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4, 13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19) 對每個(gè)明文數(shù)字和對應(yīng)的密鑰數(shù)字,使用加密,得到密文數(shù)字為 C=(22,11,14,3,2,8,10,16,16,21,6,21,6,3,2,7,10,12,4,7,12,4,6,18,12,8,0,23,14,4,23,21,6,9,17,3,11,15,14,4,8,13,4,5,10,1,7,21,6,17,6,4,6,10,8,19,17)于是密文為WLODCIKVGVGDCHKMEHMEGSMIAXOEXQGJRDLPOEINEFKBHVGRGEGKITR Hill密碼不能抵抗已知明文攻擊,如果有足夠多的明文和密文對,就能破解Hill密碼。解:(1)破解一個(gè)Hillm密碼至少應(yīng)該有m個(gè)不同的明文密文對。如果定義兩個(gè), 則有矩陣方程Y=XK,其中矩陣K是未知密鑰。”hill”,密鑰為:并寫出從密文恢復(fù)明文的解密過程。于是,相應(yīng)的密文向量分別為因此,明文Hill的密文為XIYJ。解:密文=明文密鑰=0101101010110011110001010101010101101111000101000110010101011110101101000101000001111100100101010010=11001111110010010001010000010100100111010100000011,假設(shè)明文和密鑰都為 (0123456789ABCDEF)16 = (00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111)2(1) 推導(dǎo)出第一輪的子密鑰K1(2) 寫出R0和L0(3) 擴(kuò)展R0并計(jì)算E(R0)⊕K1(4) 將第(3)問的結(jié)果,輸入到8個(gè)S盒,求出加密函數(shù)F(5) 推導(dǎo)出R1和L1解: (1)將密鑰K經(jīng)置換選擇1,得 =11110000 11001100 10101010 0000 =10101010 11001100 11110000 0000 左移1位后經(jīng)置換選擇2輸出48為。解:在GF(28)上{01}的逆是{01},用二進(jìn)制標(biāo)識為0000 0001,代入S盒的變換,如下: 結(jié)果為01111100,用十六進(jìn)制表示為{2A},與查S盒所得到結(jié)果一致。經(jīng)過列混淆變換后,s1 = {6E }映射為s’1 = {37},試計(jì)算驗(yàn)證這一結(jié)果。用多項(xiàng)式表示為 那么 再模一個(gè)次數(shù)為8的不可約多項(xiàng)式結(jié)果為寫成二進(jìn)制為11011100。因此{(lán)87}({02}{6E})({03}{46}){A6}計(jì)算結(jié)果為 10000111 11011100 1100101010100110 00110111={37},密鑰為2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C,明文為32 43 F6 AD 88 5A 30 8D 3131 98 A2 E0 37 07 34(1) 寫出最初的State的值(2) 寫出密鑰擴(kuò)展數(shù)組中的前8個(gè)字節(jié)(3) 寫出初始輪密鑰加后State的值(4) 寫出字節(jié)代換后State的值(5) 寫出行移位后的State的值(6) 寫出列混淆后State的值解: (1)最初的State的值為: (2)K0=(W1,W2,W3,W4)=密鑰擴(kuò)展數(shù)組中前8個(gè)字節(jié)為W0,W1,即2b 7e 15 16 28 ae d2 a6(3)根據(jù)的計(jì)算公式,分別計(jì)算出各式,然后計(jì)算出K1。(1)求出第一輪的輪密鑰rk0。十六進(jìn)制表示為:09 36 06 1c。利用公式,得=0001 0101 1001 1010 0111 1111 1000 101③最后,由公式知,將與步驟②求出的做異或運(yùn)算,即可得到。(2)根據(jù)SMS4加密算法,首先將十六進(jìn)制明文 32 43 f6 ad 88 5a 30 8d 31 31 98 a2 e0 37 07 34分組:。① 進(jìn)行合成置換T運(yùn)算中間值==(1100 0100 0000 1001 0111 1111 0100 0001)。② 將輸出結(jié)果A分為四組進(jìn)入S盒,通過查表,輸出中間值的十六進(jìn)制為:bb b6 9e 07。④ 利用加密函數(shù),將③式得到的結(jié)果與做異或運(yùn)算,即=( 0011 0010 0100 0011 1111 0110 1010 1101) (1111 0000 1011 0001 1010 0000 1011 0011 )=1100 0010 1111 0010 0101 0110 0001 1110十六進(jìn)制表示為:c2 f2 56 1e。(a1, a2, a3, a4)= a1⊕a2其中初態(tài)為(a1, a2, a3, a4 )=(1000),求其則輸出序列的前12位。(從0到7)的RC4,其操作是對8取模(而不是對256取模),密鑰是326,(1) 求初始化后S表的值(2) 計(jì)算第1個(gè)密鑰字(3) 用上面生成的密鑰加密明文100101解: (1)數(shù)據(jù)表S只有8個(gè)元素。 j=0。 swap(S(i),S(j))。最后數(shù)據(jù)表S就被隨機(jī)化為30527146 S 0 1 2 3 4 5 6 7 故初始化后S表的值為30527146 S 0 1 2 3 4 5 6 7 (2)從j=0和i=0開始,下面計(jì)算第一個(gè)密鑰字: i=(i+1)mod8 =(0+1)mod8=1 j=(j+S(i))mod8 =(0+S(1))mod8=(0+0)mod8=0 Swap(S(1),S(0)) 變換后數(shù)據(jù)表S變?yōu)?3527146 S 0 1 2 3 4 5 6 7 然后如下計(jì)算t和k: t=(S(i)+S(j))mod8=(S(1)+S(0))mod8=3 k=S(t)=2 所以第一個(gè)密鑰字是2,其二進(jìn)制表示為010。 故,使用密鑰100010加密明文100101,即異或得到密文000111。第4章,已截獲發(fā)給某用戶的密文為c=10,該用戶的公鑰e = 5, n =35,那么明文m等于多少?為什么能根據(jù)公鑰可以破解密文?解:n=p*q (p和q都是素?cái)?shù)),n=35故解出p=5 ,q=7 ;Φ(n)=(p1)*(q1)=24 ;又因?yàn)閑*d≡1 modΦ(n),而e=5故可解出d=5;m= cd mod n=105 mod 35=5 。RSA算法的加密函數(shù)c= me mod n是一個(gè)單項(xiàng)函數(shù),故對于解密密文的陷門是分解n=p*q ,只要知道這個(gè)分解就可以計(jì)算Φ(n)=(p1)*(q1) ,然后用擴(kuò)展歐幾里德算法來求計(jì)算解密私鑰d。解:Φ(n)=(p1)*(q1)=10*12=120e*d≡1 modΦ(n),而e=103故可解出d=7n=p*q=11*13=143c= me mod n=3103 mod 143=16,某用戶的公鑰e=31,n=3599,那么該用戶的私鑰等于多少?解:n=p*q (p和q都是素?cái)?shù)),n=3599故解出p=59 ,q=61; Φ(n)=(p1)*(q1)=3480 ; e*d≡1 modΦ(n),而e=31故可解出d=3031 。解:加密過程如下:n=p*q=11413 ;Φ(n)=(p1)*(q1)=11200 ;e*d≡1 modΦ(n),而e=3533故可解出d=6597;c= me mod n=97263533 mod 11413=5761; 解密過程如下:m= cd mod n=57616597 mod 11413=9726 。Alice任選一個(gè)大素?cái)?shù)p為2579,取g為101,選擇保密的私鑰x為237。 (2) 求密文。 =x3+x+6,確定E(Z11)上的所有點(diǎn)。,設(shè)橢圓曲線是y2=x3x+118.橢圓曲線上一個(gè)點(diǎn),假設(shè)A選擇一個(gè)秘密整數(shù)k=7。(3) 給出A從密文恢復(fù)消息的計(jì)算過程。解:(1)在事前通信發(fā)信者A應(yīng)該得到會話鑰; (2)會話鑰的作用是將需要傳送的數(shù)據(jù)用會話鑰加密; (3)一個(gè)密鑰分配協(xié)議如下: →B:EPUb(IDA||N1), →A:EPUa(N1||N2), →B:EPUb(N2+1), →A:EPUa(EPRb(Ks)), 這協(xié)議既可以保密又可以認(rèn)證。,假設(shè)公共素?cái)?shù)p為71,本原根α為7。求共享的密鑰。for(i=1。i++) k=k*m。 return c。 for(i=1。i++) k=k*c。 return m。對于這些應(yīng)用中,僅提供保密性是遠(yuǎn)遠(yuǎn)不夠的。認(rèn)證的目的主要有兩個(gè):第一,驗(yàn)證消息的發(fā)送者是合法的,不是冒充的,這稱為實(shí)體認(rèn)證,包括對信源、信宿等的認(rèn)證和識別;第二,驗(yàn)證信息本身的完整性,這稱為消息認(rèn)證,驗(yàn)證數(shù)據(jù)在傳送或存儲過程中沒有被篡改、重放或延遲等。Ch(e,f,g)=(e AND f)⊕(NOT e AND g) 條件函數(shù),如果e,則f,否則g。(∑0512 a)=ROTR28(a) ⊕ROTR34(a) ⊕ROTR39(a)(∑1512 e)= ROTR14(e) ⊕ROTR18(e) ⊕ROTR41(e)Wt:64位,從當(dāng)前的512位消息分組導(dǎo)出Kt:64位常數(shù)+:模264加?答:(1) H可以應(yīng)用于任意長度的數(shù)據(jù)塊,產(chǎn)生固定長度的散列值;(2) 對每一個(gè)給定的輸入m,計(jì)算H(m)是很容易的;(3) 給定Hash函數(shù)的描述,對于給定的散列值h,找到滿足H(m) = h的m在計(jì)算上是不可行的;(4) 給定Hash函數(shù)的描述,對于給定的消息m1,找到滿足m2185。 m2的消息對(m1, m2)在計(jì)算上是不可行的。這種攻擊對Hash函數(shù)提出了一個(gè)必要的安全條件,即消息摘要必須足夠長。(2) 攻擊者為了偽造一份有(1)中的簽名者簽名的消息,首先產(chǎn)生一份簽名方將會同意簽名的消息,再產(chǎn)生出該消息的2m/2種不同的變化,且每一種變化表達(dá)相同的意義(如:在文字中加入空格、換行字符)。(3) 攻擊者在上述兩個(gè)消息集合中找出可以產(chǎn)生相同散列值的一對消息。如果找不到這樣的消息,攻擊者再產(chǎn)生一條有效的消息和偽造的消息,并增加每組中的明文數(shù)目,直至成功為止。這樣,即使攻擊者不知道簽名私鑰也能偽造簽名。簡單來說,消息認(rèn)證碼是一種使用密鑰的認(rèn)證技術(shù),它利用密鑰來生成一個(gè)固定長度的短數(shù)據(jù)塊,并將該數(shù)據(jù)塊附加在消息之后。散列函數(shù)也稱為消息的“指紋”。它們都可以提供消息認(rèn)證,認(rèn)證內(nèi)容包括:消息的源和宿