CN115225364B - 一种面向云端加密数据的高效动态访问控制方法及系统 - Google Patents
一种面向云端加密数据的高效动态访问控制方法及系统 Download PDFInfo
- Publication number
- CN115225364B CN115225364B CN202210833795.9A CN202210833795A CN115225364B CN 115225364 B CN115225364 B CN 115225364B CN 202210833795 A CN202210833795 A CN 202210833795A CN 115225364 B CN115225364 B CN 115225364B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- role
- key
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 2
- 238000013475 authorization Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种面向云端加密数据的高效动态访问控制方法及系统,其方法包括:在重加密代理和云端分别存储控制数据和文件数据,对于存储在云端的加密数据,用户可以通过用户私钥得到文件的解密密钥,进而使用解密密钥解密得到数据文件内容,从而实现创建用户、删除用户、创建文件、删除文件、创建角色、删除角色、角色绑定、角色解绑、文件赋权、文件除权、读取文件和修改文件的操作。本发明提供的方法数据保密性好,存储效率和运行效率高,且部署灵活。
Description
技术领域
本发明涉及云端数据访问控制领域,具体涉及一种面向云端加密数据的高效动态访问控制方法及系统。
背景技术
基于角色的访问控制(Role-Based Access Control)通过建立角色集合实现文件访问控制的授权,具体的,一个基于角色的访问控制系统由12个过程组成——创建用户、删除用户、创建文件、删除文件、创建角色、删除角色、角色绑定、角色解绑、文件赋权、文件除权、读取文件和修改文件。对于存储在云端的加密数据而言,可以通过对密钥进行加密实现对数据文件的访问权限控制。具体而言,某一用户拥有某一文件的访问权限,实际表现为该用户可以通过用户私钥得到该文件对应的对称密钥,进而使用对称密钥加密或解密文件内容。
现有基于公钥基础设施(Public Key Infrastructure)的访问控制方案在云端存储三类数据:使用文件加密密钥加密的文件数据、使用角色公钥加密的文件解密密钥和使用用户公钥加密的角色私钥。若某个用户可以访问某一文件,则存在某角色,使得该用户可以通过用户私钥解密获得角色私钥,再通过角色私钥解密获得文件解密密钥,最后使用文件解密密钥解密得到文件内容。
在基于公钥基础设施的访问控制方案中,每存在一个用户-角色绑定关系,就需要在云端存储一个角色私钥的密文;每存在一个角色-文件授权关系,就需要在云端存储一个文件解密密钥的密文。这一特点导致基于公钥基础设施的访问控制方案需要在云端存储大量私钥或解密密钥的密文,存储效率较低。同时,由于撤销用户访问权限需要对该用户已有权限相关的文件解密密钥和角色私钥进行更新,这些与绑定或授权关系相对应的密文也需要进行相应的更新,因此,撤销用户需要管理员进行大量的解密和重加密运算,时间效率较低。
因此,如何提高现有云端存储的存储效率,以及撤销用户的时间效率成为一个亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供一种面向云端加密数据的高效动态访问控制方法及系统。
本发明技术解决方案为:一种面向云端加密数据的高效动态访问控制方法,包括:
步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用管理员角色公钥加密文件密钥,利用文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的文件密钥和加密后的文件数据存储在云端;
步骤S2:角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;
步骤S3:用户读取或修改文件:用户u向重加密代理发起读取或修改文件f的请求,重加密代理检查访问权限,若用户u拥有文件f的访问权限,重加密代理从云端获取文件f对应文件密钥的密文,利用控制数据库中的用户数据和角色数据计算文件密钥对应的重加密密文,并将重加密密文发送给用户,用户对重加密密文进行解密后得到文件密钥,使用文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用文件密钥加密新数据,并更新云端的文件f的密文数据;
步骤S4:角色解绑:为角色生成新的非对称密钥对,相应地计算和更新重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新云端的相应的云端数据;
步骤S5:文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
本发明与现有技术相比,具有以下优点:
1、本发明公开了一种面向云端加密数据的高效动态访问控制方法,在重加密代理端和云端分别存储控制数据和文件数据,且文件数据的读取和修改必须使用用户私钥才能完成,因而重加密代理侧和云存储服务商侧的数据泄露不影响用户数据的保密性。
2、本发明通过绑定用户与角色以及授权文件权限给角色实现访问控制,绑定和授权操作不涉及加密操作,控制数据库中不需要存储与绑定关系或授权关系相关的密文,存储效率较高。同时,由于不存在与绑定关系和授权关系相关的密文,权限解除操作不再涉及相关密文的更新操作,运行效率较高。
3、本发明中重加密代理独立于管理员和云端提供功能,因而用户和云存储服务商可以基于实际场景选择将重加密代理集成于管理员侧、集成于云端侧或由第三方服务提供商提供重加密代理功能。
附图说明
图1为本发明实施例中一种面向云端加密数据的高效动态访问控制方法的流程图;
图2为本发明实施例中一种面向云端加密数据的高效动态访问控制方法实现场景示意图;
图3为本发明实施例中创建用户、创建角色和创建文件后的系统状态示意图;
图4为本发明实施例中删除用户后的系统状态示意图;
图5为本发明实施例中删除文件后的系统状态示意图;
图6为本发明实施例中一种面向云端加密数据的高效动态访问控制系统的结构框图。
具体实施方式
本发明提供了一种面向云端加密数据的高效动态访问控制方法,数据保密性好,存储效率和运行效率高,且部署灵活。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
为了更好地理解本发明实施例,首先对代理重加密进行解释:
代理重加密(Proxy Re-Encryption)技术是一种用于加密数据共享的公钥加密技术,允许代理机构将使用某一用户公钥加密的密文转变为可用另一用户私钥解密的密文。本发明运用代理重加密技术,设计构造高效的加密数据动态访问控制方案。一个代理重加密密钥主要由以下算法构成:系统初始化、密钥对生成、重加密密钥生成、加密明文、解密密文以及重加密密文。本发明实施例使用rkA→B表示从用户A到用户B的重加密密钥,使用ReEnc(rkA→B,c)表示使用重加密密钥将用户A可解密密文c转换为用户B可解密密文。
实施例一
如图1所示,本发明实施例提供的一种面向云端加密数据的高效动态访问控制方法,包括下述步骤:
步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用管理员角色公钥加密文件密钥,利用文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的文件密钥和加密后的文件数据存储在云端;
步骤S2:角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;
步骤S3:用户读取或修改文件:用户u向重加密代理发起读取文件或修改文件f的请求,重加密代理检查访问权限,若用户u拥有文件f的访问权限,重加密代理从云端获取文件f对应文件密钥的密文,利用控制数据库中的用户数据和角色数据计算文件密钥对应的重加密密文,并将重加密密文发送给用户,用户对重加密密文进行解密后得到文件密钥,使用文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用文件密钥加密新数据,并更新云端的文件f的密文数据;
步骤S4:角色解绑:为角色生成新的非对称密钥对,相应地计算和更新重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新重加密代理端和云端的相应的云端数据;
步骤S5:文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
实现本发明提供的方法的场景示意图如图2所示,该场景由云存储机构用户、重加密代理和云存储服务商构成,用户机构内的访问控制权限由管理员进行统一管理,普通用户可以读写已授权给该用户的文件数据。重加密代理向用户提供访问控制服务,维护本地控制数据库并对用户开放权限控制接口和文件读写接口,管理员通过权限控制接口完成以下8类流程:创建用户、删除用户、创建文件、删除文件、创建角色、删除角色、角色绑定、角色解绑、文件赋权、文件除权。普通用户通过文件读写接口实现2类流程:读取文件和修改文件。重加密代理存储如下4类数据:
——用户数据:<用户标识,用户公钥,用户的重加密密钥>
——角色数据:<角色标识,角色公钥,角色的重加密密钥,角色私钥密文(使用管理员用户的公钥加密)>
——绑定数据:<用户标识,角色标识>
——权限数据:<角色标识,文件标识>
云端仅存储文件相关的两类数据:
——文件数据:<文件标识,文件密文(使用文件加密密钥加密)>
——密钥数据:<文件标识,文件解密密钥密文(使用管理员角色的公钥加密)>
在系统初始化时,设置管理员用户标识ad和管理员角色标识SU,并实现下述初始化步骤:
1.生成管理员用户的非对称密钥对pkad,skad和管理员角色的非对称密钥对pkSU,skSU,本地保存管理员用户私钥skad和管理员角色私钥skSU;
2.通过权限控制接口将用户数据<ad,pkad,null>和角色数据;<SU,pkSU,null,Enc(pkad,skSU)>发送到重加密代理;
3.重加密代理在控制数据库中添加收到的用户数据和角色数据。
在一个实施例中,上述步骤S1:创建用户、角色和文件,具体包括:
步骤S11:创建用户:待创建用户提交其用户标识u和用户公钥pku,管理员审核通过后,利用管理员用户私钥skad和pku计算重加密密钥rkad→u,并将<u,pku,rkad→u>通过权限控制接口发送到重加密代理;重加密代理在控制数据库中添加收到的用户数据<u,pku,rkad→u>;
步骤S12:创建角色:为角色r生成非对称密钥对pkr,skr,使用角色公钥pkr和管理员角色私钥skSU计算重加密密钥rkSU→r;使用管理员用户的公钥pkad加密私钥skr得到密文cr=Enc(pkad,skr);将角色数据<r,pkr,rkSU→r,cr>通过权限控制接口发送到重加密代理;重加密代理在控制数据库中添加收到的角色数据<r,pkr,rkSU→r,cr>;
步骤S13:创建文件:生成对称密钥k,利用k加密标识为fn的文件数据f,得到密文cf=Enc(k,f),使用管理员角色公钥pkSU加密对称密钥k得到密文ck=Enc(pkSU,k),将文件数据<fn,cf>和密钥数据<fn,ck>存储到云端数据库。
在一个实施例中,上述步骤S2:角色绑定和文件赋权,具体包括:
步骤S21:角色绑定:通过权限控制接口向重加密代理发送角色绑定数据<u,r>,重加密代理在控制数据库中添加收到的角色绑定数据<u,r>;
步骤S22:文件赋权:通过权限控制接口向重加密代理发送文件权限数据<r,fn>;重加密代理在控制数据库中增加收到的文件权限数据<r,fn>。
在一个实施例中,上述步骤S3中用户读取文件,具体包括:
用户u向重加密代理发起读取文件标识为fn的文件f的请求,重加密代理查询云端数据库和控制数据库是否满足下述条件:
a)云端数据库存在密钥数据<fn,ck>;
b)存在角色r,使得控制数据库中存在绑定数据<u,r>和权限数据<r,fn>;
若满足,则转至下述步骤S31,否则返回无权限;
步骤S31:重加密代理从云端下载密钥数据<fn,ck>;
步骤S32:重加密代理查询控制数据库获取角色数据<r,pkr,rkSU→r,cr>,计算面向角色r的对称密钥密文c′k=ReEnc(rkSU→r,ck);
步骤S33:重加密代理查询控制数据库获取用户数据<u,pku,rkad→u>,计算面向用户u的角色私钥密文c′r=ReEnc(rkad→u,cr);
步骤S34:重加密代理向用户u发送<fn,c′r,c′k>;
步骤S35:用户u从云端获取文件密文<fn,cf>;
步骤S36:用户u使用自身私钥解密得到角色私钥skr=Dec(sku,c′r),使用角色私钥解密得到文件密钥k=Dec(skr,c′k),使用文件密钥解密得到文件数据f=Dec(k,cf)。
在一个实施例中,上述步骤S3中用户修改文件,具体包括:
用户u向重加密代理发起修改文件标识为fn的文件f的请求,重加密代理查询云端数据库和控制数据库是否满足下述条件:
a)云端数据库存在密钥数据<fn,ck>;
b)存在角色r,使得控制数据库中存在绑定数据<u,r>和权限数据<r,fn>;
若满足,则转至下述步骤S311,否则返回无权限;
步骤S311:重加密代理从云端下载密钥数据<fn,ck>;
步骤S312:重加密代理查询控制数据库获取角色数据<r,pkr,rkSU→r,cr>,计算面向角色r的对称密钥密文c′k=ReEnc(rkSU→r,ck);
步骤S313:重加密代理查询控制数据库获取用户数据<u,pku,rkad→u>,计算面向用户u的角色私钥密文c′r=ReEnc(rkad→u,cr);
步骤S314:重加密代理向用户u发送<fn,c′r,c′k〉;
步骤S315:用户u使用自身私钥解密得到角色私钥skr=Dec(sku,c′r),使用角色私钥解密得到文件密钥k=Dec(skr,c′k),使用文件密钥加密文件数据c′f=Enc(k,f′);
步骤S316:用户u向云端上传文件数据<fn,c′f〉,云端更新与fn对应的文件数据。
在一个实施例中,上述步骤S4:角色解绑,具体包括:
角色解绑:拥有角色r的用户u,解除通过角色r读写文件的权限:
步骤S41:对所有角色r可访问文件的文件标识fn,使用文件除权过程解除r对fn的访问权限并更新相应的文件密钥和文件密文,再重新添加r对fn的访问权限;
步骤S42:为角色r生成新的非对称密钥对pk′r,sk′r,使用管理员角色的私钥skSU和pk′r计算重加密密钥rk′SU→r;
步骤S43:使用管理员用户的公钥pkad加密sk′r得到密文c′r=Enc(pkad,sk′r);
步骤S44:通过权限控制接口向重加密代理发送角色数据<r,pk′r,rk′SU→r,c′r>;
步骤S45:重加密代理更新控制数据库中与r对应的角色数据为<r,pk′r,rk′SU→r,c′r>;
步骤S46:通过权限控制接口向重加密代理发送解绑用户u和角色r的指令;
步骤S47:重加密代理删除控制数据库中的绑定数据<u,r〉。
在一个实施例中,上述步骤S5:文件除权,具体包括:
文件除权:解除角色标识r对文件标识为fn的文件f的访问权限;
步骤S51:从云端下载f对应的文件数据<fn,cf〉和密钥数据<fn,ck〉;
步骤S52:使用管理员角色私钥skSU解密得到文件解密密钥k=Dec(skSU,ck),使用解密密钥解密文件数据f=Dec(k,cf);
步骤S53:生成新的对称密钥k′;
步骤S54:使用k′加密文件数据f得到密文c′f=Enc(k′,f);
步骤S55:使用管理员角色的公钥pkSU加密k′得到密文c′k=Enc(pkSU,k′);
步骤S56:将云端f文件数据更新为<fn,c′f〉,密钥数据更新为<fn,c′k〉;
步骤S57:通过权限控制接口向重加密代理发送解除角色r对文件标识为fn的文件f的访问权限的指令;
步骤S58:重加密代理删除控制数据库中的权限数据<r,fn〉。
举例来说,首先,管理员按图3创建用户、创建角色和创建文件,重加密代理的控制数据库中存储如下信息: 云端存储如下信息:/>
管理员按图3执行角色绑定操作,完成后重加密代理的控制数据库中存储如下信息:<u1,r1〉、<u2,r1〉、<u2,r2〉、<u3,r2〉;
管理员按图3文件赋权操作,完成后重加密代理的控制数据库中存储如下信息:<r1,f1〉、<r1,f2>、<r2,f2>、<r2,f3>。
例子1:用户u1读取文件f1:由图3可看出,u1拥有角色r1,r1有访问文件f1的权限,因此用户u1有权限读取文件f1,具体步骤如下:
1用户u1通过文件读写接口向重加密代理发送读取文件f1的请求;
2.重加密代理查询得到结果:云端存在密钥数据控制数据库中存在r1使得<u1,r1>和<r1,f1>存在;
3.重加密代理从云端下载密钥数据
4.重加密代理计算角色私钥和文件密钥的重加密密文:
5.重加密代理向用户u1发送
6用户u1从云端获取文件数据
7.用户u1使用私钥解密得到角色私钥:使用角色私钥解密得到文件密钥:/>使用文件密钥解密得到文件数据:/>
例子2:用户u1读取文件f3:由图3可看出,u1仅拥有角色r1,而r1没有访问文件f3的权限,因此用户u1没有权限读取文件f3,具体步骤如下:
1.用户u1通过文件读写接口向重加密代理发送读取文件f3的请求;
2.重加密代理查询得到结果:云端存在密钥数据但控制数据库中不存在r使得<u1,r>和<r,f3>存在,返回读取失败。
例子3:删除用户u3(包含角色解绑、文件除权),具体步骤如下:
1.由于u3与角色r2绑定,首先进行u3与r2的解绑操作;
2.由于r2拥有文件f2和文件f3的访问权限,分别对文件f2和文件f3进行除权:
a)管理员从云端下载文件f2对应的文件数据和密钥数据/>解密得到当前文件加密密钥/>使用密钥解密文件数据/>
b)生成新的对称密钥k′2,使用对称密钥加密文件数据file2得到密文 使用管理员角色的公钥pkSU加密对称密钥k′2得到密文/>
c)控制云端更新文件f2对应的数据条目:文件数据和密钥数据/>
d)通过权限控制接口向重加密代理发送解除角色r2对文件f2访问权限的指令;
e)重加密代理删除控制数据库中的权限数据<r2,f2>;
f)对文件f3重复步骤a)到步骤e);
3.通过权限控制接口向重加密代理发送权限数据<r2,f2>和<r2,f3>;
4.重加密代理在控制数据库中添加收到的权限数据;
5.生成新的非对称密钥对计算重加密密钥/>
6.使用管理员用户的公钥pkad加密私钥得到密文/>通过权限控制接口向重加密代理发送角色数据/>
7.重加密代理更新控制数据库中与r2相关的角色数据为
8.通过权限控制接口向重加密代理发送解绑用户u3和r2的指令;
9.重加密代理删除控制数据库中的绑定数据<u3,r2>;
10.以上步骤完成了u3与r2的解绑,然后通过权限控制接口向重加密代理发送删除用户u3对应的用户数据的指令;
11.重加密代理删除控制数据库中u3对应的用户数据完成后,系统状态如图4所示。
例子4:删除文件f3,删除角色r2,具体步骤如下:
1.云端删除和/>
2.管理员解除角色r2对文件f2和文件f3的访问权限,相当于分别对文件f2和文件f3进行除权操作,详细步骤可参考前述例子3,然后向重加密代理发送删除r2对应角色数据的指令,重加密代理从控制数据库中删除完成后,系统状态如图5所示。
本发明公开了一种面向云端加密数据的高效动态访问控制方法,在重加密代理端和云端分别存储控制数据和文件数据,且文件数据的读取和修改必须使用用户私钥才能完成,因而重加密代理侧和云存储服务商侧的数据泄露不影响用户数据的保密性。本发明通过绑定用户与角色以及授权文件权限给角色实现访问控制,绑定和授权操作不涉及加密加密操作,控制数据库中不需要存储与绑定关系或授权关系相关的密文,存储效率较高。同时,由于不存在与绑定关系和授权关系相关的密文,权限解除操作不再涉及相关密文的更新操作,运行效率较高。本发明中重加密代理独立于管理员和云端提供功能,因而用户和云存储服务商可以基于实际场景选择将重加密代理集成于管理员侧、集成于云端侧或由第三方服务提供商提供重加密代理功能。
实施例二
如图6所示,本发明实施例提供了一种面向云端加密数据的高效动态访问控制系统,包括下述模块:
创建用户、角色和文件模块,用于创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用管理员角色公钥加密文件密钥,利用文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的文件密钥和加密后的文件数据存储在云端;
角色绑定和文件赋权模块,用于角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;
用户读取或修改文件模块,用于用户读取或修改文件:用户u向重加密代理发起读取或修改文件f的请求,重加密代理检查访问权限,若用户u拥有文件f的访问权限,重加密代理从云端获取文件f对应文件密钥的密文,利用控制数据库中的用户数据和角色数据计算文件密钥对应的重加密密文,并将重加密密文发送给用户,用户对重加密密文进行解密后得到文件密钥,使用文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用文件密钥加密新数据,并更新云端的文件f的密文数据;
角色解绑模块,用于角色解绑:为角色生成新的非对称密钥对,相应地计算和更新重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新重加密代理端和云端的相应的云端数据;
文件除权模块,用于文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (8)
1.一种面向云端加密数据的高效动态访问控制方法,其特征在于,包括:
步骤S1:创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用所述管理员角色公钥加密文件密钥,利用所述文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的所述文件密钥和加密后的所述文件数据存储在云端;
步骤S2:角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;
步骤S3:用户读取或修改文件:用户u向所述重加密代理发起读取或修改文件f的请求,所述重加密代理检查访问权限,若用户u拥有文件f的访问权限,所述重加密代理从云端获取文件f对应文件密钥的密文,利用所述控制数据库中的用户数据和角色数据计算所述文件密钥对应的重加密密文,并将所述重加密密文发送给用户,用户对所述重加密密文进行解密后得到文件密钥,使用所述文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用所述文件密钥加密新数据,并更新云端的文件f的密文数据;
步骤S4:角色解绑:为角色生成新的非对称密钥对,相应地计算和更新所述重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新云端的相应的云端数据;
步骤S5:文件除权:为文件生成新的对称密钥,更新云端的文件密钥密文,使用所述新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
2.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S1:创建用户、角色和文件,具体包括:
步骤S11:创建用户:待创建用户提交其用户标识u和用户公钥pku,管理员审核通过后,利用管理员用户私钥skad和pku计算重加密密钥rkad→u,并将<u,pku,rkad→u>发送到重加密代理;所述重加密代理在控制数据库中添加收到的用户数据<u,pku,rkad→u>;
步骤S12:创建角色:为角色r生成非对称密钥对pkr,skr,使用角色公钥pkr和管理员角色私钥skSU计算重加密密钥rkSU→r;使用管理员用户的公钥pkad加密私钥skr得到密文cr=Enc(pkad,skr);将角色数据<r,pkr,rkSU→r,cr>发送到重加密代理;所述重加密代理在控制数据库中添加收到的角色数据<r,pkr,rkSU→r,cr>;
步骤S13:创建文件:生成对称密钥k,利用k加密标识为fn的文件数据f得到密文cf=Enc(k,f),使用管理员角色公钥pkSU加密所述对称密钥k得到密文ck=Enc(pkSU,k),将文件数据<fn,cf>和密钥数据<fn,ck>存储到云端数据库。
3.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S2:角色绑定和文件赋权,具体包括:
步骤S21:角色绑定:向重加密代理发送角色绑定数据<u,r>,所述重加密代理在所述控制数据库中添加收到的角色绑定数据<u,r>;
步骤S22:文件赋权:向重加密代理发送文件权限数据<r,fn>;所述重加密代理在所述控制数据库中增加收到的文件权限数据<r,fn>。
4.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S3中用户读取文件,具体包括:
用户u向所述重加密代理发起读取文件标识为fn的文件f的请求,所述重加密代理查询云端数据库和所述控制数据库是否满足下述条件:
a)云端数据库存在密钥数据<fn,ck>;
b)存在角色r,使得所述控制数据库中存在绑定数据<u,r>和权限数据<r,fn>;
若满足,则转至下述步骤S31,否则返回无权限;
步骤S31:重加密代理从云端下载密钥数据<fn,ck>;
步骤S32:重加密代理查询控制数据库获取角色数据<r,pkr,rkSU→r,cr>,计算面向角色r的对称密钥密文c′k=ReEnc(rkSU→r,ck);
步骤S33:重加密代理查询控制数据库获取用户数据<u,pku,rkad→u>,计算面向用户u的角色私钥密文c′r=ReEnc(rkad→u,cr);
步骤S34:重加密代理向用户u发送<fn,c′r,c′k>;
步骤S35:用户u从云端获取文件密文<fn,cf>;
步骤S36:用户u使用自身私钥解密得到角色私钥skr=Dec(sku,c′r),使用角色私钥解密得到文件密钥k=Dec(skr,c′k),使用文件密钥解密得到文件数据f=Dec(k,cf)。
5.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S3:用户修改文件,具体包括:
用户u向重加密代理发起修改文件标识为fn的文件f的请求,重加密代理查询云端数据库和控制数据库是否满足下述条件:
a)云端数据库存在密钥数据<fn,ck>;
b)存在角色r,使得控制数据库中存在绑定数据<u,r>和权限数据<r,fn>;
若满足,则转至下述步骤S311,否则返回无权限;
步骤S311:重加密代理从云端下载密钥数据<fn,ck>;
步骤S312:重加密代理查询控制数据库获取角色数据<r,pkr,rkSU→r,cr>,计算面向角色r的对称密钥密文c′k=ReEnc(rkSU→r,ck);
步骤S313:重加密代理查询控制数据库获取用户数据<u,pku,rkad→u>,计算面向用户u的角色私钥密文c′r=ReEnc(rkad→u,cr);
步骤S314:重加密代理向用户u发送<fn,c′r,c′k>;
步骤S315:用户u使用自身私钥解密得到角色私钥skr=Dec(sku,c′r),使用角色私钥解密得到文件密钥k=Dec(skr,c′k),使用文件密钥加密文件数据c′f=Enc(k,f′);
步骤S316:用户u向云端上传文件数据<fn,c′f〉,云端更新与fn对应的文件数据。
6.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S4:角色解绑,具体包括:
角色解绑:拥有角色r的用户u,解除通过角色r读写文件的权限:
步骤S41:对所有角色r可访问文件的文件标识fn,解除r对fn的访问权限,更新相应的文件密钥和文件密文,再重新添加r对fn的访问权限;
步骤S42:为角色r生成新的非对称密钥对pk′r,sk′r,使用管理员角色的私钥skSU和角色公钥pk′r计算重加密密钥rk′SU→r;
步骤S43:使用管理员用户的公钥pkad加密sk′r得到密文c′r=Enc(pkad,sk′r);
步骤S44:通过权限控制接口向重加密代理发送角色数据<r,pk′r,rk′SU→r,c′r>;
步骤S45:重加密代理更新控制数据库中与r对应的角色数据为<r,pk′r,rk′SU→r,c′r>;
步骤S46:通过权限控制接口向重加密代理发送解绑用户u和角色r的指令;
步骤S47:重加密代理删除控制数据库中的绑定数据<u,r〉。
7.根据权利要求1所述的面向云端加密数据的高效动态访问控制方法,其特征在于,所述步骤S5:文件除权,具体包括:
文件除权:解除角色标识r对文件标识为fn的文件f的访问权限;
步骤S51:从云端下载f对应的文件数据<fn,cf>和密钥数据<fn,ck>;
步骤S52:使用管理员角色私钥skSU解密得到文件解密密钥k=Dec(skSU,ck),使用解密密钥解密文件数据f=Dec(k,cf);
步骤S53:生成新的对称密钥k′;
步骤S54:使用k′加密文件数据f得到密文c′f=Enc(k′,f);
步骤S55:使用管理员角色的公钥pkSU加密k′得到密文c′k=Enc(pkSU,k′);
步骤S56:将云端f文件数据更新为<fn,c′f>,密钥数据更新为<fn,c′k〉;
步骤S57:通过权限控制接口向重加密代理发送解除角色r对文件标识为fn的文件f的访问权限的指令;
步骤S58:重加密代理删除控制数据库中的权限数据<r,fn〉。
8.一种面向云端加密数据的高效动态访问控制系统,其特征在于,包括下述模块:
创建用户、角色和文件模块,用于创建用户、角色和文件:通过代理重加密技术为待创建的用户和角色生成相应的重加密密钥,利用管理员用户公钥加密角色私钥,利用所述管理员角色公钥加密文件密钥,利用所述文件密钥加密文件数据,得到的用户数据和角色数据存储在重加密代理端的控制数据库,将加密后的所述文件密钥和加密后的所述文件数据存储在云端;
角色绑定和文件赋权模块,用于角色绑定和文件赋权:向重加密代理发送角色绑定数据和文件权限数据,并保存在重加密代理端;
用户读取或修改文件模块,用于用户读取或修改文件:用户u向所述重加密代理发起读取或修改文件f的请求,所述重加密代理检查访问权限,若用户u拥有文件f的访问权限,所述重加密代理从云端获取文件f对应文件密钥的密文,利用所述控制数据库中的用户数据和角色数据计算所述文件密钥对应的重加密密文,并将所述重加密密文发送给用户,用户对所述重加密密文进行解密后得到文件密钥,使用所述文件密钥解密从云端下载的文件f的密文获取f的文件数据;或使用所述文件密钥加密新数据,并更新云端的文件f的密文数据;
角色解绑模块,用于角色解绑:为角色生成新的非对称密钥对,相应地计算和更新所述重加密代理端的角色数据和角色绑定数据,同时,更新该角色可以访问的所有文件的文件密钥和文件密文,并更新云端的相应的云端数据;
文件除权模块,用于文件除权:为文件生成新的对称密钥,使用所述新的对称密钥更新对应云端文件的文件密文,并删除重加密代理端中文件权限数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210833795.9A CN115225364B (zh) | 2022-07-15 | 2022-07-15 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210833795.9A CN115225364B (zh) | 2022-07-15 | 2022-07-15 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225364A CN115225364A (zh) | 2022-10-21 |
CN115225364B true CN115225364B (zh) | 2023-11-17 |
Family
ID=83611641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210833795.9A Active CN115225364B (zh) | 2022-07-15 | 2022-07-15 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225364B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117633881B (zh) * | 2023-11-27 | 2024-06-25 | 国能神皖合肥发电有限责任公司 | 一种电力数据优化处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN105071937A (zh) * | 2015-07-14 | 2015-11-18 | 河海大学 | 具有高效属性撤销的密文策略属性基加密方法 |
CN109660555A (zh) * | 2019-01-09 | 2019-04-19 | 上海交通大学 | 基于代理重加密的内容安全分享方法和系统 |
CN110391901A (zh) * | 2019-07-05 | 2019-10-29 | 南京理工大学 | 一种支持复杂访问控制要素描述的代理重加密方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503470B2 (en) * | 2002-12-24 | 2016-11-22 | Fred Herz Patents, LLC | Distributed agent based model for security monitoring and response |
WO2016187529A1 (en) * | 2015-05-20 | 2016-11-24 | Paul Rad | Systems and methods for secure file transmission and cloud storage |
-
2022
- 2022-07-15 CN CN202210833795.9A patent/CN115225364B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN105071937A (zh) * | 2015-07-14 | 2015-11-18 | 河海大学 | 具有高效属性撤销的密文策略属性基加密方法 |
CN109660555A (zh) * | 2019-01-09 | 2019-04-19 | 上海交通大学 | 基于代理重加密的内容安全分享方法和系统 |
CN110391901A (zh) * | 2019-07-05 | 2019-10-29 | 南京理工大学 | 一种支持复杂访问控制要素描述的代理重加密方法 |
Non-Patent Citations (7)
Title |
---|
.The Standards on a Cloud Service Framework and Protocol forConstruction, Migration, Deployment,and Publishing of Internet-Oriented Scalable Web Software Systems in Non-Programming Mode draft-yangcan-core-web-software-built-in-cloud-03.IETF .2020,全文. * |
Application of Attribute Based Encryption (ABE) for PII and personal data protection on IoT devices, WLAN, cloud and mobile services - High level requirements.ETSI TS 103 458.2018,(第V1.1.1期),全文. * |
C. Yang, Ed. ; SY. Pan, Ed. ; South China University of Technology * |
DTS/CYBER-0020.TECHNICAL SPECIFICATION CYBER * |
HB. Sun ; Inspur ; KM. Qu ; NetEase,Inc ; GQ. Han ; South China University of Technology * |
即时撤销的云数据共享机制的设计;王雄;庞岩梅;娄嘉鹏;;计算机工程与设计(第09期);全文 * |
支持撤销属性和外包解密的CP-ABE方案;刘鹏;何倩;刘汪洋;程序;;信息网络安全(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115225364A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yan et al. | Deduplication on encrypted big data in cloud | |
CN110417781B (zh) | 基于区块链的文档加密管理方法、客户端及服务器 | |
CN108810004B (zh) | 基于代理的可撤销多授权中心访问控制方法、云存储系统 | |
US6192130B1 (en) | Information security subscriber trust authority transfer system with private key history transfer | |
CN109583217B (zh) | 一种互联网电商平台用户隐私数据加密及解密方法 | |
CN114065265B (zh) | 基于区块链技术的细粒度云存储访问控制方法、系统及设备 | |
US10432394B2 (en) | Method and system for sharing encrypted content | |
RU2351078C2 (ru) | Эффективное управление генерациями криптографических ключей | |
WO2018201062A1 (en) | Orthogonal access control for groups via multi-hop transform encryption | |
CN103731395B (zh) | 文件的处理方法及系统 | |
US20100098248A1 (en) | Device and method of generating and distributing access permission to digital object | |
US20100005318A1 (en) | Process for securing data in a storage unit | |
CN113098849A (zh) | 基于属性及身份加密的访问控制方法、终端及存储介质 | |
EP1501238B1 (en) | Method and system for key distribution comprising a step of authentication and a step of key distribution using a KEK (key encryption key) | |
CN107426162A (zh) | 一种基于属性基加密实施核心角色访问控制的方法 | |
JP2003152708A (ja) | 文書送信方法およびシステム | |
CN115225364B (zh) | 一种面向云端加密数据的高效动态访问控制方法及系统 | |
CN114679340A (zh) | 一种文件共享方法、系统、设备及可读存储介质 | |
CN114218584A (zh) | 系统级可撤销属性加密的电力数据隐私保护模型及方法 | |
EP1854260B1 (en) | Access rights control in a device management system | |
Merdassi et al. | A new LTMA-ABE location and time access security control scheme for mobile cloud | |
CN111083140A (zh) | 混合云环境下的数据共享方法 | |
CN113836546B (zh) | 一种密钥管理方法、装置、设备及存储介质 | |
CN114244579A (zh) | 用户级可撤销属性加密的电力数据隐私保护系统及方法 | |
JP2003248627A (ja) | ファイルアクセス制御方法、プログラム及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |