付海辰
(唐山學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,河北 唐山 063000)
所謂數(shù)字簽名,ISO對(duì)其的定義為:附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對(duì)數(shù)據(jù)單元所做的密碼變換,這種數(shù)據(jù)或變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護(hù)數(shù)據(jù),防止被人(如接收者)偽造。
1976年Diffie和Hellman發(fā)表了著名的“密碼學(xué)的新方向”(New Directions in Cryptography),提出了公鑰密碼系統(tǒng)(Public Key CryPtosystem)的概念,為信息安全提供了新的理論和技術(shù)基礎(chǔ),開始了密碼學(xué)的一個(gè)新時(shí)代。雖然Deffie和 Hellrnan在文章中給出了用公鑰密碼體制實(shí)現(xiàn)數(shù)字簽名的方法,但并沒有給出具體的數(shù)字簽名方案。第一個(gè)數(shù)字簽名方案是兩年后Rivest、Shamir和Adleman給出的基于分解大整數(shù)因子困難性的著名的RSA算法。此后的時(shí)間里,新的數(shù)字簽名方案不斷涌現(xiàn),包括著名的ELGarmal數(shù)字簽名方案、Schnorr數(shù)字簽名方案等。
1982年,Chaum引入盲簽名(Blind signature)概念;1989年,Chaum和 Antwerpe首次提出不可否認(rèn)簽名(Undeniable signature)概念。但在普通數(shù)字簽名方案中,無論是簽名者還是驗(yàn)證者都只有一個(gè)用戶參加,這在實(shí)際應(yīng)用中具有很大的局限性,在 1991年,群簽名(Group signature)的概念被Chaum和Vanheyst提出。1995年,Mambo等人引入了代理簽名(Proxy signature)的概念。
代理簽名方案是建立在身份數(shù)字簽名技術(shù)和代理簽名技術(shù)相結(jié)合的基礎(chǔ)上的[2]。要理解基于身份的代理簽名,首先必須明確一些基本概念。
一般數(shù)字簽名方案包括三個(gè)過程:系統(tǒng)的初始化過程、簽名的產(chǎn)生過程和簽名的驗(yàn)證過程。在系統(tǒng)的初始化過程中要產(chǎn)生數(shù)字簽名方案中用到的所有參數(shù),包括公開和秘密參數(shù)。在簽名產(chǎn)生的過程中用戶利用給定的算法對(duì)消息 m產(chǎn)生簽名 SIG(m),這種簽名過程可以公開也可以不公開。在簽名的驗(yàn)證過程中,驗(yàn)證者利用公開驗(yàn)證方法對(duì)給定消息的簽名進(jìn)行驗(yàn)證,得出簽名的有效性。
基于身份的數(shù)字簽名的實(shí)現(xiàn)離不開基于身份的密碼學(xué)算法。它大致包括基于身份的加密機(jī)制、基于身份數(shù)字簽名機(jī)制以及基于身份的簽密機(jī)制等。雙線性對(duì)(Bilinear Pairing)最初是用于計(jì)算橢圓曲線上的離散對(duì)數(shù),現(xiàn)在在基于身份的密碼體制和密鑰協(xié)商協(xié)議方面嶄露頭角。雙線性對(duì)是一種映射,可以將橢圓曲線群中的元素映射到一般的有限域中,且具有雙線性、非退化性等特殊性質(zhì)。雙線性映射是當(dāng)前基于身份密碼技術(shù)的研究熱點(diǎn),雙線性映射在密碼學(xué)中的應(yīng)用主要包括三方密鑰共享協(xié)議、基于身份的密鑰共享協(xié)議以及基于身份的密碼系統(tǒng)。
本文選取比較有代表性的Hess的基于身份的簽名方案來分析。
(1)系統(tǒng)建立:TA選擇隨機(jī)整數(shù)t∈Z*q,計(jì)算QTA=tP,公開參數(shù)QTA,并保留t為私有;
(2)私鑰提取:當(dāng)簽名用戶申請(qǐng)與自身身份相對(duì)應(yīng)的私鑰時(shí),同樣由可信中心TA執(zhí)行私鑰提取算法,為其生成私有密鑰。用ID表示簽名用戶的身份,TA利用哈希函數(shù)以及秘密值t計(jì)算簽名者的私鑰SID=tH(ID),并通過安全信道傳遞給簽名用戶;
(3)簽名:簽名者選擇群中的隨機(jī)元素P1∈G*以及隨機(jī)整數(shù)k∈Z*q,并執(zhí)行以下簽名算法,生成簽名二元組(u,v):
r=e( P1,P)K
v=h (m,r)
u=vSID+K P1
(4)驗(yàn)證:驗(yàn)證者利用原始消息m和簽名(u,v)計(jì)算以下驗(yàn)證等式:
r=e (u,P)·e(H(ID),-QTA)V
當(dāng)且僅當(dāng)v=h(m,,r)時(shí),接受簽名;否則,拒絕接受。
各國學(xué)者對(duì)基于身份的數(shù)字簽名做了很多研究,也取得了很多成果。但基于身份的簽名仍存在很多的問題。例如密鑰托管問題(Key Eserow Problem):由于密鑰產(chǎn)生中心PKG(Private Key Generation)知道所有用戶的私鑰,這對(duì)簽名的不可否認(rèn)性構(gòu)成極大的威脅。如效率問題:橢圓曲線上的雙線性映射(雙線性對(duì))是構(gòu)造基于身份的密碼系統(tǒng)的有力工具,但它的計(jì)算效率很低,這是基于雙線性對(duì)的密碼系統(tǒng)的共同缺點(diǎn)。因此,在此基礎(chǔ)上提出了基于身份的高效代理簽名方案,以提高安全性和計(jì)算效率作為著眼點(diǎn)。
代理簽名技術(shù)最早由Mambo、Usuda和Okamoto在1996年提出。一個(gè)代理簽名方案中包括三方面參與實(shí)體:原始簽名者、代理簽名者以及驗(yàn)證者。它的主要思想是當(dāng)原始簽名者(授權(quán)人)由于某種原因不能行使簽名權(quán)利時(shí),可以授權(quán)給指定的代理者(代理人)代替自己行使簽名權(quán)。一個(gè)代理簽名方案必須滿足以下幾個(gè)基本條件:可驗(yàn)證性、強(qiáng)不可偽造性、可區(qū)分性、不可否認(rèn)性和強(qiáng)可辨別性。
基于身份的代理簽名方案包括系統(tǒng)的建立、授權(quán)、代理簽名和簽名驗(yàn)證四個(gè)部分。
(1)系統(tǒng)建立
雙線性對(duì)算法:e: G1*G2→G2,其中G1,G2 為階為q的群(q為大素?cái)?shù));
三個(gè)Hash函數(shù):H1:{0,l}* X g→Z*q;H2:{0,l}* →G1;H3:{0,l}*→Z*q;
TA選擇主密鑰:,s∈Z*q,并計(jì)算全局公鑰Ppub=sP,其中P是群G1中的生成元。
原始簽名人A和代理簽名人B向可信機(jī)構(gòu)申請(qǐng)與其身份IDA、IDB相對(duì)應(yīng)的私鑰,可信機(jī)構(gòu)TA在驗(yàn)證用戶身份后,通過安全信道將私鑰DIDA和DIDB分別發(fā)送給A和B。
(2)授權(quán)階段
原始簽名人A隨機(jī)選擇整數(shù)rA∈Z*q,計(jì)算對(duì)代理人B的授權(quán)簽名二元組(UA,VA):
UA=rA QIDA
hA =H1(IDB,UA)
VA =(rA+ hA)DIDA
然后將二元組(UA,VA)發(fā)送給B,B計(jì)算hA =H1(IDB,UA),驗(yàn)證等式
e(P,VA)=e(Ppub,UA) e Ppub,UA)
是否成立,若成立,則是合法授權(quán)。從代理授權(quán)驗(yàn)證等式的展開很明顯看出,該代理授權(quán)是正確的。
B接著計(jì)算代理簽名私鑰Sp= QIDB+ VA(3)代理簽名
B隨機(jī)選擇rB∈Z*q,計(jì)算 R=rB P
S=r-1Bb(H3(M)P+Sp)
代理人B對(duì)消息M生成的代理簽名為三元組(R,S,UA)(4)簽名驗(yàn)證
接收方計(jì)算驗(yàn)證等式是否成立,若成立,則是B代表A產(chǎn)生的合法代理簽名。
基于身份的代理簽名方案,不僅具有良好的安全性,而且由于在授權(quán)簽名和代理簽名階段均減少了雙線性對(duì)的計(jì)算次數(shù),所以實(shí)現(xiàn)效率也有較大提高。并且,與普通的數(shù)字簽名方案相比,基于身份的代理簽名方案擴(kuò)展了以往的網(wǎng)上交流的模式,具有一定的現(xiàn)實(shí)意義。