彭長根,張小玉,丁紅發(fā),楊善慧
(1.貴州大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025;2.貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025;3.貴州大學(xué)密碼學(xué)與數(shù)據(jù)安全研究所,貴州 貴陽 550025;4.貴州財(cái)經(jīng)大學(xué)信息學(xué)院,貴州 貴陽 550025)
簽密能在一個(gè)邏輯步驟內(nèi)同時(shí)實(shí)現(xiàn)加密和簽名,相比于單純地將加密和簽名方案組合,其在計(jì)算效率和通信開銷上都具有明顯的優(yōu)勢。自Zheng等[1]基于橢圓曲線上的離散對(duì)數(shù)提出第一個(gè)簽密方案后,構(gòu)造安全有效的簽密方案便成為研究熱點(diǎn),不同的簽密方案也被廣泛地應(yīng)用于電子支付、移動(dòng)代理安全等輕量級(jí)計(jì)算場景。2002 年,Malone-Lee[2]首次提出了基于身份密碼的簽密方案,賦予了簽密方案便捷密鑰管理的優(yōu)勢。
5G 中除了終端基本的安全需求外,增強(qiáng)型移動(dòng)寬帶(eMBB,enhance mobile broadband)場景[3]的傳輸效率非常高,終端必須具備高速率的加解密能力。此外,eMBB 場景涉及的敏感信息較多(如個(gè)人身份標(biāo)識(shí)、地址信息等),因此終端還需要重視用戶隱私數(shù)據(jù)的保護(hù),這種場景下需要設(shè)計(jì)安全高效的密碼算法和認(rèn)證協(xié)議來確保其正常運(yùn)行?,F(xiàn)有的基于身份的簽密方案大多是由雙線性對(duì)構(gòu)造的,利用雙線性對(duì)構(gòu)造的簽密方案在不犧牲安全性的前提下可使用較短的密鑰,但其在簽密過程中需要進(jìn)行大量復(fù)雜的雙線性對(duì)運(yùn)算,會(huì)造成高昂的計(jì)算開銷,也會(huì)降低簽密和解簽密速率。5G 時(shí)代的到來,使人們對(duì)簽密方案也提出了更高的要求,導(dǎo)致基于雙線性對(duì)的簽密方案在類似于上述eMBB 場景下形成了新的應(yīng)用瓶頸。如何利用新的密碼技術(shù),設(shè)計(jì)更加高效的簽密方案,為5G 網(wǎng)絡(luò)提供安全基礎(chǔ)保障,成為一個(gè)極具挑戰(zhàn)的課題。
1997 年,Zheng[4]提出了一種名為簽密的密碼原語,由于其能有效地解決傳統(tǒng)的先簽名后加密方案中計(jì)算效率低和通信開銷大的問題,迅速成為研究熱點(diǎn)。2002 年,Shin 等[5]提出了基于數(shù)字簽名算法(DSA,digital signature algorithm)的可驗(yàn)證簽密方案,其簽名通過DSA 進(jìn)行驗(yàn)證,但因消息m部分顯式地出現(xiàn)在驗(yàn)證式中,導(dǎo)致該方案不能滿足語義安全。2017 年,Yu 等[6]提出了一種無配對(duì)的無證書簽密方案,該方案在隨機(jī)預(yù)言機(jī)模型中利用計(jì)算型 Diffie-Hellman (CDH,computational Diffie-Hellman problem)問題和離散對(duì)數(shù)(DL,discrete logarithm)問題證明其具有機(jī)密性和不可偽造性,但該方案對(duì)惡意的密鑰生成中心(KGC,key generation center)和惡意的發(fā)送者是不安全的。2019 年,Rezaeibagha 等[7]提出了一個(gè)可證明安全的同態(tài)簽密方案,該方案證明了同態(tài)簽密可推廣到可證明的安全廣播簽密方案,允許在不需要解密的情況下聚合廣播的簽密數(shù)據(jù)項(xiàng),但該方案因需要大量的雙線性對(duì)運(yùn)算,導(dǎo)致加解密效率較低?;谏矸莸拿艽a系統(tǒng)具有便捷管理密鑰的優(yōu)勢,自 2002 年Malone-Lee[2]利用雙線性對(duì)構(gòu)造了首個(gè)基于身份的簽密方案以來,基于身份的簽密方案[8-11]就得到各專家學(xué)者的廣泛研究。
2003 年,Libert 等[8]指出Malone-Lee[2]的方案不具有語義安全性,同時(shí)構(gòu)造了基于橢圓曲線上雙線性對(duì)的簽密方案,但該方案不能同時(shí)滿足前向安全性與公開驗(yàn)證性這2個(gè)重要的安全特性。2016年,Wang 等[9]構(gòu)造了基于多線性映射的聚合簽密方案,該方案在標(biāo)準(zhǔn)模型下可抵抗適應(yīng)性選擇明文攻擊,但其同樣存在多線性對(duì)運(yùn)算帶來的計(jì)算效率不高的問題。2017 年,Reddi 等[10]利用雙線性映射構(gòu)造了基于身份的群簽密密鑰協(xié)商協(xié)議,該協(xié)議使用簽名對(duì)參與的用戶進(jìn)行認(rèn)證,并驗(yàn)證2 個(gè)用戶之間傳輸消息的正確性,在物聯(lián)網(wǎng)中具有一定的實(shí)用性。2018 年,Zhou 等[11]提出了基于身份的廣義代理簽密方案,該方案可以在代理簽密模式下進(jìn)行公開驗(yàn)證,并在隨機(jī)預(yù)言機(jī)模型中證明了方案的不可偽造性和機(jī)密性,但方案的密文膨脹較大,導(dǎo)致密文空間效率偏低。上述基于雙線性對(duì)構(gòu)造的簽密方案都存在計(jì)算效率不高的問題,基于此,專家學(xué)者致力于研究減少雙線性配對(duì)的次數(shù)或直接構(gòu)造無配對(duì)的簽密方案[12-14]。而傳統(tǒng)數(shù)論中的雅可比符號(hào)的求值運(yùn)算,因相對(duì)于雙線性對(duì)運(yùn)算在計(jì)算效率上有較大的優(yōu)勢,適于解決簽密方案運(yùn)算效率不高的問題。
基于二次剩余的加密源于2001 年Cocks[12]提出的基于二次剩余的基于身份的加密(IBE,identity-based encryption)方案,該方案加密過程僅需進(jìn)行簡單的雅可比(Jacobi)符號(hào)求值和模的求逆運(yùn)算,計(jì)算執(zhí)行效率較高,但Cocks[12]對(duì)方案的安全性只做了簡單的描述,并未進(jìn)行詳細(xì)證明。2013年,Clear 等[13]將文獻(xiàn)[12]方案的密文視為多項(xiàng)式商環(huán) ZN[x]/(x2?rid)中的元素,在此基礎(chǔ)上,構(gòu)建了一個(gè)強(qiáng)異或運(yùn)算(XOR,exclusive OR)同態(tài)IBE 方案。同年,Dan 等[14]的廣義Cocks 方案自然地將二次剩余推廣到高次剩余,允許一次加密多個(gè)比特,加密lbit 明文,得到的密文大小約為2llbNbit,但這種泛化的缺點(diǎn)是密文膨脹規(guī)模大。2019 年,Clear等[15]擴(kuò)展了文獻(xiàn)[14]方案,使其滿足加法同態(tài)性,并證明了該方案在隨機(jī)預(yù)言機(jī)模型中的e次剩余假設(shè)下是IND-ID-CPA 安全的,但該方案同樣面臨密文膨脹的問題。
1997 年,Chang 等[16]提出了基于二次剩余的數(shù)字簽名協(xié)議,協(xié)議允許任何發(fā)送者發(fā)送無限量的消息塊,并在每個(gè)塊上簽名,解決了基于傳統(tǒng)密碼體制一次只能簽名Nbit 的問題。2007 年,Chai 等[17]利用計(jì)算二次剩余的2l根的技術(shù)構(gòu)造基于身份的簽名方案,并在隨機(jī)預(yù)言機(jī)模型中證明其在選擇明文攻擊下具有不可區(qū)分性。2015 年,Zhao 等[18]提出了一種有效的部分盲簽名方案,該方案利用二次剩余求值的困難問題在隨機(jī)預(yù)言機(jī)模型中證明了方案的盲性與不可偽造性,其簽名空間被限制在二次剩余類群中。2018 年,Ateniese 等[19]提出了一類基于二次剩余假設(shè)的全域哈希簽名方案,構(gòu)造了2 種不同的方案,一種方案具有簽名唯一的特性,另一種方案在簽名驗(yàn)證過程中最多進(jìn)行3 次模乘運(yùn)算,驗(yàn)證階段效率較快。可見,基于二次剩余的簽名、加密方案的構(gòu)造一直是密碼學(xué)領(lǐng)域的研究熱點(diǎn),但尚未有安全高效的簽密方案被設(shè)計(jì)。如何設(shè)計(jì)計(jì)算效率高、通信成本低的簽密方案仍是一個(gè)具有挑戰(zhàn)性的課題。
鑒于上述分析,本文提出了一種基于Cocks 身份密碼體制的高效簽密(CBSC,Cocks IBE signcryption)方案。本文的主要貢獻(xiàn)如下。
1) 構(gòu)造適合CBSC 方案的安全模型,給出方案保密性和不可偽造性的相關(guān)“攻擊?挑戰(zhàn)”游戲的形式化定義。在改進(jìn)Cocks 基于身份的加密方案的基礎(chǔ)上,利用二次剩余問題構(gòu)造簽名部分在一個(gè)邏輯步驟內(nèi)完成簽密方案的設(shè)計(jì)。
2) 在隨機(jī)預(yù)言機(jī)模型下對(duì)所提方案的安全性進(jìn)行證明,將其安全性歸約到數(shù)論中的二次剩余判別困難問題,證明了所提方案在適應(yīng)性選擇密文攻擊下具有不可區(qū)分性,在適應(yīng)性選擇消息下滿足不可偽造性,具有較好的安全性。
3) 效率分析表明,所提方案相較于已有的基于雙線對(duì)和橢圓曲線離散對(duì)數(shù)的簽密方案,由于其不存在復(fù)雜的雙線性對(duì)運(yùn)算,且所提方案構(gòu)造中主要利用運(yùn)算效率較高的雅可比符號(hào)求值運(yùn)算,故所提方案在計(jì)算效率方面具有明顯的優(yōu)勢。
Cocks 公鑰密碼[12]是由Cocks 在2001 年提出的一種新的基于二次剩余的身份密碼體制,該方案將用戶的身份等公共已知值作為公鑰,具有優(yōu)良的性質(zhì),計(jì)算執(zhí)行效率較高,可用于構(gòu)造高效的密碼算法。該算法由Setup、KeyGen、Encrypt和 Decrypt 這4個(gè)部分組成。
Setup (1λ)。給定一個(gè)安全參數(shù)λ,初始化階段生成2 個(gè)不同的大素?cái)?shù)p,q(p=q=3mod4),計(jì)算N=pq。選擇哈希函數(shù)H:輸出主密鑰MSK={p,q},系統(tǒng)公開參數(shù)PP={N,H}。
KeyGen (id,MSK)。計(jì)算a=H(id),滿足r2≡±amodN,計(jì)算出返回私鑰sk={r}。
Encrypt (id,x,PP)。用戶Bob 首先生成一個(gè)傳輸密鑰,使用對(duì)稱加密的方式加密數(shù)據(jù),并依次向接收者Alice 發(fā)送傳輸密鑰的每個(gè)位,步驟如下。
1) 設(shè)x是傳輸密鑰的單個(gè)位,編碼x為1 或?1。
本節(jié)構(gòu)造適合CBSC 方案的安全模型,給出方案保密性和不可偽造性的相關(guān)“攻擊?挑戰(zhàn)”游戲的形式化定義。通過攻擊游戲的定義,可以對(duì)方案的安全性進(jìn)行更準(zhǔn)確的證明。
游戲由系統(tǒng)初始化階段、詢問階段、挑戰(zhàn)階段和猜測階段4 個(gè)階段組成,參與方包括敵手A和挑戰(zhàn)者C,具體步驟如下。
1) 系統(tǒng)初始化階段。輸入安全參數(shù)λ,C維護(hù)各個(gè)列表記錄相應(yīng)預(yù)言機(jī)詢問及密鑰生成詢問的數(shù)據(jù),同時(shí)運(yùn)行Setup 算法,生成系統(tǒng)主密鑰MSK和公開參數(shù)PP,并將公開參數(shù)PP 發(fā)送給A。
2) 詢問階段。敵手A向挑戰(zhàn)者C發(fā)起多項(xiàng)式有界次如下詢問。
①密鑰生成(KeyGen )詢問。A以身份IDi詢問,C查詢私鑰對(duì)應(yīng)列表,運(yùn)行KeyGen 算法產(chǎn)生一個(gè)對(duì)應(yīng)的私鑰發(fā)送給A。
② 簽密(Signcrypt)詢問。A以發(fā)送者身份IDs、接收者身份IDr和明文m進(jìn)行詢問,C計(jì)算發(fā)送者私鑰,并以相同的輸入向相應(yīng)的預(yù)言機(jī)進(jìn)行簽密詢問,預(yù)言機(jī)將密文σ返回給挑戰(zhàn)者C,C將發(fā)送給A。
③解簽密(Unsigncrypt)詢問。A以發(fā)送者身份IDs、接收者身份IDr和合法密文σ進(jìn)行詢問,C計(jì)算接收者私鑰,并以相同的輸入向相應(yīng)的預(yù)言機(jī)進(jìn)行解簽密詢問,預(yù)言機(jī)將明文m返回給C,C將結(jié)果發(fā)送給A。
以上詢問可以是自適應(yīng)的,即執(zhí)行每一次的詢問時(shí)都可以根據(jù)前一次詢問時(shí)得到的結(jié)果進(jìn)行相應(yīng)的調(diào)整。
3) 挑戰(zhàn)階段
①敵手A選擇2 個(gè)明文m0、m1和希望挑戰(zhàn)的身份ID1、ID2,其中ID1和ID2在之前的詢問中都未進(jìn)行過KeyGen 詢問。
② 挑戰(zhàn)者C隨機(jī)選擇b∈R{0,1},并將消息mb、A指定的發(fā)送者ID1的私鑰接收者身份ID2及公共參數(shù)PP 作為輸入向預(yù)言機(jī)進(jìn)行簽密詢問,返回密文給挑戰(zhàn)者C,C將σ*發(fā)送給A。
③A可以繼續(xù)像詢問階段那樣進(jìn)行多項(xiàng)式有界次詢問,但此時(shí)對(duì)ID1和ID2不能進(jìn)行KeyGen 詢問,對(duì)σ*也不能進(jìn)行Unsigncrypt 詢問。
4) 猜測階段。A輸出b′∈{0,1}作為對(duì)b的猜測,如果b′=b,則A贏得游戲的優(yōu)勢可以定義為
定義4如果不存在任何多項(xiàng)式有界敵手A以不可忽略的優(yōu)勢贏得上述游戲,則CBSC 方案可以抵抗適應(yīng)性選擇密文攻擊(IND-ID-CCA2),即在適應(yīng)性選擇密文攻擊下具有保密性。
游戲由系統(tǒng)初始化階段、詢問階段和偽造階段3 個(gè)階段組成,游戲雙方仍為敵手A和挑戰(zhàn)者C,具體步驟如下。
1) 系統(tǒng)初始化階段。輸入安全參數(shù)λ,C運(yùn)行Setup 算法,生成系統(tǒng)主密鑰MSK 和公開參數(shù)PP,并將公開參數(shù)PP 發(fā)送給A。
2) 詢問階段。和機(jī)密性的詢問階段一樣,A執(zhí)行多項(xiàng)式有界次相應(yīng)的KeyGen、Signcrypt、Unsigncrypt 詢問。
3) 偽造階段(Forge Phase)。A輸出元組(σ*,ID1,ID2)作為對(duì)明文消息的偽造,挑戰(zhàn)者C將上述元組作為輸入提交給預(yù)言機(jī)進(jìn)行解簽密詢問,預(yù)言機(jī)將密文σ*的解簽密結(jié)果返回給挑戰(zhàn)者C,如果密文σ*不是由Signcrypt 詢問產(chǎn)生,ID1未執(zhí)行過KeyGen 詢問,且的輸出不是失敗符號(hào)⊥,則A贏得游戲。A贏得游戲的優(yōu)勢定義為其的概率Adv(A)=Pr[Awin]。
定義5如果不存在多項(xiàng)式時(shí)間敵手A以不可忽略的優(yōu)勢贏得上述游戲,則稱CBSC 方案在適應(yīng)性選擇明文攻擊下具有不可偽造性(CBSC-EUFCMA)。
本節(jié)提出的CBSC 簽密方案是基于Cocks 的IBE 體制構(gòu)造的簽密方案,方案的參與者包括PKG和簽密通信雙方ID1,ID2,由4 個(gè)算法組成,即系統(tǒng)初始化算法Setup、密鑰生成算法KeyGen、簽密算法Signcrypt 和解簽密算法Unsigncrypt,算法運(yùn)行過程如下。
首先定義函數(shù)
1) 系統(tǒng)初始化算法(1λ)
1) 密文σ=(c1,s2)正確性驗(yàn)證分析。接收者ID2收到密文s2后,有再利用c1和s1計(jì)算出c2=H3(c1)⊕s1然后驗(yàn)證式(4)是否成立。
如果式(4)成立,則簽密過程是可信的,得到的密文σ=(c1,s2)是正確的;否則,發(fā)送者在簽密過程中或數(shù)據(jù)發(fā)送過程中存在偽造行為。
2) 解簽密正確性分析。如果接收者ID2收到的是正確的密文σ=(c1,s2),并且持有合法的解密密鑰,則利用自己的私鑰r2、身份ID2和發(fā)送者的公鑰R1,根據(jù)c1與c2數(shù)值上是否相等,可以得到相應(yīng)的c0或的值,運(yùn)行Cocks 密碼體制中的Decrypt算法可以得到m′。
下面,定義通過上述模擬的預(yù)言機(jī)來攻破簽密體制的游戲。
1) 初始化階段。挑戰(zhàn)者C運(yùn)行Setup 算法,生成系統(tǒng)主密鑰MSK 和公開參數(shù)PP,并將PP 發(fā)給敵手A。
2) 詢問階段。A通過上述預(yù)言機(jī)向挑戰(zhàn)者發(fā)起多次的KeyGen、Signcrypt 和Unsigncrypt 詢問。
3) 挑戰(zhàn)階段。A輸出2 個(gè)消息{m0,m1},挑戰(zhàn)者C隨機(jī)選擇一個(gè)比特b,對(duì)消息mb計(jì)算簽密文σ*,并將σ*發(fā)送給A。
4) 第二次詢問階段。敵手A仍可進(jìn)行各種預(yù)言詢問,但不能對(duì)將要挑戰(zhàn)的密文σ*進(jìn)行相應(yīng)的Unsigncrypt 詢問。
5) 猜測階段。攻擊者A輸出比特b′,經(jīng)分析知,該模擬等同于敵手A的實(shí)際攻擊環(huán)境,敵手A只有通過詢問H1-oracle 得到ω,才能猜測成功,定義事件EA為挑戰(zhàn)者C在記錄表中選擇正確記錄ω,則該事件發(fā)生的概率為;若由選擇的記錄得到b=b′,則C將能有效判別ω是否為模N的二次剩余。
下面,對(duì)挑戰(zhàn)者C成功的概率進(jìn)行分析,定義事件E表示敵手A在猜測階段成功輸出比特b=b′,事件E′表示模擬成功。在模擬成功并選擇正確記錄的情況下,敵手A輸出正確比特說明挑戰(zhàn)者C可以成功解決困難假設(shè)。
定義C成功的優(yōu)勢為ε′=Pr[E∩E′∩EA],則有
證畢。
保密性分析表明,敵手A成功攻破CBSC 方案保密性的優(yōu)勢與一個(gè)不可忽略量的乘積不大于挑戰(zhàn)者C成功解決二次剩余假設(shè)的優(yōu)勢。
定理3如果在概率多項(xiàng)式時(shí)間內(nèi)存在一個(gè)敵手A能夠以的優(yōu)勢來贏得3.2節(jié)的游戲(最多進(jìn)行次H1詢問、次H2詢問、次H3詢問、qSK次密鑰生成詢問、qSC次簽密詢問、qUSC次解簽密詢問),那么存在一個(gè)挑戰(zhàn)者C以的優(yōu)勢判斷出模N的二次剩余問題,其中
證明設(shè)敵手A是攻擊CBSC-EUF-CMA 安全性的攻擊者,定義和LSK這4 個(gè)記錄表來記錄相應(yīng)的預(yù)言機(jī)詢問和密鑰生成詢問。與保密性分析中定義相同,簽密過程可以看作
在攻擊簽密體制不可偽造性時(shí)進(jìn)行和定理2 詢問階段一樣的多項(xiàng)式有界次詢問,并且其詢問也是適應(yīng)性的,只是不返回明文消息m。
下面,定義通過上面模擬的預(yù)言機(jī)來攻破簽密體制的游戲。
1) 初始化階段。挑戰(zhàn)者C運(yùn)行Setup 算法,生成系統(tǒng)主密鑰MSK 和公開參數(shù)PP,并將PP 發(fā)給敵手A。
2) 詢問階段。敵手A通過上述預(yù)言機(jī)發(fā)起各種詢問,同定理2 詢問階段相同。
3) 偽造階段。進(jìn)行上述有界次詢問后,敵手A輸出偽造的密文,假設(shè)簽密接收者為R,由機(jī)密性分析可知,該模擬等同于敵手A的實(shí)際攻擊環(huán)境,敵手A必須通過H1詢問和H2詢問來得到消息m*對(duì)應(yīng)的ω*,才能偽造成功,其中定義事件EA為挑戰(zhàn)者C在記錄表中選擇正確記錄ω*,則該事件發(fā)生的概率為;若選擇的記錄正確,則C將能有效判別ω*是否為模N的二次剩余。
下面,分析挑戰(zhàn)者C成功的概率,事件E表示敵手A成功偽造一個(gè)有效的密文σ*,并通過了驗(yàn)證,事件E′表示模擬成功。在模擬成功并選擇正確記錄的情況下,敵手A成功偽造有效密文說明挑戰(zhàn)者C可以成功解決困難假設(shè)。
定義C成功的優(yōu)勢為則有
證畢。
不可偽造性分析表明,敵手A成功攻破CBSC方案不可偽造性的優(yōu)勢與一個(gè)不可忽略量的乘積不大于挑戰(zhàn)者C成功解決二次剩余假設(shè)的優(yōu)勢。
已知任意多項(xiàng)式時(shí)間的攻擊者都不可能以不可忽略的優(yōu)勢解決二次剩余假設(shè)問題,即可知任意多項(xiàng)式時(shí)間的敵手不可能攻破CBSC 方案的保密性和不可偽造性。
目前,缺乏同類基于Cocks 的IBE 密碼體制的簽密方案,本節(jié)則將CBSC 方案與其他現(xiàn)有的基于雙線性對(duì)[10-11,15-16]及橢圓曲線離散對(duì)數(shù)[6,13]的方案進(jìn)行對(duì)比分析。由于不同方案的效率運(yùn)算單位及其耗時(shí)不統(tǒng)一,為了能夠使不同方案的簽密與解簽密過程在同一指標(biāo)下進(jìn)行效率對(duì)比,本節(jié)首先基于文獻(xiàn)[14]方案中的數(shù)據(jù)定義了不同的符號(hào)及符號(hào)換算,如表1 所示。
表1 符號(hào)定義及換算
表1 中,與文獻(xiàn)[14]方案數(shù)據(jù)相似,為了實(shí)現(xiàn)與1 024 bit 的RSA 密鑰相當(dāng)?shù)陌踩?,基于雙線性配對(duì)的方案在具有嵌入度2 和素?cái)?shù)階p的超奇異橢圓曲線上執(zhí)行Tate 配對(duì),其中形式為p=2159+217+1的160 bit 的Solinas 素?cái)?shù)和至少為512 bit 的素?cái)?shù)q滿足條件q+1=12pr。為了達(dá)到相同的安全性,基于無配對(duì)的橢圓曲線方案在上定義為y2=x3+ax2+b的Koblitz 曲線上執(zhí)行運(yùn)算,其中a=1且b為一個(gè)163 bit 的隨機(jī)數(shù)?;谂鋵?duì)構(gòu)造的方案中512 bit 隨機(jī)數(shù)提供的安全性等同于無配對(duì)方案中160 bit 隨機(jī)數(shù)提供的安全性。因此,在本文方案中,假設(shè)H i(i=0,1,2,3)的輸出為160 bit,雅可比符號(hào)運(yùn)算為1 024 bit。
由表1 可知,執(zhí)行一次雙線性配對(duì)運(yùn)算的時(shí)間是執(zhí)行一次模乘運(yùn)算所需時(shí)間的87 倍,而執(zhí)行一次橢圓曲線標(biāo)量點(diǎn)乘運(yùn)算所需時(shí)間是執(zhí)行一次模乘運(yùn)算所需時(shí)間的29 倍,但執(zhí)行一次雅可比符號(hào)運(yùn)算的時(shí)間只有執(zhí)行一次模乘運(yùn)算所需時(shí)間的6.5 倍。因此,執(zhí)行一次雙線性對(duì)運(yùn)算相當(dāng)于可以執(zhí)行13次雅可比符號(hào)運(yùn)算,執(zhí)行一次橢圓曲線標(biāo)量點(diǎn)乘運(yùn)算相當(dāng)于可以執(zhí)行4 次雅可比符號(hào)運(yùn)算。綜上所述,執(zhí)行雅可比符號(hào)運(yùn)算的計(jì)算效率相對(duì)較高。
表2 對(duì)比了CBSC 方案與其他方案中用戶執(zhí)行一次簽密操作、一次解簽密操作需花費(fèi)的計(jì)算成本,對(duì)比過程忽略了方案中都存在的哈希函數(shù)運(yùn)算以及異或運(yùn)算。
表2 計(jì)算效率比較
分析結(jié)果表明,在簽密和解簽密的計(jì)算效率上CBSC 方案明顯優(yōu)于其他方案。一方面,與基于雙線性對(duì)的簽密方案[10-11,15-16]相比,由表2 可以看出,文獻(xiàn)[15]方案簽密過程中不需要進(jìn)行配對(duì)運(yùn)算,解簽密過程只需進(jìn)行一次配對(duì)運(yùn)算。盡管文獻(xiàn)[15]方案相比于文獻(xiàn)[10-11,16]方案所需的配對(duì)數(shù)量都要少,但簽密過程所需時(shí)間仍是CBSC 方案的13 倍,解簽密過程也需花費(fèi)CBSC 方案6 倍的時(shí)間。因此,由于CBSC 方案主要用到計(jì)算量較小的雅可比符號(hào)求值和模的求逆運(yùn)算,在簽密和解簽密的時(shí)間上遠(yuǎn)小于基于雙線性對(duì)的簽密方案;另一方面,與基于橢圓曲線離散對(duì)數(shù)的簽密方案[6,13]相比,雖然兩者都不存在雙線性對(duì)運(yùn)算,但從表2 可知,簽密過程中文獻(xiàn)[6]方案所需時(shí)間仍是CBSC 方案的8 倍,解簽密過程花費(fèi)時(shí)間雖與CBSC 方案相差不大,但也是CBSC 方案的1.5 倍。綜上所述,本文提出的CBSC 方案有較高的計(jì)算效率。
對(duì)CBSC 方案進(jìn)行仿真實(shí)驗(yàn),在3.60 GHz 的8核64 位Intel(R) Core(TM)i7-4790U 處理器、8 GB內(nèi)存(RAM)、Windows 7 操作系統(tǒng)的實(shí)驗(yàn)環(huán)境進(jìn)行實(shí)驗(yàn),選用Visual studio 2017 作為實(shí)驗(yàn)平臺(tái)、C++作為實(shí)驗(yàn)編程語言,分別對(duì)KeyGen 算法、Signcrypt算法和Unsigncrypt 算法進(jìn)行模擬運(yùn)行。使用不同長度的明文消息運(yùn)行9 次實(shí)驗(yàn),比較了不同明文消息進(jìn)行簽密、解簽密的執(zhí)行時(shí)間,以達(dá)到對(duì)方案的計(jì)算效率進(jìn)行驗(yàn)證的目的,實(shí)驗(yàn)結(jié)果如圖1所示。
圖1 不同明文長度下方案執(zhí)行時(shí)間
圖1 的實(shí)驗(yàn)數(shù)據(jù)表明,CBSC 簽密方案最耗時(shí)的部分是密鑰生成部分,簽密算法的耗時(shí)低于解簽密算法耗時(shí),并從某一個(gè)初值開始隨消息長度增大呈緩慢的增長趨勢。由于CBSC 簽密方案在簽密過程中除哈希運(yùn)算外只存在雅可比符號(hào)求值運(yùn)算耗時(shí),而解簽密過程除哈希運(yùn)算外還存在雅可比符號(hào)求值及模的求逆運(yùn)算的耗時(shí),此外,因?yàn)楹灻芊桨钢醒趴杀确?hào)運(yùn)算及模逆運(yùn)算計(jì)算效率都相對(duì)較高,因此方案的簽密、解簽密過程的耗時(shí)都相對(duì)少。綜上可以得出,實(shí)驗(yàn)結(jié)果與理論分析是一致的。
進(jìn)一步地,類似于文獻(xiàn)[17],基于表1 一樣的數(shù)據(jù)設(shè)置,在與上述相同的實(shí)驗(yàn)環(huán)境下,只是實(shí)驗(yàn)過程采用密碼函數(shù)庫miracl 進(jìn)行操作,得到表1 相關(guān)運(yùn)算操作的單次運(yùn)行時(shí)間,如表3 所示。
表3 相關(guān)操作單次運(yùn)行時(shí)間
基于表3,將CBSC 方案用圖1 相同的實(shí)驗(yàn)環(huán)境及操作語言與目前較高效的基于雙線性對(duì)的簽密方案[10-11,15-16]進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 與基于雙線性對(duì)的方案執(zhí)行時(shí)間對(duì)比
圖2 的實(shí)驗(yàn)結(jié)果表明,對(duì)比基于雙線性對(duì)的簽密方案,無論是在簽密算法還是解簽密算法的執(zhí)行時(shí)間都遠(yuǎn)少于有雙線性配對(duì)運(yùn)算的簽密方案,簽密過程中相對(duì)于時(shí)間最短的文獻(xiàn)[15]方案仍然快出接近13 倍的時(shí)間,解簽密過程與耗時(shí)最少的文獻(xiàn)[10]方案相比仍快出3 倍左右,與6.1 節(jié)中理論分析的計(jì)算效率結(jié)果一致。
同理,基于表3 將CBSC 方案與基于橢圓曲線離散對(duì)數(shù)的簽密方案[6,13]進(jìn)行對(duì)比并仿真實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果如圖3 所示。
圖3 的實(shí)驗(yàn)數(shù)據(jù)表明,將CBSC 方案與基于橢圓曲線上的離散對(duì)數(shù)方案對(duì)比后,與計(jì)算效率較高的文獻(xiàn)[6]方案對(duì)比數(shù)據(jù)發(fā)現(xiàn),解簽密過程雖然耗時(shí)相差不大,但簽密過程的耗時(shí)顯著減少。綜上可得,該方案的計(jì)算效率具有顯著提升。效率分析表明,CBSC 方案適合5G 網(wǎng)絡(luò)下的基礎(chǔ)安全保障,特別是類似于eMBB 場景下的安全需求。
圖3 與基于離散對(duì)數(shù)的方案執(zhí)行時(shí)間對(duì)比
本文針對(duì)基于雙線性對(duì)構(gòu)造的簽密方案計(jì)算開銷大的問題,利用二次剩余判定困難問題,提出了一種基于Cocks 的IBE 體制的高效簽密方案。首先,利用二次剩余問題及雅可比求值運(yùn)算具體構(gòu)造該簽密算法,在Cocks 基于身份的加密方案的基礎(chǔ)上結(jié)合二次剩余問題構(gòu)造簽名,在單個(gè)邏輯步驟中實(shí)現(xiàn)消息的保密性與認(rèn)證性,該方案適用于對(duì)短會(huì)話密鑰進(jìn)行簽密;然后,在隨機(jī)預(yù)言機(jī)模型下對(duì)方案的安全性進(jìn)行證明,將其安全性歸約到數(shù)論中的二次剩余判別困難問題,證明了方案滿足保密性和不可偽造性;最后,通過方案分析進(jìn)行計(jì)算效率對(duì)比發(fā)現(xiàn),所提方案無論是與已有的基于雙線性對(duì)還是橢圓曲線上的離散對(duì)數(shù)構(gòu)造的簽密方案相比,都具有較高的計(jì)算效率。綜上,本文所提CBSC 方案在確保簽密方案具有基于身份特性的同時(shí),實(shí)現(xiàn)了高安全性和高效計(jì)算。因此,CBSC 方案的高效性與安全性能為5G 網(wǎng)絡(luò)提供了基礎(chǔ)安全保障。