第6章數(shù)字簽名技術(shù)-1_第1頁(yè)
第6章數(shù)字簽名技術(shù)-1_第2頁(yè)
第6章數(shù)字簽名技術(shù)-1_第3頁(yè)
第6章數(shù)字簽名技術(shù)-1_第4頁(yè)
第6章數(shù)字簽名技術(shù)-1_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章數(shù)字簽名人們通過(guò)網(wǎng)絡(luò)支付費(fèi)用、買(mǎi)賣(mài)股票,為了保證網(wǎng)上商務(wù)活動(dòng)的安全,需要信息安全中一個(gè)很重要的安全機(jī)制——數(shù)字簽名。舉個(gè)例子說(shuō):用戶A通過(guò)網(wǎng)絡(luò)發(fā)送一條消息,告訴銀行從用戶A的賬戶上給用戶B支付5000元。1、銀行如何知道這條消息是由用戶A發(fā)送的?2、如果事后用戶A否認(rèn)他曾經(jīng)發(fā)送過(guò)這條消息,或聲稱他的支付請(qǐng)求是1000元,而不是5000元,銀行如何向公證機(jī)關(guān)證明用戶A確實(shí)發(fā)送過(guò)這條消息?解決辦法之一:用戶A對(duì)他的請(qǐng)求“讓銀行從用戶A的賬戶上給用戶B支付5000元”進(jìn)行簽名。第6章數(shù)字簽名技術(shù)6.1數(shù)字簽名概述

數(shù)字簽名的特性1.數(shù)字簽名的目的和要求

數(shù)字簽名的目的是保證信息的完整性和真實(shí)性,即消息內(nèi)容沒(méi)有被篡改,而且簽名也沒(méi)有被篡改,消息只能始發(fā)于所聲稱的發(fā)方。一個(gè)完善的簽名方案應(yīng)滿足以下三個(gè)條件:

①簽名者事后不能否認(rèn)或抵賴自己的簽名。

②其他任何人均不能偽造簽名,也不能對(duì)接收或發(fā)送的信息進(jìn)行篡改、偽造和冒充。

③若當(dāng)事雙方對(duì)簽名真?zhèn)伟l(fā)生爭(zhēng)執(zhí)時(shí),能夠在公正的仲裁者面前通過(guò)驗(yàn)證簽名來(lái)確定其真?zhèn)?。?章數(shù)字簽名技術(shù)sig:M×K→S,s=sigk(m)

數(shù)字簽名方案的描述

數(shù)字簽名方案的定義是:設(shè)M是消息的有限集合,S是簽名的有限集合,K是密鑰的有限集合,則數(shù)字簽名算法是一個(gè)映射:驗(yàn)證算法也是一個(gè)映射:為了實(shí)現(xiàn)數(shù)字簽名要求,當(dāng)事雙方應(yīng)首先達(dá)成有關(guān)協(xié)議,數(shù)字簽名協(xié)議中包括簽名的產(chǎn)生、驗(yàn)證及糾紛的解決方法等內(nèi)容。一般來(lái)說(shuō),數(shù)字簽名方案還應(yīng)滿足以下要求:

⑴簽名是不可偽造的。

⑵簽名是不可抵賴的。⑶簽名是可信的。⑷簽名是不可復(fù)制的。⑸簽名的消息是不可篡改的。

一個(gè)數(shù)字簽名方案由兩部分組成:帶有陷門(mén)的數(shù)字簽名算法(SignatureAlgorithm)和驗(yàn)證算法(VerificationAlgorithm)。第6章數(shù)字簽名技術(shù)歸納起來(lái),一個(gè)數(shù)字簽名方案的應(yīng)用一般包括三個(gè)過(guò)程:(1)系統(tǒng)初始化過(guò)程:產(chǎn)生數(shù)字簽名方案中用到的所有系統(tǒng)和用戶參數(shù),有公開(kāi)的,也有秘密的。(2)簽名產(chǎn)生過(guò)程:在此過(guò)程用戶利用給定的簽名算法和參數(shù)對(duì)消息產(chǎn)生簽名,這種簽名過(guò)程可以公開(kāi)也可以不公開(kāi),但一定包含僅簽名者才擁有的秘密信息(簽名密鑰)。(3)簽名驗(yàn)證過(guò)程:驗(yàn)證者利用公開(kāi)的驗(yàn)證方法和參數(shù)對(duì)給定消息的簽名進(jìn)行驗(yàn)證,得出簽名的有效性。五元組{M,S,K,sig,ver}就稱為一個(gè)簽名算法。

數(shù)字簽名的執(zhí)行方式

數(shù)字簽名的執(zhí)行方式有兩類:直接數(shù)字簽名方式和具有仲裁的數(shù)字簽名方。

1.直接方式

直接方式是指數(shù)字簽名的執(zhí)行過(guò)程只有通信雙方參與,并假定雙方有共享的秘密密鑰,或者接收一方知道發(fā)方的公開(kāi)密鑰。直接方式(1)AB:EKRa[M]

提供了認(rèn)證與簽名:只有A具有KRa進(jìn)行加密;傳輸中無(wú)法被篡改;需要某些格式信息/冗余度;任何第三方可以用KUa驗(yàn)證簽名(1’)AB:EKUb[EKRa(M)]

提供了保密(KUb)、認(rèn)證與簽名(KRa):直接方式(2)AB:M||EKRa[H(M)]提供認(rèn)證及數(shù)字簽名

--H(M)受到密碼算法的保護(hù);

--只有A能夠生成EKRa[H(M)](2’)AB:EK[M||EKRa[H(M)]]提供保密性、認(rèn)證和數(shù)字簽名。

直接數(shù)字簽名有一些共同的缺點(diǎn):方案的有效性依賴于發(fā)送方秘密密鑰的安全性。

仲裁數(shù)字簽名引入仲裁者。通常的做法是所有從發(fā)送方X到接收方Y(jié)的簽名消息首先送到仲裁者A,A將消息及其簽名進(jìn)行一系列測(cè)試,以檢查其來(lái)源和內(nèi)容,然后將消息加上日期并與已被仲裁者驗(yàn)證通過(guò)的指示一起發(fā)給Y。仲裁者在這一類簽名模式中扮演敏感和關(guān)鍵的角色。所有的參與者必須極大地相信這一仲裁機(jī)制工作正常。(trustedsystem)第6章數(shù)字簽名技術(shù)方案一

對(duì)稱加密,仲裁者可以看到消息內(nèi)容

該方案的前提是每個(gè)用戶都有與仲裁者共享的秘密密鑰。數(shù)字簽名過(guò)程如下:(1)S→A:M||EKSA[IDS||H(M)](2)A→R:EKAR[IDS||M||EKSA[IDS||H(M)]||T]其中E是對(duì)稱密鑰加密算法,KSA和KAR分別是仲裁者A與發(fā)送方S、接收方R的共享密鑰,H(M)是M的散列值,T是時(shí)間戳,IDS是S的身份標(biāo)識(shí)。從上面過(guò)程中可以看出,A的存在可以解決直接數(shù)字簽名可能產(chǎn)生的問(wèn)題。這時(shí)仲裁者起著關(guān)鍵的作用,這必須要求:(1)發(fā)送者S必須確信仲裁者A不會(huì)泄露KSA,也不會(huì)產(chǎn)生虛假的數(shù)字簽名;(2)接收方R必須確信仲裁者A只有在散列碼正確且發(fā)送方S的數(shù)字簽名被證實(shí)的情況下才發(fā)送;(3)通信雙方必須確信仲裁者A能公平的解決爭(zhēng)端。注:該方案中消息以明文方式發(fā)送,未提供機(jī)密性保護(hù)。

第6章數(shù)字簽名技術(shù)方案二:對(duì)稱加密,仲裁者不能看到消息內(nèi)容該方案的前提是每個(gè)用戶都有與仲裁者共享的秘密密鑰,而且兩兩用戶間也有共享密鑰。數(shù)字簽名過(guò)程如下:(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的共享密鑰。本方案雖然對(duì)消息M提供了保密性,但是仍存在與方案一相同的問(wèn)題:(1)仲裁者和發(fā)送方可以合謀來(lái)否認(rèn)曾經(jīng)發(fā)送過(guò)的消息;(2)仲裁者和接收方可以合謀來(lái)偽造發(fā)送方發(fā)的簽名。

方案三:公鑰加密,仲裁者不能看到消息內(nèi)容

該方案的前提是每個(gè)用戶都能安全獲取仲裁者和其它用戶的公開(kāi)密鑰。數(shù)字簽名過(guò)程如下:(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用自己的私鑰對(duì)消息M加密,來(lái)實(shí)現(xiàn)對(duì)消息M的簽名,用R的公鑰對(duì)消息M加密,來(lái)實(shí)現(xiàn)對(duì)M的機(jī)密性保護(hù)。采用這種方式,任何第三方(包括仲裁者A)都不知道消息M的內(nèi)容。仲裁者A收到S發(fā)來(lái)的內(nèi)容后,用S的公鑰進(jìn)行解密,并將得到的IDs與收到的IDs進(jìn)行比較,從而可以判斷消息是否來(lái)自發(fā)送方S。與前兩種方案相比,方案三有許多優(yōu)點(diǎn):(1)在方案執(zhí)行以前,各方都不必有共享的信息,從而可以防止合謀;(2)只要仲裁者的私鑰不被泄露,任何人包括發(fā)送方就不能重放消息;(3)對(duì)任何第三方(包括A),S發(fā)往R的消息都是保密的。第6章數(shù)字簽名技術(shù)6.2

基于公鑰密碼體制的典型數(shù)字簽名方案

RSA數(shù)字簽名方案

基于RSA公鑰密碼體制的數(shù)字簽名方案通常稱為RSA數(shù)字簽名方案。RSA數(shù)字簽名體制的基本算法可以表述如下:(2)簽名產(chǎn)生過(guò)程用戶A對(duì)消息M∈Zn進(jìn)行簽名,計(jì)算SA=Sig(M)=Mdmodn;其中d為簽名方A的私鑰。并將SA附在消息M后作為用戶對(duì)消息M的簽名。(1)系統(tǒng)初始化過(guò)程①產(chǎn)生兩個(gè)大素?cái)?shù)p,q;計(jì)算n=p×q;②隨機(jī)選取一個(gè)與Φ(n)互素的整數(shù)e作為公鑰,私鑰d滿足ed=1modΦ(n);用戶A將公開(kāi)公鑰e與n,而私鑰d,以及p,q則嚴(yán)格保密。

第6章數(shù)字簽名技術(shù)(3)簽名驗(yàn)證過(guò)程假設(shè)用戶B要驗(yàn)證用戶A對(duì)消息M的簽名,用戶計(jì)算

M’=SAemodn;其中e為簽名方A的公鑰。并判斷M’與M是否相等。如果相等則相信簽名確實(shí)為A所產(chǎn)生,否則拒絕確認(rèn)該簽名消息。RSA數(shù)字簽名算法如圖6.1所示。第6章數(shù)字簽名技術(shù)對(duì)于RSA數(shù)字簽名方案的應(yīng)用及安全性需要注意以下的幾個(gè)問(wèn)題:(1)上述RSA數(shù)字簽名算法采用了對(duì)整個(gè)消息進(jìn)行簽名的方法,由于公開(kāi)密鑰密碼體制一般速度都比較慢,這樣當(dāng)消息比較長(zhǎng)時(shí),整個(gè)簽名與驗(yàn)證過(guò)程都會(huì)相當(dāng)?shù)穆?/p>

(2)RSA數(shù)字簽名算法的安全性取決于RSA公開(kāi)密鑰密碼算法的安全性(基于大整數(shù)分解的困難性)。(3)如果消息M1、M2的簽名分別是S1和S2,則任何知道M1,S1,M2,S2的人都可以偽造對(duì)消息M1M2的簽名S1S2,這是因?yàn)樵赗SA的數(shù)字簽名方案中,Sig(M1M2)=Sig(M1)Sig(M2)。

ElGamal數(shù)字簽名方案EIGamal數(shù)字簽名方案是T.EIGamal在1985年發(fā)表關(guān)于EIGamal公開(kāi)密鑰密碼時(shí)給出的兩個(gè)方案之一(另外一個(gè)用于加密)。第6章數(shù)字簽名技術(shù)1.ElGamal數(shù)字簽名算法描述(1)系統(tǒng)初始化過(guò)程ElGamal系統(tǒng)初始化過(guò)程用來(lái)設(shè)置系統(tǒng)公共參數(shù)和用戶的密鑰。①系統(tǒng)公共參數(shù)a.選擇大素?cái)?shù)p,使得Zp中的離散對(duì)數(shù)問(wèn)題為困難問(wèn)題;b.選擇乘法群Zp*上的一本原元α。②用戶選擇密鑰每個(gè)用戶選擇一隨機(jī)數(shù)x,且1≤x<p-1,計(jì)算用戶將x作為自己的私鑰(用于簽名),將y作為自己的公鑰(用于簽名驗(yàn)證)。

整個(gè)系統(tǒng)公開(kāi)的參數(shù)有大素?cái)?shù)p、本原元α以及每個(gè)用戶的公鑰;而每個(gè)用戶的私鑰則嚴(yán)格保密。(2)簽名過(guò)程給定消息M,簽名者A將進(jìn)行如下計(jì)算:①選擇隨機(jī)數(shù)k∈Zp*,且k與(p-1)互素;第6章數(shù)字簽名技術(shù)(3)驗(yàn)證簽名過(guò)程接收方B在收到消息M與數(shù)字簽名(r,s)后:①計(jì)算消息M的散列碼H(M);②計(jì)算yrrsmodp

H(M)modp

;其中y為簽名方A的公鑰。若兩式相等,即yrrs=

H(M)modp

則確認(rèn)(r,s)為有效簽名,否則則認(rèn)為簽名是偽造的。③用戶A將(r,s)作為對(duì)消息M的數(shù)字簽名,與消息M一起發(fā)送給接收方。②簽名方對(duì)消息M進(jìn)行散列壓縮得到消息散列碼H(M),并計(jì)算:r=αkmodp;s=(H(M)-xr)k-1mod(p-1);其中x為簽名方A的私鑰。把EIGamal數(shù)字簽名方案總結(jié)如圖6.2所示。(見(jiàn)下頁(yè))2.ElGamal數(shù)字簽名算法安全性(1)EIGamal數(shù)字簽名算法是一個(gè)非確定性的數(shù)字簽名算法,對(duì)同一個(gè)消息M所產(chǎn)生的簽名依賴于隨機(jī)數(shù)k。(2)由于用戶的簽名密鑰x是保密的,攻擊者要從公開(kāi)的驗(yàn)證密鑰y得到簽名密鑰x必須求解有限域上的離散對(duì)數(shù)問(wèn)題(x=log,py)。因此ElGamal數(shù)字簽名算法的安全性是基于有限域上計(jì)算離散對(duì)數(shù)的困難性。第6章數(shù)字簽名技術(shù)⑶在簽名時(shí)用的隨機(jī)數(shù)r不能被泄露。(4)隨機(jī)數(shù)k不能被重復(fù)使用。例:設(shè)素?cái)?shù)p=11,α=2是Z11*上的本原元,用戶A選擇x=8作為自己的私鑰,消息M的哈希值H(M)=5,用戶A選擇的簽名隨機(jī)數(shù)k=9,計(jì)算A用EIGamal數(shù)字簽名算法對(duì)消息M的簽名以及用戶B對(duì)簽名的驗(yàn)證。

數(shù)字簽名標(biāo)準(zhǔn)DSS

1.DSA數(shù)字簽名算法描述DSA的參數(shù)①p是一個(gè)素?cái)?shù),要求2L-1<p<2L,512≤L≤1024,并且L為64的倍數(shù),即位長(zhǎng)度在512到1024之間,長(zhǎng)度增量為64位。②q是p-1的素因子,2159<q<2160,即q的長(zhǎng)度為160位。③g=h(p-1)/qmodp,其中h是一個(gè)整數(shù),滿足1<h<p-1并且g=h(p-1)/qmodp>1。④隨機(jī)選擇整數(shù)x作為用戶的私鑰,要求0<x<q。⑤計(jì)算用戶的公鑰y=gxmodp。顯然,給定x計(jì)算y是容易的,但是給定y求x是離散對(duì)數(shù)問(wèn)題。在上述參數(shù)中,p、q以及g是公開(kāi)的系統(tǒng)參數(shù),x和y分別是用戶的私鑰和公鑰。第6章數(shù)字簽名技術(shù)

其中H(M)是使用SHA-1生成的消息M的散列碼,(r,s)就是消息M的數(shù)字簽名,k-1是k模q的乘法逆元,為了安全起見(jiàn),每次簽名應(yīng)當(dāng)隨機(jī)選取不同的k。若r=0或s=0則返回①重新計(jì)算。;其中x為簽名方A的私鑰。(2)簽名過(guò)程假設(shè)用戶A要對(duì)消息M進(jìn)行數(shù)字簽名,然后發(fā)送給用戶B.①發(fā)送方A秘密選取隨機(jī)整數(shù)k,0<k<q;②發(fā)送方計(jì)算r=(gkmodp)modq;第6章數(shù)字簽名技術(shù)

如果v=r則確定簽名合法,可以認(rèn)為收到的消息是可信的,否則消息可能被篡改。(3)簽名驗(yàn)證過(guò)程如果接收者收到消息M,r,s后,首先驗(yàn)證0<r<q,0<s<q,如果通過(guò)則計(jì)算:w=s-1modq;u1=H(M)wmodq;u2=rwmodq;;其中y為簽名方A的公鑰。定理6.2設(shè)p和q

是素?cái)?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ù)字簽名算法對(duì)消息M的簽名,則一定有v=r成立。第6章數(shù)字簽名技術(shù)DSA算法也是非確定性的數(shù)字簽名算法,對(duì)消息M它的簽名依賴于隨機(jī)數(shù)r,這樣相同的消息就可能產(chǎn)生不同的簽名。

DSA的安全性也是基于計(jì)算有限域離散對(duì)數(shù)的困難性,鑒于有限域上計(jì)算離散對(duì)數(shù)問(wèn)題的進(jìn)展,一般認(rèn)為512位的DSA算法無(wú)法提供較長(zhǎng)期的安全性,而1024位的安全性值得信賴。例:假設(shè)素?cái)?shù)q=23,p=47,并取h=17,用戶A選擇了x=10作為自己簽名的私鑰和簽名隨機(jī)數(shù)k=19來(lái)對(duì)消息M進(jìn)行簽名,消息M的哈希值H(M)=15,計(jì)算消息M的簽名以及簽名驗(yàn)證。

2.DSA數(shù)字簽名算法的安全性分析第6章數(shù)字簽名技術(shù)

6.3特殊數(shù)字簽名方案不可否認(rèn)簽名

在現(xiàn)實(shí)生活中,有時(shí)需要在簽名者參加的情況下才能進(jìn)行簽名的驗(yàn)證,而簽名者又不能否認(rèn)簽名。滿足這個(gè)要求的數(shù)字簽名稱為不可否認(rèn)簽名方案(Undeniablesignaturescheme)。這一方案的主要目的是阻止簽名文件的隨便復(fù)制和任意散布。例如:某軟件公司A開(kāi)發(fā)的一個(gè)軟件產(chǎn)品,公司A將軟件產(chǎn)品和對(duì)產(chǎn)品的不可否認(rèn)數(shù)字簽名賣(mài)給用戶B。B在A的參與配合下才能驗(yàn)證A的簽名,確認(rèn)產(chǎn)品的真實(shí)性,并得到公司A的售后技術(shù)支持。但如果用戶B想把該軟件產(chǎn)品復(fù)制后私自賣(mài)給第三方,由于沒(méi)有公司A的參與,不能驗(yàn)證軟件的真實(shí)性,從而保護(hù)了公司A的利益。

不可否認(rèn)簽名的概念由D.Chaum和VanAntwerpen在1989年提出。不可否認(rèn)性包含兩層含義:簽名的證實(shí)和否定必須與簽名者合作才能完成;簽名者不能否認(rèn)他曾經(jīng)簽過(guò)的簽名。在不可否認(rèn)簽名方案中,若沒(méi)有簽名者的配合,簽名就不能得到驗(yàn)證,從而防止未經(jīng)簽名者的授權(quán),簽名文件被復(fù)制和分發(fā)的可能;而在簽名者的配合下,驗(yàn)證者可對(duì)數(shù)字簽名進(jìn)行驗(yàn)證。如果簽名是偽造的,在簽名者和驗(yàn)證者的配合下能證明該簽名事實(shí)上是偽造的。而當(dāng)一個(gè)簽名通過(guò)驗(yàn)證,簽名者不能否認(rèn)簽名。如果簽名者拒絕參與簽名驗(yàn)證,在法律上就認(rèn)定簽名者簽名的事實(shí)。如果在驗(yàn)證過(guò)程中,簽名者用虛假的方法或數(shù)據(jù),驗(yàn)證算法可以發(fā)現(xiàn)簽名者的造假行為,也可認(rèn)定簽名者的簽名事實(shí)。如果驗(yàn)證者提供的簽名是偽造的,則簽名者也可以發(fā)現(xiàn)并證明,從而否認(rèn)這個(gè)簽名。第6章數(shù)字簽名技術(shù)(2)簽名的驗(yàn)證協(xié)議簽名者和驗(yàn)證者執(zhí)行交互式協(xié)議,驗(yàn)證協(xié)議必須具備完備性和合理性:只要簽名者和驗(yàn)證者都是誠(chéng)實(shí)的,則簽名者簽署的簽名總是能夠通過(guò)驗(yàn)證協(xié)議,從而被驗(yàn)證者接受;同時(shí),若一個(gè)不是由簽名者簽署的簽名,無(wú)論簽名者如何狡辯,要使得簽名通過(guò)驗(yàn)證協(xié)議,并使得驗(yàn)證者接受的概率是可以忽略的。(3)簽名的否認(rèn)協(xié)議簽名

溫馨提示

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

評(píng)論

0/150

提交評(píng)論