資源描述:
《《現(xiàn)代密碼學(xué)》實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、現(xiàn)代密碼學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名駱秀娟學(xué)號(hào)0909121906專業(yè)班級(jí)計(jì)科1204班指導(dǎo)教師段桂華學(xué)院信息科學(xué)與工程學(xué)院完成時(shí)間2014年4月25日實(shí)驗(yàn)一對(duì)稱密碼算法實(shí)驗(yàn)[實(shí)驗(yàn)?zāi)康腯1.掌握密碼學(xué)中經(jīng)典的對(duì)稱密碼算法DES、AES、RC4的算法原理。2.掌握DES、AES、RC4的算法流程和實(shí)現(xiàn)方法。[實(shí)驗(yàn)預(yù)備]1.DES算法有什么特點(diǎn)?算法中的哪些結(jié)構(gòu)保證了其混淆和擴(kuò)散的特性?2.AES算法的基本原理和特點(diǎn)。3.流密碼RC4的密鑰流生成以及S盒初始化過程。[實(shí)驗(yàn)內(nèi)容]1.分析DES、AES、RC4、SHA的實(shí)現(xiàn)過程。2.用程序設(shè)計(jì)語言將算法過程編程實(shí)現(xiàn)。3.完成
2、字符串?dāng)?shù)據(jù)的加密運(yùn)算和解密運(yùn)算輸入明文:Idolikethisbook輸入密鑰:cryption[實(shí)驗(yàn)步驟]1.預(yù)習(xí)DES、AES、RC4算法。2.寫算法流程,用程序設(shè)計(jì)語言將算法過程編程實(shí)現(xiàn)。3.輸入指定的明文、密鑰進(jìn)行實(shí)驗(yàn),驗(yàn)證結(jié)果。4.自己選擇不同的輸入,記錄輸出結(jié)果。寫出所編寫程序的流程圖和運(yùn)行界面、運(yùn)行結(jié)果。DES程序流程圖:輸入明文IP置換R0L0fK1⊕R1=L0⊕f(R0,K1)L1=R0經(jīng)過16輪相同運(yùn)算R16=L15⊕f(R15,K16)L16=R15IP逆置換密文DES運(yùn)行結(jié)果:AES程序流程圖:輪密鑰加逆字節(jié)代替逆行移位逆列混合輪密鑰
3、加逆字節(jié)代替逆行移位輪密鑰加逆列混合輪密鑰加逆字節(jié)代替逆行移位密文明文K0K1...Kn-1Kn種子密鑰K(K0Kn是K產(chǎn)生的輪密鑰)K0K1...Kn-1Kn輪密鑰加字節(jié)代替行移位輪密鑰加字節(jié)代替行移位列混合輪密鑰加字節(jié)代替行移位列混合輪密鑰加密文明文AES運(yùn)行結(jié)果:RC4流程圖:開始輸入明文輸入密鑰初始化S盒并打印i=0;j=0;i=(i+1)%256j=(j+s[i])%256交換Si,Sj;t=(s[i]+s[j])%256k=St;加密明文,并輸出加密后的密文解密,并輸出結(jié)束RC4運(yùn)行結(jié)果:[問題討論]1.在DES算法中有哪些是弱密鑰?哪些是半弱密
4、鑰?2.改變明文或密鑰中的一個(gè)比特值可能影響AES值中的多少比特?3.分析實(shí)驗(yàn)中在編輯、編譯、運(yùn)行等各環(huán)節(jié)中所出現(xiàn)的問題及解決方法?;卮饐栴}解:1>弱密鑰有以下幾種情況:全0;全1;一半為0,一半為1;半弱密鑰如下:E01FE01FE01FE01FFE01FE01FE01FE01E001E001F101F101FE1FFE1FFE01FE012>改變一個(gè)比特值最多改變4個(gè)AES值。3>在RC4實(shí)驗(yàn)中,為了將輸入的char型密鑰分個(gè)存儲(chǔ)進(jìn)數(shù)組中,剛開始我想把它轉(zhuǎn)化為string型,再存儲(chǔ),但是string型數(shù)據(jù)不能直接從鍵盤輸入,且最后也要轉(zhuǎn)換存儲(chǔ)在char型
5、數(shù)組中,但是都有各種問題,最后,直接定義char型數(shù)組,再直接向其中輸入數(shù)據(jù)。實(shí)驗(yàn)二公鑰密碼算法實(shí)驗(yàn)[實(shí)驗(yàn)?zāi)康腯1.掌握密碼學(xué)中常用的公鑰密碼算法RSA、ECC的算法原理。2.掌握RSA、ECC的算法流程和實(shí)現(xiàn)方法。[實(shí)驗(yàn)預(yù)備]1.RSA和ECC密碼系統(tǒng)所基于的數(shù)學(xué)難題是什么?2.RSA和ECC算法的基本原理。3.公鑰密碼系統(tǒng)可以取代對(duì)稱密碼系統(tǒng)嗎?4.RSA和ECC的實(shí)現(xiàn)過程。[實(shí)驗(yàn)內(nèi)容]1.分析RSA、ECC的實(shí)現(xiàn)過程。2.用程序設(shè)計(jì)語言將算法過程編程實(shí)現(xiàn)3.完成數(shù)據(jù)的加密運(yùn)算和解密運(yùn)算輸入明文:security輸入密鑰:cryption對(duì)ASCII碼進(jìn)
6、行加密和解密。[實(shí)驗(yàn)步驟]1.預(yù)習(xí)RSA、ECC算法。2.了解大素?cái)?shù)的生成、大數(shù)的運(yùn)算、公鑰、私鑰的生成。3.寫出算法流程,用程序設(shè)計(jì)語言將算法過程編程實(shí)現(xiàn)。4.輸入指定的明文和密鑰進(jìn)行實(shí)驗(yàn),驗(yàn)證結(jié)果。寫出所編寫程序的流程圖和運(yùn)行界面、運(yùn)行結(jié)果。程序流程圖:開始輸入兩個(gè)數(shù)素?cái)?shù)檢測(cè)N輸入公鈅eY檢測(cè)e與φ(pq)是否互素NY輸入明文加密算法,輸出,密文c=m^emodpq輸入密文解密算法,輸出,明文m=c^dmodpq結(jié)束運(yùn)行結(jié)果:[問題討論]1.總結(jié)算法的特點(diǎn),分析算法的安全性;2.分析實(shí)驗(yàn)中在編輯、編譯、運(yùn)行等各環(huán)節(jié)中所出現(xiàn)的問題及解決方法?;卮饐栴}解:1
7、>RSA是第一個(gè)既能用于數(shù)據(jù)加密,也能用于數(shù)字簽名的算法,它易于理解和操作,因而很流行。RSA的安全性依賴于大素?cái)?shù)n的因子分解難題,當(dāng)n足夠大時(shí),可使n的分解無法在多項(xiàng)式時(shí)間內(nèi)完成,因此p、q越大,安全性越高。但是當(dāng)用戶密鑰使用不當(dāng),或是攻擊者獲得e1、e2、n、c1、c2,共用模數(shù)n,根據(jù)c1=m^e1modn,c2=m^e2modn,若e1,e2互素,則有r*e1+s*e2=1,可以根據(jù)(c1^-1)^-r*(c2)^s=m^(r*e1+s*e2)=mmodn,從而得到明文m。RSA簽名算法亦可根據(jù)其指數(shù)的特點(diǎn)進(jìn)行攻擊,一般攻擊者是將某一信息做一下偽裝(
8、盲簽名思想),再擁有私鑰的實(shí)體簽署,經(jīng)過計(jì)算很容易得