本发明涉及一种基于双区块链的细粒度访问控制方法及系统,属于数据安全技术和区块链技术领域。
背景技术:
使用云存储技术的不同用户之间的数据流通和共享能够提高业务流程效率和促进业务发展,但传统的对称加密技术和公钥加密技术难以应对云存储中用户对数据的细粒度访问控制需求。如何进行数据共享中的细粒度访问控制从而实现安全高效且可控的数据共享是国内外研究人员研究的热门课题。
区块链技术作为比特币、以太坊等数字加密货币的核心技术,近年来得到了各领域研究人员的广泛关注。区块链能够通过分布式节点的验证和共识机制解决去中心化系统节点间信任建立的问题,实现去中心化、分布式的信任建立机制。
将区块链技术用于细粒度数据访问控制从而实现安全可控的数据共享,主要有以下优势:首先,区块链的开放共识特点能够满足访问策略的分布式动态更新需求,提高访问控制策略的灵活性和可扩展性;其次,区块链技术的去信任特点解决了传统访问控制方案中的信任问题,使数据共享的安全级别达到更高层次;然后,区块链技术中的智能合约能够辅助实现数据访问控制的可信自动化执行,判决过程效率更高;最后,区块链技术的不可篡改和可追溯性等特点使其事务数据永远存储在链上并无法被篡改,能够实现数据共享过程中的追踪管理,更有利于系统审计功能的实现,从而实现更为可信可控的数据共享。
对于新技术条件下的访问控制所需的去中心、分布式、匿名化、轻量级、高效率和可审计追踪等更高要求,区块链技术具有的开放共识、去中心、去信任、匿名性、不可篡改、可追溯性等特点正好相符合,能够很好地解决传统模式下无法很好解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种基于双区块链的细粒度访问控制方法及系统,其将区块链技术与多中心可撤销密钥策略属性基加密方案相结合,形成的新型细粒度访问控制方案具有去中心化密钥授权管理、独立用户撤销和更新、部分用户撤销和更新、密钥身份可追踪、公钥数据不可篡改、共享数据完整性保证和密钥授权行为不可抵赖等功能,并利用了公有链中信息发布的广泛性和支付功能的可靠性,以及联盟链中成员管理的可控性和交易生成的高效性进行双链优势整合,使其具有较强的安全性、灵活性和较高的运行效率。
本发明的第一个目的在于提供一种基于双区块链的细粒度访问控制方法。
本发明的第二个目的在于提供一种基于双区块链的细粒度访问控制系统。
本发明的第一个目的可以通过采取如下技术方案达到:
一种基于双区块链的细粒度访问控制方法,所述方法包括:
建立联盟链,将多个属性授权机构作为联盟链上的多个记帐节点,并进行系统初始化;
各属性授权机构初始化,生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链;
数据拥有者将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储;
数据拥有者将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台;
数据访问者在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权;
数据访问者利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
进一步的,所述方法还包括:
当需要撤销解密密钥时,数据访问者向各属性授权机构发送解密密钥撤销请求,以使属性集满足数据访问者被撤销访问策略的属性授权机构进行解密密钥撤销操作,并将新公钥发布至联盟链;
当需要更新解密密钥时,数据访问者向各属性授权机构发送解密密钥更新请求,以使属性集满足数据访问者被更新访问策略的属性授权机构进行解密密钥更新操作,并将新公钥发布至联盟链;
数据拥有者定期读取联盟链上的新区块数据,使用属性授权机构的新公钥进行密文重加密,将重加密的密钥密文连同其他元数据一起打包发布至以太坊。
进一步的,所述进行解密密钥撤销操作,具体为:调用多中心可撤销密钥策略属性基加密方案的解密密钥撤销算法进行解密密钥撤销操作;
所述调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法进行解密密钥撤销操作,具体包括:
根据数据访问者的全局idu和属性授权机构的公私钥对(apkk,amkk),计算新的用户密钥撤销参数,如下式:
将数据访问者的参数
根据以上计算结果,得到撤销数据访问者后的公私钥对
进一步的,所述进行解密密钥更新操作,具体为:先调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,再调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,得到更新后的公私钥对和数据访问者的解密密钥;
所述先调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,再调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,得到更新后的公私钥对和数据访问者的解密密钥,具体包括:
根据数据访问者的全局idu和属性授权机构的公私钥对(apkk,amkk),计算新的用户密钥撤销参数,如下式:
将数据访问者的参数
根据以上计算结果,得到撤销后的属性授权机构的公私钥对
更新用户密钥撤销参数:随机选取
根据与数据访问者对应的访问策略pk,按照线性秘密共享方案的计算方法得到属性授权机构k私钥αk的秘密分享值
计算解密密钥的组成部分:
根据解密密钥的组成部分计算结果,得到由属性授权机构k授权的数据访问者的部分解密密钥为:
将部分解密密钥发送给数据访问者,以组成数据访问者的解密密钥,如下式:
进一步的,所述使用属性授权机构的新公钥进行密文重加密,具体包括:
使用属性授权机构的新公钥计算密文第二部分并更新版本号,如下式:
将原密钥密文ct重新加密,得到重新加密后的密钥密文,如下式:
进一步的,所述各属性授权机构初始化,生成各自的公私钥对,具体为:各属性授权机构调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对;
所述调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对,具体包括:
随机选取
设置初始用户集uk={u0,u1};其中,u0,u1从
设置用户密钥撤销参数:随机选取
生成各属性授权机构的公私钥对,如下式:
其中,verk是属性授权机构k的公钥版本号。
进一步的,所述将对称密钥进行加密,得到密钥密文,具体为:
根据数据的特性,为数据贴上属性标签,得到属性集,调用多中心可撤销密钥策略属性基加密方案的加密算法将对称密钥dek作为明文进行加密,得到密钥密文,如下式:
其中,γ是属性集,
进一步的,所述对付费交易进行验证,确认后对数据访问者进行解密密钥授权,具体为:对付费交易进行验证,确认后根据数据访问者的费用赋予其相应的访问策略,调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权;
所述调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权,具体包括:
将数据访问者的全局id并入用户集中:uk=uk∪u;其中,u用选取的哈希函数h对数据访问者的以太坊帐户作哈希计算得到;
更新用户密钥撤销参数:随机选取
根据与数据访问者对应的访问策略pk,按照线性秘密共享方案的计算方法得到属性授权机构k私钥αk的秘密分享值
计算解密密钥的组成部分:
根据解密密钥的组成部分计算结果,得到由属性授权机构k授权的数据访问者的部分解密密钥为:
将部分解密密钥发送给数据访问者,以组成数据访问者的解密密钥,如下式:
本发明的第二个目的可以通过采取如下技术方案达到:
一种基于双区块链的细粒度访问控制系统,所述系统包括联盟链、以太坊、数据拥有者、数据访问者、云服务器以及多个属性授权机构,各属性授权机构初始化,生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链;
所述数据拥有者,用于将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储;将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台;
所述数据访问者,用于在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权;利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
进一步的,所述数据拥有者还用于当需要撤销解密密钥时,向各属性授权机构发送解密密钥撤销请求,以使属性集满足数据访问者被撤销访问策略的属性授权机构进行解密密钥撤销操作,并将新公钥发布至联盟链;当需要更新解密密钥时,数据访问者向各属性授权机构发送解密密钥更新请求,以使属性集满足数据访问者被更新访问策略的属性授权机构进行解密密钥更新操作,并将新公钥发布至联盟链;
所述数据访问者还用于定期读取联盟链上的新区块数据,使用属性授权机构的新公钥进行密文重加密,将重加密的密钥密文连同其他元数据一起打包发布至以太坊。
本发明相对于现有技术具有如下的有益效果:
1、本发明将双区块链的优势整合在一起,一方面利用了以太坊区块链在信息发布的广泛性和支付功能的可靠性,辅助实现了有偿数据共享双方的信息发布和读取,以及交易过程中发生的收付操作;另一方面利用了联盟链在成员管理的可控性和交易生成的高效性,辅助实现了多个属性授权机构在联盟链共识机制监督下的公钥实时发布。
2、本发明的公钥数据不可篡改,属性授权机构的公钥一旦发布到联盟链上,则无法篡改,具有极高的可靠性,有利于保障数据拥有者和数据访问者的利益。
3、本发明保证了共享数据完整性,数据拥有者将数据加密上传至云服务器后,将其数据密文的哈希摘要数据包含在元数据中一起发布至以太坊上,数据访问者可利用该哈希摘要数据检查共享数据的完整性,保障其利益。
4、本发明的密钥管理行为不可抵赖,属性授权机构的公钥更新在联盟链上有完整的记录,属性授权机构之间虽然没有交互,但公钥发布的正确性可由联盟链的交易验证和共识算法实现,因此属性授权机构的行为在联盟链上得到有效监管。
5、本发明采用多中心可撤销密钥策略属性基加密方案,实现了去中心化密钥授权管理,使用多个属性授权机构独立地进行互不相交的属性集管理,避免了单一属性授权机构可能导致的效率瓶颈、密钥滥用和单点故障等问题;多个属性授权机构在整个方案中采取无任何交互的设计方法,也避免了属性授权机构共谋的问题。
6、本发明采用多中心可撤销密钥策略属性基加密方案,实现了独立的用户撤销和更新,用户撤销或更新操作由相关联的属性授权机构执行,通过更新属性授权机构的公共参数实现,不需要其他数据访问者参与;数据拥有者也无需持续在线,只需要定期使用属性授权机构的最新公钥执行重新加密即可。
7、本发明采用多中心可撤销密钥策略属性基加密方案,实现了部分的用户撤销和更新,用户撤销或更新操作只需由属性集满足被撤销或更新访问策略而需要进行撤销或更新操作的属性授权机构独立执行,不需要所有属性授权机构的参与。
8、本发明采用多中心可撤销密钥策略属性基加密方案,将数据访问者的全局id嵌入该数据访问者的解密密钥中,因此解密密钥与数据访问者身份绑定,任何使用过该解密密钥的地方都可被追踪到使用者,实现解密身份可追踪、解密行为可追责。
9、本发明采用多中心可撤销密钥策略属性基加密方案,将数据访问者的解密密钥被撤销后,无法再对密文进行解密操作,实现了前向安全;新的数据访问者加入、或原数据访问者的密钥被更新后,其新授权的解密密钥不能对以前的密文进行解密,实现了后向安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例的基于双区块链的细粒度访问控制系统的结构框图。
图2为本发明实施例的基于双区块链的细粒度访问控制方法的流程图。
图3为本发明实施例的建立联盟链及系统初始化的流程图。
图4为本发明实施例的各属性授权机构初始化的流程图。
图5为本发明实施例的对称密钥加密及元数据发布的流程图。
图6为本发明实施例的密钥授权算法的流程图。
图7为本发明实施例的密文解密算法的流程图。
图8为本发明实施例的密钥撤销算法的流程图。
图9为本发明实施例的解密密钥更新的流程图。
图10为本发明实施例的重加密计算的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,本实施例提供了一种基于双区块链的细粒度访问控制系统,该系统包括六种实体,分别为联盟链、以太坊、数据拥有者、数据访问者、云服务器以及多个属性授权机构,各个实体的说明如下:
数据拥有者:将拥有的数据进行有偿共享的实体,如拥有家禽养殖大数据的养殖企业;用于将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储;将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台。
数据访问者:对数据有访问需求的实体,如研究家禽养殖或疫情防治等的机构;用于在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权;利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
属性授权机构:用于对属性集进行管理和对数据访问者的密钥进行授权的机构;系统中的属性授权机构有多个,每个属性授权机构管理不同的属性集,属性授权机构之间在整个系统运行过程中不产生任何交互。
云服务器:为数据拥有者提供加密数据存储的服务器。
以太坊:为有偿数据共享的双方提供元数据发布以及收付费功能的区块链。
联盟链:为属性授权机构提供参数即时发布的联盟链,多属性授权机构作为联盟链上的记帐节点;联盟链采用半公开形式,即区块数据对数据共享双方公开可见,而只有属性授权机构可以进行记帐操作。
如图2所示,本实施例还提供了一种基于双区块链的细粒度访问控制方法,该方法基于上述细粒度访问控制系统实现,包括以下步骤:
s201、建立联盟链,将多个属性授权机构作为联盟链上的多个记帐节点,并进行系统初始化。
该步骤s201如图3所示,具体包括:
s301、建立联盟链,多属性授权机构进行身份认证和注册,将多个属性授权机构作为联盟链上的记帐节点。
s302、选择一个强抗碰撞哈希函数h用于计算用户的全局id。
s303、调用多中心可撤销密钥策略属性基加密方案的系统初始化算法,确定安全参数δ后,生成系统全局参数sp=(g,gt,e,g,p,h);其中,g和gt是素数阶为p的双线性群,e为双线性映射e:g×g→gt,g为生成元。
s202、各属性授权机构初始化,生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链。
具体地,各属性授权机构调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链。
如图4所示,调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对,具体包括:
s401、随机选取
s402、各属性授权机构维护的用户集由数据访问者的全局id组成,为方便计算,设置初始用户集uk={u0,u1};其中,u0,u1从
s403、设置用户密钥撤销参数:随机选取
s404、生成各属性授权机构的公私钥对,如下式:
其中,verk是属性授权机构k的公钥版本号。
s203、数据拥有者将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储。
具体地,数据拥有者选择对称密钥dek用对称加密算法如aes等将要共享的数据加密,得到数据密文,将数据密文上传至云服务器中进行存储。
s204、数据拥有者将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台。
该步骤s204如图5所示,具体包括:
s501、根据数据的特性,为数据贴上属性标签,得到属性集,调用多中心可撤销密钥策略属性基加密方案的加密算法将对称密钥dek作为明文进行加密,得到密钥密文,如下式:
其中,γ是属性集,
s502、将属性集、数据密文的哈希摘要、密钥密文ct、数据在云服务器中的存储位置和相应的费用等信息打包成元数据,发布到以太坊上。
s205、数据访问者在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权。
具体地,数据访问者根据数据拥有者在以太坊发布的元数据信息,确定需要访问的数据,将相应的费用通过以太坊支付给数据拥有者,将自己的付费信息附在数据访问请求中发送给与所需共享数据的属性集对应的各属性授权机构,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权。
对付费交易进行验证,确认后对数据访问者进行解密密钥授权,具体为:对付费交易进行验证,确认后根据数据访问者的费用赋予其相应的访问策略,调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权。
如图6所示,调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权,具体包括:
s601、将数据访问者的全局id并入用户集中:uk=uk∪u;其中,u用步骤s302选取的哈希函数h对数据访问者的以太坊帐户作哈希计算得到。
s602、更新用户密钥撤销参数:随机选取
s603、根据与数据访问者对应的访问策略pk,按照线性秘密共享方案的计算方法得到属性授权机构k私钥αk的秘密分享值
s604、计算解密密钥的组成部分:
s605、根据解密密钥的组成部分计算结果,得到由属性授权机构k授权的数据访问者的部分解密密钥为:
s606、将部分解密密钥发送给数据访问者,以组成数据访问者的解密密钥。
具体地,每个属性授权机构将部分解密密钥发送给数据访问者,数据访问者将所有属性授权机构的部分解密密钥组成数据访问者的解密密钥,如下式:
s206、数据访问者利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
具体地,数据访问者获得解密密钥后,调用多中心可撤销密钥策略属性基加密方案的密文解密算法将密钥密文解密,得到对称密钥,再到云服务器的相应位置中下载数据密文进行解密,并访问数据。
如图7所示,调用多中心可撤销密钥策略属性基加密方案的密文解密算法将密钥密文解密,得到对称密钥,具体包括:
s701、检查密钥密文的属性集γ是否满足访问策略,若满足,则进入步骤s702;
s702、按照线性秘密共享方案的计算方法计算出与秘密分享值相对应的向量
s703、对密钥密文进行解密,计算得到对称密钥dek:
进一步地,本实施例的基于双区块链的细粒度访问控制方法还可包括:
s207、当需要撤销解密密钥时,数据访问者向各属性授权机构发送解密密钥撤销请求,以使属性集满足数据访问者被撤销访问策略的属性授权机构进行解密密钥撤销操作,并将新公钥发布至联盟链。
具体地,当需要撤销解密密钥时,数据访问者向各属性授权机构发送解密密钥撤销请求,由属性集满足被撤销访问策略而需要进行撤销操作的各属性授权机构调用多中心可撤销密钥策略属性基加密方案的解密密钥撤销算法进行密钥撤销操作,由属性集满足被撤销访问策略而需要进行撤销操作的各属性授权机构将其新公钥发布至联盟链。
如图8所示,调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法进行解密密钥撤销操作,具体包括:
s801、根据数据访问者的全局idu和属性授权机构的公私钥对(apkk,amkk),计算新的用户密钥撤销参数,如下式:
s802、将数据访问者u的参数
s803、根据以上计算结果,得到撤销数据访问者u后的公私钥对
s208、当需要更新解密密钥时,数据访问者向各属性授权机构发送解密密钥更新请求,以使属性集满足数据访问者被更新访问策略的属性授权机构进行解密密钥更新操作,并将新公钥发布至联盟链。
具体地,数据访问者向属性授权机构发送密钥更新请求,由属性集满足被更新访问策略而需要进行更新操作的属性授权机构k∈a,
如图9所示,先调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,再调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,得到更新后的公私钥对和数据访问者的解密密钥,具体包括:
s901、调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,采用步骤s801~s803对数据访问者u的密钥进行撤销操作。
s902、调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,采用步骤s601~s606对数据访问者u进行新的解密密钥授权操作。
s903、输出更新后的公私钥对
s209、数据拥有者定期读取联盟链上的新区块数据,使用属性授权机构的新公钥进行密文重加密,将重加密的密钥密文连同其他元数据一起打包发布至以太坊。
如图10所示,使用属性授权机构的新公钥进行密文重加密,具体包括:
s1001、使用属性授权机构的新公钥计算密文第二部分并更新版本号,如下式:
s1002、将原密钥密文ct重新加密,得到重新加密后的密钥密文,如下式:
应当注意,尽管在附图中以特定顺序描述了上述实施例的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
综上所述,本发明将区块链技术与多中心可撤销密钥策略属性基加密方案相结合,形成的新型细粒度访问控制方案具有去中心化密钥授权管理、独立用户撤销和更新、部分用户撤销和更新、密钥身份可追踪、公钥数据不可篡改、共享数据完整性保证和密钥授权行为不可抵赖等功能,并利用了公有链中信息发布的广泛性和支付功能的可靠性,以及联盟链中成员管理的可控性和交易生成的高效性进行双链优势整合,使其具有较强的安全性、灵活性和较高的运行效率。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。