RSA加解密過程及實(shí)現(xiàn).doc

RSA加解密過程及實(shí)現(xiàn).doc

ID:49438279

大?。?47.50 KB

頁數(shù):6頁

時(shí)間:2020-03-01

RSA加解密過程及實(shí)現(xiàn).doc_第1頁
RSA加解密過程及實(shí)現(xiàn).doc_第2頁
RSA加解密過程及實(shí)現(xiàn).doc_第3頁
RSA加解密過程及實(shí)現(xiàn).doc_第4頁
RSA加解密過程及實(shí)現(xiàn).doc_第5頁
資源描述:

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

1、********************本科生作業(yè)********************蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院2017年春季學(xué)期信息安全課程專業(yè):物聯(lián)網(wǎng)工程姓名:學(xué)號(hào):授課教師:郭顯成績:RSA加解密過程及其實(shí)現(xiàn)1.RSA概述1.1RSA算法RSA加密算法是一種最常用的非對(duì)稱加密算法,CFCA在證書服務(wù)中離不了它。在公鑰加密標(biāo)準(zhǔn)和電子商業(yè)中,RSA被廣泛使用。RSA算法使用乘方運(yùn)算,明文以分組為單位進(jìn)行加密,每個(gè)分組的二進(jìn)制值均小于,也就是說,分組的大小必須小于或等于位,在實(shí)際應(yīng)用中,分組的大小位,其中。

2、對(duì)明文分組M和密文分組C,加密和解密過程如下:其中收發(fā)雙方均已知n,發(fā)送方已知e,只有接收方已知d,因此公鑰加密算法的公鑰為PU={e,n},私鑰為PR={d,n}。該算法要能做公鑰加密,必須滿足以下條件:(1)可以找到e,d,n,使得對(duì)所有的M

3、是私鑰。是秘密的。Alice將她的公鑰傳給Bob,而將她的私鑰藏起來。圖1RSA加密過程2.實(shí)例描述(1)選擇兩個(gè)素?cái)?shù),。(2)計(jì)算。(3)計(jì)算。(4)選擇使其與互素且小于,這里選擇。(5)確定使得且。因?yàn)椋???衫脭U(kuò)展的歐幾里得算法來計(jì)算。所得的公鑰、私鑰。該例說明了輸入明文時(shí)這些密鑰的使用情況。加密時(shí)需計(jì)算。利用模算術(shù)的性質(zhì),我們?nèi)缦掠?jì)算:解密時(shí),我們計(jì)算3.RSA算法的安全性在RSA密碼應(yīng)用中,公鑰是被公開的,即和的數(shù)值可以被第三方竊聽者得到。破解RSA密碼的問題就是從已知的和的數(shù)值(等于),想法求出的

4、數(shù)值,這樣就可以得到私鑰來破解密文。從上文中的公式:或我們可以看出。密碼破解的實(shí)質(zhì)問題是:從的數(shù)值,去求出和。換句話說,只要求出和的值,我們就能求出的值而得到私鑰。當(dāng)和是一個(gè)大素?cái)?shù)的時(shí)候,從它們的積去分解因子和,這是一個(gè)公認(rèn)的數(shù)學(xué)難題。比如當(dāng)大到1024位時(shí),迄今為止還沒有人能夠利用任何計(jì)算工具去完成分解因子的任務(wù)。然而,雖然RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià)。即RSA的重大缺陷是無法從理論上把握它的保密性能如何。此外,RSA的缺點(diǎn)還有:A)產(chǎn)生密鑰很麻煩,

5、受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長度太大,為保證安全性,至少也要600bits以上,使運(yùn)算代價(jià)很高,尤其是速度較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí);且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。因此,使用RSA只能加密少量數(shù)據(jù),大量的數(shù)據(jù)加密還要靠對(duì)稱加密算法。4.程序代碼#includeintrsa(inta,intb,intc){intr=1;b=b+1;while(b!=1){r=r*a;r=r%c;b--;}printf("%d",r);ret

6、urnr;}voidmain(){intp,q,e,d,m,n,t,c,r;chars;printf("請輸入p,q:");scanf("%d%d",&p,&q);n=p*q;printf("n的值是%4d",n);t=(p-1)*(q-1);//歐拉函數(shù)printf("t的值是%4d",t);printf("請輸入e:");scanf("%d",&e);if(e<1

7、

8、e>t){printf("e出錯(cuò),請重新輸入");scanf("%d",&e);}d=1;while(((e*d)%t)!=1)d++;

9、printf("thencaculateoutthatthedis%d",d);printf("加密請輸入1");printf("解密請輸入2");scanf("%d",&r);switch(r){case1:printf("輸入要加密的明文數(shù)字m:");/*輸入要加密的明文數(shù)字*/scanf("%d",&m);c=rsa(m,e,n);printf("其密碼是%d",c);break;case2:printf("輸入要解密的密文數(shù)字c:");/*輸入要解密的密文數(shù)字*/scanf("%d",&c

10、);m=rsa(c,d,n);printf("其密碼是%d",m);break;}}5.程序測試結(jié)果圖2RSA加密圖3RSA解密總結(jié):通過c語言的程序?qū)崿F(xiàn)對(duì)RSA算法的理解加深了。

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(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)完成后未能成功下載的用戶請聯(lián)系客服處理。