【技术实现步骤摘要】
一种基于区块链的数据共享方法
[0001]本申请涉及区块链
,特别是涉及一种基于区块链的数据共享方法。
技术介绍
[0002]很多企业面临着“人人有数据,人人缺数据”的局面,“数据孤岛”问题越来越严重。因此,数据需要共享。如何保证数据的安全性是必须要关注的问题,一些数据中可能包含用户的隐私信息,若发生数据泄露,将对用户的隐私造成威胁。目前在数据共享方面使用较多的方法是将区块链与密文策略属性基加密(Ciphertext
‑
Policy Attribute
‑
Based Encryption, CP
‑
ABE)相结合,数据存储在星际文件系统(InterPlanetary File System,IPFS)中,数据存储地址存储在区块链中,为了实现基于属性的细粒度的访问控制,通常将数据存储地址通过CP
‑
ABE加密之后存储在区块链中,CP
‑
ABE访问控制写入智能合约中,实现自动化验证。然而现有基于CP
‑
ABE访问控制 ...
【技术保护点】
【技术特征摘要】
1.一种基于区块链的数据共享方法,其特征在于,所述方法包括:数据拥有方选择对称加密密钥k使用AES对称加密算法对共享数据M进行加密,生成共享数据密文C
M
,调用密文上传函数Upload(C
M
)将生成的所述共享数据密文C
M
上传到IPFS中,以获得所述IPFS对接收到的所述共享数据密文C
M
进行存储后生成的数据存储地址δ;所述数据拥有方设置属性访问策略F,并执行加密函数Enck(P, k, F),对所述对称加密密钥k进行加密,输出对称密钥密文C
k
,其中,P表示为系统公共参数,P=(e, G1, G2, g, L, H),e表示为双线性映射,G1和G2表示为具有相同阶数p的乘法循环群, g表示为G1的一个随机生成元,L表示为关于随机数α和随机数β映射的结果,H表示为哈希函数;所述数据拥有方调用智能合约接口将所述对称密钥密文C
k
以及所述数据存储地址δ写入智能合约中,并设置身份列表χ写入到智能合约中;共识节点获取所述IPFS根据所述数据存储地址δ及区块链账户生成的第一存储地址证明Φ',以及所述数据拥有方根据所述数据存储地址δ的哈希值H
δ
及区块链账户生成的第二存储地址证明Φ,执行验证地址函数验证所述数据存储地址δ的正确性,并在三分之二及以上的共识节点确认所述数据存储地址δ有效的情况下,将所述数据存储地址δ的第一哈希值H
δ
写入区块链中;数据需求方根据自身属性集生成属性密钥ζ,并将所述属性密钥ζ与身份信息I提交到区块链中,由所述属性密钥ζ解密所述对称密钥密文C
k
,进行属性验证,属性验证通过的情况下,从所述身份列表χ中查找是否存在所述身份信息I,若存在,则身份信息验证通过,获取所述对称加密密钥k及所述数据存储地址δ;数据需求方对所述数据存储地址δ进行哈希运算,获得第二哈希值H(δ),与存储在区块链上第一哈希值H
δ
进行比较,在第二哈希值H(δ)与第一哈希值H
δ
相等的情况下,从所述IPFS中获取所述共享数据密文C
M
,并使用所述对称加密密钥k解密所述共享数据密文C
M
,获取所述共享数据M。2.根据权利要求1所述的基于区块链的数据共享方法,其特征在于,所述数据拥有方设置属性访问策略F,并执行加密函数Enck(P, k, F),对所述对称加密密钥k进行加密,输出对称密钥密文C
k
的步骤包括:为所述属性访问策略F的访问树T中的每个节点选择一个多项式q
x
,将多项式q
x
的阶数d
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。