当前位置:文档之家› BGN-型类同态 IBE 方案的构造与分析

BGN-型类同态 IBE 方案的构造与分析

BGN-型类同态 IBE 方案的构造与分析戴晓明;张薇;郑志恒【摘要】基于身份的公钥密码体制(IBE)与传统的公钥密码体制不同,在 IBE 中用户公钥是与用户身份相关的可识别的一串字符,这就为加密后的数据提供了更灵活的访问控制。

BGN 是2005年提出的一种类同态加密方案,该方案能对密文进行任意次加法和一次乘法运算,但是并不是一种 IBE 方案。

为得到类同态的 IBE 方案,以满足网络中对身份类加密体制的需求,在 BGN 方案的基础上,基于二次剩余假设和子群判定问题构造了一种新的具有类同态性质的 IBSHE 加密方案,在随机预言机模型下证明了该方案的 CPA 安全性。

%Since the identity-based public key encryption(IBE)is different from traditional public key encryption,the public key in IBE is a string of characters which is related to the identity of the user,thus it provides the encrypteddata with a more flexible access control.BGN is a homomorphic encryption scheme proposed in 2005,which is able to do arbitrary additions and one multiplication to the encrypted message, but it is not an IBE scheme still.On the basis of the BGN scheme,a new homomorphic IBSHE scheme based on quadratic residue and subgroup decisional problemis constructedto obtain a homomorphic IBE scheme which satisfies the demand of identity-based encryptionscheme in network.Also,the CPA security of the scheme is proved by random oracle model.【期刊名称】《计算机应用与软件》【年(卷),期】2016(033)009【总页数】4页(P310-312,319)【关键词】同态加密;基于身份的加密;双线性映射;二次剩余问题;子群判定问题【作者】戴晓明;张薇;郑志恒【作者单位】武警工程大学信息安全保密重点实验室陕西西安 710086;武警工程大学信息安全保密重点实验室陕西西安 710086;武警工程大学信息安全保密重点实验室陕西西安 710086【正文语种】中文【中图分类】TP3加密体制的同态性已成为新型密码体制的一个重要设计目标。

具有同态性质的加密方案允许在服务器端直接对密文进行运算,用户只需对返回的密文结果解密即可,所以同态密码在保证数据安全性的同时,能显著降低数据服务的通信量及运算量。

因而将同态加密与具体应用相结合,借鉴成熟的数学工具,构造满足实际应用需要的高效的新型同态加密方案,深入研究同态加密体制在具体场合的应用,并构造相关的应用协议,具有十分重要的理论和实践意义。

1995年,Benaloh[1]提出了一种支持有限次加法操作的密码体制,这是第一个以同态性为设计目标的公钥密码,随后产生的各种同态加密方案都只支持加法操作。

直到2005年,Boneh等[2]提出了BGN方案,该方案可对密文做一次乘法和任意多次加法运算,是自同态加密被提出以来的首个类同态加密方案,方案被证明在密文不可区分的选择明文攻击下(Ciphertext indistinguishability under chosen plaintext attacks:IND-CPA)安全。

2010年,Gentry等在格上实现了BGN方案[3]。

2009年,Gentry[4]开创性地利用自举和压缩的构造方法,提出了一个基于理想格的全同态加密方案。

2010年,Dijk等[5]利用Gentry的构造方法构造了整数上的全同态加密方案DGHV,该方案使用了成熟的困难问题,所以成为第一个被广泛认为安全的全同态方案。

此后相继诞生了几个全同态加密方案[6-9],但这些全同态加密方案实现起来都非常复杂,效率很低,并不实用。

2013年,Gentry 等人[10]基于LWE问题,利用近似特征值方法提出了一个新的全同态加密方案,一定程度上简化了全同态加密的实现,但与实际应用还存在不小的差距。

1984年,Shamir[11]提出了基于身份的公钥密码体制,用户公钥是与用户身份相关的可识别的一串字符,这就为加密后的数据提供了更灵活的访问控制。

2001年,Cocks[12]基于二次剩余假设提出了第一个较为实用的IBE方案。

随后基于身份加密方案的应用和研究广泛开展,研究人员利用椭圆曲线上的双线性对和多线性对设计出了其他的IBE方案[13-15]。

2014年,Ducas等人[16]利用NTRU格上的特殊分布提出了第一个基于格的IBE方案,并将密钥和密文大小控制在2~4 kbs,使得该方案较为实用。

2013年,Clear等人[17]基于Cocks的IBE方案构造了一个具有加法同态性质的IBE方案(XOR-Homomorphic IBE)。

由于该方案只实现了加法同态性质,所以并不能同时满足乘法同态的运算要求,很大程度上限制了IBE方案的功能。

2014年,Clear等人[18]又提出了一个自举的全同态IBFHE方案,并能扩展应用到属性基加密(ABFHE方案),但由于全同态的引入,不可避免的造成了计算复杂度太高。

为了实现IBE方案同态性质上的改进,同时考虑到全同态加密实现上的复杂性,本文选择了效率更高的类同态加密方案。

将文献[12]中的IBE方案与文献[2]中的类同态加密方案结合,构造了一个新的具有类同态性质的IBSHE方案,分别论证了该方案能满足对密文进行任意多次加法运算和一次乘法运算,并在随机预言机模型下证明了该方案的安全性。

1.1 同态加密同态加密方案含有四个算法:密钥生成算法(Keygen)、加密算法(Encrypt)、解密算法(Decrypt)和密文计算算法(Evaluate)。

其中前三个算法提供加密和解密功能,密文计算算法是同态加密方案的核心所在,因为同态的目的就是要实现对密文的直接计算。

将同态性质描述如下:1) 生成系统参数和公私钥,Gen(1λ)→(pk,sk),∀c∈C,∀m1,…,mt∈M。

2) 运用同态加密对明文进行加密运算,得到相应密文:3) 密文计算算法对电路C(电路C代表一个函数或者一个功能)上输入的一组密文c=(c1,…,ci)(其中ci←encrypt(mi))进行计算。

4) 解密算法对计算后的密文解密,得到与对明文作相应运算的结果相同的解密结果:1.2 双线性映射G、G1是由大素数p生成的循环群,p为生成元,阶都为素数p,若群G、G1中的离散对数问题均为困难问题,则所定义的双线性映射e:G×G→G1满足的性质为:1) 双线性性对任意的a,b∈Zq和g1,g2∈G,都有。

2) 非退化性存在g1,g2∈G,使得e(g1,g2)≠1。

3) 可计算性存在有效的算法使得对任意g1,g2∈G,可以计算出e(g1,g2)。

满足以上条件的双线性映射e可以利用有限域上的超奇异椭圆曲线中的Weil对或Tate对构造出来。

1.3 子群判定问题定义算法Φ,给定安全参数τ∈Z+,运行Φ(τ)生成五元组(〗q1,q2,G,G1,e),其中群G,G1具有相同的阶n=q1q2,e:G×G→G1是双线性映射。

输入τ,算法Φ运行如下:1) 生成两个随机的τ-bits素数q1,q2,并计算n=q1q2;2) 生成如1.2节所述具有双线性映射的群G,G1,g是群G的一个元素,且有双线性映射e:G×G→G1;3) 输出(q1,q2,G,G1,e)。

子群判定问题是指:给定(n,G,G1,e)和一个元素x∈G,如果x的阶是q1则输出‘1’,否则输出‘0’。

上述问题也可以描述为:在群的阶n的因子分解未知的情况下,判定一个元素x是否属于G的一个子群。

对于攻击算法S,解决子群判定问题的优势SD-AdvS(τ)可以定义如下:定义1 如果一个多项式时间算法S的优势SD-AdvS(τ)可忽略,则Φ满足子群判定假设。

1.4 二次剩余问题设p是一个奇素数,p不整除a,如果同余方程x2≡a(modp)有解,则称a为模p 的二次剩余,否则称a为模p的二次非剩余。

将二次剩余的集合记作QR(p)。

令N=pq,其中p、q均为素数,x∈Z,将定义为Jacobi符号,Jacobi符号取值为+1的x的集合记作ZN[+1](取值为-1的x的集合记作ZN[-1]),二次剩余困难问题就是给出输入(N,x∈ZN[+1]),判定x∈QR(N)是否成立,这是数论中的一个经典困难问题。

2.1 加解密算法基于文献[12]中提出的IBE方案与文献[2]中提出的类同态加密方案的思想,本文提出了一个具有类同态性质的IBSHE方案。

该方案包括四个算法:Setup,KeyGen,Encrypt,Decrypt。

Setup(1λ)→PK,MSK:算法输入安全参数λ,根据参数λ输出系统的公钥参数PK 和系统的主密钥MSK。

随机选择大素数p,q,使p,q满足条件p≡q≡3(mod4),计算合数N=pq,运行1.3节给定的算法£(λ)生成元组(p,q,G,G1,e),其中群G、G1具有相同的阶N=pq,群G,G1满足双线性映射e:G×G→G1。

在G中随机选择元素g、u,令h=uq。

得到系统的公钥参数为:PK=(N,G,G1,e,g,h)。

系统的主私钥为:MSK=(p,q)。

KeyGen(PK,MSK,id,τ)→SKid:算法输入用户的id,公钥参数PK以及系统的主私钥MSK,输出用户私钥SKid。

算法计算:对用户id取哈西值a(其中a满足性质,计算满足性质r2≡a(modN)或r2≡-a(modN)。

所以,最终得到的用户私钥为:SKid=(id,r,p)。

Encrypt(PK,id,m)→ψ:算法输入明文m∈{0,1},经过加密运算输出密文ψ。

定义符号υ,表示映射{0,1}→{+1,-1},其中υ(0)=+1,υ(1)=-1(即将明文对应到Jacobi 符号值)。

相关主题