一种面向云端加密数据的高效动态访问控制方法及系统技术方案

技术编号:35300113 阅读:17 留言:0更新日期:2022-10-22 12:48
本发明专利技术涉及一种面向云端加密数据的高效动态访问控制方法及系统,其方法包括:在重加密代理和云端分别存储控制数据和文件数据,对于存储在云端的加密数据,用户可以通过用户私钥得到文件的解密密钥,进而使用解密密钥解密得到数据文件内容,从而实现创建用户、删除用户、创建文件、删除文件、创建角色、删除角色、角色绑定、角色解绑、文件赋权、文件除权、读取文件和修改文件的操作。本发明专利技术提供的方法数据保密性好,存储效率和运行效率高,且部署灵活。且部署灵活。且部署灵活。

【技术实现步骤摘要】
一种面向云端加密数据的高效动态访问控制方法及系统


[0001]本专利技术涉及云端数据访问控制领域,具体涉及一种面向云端加密数据的高效动态访问控制方法及系统。

技术介绍

[0002]基于角色的访问控制(Role

Based Access Control)通过建立角色集合实现文件访问控制的授权,具体的,一个基于角色的访问控制系统由12个过程组成——创建用户、删除用户、创建文件、删除文件、创建角色、删除角色、角色绑定、角色解绑、文件赋权、文件除权、读取文件和修改文件。对于存储在云端的加密数据而言,可以通过对密钥进行加密实现对数据文件的访问权限控制。具体而言,某一用户拥有某一文件的访问权限,实际表现为该用户可以通过用户私钥得到该文件对应的对称密钥,进而使用对称密钥加密或解密文件内容。
[0003]现有基于公钥基础设施(Public Key Infrastructure)的访问控制方案在云端存储三类数据:使用文件加密密钥加密的文件数据、使用角色公钥加密的文件解密密钥和使用用户公钥加密的角色私钥。若某个用户可以访问某一文件,则存在某角色,使得该用户可以通过用户私钥解密获得角色私钥,再通过角色私钥解密获得文件解密密钥,最后使用文件解密密钥解密得到文件内容。
[0004]在基于公钥基础设施的访问控制方案中,每存在一个用户

角色绑定关系,就需要在云端存储一个角色私钥的密文;每存在一个角色

文件授权关系,就需要在云端存储一个文件解密密钥的密文。这一特点导致基于公钥基础设施的访问控制方案需要在云端存储大量私钥或解密密钥的密文,存储效率较低。同时,由于撤销用户访问权限需要对该用户已有权限相关的文件解密密钥和角色私钥进行更新,这些与绑定或授权关系相对应的密文也需要进行相应的更新,因此,撤销用户需要管理员进行大量的解密和重加密运算,时间效率较低。
[0005]因此,如何提高现有云端存储的存储效率,以及撤销用户的时间效率成为一个亟待解决的问题。

技术实现思路

[0006]为了解决上述技术问题,本专利技术提供一种面向云端加密数据的高效动态访问控制方法及系统。
[0007]本专利技术技术解决方案为:一种面向云端加密数据的高效动态访问控制方法,包括:
[0008]步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用管理员角色公钥加密文件密钥,利用文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的文件密钥和加密后的文件数据存储在云端;
[0009]步骤S2:角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,
并保存在重加密代理端;
[0010]步骤S3:用户读取或修改文件:用户u向重加密代理发起读取或修改文件f的请求,重加密代理检查访问权限,若用户u拥有文件f的访问权限,重加密代理从云端获取文件f对应文件密钥的密文,利用控制数据库中的用户数据和角色数据计算文件密钥对应的重加密密文,并将重加密密文发送给用户,用户对重加密密文进行解密后得到文件密钥,使用文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用文件密钥加密新数据,并更新云端的文件f的密文数据;
[0011]步骤S4:角色解绑:为角色生成新的非对称密钥对,相应地计算和更新重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新云端的相应的云端数据;
[0012]步骤S5:文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
[0013]本专利技术与现有技术相比,具有以下优点:
[0014]1、本专利技术公开了一种面向云端加密数据的高效动态访问控制方法,在重加密代理端和云端分别存储控制数据和文件数据,且文件数据的读取和修改必须使用用户私钥才能完成,因而重加密代理侧和云存储服务商侧的数据泄露不影响用户数据的保密性。
[0015]2、本专利技术通过绑定用户与角色以及授权文件权限给角色实现访问控制,绑定和授权操作不涉及加密操作,控制数据库中不需要存储与绑定关系或授权关系相关的密文,存储效率较高。同时,由于不存在与绑定关系和授权关系相关的密文,权限解除操作不再涉及相关密文的更新操作,运行效率较高。
[0016]3、本专利技术中重加密代理独立于管理员和云端提供功能,因而用户和云存储服务商可以基于实际场景选择将重加密代理集成于管理员侧、集成于云端侧或由第三方服务提供商提供重加密代理功能。
附图说明
[0017]图1为本专利技术实施例中一种面向云端加密数据的高效动态访问控制方法的流程图;
[0018]图2为本专利技术实施例中一种面向云端加密数据的高效动态访问控制方法实现场景示意图;
[0019]图3为本专利技术实施例中创建用户、创建角色和创建文件后的系统状态示意图;
[0020]图4为本专利技术实施例中删除用户后的系统状态示意图;
[0021]图5为本专利技术实施例中删除文件后的系统状态示意图;
[0022]图6为本专利技术实施例中一种面向云端加密数据的高效动态访问控制系统的结构框图。
具体实施方式
[0023]本专利技术提供了一种面向云端加密数据的高效动态访问控制方法,数据保密性好,存储效率和运行效率高,且部署灵活。
[0024]为了使本专利技术的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附
图,对本专利技术进一步详细说明。
[0025]为了更好地理解本专利技术实施例,首先对代理重加密进行解释:
[0026]代理重加密(Proxy Re

Encryption)技术是一种用于加密数据共享的公钥加密技术,允许代理机构将使用某一用户公钥加密的密文转变为可用另一用户私钥解密的密文。本专利技术运用代理重加密技术,设计构造高效的加密数据动态访问控制方案。一个代理重加密密钥主要由以下算法构成:系统初始化、密钥对生成、重加密密钥生成、加密明文、解密密文以及重加密密文。本专利技术实施例使用rk
A

B
表示从用户A到用户B的重加密密钥,使用ReEnc(rk
A

B
,c)表示使用重加密密钥将用户A可解密密文c转换为用户B可解密密文。
[0027]实施例一
[0028]如图1所示,本专利技术实施例提供的一种面向云端加密数据的高效动态访问控制方法,包括下述步骤:
[0029]步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用管理员角色公钥加密文件密钥,利用文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的文件密钥和加密后的文件数据存储在云端;
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向云端加密数据的高效动态访问控制方法,其特征在于,包括:步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用所述管理员角色公钥加密文件密钥,利用所述文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的所述文件密钥和加密后的所述文件数据存储在云端;步骤S2:角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;步骤S3:用户读取或修改文件:用户u向所述重加密代理发起读取或修改文件f的请求,所述重加密代理检查访问权限,若用户u拥有文件f的访问权限,所述重加密代理从云端获取文件f对应文件密钥的密文,利用所述控制数据库中的用户数据和角色数据计算所述文件密钥对应的重加密密文,并将所述重加密密文发送给用户,用户对所述重加密密文进行解密后得到文件密钥,使用所述文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用所述文件密钥加密新数据,并更新云端的文件f的密文数据;步骤S4:角色解绑:为角色生成新的非对称密钥对,相应地计算和更新所述重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新云端的相应的云端数据;步骤S5:文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用所述新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。2.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S1:创建用户、角色和文件,具体包括:步骤S11:创建用户:待创建用户提交其用户标识u和用户公钥pk
u
,管理员审核通过后,利用管理员用户私钥sk
ad
和pk
u
计算重加密密钥rk
ad

u
,并将<u,pk
u
,rk
ad

u
>发送到重加密代理;所述重加密代理在控制数据库中添加收到的用户数据<u,pk
u
,rk
ad

u
>;步骤S12:创建角色:为角色r生成非对称密钥对pk
r
,sk
r
,使用角色公钥pk
r
和管理员角色私钥sk
SU
计算重加密密钥rk
SU

r
;使用管理员用户的公钥pk
ad
加密私钥sk
r
得到密文c
r
=Enc(pk
ad
,sk
r
);将角色数据<r,pk
r
,rk
SU

r
,c
r
>发送到重加密代理;所述重加密代理在控制数据库中添加收到的角色数据<r,pk
r
,rk
SU

r
,c
r
>;步骤S13:创建文件:生成对称密钥k,利用k加密标识为fn的文件数据f得到密文c
f
=Enc(k,f),使用管理员角色公钥pk
SU
加密所述对称密钥k得到密文c
k
=Enc(pk
SU
,k),将文件数据<fn,c
f
>和密钥数据<fn,c
k
>存储到云端数据库。3.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S2:角色绑定和文件赋权,具体包括:步骤S21:角色绑定:向重加密代理发送角色绑定数据<u,r>,所述重加密代理在所述控制数据库中添加收到的角色绑定数据<u,r>;步骤S22:文件赋权:向重加密代理发送文件权限数据<r,fn>;所述重加密代理在所述控制数据库中增加收到的文件权限数据<r,fn>。4.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S3中用户读取文件,具体包括:用户u向所述重加密代理发起读取文件标识为fn的文件f的请求,所述重加密代理查询
云端数据库和所述控制数据库是否满足下述条件:a)云端数据库存在密钥数据<fn,c
k
>;b)存在角色r,使得所述控制数据库中存在绑定数据<u,r>和权限数据<r,fn>;若满足,则转至下述步骤S31,否则返回无权限;步骤S31:重加密代理从云端下载密钥数据<fn,c
k
>;步骤S32:重加密代理查询控制数据库获取角色数据<r,pk
r
,rk
SU

r
,c
r
>,计算面向角色r的对称密钥密文c

k
=ReEnc(rk
SU

r
,c
k
);步骤S33:重加密代理查询控制数据库获取用户数据<u,pk
u
,rk
ad

u
>,计算面向用户u的角色私钥密文c

r
=ReEnc(rk
ad

u
,c
r
);步骤S34:重加密代理向用户u发送<fn,c

r
,c

k
>;步骤S35:用户u从云端获取文件密文<fn,c
f
>;步骤S36:用户u使用自身私钥解密得到角色私钥sk
r
=Dec(sk
u
,c

r
),使用角色私钥解密得到文件密钥k=Dec(sk
r
,c

k
),使用文件密钥解密得到文件数据f=Dec(k,c
f
)。5.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S3:用户修改文件,具体包括:用户u向重加密代理发起修改文件标识为fn的文件f的请求,重加密代理查询云端数据库和控制数据库是否满足下述条件:a)云端数据库存在密钥数据<fn,c
k...

【专利技术属性】
技术研发人员:苗付友王瑞凯貟亚杰王心妍于跃
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

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

1