陳 虹,朱亞囡,肖成龍,金海波,張子浩
遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島125105
公鑰加密和數(shù)字簽名往往需要很大的計(jì)算開銷,將兩者結(jié)合起來相較于獨(dú)立使用兩個(gè)算法,不僅能更快速的計(jì)算,而且消息擴(kuò)展也更短,提高了效率,避免了資源浪費(fèi)。1997年,Zheng[1]首次提出簽密的概念,簽密能夠在一個(gè)步驟內(nèi)同時(shí)實(shí)現(xiàn)簽名和加密,其優(yōu)越性吸引眾多研究人員關(guān)注,逐漸將簽密思想和現(xiàn)實(shí)的應(yīng)用需求結(jié)合起來,提出很多具有特殊屬性的簽密方案[2-6]。為了滿足廣播環(huán)境下發(fā)送者同時(shí)發(fā)送消息給多個(gè)接收者的需求,2006年,李大興等[7]提出了一個(gè)發(fā)送者對應(yīng)多個(gè)指定接收者的簽密方案,方案利用超奇異橢圓曲線上Tate對的特性,僅需一次加密,就能發(fā)送給多個(gè)接收者,提高了傳輸消息的效率,節(jié)省了資源。自此出現(xiàn)了很多多接收者簽密方案,然而方案生成的密文中往往包含發(fā)送者的身份或密文標(biāo)記列表,致使多接收者簽密方案[8-13]密文泄露接收者的身份,為了解決接收者身份信息泄露的問題,2014 年,龐遼軍等[14]提出一種基于身份的多接收者匿名簽密方案,使用用戶的身份標(biāo)識來生成公鑰,并將接收者的身份利用拉格朗日插值隱藏起來,使得解密時(shí)能夠驗(yàn)證用戶身份的合法性,卻無法得到用戶的真實(shí)身份,且每個(gè)用戶可以驗(yàn)證密文的有效性,保護(hù)了用戶的隱私,但該簽密方案私鑰是由密鑰生成中心(Key Generation Center,KGC)生成,面臨PKG 惡意泄露私鑰信息的情況,為了解決這一問題,研究人員提出了基于無證書體制的多個(gè)接收者的簽密方案,用戶和KGC 組合生成密鑰,因此KGC無法獲得用戶完整的私鑰,解決私鑰泄露的風(fēng)險(xiǎn)。2015年,于志敏等[15]提出一種基于多線性映射的多接收者簽密方案,在無證書體制下采用多個(gè)一級編碼相乘的方法,將方案的求解難度提升到了求解一個(gè)基于多級計(jì)算性Diffie-Hellman 問題,提高方案的安全性,但該公鑰尺寸大,且方案計(jì)算繁瑣,實(shí)用性不高。2016年,周彥偉等[16]提出一種無證書多接收者多消息簽密機(jī)制,該方案使用索引定位的方法標(biāo)識密文,對接收到的密文需每個(gè)接收者各自定位到相應(yīng)的密文,再去使用各自私鑰去解密,解密效率提高,但該方案操作復(fù)雜且容易暴露接收者的身份;2017 年,秦艷琳等[17]提出一種無雙線性對的無證書多接收者匿名簽密方案,該方案采用拉格朗日插值方法來隱藏接收者身份,且在簽密過程中沒有使用雙線性對,降低了計(jì)算開銷,然該方案被證明未真正實(shí)現(xiàn)接收者身份匿名性。
針對上述方案的不足,在隨機(jī)預(yù)言模型下提出一種可公開驗(yàn)證的無證書多接收者匿名簽密方案,該方案解決了發(fā)送者身份模糊、接收者身份泄露的問題,且計(jì)算量適中,適合實(shí)際應(yīng)用。本文首先介紹了方案的預(yù)備知識,然后提出了一種新的多接收者簽密方案,在隨機(jī)預(yù)言模型下證明了該方案的機(jī)密性、不可偽造性和可公開驗(yàn)證性,最后與現(xiàn)有的一些多接收者簽密方案相比,證明本文方案所采用的方法更加的安全高效。
多接收者簽密由KGC、發(fā)送者和接收者三方構(gòu)成,方案有以下幾個(gè)步驟。
(1)系統(tǒng)初始化算法:此算法是由KGC 來完成的,首先將系統(tǒng)的安全參數(shù)k 輸入進(jìn)去,對應(yīng)輸出主密鑰s 和參數(shù)params,其中主密鑰s 秘密保留,參數(shù)params公開。
(2)用戶密鑰生成算法:首先輸入?yún)?shù)params、主密鑰s 和用戶的身份ID,由KGC 輸出用戶的部分私鑰DID,用戶自己選取一個(gè)秘密值xID,將兩者結(jié)合起來生成完整的私鑰SKID,然后用戶輸入?yún)?shù)params 和身份ID,輸出用戶的部分公鑰,再由用戶秘密值和生成元計(jì)算出的值作為公鑰的另一部分,由此生成完整公鑰。
圖1 無證書多接收者匿名簽密方案
方案的正確性分析主要包括密鑰正確性、密文的可恢復(fù)性和發(fā)送者合法性、簽名正確性等分析,具體如下:
(1)密鑰正確性
用戶的密鑰由KGC 和用戶手中的部分密鑰組成,為了保證KGC 傳來的密鑰的可靠性,可以通過以下公式驗(yàn)證KGC傳遞的部分私鑰的正確性:
簽密的安全目標(biāo)是對通信數(shù)據(jù)提供認(rèn)證性和保密性。安全性可以根據(jù)敵手的不同,分為外部安全(只知道公共信息)和內(nèi)部安全(合法用戶)。本章從機(jī)密性(選擇密文攻擊下的不可區(qū)分性,IND-CCA2)和認(rèn)證性(選明文攻擊下不可偽造性,sUF-CMA)來定義內(nèi)部安全性和外部安全性,通??梢酝ㄟ^KGC 和敵手之間的相互交互來驗(yàn)證,參照文獻(xiàn)[13]的定義,利用四類游戲(游戲一、游戲二、游戲三、游戲四)來模擬方案受兩類敵手攻擊的過程,第一類敵手是惡意的用戶,可以無條件更換用戶的公鑰,但無法得知系統(tǒng)的主控鑰;第二類敵手是惡意的KGC,掌握著系統(tǒng)的主控鑰,但無法更換用戶的公鑰。兩類敵手和KGC中的算法之間的交互如圖2和圖3所示。
圖2 適應(yīng)性選擇密文攻擊模擬圖
圖3 選擇消息攻擊模擬圖
定義4(類型二攻擊下的不可偽造性)若在固定時(shí)間t內(nèi)敵手SUF-CCA2 贏得游戲一優(yōu)勢ε?是可以忽略不計(jì)的(執(zhí)行qe次密鑰詢問,qs次簽密詢問,qd次解簽密詢問和q1,q2,q3,q4次對哈希函數(shù)H1,H2,H3,H4的詢問),則有算法B 能夠在t′≤t內(nèi),以優(yōu)勢ε*≥ε?/2-qs/2k+1解決DL問題。
證明證明過程與定義3類似,此處不再論證。
從計(jì)算效率和安全屬性上對方案進(jìn)行分析,計(jì)算效率主要取決于多接收者匿名簽密和簽密驗(yàn)證算法的計(jì)算量。因?yàn)樯⒘泻瘮?shù)和點(diǎn)加運(yùn)算所用的時(shí)間遠(yuǎn)小于其余的計(jì)算時(shí)間,可以忽略不計(jì),因此計(jì)算量主要統(tǒng)計(jì)雙線性對、點(diǎn)乘和指數(shù)運(yùn)算的執(zhí)行次數(shù),分別用E、P、M表示指數(shù)運(yùn)算、雙線性對運(yùn)算和點(diǎn)乘計(jì)算,一個(gè)雙線性對約等于20 個(gè)點(diǎn)乘,一個(gè)指數(shù)約等于3 個(gè)點(diǎn)乘,將本文方案和其他類似方案進(jìn)行比較,結(jié)果如表1和表2所示。
表1 多接收者簽密計(jì)算效率
表2 多接收者簽密安全屬
從表1可以看出文獻(xiàn)[16]在計(jì)算開銷上存在明顯的優(yōu)勢,但該方案使用的是索引定位的方法來確定接收者所屬的密文,需找到準(zhǔn)確密文后再進(jìn)行解密,操作復(fù)雜,且此段開銷并未計(jì)算進(jìn)去;本文與文獻(xiàn)[15]相比,文獻(xiàn)[15]不使用雙線性對,計(jì)算開銷也較小,但隨著接收者增多,開銷增長的幅度相比本文也會加大;本文與文獻(xiàn)[17]相比,在隨著接收者增加的趨勢下有著相近的增長幅度。
從表2可以看出,文獻(xiàn)[14]、[16]和[17]相比,本文方案具有接收者匿名性,能解決接收者身份泄露的問題;本文與文獻(xiàn)[15]和[17]相比,能實(shí)現(xiàn)發(fā)送者身份匿名性,確保發(fā)送者身份不被泄露;本文與文獻(xiàn)[17]相比,本文具有可公開驗(yàn)證性,能夠確保密文的有效性和發(fā)送者身份的合法性。本文方案與其他文獻(xiàn)相比安全性更高、更全,適用于網(wǎng)絡(luò)組播中的簽密服務(wù)、云中的數(shù)據(jù)共享以及網(wǎng)絡(luò)會議等領(lǐng)域。
針對多接收者簽密方案發(fā)送方和接收方身份泄露的問題,采用哈希函數(shù)和多項(xiàng)式將身份隱藏起來,保護(hù)了用戶的隱私,實(shí)現(xiàn)身份的匿名性,且方案可公開驗(yàn)證密文有效性。然而方案在注重抗攻擊性能時(shí),計(jì)算開銷就會有所忽略,因此平衡方案的運(yùn)行效率和抗攻擊性能,仍是以后研究的重點(diǎn)。