郭亞峰, 黃 慧, 陳紅英
(1.漳州城市職業(yè)學(xué)院 電子信息工程系,福建 漳州 363000; 2.閩南師范大學(xué) 計算機學(xué)院,福建 漳州 363000)
密碼學(xué)家Gentry[1]在2003年歐密會上首次提出基于證書公鑰密碼(certificate-based public key cryptog-raphy,CB-PKC)的概念.在CB-PKC系統(tǒng)中,公鑰的證書直接被用作解密或簽名密鑰的一部分,解決了傳統(tǒng)公鑰基礎(chǔ)設(shè)施(public key infrastructure, PKI)證書管理問題;另一方面,由于證書只是密鑰的一部分,還有另一部分密鑰只有用戶才知道,也解決了基于身份公鑰密碼[2](identity-based cryptography, IBC)的密鑰托管問題,證書的分發(fā)也不需要保密信道.2004年Kang等[3]將基于證書概念平移到數(shù)字簽名,研究基于證書簽名(certificate-based signature,CBS), 文獻[3]給出CBS的安全模型和第一個可證明安全的CBS方案.Wu等[4]對CBS與無證書簽名方案[5](certificateless signature,CLS)之間的關(guān)系進行了研究,提出一種從CLS到CBS的通用轉(zhuǎn)換方法,并證明該方案是安全的.2012年Li等[6]提出只有一個群元素的短CBS,其方案的簽名只是一個群元素,但方案在簽名過程、驗證過程都需要3個雙線對運算,效率并不高.為了提高CBS簽名方案的效率.Hung等[7]基于CDH假設(shè)提出了一種短CBS方案,然而,Kumar等[8]指出Hung等[7]方案不能抵抗無證書用戶的攻擊.Lu等[9]提出了一種改進的不需要隨機預(yù)言機假設(shè)的CBS方案.在標(biāo)準(zhǔn)模型下,Zhou等[10]與Wang等[11]分別提出了基于雙線性對的CBS方案.基于格和短整數(shù)解(SIS)假設(shè),Tseng等[12]提出了一個新的高效CBS方案.Wu等[13]提出了抗泄漏CBS,可以防止側(cè)信道攻擊.左黎明等[14]也提出了一個短CBS方案. 2022年Khan等[15]將基于證書簽名方案應(yīng)用于工業(yè)物聯(lián)網(wǎng)系統(tǒng),為其提供安全保障.上述方案都使用雙線對,因此計算開銷比較大.榮維堅等[16]基于整數(shù)分解問題提出了一個可證明安全的基于證書數(shù)字簽名方案.本文主要目的是基于RSA困難性假設(shè),提出一個新的基于證書簽名方案.提高基于證書簽名方案的效率,與已有的方案比較表明,所提出的方案在證書生成、簽名生成和簽名驗證、簽名長度方面都有明顯的優(yōu)勢,可用于對帶寬需求較小的系統(tǒng)中.
定義2(RSA困難性假設(shè))不存在能以不可忽略的概率解RSA問題的概率多項式算法.
基于證書簽名方案由下列5個算法組成:
建立算法:該算法通常由權(quán)威機構(gòu) (certificate authority, CA)進行,用以產(chǎn)生系統(tǒng)主密鑰對及公開參數(shù).
用戶密鑰生成:該算法通常由用戶進行,用以產(chǎn)生系統(tǒng)用戶的主密鑰對.
證書生成:該算法通常由CA進行,用以產(chǎn)生用戶簽名密鑰的組成部分的證書.
簽名生成:該算法通常由用戶進行,用以產(chǎn)生用戶待簽名消息的簽名.
簽名驗證:該算法通常由第三方進行,對消息簽名對進行驗證,判定消息簽名對是否有效.
2.2.1游戲1
2.2.2游戲2
本文方案的算法組成如下.
建立算法(Setup):輸入系統(tǒng)安全參數(shù)1k,證書機構(gòu)選取隨機安全大素數(shù){pCA,qCA},然后計算NCA=pCAqCA.選取隨機eCA滿足gcd(eCAφ(NCA))=1.計算dCA滿足eCAdCA=1(modNCA).秘密保存{pCA,qCA,dCA}作為系統(tǒng)主私鑰SKCA, 公開{NCA,eCA}作為系統(tǒng)主公鑰PKCA.
用戶密鑰生成(Userkeygen):輸入系統(tǒng)安全參數(shù)1k,用戶ID選取隨機安全大素數(shù){pID,qID},然后計算NID=pIDqID.選取隨機eID滿足gcd(eID,φ(NID))=1,及dID滿足eIDdID=1(modNID).設(shè)置用戶私鑰SKID={pID,qID,dID},用戶公鑰PKID={NID,eID}.
(ⅰ)計算R=reCA(modNCA).
σ2=rVh1(modNCA).
消息m的簽名為σ={σ1,σ2}.
簽名驗證(Verify):當(dāng)接收者想判定σ={σ1,σ2}是否為消息m在公鑰PKCA和PKID下的有效簽名時,按下列方式進行簽名驗證.
通過下列簡單驗算可知方案生成的簽名可以通過驗證:
reCA(modNCA)=R(modNCA).
本文方案的安全性基于RSA困難性假設(shè),即若存在攻擊者A可以攻破上述基于證書簽名方案,則挑戰(zhàn)者C可以解RSA問題.
式中E為一次冪指數(shù)運算的時間,k為安全參數(shù).
若coin=1,則令
由此可得RSA問題的解
概率分析:根據(jù)以上交互模擬可知,當(dāng)且僅當(dāng)以下事件都發(fā)生時,C可以解RSA問題.
ξ′=Pr[E1∧E2∧E3]=
Pr[E1]·Pr[E2/E1]·Pr[E3/E1∧E2].
若E1發(fā)生,則表明在簽名詢問交互過程中C的應(yīng)答沒有中止,其概率至少為
此外有
式中:E為一次冪指數(shù)運算的時間,k為安全參數(shù).
當(dāng)IDj≠IDt時,令
當(dāng)IDj=IDt時,C隨機選取coin∈{0,1}使得概率Pr(coin=0)=δ.若coin=0,則C令
若coin=1,則C令
無論哪種情形,若H1j=0(modeCA),則重新選擇σ,重新計算H1j.
當(dāng)coin=0時, 簽名失敗,終止交互.當(dāng)coin=1時,令
概率分析:根據(jù)以上交互模擬可知,當(dāng)且僅當(dāng)以下事件都發(fā)生時C可以解RSA問題.
因此C的優(yōu)勢為
ξ′=Pr[E1∧E2∧E3]=
Pr[E1]·Pr[E2/E1]·Pr[E3/E1∧E2].
若E1發(fā)生,則表明在私鑰詢問交互過程中C沒有中止.在簽名詢問交互過程中C的應(yīng)答沒有中止,故
此外
交互模擬所用時間為
由引理1和引理2直接可得下列結(jié)論.
定理1在RSA困難性假設(shè)和隨機預(yù)言機模型下,上述方案是能夠抵抗敵手適應(yīng)性存在性不可偽造的.
雙線性對是公認的計算開銷比較大的運算,本文方案基于RSA困難問題,不需要雙線性對,因此效率較高.表1是本文新方案與近年來提出的已知效率較高方案的比較,其中, P、M、E分別用于標(biāo)識雙線性對運算、標(biāo)量乘法運算、指數(shù)運算.
表1 效率比較
比較結(jié)果顯示:本文方案在證書生成和簽名驗證方面是所有方案中最優(yōu)的.雖然在簽名生成方面略差于文獻[14]的短簽名方案,但通常情況下簽名只進行一次,而簽名驗證可能會由不同人在不同時間進行多次,因此簽名驗證的效率更有意義.
我們對本方案進行了實驗仿真測試,運行環(huán)境如下:操作系統(tǒng): Windows 10 專業(yè)版 64位;主板: 華碩 TUF GAMING B550M-PLUS (WI-FI);處理器: AMD Ryzen 5 3500X 6-Core六核;內(nèi)存:16 GB(威剛 DDR4 3 200 MHz). 采用Python語言實現(xiàn)本文簽名方案.
實驗結(jié)果見圖1.結(jié)果表明,本文方案在證書生成、簽名生成、簽名驗證方面非常高效.當(dāng)選取安全參數(shù)1 024位時,對方案進行100次實驗測試,證書生成時間平均僅為0.023 s,簽名生成時間平均僅為0.051 s,簽名驗證時間平均僅為0.029 s. 當(dāng)選取安全參數(shù)2 048位時,對方案進行100次測試,方案證書生成時間平均僅為0.163 s,簽名生成時間平均僅為0.344 s,簽名驗證時間平均僅為0.184 s.
圖1 不同安全參數(shù)方案生成時間
實驗結(jié)果表明:安全參數(shù)1 024位方案是非常高效的,非常適用于帶寬較小的設(shè)備系統(tǒng);安全參數(shù)2 048位的方案非常適用于對安全要求較高的系統(tǒng).
本文基于RSA困難性假設(shè)構(gòu)造了一種全新的基于證書簽名方案,與已有的方案相比,該方案具有明顯的效率優(yōu)勢.下一步將研究將本簽名方案運用到云計算、物聯(lián)網(wǎng)、區(qū)塊鏈等實際的應(yīng)用系統(tǒng)中,為數(shù)字信息系統(tǒng)提供安全性保障.