CN116756780B - 基于cp-abe算法的联盟链数据访问控制方法及相关设备 - Google Patents
基于cp-abe算法的联盟链数据访问控制方法及相关设备 Download PDFInfo
- Publication number
- CN116756780B CN116756780B CN202311051961.0A CN202311051961A CN116756780B CN 116756780 B CN116756780 B CN 116756780B CN 202311051961 A CN202311051961 A CN 202311051961A CN 116756780 B CN116756780 B CN 116756780B
- Authority
- CN
- China
- Prior art keywords
- user
- data
- key
- ciphertext
- attribute
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 claims abstract description 19
- 238000003860 storage Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002265 prevention Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000001550 testis Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种基于CP‑ABE算法的联盟链数据访问控制方法及相关设备,应用于区块链平台,区块链平台存储有系统公共参数和系统主密钥,所述方法包括:运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端;接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于CP-ABE算法的联盟链数据访问控制方法及相关设备。
背景技术
随着互联网的普及和区块链技术的兴起,对个人而言,一方面要保护自己的数据隐私,同时也需要将数据分享给第三方应用来享受个性化的定制服务。在实际应用中,用户往往希望可以根据目标应用的特征或身份来灵活的制定数据分享策略,从而接受多个不同第三方应用提供的个性化服务。
但是,数据与第三方交互过程中存在风险,现有技术中应用CP-ABE与区块链结合,虽然可以提高第三方应用介入的安全性,但是其面临的属性撤销问题以及密钥泄露问题依旧是亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提出一种基于CP-ABE算法的联盟链数据访问控制方法及相关设备,以解决或部分解决上述问题。
基于上述目的,在第一方面,本申请提供了一种基于CP-ABE算法的联盟链数据访问控制方法,应用于区块链平台,所述区块链平台存储有系统公共参数和系统主密钥,包括:
运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端;
接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;
响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;
响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端。
在一种可能的实现方式中,所述方法还包括:
接收所述数据持有端发送的目标用户的属性信息,根据所述目标用户的属性信息将所述目标用户从所述用户撤销列表删除,以赋予所述目标用户数据访问权限。
在一种可能的实现方式中,所述根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证,包括:
根据所述所述用户属性以及所述系统公共参数确定所述用户端是否包含于所述用户撤销列表;
响应于所述用户端不包含于所述用户撤销列表,确认所述属性信息是否符合所述数据密文中的密文访问策略;
响应于所述属性信息符合所述数据密文中的密文访问策略,确定所述用户端的数据访问权限的验证通过。
在一种可能的实现方式中,所述方法还包括:
响应于所述用户端包含于所述用户撤销列表,确定所述用户端的数据访问权限的验证不通过。
基于同样的目的,在第二方面,本申请提供了一种基于CP-ABE算法的联盟链数据访问控制方法,应用于数据持有端,所述数据持有端存储有系统公共参数,包括:
制定密文访问策略和用户撤销名单;
根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到区块链平台。
在一种可能的实现方式中,所述方法还包括:
向所述区块链平台发送目标用户的属性信息,以使所述区块链平台根据所述目标用户的属性信息赋予所述目标用户数据访问权限。
基于同样的目的,在第三方面,本申请提供了一种基于CP-ABE算法的联盟链数据访问控制方法,应用于用户端,包括:
接收区块链平台发送的第一密钥;
向所述区块链平台发送数据请求;
接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
基于同样的目的,本申请还提出了一种基于CP-ABE算法的联盟链数据访问控制系统,其特征在于,包括:数据持有端、区块链平台以及用户端;
所述数据持有端被配置为:
制定密文访问策略和用户撤销名单;
根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到所述区块链平台;
所述区块链平台被配置为:
运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端;
接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;
响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;
响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端;
所述用户端被配置为:
接收区块链平台发送的第一密钥;
向所述区块链平台发送数据请求;
接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
基于上述目的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的方法。
基于上述目的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任意一项所述的方法。
从上面所述可以看出,本申请提供的基于CP-ABE算法的联盟链数据访问控制方法及相关设备,在数据持有端制定密文访问策略和用户撤销名单,根据系统公共参数、密文访问策略、用户撤销名单以及数据明文生成数据密文,将数据密文发送到区块链平台;区块链平台存储有系统公共参数和系统主密钥,运行智能合约,根据预先存储的用户属性生成与用户属性相应的第一密钥和第二密钥,将第一密钥发送到用户端,当接收到据持有端发送的数据密文,根据数据密文以及系统主密钥,利用可搜索加密算法生成用户撤销列表;用户端接收区块链平台发送的第一密钥,用户端向区块链平台发送数据请求;区块链平台响应于接收到用户端发送的数据请求,根据用户属性、系统公共参数以及用户撤销列表对用户端进行数据访问权限的验证,响应于用户端的数据访问权限的验证通过,根据第二密钥解密数据密文,得到中间数据密文,并将中间数据密文发送到用户端;用户端接收区块链平台发送的中间数据密文,根据第一密钥对中间数据密文进行解密,得到数据明文。本申请提供的基于CP-ABE算法的联盟链数据访问控制方法可以满足用户灵活撤销,实现防密钥泄露,该方法基于联盟链技术和CP-ABE算法,实现对恶意用户泄露解密密钥的预防以及用户级别的灵活撤销,解决现有区块链与CP-ABE结合方案中存在的链上身份信息透明、撤销过程依赖第三方权威机构、方案普适性等问题,实现更高效、更安全、更灵活的隐私数据共享。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据持有端、区块链平台以及客户端交互示意图。
图2为本申请实施例提供的数据持有端、区块链平台以及多个客户端交互示意图。
图3为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于数据持有端的流程示意图。
图4为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于区块链平台的流程示意图。
图5为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于用户端的流程示意图。
图6为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制系统示意图。
图7为本申请实施例提供的电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,在实际应用中用户往往希望可以根据目标应用的特征或身份来灵活的制定数据分享策略,从而接受多个不同第三方应用提供的个性化服务。为了解决这个问题,CP-ABE算法应运而生。
基于属性的加密(attribute-based ecryption,简称ABE)它可以实现数据的一对多加密安全传输,并且可以根据对象的不同属性实现复杂的访问控制策略,密文与访问策略相关,解密密钥与属性绑定。
在CP-ABE应用中,需要一个或多个可信第三方权威机构来负责密钥的生成与分发、访问策略的维护、属性管理等。权威机构必须完全可信,这违背了分布式应用要求信任分散的安全需求,存在第三方权威机构遭受攻击或出现故障,整个系统停止运行的风险。
而区块链及智能合约技术具有不可篡改、不可否认、去中心化的特性,能很好的替代权威机构的角色,与CP-ABE结合能有效解决第三方机构的安全风险。CP-ABE结合区块链及智能合约的方案已经在远程医疗问诊、物联网、云存储等实际场景中得到应用。
申请人在实现本申请的过程中发现,CP-ABE与区块链结合的方案虽然完美解决了可信第三方的风险,但诸多CP-ABE的问题仍有待研究。
首先是属性撤销问题,属性撤销分为用户撤销和用户属性撤销两部分,用户撤销是直接作废该用户的所有权限,用户属性撤销是针对每个用户属性的细粒度变化。有诸多学者从密码算法的角度设计新的CP-ABE方案,满足灵活撤销的需求,但相比区块链的撤销方式,密码算法的优化存在依赖第三方权威机构、流程过于复杂、代码实现困难、距离实际部署应用遥远等问题。
其次是密钥泄露问题:在ABE中,用户分配得到的密钥是能顺利解密密文的重要工具,如果该密钥落入非授权用户的手中,会造成数据的泄露,对数据加密方造成损失。很多研究聚焦密钥泄露后的追踪问题,希望获得泄露密钥用户的身份,对其进行追责,但这样的追踪方案并没有从根源解决密钥泄露的问题和动机,泄露密钥所收获的收益仍然让很多用户蠢蠢欲动。
因此,针对属性撤销中用户撤销问题和密钥泄露问题,本申请提出了一种基于CP-ABE算法的联盟链数据访问控制方法。
以下,通过具体的实施例进一步详细说明本申请的技术方案。
参考图1,为本申请实施例提供的数据持有端、区块链平台以及客户端交互示意图。
步骤S101,数据持有端制定密文访问策略和用户撤销名单。
在具体实施中,密文访问策略可以理解为一个规则,满足这个规则的用户才能访问密文,而用户撤销名单可以理解为“黑名单”,即在这个名单的用户无论他是否满足密文的访问策略都不能访问密文。该名单可以由数据持有端在数据加密阶段制定。
作为一个可选的实施例,数据持有端为Data Owner,制定的密文访问策略和用户撤销名单为。userA(用户A)的属性为/>,userB(用户B)的属性为/>,UserC(用户C)的属性为/>。其中,密文访问策略的的规则为用户属性为学生,且要求是成绩第一或者成绩第二的学生,而/>为用户撤销名单,用户A的属性为成绩第一的学生,用户B的属性为成绩第二的学生,用户C的属性为成绩第一的老师。
参考图2,为本申请实施例提供的数据持有端、区块链平台以及多个客户端交互示意图。
步骤S102,数据持有端根据系统公共参数、密文访问策略、用户撤销名单以及数据明文生成数据密文,将数据密文发送到区块链平台。
在具体实施中,由区块链平台上的合约运行算法,生成系统公共参数和系统主密钥,/>仅在系统启动时运行一次,区块链平台保留系统主密钥,公开系统公共参数。
作为一个可选的实施例,该算法由智能合约初始化并执行,安全参数作为算法的输入,算法输出系统公共参数/>和系统主密钥/>。
则算法的执行步骤如下:
S1:选择随机数;
S2:计算以及/>;
其中,和/>是素数阶/>的两个乘法循环群,/>是/>的生成元,/>是的双线性映射,/>是整数循环群,/>为系统公共参数的一部分,系统公共参数对系统发布,系统主密钥/>保存于智能合约中,不对外发布。
在具体实施中,数据持有端执行算法,算法的输入包括系统公共参数/>,数据密文M,用户撤销名单/>和数据持有端制定的密文访问策略/>,最终输出数据密文,该算法的计算步骤如下:
M1:针对数据密文M,计算以及/>;
M2:选择随机数,对应密文访问策略中的每个属性值/>计算。
M3:最终的数据密文包含用户撤销列表/>。数据持有端将数据密文发送至区块链平台上。
其中,表示一个/>的矩阵,/>是矩阵/>中一行到属性名称集合/>中一个属性名的映射,且每个属性名只出现一次,/>是于对应于/>的属性值。算法选择一个随机向量/>,其中/>。随后计算/>,其中/>是矩阵/>的第/>行,计算结果/>即为秘密/>对应属性/>的秘密分片。
步骤S103,区块链平台运行智能合约,根据预先存储的用户属性生成与用户属性相应的第一密钥和第二密钥,将第一密钥发送到用户端。
在具体实施中,区块链平台运行算法,为用户端根据其具有的属性产生对应的密钥,其中/>为第一密钥,发送给用户,/>为第二密钥,保存于链上。
作为一个可选的实施例,区块链平台运行智能合约执行该算法,用于生成用户端的解密密钥。算法的输入为,/>,用户身份信息/>和用户属性集/>,算法的计算步骤如下:
K1:选择随机数。
K2:计算以及/>。
K3:对用户属性列表中的每一个属性值,分别计算/>。
K4:对用户属性列表中的每一个属性值,分别计算/>。
K5:生成的用户解密密钥为两部分,第二密钥,作为用户解密密钥的分片,存储于区块链上,第一密钥/>作为该用户的解密密钥,发送给用户由用户存储。其中,/>中的/>表示用户属性名称集合,/>是对应属性值的集合。
步骤S104,区块链平台接收数据持有端发送的数据密文,根据数据密文以及系统主密钥,利用可搜索加密算法生成用户撤销列表。
在具体实施中,区块链平台根据数据密文中包含的用户撤销名单,调用算法/>,采用可搜索加密算法,生成链上加密存储的用户撤销列表/>。
可搜索加密算法(Searchable Encryption,简称SE)当数据存储在一个不可信的服务器时,为了让服务器不能够了解到数据内容,需要对数据加密后再存储。
作为一个可选的实施例,区块链平台运行智能合约执行该算法,算法输出加密处理后的用户撤销列表,/>存储于链上,并由智能合约维护,算法的输入包括/>和包含于数据密文中的用户撤销列表/>,其中/>表示用户身份。算法的计算步骤如下:
Q1:合约在收到数据持有端提交的数据密文后,对用户撤销列表中的每一个用户信息计算/>。
Q2:最终生成加密的用户撤销列表,有效保护了撤销用户的身份隐私,链上存储该列表。
步骤S105,用户端接收区块链平台发送的第一密钥。
步骤S106,用户端向区块链平台发送数据请求。
在具体实施中,用户端可以向区块链平台发送数据请求,数据请求即对数据密文的获取请求,当存在多个用户端时,如存在.userA、userB、userC三位用户时,userA,userB,userC三位用户向区块链平台发起对数据密文的获取请求。
步骤S107,区块链平台响应于接收到用户端发送的数据请求,根据用户属性、系统公共参数以及用户撤销列表对用户端进行数据访问权限的验证。
区块链平台在收到用户端发送的数据请求后,调用算法,对用户进行权限检验。因为/>中存在userB的加密属性信息,因此对userB的检验返回/>,对userA和userC的检验返回1。
作为一个可选的实施例,该算法由用户调用,智能合约运行,在不泄露撤销用户身份的条件下检验该用户是否在用户撤销列表中。算法的输入包括,用户身份信息/>以及用户撤销列表/>。算法的计算步骤如下:
L1:选择随机数。
L2:智能合约计算,/>以及/>。
L3:对,验证是否满足/>。若存在/>满足该等式,则用户/>在撤销列表中,算法返回/>,否则返回1。
其中,表示该用户在用户撤销列表中,拒绝该用户获取数据明文的请求,1表示该用户不在用户撤销列表中。
步骤S108,区块链平台响应于用户端的数据访问权限的验证通过,根据第二密钥解密数据密文,得到中间数据密文,将中间数据密文发送到用户端。
在具体实施中,因为userB没有通过,即使他的属性满足数据持有端制定的访问策略,userB也不能获得响应。因此只对userA和userC的请求做出响应,区块链平台调用算法/>,根据userA和userC链上的密钥分片/>对密文进行第一次处理,得到处理后的中间密文数据,并将结果发送给相应用户。
作为一个可选的实施例,智能合约执行该解密算法。该算法的输入包括用户身份,以及该用户链上的密钥分片,即第二密钥/>以及密文。算法存在两种情况:
情况1:如果用户的属性集且用户未通过IDTest检验,即IDTest返回/>,不执行该算法,解密失败。
情况2:如果用户的属性集且用户通过IDTest检验,即IDTest返回1,算法按如下步骤计算:
Y1:对计算/>。
Y2:算法输出。
合约将数据密文和算法输出的中间数据密文/>发送给用户。
步骤S109,用户端接收区块链平台发送的中间数据密文,根据第一密钥对中间数据密文进行解密,得到数据明文。
在具体实施中,用户端在收到中间数据密文后,本地运行算法/>。userA的属性满足密文访问策略,则可以成功获得数据明文,而userC的属性不满足密文访问策略,则无法成功解密数据密文。
作为一个可选的实施例,用户端执行该算法,算法输入密文,中间数据密文/>以及用户端存储的第一密钥/>,若用户属性集满足密文的访问策略,算法输出解密明文。算法计算步骤如下:
P1:设,表示满足访问策略/>的用户属性所对应的矩阵/>的行数集,存在系数集/>使得/>,所以。
P2:对,计算:
P3:计算:。
P4:最终,算法恢复明文。
参考图3,为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于数据持有端的流程示意图。
数据持有端存储有系统公共参数。
步骤S301,制定密文访问策略和用户撤销名单。
步骤S302,根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到区块链平台。
作为一个可选的实施例,数据持有端向所述区块链平台发送目标用户的属性信息,以使所述区块链平台根据所述目标用户的属性信息赋予所述目标用户数据访问权限。
在具体实施中,若数据持有端此时想恢复userB的权限,可向区块链平台发送修改请求,区块链平台运行算法,返回1恢复UserB权限。此时UserB再次发送数据获取请求,通过/>检验,获得区块链平台的响应,实现了用户的灵活撤销。
参考图4,为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于区块链平台的流程示意图。
区块链平台存储有系统公共参数和系统主密钥。
步骤S401,运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端。
步骤S402,接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表。
步骤S403,响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证。
步骤S404,响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端。
作为一个可选的实施例,当区块链平台接收所述数据持有端发送的目标用户的属性信息,根据所述目标用户的属性信息将所述目标用户从所述用户撤销列表删除,以赋予所述目标用户数据访问权限。
作为一个可选的实施例,区块链平台接收到用户端发送的数据请求后,需要验证该用户端是否在用户撤销列表中,若该用户端不在用户撤销列表中,还需要进一步验证该用户端是否符合密文访问策略。
具体地,区块链平台根据所述所述用户属性以及所述系统公共参数确定所述用户端是否包含于所述用户撤销列表;响应于所述用户端不包含于所述用户撤销列表,确认所述属性信息是否符合所述数据密文中的密文访问策略;响应于所述属性信息符合所述数据密文中的密文访问策略,确定所述用户端的数据访问权限的验证通过。
作为一个可选的实施例,区块链平台响应于所述用户端包含于所述用户撤销列表,确定所述用户端的数据访问权限的验证不通过。
参考图5,为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制方法应用于用户端的流程示意图。
步骤S501,接收区块链平台发送的第一密钥。
步骤S502,向所述区块链平台发送数据请求。
步骤S503,接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
从上面所述可以看出,本申请提供的基于CP-ABE算法的联盟链数据访问控制方法及相关设备,在数据持有端制定密文访问策略和用户撤销名单,根据系统公共参数、密文访问策略、用户撤销名单以及数据明文生成数据密文,将数据密文发送到区块链平台;区块链平台存储有系统公共参数和系统主密钥,运行智能合约,根据预先存储的用户属性生成与用户属性相应的第一密钥和第二密钥,将第一密钥发送到用户端,当接收到据持有端发送的数据密文,根据数据密文以及系统主密钥,利用可搜索加密算法生成用户撤销列表;用户端接收区块链平台发送的第一密钥,用户端向区块链平台发送数据请求;区块链平台响应于接收到用户端发送的数据请求,根据用户属性、系统公共参数以及用户撤销列表对用户端进行数据访问权限的验证,响应于用户端的数据访问权限的验证通过,根据第二密钥解密数据密文,得到中间数据密文,并将中间数据密文发送到用户端;用户端接收区块链平台发送的中间数据密文,根据第一密钥对中间数据密文进行解密,得到数据明文。本申请提供的基于CP-ABE算法的联盟链数据访问控制方法可以满足用户灵活撤销,实现防密钥泄露,该方法基于联盟链技术和CP-ABE算法,实现对恶意用户泄露解密密钥的预防以及用户级别的灵活撤销,解决现有区块链与CP-ABE结合方案中存在的链上身份信息透明、撤销过程依赖第三方权威机构、方案普适性等问题,实现更高效、更安全、更灵活的隐私数据共享。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例提供的基于CP-ABE算法的联盟链数据访问控制方法相对应的,本申请还提供了一种基于CP-ABE算法的联盟链数据访问控制系统。
参考图6,为本申请实施例提供的基于CP-ABE算法的联盟链数据访问控制系统示意图。
基于CP-ABE算法的联盟链数据访问控制系统包括:数据持有端601、区块链平台602以及用户端603;
所述数据持有端被配置为:
制定密文访问策略和用户撤销名单;
根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到所述区块链平台;
所述区块链平台被配置为:
运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端;
接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;
响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;
响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端;
所述用户端被配置为:
接收区块链平台发送的第一密钥;
向所述区块链平台发送数据请求;
接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
数据持有端601还被配置为:
向所述区块链平台发送目标用户的属性信息,以使所述区块链平台根据所述目标用户的属性信息赋予所述目标用户数据访问权限。
区块链平台602还被配置为:
接收所述数据持有端发送的目标用户的属性信息,根据所述目标用户的属性信息将所述目标用户从所述用户撤销列表删除,以赋予所述目标用户数据访问权限。
区块链平台602还被配置为:
根据所述所述用户属性以及所述系统公共参数确定所述用户端是否包含于所述用户撤销列表;
响应于所述用户端不包含于所述用户撤销列表,确认所述属性信息是否符合所述数据密文中的密文访问策略;
响应于所述属性信息符合所述数据密文中的密文访问策略,确定所述用户端的数据访问权限的验证通过。
区块链平台602还被配置为:
响应于所述用户端包含于所述用户撤销列表,确定所述用户端的数据访问权限的验证不通过。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的系统用于实现前述任一实施例中相应的基于CP-ABE算法的联盟链数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于CP-ABE算法的联盟链数据访问控制方法。
图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器710、存储器420、输入/输出接口730、通信接口740和总线750。其中处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。
处理器710可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器720可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器720可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行。
输入/输出接口730用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口740用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线750包括一通路,在设备的各个组件(例如处理器710、存储器720、输入/输出接口730和通信接口740)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器710、存储器720、输入/输出接口730、通信接口740以及总线750,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于CP-ABE算法的联盟链数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于CP-ABE算法的联盟链数据访问控制方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的基于CP-ABE算法的联盟链数据访问控制方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (8)
1.一种基于CP-ABE算法的联盟链数据访问控制方法,其特征在于,应用于区块链平台、数据持有端以及用户端,所述区块链平台存储有系统公共参数和系统主密钥,所述数据持有端存储有系统公共参数,所述方法包括:
所述应用于数据持有端,包括:
制定密文访问策略和用户撤销名单;
根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到所述区块链平台;
所述应用于区块链平台,包括:
运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端,包括:
运行算法,为用户端根据其具有的属性产生对应的密钥,其中,/>为第一密钥,发送给用户端,/>为第二密钥,保存于链上;
所述算法的输入为/>,,用户身份信息/>和用户属性集/>,其中,/>和/>是素数阶/>的两个乘法循环群,/>是/>的生成元,/>是/>的双线性映射,/>是整数循环群,为系统公共参数的一部分,系统公共参数/>对系统发布,系统主密钥/>保存于智能合约中,不对外发布;
算法的计算步骤如下:
K1:选择随机数;
K2:计算以及/>;
K3:对用户属性列表中的每一个属性值,分别计算/>;
K4:对用户属性列表中的每一个属性值,分别计算/>;
K5:生成的用户解密密钥为两部分,第二密钥,作为用户解密密钥的分片,存储于区块链上,第一密钥/>作为该用户的解密密钥,发送给用户端由用户存储;
其中,中的/>表示用户属性名称集合,/>是对应属性值的集合;
接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;
响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;
响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端;
所述应用于用户端,包括:
接收区块链平台发送的第一密钥;
向所述区块链平台发送数据请求;
接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收所述数据持有端发送的目标用户的属性信息,根据所述目标用户的属性信息将所述目标用户从所述用户撤销列表删除,以赋予所述目标用户数据访问权限。
3.根据权利要求2所述的方法,其特征在于,所述根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证,包括:
根据所述用户属性以及所述系统公共参数确定所述用户端是否包含于所述用户撤销列表;
响应于所述用户端不包含于所述用户撤销列表,确认所述属性信息是否符合所述数据密文中的密文访问策略;
响应于所述属性信息符合所述数据密文中的密文访问策略,确定所述用户端的数据访问权限的验证通过。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述用户端包含于所述用户撤销列表,确定所述用户端的数据访问权限的验证不通过。
5.根据权利要求1所述的方法,其特征在于,还包括:
向所述区块链平台发送目标用户的属性信息,以使所述区块链平台根据所述目标用户的属性信息赋予所述目标用户数据访问权限。
6.一种基于CP-ABE算法的联盟链数据访问控制系统,其特征在于,包括:数据持有端、区块链平台以及用户端;所述区块链平台存储有系统公共参数和系统主密钥;所述数据持有端存储有系统公共参数;
所述数据持有端被配置为:
制定密文访问策略和用户撤销名单;
根据所述系统公共参数、所述密文访问策略、所述用户撤销名单以及数据明文生成数据密文,将所述数据密文发送到所述区块链平台;
所述区块链平台被配置为:
运行智能合约,根据预先存储的用户属性生成与所述用户属性相应的第一密钥和第二密钥,将所述第一密钥发送到用户端,包括:
运行算法,为用户端根据其具有的属性产生对应的密钥,其中,/>为第一密钥,发送给用户端,/>为第二密钥,保存于链上;
所述算法的输入为/>,,用户身份信息/>和用户属性集/>,其中,/>和/>是素数阶/>的两个乘法循环群,/>是/>的生成元,/>是/>的双线性映射,/>是整数循环群,为系统公共参数的一部分,系统公共参数/>对系统发布,系统主密钥/>保存于智能合约中,不对外发布;
算法的计算步骤如下:
K1:选择随机数;
K2:计算以及/>;
K3:对用户属性列表中的每一个属性值,分别计算/>;
K4:对用户属性列表中的每一个属性值,分别计算/>;
K5:生成的用户解密密钥为两部分,第二密钥,作为用户解密密钥的分片,存储于区块链上,第一密钥/>作为该用户的解密密钥,发送给用户端由用户存储;
其中,中的/>表示用户属性名称集合,/>是对应属性值的集合;
接收数据持有端发送的数据密文,根据所述数据密文以及所述系统主密钥,利用可搜索加密算法生成用户撤销列表;
响应于接收到用户端发送的数据请求,根据所述用户属性、所述系统公共参数以及所述用户撤销列表对所述用户端进行数据访问权限的验证;
响应于所述用户端的数据访问权限的验证通过,根据所述第二密钥解密所述数据密文,得到中间数据密文,将所述中间数据密文发送到所述用户端;
所述用户端被配置为:
接收区块链平台发送的第一密钥;
向所述区块链平台发送数据请求;
接收所述区块链平台发送的中间数据密文,根据所述第一密钥对所述中间数据密文进行解密,得到数据明文。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任意一项所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至5任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311051961.0A CN116756780B (zh) | 2023-08-21 | 2023-08-21 | 基于cp-abe算法的联盟链数据访问控制方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311051961.0A CN116756780B (zh) | 2023-08-21 | 2023-08-21 | 基于cp-abe算法的联盟链数据访问控制方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116756780A CN116756780A (zh) | 2023-09-15 |
CN116756780B true CN116756780B (zh) | 2024-01-30 |
Family
ID=87948262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311051961.0A Active CN116756780B (zh) | 2023-08-21 | 2023-08-21 | 基于cp-abe算法的联盟链数据访问控制方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116756780B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493347A (zh) * | 2019-08-26 | 2019-11-22 | 重庆邮电大学 | 基于区块链的大规模云存储中数据访问控制方法及系统 |
CN112073479A (zh) * | 2020-08-26 | 2020-12-11 | 重庆邮电大学 | 一种基于区块链的去中心数据访问控制方法及系统 |
CN114785622A (zh) * | 2022-06-21 | 2022-07-22 | 深圳赛思鹏科技发展有限公司 | 多标识网络的访问控制方法、装置及存储介质 |
CN115426136A (zh) * | 2022-08-12 | 2022-12-02 | 中国人民解放军战略支援部队信息工程大学 | 基于区块链的跨域访问控制方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310041B2 (en) * | 2019-04-05 | 2022-04-19 | Arizona Board Of Regents On Behalf Of Arizona State University | Method and apparatus for achieving fine-grained access control with discretionary user revocation over cloud data |
-
2023
- 2023-08-21 CN CN202311051961.0A patent/CN116756780B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493347A (zh) * | 2019-08-26 | 2019-11-22 | 重庆邮电大学 | 基于区块链的大规模云存储中数据访问控制方法及系统 |
CN112073479A (zh) * | 2020-08-26 | 2020-12-11 | 重庆邮电大学 | 一种基于区块链的去中心数据访问控制方法及系统 |
CN114785622A (zh) * | 2022-06-21 | 2022-07-22 | 深圳赛思鹏科技发展有限公司 | 多标识网络的访问控制方法、装置及存储介质 |
CN115426136A (zh) * | 2022-08-12 | 2022-12-02 | 中国人民解放军战略支援部队信息工程大学 | 基于区块链的跨域访问控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116756780A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7077394B2 (ja) | デバイスに匿名性を与えるキー認証ステートメントの生成 | |
US11019040B2 (en) | Cloud key escrow system | |
CN110520884B (zh) | 基于可信执行环境的链外智能合约服务 | |
US20230155846A1 (en) | Blockchain-implemented method and system | |
JP2020528224A (ja) | 信頼できる実行環境におけるスマート契約動作のセキュアな実行 | |
US9479340B1 (en) | Controlling use of encryption keys | |
KR102145701B1 (ko) | 안전한 다자 계산에서 참가자에 의한 입력 데이터의 허위 표시 방지 | |
CN109074449A (zh) | 在安全飞地中灵活地供应证明密钥 | |
US10003467B1 (en) | Controlling digital certificate use | |
Velliangiri et al. | An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography | |
Sun et al. | MedRSS: A blockchain-based scheme for secure storage and sharing of medical records | |
Yadav et al. | Efficient and privacy-preserving location-based services over the cloud | |
CN116756780B (zh) | 基于cp-abe算法的联盟链数据访问控制方法及相关设备 | |
JP2019057827A (ja) | 分散認証システムおよびプログラム | |
Zhang et al. | A Secure Access Control Framework for Cloud Management | |
CN112865968B (zh) | 数据密文托管方法、系统、计算机设备及存储介质 | |
Wang et al. | Security Enhancements for Data‐Driven Systems: A Blockchain‐Based Trustworthy Data Sharing Scheme | |
CN111989891B (zh) | 数据处理方法、相关装置及区块链系统 | |
CN115766268A (zh) | 处理方法、装置、设备及存储介质 | |
WO2023025369A1 (en) | Client application entity, target application entity, root of trust device, and methods for establishing a secure communication channel | |
CN116862519A (zh) | 基于区块链的处理匿名账户资源转移的方法、装置和设备 | |
CN116226932A (zh) | 业务数据校验方法、装置、计算机介质及电子设备 | |
CN118174844A (zh) | 一种数据共享方法、装置和设备及计算机存储介质 | |
CN117692201A (zh) | 一种可验证可追责访问控制的属性基密码系统及方法 | |
CN116340999A (zh) | 一种基于协同计算的数据处理方法 |
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 |