摘要:本文提出了一種基于混合密鑰的數(shù)字簽名方案,簽名方案采用橢圓曲線的數(shù)字簽名算法,通過(guò)一次簽名和驗(yàn)證的過(guò)程為例,說(shuō)明了在弱計(jì)算能力的移動(dòng)終端進(jìn)行復(fù)雜的簽名運(yùn)算和簽名驗(yàn)證的過(guò)程,該方案保證了移動(dòng)網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)傳輸?shù)陌踩院屯暾浴?/p>
關(guān)鍵詞:橢圓曲線;無(wú)線網(wǎng)絡(luò);數(shù)字簽名;混合密鑰
中圖分類號(hào):TP309文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)25-1596-03
The Applications of Elliptic Curves Digital Signature on the Wireless Network
XIAO Lei1, CHEN Rong-shang2
(1.Depatment of Computer, Xiamen University of Technology, Xiamen 361024, Chian; 2.Computer Center, Xiamen University of Technology, Xiamen 361024, China)
Abstract: The paper introduces a schemes about digital signature technology of mix-key. ECC digital signature Algorithm is applied to schemes. Through an example of the signature and verification process shows that the schemes is possible on the wireless terminal having weak processing capacity, guarantee the safety and integrity of data in wireless communication environment.
Key words: elliptic curves; wireless network; digital signature; mixed cryptographic key
1 引言
隨著3G技術(shù)的逐漸成熟和推廣,越來(lái)越多的用戶接受這一技術(shù)并使用它,3G業(yè)務(wù)將不再局限于簡(jiǎn)單的通話和傳遞短信這樣一些基礎(chǔ)業(yè)務(wù),用戶將使用它來(lái)完成更多的操作,如移動(dòng)銀行,移動(dòng)炒股,移動(dòng)繳費(fèi)等等;然而在移動(dòng)通信網(wǎng)絡(luò)中,移動(dòng)站(MS,Mobile Station)與固定網(wǎng)絡(luò)之間的所有通信都是通過(guò)無(wú)線接口來(lái)傳輸?shù)模鵁o(wú)線接口是開放的,任何人只要有適當(dāng)?shù)慕邮赵O(shè)備就可以對(duì)其進(jìn)行攻擊。在個(gè)人通訊系統(tǒng)中,無(wú)線開放訪問(wèn)會(huì)在移動(dòng)終端和有線網(wǎng)的無(wú)線連接處暴露通信的內(nèi)容[5]。這種開放性,提供給入侵者獲取偽裝成合法用戶查看數(shù)據(jù)的機(jī)會(huì)。面對(duì)這種狀況,移動(dòng)設(shè)備中傳輸?shù)男畔⒌陌踩詫⑹艿揭欢ǖ目简?yàn),由于設(shè)備存儲(chǔ)容量小,CPU運(yùn)算能力差。必須選擇一種合適的安全手段來(lái)保證無(wú)線網(wǎng)絡(luò)中的數(shù)據(jù)的安全性。
2 安全方案
要保證無(wú)線環(huán)境中的數(shù)據(jù)的安全性,一是保證數(shù)據(jù)在傳輸過(guò)程中不被第三方識(shí)別,其次是保證通信雙方身份認(rèn)證的真實(shí)可靠性。針對(duì)無(wú)線網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)的安全性需求,本文采用基于混合密鑰的數(shù)字簽名技術(shù)來(lái)保證安全性要求。該技術(shù)能夠保證網(wǎng)絡(luò)中發(fā)送方的抗否認(rèn)性,接收方的不可抵賴性,以及數(shù)據(jù)的完整性。數(shù)字簽名是基于公鑰密碼體制的網(wǎng)絡(luò)安全技術(shù);第六屆國(guó)際密碼學(xué)會(huì)議對(duì)應(yīng)用于公鑰密碼系統(tǒng)的加密算法推薦了兩種:基于大整數(shù)因子分解問(wèn)題(IFP)的RSA算法和基于橢圓曲線上離散對(duì)數(shù)計(jì)算問(wèn)題(ECDLP)的ECC算法。RSA算法的特點(diǎn)之一是數(shù)學(xué)原理簡(jiǎn)單、在工程應(yīng)用中比較易于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對(duì)較低,它的破譯難度基本上是亞指數(shù)級(jí)的;ECC算法的數(shù)學(xué)理論非常深?yuàn)W和復(fù)雜,在工程應(yīng)用中比較難于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對(duì)較高。它的破譯或求解難度基本上是指數(shù)級(jí)的。具有安全性高、密鑰量小、靈活性好的特點(diǎn)。關(guān)于RSA與ECC同等安全長(zhǎng)度下的密鑰長(zhǎng)度160位ECC與1024位RSA和1024位離散對(duì)數(shù)系統(tǒng)的計(jì)算開銷的比較[3]。如果應(yīng)用到內(nèi)存較小,存儲(chǔ)器存儲(chǔ)容量不足,計(jì)算能力弱時(shí),處理速度慢的無(wú)線終端時(shí),RSA則會(huì)受到內(nèi)存容量的限制,ECC則不然,其密鑰長(zhǎng)度短的優(yōu)點(diǎn)會(huì)顯示出RSA無(wú)法比擬的優(yōu)越性。其優(yōu)點(diǎn)如下:
1) 安全性能更高:攻擊有限域上的離散對(duì)數(shù)問(wèn)題的方法有指數(shù)積分法,其運(yùn)算復(fù)雜度為 ■, 其中p是摸數(shù),是素?cái)?shù)。但是這種方法對(duì)橢圓曲線的離散對(duì)數(shù)問(wèn)題并不有效; 如160位ECC與1024位RSA、DSA有相同的安全強(qiáng)度;
2) 計(jì)算量小,處理速度快,在私鑰的處理速度上(解密和簽名),ECC遠(yuǎn)比RSA、DSA快得多;
3) 存儲(chǔ)空間占用小,ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA、DSA相比要小得多,所以占用的存儲(chǔ)空間小得多;
4) 帶寬要求低,使得ECC具有更廣泛的應(yīng)用前景;
5) 算法靈活性好:在有限域一定的情況下,其上的循環(huán)群就定了,而有限域的橢圓曲線可以通過(guò)改變曲線的參數(shù),能夠得到不同的曲線,從而形成不同的循環(huán)群。因此,橢圓曲線具有豐富的群結(jié)構(gòu)和多選擇性。正是由于它具有豐富的群結(jié)構(gòu)和多選擇性,并可在RSA/DSA體制中同樣安全性的前提下大大縮短密鑰的長(zhǎng)度。橢圓曲線具有安全性高,密鑰量小、算法靈活性好等特點(diǎn),而無(wú)線終端由于其存儲(chǔ)量小,處理速度慢等特點(diǎn),因此,橢圓曲線的加密算法非常適合于應(yīng)用到無(wú)線加密技術(shù)中[2,4]。
3 數(shù)字簽名過(guò)程
本文以一個(gè)汽車用戶通過(guò)手機(jī)繳納養(yǎng)路費(fèi)的過(guò)程為例,來(lái)說(shuō)明數(shù)字簽名的整個(gè)實(shí)現(xiàn)過(guò)程。移動(dòng)網(wǎng)絡(luò)環(huán)境基本的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示,從圖中可以看出交費(fèi)涉及到三方:用戶U、運(yùn)營(yíng)商M、稽查局G,用戶通過(guò)手機(jī)短信或者語(yǔ)音的方式提交養(yǎng)路費(fèi),本文以短信為例,短信的發(fā)送都分為兩部分,一部分是發(fā)送,在手機(jī)用戶發(fā)送短信時(shí),這部分是上行短信;一部分是確認(rèn),在手機(jī)用戶發(fā)送短信時(shí),這部分是下行短信。
■
圖1 養(yǎng)路費(fèi)手機(jī)服務(wù)平臺(tái)系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
這里就以用戶執(zhí)行一次交費(fèi)操作為例來(lái)討論用戶和運(yùn)營(yíng)商之間數(shù)字簽名的實(shí)現(xiàn)過(guò)程。
3.1 生成數(shù)字簽名的過(guò)程
用戶U ■ 運(yùn)營(yíng)商M
用戶首先需要向運(yùn)營(yíng)商傳送一個(gè)交費(fèi)信息D(信息D包含交費(fèi)車輛車牌號(hào)、交費(fèi)金額、交費(fèi)時(shí)間的字符串)本文就用戶和運(yùn)營(yíng)商之間的信息傳遞過(guò)程做一個(gè)詳細(xì)的介紹。
1) 用戶U將要發(fā)送的信息通過(guò)MD5的單向函數(shù)生成數(shù)字摘要D1,采用橢圓曲線的加密算法用私鑰加密D1生成用戶U的數(shù)字簽名Sg1;
2) 用戶U利用對(duì)稱加密算法(DES)加密要發(fā)送的消息EData;
3) 用戶將Sg1和EData發(fā)送給接收方。
具體操作過(guò)程如下:
Sg1(數(shù)字簽名),EData
用戶U■運(yùn)營(yíng)商M
從該簽名過(guò)程我們發(fā)現(xiàn),本方案不僅采用的橢圓曲線的加密算法來(lái)完成信息的數(shù)字簽名,為了保證數(shù)據(jù)在傳輸過(guò)程中的安全性,使得在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)是以密文的方式傳輸,采用了 DES加密算法來(lái)加密傳輸?shù)臄?shù)據(jù)。采用Diffie-Hellman在橢圓曲線上的密鑰交換方法來(lái)實(shí)現(xiàn)收發(fā)雙方對(duì)稱密鑰的傳遞,該密鑰傳遞的過(guò)程如下:
(1) 構(gòu)建一個(gè)橢圓曲線方程:這里的橢圓曲線是定義在二進(jìn)制域上的橢圓曲線,需要確定六個(gè)參量:T=(p,a,b,G,n,h)。(其中a,b,p是用來(lái)確定橢圓曲線方程Y2+XY=X3+aX2+b,G為基點(diǎn),n為點(diǎn)G的階,h是橢圓曲線上所有點(diǎn)的個(gè)數(shù)m與n相除的整數(shù)部分)參量值的選擇,直接影響了加密的安全性。參量值一般要求滿足以下幾個(gè)條件:一是p越大越安全,但越大,計(jì)算速度會(huì)變慢,200位左右可以滿足一般安全要求;二是p≠n×h;pt≠1(mod n),1≤t<20;4a3+27b2(mod p)≠0;n為素?cái)?shù);h≤4。橢圓曲線上的所有點(diǎn)構(gòu)成了Abel群Ep(a,b)。
2) 用戶U選取一個(gè)整數(shù)Na(Na 3) 接收方運(yùn)營(yíng)商也采用類似的方法選取自己的私鑰Nb和公鑰PB。 4) 發(fā)送方和接收方分別由K=NaPB,K=NbPA產(chǎn)生出雙方共享的秘密鑰。 5) 通過(guò)上面的幾個(gè)步驟,就得到了通信雙方共同的對(duì)稱密鑰K,該密鑰匙k用來(lái)作為對(duì)稱加密算法的密鑰,如果攻擊者想獲得K,則必須通過(guò)PA和G求出Na,或由Pb和G求出Nb,這就需要求解橢圓曲線上的離散對(duì)數(shù),因此是不可行了。 3.2 基于橢圓曲線的數(shù)字簽名實(shí)現(xiàn)過(guò)程 算法描述: 用戶U需要對(duì)向運(yùn)營(yíng)商M發(fā)送的信息進(jìn)行數(shù)字簽名,簽名過(guò)程如下所示例: 用戶U方的過(guò)程: 1) 確定安全的單向散列函數(shù),本系統(tǒng)中選擇的是MD5算法的單向散列函數(shù),定義橢圓曲線方程,在上一部分已經(jīng)做了詳細(xì)的介紹,也就是確定參數(shù) T=(p,a,b,G,n,h); 2) 建立密鑰對(duì)(d,Q),其中d是私鑰,Q=dG是公鑰; 3) 假設(shè)接收方運(yùn)營(yíng)商已經(jīng)通過(guò)安全的方式獲得了公鑰Q,并且雙方事先已經(jīng)約定了使用的單向散列函數(shù)即為MD5的單向散列函數(shù); 4) 進(jìn)行簽名操作。 生成簽名的過(guò)程: 1) 選擇一個(gè)隨機(jī)或偽隨機(jī)數(shù)K,1 2) 計(jì)算KG=(X1,Y1), r=X1 mod n,若r=0,則轉(zhuǎn)步驟一; 3) 計(jì)算K-1mod n,e=md5(M),其中M是明文; 4) 計(jì)算S=K-1(e+dr)(mod n),若S=0則轉(zhuǎn)步驟一; 5) 利用DES加密算法對(duì)M進(jìn)行加密,得到密文EData; 6) 輸出簽名(r,S)和密文EData。 驗(yàn)證簽名的過(guò)程: 運(yùn)營(yíng)商M收到用戶U發(fā)過(guò)來(lái)的密文EData和簽名(r,S)后,做以下操作: 1) 驗(yàn)證r和S是(1,n-1)間的整數(shù); 2) 利用Diffie-Hellman密鑰交換過(guò)程得到了對(duì)稱密鑰,通過(guò)對(duì)稱解密算法對(duì)密文Edata進(jìn)行解密得到明文M; 3) 計(jì)算E=MD5(M),W=S-1(mod n); 4) U1=EW(mod n),U2=rW(mod n); 5) 計(jì)算X=U1G+U2Q=(X1,Y1),令V= X1 mod n; 6) 如果r=V則接受簽名。 上面的過(guò)程僅僅介紹了互相通信的三方中其中兩方的單向信息的傳遞過(guò)程,在實(shí)際的應(yīng)用中,涉及到交易的三方都需要使用該數(shù)字簽名技術(shù),但是由于它們的實(shí)現(xiàn)過(guò)程基本上相同,只是所傳輸?shù)亩绦艃?nèi)容不同,所以這里就不詳細(xì)介紹。 4 安全性和有效性分析 本文提出了基于混合密鑰的思想在移動(dòng)設(shè)備上實(shí)現(xiàn)數(shù)字簽名,在數(shù)據(jù)發(fā)送的過(guò)程中雖然實(shí)現(xiàn)了兩次加密,由于采用了Diffie-Hellman的密鑰交換過(guò)程,所以只需要一次交換就能實(shí)現(xiàn)對(duì)稱密鑰和非對(duì)稱密鑰的獲取,并且通過(guò)這種方式,即實(shí)現(xiàn)了身份認(rèn)證,同時(shí)還保證了數(shù)據(jù)的安全性和完整性。在簽名過(guò)程中增加了時(shí)間戳標(biāo)志,安全分析表明該方案可以防止扮演攻擊、重播攻擊和中間人攻擊,并具有反拒認(rèn)特性。 信息技術(shù)發(fā)展到現(xiàn)在,在無(wú)線設(shè)備方面,智能卡已經(jīng)得到了很大的發(fā)展,對(duì)于在智能卡上進(jìn)行信息的加密和解密已經(jīng)成為現(xiàn)實(shí),同時(shí),在加密技術(shù)方面,橢圓曲線的加密算法已經(jīng)非常的成熟,并且已成功的運(yùn)用到移動(dòng)電子商務(wù)中[1],因此,在移動(dòng)設(shè)備上實(shí)現(xiàn)基于的橢圓曲線的數(shù)據(jù)簽名技術(shù)是有效的。 參考文獻(xiàn): [1] Stapleton J, Doyle P, Esquire S.T. The Digital Signature Paradox.Systems,Man and Cybernetics (SMC) Information Assurance Workshop,2005.Proceedings from the Sixth Annual IEEE 15-17 June 2005 Page (s):456-457. [2]Milker V S. Use of Elliptic Curves in Cryptogmphy.Advances in Cryptology Crypto 85,Lecture Notes in Computer Science,Springer-Verlag,1980(128):417-426. [3]張世永. 網(wǎng)絡(luò)安全原理與應(yīng)用[M].北京:科學(xué)出版社,2003,74-77,121-125. [4]王雨. WAP移動(dòng)支付系統(tǒng)結(jié)構(gòu)研究[D].重慶大學(xué)碩士學(xué)位論文,2003.