RSA加密算法之雙表體制

RSA加密算法是比較完善的公開的密鑰算法,由于其安全強度高,使用方便,所以受到廣泛的應(yīng)用。其安全性依賴于大素數(shù)的選擇,但大素數(shù)產(chǎn)生技術(shù)的限制和RSA冪乘運算的大時間開銷,提出一種基于雙表體制的RSA加密算法。

一、RSA加密算法研究現(xiàn)狀

1、加密算法的研究現(xiàn)狀

目前應(yīng)用比較廣泛的兩種加密算法是對稱加密算法和非對稱加密算法,對稱加密算法的密鑰管理是一個復(fù)雜的過程,密鑰的管理直接決定著它的安全性。非對稱加密算法是解決密鑰管理工作的有力工具,但非對稱加密算法的運行速度比對稱加密算法要慢。常見的加密算法有DES、RSA、AES、MD5、新型橢圓算法ECC等。RSA算法是一種支持變長密鑰的公共密鑰算法,盡管RSA的很多特性并不是十分理想,但迫于信息安全的實際需要,許多重要信息系統(tǒng)還是采用RSA作為基礎(chǔ)加密機制。

2、RSA加密算法

對稱加密算法(DES)和非對稱加密算法(RSA)是目前應(yīng)用最廣泛的加密算法,DES加密算法的安全性在于密鑰的保護,而RSA加密算法被普遍認為是現(xiàn)今最優(yōu)秀的公鑰方案之一。RSA加密算法的理論基礎(chǔ)是一種特殊的可逆模指數(shù)運算,其算法描述如下:

①選擇兩個互異的強素數(shù)p、q (p、q保密);

②計算出n=p*q,ψ(n)=(p一1)*(q-1);ψ(n)是n的歐拉函數(shù)值,(n公開,ψ(n)保密);

③隨機選一整數(shù)e,滿足1<e<ψ(n),且qcd(ψ(n),e)=1;(e公開);

④計算d,滿足d*e≡1(modψ(n))d是e在模ψ(n)下的乘法逆元,由于e與ψ(n)互素,由模計算可知,它的乘法逆元一定存在;

⑤以(e,n)為公鑰,(d,n)為密鑰,銷毀p,q,ψ(n)。

加密算法:先將明文比特分組C≡Me( modn),其中M為明文,C為密文。

解密算法:M= Cd( mod n)。

目前RSA加密算法的安全性主要集中在參數(shù)的選擇上,一般都采用單表體制加密,所謂單表體制加密就是每個字符的加密都是獨立的,前后密文之間沒有任何的聯(lián)系,所以,在明文中相同的字符加密出來的密文也是一樣的,這樣的密文就很容易被概論攻擊法破譯。

RSA大素數(shù)的選擇以及RSA加密算法冪乘的大時間開銷的特性會直接影響加解密的性能,因此,提出基于雙表體制的RSA加密算法。

二、改進的加密算法

1、RSA的雙表體制加密法

RSA加密算法參數(shù)的選擇直接影響著密文的安全性,如果P、Q選的數(shù)很大,由于RSA算法采用的是冪乘運算,那么加解密算法的時間開銷會很大。加密土具完成對Web文件的加密,瀏覽器完成對文件的解密,大量的時間開銷會嚴重影響瀏覽器網(wǎng)頁的顯示。在RSA參數(shù)選擇相對安全合理的前提下,實現(xiàn)加密算法的時候由單表體制加密改成雙表體制加密,這樣在一定程度上會增加破譯的難度。所謂雙表體制加密就是指一個字符的密文要受到它前一個字符的影響,即在加密的時候明文字符要加上前一個字符明文ASCII碼的中間幾位再加上前一個字符加密的結(jié)果的后幾位,三者相加之和去進行模運算,解密的時候就作相應(yīng)逆運算可以解決。

采用雙表體制加密的時候由于受到前一個字符的影響,相同的字符加密出來的結(jié)果是不一樣的,這樣概論攻擊法就很難進行破譯了。加密算法中字符的加密既受到了密文的影響也受到了前一個字符明文的影響,假設(shè)前一個字符解密出錯,那么后面的所有的字符就很難正確地解出結(jié)果,給破譯密文帶來了一定的難度。

算法描述:根據(jù)加密算法公式C≡Me( mod n),假設(shè)Me≡(m+x),m是指字符明文的ASCII碼值,石的取值為前一個字符明文ASCII碼的中間幾位加上和前一個字符密文的后幾位之和:

∵(m + X)e( mod rz)≡C

∴(m +x)ed(mod rz)≡Cd

∵M7≡(m+x)

∴Med (mod n)≡Cd

又∵d*e≡1(modψ(n))

由此可以推出cd≡Muwx,d(modn)

在M'和n互為素數(shù)以及不為素數(shù)的情況下,由歐拉定理得MWXn—1(mod n)

都可以推斷出Muwx,d(modn)

∴cd≡M’(mod n)

∴Cd≡(m+x)(modx)

∴m=Cd≡(mod n)-x;

算法中的菇是前一個字符明文ASCII碼的中間幾位加上和密文的后幾位,比如單純的概論攻擊法由n=p*q估計(p+q )/2≈(n)1/2,又可知[(p +q )/2]1/2-n=[(p-q )/2]1/2,兩者聯(lián)立方程組得到的p.q,求出私鑰也不能準(zhǔn)確的破譯出密文。通過高精度精確計時,采集大量模擬計時樣本,過程中還必須抗干擾的計時攻擊法也很難精準(zhǔn)的破譯出來。

改進的加密算法流程圖如圖1所示。

RSA加密算法之雙表體制

2、改進后的RSA加密算法和Eclipse插件相結(jié)合的加密工具

加密工具是jar包形式的一個插件,將插件集成到Eclipse的開發(fā)環(huán)境中,可以通過菜單欄直接調(diào)用加密工具。加密工具以可視化的界面顯示,通過選擇控件選取要加密的文件或整個文件夾,直接點擊加密按鈕,直接完成對所選文件的加密。l插件式的加密工具方便;次開發(fā)人員的使用,顯示插件的Eclipse菜單欄如圖2所示。

RSA加密算法之雙表體制

3、實驗結(jié)果分析

加密系統(tǒng)完成以后對系統(tǒng)進行了如下的測試,測試結(jié)果如表1所示。

RSA加密算法之雙表體制

選擇了2組對照實驗數(shù)據(jù),實驗數(shù)據(jù)中采用的都是含有重復(fù)字符的明文,第一列是采用雙表體制的加密算法,加密后的密文中相同字符的明文加密出的密文是不一樣的,沒有規(guī)律可循。第二列采用的是單表體制的加密算法,從表中可以看出字符“中國夢”、“春之聲”重復(fù)出現(xiàn)的時候,加密出的密文是一致的。在密文中出現(xiàn)的字母是隨機產(chǎn)生的,不是加密算法計算出來的,是屬于混淆密文的一種手段。單表體制
的加密,可以通過重復(fù)出現(xiàn)的密文進行推測判斷并加以破譯。相比之下,雙表體制加密的密文的破譯難度就明顯增加。RSA加密算法的公鑰私鑰是在考慮了時間開銷的前提下選擇的,在采用雙表體制的情況下即使密文解密的時候被各種破譯手段破譯出私鑰以后,字符也是經(jīng)過在加工處理后加密的,不知道加密算法機制,沒有加密算法中的X,是無法在很短的時間內(nèi)正確解析出明文的。

小知識之歐拉定理

歐拉定理得名于瑞士數(shù)學(xué)家萊昂哈德·歐拉,該定理被認為是數(shù)學(xué)世界中最美妙的定理之一。歐拉定理實際上是費馬小定理的推廣。