一种可撤销的属性基加密方法技术

技术编号:17011643 阅读:23 留言:0更新日期:2018-01-11 08:23
一种可撤销的属性基加密方法,通过可信认证机构为系统生成主公钥和主密钥,对需要注册的用户属性进行验证生成相应的私钥后将每个属性对应的属性用户群发送给数据管理服务器。数据管理服务器为每个用户生成相应的KEK二叉树,分发属性群密钥,对数据拥有者加密后的密文进行重加密,在收到用户的数据使用请求后将其发送给用户,若可信认证机构收到用户属性群需要更新的请求时,能及时更新用户属性群,并将更新后的用户名单通知给数据管理服务器,由其执行用户属性群的密钥更新。当且仅当用户未被撤销出属性群,并且被赋予权限才能够进行解密。该发明专利技术不仅实现了访问策略的灵活表达,而且具有良好的扩展性和实用性,确保了加密数据的前后向安全性。

【技术实现步骤摘要】
一种可撤销的属性基加密方法
本专利技术涉及网络文件加密,具体是一种可撤销的属性基加密方法。
技术介绍
近年来,面对海量用户,密钥滥用一直是威胁用户隐私及加密数据安全的难题。一种支持细粒度属性撤销的属性集加密方案相比之前的加密方案具有更多的优势:一方面数据拥有者仅需根据属性加密消息,只有符合密文属性要求的用户才能解密消息,降低了数据加密开销并保护了用户隐私;另一方面通过属性的与、或、非和门限操作实现了属性灵活的细粒度访问控制策略,也确保了加密数据的机密性。该方法的综合优势是在已有的属性基加密方案上,对加密方法进行修改,为每个用户都随机生成一个随机数用来实现属性的撤销,并且给出密钥密文更新参数的生成算法。然而,传统的访问控制方法在云计算环境下有局限性。比如需要有可信实体实施访问控制策略,而第三方不再可信,其可能单独或通过勾结某非法用户来非法访问用户的数据。当要撤销某个用户的权限时,会需要数据拥有者对涉及到的密文进行重加密,并更新用户属性密钥,若权限撤销频繁,负担就会很大。为了解决云环境下基于密文的访问控制的难题,通过数据管理服务器作为半可信第三方分发系统公钥及主密钥,为每个用户分配一个随机数实现属性撤销。在基于二叉树的基础上,通过向合法用户分发KEK二叉树,形成唯一的路径密钥,由数据拥有者对密文的加密保护和数据管理服务器对用户属性及信息的重加密。确保了只有拥有访问权限和未被撤销属性的用户才能解密加密的数据信息。若未被撤销的用户未能及时更新属性,就不能及时解密数据,实现了抗共谋攻击,满足了选择明文攻击。而目前的实现属性的及时撤销进行数据的细粒度访问控制还少有文档报道。
技术实现思路
本专利技术提供的一种可撤销的属性基加密方法,可信认证机构的工作负担,有效提高了方案效率,满足了抗共谋攻击的需求,确保了加密数据的机密性,实现了加密数据的前后向安全性。为了达到上述目的,本专利技术提供一种可撤销的属性基加密方法,该算法包含以下步骤:步骤1、系统初始化:由可信认证机构执行Setup(k)算法,公布公钥pk并保存主密钥mk;所述的可信认证机构指的是能被用户完全信任的主要负责为系统生成主公钥和主密钥,为用户生成、分发、撤销和更新属性私钥的权威机构;步骤2、可信认证机构生成用户私钥:可信认证机构对申请注册的用户进行属性验证,并通过KeyGen算法为每个用户生成相应的私钥,然后将每个属性对应的属性用户群发送给数据管理服务器;所述的属性用户群是指拥有相同属性的所有用户的集合;所述的数据管理服务器是指提供数据外包管理服务,控制外部用户对数据进行访问并提供相关服务的云提供商;步骤3、数据管理服务器分发属性群密钥:数据管理服务器收到属性用户群后,为用户群中的每个用户生成相应的KEK二叉树,并为用户分发属性群密钥;所述的KEK二叉树是指基于用户的二叉树,可以用来为属性未撤销的用户提供密钥更新信息,未撤销的用户根据密钥更新信息来更新自己相应的私钥,进而实现解密;步骤4、数据拥有者加密数据:数据拥有者基于属性域指定一个访问树,通过Encrypt算法对消息进行加密;所述的属性域是指由属性构成的一个域集合;所述的访问树是指通过构造树形结构实现对作为孩子节点用户的密钥分配;步骤5、数据管理服务器对数据密文重加密:数据管理服务器收到数据密文后,基于属性用户群对数据密文进行重加密,执行用户级的访问控制,采用数据重加密算法ReEncrypt;步骤6、用户解密数据:用户收到数据后,只要未被撤销出属性群,并且被授予权限,可以随时从头信息中解密出属性群密钥,即使用户未能实时更新自己的密钥,然后输入自己的属性列表执行Decrypt算法解密数据信息;所述的头信息是指数据管理服务器采用对称加密方法生成的信息;步骤7、可信认证机构在收到用户属性更新请求时,更新属性用户群,并将更新的用户名单通知给数据管理服务器,由数据管理服务器执行属性群密钥更新,用户需要访问数据时,接收到的就是更新后的数据信息。(1)在步骤1中,可信认证机构执行Setup(k)算法公布主公钥的计算公式为:①选取一个双线性群G0和双线性映射e:G0×G0→G1(1)②计算:Tj=gtj(1≤j≤n),y=e(g,g)α(2)③公布公钥:pk=(e,g,y,Tj(1≤j≤n))(3)可信认证机构保存主密钥:mk=(α,tj(1≤j≤n))(4)其中,k表示安全参数,G0,G1表示其阶为素数p的循环群,g表示G0的生成元,mk指的是主密钥,pk指的是主公钥,α是随机生成的,y,Tj是通过以上公式计算得出,t1,t2,tn∈Zp*。(2)在步骤2中,认证机构对用户的属性进行验证的计算公式为:①随机为每个用户选取唯一的r∈Zp*,计算:d0=gα-r(5)②对每个属性αj∈ω,计算:③发送相应的私钥给每个用户:其中d0,dj是由公式计算所得,表示私钥的一部分,skω指的是用户的属性私钥,ω指的是属性集合。然后认证机构将每个属性αj∈ω对应的属性用户群Uj发送给数据管理服务器,其中Uj指的是同时包含αj属性的用户的集合。(3)在步骤3中,数据管理服务器收到属性用户群后,为属性用户群U中每一个用户生成相应的KEK二叉树,然后为每一个用户分发属性群密钥,具体的构造过程为:①将每个成员都分布到二叉树的叶子节点上,为树中所有的节点vj都随机生成一个密钥KEK,记为KEKj。其中节点vj指的是构造的树模型中代表一个节点;②每个叶子节点到根节点所经过的节点称为路径节点,路径节点所代表的密钥集合即为每个用户ut∈U的专属路径密钥,记为PKt。如二叉树中用户u2所存储的路径密钥为PK2={KEK9,KEK4,KEK2,KEK1}。③对于每个Uj,存在一个相应的最小覆盖元,它可以覆盖所有和Uj中的成员对应的叶子结点,记Uj的最小覆盖元为KEK(Uj)。(4)在步骤4中,数据拥有者基于属性域指定一个访问树T,通过Encrypt(m,T,pk)算法对消息m进行加密,具体的计算公式为:①第一层加密:计算:c0=gs,c1=mys=me(g,g)as(8)其中T表示的是构造的指定的访问树模型,s是选取的随机数,s∈Zp*。②第二层加密:设置访问树T根节点的值为待共享的值s,将根节点置为已分配,其所有孩子节点标记为未分配,对每个未分配的非叶子节点执行以下递归算法,若标识符号为∧,且它的孩子节点标记为未分配,采用模加机制赋值给孩子节点。对每个孩子节点赋予一个随机数si(1≤si≤p-1),最后一个孩子节点的值为:标记这些节点为已分配;若标识为∨,且它的孩子节点标记为未分配。其中s表示设置的孩子节点,并标记节点为已分配,p表示达到的最大上限,si表示每个孩子节点分配的随机数。③对每个叶子节点αj,i∈Y(Y表示访问树T的叶子节点的集合,Y∧表示∧节点的t-1个孩子叶子节点集合,Y∨表示∨节点的孩子叶子节点,i表示访问树中叶子节点所对应的索引值,计算cj,i表示每个叶子节点所对应的密文)。④返回密文数据拥有者将此密文安全外包给数据管理服务器。(5)在步骤5中,数据管理服务器收到数据密文后,采用数据重加密算法ReEncrypt(cT,U),具体的过程如下:①对于任意的Uj∈U,计算:则密文其中kj∈ZP*是随机选择的,cj,i′表示加密后的叶子节本文档来自技高网
...
一种可撤销的属性基加密方法

【技术保护点】
一种可撤销的属性基加密方法,其特征在于,该方法包括以下步骤:步骤1、系统初始化:由可信认证机构执行Setup(k)算法,公布公钥pk并保存主密钥mk,可信认证机构执行Setup(k)算法公布主公钥的计算公式为:①选取一个双线性群G0和双线性映射e:G0×G0→G1        (1)②计算:

【技术特征摘要】
1.一种可撤销的属性基加密方法,其特征在于,该方法包括以下步骤:步骤1、系统初始化:由可信认证机构执行Setup(k)算法,公布公钥pk并保存主密钥mk,可信认证机构执行Setup(k)算法公布主公钥的计算公式为:①选取一个双线性群G0和双线性映射e:G0×G0→G1(1)②计算:③公布公钥:pk=(e,g,y,Tj(1≤j≤n))(3)可信认证机构保存主密钥:mk=(α,tj(1≤j≤n))(4)其中,k表示安全参数,G0,G1表示其阶为素数p的循环群,g表示G0的生成元,mk指的是主密钥,pk指的是主公钥,α是随机生成的,y,Tj是通过以上公式计算得出,t1,t2,tn∈Zp*;所述的可信认证机构指的是能被用户完全信任的主要负责为系统生成主公钥和主密钥,为用户生成、分发、撤销和更新属性私钥的权威机构;步骤2、可信认证机构生成用户私钥:可信认证机构对申请注册的用户进行属性验证,并通过KeyGen算法为每个用户生成相应的私钥,然后将每个属性对应的属性用户群发送给数据管理服务器,认证机构对用户的属性进行验证的计算公式为:①随机为每个用户选取唯一的r∈Zp*,计算:d0=gα-r(5)②对每个属性αj∈ω,计算:③发送相应的私钥给每个用户:其中d0,dj是由公式计算所得,表示私钥的一部分,这里的用户个数远远小于选取的大素数p,αj表示随机数生成的用户对应的每个属性值,skω指的是用户的属性私钥,ω指的是属性集合;然后认证机构将每个属性αj∈ω对应的属性用户群Uj发送给数据管理服务器,其中Uj指的是同时包含αj属性的所有用户集合;所述的属性用户群是指拥有相同属性的所有用户的集合;所述的数据管理服务器是指提供数据外包管理服务,控制外部用户对数据进行访问并提供相关服务的云提供商;步骤3、数据管理服务器分发属性群密钥:数据管理服务器收到属性用户群后,为用户群中的每个用户生成相应的KEK二叉树,并为用户分发属性群密钥,具体的构造过程为:①将每个成员都分布到二叉树的叶子节点上,为树中所有的节点vj都随机生成一个密钥KEK,记为KEKj;其中节点vj指的是构造的树模型中代表一个节点;②每个叶子节点到根节点所经过的节点称为路径节点,路径节点所代表的密钥集合即为每个用户ut∈U的专属路径密钥,记为PKt;如二叉树中用户u2所存储的路径密钥为PK2={KEK9,KEK4,KEK2,KEK1};③对于每个Uj,存在一个相应的最小覆盖元,它可以覆盖所有和Uj中的成员对应的叶子结点,记Uj的最小覆盖元为KEK(Uj);所述的KEK二叉树是指基于用户的二叉树,可以用来为属性未撤销的用户提供密钥更新信息,未撤销的用户根据密钥更新信息来更新自己相应的私钥,进而实现解密;步骤4、数据拥有者加密数据:数据拥有者基于属性域指定一个访问树T,通过Encrypt(m,T,pk)算法对消息m进行加密,具体的计算公式为:①第一层加密:计算:c0=gs,c1=mys=me(g,g)as(8)其中s是选取的随机数,m指的是消息,T指的是构造的访问树,s∈Zp*;②第二层加密:设置访问树T根节点的值为待共享的值s,将根节点置为已分配,其所有孩子节点标记为未分配,对每个未分配的非叶子节点执行以下递归算法,若标识符号为∧,且它的孩子节点标记为未分配,采用模加机制赋值给孩子节点,对每个孩子节点赋予一个随机数si(1≤si≤p-1),最后一个孩子节点的值为:标记这些节点为已分配;若标识为∨,且它的孩子节点标记为未分配。其中p表示能达到的最大上限,s表示设置的孩子节点,并标记节点为已分配。③对每个叶子节点αj,i∈Y(Y表示访问树T的叶子节点的集合,Y∧表示∧节点的t-1个孩子叶子节点集合,Y∨表示∨节点的孩子叶子节点,i表示访问树中叶子节点所对应的索引值,计算);其中cj,i指的是树中叶子节点对应的密文;④返回密文数据拥有者将此密文安全外包给数据管理服务器,通过Encrypt算法对消息进行加密;所述的属性域是指由属性构成的一个域集合;所述的访问树是指通过构造树形结构实现对作为孩子节点用户的密钥分配;步骤5、数据管理服务器对数据密文重加密:数据管理服务器收到数据密文后,基于属性用户群对数据密文进行重加密,执行用户级的访问控制,采用数据重加密算法ReEncrypt,具体的过程如下:①对于任意的Uj∈U,计算:

【专利技术属性】
技术研发人员:蒋雁梅韩德志毕坤王军田秋亭
申请(专利权)人:上海海事大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1