資源描述:
《現(xiàn)代密碼學(xué)實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、中南大學(xué)現(xiàn)代密碼學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名文子龍學(xué)號(hào)0909081517專業(yè)班級(jí)信息安全0801班指導(dǎo)教師段桂華學(xué)院信息科學(xué)與工程學(xué)院完成時(shí)間2011年6月實(shí)驗(yàn)一密碼算法實(shí)現(xiàn)[實(shí)驗(yàn)?zāi)縟e]1.掌握公鑰密碼算法de基本原理,算法實(shí)現(xiàn)過程以及大數(shù)運(yùn)算de方法。2.掌握和理解DES算法、AES算法de原理。[實(shí)驗(yàn)內(nèi)容]1.分析RSA算法、DES算法和AES算法de原理與測(cè)試過程。2.寫出算法流程,用程序設(shè)計(jì)語(yǔ)言將算法過程編程實(shí)現(xiàn)。3.對(duì)輸入de數(shù)據(jù),驗(yàn)證加密和解密運(yùn)算。[實(shí)驗(yàn)步驟]一、RSA算法1.RSA算法及原理RSA公鑰密碼系統(tǒng)以其發(fā)明者R.Rivest,A.Shamir和L
2、.Adlemande三個(gè)姓de首個(gè)字母命名de。它是應(yīng)用最廣泛de公鑰密碼系統(tǒng)。不僅可以用于信息de機(jī)密性,還可用于數(shù)字簽名。其所依賴de是大整數(shù)因數(shù)分解問題。假設(shè)公鑰密碼系統(tǒng)使用N字符集。明文信息空間為-字符組組成de集合,密文信息空間為-字符組組成de集合。???RSA公鑰密碼系統(tǒng)de描述:???每個(gè)使用者產(chǎn)生各自de公鑰和私鑰???使用者A將作如下事情:???(1)隨機(jī)產(chǎn)生兩個(gè)不同de大素?cái)?shù)p和q,具有相同de階???(2)計(jì)算n=pq和???(3)隨機(jī)選取整數(shù)???(4)運(yùn)用廣義歐幾里得算法計(jì)算唯一de整數(shù),使得???(5)Ade公鑰是,私鑰是。2.RSA算
3、法加密解密過程???發(fā)送者B將明文信息加密后變成密文信息發(fā)送給接受者A,A解密。???(1)加密過程。發(fā)送者B將作如下事情:???a.得到確認(rèn)de接受者Ade加密公鑰(從認(rèn)證中心或電話本或信息公告欄等處得到)???b.將明文信息表示為整數(shù)。(要求以最有效de方式來(lái)表達(dá)信息)???c.計(jì)算整數(shù)???d.將整數(shù)c轉(zhuǎn)換成密文信息.???f.將密文信息發(fā)送給A.(可以在公開通道中傳遞,在不知道解密私鑰de情況下第三者無(wú)法破解密文信息)???(2)解密過程。為了將密文信息恢復(fù)為明文信息,接受者A將作如下事情:???a.將密文信息轉(zhuǎn)換成整數(shù)c.???b.運(yùn)用解密私鑰恢復(fù)整數(shù).?
4、??c.將整數(shù)c轉(zhuǎn)換成明文信息.3.RSA算法Java實(shí)現(xiàn)(1)RSA算法流程圖開始得到公鑰為n和e,私鑰為d得到公鑰為n和e,私鑰為d輸入大素?cái)?shù)p,q是否為素?cái)?shù)NY輸入公鑰e是否15、<=k;i++){if((t%i)==0){flag=false;breakouter;}}returnflag;}b.求兩個(gè)數(shù)de最大公約數(shù)publiclonggcd(longa,longb){longgcd;if(b==0)gcd=a;elsegcd=gcd(b,a%b);returngcd;}c.求乘法逆publicintgetValue(intx,inty){intyValue=y;int[][]c=newint[2][2];//cisthemultiplyofmatrix//xislessthanyif(x>y)x=x%y;inti=0;while(tru
6、e){intk=y%x;a[i]=(k-y)/x;i++;length++;if(k==0)break;else{inttemp;temp=x;x=y%x;y=temp;}}setValue();c=arrayList.get(0);for(intj=1;j0)returnc[0][1];elsereturnyValue-Math.abs(c[0][1])%yValue;}publicint[][]matrixMul(int[][]a,int[][]b)
7、{int[][]c=newint[2][2];for(inti=0;i<2;i++){for(intj=0;j<2;j++){for(intk=0;k<2;k++)c[i][j]+=(a[i][k]*b[k][j]);}}returnc;}二、DES算法1.DES算法及原理DES(TheDataEncryptionStandard)使用一個(gè)56位de密鑰以及附加de8位奇偶校驗(yàn)位,產(chǎn)生最大64位de分組大小。這是一個(gè)迭代de分組密碼,其中將加密de文本塊分成兩半。使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)