陳虹,侯宇婷,郭鵬飛,周沫,趙菊芳,肖成龍
(1.遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島 125105;2.汕頭職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,廣東 汕頭 515078;3.汕頭大學(xué) 工學(xué)院,廣東 汕頭 515063)
簽名和加密技術(shù)能夠保證數(shù)據(jù)傳輸?shù)陌踩耘c可靠性,但其開銷較大且效率較低。文獻(xiàn)[1]對(duì)傳統(tǒng)的“先簽名后加密”的方式進(jìn)行優(yōu)化,并提出簽密,即加密和簽名同時(shí)實(shí)現(xiàn),能夠保證信息安全傳輸,減少計(jì)算量和傳輸開銷。在密碼領(lǐng)域,研究人員對(duì)簽密進(jìn)行研究,提出基于身份的簽密[2]、無證書簽密[3-5]、聚合簽密[6-8]、多接收者簽密[9-10]、廣義簽密[11]等具有特殊屬性的簽密方案。文獻(xiàn)[3]在無證書密碼環(huán)境下提出簽密方案,提高了計(jì)算效率和安全性。文獻(xiàn)[4]提出一種無證書簽密方案并驗(yàn)證其安全性,在方案的設(shè)計(jì)中未涉及雙線性映射運(yùn)算,具有較高的計(jì)算效率。但文獻(xiàn)[5]證明上述方案不滿足安全性,并給出具體的攻擊方案。
認(rèn)證的消息越多,簽名方案的運(yùn)算效率越低。聚合簽名[12-13]能夠?qū)Υ罅亢灻M(jìn)行同步驗(yàn)證。其中,基于無證書密碼環(huán)境設(shè)計(jì)的聚合簽名算法[14-16],在計(jì)算量和通信開銷方面更具優(yōu)勢(shì)。文獻(xiàn)[16]提出一種無證書聚合簽名方案,為了降低用戶間的耦合度,該簽名方案僅使用公共參數(shù)和個(gè)人信息,使得在多對(duì)一的通信系統(tǒng)中,用戶可靈活地認(rèn)證消息。與文獻(xiàn)[14]的簽名方案相比,文獻(xiàn)[16]的運(yùn)算量約減少了1/2,有效應(yīng)用在資源有限的網(wǎng)絡(luò)環(huán)境中。文獻(xiàn)[17]提出一個(gè)高效的簽密方案,該方案將多個(gè)密文消息相聚合,提高傳輸效率。聚合簽密方案在實(shí)際應(yīng)用中對(duì)運(yùn)算效率有很高的要求,但大多數(shù)方案都存在運(yùn)算復(fù)雜[18-19]、效率低[20-21]的問題。文獻(xiàn)[22]將無證書簽密與聚合技術(shù)相結(jié)合提出一種無證書聚合簽密(CLASC)方案,具有較高的可靠性。文獻(xiàn)[23]提出更加高效的CLASC 方案,該方案采用雙線性映射運(yùn)算,運(yùn)算效率較高,但是安全性較低。文獻(xiàn)[24]提出高安全性的常數(shù)對(duì)CLASC 方案,并對(duì)文獻(xiàn)[23]的高效算法進(jìn)行改進(jìn),在保證運(yùn)算效率的前提下提高了安全性。文獻(xiàn)[25]將多接收者簽密應(yīng)用于異構(gòu)密碼體制中,設(shè)計(jì)一個(gè)異構(gòu)環(huán)境下的聚合簽密算法,雖然滿足隱私保護(hù)的需求,但是存在安全問題。文獻(xiàn)[26]指出文獻(xiàn)[25]方案存在的問題并對(duì)其算法進(jìn)行優(yōu)化,提供了詳細(xì)的安全證明。文獻(xiàn)[27]將聚合簽名與加密技術(shù)應(yīng)用于全匿名區(qū)塊鏈中,解決了在比特幣區(qū)塊鏈系統(tǒng)中的隱私保護(hù)問題。文獻(xiàn)[28-30]提出聚合簽密的相關(guān)方案[31],其性能滿足車載系統(tǒng)的需求,但運(yùn)算效率還存在較大的提升空間。
本文在上述簽名方案基礎(chǔ)上,提出一種可公開驗(yàn)證的高效CLASC 方案。在無證書的密碼環(huán)境中,采用雙線性映射運(yùn)算將雙方身份信息隱藏在簽名和密文中,在保證簽密安全和提高效率的同時(shí),能夠有效保護(hù)用戶隱私?;陔S機(jī)預(yù)言模型(Random Oracle Model,ROM)驗(yàn)證本文方案同時(shí)滿足適應(yīng)性選擇密文攻擊下的不可區(qū)分性以及適應(yīng)性選擇消息攻擊下的不可偽造性。
加法、乘法循環(huán)群分別表示為G1、G2,階都是素?cái)?shù)q,P表示G1的生成元。雙線性映射e:(G1·G1)→G2的特性主要有以下3 個(gè):1)雙線性,對(duì)于任意的Q∈G1,存在a、b∈,使e(aP,bQ)=e(P,Q)ab;2)非退化性,e(P,P)≠1;3)可計(jì)算性,對(duì)于任何的Q、R∈G1,e(Q,R)皆可計(jì)算。
本文提出的簽密方案依賴以下數(shù)學(xué)困難問題,并且攻擊者無法在多項(xiàng)式時(shí)間內(nèi)攻破這些問題。
定義1(計(jì)算雙線性Diffie-Hellman(CBDH)問題)給定任意參數(shù)P、aP、bP、cP∈G1(a,b,c∈),得出e(P,P)abc是困難的。
定義2(計(jì)算性Diffie-Hellman(CDH)問題)給定任意參數(shù)P、aP、bP∈G1(a,b∈),得出a、b、P是困難的。
無證書聚合簽密方案的ui表示發(fā)送者,uj表示接收者,主要有9 個(gè)步驟:1)系統(tǒng)初始化,由密鑰生成中心(Key Generation Center,KGC)執(zhí)行,輸入初始化所需參數(shù)k,選擇系統(tǒng)參數(shù)parameters(公開)、主密鑰θ(不公開);2)生成部分私鑰,由KGC 執(zhí)行,輸入身份信息ui,計(jì)算用戶部分私鑰Di,并將Di秘密傳送給用戶ui;3)生成秘密值,由用戶執(zhí)行,輸入身份信息ui,輸出秘密值xi∈;4)生成用戶私鑰,由用戶執(zhí)行,輸入身份信息ui、秘密值xi、用戶部分私鑰Di,輸出用戶私鑰ski;5)生成用戶公鑰,由用戶執(zhí)行,輸入身份信息ui、秘密值xi、系統(tǒng)公開參數(shù)parameters,輸出用戶公鑰pki;6)簽密,由用戶執(zhí)行,輸入ui、uj、parameters、私 鑰ski、公 鑰pkj、明文mi,輸出密文σi;7)聚合簽密,由聚合者執(zhí)行,輸入身份信息ui(1 ≤i≤n)的n個(gè)密文σi(1 ≤i≤n),輸出聚合密文σ;8)解簽密,由用戶執(zhí)行,輸入uj、parameters、私 鑰skj、公 鑰pki、密文σi,得到明文mi并對(duì)mi進(jìn)行驗(yàn)證,若驗(yàn)證成功,則將mi輸出,否則操作失敗;9)聚合解簽密,由用戶執(zhí)行,輸入聚合密文σ、系統(tǒng)參數(shù)parameters、用戶私鑰skj、用戶公鑰pki(1 ≤i≤n),得到明文mi(1 ≤i≤n)并對(duì)mi(1 ≤i≤n)進(jìn)行驗(yàn)證,若驗(yàn)證成功,則將mi(1 ≤i≤n)輸出,否則操作失敗。
根據(jù)文獻(xiàn)[15]刻畫的敵手類型,CLASC 系統(tǒng)將面臨敵手A1和敵手A2的攻擊。敵手A1扮演特殊的用戶,不能獲知系統(tǒng)主密鑰,但可調(diào)換用戶公鑰。敵手A2扮演不可靠的KGC,能獲知系統(tǒng)主密鑰,但不能更換用戶公鑰。CLASC 方案的游戲攻擊模型結(jié)構(gòu)如圖1 所示。
圖1 無證書聚合簽密方案的游戲攻擊模型結(jié)構(gòu)Fig.1 Structure of game attack model of certificateless aggregate signcryption scheme
定義3(機(jī)密性)在適應(yīng)性選擇密文攻擊下CLASC 具有密文不可區(qū)分性。在ROM 中,只有在多項(xiàng)式時(shí)間內(nèi)不存在任何攻擊者時(shí),敵手以不可忽略的優(yōu)勢(shì)在游戲1(針對(duì)第一類攻擊者的機(jī)密性)和游戲2(針對(duì)第二類攻擊者的機(jī)密性)中取勝。
1.4.1 游戲1
A1與挑戰(zhàn)者C通過以下方式進(jìn)行信息交互:
1)初始化階段。由KGC 進(jìn)行系統(tǒng)初始化,公開parameters。
2)問詢階段。A1向C進(jìn)行問詢并發(fā)送任意的輸入,C將其傳送給ROM,ROM給C輸出相應(yīng)的結(jié)果,由C將結(jié)果返回給A1。A1執(zhí)行以下問詢:(1)Hash 問詢,A1對(duì)所有Hash 隨機(jī)問詢,并將相關(guān)信息發(fā)送給C,C將結(jié)果傳送給A1;(2)部分私鑰問詢,A1能詢問ui的部分私鑰,C通過執(zhí)行相關(guān)算法得到Di并返回給A1;(3)私鑰問詢,A1能詢問ui的私鑰,C通過執(zhí)行相關(guān)算法得到sk,并返回給A1;(4)公鑰問詢,A1能詢問ui的公鑰,C通過執(zhí)行相關(guān)算法得到pki,并返回給A1;(5)公鑰替換問詢,A1能對(duì)ui的公鑰進(jìn)行替換,C收到問詢后,將原來的公鑰pki替換成新公鑰pk′i;(6)簽密問詢,A1選擇兩個(gè)用戶ua、ub分別作為發(fā)送方和接收方,并選擇一個(gè)消息ma進(jìn)行簽密問詢,C收到相應(yīng)的問詢后,輸入?yún)?shù),執(zhí)行簽密算法,將生成的密文σa返回給A1;(7)聚合簽密問詢,A1選擇用戶ui(1 ≤i≤n)、ub分別作為發(fā)送方和接收方,并選擇消息mi(1 ≤i≤n)進(jìn)行聚合簽密問詢,C收到問詢后,輸入?yún)?shù),執(zhí)行聚合簽密算法,將生成的密文σ返回給A1;(8)解簽密問詢,A1利用兩個(gè)用戶ua、ub和密文σa向C進(jìn)行解簽密問詢,C收到問詢后,輸入?yún)?shù),執(zhí)行解簽密算法,并將生成的明文ma返回給A1;(9)聚合解簽密問詢,A1利用用戶ui(1 ≤i≤n)、ub和密文σ向C進(jìn)行聚合解簽密問詢,C收到相應(yīng)的問詢后,輸入?yún)?shù),執(zhí)行聚合解簽密算法,并將生成的明文mi(1 ≤i≤n)返回給A1。
3)挑戰(zhàn)階段。A1選擇用戶ui、uj分別作為發(fā)送方和接收方,并選擇兩個(gè)長(zhǎng)度相同的明文m0和m1,要求ui、uj執(zhí)行過私鑰問詢,同時(shí)ui不能既執(zhí)行過公鑰替換問詢又執(zhí)行過部分私鑰問詢,uj沒有執(zhí)行過部分私鑰問詢。C隨機(jī)選取b∈{0,}1,輸入相關(guān)參數(shù)并執(zhí)行簽密算法,將生成的密文σ*返回給A1。
4)第二階段問詢。A1進(jìn)行的問詢與問詢階段相似,但不允許對(duì)ui、uj問詢私鑰,如果ui、uj在挑戰(zhàn)階段之前進(jìn)行過公鑰替換問詢,則不能再問詢其部分私鑰。A1也不能對(duì)密文σ*進(jìn)行解簽密問詢。
5)猜測(cè)階段。A1輸出b′,若b′=b,則A1贏得游戲。
1.4.2 游戲2
A2與挑戰(zhàn)者C通過以下方式進(jìn)行信息交互:
1)初始化階段。由KGC 進(jìn)行系統(tǒng)初始化,公開parameters,并將θ傳給A2。
2)問詢階段。與游戲1 的問詢階段相似,但沒有公鑰替換問詢以及部分私鑰問詢。根據(jù)刻畫的敵手類型可知,因?yàn)閿呈諥2不能替換用戶公鑰,所以無需執(zhí)行公鑰替換問詢,且A2可以得到系統(tǒng)主密鑰,能夠計(jì)算出用戶的部分私鑰,也無需執(zhí)行部分私鑰問詢。
3)挑戰(zhàn)階段。A2選擇用戶ui、uj分別作為發(fā)送方和接收方,并任意選擇兩個(gè)明文m0和m1。m0和m1的長(zhǎng)度相等,且要求不能對(duì)ui、uj進(jìn)行私鑰問詢。C隨機(jī)選取b∈{0,}1,輸入相關(guān)參數(shù)并執(zhí)行簽密算法,將生成的密文σ*返回給A2。
4)第二階段問詢。A2進(jìn)行的問詢與問詢階段相似,但不允許對(duì)ui、uj進(jìn)行私鑰問詢(若對(duì)ui、uj執(zhí)行私鑰問詢得到其私鑰,則可對(duì)密文進(jìn)行解密得到明文,游戲終止)。A2也不能對(duì)密文σ*進(jìn)行解簽密問詢。
5)猜測(cè)階段。A2輸出b',若b'=b,則A2贏得游戲。
在游戲1 和游戲2 中,挑戰(zhàn)者與敵手之間關(guān)于密文機(jī)密性的交互示意圖如圖2 所示。
圖2 密文機(jī)密性交互的示意圖Fig.2 Schematic diagram of ciphertext confidentiality interaction
定義4(不可偽造性)CLASC 在適應(yīng)性選擇消息攻擊下具有消息不可偽造性,在ROM 中,只有當(dāng)不存在任何多項(xiàng)式有界的攻擊者時(shí),以不可忽略的優(yōu)勢(shì)在游戲3(針對(duì)第一類攻擊者的不可偽造性)和游戲4(針對(duì)第二類攻擊者的不可偽造性)中取勝。
1.4.3 游戲3
A1與挑戰(zhàn)者C通過以下方式進(jìn)行信息交互:1)初始化階段,執(zhí)行相關(guān)操作,公開parameters;2)問詢階段,與游戲1 的問詢階段相似;3)偽造階段,A1輸出用戶的身份信息ui、uj和明文mi的密文σ*,若A1沒有對(duì)uj進(jìn)行過部分私鑰問詢和私鑰問詢,沒有對(duì)密文σ*進(jìn)行過簽密問詢,且密文σ*有效,則A1贏得游戲。
1.4.4 游戲4
A2與挑戰(zhàn)者C通過以下方式進(jìn)行信息交互:1)初始化階段,由KGC 進(jìn)行系統(tǒng)初始化,公開parameters,并將θ傳給A2;2)問詢階段,與游戲2 的問詢階段相似;3)偽造階段,與游戲3 的偽造階段相似;若A2沒有對(duì)uj進(jìn)行過私鑰問詢,沒有對(duì)密文σ*進(jìn)行過簽密問詢,且密文σ*有效,則A2贏得游戲。
在游戲3 和游戲4 中挑戰(zhàn)者與敵手之間關(guān)于簽名不可偽造性交互的示意圖如圖3 所示。
圖3 簽名不可偽造性交互的示意圖Fig.3 Schematic diagram of signature unforgeability interaction
本文設(shè)安全參數(shù)為k,生成大素?cái)?shù)p、q(q|p-1)。(G1,+)和(G2,·)為循環(huán)群,其階均為q,P是G1的一個(gè)生成元。雙線性映射e:(G1·G1) →G2,3 個(gè)安全的哈希函數(shù)分別為H1:{0,1}*→G1,H2:{0,1}*×{0,1}*×G1→G2,H3:{0,1}*→{0,1}lm(lm 表示消息比特長(zhǎng)度)。本文構(gòu)造的CLASC 方案主要分為以下8 個(gè)步驟:
1)系統(tǒng)初始化。由KGC 進(jìn)行系統(tǒng)初始化,隨機(jī)選取θ∈為系統(tǒng)主密鑰并保密,計(jì)算Ppub=θP,公開系統(tǒng)參數(shù)parameters={G1,G2,e,P,Ppub,H1,H2,H3}。
2)生成部分私鑰。由KGC 生成部分私鑰,計(jì)算Qi=H1(ui),Di=θQi,并將Di秘密傳送給用戶ui。
3)生成用戶私鑰。用戶私鑰由用戶參與生成,驗(yàn)證等式e(Qi,Ppub)=e(Di,P),若等式成立,則表示部分私鑰合法。用戶ui隨機(jī)選取秘密值xi∈,產(chǎn)生用戶私鑰對(duì)ski=(xi,Di)。
4)生成用戶公鑰。用戶私鑰由用戶參與生成,計(jì)算公鑰pki=xi P。
5)簽密。發(fā)送方ui向接收方uB發(fā)送明文mi,發(fā)送方ui的執(zhí)行步驟主要有以下5 個(gè):(1)隨機(jī)選取ri∈,Ri=ri P,Ui=riQi;(2)αi=e(QB,ri Ppub),Ti=H3(uB,αi,Ri,pkB,ripkB);(3)ci=(mi||ui)⊕Ti;(4)hi=H2(ci||Ui||uB);(5)vi=(ri+hi)(xiQi+Di),輸出密文σi=(Ri,Ui,ci,vi)。
6)聚合簽密。由聚合者進(jìn)行聚合簽密,主要有以下4個(gè)步驟:(1)發(fā)送方ui(1 ≤i≤n)對(duì)明文mi(0 ≤i≤n)執(zhí)行上述步驟1~步驟5 的簽密操作;(2)將簽密結(jié)果發(fā)送給聚合者(任意用戶均可為聚合者);(3)聚合者接收密文σi(0 ≤i≤n),計(jì)算V=;(4)輸出聚合密文σ=
用戶的密鑰生成過程如圖4 所示。
圖4 用戶密鑰生成過程Fig.4 Generation process of user secret key
在初始化階段中,KGC 生成θ和Ppub,并公開參數(shù)parameters。在生成部分私鑰階段中,KGC 根據(jù)用戶身份計(jì)算部分私鑰,并將其安全地傳送給用戶。在用戶密鑰生成階段中,用戶通過等式e(Qi,Ppub)=e(Di,P)驗(yàn)證部分私鑰的合法性,如果合法,則任取秘密值xi∈,并將收到的部分私鑰與秘密值相結(jié)合得到用戶的私鑰對(duì)ski=(xi,Di),使得用戶私鑰更加安全。在生成用戶公鑰階段中,用戶將秘密值與生成元相結(jié)合,生成用戶的公鑰pki。
本文提出的CLASC 方案流程如圖5 所示。在簽密階段,n個(gè)用戶根據(jù)公開參數(shù)parameters 和用戶密鑰,使用雙線映射αi=e(QB,ri Ppub)將明文mi(1 ≤i≤n)加密成密文ci(1 ≤i≤n),在保證加密過程安全性的同時(shí)提高了效率,當(dāng)每個(gè)用戶簽密后對(duì)密文進(jìn)行聚合,形成聚合密文σ發(fā)送給接收方。接收方收到密文σ后,根據(jù)公開參數(shù)parameters 和用戶密鑰,使用雙線性映射=e(DB,Ri)將密文σ求解出明文mi,然后驗(yàn)證等式是否成立,進(jìn)而證明聚合簽名是否合法,如果合法,接收方接收明文mi,否則將丟棄接收到的信息。
圖5 本文無證書聚合簽密方案流程Fig.5 Procedure of the proposed certificateless aggregate signcryption scheme
本文方案的正確性分析包括密鑰正確性、密文可恢復(fù)性和發(fā)送者合法性。
1)密鑰正確性,用戶密鑰由KGC 的部分私鑰和用戶手中的秘密值組成,為了保證KGC 傳來密鑰的可靠性,通過等式e(Qi,Ppub)=e(Qi,θP)=e(θQi,P)=e(Di,P)驗(yàn)證KGC 傳遞的部分私鑰的正確性。
CLASC 方案結(jié)合加密技術(shù)與數(shù)字簽名,加密技術(shù)負(fù)責(zé)保證機(jī)密性,數(shù)字簽名負(fù)責(zé)保證認(rèn)證性,兩者獨(dú)立存在,共同滿足消息的安全需求。因此,本文主要從機(jī)密性、不可偽造性和可公開驗(yàn)證性對(duì)方案進(jìn)行安全性分析。
機(jī)密性是指除指定接收方以外,其他任何人或機(jī)構(gòu)均不能成功破解密文,并獲取明文消息。
定理1在ROM 中的CBDH 問題下,在概率多項(xiàng)式時(shí)間內(nèi),若存在敵手A1進(jìn)行H1、H2、H3、公鑰、部分私鑰、聚合簽密、解簽密的問詢次數(shù)至少為,能夠以不可忽略的優(yōu)勢(shì)ε贏得游戲IND-CCA2,則可能存在挑戰(zhàn)者C以概率≥ε/q1q2q3(1-qun/2k)解決CBDH 問題。
證明假定敵手A1能以不可忽略的優(yōu)勢(shì)ε贏得游戲IND-CCA2,則挑戰(zhàn)者C在敵手A1的協(xié)助下解決CBDH 困難問題,即挑戰(zhàn)者C擁有CBDH 實(shí)例{P,aP,bP,cP},求解e(P,P)abc的值。C與A1進(jìn)行如下交互:
1)初始化階段。由挑戰(zhàn)者C執(zhí)行,設(shè)置Ppub=aP,并公 開parameters={G1,G2,e,P,Ppub,H1,H2,H3}。在 以下的問詢過程中可以將ROM 與挑戰(zhàn)者C看作1 個(gè)實(shí)體。
2)問詢階段。初始化列表L1、L2、L3、LK均為空,A1進(jìn)行以下多項(xiàng)式有界次問詢:
(1)H1問詢。C維護(hù)列表L1={ui,Qi,πi,Di,gi},當(dāng)A1對(duì)H1(ui)進(jìn)行問詢時(shí),若該問詢已存在列表L1中,則給A1返回對(duì)應(yīng)的Qi;否則C丟硬幣選擇gi∈{0,1},(其中,取0 的概率為δ,取1 的概率為1-δ),并隨機(jī)選取πi∈。若gi=0,C返回Qi=πibP;若gi=1,C給A1返回Qi=πi P,并將Qi添加到列表L1中。
(2)H2問詢。C維護(hù)列表L2={uB,ci,Ui,ri,hi},當(dāng)A1對(duì)H2(uB||ci||Ui)進(jìn)行問詢時(shí),若該問詢已存在列表L2中,則給A1返回對(duì)應(yīng)的hi;否則C隨機(jī)選取ri∈(1 ≤i≤n)并進(jìn)行H1問詢得到Qi,計(jì)算Ui=riQi,任取hi∈G2返回給A1,并將其添加到列表L2中。
(3)H3問詢。C維護(hù)列表L3={uB,αi,Ri,pkB,ripkB,Ti},當(dāng)A1對(duì)H3(uB,αi,Ri,pkB,ripkB)進(jìn)行問詢時(shí),若該問詢已存在列表L3中,則給A1返回對(duì)應(yīng)的Ti;否則任取Ti∈{0,1}lm返回給A1,并將其添加到列表L3中。
(4)部分私鑰問詢。當(dāng)A1輸入ui進(jìn)行問詢時(shí),C查詢列表L1,若該問詢已存在列表L1中,則給A1返回對(duì)應(yīng)的部分私鑰Di;否則,若gi=0,則游戲終止;若gi=1,C返回Di=πiap給A1,并將其添加到 列表L1中。
(5)秘密值問詢。C維護(hù)列表Lk={ui,βi,pki,Yi},當(dāng)A1輸入ui進(jìn)行問詢時(shí),若該問詢已存在列表LK中,則給A1返回對(duì)應(yīng)的βi;否則,若Yi=0,則取消問詢;若Yi=1,C隨機(jī)選取βi∈返回給A1,并將其添加到LK中。
(6)公鑰問詢。當(dāng)A1輸入ui進(jìn)行問詢時(shí),C查詢列表LK,若該問詢已存在列表LK中,則給A1返回對(duì)應(yīng)的公鑰pki;否則,若βi存在,計(jì)算pki=βi P并返回給A1,并將其添加到列表LK中;若βi不存在,C隨機(jī)選取βi∈,計(jì)算pki=βi P返回給A1,并設(shè)置Yi=1,將其添加到LK中。
(7)公鑰替換問詢。當(dāng)A1輸入進(jìn)行問詢時(shí),C查詢列表。若pki存在列表LK中,則用pki'替換pki,并設(shè)置Yi=0;否則將新的pki'添加到LK中,并設(shè)置Yi=0。
(8)簽密問詢。當(dāng)A1輸入(ui,uB,mi)進(jìn)行問詢時(shí),C查詢列表L1中的gB。若gB=0,則取消問詢;若gB=1,按照原簽密算法對(duì)明文mi進(jìn)行簽密,并返回簽密結(jié)果σi=(Ri,Ui,ci,vi)。
(9)聚合簽密問詢。當(dāng)A1輸入(u1,u2,…,un,uB,m1,m2,…,mn)進(jìn)行問詢時(shí),C對(duì)(ui,mi,uB)(1 ≤i≤n)進(jìn)行簽密問詢得到簽密結(jié)果σi=(Ri,Ui,ci,vi)(1 ≤i≤n),然后計(jì)算,最后返回
4)第二階段問詢。在該階段,A1進(jìn)行的問詢同問詢階段相似,但不允許對(duì)uB部分私鑰問詢,A1也不能對(duì)σ*執(zhí)行聚合解簽密問詢。
5)猜測(cè)階段。在進(jìn)行足夠多的問詢以后,A1輸出b',若b'=b,則A1贏得游戲;否則游戲失敗。C可以從L3對(duì)應(yīng)的數(shù)組中得到αi,C從L1對(duì)應(yīng)的數(shù)組中得到πB,這樣的數(shù)組必定存在(否則在解簽密問詢中游戲終止)。其中,Ri=cP,最后作為CBDH 問題的解。證明如下:
在問詢階段中,如果A1對(duì)uB進(jìn)行過部分私鑰問詢,以及H2、H3問詢,則C失敗。A1未進(jìn)行過部分私鑰以及H2、H3問詢的概率至少為1/q1、1/q2、1/q3。在解簽密問詢中,C拒絕一個(gè)有效簽密的概率為qun/2k。因此,C解決CBDH 問題的概率為ε/q1q2q3(1-qun/2k)。因?yàn)锳1是以不可忽略的優(yōu)勢(shì)贏得游戲,與定義3 相悖,所以在多項(xiàng)式時(shí)間內(nèi),挑戰(zhàn)者C不能解決CBDH 問題。因此,本文方案具有機(jī)密性。
定理2在ROM 中的CDH 問題下,在概率多項(xiàng)式時(shí)間內(nèi)若存在敵手A2進(jìn)行H1、H2、H3、公鑰、秘密值、聚合簽密、解簽密的問詢次數(shù)至少為qk、qs、qE、qun,能夠以不可忽略的優(yōu)勢(shì)ε贏得游戲IND-CCA2,則可能存在挑戰(zhàn)者C以概率ε/q1q2q3(1-qun/2k)解決CDH 問題。
證明假定敵手A2能以不可忽略的優(yōu)勢(shì)ε贏得游戲IND-CCA2,則挑戰(zhàn)者C在敵手A2的協(xié)助下解決CDH 困難問題,即挑戰(zhàn)者C擁有CDH 實(shí)例{P,aP,cP},求解a、c、P的值。C將與A2進(jìn)行如下交互:
不可偽造性是指只有發(fā)送方的簽名能通過驗(yàn)證。
定理3在ROM 中的CDH 問題下,在概率多項(xiàng)式時(shí)間內(nèi)若存在敵手A1進(jìn)行H1、H2、H3、公鑰、部分私鑰、聚合簽密、解簽密的問詢次數(shù)至少為、qk、qs、qE、qun,能夠以不可忽略的優(yōu)勢(shì)ε取得游戲EUF-CMA 的勝利,則可能存在挑戰(zhàn)者C以概率≥ε(1-δ)qs+n-1δ解決CDH 問題。
證明假定敵手A1能以不可忽略的優(yōu)勢(shì)ε贏得游戲EUF-CMA,則挑戰(zhàn)者C能在敵手A1的協(xié)助下解決CDH 困難問題,即挑戰(zhàn)者C擁有CDH 實(shí)例{P,aP,bP},求解a、b、P的值。C與A1進(jìn)行如下交互:
因此,C成功解決了CDH 問題。
如果A1在問詢階段進(jìn)行部分私鑰問詢,在偽造階段偽造出的簽密無效,且g1=0,gi=1(2 ≤i≤n),則C失敗。上述事件的概率分別為、ε和δ(1-δ)n-1,因此,C解決CDH 問題的概率為。因?yàn)锳1是以不可忽略的優(yōu)勢(shì)贏得游戲,與定義4 相悖,所以在多項(xiàng)式時(shí)間內(nèi),挑戰(zhàn)者C不能解決CDH 問題。因此,本文方案具有不可偽造性。
定理4在ROM 中的CDH 問題下,在概率多項(xiàng)式時(shí)間內(nèi)若存在敵手A2進(jìn)行H1、H2、H3、公鑰、秘密值、聚合簽密、解簽密的問詢次數(shù)至少為qk、qs、qE、qun,能夠以不可忽略的優(yōu)勢(shì)ε取得游戲EUF-CMA 的勝利,則可能存在挑戰(zhàn)者C以概率解決CDH 問題。
證明假定敵手A2能以不可忽略的優(yōu)勢(shì)ε贏得游戲EUF-CMA,則挑戰(zhàn)者C在敵手A2的協(xié)助下解決CDH 困難問題,即挑戰(zhàn)者C擁有CDH 實(shí)例{P,aP,bP},求解a、b、P的值。C與A2進(jìn)行如下交互:
因此,C成功解決了CDH 問題。
如果A2在問詢階段進(jìn)行秘密值問詢,在偽造階段偽造出的簽密無效,且g1=0,gi=1(2 ≤i≤n),則C失敗。上述事件的概率分別為、ε和δ(1-δ)n-1,因此,C解決CDH 問題的概率為因?yàn)锳2是以不可忽略的優(yōu)勢(shì)贏得游戲,與定義4 相悖,所以在多項(xiàng)式時(shí)間內(nèi),挑戰(zhàn)者C不能解決CDH 問題。因此,本文方案具有不可偽造性。
CLASC 方案的主要性能是通信效率、計(jì)算代價(jià)和存儲(chǔ)開銷。與其他方案相比,一個(gè)簽密方案具有更少的計(jì)算量或更高安全性,則稱該方案的性能更優(yōu)。計(jì)算量主要包括發(fā)送者和接收者的計(jì)算量以及計(jì)算過程中的操作總量,其操作包括雙線性映射運(yùn)算、點(diǎn)乘運(yùn)算和指數(shù)運(yùn)算等。安全性主要包括機(jī)密性、不可偽造性。
本文方案與文獻(xiàn)[16,26,28-30]方案的安全性和可公開驗(yàn)證性的對(duì)比如表1 所示,其中,√表示具有安全性和可公開驗(yàn)證性,×表示沒有這兩種性質(zhì)。
表1 不同方案的性能對(duì)比Table 1 Performance comparison among different schemes
不同方案的運(yùn)算量對(duì)比如表2 所示。據(jù)文獻(xiàn)[7]可知,p(雙線性對(duì)運(yùn)算)的運(yùn)算代價(jià)為20.01 ms,e(指數(shù)運(yùn)算)的運(yùn)算代價(jià)為11.20 ms,s(點(diǎn)乘運(yùn)算)的運(yùn)算代價(jià)為0.83 ms,如哈希、異或等運(yùn)算相對(duì)于無證書聚合密碼體制的計(jì)算成本可以忽略。假設(shè)參與聚合簽密的用戶有n個(gè),本文方案的簽密階段包括2 個(gè)運(yùn)算:1)4n次點(diǎn)乘運(yùn)算,Ri=ri·P(1 ≤i≤n),Ui=ri·Qi,αi=e(QB,ri·Ppub),Ti=H3(uB,αi,Ri,pkB,ri·pkB);2)n次雙線性映射運(yùn)算,αi=e(QB,ri·Ppub)。簽密階段的運(yùn)算代價(jià)為(p+4s)n≈(20.01+4×0.83)n=23.33nms。解簽密階段包括(n+2)次雙線性映射運(yùn)算:′=e(DB,Ri),e(V,P)=2n次點(diǎn)乘運(yùn)算:。解簽密階段的運(yùn)算代價(jià)為(p+2s)n+2p≈(20.01+2×0.83)n+2×20.01=21.67n+40.02 ms。因此,本文方案的總運(yùn)算代價(jià)為(2p+6s)n+2p≈(2× 20.01+6× 0.83)n+2× 20.01=45n+40.02ms。
表2 不同方案的運(yùn)算量對(duì)比Table 2 Computation comparison among different schemes
從表1 和表2 可以看出,對(duì)數(shù)量相同的消息執(zhí)行聚合簽密操作,與文獻(xiàn)[26,28-30]方案相比,本文方案運(yùn)算代價(jià)大幅降低。文獻(xiàn)[28]是關(guān)于道路狀況的車載系統(tǒng)簽密方案,簽密階段未使用雙線性映射運(yùn)算,運(yùn)算效率在所比較的文獻(xiàn)中最高,但是聚合驗(yàn)證和解簽密階段均使用了2n次雙線性映射運(yùn)算,且在聚合驗(yàn)證階段需使用接收者的私鑰信息vskj,1、vskj,2,因此,不滿足可公開驗(yàn)證性。本文方案與文獻(xiàn)[26,30]方案相比,解簽密階段均減少了2n次雙線性映射運(yùn)算。文獻(xiàn)[29]方案是關(guān)于車載系統(tǒng)的匿名異構(gòu)簽密方案,本文方案的解簽密階段相較于文獻(xiàn)[29]方案減少了n次雙線性映射運(yùn)算,且文獻(xiàn)[29]方案在聚合驗(yàn)證階段需要用到kj的值,kj=H2(Rsj),Rsj=e(Uj,1,Sr),Sr=。若通過Sr計(jì)算kj需要系統(tǒng)主密鑰,系統(tǒng)主密鑰不能被任意第三方得知。因此,文獻(xiàn)[29]方案不滿足可公開驗(yàn)證性。文獻(xiàn)[26,28-30]方案在聚合驗(yàn)證階段需要的雙線性映射運(yùn)算次數(shù)均與用戶的數(shù)量有關(guān),而本文方案僅需2 次雙線性映射運(yùn)算,與用戶數(shù)量無關(guān)。因此,本文方案具有較高的運(yùn)算效率。
與文獻(xiàn)[16]方案相比,本文方案增加了加密的功能,并在簽名階段將接收者的身份信息隱藏其中,能夠有效保護(hù)用戶隱私。在運(yùn)算代價(jià)方面,本文方案與文獻(xiàn)[16]方案在聚合驗(yàn)證階段均需2 次雙線性映射運(yùn)算。由于文獻(xiàn)[16]方案不具備加密功能,因此其他階段的運(yùn)算代價(jià)不做對(duì)比。在安全性方面,文獻(xiàn)[16]方案不滿足機(jī)密性,僅滿足簽名方案所需的不可偽造性。因此,本文方案的性能更優(yōu)。
以上是通過理論推導(dǎo)得到的性能分析,本文還通過仿真實(shí)驗(yàn)驗(yàn)證運(yùn)算效率。仿真實(shí)驗(yàn)環(huán)境:Intel Core i5-5200@2.20 GHz CPU,4 GB RAM PC,Ubuntu 18.04.5 操作系統(tǒng),Python3.6.9,pypbc 庫。
在本文方案的仿真實(shí)驗(yàn)核心偽代碼中,明文|m|長(zhǎng)度隨機(jī)
系統(tǒng)初始化階段是生成公開參數(shù),關(guān)鍵代碼如下:
由上述理論推導(dǎo)得到的性能分析可知,本文方案性能的影響因素是運(yùn)算代價(jià)、安全性及可公開驗(yàn)證性。其中,運(yùn)算代價(jià)是指方案在整個(gè)計(jì)算過程中,雙線性映射運(yùn)算、點(diǎn)乘運(yùn)算和指數(shù)運(yùn)算操作所花費(fèi)的時(shí)間。本文方案的簽密總時(shí)間隨消息個(gè)數(shù)的變化曲線如圖6 所示。在簽密階段,當(dāng)消息數(shù)m分別為200、400、600、800、1 000、1 200 時(shí),簽密時(shí)間分別約為5.084 s、10.164 s、17.345 s、25.329 s、35.345 s、45.499 s。
圖6 本文方案的簽密時(shí)間隨消息個(gè)數(shù)的變化曲線Fig.6 Change curve of signcryption time of the proposed scheme with the number of messages
在解簽密階段,本文方案使用和未使用聚合簽密技術(shù)的總解簽密時(shí)間對(duì)比如圖7 所示。
圖7 本文方案使用和未使用聚合簽密技術(shù)的解簽密時(shí)間對(duì)比Fig.7 Decryption time comparison of the proposed scheme with and without aggregate signcryption technology
當(dāng)消息數(shù)m分別為200、400、600、800、1 000 和1 200 時(shí),本文方案使用聚合簽密技術(shù)的解簽密時(shí)間分別約為2.192 s、4.328 s、6.487 s、8.654 s、10.898 s、13.089 s。若未使用聚合簽密技術(shù),m個(gè)簽密消息逐條進(jìn)行解密驗(yàn)證所需的時(shí)間分別約為10.154 s、20.288 s、30.378 s、40.630 s、50.430 s、61.073 s。從圖6 和圖7可以看出,消息的簽密時(shí)間比解簽密時(shí)間高出約1 倍。當(dāng)消息數(shù)量呈倍數(shù)增長(zhǎng)時(shí),簽密總時(shí)間和解簽密總時(shí)間也以倍數(shù)增長(zhǎng)。因此,本文方案在解簽密階段使用的運(yùn)算代價(jià)為2 次雙線性映射運(yùn)算的聚合驗(yàn)證技術(shù),能夠大幅提高解簽密的運(yùn)算效率。
本文方案可應(yīng)用在物聯(lián)網(wǎng)(Internet Of Things,IOT)中,IOT 經(jīng)過既定的協(xié)議,依賴互聯(lián)網(wǎng)實(shí)現(xiàn)信息共享,將物與物、人與物之間的信息進(jìn)行交換,達(dá)到相互連通的效果。IOT 主要由感知節(jié)點(diǎn)(Sensory Node,SNi,1 ≤i≤n)、網(wǎng)關(guān)節(jié)點(diǎn)(Gateway Node,GN)、云平臺(tái)服務(wù)器(Cloud Platform Server,CPS)和應(yīng)用終端(Application Terminal,AT)組成。IOT 結(jié)構(gòu)如圖8 所示。
圖8 IOT 結(jié)構(gòu)Fig.8 IOT structure
SN 將收集的數(shù)據(jù)發(fā)送到GN,GN 自動(dòng)保存收集的數(shù)據(jù),在一定的時(shí)間間隔內(nèi)將數(shù)據(jù)周期性地傳輸至CPS,CPS 將得到的數(shù)據(jù)進(jìn)行管理和分析,并發(fā)送給AT,以供AT 使用。其中,GN 與GN、CPS 與GN、GN 與SN 之間為無線通信。使用無線傳輸?shù)臄?shù)據(jù)容易受到網(wǎng)絡(luò)攻擊,如惡意假冒、竊聽、數(shù)據(jù)篡改等,安全方面存在漏洞,導(dǎo)致其發(fā)展緩慢。簽密技術(shù)能夠滿足IOT 中數(shù)據(jù)傳輸所需的機(jī)密性和不可偽造性。
在IOT 中,1 個(gè)GN 通常需要連接多個(gè)SN,GN 將收到的信息進(jìn)行聚合并通過CPS 傳送給AT,要求AT 在短時(shí)間內(nèi)驗(yàn)證大量簽密消息,對(duì)AT 的配置、成本要求較高,需要安全、高效、可靠的驗(yàn)證技術(shù)用于大批量密文的驗(yàn)證。本文提出的CLASC 方案應(yīng)用在IOT 環(huán)境中,能夠降本增效,保證信息的完整性和安全性。在本文方案中n個(gè)簽密者對(duì)應(yīng)IOT 中的n個(gè)SN,接收者對(duì)應(yīng)AT,n個(gè)SN 產(chǎn)生n個(gè)明文消息并發(fā)送給GN,GN 將接收到的消息進(jìn)行聚合并通過CPS 發(fā)送給AT,由AT 進(jìn)行驗(yàn)證并解簽密,有效防止篡改消息、假冒消息及泄露消息等。
本文構(gòu)造可公開驗(yàn)證的高效無證書聚合簽密方案。基于無證書密碼體制解決密鑰托管的問題,并且在ROM 下驗(yàn)證該方案的安全性,在對(duì)數(shù)據(jù)的真實(shí)性產(chǎn)生質(zhì)疑時(shí),通過信任第三方公開驗(yàn)證發(fā)送者的合法性。分析結(jié)果表明,本文方案具有較高的運(yùn)算效率,僅使用固定次數(shù)的雙線性映射運(yùn)算,在保證傳輸數(shù)據(jù)安全的同時(shí)提高傳輸效率,使其適用于移動(dòng)支付、車載系統(tǒng)和電子銀行等場(chǎng)景中。下一步將在無證書聚合簽密方案中通過隨機(jī)數(shù)重用的方法,減少解密階段的冗余信息,從而降低系統(tǒng)的存儲(chǔ)開銷和運(yùn)算量。