本发明涉及一种基于代理撤销的密钥策略属性基加密方法。
背景技术:
在计算机发展的领域中,数据的安全性和是否合法访问不能够得到保证,大量信息数据之间的传输随时都存在着隐私泄露的可能,因此,如何安全而高效的存储数据,共享数据和处理数据是保证数据完整性和安全性的重中之重。
属性基加密技术用属性集合来表征用户,对其加密,只有具有特定属性的用户才能成功解密。属性基加密分为密钥策略属性基加密(kp-abe)和密文策略属性基加密(cp-abe)。属性基加密技术在实际应用中存在属性到期和变更等问题需要对属性进行撤销,属性撤销机制可分为直接撤销和间接撤销两类,直接撤销是指发送者在加密密文时直接指定撤销列表,而间接撤销是由第三方的授权机构进行撤销。现有的撤销方案很多,但是间接撤销模式下大部分方案存在撤销延时、密文空间大或者需要更新密钥与密文等问题。
技术实现要素:
本发明提供一种基于代理撤销的密钥策略属性基加密方法,引入半可信的第三方授权机构所持有的所有属性的撤销列表,并且在密文中绑定任意多个属性的用户撤销列表信息,实现了细粒度的即时属性撤销方案,提高了用户属性的撤销效率。
为了达到上述目的,本发明提供一种基于代理撤销的密钥策略属性基加密方法,包含以下步骤:
步骤s1、授权机构输入安全参数,用户的数量m和密文属性集中属性数量最大的可能值n,调用系统初始设置算法,生成系统公钥pk和系统主密钥msk;
步骤s2、授权机构输入用户身份标识id,访问结构a,系统主密钥msk和系统公钥pk,授权机构调用密钥生成算法,输出用户私钥skid,a;
步骤s3、数据发送者输入明文m,密文属性集合γ和系统公钥pk,调用加密算法,生成密文ct;
步骤s4、授权机构输入系统主密钥msk和系统初始属性集q中的所有属性i的撤销列表{rli}i∈q,调用代理撤销密钥生成算法,生成所有属性的代理撤销密钥{prki}i∈q;
步骤s5、撤销代理服务器输入代理撤销密钥{prki}i∈q,密文中ct的一部分密文e3和用户身份标识id,调用代理密文转换算法,生成用于属性撤销运算的密文e'3,并将包含了e'3的最终密文ct'发送给数据接收者;
步骤s6、数据接收者输入最终密文ct'和用户私钥skid,a,运行解密算法,如果其属性i满足访问结构a,即用户身份标识id的属性i未撤销,则成功解密并输出明文m;否则,解密失败输出终止符⊥。
所述的步骤s1包含以下步骤:
步骤s1.1、定义非对称双线性映射:e:g0×g1→gt,其中,g0和g1是两个阶为素数p的加法群,gt为阶为素数p的乘法群,g为g0的一个随机生成元,h为g1的生成元;
步骤s1.2、定义系统初始属性集q,密文属性集γ和整数
步骤s1.3、定义用户数量m和密文属性集γ中属性数目的最大可能值n;
步骤s1.4、从zp中为每个属性i∈q随机生成一个vi阶撤销多项式fi,其中vi为访问树a中的叶子节点i的节点阈值;
步骤s1.5、从g0中随机选取n+1个元素gk={g1,g2,…,gn+1},计算gk=ggk,定义函数
步骤s1.6、随机选取一个元素α∈g1,对
步骤s1.7、随机选取一个元素β∈zp,计算ω=gβ;
步骤s1.8、输出系统公钥pk=(g,h,{gk}k∈{1,2,…,n+1},{hj}j∈{1,2,…,m,m+2,…,2m},ω),系统主密钥msk=(γ,{gk}k∈{1,2,…,n+1},{fi}i∈q,α,β)。
所述的步骤s2包含以下步骤:
步骤s2.1、定义访问树a,内部节点为门限操作符,叶子节点为系统属性值,num(x)表示除叶子节点外的节点x的子节点的个数,对于一个内部节点x,其阈值vx满足1≤vx≤num(x),当vx=1时,表示“或”门;vx=num(x)时,表示“与”门;
步骤s2.2、为访问树a中的每个节点x随机选取vx-1阶多项式qx,多项式将从根节点自上而下依次选定;
步骤s2.3、对于根节点r,令qr(0)=αidβ;
步骤s2.4、对于其他的节点x,令qx(0)=qparent(x)(index(x)),其中parent(x)为节点x的父节点,index(x)为节点x在其所有兄弟节点中的序号,且其满足1≤index(x)≤num(parent(x));
步骤s2.5、定义l为访问树a中所有叶子节点x的属性集合,每个叶子节点对应的属性为attr(x),令i=attr(x);
步骤s2.6、对于访问树a的叶子节点x,选取随机数ε∈zp,计算
所述的步骤s3包含以下步骤:
步骤s3.1、随机选取一个元素s∈zp,计算部分密文e0=gs和e'0=hs;
步骤s3.2、计算e1=m·e(g,hn)s,e2=ωs,e3={g(i)s}i∈γ,e4={(gi)s}i∈γ,其中e1,e2,e3,e4均为密文ct的一部分;
步骤s3.3、输出密文ct=(e0,e'0,e1,e2,e3,e4,γ)。
所述的步骤s4包含以下步骤:
步骤s4.1、授权机构对每个系统属性i∈q,
步骤s4.2、生成代理撤销密钥
所述的步骤s5包含以下步骤:
撤销代理服务器根据数据发送者所发送的部分密文e3和用户身份标识id,结合密文属性集γ中的密文属性i的代理撤销密钥{prki}i∈γ,生成用于属性撤销运算的密文
其中
所述的步骤s6包含以下步骤:
步骤s6.1、对于用户私钥访问树a中的每个叶子节点x,其属性满足i∈γ,并且用户id的属性i未撤销,根据密文ct'和用户私钥skid,a,计算解密结果fx:
否则返回⊥;
步骤s6.2、对于访问树a的内部节点x,记nx为节点x的子节点z输出结果不为⊥的集合,若集合元素数量小于节点x阈值vx,则fx=⊥;记sx为从nx中选取的任意vx个子节点的集合,则fx做如下计算:
其中
步骤s6.3、对于访问树a的根节点r:
步骤s6.4、最后输出明文
正确性:
本发明还提供一种基于代理撤销的密钥策略属性基加密系统,包含:
授权机构,其调用系统初始设置算法,生成系统公钥发送给数据发送者,生成系统主密钥发送给撤销代理服务器,调用密钥生成算法,生成用户私钥发送给数据接收者,调用代理撤销密钥生成算法,生成代理撤销密钥发送给撤销代理服务器;
撤销代理服务器,其调用代理密文转换算法,生成用于属性撤销运算的密文发送给数据接收者;
数据发送者,其调用加密算法,生成密文发送给撤销代理服务器;
数据接收者,其调用解密算法,如果属性未撤销,则解密成功输出明文,否则,解密失败输出终止符。
与现有技术相比,本发明具有以下优点:
1、本发明提供了一种基于代理撤销的密钥策略属性基加密方案,引入半可信第三方机构,将撤销信息绑定到密文中,实现细粒度的用户属性i的即时撤销。只有当用户id的属性i未撤销,数据接收者才能成功解密出密文。
2、本发明不需要更新密钥,也不需要对密文进行重加密,大大降低了授权机构的撤销负荷。通过引入半可信代理持有的系统所有属性撤销列表,并在密文中附加任意多个属性的用户撤销列表信息,从而实现用户属性的即时撤销。
附图说明
图1是本发明提供的一种基于代理撤销的密钥策略属性基加密方法的流程图。
图2是本发明提供的一种基于代理撤销的密钥策略属性基加密系统的示意图。
具体实施方式
以下根据图1和图2,具体说明本发明的较佳实施例。
本发明针对现有的间接撤销存在的问题,引入第三方授权机构所持有的所有属性的撤销列表,并且在密文中绑定任意多个属性的用户撤销列表信息,数据接收者需要根据该代理加密的密文进行解密,从而实现了细粒度的基于代理的即时属性撤销。
如图1所示,本发明提供一种基于代理撤销的密钥策略属性基加密方法,包含以下步骤:
步骤s1、授权机构输入安全参数,用户的数量m和密文属性集中属性数量最大的可能值n,调用系统初始设置算法,生成系统公钥pk和系统主密钥msk;
步骤s2、授权机构输入用户身份标识id,访问结构a,系统主密钥msk和系统公钥pk,授权机构调用密钥生成算法,输出用户私钥skid,a;
步骤s3、数据发送者输入明文m,密文属性集合γ和系统公钥pk,调用加密算法,生成密文ct;
步骤s4、授权机构输入系统主密钥msk和系统初始属性集q中的所有属性i的撤销列表{rli}i∈q,调用代理撤销密钥生成算法,生成所有属性的代理撤销密钥{prki}i∈q;
步骤s5、撤销代理服务器输入代理撤销密钥{prki}i∈q,密文中ct的一部分密文e3和用户身份标识id,调用代理密文转换算法,生成用于属性撤销运算的密文e'3,并将包含了e'3的最终密文ct'发送给数据接收者;
步骤s6、数据接收者输入最终密文ct'和用户私钥skid,a,运行解密算法,如果其属性i满足访问结构a,即用户身份标识id的属性i未撤销,则成功解密并输出明文m;否则,解密失败输出终止符⊥。
所述的步骤s1包含以下步骤:
步骤s1.1、定义非对称双线性映射:e:g0×g1→gt,其中,g0和g1是两个阶为素数p的加法群,gt为阶为素数p的乘法群,g为g0的一个随机生成元,h为g1的生成元;
步骤s1.2、定义系统初始属性集q,密文属性集γ和整数
步骤s1.3、定义用户数量m和密文属性集γ中属性数目的最大可能值n;
步骤s1.4、从zp中为每个属性i∈q随机生成一个vi阶撤销多项式fi,其中vi为访问树a中的叶子节点i的节点阈值;
步骤s1.5、从g0中随机选取n+1个元素gk={g1,g2,…,gn+1},计算gk=ggk,定义函数
步骤s1.6、随机选取一个元素α∈g1,对
步骤s1.7、随机选取一个元素β∈zp,计算ω=gβ;
步骤s1.8、输出系统公钥pk=(g,h,{gk}k∈{1,2,…,n+1},{hj}j∈{1,2,…,m,m+2,…,2m},ω),系统主密钥msk=(γ,{gk}k∈{1,2,…,n+1},{fi}i∈q,α,β)。
所述的步骤s2包含以下步骤:
步骤s2.1、定义访问树a,内部节点为门限操作符,叶子节点为系统属性值,num(x)表示除叶子节点外的节点x的子节点的个数,对于一个内部节点x,其阈值vx满足1≤vx≤num(x),当vx=1时,表示“或”门;vx=num(x)时,表示“与”门;
步骤s2.2、为访问树a中的每个节点x随机选取vx-1阶多项式qx,多项式将从根节点自上而下依次选定;
步骤s2.3、对于根节点r,令qr(0)=αidβ;
步骤s2.4、对于其他的节点x,令qx(0)=qparent(x)(index(x)),其中parent(x)为节点x的父节点,index(x)为节点x在其所有兄弟节点中的序号,且其满足1≤index(x)≤num(parent(x));
步骤s2.5、定义l为访问树a中所有叶子节点x的属性集合,每个叶子节点对应的属性为attr(x),令i=attr(x);
步骤s2.6、对于访问树a的叶子节点x,选取随机数ε∈zp,计算
所述的步骤s3包含以下步骤:
步骤s3.1、随机选取一个元素s∈zp,计算部分密文e0=gs和e'0=hs;
步骤s3.2、计算e1=m·e(g,hn)s,e2=ωs,e3={g(i)s}i∈γ,e4={(gi)s}i∈γ,其中e1,e2,e3,e4均为密文ct的一部分;
步骤s3.3、输出密文ct=(e0,e'0,e1,e2,e3,e4,γ)。
所述的步骤s4包含以下步骤:
步骤s4.1、授权机构对每个系统属性
步骤s4.2、生成代理撤销密钥
所述的步骤s5包含以下步骤:
撤销代理服务器根据数据发送者所发送的部分密文e3和用户身份标识id,结合密文属性集γ中的密文属性i的代理撤销密钥{prki}i∈γ,生成用于属性撤销运算的密文
其中
所述的步骤s6包含以下步骤:
步骤s6.1、对于用户私钥访问树a中的每个叶子节点x,其属性满足i∈γ,并且用户id的属性i未撤销,根据密文ct'和用户私钥skid,a,计算解密结果fx:
否则返回⊥;
步骤s6.2、对于访问树a的内部节点x,记nx为节点x的子节点z输出结果不为⊥的集合,若集合元素数量小于节点x阈值vx,则fx=⊥;记sx为从nx中选取的任意vx个子节点的集合,则fx做如下计算:
其中
步骤s6.3、对于访问树a的根节点r:
步骤s6.4、最后输出明文
正确性:
如图2所示,本发明还提供一种基于代理撤销的密钥策略属性基加密系统,包含:
授权机构1,其调用系统初始设置算法,生成系统公钥发送给数据发送者,生成系统主密钥发送给撤销代理服务器,调用密钥生成算法,生成用户私钥发送给数据接收者,调用代理撤销密钥生成算法,生成代理撤销密钥发送给撤销代理服务器;
撤销代理服务器2,其调用代理密文转换算法,生成用于属性撤销运算的密文发送给数据接收者;
数据发送者3,其调用加密算法,生成密文发送给撤销代理服务器;
数据接收者4,其调用解密算法,如果属性未撤销,则解密成功输出明文,否则,解密失败输出终止符。
本发明主要是针对现有的间接撤销存在的问题,引入半可信的第三方授权机构所持有的所有属性的撤销列表,并且在密文中绑定任意多个属性的用户撤销列表信息,提供一种基于代理撤销的密钥策略属性基加密方案,实现了细粒度的即时属性撤销方案,提高了用户属性的撤销效率。
为了测试本发明的效果,对本发明与传统方案进行比较,本发明有以下优势:
1、支持一个或任意多个属性的撤销,同时也支持系统用户及系统属性的撤销;
2、只要求撤销代理服务器实时在线,减轻了授权机构的工作量;
3、完成了细粒度的访问控制,实现了抗共谋撤销的攻击。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。