電子商務安全第3章課件_第1頁
電子商務安全第3章課件_第2頁
電子商務安全第3章課件_第3頁
電子商務安全第3章課件_第4頁
電子商務安全第3章課件_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章電子商務簽名技術3.1數字簽名概念3.2

RSA數字簽名3.3

DSS簽名3.4哈希簽名3.5幾種特殊數字簽名方法第3章電子商務簽名技術3.1數字簽名概念[本章要點]

數字簽名是與伴隨信息一起發(fā)送或與信息有一定邏輯關聯的數據項,用來確定信息的發(fā)送源,確認信息自簽名后未被修改過。數字簽名的方法包括基于RSA的方法、Hash簽名、美國數字簽名標準DSS以及橢圓曲線數字簽名算法(ECDSA)。此外,還介紹了在電子商務領域一些被廣泛應用的特殊數字簽名方法,如盲簽名、雙聯簽名、團體簽名、不可爭辯簽名、數字時間戳等。[本章要點]數字簽名是與伴隨信息一起發(fā)送或與信息有一3.1數字簽名概念3.1.1數字簽名概念3.1.2數字簽名使用模式3.1.3數字簽名的技術保障3.1.4數字簽名方案分類3.1.5數字簽名使用原理3.1數字簽名概念3.1.1數字簽名概念3.1.1數字簽名概念數字簽名與書面文件簽名有相同之處,采用數字簽名,也能確認以下兩點:第一,信息是由簽名者發(fā)送的;第二,信息自簽發(fā)后到收到為止未曾作過任何修改。這樣數字簽名就可用來防止電子信息因易被修改而有人作偽,或冒用別人名義發(fā)送信息?;虬l(fā)出(收到)信件后又加以否認等情況發(fā)生。3.1.1數字簽名概念數字簽名與書面文件簽名有相同之處,3.1.1數字簽名概念在電子商務安全保密系統(tǒng)中,數字簽名技術有著特別重要的地位,在電子商務安全服務中的源鑒別、完整性服務、不可否認服務中,都要用到數字簽名技術。在電子商務中,完善的數字簽名應具備簽字方不能抵賴、他人不能偽造、在公證人面前能夠驗證真?zhèn)蔚哪芰?。數字簽名機制提供了一種鑒別方法,普遍用于銀行、電子貿易等,以解決如下問題:3.1.1數字簽名概念在電子商務安全保密系統(tǒng)中,數字簽名3.1.1數字簽名概念(1)身份認證。收方通過發(fā)方的電子簽名才能夠確認發(fā)方的確切身份,但無法偽造。(2)保密。雙方的通信內容高度保密,第三方無從知曉。(3)完整性。通信的內容無法被篡改。(4)不可抵賴。發(fā)方一旦將電子簽字的信息發(fā)出,就不能再否認。3.1.1數字簽名概念(1)身份認證。收方通過發(fā)方的電子3.1.1數字簽名概念電子交易的安全依賴于技術上采用適當的安全措施,如電子簽名技術,以確認使用人的身份,確保信息保密及完整無缺,和保障已進行的交易不被推翻。但是,數字簽名技術在法律上的地位卻不明確。數字簽名就需要人們對它的“簽名”功能賦予合法的法律地位。聯合國《電子商務示范法》對電子記錄的法律問題提出了一系列解決方案,分別就數據電文的法律承認、書面性、簽名、原件、證據性、留存等做出了原則性的規(guī)定。3.1.1數字簽名概念電子交易的安全依賴于技術上采用適當3.1.2數字簽名使用模式目前使用的電子簽名主要有三種模式:(1)智慧卡式。(2)密碼式。(3)生物測定式。3.1.2數字簽名使用模式目前使用的電子簽名主要有三種模式:3.1.3數字簽名的技術保障

普遍使用的電子簽名技術是基于PKI的數字簽名技術,PKI技術的詳細介紹請參看本教材第8章,數字簽名的基礎保障主要有以下四個方面:1.認證機構CA2.數字證書3.公鑰密碼技術4.數字摘要3.1.3數字簽名的技術保障普遍使用的電子簽名技3.1.4數字簽名方案分類

應用廣泛的數字簽名方法主要有三種,即:RSA簽名、DSS簽名和Hash簽名。此外,也有使用對稱密碼算法實現數字簽名。這四種算法可單獨使用,也可綜合在一起使用。數字簽名是通過密碼算法對數據進行加、解密變換實現的,用DES算去、RSA算法都可實現數字簽名。但三種技術或多或少都有缺陷,或者沒有成熟的標準。3.1.4數字簽名方案分類應用廣泛的數字簽名方法主1.RSA簽名2.DSS簽名3.Hash簽名4.對稱密碼算法簽名3.1.4數字簽名方案分類1.RSA簽名3.1.4數字簽名方案分類安全的數字簽名使接收方可以得到保證:文件確實來自聲稱的發(fā)送方。鑒于簽名私鑰只有發(fā)送方自己保存,他人無法做一樣的數字簽名,因此他不能否認他參與了交易。數字簽名的加密解密過程和私有密鑰的加密解密過程正好相反,使用的密鑰對也不同。數字簽名使用的是發(fā)送方的密鑰對,發(fā)送方用自己的私有密鑰進行加密,接收方用發(fā)送方的公開密鑰進行解密。這是一個一對多的關系:任何擁有發(fā)送方公開密鑰的人都可以驗證數字簽名的正確性,而私有密鑰的加密解密則使用的是接收方的密鑰對,這是多對一的關系:任何知道接收方公開密鑰的人都可以向接收方發(fā)送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。在實用過程中,通常一個用戶擁有兩個密鑰對,另一個密鑰對用來對數字簽名進行加密解密,一個密鑰對用來對私有密鑰進行加密解密。這種方式提供了更高的安全性。在實際運用中,直接用公開密碼的私鑰對文件進行簽字并不完全可行,如果需要對相當長的文件進行簽名認證速度就太慢。通常的解決辦法是引入可公開的密碼。3.1.4數字簽名使用原理安全的數字簽名使接收方可以得到保證:文件確實來自聲稱的發(fā)送方3.2

RSA數字簽名

RSA方法的加密算法和解密算法互為逆變換,所以可用于數字簽名系統(tǒng)。RSA是最流行的數字簽名方法,許多產品內核中都有RSA的軟件和類庫。RSA算法在第2章已有詳細介紹。3.2RSA數字簽名RSA方法的加密算法和解密算法3.2RSA數字簽名RSA算法中數字簽名技術實際上是通過一個哈希函數來實現的。數字簽名的特點是它代表了文件的特征,文件如果發(fā)生改變,數字簽名的值也將發(fā)生變化。不同的文件將得到不同的數字簽名。一個最簡單的哈希函數是把文件的二進制碼相累加,取最后的若干位。哈希函數對發(fā)送數據的雙方都是公開的。

用RSA或其它公開密鑰密碼算法的最大方便是沒有密鑰分配問題(網絡越復雜、網絡用戶越多,其優(yōu)點越明顯)。因為公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保密的。公開密鑰可以保存在系統(tǒng)目錄內、未加密的電子郵件信息中、電話黃頁(商業(yè)電話)上或公告牌里,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專用的,由用戶本身持有,它可以對由公開密鑰加密信息進行解密。

3.2RSA數字簽名RSA算法中數字簽名技術實際上是通過一3.2RSA數字簽名RSA方法的加密算法和解密算法互為逆變換,所以可用于數字簽名系統(tǒng)。假定用戶的公開鑰是(nA,eA),秘密鑰是dA,加密和解密變換分別為EA和DA,則A發(fā)送的簽名后的消息是M′≡DA(M)≡M^dA(modnA)。收到M′后的B,可以用A的公開變換EA恢復M:EA≡EA(M)≡M^(dAeA)(modnA)因為只有A知道dA,所以簽名不可能偽造,并且A與B之間的任何爭議都可以通過仲裁加以解決。在具體環(huán)境中,RSA算法中數字簽名技術實際上是通過一個哈希函數來實現的,其原理如圖3-1所示。3.2RSA數字簽名RSA方法的加密算法和解密算法互為逆變3.2RSA數字簽名dAeA圖3-1RSA簽名原理3.2RSA數字簽名dAeA圖3-1RSA簽名原理3.2RSA數字簽名其操作步驟如下:①使用散列編碼將發(fā)送文件加密產生固定長的數字摘要;②發(fā)送方用自己的專用密鑰對摘要再加密,形成數字簽名;③將原文和加密的摘要同時傳給對方;④接收方用發(fā)送方的公共密鑰對摘要解密,同時對收到的文件用散列編碼加密產生同一摘要;⑤將解密后的摘要和收到的文件在接受方重新加密產生的摘要相互對比,如果兩者一致,則說明在傳送過程中信息沒有破壞和篡改。否則,則說明信息已經失去安全性和保密性。一個最簡單的哈希函數是把文件的二進制碼相累加,取最后的若干位。哈希函數對發(fā)送數據的雙方都是公開的。3.2RSA數字簽名其操作步驟如下:3.3DSS簽名

美國國家標準技術研究所已經公布了聯邦信息處理標準FIPSPUB186,即所謂的數字簽名標準(DigitalSignatureStandard,DSS)。DSS利用了安全散列算法(SecureHashAlgrithm,SHA)并提出了一種新的數字簽名技術,即數字簽名算法(DigitalSignatureAlgrithm,DSA)。DSS最早發(fā)表于1991年,并根據公眾對該體制安全性擔心的反應在1993年進行了修改。1996年由進行了更進一步的小修改。3.3DSS簽名美國國家標準技術研究所已經公布3.3.1DSS基本原理

DSA算法設計用來提供唯一的數字簽名函數,不像RSA還可用作加密和密鑰交換。DSS方法也利用了一個散列函數。散列碼和一個用作這個特殊簽名的隨機數K作為簽名函數的輸入。簽名函數還依賴于發(fā)方的私有密鑰(KRa)和一個對許多通信原則來說是知名的參數集。我們可以認為這個集合組成一個全局公開密鑰(KUG)。結果是簽名由兩個分量組成,記為s和r。在接收端,將計算所收到報文的散列碼,該散列碼和簽名將作為驗證函數的輸入。驗證函數還依賴于全局公開密鑰和與發(fā)方私有密鑰配對的發(fā)方公開密鑰。如果簽名是有效的,驗證函數的輸出值就等于簽名分量r。簽名函數就是這樣的:只有發(fā)方用掌握的私有密鑰才能產生有效的簽名。3.3.1DSS基本原理

DSA算法設計用來提供唯一的數3.3.1DSS基本原理

圖3-2DSS原理DSA簽名和RSA簽名一樣不存在哈希簽名的局限性,因為他們都采用了公鑰算法,即每個人都有兩個密鑰,其中一個產生簽名,并秘密保存,另一個公開,用來驗證簽名。3.3.1DSS基本原理

3.3.2數字簽名算法數字簽名算法DSA是Schnorr和ElGamal簽名算法的變種,DSA是基于離散對數的難度。1.DSA算法參數說明DSA算法中應用了下述參數:p:Lbits長的素數。L是64的倍數,范圍是512到1024;q:p-1的160bits的素因子;g:g=hp-1modp,h滿足h<p-1,h(p-1)/qmodp>1;x:1<x<q,x為私鑰;y:y=gxmodp

,(p,q,g,y)為公鑰;H(x):單向Hash函數。在DSS中選用安全散列算法(SecureHashAlgorithm,SHA)。p,q,g:可由一組用戶共享,但在實際應用中,使用公共模數可能會帶來一定的威脅。3.3.2數字簽名算法數字簽名算法DSA是Schnorr和E3.3.2數字簽名算法2.簽名及驗證協議簽名及驗證協議如下:(1)P產生隨機數k,k<q;(2)P計算r=(gkmodp)modq和s=(k-1(H(m)+xr))modq簽名結果是(m,r,s)。(3)驗證時計算w=s-1modq計算u1=(H(m)w)modq計算u2=(rw)modq計算v=((gu1yu2)modp)modq若v=r,則認為簽名有效。3.3.2數字簽名算法2.簽名及驗證協議3.3.2數字簽名算法DSA是基于整數有限域離散對數難題的,其安全性與RSA相比差不多。DSA的一個重要特點是兩個素數公開,這樣,當使用別人的p和q時,即使不知道私鑰,也能確認它們是否是隨機產生的。而RSA算法卻作不到。圖3-3描述了DSS的簽名和驗證函數。3.3.2數字簽名算法DSA是基于整數有限域離散對數難題的,3.4哈希簽名Hash簽名是利用哈希函數(Hashfunction,也叫摘要函數,散列函數)進行數字簽名的一種方法。Hash簽名是當前最主要的數字簽名方法之一,也稱之為數字摘要法(DigitalDigest)或數字指紋法。它與RSA數字簽名是單獨的簽名不同,該數字簽名方法是將數字簽名與要發(fā)送的信息緊密聯系在一起,它更適合于電子商務活動。將一個商務合同的個體內容與簽名結合在一起,比合同和簽名分開傳遞,更增加了可信度和安全性。3.4哈希簽名Hash簽名是利用哈希函數(Hashfu3.4哈希簽名Hash函數與加密函數類似。事實上有些Hash函數就是稍加修改的加密函數。大多數函數的作法是每次取一個數據塊,對數據塊的每一位用一個簡單的編碼函數進行編碼。Hash算法的工作方式類似通信協議中的校驗和;發(fā)信方將一個數據包的所有字節(jié)加起來,將和添加在包上;收信方執(zhí)行同樣的運算并比較兩個和,以決定是否被正確地傳輸。校驗算法的主要作用是根據報文內容通過單向的Hash算法計算出一個校驗來,如果報文被改動或增減,無法根據同樣的算法算出相同的校驗來。一般在實際應用中,對于只有數據完整性要求的數據只對其校驗進行加密就可以了,這樣能夠大大減少數據加密的工作量。3.4哈希簽名Hash函數與加密函數類似。事實上有些Ha一個Hash函數滿足:①H可以作用于一個任意長度的數據塊;②H產生一個固定長度的輸出;③H(x)對任意給定的x計算相對容易,無論是軟件還是硬件實現;④對任意給定碼h,找到x滿足H(x)=h具有計算不可行性;⑤對任意給定的數據塊x,找到滿足H(y)=H(x)的yx具有計算不可行性;⑥找到任意數據對(x,y),滿足H(x)=H(y)是計算不可行的。3.4哈希簽名一個Hash函數滿足:3.4哈希簽名單向Hash函數是在一個方向上工作的Hash函數,從預映射的值很容易計算其Hash值,但要產生一個預映射的值使其Hash值等于一個特殊值卻是很難的。好的hash函數也是無沖突的:難于產生兩個預映射的值,使他們的hash值相同。Hash函數是公開的,對處理過程不用保密。單向hash函數的安全性是它的單向性。無論怎么看,輸出不依賴于輸入。預映射單個比特的改變,平均而言,將引起hash值中一半的比特改變。已知一個hash值,要找到預映射的值,使它的hash值等于已知的hash值在計算上是不可行的。3.4哈希簽名單向Hash函數是在一個方向上工作的Hash函數,從預映射的利用散列函數進行數字簽名和驗證的文件傳輸過程如下:⑴發(fā)送方首先用哈希函數從原文得到摘要值;⑵發(fā)送方采用發(fā)送方的私有密鑰對摘要進行加密,并把加密后的摘要附加在要發(fā)送的原文后面一起發(fā)送給接收方;⑶接收方用發(fā)送方的公開密鑰對數字摘要進行解密,得到數字摘要的明文;⑷接收方用得到的原文和哈希函數重新計算數字簽名,并與解密后的數字摘要進行對比。如果兩個數字摘要是相同的,說明文件在傳輸過程中沒有被破壞。上述流程可用圖3-4表示。3.4.1哈希簽名基本原理利用散列函數進行數字簽名和驗證的文件傳輸過程如下:3.4.1如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,解密出來的數字摘要和經過計算的數字摘要必然是不相同的。這就提供了一個安全的確認發(fā)送方身份的方法。3.4.1哈希簽名基本原理如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,解密出來的數字摘要和經過計算的數字摘要必然是不相同的。這就提供了一個安全的確認發(fā)送方身份的方法。3.4.2安全哈希算法如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進安全Hash算法SHA主要適用于數字簽名標準DSS里面定義的數字簽名算法DSA。對于長度小于264bit的消息,SHA-1會產生一個160bit的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。在傳輸的過程中,數據很可能會發(fā)生變化,那么這時候就會產生不同的消息摘要。SHA在1993年由美國國家標準和技術協會提出,并作為聯邦信息處理標準(FIPSPUB180)公布;1995年又發(fā)布了一個修訂版FIPSPUB180-1,通常稱之為SHA-1。SHA-1是基于MD4算法的,并且它的設計在很大程度上是模仿MD4的?,F在已成為公認的最安全的散列算法之一,并被廣泛使用。SHA-1,SHA-224,SHA-256,SHA-384和SHA-512都被需要安全散列算法的美國聯邦政府所應用,他們也使用其他的密碼算法和協定來保護敏感的未保密資料。FIPSPUB180-1也鼓勵私人或商業(yè)組織使用SHA-1加密。3.4.2安全哈希算法安全Hash算法SHA主要適用于數字簽名標準DSS里面定義的1.SHA-1算法概述

SHA-1算法由美國國家標準和技術協會(NIST)與美國國家安全局(NSA)設計,并且被美國政府采納,成為美國國家標準。事實上SHA-1目前是全世界使用最為廣泛的哈希算法,已經成為業(yè)界的事實標準??梢詫﹂L度不超過264bit的消息進行計算,輸入以512bit數據塊為單位處理,產生160bit的消息摘要作為輸出。該算法的處理流程大致分為5個步驟:(1)附加填充比特。對輸入的數據進行填充,使得數據位長度對512求余的結果為448。填充比特串的最高位補一個1,其余位補0。附加填充總是要進行的,即使消息的長度滿足所要求的長度。(2)附加長度值。將64bit加在報文后表示報文的原始長度,使報文長度為512bit的倍數。3.4.2安全哈希算法1.SHA-1算法概述3.4.2安全哈希算法(3)初始化MD緩存。一個160位MD緩沖區(qū)用以保存中間和最終散列函數的結果。它可以表示為5個32位的寄存器(A,B,C,D,E)。初始化為:

A=67452301B=EFCDAB89C=98BADCFE

D=10325476E=C3D2E1F0

前四個與MD5相同。(4)以512bit(16個字)分組處理消息。此算法的核心就是稱為壓縮函數模塊,這個模塊包括4次循環(huán),每次循環(huán)又包含20個處理步驟。4次循環(huán)具有相似的結構,但每次循環(huán)使用不同的基本邏輯函數,稱為f1,f2,f3,f4。3.4.2安全哈希算法(3)初始化MD緩存。一個160位MD緩沖區(qū)用以保存中間和最(5)輸出。全部L個512位數據處理完畢后,輸出160bit消息摘要。

CV=IV

CVq+1=SUM(CVq,ABCDEq)

MD=CVL

其中:IV=ABCDE的初始值;L=數據塊的個數;SUM32=對每一個輸入對的值單獨相加,使用模232加法;MD=最后的消息摘要值。3.4.2安全哈希算法(5)輸出。全部L個512位數據處理完畢后,輸出160bi2.SHA-1壓縮函數A,B,C,D,E←(E+f(t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D其中:(1)A,B,C,D,E:緩沖區(qū)的5個字。

(2)t:步數,0<t<=79;f(t,B,C,D)=步t的基本邏輯函數。

(3)Sk:循環(huán)左移k位給定的32位字。(4)Wt:一個用于加法的常量,對應四個不同的值,計算方法如下:Wt=Mt

0≤t≤15;Wt=(Wt-3⊕Wt-8⊕Wt-14⊕Wt-16⊕)16≤t≤79;其中:Mt即源數據塊對應的字(32bit)。(5)所有“+”都是模232加。(6)t,Kt,f(t,B,C,D)的運算規(guī)則如表3-1所示。表3-1SHA-1壓縮函數運算規(guī)則表3.4.2安全哈希算法2.SHA-1壓縮函數3.4.2安全哈希算法3.4.2安全哈希算法TKtf(t,B,C,D)0≤t≤19Kt=827999(B∧C)∨(B∧D)20≤t≤39Kt=6ED9EBA1B⊕C⊕D40≤t≤59Kt=1BBCDC(B∧C)∨(B∧D)∨(C∧D)60≤t≤79Kt=CA1D6B⊕C⊕D3.4.2安全哈希算法TKtf(t,B,C,D)0≤t≤193.4.2安全哈希算法壓縮函數的結構示意如圖3-5所示。3.4.2安全哈希算法壓縮函數的結構示意如圖3-5所示。3.5幾種特殊數字簽名方法

根據電子商務具體應用的需要,形成了許多特殊的數字簽名應用,如盲簽名、雙聯簽名、團體簽名、不可爭辯簽名、數字時間戳等。3.5幾種特殊數字簽名方法根據電子商務具體應用的需要,形般數字簽名中,總是要先知道文件內容而后才簽署,這正是通常所需要的。但有時需要某人對一個文件簽名,但又不讓他知道文件內容,稱為盲簽名,它是由Chaum在1983年最先提出的。在選舉投票和數字貨幣協議中通常會使用到盲簽名。利用盲變換可以實現盲簽名。Chaum利用盲變換可以實現盲簽名的基本原理如下:(1)A取一文件并以一隨機值乘之,稱此隨機值為盲因子;(2)A將此盲文件簽名;(3)B對盲文件簽名;(4)A以盲因子除之,得到B對原文件的簽名。3.5.1盲簽名般數字簽名中,總是要先知道文件內容而后才簽署,這正是通常所需盲簽名與通常的數字簽名的不同之處在于,簽名者并不知道他所要簽發(fā)文件的具體內容。盲數字簽名在簽名時,接收者首先將被簽的消息進行盲變換,把變換后的消息發(fā)送給簽名者,簽名者對盲消息進行簽名并把消息送還給接收者,接收者對簽名再做逆盲變換,得出的消息即為原消息的盲簽名。3.5.1盲簽名SigBT(m)盲變換T盲變換T簽名者B簽名SigBT(m)SigB(m)接收者A接收者A圖3-6盲數字簽名方案的簽名過程盲簽名與通常的數字簽名的不同之處在于,簽名者并不知道他所要簽有一類特殊的盲簽名叫完全盲簽名,其性質是這樣的:簽名者在文件上的簽名是有效的,簽名是其簽署文件的證據。如果把文件給簽名者看,他可確信他簽署過這份文件。但是,簽名者不能把簽署文件的行為與簽署了的文件相關聯。即使他記下了他所作的每一個盲簽名,他也不能確定他在什么時候簽署了該文件。3.5.1盲簽名有一類特殊的盲簽名叫完全盲簽名,其性質是這樣的:簽名者在文件3.5.2雙聯簽名在實際商務活動中經常出現這種情形,即持卡人給商家發(fā)送訂購信息和自己的付款帳戶信息,但不愿讓商家看到自己的付款帳戶信息,也不愿讓處理商家付款信息的第三方看到定貨信息。在電子商務中要能做到這點,需使用雙聯簽名技術。雙聯簽名的使用方法如下:(1)持卡人將發(fā)給商家的信息M1和發(fā)給第三方的信息M2分別生成報文摘要MD1和報文摘要MD2;(2)持卡人將MD1和MD2合在一起生成MD,并簽名;(3)將M1、MD2和MD發(fā)送給商家,將M2、MD1和MD發(fā)送給第三方;接收者根據收到的報文生成報文摘要,再與收到的報文摘要合在一起,比較結合后的報文摘要和收到的MD,確定持卡人的身份和信息是否被修改過。雙聯簽名解決了三方參加電子貿易過程中的安全通信問題。3.5.2雙聯簽名在實際商務活動中經常出現這種情形,即持卡人3.5.3團體簽名

DavidChaum提出了下述問題:一個公司有幾臺計算機,每臺都連在局域網上。公司的每個部門有它自己的打印機(也連在局域網上),并且只有本部門的人員才被允許使用他們部門的打印機。因此,打印前,必須使打印機確信用戶是在那個部門工作的。同時,公司想保密,不可以暴露用戶的姓名。然而,如果有人在當天結束時發(fā)現打印機用得太頻繁,主管者必須能夠找出誰濫用了那臺打印機,并給他一個帳單。3.5.3團體簽名DavidChaum提出了下述問題:一對這個問題的解決方法稱為團體簽名。它具有以下特性:①只有該團體內的成員能對消息簽名;②簽名的接收者能夠證實消息是該團體的有效簽名;③簽名的接收者不能決定是該團體內哪一個成員簽的名;④在出現爭議時,簽名能夠被“打開”,以揭示簽名者的身份。A和B怎么對同一數字文件簽名呢?不用單向哈希函數,有兩種選擇。第一種選擇是A和B分別對文件的副本簽名,結果簽名的信息是原文的兩倍。第二種就是A首先簽名,然后B對A的簽名再進行簽名,這是可行的,但是在不驗證B的簽名的情況下就驗證A的簽名是不可能的。3.5.3團體簽名

對這個問題的解決方法稱為團體簽名。它具有以下特性:①只有該團采用單向哈希函數,團體簽名是容易實現的:(1)A對文件的哈希簽名。(2)B對文件的哈希簽名。(3)B將他的簽名交給A。(4)A把文件、簽名和B的簽名發(fā)給C。(5)C驗證A和B的簽名。A和B能同時或順序地完成①和②,在⑤C可以只驗證其中一人的簽名而不用驗證另一人的簽名。3.5.3

團體簽名

采用單向哈希函數,團體簽名是容易實現的:3.5.3團體簽名下面是一個具有可信仲裁者T的團體簽名方案:(1)T生成一大批公開密鑰/私鑰密鑰對,并且給團體內每個成員一個不同的唯一私鑰表。在任何表中密鑰都是不同的(如果團體內有n個成員,每個成員得到m個密鑰對,那么總共有nm個密鑰對)。(2)T以隨機順序公開該團體所用的公開密鑰主表。T保持一個哪些密鑰屬于誰的秘密記錄。(3)當團體內成員想對一個文件簽名時,他從自己的密鑰表中隨機選取一個密鑰。(4)當有人想驗證簽名是否屬于該團體時,只需查找對應公開鑰主表并驗證簽名。(5)當爭議發(fā)生時,T知道哪個公鑰對應于哪個成員。3.5.3

團體簽名

下面是一個具有可信仲裁者T的團體簽名方案:3.5.3團體簽3.5.4無可爭辯簽名不可爭辯簽名是在沒有簽名者自己的合作下不可能驗證簽名的簽名。無可爭辯簽名是為了防止所簽名文件被復制,有利于產權擁有者控制產品的散發(fā)。不可爭辯簽名1989年由Chaum和Antwerpen引入,這類簽名有一些特點,適用于某些應用,如電子出版系統(tǒng),以利于對知識產權的保護。在簽名人合作下才可能驗證簽名,又會給簽名者一種機會,在不利于他時可拒絕合作,因而不具有“不可否認性”。不可爭辯簽名除了一般簽名體制中的簽名算法和驗證算法(或協議)外,還需要第三個組成部分,即否認協議;簽名者利用不可爭辯簽名可向法庭或公眾證明一個偽造的簽名的確是假的;但如果簽名者拒絕參與執(zhí)行否認協議,就表明簽名真的由他簽署。3.5.4無可爭辯簽名不可爭辯簽名是在沒有簽名者自己的合3.5.5多重簽名一個文件經多個人的私鑰簽名多重數字簽名方案可分為兩類:有序多重數字簽名方案廣播多重數字簽名方案。

3.5.5多重簽名一個文件經多個人的私鑰簽名3.5.6數字時間戳

如果在簽名時加上一個時間標記,即是有數字時間戳(digitaltimestamp)的數字簽名。

時間戳(time-stamp)是一個經加密后形成的憑證文檔,它包括三個部分:

①需加時間戳的文件的摘要;

②DTS收到文件的日期和時間;

③DTS的數字簽名。

3.5.6數字時間戳如果在簽名時加上一個時間標記,即是有數獲得數字時間戳的過程

獲得數字時間戳的過程數字時間戳協議必須具有如下性質:①數據本身必須有時間標記,而與它所用的物理媒介無關。②不存在哪怕改變文件的1個比特而文件時間戳卻沒有明顯變化的情形。③不可能用不同于當前日期和時間的日期和時間來簽署文件。數字時間戳協議必須具有如下性質:問題與討論什么是數字簽名?討論什么情況下用數字簽名比用加密更合適?2.雙聯簽名的概念是什么?其基本原理是什么?3.試設計一個數字簽名方法,以便使接收方能驗證簽名。4.用DSS,因為每個簽名將產生不同的k值,因此即使分別在不同的場合對相同的報文簽名,產生的簽名也不相同。RSA簽名是不能這樣的。這樣的不同有什么實際意義?5.數字時間戳是如何簽署的?6.某個人寫了一份遺囑需要多個律師簽名,以保障遺囑的合法性和可認證性,但不想讓任何律師知道。問此人應該使用什么技術?7.如果選舉單位要采用電子投票的方式進行投票,應該采用什么技術來保證投票的公正性、匿名性?

問題與討論什么是數字簽名?討論什么情況下用數字簽名比用加密更第3章電子商務簽名技術3.1數字簽名概念3.2

RSA數字簽名3.3

DSS簽名3.4哈希簽名3.5幾種特殊數字簽名方法第3章電子商務簽名技術3.1數字簽名概念[本章要點]

數字簽名是與伴隨信息一起發(fā)送或與信息有一定邏輯關聯的數據項,用來確定信息的發(fā)送源,確認信息自簽名后未被修改過。數字簽名的方法包括基于RSA的方法、Hash簽名、美國數字簽名標準DSS以及橢圓曲線數字簽名算法(ECDSA)。此外,還介紹了在電子商務領域一些被廣泛應用的特殊數字簽名方法,如盲簽名、雙聯簽名、團體簽名、不可爭辯簽名、數字時間戳等。[本章要點]數字簽名是與伴隨信息一起發(fā)送或與信息有一3.1數字簽名概念3.1.1數字簽名概念3.1.2數字簽名使用模式3.1.3數字簽名的技術保障3.1.4數字簽名方案分類3.1.5數字簽名使用原理3.1數字簽名概念3.1.1數字簽名概念3.1.1數字簽名概念數字簽名與書面文件簽名有相同之處,采用數字簽名,也能確認以下兩點:第一,信息是由簽名者發(fā)送的;第二,信息自簽發(fā)后到收到為止未曾作過任何修改。這樣數字簽名就可用來防止電子信息因易被修改而有人作偽,或冒用別人名義發(fā)送信息?;虬l(fā)出(收到)信件后又加以否認等情況發(fā)生。3.1.1數字簽名概念數字簽名與書面文件簽名有相同之處,3.1.1數字簽名概念在電子商務安全保密系統(tǒng)中,數字簽名技術有著特別重要的地位,在電子商務安全服務中的源鑒別、完整性服務、不可否認服務中,都要用到數字簽名技術。在電子商務中,完善的數字簽名應具備簽字方不能抵賴、他人不能偽造、在公證人面前能夠驗證真?zhèn)蔚哪芰?。數字簽名機制提供了一種鑒別方法,普遍用于銀行、電子貿易等,以解決如下問題:3.1.1數字簽名概念在電子商務安全保密系統(tǒng)中,數字簽名3.1.1數字簽名概念(1)身份認證。收方通過發(fā)方的電子簽名才能夠確認發(fā)方的確切身份,但無法偽造。(2)保密。雙方的通信內容高度保密,第三方無從知曉。(3)完整性。通信的內容無法被篡改。(4)不可抵賴。發(fā)方一旦將電子簽字的信息發(fā)出,就不能再否認。3.1.1數字簽名概念(1)身份認證。收方通過發(fā)方的電子3.1.1數字簽名概念電子交易的安全依賴于技術上采用適當的安全措施,如電子簽名技術,以確認使用人的身份,確保信息保密及完整無缺,和保障已進行的交易不被推翻。但是,數字簽名技術在法律上的地位卻不明確。數字簽名就需要人們對它的“簽名”功能賦予合法的法律地位。聯合國《電子商務示范法》對電子記錄的法律問題提出了一系列解決方案,分別就數據電文的法律承認、書面性、簽名、原件、證據性、留存等做出了原則性的規(guī)定。3.1.1數字簽名概念電子交易的安全依賴于技術上采用適當3.1.2數字簽名使用模式目前使用的電子簽名主要有三種模式:(1)智慧卡式。(2)密碼式。(3)生物測定式。3.1.2數字簽名使用模式目前使用的電子簽名主要有三種模式:3.1.3數字簽名的技術保障

普遍使用的電子簽名技術是基于PKI的數字簽名技術,PKI技術的詳細介紹請參看本教材第8章,數字簽名的基礎保障主要有以下四個方面:1.認證機構CA2.數字證書3.公鑰密碼技術4.數字摘要3.1.3數字簽名的技術保障普遍使用的電子簽名技3.1.4數字簽名方案分類

應用廣泛的數字簽名方法主要有三種,即:RSA簽名、DSS簽名和Hash簽名。此外,也有使用對稱密碼算法實現數字簽名。這四種算法可單獨使用,也可綜合在一起使用。數字簽名是通過密碼算法對數據進行加、解密變換實現的,用DES算去、RSA算法都可實現數字簽名。但三種技術或多或少都有缺陷,或者沒有成熟的標準。3.1.4數字簽名方案分類應用廣泛的數字簽名方法主1.RSA簽名2.DSS簽名3.Hash簽名4.對稱密碼算法簽名3.1.4數字簽名方案分類1.RSA簽名3.1.4數字簽名方案分類安全的數字簽名使接收方可以得到保證:文件確實來自聲稱的發(fā)送方。鑒于簽名私鑰只有發(fā)送方自己保存,他人無法做一樣的數字簽名,因此他不能否認他參與了交易。數字簽名的加密解密過程和私有密鑰的加密解密過程正好相反,使用的密鑰對也不同。數字簽名使用的是發(fā)送方的密鑰對,發(fā)送方用自己的私有密鑰進行加密,接收方用發(fā)送方的公開密鑰進行解密。這是一個一對多的關系:任何擁有發(fā)送方公開密鑰的人都可以驗證數字簽名的正確性,而私有密鑰的加密解密則使用的是接收方的密鑰對,這是多對一的關系:任何知道接收方公開密鑰的人都可以向接收方發(fā)送加密信息,只有唯一擁有接收方私有密鑰的人才能對信息解密。在實用過程中,通常一個用戶擁有兩個密鑰對,另一個密鑰對用來對數字簽名進行加密解密,一個密鑰對用來對私有密鑰進行加密解密。這種方式提供了更高的安全性。在實際運用中,直接用公開密碼的私鑰對文件進行簽字并不完全可行,如果需要對相當長的文件進行簽名認證速度就太慢。通常的解決辦法是引入可公開的密碼。3.1.4數字簽名使用原理安全的數字簽名使接收方可以得到保證:文件確實來自聲稱的發(fā)送方3.2

RSA數字簽名

RSA方法的加密算法和解密算法互為逆變換,所以可用于數字簽名系統(tǒng)。RSA是最流行的數字簽名方法,許多產品內核中都有RSA的軟件和類庫。RSA算法在第2章已有詳細介紹。3.2RSA數字簽名RSA方法的加密算法和解密算法3.2RSA數字簽名RSA算法中數字簽名技術實際上是通過一個哈希函數來實現的。數字簽名的特點是它代表了文件的特征,文件如果發(fā)生改變,數字簽名的值也將發(fā)生變化。不同的文件將得到不同的數字簽名。一個最簡單的哈希函數是把文件的二進制碼相累加,取最后的若干位。哈希函數對發(fā)送數據的雙方都是公開的。

用RSA或其它公開密鑰密碼算法的最大方便是沒有密鑰分配問題(網絡越復雜、網絡用戶越多,其優(yōu)點越明顯)。因為公開密鑰加密使用兩個不同的密鑰,其中有一個是公開的,另一個是保密的。公開密鑰可以保存在系統(tǒng)目錄內、未加密的電子郵件信息中、電話黃頁(商業(yè)電話)上或公告牌里,網上的任何用戶都可獲得公開密鑰。而私有密鑰是用戶專用的,由用戶本身持有,它可以對由公開密鑰加密信息進行解密。

3.2RSA數字簽名RSA算法中數字簽名技術實際上是通過一3.2RSA數字簽名RSA方法的加密算法和解密算法互為逆變換,所以可用于數字簽名系統(tǒng)。假定用戶的公開鑰是(nA,eA),秘密鑰是dA,加密和解密變換分別為EA和DA,則A發(fā)送的簽名后的消息是M′≡DA(M)≡M^dA(modnA)。收到M′后的B,可以用A的公開變換EA恢復M:EA≡EA(M)≡M^(dAeA)(modnA)因為只有A知道dA,所以簽名不可能偽造,并且A與B之間的任何爭議都可以通過仲裁加以解決。在具體環(huán)境中,RSA算法中數字簽名技術實際上是通過一個哈希函數來實現的,其原理如圖3-1所示。3.2RSA數字簽名RSA方法的加密算法和解密算法互為逆變3.2RSA數字簽名dAeA圖3-1RSA簽名原理3.2RSA數字簽名dAeA圖3-1RSA簽名原理3.2RSA數字簽名其操作步驟如下:①使用散列編碼將發(fā)送文件加密產生固定長的數字摘要;②發(fā)送方用自己的專用密鑰對摘要再加密,形成數字簽名;③將原文和加密的摘要同時傳給對方;④接收方用發(fā)送方的公共密鑰對摘要解密,同時對收到的文件用散列編碼加密產生同一摘要;⑤將解密后的摘要和收到的文件在接受方重新加密產生的摘要相互對比,如果兩者一致,則說明在傳送過程中信息沒有破壞和篡改。否則,則說明信息已經失去安全性和保密性。一個最簡單的哈希函數是把文件的二進制碼相累加,取最后的若干位。哈希函數對發(fā)送數據的雙方都是公開的。3.2RSA數字簽名其操作步驟如下:3.3DSS簽名

美國國家標準技術研究所已經公布了聯邦信息處理標準FIPSPUB186,即所謂的數字簽名標準(DigitalSignatureStandard,DSS)。DSS利用了安全散列算法(SecureHashAlgrithm,SHA)并提出了一種新的數字簽名技術,即數字簽名算法(DigitalSignatureAlgrithm,DSA)。DSS最早發(fā)表于1991年,并根據公眾對該體制安全性擔心的反應在1993年進行了修改。1996年由進行了更進一步的小修改。3.3DSS簽名美國國家標準技術研究所已經公布3.3.1DSS基本原理

DSA算法設計用來提供唯一的數字簽名函數,不像RSA還可用作加密和密鑰交換。DSS方法也利用了一個散列函數。散列碼和一個用作這個特殊簽名的隨機數K作為簽名函數的輸入。簽名函數還依賴于發(fā)方的私有密鑰(KRa)和一個對許多通信原則來說是知名的參數集。我們可以認為這個集合組成一個全局公開密鑰(KUG)。結果是簽名由兩個分量組成,記為s和r。在接收端,將計算所收到報文的散列碼,該散列碼和簽名將作為驗證函數的輸入。驗證函數還依賴于全局公開密鑰和與發(fā)方私有密鑰配對的發(fā)方公開密鑰。如果簽名是有效的,驗證函數的輸出值就等于簽名分量r。簽名函數就是這樣的:只有發(fā)方用掌握的私有密鑰才能產生有效的簽名。3.3.1DSS基本原理

DSA算法設計用來提供唯一的數3.3.1DSS基本原理

圖3-2DSS原理DSA簽名和RSA簽名一樣不存在哈希簽名的局限性,因為他們都采用了公鑰算法,即每個人都有兩個密鑰,其中一個產生簽名,并秘密保存,另一個公開,用來驗證簽名。3.3.1DSS基本原理

3.3.2數字簽名算法數字簽名算法DSA是Schnorr和ElGamal簽名算法的變種,DSA是基于離散對數的難度。1.DSA算法參數說明DSA算法中應用了下述參數:p:Lbits長的素數。L是64的倍數,范圍是512到1024;q:p-1的160bits的素因子;g:g=hp-1modp,h滿足h<p-1,h(p-1)/qmodp>1;x:1<x<q,x為私鑰;y:y=gxmodp

,(p,q,g,y)為公鑰;H(x):單向Hash函數。在DSS中選用安全散列算法(SecureHashAlgorithm,SHA)。p,q,g:可由一組用戶共享,但在實際應用中,使用公共模數可能會帶來一定的威脅。3.3.2數字簽名算法數字簽名算法DSA是Schnorr和E3.3.2數字簽名算法2.簽名及驗證協議簽名及驗證協議如下:(1)P產生隨機數k,k<q;(2)P計算r=(gkmodp)modq和s=(k-1(H(m)+xr))modq簽名結果是(m,r,s)。(3)驗證時計算w=s-1modq計算u1=(H(m)w)modq計算u2=(rw)modq計算v=((gu1yu2)modp)modq若v=r,則認為簽名有效。3.3.2數字簽名算法2.簽名及驗證協議3.3.2數字簽名算法DSA是基于整數有限域離散對數難題的,其安全性與RSA相比差不多。DSA的一個重要特點是兩個素數公開,這樣,當使用別人的p和q時,即使不知道私鑰,也能確認它們是否是隨機產生的。而RSA算法卻作不到。圖3-3描述了DSS的簽名和驗證函數。3.3.2數字簽名算法DSA是基于整數有限域離散對數難題的,3.4哈希簽名Hash簽名是利用哈希函數(Hashfunction,也叫摘要函數,散列函數)進行數字簽名的一種方法。Hash簽名是當前最主要的數字簽名方法之一,也稱之為數字摘要法(DigitalDigest)或數字指紋法。它與RSA數字簽名是單獨的簽名不同,該數字簽名方法是將數字簽名與要發(fā)送的信息緊密聯系在一起,它更適合于電子商務活動。將一個商務合同的個體內容與簽名結合在一起,比合同和簽名分開傳遞,更增加了可信度和安全性。3.4哈希簽名Hash簽名是利用哈希函數(Hashfu3.4哈希簽名Hash函數與加密函數類似。事實上有些Hash函數就是稍加修改的加密函數。大多數函數的作法是每次取一個數據塊,對數據塊的每一位用一個簡單的編碼函數進行編碼。Hash算法的工作方式類似通信協議中的校驗和;發(fā)信方將一個數據包的所有字節(jié)加起來,將和添加在包上;收信方執(zhí)行同樣的運算并比較兩個和,以決定是否被正確地傳輸。校驗算法的主要作用是根據報文內容通過單向的Hash算法計算出一個校驗來,如果報文被改動或增減,無法根據同樣的算法算出相同的校驗來。一般在實際應用中,對于只有數據完整性要求的數據只對其校驗進行加密就可以了,這樣能夠大大減少數據加密的工作量。3.4哈希簽名Hash函數與加密函數類似。事實上有些Ha一個Hash函數滿足:①H可以作用于一個任意長度的數據塊;②H產生一個固定長度的輸出;③H(x)對任意給定的x計算相對容易,無論是軟件還是硬件實現;④對任意給定碼h,找到x滿足H(x)=h具有計算不可行性;⑤對任意給定的數據塊x,找到滿足H(y)=H(x)的yx具有計算不可行性;⑥找到任意數據對(x,y),滿足H(x)=H(y)是計算不可行的。3.4哈希簽名一個Hash函數滿足:3.4哈希簽名單向Hash函數是在一個方向上工作的Hash函數,從預映射的值很容易計算其Hash值,但要產生一個預映射的值使其Hash值等于一個特殊值卻是很難的。好的hash函數也是無沖突的:難于產生兩個預映射的值,使他們的hash值相同。Hash函數是公開的,對處理過程不用保密。單向hash函數的安全性是它的單向性。無論怎么看,輸出不依賴于輸入。預映射單個比特的改變,平均而言,將引起hash值中一半的比特改變。已知一個hash值,要找到預映射的值,使它的hash值等于已知的hash值在計算上是不可行的。3.4哈希簽名單向Hash函數是在一個方向上工作的Hash函數,從預映射的利用散列函數進行數字簽名和驗證的文件傳輸過程如下:⑴發(fā)送方首先用哈希函數從原文得到摘要值;⑵發(fā)送方采用發(fā)送方的私有密鑰對摘要進行加密,并把加密后的摘要附加在要發(fā)送的原文后面一起發(fā)送給接收方;⑶接收方用發(fā)送方的公開密鑰對數字摘要進行解密,得到數字摘要的明文;⑷接收方用得到的原文和哈希函數重新計算數字簽名,并與解密后的數字摘要進行對比。如果兩個數字摘要是相同的,說明文件在傳輸過程中沒有被破壞。上述流程可用圖3-4表示。3.4.1哈希簽名基本原理利用散列函數進行數字簽名和驗證的文件傳輸過程如下:3.4.1如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,解密出來的數字摘要和經過計算的數字摘要必然是不相同的。這就提供了一個安全的確認發(fā)送方身份的方法。3.4.1哈希簽名基本原理如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,解密出來的數字摘要和經過計算的數字摘要必然是不相同的。這就提供了一個安全的確認發(fā)送方身份的方法。3.4.2安全哈希算法如果第三方冒充發(fā)送方發(fā)出了一個文件,因為接收方在對數字簽名進安全Hash算法SHA主要適用于數字簽名標準DSS里面定義的數字簽名算法DSA。對于長度小于264bit的消息,SHA-1會產生一個160bit的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。在傳輸的過程中,數據很可能會發(fā)生變化,那么這時候就會產生不同的消息摘要。SHA在1993年由美國國家標準和技術協會提出,并作為聯邦信息處理標準(FIPSPUB180)公布;1995年又發(fā)布了一個修訂版FIPSPUB180-1,通常稱之為SHA-1。SHA-1是基于MD4算法的,并且它的設計在很大程度上是模仿MD4的?,F在已成為公認的最安全的散列算法之一,并被廣泛使用。SHA-1,SHA-224,SHA-256,SHA-384和SHA-512都被需要安全散列算法的美國聯邦政府所應用,他們也使用其他的密碼算法和協定來保護敏感的未保密資料。FIPSPUB180-1也鼓勵私人或商業(yè)組織使用SHA-1加密。3.4.2安全哈希算法安全Hash算法SHA主要適用于數字簽名標準DSS里面定義的1.SHA-1算法概述

SHA-1算法由美國國家標準和技術協會(NIST)與美國國家安全局(NSA)設計,并且被美國政府采納,成為美國國家標準。事實上SHA-1目前是全世界使用最為廣泛的哈希算法,已經成為業(yè)界的事實標準??梢詫﹂L度不超過264bit的消息進行計算,輸入以512bit數據塊為單位處理,產生160bit的消息摘要作為輸出。該算法的處理流程大致分為5個步驟:(1)附加填充比特。對輸入的數據進行填充,使得數據位長度對512求余的結果為448。填充比特串的最高位補一個1,其余位補0。附加填充總是要進行的,即使消息的長度滿足所要求的長度。(2)附加長度值。將64bit加在報文后表示報文的原始長度,使報文長度為512bit的倍數。3.4.2安全哈希算法1.SHA-1算法概述3.4.2安全哈希算法(3)初始化MD緩存。一個160位MD緩沖區(qū)用以保存中間和最終散列函數的結果。它可以表示為5個32位的寄存器(A,B,C,D,E)。初始化為:

A=67452301B=EFCDAB89C=98BADCFE

D=10325476E=C3D2E1F0

前四個與MD5相同。(4)以512bit(16個字)分組處理消息。此算法的核心就是稱為壓縮函數模塊,這個模塊包括4次循環(huán),每次循環(huán)又包含20個處理步驟。4次循環(huán)具有相似的結構,但每次循環(huán)使用不同的基本邏輯函數,稱為f1,f2,f3,f4。3.4.2安全哈希算法(3)初始化MD緩存。一個160位MD緩沖區(qū)用以保存中間和最(5)輸出。全部L個512位數據處理完畢后,輸出160bit消息摘要。

CV=IV

CVq+1=SUM(CVq,ABCDEq)

MD=CVL

其中:IV=ABCDE的初始值;L=數據塊的個數;SUM32=對每一個輸入對的值單獨相加,使用模232加法;MD=最后的消息摘要值。3.4.2安全哈希算法(5)輸出。全部L個512位數據處理完畢后,輸出160bi2.SHA-1壓縮函數A,B,C,D,E←(E+f(t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D其中:(1)A,B,C,D,E:緩沖區(qū)的5個字。

(2)t:步數,0<t<=79;f(t,B,C,D)=步t的基本邏輯函數。

(3)Sk:循環(huán)左移k位給定的32位字。(4)Wt:一個用于加法的常量,對應四個不同的值,計算方法如下:Wt=Mt

0≤t≤15;Wt=(Wt-3⊕Wt-8⊕Wt-14⊕Wt-16⊕)16≤t≤79;其中:Mt即源數據塊對應的字(32bit)。(5)所有“+”都是模232加。(6)t,Kt,f(t,B,C,D)的運算規(guī)則如表3-1所示。表3-1SHA-1壓縮函數運算規(guī)則表3.4.2安全哈希算法2.SHA-1壓縮函數3.4.2安全哈希算法3.4.2安全哈希算法TKtf(t,B,C,D)0≤t≤19Kt=827999(B∧C)∨(B∧D)20≤t≤39Kt=6ED9EBA1B⊕C⊕D40≤t≤59Kt=1BBCDC(B∧C)∨(B∧D)∨(C∧D)60≤t≤79Kt=CA1D6B⊕C⊕D3.4.2安全哈希算法TKtf(t,B,C,D)0≤t≤193.4.2安全哈希算法壓縮函數的結構示意如圖3-5所示。3.4.2安全哈希算法壓縮函數的結構示意如圖3-5所示。3.5幾種特殊數字簽名方法

根據電子商務具體應用的需要,形成了許多特殊的數字簽名應用,如盲簽名、雙聯簽名、團體簽名、不可爭辯簽名、數字時間戳等。3.5幾種特殊數字簽名方法根據電子商務具體應用的需要,形般數字簽名中,總是要先知道文件內容而后才簽署,這正是通常所需要的。但有時需要某人對一個文件簽名,但又不讓他知道文件內容,稱為盲簽名,它是由Chaum在1983年最先提出的。在選舉投票和數字貨幣協議中通常會使用到盲簽名。利用盲變換可以實現盲簽名。Chaum利用盲變換可以實現盲簽名的基本原理如下:(1)A取一文件并以一隨機值乘之,稱此隨機值為盲因子;(2)A將此盲文件簽名;(3)B對盲文件簽名;(4)A以盲因子除之,得到B對原文件的簽名。3.5.1盲簽名般數字簽名中,總是要先知道文件內容而后才簽署,這正是通常所需盲簽名與通常的數字簽名的不同之處在于,簽名者并不知道他所要簽發(fā)文件的具體內容。盲數字簽名在簽名時,接收者首先將被簽的消息進行盲變換,把變換后的消息發(fā)送給簽名者,簽名者對盲消息進行簽名并把消息送還給接收者,接收者對簽名再做逆盲變換,得出的消息即為原消息的盲簽名。3.5.1盲簽名SigBT(m)盲變換T盲變換T簽名者B簽名SigBT(m)SigB(m)接收者A接收者A圖3-6盲數字簽名方案的簽名過程盲簽名與通常的數字簽名的不同之處在于,簽名者并不知道他所要簽有一類特殊的盲簽名叫完全盲簽名,其性質是這樣的:簽名者在文件上的簽名是有效的,簽名是其簽署文件的證據。如果把文件給簽名者看,他可確信他簽署過這份文件。但是,簽名者不能把簽署文件的行為與簽署了的文件相關聯。即使他記下了他所作的每一個盲簽名,他也不能確定他在什么時候簽署了該文件。3.5.1盲簽名有一類特殊的盲簽名叫完全盲簽名,其性質是這樣的:簽名者在文件3.5.2雙聯簽名在實際商務活動中經常出現這種情形,即持卡人給商家發(fā)送訂購信息和自己的付款帳戶信息,但不愿讓商家看到自己的付款

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150