[摘要] SET協(xié)議一般采用DES和RSA加密算法;與RSA相比,ECC體制具有單位比特最高強(qiáng)度的安全性,提出了橢圓曲線(xiàn)密碼體制ECC;在ECC的加密/解密、簽名/驗(yàn)證簽名的過(guò)程中,其核心計(jì)算是標(biāo)量乘法,采用NAF(非相鄰表示型)方法對(duì)標(biāo)量乘法進(jìn)行優(yōu)化,然后將其運(yùn)用到SET協(xié)議中,以提高效率。
[關(guān)鍵詞] SET協(xié)議 RSA 橢圓曲線(xiàn)密碼體制ECC 標(biāo)量乘法NAF(非相鄰表示型)
一、引言
隨著Internet的日益普及和高速發(fā)展,電子商務(wù)也得到了迅速發(fā)展,對(duì)社會(huì)經(jīng)濟(jì)活動(dòng)產(chǎn)生較大的影響。但是,在電子商務(wù)發(fā)展中當(dāng)前所遇到的主要技術(shù)是電子商務(wù)的安全。SET(Secure Electronic Transaction安全電子交易)是保證網(wǎng)上交易安全性的主要協(xié)議之一。
二、SET協(xié)議
安全電子交易協(xié)議(SET)是為了在Internet上進(jìn)行在線(xiàn)交易時(shí),保證信用卡支付的安全而設(shè)計(jì)開(kāi)發(fā)的一個(gè)開(kāi)放的規(guī)范。它提供了持卡人、商家和銀行之間的認(rèn)證,確保支付信息的機(jī)密、支付過(guò)程的完整、商家及持卡人的合法身份、以及可操作性。
基于SET協(xié)議的購(gòu)物流程是:持卡人首先瀏覽商家的網(wǎng)站,選擇要購(gòu)買(mǎi)的商品,然后填寫(xiě)好訂單,選擇付款方式,最后持卡人發(fā)送一個(gè)完整的訂單及要求付款的指令。商家在接收到訂單后,向銀行請(qǐng)求支付認(rèn)可,銀行到發(fā)卡機(jī)構(gòu)確認(rèn)后,批準(zhǔn)交易,并將確認(rèn)信息返回給商家。商家給持卡人發(fā)回訂單確認(rèn)信息,收到款后,進(jìn)行發(fā)貨。
三、橢圓曲線(xiàn)密碼體制ECC及其與RSA的比較
在SET協(xié)議中,采用DES和RSA加密算法實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密;采用SHA-1和RSA算法實(shí)現(xiàn)數(shù)字簽名;與RSA相比,在相同安全強(qiáng)度下,ECC具有密鑰短、處理速度快、存貯空間小、帶寬要求低、功耗小等優(yōu)點(diǎn),已成為開(kāi)電子商務(wù)最理想的信息安全核心技術(shù)。
橢圓曲線(xiàn)密碼體制,最早于1985年由Miller和Koblitz分別獨(dú)立地提出。它是利用有限域上橢圓曲線(xiàn)的有限點(diǎn)群代替基于離散對(duì)數(shù)問(wèn)題密碼體制中的有限循環(huán)群所得到的一類(lèi)密碼體制。對(duì)于定義在素?cái)?shù)有限域Fp上的橢圓曲線(xiàn):
其中p≠2,3。這里
四、ECC中點(diǎn)乘快速算法方案NAF-ECC
橢圓曲線(xiàn)密碼體制實(shí)現(xiàn)的效率在于橢圓曲線(xiàn)上的運(yùn)算速度。從文獻(xiàn)中可以得知,ECC的加密/解密、簽名/驗(yàn)證簽名過(guò)程的核心計(jì)算是標(biāo)量乘法,即求點(diǎn)P的n倍。其最基本最簡(jiǎn)單的算法是重復(fù)加倍和加(repeated double-and-add)方法,另外典型的方法是NAF(非相鄰表示型)方法,以及各種窗口方法。本文將采用文獻(xiàn)中提出的NAF方法對(duì)標(biāo)量乘法進(jìn)行優(yōu)化,簡(jiǎn)記為NAF-ECC方法。
NAF是對(duì)正整數(shù)n的二進(jìn)制表示進(jìn)行變形,采用一種特別有用的帶符號(hào)數(shù)字表示,且保證沒(méi)有兩個(gè)相鄰的位是非零,其算法的思想是重復(fù)地除以2。為了獲得正整數(shù)的二元展開(kāi),首先用n除以2,提取余數(shù)0或者1,然后用商重復(fù)這個(gè)過(guò)程直到商為0。為了獲得正整數(shù)n的非鄰近表示形式型,允許余數(shù)是0、1或者-1。如果余數(shù)是1或者-1,則選擇使商為偶數(shù)的余數(shù)。
與重復(fù)加-倍點(diǎn)運(yùn)算相比,NAF大約節(jié)省了t/6次的點(diǎn)加運(yùn)算。
五、點(diǎn)乘快速實(shí)現(xiàn)算法NAF-ECC在電子商務(wù)SET協(xié)議中的運(yùn)用
采用更高效的NAF-ECC新方案后,SET協(xié)議的加密和解密流程分別為:
發(fā)送方加密流程為:1.采用NAF-ECC方法對(duì)接收方的數(shù)字證書(shū)進(jìn)行認(rèn)證,以驗(yàn)證接收方的身份的真?zhèn)巍H绻C書(shū)是真的,再?gòu)淖C書(shū)中提取接收方的簽名公鑰。2.對(duì)要發(fā)送的消息進(jìn)行hash運(yùn)算,生成消息摘要,并用自己的私鑰對(duì)消息摘要進(jìn)行NAF-ECC方法加密,形成數(shù)字簽名。3.用隨機(jī)生成對(duì)稱(chēng)的對(duì)稱(chēng)密鑰對(duì)要發(fā)送的消息進(jìn)行NAF-ECC方法加密,生成消息密文。4.用接收方的公鑰對(duì)對(duì)稱(chēng)密鑰進(jìn)行NAF-ECC加密,得到數(shù)字信封。5.發(fā)送方將消息密文,數(shù)字簽名,數(shù)字信封及數(shù)字證書(shū)發(fā)給接收方。
接收方解密流程:1.接收方接收到發(fā)送方的消息后,采用NAF-ECC方法對(duì)發(fā)送方的數(shù)字證書(shū)進(jìn)行認(rèn)證,以驗(yàn)證發(fā)送方的身份的真?zhèn)巍H绻C書(shū)是真的,再?gòu)淖C書(shū)中提取發(fā)送方的簽名公鑰。2.采用NAF-ECC方法,接收方用自己的私鑰對(duì)數(shù)字信封進(jìn)行解密,得到對(duì)稱(chēng)密鑰。3.采用NAF-ECC方法,用對(duì)稱(chēng)密鑰對(duì)消息密文解密,得到消息明文。4.采用NAF-ECC方法,用發(fā)送方的公鑰對(duì)數(shù)字簽名解密,得到消息接要。5.對(duì)消息明文進(jìn)行hash運(yùn)算,得到重新計(jì)算的消息摘要。6.比較4.和5.得到的消息摘要,確認(rèn)消息的完整性:若兩個(gè)摘要相同,說(shuō)明消息是相應(yīng)方發(fā)送的,且在傳輸過(guò)程中沒(méi)有被篡改。
六、結(jié)束語(yǔ)
隨著Internet的普及,電子商務(wù)得到了迅速發(fā)展,電子商務(wù)的安全已是一個(gè)急需解決的問(wèn)題。研究橢圓曲線(xiàn)密碼體制是一個(gè)熱點(diǎn),本文提出的一種快速實(shí)現(xiàn)算法只是其中的一種嘗試,它在算法實(shí)現(xiàn)上更有效。
參考文獻(xiàn):
[1]祝凌曦:電子商務(wù)安全[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社.2006
[2]V.Miller.Uses of elliptic curves in cryptography[C].Advances in Cryptology-CRYPTO'85,Lecture Notes in Computer Science,1986,volume 218:417~426
[3]N.Koblitz.Elliptic curve cryptosystems[J].Math.Comp.1987,48:203~209
[4]周玉潔 馮登國(guó)編著:公開(kāi)密鑰算法及其快速實(shí)現(xiàn)[M].北京:國(guó)防工業(yè)出版社.2002
[5][加]Darrel Hankerson等著:張煥國(guó)等譯.橢圓曲線(xiàn)密碼學(xué)導(dǎo)論[M].北京:電子工業(yè)出版社,2005