买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:中国人民武装警察部队工程大学
摘要:本发明具体涉及一种基于属性的BGN型密文解密外包方案,包括以下步骤:1设定系统参数,产生加密密钥;2发送方选择访问结构,对消息加密,生成密文;3接收方输入主密钥和属性,输出转换密钥和私钥;4发送方向云端发送密文;5接收方向云端发送转换密钥;6云端利用转换密钥对密文进行转换得到部分密文并发送给接收方;7接收方利用私钥对部分密文进行解密,获取消息;步骤4和步骤5之间还包括云端对密文的同态计算操作步骤。这种外包解密方案不仅提高了系统的解密效率,降低了接收者的存储开销;按照本方案的加密方法得到的密文,可允许服务器对密文数据进行多次加法同态及一次乘法同态操作,在不增加解密难度的情况下,大大提升了用户信息的CPA安全性。
主权项:1.一种基于属性的BGN型密文解密外包方案,包括以下步骤:步骤1:设定系统参数,产生加密密钥,主密钥MSK和公钥PK;步骤2:发送方选择一个访问结构,对消息进行加密,并输出密文CT;步骤3:接收方输入主密钥MSK和属性S,随机选择参数,输出转换密钥TK和私钥SK;步骤4:发送方通过公开信道向云端发送密文数据CT;步骤5:接收方向云端发送转换密钥TK;步骤6:云端利用转换密钥TK对密文CT进行转换计算得到部分密文CT’,并将所述部分密文CT’发送给接收方;步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息;其特征在于,所述步骤4和步骤5之间还包括云端对密文的同态计算操作步骤;所述步骤1具体为:步骤1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}*;步骤1-2:运行算法ξλ,得到元组q1,q2,G,G1,e和双线性映射e:G×G→G1,其中,q1,q2为素数,G,G1都是阶为n=q1q2的群;步骤1-3:在群G中随机选择生成元k,u,并令则h是群G的q1阶子群生成元,再随机选择阶为p的素数阶群G′和G′T,令g为群G′的一个生成元,得到双线性映射e′:G′×G′→G′T;步骤1-4:随机选择由{0,1}*映射到G′的哈希函数F和由G′T映射到0,1的哈希函数H,随机选择系数α,a∈Zp,即α、a均在模p的整数域上随机选择,Zp为模p的整数域,则算法的主密钥表示为:MSK=gα,PK;公钥表示为:PK=n,g,k,h,e,e′g,gα,ga,F,H,G,G1;所述步骤2具体为:步骤2-1:发送方选择LSSS访问结构M,ρ,其中,M是一个与属性有关的l×n的矩阵,ρ是与M的行元素Mi相关的函数,表示可以将矩阵M的每一行对应到访问结构中某一元素的映射,i=1,2,…,l;步骤2-2:随机选择n个Zp中的元素s,y2,……,yn∈Zp,组成向量v,v=s,y2,……,yn,其中,s为秘密共享参量,计算λi=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择l+1个Zp中的元素R,r1,……,rl∈Zp,即在模p的整数域上随机选择R,r1,…,rl,输出密文CT,密文CT包括以下三个部分: C′=gs, 所述同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作;所述步骤3具体为:步骤3-1:接收方输入主密钥MSK和属性S,随机选择t′∈Zp,输出SK′=PK,K′=gαgat′,L′=gt′,{Kx′=Fxt′}x∈S;步骤3-2:随机选择z∈Zp,并令t=t′z,得到转换密钥TK和接收方的私钥SK:TK为: SK为:SK=q1,z;所述步骤4中,云端对密文的同态计算操作采取两种方式进行处理:方式一:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为至少一次加法同态操作,云端接收密文包含c1和c2: 和计算 则经过加法同态计算后的密文为: C=gs, 方式二:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为一次乘法同态操作,令k1=ek,k,h1=ek,h,则k1的阶为n,h1的阶为q1,并且一定有β∈Z,使得z为有限整数域,计算 则经过一次乘法同态计算后的密文为: C=gs, 所述步骤6是:云端利用转换密钥TK对同态计算后的密文CT进行转换计算得到部分密文CT’,并将所述部分密文CT’发送给接收方,步骤6具体过程如下:步骤6-1:云端利用接收方发送的转换密钥TK对密文进行转换计算,当接收方的属性S不满足访问结构M,ρ,则云端输出⊥,系统停止运行;当接收方的属性S满足访问结构M,ρ,定义且满足I={i:ρi∈S},则存在常数集{wi∈Zp}i∈I,对于{λi}中的所有的值,计算∑i∈Iwiλi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文,所述转换算法计算具体为: 步骤6-2:云端向接收方返回部分密文CT′=c,Q;云端对密文的同态计算操作为方式一时,所述步骤7具体过程如下:步骤7-1:接收方输入私钥SK=q1,z和部分密文CT′,利用z,Q进行一次指数运算,计算e′g,gsα=Qz,得到e′g,gsα,从而得到He′g,gsα的值;步骤7-2:接收方再利用部分私钥q1计算: 步骤7-3:接收方通过Pollard’slambda算法解密以为底的离散对数,即可获取明文消息m1+m2;云端对密文的同态计算操作为方式二时,所述步骤7具体过程如下:步骤7-1:接收方输入私钥SK=q1,z和部分密文CT′,利用z,Q进行一次指数运算,即计算e′g,gsα=Qz,得到e′g,gsα,从而得到He′g,gsα2的值;步骤7-2:接收方再利用部分私钥q1计算: 步骤7-3:接收方通过Pollard’slambda算法解密以为底的离散对数,即可获取明文消息m1m2。
全文数据:一种基于属性的BGN型密文解密外包方案技术领域[0001]本发明属于信息安全技术领域,具体涉及一种基于属性的BGN型密文解密外包方案。背景技术[0002]云计算概念的提出,将信息产业的发展带入了快车道。云服务在给用户提供海量的存储服务和强大的计算能力的同时,也推动了经济的发展,公共云主要由不可信的第三方服务提供商来维护和运行,云计算伴生的安全问题也日益凸显。云的安全问题被认为是云服务实际应用面临诸多困难中最大的挑战,也是云服务亟待解决的最大难题。如果用户以明文形式将敏感数据保存到云服务器,由于云端可能会复制甚至篡改这些信息,而用户根本无法得知云端的非授权行为,从而造成不可估计的损失,所以云是不能被无条件信任的。为了防止敏感数据的恶意泄露和非法访问,用户可以以密文形式对数据进行外包。[0003]传统的云计算加解密模型,无法实现对计算结果的细粒度访问控制。Shamir在1984年提出了基于身份的加密,用户的公钥是由与其身份相关的唯一标识生成,访问时服务器端不需要再查询用户的公钥证书。基于属性的加密由Sahai和Waters提出,可以看做是对基于身份的加密的推广,在这种加密体制中,用户的密钥和密文与属性关联起来,只有属性满足访问控制策略时,用户才能合法解密,从而实现了对密文的细粒度访问控制。[0004]在基于属性的加密系统中,用户的密钥和密文分别关联着描述性属性集和访问策略。只有相关联的属性和访问策略相互匹配,一个特定的密钥才能够解密一个特定的密文。目前,有两种基于属性的加密方法已经被提出,包括密钥策略的基于属性的加密KP-ABE和密文策略的基于属性的加密CP-ABE。在KP-ABE中,访问策略被嵌入在私钥中,而在CP-ABE中,访问策略被嵌入在密文中。基于属性的加密ABE提供了一种安全的方式,使得数据拥有者在不可信的服务器上共享外包数据,而不是在有着特定用户的可信服务器上进行。这一优势使得ABE这种方法在云存储上大受欢迎,因为云存储需为属于不同组织的大量用户提供安全的访问控制。[0005]尽管如此,基于属性的加密ABE却在效率上有一个主要的缺陷,即密钥分发和解密阶段的计算代价会随着访问模式的复杂性的增长而增长。密文大小和解密所需时间随访问公式的复杂而增加,这对资源受限的移动用户而言无疑是个巨大的挑战。为了保证远端资源受限的移动用户也能安全高效的解密,外包的ABE这一概念被提出来,它使得加解密可以外包给第三方服务提供商。ABE解密外包的核心就是修改密钥产生算法,生成两个钥匙,一个是由用户保存的短的ElGamal密钥,一个是变形钥匙TK。对于满足访问函数的密文CT,可以先在云端使用TK将CT转化为简单而短小的ElGamal密文Cf。用户只需要一个简单的指数运算就可以进行解密。这种外包解密方案相较于传统的基于属性的加密方案,提高了系统的解密效率,降低了接收者的存储开销。然而,这一方案中对密文的解密有一部分是由云端进行的,这要求对外包服务器信任,密文、转换密钥TK都存在被非法读取的可能。[0006]因此,设计一种不仅可以提高解密外包过程中信息安全性,同时又不增加用户解密难度的密文解密外包方案具有重要价值。发明内容[0007]为了提高现有技术中CP-ABE方案的解密外包方案解密外包过程中信息安全性,同时又不增加用户解密难度,本发明提供了一种基于属性的BGN型密文解密外包方案。本发明提供了基于属性的BGN型密文解密外包方案,按照本方案的加密方法得到的密文,可允许服务器对密文数据进行多次加法同态及一次乘法同态操作,从而在不增加用户解密难度的同时大大提升了用户信息的CPA安全性。[0008]本发明要解决的技术问题通过以下技术方案实现:[0009]—种基于属性的BGN型密文解密外包方案,包括以下步骤:[0010]步骤⑴:设定系统参数,产生加密密钥,主密钥MSK和公钥PK;[0011]步骤⑵:发送方选择一个访问结构,对消息进行加密,并输出密文CT;[0012]步骤3:接收方输入主密钥MSK和属性S,随机选择参数,输出转换密钥TK和私钥SK;[0013]步骤⑷:发送方通过公开信道向云端发送密文数据CT;[0014]步骤⑶:接收方向云端发送转换密钥TK;[0015]步骤6:云端利用转换密钥TK对密文CT进行转换计算得到部分密文CT’,并将所述部分密文Cf发送给接收方;[0016]步骤7:接收方利用私钥SK对部分密文Cf进行解密,获取消息;[0017]在所述步骤⑷和步骤⑶之间还包括云端对密文的同态计算操作步骤。[0018]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述步骤⑴具体为:[0019]步骤1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}%[0020]步骤(1-2:运行算法ξλ,得到元组Qliq2lGAu和双线性映射NGXG^G1,其中,Φ,q2为素数,G,都是阶为n=qiq2的群;[0021]步骤(1-3:在群G中随机选择生成元k,u,并令Zi=M'则h是群G的ql阶子群生成元,再随机选择阶为P的素数阶群G7和GS,令g为群G'的一个生成元,得到双线性映射^:G'XG7^G7T;[0022]步骤(1-4:随机选择由{0,ΐΓ映射到G7的哈希函数F和由G\映射到0,1的哈希函数,随机选择系数a,aeZP,ZP即为模p的整数域,则算法的主密钥表示为:MSK=ga,PK;公钥表示为:PK=ΠΑ,Ιί,Ιι,θ,θ'g,ga,ga,F,H,G,Gi。[0023]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述步骤⑵具体为:[0024]步骤2-1:发送方选择LSSS访问结构M,P,其中,M是一个与属性有关的IXn的矩阵,P是与M的行元素Mi相关的函数,i=l,2,···,1;[0025]步骤(2-2:随机选择η个Zp中的元素(s,y2,......,yneZp,组成向量v,v=s,12,......,yn,其中,s为秘密共享参量,计算Ai=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择1+1个Zp*的元素R,n,……,riezp,输出密文CT,密文CT包括以下三个部分:[0027]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述步骤⑶具体为:[0028]步骤3-1:接收方输入主密钥MSK和属性S,随机选择VeZp,输出[0030]步骤3-2:随机选择zeZp,并令t=17z,得到转换密钥TK和接收方的私钥SK:[0031]TK为:SK为:SK=qi,z。[0033]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述步骤6具体为:[0034]步骤6-1:云端利用接收方发送的转换密钥TK对密文CT进行转换计算,当接收方的属性S不满足访问结构M,P,则云端输出丄,系统停止运行;[0035]当接收方的属性S满足访问结构M,p,定J,且满足I=U:P⑴eS},则存在常数集N1GZtJiel,对于{^}中的所有的值,计算EielO1A1=S即可恢复出秘密共享参量s,进而运行转换算法计算,得到部分密文Cf,[0036]所述转换算法计算具体为:[0038]步骤6-2:云端向接收方返回部分密文CT7=c,©。[0039]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述步骤⑵具体为:[0040]步骤7-1:接收方输入私钥SK=qi,z和部分密文CT、利用(z,Q计算出,(g,[0041]步骤7-2:接收方再利用部分私钥如计算[0043]步骤7-3:接收方通过Pollard’slambda算法解密以为底的离散对数,即可获取明文消息m。[0044]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作。[0045]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,步骤4:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为至少一次加法同态操作,[0046]云端接收密文数据包含cl和c2:[0049]则经过加法同态计算后的密文为:[0053]步骤⑶:接收方向云端发送转换密钥TK;[0054]步骤6:云端利用转换密钥TK对加法同态操作后的密文进行转换计算,并将部分密文发送给接收方,步骤6具体过程如下:[0055]步骤6-1:云端利用接收方发送的转换密钥TK对密文进行转换计算,[0056]当接收方的属性S满足访问结构M,P,定J,且满足I={i:P⑴eS},则存在常数集{ωieZP}ieI,计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文,[0057]所述转换算法计算具体为:[0059]步骤6-2:云端向接收方返回部分密文CT=c,Q;[0060]步骤7:接收方利用私钥SK对部分密文Cf进行解密,步骤⑵具体过程如下:[0061]步骤7-1:接收方输入私钥SK=qi,z和部分密文Cf,利用z,Q进行一次指数运算,计算yg,gsa=Qz,得到eg,gsa,从而得到I的值;[0062]步骤7-2:接收方再利用部分私钥^计算:[0064]步骤7-3:接收方通过Pollard’slambda算法解密以^t'W91为底Va的离散对数,即可获取明文消息nu+ms。[0065]因为经过一次加法同态得到的密文中^eG,说明云端接收密文CT后可以进行多次加法同态操作。[0066]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,步骤4:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为一次乘法同态操作,[0067]令ki=ek,k,hi=ek,h,则kl的阶为n,hl的阶为ql,并且一定有βεΖ,使得__,ζ为有限整数域,计算则经过一次乘法同态计算后的密文为:[0072]步骤⑶:接收方向云端发送转换密钥TK;[0073]步骤6:云端利用转换密钥TK对密文进行转换计算,得到部分密文,并将所述部分密文发送给接收方,步骤6具体过程如下:[0074]步骤6-1:云端利用接收方发送的转换密钥TK对密文进行转换计算,当接收方的属性S满足访问结构Μ,Ρ,定义,且满足I=U:P⑴eS},则存在常数集{ωieZP}ieI,计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文Cf,[0075]所述转换算法计算具体为:[0077]步骤6-2:云端向接收方返回部分密文CT=c,Q;[0078]步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息,步骤7具体过程如下:[0079]步骤7-1:接收方输入私钥SK=qi,z和部分密文CT、利用z,Q进行一次指数运算,即计算e'g,gsa=Qz,得到e'g,gsa,从而得到Hfc7g,gsa2的值;[0080]步骤7-2:接收方再利用部分私钥^计算:[0082]步骤(7-3:接收方通过Pollard’slambda算法解密^的离散对数,即可获取明文消息mm2。[0083]更具体地,本发明所述的基于属性的BGN型密文解密外包方案中,所述随机选择所指的参数产生算法具体为使用伪随机数生成器随机选择512bit大小的两个大素数qi、q2,G、6!都是阶为n=qiq2的群,e:GXG—6!是双线性映射。[0084]下面对本发明所应用的数学理论作出说明:[0085]本发明所述的“双线性映射”ΒΓ双线性对”,是指一种函数映射,将群G中的元素映射到群Gt中去,其含义如下:[0086]G,GT是两个阶为p的乘法循环群,g为G的生成元,则双线性映射e:GXG^Gt满足下列性质:[0087]1双线性:对任意u,keG和a,beZP,都有eua,kb=eu,kab。[0088]2非退化性:存在u,keG,使得eu,k乒1。[0089]3可计算性:存在有效算法使得对任意u,keG,都可以计算出eu,k。[0090]其中,Zp为模P的整数域;[0091]本发明所述的“访问结构”具有如下含义:[0092]假设{Pi,P2,…,Pn}是秘密共享的参与者集合,定义P=2P1,P2,…,Pn},访问结构Γ是{Pi,P2,…,pn}的非空子集,S丨.访问结构的单调性定义如下:如果AeΓ且,则BeΓ。同时,称该子集为一个授权子集,不能重构出共享秘密的子集为非授权子集。[0093]本发明所述的“LSSSLinearSecretSharingScheme访问结构”具有如下含义:[0094]—个定义在秘密共享参与者集合P上的线性秘密共享机制(LinearSecretSharingScheme,LSSSΠ是指:[0095]I所有参与者的份额组成一个Zp上的向量。[0096]2存在一个IXη的矩阵M,它是一个关于Π的共享生成矩阵。M的第i行对应实体Pi,其中i=1,2,…,I,P是从{1,2,…,1}到P的映射函数。随机选择列向量其中s是共享秘密,那么M·V就是利用Π得到的关于s的1个共享组成的向量,并且Μ·Vi属于实体Pi。[0097]线性重构性:假设Π是一个关于访问结构Γ的LSSS,令授权集SeΓ,定义I={i:pieS}且G小那么就一定会存在这样的一个常数集{WleZP}ieI,使得Σ^w1M1=I,0,···,0成立,从而有EieiWiMiV=S;而对于非授权集,贝Ij不存在这样的{wiGZp}iei。[0098]本发明的有益效果:[0099]1、本发明的解密外包方案中,信息在加密过程中产生的密文包括三个部分,其中一部分密文嵌入到BGN型密文中,可允许服务器对该部分密文进行多次加法同态及一次乘法同态操作,这种处理结果与直接对明文进行同样的运算再将结果加密一样;因此,对密文进行类同态操作后,不仅可以大大提升数据安全性,同时并不增加用户解密过程的难度。[0100]2、同态计算操作可以在加密数据中进行诸如、检索、比较等操作,得出正确结果,而在整个处理过程中无需对数据进行解密,也就是说服务器不需读取用户敏感数据就可以处理数据信息。[0101]3、本发明的解密外包方案利用双线性映射技术,并使用国产哈希函数SM3算法,将方案的安全性归约到子群判定问题困难假设,使其达到了CPA安全。[0102]4、对云端计算结果的访问控制上,通过加入基于属性的加密方法,实现了对同态运算结果解密权限的基于属性的细粒度访问控制;访问规则由用户指定,可以随时进行访问权限的变更,即共享生成矩阵式和消息绑定在一起生成密文的,所以可以随时更改与共享生成矩阵相关联的身份特征集,而用户的私钥只与身份特征集相关。[0103]5、效率方面,在移动云存储环境下,用户将属性控制经过哈希处理之后嵌入到BGN型密文中,上传到云端存储,再通过密文转换步骤,将密文的部分解密外包到云端进行,保证了数据在云端的安全性,在不泄露明文数据的前提下,借外包解密代理强大的运算能力,加快解密速度,降低了接收者的存储、解密开销,提高了系统的解密效率。[0104]以下将结合附图及实施例对本发明做进一步详细说明。附图说明[0105]图1是本发明基于属性的BGN型密文解密外包方案的流程示意图。具体实施方式[0106]为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施例对本发明的具体实施方式、结构特征详细说明如下。[0107]实施例1:基于属性的BGN型密文解密外包方案[0108]如图1所示的基于属性的BGN型密文解密外包方案,其具体步骤如下:[0109]步骤(1:设定系统参数,产生加密密钥,主密钥MSK和公钥PK,步骤(1具体过程如下:[0110]步骤(1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}%所输入的安全参数λ的取值比较大,本实施例中,λ选择I〇24bit大小,足以保证方案的安全性。[0111]步骤(1-2:运行算法ξλ,得到元组Qtq2^G1,e和双线性映射NGXG^G1,其中,qi,q2为素数,G,G^是阶为n=qiq2的群;ξ㈨是公开的参数产生算法,qi,q2为大素数,本实施例中选择qi,q2为512bit大小的素数。[0112]步骤(1-3:在群G中随机选择生成元k,u,并令Zi=Mcft,则h是群6的^阶子群生成元,再随机选择阶为P的素数阶群G7和GS,令g为群G'的一个生成元,得到双线性映射^:G'XG7^G7To[0113]步骤(1-4:随机选择由{0,ΐΓ映射到G7的哈希函数F和由G\映射到0,1的哈希函数H,随机选择系数a,aeZP,S卩a、a均在模p的整数域上随机选择,ZP即为模p的整数域,则算法的主密钥表示为:MSK=ga,PK;[0114]公钥表示为:PK=。[0115]步骤⑴中所使用的哈希函数F和哈希函数H均为公开的国产哈希函数SM3算法。[0116]步骤2:发送方选择一个访问结构,对消息进行加密,并生成密文CT,步骤2具体过程如下:[0117]步骤2-1:发送方选择LSSS访问结构M,P,其中,M是一个与属性有关的IXn的矩阵,P是与M的行元素1相关的函数,表示可以将矩阵M的每一行对应到访问结构中某一元素的映射,i=l,2,…,1。[0118]步骤(2-2:随机选择η个Zp中的元素(s,y2,......,yneZp,组成向量v,v=s,12,......,yn,其中,s为秘密共享参量,计算Ai=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择1+1个Zp*的元素(R,ri,……,nezp,即在模P的整数域上随机选择R,η,…,η,输出密文CT,CT包括以下三个部分:[0120]步骤3:接收方输入主密钥MSK和属性S,选择随机参数,输出转换密钥TK和私钥SK,步骤⑶具体过程如下:[0121]步骤3-1:接收方输入主密钥MSK和属性S,随机选择VeZP,输出:[0123]步骤3-2:随机选择zeZP,并令t=t7z,得到转换密钥TK和接收方的私钥SK:[0125]SK=qi,z。[0126]步骤⑷:发送方通过公开信道向云端发送密文数据CT。[0127]云端接收到发送方发送的密文数据CT之后;可对密文进行同态计算操作步骤,同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作;云端接收到的按照本实施例方案进行加密得到的密文CT包括三个部分,其中第一部分密文c嵌入BGN,可允许服务器对该部分密文进行多次加法同态及一次乘法同态操作。[0128]步骤⑶:接收方向云端发送转换密钥TK。[0129]步骤6:云端利用转换密钥TK对密文CT进行转换计算,得到部分密文Cf,并将所述部分密文Cf发送给接收方,步骤6具体过程如下:[0130]步骤6-1:云端利用接收方发送的转换密钥TK对密文CT进行转换计算,当接收方的属性S不满足访问结构M,P,则云端输出丄,系统停止运行;[0131]当接收方的属性S满足访问结构M,p,定义f且满足I=U:P⑴eS},即属性集S中所有元素PieS通过映射P.对应到矩阵M的行标i的集合,则存在常数集{ωieZP}ieI,使得ΣK1WiMi=1,0,…,0成立,对于{Ai}中的所有的值,{Ai}是秘密s的有效部分,则计算EielCO1A1=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文Cf,[0132]所述转换算法计算具体为:[0134]步骤6-2:云端向接收方返回部分密文CT=c,©。[0135]步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息,步骤7具体过程如下:[0136]步骤7-1:接收方输入私钥SK=qi,z和部分密文CT、利用z,Q进行一次指数运算,即计算e'g,gsa=Qz。[0137]步骤7-2:接收方再利用部分私钥如计算:[0139]步骤7-3:接收方通过Pollard’slambda算法解密卩为底的离散对数,即可获取明文消息m。[0140]在本实施例的密文解密外包方案中,其中,步骤3的操作主体为接收方,与步骤2和步骤⑷不同,因此步骤⑶的顺序可以有变化,步骤⑶不需要必须在步骤2和步骤⑷之间,只要在步骤⑴之后、步骤⑶之前即可。本发明方案中的“随机选择”所指的参数产生算法具体为使用伪随机生成器随机选择512bit大小的两个大素数!^沿^^:都是阶为n=qiq2的群,e:GXG—Gi是双线性映射。伪随机数生成器不做具体指定,只要它能够达到随机选择的目的即可,只要能够实现随机选择,则对方案安全性不产生影响。[0141]实施例2:基于属性的BGN型密文解密外包方案[0142]具体方案如下:[0143]步骤(1:设定系统参数,产生加密密钥,主密钥MSK和公钥PK,步骤(1具体过程如下:[0M4]步骤(1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}%所输入的安全参数λ的取值比较大,本实施例中,λ选择I〇24bit大小,足以保证方案的安全性。[0145]步骤(1-2:运行算法ξλ,得到元组Qliq2lGAu和双线性映射NGXG^G1,其中,qi,q2为素数,G,G^是阶为n=qiq2的群;ξ㈨是公开的参数产生算法,qi,q2为大素数,本实施例中选择qi,q2为512bit大小的素数。[0146]步骤1-3:在群G中随机选择生成元k,u,并4,则h是群G的如阶子群生成元,再随机选择阶为P的素数阶群G'和G\,令g为群G'的一个生成元,得到双线性映射^:G7XG7^G7To[0147]步骤(1-4:随机选择由{0,ΐΓ映射到G7的哈希函数F和由G\映射到0,1的哈希函数H,随机选择系数a,aeZP,S卩a、a均在模p的整数域上随机选择,ZP即为模p的整数域,则算法的主密钥表示为:MSK=ga,PK;[0148]输出公钥表示为:PK=。[0149]步骤⑴中所使用的哈希函数F和哈希函数H均为公开的国产哈希函数SM3算法。[0150]步骤2:发送方选择一个访问结构,对消息进行加密,并生成密文CT,步骤2具体过程如下:[0151]步骤2-1:发送方选择LSSS访问结构M,P,其中,M是一个与属性有关的IXn的矩阵,P是与M的行元素1相关的函数,表示可以将矩阵M的每一行对应到访问结构中某一元素的映射,i=l,2,…,1。[0152]步骤(2-2:随机选择η个Zp中的元素(s,y2,......,yneZp,组成向量v,v=s,12,......,yn,其中,s为秘密共享参量,计算Ai=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择1+1个Zp*的元素(R,ri,……,nezp,即在模P的整数域上随机选择R,η,…,η,输出密文CT,CT包括以下三个部分:[0154]步骤3:接收方输入主密钥MSK和属性S,选择随机参数,输出转换密钥TK和私钥SK,步骤⑶具体过程如下:[0155]步骤3-1:接收方输入主密钥MSK和属性S,随机选择VeZP,输出:[0157]步骤3-2:随机选择zeZP,并令t=t7z,得到转换密钥TK和接收方的私钥SK:[0159]SK=qi,z〇[0160]步骤⑷:发送方通过公开信道向云端发送密文数据CT。[0161]云端接收到发送方发送的密文数据CT之后;可对密文进行同态计算操作步骤,同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作。在本实施例中,进行一次加法同态操作:[0162]云端接收密文数据包含cl和c2:[0165]经过加法同态计算后的密文为:[0169]因为经过加法同态得到的密文中^eG,说明云端接收密文CT后可以进行多次加法同态操作。[0170]步骤⑶:接收方向云端发送转换密钥TK。[0171]步骤6:云端利用转换密钥TK对加法同态操作后的密文进行转换计算,得到部分密文Cf,并将所述部分密文Cf发送给接收方,步骤6具体过程如下:[0172]步骤6-1:云端利用接收方发送的转换密钥TK对密文CT进行转换计算,当接收方的属性S不满足访问结构M,P,则云端输出丄,系统停止运行;[0173]当接收方的属性S满足访问结构M,P,定义c{l,2,···,},且满足I=eS},贝IJ存在常数集N1GZtJiel,对于{Μ}中的所有的值,{Ai}是秘密s的有效部分,也就是计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文Cf,[0174]所述转换算法计算具体为:[0176]步骤6-2:云端向接收方返回部分密文CT=c,Q。[0177]步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息,步骤7具体过程如下:[0178]步骤7-1:接收方输入私钥SK=qi,z和部分密文CT、利用z,Q进行一次指数运算,即计算e'g,gsa=Qz,得到e'g,gsa,从而得到Hfc7g,gsa的值。[0179]步骤7-2:接收方再利用部分私钥如计算:[0181]步骤7-3:接收方通过Pollard’slambda算法解密以为底^广的离散对数,即可获取明文消息nu+ms。[0182]云端接收到的按照本实施例方案进行加密得到的密文CT包括三个部分,其中第一部分密文c嵌入到BGN型密文中,可允许服务器对该部分密文进行多次加法同态操作,这种处理结果与直接对明文进行同样的运算再将结果加密一样;因此,对密文进行类同态操作后,可以大大提升数据安全性,同时并不增加用户解密过程的难度。因为经过加法同态得到的密文中^eG,说明云端接收密文CT后可以进行多次加法同态操作。[0183]在本实施例的密文解密外包方案中,其中,步骤3的操作主体为接收方,与步骤2和步骤⑷不同,因此步骤⑶的顺序可以有变化,步骤⑶不需要必须在步骤2和步骤⑷之间,只要在步骤⑴之后、步骤⑶之前即可。[0184]本发明方案中的“随机选择”所指的参数产生算法具体为使用伪随机生成器随机选择512bit大小的两个大素数91、92,6、61都是阶为11=9即的群,6:6\6461是双线性映射。伪随机数生成器不做具体指定,只要它能够达到随机选择的目的即可,只要能够实现随机选择,则对方案安全性不产生影响。[0185]实施例3:基于属性的BGN型密文解密外包方案[0186]具体方案如下:[0187]步骤(1:设定系统参数,产生加密密钥,主密钥MSK和公钥PK,步骤(1具体过程如下:[0188]步骤(1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}%所输入的安全参数λ的取值比较大,本实施例中,λ选择I〇24bit大小,足以保证方案的安全性。[0189]步骤(1-2:运行算法ξλ,得到元组Qiq2lGAu和双线性映射NGXG^G1,其中,素数,G,G^是阶为n=qiq2的群;ξ㈨是公开的参数产生算法,qi,q2为大素数,本实施例中选择qi,q2为512bit大小的素数。[0190]步骤1-3:在群G中随机选择生成元k,u,并4,则h是群G的^阶子群生成元,再随机选择阶为P的素数阶群G'和G\,令g为群G'的一个生成元,得到双线性映射^:G7XG7^G7To[0191]步骤(1-4:随机选择由{0,ΐΓ映射到G7的哈希函数F和由G\映射到0,1的哈希函数H,随机选择系数a,aeZP,S卩a、a均在模p的整数域上随机选择,ZP即为模p的整数域,则算法的主密钥表示为:MSK=ga,PK;[0192]输出公钥表示为:PK=。[0193]步骤⑴中所使用的哈希函数F和哈希函数H均为公开的国产哈希函数SM3算法。[0194]步骤2:发送方选择一个访问结构,对消息进行加密,并生成密文CT,步骤2具体过程如下:[0195]步骤2-1:发送方选择LSSS访问结构M,P,其中,M是一个与属性有关的IXn的矩阵,P是与M的行元素1相关的函数,表示可以将矩阵M的每一行对应到访问结构中某一元素的映射,i=l,2,…,1。[0196]步骤(2-2:随机选择η个Zp中的元素(s,y2,......,yneZp,组成向量v,v=s,12,......,yn,其中,s为秘密共享参量,计算Ai=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择1+1个Zp*的元素(R,ri,……,nezp,即在模P的整数域上随机选择R,η,…,η,输出密文CT,CT包括以下三个部分:[0198]步骤3:接收方输入主密钥MSK和属性S,选择随机参数,输出转换密钥TK和私钥SK,步骤⑶具体过程如下:[0199]步骤3-1:接收方输入主密钥MSK和属性S,随机选择VeZP,输出:[0201]步骤3-2:随机选择Zezp,并令t=t7z,得到转换密钥TK和接收方的私钥SK:[0203]SK=qi,z。[0204]步骤⑷:发送方通过公开信道向云端发送密文数据CT。[0205]云端接收到发送方发送的密文数据CT之后;可对密文进行同态计算操作步骤,同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作。在本实施例中,进行一次乘法同态操作:[0206]令ki=ek,k,hi=ek,h,则ki的阶为n,hi的阶为qi,并且一定有βεΖ,使得,ζ为有限整数域,计算一次乘法同态计算后的密文为:[0211]经过乘法同态得到的密文中^eGl,由于不存在有效算法使得MG1XG1^G成立,所以本方案只能进行一次乘法。[0212]步骤⑶:接收方向云端发送转换密钥TK。[0213]步骤6:云端利用转换密钥TK对密文进行转换计算,得到部分密文Cf,并将所述部分密文Cf发送给接收方,步骤6具体过程如下:[0214]步骤6-1:云端利用接收方发送的转换密钥TK对密文CT进行转换计算,当接收方的属性S不满足访问结构M,P,则云端输出丄,系统停止运行;[0215]当接收方的属性S满足访问结构M,P,定义,、且满足I={i:P⑴eS},则存在常数集{ωieZP}ieI,对于{Ai}中的所有的值,{Ai}是秘密s的有效部分,则计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文Cf,[0216]所述转换算法计算具体为:[0218]步骤6-2:云端向接收方返回部分密文CT=c,©。[0219]步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息,步骤7具体过程如下:[0220]步骤7-1:接收方输入私钥SK=qi,z和部分密文Cf,利用z,Q进行一次指数运算,即计算e'g,gsa=Qz,得到e'g,gsa,从而得到Hfc7g,gsa2的值。[0221]步骤7-2:接收方再利用部分私钥^计算:[0223]步骤7-3:接收方通过Pollard’slambda算法解密以的离散对数,即可获取明文消息mm2。[0224]根据实施例3,云端接收到的按照本实施例方案进行加密得到的密文CT包括三个部分,其中第一部分密文c嵌入到BGN型密文中,可允许服务器对该部分密文进行一次乘法同态操作,这种处理结果与直接对明文进行同样的运算再将结果加密一样;因此,对密文进行类同态操作后,可以大大提升数据安全性,同时并不增加用户解密过程的难度。[0225]在移动云存储环境下,用户将属性控制经过哈希处理之后嵌入到BGN型密文中,上传到云端存储,再通过密文转换步骤,将密文的部分解密外包到云端进行,保证了数据在云端的安全性,在不泄露明文数据的前提下,借外包解密代理强大的运算能力,加快解密速度,降低了接收者的存储、解密开销,提高了系统的解密效率。[0226]实施例4:对本发明的BGN型密文解密外包方案的安全性进行说明[0227]本发明方案的安全性是建立在敌手算法A不能攻破子群判定问题的假设基础上。假设存在某一算法B能够以优势ε攻破本方案的语义安全性,那么就一定存在敌手算法A能够以优势ε解决子群判定问题假设。详细的证明过程如下:[0228]1敌手算法A随机选择geG,将公钥η,G,G1,e,g,X发送给算法B。[0229]2算法B随机挑选两个明文消息m〇,mi发送给敌手算法A,算法A返回随机挑战密3,,+[0230]⑶算法B输出关于b的猜测b',如果b=b',算法A输出“Γ,否则输出“〇”。[0231]如果元素X是在群G中均匀分布,那么挑战密文c在群G中也是均匀分布,与b的选择无关,即PrIb=MI=12;如果X是群G的如阶子群中的元素,那么根据假设就有Pr|b=bM12+ε,所以SD-AdVATe,这就意味着敌手算法A解决子群判定问题假设的优势£是不可忽略的,与困难问题矛盾。[0232]因此,方案在子群判定问题困难假设下达到了CPA安全。同时,需要注意到,解密者属性的泄露不会影响密文的安全。因为如果攻击者拿不到部分密钥qi,那么他即使知道加密者的属性和随机参数z,即攻击者能够算出e'g,gsa的值,但是不清楚部分密钥q1的值,因而无法计算[0234]所以还是不能得到正确的明文。另一方面,攻击者即使只拿到了部分密钥qi,但是由于他的属性不满足密文访问策略,即攻击者不能算出e'g,gsa的值,因此也不能解密得到明文。综上所述,只有属性满足密文访问策略的合法解密者才可以正常解密密文。[0235]根据上述说明过程可知,本发明的解密外包方案利用双线性映射技术,并使用国产哈希函数SM3算法,将方案的安全性归约到子群判定问题困难假设,使其达到了CPA安全。[0236]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求:1.一种基于属性的BGN型密文解密外包方案,包括以下步骤:步骤⑴:设定系统参数,产生加密密钥,主密钥MSK和公钥PK;步骤2:发送方选择一个访问结构,对消息进行加密,并输出密文CT;步骤⑶:接收方输入主密钥MSK和属性S,随机选择参数,输出转换密钥TK和私钥SK;步骤⑷:发送方通过公开信道向云端发送密文数据CT;步骤5:接收方向云端发送转换密钥TK;步骤6:云端利用转换密钥TK对密文CT进行转换计算得到部分密文CT’,并将所述部分密文Cf发送给接收方;步骤7:接收方利用私钥SK对部分密文Cf进行解密,获取消息;其特征在于,所述步骤⑷和步骤⑶之间还包括云端对密文的同态计算操作步骤。2.根据权利要求1所述的基于属性的BGN型密文解密外包方案,其特征在于,所述步骤⑴具体为:步骤1-1:设定系统参数,输入安全参数λ和属性空间U,其中U={0,1}%步骤(1-2:运行算法ξλ,得到元组qi,q2,G,G1,e和双线性映射e:GXG^G1,其中,Φ,q2为素数,G,都是阶为n=qiq2的群;步骤1-3:在群G中随机选择生成元k,u,并4,则h是群G的如阶子群生成元,再随机选择阶为P的素数阶群G7和GS,令g为群G'的一个生成元,得到双线性映射^=G7XG7^G7T;步骤1-4:随机选择由{0,1Γ映射到G'的哈希函数F和由G\映射到0,1的哈希函数,随机选择系数a,aeZp,Zp为模p的整数域,则算法的主密钥表示为:MSK=ga,PK;公钥表示为:PK=ΠΑ,Ιί,Ιι,θ,θ'g,ga,ga,F,H,G,Gi。3.根据权利要求2所述的基于属性的BGN型密文解密外包方案,其特征在于,所述步骤2具体为:步骤2-1:发送方选择LSSS访问结构M,P,其中,M是一个与属性有关的IXn的矩阵,P是与M的行元素Mi相关的函数,i=l,2,···,1;步骤2-2:随机选择η个Zp中的元素s,y2,......,yneZp,组成向量v,v=s,y2,......,yn,其中,s为秘密共享参量,计算Ai=Mi·v,其中,Mi是M的第i行元素所组成的向量,再随机选择1+1个Zp*的元素(R,n,……,riezp,输出密文CT,密文CT包括以下三个部分:4.根据权利要求1所述的基于属性的BGN型密文解密外包方案,其特征在于,所述同态计算操作步骤为至少一次加法同态操作和最多一次乘法同态操作。5.根据权利要求3所述的基于属性的BGN型密文解密外包方案,其特征在于,所述步骤⑶具体为:步骤3-1:接收方输入主密钥MSK和属性S,随机选择VeZp,输出步骤3-2:随机选择zeZp,并令t=t7z,得到转换密钥TK和接收方的私钥SK:TK为:6.根据权利要求5所述的基于属性的BGN型密文解密外包方案,其特征在于,所述步骤6具体为:步骤6-1:云端利用接收方发送的转换密钥TK对密文CT进行转换计算,当接收方的属性S不满足访问结构M,P,则云端输出丄,系统停止运行;当接收方的属性3满足访问结构1,0,定义41,2,一,4,且满足1={1:01^5},则存在常数集W1GZtJiel,对于{λ,}中的所有的值,计算EielO1A1=S即可恢复出秘密共享参量s,进而运行转换算法计算,得到部分密文Cf,所述转换算法计算具体为:步骤6-2:云端向接收方返回部分密文CI^=c,Q。7.根据权利要求6所述的基于属性的BGN型密文解密外包方案,其特征在于,所述步骤7具体为:步骤7-1:接收方输入私钥SK=qi,z和部分密文CI^,利用z,Q计算e'g,gsa=Qz;步骤7-2:接收方再利用部分私钥^计算步骤7-3:接收方通过Pollard’slambda算法解密以为底€*的离散对数,即可获取明文消息m。8.根据权利要求5所述的基于属性的BGN型密文解密外包方案,其特征在于,步骤4:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为至少一次加法同态操作,云端接收密文包含cl和c2:计算则经过加法同态计算后的密文为:步骤5:接收方向云端发送转换密钥TK;步骤6:云端利用转换密钥TK对加法同态操作后的密文进行转换计算,并将部分密文发送给接收方,步骤6具体过程如下:步骤6-1:云端利用接收方发送的转换密钥TK对密文进行转换计算,当接收方的属性S满足访问结构M,p,定义c=lU,…,且满足I=U:Pies},则存在常数集{ωieZP}ieI,计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文,所述转换算法计算具体为:步骤6-2:云端向接收方返回部分密文CI^=c,Q;步骤7:接收方利用私钥SK对部分密文Cf进行解密,步骤⑵具体过程如下:步骤7-1:接收方输入私钥SK=qi,z和部分密文CT,利用z,Q进行一次指数运算,计算e'g,gsa=Qz,得到e'g,gsa,从而得至IjHe'g,gsa的值;步骤7-2:接收方再利用部分私钥如计算:步骤7-3:接收方通过Pollard’slambda算法解密B为底’的离散对数,即可获取明文消息m+m2。9.根据权利要求5所述的基于属性的BGN型密文解密外包方案,其特征在于,步骤4:发送方通过公开信道向云端发送密文数据CT后,云端对密文的同态计算操作步骤为一次乘法同态操作,令ki=ek,k,hi=ek,h,则ki的阶为n,hi的阶为qi,并且一定有βεΖ,使得ζ为有限整数域,计算则经过一次乘法同态计算后的密文为:步骤5:接收方向云端发送转换密钥TK;步骤6:云端利用转换密钥TK对密文进行转换计算,得到部分密文,并将所述部分密文发送给接收方,步骤6具体过程如下:步骤6-1:云端利用接收方发送的转换密钥TK对密文进行转换计算,当接收方的属性S满足访问结构Μ,ρ,定义cp,2,且满足l={i:pies},则存在常数集{ω#ZP}ieI,计算ΣieIωAi=s即可恢复出秘密共享参量s,进而运算转换算法计算,得到部分密文Cf,所述转换算法计算具体为:步骤6-2:云端向接收方返回部分密文CI^=c,Q;步骤7:接收方利用私钥SK对部分密文CT’进行解密,获取消息,步骤7具体过程如下:步骤7-1:接收方输入私钥SK=qi,z和部分密文CT,利用z,Q进行一次指数运算,即计算e'g,gsa=Qz,得到e'g,gsa,从而得到Hfe'g,gsa2的值;步骤7-2:接收方再利用部分私钥如计算:步骤(7-3:接收方通过Pollard’slambda算法解密以为底的离散对数,即可获取明文消息mm2。10.根据权利要求1-9任一项所述的基于属性的BGN型密文解密外包方案,其特征在于,所述随机选择所指的参数产生算法为使用伪随机数生成器随机选择512bit大小的两个大素数qi、q2,G、G^是阶为n=qiq2的群,e:GX双线性映射。
百度查询: 中国人民武装警察部队工程大学 一种基于属性的BGN型密文解密外包方案
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。