- 相關推薦
數(shù)據(jù)加密技術與安全電子交易淺析
【摘要】 本文概要介紹了數(shù)據(jù)加密的一些經(jīng)典的方法,并且以此為基礎討論電子商務安全技術和SET協(xié)議。 【關鍵詞】密鑰,數(shù)據(jù)加密技術,DES,RSA,電子商務,SET一、引言
隨著當今計算機網(wǎng)絡的飛速發(fā)展,計算機安全已經(jīng)成為社會各界關注的焦點。本文討論了數(shù)據(jù)加密的兩種分類,并選取兩種典型的方法加以講述。然后在此基礎上討論電子商務的一些安全技術和SET協(xié)議。
二、數(shù)據(jù)加密
設計一種密度強的密碼算法有兩種方法,一是研究用于密碼分析的所有可能性解法,然后設計一套規(guī)則以挫敗這些解法中的任何一種算法,于是便能構造一種能夠抗拒這些解法的算法,二是構造這樣的一些算法,使得要破解它就必須解一些問題,而這些問題被認為是不可解的。本文將要介紹的DES算法屬于第一種,而RSA則屬于第二種。
加密技術按照密鑰的公開與否可以分為兩種體系,第一是對稱密鑰體系,這里加密密鑰匙和解密密鑰是相同的。為了安全性,密鑰要定期的改變。對稱算法速度快,所以在處理大量數(shù)據(jù)的時候被廣泛使用,其關鍵是保證密鑰的安全。典型的算法有DES及其各種變形(如Triple DES),IDEA,RC4、RC5以及古典密碼(如代換密碼和轉輪密碼)等。在眾多的對稱密碼中影響最大的是DES密碼。第二是公開密鑰體系,分別存在一個公鑰和私鑰,公鑰公開,私鑰保密。公鑰和私鑰具有一一對應的關系,用公鑰加密的數(shù)據(jù)只有用私鑰才能解開,其效率低于對稱密鑰體系,典型的算法有RSA、背包密碼,Elliptic Curve、ElGamal算法等等。最有影響的公鑰加密算法是RSA,足夠位數(shù)的RSA能夠抵抗到目前為止已知的所有密碼攻擊。下面選取兩體系中各最具有代表性最有影響的算法DES和RSA進行討論。
1.RSA算法
RSA算取自于它的創(chuàng)始人的名字:Rivest,Shamir,Adelman,該算法于1978年最早提出,至今仍沒有發(fā)現(xiàn)嚴重的安全漏洞。RSA基于數(shù)學難題,即具有大素數(shù)因子的合數(shù)分解,以最新的計算方法也還是計算上不可行的。數(shù)論經(jīng)驗表明,這個問題是難解的。
RSA使用兩個密鑰,一個是公鑰(public key,以下用PK表示),一個是私鑰(private key,以下用SK表示) 加密時把明文分成塊,塊的大小可變,但不超過密鑰的長度。RSA把明文塊轉化為與密鑰長度相同的密文。其算法如下:
首先選擇兩個秘密的相異質數(shù)p,q,計算n=pq,取r是與(p-1)(q-1)互質的數(shù),這里r便是SK。接著找一數(shù)m,使得rm==1mod(p-1)(q-1),根據(jù)歐幾里得算法(a=bn+c,則a與b的gcd就等于b與c的gcd),這樣的m一定可以找到。這里m和n便是公鑰PK。在編碼時,假設資料為A,將其分成等長數(shù)據(jù)N塊, 每塊為a<n。計算b==a^m mod(pq),則b就是編碼后的資料。至于解碼,取c==b^r mod(pq)。則c=a 。黑客攻擊時他想得到r,這樣他就必須對n進行因式分解,選擇足夠大的質數(shù)p,q便能阻止他分解因式。
對于p,q的選擇,一般來說是足夠大的素數(shù), 對于大,并沒有一個確定的界限,因為隨著計算機技術的發(fā)展,破解能力正在逐步增強(根據(jù)摩爾定理計算能力18個月就翻一番)。一般來說,安全等級高的,則密鑰選取大的,安全等級低些,則選取相對小些的數(shù)。RSA的安全性依賴于大數(shù)分解,然而值得注意的是,是否等同于大數(shù)分解一直未得到理論上的證明,并沒有證明要破解RSA就一定得進行大數(shù)分解。
2.DES
DES采用傳統(tǒng)的換位和置換的方法進行加密,在56比特密鑰的控制下,將64比特明文塊變換為64比特密文塊,加密過程包括16輪的加密迭代,每輪都采用一種乘積密碼方式(代替和移位)。首先是處理原密鑰,產(chǎn)生16個48位子密鑰K(i),i=1,2…16,接著處理64位數(shù)據(jù)塊,過程可以用下圖表示:
其中置換和g 函數(shù)的選擇都按特定的規(guī)則進行,g函數(shù)操作是先將R(I)擴充成48位后與K(I+1)異或運算,接著將所得的48位數(shù)分成8個6位數(shù),記為B[I],I=1,2…8,選取8個S密箱,將B[I]的第一位和第六位串聯(lián)成一個數(shù)記位m,取出B[I]的第二至五位串聯(lián)成一個四位數(shù)記位n,用S密箱中的第n行第m列的數(shù)替換B[I],替換完全部的B[I]后,將B[1]至B[8]串聯(lián)成一個32位數(shù),再經(jīng)過換位,至此g函數(shù)操作全部結束。將所得結果與L[I]異或后,得到R[I+1]。進行下一輪的加密,直到用完K(16),再經(jīng)過逆初始置換,全部加密過程結束。而脫密時只需要將密鑰順序倒過來,即第一輪用K(16),第二輪用K(15),以次類推。
于是DES加密算法又可以簡單地用下式表示:
Ek(m) = N(IP)*T16*T15……T1*IP(m)
其中IP為初始置換,N( X)是X的逆,Ti,i = 1,2,…16是一系列的變換。Ek(m)表示明文m在密鑰k的作用下產(chǎn)生的密文
解密算法: N(Ek) = N(IP)*T1*T2……T16*IP[Ek(m)]
在應用時一般是將DES和RSA綜合起來使用。DES加密效率高,但是要解決密鑰的存儲問題,因為只要傳輸就難以保證密鑰不被泄露。這時可以采用如下策略:假如A要向B發(fā)送密文(DES)和密鑰SK,可以用B公布的公開密鑰對Sk進行RSA加密,將其結果和密文一起發(fā)送給B,B接受數(shù)據(jù)首先用自己的私鑰對SK進行解密,得到A的密鑰SK。再用SK解密密文。這樣就解決了密鑰的傳輸問題。因為沒有人知道B的私鑰,也就沒有辦法獲得SK。
三、安全電子交易
電子商務的關鍵是要保證商業(yè)活動的安全性,象傳統(tǒng)方法一樣安全可靠。而數(shù)據(jù)加密技術則構成了電子商務安全的基礎,可以說,沒有數(shù)據(jù)加密技術,就沒有電子商務的安全。電子商務主要有下面一些安全控制要求:第一,確定貿(mào)易伙伴身份的真實性;第二,確保信息的保密性,如怎樣保證用戶的信用卡號不被竊取,如何保證貨源定單等信息不被競爭對手獲悉;第三,保證電子定單等信息的真實性(未被冒充)以及在傳輸過程中未被篡改;第四,保證電子定單等信息的不可否認性,即交易的任何一方在未經(jīng)對方同意的情況下都不能出爾反爾;第五,在交易雙方發(fā)生糾紛時能得到合理的仲裁和解決。
由VISA和MASTCARD所開發(fā)SET(Secure Electronic Transaction)協(xié)議便能滿足以上的要求,它是在開放的網(wǎng)絡環(huán)境中卡支付安全協(xié)議,獲得了諸如microsoft,IBM等許多大公司的支持。
1.SET協(xié)議中交易的參與方
SET支付系統(tǒng)的參與放主要方有:
- 持卡人,即消費者,他們通過web瀏覽器或客戶端軟件購物;
- 商家,提供在線商店或商品光盤給消費者;
- 發(fā)卡人,它是一金融機構,為持卡人開帳戶,并且發(fā)放支付卡;
- 受款銀行,它為商家建立帳戶,并且處理支付卡的認證和支付事宜
- 支付網(wǎng)關,是由受款銀行或指定的第三方操縱的設備,它處理商家的支付信息,同時也包括來自消費者的支付指令
SET支付系統(tǒng)還涉及到認證機構(CA),但是它不參與SET的支付流程,它給各參與方頒發(fā)證書,各參與方可以通過查看對方的證書,來確定對方是否準確而不是冒充的。要建立安全的電子商務系統(tǒng),首先必須有一個健全可信的CA。
2.SET所采用的安全措施
SET采用的安全措施,幾乎全部以數(shù)據(jù)加密技術為基礎,可以說沒有加密技術,就沒有安全電子交易。SET協(xié)議把對稱密鑰體制和公開密鑰體制完美的結合了起來,充分利用了DES效率高速度快,RSA安全性高,密鑰管理簡便的優(yōu)點。下面以數(shù)據(jù)加密技術為基礎,討論SET所采用的安全措施。
1數(shù)字簽名
數(shù)字簽名采用RSA算法,數(shù)據(jù)發(fā)送方采用自己的私鑰加密數(shù)據(jù),接受方用發(fā)送方的公鑰解密,由于私鑰和公鑰之間的嚴格對應性,使用其中一個只能用另一個來解,保證了發(fā)送方不能抵賴發(fā)送過數(shù)據(jù),完全模擬了現(xiàn)在生活中的簽名。
2數(shù)字信封
發(fā)送方將消息用DES加密,并將DES對稱密鑰用接受方的公鑰加密,稱為消息的“數(shù)字信封”,將數(shù)字信封與DES加密后的消息一起發(fā)給接受方。接受者收到消息后,先用其密鑰打開數(shù)字信封,得到發(fā)送方的DES對稱密鑰,再用此對稱密鑰去解開數(shù)據(jù)。只有用接受方的RSA密鑰才能夠打開此數(shù)字信封,確保了接受者的身份。
3雙重簽名
數(shù)字簽名在SET協(xié)議中一個重要的應用就是雙重簽名。在交易中持卡人發(fā)往銀行的支付指令是通過商家轉發(fā)的,為了避免在交易的過程中商家竊取持卡人的信用卡信息,以及避免銀行跟蹤持卡人的行為,侵犯消費者隱私,但同時又不能影響商家和銀行對持卡人所發(fā)信息的合理的驗證,只有當商家同意持卡人的購買請求后,才會讓銀行給商家負費,SET協(xié)議采用雙重簽名來解決這一問題。
假設持卡人C(customer)從商家M(mechant)購買商品,他不希望商家看到他的信用卡信息,也不希望銀行B(bank)看到他有關商品的信息,于是他采用雙重簽名,流程如圖并說明如下:
首先C產(chǎn)生發(fā)往M的訂購信息OI和發(fā)往B的支付指令PI,并分別產(chǎn)生OI,PI的摘要H(OI),H(PI)。其中摘要由一個單向HASH函數(shù)作用于消息產(chǎn)生,它是一個唯一對應此消息的值,其它任何消息用HASH函數(shù)作用都不能產(chǎn)生此值,因此用消息摘要可以檢查消息在中途是否被篡改。連接H(OI)和H(PI)得到OP,再生成OP的摘要H(OP),用C的RSA私鑰簽名H(OP),得sign[H(OP)],稱為雙重簽名。C將消息{OI,H(PI),sign[H(OP)]}發(fā)給M,將{PI,H(OI),sign[H(OP)]}發(fā)給B。在驗證雙重簽名時,接受者分別創(chuàng)建消息摘要,M生成H(OI),B生成H(PI),再分別將H(OI)/H(PI)與另一接受到的摘要H(PI)/H(OI)連接,生成OP及其摘要H(OP)’,接受者M/B用C的RSA公鑰解開sign[H(OP)],得到H(OP),比較H(OP)’與H(OP)是否相同,如果相同,則表示數(shù)據(jù)完整且未被篡改,如果不同,則丟棄數(shù)據(jù)。
3.SET交易流程
持卡人發(fā)出購物請求,它包含了真正的交易行為。購物請求是協(xié)議中最復雜的信息,它包括兩個部分:發(fā)網(wǎng)商家的定單指令OI和通過商家轉發(fā)往網(wǎng)關的支付指令PI,通過雙重簽名將PI和OI結合起來(雙重簽名見上文說明),生成 sign[H(OP)]。持卡人生成對稱密鑰,對支付指令PI加密,再用網(wǎng)關的公鑰對此對稱密鑰和持卡人帳號加密,形成數(shù)字信封。最后將持卡人證書,OI,PI密文,數(shù)字信封,sign[H(OP)],PI和OI各自的消息摘要等發(fā)給商家,其中有消息是通過商家轉發(fā)給支付網(wǎng)關的。
商家接受持卡人的購物請求,認證持卡人的證書。接著驗證雙重簽名,看數(shù)據(jù)在傳輸過程中是否被篡改。如數(shù)據(jù)完整,則處理定單信息,產(chǎn)生支付請求。
將支付請求用HASH算法生成摘要,并簽名,網(wǎng)關收到后用商家公鑰解密,并確認支付請求是此商家所發(fā)在且在途中未被篡改。生成對稱密鑰對支付請求加密,并用網(wǎng)關公鑰加密形成數(shù)字信封。最后將商家證書,支付請求密文,商家數(shù)字簽名,數(shù)字信封和持卡人通過商家轉發(fā)的:sign[H(OP)],OI摘要,PI密文,持卡人數(shù)字信封,持卡人證書等發(fā)往支付網(wǎng)關。
商家認證網(wǎng)關的證書,用私鑰打開數(shù)字信封,得到網(wǎng)關對稱密鑰,用此密鑰解開支付應答,產(chǎn)生摘要。用網(wǎng)關公鑰解開其數(shù)字簽名,得到支付原始支付應答摘要,并與新產(chǎn)生的摘要比較,如果相同,則數(shù)據(jù)完整,如果不同則丟棄。
商家產(chǎn)生購物應答,對購物應答生成摘要,并簽名,將商家證書,購物應答,數(shù)字簽名一起發(fā)往持卡人。如果交易成功,則發(fā)貨。
持卡人接受購物應答,驗證商家證書。對購去應答產(chǎn)生摘要,用商家公鑰解開數(shù)字簽名,得到原始摘要,將之與新產(chǎn)生的摘要比較,相同則表示數(shù)據(jù)完整,不同則丟棄。至此,交易流程結束。
以上簡要地討論了SET協(xié)議的主要的交易流程及其中的數(shù)據(jù)流向的問題。若要深刻的了解出錯處理以及各種消息的格式,可以參照參考數(shù)目[3]。
四.結束語
本文了討論了數(shù)據(jù)加密技術,介紹了當今使用最為廣泛的DES和RSA算法。DES效率高,但是密鑰保存難,RSA安全性高,但是效率低,在實際應用中經(jīng)常把兩者結合起來使用。保證安全性是電子商務的核心環(huán)節(jié),SET協(xié)議充分地予以考慮,并在交易流程中充分地體現(xiàn)了這一點。它使用的主要技術有,數(shù)字簽名,數(shù)字信封,雙重簽名等,而這些無不以數(shù)據(jù)加密技術為基礎。
參考資料 :
- 盧起駿等譯,計算機網(wǎng)絡保密系統(tǒng)設計與實現(xiàn)指南,科學技術文獻出版社重慶分社,1987
- SET Secure Electronic Transaction Specification
:Business Description, May,31,1997- SET Secure Electronic Transaction Specification
:Programmer’s Guide, May,31,1997 - 金海連等,網(wǎng)上交易流程,市場與電腦,1999年3月
【數(shù)據(jù)加密技術與安全電子交易淺析】相關文章:
數(shù)據(jù)加密技術08-06
數(shù)據(jù)加密技術08-06
數(shù)據(jù)加密技術08-06
數(shù)據(jù)加密技術-08-06
一種新的數(shù)據(jù)加密技術08-06
論電子交易中電子數(shù)據(jù)訊息的法律效力08-05
淺析網(wǎng)絡安全技術08-05
淺議電子數(shù)據(jù)安全審計08-07