一种云环境下基于条件广播代理重加密的数据保护方法与流程

文档序号:16819685发布日期:2019-02-10 22:39阅读:460来源:国知局
一种云环境下基于条件广播代理重加密的数据保护方法与流程

本发明属于数据安全技术领域,具体涉及一种云环境下基于条件广播代理重加密的数据保护方法。



背景技术:

近年来,随着云计算技术的发展应用以及万物互联进程的加深,云存储中的数据安全受到了广泛的关注。当前针对云存储中数据的加密保护,通常采用身份加密和属性加密等机制来加密数据。属性加密算法是在身份加密的基础上提出的,在公钥加密算法的思想中引入了访问结构,能够实现细粒度的访问控制,其根据访问结构生成密钥或者密文,使得满足指定访问结构的用户才可以解密,从而控制加密数据只能在满足访问条件的用户集合中共享。

为了将云存储中的加密数据共享给其他用户,现有的做法是数据所有者从云存储中下载加密数据然后重新加密发给共享者,这个过程会消耗大量的网络和计算资源。代理重加密算法允许云存储平台在数据所有者的授权下将数据所有者加密的数据转发成数据共享者加密的数据,这样数据共享者直接从云存储中下载重加密的密文即可解密出数据。这个过程节省了大量的资源,而且云存储平台也无法得到数据的任何信息。标准的代理重加密算法(如基于身份的代理重加密算法)虽然可以实现数据的转发,但是不能实现重加密的条件控制,一旦云存储平台取得了数据所有者的重加密密钥,则可以转发其拥有的所有密文。

为此,条件代理重加密算法被提出来实现对数据转发的条件控制,数据所有者在加密数据和生成重加密密钥时均赋予相应的条件,这样某个重加密密钥只能重加密与之匹配条件的加密数据,其他的加密数据则没有权限重加密,提高了云存储中数据的安全性。条件代理重加密技术涉及的实体为密钥机构、存储平台、数据所有者和用户,其系统图如图1所示,实现过程包括以下步骤:

1)用户密钥生成。密钥机构是可信的密钥管理方,为用户生成公钥和私钥。

2)数据加密。数据所有者U1在上传数据到存储平台前先定义关键字集合w,然后使用自己的公钥、关键字集合w加密数据M,得到原始密文CTA。

3)重加密密钥生成。给定关键字集合w*、数据所有者U1的私钥、用户U2的公钥,生成重加密密钥。

4)数据重加密。如果w=w*,存储平台便可以采用重加密密钥将原始密文CTA成功重加密为以用户U2公钥加密的密文CTB。

5)数据解密。用户U2从存储平台获取加密数据CTB后,使用自己的私钥解密出数据。

现有云环境下,条件代理重加密方案仅支持数据所有者在加密密文的时候设置简单的条件(如关键字集合),不能支持细粒度复杂的访问控制条件;在多接收者的情况下需要为每一个接收者生产一个重加密密钥,并在云存储中为每个用户存储一份重加密密文,需要消耗大量的计算资源和存储资源。



技术实现要素:

本发明提供一种云环境下基于条件广播代理重加密的数据保护方法,支持数据所有者在加密密文的时候设置细粒度且复杂的访问控制条件,只有属性满足转发条件的用户才能将密文重加密给其他用户群组。

本发明提供的一种云环境下基于条件广播代理重加密的数据保护方法,通过如下步骤实现:

第一步,系统初始化。

第二步,密钥生成。

第三步,数据加密。

第四步,重加密密钥生成。

第五步,数据重加密。

第六步,数据解密。

与现有云环境下条件代理重加密数据访问控制方案相比,本发明的优点在于:

1)本发明采用基于访问控制条件代理重加密方法,支持数据所有者在加密数据的时候设置细粒度且复杂的访问控制条件,只有属性满足访问控制条件的用户才能将密文重加密给其他用户,防止数据转发者任意重加密数据所有者的密文,提高了云计算环境中数据的安全性。

2)本发明采用基于身份的广播代理重加密算法,利用广播加密机制不仅允许数据所有者一次加密的数据可供群组用户使用,而且允许数据转发者将密文一次重加密给新的群组用户,节约云计算中的计算和存储成本,满足大规模用户的数据安全存储需求,提高了计算和存储效率。

附图说明

图1是条件代理重加密技术的框架。

图2是访问控制条件的结构。

图3是本发明的云环境下基于条件代理重加密的数据保护方法的框架。

具体实施方式

下面将结合附图和实施例对本发明作进一步的详细说明。

本发明首先提供一种云环境下基于条件代理重加密的数据保护框架结构,如图3所示,所述的框架结构包括属性机构、云计算平台、数据所有者、数据转发者和授权用户。

(1)属性机构。属性机构是可信的第三方,建立系统公钥和系统主密钥。同时,属性机构为用户分配用户标识和属性,并生成用户私钥和属性私钥。

(2)云计算平台。云计算平台是半可信的第三方,用于存储和管理数据所有者上传的数据。另外,当接收到数据转发者对原始密文的转发申请(转发申请中包含数据转发者生成的重加密密钥)时,云计算平台使用重加密密钥为存储的原始密文执行重加密操作,产生重加密密文。

(3)数据所有者。数据所有者即为数据的拥有者,加密数据的同时定义数据的授权用户群组和转发条件,加密后原始密文数据上传到云计算平台进行存储。

(4)数据转发者。数据转发者是数据所有者指定的授权用户群组成员,能够生成重加密密钥并交给云计算平台进行重加密,重加密过程中只有数据转发者的属性满足原始密文里的转发条件才能重加密原始密文,并将重加密密文转发给其他群组用户共享。

(5)授权用户。如果用户属于数据所有者或者数据转发者设定的用户群组,就可以解密数据。

基于所述的数据保护框架,本发明提供的一种云环境下基于条件代理重加密的数据保护方法,涉及的算法定义如下:

1)系统初始化算法Setup(N).输入系统授权群组的最大用户数N,输出系统公钥PK和系统主密钥MK。

2)用户私钥生成算法SKeyGen(MK,ID).输入系统主密钥MK和用户标识ID,输出该用户的私钥SK。

3)属性私钥生成算法AKeyGen(MK,S).输入系统主密钥MK和用户属性集合S,输出该用户的属性私钥AK。

4)加密算法Enc(PK,U,M,T).输入系统公钥PK、授权用户集合U、明文M和访问控制条件T,输出加密后的密文CT。

5)重加密密钥生成算法ReKeyGen(PK,ID,SK,AK,U′).输入系统公钥PK、用户的标识ID、私钥SK和属性私钥AK,新的授权用户集合U′,输出重加密密钥RK。

6)重加密算法ReEnc(PK,RK,CT,U).输入系统公钥PK、重加密密钥RK、密文CT和授权用户集合U,输出重加密后的密文CT′。

7)解密算法Dec1(PK,ID,SK,CT).输入系统公钥PK、用户的标识ID和私钥SK,密文CT,输出明文M。

8)解密算法Dec2(PK,ID,SK,CT′).输入系统公钥PK、用户的标识ID和私钥SK,重加密密文CT′,输出明文M。

具体的,本发明提供的一种云环境下基于访问控制条件代理重加密的数据保护方法,包括如下步骤:

第一步,系统初始化;

属性机构运行系统初始化算法Setup(N),构造阶为素数p的乘法循环群和e:为双线性函数,为阶为p的有限整数域,N为系统内群组的最大授权用户数。定义散列函数H1:和H2:随机选择和公开发布系统公钥PK如下:

然后,属性机构生成系统主密钥MK如下并秘密保存。

MK=(g,γ,β)

第二步,密钥生成;

属性机构运行用户私钥生成算法SKeyGen(MK,ID),根据授权用户的标识ID生成用户私钥如下:

然后,属性机构运行属性私钥生成算法AKeyGen(MK,S),选择随机数并为用户属性集合S中的每个属性j∈S选择随机数生成属性私钥AK如下:

第三步,数据加密;

数据所有者运行加密算法Enc(PK,U,M,T),随机选择密钥基于对称加密算法使用DK加密数据明文M,结果记为C0=EncDK(M),再使用授权用户集合U(|U|≤N)和访问控制条件T保护DK。首先,访问控制条件T是一种树形结构,例如图2树形结构所示,表示老师或者网络空间安全学院的研究生满足条件。对访问控制条件T的任一节点x,设attrx表示节点x的属性,parent(x)表示节点x的父节点,index(x)表示节点x的序号。设numx表示x的子节点的数量,对x的子节点从1到numx排序。树中所有非叶子节点都是带有阈值的门限方案,设kx表示节点x的门限值,当kx=1时,节点x的门限是一个或门,当时kx=numx,节点x的门限是一个与门。其次,以自顶向下的方式为访问控制条件T上的每个节点x定义一个kx-1次多项式px。对于访问控制条件T的根节点R,随机选择令根节点R的0次多项式pR(0)=t。对于访问控制条件T的其他节点x,令节点x的0次多项式px(0)=pparent(x)(index(x)),并选择随机的参数完成多项式px的定义。最后,设Y表示访问控制条件T中叶子节点对应的属性的集合,数据所有者选择随机数构造密文CT并上传到云计算平台。

CT=(C0=EncDK(M),C1=DK·e(g,h)k,

C4=g-γk,C5=hβt,C6=uβt,

第四步,重加密密钥生成;

当标识为ID的数据转发者希望转发云计算平台的密文时,首先运行重加密密钥生成算法ReKeyGen(PK,ID,SK,AK,U′),选择新的授权用户集合U′,选择随机数结合自己的用户私钥SK计算:

R3=H2(e(g,h)k′)·hs,R4=g-γk′

结合自己的属性私钥AK计算:

最后将重加密密钥RK=(R1,R2,R3,R4,R5,R6)发送给云计算平台请求对原始密文重加密。

第五步,数据重加密;

云计算平台收到重加密密钥RK后,运行重加密算法ReEnc(PK,RK,CT,U)。定义递归算法DecryptNode(CT,RK,x),输入密文CT,重加密密文RK,和访问控制条件T中的节点x。云计算平台运行DecryptNode递归算法:

如果x是叶子节点,令z=attr(x)。如果z∈S,计算如下:

如果则定义DecryptNode(CT,RK,x)=⊥。

如果x不是叶子节点,运行DecryptNode算法直至根节点:x的所有孩子节点n,都运行DecryptNode(CT,RK,n)算法,并把结果保存在Fn。令Sx为任意kx个节点n的集合且Fn≠⊥,计算如下:

因此,如果数据转发者的用户属性集合S满足访问控制条件T,该递归算法将返回

然后,云计算平台计算:

云计算平台计算:

其中,

最后,云计算平台输出重加密密文。

第六步,数据解密;

如果是解密原始密文,授权用户(标识为ID)运行解密算法Dec1(PK,ID,SK,CT)计算:

然后,授权用户根据K计算出DK:

最后,授权用户通过对称解密算法使用DK解密出明文M。

如果是解密重加密密文,授权用户(标识为ID′)运行解密算法Dec2(PK,ID,SK,CT′)计算:

其中,

然后,授权用户计算:

然后,授权用户计算出DK:

最后,授权用户通过对称解密算法使用DK解密出明文M。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1