王一韜
[摘 要]隨著當(dāng)今計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,越來(lái)越多的人喜歡起了網(wǎng)上購(gòu)物、電子交易,因此隨之而產(chǎn)生的計(jì)算機(jī)安全已經(jīng)成為社會(huì)各界關(guān)注的焦點(diǎn)。本文通過(guò)討論數(shù)據(jù)加密的兩種分類,并選取兩種典型的方法加以講述。然后在此基礎(chǔ)上討論電子商務(wù)的一些安全技術(shù)和SET協(xié)議。
[關(guān)鍵詞]密鑰 數(shù)據(jù)加密技術(shù) DES RSA 電子商務(wù) SET協(xié)議
一、引言
隨著我國(guó)經(jīng)濟(jì)的發(fā)展,一方面人們口袋里的錢(qián)包鼓了,但同時(shí)人們的生活頻率也隨之加快了,像以前那樣特意要挑個(gè)時(shí)間去買(mǎi)些衣服、生活用品之類的已經(jīng)越來(lái)越少了,都喜歡把更多的時(shí)間放在家里休息或者和家人一起去什么地方休閑放松一下,所以電子商務(wù)網(wǎng)上交易是越老越收到人們的喜歡。但是隨著一個(gè)新事物的產(chǎn)生發(fā)展,相應(yīng)的問(wèn)題也會(huì)應(yīng)用而生,電子交易的安全問(wèn)題已經(jīng)越來(lái)越受到人們的關(guān)注。本文討論了數(shù)據(jù)加密的兩種分類,并選取兩種典型的方法加以講述,然后在此基礎(chǔ)上討論電子商務(wù)的一些安全技術(shù)和SET協(xié)議。
二、數(shù)據(jù)加密技術(shù)
設(shè)計(jì)一種密度強(qiáng)的密碼算法有兩種方法,一是研究用于密碼分析的所有可能性解法,然后設(shè)計(jì)一套規(guī)則以挫敗這些解法中的任何一種算法,于是便能構(gòu)造一種能夠抗拒這些解法的算法,二是構(gòu)造這樣的一些算法,使得要破解它就必須解一些問(wèn)題,而這些問(wèn)題被認(rèn)為是不可解的。本文將要介紹的DES算法屬于第一種,而RSA算法則屬于第二種。
加密技術(shù)按照密鑰的公開(kāi)與否可以分為兩種體系,第一是對(duì)稱密鑰體系,這里加密密鑰和解密密鑰是相同的。為了安全性,密鑰要定期的改變。對(duì)稱算法速度快,所以在處理大量數(shù)據(jù)的時(shí)候被廣泛使用,其關(guān)鍵是保證密鑰的安全。典型的算法有DES及其各種變形(如Triple DES),IDEA,RC4、RC5以及古典密碼(如代換密碼和轉(zhuǎn)輪密碼)等。在眾多的對(duì)稱密碼中影響最大的是DES密碼。第二是公開(kāi)密鑰體系,分別存在一個(gè)公鑰和私鑰,公鑰公開(kāi),私鑰保密。公鑰和私鑰具有一一對(duì)應(yīng)的關(guān)系,用公鑰加密的數(shù)據(jù)只有用私鑰才能解開(kāi),其效率低于對(duì)稱密鑰體系,典型的算法有RSA、背包密碼,EllipticCurve、ElGamal算法等等。最有影響的公鑰加密算法是RSA,足夠位數(shù)的RSA能夠抵抗到目前為止已知的所有密碼攻擊。
(一)RSA算法
RSA算取自于它的創(chuàng)始人的名字:Rivest,Shamir,Adelman,該算法于1978年最早提出,至今仍沒(méi)有發(fā)現(xiàn)嚴(yán)重的安全漏洞。RSA基于數(shù)學(xué)難題,即具有大素?cái)?shù)因子的合數(shù)分解,以最新的計(jì)算方法也還是計(jì)算上不可行的。數(shù)論經(jīng)驗(yàn)表明,這個(gè)問(wèn)題是難解的。
RSA使用兩個(gè)密鑰,一個(gè)是公鑰(public key,以下用PK表示),一個(gè)是私鑰(private key,以下用SK表示) 加密時(shí)把明文分成塊,塊的大小可變,但不超過(guò)密鑰的長(zhǎng)度。RSA把明文塊轉(zhuǎn)化為與密鑰長(zhǎng)度相同的密文。其算法如下:
(二)DES
DES采用傳統(tǒng)的換位和置換的方法進(jìn)行加密,在56比特密鑰的控制下,將64比特明文塊變換為64比特密文塊,加密過(guò)程包括16輪的加密迭代,每輪都采用一種乘積密碼方式(代替和移位)。首先是處理原密鑰,產(chǎn)生16個(gè)48位子密鑰K(i),i=1,2…16,接著處理64位數(shù)據(jù)塊。
在應(yīng)用時(shí)一般是將DES和RSA綜合起來(lái)使用。DES加密效率高,但是要解決密鑰的存儲(chǔ)問(wèn)題,因?yàn)橹灰獋鬏斁碗y以保證密鑰不被泄露。這時(shí)可以采用如下策略:假如A要向B發(fā)送密文(DES)和密鑰SK,可以用B公布的公開(kāi)密鑰對(duì)Sk進(jìn)行RSA加密,將其結(jié)果和密文一起發(fā)送給B,B接受數(shù)據(jù)首先用自己的私鑰對(duì)SK進(jìn)行解密,得到A的密鑰SK。再用SK解密密文。這樣就解決了密鑰的傳輸問(wèn)題。因?yàn)闆](méi)有人知道B的私鑰,也就沒(méi)有辦法獲得SK
三、安全電子交易
(一)安全電子交易概述
電子商務(wù)的關(guān)鍵是要保證商業(yè)活動(dòng)的安全性,像傳統(tǒng)方法一樣安全可靠。而數(shù)據(jù)加密技術(shù)則構(gòu)成了電子商務(wù)安全的基礎(chǔ),可以說(shuō),沒(méi)有數(shù)據(jù)加密技術(shù),就沒(méi)有電子商務(wù)的安全。電子商務(wù)主要有下面一些安全控制要求:第一,確定貿(mào)易伙伴身份的真實(shí)性;第二,確保信息的保密性,如怎樣保證用戶的信用卡號(hào)不被竊取,如何保證貨源定單等信息不被競(jìng)爭(zhēng)對(duì)手獲悉;第三,保證電子定單等信息的真實(shí)性(未被冒充)以及在傳輸過(guò)程中未被篡改;第四,保證電子定單等信息的不可否認(rèn)性,即交易的任何一方在未經(jīng)對(duì)方同意的情況下都不能出爾反爾;第五,在交易雙方發(fā)生糾紛時(shí)能得到合理的仲裁和解決。
由VISA和MASTCARD所開(kāi)發(fā)SET(Secure Electronic Transaction)協(xié)議便能滿足以上的要求,它是在開(kāi)放的網(wǎng)絡(luò)環(huán)境中的支付安全協(xié)議,獲得了諸如Microsoft、IBM等許多大公司的支持。
(二)SET所采用的安全措施
SET采用的安全措施,幾乎全部以數(shù)據(jù)加密技術(shù)為基礎(chǔ),可以說(shuō)沒(méi)有加密技術(shù),就沒(méi)有安全電子交易。SET協(xié)議把對(duì)稱密鑰體制和公開(kāi)密鑰體制完美的結(jié)合了起來(lái),充分利用了DES效率高速度快,RSA安全性高,密鑰管理簡(jiǎn)便的優(yōu)點(diǎn)。下面以數(shù)據(jù)加密技術(shù)為基礎(chǔ),討論SET所采用的安全措施。
1.?dāng)?shù)字簽名
數(shù)字簽名采用RSA算法,數(shù)據(jù)發(fā)送方采用自己的私鑰加密數(shù)據(jù),接受方用發(fā)送方的公鑰解密,由于私鑰和公鑰之間的嚴(yán)格對(duì)應(yīng)性,使用其中一個(gè)只能用另一個(gè)來(lái)解,保證了發(fā)送方不能抵賴發(fā)送過(guò)數(shù)據(jù),完全模擬了現(xiàn)在生活中的簽名。
2.?dāng)?shù)字信封
發(fā)送方將消息用DES加密,并將DES對(duì)稱密鑰用接受方的公鑰加密,稱為消息的“數(shù)字信封”,將數(shù)字信封與DES加密后的消息一起發(fā)給接受方。接受者收到消息后,先用其密鑰打開(kāi)數(shù)字信封,得到發(fā)送方的DES對(duì)稱密鑰,再用此對(duì)稱密鑰去解開(kāi)數(shù)據(jù)。只有用接受方的RSA密鑰才能夠打開(kāi)此數(shù)字信封,確保了接受者的身份。
3.雙重簽名
在SET協(xié)議中一個(gè)重要的應(yīng)用就是雙重簽名。在交易中持卡人發(fā)往銀行的支付指令是通過(guò)商家轉(zhuǎn)發(fā)的,為了避免在交易的過(guò)程中商家竊取持卡人的信用卡信息,以及避免銀行跟蹤持卡人的行為,侵犯消費(fèi)者隱私,但同時(shí)又不能影響商家和銀行對(duì)持卡人所發(fā)信息的合理的驗(yàn)證,只有當(dāng)商家同意持卡人的購(gòu)買(mǎi)請(qǐng)求后,才會(huì)讓銀行給商家負(fù)費(fèi),SET協(xié)議采用雙重簽名來(lái)解決這一問(wèn)題。
首先C產(chǎn)生發(fā)往M的訂購(gòu)信息OI和發(fā)往B的支付指令PI,并分別產(chǎn)生OI,PI的摘要H(OI),H(PI)。其中摘要由一個(gè)單向HASH函數(shù)作用于消息產(chǎn)生,它是一個(gè)唯一對(duì)應(yīng)此消息的值,其它任何消息用HASH函數(shù)作用都不能產(chǎn)生此值,因此用消息摘要可以檢查消息在中途是否被篡改。連接H(OI)和H(PI)得到OP,再生成OP的摘要H(OP),用C的RSA私鑰簽名H(OP),得sign[H(OP)],稱為雙重簽名。
(三)SET交易流程
1.持卡人向商家發(fā)初始請(qǐng)求,商家產(chǎn)生初始應(yīng)答。
持卡人瀏覽商家的商品,這可以通過(guò)使用網(wǎng)上商店或者商家提供的CD-ROM來(lái)實(shí)現(xiàn)。選好商品后要求在線支付,激發(fā)支付軟件,向商家發(fā)送初始請(qǐng)求。初始請(qǐng)求指定了交易環(huán)境,包括持卡人所使用的語(yǔ)言,交易ID,使用的是何種交易卡等。商家接受初始請(qǐng)求,產(chǎn)生初始應(yīng)答,對(duì)初始應(yīng)答生成消息摘要,對(duì)此消息摘要進(jìn)行數(shù)字簽名,將商家證書(shū),網(wǎng)關(guān)證書(shū),初始應(yīng)答,消息摘要的數(shù)字簽名等,發(fā)送給持卡人。由于初始應(yīng)答未被加密,所以它不應(yīng)包含機(jī)密信息。
2.持卡人接受并檢查商家的初始應(yīng)答,如無(wú)誤,發(fā)出購(gòu)物請(qǐng)求。
持卡人接受初始應(yīng)答,檢查商家證書(shū)和網(wǎng)關(guān)證書(shū)。接著用商家公鑰解開(kāi)消息摘要的數(shù)字簽名,用HASH算法產(chǎn)生初始應(yīng)答的摘要,將兩者比較,如果相同則表示數(shù)據(jù)在途中未被篡改,否則丟棄。
3.持卡人發(fā)出購(gòu)物請(qǐng)求,它包含了真正的交易行為。
商家接受并檢查持卡人的購(gòu)物請(qǐng)求,如無(wú)誤,發(fā)出支付請(qǐng)求。
商家接受持卡人的購(gòu)物請(qǐng)求,認(rèn)證持卡人的證書(shū)。接著驗(yàn)證雙重簽名,看數(shù)據(jù)在傳輸過(guò)程中是否被篡改。如數(shù)據(jù)完整,則處理定單信息,產(chǎn)生支付請(qǐng)求。
將支付請(qǐng)求用HASH算法生成摘要,并簽名,網(wǎng)關(guān)收到后用商家公鑰解密,并確認(rèn)支付請(qǐng)求是此商家所發(fā)并且在途中未被篡改。生成對(duì)稱密鑰對(duì)支付請(qǐng)求加密,并用網(wǎng)關(guān)公鑰加密形成數(shù)字信封。最后將商家證書(shū),支付請(qǐng)求密文,商家數(shù)字簽名,數(shù)字信封和持卡人通過(guò)商家轉(zhuǎn)發(fā)的sign[H(OP)],OI摘要,PI密文,持卡人數(shù)字信封,持卡人證書(shū)等發(fā)往支付網(wǎng)關(guān)。支付網(wǎng)關(guān)接受并檢查支付請(qǐng)求,如無(wú)誤,發(fā)扣款請(qǐng)求。
支付網(wǎng)關(guān)分別檢查確認(rèn)商家發(fā)來(lái)的數(shù)據(jù)和持卡人發(fā)來(lái)的數(shù)據(jù)。網(wǎng)關(guān)首先認(rèn)證商家證書(shū),然后用私鑰打開(kāi)商家數(shù)字信封,獲取商家對(duì)稱密鑰,解開(kāi)支付請(qǐng)求密文。用HASH算法作用于支付請(qǐng)求,形成摘要,與商家發(fā)來(lái)的支付請(qǐng)求摘要(解開(kāi)數(shù)字簽名所得)相比較,如果相同則表示數(shù)據(jù)完整,否則丟棄數(shù)據(jù)。
網(wǎng)關(guān)檢查持卡人證書(shū),然后用私鑰打開(kāi)持卡人數(shù)字信封,得到他的帳號(hào)和對(duì)稱密鑰,之后將信息發(fā)送往銀行。
4.銀行向網(wǎng)關(guān)發(fā)送扣款應(yīng)答,網(wǎng)關(guān)向商家發(fā)送支付應(yīng)答。
在支付網(wǎng)關(guān)和銀行之間是通過(guò)金融專用網(wǎng)向連,其間的業(yè)務(wù),SET并不作規(guī)定。
網(wǎng)關(guān)在接受銀行的扣款應(yīng)答后,生成支付應(yīng)答,同樣產(chǎn)生摘要,對(duì)其進(jìn)行數(shù)字簽名,生成對(duì)稱密鑰,對(duì)支付應(yīng)答加密,并且將對(duì)稱密鑰裝入數(shù)字信封。將網(wǎng)關(guān)證書(shū),數(shù)字簽名,數(shù)字信封,支付應(yīng)答密文一起發(fā)往商家。
5.商家接受并檢查網(wǎng)關(guān)的支付應(yīng)答,如無(wú)誤,向持卡人發(fā)送購(gòu)物應(yīng)答。
商家認(rèn)證網(wǎng)關(guān)的證書(shū),用私鑰打開(kāi)數(shù)字信封,得到網(wǎng)關(guān)對(duì)稱密鑰,用此密鑰解開(kāi)支付應(yīng)答,產(chǎn)生摘要。用網(wǎng)關(guān)公鑰解開(kāi)其數(shù)字簽名,得到支付原始支付應(yīng)答摘要,并與新產(chǎn)生的摘要比較,如果相同,則數(shù)據(jù)完整,如果不同則丟棄。
商家產(chǎn)生購(gòu)物應(yīng)答,對(duì)購(gòu)物應(yīng)答生成摘要,并簽名,將商家證書(shū),購(gòu)物應(yīng)答,數(shù)字簽名一起發(fā)往持卡人。如果交易成功,則發(fā)貨。
持卡人接受購(gòu)物應(yīng)答,驗(yàn)證商家證書(shū)。對(duì)購(gòu)去應(yīng)答產(chǎn)生摘要,用商家公鑰解開(kāi)數(shù)字簽名,得到原始摘要,將之與新產(chǎn)生的摘要比較,相同則表示數(shù)據(jù)完整,不同則丟棄。至此,交易流程結(jié)束。
四、結(jié)束語(yǔ)
本文了討論了數(shù)據(jù)加密技術(shù),介紹了當(dāng)今使用最為廣泛的DES和RSA算法。DES效率高,但是密鑰保存難,RSA安全性高,但是效率低,在實(shí)際應(yīng)用中經(jīng)常把兩者結(jié)合起來(lái)使用。保證安全性是電子商務(wù)的核心環(huán)節(jié),SET協(xié)議充分地予以考慮,并在交易流程中充分地體現(xiàn)了這一點(diǎn)。它使用的主要技術(shù)有,數(shù)字簽名,數(shù)字信封,雙重簽名等,而這些都無(wú)不以數(shù)據(jù)加密技術(shù)為基礎(chǔ),希望數(shù)字加密在以后的發(fā)展中能夠有更好的應(yīng)用,SET協(xié)議有更好的前景。
參考文獻(xiàn)
[1]盛志凡,淺談數(shù)據(jù)加密技術(shù)及其在電子交易上的應(yīng)用[J]計(jì)算機(jī)學(xué)報(bào),2003,(4)
[2]裘宗燕Garbage Collection 問(wèn)題和技術(shù)程序員2003 合訂本(下)
[3]王永慶,人工智能原理與方法[M]西安:西安交通大學(xué)出版社,2004
[4]金海連等,網(wǎng)上交易流程,市場(chǎng)與電腦,1999年3月
[5]盧起駿等譯,計(jì)算機(jī)網(wǎng)絡(luò)保密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)指南,科學(xué)技術(shù)文獻(xiàn)出版社重慶分社,1987