![現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/b4bcf606-ad40-4571-aa37-9c0838aa80e1/b4bcf606-ad40-4571-aa37-9c0838aa80e11.gif)
![現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/b4bcf606-ad40-4571-aa37-9c0838aa80e1/b4bcf606-ad40-4571-aa37-9c0838aa80e12.gif)
![現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/b4bcf606-ad40-4571-aa37-9c0838aa80e1/b4bcf606-ad40-4571-aa37-9c0838aa80e13.gif)
![現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/b4bcf606-ad40-4571-aa37-9c0838aa80e1/b4bcf606-ad40-4571-aa37-9c0838aa80e14.gif)
![現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/24/b4bcf606-ad40-4571-aa37-9c0838aa80e1/b4bcf606-ad40-4571-aa37-9c0838aa80e15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)一、 實(shí)驗(yàn)教學(xué)目標(biāo)與基本要求現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)是本課程重要的實(shí)踐教學(xué)環(huán)節(jié)。實(shí)驗(yàn)的目的不僅僅是驗(yàn)證理論知識(shí),更重要的是通過實(shí)驗(yàn)加強(qiáng)學(xué)生的實(shí)驗(yàn)手段與實(shí)踐技能,培養(yǎng)學(xué)生分析問題、解決問題、應(yīng)用知識(shí)的能力和創(chuàng)新精神,全面提高學(xué)生的綜合素質(zhì)。通過本實(shí)驗(yàn)簡(jiǎn)要了解密碼學(xué)以及現(xiàn)代密碼算法的基本知識(shí),學(xué)會(huì)常用文件加密的實(shí)現(xiàn)、了解系統(tǒng)加密解密技術(shù),具體掌握幾種加解密方法。實(shí)驗(yàn)后完成要求撰寫實(shí)驗(yàn)報(bào)告,報(bào)告內(nèi)容包括題目、測(cè)試數(shù)據(jù)、運(yùn)行結(jié)果、遇到的問題和解決方法、關(guān)鍵代碼或程序清單,學(xué)生可以在實(shí)驗(yàn)報(bào)告中提出對(duì)實(shí)驗(yàn)的建議和意見。二、 實(shí)驗(yàn)項(xiàng)目及教學(xué)安排序號(hào)實(shí)驗(yàn)項(xiàng)目名稱基本內(nèi)容實(shí)驗(yàn)學(xué)時(shí)每組
2、人數(shù)實(shí)驗(yàn)要求實(shí)驗(yàn)類型1Vigenere的編程實(shí)現(xiàn)編程(建議使用C語(yǔ)言)實(shí)現(xiàn)古典密碼體制中的Vigenere密碼,并加/解密一個(gè)字符串或文件21必修設(shè)計(jì)性2Column permutation cipher 的編程實(shí)現(xiàn)編程(建議使用C語(yǔ)言)實(shí)現(xiàn)古典密碼體制中的Column permutation密碼,并加/解密一個(gè)字符串或文件21必修設(shè)計(jì)性3DES的編程實(shí)現(xiàn)使用C語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)DES密碼,并加密一個(gè)文件41必修設(shè)計(jì)性三、 實(shí)驗(yàn)成績(jī)考核辦法 每次實(shí)驗(yàn)后,要求從以下幾個(gè)方面書寫實(shí)驗(yàn)報(bào)告:實(shí)驗(yàn)題目,程序清單,實(shí)驗(yàn)用數(shù)據(jù)及結(jié)果,學(xué)生可以在實(shí)驗(yàn)報(bào)告中提出對(duì)實(shí)驗(yàn)的建議和意見。實(shí)驗(yàn)成績(jī)滿分100分,并按10%折
3、算記入課程總成績(jī),實(shí)驗(yàn)成績(jī)不合格者不得參加期末考試。實(shí)驗(yàn)成績(jī)按下面7條進(jìn)行考核評(píng)定。(1)做好實(shí)驗(yàn)內(nèi)容的預(yù)習(xí),寫出預(yù)習(xí)報(bào)告;占10%。(2)了解實(shí)驗(yàn)題目的調(diào)試方法;占10%。(3)按實(shí)驗(yàn)要求預(yù)先設(shè)計(jì)好程序;占10%。(4)認(rèn)真記錄實(shí)驗(yàn)數(shù)據(jù)并分析實(shí)驗(yàn)結(jié)果;占10%。(5)實(shí)驗(yàn)后按要求書寫實(shí)驗(yàn)報(bào)告,記錄實(shí)驗(yàn)用數(shù)據(jù)及運(yùn)行結(jié)果;占30%。(6)創(chuàng)新能力強(qiáng),在實(shí)驗(yàn)中設(shè)計(jì)的程序有一定的通用性,算法優(yōu)化;20%。(7)實(shí)驗(yàn)過程中,具有嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,認(rèn)真、踏實(shí)、一絲不茍的科學(xué)作風(fēng);10%四、 實(shí)驗(yàn)教材及參考書1.Richard J.Spillman:CLASSICAL AND CONTEMPORARY CR
4、YPTOLOGY,清華大學(xué)出版社,2005-72.William Stallings: Cryptography and Network Security: Principles and Practice. 2nd ed. Prentice Hall, 1998.3.楊波著:現(xiàn)代密碼學(xué),清華大學(xué)出版社,2003-8.4.Wenbo Mao. Modern Cryptography: Theory and Practicce. 電子工業(yè)出版社,2004-7.5許主洪著:加密與解密-密碼技術(shù)剖析與實(shí)戰(zhàn)應(yīng)用,人民郵電出版社,2002-8.6張煥國(guó),劉玉珍著:密碼學(xué)引論,武漢大學(xué)出版社,2003.7段
5、鋼著:加密與解密,電子工業(yè)出版社,2005-3.五、實(shí)驗(yàn)內(nèi)容與報(bào)告的要求實(shí)驗(yàn)1、2的內(nèi)容要求(提示性的)與封面見附錄一(打印時(shí)將“附錄一”3個(gè)字去掉)。實(shí)驗(yàn)3的內(nèi)容要求(提示性的)與封面見附錄二(打印時(shí)將“附錄二”3個(gè)字去掉)。嚴(yán)禁互相抄襲!一經(jīng)發(fā)現(xiàn)抄襲者與被抄襲者全無成績(jī)!五、時(shí)間與場(chǎng)地第7、9周,周一9-12節(jié);綜合樓311,軟信1201-03班(附錄一)現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱Vigenere和Column permutation cipher的編程實(shí)現(xiàn)班 級(jí)信息安全一班學(xué) 號(hào)20124961姓 名鄭魏獻(xiàn)日 期2014-5-3成 績(jī)?cè)u(píng) 閱 人軟件學(xué)院一、 實(shí)驗(yàn)?zāi)康呐c意義
6、通過編程實(shí)現(xiàn)Vigenere和Column permutation cipher密碼算法,加深了我們對(duì)古典密碼學(xué)的了解,這也為我們深入學(xué)習(xí)密碼學(xué)奠定了堅(jiān)實(shí)的基礎(chǔ)。二、 實(shí)驗(yàn)環(huán)境操作系統(tǒng):Windows XP上級(jí)地點(diǎn):綜合樓311編程軟件:VC+ 6.0三、 實(shí)驗(yàn)的預(yù)習(xí)內(nèi)容密碼學(xué)基礎(chǔ)vigenere算法、Column permutation cipher算法相關(guān)知識(shí)。Vigenere算法請(qǐng)輸入秘鑰K1創(chuàng)建加密矩陣 D=1 D=3輸入選項(xiàng)編號(hào)D D=2請(qǐng)輸入要解密的字符串退出請(qǐng)輸入要加密的字符串解密加密結(jié)束開始開始輸入密文將明文按長(zhǎng)度D分從F中找到密文對(duì)應(yīng)位置的數(shù)選取置換數(shù)字F根據(jù)位置置換密文的明
7、文加密解密結(jié)束結(jié)束四、 實(shí)驗(yàn)的步驟與調(diào)試方法 Vigenere:加密:實(shí)驗(yàn)步驟:1獲得秘鑰2創(chuàng)建加密矩陣3獲得明文4加密5得到密文 解密:實(shí)驗(yàn)步驟:1獲得秘鑰2創(chuàng)建加密矩陣3獲得密文4解密5獲得明文 Column permutation:加密:實(shí)驗(yàn)步驟:1獲得明文2將明文按長(zhǎng)度D分3加密4獲得密文 解密:實(shí)驗(yàn)步驟:1輸入密文2從F中找到密文對(duì)應(yīng)位置的數(shù)3根據(jù)位置置換密文的明文4解密5獲得明文五、 實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)結(jié)果 Vigenere:1 明文:woshidongbeidaxuexuesheng 關(guān)鍵字:line 密文:hwfltlbroikypfhidprrr 2 密文:scehvvvantc
8、iarrj 關(guān)鍵字:woman 明文:woshizhongguoren Column permutation:1 明文:woshizhongguoren關(guān)鍵字:line密文:sygeozgrhounwino2密文:woshidongbeidaxuexuesheng關(guān)鍵字:line明文:uowdenoasgsxhbhueeisnidx六、 實(shí)驗(yàn)用程序清單(要有注釋)vigenere/*初始化vigenere方陣*/for(i=1;i<27;i+)for(j=1;j<27;j+)squareij=63+i+j;if(squareij>90)squareij=squareij-26
9、;for(k=1;k<27;k+)for(m=1;m<27;m+)printf("%c ",squarekm);printf("n");/*加密算法*/char * vigenere(char key,char word) char *text=(char *)malloc(MAX*sizeof(char); int key_length=strlen(key); int word_length=strlen(word); int i,j,c; for(i=0;i<word_length;i+)if(wordi>=65&&
10、amp;wordi<=90)|(wordi>=97&&wordi<=122)if(wordi>=97&&wordi<=122)c=wordi-96;else c=wordi-64;j=i%key_length;texti=squarekeyj-96c;else texti=wordi;texti='0'return text;/*解密算法*/char * anti_vigenere(char key,char * en_word)char *word=(char *)malloc(MAX*sizeof(char);
11、int key_length=strlen(key); int word_length=strlen(en_word); int i,j,c,k,d; for(i=0;i<word_length;i+) if(en_wordi>=65&&en_wordi<=90) c=i%key_length;/*所用密鑰在所在*/ k=keyc-96; d=en_wordi-squarek1; if(d>=0) wordi='a'+d; else wordi='z'+d+1; else wordi=en_wordi; wordi=
12、9;0' return word;Column permutetion 加密void Encryption(char str1,char key) int i,j; char num300; int plen=strlen(str1); int len=strlen(key); for(i=0;i<len;i+) numi=1; for(j=0;j<len;j+) if(keyj<keyi) numi+; for(j=0;j<i;j+) if(keyj = keyi) numi=numi+1; printf("n"); for(i=0;i&l
13、t;len;i+) for(j=0;j<plen/len;j+) printf("%c",str1j*len+numi-1); printf(" "); printf("n"); 解密void Decryption(char key,char str3) int i,j; char num500; char cnum500; int clen=strlen(str3); int len=strlen(key); for(i=0;i<len;i+) numi=1; for(j=0;j<len;j+) if(keyj&l
14、t;keyi) numi+; for(j=0;j<i;j+) if(keyj = keyi) numi=numi+1; for(i=0;i<len;i+) for(j=0;j<len;j+) if(i+1=numj) cnumi=j; for(i=0;i<clen/len;i+) for(j=0;j<len;j+) printf("%c",str3cnumj*clen/len+i); printf(" "); printf("n");七、 思考題(必需回答)寫明如下問題1. Vigenere密碼的原理是什
15、么? Vigenere加密法是基于關(guān)鍵詞的加密系統(tǒng),但不是像單碼關(guān)鍵詞加密法那樣使用關(guān)鍵詞來定義替換模式的,關(guān)鍵詞寫在明文的上面,并不斷重復(fù)書寫,這樣每個(gè)明文字母都與一個(gè)關(guān)鍵詞的字母關(guān)聯(lián)。例如,如果關(guān)鍵詞為"hold",而明文為"this is the plaintext",那么,關(guān)鍵詞明文的關(guān)聯(lián)如下所示:h o l d h o l d h o l d h o l d h ot h i s i s t h e p l a i n t e x t每個(gè)明文字母與關(guān)鍵詞的一個(gè)字母對(duì)應(yīng)。例如,第一個(gè)明文字母"t"與關(guān)鍵詞的字母"h&
16、quot;配對(duì)。利用如下圖所示的Vigenere表,在密鑰字母確定的行和明文字母確定的列交叉處的字母即為用來替代明文字母的密文字母。例如上面例子中第一對(duì)是"h-t",在下表中查找"h"行和"t"列的交叉處,即為密文字母"a"。重復(fù)以上過程可以生成以下的密文:密鑰 h o l d h o l d h o l d h o l d h o明文 t h i s i s t h e p l a i n t e x t密文 a v t v p g e k l d w d p b e h d h2. Vigenere密碼的主要缺
17、陷有哪些? 不能經(jīng)受住頻率分析的攻擊方法3. 對(duì)Vigenere密碼的分析方法有哪幾種? Vigenere密碼是一個(gè)基于單表置換的分塊對(duì)稱加密算法。將明文T分為長(zhǎng)度為n的若干塊(若最后一塊不足則用隨機(jī)數(shù)補(bǔ)滿),密鑰K長(zhǎng)度為n。在加密時(shí)對(duì)每個(gè)明文分塊Ti做Ci=(Ti+Ki)%m,解密時(shí)對(duì)每個(gè)密文分塊Ci做Ti=(Ci-Ki)%m,其中m為字符空間大小。 顯然,該加密算法是一個(gè)不安全的加密算法。Vigenere算法有著致命的缺陷Ki=(Ci-Ti)%m,使得他可以被已知明文攻擊完全破解。同時(shí),利用Friedman攻擊也能夠完全破解該算法,只是破解難度稍大。但是,我們也可以看到,這兩種破解都有著一
18、個(gè)共同的假設(shè):密鑰長(zhǎng)度n小于明文的長(zhǎng)度,即相同的明文字符可能多次被相同的密鑰字符加密,生成相同的密文字符。 4. 對(duì)Vigenere密碼的改進(jìn)方法是什么? 使用長(zhǎng)度分別為m和n的兩個(gè)密鑰來進(jìn)行兩輪加密,等效于使用密鑰長(zhǎng)度為m和n的最小公倍數(shù)的一個(gè)密鑰進(jìn)行一輪的加密(證明略)。這樣,如果m、n互質(zhì),我們實(shí)際上就做到了使用長(zhǎng)度為m+n的密鑰來代替長(zhǎng)度為m*n的密鑰,從而大大的降低了密鑰的長(zhǎng)度5. Column permutation cipher 的原理是什么? 列置換的加密原理是,明文按行填寫在一個(gè)矩陣中,而密文則是以預(yù)訂的順序按列讀取生成的。如果矩陣是4行5列,那么短語(yǔ)“ENCRYPTION
19、ALGORITHMS” 可以如下寫入該矩陣中,按一定的順序讀取生成密文6. 給定關(guān)鍵字為“experiment”,加密矩陣將包括幾列,以及列置換的次序是什么?7. 簡(jiǎn)述對(duì)Column permutation cipher的分析方法。 a.確定列的可能大小;b.確定正確的矩形; C.還原列的順序8. Column permutation cipher的安全性增強(qiáng)方法是什么? 進(jìn)行雙重?fù)Q位加密,先用列換位法將明文加密,然后再次利用列換位法將第一次換位加密的密文加密。這兩次換位所使用的關(guān)鍵詞可以相同。經(jīng)過兩次換位后,明文字母的位置完全被打亂了。八、 結(jié)束語(yǔ)通過本次實(shí)驗(yàn)的學(xué)習(xí),讓我對(duì)古典密碼又有了一個(gè)
20、深層次的認(rèn)識(shí)和學(xué)習(xí),而且我的編程能力又有了一個(gè)比較大的提升,重新鞏固了C語(yǔ)言知識(shí);但是我還發(fā)現(xiàn)自己還有許多地方做得不足,有些密碼學(xué)的知識(shí)還是掌握的不夠好,不時(shí)還得翻書看看,九、 參考文獻(xiàn)1.Richard J.Spillman:CLASSICAL AND CONTEMPORARY CRYPTOLOGY,清華大學(xué)出版社,2005-72.William Stallings: Cryptography and Network Security: Principles and Practice. 2nd ed. Prentice Hall, 1998.3.楊波著:現(xiàn)代密碼學(xué),清華大學(xué)出版社,2003-
21、8. 4.Wenbo Mao. Modern Cryptography: Theory and Practicce. 電子工業(yè)出版社,2004-7. 5許主洪著:加密與解密-密碼技術(shù)剖析與實(shí)戰(zhàn)應(yīng)用,人民郵電出版社,2002-8. 6張煥國(guó),劉玉珍著:密碼學(xué)引論,武漢大學(xué)出版社,2003. 7段鋼著:加密與解密,電子工業(yè)出版社,2005-3.實(shí)驗(yàn)成績(jī)考查內(nèi)容分?jǐn)?shù)得分做好實(shí)驗(yàn)內(nèi)容的預(yù)習(xí),寫出預(yù)習(xí)報(bào)告10了解實(shí)驗(yàn)題目的調(diào)試方法10按實(shí)驗(yàn)要求預(yù)先設(shè)計(jì)好程序10認(rèn)真記錄實(shí)驗(yàn)數(shù)據(jù)并分析實(shí)驗(yàn)結(jié)果10實(shí)驗(yàn)后按要求書寫實(shí)驗(yàn)報(bào)告,記錄實(shí)驗(yàn)用數(shù)據(jù)及運(yùn)行結(jié)果30創(chuàng)新能力強(qiáng),在實(shí)驗(yàn)中設(shè)計(jì)的程序有一定的通用性,算法優(yōu)化2
22、0實(shí)驗(yàn)過程中,具有嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,認(rèn)真、踏實(shí)、一絲不茍的科學(xué)作風(fēng)10(附錄二)現(xiàn)代密碼學(xué)與加解密技術(shù)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱DES的編程實(shí)現(xiàn)班 級(jí)信息安全1201班學(xué) 號(hào)20124961姓 名鄭魏獻(xiàn)日 期2014-5-3成 績(jī)?cè)u(píng) 閱 人軟件學(xué)院一、 實(shí)驗(yàn)?zāi)康呐c意義加深我們對(duì)DES算法的認(rèn)識(shí),鞏固C語(yǔ)言知識(shí),加強(qiáng)我們的編程能力,為我們?nèi)蘸蟾由钊氲膶W(xué)習(xí)密碼學(xué)打下堅(jiān)實(shí)的基礎(chǔ)。二、 實(shí)驗(yàn)環(huán)境 操作系統(tǒng):WINDOWS XP 上機(jī)地點(diǎn):綜合樓311 編程軟件:VC+ 6.0三、 實(shí)驗(yàn)的預(yù)習(xí)內(nèi)容 密碼學(xué)DES算法及c語(yǔ)言相關(guān)知識(shí)Plaintext(64bit)程序框圖:Key(64bit)Initial Tr
23、anspositionDiscarding(56bit)16 StagesPermutingFinal TransportionCiphertext(64bit)四、 實(shí)驗(yàn)的步驟與調(diào)試方法 1. 輸入64個(gè)二進(jìn)制位明碼文數(shù)據(jù)保存為8*8的二維數(shù)組 2. 分成左右兩個(gè)大小相等的部分,每部分為一個(gè)32位二進(jìn)制的數(shù)據(jù)塊 3. 首先按照一定規(guī)則對(duì)密鑰進(jìn)行壓縮置換,得到48位子密鑰 4. S盒置換 5 . P盒置換 6. 用替代法和換位法和換位法對(duì)上一次迭代的輸出進(jìn)行加密變換 7. 置換得到最終密文五、 實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)結(jié)果明文:lkjhgfds秘鑰12345678密文:A4C7EB3E5937430A六
24、、 實(shí)驗(yàn)用程序清單(要有注釋) 把DatIn開始的長(zhǎng)度位Len位的二進(jìn)制 復(fù)制到DatOut后void BitsCopy(bool *DatOut,bool *DatIn,int Len) / 數(shù)組復(fù)制 OK int i=0;for(i=0;i<Len;i+)DatOuti=DatIni;字節(jié)轉(zhuǎn)換成位函數(shù) 每8次換一個(gè)字節(jié) 每次向右移一位 和1與取最后一位 共64位 void ByteToBit(bool *DatOut,char *DatIn,int Num) / OKint i=0;for(i=0;i<Num;i+)DatOuti=(DatIni/8>>(i%8)&
25、amp;0x01; 位轉(zhuǎn)換成字節(jié)函數(shù) 字節(jié)數(shù)組每8次移一位 位每次向左移 與上一次或 -*/void BitToByte(char *DatOut,bool *DatIn,int Num) / OKint i=0;for(i=0;i<(Num/8);i+)DatOuti=0; for(i=0;i<Num;i+)DatOuti/8|=DatIni<<(i%8);/*- 二進(jìn)制密文轉(zhuǎn)換為十六進(jìn)制 需要16個(gè)字符表示-*/void BitToHex(char *DatOut,bool *DatIn,int Num)int i=0;for(i=0;i<Num/4;i+)D
26、atOuti=0;for(i=0;i<Num/4;i+)DatOuti = DatIni*4+(DatIni*4+1<<1)+(DatIni*4+2<<2)+(DatIni*4+3<<3);if(DatOuti%16)>9)DatOuti=DatOuti%16+'7' / 余數(shù)大于9時(shí)處理 10-15 to A-F / 輸出字符 elseDatOuti=DatOuti%16+'0' / 輸出字符 /*- 十六進(jìn)制字符轉(zhuǎn)二進(jìn)制-*/void HexToBit(bool *DatOut,char *DatIn,int
27、Num)int i=0; / 字符型輸入 for(i=0;i<Num;i+)if(DatIni/4)>'9') / 大于9 DatOuti=(DatIni/4-'7')>>(i%4)&0x01; elseDatOuti=(DatIni/4-'0')>>(i%4)&0x01; / 表置換函數(shù) OKvoid TablePermute(bool *DatOut,bool *DatIn,const char *Table,int Num) int i=0;static bool Temp256=0;fo
28、r(i=0;i<Num;i+) / Num為置換的長(zhǎng)度 Tempi=DatInTablei-1; / 原來的數(shù)據(jù)按對(duì)應(yīng)的表上的位置排列 BitsCopy(DatOut,Temp,Num); / 把緩存Temp的值輸出 / 子密鑰的移位void LoopMove(bool *DatIn,int Len,int Num) / 循環(huán)左移 Len數(shù)據(jù)長(zhǎng)度 Num移動(dòng)位數(shù)static bool Temp256=0; / 緩存 OKBitsCopy(Temp,DatIn,Num); / 將數(shù)據(jù)最左邊的Num位(被移出去的)存入Temp BitsCopy(DatIn,DatIn+Num,Len-Num
29、); / 將數(shù)據(jù)左邊開始的第Num移入原來的空間BitsCopy(DatIn+Len-Num,Temp,Num); / 將緩存中移出去的數(shù)據(jù)加到最右邊 / 按位異或void Xor(bool *DatA,bool *DatB,int Num) / 異或函數(shù)int i=0;for(i=0;i<Num;i+)DatAi=DatAiDatBi; / 異或 / 輸入48位 輸出32位 與Ri異或void S_Change(bool DatOut32,bool DatIn48) / S盒變換int i,X,Y; / i為8個(gè)S盒 for(i=0,Y=0,X=0;i<8;i+,DatIn+=6
30、,DatOut+=4) / 每執(zhí)行一次,輸入數(shù)據(jù)偏移6位 / 每執(zhí)行一次,輸出數(shù)據(jù)偏移4位Y=(DatIn0<<1)+DatIn5; / af代表第幾行X=(DatIn1<<3)+(DatIn2<<2)+(DatIn3<<1)+DatIn4; / bcde代表第幾列ByteToBit(DatOut,&S_BoxiYX,4); / 把找到的點(diǎn)數(shù)據(jù)換為二進(jìn)制七、 思考題(必需回答)1. DEDS 的原理是什么? DES使用一個(gè)56位的密鑰以及附加的8位奇偶校驗(yàn)位,產(chǎn)生最大64位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為Feistel的技術(shù),
31、其中將加密的文本塊分成兩半。使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES使用16個(gè)循環(huán)。2. DES使用多少位密鑰? 8bit3. DES對(duì)明文分塊的單位是多少? 8bit4. DES對(duì)每一個(gè)數(shù)據(jù)塊加密的輪次是多少? 16輪5. 簡(jiǎn)單描述EBox的操作過程。 設(shè) B(i)=b1(i)b2(i)b64(i)是第 i+1次迭代的 64個(gè)二進(jìn)制位輸入?yún)^(qū)組,將 B(i)分為左右兩個(gè)大小相等的部分,每部分為一個(gè)32位二進(jìn)制的數(shù)據(jù)塊L(i)=l1(i)l2(i)l32(i)= b1(i)b2(i)b32(i) R(i
32、)=r1(i)r2(i)r32(i)=b33(i)b34(i)b64(i)把 R(i)視為由8個(gè)4位二進(jìn)制的塊組成r1(i)r2(i) r3(i)r4(i)r5(i)r6(i) r7(i)r8.r29(i)r30 (i)r31(i)r32(i)通過循環(huán)抄錄相鄰塊的相鄰塊,把它們?cè)贁U(kuò)充為8個(gè)6位二進(jìn)制的塊r32(i)r1(i) r2(i)r3(i) r4r5(i) r4(i)r5 (i)r6(i)r7 (i)r8(i)r9(i) r28(i)r29 (i)r30(i)r31(i) r32r1(i)用 E(R(i)表示這個(gè)變換,稱為擴(kuò)充函數(shù)。擴(kuò)充函數(shù)E32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司車輛借用管理協(xié)議
- 2025年企業(yè)并購(gòu)雙方股權(quán)策劃合同樣本
- 2025年產(chǎn)品銷售代表合同范本
- 2025年多功能會(huì)議室租賃合同樣本
- 2025年企業(yè)人力資源部門員工雇傭協(xié)議
- 2025年個(gè)人租賃協(xié)議范本
- 2025年熱固化油墨項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年應(yīng)用軟件設(shè)計(jì)服務(wù)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2025年電力系統(tǒng)安全策劃生產(chǎn)責(zé)任協(xié)議書
- 2025年金融機(jī)構(gòu)信用借貸合同范文
- 2024年初級(jí)養(yǎng)老護(hù)理員職業(yè)鑒定考試題庫(kù)(含答案)
- 人教八年級(jí)上冊(cè)英語(yǔ)第一單元《Section A (1a-2d)》教學(xué)課件
- 2023年版《安寧療護(hù)實(shí)踐指南(試行)》解讀課件
- 2024年銀行考試-興業(yè)銀行筆試考試歷年高頻考點(diǎn)試題摘選含答案
- 油氣勘探開發(fā)的勘探風(fēng)險(xiǎn)管理
- 10kV環(huán)網(wǎng)柜改造工程施工方案設(shè)計(jì)
- 電工班三級(jí)安全教育內(nèi)容范本
- 新生兒疾病篩查可疑陽(yáng)性、陽(yáng)性兒復(fù)查隨訪登記表
- 開學(xué)前幼兒園安全培訓(xùn)
- 2024年春學(xué)期人教版pep版小學(xué)英語(yǔ)五年級(jí)下冊(cè)教學(xué)進(jìn)度表
- 2023年湛江市麻章區(qū)教育局招聘事業(yè)編制教師考試真題
評(píng)論
0/150
提交評(píng)論