版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1/34第1章密碼學(xué)概述 第2章古典密碼技術(shù) 第3章分組密碼第4章公鑰密碼體制第5章散列函數(shù)與消息鑒別
第6章數(shù)字簽名技術(shù)
第7章密鑰管理技術(shù)第8章身份鑒別技術(shù)第9章序列密碼基礎(chǔ)第10章密碼技術(shù)應(yīng)用課程主要內(nèi)容四川大學(xué)電子信息學(xué)院2/34本章主要內(nèi)容6.1數(shù)字簽名概述 6.2基于公鑰密碼體制的典型數(shù)字簽名方案RSA數(shù)字簽名方案ElGamal數(shù)字簽名方案數(shù)字簽名標(biāo)準(zhǔn)DSS基于橢圓曲線密碼的數(shù)字簽名算法ECDSA
6.3特殊數(shù)字簽名方案 不可否認(rèn)簽名盲數(shù)字簽名群簽名
四川大學(xué)電子信息學(xué)院3/34數(shù)字簽名的主要作用:
將消息和擁有消息的實(shí)體可信地聯(lián)系起來(lái)。
數(shù)字簽名在信息安全,包括鑒別、數(shù)據(jù)完整性、抗抵賴性等方面,特別是在大型網(wǎng)絡(luò)安全通信中的密鑰分配、鑒別及電子商務(wù)系統(tǒng)中,具有重要作用。6.1數(shù)字簽名概述
數(shù)字簽名普通簽名特殊簽名代理簽名、不可否認(rèn)簽名、盲簽名、公平盲簽名、群簽名、門限簽名、一次性簽名等。四川大學(xué)電子信息學(xué)院4/34
傳統(tǒng)簽名及其應(yīng)用:
手寫簽名與印章。
(1)對(duì)其所簽署的文件進(jìn)行確認(rèn);
(2)如果日后簽署文件的雙方針對(duì)文件的內(nèi)容發(fā)生爭(zhēng)執(zhí),根據(jù)簽署文件時(shí)留下的簽名,第三方可以對(duì)簽名進(jìn)行檢查以便對(duì)爭(zhēng)執(zhí)進(jìn)行調(diào)解。數(shù)字簽名
是一種作用類似于傳統(tǒng)的手書簽名或印章的電子標(biāo)記,它可以達(dá)到與手寫簽名類似的作用,即使用數(shù)字簽名。
定義:數(shù)字簽名是這樣一種鑒別機(jī)制,它可以使一個(gè)報(bào)文附加上一段起到簽名作用的代碼。這個(gè)代碼可保證報(bào)文的來(lái)源和完整性。
數(shù)字簽名概述(續(xù))四川大學(xué)電子信息學(xué)院5/34(1)簽名是不可偽造的;除了合法的簽名者之外,任何其他人偽造其簽名是困難的。(2)簽名是不可抵賴的:簽名者事后不能否認(rèn)自己的簽名。(3)簽名是可信的:任何人都可以驗(yàn)證簽名的有效性。(4)簽名是不可復(fù)制的:對(duì)一個(gè)消息的簽名不能通過(guò)復(fù)制變?yōu)榱硪粋€(gè)消息的簽名。如果對(duì)一個(gè)消息的簽名是從別處復(fù)制得到的,則任何人都可以發(fā)現(xiàn)消息與簽名之間的不一致性,從而可以拒絕簽名的消息。(5)簽名的消息是不可篡改的:經(jīng)簽名的消息不能被篡改。一旦簽名的消息被篡改,則任何人都可以發(fā)現(xiàn)消息與簽名之間的不一致性。
數(shù)字簽名應(yīng)具有的特性四川大學(xué)電子信息學(xué)院6/34(1)數(shù)字簽名:簽名與消息是分開的,需要一種方法將簽名與消息綁定在一起。
手寫簽名:簽名認(rèn)為是被簽名消息的一部分。(2)數(shù)字簽名:在簽名驗(yàn)證的方法上,數(shù)字簽名利用一種公開的方法對(duì)簽名進(jìn)行驗(yàn)證,任何人都可以對(duì)簽名進(jìn)行驗(yàn)證。
手寫簽名:驗(yàn)證是由經(jīng)驗(yàn)豐富的消息接收者通過(guò)同以前的簽名相比較而進(jìn)行的。(3)數(shù)字簽名:有效簽名容易被復(fù)制。因此,在數(shù)字簽名方案的設(shè)計(jì)中要預(yù)防簽名的再用。手寫簽名:簽名的復(fù)制是無(wú)效的。
數(shù)字簽名與傳統(tǒng)手寫簽名的比較7/34驗(yàn)證算法返回的結(jié)果為布爾值,“真(true)”或“假(false)”,即:Ver(M,S)=truefalse;S=Sig(M);S≠Sig(M)驗(yàn)證算法的結(jié)果表示了簽名是否真實(shí)可靠。(1)簽名算法(SignatureAlgorithm):簽名密鑰一定是秘密的。簽名者A對(duì)消息M使用簽名算法,記作S=Sig(M),有時(shí)為了強(qiáng)調(diào)用戶A或所使用的簽名密鑰k,簽名算法也記為
S=SigA(M)或S=Sigk(M)(2)驗(yàn)證算法(VerificationAlgorithm):驗(yàn)證算法及有關(guān)參數(shù)一定是公開的。
驗(yàn)證者可以通過(guò)驗(yàn)證算法,記作Ver(M,S),有時(shí)為了強(qiáng)調(diào)用戶A或所使用的簽名密鑰k,也記為
VerA(M,S)或Verk(M,S)判斷其真實(shí)性。數(shù)字簽名方案的組成部分8/34
簽名必須依賴于被簽名消息的比特模式(簽名與消息應(yīng)該是一個(gè)不可分割的整體);簽名必須使用某些對(duì)發(fā)送者是唯一的信息,以防止偽造和抵賴;數(shù)字簽名的產(chǎn)生、識(shí)別和驗(yàn)證應(yīng)該相對(duì)容易;偽造一個(gè)數(shù)字簽名在計(jì)算上是不可行的;(無(wú)論是通過(guò)對(duì)已有的數(shù)字簽名來(lái)構(gòu)造新報(bào)文,還是對(duì)給定的報(bào)文偽造一個(gè)數(shù)字簽名)6.數(shù)字簽名的設(shè)計(jì)要求9/34
為了保證簽名的有效性,對(duì)消息進(jìn)行簽名的簽名者與對(duì)簽名進(jìn)行驗(yàn)證的驗(yàn)證者絕對(duì)不能擁有完全相同的用于簽名和驗(yàn)證的信息,因?yàn)橐坏?yàn)證者能夠用與簽名者相同的信息(參數(shù)和算法)來(lái)驗(yàn)證報(bào)文與簽名,那么他同樣可以偽造報(bào)文與簽名。
公開密鑰密碼體制很好地滿足了這一要求。7.基于公開密鑰密碼體制的數(shù)字簽名帶有消息恢復(fù)的數(shù)字簽名方案MEEKRa(M)KRaDKUaM公鑰加密:鑒別和數(shù)字簽名10/34思考:該方法的問題?解決方案:將簽名信息與報(bào)文分離,形成一個(gè)獨(dú)立的簽名塊,無(wú)論報(bào)文多長(zhǎng),這個(gè)簽名塊的長(zhǎng)度都是固定的。ME||MKRaH比較HEKRa(H(M))DKUaME||MKRaH比較HDKUaEKEKRa(H(M))EK[M||EKRa(H(M))]DK數(shù)字簽名數(shù)字簽名+機(jī)密性保護(hù),為了防止攻擊者竊密,可以在發(fā)送時(shí)用對(duì)稱密碼體制對(duì)整個(gè)消息和簽名進(jìn)行加密數(shù)字簽名的產(chǎn)生可用加密算法或特定的簽名算法。1.由加密算法產(chǎn)生數(shù)字簽名利用加密算法產(chǎn)生數(shù)字簽名是指將消息或消息的摘要加密后的密文作為對(duì)該消息的數(shù)字簽名,其用法又根據(jù)是單鑰加密還是公鑰加密而有所不同。6.1.2數(shù)字簽名的產(chǎn)生方式(1)單鑰加密如圖7.1(a)所示,發(fā)送方A根據(jù)單鑰加密算法以與接收方B共享的密鑰K對(duì)消息M加密后的密文作為對(duì)M的數(shù)字簽名發(fā)往B。該系統(tǒng)能向B保證所收到的消息的確來(lái)自A,因?yàn)橹挥蠥知道密鑰K。再者B恢復(fù)出M后,可相信M未被篡改。具體來(lái)說(shuō),就是B執(zhí)行解密運(yùn)算Y=DK(X),如果X是合法消息M加密后的密文,則B得到的Y就是明文消息M,否則Y將是無(wú)意義的比特序列。(2)公鑰加密如圖7.1(b)所示,發(fā)送方A使用自己的秘密鑰SKA對(duì)消息M加密后的密文作為對(duì)M的數(shù)字簽名,B使用A的公開鑰PKA對(duì)消息解密,由于只有A才擁有加密密鑰SKA,因此可使B相信自己收到的消息的確來(lái)自A。然而由于任何人都可使用A的公開鑰解密密文,所以這種方案不提供保密性。為提供保密性,A可用B的公開鑰再一次加密,如圖7.1(c)所示。 由加密算法產(chǎn)生數(shù)字簽名又分為外部保密方式和內(nèi)部保密方式,外部保密方式是指數(shù)字簽名是直接對(duì)需要簽名的消息生成而不是對(duì)已加密的消息生成,否則稱為內(nèi)部保密方式。外部保密方式便于解決爭(zhēng)議,因?yàn)榈?方在處理爭(zhēng)議時(shí),需得到明文消息及其簽名。但如果采用內(nèi)部保密方式,第3方必須得到消息的解密密鑰后才能得到明文消息。如果采用外部保密方式,接收方就可將明文消息及其數(shù)字簽名存儲(chǔ)下來(lái)以備以后萬(wàn)一出現(xiàn)爭(zhēng)議時(shí)使用。2.由簽名算法產(chǎn)生數(shù)字簽名 簽名算法的輸入是明文消息M和密鑰x,輸出是對(duì)M的數(shù)字簽名,表示為S=Sigx(M)。相應(yīng)于簽名算法,有一驗(yàn)證算法,表示為Verx(S,M),其取值為算法的安全性在于從M和S難以推出密鑰x或偽造一個(gè)消息M′,使M′和S可被驗(yàn)證為真。四川大學(xué)電子信息學(xué)院17/346.3數(shù)字簽名的執(zhí)行方式數(shù)字簽名的執(zhí)行方式有兩類:直接數(shù)字簽名方式和具有仲裁的數(shù)字簽名方式。1.直接數(shù)字簽名方式
直接方式是指數(shù)字簽名的執(zhí)行過(guò)程只有通信雙方參與,并假定雙方有共享的秘密密鑰,或者接收一方知道發(fā)送方的公開密鑰。
直接數(shù)字簽名的局限性:
方案的有效性依賴于發(fā)送方秘密密鑰的安全性。四川大學(xué)電子信息學(xué)院18/34數(shù)字簽名的執(zhí)行方式(續(xù))
具有仲裁的數(shù)字簽名是在通信雙方的基礎(chǔ)上引入了第三方仲裁者參與。
2.具有仲裁的數(shù)字簽名方式
下面給出幾個(gè)需要仲裁者的數(shù)字簽名方案。其中S表示發(fā)送方,R表示接收方,A是仲裁者,M是傳送的消息。(1)
應(yīng)用對(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í)。在①中,S以EKSA[IDS‖H(M)]作為自己對(duì)M的簽名,將M及簽名發(fā)往A。A用KSA解密簽名,用H(M)驗(yàn)證消息M,確認(rèn)此簽名是由S發(fā)出的。在②中A將從S收到的內(nèi)容和IDS、T一起加密后發(fā)往R,其中的T用于向R表示所發(fā)的消息不是舊消息的重放。R對(duì)收到的內(nèi)容解密后,將解密結(jié)果存儲(chǔ)起來(lái)以備出現(xiàn)爭(zhēng)議時(shí)使用。(2)
應(yīng)用對(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共享的密鑰,其他符號(hào)與前面相同。S以EKSA[IDS‖H(EKSR[M])]作為對(duì)M的簽名,與由KSR加密的消息M一起發(fā)給A。A對(duì)EKSA[IDS‖H(EKSR[M])]解密后通過(guò)驗(yàn)證散列值以驗(yàn)證S的簽名,但始終未能讀取明文M。A驗(yàn)證完S的簽名后,對(duì)S發(fā)來(lái)的消息加一時(shí)戳,再用KAR加密后發(fā)往R。2.具有仲裁的方式(續(xù))(3)應(yīng)用公鑰加密,仲裁者不能看到消息內(nèi)容該方案的前提是每個(gè)用戶都能安全獲取仲裁者和其它用戶的公開密鑰。數(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的公鑰。第①步中,S用自己的秘密鑰KRS和R的公開鑰KUR對(duì)消息加密后作為對(duì)M的簽名,以這種方式使得任何第3方(包括A)都不能得到M的明文消息。A收到S發(fā)來(lái)的內(nèi)容后,用S的公開鑰可對(duì)EKRS[IDS||EKUR[EKRS[M]]]解密,并將解密得到的IDS與收到的IDS加以比較,從而可確信這一消息是來(lái)自于S的(因只有S有KRS)。第②步,A將S的身份IDS和S對(duì)M的簽名加上一時(shí)戳后,再用自己的秘密鑰加密發(fā)往R。四川大學(xué)電子信息學(xué)院22/346.3典型數(shù)字簽名方案
數(shù)字簽名方案的三個(gè)過(guò)程:(1)系統(tǒng)的初始化過(guò)程:產(chǎn)生的數(shù)字簽名方案中用到的一切參數(shù),有公開的,也有秘密的。(2)簽名產(chǎn)生過(guò)程:在此過(guò)程用戶利用給定的算法對(duì)消息產(chǎn)生簽名,這種簽名過(guò)程可以公開也可以不公開。(3)簽名驗(yàn)證過(guò)程:驗(yàn)證者利用公開驗(yàn)證方法對(duì)給定消息的簽名進(jìn)行驗(yàn)證,得出簽名的有效性。四川大學(xué)電子信息學(xué)院23/34RSA數(shù)字簽名體制
RSA數(shù)字簽名體制使用了RSA公開密鑰密碼算法進(jìn)行數(shù)字簽名。鑒于RSA算法在實(shí)踐中已經(jīng)被證明了的安全性,RSA簽名體制在許多安全標(biāo)準(zhǔn)中得以廣泛應(yīng)用。ISO/IEC9796和ANSIX.30-199X以及美國(guó)聯(lián)邦信息處理標(biāo)淮FIPS186-2已經(jīng)將RSA作為推薦的數(shù)字簽名標(biāo)準(zhǔn)算法之一。另外,美國(guó)RSA數(shù)據(jù)安全公司所開發(fā)的安全標(biāo)準(zhǔn)PKCS#l也是以RSA數(shù)字簽名體制作為其推薦算法的。
RSA數(shù)字簽名體制的安全性決定于RSA公開密鑰密碼算法的安全性。由RSA體制可知,由于只有簽名者才知道用于簽名的秘密密鑰d,雖然其他用戶可以很容易地對(duì)消息M(明文)的簽名S(密文)進(jìn)行驗(yàn)證,但他們將無(wú)法偽造簽名者的簽名。典型的數(shù)字簽名體制(續(xù))
RSA數(shù)字簽名方案
基于RSA公鑰密碼體制的數(shù)字簽名方案通常稱為RSA數(shù)字簽名方案。RSA數(shù)字簽名體制的基本算法可以表述如下:用戶A對(duì)消息M∈Zn進(jìn)行簽名,計(jì)算SA=Sig(M)=Mdmodn;其中d為簽名方A的私鑰。并將SA附在消息M后作為對(duì)用戶對(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將公開公鑰e與n,而私鑰d,以及p,q則嚴(yán)格保密。簽名產(chǎn)生過(guò)程:(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ù)字簽名算法如圖所示。對(duì)于RSA數(shù)字簽名方案的應(yīng)用及安全性需要注意以下的幾個(gè)問題:(1)上述RSA數(shù)字簽名算法采用了對(duì)整個(gè)消息進(jìn)行簽名的方法,由于公開密鑰密碼體制一般速度都比較慢,這樣當(dāng)消息比較長(zhǎng)時(shí),整個(gè)簽名與驗(yàn)證過(guò)程都會(huì)相當(dāng)?shù)穆?。(可以改進(jìn)為通過(guò)hash函數(shù)產(chǎn)生固定長(zhǎng)度的散列碼,對(duì)散列碼進(jìn)行簽名)(2)RSA數(shù)字簽名算法的安全性取決于RSA公開密鑰密碼算法的安全性(基于大整數(shù)分解的困難性)。(3)如果消息M1、M2的簽名分別是S1和S2,則任何知道M1,S1,M2,S2的人都可以偽造對(duì)消息M1M2的簽名S1S2,這是因?yàn)樵赗SA的數(shù)字簽名方案中,Sig(M1M2)=Sig(M1)Sig(M2)。(4)任何人都可以通過(guò)獲取某一用戶的公鑰e,并對(duì)某一消息Y∈Zn計(jì)算M=Yemodn來(lái)偽造該用戶對(duì)隨機(jī)消息M的簽名Y,聲稱Y是該用戶對(duì)消息M的數(shù)字簽名,因?yàn)閟ig(M)=Md
=(Ye)d
=Y(jié)modn。通過(guò)仔細(xì)設(shè)計(jì)數(shù)據(jù)格式或采用基于散列函數(shù)的簽名方式可以抵抗這種攻擊。27/342.ElGamal數(shù)字簽名體制ElGamal數(shù)字簽名體制是T.ElGamal在1985年發(fā)表關(guān)于ElGamal公開密鑰密碼時(shí)給出的兩個(gè)體制之一(另外一個(gè)用于加密)。它的安全性主要基于求解離散對(duì)數(shù)問題的困難性。
ElGamal數(shù)字簽名體制具有許多變體,其中重要的有美國(guó)NIST于1991年公布的數(shù)字簽名標(biāo)準(zhǔn)(DSS)中所使用的數(shù)字簽名算法DSA28/34ElGamal數(shù)字簽名算法描述:
(1)系統(tǒng)初始化:選取大素?cái)?shù)p,∈Zp*是一個(gè)本原元。p,作為系統(tǒng)參數(shù)公開。每個(gè)用戶U隨機(jī)選取整數(shù)dU,2≤dU≤p-2。計(jì)算:eU
=dU
modp
將eU
作為用戶U的公開密鑰,dU作為用于簽名的秘密密鑰,并嚴(yán)格保密。(2)簽名變換:給定消息M,簽名方A將進(jìn)行下述簽名計(jì)算:①選擇隨機(jī)數(shù)k∈Zp*
,且k與(p-1)互素②用單向散列函數(shù)H對(duì)消息M進(jìn)行壓縮。簽名方A計(jì)算H(M),并計(jì)算:r=k
modps=(H(M)-dA·r)k-1mod(p-1)③用戶A將Sig(M)=(r,s)
作為自己對(duì)消息M的數(shù)字簽名,與消息M一起傳送給接收方。四川大學(xué)電子信息學(xué)院29/34(3)驗(yàn)證簽名:接收方在收到消息M與數(shù)字簽名(r,s)后:①計(jì)算H(M);②計(jì)算eArrs
(modp)和H(M)(modp)
若兩式相等,即
eAr·rs
(modp)=H(M)(modp)則確認(rèn)(r,s)為有效簽名。
由于eAr·
rs
≡(dA
)
r·
(k
)s≡dA·r
k
·s≡dA·r+k
·s(modp)eA
=dA
modp,r=k
modps=(H(M)-dA·r)k-1mod(p-1)又由s=(H(M)-dA·r)k-1(modp-1)由模運(yùn)算規(guī)則,上式為:k·s+dA·r=H(M)(modp-1)
即:dA·r+k·s=H(M)(modp-1)再由模運(yùn)算的指數(shù)性質(zhì)有:dA·r+k·
s
≡H(M)(modp)所以有:eAr·rs
(modp)=H(M)(modp)四川大學(xué)電子信息學(xué)院30/34完整地,驗(yàn)證算法可表述如下:Ver(M,(R,S))=(eARRS(modp)=H(M)(modp))?True:false
在ElGamal簽名方案中,簽名過(guò)程需要保密的密鑰dA和一個(gè)秘密的隨機(jī)數(shù)k
,而對(duì)簽名進(jìn)行驗(yàn)證則只需要公開的參數(shù)(eA,p,)。驗(yàn)證簽名算法(續(xù))四川大學(xué)電子信息學(xué)院31/34ElGamal數(shù)字簽名算法舉例設(shè)p=11,=2是Z11*的一個(gè)本原元。用戶A選擇隨機(jī)整數(shù)dA=8,計(jì)算: eA=dA
modp=28mod11=3
系統(tǒng)參數(shù)p,和用戶A的公鑰eA公開,簽名私鑰dA保密。假設(shè)用戶A要對(duì)消息M進(jìn)行簽名,且H(M)=5。
(1)用戶A選擇隨機(jī)數(shù)k=9;
因?yàn)?9,10)=1,所以9模10的逆一定存在,根據(jù)擴(kuò)展的Euclid算法,有:k-1(modp-1)=9-1(mod10)=9。用戶A計(jì)算:r=k
modp
=29mod11=6
s=(H(M)-dA·r)k-1(modp-1)
=(5-8×6)×9(mod10)
=3四川大學(xué)電子信息學(xué)院32/34
用戶A將(r,s)
=(6,3)作為自己對(duì)H(M)=5的消息M數(shù)字簽名,與消息M一起傳送給接收方:
M||
(r,s)
=
M||
(6,3)
(2)設(shè)用戶B要對(duì)消息M及簽名進(jìn)行驗(yàn)證,只需計(jì)算:
eAr·
rs
(modp)=36×
63mod11=10
和H(M)(modp)=25mod11=10
兩者相等,則確認(rèn)(6,3)為M的有效簽名。ElGamal數(shù)字簽名算法舉例(續(xù))四川大學(xué)電子信息學(xué)院33/34ElGamal數(shù)字簽名的安全性:ElGamal數(shù)字簽名體制是一個(gè)“非確定性的”數(shù)字簽名體制,對(duì)于同一個(gè)報(bào)文M,它所產(chǎn)生的簽名依賴于隨機(jī)數(shù)k。
ElGamal數(shù)字簽名體制的安全性建立在求解Zp上的離散對(duì)數(shù)的困難性上,當(dāng)敵手在不知道用戶的簽名密鑰的情況下偽造簽名時(shí),需要求解離散對(duì)數(shù)問題。需要注意的是,在簽名時(shí)使用的隨機(jī)數(shù)k不能被泄露,這是因?yàn)椋喝绻麛呈种懒穗S機(jī)數(shù)k,可以由
s=(H(M)-dA·r)k-1(modp-1)
計(jì)算:dA=(H(M)-k·s)·
r-1(modp-1)
得到秘密的簽名密鑰dA,這樣整個(gè)簽名體制使被攻破。另外,還必須注意隨機(jī)數(shù)k不能被重用。如果隨機(jī)數(shù)r被重用,則敵手可根據(jù)得到的兩個(gè)不同的簽名將能夠求得簽名密鑰dA
,從而攻破整個(gè)數(shù)字簽名體制。四川大學(xué)電子信息學(xué)院34/343.數(shù)字簽名標(biāo)準(zhǔn)*(DSS,DigitalSignatureStandard)
DSS是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)于1994年5月19日正式公布,同年12月1日正式作為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)FIPS186頒布(該標(biāo)準(zhǔn)后來(lái)經(jīng)過(guò)了一些修改,目前的標(biāo)準(zhǔn)稱為FIPS186-2)。DSS中所采用算法通常稱為DSA(DigitalSignatureAlgorithm)。
DSA已經(jīng)在許多數(shù)字簽名標(biāo)準(zhǔn)中得到推薦使用,除了聯(lián)邦信息處理標(biāo)準(zhǔn)則186-2外,IEEE的P1363標(biāo)準(zhǔn)中,數(shù)字簽名體制也推薦使用了DSA等算法。
DSS中規(guī)定使用了安全散列算法(SHA-1),DSA可以看作是ElGamal數(shù)字簽名體制的一個(gè)變體,它也是基于離散對(duì)數(shù)問題,下圖是DSS的簽名與驗(yàn)證過(guò)程。數(shù)字簽名SSHA-1散列算法DSA數(shù)字簽名算法消息摘要秘密密鑰||消息MM||S簽名過(guò)程數(shù)字簽名SDSA數(shù)字簽名算法SHA-1散列算法消息M消息摘要公開密鑰驗(yàn)證過(guò)程數(shù)字簽名算法(DSA)數(shù)字簽名標(biāo)準(zhǔn)(digitalsignaturestandard,DSS),中使用的簽名算法稱為數(shù)字簽名算法(digitalsignaturealgorithm,DSA),其安全性基于離散對(duì)數(shù)問題的難解性。DSA數(shù)字簽名過(guò)程可分為初始過(guò)程、簽名過(guò)程和驗(yàn)證過(guò)程三個(gè)部分。(1)初始過(guò)程(即系統(tǒng)參數(shù)與密鑰生成)
①系統(tǒng)參數(shù)p,q,g,可以供所有用戶使用,在系統(tǒng)內(nèi)公開。
p:一個(gè)大素?cái)?shù),滿足2L-1<p<2L,其中512≤L≤1024且L是64倍數(shù),即p的比特長(zhǎng)度在512到1024間,長(zhǎng)度增量為64比特。q:p-1的素因子,滿足2159<q<2160,即q的比特長(zhǎng)度為160位。g:g=h(p-1)/qmodp
,其中h是一個(gè)整數(shù),1<h<(p-1),且滿足h(p-1)/qmodp>1
。②用戶隨機(jī)選取一個(gè)整數(shù)x為私鑰,0<x<q。③用戶公鑰y,公開。計(jì)算y=gxmodp。給定私鑰x計(jì)算公鑰y很容易,但給定y求x卻是離散對(duì)數(shù)問題,目前被認(rèn)為在計(jì)算上是安全的。簽名者的公鑰是{p,q,g,y},私鑰為x。(2)簽名過(guò)程
①對(duì)待簽消息m,且0<m<p,任選一隨機(jī)整數(shù)k,要求0<k<q。②計(jì)算式中h(m)是使用SHA-1函數(shù)計(jì)算m的消息摘要,則(r,s)就是基于Hash函數(shù)的對(duì)消息m的數(shù)字簽名。式中k-1是k模q的乘法逆元,即若計(jì)算結(jié)果r=0或s=0,則重新選取k,并重新計(jì)算產(chǎn)生簽名。(3)驗(yàn)證過(guò)程①首先驗(yàn)證是否滿足:0<r<q,0<s<q,若不符合,則(r,s)不是簽名。③比較v=r是否成立?若成立,則確認(rèn)簽名正確,(r,s)是簽名者對(duì)m的合法簽名。②計(jì)算DSA數(shù)字簽名算法證明根據(jù)上述后三個(gè)公式有:再結(jié)合簽名公式有:因此:DSA簽名算法的安全性DSA的公共參數(shù)p—NIST建議p的長(zhǎng)度為1024比特。簽名過(guò)程中,簽名者要選取一個(gè)秘密參數(shù)k,在DSA的應(yīng)用中,應(yīng)借助一個(gè)好的隨機(jī)數(shù)生成器來(lái)產(chǎn)生隨機(jī)參數(shù)k。DSA簽名算法共用模數(shù)存在一定的潛在威脅。DSA中采用了SHA-1,但目前SHA-1已被證明是不安全的,因此也會(huì)導(dǎo)致其簽名方案的不安全性。2例子四川大學(xué)電子信息學(xué)院42/344.基于橢圓曲線密碼的數(shù)字簽名算法ECDSA*
設(shè)E為定義在有限域Fp上的橢圓曲線(p為大于3的素?cái)?shù))。以E(Fp)記橢圓曲線E在Fp中的有理點(diǎn)集,它是一個(gè)有限群。在E(Fp)中選一個(gè)階(order)為n的基點(diǎn)G,通常要求n是一個(gè)大素?cái)?shù)。
每個(gè)每戶選取一個(gè)大整數(shù)d(1<d<n)作為簽名私鑰(嚴(yán)格保密),而以點(diǎn)Q=d·G作為其公鑰,這樣便形成一個(gè)橢圓曲線密碼系統(tǒng)(ECC)。該系統(tǒng)的公開參數(shù)有:③基點(diǎn)G及其階n;④每個(gè)用戶的公鑰Q=dG。①基域Fp;定義的曲線);②橢圓曲線E(如p>3時(shí),由四川大學(xué)電子信息學(xué)院43/34假設(shè)用戶A要對(duì)報(bào)文M進(jìn)行數(shù)字簽名,其簽名過(guò)程如圖6.3所示。
圖6.3ECDSA的簽名過(guò)程四川大學(xué)電子信息學(xué)院44/34簽名時(shí),用戶A進(jìn)行以下操作:①選擇一個(gè)隨機(jī)數(shù)k,1<k<n-1;②計(jì)算:kG=(x1,y1),取r=x1modn。若r=0,回到①;
③計(jì)算:s=k-1(h(M)+d·r)modn,其中d為簽名方A的私鑰。
若s=0,回到①否則用戶A把(r,s)作為消息M的數(shù)字簽名,與M一起發(fā)送給接收方。接收方B在受到消息M和數(shù)字簽名(r,s)后,其簽名驗(yàn)證過(guò)程如圖6.4所示:基于橢圓曲線密碼的數(shù)字簽名算法ECDSA(續(xù))四川大學(xué)電子信息學(xué)院45/34驗(yàn)證時(shí),接收方B進(jìn)行以下操作:③利用簽名方A的公鑰Q計(jì)算:
X=(x2,y2)=u1·G+u2·Q,取v=x2modn。④若v=r,接受簽名,否則拒絕簽名。①驗(yàn)證r和s是否是區(qū)間[1,n-1]中的整數(shù),若不是則拒絕簽名:②計(jì)算u1=h(M)·s-1modn
u2=rs-1modn基于橢圓曲線密碼的數(shù)字簽名算法ECDSA(續(xù))四川大學(xué)電子信息學(xué)院46/34對(duì)ECDSA數(shù)字簽名算法正確性的證明如下:基于橢圓曲線密碼的數(shù)字簽名算法ECDSA(續(xù))代入上式,有而由∴x2=x
1,即v=r6.3特殊數(shù)字簽名方案不可否認(rèn)簽名
在現(xiàn)實(shí)生活中,有時(shí)需要在簽名者參加的情況下才能進(jìn)行簽名的驗(yàn)證,而簽名者又不能否認(rèn)簽名。滿足這個(gè)要求的數(shù)字簽名稱為不可否認(rèn)簽名方案(Undeniablesignaturescheme)。這一方案的主要目的是阻止簽名文件的隨便復(fù)制和任意散布。一個(gè)不可否認(rèn)數(shù)字簽名方案通常由三個(gè)部分組成:簽名算法、驗(yàn)證算法和否認(rèn)協(xié)議。(1)簽名生成算法合法的簽名者可以使用該算法生成有效的數(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é)議簽名者和驗(yàn)證者執(zhí)行交互式協(xié)議,使得簽名者能夠向驗(yàn)證者證明某個(gè)簽名不是自己簽署的。否認(rèn)協(xié)議同樣也必須具備完備性和合理性。1、不可否認(rèn)數(shù)字簽名
盲數(shù)字簽名在常規(guī)的數(shù)字簽名方案中,簽名者總是先知道數(shù)據(jù)的內(nèi)容后才實(shí)施簽名,這是通常的辦公事務(wù)所需要的。但有時(shí)卻需要某個(gè)人對(duì)某數(shù)據(jù)簽名,而又不能讓他知道數(shù)據(jù)的內(nèi)容,這種簽名方式稱為盲數(shù)字簽名(BlindSignature),簡(jiǎn)稱盲簽名。與普通數(shù)字簽名比較,盲數(shù)字簽名具有兩個(gè)顯著特點(diǎn):(1)消息的內(nèi)容對(duì)簽名者是不可見的。(2)在簽名被接收者公開后,簽名者不能追蹤簽名。盲簽名在電子投票中的應(yīng)用下面我們介紹D.Chaum利用RSA算法設(shè)計(jì)的第一個(gè)盲數(shù)字簽名方案。設(shè)簽名者B的公鑰為e,私鑰為d,模數(shù)為n。用戶A有消息M需要簽名者B對(duì)消息M進(jìn)行盲簽名。(1)用戶A隨機(jī)選取一個(gè)整數(shù)1≤k≤M,做盲化處理:t=M·kemodn
將t發(fā)送給簽名者B;(2)簽名B對(duì)t進(jìn)行簽名
s=td
=(M·ke)dmodn=Md·kmodn然后將簽名s發(fā)送給用戶A;(3)用戶A收到盲簽名信息s后,通過(guò)解盲計(jì)算得到B對(duì)消息M的簽名信息S:S=s·k-1modn=Md·k·k-1modn=Mdmodn
至此,用戶A得到了簽名者B對(duì)消息M的盲簽名。
代理簽名在現(xiàn)實(shí)世界里,人們經(jīng)常需要將自己的某些權(quán)力委托給可靠的代理人,讓代理人代表自己去行使權(quán)力,如委托他人代理自己簽署文件。代理簽名:原始簽名者可以將他的數(shù)字簽名權(quán)力委托給另外一個(gè)被稱為代理簽名者的用戶,代理簽名者可以代表原始簽名者對(duì)消息進(jìn)行簽名。與其它數(shù)字簽名一樣,代理簽名也是可以公開驗(yàn)證的。
代理簽名的基本特性
不可偽造性。除原始簽名者之外,只有獲得授權(quán)的代理簽名者能夠代表原始簽名者簽名,任何其他人都不能生成有效的代理簽名??沈?yàn)證性。驗(yàn)證者可以驗(yàn)證代理簽名的有效性,并且根據(jù)有效的代理簽名確定被簽名的文件已經(jīng)得到原始簽名者的認(rèn)可。可區(qū)分性。驗(yàn)證者能夠區(qū)分代理簽名和普通的數(shù)字簽名,即區(qū)分代理簽名者的代理簽名和原始
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東事業(yè)單位統(tǒng)考聊城高唐縣招聘16人筆試參考題庫(kù)及答案解析
- 2026中國(guó)熱帶農(nóng)業(yè)科學(xué)院熱帶生物技術(shù)研究所第一批招聘38人筆試模擬試題及答案解析
- 2026年臺(tái)州灣新區(qū)海虹街道辦事處人員招聘2人筆試備考題庫(kù)及答案解析
- 2026延安市青少年宮幼兒園招聘筆試備考題庫(kù)及答案解析
- 2026浙江金華市永康市數(shù)字五金園區(qū)發(fā)展有限公司招聘派遣制人員1人筆試備考題庫(kù)及答案解析
- 2026四川成都城建投資管理集團(tuán)有限責(zé)任公司所屬數(shù)智集團(tuán)招聘3人筆試備考題庫(kù)及答案解析
- 浙江省立同德醫(yī)院公開招聘人員169人參考題庫(kù)附答案解析
- 2026山東事業(yè)單位統(tǒng)考淄博市沂源縣招聘綜合類崗位13人筆試模擬試題及答案解析
- 2026天津市和平區(qū)教育系統(tǒng)事業(yè)單位面向社會(huì)招聘101人筆試參考題庫(kù)及答案解析
- 小學(xué)健康培訓(xùn)制度
- 籃球場(chǎng)工程施工設(shè)計(jì)方案
- (市質(zhì)檢二檢)福州市2024-2025學(xué)年高三年級(jí)第二次質(zhì)量檢測(cè) 歷史試卷(含答案)
- 《外科手術(shù)學(xué)基礎(chǔ)》課件
- 化學(xué)-湖南省永州市2024-2025學(xué)年高二上學(xué)期1月期末試題和答案
- 2025年貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- DB33T 1214-2020 建筑裝飾裝修工程施工質(zhì)量驗(yàn)收檢查用表標(biāo)準(zhǔn)
- 高考語(yǔ)文復(fù)習(xí)【知識(shí)精研】鑒賞古代詩(shī)歌抒情方式 課件
- 春運(yùn)志愿者培訓(xùn)
- 語(yǔ)文-安徽省皖南八校2025屆高三上學(xué)期12月第二次大聯(lián)考試題和答案
- 養(yǎng)豬企業(yè)新員工職業(yè)規(guī)劃
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
評(píng)論
0/150
提交評(píng)論