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