網絡技術是從1990年代中期發(fā)展起來的新技術,它把互聯(lián)網上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網絡、傳感器等。 當前的互聯(lián)網只限于信息共享,網絡則被認為是互聯(lián)網發(fā)展的第三階段。 數(shù)字簽字和認證機構是電子商務的核心技術。數(shù)字簽名作為目前Internet中電子商務重要的技術,不斷地進行改進,標準化。本文從數(shù)字簽名的意義出發(fā),詳細介紹了數(shù)字簽名中涉及到的內容與算法,并自行結合進行改進。
引言 RSA密碼系統(tǒng)是較早提出的一種公開鑰密碼系統(tǒng)。1978年,美國麻省理工學院(MIT)的Rivest,Shamir和Adleman在題為《獲得數(shù)字簽名和公開鑰密碼系統(tǒng)的方法》的論文中提出了基于數(shù)論的非對稱(公開鑰)密碼體制,稱為RSA密碼體制。RSA是建立在“大整數(shù)的素因子分解是困難問題”基礎上的,是一種分組密碼體制。 對文件進行加密只解決了傳送信息的保密問題,而防止他人對傳輸?shù)奈募M行破壞,以及如何確定發(fā)信人的身份還需要采取其它的手段,這一手段就是數(shù)字簽名。在電子商務安全保密系統(tǒng)中,數(shù)字簽名技術有著特別重要的地位,在電子商務安全服務中的源鑒別、完整性服務、不可否認服務中,都要用到數(shù)字簽名技術。在電子商務中,完善的數(shù)字簽名應具備簽字方不能抵賴、他人不能偽造、在公證人面前能夠驗證真?zhèn)蔚哪芰Α?br> 實現(xiàn)數(shù)字簽名有很多方法,目前數(shù)字簽名采用較多的是公鑰加密技術,如基于RSA Date Security 公司的PKCS(Public Key Cryptography Standards)、Digital Signature Algorithm、x.509、PGP(Pretty Good Privacy)。1994年美國標準與技術協(xié)會公布了數(shù)字簽名標準而使公鑰加密技術廣泛應用。公鑰加密系統(tǒng)采用的是非對稱加密算法。 目前的數(shù)字簽名是建立在公共密鑰體制基礎上,它是公用密鑰加密技術的另一類應用。它的主要方式是,報文的發(fā)送方從報文文本中生成一個128位的散列值(或報文摘要)。發(fā)送方用自己的私人密鑰對這個散列值進行加密來形成發(fā)送方的數(shù)字簽名。然后,這個數(shù)字簽名將作為報文的附件和報文一起發(fā)送給報文的接收方。報文的接收方首先從接收到的原始報文中計算出128位的散列值(或報文摘要),接著再用發(fā)送方的公用密鑰來對報文附加的數(shù)字簽名進行解密。如果兩個散列值相同、那么接收方就能確認該數(shù)字簽名是發(fā)送方的。通過數(shù)字簽名能夠實現(xiàn)對原始報文的鑒別。 在書面文件上簽名是確認文件的一種手段,其作用有兩點:第一,因為自己的簽名難以否認,從而確認了文件已簽署這一事實;第二,因為簽名不易仿冒,從而確定了文件是真的這一事實。 數(shù)字簽名與書面文件簽名有相同之處,采用數(shù)字簽名,也能確認以下兩點:第一,信息是由簽名者發(fā)送的;第二,信息自簽發(fā)后到收到為止未曾作過任何修改。這樣數(shù)字簽名就可用來防止電子信息因易被修改而有人作偽,或冒用別人名義發(fā)送信息。或發(fā)出(收到)信件后又加以否認等情況發(fā)生。 應用廣泛的數(shù)字簽名方法主要有三種,即:RSA簽名、DSS簽名和Hash簽名。這三種算法可單獨使用,也可綜合在一起使用。數(shù)字簽名是通過密碼算法對數(shù)據(jù)進行加、解密變換實現(xiàn)的,用DES算去、RSA算法都可實現(xiàn)數(shù)字簽名。但三種技術或多或少都有缺陷,或者沒有成熟的標準。 用RSA或其它公開密鑰密碼算法的最大方便是沒有密鑰分配問題(網絡越復雜、網絡用戶越多,其優(yōu)點越明顯)。因為公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保密的。公開密鑰可以保存在系統(tǒng)目錄內、未加密的電子郵件信息中、電話黃頁(商業(yè)電話)上或公告牌里,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專用的,由用戶本身持有,它可以對由公開密鑰加密信息進行解密。 RSA算法中數(shù)字簽名技術實際上是通過一個哈希函數(shù)來實現(xiàn)的。數(shù)字簽名的特點是它代表了文件的特征,文件如果發(fā)生改變,數(shù)字簽名的值也將發(fā)生變化。不同的文件將得到不同的數(shù)字簽名。一個最簡單的哈希函數(shù)是把文件的二進制碼相累加,取最后的若干位。哈希函數(shù)對發(fā)送數(shù)據(jù)的雙方都是公開的。 DSS數(shù)字簽名是由美國國家標準化研究院和國家安全局共同開發(fā)的。由于它是由美國政府頒布實施的,主要用于與美國政府做生意的公司,其他公司則較少使用,它只是一個簽名系統(tǒng),而且美國政府不提倡使用任何削弱政府竊聽能力的加密軟件,認為這才符合美國的國家利益。 Hash簽名是最主要的數(shù)字簽名方法,也稱之為數(shù)字摘要法(Digital Digest)或數(shù)字指紋法(Digital Finger Print)。它與RSA數(shù)字簽名是單獨的簽名不同,該數(shù)字簽名方法是將數(shù)字簽名與要發(fā)送的信息緊密聯(lián)系在一起,它更適合于電子商務活動。將一個商務合同的個體內容與簽名結合在一起,比合同和簽名分開傳遞,更增加了可信度和安全性。數(shù)字摘要(Digital Digest)加密方法亦稱安全Hash編碼法(SHA:Secure Hash Algorithm)或MD5(MD Standard For Message Digest),由RonRivest所設計。該編碼法采用單向Hash函數(shù)將需加密的明文“摘要”成一串128bit的密文,這一串密文亦稱為數(shù)字指紋(Finger Print),它有固定的長度,且不同的明文摘要必定一致。這樣這串摘要使可成為驗證明文是否是“真身”的“指紋”了。 只有加入數(shù)字簽名及驗證才能真正實現(xiàn)在公開網絡上的安全傳輸。加入數(shù)字簽名和驗證的文件傳輸過程如下: 發(fā)送方首先用哈希函數(shù)從原文得到數(shù)字簽名,然后采用公開密鑰體系用發(fā)達方的私有密鑰對數(shù)字簽名進行加密,并把加密后的數(shù)字簽名附加在要發(fā)送的原文后面; 發(fā)送一方選擇一個秘密密鑰對文件進行加密,并把加密后的文件通過網絡傳輸?shù)浇邮辗剑?br> 發(fā)送方用接收方的公開密鑰對密秘密鑰進行加密,并通過網絡把加密后的秘密密鑰傳輸?shù)浇邮辗剑?br> 接受方使用自己的私有密鑰對密鑰信息進行解密,得到秘密密鑰的明文; 接收方用秘密密鑰對文件進行解密,得到經過加密的數(shù)字簽名; 接收方用發(fā)送方的公開密鑰對數(shù)字簽名進行解密,得到數(shù)字簽名的明文; 接收方用得到的明文和哈希函數(shù)重新計算數(shù)字簽名,并與解密后的數(shù)字簽名進行對比。如果兩個數(shù)字簽名是相同的,說明文件在傳輸過程中沒有被破壞。 如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數(shù)字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,解密出來的數(shù)字簽名和經過計算的數(shù)字簽名必然是不相同的。這就提供了一個安全的確認發(fā)送方身份的方法。 安全的數(shù)字簽名使接收方可以得到保證:文件確實來自聲稱的發(fā)送方。鑒于簽名私鑰只有發(fā)送方自己保存,他人無法做一樣的數(shù)字簽名,因此他不能否認他參與了交易。 數(shù)字簽名的加密解密過程和私有密鑰的加密解密過程雖然都使用公開密鑰體系,但實現(xiàn)的過程正好相反,使用的密鑰對也不同。數(shù)字簽名使用的是發(fā)送方的密鑰對,發(fā)送方用自己的私有密鑰進行加密,接收方用發(fā)送方的公開密鑰進行解密。這是一個一對多的關系:任何擁有發(fā)送方公開密鑰的人都可以驗證數(shù)字簽名的正確性,而私有密鑰的加密解密則使用的是接收方的密鑰對,這是多對一的關系:任何知道接收方公開密鑰的人都可以向接收方發(fā)送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。在實用過程中,通常一個用戶擁有兩個密鑰對,一個密鑰對用來對數(shù)字簽名進行加密解密,一個密鑰對用來對私有密鑰進行加密解密。這種方式提供了更高的安全性。
網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發(fā)展,這正是網絡迅速走向進步的催化劑。
|