技术领域
本发明属于密码技术应用领域,涉及一种混合链和门限代理重加密的个人信用数据授权方法。
背景技术
在信贷行业,金融企业给个人用户提供放款服务首先要建立一套能够评估个人用户信用的模型,而训练模型会用到大量的个人数据,这些数据很多都来自于一些大型互联网企业的售卖和一些数据公司利用爬虫软件收集而来。
在这种情况下,保证用户数据安全可信并且使得金融机构能够在合规的条件下获取数据成为了亟待解决的问题。基于混合链模型的信用数据存储方案是一种安全高效的信用数据存储和查询手段,利用门限代理重加密技术,个人用户可以授权金融机构进行访问信用数据,并且金融机构还得通过联盟链审核后才能进行访问。
代理重加密是密文间的一种密钥转换机制,是由Blaze等人在1998 年的欧洲密码学年会上提出的,并由Ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。
在代理重加密中,一个半可信代理人通过代理授权人产生的转换密钥R
混合链是有许可链和非许可链共同构成,许可链又称联盟链,是由具有共同目标的机构和个人所组成,加入许可链需要的联盟内成员的许可。非许可链又称公链,任何人都可以加入该链中来,不需要征得许可。联盟链的优点在于由于联盟内的成员都可以看作半诚实的节点,因此可以采用较为宽松的共识机制保证交易的吞吐量和存储容量,它的缺点在于有一定的封闭性,内部容易共谋导致链上数据可信度不如非许可链高。非许可链参与人数众多,由于要防止恶意节点作恶,因此采用非常严格的共识机制导致链上的吞吐量不如联盟链。结合许可链和非许可链的优点,可以将许可链中的数据哈希值定期锚定到非许可链中,增加联盟链中的数据可信度。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种混合链和门限代理重加密的个人信用数据授权方法,该方法能够加强对个人信用数据的保护,同时保证机构对个人信用数据进行有效访问。
为达到上述目的,本发明所述的混合链和门限代理重加密的个人信用数据授权方法包括以下步骤:
1)用户节点生成门限代理重加密秘钥;
2)用户节点将生成的秘钥发送给联盟链中的N个代理节点;
3)利用重加密算法ReEncapsulate(kFrag,capsule)对capsule重加密,再利用CheckCapsule算法验证capsule是否有效,当capsule无效时,则输出终止符,当capsule有效时,则计算cFarg;
4)从t个cFarg中获取对称密钥K,其中,t为预设的门限值;
5)机构节点利用对称密钥K解密ciphertext,完成混合链和门限代理重加密的个人信用数据授权。
步骤1)的具体操作过程为:
机构节点(Pk
利用ReKeyGen(Sk
11)生成临时密钥对(x
12)生成非交互式的Diffie-Hellman交换密钥d,令
13)从集合Z
14)构造t-1阶多项式
15)计算
16)重加密密钥集合
计算重加密密钥片段集合KF的具体过程为:
161)任取y,id∈Z
162)计算s
163)令rk=f(s
164)令U
165)计算z
166)令重加密密钥片段kFrag为一个元组(id,rk,X
167)则KF=KF∪{kFrag}。
步骤4)的具体操作为:
41)计算
42)令
43)计算:
44)计算交换密钥
45)计算对称密钥K=KDF((E′·V′)
步骤1)之前还包括系统初始化、生成身份秘钥、身份注册、用户节点个人信息加密、上传交易数据以及交易执行。
系统初始化的具体操作过程为:
输入系统安全参数sec,生成素数q阶乘法循环群
生成身份秘钥的具体过程为:
输入params,输出用户节点的身份密钥对(Sk
上传交易数据的具体过程为:
机构节点通过安全签名算法Sig对密文ciphertext及验证消息m′进行签名,将生成的签名文件σ
用户节点A收到签名文件σ
交易执行的具体过程为:
根据区块链的共识算法选举当前记账员F;
记账员F将接收到的交易数据进行验证,当验证通过后,将所述交易数据打包至区块链上。
本发明具有以下有益效果:
本发明所述的混合链和门限代理重加密的个人信用数据授权方法在具体操作时,利用门限代理重加密对区块链中存储的个人信用数据进行加密,解决了传统加密方式授权不便及不安全的问题,使得用户可以完全掌握自己数据的权利,并且能够委托链上半诚实的节点代理授权,以保护用户隐私,同时不增加用户自身的负担去验证需要自己数据的机构节点是否诚实。
附图说明
图1为本发明的结构图;
图2为代理重加密流程时序图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
本发明所述的混合链和门限代理重加密的个人信用数据授权方法包括以下步骤:
在进行授权之前,先依次进行系统初始化、生成身份秘钥、身份注册、用户节点个人信息加密、上传交易数据以及交易执行。
a)系统初始化的具体操作过程为:
输入系统安全参数sec,生成素数q阶乘法循环群
哈希函数的定义为:
设一个基哈希函数H:{0,1}
H
H
H
b)身份注册的具体过程为:
用户节点向系统提出注册申请,通过系统公开参数params秘密生成公私密钥对(Pk
c)生成身份秘钥的具体过程为:
输入params,输出用户节点的身份密钥对(Sk
d)机构节点的使用加密算法(K,capsule)=Encapsulate(Pk
d1)任取r,u∈Z
d2)令s=u+r·H
d3)派生对称密钥K=KDF((Pk
d4)输出(K,capsule);
该算法会得到一个对称密钥K,该密钥与capsule一一对应,每一次运行该加密算法都会得到不同的K及capsule,可以确保不同机构节点之间不能互相解密对方的用户数据。
最后机构节点使用密钥K对用户信用数据m进行加密,得密文 ciphertext=(capsule,m)。
e)上传交易数据的具体过程为:
机构节点通过安全签名算法Sig对密文ciphertext及验证消息m′进行签名,并将生成的签名文件σ
用户节点A收到签名文件σ
其中,交易执行的具体过程为:
根据区块链的共识算法选举当前记账员F;
当前记账员F将接收到的交易数据进行验证,当验证通过后,将所述交易数据打包至区块链上。
1)用户节点生成门限代理重加密秘钥;
机构节点(Pk
利用ReKeyGen(Sk
11)生成临时密钥对(x
12)生成非交互式的Diffie-Hellman交换密钥d,令
13)从集合Z
14)构造t-1阶多项式
15)计算
16)重加密密钥集合
其中,计算重加密密钥片段集合KF的具体过程为:
161)任取y,id∈Z
162)计算s
163)令rk=f(s
164)令U
165)计算z
166)令重加密密钥片段kFrag为一个元组(id,rk,X
167)则KF=KF∪{kFrag}。
2)用户节点将生成的秘钥发送给联盟链中的N个代理节点;
3)利用重加密算法ReEncapsulate(kFrag,capsule)对capsule重加密,再利用CheckCapsule算法验证capsule是否有效,当capsule无效时,则输出终止符,当capsule有效时,则计算cFarg;
代理重加密碎片有效性验证的具体过程为:
31)在ReEncapsulate中生成proof
任意选取β∈Z
计算E
计算哈希值h=H(E,E
令ρ=β+h·rk,proof=(E
32)在DecapsulateFrags算法中重新计算h并验证如下三式是否成立,即可验证cFrag的有效性:
4)从t个cFarg中获取对称密钥K,其中,t为预设的门限值;
步骤4)的具体操作为:
41)计算
42)令
43)计算:
44)计算交换密钥
45)计算对称密钥K=KDF((E′·V′)
5)机构节点利用对称密钥K解密ciphertext,完成混合链和门限代理重加密的个人信用数据授权。
参数解释如表1所示:
表1
本发明能够使得用户不用担心授权给恶意节点查询自己的数据,验证的过程交给N个半诚实的代理节点,只要所述N个半诚实的代理节点中恶意节点数量少于N-t,则不会错误的将解密权限授予恶意节点,相当于增加双层保险。由于对用户数据的加密底层采用对称加密算法,在加密计算效率方面具有明显的优势,适合用于在区块链环境下的用户隐私数据授权访问控制。
机译: 用于代码生成的方法,包括提供第一字符串,对第一字符串进行加密,对第一链进行加密,将链和链拆分成公共和私有字符串,至少对公共标识符进行CONCATENATE字符串,数据库,前缀和附加信息,获得一个第二字符串第二链编码方法和授权系统;源代码;程序;
机译: 混合功能驱动功能,一种混合动力车辆的激活授权方法,涉及在变速箱油温高于或等于设定点温度时授权在车辆中混合动力功能的激活
机译: 用于测量聚合物和第一溶剂混合物,装置,系统和方法,用于从至少一种聚合物链,系统和方法中萃取溶剂,用于从至少一种聚合物链中机械地预回收至少一种液体的方法和方法 用于生产至少一种聚合物股线的连续系统和方法