曹素珍,戴文潔,王彩芬,王秀婭,孫 晗,左為平
(1.西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,甘肅 蘭州730070;2.天水師范學(xué)院數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,甘肅天水741001)
在1984年Shamir[1]提出的基于身份密碼體制中,以用戶的姓名、地址等作為公鑰,任意兩個(gè)用戶在通信時(shí),不需要交換公鑰證書,也不需要保存公鑰證書列表,由可信的密鑰產(chǎn)生中心KGC(Key Generation Center)統(tǒng)一生成私鑰,并通過安全信道發(fā)送給用戶,解決了傳統(tǒng)公鑰密碼體制的缺陷。
隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的日益發(fā)展,電子現(xiàn)金系統(tǒng)[2]、電子選舉系統(tǒng)[3]等應(yīng)用在生活中扮演著越來越重要的角色,但由此帶來的安全問題也無處不在。為了更好地保護(hù)用戶的隱私,確保客戶端提交的信息不被第三方竊取,盲簽名的概念被提出[4],同時(shí)各種盲簽名方案也應(yīng)運(yùn)而生[5,6],并被廣泛應(yīng)用于具有匿名性要求的領(lǐng)域。在盲簽名中,簽名者并不知道所簽消息的具體內(nèi)容,但是完全的匿名性會(huì)留下安全隱患。例如,在電子投票中,完全的匿名性可能會(huì)使得投票人多次反復(fù)投票或者更改他們的選票。為了解決匿名性和可控性之間的矛盾,Brands[7]提出一種受限盲簽名方案,但是該方案在驗(yàn)證時(shí)需要與消息提供者交互。為了克服該問題,部分盲簽名的概念被提出[8]。部分盲簽名通過在簽名中嵌入簽名者和用戶協(xié)商的公共信息的方式,避免完全匿名性留下的安全隱患。2005年,Chow等[9]首次提出一個(gè)基于身份的部分盲簽名方案,結(jié)合基于身份公鑰密碼體制和部分盲簽名思想的優(yōu)點(diǎn),大量基于身份部分盲簽名方案[10-12]被提出,但這些方案中都存在公共信息被替換的漏洞。針對(duì)這一問題,本文在劉二根的方案[13]的基礎(chǔ)上,結(jié)合何俊杰等[14]的方案,提出一個(gè)改進(jìn)的基于身份的部分盲簽名方案。在隨機(jī)預(yù)言模型下,基于離散對(duì)數(shù)困難問題,證明了方案在具有部分盲性的同時(shí),能有效抵抗適應(yīng)性選擇消息下的存在性偽造攻擊,新方案沒有使用雙線性對(duì),降低了計(jì)算開銷。
G1是由g生成的階為q的循環(huán)加法群,G2是階為q的循環(huán)乘法群,q是一個(gè)大素?cái)?shù);a,b∈,
e:G1×G1→G2是雙線性對(duì),有下列性質(zhì):
(1)雙線性性:對(duì)所有的P,Q∈G1和所有的a,b∈,e(aP,bQ)=e(P,Q)ab。
(2)非退化性:存在g∈G1,使得e(g,g)≠1。
(3)可計(jì)算性:對(duì)所有的P,Q∈G1,存在有效的算法計(jì)算e(P,Q)。
(1)判定Diffle-Hellman問題DDHP(Decisional Diffie-Hellman Problem):已知 P,aP,bP,cP ,其中a,b,c∈,判定等式c≡ab mod q是否成立。
(2)計(jì)算Diffle-Hellman問題CDHP(Computational Diffie-Hellman Problem):已知 P,aP,bP ,其中 a,b∈,計(jì)算abP。
如果在群G上,DDHP容易但CDHP困難,則G稱為間隙Diffle-Hellman群(GDH群(Gap Diffie-Hellman))。
(3)離散對(duì)數(shù)問題 DLP(Discrete Logarithm Problem):設(shè)循環(huán)群G的階為p,g∈G是一個(gè)生成元,給定(g,ga),在群G上計(jì)算 a∈是困難的。
如果不存在概率多項(xiàng)式時(shí)間算法C以不可忽略的優(yōu)勢(shì)解決DLP問題,則稱DLP問題是困難的。
(3)簽名協(xié)議:該算法需要由簽名者A和用戶B進(jìn)行交互完成。已知系統(tǒng)公開參數(shù)為params,A的身份和私鑰分別為 IDA和 SA,消息 m∈ {0,1}*,c為B和A事先商量好的公共信息。預(yù)計(jì)算g=e(P,Q),下面給出A和B的交互過程:
③簽名:A收到h后,計(jì)算V1=(xH3(c)+y+h)P+SA并將V1發(fā)給B。
④去盲:B收到V1后,計(jì)算V=αV1,消息m的簽名為 σ =(m,c,R,V) 。
(4)驗(yàn)證:驗(yàn)證者收到簽名對(duì)σ =(m,c,R,V),驗(yàn) 證 等 式 e(V,H1(IDA)Q + QP) =如果等式成立,則簽名有效,否則,簽名無效。
通過分析發(fā)現(xiàn)劉二根方案[13]不安全,不誠實(shí)用戶可以在簽名者和驗(yàn)證者無法察覺的情況下將公共信息c篡改成^c。下面給出簽名者A和用戶B交互中的攻擊過程:
簽名通過驗(yàn)證等式,不誠實(shí)用戶成功地用^c替換了c。
系統(tǒng)建立:給定一個(gè)安全參數(shù)ε,循環(huán)群G的階和生成元為p,KGC隨機(jī)選擇s∈作為系統(tǒng)主密鑰并計(jì)算為系統(tǒng)公鑰;選擇安全的Hash函數(shù):,系統(tǒng)公開參數(shù)為
用戶密鑰生成:簽名者的身份是 ID∈ {0,1}*,KGC計(jì)算QID=H1(ID)∈G1,簽名者的私鑰SID=sQID,并將私鑰通過安全信道發(fā)送給簽名者。簽名者收到SID后,若等式gSID=PpubQID成立,則接受公私鑰對(duì)(QID,SID),否則要求重新生成公私鑰對(duì)。
簽名協(xié)議:該算法需要由簽名者A和用戶B進(jìn)行交互完成,消息m∈{0,1}*,c為B與A協(xié)商的公共信息。下面給出A與B的交互過程:
(2)盲化:B收到〈r1,r2〉后,隨機(jī)選擇盲因子α,β ∈,計(jì)算 r'=(r1r2)αgβ,h= α-1H2(m,c,r')后將h發(fā)送給A。
(3)簽名:A收到 h后,計(jì)算 V1=(x+y)H3(c)+hSID后將V1發(fā)給B。
(4)去盲:B收到 V1后,計(jì)算 V=αV1+βH3(c)。消息m 的部分盲簽名為 σ =(ID,m,c,r',V) 。
驗(yàn)證:驗(yàn)證者收到 σ =(ID,m,c,r',V) 后,先計(jì)算 H1(ID),H3(c) 和 H2(m,c,r'),再驗(yàn)證等式是否成立,若成立,則簽名有效,否則,簽名無效。
方案的部分盲性驗(yàn)證如下:對(duì)于 ( I D,m,c) 相對(duì)應(yīng)的一個(gè)有效簽名以及簽名者在與用戶交互過程中保留下來的參數(shù) (r1,r2,h,V1),有下列等式:
由于 (ID,m,c,r',V) 是一個(gè)有效簽名,從而有另一方面有 V1=(x+y)H3(c)+hSID,所以:
因此 gαV'+βH3(c)=gV,即 V= αV1+ βH3(c) 。
由上述過程可知,盲因子α,β總是存在任意一組中間結(jié)果中。因此,即使簽名者計(jì)算能力無限,也無法確定簽名者與用戶交互過程中簽名視圖與簽名之間的對(duì)應(yīng)關(guān)系,因此本文方案滿足部分盲性。
定理1 在隨機(jī)預(yù)言模型下,基于離散對(duì)數(shù)困難問題,方案在適應(yīng)性選擇消息攻擊和身份攻擊下是滿足存在性不可偽造的。
引理1假設(shè)敵手A在多項(xiàng)式有界的時(shí)間t內(nèi)經(jīng)過一系列的詢問后(次哈希詢問,qE次私鑰提取詢問,qV次簽名詢問),以不可忽略的優(yōu)勢(shì)ε贏得以下游戲,則挑戰(zhàn)者C以不低的優(yōu)勢(shì)解決離散對(duì)數(shù)問題。
證明假設(shè)ID*是目標(biāo)用戶,下面給出C與A的交互過程:
(1)系統(tǒng)建立階段:C運(yùn)行系統(tǒng)建立算法,并返回系統(tǒng)參數(shù) params={G,H1,H2,H3,p,g,Ppub}給A,令Ppub=ga。
(2)H1詢問:C 維護(hù)列表 L1=(IDi,wi),其初始值為空,當(dāng)收到H1詢問時(shí),如果QIDi已經(jīng)在列表L1中,則返回QIDi。否則,C隨機(jī)選取wi∈,將wi返回給A,更新表L1。
(3)H2詢問:C 維護(hù)列表 L2=(mi,ci,r'i,hi),其初始值為空,當(dāng)收到H2詢問時(shí),如果L2的哈希值 li已經(jīng)在列表 L2中,則返回(mi,ci,r'i)的哈希值li,否則C隨機(jī)選擇li∈,更新表L2。
(4)H3詢問:C 維護(hù)列表 L3=(ci,珘hi) ,其初始值為空,當(dāng)收到H3詢問時(shí),如果珘hi已經(jīng)在列表L3中,則返回 珘hi,否則 C 隨機(jī)選擇 珘hi∈,更新表L3。
(5)密鑰提取詢問:C維護(hù)列表L1,當(dāng)收到密鑰提取詢問時(shí),如果IDi=ID*,則C失敗退出。否則,C查找表L1,計(jì)算SIDi=awi,將SIDi返回給A,更新列表L1。
(6)簽名詢問:若收到這樣的詢問(假設(shè)已經(jīng)做過相關(guān)的Hash詢問和密鑰提取詢問),C查找表L1得到用戶IDi的私鑰,然后結(jié)合簽名算法和表L1~表L3計(jì)算出V返回給A。
(7)偽造:挑戰(zhàn)者C與敵手A經(jīng)過qHi(i=1,2,3)次隨機(jī)預(yù)言機(jī)詢問,每次詢問時(shí)間為tHi(i=1,2,3);qE次密鑰提取詢問,每次詢問時(shí)間為tE;qV次簽名詢問,每次詢問時(shí)間為tV,如果算法C沒有終止,A在沒有對(duì) ID*進(jìn)行密鑰提取詢問和對(duì)(ID*,m*,C*)進(jìn)行簽名詢問的條件下,在時(shí)間t'<t+(tH1qH1+tH2qH2+tH3qH3+tEqE+tVqV)內(nèi)以不可忽略的優(yōu)勢(shì)ε成功偽造消息(m*,c*)的簽名(ID*,r',V)的概率為根據(jù) Forking引理[15],通過對(duì) A的哈希重放,C可以獲得關(guān)于(m*,c*)的兩個(gè)有效簽名(ID*,m*,c*,r',l1,w1,珘h1,V1)和(ID*,m*,c*,r',l2,w2,珘h2,V2),令 k∈表示r'的離散對(duì)數(shù)值,即gk=r',根據(jù)5.1節(jié)的簽名正確性驗(yàn)證等式,可以得到:
在上面方程組中,只有k、a是未知量,通過解方程組可以求得ppub=ga的離散對(duì)數(shù)值a,從而C的優(yōu)勢(shì)成功求解離散對(duì)數(shù)問題。實(shí)際上,離散對(duì)數(shù)問題在群G上是困難的,因此,本文方案是安全的。 □
表1對(duì)本文方案以及文獻(xiàn)[10,12,13]的方案進(jìn)行效率比較,定義雙線性對(duì)運(yùn)算為P,群G1,G2,GT和G中標(biāo)量乘運(yùn)算為M,冪乘運(yùn)算為E,其中最耗時(shí)的運(yùn)算是雙線性對(duì)運(yùn)算。
Table 1 Comparison of calculation overhead表1 計(jì)算開銷比較
從表1可以看出,忽略其他計(jì)算代價(jià)較小的運(yùn)算,本文所提的改進(jìn)方案總計(jì)算量為0P+5M+6E,其中冪乘運(yùn)算為6E,與文獻(xiàn)[10,12]的方案相比,保持著最低的冪乘運(yùn)算計(jì)算開銷,與文獻(xiàn)[13]的方案相比,在標(biāo)量乘運(yùn)算相同的情況下,大大減少了冪乘運(yùn)算次數(shù),提高了計(jì)算效率。更為重要的是,本文方案沒有使用計(jì)算開銷最大的雙線性對(duì)運(yùn)算,且克服了公共信息被篡改的缺陷,在效率和安全方面均優(yōu)于以上幾種方案。
本文通過對(duì)劉二根方案[13]的安全性分析,發(fā)現(xiàn)其方案存在公共信息被替換的問題,針對(duì)這一問題,本文結(jié)合何俊杰的方案[12],提出一個(gè)新的基于身份的部分盲簽名方案,并證明了方案的正確性、部分盲性和不可偽造性。新方案沒有使用計(jì)算開銷最大的雙線性對(duì)運(yùn)算,且能有效抵抗篡改公共信息攻擊,并對(duì)適應(yīng)性選擇消息攻擊和身份攻擊是存在性不可偽造的。與現(xiàn)有方案相比,新方案在效率和安全方面都有顯著提高,并適用于電子投票和電子選舉等領(lǐng)域。