基于可搜索代理重加密的区块链数据共享方法技术

技术编号:25553623 阅读:111 留言:0更新日期:2020-09-08 18:54
基于可搜索代理重加密的区块链数据共享方法,数据拥有着对数据采用公钥加密,再使用代理重加密处理,并将其存储到到外部数据库,同时提取数据的关键字,用可搜索对称加密将其加密形成关键字索引I←Enc(MK,pp,w

【技术实现步骤摘要】
基于可搜索代理重加密的区块链数据共享方法
本专利技术涉及区块链数据隐私保护安全

技术介绍
区块链作为一种分布式的数据库账本,由于其公开透明性,不可篡改,去中心化,可追溯等特性被广泛应用于各行各业。区块链在金融,生态,医疗等各行业有着不可替代的作用。同时在日常支付领域中有着巨大的应用潜力。代理重加密:代理重加密是一种具备密文安全转换功能的新型公钥加密体质,能够有效地实现存储数据安全的共享。可以将Alice公钥加密的密文转换为由Bob公钥对同一明文加密的密文,然后Bob可以利用其自身私钥解密该转换后的密文。对称可搜索加密:支持在密文上进行关键字搜索且效率较高,基于倒排索引结构的对称可搜索加密,可以通过计算搜索令牌向量和索引向量的内积来寻找匹配的索引项,执行相应的搜索算法,快速的查询关键字。
技术实现思路
本专利技术的目的是提供一种基于可搜索代理重加密的区块链数据共享方法。本专利技术是基于可搜索代理重加密的区块链数据共享方法,其步骤为:步骤(1)初始化(G1,G2,e,g,H,HB,sk)←Setup(1λ):给定安全参数1λ,生成q阶的双线性群G1和G2,随机选择群G1的生成元g,双线性对e:G1×G1→G2,哈希函数H:{0,1}*→G1,公布系统参数PP(G1,G2,e,g,g1,H);数据发布者选择随机数初始化计算公私钥PKi=gβ,SKi=β,MK=(M1,M2),其中M1,M2为满秩矩阵;步骤(2)加密Cz←E(D,gβ):数据拥有着pi首先提取数据D的关键字,然后利用公钥gβ和数据D获得密文;加密过程如下:再Zp*中选取随机数ri,重加密计算如下:Cz=(c1,c2,c3)(1)c3=H(H(c1)||H(c1||c2))(4)然后存储到外部服务器,外部服务器将数据存储的位置DLoc发送给数据拥有者;数据明文计算如下:D=c2/e(c1,g1β)(5);步骤(3)重加密密钥rki→j←(rk1,rk2,rk3)产生:当数据使用者uj想访问数据时,通过代理重加密密钥将pki的数据密码本转换为pkj.数据使用者就可以使用自己的私钥来解密原始由公钥pki加密的数据了;在Zp*中选择随机数rj,重加密密钥计算过程如下:rk3=H(H(rk1)||H(rk1||rk2))(8)步骤(4)索引生成I←Enc(MK,pp,wi):数据拥有者收集数据的关键字w={w1,w2,....wn},输入密钥MK,输出加密索引I=(I1,I2,...,In)其中每一个Ii产生如下:基于修改的安全KNN技术产生(n+1)-维向量pi=(pi,1,pi,2,...,pi,n),pi分为两个向量(pi′,pi″)延伸为pi=(β,1),同理产生(n+1)-维向量qi=(q1,...,qn),qi分为两个向量(qi′,qi″)延伸为qi=(r,α),其中β=H(wi);关键字wi加密这两个向量数据发布者创建一个新交易,将索引I附加到交易中并将交易广播到区块链系统中;带有索引的交易和区块链中的普通交易一样,被矿工节点验证后添加到区块中;步骤(5)搜索令牌的生成TK←TokenGen(MK,pp,wi),数据查询者构建搜索令牌。具体的构建过程如下:数据查询者将关键字wi和I,MK,PP,对于关键字wi的搜索令牌TK算法如下:数据查询者生成交易,将搜索令牌TK附加到交易上发送给周围的矿工节点;步骤(6)测试{0,1}←Test(I,TK,pp):矿工节点收到数据使用者提交的搜索令牌TK后,先在自身存储的区块链副本中进行索引匹配;匹配算法如下:e(Ii,1,TK1)ge(Ii,2,TK2)=e(g,TK3)(9)步骤(7)询问(TK,I,PP)→E(DLOC)或者终止;用关键字的索索令牌和加密索引,区块链的矿工节点执行二进制搜索算法1.返回加密文件的存储位置;步骤(8)密文转换Wj←(c1,c2,c3,rki→j):W1=c1,W2=c2·e(c1,rk2),W3=rk1(10)W4=H(H(W1)||H(W1||W2)||H(W2||W3))(11)(9)解密D←D(Wi,SKi):D=W2/e(W1,W3)r(12)。本专利技术的有益之处在于:(1)通过区块链上的数据事务,定义数据用户等级,实现对数据的访问控制。(2)将采用代理加密算法加密的数据存储在外部数据库减轻的区块链的存储负担,代理重加密允许用户将加密数据转换成使用自己的公钥加密的数据,这样用户可以用自己的私钥解密。即使恶意节点获得了密文,它们也无法解密数据。(3)通过计算搜索令牌向量和索引向量的内积来寻找匹配的索引项,矿工节点在区块链上可以进行二进制搜索,提高了搜索效率。(4)解决了代理重加密中通过关键字搜索密文的问题,实现了混合加密数据的隐私保护。具体实施方式本专利技术是基于可搜索代理重加密的区块链数据共享方法,其步骤为:步骤(1)初始化(G1,G2,e,g,H,HB,sk)←Setup(1λ):给定安全参数1λ,生成q阶的双线性群G1和G2,随机选择群G1的生成元g,双线性对e:G1×G1→G2,哈希函数H:{0,1}*→G1,公布系统参数PP(G1,G2,e,g,g1,H)。方案中数据发布者选择随机数初始化计算公私钥PKi=gβ,SKi=β,MK=(M1,M2),其中M1,M2为满秩矩阵。步骤(2)加密Cz←E(D,gβ):数据拥有着pi首先提取数据D的关键字,然后利用公钥gβ和数据D获得密文。加密过程如下:再Zp*中选取随机数ri,重加密计算如下:Cz=(c1,c2,c3)(1)c3=H(H(c1)||H(c1||c2))(4)然后存储到外部服务器,外部服务器将数据存储的位置DLoc发送给数据拥有者。数据明文计算如下:D=c2/e(c1,g1β)(5)步骤(3)重加密密钥rki→j←(rk1,rk2,rk3)产生:当数据使用者uj想访问数据时,通过代理重加密密钥将pki的数据密码本转换为pkj.数据使用者就可以使用自己的私钥来解密原始由公钥pki加密的数据。我们再Zp*中选择随机数rj,重加密密钥计算过程如下:rk3=H(H(rk1)||H(rk1||rk2))(8)步骤(4)索引生成I←Enc(MK,pp,wi):数据拥有者收集数据的关键字w={w1,w2,....wn},输入密钥MK,输出加密索引I=(I1,I2,...,In)其中每一个Ii产生如下:基于修改的安全KNN技术产生(n+1)-维向量pi=(pi,1,pi,2,...,pi,n),pi分为两个向量(pi′,pi″)延伸为pi=(β,1),同理产生(n+1)-维向量qi=(q1,...,qn),qi分为两个向量(本文档来自技高网...

【技术保护点】
1.基于可搜索代理重加密的区块链数据共享方法,其特征在于,其步骤为:/n步骤(1)初始化(G

【技术特征摘要】
1.基于可搜索代理重加密的区块链数据共享方法,其特征在于,其步骤为:
步骤(1)初始化(G1,G2,e,g,H,HB,sk)←Setup(1λ):给定安全参数1λ,生成q阶的双线性群G1和G2,随机选择群G1的生成元g,双线性对e:G1×G1→G2,哈希函数H:{0,1}*→G1,公布系统参数PP(G1,G2,e,g,g1,H);数据发布者选择随机数β∈Zp*,初始化计算公私钥PKi=gβ,SKi=β,MK=(M1,M2),其中M1,M2为满秩矩阵;
步骤(2)加密Cz←E(D,gβ):数据拥有着pi首先提取数据D的关键字,然后利用公钥gβ和数据D获得密文;加密过程如下:再Zp*中选取随机数ri,重加密计算如下:
Cz=(c1,c2,c3)(1)






c3=H(H(c1)||H(c1||c2))(4)
然后存储到外部服务器,外部服务器将数据存储的位置DLoc发送给数据拥有者;数据明文计算如下:
D=c2/e(c1,g1β)(5);
步骤(3)重加密密钥rki→j←(rk1,rk2,rk3)产生:当数据使用者uj想访问数据时,通过代理重加密密钥将pki的数据密码本转换为pkj.数据使用者就可以使用自己的私钥来解密原始由公钥pki加密的数据了;在Zp*中选择随机数rj,重加密密钥计算过程如下:






rk3=H(H(rk1)||H(rk1||rk2))(8)
步骤(4)索引生成I←Enc(MK,pp,wi):数据拥有者收集数据的关键字w={w1,w2,....wn},输入密钥MK,输出加密索引I=(I1,I2,.....

【专利技术属性】
技术研发人员:冯涛裴宏梅陈武阳杨任轶杜瑾泽方君丽
申请(专利权)人:兰州理工大学
类型:发明
国别省市:甘肃;62

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1