高 峰
(淮北市廣播電視臺 安徽 淮北 235000)
信息加密技術(shù)是信息安全技術(shù)的核心技術(shù),其主要目的是防止惡意攻擊者非法破壞系統(tǒng)中的機(jī)密信息。數(shù)據(jù)加密技術(shù)可以提高信息系統(tǒng)及數(shù)據(jù)的安全性和保密性,防止秘密數(shù)據(jù)被外部破譯所采用的主要技術(shù)之一。密碼學(xué)是研究通信安全保密的科學(xué),其目的是保護(hù)信息在信道上傳輸過程中不被他人竊取、解讀和利用,它主要包括密碼編碼學(xué)和密碼分析學(xué)兩個相互獨立又相互促進(jìn)的分支。前者研究將發(fā)送的信息(明文)變換成沒有密鑰不能解或很難解的密文的方法,而后者則研究分析破譯密碼的方法。
圖1 保密系統(tǒng)模型
著名的RSA公鑰密碼體制是在1975年由R.L.Rivest,A.Shamir和L.Adlemen三人共同提出。RSA是最具代表性的公鑰密碼體制。由于算法完善(既可用于數(shù)據(jù)加密,又可用于數(shù)字簽名),安全性良好,易于實現(xiàn)和理解,RSA己成為一種應(yīng)用極廣的公鑰密碼體制,也是目前世界上唯一被廣泛使用的公鑰密碼。在廣泛的應(yīng)用中,不僅它的實現(xiàn)技術(shù)日趨成熟,而且安全性逐漸得到證明。公鑰密碼體制保密系統(tǒng)如圖1所示。該系統(tǒng)應(yīng)當(dāng)滿足下述要求:
①即使達(dá)不到理論上是不可破解的,也應(yīng)當(dāng)是實際上是不可破解的。也就是說,從截獲的密文或某些己知明文密文對,要確定密鑰或任意明文在計算上是不可行的;
②保密系統(tǒng)的安全性應(yīng)依賴于密鑰,而不是依賴于密碼體制或算法本身的細(xì)節(jié)的安全性;
③加密解密算法實用于所有密鑰空間中的元素;
④系統(tǒng)應(yīng)該易于實現(xiàn)和使用方便。
RSA公開密鑰算法原理為:
選擇兩個互異的大質(zhì)數(shù)p和q(p和q必須保密,一般取1024位);
計算出 n=pq, z=(p-1)(q-1);
選擇一個比n小且與z互質(zhì)(沒有公因子)的數(shù)e;
找出一個d,使得ed-1能夠被z整除。其中,ed=1 mod(p-1)(q-1);
因為RSA是一種分組密碼系統(tǒng),所以公開密鑰=(n,e),私有密鑰=(n,d)。
在以上的關(guān)系式中,n稱為模數(shù),通信雙方都必須知道;e為加密運算的指數(shù),發(fā)送方需要知道;而d為解密運算的指數(shù),只有接收方才能知道。
將以上的過程進(jìn)一步描述如下:
公開密鑰:n=pq(p、q分別為兩個互異的大素數(shù),p、q必須保密),e 與(p-1)(q-1)互質(zhì);
私有密鑰:d=e-1{mod (p-1)(q-1)};
加密:C=Me(mod n),其中 M 為明文,C 為密文;
解密:M=Cd(mod n)=(Me)d(mod n)=Med(mod n)。
為了對字母表中的第M個字母加密,加密算法為C=Me(mod n),第C個字母即為加密后的字母。對應(yīng)的解密算法為M=Cd(mod n)。下面以一個簡單的例子進(jìn)行計算。
設(shè) p=5,q=7;
所以 n=pq=35,z=(5-1)(7-1)=24;
選擇e=5(因為5與24互質(zhì));
選擇 d=29(ed-1=144,可以被 24整除);
所以公開密鑰為(35,5),私有密鑰為(35,29)。
如果被加密的是26個字母中的第12個字母(L),則它的密文為:C=125(mod 35)=17,第 17 個字母為 Q,解密得到的明文為:M=1729(mod 35)=12。通過以上的計算可以看出,當(dāng)兩個互質(zhì)數(shù)p和q取的值足夠大時,RSA的加密是非常安全的。
自公鑰加密問世以來,學(xué)者們提出了許多種公鑰加密方法,它們的安全性都是基于復(fù)雜的數(shù)學(xué)難題。當(dāng)前最著名、應(yīng)用最廣泛的公鑰系統(tǒng)RSA,它的安全性是基于大整數(shù)素因子分解的困難性,而大整數(shù)因子分解問題是數(shù)學(xué)上的著名難題,至今沒有有效的方法予以解決。目前三種攻擊RSA算法的可能的方法為:
(1)強(qiáng)行攻擊:這包含對所有的私有密鑰都進(jìn)行嘗試,即遍歷法進(jìn)行搜索;
(2)數(shù)學(xué)攻擊:有幾種方法,實際上都等效于對兩個素數(shù)乘積的因子分解;
(3)定時攻擊:這依賴于解密算法的運行時間。
對于RSA強(qiáng)行攻擊的防范方式與其它密碼系統(tǒng)采用的方法相同,即采用一個大的密鑰,p和q的比特越多越好。因而隨著分解大整數(shù)方法的進(jìn)步及完善、計算機(jī)速度的提高以及計算機(jī)網(wǎng)絡(luò)的發(fā)展(可以使用成千上萬臺機(jī)器同時進(jìn)行大整數(shù)分解),作為RSA加解密安全保障的大整數(shù)要求越來越大。為了保證RSA使用的安全性,其密鑰的位數(shù)一直在增加,比如,目前一般認(rèn)為RSA需要1024位以上的字長才有安全保障。但是,密鑰長度的增加導(dǎo)致了其加解密的速度大為降低,硬件實現(xiàn)也變得越來越難以忍受,這對RSA的應(yīng)用帶來了很重的負(fù)擔(dān),對進(jìn)行大量安全交易的電子商務(wù)更是如此,從而使得其應(yīng)用范圍越來越受到制約。
對于數(shù)學(xué)攻擊,算法的發(fā)明者建議對p和q采用了許多限制:
(1)p和q的長度至少為10140的數(shù)量級;
(2)(p-1)和(q-1)都應(yīng)該包含大整數(shù)因子;
(3)gcd(p-1,q-1)應(yīng)該小。
雖然定時攻擊是一種嚴(yán)重的威脅,但是卻有簡單的防范措施可以采用,這包括:
(1)常數(shù)取冪時間:保證所有取冪操作在返回一個結(jié)果之前花費同樣多的時間。這是一個不大的更改,但是確實使算法性能下降;
(2)隨機(jī)延時:可以通過對取冪算法增加一個隨機(jī)延時來迷惑定時攻擊者,這樣可以得到更好的性能;
(3)盲化:在進(jìn)行取冪運算之前先用一個隨機(jī)數(shù)與密文相乘。這個處理防止了攻擊者了解計算機(jī)中正在處理的密文,因此就防范了對于定時攻擊來說關(guān)鍵的逐位分析。由于RSA方法的原理簡單,易于使用,是公鑰系統(tǒng)中最具有典型意義的方法,因此大多數(shù)使用公鑰密碼進(jìn)行加密和數(shù)字簽名的產(chǎn)品和標(biāo)準(zhǔn)使用的都是RSA算法。
在當(dāng)今的信息社會中,每天都有大量的信息在傳輸、交換、存儲和處理,而這些處理過程幾乎都要依賴強(qiáng)大的計算機(jī)系統(tǒng)來完成。一旦計算機(jī)系統(tǒng)發(fā)生安全問題,就可造成信息的丟失、篡改、偽造、假冒、失密,以及系統(tǒng)遭受搗亂、破壞等嚴(yán)重后果,輕者造成計算機(jī)系統(tǒng)運行效率低下,重者造成計算機(jī)系統(tǒng)的徹底癱瘓以及財產(chǎn)損失。如何保證計算機(jī)系統(tǒng)的安全是當(dāng)前一個需要立即解決的十分嚴(yán)峻的問題,因此對加密算法的研究需要更深入更徹底的進(jìn)行。
[1]陳運.基于乘同余對稱性的快速RSA算法的改進(jìn)[J].電子科技大學(xué)學(xué)報,1997.
[2]黃元飛,陳麟,唐三平.信息安全與加密解密核心技術(shù)[M].上海:浦東電子出版社,2001.
[3]馮登國,裴定一.密碼學(xué)引導(dǎo)[M].北京:科學(xué)出版社,1999.
[4]盧開澄.計算機(jī)密碼學(xué)[M].2版.北京:清華大學(xué)出版社,1998.
[5]王育民,劉建偉.通信網(wǎng)的安全理論與技術(shù)[M].西安:電子科技大學(xué)出版社,1999.
[6]Stinson D R.密碼學(xué)原理與實踐[M].北京:電子工業(yè)出版社,2003.
[7]周玉沽,馮登國.公開密鑰密碼算法及其快速實現(xiàn)[M].北京:國防工業(yè)出版社,2002.