1.一种基于双区块链的细粒度访问控制方法,其特征在于,所述方法包括:建立联盟链,将多个属性授权机构作为联盟链上的多个记帐节点,并进行系统初始化;
各属性授权机构初始化,生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链;
数据拥有者将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储;
数据拥有者将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台;
数据访问者在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权;
数据访问者利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
2.根据权利要求1所述的细粒度访问控制方法,其特征在于,所述方法还包括:当需要撤销解密密钥时,数据访问者向各属性授权机构发送解密密钥撤销请求,以使属性集满足数据访问者被撤销访问策略的属性授权机构进行解密密钥撤销操作,并将新公钥发布至联盟链;
当需要更新解密密钥时,数据访问者向各属性授权机构发送解密密钥更新请求,以使属性集满足数据访问者被更新访问策略的属性授权机构进行解密密钥更新操作,并将新公钥发布至联盟链;
数据拥有者定期读取联盟链上的新区块数据,使用属性授权机构的新公钥进行密文重加密,将重加密的密钥密文连同其他元数据一起打包发布至以太坊。
3.根据权利要求2所述的细粒度访问控制方法,其特征在于,所述进行解密密钥撤销操作,具体为:调用多中心可撤销密钥策略属性基加密方案的解密密钥撤销算法进行解密密钥撤销操作;
所述调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法进行解密密钥撤销操作,具体包括:
根据数据访问者的全局ID u和属性授权机构的公私钥对(APKk,AMKk),计算新的用户密钥撤销参数,如下式:
将数据访问者的参数 删除;
* *
根据以上计算结果,得到撤销数据访问者后的公私钥对(APKk,AMKk)。
4.根据权利要求2所述的细粒度访问控制方法,其特征在于,所述进行解密密钥更新操作,具体为:先调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,再调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,得到更新后的公私钥对和数据访问者的解密密钥;
所述先调用多中心可撤销密钥策略属性基加密方案的密钥撤销算法,再调用多中心可撤销密钥策略属性基加密方案的密钥授权算法,得到更新后的公私钥对和数据访问者的解密密钥,具体包括:
根据数据访问者的全局ID u和属性授权机构的公私钥对(APKk,AMKk),计算新的用户密钥撤销参数,如下式:
将数据访问者的参数 删除;
* *
根据以上计算结果,得到撤销后的属性授权机构的公私钥对(APKk,AMKk);
更新用户密钥撤销参数:随机选取 将数据访问者的全局ID u并入用户集Uk=Uk∪u中,并计算下式:根据与数据访问者对应的访问策略Pk,按照线性秘密共享方案的计算方法得到属性授权机构k私钥αk的秘密分享值 和数据访问者的全局ID u的秘密分享值 其中,l表示秘密共享矩阵中的行,与属性授权机构k管理的属性相对应;
计算解密密钥的组成部分:
根据解密密钥的组成部分计算结果,得到由属性授权机构k授权的数据访问者的部分解密密钥为:
将部分解密密钥发送给数据访问者,以组成数据访问者的解密密钥,如下式:
5.根据权利要求2所述的细粒度访问控制方法,其特征在于,所述使用属性授权机构的新公钥进行密文重加密,具体包括:使用属性授权机构的新公钥计算密文第二部分并更新版本号,如下式:将原密钥密文CT重新加密,得到重新加密后的密钥密文,如下式:
6.根据权利要求1‑5任一项所述的细粒度访问控制方法,其特征在于,所述各属性授权机构初始化,生成各自的公私钥对,具体为:各属性授权机构调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对;
所述调用多中心可撤销密钥策略属性基加密方案的属性授权机构初始化算法进行各属性授权机构初始化,并生成各属性授权机构的公私钥对,具体包括:随机选取
设置初始用户集Uk={u0,u1};其中,u0,u1从 中随机选取,表示初始用户集里两个用户的全局ID;
设置用户密钥撤销参数:随机选取 并计算下式:生成各属性授权机构的公私钥对,如下式:其中,Verk是属性授权机构k的公钥版本号。
7.根据权利要求1‑5任一项所述的细粒度访问控制方法,其特征在于,所述将对称密钥进行加密,得到密钥密文,具体为:根据数据的特性,为数据贴上属性标签,得到属性集,调用多中心可撤销密钥策略属性基加密方案的加密算法将对称密钥DEK作为明文进行加密,得到密钥密文,如下式:其中,γ是属性集, {Verk}k∈A是与属性集对应的属性授权机构的公钥版本号集,A是与属性集对应的属性授权机构集合,s为选取的随机数。
8.根据权利要求1‑5任一项所述的细粒度访问控制方法,其特征在于,所述对付费交易进行验证,确认后对数据访问者进行解密密钥授权,具体为:对付费交易进行验证,确认后根据数据访问者的费用赋予其相应的访问策略,调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权;
所述调用多中心可撤销密钥策略属性基加密方案的密钥授权算法对数据访问者进行解密密钥授权,具体包括:
将数据访问者的全局ID并入用户集中:Uk=Uk∪u;其中,u用选取的哈希函数H对数据访问者的以太坊帐户作哈希计算得到;
更新用户密钥撤销参数:随机选取 将数据访问者的全局ID u并入用户集Uk=Uk∪u中,并计算下式:根据与数据访问者对应的访问策略Pk,按照线性秘密共享方案的计算方法得到属性授权机构k私钥αk的秘密分享值 和数据访问者的全局ID u的秘密分享值 其中,l表示秘密共享矩阵中的行,与属性授权机构k管理的属性相对应;
计算解密密钥的组成部分:
根据解密密钥的组成部分计算结果,得到由属性授权机构k授权的数据访问者的部分解密密钥为:
将部分解密密钥发送给数据访问者,以组成数据访问者的解密密钥,如下式:
9.一种基于双区块链的细粒度访问控制系统,其特征在于,所述系统包括联盟链、以太坊、数据拥有者、数据访问者、云服务器以及多个属性授权机构,各属性授权机构初始化,生成各属性授权机构的公私钥对,并将各属性授权机构的公钥发布至联盟链;
所述数据拥有者,用于将共享数据进行对称加密,得到数据密文,并将数据密文上传至云服务器中进行存储;将对称密钥进行加密,得到密钥密文,并将密钥密文连同与共享数据相关的元数据一起发布至以太坊,使用以太坊作为数据共享收费平台;
所述数据访问者,用于在以太坊中获取数据拥有者发布的元数据,使用以太坊付费后,向所需共享数据的属性集对应的属性授权机构发送数据访问请求,以使属性授权机构对付费交易进行验证,确认后对数据访问者进行解密密钥授权;利用得到的解密密钥对密钥密文进行解密,对云服务器存储的数据密文进行解密访问。
10.根据权利要求9所述的细粒度访问控制系统,其特征在于,所述数据拥有者还用于当需要撤销解密密钥时,向各属性授权机构发送解密密钥撤销请求,以使属性集满足数据访问者被撤销访问策略的属性授权机构进行解密密钥撤销操作,并将新公钥发布至联盟链;当需要更新解密密钥时,数据访问者向各属性授权机构发送解密密钥更新请求,以使属性集满足数据访问者被更新访问策略的属性授权机构进行解密密钥更新操作,并将新公钥发布至联盟链;
所述数据访问者还用于定期读取联盟链上的新区块数据,使用属性授权机构的新公钥进行密文重加密,将重加密的密钥密文连同其他元数据一起打包发布至以太坊。