RSA算法的實(shí)現(xiàn)

RSA算法的實(shí)現(xiàn)

ID:44811882

大?。?33.01 KB

頁數(shù):8頁

時(shí)間:2019-10-29

RSA算法的實(shí)現(xiàn)_第1頁
RSA算法的實(shí)現(xiàn)_第2頁
RSA算法的實(shí)現(xiàn)_第3頁
RSA算法的實(shí)現(xiàn)_第4頁
RSA算法的實(shí)現(xiàn)_第5頁
資源描述:

《RSA算法的實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、密碼學(xué)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)八、RSA算法的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康呐c意義掌握并實(shí)現(xiàn)RSA算法。二、實(shí)驗(yàn)環(huán)境Windowsxpsp2Microsoftvisualc++6.0三、實(shí)驗(yàn)原理1)非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對(duì),如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱加密算法。非對(duì)稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過程是:甲方生成一對(duì)密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰

2、的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專用密鑰對(duì)加密后的信息進(jìn)行解密。非對(duì)稱加密算法另一方面,甲方可以使用乙方的公鑰對(duì)機(jī)密信息進(jìn)行簽名后再發(fā)送給乙方;乙方再用自己的私匙對(duì)數(shù)據(jù)進(jìn)行驗(yàn)簽。[1]甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。非對(duì)稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要。非對(duì)稱密碼體制的特點(diǎn):算法強(qiáng)度復(fù)雜、安全性依賴于算法與密鑰但是由于其算法復(fù)雜,而使得加密解密速度沒有對(duì)稱加密解密的速度快。對(duì)稱密碼體制中只有一種密鑰,并且是非公開的,如果要解密就得讓對(duì)方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對(duì)稱密鑰體制有兩種密鑰

3、,其中一個(gè)是公開的,這樣就可以不需要像對(duì)稱密碼那樣傳輸對(duì)方的密鑰了。這樣安全性就大了很多。2)利用CC++實(shí)現(xiàn)RSA算法的加、解密運(yùn)算。具體包括:1)利用擴(kuò)展的EUCLID計(jì)算amodn的乘法逆元;2)Miller-Rabin素性測(cè)試算法對(duì)一個(gè)給定的大數(shù)進(jìn)行測(cè)試;3)實(shí)現(xiàn)的運(yùn)算,并計(jì)算;1)利用Fermat定理手工計(jì)算,并與3)計(jì)算的結(jié)果對(duì)比;2)實(shí)現(xiàn)RSA算法。并對(duì)"ILOVETHEPEOPLE'SREPUBLICOFCHINA"加解密。說明:為了方便實(shí)現(xiàn),分組可以小一點(diǎn),比如兩個(gè)字母一組。字母及其數(shù)字編碼字母及其數(shù)字編碼空格00N14A01O15B02P16C03Q17D04R18E05

4、S19F06T20G07U21H08V22I09W23J10X24K11Y25L12Z26M13一、實(shí)驗(yàn)代碼:#include#include#includeusingnamespacestd;intEuclid(inta,intn)//n大于a{intx,y,r;x=n;y=a;for(inti=0;;){if(y==0)returnx;if(y==1)returny;r=x%y;x=y;y=r;}}doubleextenEuclid(doublea,doublen)//利用擴(kuò)展的EUCLID計(jì)算amodn的乘法逆元{doublex1=1,

5、x2=0,x3=n,y1=0,y2=1,y3=a,Q;doublet1,t2,t3;for(inti=0;;){if(y3==0){returnx3;cout<<"noreverse"<b;unsignedintN=n-1;for(inti=0,j=1;

6、;i++){if(j>N)break;if((N>>i)&(unsignedint)1)b.push_back(1);elseb.push_back(0);j*=2;}//將n-1表示成二進(jìn)制形式for(intk=0;k=0;ii--){x=d;d=(d*d)%n;if(d==1&&x!=1&&x!=n-1)returnfalse;if(b[ii]==1)d=(d*a)%n;}if(d!=1)returnfalse;returntrue;}doubleq

7、uickindex1(doublea,doublem,doublen)//實(shí)現(xiàn)a^mmodn的運(yùn)算{vectorb;unsigneddoubleN=m;for(intii=0,j=1;;ii++){if(j>N)break;if((N>>ii)&(unsigneddouble)1)b.push_back(1);elseb.push_back(0);j*=2;}doublec=0,d=1;

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。