免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
RSA算法的改進(jìn)

1. RSA 算法概述

公開密鑰算法是在1976年由當(dāng)時(shí)在美國(guó)斯坦福大學(xué)的迪菲(Diffie) 和赫爾曼(Hellman)兩人首先發(fā)明的,但目前最流行的RSA 是由分別取自三位發(fā)明此算法的數(shù)學(xué)家RonaldRivest,Adi Shamir 和Len Adleman的名字的第一個(gè)字母來構(gòu)成的。[1]

RSA 已被國(guó)際上一些標(biāo)準(zhǔn)化組織如ISO、ITU 等作為標(biāo)準(zhǔn)采用,現(xiàn)在流行的PGP 也采用RSA 算法作為其解密和數(shù)字簽名算法。它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。

但RSA 的安全性一直未能得到理論上的證明。RSA 的安全性依賴于大數(shù)難于分解這一特點(diǎn)。據(jù)猜測(cè),從一個(gè)密鑰和密文推斷出明文的難度等同于分解兩個(gè)大素?cái)?shù)的積。并且 RSA的加密算法速度與對(duì)稱加密算法相比,其速度非常緩慢的。因此,研究快速的 RSA 算法是十分有意義的。至今,人們?cè)诖朔矫嬉呀?jīng)作了很多的研究,提出了許多快速的RSA 算法。其中分塊模冪算法[2],冪等價(jià)代換的改進(jìn)[3]及 SMM 算法[4]等都極大的提高了 RSA 加密算法的速度。

2. RSA 算法的基本原理

RSA 體制用戶i 的公開加密變換Ei 和保密的解密變換Di 的產(chǎn)生:(1)隨機(jī)選取素?cái)?shù)pi 和qi;(2)計(jì)算ni= piqi,Ф(ni)=(pi-1)(qi-1);(3)隨機(jī)選取整數(shù)ei 滿足(ei,Ф(ni)) =1;(4)利用歐幾里得算法計(jì)算di,滿足eidi≡1 MOD Ф(ni);(5)公開ni,ei 作為Ei,記為Ei=< ni,ei>,保密pi,qi,di,Ф(ni)作為Di,記為Di=。加密算法:c = Ei(m) = mei(MOD ni),解密算法:m=Di(c)=cdi(MOD ni),在RSA 算法中,包含兩個(gè)密鑰:加密密鑰PK 和解密密鑰SK,加密密鑰公開。[5]

3. RSA 算法的舉例

要對(duì)2 運(yùn)用RSA 算法進(jìn)行加密,因?yàn)镽SA 的原則是被加密的信息應(yīng)該小于p 和q 的較小者,因此取p=5, q=3,求得n=p*q=5*3=15,m=(p-1)*(q-1)=(5-1)*(3-1)=8,然后生成較小的數(shù)e,使e 與8 互質(zhì),2 不對(duì),3 是最小的,于是e=3 最后生成d,使d*e MOD m=1 , d*3 MOD8=1,d*3 除以8 余數(shù)為1,于是算出d=3,所以求出公鑰e=3,n=15.私鑰d=3,n=15.密鑰計(jì)算完畢。加密:c=pe%n=23%15=8%15=8, 于是密文為8. 把8 傳出去。同時(shí)應(yīng)把公鑰也傳出去,好在收到時(shí)知道對(duì)應(yīng)的是那個(gè)私鑰。解密過程:接收者收到密文和公鑰,找到對(duì)應(yīng)的私鑰:p=cd%n=83%15,經(jīng)過運(yùn)算,余數(shù)為2。

4.1 RSA 算法的改進(jìn)

由于RSA 算法是基于大數(shù)分解的理論,應(yīng)用了費(fèi)爾馬小定理[123123123],在兩個(gè)素?cái)?shù)qi 和pi 的乘積n 被分解是最主要的攻擊方法,因此提出了三重RSA 算法:用戶j 的公開加密變換Ej 和保密的解密變換Dj 的產(chǎn)生:

(1)隨機(jī)選取三個(gè)素?cái)?shù)pj、qj 和rj;

(2)計(jì)算nj= pj*qj*rj,Ф(nj)=(pj-1)(qj-1)(rj-1);

(3)隨機(jī)選取整數(shù)ej 滿足(ej,Ф(nj)) =1;

(4)利用歐幾里得算法計(jì)算dj,滿足ei*di≡1 MOD Ф(nj);

(5)公開nj,ej 作為Ej,記為Ej=< nj,ej>,保密pj,qj,rj,dj,Ф(nj)作為Dj,記為Dj=< pj,qj,rj,dj,Ф(nj)>。加密算法:c = Ej(m) = mej(MOD nj),解密算法:m = Dj(c) = cdj(MOD nj),在RSA 算法中,包含兩個(gè)密鑰:加密密鑰PK 和解密密鑰SK,加密密鑰公開。

由于三重的RSA 算法成立,原來的RSA 算法也成立,因此推斷N 重RSA 算法即:用戶x 的公開加密變換Ex 和保密的解密變換Dx 的產(chǎn)生:

(1)隨機(jī)選取N 個(gè)素?cái)?shù)p1、p2……pn;

(2)計(jì)算nx= p1*p2……*pn,Ф(nx)=(p1-1)*(p2-1)*……*(rj-1);

(3)隨機(jī)選取整數(shù)ex 滿足(ex,Ф(nx)) =1;

(4)利用歐幾里得算法計(jì)算dx,滿足ex*dx≡1 MOD Ф(nx);

(5)公開nx,ex 作為Ex,記為Ex=< nx,ex>,保密p1,p2,……,pn,Ф(nx)作為Dx,記為Dx=。加密算法:c = Ex(m) = mex(MOD nx),解密算法:m = Dx(c) =cdx(MOD nx),在N 重RSA 算法中,同樣也包含兩個(gè)密鑰:加密密鑰PK 和解密密鑰SK,加密密鑰公開。

下面對(duì)N 重RSA 算法給與證明。

應(yīng)用2.2中提出的定理1:

若p, q是相異質(zhì)數(shù), d*e==1 MOD (p- 1)(q- 1), a 是任意一個(gè)正整數(shù)b==aeMOD p*q,c==bdMOD p*q, 則c==a MOD p*q。

可以得出推論1:

若p1,p2,……,pn是相異質(zhì)數(shù), d*e==1 MOD (p1- 1)*(p2- 1)*……*(pn-1), a 是任意一個(gè)正整數(shù)b==aeMOD p1*p2*……*pn, c==bdMOD p1*p2*……*pn, 則c==a MODp1*p2*……*pn。

證明推論1的過程中過程如下:

由n(n>=2)個(gè)質(zhì)數(shù)時(shí),推論1成立。

當(dāng)n+1時(shí)d’*e’==1 MOD(p1- 1)*(p2- 1)*……*pn*(p(n+1)-1)a’是任意一個(gè)正整數(shù)

b’==a’e’MOD p1*p2*……*pn*p(n+1), ①

c’==b’d’MOD p1*p2*……*pn*p(n+1) ②

因此通過①②式可以得到方程組

由于里面的a’、b’、p1,p2,……,pn, p(n+1)都是已知數(shù),就c’是未知數(shù),所以可以求得c’==b’d’MOD p1*p2*……*pn*p(n+1)因此可以知道推論1 成立。

可以證明N 重RSA 算法的正確性,因?yàn)镹 重RSA 算法是正確的所以三重的RSA 算法想當(dāng)然是正確的。

4.2 RSA 改進(jìn)算法的性能

RSA 算法使用方便,尤其是公開密鑰的特征使得用戶在數(shù)據(jù)傳輸之前無需交換密鑰,就算是和多個(gè)用戶進(jìn)行秘密通信,也沒有必要記住所有的密鑰,N 個(gè)用戶通信,要有N 對(duì)密鑰,每個(gè)用戶只需記住自己的密鑰,并到公共存儲(chǔ)區(qū)去取得其他公鑰就可以了。但是由于RSA 算法的實(shí)現(xiàn)是以大素?cái)?shù)來為基礎(chǔ),依賴于計(jì)算機(jī)的速度和容量,效率比較低。根據(jù)統(tǒng)計(jì),對(duì)相同數(shù)據(jù)塊的加密,對(duì)稱算法比RSA 算法的效率要高幾十倍。

改進(jìn)的N 重RSA 算法中,由于所取得素?cái)?shù)比較多,取多少個(gè)也是有應(yīng)用N 重RSA 算法的用戶決定的,所以就可以把所取得素?cái)?shù)的大小取得小一點(diǎn),這樣就提高了計(jì)算機(jī)的運(yùn)算速度,加快了RSA 算法的運(yùn)算效率。由于N 重RSA 算法根本沒有違背RSA 算法,所以其安全性也是毋庸置疑的。

4.3 RSA 改進(jìn)算法舉例

要對(duì)2 運(yùn)用N=3 的N 重RSA 算法進(jìn)行加密,取p1=5, p2=3,p3=7,求得n=p1*p2*p3=105,m=(p1-1)*(p2-1)*(p3-1)=(5-1)*(3-1)*(7-1)=48,然后生成較小的數(shù)e,使e 與48 互質(zhì),2 不對(duì),5是最小的,于是e=5 最后生成d,使d*e MOD m=1 , d*5 MOD 48=1,d*3 除以48 余數(shù)為1,于是算出d=29 , 所以求出公鑰e=5,n=105. 私鑰d=29,n=105. 密鑰計(jì)算完畢。加密:c=pe%n=25%105=8%105=8, 于是密文為8。把8 傳出去。同時(shí)應(yīng)把公鑰也傳出去,好在收到時(shí)知道對(duì)應(yīng)的是那個(gè)私鑰。解密過程:接收者收到密文和公鑰,找到對(duì)應(yīng)的私鑰:p=cd%n=829%105,經(jīng)過運(yùn)算,余數(shù)為2。

上面運(yùn)用了N=3 時(shí)的N 重RSA 算法,在這種非對(duì)稱的RSA 加密算法中,充分利用了大數(shù)分解的思想,這樣在改進(jìn)的N 重RSA 算法中加進(jìn)了多個(gè)是相乘,由于這樣每次都有可能有不同多個(gè)數(shù)得出的結(jié)論來完成的加密密鑰和公鑰的計(jì)算,所以在更大程度上也保證的算法的安全性和保密性。

5. 小結(jié)

本文是在對(duì)傳統(tǒng)的RSA 算法的充分研究和深刻理解上,對(duì)RSA 算法效率低的問題進(jìn)行=了改進(jìn)得到了基于原有算法的N 重RSA 算法。在增加了素?cái)?shù)的情況下降低了所選素?cái)?shù)的個(gè)數(shù),以達(dá)到小數(shù)相乘運(yùn)算速度比大數(shù)相乘效率高的特點(diǎn)。由于N 重RSA 算法還是在原有的RSA 算法的基礎(chǔ)上,因此它的安全性和保密性都和原來的RSA 算法是一樣的,因此在應(yīng)用上還是和原有的RSA 算法是相同的,所以N 重RSA 算法是否等同于大數(shù)分解依然不能得到理論上的證明。在N重RSA算法中,傳送保密信息的主要工作密鑰參數(shù)p1, p2……pn, ex, dx,都具有一次使用的特征,即每次通信使用到的這些工作密鑰參數(shù)都在隨機(jī)變化。在某種意義上,它接近于一次一密的密碼體制[6],顯然它的保密性要遠(yuǎn)優(yōu)于工作密鑰在一個(gè)較長(zhǎng)時(shí)間內(nèi)固定不變的原有的RSA 算法。并且減少了每一個(gè)隨機(jī)產(chǎn)生素?cái)?shù)的位數(shù),因此也在一定義以上加快了RSA 算法計(jì)算機(jī)實(shí)現(xiàn)的效率問題。但是由于在幾個(gè)小素?cái)?shù)相乘后得到的還是一個(gè)較大的數(shù),所以還是沒有從根本上解決RSA 算法基本只用于較少的數(shù)字加密,例如數(shù)字簽名上的問題。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C語言實(shí)現(xiàn)RSA加解密算法
RSA加密算法初探
第5章 加密與認(rèn)證技術(shù)
新手入門-密碼知識(shí)
RSA算法
RSA算法之原理篇
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服