謝 鳴
(淮北師范大學 網(wǎng)絡(luò)與信息管理中心,安徽 淮北 235000)
為解決傳統(tǒng)公鑰密碼系統(tǒng)中的證書管理問題,Shamir[1]于1984年提出了基于身份加密(Identity-based Encryption,簡稱IBE)的思想,其中用戶的身份是其公鑰,而用戶的私鑰則由私鑰生成器(Private Key Generator,簡稱PKG)產(chǎn)生。近年來,已經(jīng)提出了許多有效的IBE方案[2-5]。但在實際生活中,大多數(shù)在理想模型中被證明是安全的加密方案無法抵抗由側(cè)信道攻擊引起的密鑰泄漏。為形式化側(cè)信道攻擊,密碼研究人員開始研究泄漏模型,特別是持續(xù)泄漏模型[6],在該模型中,敵手能持續(xù)獲取方案的秘密內(nèi)部狀態(tài)信息。抗密鑰泄漏的加密方案最近引起了很多關(guān)注。李繼國[7]等人針對持續(xù)泄漏模型提出了抗持續(xù)泄漏的基于身份廣播加密方案,并基于雙重系統(tǒng)加密技術(shù)證明方案是安全的。周彥偉等人[8]給出了一種新的能抵抗持續(xù)泄漏的IBE方案,在選擇身份安全模型中證明了該方案的安全性。
許多抗泄漏IBE方案只能抵抗選擇明文攻擊(Chosen Plaintext Attack,簡稱CPA)。根據(jù)基于身份的密鑰封裝機制(Identity-based Key Encapsulation Mechanism,簡稱IB-KEM),我們提出了一種抗持續(xù)泄漏的IBE方案,并證明該方案在標準模型中能抵抗選擇密文攻擊(Chosen Ciphertext Attack,簡稱CCA)。該方案中使用了強提取器將封裝的對稱密鑰隨機化,并使用允許泄漏的封裝對稱密鑰對消息進行加密。同時該IBE方案提供了一個私鑰更新算法來容忍持續(xù)泄漏。
根據(jù)定義2以及Goldreich-Levin定理,針對Goldreich-Levin核心謂詞f:GT×{0,1}μ→{0,1},其中μ∈N,有如下引理。
引理1:令A,B,C∈G,u∈{0,1}μ,K=f(T,u),令K'∈{0,1}是隨機選取的。假設(shè)存在一個PPT算法B以不可忽略的優(yōu)勢區(qū)分分布Δ=(D,K,u)和Δrand=(D,K',u),則存在一個PPT算法在輸入D=(g,A,B,C)前提下,以不可忽略的優(yōu)勢計算出T,從而攻破CBDH問題。
定義3:最小熵 一個隨機變量X的最小熵是H∞(X)=-log(maxxP[X=x])。
該框架包含以下五個算法,其中增加了UpdateSK算法來更新私鑰,具體內(nèi)容如下。
初始化算法Setup:輸入安全參數(shù)1λ(λ∈N),產(chǎn)生主公鑰mpk和主私鑰msk。
私鑰生成算法KeyGen:輸入mpk,msk以及身份ID,輸出私鑰skID。
加密算法Enc:輸入mpk,ID以及消息M,返回一個密文C。
解密算法Dec:輸入skID和C,返回M或者終止符⊥。
參照文獻[6-8],形式化定義了一個IBE持續(xù)泄漏安全模型,通過游戲CL-sID-CCA(Continual Leakage,Selective-Identity and Adaptively Chosen Ciphertext Attack)來描述我們的IBE方案能抵抗選擇身份、持續(xù)泄漏和自適應(yīng)選擇密文攻擊。挑戰(zhàn)者Ch創(chuàng)建一個列表Lsk以存儲形式為(ID,skID)的元組,Lsk在游戲初始化時為空。
初始化階段:敵手A把身份ID*發(fā)送給挑戰(zhàn)者Ch。
啟動階段:挑戰(zhàn)者運行Setup算法并返回mpk給A。
第一階段:敵手A能自適應(yīng)地進行以下詢問。
私鑰詢問:針對身份ID(ID≠ID*)的私鑰詢問,挑戰(zhàn)者在列表Lsk中查找元組(ID,skID)。如果不存在,Ch運行KeyGen算法并輸出私鑰skID,并把(ID,skID)添加到列表Lsk中。
泄漏詢問:Ch創(chuàng)建一個包含元組形式為(ID,K,cnt)的列表Lleak,其中K表示用于加密消息的對稱密鑰,cnt∈N是一個計數(shù)器。Lleak在游戲的初始化階段為空。Ch從Lleak中查找(ID,K,cnt),若其不存在,Ch把(ID,K,0)加入列表Lleak中。若該元組存在,Ch判斷是否cnt+li≤l,其中i∈N。若判斷為假,則輸出⊥。否則,對應(yīng)的(ID,K,cnt)中設(shè)置cnt←cnt+li并返回fi(K),其中fi:GT→{0,1}li為泄漏函數(shù)。
解密詢問:給定ID,Ch運行KeyGen算法并輸出私鑰skID。Ch運行Dec算法,使用skID解密密文C,并把明文發(fā)送給A。
挑戰(zhàn)階段:A選取兩個同樣尺寸的消息M0,M1發(fā)送給Ch。Ch隨機選擇一個值β∈{0,1},加密消息Mβ并返回挑戰(zhàn)密文C*=Enc(params,mpk,Mβ,ID*)給A。
第二階段:A繼續(xù)做與第一階段同樣的詢問,但有一個限制,A不允許對(ID*,C*)進行解密詢問。
猜測:A返回猜測β'∈{0,1}。如果β'=β則稱A贏得了該游戲。
下面提出一種新型的抗持續(xù)泄漏IBE方案,我們使用強提取器技術(shù)以及n-bits基于身份密鑰封裝機制(IB-KEM)[9]來構(gòu)造方案。
解密正確性驗證如下:
定理1若CBDH問題是困難的,則提出的方案在敵手A攻擊下是CL-sID-CCA安全的。
游戲3:游戲3和游戲2除了這種情況(K*∈{0,1}nv是隨機選擇的,其中n,v∈N)之外都相同。K'*是均勻隨機的值。由于K*和K'*均是隨機選擇的,故可得Pr[E3]=1/2。
基于CBDH問題,可以推出|Pr[E2]-Pr[E3]|≤negl(λ)。該結(jié)論可以通過混合論證推出。首先定義一系列游戲:游戲(0),…,游戲(n),且游戲(0)和游戲2相同,游戲(n)和游戲3相同。下面判定基于CBDH問題游戲(i)與游戲(i-1)是不可區(qū)分的(其中i∈[1,n])。由于游戲(0)與游戲2相同,則對于i(從1到n),第一個K*的iv比特在游戲(i)中設(shè)置成隨機的,剩下的則和游戲(i-1)中的相同。因此游戲(n)和游戲3相同。令Wi表示在游戲(i)中敵手A輸出β'使得β'=β的情況。假設(shè)|Pr[W0]-Pr[Wn]|=1/poly'(λ)(其中poly'(·)表示一個多項式函數(shù)),即敵手A在游戲(0)的優(yōu)勢(該優(yōu)勢與在游戲(n)中的一致)是不可忽略的,則一定存在一個值i使得|Pr[Wi-1]-Pr[Wi]|=1/poly(λ)成立。
假設(shè)|Pr[W0]-Pr[Wn]|=1/poly'(λ)成立,下面基于CBDH問題構(gòu)造一個算法B用來區(qū)分在引理1中的Δ和Δrand。B輸入挑戰(zhàn)Λ=(D,R,u)(其中R或者是一個{0,1}v中的隨機數(shù)或者是一個由f(T,u)輸出的v比特串),則算法B猜測下標值j∈[1,n]使得|Pr[Wj-1]-Pr[Wj]|=1/poly(λ)的概率至少是1/n,且與敵手A做如下交互。
初始化階段:敵手A發(fā)送挑戰(zhàn)身份ID*。
第一階段:下列諭言詢問是敵手A進行的自適應(yīng)詢問。
泄漏詢問:B創(chuàng)建一個包含元組形式為(ID,K,cnt)的列表Lleak,其中K表示用于加密消息的對稱密鑰,cnt∈N是一個計數(shù)器。Lleak在游戲的初始化階段為空。B從Lleak中查找(ID,K,cnt),若其不存在,B把(ID,K,0)加入列表Lleak中。若該元組存在,B判斷是否cnt+li≤l,其中i∈N。若判斷為假,則輸出⊥。否則,對應(yīng)的(ID,K,cnt)中設(shè)置cnt←cnt+li并返回fi(K),其中fi:GT→{0,1}li為泄漏函數(shù)。
解密詢問:已知〈ID,Ci,1,Ci,2,Ci,3,C4,C5〉,B做如下操作:如果IDID*,B運行KeyGen算法生成私鑰skID,并運行Dec算法使用skID解密密文。
第二階段:A持續(xù)地進行與第一階段相同的詢問,但A不能對(ID*,C*)進行解密詢問。
本文給出了IBE方案的形式化定義和安全模型,構(gòu)造了一個能抵抗持續(xù)泄漏的IBE方案,該方案在標準模型中是CCA安全的。在證明過程中,將IBE方案的安全性規(guī)約到計算雙線性Diffie-Hellman困難問題??剐孤┑拿艽a學方案設(shè)計是一個新的研究方向。我們將進一步研究某些具有更強抗泄漏性能的IBE方案,如隨機數(shù)泄漏,事后泄漏等;另外,基于格困難問題等構(gòu)造安全的IBE方案也是一個值得研究的方向。