版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)字簽名在電子商務(wù)中的應(yīng)用</p><p> 摘 要:數(shù)字簽名技術(shù)是當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn)。它作為網(wǎng)絡(luò)安全的關(guān)鍵性技術(shù)之一,數(shù)字簽名在社會生活的各個(gè)領(lǐng)域也都具有十分廣闊的應(yīng)用前景。簡單地說,所謂數(shù)字簽名就是附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換。這種數(shù)據(jù)或變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元的來源和數(shù)據(jù)單元的完整性并保護(hù)數(shù)據(jù),防止被人(例如接收者)進(jìn)行偽造。它是
2、對電子形式的消息進(jìn)行簽名的一種方法,一個(gè)簽名消息能在一個(gè)通信網(wǎng)絡(luò)中傳輸。基于公鑰密碼體制和私鑰密碼體制都可以獲得數(shù)字簽名,目前主要是基于公鑰密碼體制的數(shù)字簽名。包括普通數(shù)字簽名和特殊數(shù)字簽名[1]。</p><p> 數(shù)字簽名(Digital Signature)技術(shù)是不對稱加密算法的典型應(yīng)用。數(shù)字簽名的應(yīng)用過程是,數(shù)據(jù)源發(fā)送方使用自己的私鑰對數(shù)據(jù)校驗(yàn)和或其他與數(shù)據(jù)內(nèi)容有關(guān)的變量進(jìn)行加密處理,完成對數(shù)據(jù)的合法“
3、簽名”,數(shù)據(jù)接收方則利用對方的公鑰來解讀收到的“數(shù)字簽名”,并將解讀結(jié)果用于對數(shù)據(jù)完整性的檢驗(yàn),以確認(rèn)簽名的合法性。數(shù)字簽名技術(shù)是在網(wǎng)絡(luò)系統(tǒng)虛擬環(huán)境中確認(rèn)身份的重要技術(shù),完全可以代替現(xiàn)實(shí)過程中的“親筆簽字”,在技術(shù)和法律上有保證。在數(shù)字簽名應(yīng)用中,發(fā)送者的公鑰可以很方便地得到,但他的私鑰則需要嚴(yán)格保密。 </p><p> 本論文的研究內(nèi)容主要包括以下方面:</p&
4、gt;<p> ?。?)密碼學(xué)基礎(chǔ)的討論。對于密碼學(xué)其主要分為兩大塊:對稱和非對稱密碼學(xué)。</p><p> ?。?)于目前幾種比較常用的簽名體制進(jìn)行了分析和比較,包括MD5、RSA、DSS、ECDSA等簽名體制。</p><p> (3)對電子簽名技術(shù)在現(xiàn)實(shí)世界中的應(yīng)用進(jìn)行了分析和討論,包括電子郵件、電子商務(wù)等。</p><p> 關(guān)鍵字:密碼學(xué)
5、;數(shù)字簽字 ;PKI</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p><b> 1.1引言1</b></p><p><b> 1.2內(nèi)容簡介2</b></p>&
6、lt;p> 1.3數(shù)字簽名的研究意義2</p><p> 1.4 國內(nèi)外現(xiàn)狀3</p><p><b> 2 密碼學(xué)基礎(chǔ)4</b></p><p> 2.1 加密的歷史4</p><p> 2.2 數(shù)據(jù)加密4</p><p> 2.3 加密算法和密鑰5</p&g
7、t;<p> 2.4 對稱密鑰算法7</p><p> 2.5 非對稱密鑰算法7</p><p> 2.5.1非對稱密鑰技術(shù)的原理7</p><p> 2.5.2對稱密鑰技術(shù)和非對稱密鑰技術(shù)的比較8</p><p> 3 數(shù)字簽名技術(shù)9</p><p> 3.1 數(shù)字簽名簡介9&
8、lt;/p><p> 3.1.1 數(shù)字簽名的定義10</p><p> 3.1.2 數(shù)字簽名的原理11</p><p> 3.1.3 數(shù)字簽名的特點(diǎn)和功能11</p><p> 3.1.4 數(shù)字簽名的實(shí)施13</p><p> 3.2 數(shù)字簽名方案分類13</p><p> 3
9、.2.1基于數(shù)學(xué)難題的分類13</p><p> 3.2.2基于簽名用戶數(shù)量的分類14</p><p> 3.2.3基于特殊用途的分類14</p><p> 3.3 用于數(shù)字簽名的算法14</p><p> 3.3.1 RSA算法15</p><p> 3.3.2 DSS算法16</p>
10、;<p> 3.3.3 MD5算法17</p><p> 3.3.4 ECDSA簽名算法17</p><p> 3.3.5幾種常用方案的比較及分析18</p><p> 4 公鑰基礎(chǔ)設(shè)施20</p><p><b> 4.1 認(rèn)證20</b></p><p>
11、 4.2 數(shù)字證書20</p><p> 4.3 PKI組件23</p><p> 4.3.1 認(rèn)證權(quán)威機(jī)構(gòu)24</p><p> 4.3.2 注冊權(quán)威機(jī)構(gòu)24</p><p> 4.3.3 證書庫25</p><p> 4.4 證書管理25</p><p> 4.4.1
12、 證書創(chuàng)建25</p><p> 4.4.2 證書使用26</p><p> 4.4.3 證書延期26</p><p> 4.4.4 證書撤銷26</p><p> 4.5 認(rèn)證模型27</p><p> 4.5.1 層次模型27</p><p> 4.5.2 交叉信任模
13、型28</p><p> 4.5.3 網(wǎng)狀模型29</p><p> 5 數(shù)字簽名的應(yīng)用分析31</p><p> 5.1 電子郵件和數(shù)據(jù)交換31</p><p> 5.2 數(shù)字簽名在電子商務(wù)中的應(yīng)用33</p><p> 5.3在遠(yuǎn)程控制中的應(yīng)用36</p><p>
14、 5.4 數(shù)字簽名在其它方面的應(yīng)用37</p><p> 6 總結(jié)與展望38</p><p><b> 6.1 總結(jié)38</b></p><p><b> 6.2 展望38</b></p><p><b> 致 謝40</b></p>&
15、lt;p><b> 參考文獻(xiàn)41</b></p><p><b> 1 緒論</b></p><p><b> 1.1引言</b></p><p> 隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展和應(yīng)用,人類進(jìn)入了信息時(shí)代。信息技術(shù)正從政治、經(jīng)濟(jì)和社會生活的各個(gè)方面改變著人類的生存和發(fā)展方式,無
16、論是在打開電燈、乘坐飛機(jī)、應(yīng)急求助等日常事務(wù)中,還是在國家經(jīng)濟(jì)運(yùn)行、安全防御等方面,都需要依賴于復(fù)雜的信息系統(tǒng)的支持,然而這個(gè)充滿希望的時(shí)代也充斥著危險(xiǎn),當(dāng)人們通過網(wǎng)絡(luò)來交流思想、吐露內(nèi)心的秘密、商討業(yè)務(wù)、支付金錢,甚至傳遞涉及國家的重要經(jīng)濟(jì)、外交和軍事信息時(shí),都可能被他人竊取秘密。因此,如果人們希望繼續(xù)享用信息時(shí)代所帶來的種種益處,那就必須建立有效的安全防護(hù)措施,這就是所謂的信息安全。</p><p> 密碼
17、技術(shù)正是保障信息安全的有效方法之一,不僅可以利用密碼來打亂所傳達(dá)的信息,以便只有我們所希望的接受者才能真正獲取信息,而且通過密碼技術(shù)的使用,使得現(xiàn)實(shí)世界的許多事情,諸如簽字、訂合同、發(fā)送收據(jù)等都可以通過數(shù)字信號來完成。</p><p> 實(shí)際上,信息安全的范圍還是挺廣的,不過目前對于信息安全也沒有一個(gè)確切的定義。信息安全問題是在通信的過程中產(chǎn)生的,而通信又可分為物理層、控制層和服務(wù)層等多種層面。從不同的觀察角度
18、,所關(guān)心的信息安全問題又有不同:用戶關(guān)心的是涉及個(gè)人隱私和商業(yè)利益的數(shù)據(jù)在通信過程中的秘密性、完整性和真實(shí)性問題;運(yùn)營商主要關(guān)心的是系統(tǒng)可靠性問題、信息存取控制問題、病毒問題、黑客問題等等;國家安全保密部門和行政部門關(guān)心的是國家機(jī)密信息的有效過濾和防堵、避免非法泄露的問題。</p><p> 總之,信息安全應(yīng)該是綜合運(yùn)用一切手段、使信息從信源到信宿的整個(gè)過程中,在通信的各個(gè)層面和不同的觀察角度,在獲取、存貯、顯
19、示、變換、處理、傳遞等各個(gè)環(huán)節(jié)上保證信息的可靠性、可用性、可控性、完整性、秘密性和不可抵賴性的理論和技術(shù)[2]。</p><p><b> 1.2內(nèi)容簡介</b></p><p> 今天的信息社會里,科學(xué)技術(shù)的研究和發(fā)展及商業(yè)等方面,無一不與信息息息相關(guān)。所以信息就是生命,信息就是時(shí)間,信息就是財(cái)富。由于信息是共享的,信息的擴(kuò)散會產(chǎn)生社會影響,但是如果錯(cuò)誤的消息則
20、可能起到相反的作用,不但浪費(fèi)時(shí)間,而且還會浪費(fèi)金錢。</p><p> 通過數(shù)字簽名不但可以實(shí)現(xiàn)防偽的作用,而且還可以實(shí)現(xiàn)信息的防止抵賴的作用,這樣可以加大諸如網(wǎng)上交易的可信性。如果網(wǎng)絡(luò)上也解決了誠信問題,那么必然會加大物流,實(shí)現(xiàn)人力資源以及自然資源等資源的合理流動(dòng),為社會繁榮做出巨大的貢獻(xiàn)。</p><p> 1.3數(shù)字簽名的研究意義</p><p> 從數(shù)
21、字簽名實(shí)現(xiàn)的功能可以看出,數(shù)字簽名作為一項(xiàng)重要的安全技術(shù),在保證數(shù)據(jù)的機(jī)密性、完整性和不可否認(rèn)性方面起著極為重要的作用,從而保證通信雙方的利益。同時(shí),隨著Internet信息技術(shù)的飛速發(fā)展及其在商業(yè)、金融、法律、政府、軍事等部門的普及,尤其是在電子郵件(E-mail)、電子數(shù)據(jù)交換(EDI)、電子資金轉(zhuǎn)賬(EFT)、數(shù)據(jù)存儲和數(shù)據(jù)完整性檢驗(yàn)和源鑒別中的應(yīng)用,數(shù)字簽名技術(shù)的研究將越來越重要。已經(jīng)證明:在大多數(shù)情況下,安全需求不是為了數(shù)據(jù)的
22、保密,而是保證數(shù)據(jù)的可靠字能夠,數(shù)據(jù)源的證明或非否認(rèn),滿足這些要求的一種很好的方法就是使用數(shù)字簽名。</p><p> 國外由于信息安全研究時(shí)間較早,數(shù)字簽名技術(shù)在發(fā)達(dá)國家都得到了快速發(fā)展,不同國家對密碼技術(shù)有著不同的進(jìn)出口限制。無論從客觀環(huán)境的角度還是從主觀戰(zhàn)略利益的角度看,發(fā)展我國自主的密碼應(yīng)用技術(shù)都勢在必行。</p><p> 目前我國在密碼技術(shù)的應(yīng)用水平方面與國外還有一定的差距
23、,數(shù)字簽名技術(shù)的應(yīng)用尚處在初步階段,在技術(shù)、管理以及標(biāo)準(zhǔn)化方面都有大量工作要做。國內(nèi)投入實(shí)際的應(yīng)用主要集中于銀行等電子商務(wù)領(lǐng)域。數(shù)字簽名理論經(jīng)過多年的研究,提出了一些可靠的實(shí)現(xiàn)方案,但是由于這些方案多是基于實(shí)驗(yàn)研究環(huán)境,面對各種實(shí)際應(yīng)用需求應(yīng)對比較困難。</p><p><b> 1.4 國內(nèi)外現(xiàn)狀</b></p><p> 密碼和信息安全技術(shù)大量使用于實(shí)際的網(wǎng)絡(luò)
24、通信中,標(biāo)準(zhǔn)化必然是一項(xiàng)重要的工作,數(shù)字簽名的標(biāo)準(zhǔn)制訂是其必備部分之一。</p><p> 影響較大的制訂信息安全相關(guān)標(biāo)準(zhǔn)的組織有:ISO和國際電子技術(shù)委員會(IEC),美國國家標(biāo)準(zhǔn)與技術(shù)委員會(NIST)制定的美國聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)系列,Internet研究和發(fā)展共同體制制訂的標(biāo)準(zhǔn),IEEE制定的標(biāo)準(zhǔn),RSA公司制定的PKCS系列等等。</p><p> 對于我國的數(shù)字簽名
25、現(xiàn)狀:由于我國起步較晚,因此主要是借鑒國外的經(jīng)驗(yàn),而且在操作中還很不規(guī)范。鑒于此,我國于2004年8月28日在第十屆全國人民代表大會常務(wù)委員會第十一次會議通過了《中華人民共和國電子簽名法》,從而規(guī)范電子簽名的應(yīng)用[3]。</p><p><b> 2 密碼學(xué)基礎(chǔ)</b></p><p><b> 2.1 加密的歷史</b></p>
26、<p> 作為保障數(shù)據(jù)安全的一種方式,數(shù)據(jù)加密起源于公元前2000年。埃及人是最先使用特別的象形文字作為信息編碼的人。對信息進(jìn)行編碼曾被凱撒大帝使用,也曾用于歷次戰(zhàn)爭中,包括美國獨(dú)立戰(zhàn)爭、美國內(nèi)戰(zhàn)和兩次世界大戰(zhàn)。最廣為人知的編碼機(jī)器是German Enigma機(jī),在第一次世界大戰(zhàn)中德國人利用它創(chuàng)建了加密信息。此后,由于Alan Turing和Ultra計(jì)劃以及其他人的努力,終于對德國人的密碼進(jìn)行了破譯。當(dāng)初,計(jì)算機(jī)的研究
27、就是為了破解德國人的密碼,當(dāng)時(shí)人們并沒有想到計(jì)算機(jī)給今天帶來的信息革命。隨著計(jì)算機(jī)的發(fā)展,運(yùn)算能力的增強(qiáng),過去的密碼都變得十分簡單了,于是人們又不斷地研究出了新的數(shù)據(jù)加密方式如對稱密鑰算法和公開密鑰算法。</p><p> 今天,密碼學(xué)已經(jīng)從最初的軍事和外交領(lǐng)域走向公開,它是結(jié)合數(shù)學(xué)、計(jì)算機(jī)科學(xué)、電子與通信等諸多學(xué)科于一身的交叉學(xué)科,它不僅具有保證信息機(jī)密性的信息加密功能,而且具有數(shù)字簽名、身份驗(yàn)證、秘密分存、
28、系統(tǒng)安全等功能。所以,使用密碼技術(shù)不僅可以保證信息的機(jī)密性,而且可以保證信息的完整性和確證性,防止信息被篡改、偽造和假冒。</p><p> 密碼學(xué)是以研究秘密通信為目的的。即研究對傳輸信息采用何種秘密的變換以防止第三者對信息的竊取。它作為數(shù)學(xué)的一個(gè)分支,包括密碼編碼學(xué)和密碼分析學(xué)兩部分。使消息保密的技術(shù)和科學(xué)叫做密碼編碼學(xué),密碼分析學(xué)就是破譯密文的科學(xué)和技術(shù),即揭穿偽裝。這兩者是互相促進(jìn),共同發(fā)展的。<
29、/p><p> 2.2 數(shù)據(jù)加密[4]</p><p> 盡管加密是為了安全目的,對信息進(jìn)行編碼和解碼這個(gè)概念十分簡單,但在這里仍需對其進(jìn)行解釋。數(shù)據(jù)加密的基本過程包括加密和解密。對被稱為“明文”的可讀信息采用某種方法進(jìn)行偽裝以隱藏它的內(nèi)容,變換成稱為“密文”或“密碼”的代碼形式,這個(gè)過程叫做加密。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來的形式的過程。如圖2-1所示。</p&
30、gt;<p><b> 圖2-1加密和解密</b></p><p> 2.3 加密算法和密鑰</p><p> 密碼算法(algorithm)是用于加密和解密的數(shù)學(xué)函數(shù)。(通常情況下,有兩個(gè)相關(guān)的函數(shù):一個(gè)用于加密,另一個(gè)用于解密)。</p><p> 如果算法的保密性是基于保持算法的秘密,即算法必須保密,這種算法稱為受限
31、制的(restricted)算法。這種算法屬于最初級的加密方法,不能滿足現(xiàn)代的加密要求。大的或經(jīng)常變換的用戶組織不能使用它們,因?yàn)槿绻幸粋€(gè)用戶離開這個(gè)組織,其他的用戶就必須改換另外不同的算法。如果有人無意暴露了這個(gè)秘密,所有人都必須改變他們的算法。而且,受限制的密碼算法不可能進(jìn)行質(zhì)量控制或標(biāo)準(zhǔn)化。每個(gè)用戶組織必須有他們自己的惟一算法。這樣的組織不可能采用流行的硬件或軟件產(chǎn)品,因?yàn)楦`聽者可以買到這些流行產(chǎn)品并學(xué)習(xí)算法。</p>
32、;<p> 現(xiàn)代密碼學(xué)用密鑰(key)解決了這個(gè)問題,密鑰用K表示。K可以是很多數(shù)值里的任意值。密鑰K的可能值的范圍叫做密鑰空間(keyspace) [5]。加密和解密運(yùn)算都是用這個(gè)密鑰(即運(yùn)算都依賴于密鑰,并用K作為下標(biāo)表示),這樣,加/解密函數(shù),如式(2.1,2.2,2.3)所示。 Ex(M)=C
33、 (2.1) Dx(C)=M (2.2) </p><p> Dx(Ex(M))=M (2.3) </p><p> 圖2-2使用一個(gè)密鑰的
34、加/解密</p><p> 有些算法使用的加密密鑰與解密密鑰不相同,如圖2-3所示,也就是說加密密鑰K1與相應(yīng)的解密密鑰K2不同,在這種情況下,如式(2.4,2.5,2.6)所示。</p><p> EK1(M)=C (2.4) </p><p> DK2(C)=M (2.5
35、) </p><p> DK2(EK1(M))=M (2.6) </p><p> 圖2-3使用兩個(gè)密鑰的加/解 所有這些算法的安全性都基于密鑰的安全性,而不是基于算法細(xì)節(jié)的安全
36、性。這就意味著算法可以公開,也可以被分析,可以大量生產(chǎn)使用算法的產(chǎn)品,即使偷聽者知道算法也沒有關(guān)系。只要他不知道使用的具體密鑰,就不能閱讀消息。</p><p> 2.4 對稱密鑰算法</p><p> 對稱密鑰算法有時(shí)又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數(shù)對稱密鑰算法中,加/解密密鑰是相同的。這些算法也叫秘密密鑰算法或單密鑰算法,它要求發(fā)送者和
37、接收者在安全通信之前,商定一個(gè)密鑰。對稱密鑰算法的安全性依賴于密鑰,只要通信需要保密,密鑰就必須保密。</p><p> 對稱算法可分為兩類。對位流或字節(jié)流進(jìn)行操作運(yùn)算的算法稱為序列密碼或流密碼。另一類算法是對明文的一組位進(jìn)行運(yùn)算,這些位組稱為分組或塊,相應(yīng)的算法稱為分組密碼或塊密碼。</p><p> 2.5 非對稱密鑰算法</p><p> 2.5.1非對
38、稱密鑰技術(shù)的原理</p><p> 1976年,美國學(xué)者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協(xié)議,允許在不安全的媒體上的通訊雙方交換信息,安全地達(dá)成一致的密鑰,這就是“公開密鑰系統(tǒng)”。相對于“對稱加密算法”這種方法也叫做“非對稱加密算法”。</p><p> 與對稱加密算法不同,非對稱加密算法需要兩個(gè)密鑰:公開密鑰和私有密鑰。公開密鑰與私有密鑰是
39、一對,如果用公開密鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公開密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫做非對稱加密算法[6]。</p><p> 非對稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把
40、專用密鑰對加密后的信息進(jìn)行解密。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息。</p><p> 非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費(fèi)時(shí)間長、速度慢,它不適合于對文件加密而只適用于對少量數(shù)據(jù)進(jìn)行加密。</p><p> 最常用的非對稱密鑰加密算法是RSA算法,它是由Rivest,Shamir和Adleman提出的。盡管還有其他一些非對稱
41、加密方案,但是RSA算法是當(dāng)前XML安全標(biāo)準(zhǔn)中規(guī)定的惟一一種這樣的加密方案。</p><p> 2.5.2對稱密鑰技術(shù)和非對稱密鑰技術(shù)的比較</p><p> ?。?)在加密、解密的處理效率方面,對稱密鑰技術(shù)優(yōu)于非對稱密鑰技術(shù)。因?yàn)橐话鉊ES密鑰的長度只有56位,可以利用軟件和硬件實(shí)現(xiàn)高速處理;RSA算法需要進(jìn)行諸如200位整數(shù)的乘冪和求模等多倍字長的處理,處理速度明顯慢于DES算法。&
42、lt;/p><p> ?。?)在密鑰的管理方面,非對稱密鑰技術(shù)比對稱密鑰技術(shù)更加優(yōu)越。因?yàn)榉菍ΨQ密鑰技術(shù)可采用公開形式分配密鑰,對加密密鑰的更新也很容易,并且對不同的通信對象,只需對自己的解密密鑰保密即可;對稱密鑰技術(shù)要求通信前對密鑰進(jìn)行秘密分配,密鑰的更換更困難,對不同的通信對象,對稱密鑰要產(chǎn)生和管理不同的密鑰。</p><p> ?。?)在安全性方面,DES和RSA算法的安全性都很好,還沒
43、有在短時(shí)間內(nèi)破譯它們的有效方法。</p><p> ?。?)在簽名和認(rèn)證方面,對稱密鑰算法從原理上不可能實(shí)現(xiàn)數(shù)字簽名和身份認(rèn)證,但非對稱密鑰算法能夠容易地進(jìn)行。因此,通常把兩種技術(shù)結(jié)合起來實(shí)現(xiàn)最佳性能,即用公鑰算法技術(shù)在通信雙方之間傳送通信與對稱密鑰,用對稱密鑰來對實(shí)際傳輸?shù)臄?shù)據(jù)加密解密[7]。</p><p><b> 3 數(shù)字簽名技術(shù)</b></p>
44、;<p> 3.1 數(shù)字簽名簡介</p><p> 大家都知道,只要會寫字的人,他寫出來的字就會存在一個(gè)筆跡問題,只要他在某個(gè)地方寫上了自己的名字,那意義就不同凡響了(尤其當(dāng)他又是個(gè)大人物的時(shí)候),所以很多使用各種手段想要得到“某首長”的批示。數(shù)字簽名就是模仿這個(gè)原理而來。所謂數(shù)字簽名,就是只有信息發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時(shí)也是對發(fā)送者發(fā)送信息真實(shí)性的一個(gè)證明。其實(shí)
45、歸根到底,在書面文件上簽名有兩個(gè)作用:一是因?yàn)樽约旱暮灻y以否認(rèn),從而確定了文件已簽署這一事實(shí);二是因?yàn)楹灻灰酌胺?,從而確定了文件是真實(shí)的這一事實(shí)。因此,數(shù)字簽名就可以用來防止電子信息因容易被修改而有人造假,或冒用他人名義發(fā)送信息,或發(fā)出(收到)信件后又加以否認(rèn)等情況的發(fā)生。結(jié)合散列函數(shù)和非對稱加密算法,可以實(shí)現(xiàn)數(shù)字簽名。數(shù)字簽名是一個(gè)加密的信息摘要,附在消息后面,以確認(rèn)發(fā)送者的身份和該信息的完整性[8]。</p>&l
46、t;p> 舉例說明,若A向B發(fā)送消息,其創(chuàng)建數(shù)字簽名的步驟為(如下圖3-1):</p><p> (1)利用散列函數(shù)計(jì)算原消息的摘要。</p><p> ?。?)用自己的私鑰加密摘要,并將摘要附在原消息的后面。</p><p> B接收到消息,對數(shù)字簽名進(jìn)行驗(yàn)證的步驟為(如上圖3-2所示):</p><p> ?。?)將消息中的原
47、消息及其加密后的摘要分離出來。</p><p> ?。?)使用A的公鑰將加密后的摘要解密。</p><p> ?。?)利用散列函數(shù)重新計(jì)算原消息的摘要。</p><p> ?。?)將解密后的摘要和自己用相同散列算法生成的摘要進(jìn)行比較,若兩者相等,說明消息在傳遞過程中沒有被篡改,否則,消息不可信。</p><p> 了解數(shù)字簽名及其驗(yàn)證的過程
48、后,可以發(fā)現(xiàn)這一技術(shù)帶來了以下三方面的安全性:</p><p> ?。?)信息的完整性:由散列函數(shù)的特性可知,若信息在傳輸過程中遭到篡改,B重新計(jì)算出的摘要必然不同于用A的公鑰解密出的摘要,所以B就確信信息不可信。</p><p> ?。?)信源確認(rèn):因?yàn)楣€和私鑰之間存在對應(yīng)關(guān)系,既然B能用A的公鑰解開加密的摘要,并且其值與B重新計(jì)算出的摘要一致,則該消息必然是A發(fā)出的[9]。</
49、p><p> ?。?)不可抵賴性:這一點(diǎn)實(shí)際上是第2點(diǎn)的理由闡述。因?yàn)橹挥蠥持有自己的私鑰,其它人不可能冒充他的身份,所以A不可能否認(rèn)他發(fā)過這一則消息。</p><p> 3.1.1 數(shù)字簽名的定義</p><p> 數(shù)字簽名是指附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所做的密碼變換,這種數(shù)據(jù)或變換能使數(shù)據(jù)單元的接收者確認(rèn)數(shù)據(jù)單元的來源和數(shù)據(jù)的完整性,并保護(hù)數(shù)據(jù),
50、防止被人(如接收者)進(jìn)行偽造。</p><p> 簽名機(jī)制的本質(zhì)特征是該簽名只有通過簽名者的私有信息才能產(chǎn)生,也就是說,一個(gè)簽名者的簽名只能惟一的由他自己產(chǎn)生。當(dāng)收發(fā)雙方發(fā)生爭議時(shí)候,第三方(仲裁機(jī)構(gòu))就能夠根據(jù)消息上的數(shù)字簽名來裁定這條消息是否確實(shí)由發(fā)送方發(fā)出,從而實(shí)現(xiàn)不可否認(rèn)性安全服務(wù)[10]。</p><p> 3.1.2 數(shù)字簽名的原理</p><p>
51、 數(shù)字簽名技術(shù)的實(shí)現(xiàn)方法有多種:使用對稱密碼體制的數(shù)字簽名、使用公開密鑰密碼技術(shù)的數(shù)字簽名、使用公開密鑰密碼技術(shù)和雜湊函數(shù)的數(shù)字簽名。實(shí)際實(shí)現(xiàn)過程中,第一種方案需要信任的中間人,比較繁瑣;而單純采用公開密鑰密碼算法對長文件簽名效率太低,將其與雜湊函數(shù)結(jié)合可以節(jié)約時(shí)間。步驟如下:</p><p> (l)發(fā)送方A用事先商量好的哈希函數(shù)算法計(jì)算消息的消息摘要。</p><p> (2)A
52、用其私鑰對消息摘要加密,然后對摘要值簽名。</p><p> (3)A將消息及簽名后的消息摘要發(fā)送給接收方B。</p><p> (4)B首先用和A事先商量好的哈希算法計(jì)算收到的消息摘要,再用A的公鑰解密A簽名的摘要值,對比兩個(gè)計(jì)算結(jié)果,若一致,則簽名有效。</p><p> 這種數(shù)字簽名因?yàn)橹恍鑼V颠M(jìn)行簽名,速度有了很大提高。而根據(jù)哈希特性,不同消息很難
53、產(chǎn)生相同的哈希值,因此確保對哈希值簽名和對消息簽名一樣安全。同時(shí),簽名和源消息可以分開存儲,接收者對源消息和哈希值的存儲量要求大大降低[11]。</p><p> 3.1.3 數(shù)字簽名的特點(diǎn)和功能</p><p> 數(shù)字簽名有如下特點(diǎn):</p><p> (1)接收者能夠確認(rèn)或證實(shí)簽名者的簽名;</p><p> (2)任何人都不能偽
54、造簽名;</p><p> (3)簽名者發(fā)出簽名的消息后,不能否認(rèn)自己所簽發(fā)的消息;</p><p> (4)第三方可以確認(rèn)收發(fā)雙方之間的消息傳遞,但不能偽造這一過程,這樣當(dāng)通信雙方關(guān)于簽名的真?zhèn)伟l(fā)生爭執(zhí)時(shí),可由受信任的第三方來解決雙方的爭執(zhí)。</p><p> 數(shù)字簽名機(jī)制作為保障網(wǎng)絡(luò)信息安全的重要手段,可以解決偽造、篡改、冒充、抵賴等問題。所提供的功能主要
55、有以下幾方面:</p><p> (1)防偽造:其他人不能偽造對消息的簽名,因?yàn)楹灻荑€即私鑰只有簽名者自己知道,其他人不可能構(gòu)造出正確的簽名數(shù)據(jù)。</p><p> (2)防篡改:數(shù)字簽名與原始文件或其摘要一起發(fā)送給接收者,一旦信息被篡改,接收者可通過計(jì)算摘要和驗(yàn)證簽名來判斷該文件無效,從而保證了數(shù)據(jù)的完整性。</p><p> (3)防重放攻擊:如在電子商
56、務(wù)中,公司A向公司B發(fā)送了一份商品定單,如果有攻擊者中途截獲定單并發(fā)送多份給公司B,這樣會導(dǎo)致公司B以為公司A訂購了多批商品。在數(shù)字簽名中,通常采用了對簽名報(bào)文加蓋時(shí)間戳或添加處理流水號等技術(shù),可以防止這種重放攻擊。</p><p> ?。?)身份鑒別:這是手寫簽名和數(shù)字簽名最基本的功能。手書簽名時(shí)一般通過對方的筆跡或現(xiàn)場驗(yàn)證;在數(shù)字簽名中,接收方同樣可以鑒別發(fā)送方的身份。</p><p>
57、; (5)防抵賴:數(shù)字簽名可鑒別身份,不可能偽造,則簽名后的報(bào)文可作為簽名者簽名動(dòng)作的證據(jù),防止抵賴。要防止接收者的抵賴,可以在數(shù)字簽名系統(tǒng)中要求接收者返回一個(gè)自己簽名的表示收到的報(bào)文,給發(fā)送者或受信任第三方。由此雙方均不可抵賴。</p><p> (6)機(jī)密性:數(shù)字簽名中報(bào)文不要求加密,但在網(wǎng)絡(luò)傳輸中,可以將報(bào)文信息加密已保證信息的機(jī)密性。</p><p> 數(shù)字簽名的應(yīng)用比較廣泛
58、,例如網(wǎng)上銀行通過Internet向可戶提供信息查詢、網(wǎng)上支付、資金劃轉(zhuǎn)、信貸業(yè)務(wù)等金融服務(wù);電子商務(wù)能完成企業(yè)間、企業(yè)與消費(fèi)者之間在網(wǎng)上商業(yè)活動(dòng),網(wǎng)上證券能在網(wǎng)上完成股票交易、網(wǎng)上證券信息服務(wù)、網(wǎng)上銀行/證券轉(zhuǎn)賬業(yè)務(wù)等。所有這些都需要身份鑒別、防篡改、防抵賴等功能,即使用數(shù)字簽名[12]- [16]。</p><p> 3.1.4 數(shù)字簽名的實(shí)施</p><p> 實(shí)現(xiàn)數(shù)字簽名有很多
59、方法,目前采用較多的是非對稱加密技術(shù)和對稱加密技術(shù)。雖然這兩種技術(shù)實(shí)施步驟不盡相同,但大體的工作程序是一樣的。用戶首先可以下載或者購買數(shù)字簽名軟件,然后安裝在個(gè)人電腦上。在產(chǎn)生密鑰對后,軟件自動(dòng)向外界傳送公開密鑰。由于公共密鑰的存儲需要,所以需要建立一個(gè)鑒定中心(CA)完成個(gè)人信息及其密鑰的確定工作。鑒定中心是一個(gè)政府參與管理的第三方成員,以便保證信息的安全和集中管理。用戶在獲取公開密鑰時(shí),首先向鑒定中心請求數(shù)字確認(rèn),鑒定中心確認(rèn)用戶身
60、份后,發(fā)出數(shù)字確認(rèn),同時(shí)鑒定中心向數(shù)據(jù)庫發(fā)送確認(rèn)信息。然后用戶使用私有密鑰對所傳信息簽名,保證信息的完整性、真實(shí)性,也使發(fā)送方無法否認(rèn)信息的發(fā)送,之后發(fā)向接收方;接收方接收到信息后,使用公開密鑰確認(rèn)數(shù)字簽名,進(jìn)入數(shù)據(jù)庫檢查用戶確認(rèn)信息的狀況和可信度;最后數(shù)據(jù)庫向接收方返回用戶確認(rèn)狀態(tài)信息。不過,在使用這種技術(shù)時(shí),簽名者必須注意保護(hù)好私有密鑰,因?yàn)樗枪_密鑰體系安全的重要基礎(chǔ)。如果密鑰丟失,應(yīng)該立即報(bào)告鑒定中心取消認(rèn)證,將其列入確認(rèn)取消
61、列表之中。其次,鑒定中心必須能夠迅速確認(rèn)用戶的身份及其密鑰的關(guān)系。一旦接收到用戶請求,鑒定中心要立即認(rèn)</p><p> 3.2 數(shù)字簽名方案分類</p><p> 3.2.1基于數(shù)學(xué)難題的分類</p><p> 根據(jù)公開密鑰密碼算法建立的數(shù)學(xué)基礎(chǔ),數(shù)字簽名方案可分為基于大整數(shù)素因子分解問題的簽名方案(如RSA)和基于有限域離散對數(shù)問題的簽名方案(如DSA)。
62、</p><p> 3.2.2基于簽名用戶數(shù)量的分類</p><p> 根據(jù)簽名用戶的數(shù)量,數(shù)字簽名可分為單個(gè)用戶簽名的數(shù)字簽名方案和多個(gè)用戶簽名的數(shù)字簽名方案(或稱多重簽名方案)。多重簽名方案根據(jù)簽名的過程不同,可分為順序多重簽名和廣播多重簽名兩種。</p><p> 3.2.3基于特殊用途的分類</p><p> (1)群簽名:群
63、體的一個(gè)成員以整個(gè)群體的名義進(jìn)行數(shù)字簽名,并且驗(yàn)證者能夠確認(rèn)簽名者的身份。</p><p> ?。?)盲簽名:當(dāng)簽名者簽署一份不知道內(nèi)容(或不必知道內(nèi)容)的文件時(shí)需要使用盲簽名。</p><p> (3)門限簽名:在n特成員的群體中,至少有t個(gè)成員才能代表群體對文件進(jìn)行有效的數(shù)字簽名。</p><p> ?。?)代理簽名:允許密鑰持有者授權(quán)給第三方,該第三方能夠代
64、表密鑰持有者進(jìn)行數(shù)字簽名。</p><p> (5)門限代理簽名:該方案是門限簽名和代理簽名的綜合應(yīng)用。目的是控制代理簽名中授權(quán)的第三方不會濫用簽名,該方案把密鑰分配給n個(gè)代理者,只有超過t個(gè)代理者聯(lián)合才可以重構(gòu)密鑰進(jìn)行簽名。</p><p> ?。?)不可否認(rèn)的門限代理簽名:用來防止門限代理簽名中的t個(gè)簽名者同謀重構(gòu)簽名,該方案中參與代理簽名的t人均不可否認(rèn)其簽名。</p>
65、<p> (7)故障停止式簽名:該方案是針對一個(gè)非常強(qiáng)的攻擊者能夠偽造一個(gè)簽名的可能性而設(shè)計(jì)的,它提供一個(gè)增強(qiáng)的安全性,即使攻擊者能夠偽造關(guān)于某一消息的簽名,隨后也能以很高的概率證明攻擊者的簽名是偽造的[18]。</p><p> 3.3 用于數(shù)字簽名的算法</p><p> 事實(shí)上數(shù)字簽名不是一種具體的技術(shù)實(shí)現(xiàn),它是基于各種加密技術(shù)組合的解決方案。數(shù)字簽名包括簽名算法
66、和驗(yàn)證算法,目前主要使用的簽名算法有RSA和3DES,還有哈希算法。最常用的非對稱密鑰加密算是RSA算法,它是由Rivest,Shamir和Adleman提出的。盡管還有其他一些非對稱加密方案,但是RSA算法是當(dāng)前XML安全標(biāo)準(zhǔn)中規(guī)定的惟一一種這樣的加密方案。</p><p> 3.3.1 RSA算法</p><p> RSA的工作原理:首先隨機(jī)生成一個(gè)公鑰和私鑰對,然后使用生成的公鑰
67、通過RSA算法加密數(shù)據(jù);最后用生成的私鑰解密被加密的數(shù)據(jù)。它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名 :Ron Rivest, Adi Shamir和Leonard man。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。</p><p><b> RSA算法</b></p><
68、;p> RSA是完整的加密系統(tǒng),它支持公鑰/私鑰對的生成、加密以及數(shù)字簽名。Carol為了加密消息以發(fā)送給Bob,Bob首先必須生成一個(gè)密鑰對,并和Carol共享公鑰。公鑰由兩個(gè)數(shù)字組成:模數(shù)n和公共指數(shù)e。私鑰也由兩個(gè)數(shù)字組成:相同的模數(shù)n和私有指數(shù)d。通過隨機(jī)選擇兩個(gè)大的質(zhì)數(shù)p和q,并把它們一起相乘,就可以創(chuàng)建模數(shù)。所選擇的指數(shù)e必須與(p-1)*(q-1)互質(zhì)(也就是說e與這個(gè)數(shù)必須不具有相同的因數(shù))。質(zhì)數(shù)d必須滿足等式d
69、*e mod [(p-l)*(q-1)]=1。然后,如果Carol的明文是M,那么她就能夠通過計(jì)算 C=Me mod n,把它加密成密文C。Bob通過計(jì)算 M=Cd mod n就可以恢復(fù)明文。</p><p> 第一步Bob選擇大的質(zhì)數(shù)p和q,并使它們相乘,從而得到n。</p><p> 第二步Bob選擇一個(gè)公共指數(shù)e,它與(p-1)*(q-1)互質(zhì)。</p><p
70、> 第三步Bob計(jì)算私有指數(shù)d=e- 1 mod [(p-l)*(q-1)]。</p><p> 第四步Bob與Carol共享公鑰,數(shù)字n和e。</p><p> 第五步Carol使用 C=Me mod n把M加密成C,并把C發(fā)送給Bob。</p><p> 第六步Bob使用 M=Cd mod n把C解密成M。</p><p>
71、 注意:如果密文C在傳輸過程中被竊聽了,別人想從它推斷出M,使用M=Cd mod n,其中只有d為未知數(shù),想推出d,d=e-1mod[(p-1)*(q-1)]。就必須知道p和q,它們只有分解n才能得到。</p><p><b> RSA的安全性</b></p><p> RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆]有證明破解
72、RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前,RSA的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。對于短期安全性,n的長度至少應(yīng)該為1024比特,而長期安全性則要求n至少為2048比特。</p><p> 3.3.2 DSS算法[19]</
73、p><p> 討論DSS簽名體制實(shí)際上討論其對應(yīng)的DSA算法。DSA(Digital Signature Algorithm,數(shù)字簽名算法,用作數(shù)字簽名標(biāo)準(zhǔn)的一部分),它是另一種公開密鑰算法,它不能用作加密,只用作數(shù)字簽名。DSA使用公開密鑰,為接受者驗(yàn)證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份。它也可用于由第三方去確定簽名和所簽數(shù)據(jù)的真實(shí)性。DSA算法的安全性基于解離散對數(shù)的困難性,這類簽字標(biāo)準(zhǔn)具有較大的兼容性和適用性,成
74、為網(wǎng)絡(luò)安全體系的基本構(gòu)件之一。</p><p> DSA簽名算法中用到了以下參數(shù):</p><p> p是L位長的素?cái)?shù),其中L從512到1024且是64的倍數(shù)。q是160位長且與p-1互素的因子。其中是小于p-1并且滿足大于1的任意數(shù)。x是小于q的數(shù)。</p><p> 另外,算法使用一個(gè)單向散列函數(shù)H (m)。標(biāo)準(zhǔn)指定了安全散列算法(SHA)。三個(gè)參數(shù)p,q
75、和h 是公開的,且可以被網(wǎng)絡(luò)中所有的用戶公有。私人密鑰是x,公開密鑰是y。</p><p><b> 對消息m簽名時(shí):</b></p><p> (1)發(fā)送者產(chǎn)生一個(gè)小于q的隨機(jī)數(shù)k。</p><p> (2)發(fā)送者產(chǎn)生:r和s就是發(fā)送者的簽名,發(fā)送者將它們發(fā)送給接受者。</p><p> (3)接受者通過計(jì)算來
76、驗(yàn)證簽名:如果v=r,則簽名有效。</p><p><b> DSA簽名:</b></p><p><b> (1)公開密鑰:</b></p><p> ?、賞:512位到1024位的素?cái)?shù)。</p><p> ?、趒 :160位長,并與p-1互素的因子。</p><p>
77、 其中,h 是小于p-1并且滿足大于1的任意數(shù)。</p><p> (2)私人密鑰:x小于q。</p><p> (3)簽名:k選取小于q的隨機(jī)數(shù)。</p><p> (4)驗(yàn)證:如果v=r,則簽名被驗(yàn)證。</p><p> 3.3.3 MD5算法</p><p> 經(jīng)過一些初始化處理后,MD5以512位分
78、組來處理輸入文本,每一分組又劃分為16個(gè)32位子分組。首先填充消息使其長度恰好為一個(gè)比512位的倍數(shù)僅小64位的數(shù)。填充方法是附一個(gè)1在消息后面,后接所要求的多個(gè)O,然后在其后附上64位的消息長度(填充前)。這兩步的作用是使消息長度恰好是512位的整數(shù)倍(算法的其余部分要求如此),同時(shí)確保不同的消息在填充后不相同。接著進(jìn)行算法的主循環(huán),循環(huán)的次數(shù)是消息中512位消息分組的數(shù)目。主循環(huán)有四輪(MD4只有三輪),每輪很相似。算法的輸出由四個(gè)
79、32位分組組成,將它們級聯(lián)形成一個(gè)128位散列值。</p><p> 3.3.4 ECDSA簽名算法</p><p> 橢圓曲線數(shù)字簽名算法(ECDSA)設(shè)計(jì)的數(shù)學(xué)原理是基于橢圓曲線離散對數(shù)問題的難解性。EC點(diǎn)上離散對數(shù)的研究現(xiàn)狀表明:所使用的ECDSA密鑰至少需要192比特,才能保證有足夠的中長期安全。橢圓曲線是指由韋爾斯特拉斯(Weierstrass)方程:</p>
80、<p> y2+a1xy+a3y=x3+a2x2+a4x+a6</p><p> 所確定的平面曲線。定義F為一個(gè)域,其中ai∈F,i=1,2,…6。F可為有理解域、實(shí)數(shù)域、復(fù)數(shù)域,也可為有限域GF(q)。在橢圓曲線密碼體制中,F(xiàn)一般為有限域。由有限域橢圓曲線上的所有點(diǎn)外加無窮遠(yuǎn)點(diǎn)組成的集合,連同按照“弦切法”所定義的加法運(yùn)算構(gòu)成一個(gè)有限Abel群。在此有限Abel群上,定義標(biāo)量乘法(Scalar M
81、ultiplication)為:mP=P+P+…P(m個(gè)P相加);若mP=Q,定義:m=logpQ為橢圓曲線點(diǎn)群上的離散對數(shù)問題,此問題無多項(xiàng)式時(shí)間內(nèi)的求解算法。ECDSA的設(shè)計(jì)正是基于這一問題的難解性。</p><p> 在此,討論定義在有限域GF(2m)上的橢圓曲線數(shù)字簽名算法。今定義橢圓曲線方程為:y2+xy=x3+ax2+b a,b∈GF(2m)則橢圓曲線的域參數(shù)為D(m,f(x),a,b,P,n)其中
82、,f(x)為GF(2m)的多項(xiàng)式基表示的不可約多項(xiàng)式。P表示橢圓曲線上的一個(gè)基點(diǎn),n為素?cái)?shù)且為點(diǎn)G的階。</p><p> ECDSA算法密鑰對的生成過程為:在區(qū)間[1,n-1]上選擇一個(gè)隨機(jī)數(shù)d,計(jì)算Q=dP,則Q為公鑰,d為私鑰。</p><p> ECDSA算法的簽名生成過程可簡述如下:若簽名的消息為e,則在區(qū)間[1,n-1]上選擇一個(gè)隨機(jī)數(shù)k,計(jì)算kG=(xl,y1);r=xl
83、 mod n;s=k-1(e+dr)mod n。如果r或s為零,則重新計(jì)算,否則生成的簽名信息為(r,s)。</p><p> ECDSA算法的簽名驗(yàn)證過程可簡述如下:</p><p> 若公鑰為Q,簽名的消息為e計(jì)算:w=s-1 mod n;u1=ew mod n;u2=rw mod n;X=u1P+u2Q=(xl,y1)。如果X為無窮遠(yuǎn)點(diǎn),則拒絕簽名,否則計(jì)算:v=xl mod n
84、;如果v=r,則接受簽名,否則拒絕簽名。</p><p> 3.3.5幾種常用方案的比較及分析[20]</p><p> (1)MD5簽名體制與DSS簽名體制的比較</p><p> MD5簽名體制中,MD5算法是對MD4消息摘要算法的擴(kuò)展,對任意長度的輸入計(jì)算出一個(gè)128比特的散列值。而DSS簽名體制中,其對應(yīng)的散列算法有SHA-1、SHA-256、SHA-
85、384、SHA-512,這些算法分別產(chǎn)生160、256、384、512比特的散列值。數(shù)字簽名為了實(shí)現(xiàn)防偽的作用,其原理就應(yīng)用到了單向散列函數(shù)的不可逆性,即對于任意的輸入不可能產(chǎn)生兩個(gè)相同的散列值,從而起到指紋的作用。一旦發(fā)現(xiàn)產(chǎn)生相同散列輸出的任意的兩個(gè)輸入,就認(rèn)為該散列的生日攻擊是成功的。目前,我國的王小云教授已經(jīng)破解了MD5和SHA-1。所以,只有采取提高摘要的長度,從而提高生日攻擊的難度。在MD5簽名體制和DSS簽名體制中,只有后者
86、提供了擴(kuò)展摘要的散列的算法,結(jié)論不言而明。當(dāng)然這并不意味著可以高枕無憂了,而是應(yīng)該未雨綢繆,尋找新的雜湊函數(shù)和改進(jìn)措施,提高安全性。</p><p> (2)DSS簽名體制與RSA簽名體制</p><p> DSS簽名體制中,它指定了一種數(shù)字簽名算法是美國政府的Capstone計(jì)劃的一部分,該簽名算法是Schnorr和ElGamal簽名算法的變種。DSA算法的安全性也依賴于整數(shù)有限域上
87、的離散對數(shù)問題,安全強(qiáng)度和速度均低于RSA算法,其優(yōu)點(diǎn)是不涉及專利問題。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開,這樣,當(dāng)使用別人的P和Q時(shí),即使不知道私鑰,也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是做了手腳,而RSA做不到。另外,對于DSA,它是另一種公開密鑰算法,但它不能用作加密,只能用作數(shù)字簽名。</p><p> (3)RSA簽名體制與ECDSA簽名體制</p><p> RSA簽名體制的數(shù)
88、學(xué)基礎(chǔ)是基于數(shù)論中大素?cái)?shù)分解的困難性。橢圓曲線數(shù)字簽名算法(ECDSA)設(shè)計(jì)的數(shù)學(xué)原理是基于橢圓曲線離散對數(shù)問題的難解性。相對于RSA等密碼體制而言,橢圓曲線加密體制是比較新的技術(shù)。橢圓曲線數(shù)字簽名算法(ECDSA)和RSA與DSA的功能相同,并且數(shù)字簽名的產(chǎn)生與認(rèn)證速度要比RSA與DSA快。</p><p> 于1985年,N.Kobliz和Miller提出將橢圓曲線用于密碼算法,分別利用有限域上橢圓曲線的點(diǎn)
89、構(gòu)成的群實(shí)現(xiàn)了離散對數(shù)密碼算法。橢圓曲線密碼其根據(jù)是有限域上的橢圓曲線上的點(diǎn)群中的指數(shù)級的難度。從目前已知的最好求解算法來看,160比特的橢圓曲線密碼算法的安全性相當(dāng)于1024比特的RSA算法。此后,有人在橢圓曲線密碼算法實(shí)現(xiàn)了類似ELGamal的加密算法,以及可以恢復(fù)明文的數(shù)字簽名方案。另外,人們也在探索在橢圓曲線上實(shí)現(xiàn)類似RSA算法。</p><p><b> 4 公鑰基礎(chǔ)設(shè)施</b>
90、;</p><p> 公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure)簡稱PKI,PKI的基本定義十分簡單。所謂PKI就是一個(gè)支持公鑰管理體制的基礎(chǔ)設(shè)施,提供鑒別、加密、完整性和不可否認(rèn)性服務(wù)的基礎(chǔ)設(shè)施。</p><p> 在講解PKI的各個(gè)組成部分之前,我們有必要先認(rèn)識一下認(rèn)證和數(shù)字證書,之后還將介紹幾種常用的認(rèn)證模型。</p><p>&l
91、t;b> 4.1 認(rèn)證</b></p><p> 公鑰密碼術(shù)可能會有密鑰分發(fā)問題,但并不像對稱密碼術(shù)的密鑰分發(fā)問題嚴(yán)重。公鑰并不需要像對稱密鑰那樣經(jīng)常改變。盡管對稱密鑰在每次消息加密之后都應(yīng)改變,然而,非對稱公鑰和私鑰能夠用于很多數(shù)字簽名和數(shù)字信封中。這要?dú)w功于破解非對稱密鑰相當(dāng)困難,而且攻擊者也難于在使用相同密鑰進(jìn)行多次對稱加密的過程中通過相似性而獲得好處。</p><
92、p> 更為重要的是,公鑰的真實(shí)性可以通過可信的第三方建立。如果Ezra確定自己所有的公鑰屬于Fran,她就可以非常有信心地使用這個(gè)密鑰。受到Fran私鑰的擁有者和Ezra公鑰用戶這兩方所信任的第三方可以擔(dān)保公鑰的真實(shí)性。公鑰所有者身份的保證叫做公鑰認(rèn)證(Certification)。認(rèn)證公鑰的個(gè)人或組織叫做認(rèn)證權(quán)威機(jī)構(gòu)(CA,Certificate Authority)。</p><p> 公鑰加密的最
93、大優(yōu)點(diǎn)是無需預(yù)先建立通信者之間的關(guān)系,而這正是對稱加密遇到的問題。然而,現(xiàn)在可以看到,公鑰加密需要預(yù)先的關(guān)系。但這個(gè)關(guān)系不必是非對稱密鑰用戶之間的。Fran和Ezra雙方必須都與CA建立關(guān)系。這就是一種信任關(guān)系。Ezra必須相信CA已經(jīng)正確地把Fran認(rèn)證為私鑰的所有者。信任是公鑰基礎(chǔ)設(shè)施所依賴的基本規(guī)則。</p><p> 4.2 數(shù)字證書[21]</p><p> 數(shù)字證書通常稱為
94、公鑰證書或簡稱為證書,與司機(jī)駕駛執(zhí)照或日常其他的身份證相似,它包括一個(gè)公開密鑰、擁有者身份信息(如名字或地址等信息)以及CA對這些內(nèi)容的數(shù)字簽名。CA的簽名可以保證證書內(nèi)容的完整性和真實(shí)性。證書是二進(jìn)制文件,可在計(jì)算機(jī)網(wǎng)絡(luò)上很容易的傳輸。</p><p> 在Internet網(wǎng)絡(luò)中,應(yīng)用程序使用的證書都來自不同的廠商或組織,為了實(shí)現(xiàn)可交互性,要求證書能夠被不同的系統(tǒng)識別,符合一定的格式,并實(shí)現(xiàn)標(biāo)準(zhǔn)化。X.509
95、為證書及其CRL格式提供了一個(gè)標(biāo)準(zhǔn)。但X.509本身不是Internet標(biāo)準(zhǔn),而是國際電聯(lián)ITU標(biāo)準(zhǔn),它定義了一個(gè)開放的框架,并在一定的范圍內(nèi)可以進(jìn)行擴(kuò)展。</p><p> 目前,X.509有三個(gè)版本:V1、V2和V3,其中V3是在V2的基礎(chǔ)上加上擴(kuò)展項(xiàng)后的版本,這些擴(kuò)展包括由ISO文檔(X.509-AM)定義的標(biāo)準(zhǔn)擴(kuò)展,也包括由其他組織或團(tuán)體定義或注冊的擴(kuò)展項(xiàng)。X.509由ITU-T X.509(前身為CC
96、ITT X.509)或ISO/IEC 9594-8定義,最早以X.500目錄建議的一部分發(fā)表于1988年,并作為V1版本的證書格式。X.500于1993年進(jìn)行了修改,并在V1基礎(chǔ)上增加了兩個(gè)額外的域,用于支持目錄存取控制,從而產(chǎn)生了V2版本。</p><p> 為了適應(yīng)新的需求ISO/IEC和ANSI X9發(fā)展了X.509 V3版本證書格式,該版本證書通過增加標(biāo)準(zhǔn)擴(kuò)展項(xiàng)對V1和V2證書進(jìn)行了擴(kuò)展。另外,根據(jù)實(shí)際
97、需要,各個(gè)組織或團(tuán)體也可以增加自己的私有擴(kuò)展。圖4-1列出了X.509的最終版本V3的證書格式。</p><p> 圖4-1第三版X.509證書的標(biāo)準(zhǔn)</p><p> 這里將討論所有證書中的數(shù)據(jù)域。</p><p><b> (1)版本號:</b></p><p> 指明證書的格式版本,現(xiàn)在的值可以為1、2、3
98、,也為將來的版本進(jìn)行了預(yù)定義。</p><p><b> (2)序列號:</b></p><p> 序列號指定由CA分配給證書的惟一的數(shù)字型標(biāo)識符。</p><p><b> (3)簽名算法:</b></p><p> 簽名算法標(biāo)識符用來指定CA簽發(fā)證書時(shí)所使用的公開密鑰算法和hash算法。
99、</p><p><b> (4)發(fā)者名稱:</b></p><p> 用來標(biāo)識簽發(fā)證書的CA的X.500 DN名字。包括國家、組織機(jī)構(gòu)單位部門和通用名。</p><p><b> (5)有效期:</b></p><p> 指定證書的有效期,包括證書開始生效的日期和時(shí)間以及失效的日期和時(shí)間。
100、</p><p><b> (6)主體名稱:</b></p><p> 指定證書持有者的X.500惟一名字。包括國家、省市、地區(qū)、通用名等。</p><p><b> (7)公鑰:</b></p><p> 證書持有者公開密鑰信息域包含兩個(gè)重要信息:證書持有者的公開密鑰的值;公開密鑰使用的算
101、法標(biāo)識符。此標(biāo)識符包含公開密鑰算法和hash算法。</p><p> (8)發(fā)行者惟一標(biāo)識符:</p><p> 發(fā)行者惟一標(biāo)識符在第2版加入證書定義中。此域用在當(dāng)同一個(gè)X.500名字用于多個(gè)認(rèn)證機(jī)構(gòu)時(shí),用1比特字符串來惟一標(biāo)識簽發(fā)者的X.500名字??蛇x。</p><p> (9)主體惟一標(biāo)識符:</p><p> 主體惟一標(biāo)識符在
102、第2版的標(biāo)準(zhǔn)中加入X.509證書定義。此域用在當(dāng)同一個(gè)X.500名字用于多個(gè)證書持有者時(shí),用1比特字符串來惟一標(biāo)識證書持有者的X.500名字。</p><p><b> (10)擴(kuò)展域:</b></p><p> 擴(kuò)展域是在X.509版本3中引入的。擴(kuò)展域可以包含大量不同的信息。</p><p><b> (11)簽名:<
103、/b></p><p> 證書簽發(fā)機(jī)構(gòu)對證書上述內(nèi)容的簽名值。</p><p><b> 4.3 PKI組件</b></p><p> 前面已經(jīng)討論了PKI中包含的一些實(shí)體,由于證書中的主體Fran被認(rèn)為認(rèn)證過的終端實(shí)體。它還被認(rèn)為是公鑰的所有者和證書的持有者。由于使用Fran證書的人可以獲得它的公鑰,所以Ezra被認(rèn)為是證書用戶或
104、依賴方。Fran證書的發(fā)行者就認(rèn)證權(quán)威機(jī)構(gòu)。</p><p> 圖4-2顯示了PKI的基本組件。連接這些組件的箭頭代表了這些組件間互相通信的消息。這些消息包含了證書發(fā)行和撤銷的請示,以及作為響應(yīng)而創(chuàng)建的證書和證書撤銷清單[22]。</p><p> 圖4-2 PKI的基本組件</p><p> 4.3.1 認(rèn)證權(quán)威機(jī)構(gòu)</p><p>
105、 對PKI而言,CA是重要的實(shí)體。CA的責(zé)任是發(fā)行、管理和證書。為了執(zhí)行其證書發(fā)行任務(wù),CA首先會接收來自Fran的認(rèn)證請求。它對Fran的身份進(jìn)行認(rèn)證,并驗(yàn)證Fran請求中的內(nèi)容。然后,CA會生成Fran新證書的內(nèi)容,并以數(shù)字方式簽署該證書。</p><p> 如果對CA進(jìn)行配置,讓其使用一個(gè)證書庫。那么它將會把新生成的證書存儲在該證書庫中。CA還會把這個(gè)新證書分發(fā)給Fran。CA通過電子郵件把證書傳送給F
106、ran,或者給她發(fā)送一個(gè)URL,以后Fran就可以使用它獲取該證書。</p><p> 當(dāng)必須撤銷某證書時(shí),CA將為該證書的創(chuàng)建撤銷信息,并管理該信息。證書撤銷可以由Fran發(fā)起,或者由CA的操作人員發(fā)起。CA負(fù)責(zé)認(rèn)證該撤銷請求,從而確保冒名頂替無法撤銷該用戶的證書。在撤銷證書時(shí),CA可以從證書庫中刪除該證書,或者只把該證書標(biāo)記為“已撤銷”。通常情況下,CA將通知Fran她的證書已被撤銷。CA還將把已撤銷證書的
107、序列號添加到證書撤銷清單(CRL,Certificate Revocation List)中。</p><p> 4.3.2 注冊權(quán)威機(jī)構(gòu)</p><p> RA是可選的實(shí)體,用于分配CA的工作量。RA不會執(zhí)行任何其CA無法執(zhí)行的服務(wù)。RA的基本職責(zé)有認(rèn)證服務(wù)和驗(yàn)證服務(wù)。RA將對定向到CA的各種服務(wù)請求進(jìn)行認(rèn)證??蓪A配置為代表CA處理認(rèn)證請求或撤銷請求,或者這兩種服務(wù)。在認(rèn)證請求之
108、后(即確定該請求來自于合適的實(shí)體之后),RA通常會驗(yàn)證請求的內(nèi)容。</p><p> RA擔(dān)當(dāng)了CA的前端處理器的角色,執(zhí)行CA的策略。所以,RA應(yīng)該專門為單獨(dú)的CA服務(wù),但CA可以由多個(gè)RA協(xié)助。在證書上生成數(shù)字簽名是計(jì)算密集型活動(dòng)。RA使得CA能夠最大限度地專注于這種加密操作。CA可能仍然會負(fù)責(zé)與證書庫進(jìn)行交互,并仍然應(yīng)該簽署CRL及證書。然而,通過把一些職責(zé)轉(zhuǎn)移給RA,CA就能夠顯著提高其對終端實(shí)體請求的
109、響應(yīng)時(shí)間[23]。</p><p><b> 4.3.3 證書庫</b></p><p> 證書庫是了CA發(fā)行證書的數(shù)據(jù)庫。CA把自己生成的每個(gè)證書發(fā)布到證書庫中。證書庫能夠被PKI的所有用戶作為證書的中心源泉,因此也可以作為公鑰源。證書庫還可以作為CRL的中央位置。</p><p> 證書庫可以使用不同的數(shù)據(jù)庫技術(shù)來實(shí)施,但X.500目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字簽名在移動(dòng)電子商務(wù)中應(yīng)用初探
- XML數(shù)字簽名及在電子商務(wù)中的應(yīng)用.pdf
- 橢圓曲線數(shù)字簽名在電子商務(wù)中的應(yīng)用.pdf
- 數(shù)字簽名的公平交換技術(shù)在電子商務(wù)中的應(yīng)用.pdf
- rsa數(shù)字簽名畢業(yè)論文
- 數(shù)字簽名本科畢業(yè)論文
- 安全數(shù)字簽名在電子商務(wù)中的應(yīng)用研究.pdf
- XML在電子商務(wù)數(shù)字簽名中的應(yīng)用分析與實(shí)現(xiàn).pdf
- 電子商務(wù)中基于數(shù)字簽名的安全協(xié)議研究.pdf
- 基于數(shù)字簽名的移動(dòng)支付在電子商務(wù)中的應(yīng)用.pdf
- 數(shù)字簽名及應(yīng)用.pdf
- 代理數(shù)字簽名和群數(shù)字簽名的分析與設(shè)計(jì).pdf
- 網(wǎng)絡(luò)數(shù)字簽名技術(shù)研究與探索【畢業(yè)論文】
- 代理數(shù)字簽名.pdf
- 06 數(shù)字簽名1
- 第7章_數(shù)字簽名技術(shù)應(yīng)用
- 數(shù)字簽名技術(shù)的研究與應(yīng)用.pdf
- 數(shù)字簽名及其在電子選舉中的應(yīng)用研究.pdf
- 數(shù)字簽名技術(shù)的研究及應(yīng)用.pdf
- 數(shù)字簽名變化及其應(yīng)用.pdf
評論
0/150
提交評論