为了解决聚合签密方案中存在的密钥泄漏问题,在无限制身份基聚合签密方案的基础上,设计出一个抗身份密钥泄漏所需的身份基哈希证明系统,证明了其解封正确性、合法/非法密文不可区分性、平滑性和普遍性.基于该身份基哈希证明系统,结合随机数提取器,构造了一个抗泄漏的身份基签密方案,并给出了方案的安全证明,结果表明,其身份密钥的泄漏比值可达1-o(1).
In order to solve the problem of secret key leakage in aggregate signcryption, an identity-based hash proof system based on unrestricted identity-based aggregate signcryption scheme is constructed, and its correctness of decapsulation, valid/invalid ciphertext indistinguishability, smoothness and universality are also proved. Then, with the randomness extractor, a leakage resilient identity-based aggregate signcryption scheme is constructed, in which the leakage rate of identity-based secret key can be achieved to 1-o(1). Finally, the security proof of this leakage resilient scheme is also provided.
在实际中,由于侧信道攻击的存在,密钥的泄漏通常无法避免. 因此,弹性泄漏密码学被提出以应对密钥的泄漏问题. 目前已提出的一些主要泄漏模型如下. 1)泄漏受限模型:该模型假设在系统整个运行周期内,密钥或内部状态泄漏的比特数有一个最大阈值[1]. 如果泄漏超过,则希望会被及时发现并中止运行. 2)连续泄漏模型:该模型假设在2个相继的密钥更新时间段内,密钥泄漏的比特数是有限的,密钥需要定期的更新,这样可承受连续的泄漏[2]. 3)辅助输入模型:由相对泄漏模型发展而来,它允许攻击者拥有一类不可逆的辅助输入函数去模拟多种泄漏的情况[3-4].
签密方案首先由Zheng[5]提出,它将签名和加密放在一个逻辑步中执行,降低了计算代价. Zheng方案之后,有许多基于公钥体制的签密方案[6-7]被提出. 身份基密码学首先由Shamir[8]提出,它以用户的身份做公钥,克服了传统公钥体制需要建立公钥基础设施的代价. Chow等[9]提出了身份基签密方案,既实现了公开验证性,又实现了前向安全性.
由于许多应用场景中对通信带宽有限制,聚合密码体制成为了密码学中的研究热点. 许多身份基的聚合签密方案[10-11]被提出,但都是有限制条件的聚合. 最近,Wang等[12]基于分层多线性映射提出了一个无限制条件的身份基聚合签密方案,并给出了不可伪造性(针对签名部分)和机密性(针对加密部分)的安全性证明.
笔者的主要贡献在于将Wang方案[12]改进为一个抗身份密钥泄漏的身份基聚合签密方案. 抗泄漏改进使用了身份基哈希证明系统方法[1]. 笔者提出的基于Wang方案的身份基哈希证明系统,具有解封正确性、合法/非法密文的不可区分性、平滑性和普遍性.
1 预备知识下面将介绍方案和安全证明相关的分层多线性映射、随机数提取器和身份基哈希证明系统.
1.1 分层多线性映射仅对分层多线性映射[13-14]作基本的介绍,假设存在一个群的生成器,输入安全参数1λ和指示群个数的正整数k,输出具有大素数阶p>1λ的群序列G=(G1,…,Gk),其中gi为群Gi的生成元(i∈[1,k]). 令g=g1. 存在一个双线性映射集合{ei,j:Gi×Gj→Gi+j|i,j≥1;i+j≤k},且映射ei,j满足关系ei,j(gia,gjb)=gi+jab:$\forall $a,b∈Zp. 为简单起见,删去映射ei,j的下标,直接写为e(gia,gjb)=gi+jab.
假设 1 多线性计算性Diffie-Hellman(k-MCDH,k-multilinear computational Diffie-Hellman)[12] 挑战者运行多线性群生成器G(1λ,k),获得p阶群序列和生成元. 然后,它随机选取(c1,…,ck+1)∈Zp. 在给定g=g1;gc1,…,gck+1后,任何多项式时间算法计算出$\underset{g_{k}^{j\in \left[ 1,k+1 \right]}}{\mathop{\prod }}\,{{c}_{j}}$的概率都是可忽略的.
假设 2 多线性确定性Diffie-Hellman(k-MCDH,k-multilinear certain Diffie-Hellman)[15] 挑战者运行多线性群生成器G(1λ,k),获得p阶群序列和生成元. 然后,它随机选取(c1,…,ck+1)∈Zp. 在给定g=g1;gc1,…,gck+1后,任何多项式时间算法区分$\underset{g_{k}^{j\in \left[ 1,k+1 \right]}}{\mathop{\prod }}\,{{c}_{j}}$和任意Gk中元素的概率都是可忽略的.
1.2 随机数提取器令$D\left( X,Y \right)=\frac{1}{2}\sum\limits_{x\in \Omega }{\left| \Pr ~\left[ X=x \right]\Pr ~\left[ Y=x \right] \right|}$表示变量X,Y在域Ω上的统计距离. 变量X的最小熵定义为${{H}_{\infty }}\left( X \right)=-\log ~(\underset{x\in \Omega }{\mathop{\max }}\,~\Pr ~\left[ X=x \right])$. X对Y的平均条件最小熵为${{{\tilde{H}}}_{\infty }}\left( X|Y \right)=-\log ~({{E}_{y\leftarrow Y}}[{{2}^{-{{H}_{\infty }}(X|Y=y)}}])$,具有如下性质.
引理 1 令X,Y,Z为随机变量,且Y有2r个可能值,则${{{\tilde{H}}}_{\infty }}\left( X|Y,Z \right)\ge {{{\tilde{H}}}_{\infty }}\left( X|Z \right)-r$.
定义 1 (随机数提取器)称一个有效的随机函数Ext:X×S→Y为(Φ,ε)提取器,当随机变量对(X,Z)满足X∈X和${{{\tilde{H}}}_{\infty }}\left( X|Z \right)\ge \phi $,且有
$D((Z,s,\text{Ext}\left( X,s \right)),(Z,s,{{U}_{v}}))\le \varepsilon ~$ |
其中:s(随机种子)随机取自S,Uv随机取自Y.
1.3 身份基哈希证明系统身份基哈希证明系统(ID-HPS,identification-Hash proof system)[1]由5个概率多项式时间(PPT,probabilistic polynomial time)算法组成,分别为参数建立、密钥生成、封装、伪封装和解封装.
1) 参数建立Setup(1λ). 该算法输入安全参数1λ,输出系统公钥MP和系统私钥MS. MP中定义了身份集合ID和封装密钥集合K.
2) 密钥生成KeyGen(I,MS). 对于任意的身份I∈ID,该算法利用MS计算出身份密钥KI.
3) 封装Encap(I). 该算法输入一个身份I,输出一个合法的密文c和一个封装密钥k∈K.
4) 伪封装Encap*(I). 该算法输入一个身份I,输出一个非法的密文c.
5) 解封装Decap(c,KI). 这是一个确定性算法,输入密文c和身份密钥KI,输出封装密钥k.
ID-HPS需要满足3个性质[1],即解封装的正确性、合法/非法密文的不可区分性、普遍性和平滑性.
2 基于Wang方案的身份基哈希证明系统 2.1 Wang方案[12]Wang方案包含参数建立算法、私钥提取算法、签密算法、聚合算法和解签密算法.
1) 参数建立Setup(1λ,n). 给定l比特长度的信息和n比特长度的身份信息,输入安全参数1λ,身份基系统的权威机构(PKG,private key generator)将运行多线性群生成器G(1λ,k=n+l),输出具有大素数阶p>1λ的群序列G=(G1,…,Gk),且gi为群Gi的生成元(i∈[1,k]),令g=g1. 选取随机元素组(A1,0=ga1,0,A1,1=ga1,1),…,(Al,0=gal,0,Al,1=gal,1)∈G12,同时选取随机指数(b1,0,b1,1),…,(bn,0,bn,1)∈Zp2,且令Bi,β=gbi,β,其中i∈[1,n],β∈{0,1}. 定义2个哈希函数H(I,M):{0,1}n×{0,1}l→Gk和${\tilde{H}}$:(I):{0,1}n→Gn. 用m1,…,ml表示信息M的每一个比特位,用i1,…,il表示身份信息I的每一个比特位. 进行迭代计算为
${{{\bar{H}}}_{1}}\left( I,M \right)={{{\tilde{H}}}_{1}}\left( I \right)={{B}_{1,{{i}_{1}}}}$ |
对于i∈[2,n],有
$\begin{align} & {{{\bar{H}}}_{i}}\left( I,M \right)=e({{{\bar{H}}}_{i-1}}\left( I,M \right),{{B}_{i,{{i}_{i}}}}) \\ & \tilde{H}\left( I \right)=e({{{\tilde{H}}}_{i-1}}\left( I \right),{{B}_{i,{{i}_{i}}}})~ \\ \end{align}$ |
对于i∈[n+1,n+l=k],有
${{{\bar{H}}}_{i}}\left( I,M \right)=e({{{\bar{H}}}_{i-1}}\left( I,M \right),{{A}_{i-n,{{m}_{i-n}}}})~$ |
令
$\bar{H}\left( I,m \right)={{{\bar{H}}}_{k=n+l}}\left( I,M \right)\tilde{H}\left( I \right)={{{\tilde{H}}}_{n}}\left( I \right)$ |
设置一个随机数生成器ext,该生成器可从Gk中产生均匀分布的l比特长度的数,即ext:Gk→{0,1}l.
输出的公共参数P包含群序列为(A1,0,A1,1),…,(Al,0,Al,1),(b1,0,b1,1),…,(bn,0,bn,1),ext,主私钥MS包含P和(b1,0,b1,1),…,(bn,0,bn,1).
2) 密钥生成KeyGen(I,MS). 输入MS,I∈{1,n}n,输出对应身份信息I的私钥${{K}_{I}}=\underset{g_{n-1}^{j\in \left[ 1,n \right]}}{\mathop{\prod }}\,{{b}_{j,{{i}_{j}}}}~\in {{G}_{n-1}}$.
3) 签密SignCrypt(M,KI). 输入为Mi=(Mi,1,…,Mi,l),IR=(iR,1,…,iR,l),Ii=(ii,1,…,ii,l),KI和P. 取临时变量Di,0=KIi,随机取一个数ti∈Zp,对j∈[1,l],计算为
${{D}_{i,j}}=e({{D}_{j-1}},{{A}_{j,{{m}_{i,j}}}})\in {{G}_{n-1+i}}~$ |
输出的签密为σi=(σi,0,σi,1,σi,2),其中
$\begin{align} & {{\sigma }_{i,0}}=\text{Ext}(e(\hat{H}({{I}_{R}}),g_{l}^{{{t}_{i}}}))\oplus {{M}_{i}}\text{,}{{\sigma }_{i,1}}=g_{l}^{{{t}_{i}}}+1 \\ & {{\sigma }_{i,2}}={{D}_{l}}=({{g}_{k-1}})\prod\limits_{j\in [1,n]}{{{b}_{j,{{i}_{i}},j}}}\underset{j\in \left[ 1,n \right]}{\mathop{\prod }}\,{{a}_{i,{{m}_{i,j}}}} \\ & \\ \end{align}$ |
聚合签密Aggregate-SignCrypt(P,Sx,Sy,σx,σy)输入P、Sx、Sy、σx、σy,输出
${{\sigma }_{z}}=({{\sigma }_{x,0}}||{{\sigma }_{y,0}},{{\sigma }_{x,1}}||{{\sigma }_{y,1}},{{\sigma }_{x,2}}{{\sigma }_{y,2}}){{S}_{z}}={{S}_{x}}\cup {{S}_{y}}$ |
其中:‖为连接符号,∪为并集.
解签密DeSignCrypt(P,KIR,S,σ) 输入为
$\begin{align} & P,{{K}_{{{I}_{R}}}}S=\{{{I}_{1}},\ldots ,{{I}_{|S|}}\} \\ & \sigma =\{{{\sigma }_{{{I}_{1}},0}}\|\ldots \|{{\sigma }_{{{I}_{\left| S \right|}}}},0,{{\sigma }_{{{I}_{1}},1}}\|\ldots \|{{\sigma }_{{{I}_{_{\left| S \right|}}}}},1,{{\sigma }_{2}}\}~ \\ \end{align}$ |
对于每个i∈{1,…,|S|},计算为
${{M}_{i}}={{\sigma }_{{{I}_{i}},0}}\oplus \text{Ext}(e({{K}_{{{I}_{R}}}},{{\sigma }_{{{I}_{i}},1}}))~$ |
检查
$e({{\sigma }_{2}},g)=\prod\limits_{i=1,\ldots ,\left| s \right|}{\bar{H}({{I}_{i}},{{M}_{i}})}$ |
是否成立. 如果验证通过,那么按照上面的计算结果输出{Ii,Mi};否则,判定“无效”.
2.2 身份基哈希证明系统参数建立Setup(1λ,n) 参数建立算法由PKG运行,输入安全参数1λ和身份的长度n比特. 算法首先运行多线性群生成器G(1λ,k=n+l),输出具有大素数阶p>1λ的群序列G=(G1,…,Gk),且gi为群Gi的生成元(i∈[1,k]),令g=g1. 接下来,算法选择随机指数(b1,0,b1,1),…,(bn,0,bn,1)∈Zp,并设置Bi,β=gbi,β(i∈[1,n]且β∈{0,1}). 然后,算法定义一个函数$\tilde{H}\left( I \right):{{\left\{ 0,1 \right\}}^{n}}\to {{G}_{n}}$. 令I1,…,In表示身份I的各比特. 递归计算$\tilde{H}\left( I \right)$函数的方法为
1) ${{{\tilde{H}}}_{1}}\left( I \right)={{B}_{1,{{I}_{1}}}}$
2) 递归计算${{{\tilde{H}}}_{i}}\left( I \right)=e({{{\tilde{H}}}_{i-1}}\left( I \right),{{B}_{i,{{I}_{i}}}})i\in \left[ 2,n \right]$
3) $\tilde{H}\left( I \right)={{{\tilde{H}}}_{n}}\left( I \right)$)
系统公钥MP包括群序列的定义和(B1,0,B1,1),…, (Bn,0,n,1). 系统私钥MP为(b1,0,b1,1),…,(bn,0,bn,1).
密钥生成KeyGen(I,MS) 该算法由PKG执行,利用系统私钥MS,对身份I输出身份密钥${{K}_{I}}=\underset{g_{n-1}^{j\in \left[ 1,n \right]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}\in {{G}_{n-1}}$.
封装Encap(I) 该算法随机选择t∈Zp,输出密文c=(u,v)=(${\tilde{H}}$(I)t,g2t2)和封装密钥k=e(${\tilde{H}}$(I)t,gt).
伪封装Encap*(I) 该算法随机选择t,t′∈Zp,满足t′≠t,输出密文c=(u,v)=(${\tilde{H}}$(I)t,g2t′2).
解封装Decap(c,KI) 该算法输入密文c=(u,v)和身份密钥KI,输出封装密钥k=e(KI,v).
从上述ID-HPS可得
1) 身份密钥的熵为
$m=\log \left( p \right)$ |
其中:椭圆曲线群上的元素被表示的二进制串的值不会超过群的阶.
2) 封装密钥的长度为
$\mu =\log ~(|{{G}_{n+1}}|)=\log ~\left( p \right)~$ |
下面,证明该ID-HPS满足3个性质.
1) 解封装的正确性
如果(c,k)是由封装算法Encap(I)正确产生,则$c=\left( u,v \right)=\left( \tilde{H}{{\left( I \right)}^{t}},g_{2}^{{{t}^{2}}} \right)$,$k=e\left( \tilde{H}{{\left( I \right)}^{t}},{{g}^{t}} \right)=\underset{g_{n+1}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,I_{j}^{{{t}^{2}}}}}$,因为$\tilde{H}\left( I \right)=\underset{g_{n}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}$. 在这种情况下,解封装算法Decap(c,KI)也能解出正确的封装密钥k,因为
$\begin{align} & \text{Decap}(c,{{K}_{I}})=e(v,{{K}_{I}})= \\ & e\left( g_{2}^{{{t}^{2}}}\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}} \right)=\underset{g_{n+1}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,I_{j}^{{{t}^{2}}}}}=k \\ \end{align}$ |
2) 合法/非法密文的不可区分性
定理 1 上述ID-HPS的合法/非法密文不可区分性(选择安全)依赖于确定性n-1-MCDH假设.
证明 如果存在具备区分合法/非法密文的PPT攻击者A,则一定能构造出一个挑战者e解决确定性n-1-MCDH假设. e输入确定性n-1-MCDH假设的实例(g,gc1,…,gcn,Z). e的目标为当$Z=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{c}_{j}}$时,输出1;当Z为Gn-1上的随机元素时,输出0. 攻击者A首先给出挑战身份I*=(I*1,…,In*),挑战者e选择安全性游戏如下.
建立 挑战者e选择随机指数b1,…,bn∈Zp,并设置$({{B}_{i,{{I}^{*}}_{i}}}={{g}^{{{c}_{i}}}},{{B}_{i,1-{{I}^{*}}_{i}}}={{g}^{{{b}_{i}}}})\left( i\in \left[ 1,n \right] \right)$. 然后,e将多线性群序列的定义和(B1,0,B1,1),…,(Bn,0,n,1)作为系统公钥发送给A.
查询 1 针对A关于身份I的密钥查询,e维护一个三元组列表T=(i,I,KI),i为查询索引. 如果I=I*,e对Bj,Ij值进行n-2次多线性配对运算,得到$\alpha =\underset{g_{n-1}^{j\in [1,n-1]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}\text{ }$,再随机选择κ∈Zp,记录(i,I*,ακ)至T,并返回ακ. 否则I≠I*,令第β位为I≠I*的第1个比特,即Iβ≠Iβ*,对Bj,Ij值进行n-2次多线性配对运算,得到$S=\underset{g_{n-1}^{j\in [1,n]\wedge j\ne \beta }}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}$,然后计算${{K}_{I}}={{S}^{{{b}_{\beta }}}}=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}$. e记录(i,I,KI)至T,并返回KI.
挑战 挑战者e对挑战身份I*输出密文c=(u,v)为
$u=e(Z,{{g}^{\kappa }}),v=e({{g}^{{{c}_{n}}}},{{g}^{{{c}_{n}}}})=g_{2}^{c_{n}^{2}}$ |
查询 2 A继续对身份I进行密钥查询,e应答如查询1.
输出 如果A输出b′=1(表示挑战密文是合法的),则e也输出b=1(表示$Z=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{c}_{j}}$);否则A输出b′=0(表示挑战密文是非法的),则e也输出b=0(表示Z为Gn-1中随机元素).
分析 因为$\tilde{H}({{I}^{*}})=\underset{g_{n}^{j\in [1,n-1]}}{\mathop{\prod }}\,{{c}_{j}}\kappa $,所以当$Z=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,c$时,$u=e(Z,{{g}^{\kappa }})=\tilde{H}{{({{I}^{*}})}^{{{c}_{n}}}}$,即t=cn,又因为$v=g_{2}^{c_{n}^{2}}=g_{2}^{{{t}^{2}}}$,因此在攻击者A看来,此时的c=(u,v)为合法密文;当Z为随机元素时,则$u=e(Z,{{g}^{\kappa }})=\tilde{H}{{({{I}^{*}})}^{t}}$,此时的t是随机的,且独立于v中的t′,因此在攻击者A看来,此时的c=(u,v)为非法密文. 所以当A能判定合法/非法密文时,e也能利用这个结果判定$Z=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{c}_{j}}$是否成立. 因此,该ID-HPS的合法/非法密文不可区分性依赖于确定性n-1-MCDH假设,定理1得证.
3) 平滑性和普遍性
假设密文c为伪封装算法Encap*(I)输出,即$c=\left( u,v \right)=(\tilde{H}{{\left( I \right)}^{t}},g_{2}^{{{{{t}'}}^{2}}}$,此时t′≠t,则对于身份密钥${{K}_{I}}=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,{{b}_{j,{{I}_{j}}}}$,此时的封装密钥$k\prime =\text{Decap}(c,{{K}_{I}})=e(v,{{K}_{I}})=\underset{g_{n-1}^{j\in [1,n]}}{\mathop{\prod }}\,c_{j}^{{{{{t}'}}^{2}}}$与$k=e(\tilde{H}{{\left( I \right)}^{t}},{{g}^{t}})$相互独立. 因此,该ID-HPS具有平滑性. 但是由于身份密钥的熵m和封装密钥的长度μ相等,其可泄漏的比特数l≤0,因此不具备泄漏平滑性.
从解封装算法可以看出,如果Decap(c,KI)=Decap(c,$K_{I}^{'}$),且KI,$K_{I}^{'}$为2个合法的身份密钥,则一定有KI=$K_{I}^{'}$. 所以,该ID-HPS具有普遍性.
3 抗泄漏的身份基聚合签密方案在Wang方案[12]中,签密的形式为σ=(σ0,σ1,σ2),其中σ0,σ1为有关加密的部分,σ2为有关签名的部分. 在抗泄漏方案中,不改变关于签名σ2部分的生成和验证方法,也不改变聚合算法,仅对有关加密部分σ0,σ1的生成和解密进行改进. 笔者的改进是基于第3节的ID-HPS,但它不具备泄漏平滑性. 可加入随机数提取器以实现泄漏平滑性.
下面仅对加密部分的σ0、σ1生成和解密进行描述,其余σ2部分和聚合算法与Wang方案[12]类似,不再赘述. 假设明文为M∈{0,1}v,其余c,KI,k等符号与第3节相同,令随机函数Ext:K×{0,1}d→{0,1}v为(logp-l,ε)提取器.
σ0,σ1的生成 首先用封装算法Encap(I)生成c和k,然后选择随机种子s
σ0,σ1的解密 首先分开σ1=(c,s),用解封装算法Decap(c,KI)得到k,然后解密计算M=Ext(k,s)$\oplus $σ0.
注意 伪封装算法并未用于构造中,只用在安全性证明中.
定理2 如果ID-HPS为泄漏平滑的,则上述构造产生抗身份密钥泄漏的身份基聚合签密方案.
证明 首先,解密的正确性依赖于解封装的正确性. 通过Game序列证明定理2.
Game 0 这是具有泄漏语义安全的初始游戏. 在挑战阶段,挑战者对I*,Mb用签密算法计算出σ=(σ0,σ1,σ2),其中σ2按正常签名算法计算,σ0,σ1的生成如下. 首先用封装算法Encap(I*)生成c和k,然后选择随机种子s∈{0,1}d计算c=Ext(k,s)$\oplus $Mb,最后输出σ0=c,σ1=(c,s).
Game 1 对挑战阶段作修改,挑战者将用身份密钥KI*,利用解封装算法计算封装密钥为
$\begin{align} & (c,{{k}_{1}})\leftarrow \text{Encap}({{I}^{*}}){{k}_{2}}\leftarrow \text{Decap}(c,{{K}_{{{I}^{*}}}}) \\ & c=\text{Ext}({{k}_{2}},s)\oplus {{M}_{b}} \\ \end{align}$ |
最后输出σ0=c,σ1=(c,s).Game 1和Game 0为不可区分的,因为在第3节中,证明了解封装的正确性,因此k1=k2.
Game 2 继续对挑战阶段进行修改,挑战者将伪封装算法产生为
$\begin{align} & c\leftarrow \text{Emca}{{\text{p}}^{*}}({{I}^{*}}){{k}_{2}}\leftarrow \text{Decap}(c,{{K}_{{{I}^{*}}}}) \\ & c=\text{Ext}({{k}_{2}},s)\oplus {{M}_{b}} \\ \end{align}$ |
最后输出σ0=c,σ1=(c,s).Game 2和Game 1为计算不可区分的,因为在第3节中,证明了合法/非法密文的不可区分性.
Game 3 在此游戏中,挑战密文中的c将随机产生为
$c\leftarrow \text{Emca}{{\text{p}}^{*}}({{I}^{*}})c\leftarrow {{\left\{ 0,1 \right\}}^{v}}$ |
由于加入了(log p-l,ε)随机数提取器后,ID-HPS具有l-泄漏平滑性,因此Game 3和Game 2为统计不可区分的. 原因为,在Game 2中和KI*相关的只有l泄漏比特(f(KI*)的输出)和解封装算法产生的k2←Decap(c,KI*),由于具有l-泄漏平滑性,Game 2中的k2和Game 3中随机独立选取的k2为统计不可区分的.
综上,从Game 0到Game 3都为不可区分的,且在Game 3中,攻击者胜出的优势几乎为0,因为挑战密文已变得随机,独立于挑战者的选择b. 因此,在Game 0中的攻击者获胜的优势也为可忽略的,所以定理2得证.
泄漏比值分析 因为随机函数Ext:K×{0,1}d→{0,1}v为(log p-l,ε)提取器,所以可泄漏的比特数l=log p-v,而身份密钥的总长度为log p. 因此,如表 1所示,泄漏比值为$\frac{l}{\log p}=\frac{\log p-v}{\log p}=1-\frac{v}{\log p}$,当v相对于log p尽可能小时,泄漏比值为1-o(1).
性能分析 n和v分别为明文信息M和身份信息I转换为二进制比特串后的位数,P为1次配对运算的时间代价,G为群Gi上幂运算的时间代价. |G|为gi的位数,s为聚合签密的聚合度. 在加密性能和解密性能的分析中,只计算了配对运算的时间代价,因为相比其他运算,配对运算的时间代价是非常大的. 从表 2可以看出,2方案的加密、解密性能一致,而密文长度笔者方案比较大,这是增加了抗身份密钥泄漏的属性而导致的.
构造ID-HPS是构造抗泄漏身份基密码体制的有效方法. 笔者基于Wang等[12]提出了无限制的身份基聚合签密方案,构造了一个具有合法/非法密文不可区分性、平滑性和普遍性的ID-HPS. 在此基础上,笔者引入了随机数提取器,对Wang方案的加密部分作了改进,使之成为抗身份密钥泄漏的方案,其泄漏比值可达1-o(1). 笔者还利用提出的ID-HPS的3个性质,给出了抗泄漏方案的安全证明.
[1] | Alwen J, Dodis Y, Naor M, et al. Public-key encryption in the bounded-retrieval model[C]//Advances in Cryptology-CRYPTO 2009. Springer-Verlag, LNCS 6110, 2010: 36-54. |
[2] | Dodis Y, Haralambiev K, Lopez-Alt A, et al. Cryptography against continuous memory attacks[C]//IEEE 54th Annual Symposium on Foundations of Computer Science, Las Vegas, Nevada, USA, 2010: 511-520. |
[3] | Dodis Y, Goldwasser S, Kalai Y T, et al. Public-key encryption schemes with auxiliary inputs[C]//International Conference on Theory of Cryptography. Springer-Verlag, LNCS 5978, 2010: 361-381. |
[4] | Yuen T H, Chow S S M, Zhang Ye, et al. Identity-based encryption resilient to continual auxiliary leakage[C]//International Conference on Theory and Applications of Cryptographic Techniques. Springer-Verlag, LNCS 7237, 2012: 117-134. |
[5] | Zheng Yuliang. Digital signcryption or how to achieve cost (signature and encryption) ﹤﹤cost (signature)+cost (encryption)[C]//Advances in Cryptology-CRYPTO 1999. Springer-Verlag, LNCS 1294, 1997: 165-179. |
[6] | Baek J, Steinfeld R, Zheng Yuliang. Formal proofs for the security of signcryption[J]. Journal of Cryptology , 2002, 20 (2) :80–98. |
[7] | Hwang Renjunn, Lai Chihhua, Su Fengfu. An efficient signcryption scheme with forward secrecy based on elliptic curve[J]. Applied Mathematics and Computation , 2005, 167 (2) :870–881. doi:10.1016/j.amc.2004.06.124 |
[8] | Shamir A. Identity-based cryptosystems and signature schemes[C]//Advances in Cryptology-CRYPTO 1999. Springer-Verlag, LNCS 196, 2000: 47-53. |
[9] | Chow S S M, Yiu S M, Hui L C K, et al. Efficient forward and provably secure ID-based signcryption scheme with public verifiability and public ciphertext authenticity[C]//International Conference on Information Security and Cryptology 2003. Springer-Verlag, LNCS 2971, 2003: 352-369. |
[10] | Selvi S S D, Vivek S S, Shriram J, et al. Identity based aggregate signcryption schemes[C]//Progress in Cryptology-Indocrypt 2009, International Conference on Cryptology in India, New Delhi, India, 2009. Springer-Verlag, LNCS 5922, 2009: 378-397. |
[11] | Kar J. Provably secure identity-based aggregate signcryption scheme in random oracles[J]. International Journal of Network Security , 2015, 17 (5) :580–587. |
[12] | Wang Hao, Liu Zhen, Liu Zhe. Unrestricted identity-based aggregate signcryption in the standard model from multilinear maps[J]. Frontier of Computer Science , 2016, 10 (4) :741–754. doi:10.1007/s11704-015-5138-2 |
[13] | Garg S, Gentry C, Halevi S. Candidate multilinear maps from ideal lattices[C]//Advances in Cryptology-EUROCRYPT 2013. Springer-Verlag, LNCS 7881, 2013: 1-17. |
[14] | Freire E S V, Hofheinz D, Paterson K G, et al. Programmable Hash functions in the multilinear setting[C]//Advances in Cryptology-CRYPTO 2013. Springer-Verlag, LNCS 8042, 2013: 513-530. |
[15] | Dodis Y, Reyzin L. Fuzzy extractors: how to generate strong keys from biometrics and other noisy data[C]//Advances in Cryptology-EUROCRYPT 2004. Springer-Verlag, LNCS 3027, 2004: 97-139. |