本发明涉及支持盲密钥发行的属性基加解密方法及加解密系统。
背景技术
属性基加密(attribute-basedencryption,abe)是公钥加密与身份基加密(identity-basedencryption,ibe)的一种扩展,最早的公开研究起源于模糊的身份基加密。在abe体制中,密钥生成中心kgc根据用户拥有的属性为用户颁发密钥,加密者针对一个访问策略对消息进行加密,当且仅当属性信息满足相应的访问策略时,解密方能够成功,如图1所示。
与ibe体制类似,在abe体制中,加密者无需事先获取公钥证书,可以直接使用一组属性或一个访问策略作为“身份”进行加密,因此,abe体制可以看作ibe体制的泛化形式。与传统的公钥加密体制、身份基加密体制相比,在abe体制中,加密过程不再针对某一特定的个体,而是针对具有某些特定属性的群体,属于这个群体(满足访问策略)的个体均能够正确解密。因此,abe体制是一种“一对多”的加密体制。而与同样为“一对多”的广播加密相比,abe体制又可以实现对密文灵活的访问控制,同时无需要求加密方在加密前获取精确的解密用户列表,且密文长度与解密用户的数量无关。
这些种种优势使得abe体制自提出以来便得到了学术界和产业界的双重高度关注。尤其近几年,随着云存储、移动互联网、社交网络被广泛使用,人们对加密存储、定向分享信息的需求越来越强,对abe体制的研究和应用也越加深入,目前它在细粒度访问控制、隐私保护、云计算、社交网络等诸多领域均有着良好的应用前景。
然而,目前的abe方案并未考虑密钥发行过程中,用户的隐私保护问题。密钥生成中心kgc(keygenerationcenter,kgc)同时负担着属性认定和密钥发行双重工作,这就决定了kgc既掌握用户的属性信息,又掌握这些属性对应的密钥。这极大的损害了用户的隐私,同时给用户的加密数据带来潜在威胁。
技术实现要素:
为了解决现有abe体制在密钥发行过程中,用户必须向kgc提交属性信息,从而泄露隐私的问题,本发明提供了支持盲密钥发行的属性基加解密方法及加解密系统,将kgc的属性认定功能进行剥离,该功能由独立的属性令牌生成装置(attributeauditcenter,aac)完成。aac负责认定用户的属性,并为用户颁发相应的匿名属性令牌,该令牌仅能证明用户的属性已被aac认证,但不会泄露属性的具体信息。用户可以持该匿名属性令牌到kgc申请相应密钥,kgc能够准确的为用户颁发属性密钥,而无法窥探用户的具体属性,从而在密钥发行过程中,保护用户的隐私。
作为本发明的第一方面,提供了支持盲密钥发行的属性基加解密方法;
支持盲密钥发行的属性基加解密方法,包括:
步骤(1):属性令牌生成装置接收用户解密终端提交的属性信息;
步骤(2):属性令牌生成装置对属性信息进行审核,如果审核通过,则生成属性令牌,并将生成的属性令牌发送给用户解密终端;如果审核未通过,则不生成属性令牌;
步骤(3):密钥生成中心kgc接收用户解密终端发送过来的属性令牌;
步骤(4):密钥生成中心kgc验证属性令牌的合法性,如果属性令牌合法,则密钥生成中心kgc生成对应的盲密钥,并将生成的盲密钥发送给用户解密终端;否则,不生成盲密钥;
步骤(5):用户加密终端对消息进行加密,将加密后的密文发送给用户解密终端;
步骤(6):用户解密终端从盲密钥中提取出最终密钥;
步骤(7):用户解密终端通过最终密钥对密文进行解密处理,输出解密消息。
进一步的,所述属性令牌,是指用户属性对应的一组随机数并附有属性令牌生成装置签发的签名,用于向密钥生成中心kgc申请属性对应的密钥,但不向密钥生成中心kgc透露属性值。
进一步的,所述盲密钥,是指最终密钥的盲化结果,用户可以进行脱盲处理,提取出最终密钥。
作为本发明的进一步改进,所述步骤(1)之前,包括:
步骤(10):初始化步骤;
密钥生成中心kgc的输入端接收安全参数κ,密钥生成中心kgc的输出端输出公共参数pp和主密钥msk;密钥生成中心kgc将公共参数pp向用户加密终端和用户解密终端公开,将主密钥msk保存。
步骤(11):临时密钥生成步骤;
用户解密终端的输入端接收公共参数pp以及安全参数κ,用户解密终端的输出端输出用户的临时公钥tpkuser和临时私钥tskuser,用户解密终端对临时私钥tskuser进行保存。
所述步骤(10)中:
选择阶为素数p的双线性群g和gt,g为g的一个生成元,存在双线性映射e,使得e:g×g→gt,双线性配对运算表达为e(a,b)=c的形式,其中a,b∈g,c∈gt。
设n为元素的个数,在集合{1,2,…,p-1}中随机选择2n个随机数r1,r2,…r2n,在群g中随机选择2n个群元素s1,s2,…,s2n;
对于k=1,2,...,2n,令
公共参数pp包含{<uk,hk>|k=1,2,...,n}以及{g,gt,g,e};
对于i∈[1,n],<ui,hi>和<ui+n,hi+n>分别对应于每个属性ai的正负类型。
主密钥为msk:={<rk,sk>|k=1,2,...,2n}。
所述步骤(11)中:
对于i∈[1,n],随机选择
作为本发明的进一步改进,所述步骤(1)属性令牌生成装置接收用户解密终端提交的属性信息的步骤为:
属性令牌生成装置接收用户解密终端提交的临时公钥tpkuser及属性集合s。
进一步的,所述属性集合,包括:性别、年龄段、职业、受教育程度、技术资格、健康状况等。
作为本发明的进一步改进,所述步骤(2)生成属性令牌的具体步骤,包括:
属性令牌生成装置的输入端接收公共参数pp、用户解密终端的属性集合s和用户的临时公钥tpkuser;属性令牌生成装置运行匿名令牌生成算法;属性令牌生成装置输出用户属性集合s对应的匿名令牌
作为本发明的进一步改进,所述步骤(2)生成属性令牌的具体步骤,包括:
属性集合s中包括n个正负号,s=(+,-,...,+),其中“+”表示用户拥有该属性,“-”表示用户不拥有该属性;对于i∈[1,n],在集合{1,2,…,p-1}中随机选择αi,γi,并计算
如果属性atti=”+”,则设置
如果属性atti=”-”,则设置
匿名令牌
其中∑为aac对该令牌的签名。
作为本发明的进一步改进,所述步骤(4)生成对应的盲密钥的具体步骤,包括:
密钥生成中心kgc的输入端接收公共参数pp、主密钥msk和用户的匿名令牌
作为本发明的进一步改进,所述步骤(4)生成对应的盲密钥的具体步骤,包括:
密钥生成中心kgc首先验证∑的合法性;如果签名不合法,则中止;否则,对于i∈[1,n],随机选择
然后,随机选择v∈g。对于i∈[1,n],
计算
计算ci,0=σi,0·ki,0,ci,1=σi,1·ki,1。
盲密钥bsk=<v,{(wi,0,ci,0),(wi,1,ci,1)}i∈[1,n]>;
作为本发明的进一步改进,所述步骤(6)从盲密钥中提取出最终密钥的具体步骤,包括:
用户解密终端的输入端接收盲密钥bsks和用户的临时私钥tskuser;用户解密终端运行密钥提取算法;用户解密终端的输出端输出属性集合s对应的最终私钥sks。
作为本发明的进一步改进,所述步骤(6)从盲密钥中提取出最终密钥的具体步骤,包括:
对于i∈[1,n],
当s中属性i是“+”时,令b=0,
当s中属性i是“-”时,令b=1;
计算
私钥sk:=<v,{σi}i∈[1,n]>;
注:在上面的密钥发布过程中,kgc不能知道用户的具体属性,同时aac不能获得属性对应的密钥。
作为本发明的进一步改进,所述步骤(5)加密的具体步骤,包括:
用户加密终端的输入端接收公开参数pp、消息m和访问策略;用户加密终端运行加密算法,用户加密终端输出消息m对应的密文ct。访问策略,例如:教授and女性and60岁以下。
作为本发明的进一步改进,所述步骤(5)加密的具体步骤,包括:
访问策略
对于i∈i,计算
并计算
随机选择
密文ct=(w,c1,c2,c3)。
作为本发明的进一步改进,所述步骤(7)解密的具体步骤,包括:
用户解密终端的输入端接收密文
作为本发明的进一步改进,所述步骤(7)解密的具体步骤,包括:
如果
m=c3/(e(v,c2)·e(σ,c1)),
解密成功。
作为本发明的第二方面,提供了支持盲密钥发行的属性基加解密系统;
支持盲密钥发行的属性基加解密系统,包括:
属性令牌生成装置,被配置为:接收用户解密终端提交的属性信息;对属性信息进行审核,如果审核通过,则生成属性令牌,并将生成的属性令牌发送给用户解密终端;如果审核未通过,则不生成属性令牌;
密钥生成中心kgc,被配置为:接收用户解密终端发送过来的属性令牌;验证属性令牌的合法性,如果属性令牌合法,则密钥生成中心kgc生成对应的盲密钥,并将生成的盲密钥发送给用户解密终端;否则,不生成盲密钥;
用户加密终端,被配置为:对消息进行加密,将加密后的密文发送给用户解密终端;
用户解密终端,被配置为:从盲密钥中提取出最终密钥;通过最终密钥对密文进行解密处理,输出解密消息。
与现有技术相比,本发明的有益效果是:
通过在系统中引入属性令牌生成装置aac,将kgc的属性认定功能进行剥离。aac负责认定属性并颁发相应的匿名令牌,该令牌仅能证明用户的属性被aac认定,但不会泄露关于属性的任何信息。kgc根据匿名令牌颁发相应的盲密钥,在这个过程中,不会泄露用户的任何属性信息。用户拿到盲密钥后,进行脱盲处理,得到最终密钥。
在整个密钥发行过程中,kgc不再掌握用户的属性,而aac无法获知属性对应的私钥,从而保护了用户的隐私和加密数据的安全。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为属性基加密机制;
图2为密钥发行过程。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在本发明中,密钥发行过程有三类实体(如图2所示):属性令牌生成装置(aac),密钥生成中心(kgc)和用户。
具体的密钥发行过程如下:
(1)用户将属性信息及相关证明材料提交给属性令牌生成装置(aac);
(2)aac审核用户的属性,并返回给用户属性对应的匿名令牌;(该令牌能够证明aac已对用户属性进行认定,但不会泄露具体的属性信息。)
(3)用户申请属性密钥时,向kgc出示匿名令牌;
(4)kgc检查令牌的合法性(但无法从令牌上判断用户的具体属性),然后为用户生成属性对应的盲密钥;
(5)用户从盲密钥中提取出最终密钥。
一个支持盲密钥发行的属性基加密方案(anon-kg-abe)包括一个算法:系统建立算法(setup)、用户临时密钥生成算法(user-temkeygen)、匿名令牌生成算法(anon-tokengen)、盲密钥生成算法(anon-kengen)、密钥提取算法(keyextra)、加密算法(encrypt)、解密算法(decrypt)。算法描述如下:
setup(1κ)→pp,msk:系统建立算法由kgc运行,输入安全参数κ,并输出系统公共参数pp和系统主密钥msk。kgc公开pp,保存msk。
user-temkeygen(pp,1κ)→tpkuser,tskuser:用户临时密钥生成算法由用户运行,输入公共参数pp,以及安全参数κ,输出用户的临时公钥tpkuser和临时私钥tskuser。用户保存临时私钥tskuser,并在申请匿名令牌时,向aac提供临时公钥tpkuser。
keyextra(bsks,tskuser)→sks:密钥提取算法由用户执行,输入盲密钥bsks和用户的临时私钥tskuser,输出属性集合s对应的最终私钥sks。
一个具体的anon-kg-abe方案构造
本构造中,规定属性空间u包含n个属性,即u={a1,a2,...,an}。每个属性ai有2个值
setup(1κ)→pp,msk:选择阶为素数p的双线性群g,g为g的一个生成元,存在双线性映射e:g×g→gt。随机选择
公共参数为pp:={<uk,hk>|k=1,2,...,2n}。对于i∈[1,n],<ui,hi>和<ui+n,hi+n>分别对应于每个属性ai的正负类型。
主密钥为msk:={<rk,sk>|k=1,2,...,2n}。
user-temkeygen(pp,1κ)→tpkuser,tskuser:对于i∈[1,n],随机选择
如果属性atti="+"∈s,则设置
匿名令牌
然后,随机选择v∈g。对于i∈[1,n],计算
keyextra(bsks,tskuser)→sks:对于i∈[1,n],当s中属性i是“+”时,令b=0,当i是“-”时,令b=1,计算
注:在上面的密钥发布过程中,kgc不能知道用户的具体属性,同时aac不能获得属性对应的密钥。
并计算
密文ct=(w,c1,c2,c3)。
m=c3/(e(v,c2)·e(σ,c1)),
解密成功。
在本发明中,由于不同属性的匿名令牌不存在数学意义上的关联,因此本发明可以扩展到多个属性令牌生成装置,仅需要对属性空间{1,2,…,n}进行划分,不同的子集合对应对应不同的属性令牌生成装置即可。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。