資源描述:
《中南大學(xué)現(xiàn)代密碼學(xué)實(shí)驗(yàn)報(bào)告》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、現(xiàn)代密碼學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名代巍學(xué)號0909121615專業(yè)班級信息安全1201指導(dǎo)教師段桂華學(xué)院信息科學(xué)與工程學(xué)院完成時(shí)間2014年5月實(shí)驗(yàn)一對稱密碼算法實(shí)驗(yàn)[實(shí)驗(yàn)?zāi)康腯1.掌握密碼學(xué)中經(jīng)典的對稱密碼算法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ì)語言將算法過程
2、編程實(shí)現(xiàn)。3.完成字符串?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算法1.DES算法及原理DES密碼實(shí)際上是Lucifer密碼的進(jìn)一步發(fā)展。它是一種采用傳統(tǒng)加密方法的區(qū)組密碼。它的算法是對稱的,既可用于加密又可用于解密。美國國家標(biāo)準(zhǔn)局1973年開始研究除國
3、防部外的其它部門的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達(dá)到的目的通常稱為DES密碼算法要求主要為以下四點(diǎn):提供高質(zhì)量的數(shù)據(jù)保護(hù),防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改;具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時(shí)又要便于理解和掌握DES密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ)實(shí)現(xiàn)經(jīng)濟(jì),運(yùn)行有效,并且適用于多種完全不同的應(yīng)用。目前在這里,隨著三金工程尤其是金卡工程的啟動,DES算法在POS、ATM、磁卡及智能
4、卡(IC卡)、加油站、高速公路收費(fèi)站等領(lǐng)域被廣泛應(yīng)用,以此來實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保密,如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認(rèn)證、金融交易數(shù)據(jù)包的MAC校驗(yàn)等,均用到DES算法。DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。DES算法是這樣工作的:如Mode為加密,則用Key去把數(shù)據(jù)Data進(jìn)行加密,生成Data的密碼形式(64位)作為DES的輸出結(jié)果;如Mo
5、de為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。在通信網(wǎng)絡(luò)的兩端,雙方約定一致的Key,在通信的源點(diǎn)用Key對核心數(shù)據(jù)進(jìn)行DES加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點(diǎn),數(shù)據(jù)到達(dá)目的地后,用同樣的Key對密碼數(shù)據(jù)進(jìn)行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴Mㄟ^定期在通信網(wǎng)絡(luò)的源端和目的端同時(shí)改用新的Key,便能更進(jìn)一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融交易網(wǎng)絡(luò)的流行做法。DES
6、算法流程圖子密鑰產(chǎn)生流程圖2.DES算法加密解密過程(1)加密過程。a.初始置換。DES的第一階段包括64位分組的置換,改變每個(gè)分組中位的順序。術(shù)語置換使用其嚴(yán)格的數(shù)學(xué)意義;只改變了順序。這64位數(shù)據(jù)現(xiàn)在被分成兩半:L0(左半部分)和R0(右半部分)。下標(biāo)0說明是原始的數(shù)據(jù)。在DES算法第二階段的每次循環(huán)后,這些下標(biāo)加1。b.循環(huán)移位(16次)一種根據(jù)密鑰,并且依賴于表格的算法。這種操作通常被稱為數(shù)據(jù)移位。這個(gè)算法要重復(fù)16次,但由于每次移位都使用密鑰的不同子分組,因此每次移位的操作各不相同。密鑰的子分組由另一組表格和表格的移位算法來
7、確定。在每次循環(huán)以后,L(左半部分)和R(右半部分)的下標(biāo)依次加一。第16次循環(huán)的結(jié)果被稱為預(yù)輸出。c.逆置換DES的最后一個(gè)階段包括64位分組的置換,改變每個(gè)分組中位的順序,這與第1階段的操作類似。這次置換的輸出結(jié)果就是密文。(2)解密過程DES的解密過程和加密過程相同,只是在解密過程中將子密鑰的使用順序顛倒。3.DES算法C++實(shí)現(xiàn)模塊化設(shè)計(jì)(囿于篇幅,舉幾個(gè)代表的例子)(1)二進(jìn)制轉(zhuǎn)換(將輸入的字符串轉(zhuǎn)化為比特?cái)?shù)組)voiderjinzhi(charz[8],int*q){charch;inti,j,a=7;for(i=0;i<
8、8;i++){ch=z[i];for(j=0;j<8;j++){*(q+a)=ch%2;ch=ch/2;a--;}a=a+16;}for(i=0;i<=63;i++){if(i%8==0)printf("");print