区块链上基于身份的数据快速交易方法与流程

文档序号:19158242发布日期:2019-11-16 01:04阅读:来源:国知局

技术特征:

1.一种区块链上基于身份的数据快速交易方法,其特征在于,包括如下:

(1)管理者随机选择两个大小不同的正整数α和β,使用初始化算法计算公共参数pp和主密钥msk;

(2)用户注册:

(2a)数据出售方和数据购买方向管理者进行身份注册,管理者根据用户的身份信息,使用基于身份的密钥生成算法计算用户的身份密钥skid,发送给数据出售方和数据购买方;

(2b)数据出售方和数据购买方向管理者进行属性注册,管理者根据用户的属性集合,使用属性加密的密钥生成算法计算用户的属性密钥sks,发送给数据出售方和数据购买方;

(3)数据上传:

(3a)数据出售方将要交易的数据平均分成n份,即m1,m2,…,mn,并随机选择n个不同正整数作为aes加密算法的n个种子密钥k1,k2,…,kn,使用aes加密算法,分别对n份数据m1,m2,…,mn进行加密,生成n份数据密文c1,c2,…,cn,n≥1;

(3b)数据出售方使用安全抗碰撞哈希函数,计算数据密文c1,c2,…,cn的密文哈希值h1,并使用基于身份的签名算法对密文哈希值h1进行签名,生成身份签名sig1;

(3c)数据出售方将数据密文c1,c2,…,cn,密文哈希值h1和身份签名sig1上传到公有云;

(4)密钥加密:

(4a)数据购买方在公有云下载数据密文c1,c2,…,cn,密文哈希值h1和身份签名sig1,并使用基于身份的签名验证算法对身份签名sig1进行验证;

(4b)数据出售方随机选择正整数作为加密私钥sk,使用椭圆曲线密钥生成算法计算加密私钥对应的加密公钥pk;

(4c)数据出售方使用椭圆曲线加密算法对n个种子密钥k1,k2,…,kn进行加密,生成n个密钥密文d1,d2,…,dn,并使用安全抗碰撞哈希函数计算密钥密文d1,d2,…,dn的密钥哈希值h2;

(4d)数据出售方使用属性加密算法对密钥密文d1,d2,…,dn进行加密,生成属性密文z;

(5)数据验证:

(5a)数据出售方将密钥哈希值h2、属性密文z和加密公钥pk发送给数据购买方;

(5b)数据购买方判断自己的属性是否满足属性密文的访问策略,若满足,则执行步骤(5c),否则,结束交易;

(5c)数据购买方使用属性加密的解密算法对属性密文z进行解密,得到n个密钥密文d1,d2,…,dn,并选择一个正整数作为验证组号j发送给数据出售方;

(5d)数据出售方将验证组号j对应的数据mj,种子密钥kj发送给数据购买方;

(5e)数据购买方验证数据mj是否真实,若真实,则执行步骤(6),否则,结束交易;

(6)承诺签名:

(6a)数据出售方使用椭圆曲线签名算法对消息进行签名计算承诺签名sig2,将承诺签名sig2发送给数据购买方;

(6b)数据购买方使用椭圆曲线签名验证算法对承诺签名sig2进行验证;

(6c)数据出售方随机选择正整数作为接收私钥w,使用椭圆曲线密钥生成算法计算接收私钥w对应的接收公钥w,将接收公钥w发送给数据购买方;

(7)快速支付:

(7a)数据购买方使用快速支付账户将区块链资产发送到加密公钥pk和接收公钥w的联合地址上;

(7b)数据出售方花费联合地址的区块链资产,使用椭圆曲线签名算法对交易进行签名sig3,将交易广播到区块链网络中;

(8)提取密钥:数据购买方监听区块链网络中关于联合地址的交易,并使用椭圆曲线签名漏洞算法计算加密私钥sk;

(9)解密数据:数据购买方使用椭圆曲线解密算法对n个密钥密文d1,d2,…,dn进行解密,得到n个种子密钥k1,k2,…,kn,并使用aes解密算法对数据密文c1,c2,…,cn进行解密,得到数据,完成交易。

2.根据权利要求1所述的方法,其特征在于,步骤(1)中使用初始化算法计算公共参数pp和主密钥msk,计算公式如下:

pp=(g,e(g,g)α,gβ,h(·)),

msk=gα

其中,g表示生成元,e(·)表示双线性映射,h(·)表示安全抗碰撞哈希函数。

3.根据权利要求1所述的方法,其特征在于,步骤(2a)中计算用户的身份密钥skid,公式如下:

skid={gαgβt,gt,h(id)t},

其中,g表示生成元,t表示随机选择的正整数,h(·)表示安全抗碰撞哈希函数,id表示用户的身份信息。

4.根据权利要求1所述的方法,其特征在于,步骤(2b)中计算用户的属性密钥sks,公式如下:

sks={gαgβb,gb,h(x)bx∈s},

其中,g表示生成元,h(·)表示安全抗碰撞哈希函数,b表示随机选择的正整数,x表示用户的子属性,s表示用户的属性集合。

5.根据权利要求1所述的方法,其特征在于,步骤(3b)中对密文哈希值h1进行签名,公式如下:

sig1=(id,gαgβ(t+τ),gt,gτ,h(id)t·h(h1)τ),

其中,id表示用户的身份信息,g表示生成元,t和τ表示随机选择的正整数,h(·)表示安全抗碰撞哈希函数。

6.根据权利要求1所述的方法,其特征在于,步骤(4a)中对身份签名sig1进行验证,验证如下公式是否成立:

如果等式成立,则签名通过验证,否则,签名不通过验证,其中,e(·)表示双线性映射,g表示生成元,t和τ表示随机选择的正整数,h(·)表示安全抗碰撞哈希函数。

7.根据权利要求1所述的方法,其特征在于,步骤(4d)中使用属性加密算法对密钥密文d1,d2,…,d100进行加密,实现步骤如下:

(4d1),数据出售方制定访问控制策略t,并生成线性秘密共享体制lsss构造访问控制结构(m,ρ),其中m是l行d列的生成矩阵,ρ是将集合{1,2,…,l}中的元素映射到密文策略属性集l中属性的映射,密文策略属性集l是访问控制策略t中所有属性的集合;

(4d2)数据出售方随机选择正整数s作为秘密值,并计算秘密值s的l个秘密份额λi,

λi=mi·v,

其中,mi表示矩阵m的第i行,i∈[1,l],v表示随机向量(s,v2,...,vl),v2,...,vl表示随机选择的l-1个正整数;

(4d3)数据出售方随机选择l个正整数r1,…,rl,计算属性密文z:

其中,d表示密钥密文,e(·)表示双线性映射,g表示生成元,s表示随机选择的正整数,h(·)表示安全抗碰撞哈希函数。

8.根据权利要求1所述的方法,其特征在于,步骤(5c)中对属性密文z进行解密,步骤如下:

(5c1)根据拉格朗日插值公式,计算随机数s;

(5c2)按照下式,计算密钥密文d:

其中,g表示生成元,e(·)表示双线性映射,t表示随机选择的正整数,h(·)表示安全抗碰撞哈希函数。

9.根据权利要求1所述的方法,其特征在于,步骤(5e)中数据购买方验证数据mj是否真实,验证步骤如下:

(5e1)验证明文数据是否是自己想要的数据,如果是,则执行步骤(5e2),否则,结束交易;

(5e2)验证明文和密文是否对应,如果对应,则执行步骤(5e3),否则,结束交易;

(5e3)验证密钥和密钥密文是否对应,如果对应,则数据真实,否则,数据不真实。

10.根据权利要求1所述的方法,其特征在于,步骤(8)中计算加密私钥sk,公式如下:

其中,f表示两次签名时使用的随机数,e1表示承诺签名的消息哈希,r表示f对应的临时公钥,e2表示监听到的交易信息哈希。


技术总结
本发明公开了一种区块链上基于身份的数据快速交易方法,主要解决现有数据交易方案中数据篡改和购买者身份无法控制的问题,其实现方案为:管理者进行参数初始化,然后用户进行注册;数据出售方上传数据,并对密钥加密;数据购买方对加密数据进行验证;数据出售方向数据购买方发送承诺签名;数据购买方进行快速支付,支付完成后提取密钥并解密数据。本发明中交易双方由于直接进行交易,不会引入半可信第三方参与者,同时由于使用基于身份的加密体制,保证了数据交易的公平性,提高了数据交易的安全性,降低了数据交易时延,能够保护数据的隐私和交易双方的匿名,可用于互联网中敏感数据的快速安全交易。

技术研发人员:高军涛;吴通;于海勇;刘奇
受保护的技术使用者:西安电子科技大学
技术研发日:2019.03.31
技术公布日:2019.11.15
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1