2024年4月1日發(作者:地崩山摧)

《密碼學原理與實踐(第三版)》課后習題參考答案
(由華中科技大學信安09級提供)
第一章
1.1(李怡)
(a)51 (b)30 (c)81 (d)7422
1.2(賈同彬)
證明:令t1= (-a)mod m ,t2=m-(a mod m),則t1≡t2(mod m).
又 0 1.3 (張天翼) 證明充分性: 若 a?b(modm) ,則可得 a?b?km ,設 b?jm?r , 0?r?m , j?N ,則有 a?(k?j)m?r ,故有 amodm?r ,由假設得 bmodm?r ,故 amodm?bmodm 證明必要性: 若 amodm?bmodm ,則可設 amodm?bmodm?r ,則有 a?km?r , b?jm?r , 其中 j,k?N ,因此 a?b?(k?j)m ,即 ma?b ,故 a?b(modm) 綜上,問題得證 1.4 (李怡) 令a?km?r,0?r?m,則r?amodm ? a ? 而r?a?km,所以只需證明k? ?? . m ?? a?raa ? a ? 因為k?,?m?-r?0,所以?1?k?,即k? ?? mmm ? m ? 1.5 (李志遠) 窮舉密鑰法來破解移位密碼即將這個字符串每個字母移位1,2,3…26次,然后判斷這26 個字符串哪個符合英語規則。故我編寫 如下的C++來實現如此功能 #include using namespace std; char change(char word) { if(word=='Z')return 'A'; el return word+1; } int main() { cout<<"plea input the string"< char string1[43]; cin>>string1; int n; for(n=1;n<=26;n++) { int num; for(num=0;num<43;num++) { string1[num]=change(string1[num]); } cout< } } 解釋:1.代碼專為本題編寫,故輸入字符數不能多于43個,且輸入范圍僅限大寫英語字母 2.將題中的42個字母BEEAKFYDJXUQYHYJIQRYHTYJIQFBQFBQDUYJIIKFUHC輸入并回車 3.得到的結果 CFFBLGZEKYVRZIZKJRSZIUZKJRGCREVZKJJLGVIDRE for turn 1 DGGCMHAFLZWSAJALKSTAJVALKSHDSFWALKKMHWJESF for turn 2 EHHDNIBGMAXTBKBMLTUBKWBMLTIETGXBMLLNIXKFTG for turn 3 FIIEOJCHNBYUCLCNMUVCLXCNMUJFUHYCNMMOJYLGUH for turn 4 GJJFPKDIOCZVDMDONVWDMYDONVKGVIZDONNPKZMHVI for turn 5 HKKGQLEJPDAWENEPOWXENZEPOWLHWJAEPOOQLANIWJ for turn 6 ILLHRMFKQEBXFOFQPXYFOAFQPXMIXKBFQPPRMBOJXK for turn 7 JMMISNGLRFCYGPGRQYZGPBGRQYNJYLCGRQQSNCPKYL for turn 8 KNNJTOHMSGDZHQHSRZAHQCHSRZOKZMDHSRRTODQLZM for turn 9 LOOKUPINTHEAIRITSABIRDITSAPLANEITSSUPERMAN for turn 10 MPPLVQJOUIFBJSJUTBCJSEJUTBQMBOFJUTTVQFSNBO for turn 11 NQQMWRKPVJGCKTKVUCDKTFKVUCRNCPGKVUUWRGTOCP for turn 12 ORRNXSLQWKHDLULWVDELUGLWVDSODQHLWVVXSHUPDQ for turn 13 PSSOYTMRXLIEMVMXWEFMVHMXWETPERIMXWWYTIVQER for turn 14 QTTPZUNSYMJFNWNYXFGNWINYXFUQFSJNYXXZUJWRFS for turn 15 RUUQAVOTZNKGOXOZYGHOXJOZYGVRGTKOZYYAVKXSGT for turn 16 SVVRBWPUAOLHPYPAZHIPYKPAZHWSHULPAZZBWLYTHU for turn 17 TWWSCXQVBPMIQZQBAIJQZLQBAIXTIVMQBAACXMZUIV for turn 18 UXXTDYRWCQNJRARCBJKRAMRCBJYUJWNRCBBDYNAVJW for turn 19 VYYUEZSXDROKSBSDCKLSBNSDCKZVKXOSDCCEZOBWKX for turn 20 WZZVFATYESPLTCTEDLMTCOTEDLAWLYPTEDDFAPCXLY for turn 21 XAAWGBUZFTQMUDUFEMNUDPUFEMBXMZQUFEEGBQDYMZ for turn 22 YBBXHCVAGURNVEVGFNOVEQVGFNCYNARVGFFHCREZNA for turn 23 ZCCYIDWBHVSOWFWHGOPWFRWHGODZOBSWHGGIDSFAOB for turn 24 ADDZJEXCIWTPXGXIHPQXGSXIHPEAPCTXIHHJETGBPC for turn 25 BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD for turn 26 經過英語分析,發現當移位密碼密鑰為17時,字符串有英文含義 LOOK UP IN THE AIR ITS A BIRD ITS A PLANE ITS SUPERMAN (看天上,是一只鳥,是一架飛機,是一位超人) 故移位密碼密鑰為17 1.6(司仲峰) 對合密鑰為 0和13 1.7(陳詩洋) (a) m=30=2*3*5 φ(30)=30*(1-1/2)*(1-1/3)*(1-1/5)=8 故密鑰量是 8*30=240 (b)m=100=2 2 *5 2 φ(100)=100*(1-1/2)*(1-1/5)=40 故密鑰量是 40*100=4000 (c)m=1225=5 2 *7 2 φ(1225)=1225*(1-1/5)*(1-1/7)=840 故密鑰量是 840*1225=1029000 1.8(周玉坤) 解: 在中若元素有逆,則必有gcd(a,m)=1; =1,利用廣義歐幾里得除法,找到整數s和 、的解法都相 若元素a存在逆使得a t,使得: sa+tm=1,則=s(modm)是a的逆。 似,直接給出結果。 (1)、 gcd(a,28)=1,則a=1,3,5,9,11,13,15,17,19,23,25,27. (2)、 =1, =15, =19, =5, =17, =3, =25, =11, =23, =9, =27 gcd(a,33)=1,則a=1,2,4,5,7,8,10,13,14,16,17,19,20,23,25,26, 28,29,31,32 (3)、 =1, =10, =7, =13, =17,=25,=20,=19, =31, =4, =32 =29 =2, =14, =28, =5, =8, =26, =23, =16, gcd(a,35)=1,則a=1,2,3,4,6,8,9,11,12,13,16,17,18,19,22,23, 24,26,27,29,31,32,33,34 =1, =16, =18, =3, =12,=9,=6, =11, =22, =33, =4, =2 =27, 1.9(薛東) =24, =29, =8, =26, =32, =23, =19, =17, =31, =34 =13 設1≤a≤28,利用反復試驗的方法求出a -1 mod29 的值。 解:由乘法逆存在條件gcd(a,29)=1知a=1,2,3, …,28均存在逆元。 計算可得: 1 -1 =1 2 -1 =15 3 -1 =10 4 -1 =22 5 -1 =6 6 -1 =5 7 -1 =25 8 -1 =11 9 -1 =13 10 -1 =3 11 -1 =8 12 -1 =17 13 -1 =9 14 -1 =27 15 -1 =2 16 -1 =20 17 -1 =12 18 -1 =21 19 -1 =26 20 -1 =16 -1-1-1-1-1 21=18 22=4 23=24 24=23 25=7 26 -1 =19 27 -1 =14 28 -1 =28 1.10 (a) d K (y)=6y+19(mod 29) (b) 略 1.11(程玲) (a)證明:加密函數為e(x)=(ax+b) mod n,即可令ax+b≡y( mod n), 等價ax≡y-b( mod n),即x≡aˉ1(y-b)( mod n),即x≡(aˉ1y-aˉ1b)( mod n) 要使k為對合密鑰,則a≡aˉ1( mod n),b≡-aˉ1b( mod n) 即aˉ1 mod n ≡a且b(1+aˉ1)≡0( mod n),也就是b(1+a)≡0( mod n) 反過來,當aˉ1 mod n ≡a且b(1+a)≡0( mod n)可得 b(1+aˉ1)≡0( mod n),即b≡-aˉ1b( mod n),K為對合密鑰 (b)解:假設對合密鑰為K=(a,b) a要滿足gcd(a,15)=1,可得a=1,2,4,7,8,11,13,14 又因為a要滿足 aˉ1 mod 15≡a,則a=1,4,11,14 b需滿足b(1+a)≡0( mod 15) 當a=1,即2b≡0( mod 15),可得b≡0( mod 15) 當a=4,即5b≡0( mod 15),可得b=0,3,6,9,12 當a=11,即12b≡0( mod 15),可得b=0,5,10 當a=14,即15b≡0( mod 15),可得b={x|x?Z 15 } (c)證明:φ(n)=φ(pq)=φ(p)φ(q)=(p-1)(q-1) 首先找滿足條件的a,a要滿足 aˉ1 mod n ≡a,即aˉ1 a≡a 2 ≡1( mod n)且 gcd(a,n)=1 2 ? ? a??1(modp) ? a?1( mod p) 及等價于 ? 2 , 即 ? a??1(modq) ? ? ? a?1( mod q) 根據中國剩余定理,a一共有4個解 當a ≡1(mod p)且 a ≡1(mod q),即 a ≡1(mod n) 又b(1+a)≡0( mod n),則2b≡0( mod n),又因為 gcd(2,n)=1,故b只有一個解 當a ≡1(mod p)且 a ≡-1(mod q),即可令a+1=k 1 p+2, a+1=k 2 q,(k 1 , k 2 ?Z) 則 gcd(a+1,n)=q,又因為 b(1+a)≡0( mod n),可解得b=pt(mod n) (t=1,2,3……q-1) 即b有q個解。 當a ≡-1(mod p)且 a ≡1(mod q),即可令a+1=k 1 p, a+1=k 2 q+2,(k 1 , k 2 ?Z) 則 gcd(a+1,n)=p,又因為 b(1+a)≡0( mod n),可解得b=qt(mod n) (t=1,2,3……p-1) 即b有p個解。 當a ≡-1(mod p)且 a ≡-1(mod q),即a=pq-1, 又b(1+a)≡0( mod n),則bn≡0( mod n),b有n個解 則定義在Z n 上的所有仿射密碼的對合密鑰量是n+p+q+1。 1.12(陳志明) (a)在 Z p 上,2維行向量共有 p 個 其中,零向量(0,0)有1個,非零向量共有 p?1 個。 對于零向量(0,0),無法組成可逆矩陣,不予考慮。 對于非零向量,設一個非零向量為(a,b),其中 a?b?0 , 有向量k(a,b)與(a,b)線性相關,其中k=1,2,……,p-1。 且易證得,當 k 1 ?k 2 時,有 k 1 (a,b)?k 2 (a,b) , 即k(a,b)兩兩互不相等 由此可得: 與向量(a,b)線性相關的行向量有且僅有p-1個。 故,可將 p?1 個非零向量,每p-1個分為一組, 且每組中的行向量倆倆之間線性相關, 共分為p+1組 從p+1組中取兩組,從取出的兩組中各取一個行向量, 對取出的兩個行向量進行排列后可得一個可逆矩陣。 因此可得,可逆矩陣數量為: 222222 C p?1 (p?1)A 2 ?(p?1)p/2?(p?1)?2?(p?1)(p?p) 2 2 2 22 (b) 1.13(劉慶賓、喻思敏) 32 由12題給出的結論,我們有當p為素數時,有p+p-p種情況使得二維矩陣|A|mod p沒有 逆。 對于n=6 如果|A|≡0 mod6,等價{|A|≡0 mod2和|A|≡0 mod3} 例如,對于矩陣中的a11位置,任意兩個等式由中國剩余定理一定可以求出唯一的在mod6 下的解。對于分別來自mod2與mod3不可逆的矩陣集合中任意兩個對象都可以解得唯一一個 mod6不可逆矩陣,因此所有的使得mod6下矩陣沒有逆的情況有(8+4-2)*(27+9-3)=330, 可逆情況有36*36-330=966種 同理 n=26 等價{|A|≡0 mod2和|A|≡0 mod13},矩陣沒有逆的情況有(8+4-2)* (169*13+169-13)=23530,可逆情況有169*169*16-23530=433446種 當n=9時 易證|A|在mod9沒有逆和|A|≡0 mod3是等價的,只是元素的所在域不同。故不 可逆矩陣個數為9*9*(27+9-3)=2673,可逆矩陣有81*81-3673=2888個 1.14(羅志偉) (a) 因為 ,所以,即有,。 (b) 因為m=2,所以令 為0,所有的密鑰對為 其中 1.15(付曉帆) , ,,,且不同時 為K可逆的條件。 ? 11112 ? 25 ?? ?? 解:令A= ?? ,B= 4232 ,則 ?? ? 95 ? ? ? 17159 ? ? (a).由題意知: ? detA ? ?1 ? 5?5 ? ,所以 ?23 , A ? = ?? ? ?92 ? ?1 A = ? detA ? ?1 ? 1115 ? A?23A? ?? 120 ?? ?? ? 17781?254 ?? 2136 ? ?1 (b).由題意知: ? detB ? ?21 , B ? ? ? ?2?19546 ? ? ? 241320 ? ,所以 ???? ? ? ?331172?21 ? ? ? ? 7165 ? ? ? 251122 ? ?1 ??1? B? ? detB ? B?21B? ? 10134 ? ?? ? ? 17241 ? ? 1.16(陳詩洋) (a) Y π -1 (b) 明文: gentlemen do not read each other smail 1.17(祁冠杰) 1 2 2 4 3 6 4 1 5 8 6 3 7 5 8 7 (a) 必要性: 因為π(i)=j,π(j)=i 而且π -1 (j)=i 所以π(i)=π -1 (i) 所以π為對合密鑰 充分性: 因為π是對合密鑰 所以有π(i)=j從而有π -1 (i)=j 即π(j)=i 綜上所述從而得證 (b) 當m=2時,對合密鑰為 X 1 2 π(x) 2 1 或者 π(x)={1,2} 當m=3,對合密鑰 π(x)={1,2,3}或者π(x)={3,2,1}或者π(x)={1,3,2}或者π(x)={2,1,3} 當m=4,對合密鑰 π(x)={1,2,3,4}或者π(x)={1,3,2,4}或者π(x)={1,2,4,3}或者π (x)={1,4,3,2}或者π(x)={2,1,3,4}或者π(x)={2,1,4,3}或者π(x)={3,2,1,4} 或者π(x)={3,4,1,2}或者π(x)={4,2,3,1}或者π(x)={4,3,2,1} 當m=5時,對合密鑰為 π(x)={1,2,3,4,5}或者π(x)={1,3,2,4,5}或者π(x)={1,3,2,5,4}或者π (x)={1,4,3,2,5}或者π(x)={1,4,5,2,3}或者π(x)={1,5,4,3,2}或者π (x)={1,5,3,4,2}或者π(x)={2,1,3,4,5}或者π(x)={2,1,4,3,5}或者π (x)={2,1,5,4,3}或者π(x)={2,1,3,5,4}或者π(x)={3,2,1,4,5}或者π (x)={3,4,1,2,5}或者π(x)={3,5,1,4,2}或者π(x)={4,2,3,1,5}或者π (x)={4,3,2,1,5}或者π(x)={4,5,3,1,2}或者π(x)={4,2,5,1,3}或者π (x)={4,2,5,1,3}或者π(x)={5,2,3,4,1}或者π(x)={5,3,2,4,1}或者π (x)={5,2,4,3,1}或者π(x)={5,4,3,2,1} 當m=6時,對合密鑰為 π(x)= {1,2,3,4,5,6}or{1,2,3,4,6,5}or{1,2,3,5,4,6}or{1,2,3,6,5,4}or {1,2,4,3,5,6}or{1,2,4,3,6,5}or{1,2,5,4,3,6}or{1,2,5,6,3,4}or {1,2,6,4,5,3}or{1,2,6,5,4,3}or{1,3,2,4,5,6}or{1,3,2,5,4,6}or {1,3,2,6,5,4}or{1,3,2,4,6,5}or{1,4,3,2,5,6}or{1,4,5,2,3,6}or {1,4,6,2,5,3}如此類推 1.18(付鵬) 若(z 0 ,z 1 ,z 2 ,z 3 )=(0,0,0,0),則由z i?4 =(z i +z i?1 +z i?2 +z i?4 )mod2可知z k =0(k=0,) 此時周期為1; 若(z 0 ,z 1 ,z 2 ,z 3 )=(0,0,0,1),則由z i?4 =(z i +z i?1 +z i?2 +z i?4 )mod2可知,得到的密鑰流為: 0001 1000 1100 0110 0011 0001 ......可知周期為5; 由上密碼流可知:若(z 0 ,z 1 ,z 2 ,z 3 )的值取為0001,1000,1100,0110,0011,時,密鑰流周期都為5 若(z 0 ,z 1 ,z 2 ,z 3 )=(0,0,1,0),則由z i?4 =(z i +z i?1 +z i?2 +z i?4 )mod2可知,得到的密鑰流為: 0010 1001 0100 1010 可知周期為5 由上密碼流可知:若(z 0 ,z 1 ,z 2 ,z 3 )的值取為0010,1001,0100,1010,0101,時,密鑰流周期都為5 若(z 0 ,z 1 ,z 2 ,z 3 )=(0,1,1,1),則由z i?4 =(z i +z i?1 +z i?2 +z i?4 )mod2可知,得到的密鑰流為: 0111 1011 1101 1110 可知周期為5 由上密碼流可知:若(z 0 ,z 1 ,z 2 ,z 3 )的值取為0111,1011,1101,1110,1111,時,密鑰流周期都為5 由上可知(z 0 ,z 1 ,z 2 ,z 3 )=(0,0,0,0)時,周期為1;其他時刻都有周期為5. 1.19(喻思敏) 由遞歸關系:0000->0000 周期1 0001:->0011->0111->1111->1110->1101->1010->0101-> 1011->0110->1100->1001->0010->0100->1000->0001 周期15 1.20(鄭陽) 證明:設|∑|=m 設狀態的周期為T, ∵σ i =f(σ i-1 ,K),σ i+ T = σ i 下一狀態只與前一狀態相關,當某一狀態與 前面某狀態重復時,接下來的所有狀態都將重復 ∴T≤m, 又z i =g(σ i ,K), ∴z i+T =z i , ∴T z ≤T≤m=|∑|, 即使用這種方法產生的密鑰流的周期至多為 |∑| 1.21(陳志坤) 答案:(a)已知F解密為w 頻數統計為: A = 5 B = 0 C = 37 D = 8 E = 12 F = 9 G = 23 H = 5 I = 15 J = 7 K = 17 L = 7 M = 5 N = 13 O = 10 P = 6 Q = 1 R = 0 S = 20 T = 0 U = 14 V = 0 W = 5 X = 7 Y = 15 Z = 13 F解密后,為w EMGLOSUDCGDNCUSWYSwHNSwCYKDPUMLWGYICOXYSIPJCKQPKUGKMGOLICGINCGACKSNISACYKZSCKXE CJCKSHYSXCGOIDPKZCNKSHICGIWYGKKGOLDSILKGOIUSIGLEDSPWZUGwZCCNDGYYSwUSZCNXEOJNCGY EOWEUPXEZGACGNwGLKNSACIGOIYCKXCJUCIUZCwZCCNDGYYSwEUEKUZCSOCwZCCNCIACZEJNCSHwZEJ ZEGMXCYHCJUMGKUCY 有頻數,大膽猜測C解密為e 。有 EMGLOSUDeGDNeUSWYSwHNSweYKDPUMLWGYIeOXYSIPJeKQPKUGKMGOLIeGINeGAeKSNISAeYKZSeKXE eJeKSHYSXeGOIDPKZeNKSHIeGIWYGKKGOLDSILKGOIUSIGLEDSPWZUGwZeeNDGYYSwUSZeNXEOJNeGY EOWEUPXEZGAeGNwGLKNSAeIGOIYeKXeJUeIUZewZeeNDGYYSwEUEKUZeSOewZeeNeIAeZEJNeSHwZEJ ZEGMXeYHeJUMGKUeY 在和e的雙字母組合中eG出現了7次,Ze出現了7次,eK出現了5次,Ae出現了5次, eY出現了4次,eI出現了4次而且Ie出現了3次,Ne出現了4次,且Ge未出現一次,而 G出現23次較高,故猜測I 解密為{r,s,t}中一個,S出現概率較高與e結合較少,猜測S 為o,有 EMGLOoUDeGDNeUoWYowHNoweYKDPUMLWGYIeOXYoIPJeKQPKUGKMGOLIeGINeGAeKoNIoAeYKZo eKXEeJeKoHYoXeGOIDPKZeNKoHIeGIWYGKKGOLDoILKGOIUoIGLEDoPWZUGwZeeNDGYYowUoZeN XEOJNeGYEOWEUPXEZGAeGNwGLKNoAeIGOIYeKXeJUeIUZewZeeNDGYYowEUEKUZeoOewZeeNeIA eZEJNeoHwZEJZEGMXeYHeJUMGKUeY 已知eG,eK出現較多,而Ge,Ke未出現,所以G,K中有一個為a , Ze出現較多,且 wZ出現較多,猜測Z為h,有: EMGLOoUDeGDNeUoWYowHNoweYKDPUMLWGYIeOXYoIPJeKQPKUGKMGOLIeGINeGAeKoNIoAeYKho eKXEeJeKoHYoXeGOIDPKheNKoHIeGIWYGKKGOLDoILKGOIUoIGLEDoPWhUGwheeNDGYYowUoheN XEOJNeGYEOWEUPXEhGAeGNwGLKNoAeIGOIYeKXeJUeIUhewheeNDGYYowEUEKUheoOewheeNeIA ehEJNeoHwhEJhEGMXeYHeJUMGKUeY whee為開頭出現了3次,后面均為N,猜測whee為單詞開頭,N應為{l,z}中一個, wheeNDGYYow出現兩次,恰有一單詞吻合,猜測其為wheelbarrow,則N解密為l D解密為b,G解密為a,Y解密為r。有 EMaLOoUbeableUoWrowHlowerKbPUMLWarIeOXroIPJeKQPKUaKMaOLIeaIleaAeKolIoAerKho eKXEeJeKoHroXeaOIbPKhelKoHIeaIWraKKaOLboILKaOIUoIaLEboPWhUawheelbarrowUohel XEOJlearEOWEUPXEhaAealwaLKloAeIaOIreKXeJUeIUhewheelbarrowEUEKUheoOewheeleIA ehEJleoHwhEJhEaMXerHeJUMaKUer 已知Uo和Ko出現了3次,由Uh和Kh出現了3次,U,K應該為s和t的順序 由Uohel知Uo應為一單詞,U應該為t,K為s。有 EMaLOotbeabletoWrowHlowersbPtMLWarIeOXroIPJesQPstasMaOLIeaIleaAesolIoAersho esXEeJesoHroXeaOIbPshelsoHIeaIWrassaOLboILsaOItoIaLEboPWhtawheelbarrowtohel XEOJlearEOWEtPXEhaAealwaLsloAeIaOIresXeJteIthewheelbarrowEtEstheoOewheeleIA ehEJleoHwhEJhEaMXerHeJtMaster 由helX猜測X為p,有 EMaLOotbeabletoWrowHlowersbPtMLWarIeOproIPJesQPstasMaOLIeaIleaAesolIoAersho espEeJesoHropeaOIbPshelsoHIeaIWrassaOLboILsaOItoIaLEboPWhtawheelbarrowtohel pEOJlearEOWEtPpEhaAealwaLsloAeIaOIrespeJteIthewheelbarrowEtEstheoOewheeleIA ehEJleoHwhEJhEaMperHeJtMaster 由EtEn,sbPn知E,P為元音,放入后發現E為i ,P為u,有 iMaLOotbeabletoWrowHlowersbutMLWarIeOproIuJesQustasMaOLIeaIleaAesolIoAersho espieJesoHropeaOIbushelsoHIeaIWrassaOLboILsaOItoIaLibouWhtawheelbarrowtohel piOJleariOWitupihaAealwaLsloAeIaOIrespeJteIthewheelbarrowitistheoOewheeleIA ehiJleoHwhiJhiaMperHeJtMaster 剩下O和I最多,猜測為d和n,代人后發現O為n,I為d。有 iMaLnotbeabletoWrowHlowersbutMLWardenproduJesQustasManLdeadleaAesoldoAersho espieJesoHropeandbushelsoHdeadWrassanLbodLsandtodaLibouWhtawheelbarrowtohel pinJlearinWitupihaAealwaLsloAedandrespeJtedthewheelbarrowitistheonewheeledA ehiJleoHwhiJhiaMperHeJtMaster 由第一句話猜測出M為m,L為y。有 imaynotbeabletoWrowHlowersbutmyWardenproduJesQustasmanydeadleaAesoldoAersho espieJesoHropeandbushelsoHdeadWrassanybodysandtodayibouWhtawheelbarrowtohel pinJlearinWitupihaAealwaysloAedandrespeJtedthewheelbarrowitistheonewheeledA ehiJleoHwhiJhiamperHeJtmaster 最后得出明文為 I may not be able to grow flowers .But my garden produces just as many dead leaves, old overshoes pieces of rope and bushels of dead grass anybody sand. Today I bought a wheelbarrow to help in clearing it up. I have alwaysloved and respected the wheelbarrow .It is the one wheel edvehicle of which I am perfect master. (b)由重合指數法 m=1時 重合指數為 0.043718 m=2時 重合指數為 0.044151,0.052792 m=3時 重合指數為0.064296,0.056601,0.056760 m=4時 重合指數為0.048581,0.054138,0.049036,0.060374 m=5時 重合指數為0.056661,0.057093,0.047004,0.049677,0.057251 m=6時 重合指數為0.079101,0.100128,0.066327,0.081633,0.059949,0.089923 所以密鑰長度為6 求Mg比較有 第1位Mg(2)= 0.089923 第2位Mg(17)= 0.070554 第3位Mg(24)= 0.058732 第4位Mg (15) = 0.066000 第5位Mg(19)= 0.055786 第6位Mg(14)=0.070429 密鑰K =(2,17,24,15,19,14) 明文為 I learned how to calculate the amount of paper needed for a room when I was at school. you multiply the square foot age of the walls by the cubic contents of the floor and ceiling combined and doubleit you ,then allow half the total for openings such as windows and doors .Then you allow the other half for matching the pattern. Then you double the whole thing again to give a margin of error and then you order the paper. (c)頻數為 A = 13 B = 21 C = 32 D = 9 E = 13 F = 10 G = 0 H = 1 I = 16 J = 6 K = 20 L = 0 M = 0 N = 1 O = 2 P = 20 Q = 4 R = 12 S = 1 T = 0 U = 6 V = 4 W = 0 X = 2 Y = 1 Z = 4 所以C解密應為e 設加密為ax+b(mod 26) 4a+b=2(mod 26) 若B解密為t 有19a+b=1(mod 26) 解得a=19,b=4,解密為11y+18(mod 26) 破譯后文字為 Ymkxknkdobbonoxycksoehdyxpbyxdocdmosxdnopvoebyxcqvybsoehmkbdyxlbkccksd zybdobvozoosvcksdzybdobvkmbyshdyxrscdysboocdexoozyzoonoczveclbsvvkxdcoh zvysdcoddkfkvoebnopysdbowzoozbydoqobkxycpyiobcodxycnbysdc 無意義 若K解密為t 有19a+b=10(mod 26),解得a=4,不合法 若P解密為t 有19a+b=15(mod 26),解得a=13不合法 若I解密為t 有19a+b=8(mod26),解得a=16不合法 若A解密為t,解得a=12不合法 若E解密為t,解得a=14不合法 若R解密為t,解得a=1,b=24,解密為y+2 破譯后文字為 msgtglgderreletmkgcewbdmtxrmtdekdctdlexhewrmtkqhmrcewbsgrdmtzrgkkgcd fmrderhefeechkgcdfmrderhgsrmcbdmtjckdmcreekdwteefmfeelekfhwkzrchhgtdkeb fhmcdkeddgpghewrlexmcdreafeefrmdeqergtmkxmuerkedtmklrmcdk 無意義 若F解密為t,解得a=21,b=22,解密為5x+20(mod 26) 破譯后文字為 swobonozerrenebsioueqpzsbvrsbzeizweubznevteqrsbimtsrueqpworzsbfroiiouz jsrzerteje eutiouzjsrzertowrsupzsbduizsureeizqbeejsjeeneijtqifruttobziepjtsuziezz ohoteqrnev suzrekjeejrszemerobsivsgeriezbsinrsuzi 無意義 若D解密為t,解得a=7,b=0,解密為15x(mod 26) 破譯后文字為 ugivifiperrefevuqiaeolpuvdruvpeqpgeavpfedxeoruvqcxuraeolgirpuvhriqqiap turperxete eaxqiapturperxigrualpuvbaqpuareeqpoveetuteefeqtxoqhraxxivpqeltxuapqepp inixeorfed uaprewteetrupecerivuqdukerqepvuqfruapq 無意義 a=19,b=4.解密a=11,b=8 附明文 ocanadaterredenosaieuxtonfrontestceintdefleuronsglorieuxcartonbrassait porterlepe eilsaitporterlacroixtonhistoireestuneepopeedesplusbrillantxploittt avaleurdef oitrempeeprotegeranosfoyertnosdroits 加標點后(加拿大國歌法語版) OCanada! Terre de nos a?eux, Ton front est ceint de fleurons glorieux! Car ton bras sait porter l'épée, Il sait porter la croix! Ton histoire est une épopée Des plus brillants exploits. Et ta valeur de foi trempé Protégera nos foyers et nos droits; Protégera nos foyers et nos droits (d) 頻數統計為 A = 20 B = 25 C = 46 D = 19 E = 17 F = 17 G = 9 H = 7 I = 19 J = 10 K = 30 L = 5 M = 4 N = 5 O = 4 P = 26 Q = 13 R = 22 S = 8 T = 12 U = 9 V = 12 W = 6 X = 6 Y = 5 Z = 7 各個字母均存在而且不少,表明不可能為代換密碼和置換密碼 根據各種三字母組合,可以判斷應該為6字母為一組(相同三字母位置之差大多為6的倍數) 但沒有找到維吉尼亞密鑰。應該是希爾密碼(不知道如何破譯) 1.22 (a)(劉慶賓) 證明: 方法一(冒泡排序思想類似): 設Pn~P1的系數依次為Qn’~Q1’,記∑=PnQn’+Pn-1Qn-1’+……+P1Q1’ 結論一:如果存在i,j滿足i>=j而且Qi’<=Qj’,交換Qi’與Qj’的位置得到 新的∑’,有∑<=∑’。 證明:∑-∑’= PnQn’+…+PiQi’+…PjQj’+…+P1Q1’-(PnQn’+…+PiQj’+…PjQi’+…+P1Q1’) =(Qi’-Qj’)(Pi-Pj)<=0 假設存在整數k, (1) k=1時,令Qn=max{ Qn’~Q1’},如果Qn’!=Qn,交換Qn’與Qn的位置,則 表達式∑的值增加;否則不交換 (2)k>=2時,我們有Pn~Pk-1的系數依次為Qn~Qk-1. 令Qk=max({Qn’~Q1’}-{ Qn~Qk-1});,同理交換Qk’與Qk的位置,∑的值增 加。 由此類推,當k=n時,得到了命題中給出的式子。在證明過程中保證了Qn’~Q1’ 的任意性,因此當Qn’~Q1’與 Qn~Q1完全對應時,∑達到最大值。 方法二(快速排序思想類似): 與方法一類似,請感興趣的朋友自己證明一下 (b)略 1.23(孫宏峰) 解:b r e a t h t a k I n g 1 17 4 0 19 7 19 0 10 8 13 16 R U P O T E N T O I F V 17 20 15 14 19 4 13 19 14 8 5 21 我們可以假設m=2,3,4,……,直到找到密鑰為止 若m=2,則有 (1,17)=(17,20) ……………………① (4,0)=(15,14) ……………………② (19,7)=(19,4) (19,0)=(13,19) (10,8)=(14,8) (13,6)=(5,21) 由①②可得K=,可以解出K,然后代入其他式中驗算K的正確性,同理,可以 求得若m=3,4,……時的密鑰K并進行驗算,最終求出正確的密鑰K 1.24(袁小卉) 根據題意, (3,18,17)=(0,3,8)e k +(b 1 ,b 2 ,b 3 ); (12,18,8)=(18,15,11)e k +(b 1 ,b 2 ,b 3 ); (14,15,11)=(0,24,4)e k +(b 1 ,b 2 ,b 3 ); (23,11,9)=(3,4,16)e k +(b 1 ,b 2 ,b 3 ); (1,25,20)=(20,0,19)e k +(b 1 ,b 2 ,b 3 ); (11,11,2)=(8,14,13)e k +(b 1 ,b 2 ,b 3 ); 可得方程組: 3 18 17 0 3 8 b 1 12 18 8 = 18 15 11 e k + b 1 b 14 15 11 0 24 4 b 1 23 11 9 3 4 16 b 1 1 25 20 = 20 0 19 e k + b 1 b 11 11 12 8 14 13 b 1 兩式相減得: 20 -7 -8 3 1 8 -11 7 12 = 2 -15 8 e k -3 -4 1 8 -10 9 右邊矩陣的逆為: 2 b 3 2 b 3 2 b 3 2 b 3 2 b 3 2 b 3 ① ② b b b b 6 10 19 22 0 8 24 0 10 5 4 13 故解e k = 0 22 14 8 0 0 帶入方程組得b=(8,6,13) 1.25 (喻思敏) 詞頻統計 LM 3 QE 1 TX 4 YE 1 AG 2 CT 1 UI 1 EW 3 NC 1 LZ UA 1 IS 1 PZ 1 YV 2 AP 2 GQ 1 WY 1 AX 2 FT 1 1 MS 1 QC 1 AD 1 DX 1 NX 1 SN 1 PJ 1 QS 2 RI 1 1 NO 1 CV 1 FV 1 參考代碼(部分): for(i=0;i<45;i++) { int m=0; if(in[i][0]==-1)continue; ap[0]=in[i][0]; ap[1]=in[i][1]; for(j=i+1;j<45;j++) { if(in[j][0]==-1)continue; if(in[i][0]==in[j][0]&&in[i][1]==in[j][1]) { m++; in[j][0]=in[j][1]=-1; } } } 其中in已經存儲了所有密文對應的值 1 CJ MH #include "stdafx.h" #include #include using std::cin; using std::cout; using std::endl; int in[45][2]; int gcd(int n1,int n2)//最大公約數 { int t; if(n1 { t=n1; n1=n2; n2=t; } if(!(n1%n2))return n2; el{ n1=n1%n2; return gcd(n2,n1); } } int mod(int a,int m) { if(a>=0)return a%m; el if(a+m>0)return a+m; el return mod((-(-a)%m),m); } int mod_convert(int mod,int num)//模mod的逆 { if(gcd(mod,num)!=1)return -1; el { for(int i=1;i<=mod;i++) if((num*i)%mod==1)return i; return -1; } } int mod_convert_matrix(int &a,int &b,int &c,int &d,int m) { int A=a*d-b*c; A=mod(A,m); if(gcd(A,m)!=1)return -1; el{ int _A,t; _A=mod_convert(m,A); t=a;a=d;d=t; b=-b;c=-c; a=_A*a;b=_A*b;c=_A*c;d=_A*d; a=mod(a,m);b=mod(b,m);c=mod(c,m);d=mod(d,m); } return 0; } int mod_mul_matrix(int &a,int &b,int &c,int &d,int a1,int b1,int c1,int d1,int m) { int t1,t2,t3,t4; t1=a*a1+b*c1; t2=a*b1+b*d1; t3=c*a1+d*c1; t4=c*b1+d*d1; a=mod(t1,m);b=mod(t2,m);c=mod(t3,m);d=mod(t4,m); return 0; } void decipher(int &c1,int &c2,int a,int b,int c,int d,int m) { int t1,t2; t1=a*c1+c*c2; t2=b*c1+d*c2; c1=mod(t1,m);c2=mod(t2,m); } void plaintext(char m1,char m2,char n1,char n2,char e1,char e2,char p1,char p2)// 明文對m1m2,n1n2 { //密文對e1e2,p1p2 int a,b,c,d,i,j; int a1,b1,c1,d1; a=m1-'A';b=m2-'A';c=n1-'A';d=n2-'A'; a1=e1-'A';b1=e2-'A';c1=p1-'A';d1=p2-'A'; printf("明文矩陣:nt%d %dnt%d %dn",a,b,c,d); printf("密文矩陣:nt%d %dnt%d %dn",a1,b1,c1,d1); if(mod_convert_matrix(a1,b1,c1,d1,26)==-1)printf("密文矩陣的逆不存在n"); el { //printf("密文矩陣的逆:nt%d %dnt%d %dn",a1,b1,c1,d1); mod_mul_matrix(a1,b1,c1,d1,a,b,c,d,26);//矩陣乘法求出解密矩陣 printf("解密矩陣:nt%d %dnt%d %dn",a1,b1,c1,d1); int pltxt[45][2]; for(i=0;i<45;i++) for(j=0;j<2;j++) pltxt[i][j]=in[i][j]; for(i=0;i<45;i++) decipher(pltxt[i][0],pltxt[i][1],a1,b1,c1,d1,26); for(i=0;i<45;i++) for(j=0;j<2;j++) printf("%c",pltxt[i][j]+'a'); cout< } } void de(char *s) { char m1=s[0],m2=s[1],n1=s[2],n2=s[3],e1=s[4],e2=s[5],p1=s[6],p2=s[7]; plaintext(m1,m2,n1,n2,e1,e2,p1,p2); plaintext(m1,m2,n1,n2,p1,p2,e1,e2); } int main(int argc, char* argv[]) { int i,j,ap[2]; freopen("","r",stdin); freopen("","w+",stdout); for(i=0;i<45;i++) { char temp=0; cin>>temp; in[i][0]=temp-'A'; cin>>temp; in[i][1]=temp-'A'; } //TX 4 LM 3 EW 3 //TH HE IN ER AN RE ED ON //de("THHETXLM"); //de("HEINTXLM"); de("THINTXLM");//TH->LM IN->TX return 0; } 解密最后得到對應關系TH->LM IN->TX,前面明文,后面密文 明文矩陣: 19 7 8 13 密文矩陣: 11 12 19 23 解密矩陣: 23 21 13 16 明文內容: The king was in his count ing hou counting out his money the queen was in the parlour eating bread and honeyz 1.26(劉婉嬿) (a)將密文寫成m*n的矩陣,然后按行構成明文 (b) 6*7 mreadue yunhsar aycrorn mltoyro rqoyegg atrwodw 7*6 mucoed yytyoe alowur mqrdan rtasro aehorg rnrygw 2*21 marryqecoarydoeurgr ymaultntrhowsyoardw 21*2 mo yy aw md rs ao ry ue yo iu qa tr er ng cd te or rn ao hg rw moyyawmdrsaoryueyoiuqatrerngcdteorrnaohgrw 14*3 mce yto aou mra rar ahr rrg uod yye ywr gdn tso eog nyw 3*14 mmrietaodyureo yruqnohyagrg aaytcrrwoordnw 1.27(劉一麟) 在 2 上 (a)對于任意的i≥1 v m?i ?(z m?i ,z m?i?1 ,...,z m?i?m?1 ) z m?i ? ? c j z i?j mod2 j?0 m?1 m?1 j?0 m?1 j?0 v m?i ?( ? c j z i?j mod2, ? c j z i?1?j mod2,..., ? c j z m?i?1?j ) j?0 m?1 即 v m?i ? (b) ? cv j?0 m?1 ji?j mod2 ? 0 v 1 ?? 1 v 2 ?...?? h?1 v h ?0 (h≤m+1) v h ? ? ? j v j?1 mod2 j?0 h?2 (c) v h ?(z h ,z h?1 ,...,z h?m?1 ) i≥1所以h-1+i≥h 當i≤m時h-1+i≤h+m-1 由 v h ? ? ? j?0 h?2 j?0 h?2 j v j?1 mod2 z h?1?i ? ? ? j z j?i mod2 當i>m時由 z i ?z i?m 亦可得 z h?1?i ? h?2 j?0 ? ? j?0 h?2 j z j?i mod2 故 z h?1?i ? ? ? j z j?i mod2 (d) 若h≤m則h-1 z h?1?i ? ? ? j z j?i mod2 與 z m?i ? ? c j z i?j mod2 矛盾 j?0j?0 h?2m?1 故h=m+1 從而矩陣必為可逆的 1.28(劉慶賓) 密文:malvvmafbhbuqptsoxaltgvwwrg 參考代碼: #include "stdio.h" #include "conio.h" #include "string.h" #define MAX 500 void archkey(){ char c[MAX],p[MAX]; /*c存儲待分析的密文,p存儲z26空間下不同key對應的明文 */ int len,key,i; printf("輸入密文(長度小于500):n"); gets(c); len=strlen(c); for(key=0;key<26;key++){ p[0]=(c[0]-'a'+26-key)%26+'a'; /* 解密出第一個明文*/ for(i=1;i p[i]=(c[i]+26-p[i-1])%26+'a'; /*在解出得第一個明文基礎上,利用自動密鑰密 碼規則接觸剩下的明文*/ p[i]=0; printf("當 key=%d時,明文:n",key); puts(p); printf("n"); } } void main(){ archkey(); system("pau"); } 輸入密文(長度小于500): 當 key=0時,明文: moxyxpluhabtxsbrxaaliyxzxum 當 key=1時,明文: lpwzwqkvgbauwtaswbzmhzwawvl 當 key=2時,明文: kqvavrjwfczvvuztvcyngavbvwk 當 key=3時,明文: jrubusixedywuvyuudxofbucuxj 當 key=4時,明文: istctthydexxtwxvtewpectdtyi 當 key=5時,明文: htsdsugzcfwysxwwsfvqddszh 當 key=6時,明文: gurervfabgvzryvxrgurcerfrag 當 key=7時,明文: fvqfqwebahuaqzuyqhtsbfqgqbf 當 key=8時,明文: ewpgpxdczitbpatzpistagphpce 當 key=9時,明文: dxohoycdyjscobsaojruzhoiodd 當 key=10時,明文: cyninzbexkrdncrbnkqvyinjnec 當 key=11時,明文: bzmjmaafwlqemdqcmlpwxjmkmfb 當 key=12時,明文: aalklbzgvmpflepdlmoxwklllga 當 key=13時,明文: zbklkcyhunogkfoeknnyvlkmkhz 當 key=14時,明文: ycjmjdxitonhjgnfjomzumjnjiy 當 key=15時,明文: xdiniewjspmiihmgiplatnioijx 當 key=16時,明文: wehohfvkrqljhilhhqkbsohphkw 當 key=17時,明文: vfgpggulqrkkgjkigrjcrpgqglv 當 key=18時,明文: ugfqfhtmpsjlfkjjfsidqqfrfmu 當 key=19時,明文: thereisnotimeliketheprent 當 key=20時,明文: sidsdjronuhndmhldugfosdtdos 當 key=21時,明文: rjctckqpmvgocngmcvfgntcucpr 當 key=22時,明文: qkbublpqlwfpbofnbwehmubvbqq 當 key=23時,明文: plavamorkxeqapeoaxdilvawarp 當 key=24時,明文: omzwznnsjydrzqdpzycjkwzxzso 當 key=25時,明文: nnyxyomtizcsyrcqyzbkjxyyytn Key=19時there is no time like the prent 1.29(郭穎斐) (a)描述一下怎樣利用重合指數法來確定首次用來加密的密鑰字的長度,然后 找到它。 (b)通過分析下列密文來測試你的方法 IYMYSILONRFNCQXQJEDSHBUI······· A、首先要將密碼還原成單純的維吉尼亞密碼: 以第二問中的密文為例: 當m=1時,將密文的每一個字母當成一組,即第一組為I,第二組為Y, 第三組為M ,第四組為Y …… 然后將密文還原成單純的維吉尼亞密碼,即 I→I、Y→X(退一位)、M →K(退兩位)、Y→V(退三位)…… 將對應后的密文重組, 密文變成 IXKV······ 計算重合指數。 當m=2時,將密文的每兩個字母當成一組,即第一組為IY,第二組為 MY,第三組為SI,第四組為LO …… 然后將密文還原成單純的維吉尼亞密碼,即 IY→IY、MY→LX(退一位)、 SI→QG(退兩位)、LO→IL(退三位)…… 將對應后的密文重組, 密文變成 IYLXQGIL······ 計算重合指數。 同理計算 當m=3時…… 當m=4時…… …… 最終計算到合適的重合指數就能確定m的值。計算Mg的方法可以推測 出密鑰字。 B、第二問計算不出來 1.30(林武) 窮舉結果為: aqndwbhapnkjhwaxjyhwhanpjdjynaqjohzypzypdjobannykjoyphjdijtp kjqixtokwqsfoxkzfroxokqwfifrqkjfvoerwerwifvtkqqrsfvrwoficfpw sfjczpvsxjugvzglvzvsjxgcgljsfgyvhlxhlxcgypsjjlugylxvgcagwx ugfaewyuzfmbyeuhbdyeyufzbabdfugbryodzodzabrwuffdmbrdzybakbxz mbgkhxrmegntrhmotirhrmgetktigmbtlrvieviektlxmggintliertkstze ntbsozlnhbqplonvpclolnbhpspcbntpdlychychspdznbbcqpdchlpsupeh qptuvedqotjwdvqywadvdqtowuwatqpwidraoraouwieqttajwiaodwumwho jwpmyhijvpfxiyjrxkiyijpvxmxkpjwxcilkvlkvmxchjppkfxckvixmnxov fxwnrocfywgzcrflzscrcfwyznzswfxzacdsydsynzaofwwsgzasycznqzvy gzxqlvagrxbealgdeualagxreqeuxgzekaiuriurqekvgxxubekuraeqjeyr bezjdykblzthkdbihmkdkbzlhjhmzbehskcmlcmljhsybzzmthsmlkhjfhrl thefirstdepositconsistedofonethousandandfourteenpoundsofgold pohgclupihwvucpavqucuphivgvqhpovmukqikqigvmlphhqwvmqiuvgbvdi wvobadmwcoxymawkyjmamwocybyjowvynmsjcsjcbyndwoojxynjcmybtyic xyvtkinxavzrnkxsrfnknxvartrfvxyrqnufaufatrqixvvfzrqfanrtprca zrypscqzkyelqszulgqsqzyklplgyzrljqmgkmgkpljczyygeljgkqlpwlak elrwuajesrhdjuemdbjujersdwdbreldfjnbsnbswdfaerrbhdfbsjdwxdks hdlxmkfhuloifmhnitfmfhluixitlhdigfqtuqtuxigkhlltoigtufixzisu oidznsgomdvcgnoqcpgngodmczcpdoicbgjpmjpmzcbsoddpvcbpmgczecum vciequbvniyabqvjawbqbvinaeawivcatbfwnfwneatuviiwyatwnbaehamn yachjmtyqcrktjyfkxtjtycqkhkxcyakptgxqgxqhkpmyccxrkpxqtkhoknq rkaofnprjalspfrgszpfprajsoszarkswpbzjbzjoswnraazlswzjpsovsqj lskvgqwlfkduwglbuewgwlkfuvueklsuxwteftefvuxqlkkeduxefwuvyujf dusybjxdgsimxbdtmhxbxdsgmymhsdumzxphgphgymzjdsshimzhgxmyrmfg imurtfzibucnztipnoztziubnrnouimnezwobwobrnefiuuocneobznrlngb cnmlpgectmaqepcwqvepecmtqlqvmcnqhexvtxvtlqhgcmmvaqhvteqldqbt 所以 k=11 明文為:the first deposit consisted of one thousand and fourteen pounds of gold 
本文發布于:2024-04-01 12:24:03,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/171194544362554.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:密碼學答案.doc
本文 PDF 下載地址:密碼學答案.pdf
| 留言與評論(共有 0 條評論) |