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