一种混合链和门限代理重加密的个人信用数据授权方法

文档序号:26308039发布日期:2021-08-17 13:48阅读:212来源:国知局
一种混合链和门限代理重加密的个人信用数据授权方法

本发明属于密码技术应用领域,涉及一种混合链和门限代理重加密的个人信用数据授权方法。



背景技术:

在信贷行业,金融企业给个人用户提供放款服务首先要建立一套能够评估个人用户信用的模型,而训练模型会用到大量的个人数据,这些数据很多都来自于一些大型互联网企业的售卖和一些数据公司利用爬虫软件收集而来。

在这种情况下,保证用户数据安全可信并且使得金融机构能够在合规的条件下获取数据成为了亟待解决的问题。基于混合链模型的信用数据存储方案是一种安全高效的信用数据存储和查询手段,利用门限代理重加密技术,个人用户可以授权金融机构进行访问信用数据,并且金融机构还得通过联盟链审核后才能进行访问。

代理重加密是密文间的一种密钥转换机制,是由blaze等人在1998年的欧洲密码学年会上提出的,并由ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。

在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥rk把用授权人alice的公钥pka加密的密文转化为用被授权人(delegatee)bob的公钥pkb加密的密文,在这个过程中,代理人得不到数据的明文信息,从而降低了数据泄露风险。而这两个密文所对应的明文是一样的,使alice和bob之间实现了数据共享。而门限代理重加密是2018年由马拉加大学david等人提出,在代理重加密的基础上增加了门限约束,bob当且仅当收到大于等于门限值个转换密钥重加密的密文后才能进行解密。这个更进一步降低了数据泄露的风险。这里的门限值可以设置与拜占庭容错协议里的最少诚实节点相同。

混合链是有许可链和非许可链共同构成,许可链又称联盟链,是由具有共同目标的机构和个人所组成,加入许可链需要的联盟内成员的许可。非许可链又称公链,任何人都可以加入该链中来,不需要征得许可。联盟链的优点在于由于联盟内的成员都可以看作半诚实的节点,因此可以采用较为宽松的共识机制保证交易的吞吐量和存储容量,它的缺点在于有一定的封闭性,内部容易共谋导致链上数据可信度不如非许可链高。非许可链参与人数众多,由于要防止恶意节点作恶,因此采用非常严格的共识机制导致链上的吞吐量不如联盟链。结合许可链和非许可链的优点,可以将许可链中的数据哈希值定期锚定到非许可链中,增加联盟链中的数据可信度。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供了一种混合链和门限代理重加密的个人信用数据授权方法,该方法能够加强对个人信用数据的保护,同时保证机构对个人信用数据进行有效访问。

为达到上述目的,本发明所述的混合链和门限代理重加密的个人信用数据授权方法包括以下步骤:

1)用户节点生成门限代理重加密秘钥;

2)用户节点将生成的秘钥发送给联盟链中的n个代理节点;

3)利用重加密算法reencapsulate(kfrag,capsule)对capsule重加密,再利用checkcapsule算法验证capsule是否有效,当capsule无效时,则输出终止符,当capsule有效时,则计算cfarg;

4)从t个cfarg中获取对称密钥k,其中,t为预设的门限值;

5)机构节点利用对称密钥k解密ciphertext,完成混合链和门限代理重加密的个人信用数据授权。

步骤1)的具体操作过程为:

机构节点(pkb,skb)申请访问用户节点(pka,ska)的信用数据,用户节点设置生成的密钥碎片个数n及门限t,再利用rekeygen(ska,pkb,n,t)计算n个重加密密钥片段{kfrag1,kfrag2,…,kfragn}。

利用rekeygen(ska,pkb,n,t)计算n个重加密密钥片段的具体过程为:

11)生成临时密钥对(xa,xa),从集合zq中任意取xa,并计算

12)生成非交互式的diffie-hellman交换密钥d,令

13)从集合zq中选择t-1个参数fi,1≤i≤t-1,f0=a·d-1modq;

14)构造t-1阶多项式f(x)=f0+f1x+f2x2+…+ft-1xt-1

15)计算

16)重加密密钥集合再计算并输出重加密密钥片段集合kf。

计算重加密密钥片段集合kf的具体过程为:

161)任取y,id∈zq;

162)计算sx=h5(id,d)并令y=gy

163)令rk=f(sx);

164)令u1=urk

165)计算z1=h4(y,id,pka1,pkb,u1,xa),并令z2=y-a·z1;

166)令重加密密钥片段kfrag为一个元组(id,rk,xa,u1,z1,z2);

167)则kf=kf∪{kfrag}。

步骤4)的具体操作为:

41)计算

42)令其中,sx,i=h5(idi,d),对于sx,i∈s,计算

43)计算:

44)计算交换密钥

45)计算对称密钥k=kdf((e′·v′)d);

步骤1)之前还包括系统初始化、生成身份秘钥、身份注册、用户节点个人信息加密、上传交易数据以及交易执行。

系统初始化的具体操作过程为:

输入系统安全参数sec,生成素数q阶乘法循环群其中,生成元为g,{0,1,2,…,q-1}的集合zq,h2、h3及h4为三个哈希函数,

生成身份秘钥的具体过程为:

输入params,输出用户节点的身份密钥对(ska,pka),机构节点通过输入params,得机构节点的身份密钥对(skb,pkb)。

上传交易数据的具体过程为:

机构节点通过安全签名算法sig对密文ciphertext及验证消息m′进行签名,将生成的签名文件σb发送给用户节点a;

用户节点a收到签名文件σb,使用pkb进行解密,得密文ciphertext及m′,然后对密文ciphertext及m′进行签名,得签名文件σa,最后广播至区块链。

交易执行的具体过程为:

根据区块链的共识算法选举当前记账员f;

记账员f将接收到的交易数据进行验证,当验证通过后,将所述交易数据打包至区块链上。

本发明具有以下有益效果:

本发明所述的混合链和门限代理重加密的个人信用数据授权方法在具体操作时,利用门限代理重加密对区块链中存储的个人信用数据进行加密,解决了传统加密方式授权不便及不安全的问题,使得用户可以完全掌握自己数据的权利,并且能够委托链上半诚实的节点代理授权,以保护用户隐私,同时不增加用户自身的负担去验证需要自己数据的机构节点是否诚实。

附图说明

图1为本发明的结构图;

图2为代理重加密流程时序图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

本发明所述的混合链和门限代理重加密的个人信用数据授权方法包括以下步骤:

在进行授权之前,先依次进行系统初始化、生成身份秘钥、身份注册、用户节点个人信息加密、上传交易数据以及交易执行。

a)系统初始化的具体操作过程为:

输入系统安全参数sec,生成素数q阶乘法循环群其中,生成元为g,{0,1,2,…,q-1}的集合zq,h2、h3及h4为三个哈希函数,设密钥生成算法为

哈希函数的定义为:

设一个基哈希函数h:{0,1}*→zq,该h函数可以选择sha256或其他哈希函数。

h2=h(encode(g1)||encode(g2))

h3=h(encode(g1)||encode(g2)||encode(g3))

h4=h(encode(g1)||encode(g2)||encode(g3)||encode(g4))

b)身份注册的具体过程为:

用户节点向系统提出注册申请,通过系统公开参数params秘密生成公私密钥对(pka,ska),再通过区块链上的数字身份管理合约根据其公钥生成唯一的数字身份,然后利用其身份密钥的公钥pka加密个人身份信息并存储于联盟链的存储网络中,最后在智能合约中关联其数字身份及身份信息。

c)生成身份秘钥的具体过程为:

输入params,输出用户节点的身份密钥对(ska,pka),机构节点通过输入params,得机构节点的身份密钥对(skb,pkb)。

d)机构节点的使用加密算法(k,capsule)=encapsulate(pka)的具体操作过程为:

d1)任取r,u∈zq并计算e=gr和v=gu

d2)令s=u+r·h2(e,v);

d3)派生对称密钥k=kdf((pka)r+u),capsule为元组(e,v,s);

d4)输出(k,capsule);

该算法会得到一个对称密钥k,该密钥与capsule一一对应,每一次运行该加密算法都会得到不同的k及capsule,可以确保不同机构节点之间不能互相解密对方的用户数据。

最后机构节点使用密钥k对用户信用数据m进行加密,得密文ciphertext=(capsule,m)。

e)上传交易数据的具体过程为:

机构节点通过安全签名算法sig对密文ciphertext及验证消息m′进行签名,并将生成的签名文件σb发送给用户节点a;

用户节点a收到签名文件σb,使用pkb进行解密,得密文ciphertext及m′,然后对密文ciphertext及m′进行签名,得签名文件σa,最后广播至区块链。

其中,交易执行的具体过程为:

根据区块链的共识算法选举当前记账员f;

当前记账员f将接收到的交易数据进行验证,当验证通过后,将所述交易数据打包至区块链上。

1)用户节点生成门限代理重加密秘钥;

机构节点(pkb,skb)申请访问用户节点(pka,ska)的信用数据,用户节点设置生成的密钥碎片个数n及门限t,再利用rekeygen(ska,pkb,n,t)计算n个重加密密钥片段。

利用rekeygen(ska,pkb,n,t)计算n个重加密密钥片段的具体过程为:

11)生成临时密钥对(xa,xa),从zq中任意取xa,并计算

12)生成非交互式的diffie-hellman交换密钥d,令

13)从集合zq中选择t-1个参数fi,1≤i≤t-1,f0=a·d-1modq;

14)构造t-1阶多项式f(x)=f0+f1x+f2x2+…+ft-1xt-1

15)计算

16)重加密密钥集合再计算并输出重加密密钥片段集合kf。

其中,计算重加密密钥片段集合kf的具体过程为:

161)任取y,id∈zq;

162)计算sx=h5(id,d)并令y=gy

163)令rk=f(sx);

164)令u1=urk

165)计算z1=h4(y,id,pka1,pkb,u1,xa),并令z2=y-a·z1;

166)令重加密密钥片段kfrag为一个元组(id,rk,xa,u1,z1,z2);

167)则kf=kf∪{kfrag}。

2)用户节点将生成的秘钥发送给联盟链中的n个代理节点;

3)利用重加密算法reencapsulate(kfrag,capsule)对capsule重加密,再利用checkcapsule算法验证capsule是否有效,当capsule无效时,则输出终止符,当capsule有效时,则计算cfarg;

代理重加密碎片有效性验证的具体过程为:

31)在reencapsulate中生成proof

任意选取β∈zq;

计算e2=eβv2=vβu2=uβ

计算哈希值h=h(e,e1,e2,v,v1,v2,u,u1,u2,aux);

令ρ=β+h·rk,proof=(e2,v2,u2,u1,z1,z2,ρ,axu)。

32)在decapsulatefrags算法中重新计算h并验证如下三式是否成立,即可验证cfrag的有效性:

4)从t个cfarg中获取对称密钥k,其中,t为预设的门限值;

步骤4)的具体操作为:

41)计算

42)令其中,sx,i=h5(idi,d),对于sx,i∈s,计算

43)计算:

44)计算交换密钥

45)计算对称密钥k=kdf((e′·v′)d);

5)机构节点利用对称密钥k解密ciphertext,完成混合链和门限代理重加密的个人信用数据授权。

参数解释如表1所示:

表1

本发明能够使得用户不用担心授权给恶意节点查询自己的数据,验证的过程交给n个半诚实的代理节点,只要所述n个半诚实的代理节点中恶意节点数量少于n-t,则不会错误的将解密权限授予恶意节点,相当于增加双层保险。由于对用户数据的加密底层采用对称加密算法,在加密计算效率方面具有明显的优势,适合用于在区块链环境下的用户隐私数据授权访问控制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1