一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

无密钥托管且支持用户撤销的属性基加密系统及方法与流程

2022-03-08 20:02:24 来源:中国专利 TAG:
无密钥托管且支持用户撤销的属性基加密系统及方法与流程

本发明涉及云存储技术领域,具体涉及一种无密钥托管且支持用户撤销的属性基加密系统及方法。

背景技术

随着云计算技术的不断发展,由于其具有便捷、可扩展性等优点,许多个人和企业将自己的数据上传到云。然而,当大量隐私数据外包给公共云时,必须考虑几个挑战性问题,例如数据细粒度访问控制和数据安全。属性基加密技术就能很好的解决这个问题。但是,密钥托管问题是密文策略属性基加密(Ciphertext-policy attribute based encryption,CP-ABE)技术中一个固有的安全问题,密钥生成中心负责分发所有用户的私钥并且能够通过计算相应的私钥来解密每个密文。此外,CP-ABE直接应用于数据共享环境还带来了另一个挑战问题,即用户撤销问题。当用户从系统中撤销时,未撤销用户的密钥需要被更新。



技术实现要素:

有鉴于此,本发明的目的在于提供一种无密钥托管且支持用户撤销的属性基加密系统及方法,在无密钥托管支持用户撤销的属性基加密方案中,解密服务器辅助用户在解密算法中执行大量计算开销,能够抵抗恶意用户和撤销用户之间的合谋攻击。

为实现上述目的,本发明采用如下技术方案:

一种无密钥托管且支持用户撤销的属性基加密系统,包括:密钥授权端、云服务提供端、群管理端、加密端解密服务器和解密端;

所述密钥授权端,用于产生密钥授权端的公私钥对,群更新密钥,公开参数,并与解密端合作生成用户公钥,用户更新密钥,用户私钥;

所述云服务提供端,根据重加密密钥和密文,产生重加密后密文;

所述群管理端,用于产生群主密钥,群公钥和字典;根据公开参数、群主密钥、密钥授权端的公钥、用户身份,计算用户证书;根据群更新密钥,公开参数,生成更新后的群主密钥,群公钥,字典,重加密密钥和用户的更新密钥;

所述加密端,用于根据消息、公开参数、密钥授权端的公钥、用户公钥和群公钥,产生密文;

所述解密服务器,用于根据部分的更新的用户私钥和密文,产生转换消息;

所述解密端,用于根据随机密钥值和转换消息,输出消息。

一种无密钥托管且支持用户撤销的属性基加密系统的加密方法,包括以下步骤:

步骤S1:密钥授权端根据端输入安全参数λ,获得密钥授权端的公私钥对{PKKA,SKKA}、群更新密钥GUKKA和公开参数param;

步骤S2:群管理端根据公开参数param,生成群主密钥GMKver,群公钥GPKver和字典Dicver;

步骤S3:群管理端根据公开参数param,群主密钥GMKver,密钥授权端的公钥PKKA,用户身份UID,得到用户证书Certver;

步骤S4:密钥授权端和解密端获取用户证书Certver,公开参数param,群公钥GPKver,用户属性S,密钥授权端的私钥SKKA,合作生成用户私钥USKver,秘密值SKuser,用户公钥PKuser和用户更新密钥UKver;

步骤S5:加密端获取消息M,访问策略公开参数param,密钥授权端的公钥PKKA,用户公钥PKuser和群公钥GPKver,产生密文CTver;

步骤S6:群管理端获取群更新密钥GUKKA,公开参数param,产生更新后的群主密钥GMKver 1、群公钥GPKver 1,字典Dicver 1,重加密密钥ReKeyver 1和用户的更新密钥为UKver 1;

步骤S7:解密端获取用户私钥USKver、用户的更新密钥为UKver 1,得到更新后的用户私钥USKver 1;

步骤S8:云服务提供端根据重加密密钥ReKeyver 1,密文CTver,输出重加密后密文CTver 1;

步骤S9:解密服务器和解密端输入更新后的用户私钥USKver 1和密文CTver 1,输出消息M。

进一步的,所述步骤S1,具体包括以下步骤:

步骤S11:设G0和GT是两个阶为素数p的双线性群,g表示G0的生成元;e:G0×G0→GT表示一个双线性映射,H:{0,1}*→G0表示一个哈希函数;

定义Δi,S(X)=Πl∈s,l≠i(x-l)/(i-l)为拉格朗日插值,其中并且系统公开参数为param={G0,GT,p,g,H,e};

步骤S12:密钥授权端随机选择计算gβ和g1/β;密钥授权端公钥为PKKA={gβ},密钥授权端私钥为SKKA={β};另外,密钥授权端发送群更新密钥GUKKA=g1/β给群管理端。

进一步的,所述步骤S2中,具体包括以下步骤:

步骤S21:群管理端随机一个随机值计算和GID表示群的身份;群主密钥是GMKver={κver},群公钥是

步骤S22:群管理端设置一个字典Dicver用来存储用户更新密钥;字典被初始化为空,ver表示的是当前的版本;如果一个用户从群中撤销,那么GMKver、GPKver和Dicver的版本需要被更新为新版本ver 1。

进一步的,所述步骤S4中,具体包括以下步骤:

步骤S41:密钥授权端首先验证用户的身份,判断等式是否成立;如果等式不成立,算法输出⊥;否则,等式成立则表明该用户身份合法;密钥授权端计算

步骤S42:密钥授权端为用户随机选择计算并发送给用户;解密端随机选择一个秘密值SKuser为计算相应的公钥PKuser={gα,e(g,g)α};接着,密钥授权端输入一个元组(SKKA=β},rUID),解密端输入α,密钥授权端和解密端执行一个安全的两方安全计算协议(two-party computation,2PC),2PC输出w=(α rUID)β发给解密端;

步骤S43:解密端选择一个随机值计算POK(*)表示秘密值的知识证明,POK(X1,τ)和X1发送给密钥授权端;

步骤S44:密钥授权端先是计算接着随机选择生成作为用户的群私钥密钥授权端发送元组给用户,密钥授权端计算用户更新密钥UKver={UID,dver;1=H(UID),dver;2=(g×H(UID))1/β},并发送UKver给群管理端,群管理端将UKver存储进字典Dicver;

步骤S45:解密端随机选取计算解密端的个人身份私钥是随机密钥值是rk={t1,t2};

设S表示用户的属性集合,解密端为每个属性l∈S随机选择对于计算和解密端的属性私钥是

解密端为群GID选取一个随机值计算和解密端群私钥为USKGID={DGID,D,D′}。

进一步的,所述步骤S5具体包括以下步骤:

步骤S51:加密端定义一个访问策略树并选取两个随机值计算和

步骤S52:加密端为每个结点选择一个度为dx=kx-1的多项式qx。对于树的根结点R,设置qR(0)=s2;而对于树上其他的结点DO选择一个度dx的设置qx(0)=qparent(x)(index(x))的多项式;

步骤S53:令Y是树的叶子集合,M是要加密的明文,DO计算密文

进一步的,所述步骤S6具体包括以下步骤:

步骤S61:当用户从群中被撤销,群管理端需要更新群主密钥群公钥;群管理端随机选择计算更新后的群主密钥是GMKver 1={κver 1},更新后的群公钥是

步骤S62:群管理端计算重加密密钥

群管理端计算用户的更新密钥为群管理端发送UKver 1给解密端,存储元组UKver 1于字典中,并且字典更新为Dicver 1。

进一步的,所述步骤S7具体包括以下步骤:

对于解密端计算以及更新的属性私钥是更新的群私钥是USK′GID={DGID,D′,D1};输出更新的用户私钥USKver 1={rk,USKper,USK’S,USG’GID}。

进一步的,所述步骤S8具体包括以下步骤:更新密钥后,群管理端向云服务提供端请求重加密操作,云服务提供端接下来进行重加密操作,计算因此更新的密文是

进一步的,所述步骤S9具体包括以下步骤:

步骤S91:解密端发送数据访问请求后,云服务提供端将相应的CTver 1发送给解密服务器;

同时,解密端将部分私钥{USKper,USK′S,USK′GID}发送给解密服务器;

步骤S92:解密服务器输入USK′S和CTver 1,执行DecryptionNode(CTver 1,USK′S,x),其中x表示的一个结点;

如果x是一个叶子,设置v=att(x);如果v∈S,DecryptionNode(CTver 1,USK′S,x)的执行过程如下,输出的结果记作Fx。否则输出⊥;

x表示一个非叶子结点时,执行递归操作DecryptionNode(CTver 1,USK′S,x)。对于x的所有的孩子结点z,递归函数DecryptionNode(CTver 1,USK′S,x)又名为DecryptionNode(CTver 1,USK′S,z),输出结果记作Fz;Sx是孩子结点z的一个任意的kx大小的集合,需满足Fz≠⊥。如果不存在满足条件的集合,函数输出为⊥;否则,按照以下流程计算Fx,其中i=index(z),S′x={index(z):z∈Sx};

如果用户解密端的属性集合S满足访问策略那么其中R是的根结点;

步骤S93:当解密端是合法的群成员的时候,函数Decryption(CTver 1,USK′GID,GID)可以正确地输出结果,结果记作Fg;

步骤S94:解密服务器计算转换消息Mtran如下:

解密服务器发送Mtran={Mtran1,Mtran2,Cver 1,Fg,FR}给解密端,解密端接下来执行本地解密;

步骤S95:Local_Decrypt(rk,Mtran)→M:解密端计算和解密端恢复出消息M:

本发明与现有技术相比具有以下有益效果:

本发明基于属性基加密设计,用户的私钥与一组属性相关联,密文中嵌入了访问策略,如果属性满足访问策略,则用户可以正确解密出密文,在保证可靠性的前提下,有效提高云存储中的访问控制和数据安全。。

附图说明

图1是本发明一实施例中的系统原理框图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图1,本发明提供一种无密钥托管且支持用户撤销的属性基加密系统,包括:

密钥授权端,用于产生密钥授权端的公私钥对{PKKA,SKKA}、群更新密钥GUKKA和公开参数param;根据密钥授权端的私钥SKKA,公开参数param,与解密端合作生成用户公钥PKuser和用户更新密钥UKver、用户私钥USKver;

云服务提供端,用于根据重加密密钥ReKeyver 1,密文CTver,产生重加密后密文CTver 1;

群管理端,用于产生群主密钥GMKver、群公钥GPKver和字典Dicver;根据公开参数param、群主密钥GMKver、密钥授权端的公钥PKKA、用户身份UID,计算用户证书Certver;根据群更新密钥GUKKA,公开参数param,生成更新后的群主密钥GMKver 1、群公钥GPKver 1,字典Dicver 1,重加密密钥ReKeyver 1和用户的更新密钥为UKver 1;

加密端,用于根据消息M、公开参数param、密钥授权端的公钥PKKA、用户公钥PKuser和群公钥GPKver,产生密文CTver;

解密服务器,用于根据部分的更新的用户私钥USKver 1和密文CTver 1,产生转换消息Mtran;

解密端,用于根据随机密钥值rk和转换消息Mtran,输出消息M。

本实施例还提供一种无密钥托管且支持用户撤销的属性基加密方法,包括以下步骤:

步骤S1:密钥授权端输入安全参数λ,输出密钥授权端的公私钥对{PKKA,SKKA}、群更新密钥GUKKA和公开参数param。

在本实施例中,所述步骤S1具体包括以下步骤:

步骤S11:G0和GT是两个阶为素数p的双线性群,g表示G0的生成元。e:G0×G0→GT表示一个双线性映射,H:{0,1}*→G0表示一个哈希函数。定义Δi,S(x)=Πl∈S,l≠i(x-l)/(i-l)为拉格朗日插值,其中并且系统公开参数为param={G0,GT,p,g,H,e}。

步骤S12:密钥授权端随机选择计算gβ和g1/β。密钥授权端公钥为PKKA={gβ},密钥授权端私钥为SKKA={β}。另外,密钥授权端发送群更新密钥GUKKA=g1/β给群管理端。

步骤S2:群管理端输入公开参数param,生成群主密钥GMKver,群公钥GPKver和字典Dicver。

在本实施例中,所述步骤S2具体包括以下步骤:

步骤S21:群管理端随机一个随机值计算和GID表示群的身份。因此,群主密钥是GMKver={κver},群公钥是

步骤S22:群管理端设置一个字典Dicver用来存储用户更新密钥。字典被初始化为空,ver表示的是当前的版本。如果一个用户从群中撤销,那么GMKver、GPKver和Dicver的版本需要被更新为新版本ver 1。

步骤S3:群管理端输入公开参数param,群主密钥GMKver,密钥授权端的公钥PKKA,用户身份UID,输出用户证书Certver。

在本实施例中,所述步骤S3具体包括以下步骤:

当群中新加入用户时,假设该用户的身份为UID,那么群管理端将会根据该用户的UID为其生成一个证书并把证书发送给解密端。

步骤S4:密钥授权端和解密端输入用户证书Certvev,公开参数param,群公钥GPKver,用户属性S,密钥授权端的私钥SKKA,输出用户私钥USKver,秘密值SKuser,用户公钥PKuser和用户更新密钥UKver。

在本实施例中,所述步骤S4具体包括以下步骤:

步骤S41:密钥授权端首先验证用户的身份,判断等式是否成立。如果等式不成立,算法输出⊥。否则,等式成立则表明该用户身份合法。密钥授权端计算

步骤S42:密钥授权端为用户随机选择计算并发送给用户。解密端随机选择一个秘密值SKuser为计算相应的公钥PKuser={gα,e(g,g)α}。接着,密钥授权端输入一个元组(SKKA={β},rUID),解密端输入α,密钥授权端和解密端执行一个安全的两方安全计算协议(two-party computation,2PC),2PC输出w=(α rUID)β发给解密端;

步骤S43:解密端选择一个随机值计算POK(*)表示秘密值的知识证明,POK(X1,τ)和X1发送给密钥授权端;

步骤S44:密钥授权端先是计算接着随机选择生成作为用户的群私钥密钥授权端发送元组给用户,密钥授权端计算用户更新密钥UKver={UID,dver;1=H(UID),dver;2=(g×H(UID))1/β},并发送UKver给群管理端,群管理端将UKver存储进字典Dicver;

步骤S45:解密端随机选取计算解密端的个人身份私钥是随机密钥值是rk={t1,t2}。S表示用户的属性集合,解密端为每个属性l∈S随机选择对于计算和因此解密端的属性私钥是解密端为群GID选取一个随机值计算和解密端群私钥为USKGID={DGID,D,D′}。

步骤S5:加密端输入消息M,访问策略公开参数param,密钥授权端的公钥PKKA,用户公钥PKuser和群公钥GPKver,产生密文CTver;。

在本实施例中,所述步骤S5具体包括以下步骤:

步骤S51:加密端定义一个访问策略树加密端选取两个随机值计算和

步骤S52:加密端为每个结点选择一个度为dx=kx-1的多项式qx。对于树的根结点R,设置qR(0)=s2。而对于树上其他的结点DO选择一个度dx的设置qx(0)=qparent(x)(index(x))的多项式。

步骤S53:令Y是树的叶子集合,M是要加密的明文,DO计算密文

步骤S6:群管理端输入群更新密钥GUKKA,公开参数param,产生更新后的群主密钥GMKver 1、群公钥GPKver 1,字典Dicver 1,重加密密钥ReKeyver 1和用户的更新密钥为UKver 1。

在本实施例中,所述步骤S6具体包括以下步骤:

步骤S61:当用户从群中被撤销,群管理端需要更新群主密钥群公钥。群管理端随机选择计算更新后的群主密钥是GMKver 1={κver 1},更新后的群公钥是

步骤S62:群管理端计算重加密密钥该密钥将会在重加密阶段使用。群管理端计算用户的更新密钥为群管理端发送UKver 1给解密端,存储元组UKver 1于字典中,并且字典更新为Dicver 1。

步骤S7:解密端输入用户私钥USKver、用户的更新密钥为UKver 1,输出更新后的用户私钥USKver 1。

在本实施例中,所述步骤S7具体包括以下步骤:

群中未撤销用户执行此算法,用于更新他们各自的私钥。对于解密端计算以及因此,更新的属性私钥是更新的群私钥是USK′GID={DGID,D′,D1}。故,输出更新的用户私钥USKver 1={rk,USKper,USK′S,USK′GID}。

步骤S8:云服务提供端,用于根据重加密密钥ReKeyver 1,密文CTver,输出重加密后密文CTver 1。

在本实施例中,所述步骤S8具体包括以下步骤:

更新密钥后,群管理端向云服务提供端请求重加密操作。云服务提供端接下来进行重加密操作,计算因此更新的密文是

步骤S9:解密服务器和解密端输入更新后的用户私钥USKver 1和密文CTver 1,输出消息M

在本实施例中,所述步骤S9具体包括以下步骤:

步骤S91:解密端发送数据访问请求后,云服务提供端将相应的CTver 1发送给解密服务器。同时,解密端将部分私钥{USKper,USK′S,USK′GID}发送给解密服务器。

步骤S92:解密服务器输入USK′S和CTver 1,执行DecryptionNode(CTver 1,USK′S,x),其中x表示的一个结点。如果x是一个叶子,设置v=att(x)。如果v∈S,DecryptionNode(CTver 1,USK′S,x)的执行过程如下,输出的结果记作Fx。否则输出⊥。

x表示一个非叶子结点时,执行递归操作DecryptionNode(CTver 1,USK′S,x)。对于x的所有的孩子结点z,递归函数DecryptionNode(CTver 1,USK′S,x)又名为DecryptionNode(CTver 1,USK′S,z),输出结果记作Fz。Sx是孩子结点z的一个任意的kx大小的集合,需满足Fz≠⊥。如果不存在满足条件的集合,函数输出为⊥。否则,按照以下流程计算Fx,其中i=index(z),S′x=(index(z):z∈Sx}。

如果用户解密端的属性集合S满足访问策略那么其中R是的根结点。

步骤S93:当解密端是合法的群成员的时候,函数Decryption(CTver 1,USK′GID,GID)可以正确地输出结果,结果记作Fg。

步骤S94:解密服务器计算转换消息Mtran如下:

解密服务器发送Mtran={Mtran1,Mtran2,Cver 1,Fg,FR}给解密端,解密端接下来执行本地解密。

步骤S95:Local_Decrypt(rk,Mtran)→M:解密端计算和解密端恢复出消息M:

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献