




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章數(shù)字簽名人們通過網(wǎng)絡(luò)支付費用、買賣股票,為了保證網(wǎng)上商務(wù)活動的安全,需要信息安全中一個很重要的安全機制——數(shù)字簽名。舉個例子說:用戶A通過網(wǎng)絡(luò)發(fā)送一條消息,告訴銀行從用戶A的賬戶上給用戶B支付5000元。1、銀行如何知道這條消息是由用戶A發(fā)送的?2、如果事后用戶A否認他曾經(jīng)發(fā)送過這條消息,或聲稱他的支付請求是1000元,而不是5000元,銀行如何向公證機關(guān)證明用戶A確實發(fā)送過這條消息?解決辦法之一:用戶A對他的請求“讓銀行從用戶A的賬戶上給用戶B支付5000元”進行簽名。第6章數(shù)字簽名技術(shù)6.1數(shù)字簽名概述
數(shù)字簽名的特性1.數(shù)字簽名的目的和要求
數(shù)字簽名的目的是保證信息的完整性和真實性,即消息內(nèi)容沒有被篡改,而且簽名也沒有被篡改,消息只能始發(fā)于所聲稱的發(fā)方。一個完善的簽名方案應(yīng)滿足以下三個條件:
①簽名者事后不能否認或抵賴自己的簽名。
②其他任何人均不能偽造簽名,也不能對接收或發(fā)送的信息進行篡改、偽造和冒充。
③若當(dāng)事雙方對簽名真?zhèn)伟l(fā)生爭執(zhí)時,能夠在公正的仲裁者面前通過驗證簽名來確定其真?zhèn)巍5?章數(shù)字簽名技術(shù)sig:M×K→S,s=sigk(m)
數(shù)字簽名方案的描述
數(shù)字簽名方案的定義是:設(shè)M是消息的有限集合,S是簽名的有限集合,K是密鑰的有限集合,則數(shù)字簽名算法是一個映射:驗證算法也是一個映射:為了實現(xiàn)數(shù)字簽名要求,當(dāng)事雙方應(yīng)首先達成有關(guān)協(xié)議,數(shù)字簽名協(xié)議中包括簽名的產(chǎn)生、驗證及糾紛的解決方法等內(nèi)容。一般來說,數(shù)字簽名方案還應(yīng)滿足以下要求:
⑴簽名是不可偽造的。
⑵簽名是不可抵賴的。⑶簽名是可信的。⑷簽名是不可復(fù)制的。⑸簽名的消息是不可篡改的。
一個數(shù)字簽名方案由兩部分組成:帶有陷門的數(shù)字簽名算法(SignatureAlgorithm)和驗證算法(VerificationAlgorithm)。第6章數(shù)字簽名技術(shù)歸納起來,一個數(shù)字簽名方案的應(yīng)用一般包括三個過程:(1)系統(tǒng)初始化過程:產(chǎn)生數(shù)字簽名方案中用到的所有系統(tǒng)和用戶參數(shù),有公開的,也有秘密的。(2)簽名產(chǎn)生過程:在此過程用戶利用給定的簽名算法和參數(shù)對消息產(chǎn)生簽名,這種簽名過程可以公開也可以不公開,但一定包含僅簽名者才擁有的秘密信息(簽名密鑰)。(3)簽名驗證過程:驗證者利用公開的驗證方法和參數(shù)對給定消息的簽名進行驗證,得出簽名的有效性。五元組{M,S,K,sig,ver}就稱為一個簽名算法。
數(shù)字簽名的執(zhí)行方式
數(shù)字簽名的執(zhí)行方式有兩類:直接數(shù)字簽名方式和具有仲裁的數(shù)字簽名方。
1.直接方式
直接方式是指數(shù)字簽名的執(zhí)行過程只有通信雙方參與,并假定雙方有共享的秘密密鑰,或者接收一方知道發(fā)方的公開密鑰。直接方式(1)AB:EKRa[M]
提供了認證與簽名:只有A具有KRa進行加密;傳輸中無法被篡改;需要某些格式信息/冗余度;任何第三方可以用KUa驗證簽名(1’)AB:EKUb[EKRa(M)]
提供了保密(KUb)、認證與簽名(KRa):直接方式(2)AB:M||EKRa[H(M)]提供認證及數(shù)字簽名
--H(M)受到密碼算法的保護;
--只有A能夠生成EKRa[H(M)](2’)AB:EK[M||EKRa[H(M)]]提供保密性、認證和數(shù)字簽名。
直接數(shù)字簽名有一些共同的缺點:方案的有效性依賴于發(fā)送方秘密密鑰的安全性。
仲裁數(shù)字簽名引入仲裁者。通常的做法是所有從發(fā)送方X到接收方Y(jié)的簽名消息首先送到仲裁者A,A將消息及其簽名進行一系列測試,以檢查其來源和內(nèi)容,然后將消息加上日期并與已被仲裁者驗證通過的指示一起發(fā)給Y。仲裁者在這一類簽名模式中扮演敏感和關(guān)鍵的角色。所有的參與者必須極大地相信這一仲裁機制工作正常。(trustedsystem)第6章數(shù)字簽名技術(shù)方案一
對稱加密,仲裁者可以看到消息內(nèi)容
該方案的前提是每個用戶都有與仲裁者共享的秘密密鑰。數(shù)字簽名過程如下:(1)S→A:M||EKSA[IDS||H(M)](2)A→R:EKAR[IDS||M||EKSA[IDS||H(M)]||T]其中E是對稱密鑰加密算法,KSA和KAR分別是仲裁者A與發(fā)送方S、接收方R的共享密鑰,H(M)是M的散列值,T是時間戳,IDS是S的身份標識。從上面過程中可以看出,A的存在可以解決直接數(shù)字簽名可能產(chǎn)生的問題。這時仲裁者起著關(guān)鍵的作用,這必須要求:(1)發(fā)送者S必須確信仲裁者A不會泄露KSA,也不會產(chǎn)生虛假的數(shù)字簽名;(2)接收方R必須確信仲裁者A只有在散列碼正確且發(fā)送方S的數(shù)字簽名被證實的情況下才發(fā)送;(3)通信雙方必須確信仲裁者A能公平的解決爭端。注:該方案中消息以明文方式發(fā)送,未提供機密性保護。
第6章數(shù)字簽名技術(shù)方案二:對稱加密,仲裁者不能看到消息內(nèi)容該方案的前提是每個用戶都有與仲裁者共享的秘密密鑰,而且兩兩用戶間也有共享密鑰。數(shù)字簽名過程如下:(1)S→A:IDS||EKSR[M]||EKSA[IDS||H(EKSR[M])](2)A→R:EKAR[IDS||EKSR[M]||EKSA[IDS||H(EKSR[M])]||T]其中KSR是S,R的共享密鑰。本方案雖然對消息M提供了保密性,但是仍存在與方案一相同的問題:(1)仲裁者和發(fā)送方可以合謀來否認曾經(jīng)發(fā)送過的消息;(2)仲裁者和接收方可以合謀來偽造發(fā)送方發(fā)的簽名。
方案三:公鑰加密,仲裁者不能看到消息內(nèi)容
該方案的前提是每個用戶都能安全獲取仲裁者和其它用戶的公開密鑰。數(shù)字簽名過程如下:(1)S→A:IDS||EKRS[IDS||EKUR[EKRS[M]]](2)A→R:EKRA[IDS||EKUR[EKRS[M]]||T]其中KRS和KRA分別是發(fā)送方S和仲裁者A的私鑰,KUR是接收方R的公鑰在第(1)步中,S用自己的私鑰對消息M加密,來實現(xiàn)對消息M的簽名,用R的公鑰對消息M加密,來實現(xiàn)對M的機密性保護。采用這種方式,任何第三方(包括仲裁者A)都不知道消息M的內(nèi)容。仲裁者A收到S發(fā)來的內(nèi)容后,用S的公鑰進行解密,并將得到的IDs與收到的IDs進行比較,從而可以判斷消息是否來自發(fā)送方S。與前兩種方案相比,方案三有許多優(yōu)點:(1)在方案執(zhí)行以前,各方都不必有共享的信息,從而可以防止合謀;(2)只要仲裁者的私鑰不被泄露,任何人包括發(fā)送方就不能重放消息;(3)對任何第三方(包括A),S發(fā)往R的消息都是保密的。第6章數(shù)字簽名技術(shù)6.2
基于公鑰密碼體制的典型數(shù)字簽名方案
RSA數(shù)字簽名方案
基于RSA公鑰密碼體制的數(shù)字簽名方案通常稱為RSA數(shù)字簽名方案。RSA數(shù)字簽名體制的基本算法可以表述如下:(2)簽名產(chǎn)生過程用戶A對消息M∈Zn進行簽名,計算SA=Sig(M)=Mdmodn;其中d為簽名方A的私鑰。并將SA附在消息M后作為用戶對消息M的簽名。(1)系統(tǒng)初始化過程①產(chǎn)生兩個大素數(shù)p,q;計算n=p×q;②隨機選取一個與Φ(n)互素的整數(shù)e作為公鑰,私鑰d滿足ed=1modΦ(n);用戶A將公開公鑰e與n,而私鑰d,以及p,q則嚴格保密。
第6章數(shù)字簽名技術(shù)(3)簽名驗證過程假設(shè)用戶B要驗證用戶A對消息M的簽名,用戶計算
M’=SAemodn;其中e為簽名方A的公鑰。并判斷M’與M是否相等。如果相等則相信簽名確實為A所產(chǎn)生,否則拒絕確認該簽名消息。RSA數(shù)字簽名算法如圖6.1所示。第6章數(shù)字簽名技術(shù)對于RSA數(shù)字簽名方案的應(yīng)用及安全性需要注意以下的幾個問題:(1)上述RSA數(shù)字簽名算法采用了對整個消息進行簽名的方法,由于公開密鑰密碼體制一般速度都比較慢,這樣當(dāng)消息比較長時,整個簽名與驗證過程都會相當(dāng)?shù)穆?/p>
(2)RSA數(shù)字簽名算法的安全性取決于RSA公開密鑰密碼算法的安全性(基于大整數(shù)分解的困難性)。(3)如果消息M1、M2的簽名分別是S1和S2,則任何知道M1,S1,M2,S2的人都可以偽造對消息M1M2的簽名S1S2,這是因為在RSA的數(shù)字簽名方案中,Sig(M1M2)=Sig(M1)Sig(M2)。
ElGamal數(shù)字簽名方案EIGamal數(shù)字簽名方案是T.EIGamal在1985年發(fā)表關(guān)于EIGamal公開密鑰密碼時給出的兩個方案之一(另外一個用于加密)。第6章數(shù)字簽名技術(shù)1.ElGamal數(shù)字簽名算法描述(1)系統(tǒng)初始化過程ElGamal系統(tǒng)初始化過程用來設(shè)置系統(tǒng)公共參數(shù)和用戶的密鑰。①系統(tǒng)公共參數(shù)a.選擇大素數(shù)p,使得Zp中的離散對數(shù)問題為困難問題;b.選擇乘法群Zp*上的一本原元α。②用戶選擇密鑰每個用戶選擇一隨機數(shù)x,且1≤x<p-1,計算用戶將x作為自己的私鑰(用于簽名),將y作為自己的公鑰(用于簽名驗證)。
整個系統(tǒng)公開的參數(shù)有大素數(shù)p、本原元α以及每個用戶的公鑰;而每個用戶的私鑰則嚴格保密。(2)簽名過程給定消息M,簽名者A將進行如下計算:①選擇隨機數(shù)k∈Zp*,且k與(p-1)互素;第6章數(shù)字簽名技術(shù)(3)驗證簽名過程接收方B在收到消息M與數(shù)字簽名(r,s)后:①計算消息M的散列碼H(M);②計算yrrsmodp
和
H(M)modp
;其中y為簽名方A的公鑰。若兩式相等,即yrrs=
H(M)modp
則確認(r,s)為有效簽名,否則則認為簽名是偽造的。③用戶A將(r,s)作為對消息M的數(shù)字簽名,與消息M一起發(fā)送給接收方。②簽名方對消息M進行散列壓縮得到消息散列碼H(M),并計算:r=αkmodp;s=(H(M)-xr)k-1mod(p-1);其中x為簽名方A的私鑰。把EIGamal數(shù)字簽名方案總結(jié)如圖6.2所示。(見下頁)2.ElGamal數(shù)字簽名算法安全性(1)EIGamal數(shù)字簽名算法是一個非確定性的數(shù)字簽名算法,對同一個消息M所產(chǎn)生的簽名依賴于隨機數(shù)k。(2)由于用戶的簽名密鑰x是保密的,攻擊者要從公開的驗證密鑰y得到簽名密鑰x必須求解有限域上的離散對數(shù)問題(x=log,py)。因此ElGamal數(shù)字簽名算法的安全性是基于有限域上計算離散對數(shù)的困難性。第6章數(shù)字簽名技術(shù)⑶在簽名時用的隨機數(shù)r不能被泄露。(4)隨機數(shù)k不能被重復(fù)使用。例:設(shè)素數(shù)p=11,α=2是Z11*上的本原元,用戶A選擇x=8作為自己的私鑰,消息M的哈希值H(M)=5,用戶A選擇的簽名隨機數(shù)k=9,計算A用EIGamal數(shù)字簽名算法對消息M的簽名以及用戶B對簽名的驗證。
數(shù)字簽名標準DSS
1.DSA數(shù)字簽名算法描述DSA的參數(shù)①p是一個素數(shù),要求2L-1<p<2L,512≤L≤1024,并且L為64的倍數(shù),即位長度在512到1024之間,長度增量為64位。②q是p-1的素因子,2159<q<2160,即q的長度為160位。③g=h(p-1)/qmodp,其中h是一個整數(shù),滿足1<h<p-1并且g=h(p-1)/qmodp>1。④隨機選擇整數(shù)x作為用戶的私鑰,要求0<x<q。⑤計算用戶的公鑰y=gxmodp。顯然,給定x計算y是容易的,但是給定y求x是離散對數(shù)問題。在上述參數(shù)中,p、q以及g是公開的系統(tǒng)參數(shù),x和y分別是用戶的私鑰和公鑰。第6章數(shù)字簽名技術(shù)
其中H(M)是使用SHA-1生成的消息M的散列碼,(r,s)就是消息M的數(shù)字簽名,k-1是k模q的乘法逆元,為了安全起見,每次簽名應(yīng)當(dāng)隨機選取不同的k。若r=0或s=0則返回①重新計算。;其中x為簽名方A的私鑰。(2)簽名過程假設(shè)用戶A要對消息M進行數(shù)字簽名,然后發(fā)送給用戶B.①發(fā)送方A秘密選取隨機整數(shù)k,0<k<q;②發(fā)送方計算r=(gkmodp)modq;第6章數(shù)字簽名技術(shù)
如果v=r則確定簽名合法,可以認為收到的消息是可信的,否則消息可能被篡改。(3)簽名驗證過程如果接收者收到消息M,r,s后,首先驗證0<r<q,0<s<q,如果通過則計算:w=s-1modq;u1=H(M)wmodq;u2=rwmodq;;其中y為簽名方A的公鑰。定理6.2設(shè)p和q
是素數(shù)且滿足q|(p–1),h是小于p的正整數(shù),g=h(p-1)/qmodp,則gpmodp=1,并且假如m=nmodq,則gm=gnmodp定理6.3:如果(r,s)是合法用戶A采用DSA數(shù)字簽名算法對消息M的簽名,則一定有v=r成立。第6章數(shù)字簽名技術(shù)DSA算法也是非確定性的數(shù)字簽名算法,對消息M它的簽名依賴于隨機數(shù)r,這樣相同的消息就可能產(chǎn)生不同的簽名。
DSA的安全性也是基于計算有限域離散對數(shù)的困難性,鑒于有限域上計算離散對數(shù)問題的進展,一般認為512位的DSA算法無法提供較長期的安全性,而1024位的安全性值得信賴。例:假設(shè)素數(shù)q=23,p=47,并取h=17,用戶A選擇了x=10作為自己簽名的私鑰和簽名隨機數(shù)k=19來對消息M進行簽名,消息M的哈希值H(M)=15,計算消息M的簽名以及簽名驗證。
2.DSA數(shù)字簽名算法的安全性分析第6章數(shù)字簽名技術(shù)
6.3特殊數(shù)字簽名方案不可否認簽名
在現(xiàn)實生活中,有時需要在簽名者參加的情況下才能進行簽名的驗證,而簽名者又不能否認簽名。滿足這個要求的數(shù)字簽名稱為不可否認簽名方案(Undeniablesignaturescheme)。這一方案的主要目的是阻止簽名文件的隨便復(fù)制和任意散布。例如:某軟件公司A開發(fā)的一個軟件產(chǎn)品,公司A將軟件產(chǎn)品和對產(chǎn)品的不可否認數(shù)字簽名賣給用戶B。B在A的參與配合下才能驗證A的簽名,確認產(chǎn)品的真實性,并得到公司A的售后技術(shù)支持。但如果用戶B想把該軟件產(chǎn)品復(fù)制后私自賣給第三方,由于沒有公司A的參與,不能驗證軟件的真實性,從而保護了公司A的利益。
不可否認簽名的概念由D.Chaum和VanAntwerpen在1989年提出。不可否認性包含兩層含義:簽名的證實和否定必須與簽名者合作才能完成;簽名者不能否認他曾經(jīng)簽過的簽名。在不可否認簽名方案中,若沒有簽名者的配合,簽名就不能得到驗證,從而防止未經(jīng)簽名者的授權(quán),簽名文件被復(fù)制和分發(fā)的可能;而在簽名者的配合下,驗證者可對數(shù)字簽名進行驗證。如果簽名是偽造的,在簽名者和驗證者的配合下能證明該簽名事實上是偽造的。而當(dāng)一個簽名通過驗證,簽名者不能否認簽名。如果簽名者拒絕參與簽名驗證,在法律上就認定簽名者簽名的事實。如果在驗證過程中,簽名者用虛假的方法或數(shù)據(jù),驗證算法可以發(fā)現(xiàn)簽名者的造假行為,也可認定簽名者的簽名事實。如果驗證者提供的簽名是偽造的,則簽名者也可以發(fā)現(xiàn)并證明,從而否認這個簽名。第6章數(shù)字簽名技術(shù)(2)簽名的驗證協(xié)議簽名者和驗證者執(zhí)行交互式協(xié)議,驗證協(xié)議必須具備完備性和合理性:只要簽名者和驗證者都是誠實的,則簽名者簽署的簽名總是能夠通過驗證協(xié)議,從而被驗證者接受;同時,若一個不是由簽名者簽署的簽名,無論簽名者如何狡辯,要使得簽名通過驗證協(xié)議,并使得驗證者接受的概率是可以忽略的。(3)簽名的否認協(xié)議簽名
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高校畢業(yè)生實習(xí)期間實習(xí)成果展示與應(yīng)用協(xié)議
- 二零二五年度特色小吃店合作開店合同
- 二零二五年度廠房租賃合同解除及租賃保證金退還協(xié)議
- bot特許經(jīng)營合同范本
- 兒童美術(shù)培訓(xùn)合同范本
- 2025至2031年中國輪式步行機行業(yè)投資前景及策略咨詢研究報告
- 集團總部大廈規(guī)劃方案學(xué)習(xí)資料
- 甜玉米采購合同范本
- 租賃便宜土地合同范本
- 車子抵押協(xié)議合同范本
- 分布式網(wǎng)絡(luò)處理方案
- CNAS-CL02-A001:2023 醫(yī)學(xué)實驗室質(zhì)量和能力認可準則的應(yīng)用要求
- 鐵路機車檢修坑施工方案
- 數(shù)字化轉(zhuǎn)型中的知識管理
- 看不見的森林
- 安全用梯專題培訓(xùn)
- 中小學(xué)教師專業(yè)標準解讀
- cw3-2500m萬能式斷路器說明書
- 大學(xué)生心理健康教育第四章大學(xué)生學(xué)習(xí)心理課件
- 企業(yè)實際控制人的協(xié)議書
- 風(fēng)電行業(yè)事故案例及風(fēng)電基礎(chǔ)施工方案
評論
0/150
提交評論