一种基于联盟链的隐私信用数据安全保护方法转让专利

申请号 : CN202210384074.4

文献号 : CN114866289B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚烨朱怡安李联牛军涛

申请人 : 西北工业大学

摘要 :

本发明涉及一种基于联盟链的隐私信用数据安全保护方法,属于网络信息安全领域。使用Paillier同态加密方法对信用计算权重和信用数据等进行安全防护,设计了三个非交互式零知识证明方案以保证隐私数据安全保护的有效性,利用联盟链记录用户交易过程的数据及证明,以防止用户交易过程数据被篡改,以满足权重数据安全性和信用数据安全性要求;同时利用联盟链来减轻各用户端数据存储压力,保证用户在消耗较少计算资源的同时,可验证信用评分结果的有效性。

权利要求 :

1.一种基于联盟链的隐私信用数据安全保护方法,其特征在于步骤如下:

步骤1:系统初始化

初始化节点在本地生成三个公共引用字符串(crs0,crs1,crs2)和两个私钥(sks0,sks1)用于非交互式零知识证明过程;

系统参数生成以后,初始化节点即调用公共参数生成智能合约上传公共引用字符串(crs0,crs1,crs2)至联盟链,而私钥(sks0,sks1)将会由初始化节点严格保密,在零知识证明过程中,不会使用到此私钥,但如若被恶意节点得知此私钥,就可以破解零知识证明过程,生成不可信任的证据证明;

步骤2:信用权重加密及证明生成

评级机构首先从联盟链中读取初始化阶段生成并上传的公共引用字符串crs0,然后结合评级机构信用计算所使用的私有权重 调用信用权重加密及证明生成方法,生成信用权重密文x0及其证明π0,证明密文中权重值在合理范围内;

步骤3:信用权重证明验证

评级机构获得(x0,π0)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用权重密文验证方法对证明的有效性进行验证,若智能合约已验证信用权重数据已被加密封装在信用权重密文x0中且各权重值均在合理的范围以内,则将(x0,π0)写入联盟链账本中;

步骤4:信用数据加密及证明生成

数据所有方首先从联盟链账本中读取公共引用字符串crs1和信用权重密文x0,结合用户信用数据 然后调用信用数据加密及证明生成方法生成信用数据加密实例x1及其证明π1,证明密文中客户的信用数据正确计算且所有信用数据均在合理范围内;

步骤5:信用数据证明验证

数据所有方获得(x1,π1)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用数据密文验证方法对证明的有效性进行验证;若信用数据已成功加密封装进信用数据加密实例x1且各权重值均在合理的范围以内,则将(x1,π1)写入联盟链账本中;

步骤6:信用评分数据解密及证明生成

评级机构首先从联盟链中读取初始化节点生成并上传的公共引用字符串crs2和数据信用数据加密实例x1,然后结合同态加密密钥ske,调用信用评分解密方法生成信用评分实例x2及其证明π2,证明最终分数与最终密文一致;

步骤7:信用评分数据证明验证

评级机构获得(x2,π2)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用评分验证方法对证明的有效性进行验证;若信用评分实例x2有效,则将(x2,π2)写入联盟链账本中。

2.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

步骤1中公共引用字符串crs2包含用于非交互式零知识证明的参数,其中包括在公共引用字符串crs2的初始化生成过程中使用到了Boneh–Boyen短签名方案,调用双线性对生成BPG方法用于根据输入的安全常数λ生成双线性群,其中,p为与安全常数相关的一个大质数, 和 是p阶加法循环群, 是p阶乘法循环群,e为用于生成 的双线性映射,G1,G2为 的生成器;使用Boneh密钥生成BKG方法生成密钥,其中,随机产生x作为私钥sks,计算xG2作为公钥pks;使用Boneh签名BSign方法对0到l‑1的所有值生成私钥签名 指定 为哈希函数,用于作为零知识证明方法中使用的随机预言机,此哈希函数可以对任何输入的数据映射为一个l位的数字。

3.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用权重加密及证明生成的具体过程为,首先生成信用权重密文x0;具体为对每一项的信用权重参数的数值范围进行检查,保证每一项信用权重均符合范围要求;使用公私钥生成PKG方法生成用于Paillier同态加密算法的密钥(pke,ske);使用私钥对每一位信用权重进行同态加密得到权重密文(c1,…,ct);结合Boneh–Boyen签名算法公钥pke生成信用权重密文x0=(n,c1,…,ct);

然后生成信用权重密文证明π0,具体为用Boneh–Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对评级机构私有权重 进行进制转换,每一位权重均小于而 因此可以将每一位权重转换为u进制表示 为每一个ki,j生成证据ai,j;生成了证据χi,χ′i;这些证据包含了每一位权重数据的范围信息;对所有的证明材料ai,j,χi,χ′i进行哈希处理,记录哈希值h0,保证其完整性;生成进制转换后的权重数据范围在给定区间内的承诺 生成每一位权重数据范围在给定区间内的承诺 组合零知识证明证据Vi,j,ai,j,χi,χ′i,证明哈希值h0,承诺 为信用权重证明π0。

4.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用权重证明验证的具体过程为,首先根据信用权重密文x0和信用权重证明π0计算哈希值h′0,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个ki,j的范围证据ai,j进行验证,确保每一项满足范围证明;结合承诺和密文对证据χi,χ′i进行验证,如果这些证据都是可被验证的,则接受每一位权重数据的范围证明。

5.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用数据加密及证明生成的具体过程为,首先生成信用数据加密实例x1;具体为对每一项的信用数据的数值范围进行检查,保证每一项信用数据均符合范围要求;利用Paillier同态加密算法加法性质结合信用权重密文与信用数据生成最终信用评分密文y;将信用权重密文x0和最终信用评分密文y组合为信用数据加密实例x1;

然后生成信用数据加密证明π1,具体为用Boneh–Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对数据所有方数据 进行进制转换,每一位权重均小于 而因此可以将每一位权重转换为u进制表示 为每一个mi,j生成证据ai,j;为证明信用数据已经包含进了最终信用评分密文y中生成证据χ′,χ;对所有的证明材料进行哈希处理,保证其完整性;生成对进制转换后的信用数据范围在给定区间内的承诺 组合零知识证明证据Vi,j,ai,j,χ,χ,′,证明哈希值h1,承诺 为信用数据加密证明π1。

6.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用数据证明验证的具体过程为,首先根据信用数据加密实例x1和信用数据加密证明π1计算哈希值h′1,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个mi,j的范围证据ai,j进行验证,确保其满足范围证明;结合承诺和密文对证据χ′,χ进行验证,如果这些证据都是可被验证的,那么接受信用数据已被写入最终信用评分密文y的事实。

7.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用评分数据解密及证明生成的具体过程为,首先生成信用评分实例x2;具体为使用Paillier同态解密PDec算法对最终信用评分密文y进行解密,得到最终的信用评分m;将信用评分m、最终信用评分密文y和Boneh–Boyen签名算法公钥pke组合为信用评分实例x2;

然后生成信用评分证明π2,具体为调用Paillier同态加密算法中的Paillier外部同态n信息生成PExt方法产生随机数r;取随机数ra生成证据R,证据z包含了信用评分的信息;对所有的证明材料进行哈希处理,保证其完整性;生成对信用评分与评分密文一致的承诺z;

组合零知识证明证据R,证明哈希值h2,承诺z为信用评分证明π2。

8.根据权利要求1所述的基于联盟链的隐私信用数据安全保护方法,其特征在于:

信用评分数据证明验证的具体过程为,首先对证明材料的哈希值进行验证,保证证据是正确的;结合承诺z和最终信用评分密文y对证据及承诺R,z进行验证,如果R,z可被验证,那么接受信用评分与评分密文一致的事实。

说明书 :

一种基于联盟链的隐私信用数据安全保护方法

技术领域

[0001] 本发明属于网络信息安全领域,具体涉及一种基于联盟链的隐私信用数据安全保护技术。

背景技术

[0002] 随着网络技术、联盟链技术以及金融信息技术不断发展,信贷业务和信用经济的市场规模也在逐步扩大。在商业活动中,为评估某一用户或公司的信誉度,会参考信用系统提供的信用评分值。信用系统的参与者通常包括用户、评级机构、数据所有方;用户在进行商业经济活动时,系统会将个人的贷款信息、账户信息、付款信息等上传至数据所有方;而评级机构在对信用评分计算的过程中,需要使用数据所有方存储的用户数据,采用不同的风险方法计算用户的信用评分。传统的信用系统结构如图1所示。
[0003] 在传统的信用评分计算过程中,没有考虑到对用户隐私信用数据的安全保护以及对评级机构信用评分计算风险方法中权重数据的隐藏,可能会导致用户信用数据的泄露、评级机构信用评分风险方法权重的滥用、信用评分结果验证困难等安全风险问题。
[0004] 针对不同组织间无法达成数据共享的问题,联盟链技术应运而生,联盟链通常应用在多个互相已知身份的组织之间,它使用分布式账本在各节点利用共识机制来生成和更新数据。与此同时,零知识证明技术用于在不泄露任何数据信息情况下,证明数据信息的有效性。验证方在对数据进行验证时,每一轮都对证明方的发出一个询问,证明方根据此询问做出一个应答,多轮交互后,验证者即可根据每一轮询问的结果确定数据的有效性。
[0005] 因此,结合当前联盟链技术以及零知识证明技术,本发明提出一种基于联盟链的隐私信用数据安全保护方法。本发明提出的基于联盟链的隐私信用数据安全保护方法既可满足对用户信用数据及方法权重进行保护的信用评分计算,同时还可对隐私信用数据安全防护的整个操作流程进行可信记录,进行事后追朔。

发明内容

[0006] 要解决的技术问题
[0007] 针对当前信用数据计算存在信用数据泄露风险,不能有效保护数据节点隐私的安全风险技术问题,本发明提出了一种基于联盟链的隐私数据安全保护方法。
[0008] 技术方案
[0009] 一种基于联盟链的隐私信用数据安全保护方法,其特征在于步骤如下:
[0010] 步骤1:系统初始化
[0011] 初始化节点在本地生成三个公共引用字符串(crs0,crs1,crs2)和两个私钥(sks0,sks1)用于非交互式零知识证明过程;
[0012] 系统参数生成以后,初始化节点即调用公共参数生成智能合约上传公共引用字符串(crs0,crs1,crs2)至联盟链,而私钥(sks0,sks1)将会由初始化节点严格保密,在零知识证明过程中,不会使用到此私钥,但如若被恶意节点得知此私钥,就可以破解零知识证明过程,生成不可信任的证据证明;
[0013] 步骤2:信用权重加密及证明生成
[0014] 评级机构首先从联盟链中读取初始化阶段生成并上传的公共引用字符串crs0,然后结合评级机构信用计算所使用的私有权重 调用信用权重加密及证明生成方法,生成信用权重密文x0及其证明π0,证明密文中权重值在合理范围内;
[0015] 步骤3:信用权重证明验证
[0016] 评级机构获得(x0,π0)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用权重密文验证方法对证明的有效性进行验证,若智能合约已验证信用权重数据已被加密封装在信用权重密文x0中且各权重值均在合理的范围以内,则将(x0,π0)写入联盟链账本中;
[0017] 步骤4:信用数据加密及证明生成
[0018] 数据所有方首先从联盟链账本中读取公共引用字符串crs1和信用权重密文x0,结合用户信用数据 然后调用信用数据加密及证明生成方法生成信用数据加密实例x1及其证明π1,证明密文中客户的信用数据正确计算且所有信用数据均在合理范围内;
[0019] 步骤5:信用数据证明验证
[0020] 数据所有方获得(x1,π1)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用数据密文验证方法对证明的有效性进行验证;若信用数据已成功加密封装进信用数据加密实例x1且各权重值均在合理的范围以内,则将(x1,π1)写入联盟链账本中;
[0021] 步骤6:信用评分数据解密及证明生成
[0022] 评级机构首先从联盟链中读取初始化节点生成并上传的公共引用字符串crs2和数据信用数据加密实例x1,然后结合同态加密密钥ske,调用信用评分解密方法生成信用评分实例x2及其证明π2,证明最终分数与最终密文一致;
[0023] 步骤7:信用评分数据证明验证
[0024] 评级机构获得(x2,π2)后,将密文和证明上传至联盟链;上传过程中使用智能合约调用信用评分验证方法对证明的有效性进行验证;若信用评分实例x2有效,则将(x2,π2)写入联盟链账本中。
[0025] 本发明进一步的技术方案:步骤1中公共引用字符串crs包含用于非交互式零知识证明的参数,其中包括 在公共引用字符串crs的初始化生成过程中使用到了Boneh‑Boyen短签名方案,调用双线性对生成BPG方法用于根据输入的安全常数λ生成双线性群,其中,p为与安全常数相关的一个大质数, 和 是p阶加法循环群, 是p阶乘法循环群,e为用于生成 的双线性映射,G1,G2为 的生成器;
使用Boneh密钥生成BKG方法生成密钥,其中,随机产生x作为私钥sks,计算xG2作为公钥pks;
使用Boneh签名BSign方法对0到l‑1的所有值生成私钥签名 指定H为哈希函数,用于作为零知识证明方法中使用的随机预言机,此哈希函数可以对任何输入的数据映射为一个l位的数字。
[0026] 本发明进一步的技术方案:信用权重加密及证明生成的具体过程为,首先生成信用权重密文x0;具体为对每一项的信用权重参数的数值范围进行检查,保证每一项信用权重均符合范围要求;使用公私钥生成PKG方法生成用于Paillier同态加密算法的密钥(pke,ske);使用私钥对每一位信用权重进行同态加密得到权重密文(c1,...,ct);结合Boneh‑Boyen签名算法公钥pke生成信用权重密文x0=(n,c1,...,ct);
[0027] 然后生成信用权重密文证明π0,具体为用Boneh‑Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对评级机构私有权重 进行进制转换,每一位权重均小于 而 因此可以将每一位权重转换为u进制表示 为每一个ki,j生成证据ai,j;生成了证据χi,χ′i;这些证据包含了每一位权重数据的范围信息;对所有的证明材料ai,j,χi,χ′i进行哈希处理,记录哈希值h0,保证其完整性;生成进制转换后的权重数据范围在给定区间内的承诺 生成每一位权重数据范围在给定区间内的承诺组合零知识证明证据Vi,j,ai,j,χi,χ′i,证明哈希值h0,承诺 为信用权重证明π0。
[0028] 本发明进一步的技术方案:信用权重证明验证的具体过程为,首先根据信用权重密文x0和信用权重证明π0计算哈希值h′0,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个ki,j的范围证据ai,j进行验证,确保每一项满足范围证明;结合承诺和密文对证据χi,χ′i进行验证,如果这些证据都是可被验证的,则接受每一位权重数据的范围证明。
[0029] 本发明进一步的技术方案:信用数据加密及证明生成的具体过程为,首先生成信用数据加密实例x1;具体为对每一项的信用数据的数值范围进行检查,保证每一项信用数据均符合范围要求;利用Paillier同态加密算法加法性质结合信用权重密文与信用数据生成最终信用评分密文y;将信用权重密文x0和最终信用评分密文y组合为信用数据加密实例x1;
[0030] 然后生成信用数据加密证明π1,具体为用Boneh‑Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对数据所有方数据 进行进制转换,每一位权重均小于 而 因此可以将每一位权重转换为u进制表示 为每一个mi,j生成证据ai,j;为证明信用数据已经包含进了最终信用评分密文y中生成证据χ′,χ;对所有的证明材料进行哈希处理,保证其完整性;生成对进制转换后的信用数据范围在给定区间内的承诺 组合零知识证明证据Vi,j,ai,j,χ,χ,′,证明哈希值h1,承诺为信用数据加密证明π1。
[0031] 本发明进一步的技术方案:信用数据证明验证的具体过程为,首先根据信用数据加密实例x1和信用数据加密证明π1计算哈希值h′1,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个mi,j的范围证据ai,j进行验证,确保其满足范围证明;结合承诺和密文对证据χ′,χ进行验证,如果这些证据都是可被验证的,那么接受信用数据已被写入最终信用评分密文y的事实。
[0032] 本发明进一步的技术方案:信用评分数据解密及证明生成的具体过程为,首先生成信用评分实例x2;具体为使用Paillier同态解密PDec算法对最终信用评分密文y进行解密,得到最终的信用评分m;将信用评分m、最终信用评分密文y和Boneh‑Boyen签名算法公钥pke组合为信用评分实例x2;
[0033] 然后生成信用评分证明π2,具体为调用Paillier同态加密算法中的Paillier外部n同态信息生成PExt方法产生随机数r;取随机数ra生成证据R,证据z包含了信用评分的信息;对所有的证明材料进行哈希处理,保证其完整性;生成对信用评分与评分密文一致的承诺z;组合零知识证明证据R,证明哈希值h2,承诺z为信用评分证明π2。
[0034] 本发明进一步的技术方案:信用评分数据证明验证的具体过程为,首先对证明材料的哈希值进行验证,保证证据是正确的;结合承诺z和最终信用评分密文y对证据及承诺R,z进行验证,如果R,z可被验证,那么接受信用评分与评分密文一致的事实。
[0035] 有益效果
[0036] 本发明提出的一种基于联盟链的隐私信用数据安全保护方法,与现有技术相比,其有益效果如下:
[0037] 现有的信用评分计算系统需要数据所有方和信用机构共享数据本身,从而达成对信用评分的计算,在此过程中,信用权重和信用数据存在泄露的安全风险。本发明基于联盟链及零知识证明技术,在信用评分计算场景下对不同组织以及机构数据进行隐私保护。本发明使用Paillier同态加密方法对信用计算权重和信用数据等进行安全防护,设计了三个非交互式零知识证明方案以保证隐私数据安全保护的有效性,利用联盟链记录用户交易过程的数据及证明,以防止用户交易过程数据被篡改,以满足权重数据安全性和信用数据安全性要求;同时利用联盟链来减轻各用户端数据存储压力,保证用户在消耗较少计算资源的同时,可验证信用评分结果的有效性。

附图说明

[0038] 附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
[0039] 图1传统的信用系统结构;
[0040] 图2基于联盟链的隐私数据安全保护方法示意图。

具体实施方式

[0041] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0042] 本发明提出了一种基于联盟链的隐私数据安全保护方法。该方法以联盟链为基础,在信用评分计算场景下对不同组织数据进行隐私保护;使用Paillier同态加密算法隐藏信用计算权重和信用数据,设计并提出了三个非交互式零知识证明方案以保证隐私数据保护的有效性,利用联盟链记录中间过程的数据及证明以防止中间数据被篡改。基于联盟链的隐私数据安全保护方法示意图如图2所示。
[0043] 基于联盟链的隐私数据安全保护方法中包括以下实体:初始化节点,数据所有方,评级机构,用户。
[0044] 初始化节点:负责生成系统参数。例如密码参数、数据所有方、评级机构和用户用于生成或验证零知识证明的公共引用字符串。在本方法中,通常由政府或监管机构提供初始化节点。
[0045] 数据所有方:负责收集、存储和分发用户的信用数据,并保证数据安全。根据欧盟《通用数据保护条例》(GDPR),在未经用户明确知情同意的情况下,企业的业务流程不得公开用户数据。在本方法中所涉及的数据所有方,包括银行、证券公司和资产管理公司等。
[0046] 评级机构:负责确定信用评分计算中的权重配比,与数据所有方进行交互计算用户的信用评分。
[0047] 用户:参与不同的消费、借贷活动并提供基础的信用数据,可以验证自身信用评分的可靠性。用户的主要信用数据有:新账户创建、账户余额、信用卡使用情况、信用值查询、借贷金额、消费历史记录、借贷历史记录等。这些数据由不同的数据所有方保存。
[0048] 在基于联盟链的隐私数据安全保护方法中,各实体在联盟链上注册组织,各组织加入同一个通道,共享这一通道提供的基础设施。为实现对数据的全流程保护,本方法采用Paillier加密方案作为同态加密方案,Paillier算法解密具有高效性;设计三个非交互式零知识证明方案,非交互式证明方法的使用避免了实体间零知识证明过程的多次交互;使用联盟链系统中,可以减少通信成本,为中间计算过程的数据提供溯源依据。最终设计的于联盟链的隐私数据安全保护方法可以在不泄露隐私数据的情况下实现可信的信用评分计算。
[0049] 基于联盟链的隐私数据安全保护方法是在信用评分计算场景下完成对隐私数据安全保护。评级机构拥有权重数据,数据所有方拥有信用数据,为保护权重数据和信用数据,设计基于联盟链的零知识证明信用评分计算(zero‑knowledge Credit Score Computation,zk‑CSC)方法。评级机构与数据所有方共同执行基于联盟链的零知识证明信用评分计算方法,并上传中间数据至联盟链。
[0050] 在基于联盟链的零知识证明信用评分计算方法中,信用评分计算函数如公式1‑1所示。
[0051]
[0052] 式中:
[0053] ——评级机构拥有的私有权重数据;
[0054] ——数据所有方拥有的信用数据;
[0055] t——信用数据数量。
[0056] 在本发明提出的基于联盟链的隐私数据安全保护技方法中,使用Paillier加密作为同态加密方案对信用权重及信用数据进行加密,计算出最终的信用评分后再进行解密;设计三个非交互式零知识证明方案用于对加密密文的证明:权重加密数据证明用于证明密文中的已知权重且权重值在合理范围内、信用数据加密证明用于证明密文中客户的信用数据正确计算且所有信用数据均在合理范围内、信用评分证明用于证明最终分数与最终密文一致。
[0057] 基于联盟链的零知识证明信用评分计算方法主要有四个阶段,分别是:初始化阶段、信用权重加密及证明生成阶段、信用数据加密及证明生成阶段、信用评分数据解密及证明生成阶段。
[0058] 在初始化阶段,初始化节点为信用评分计算技术提供系统参数,系统参数用于三个非交互式零知识证明的过程,证明的生成依赖于系统参数中的公共引用字符串。初始化节点会调用智能合约上传系统参数至联盟链账本。
[0059] 在信用权重加密及证明生成阶段,评级机构生成同态加密的公私钥对,使用Paillier同态加密算法加密自己的权重数据,并对权重数据的范围给出零知识证明。获得零知识证明后,即可调用智能合约上传加密后的权重数据以及零知识证明,智能合约会在上传之前对证明进行验证。
[0060] 在信用数据加密及证明生成阶段,数据所有者获取加密后的权重数据,将信用数据与加密后的权重数据进行计算,得到一个最终结果的密文,并对信用数据的范围给出零知识证明。获得零知识证明后,即可调用智能合约上传加密后的最终结果密文以及零知识证明,智能合约会在数据上传之前对证明进行验证。
[0061] 在数据评分数据解密及证明生成阶段,评级机构获得最终结果的密文,使用同态加密私钥对密文进行解密,获得用户的信用评分,并对信用评分与最终结果密文的一致性进行零知识证明。获得零知识证明后,即可调用智能合约上传最终的信用评分,智能合约会在信用评分上传之前对证明进行验证。
[0062] 下面,对四个阶段中使用到的具体方法分为七个步骤分别进行描述,各步骤使用到的数学符号如表1所示。
[0063] 表1数学符号
[0064]
[0065] 步骤一:系统初始化
[0066] 在初始化阶段,由可信任机构提供的初始化节点完成系统参数的生成。由于在本发明中,有三个零知识证明方案,故初始化节点在本地生成三个公共引用字符串(crs0,crs1,crs2)和两个私钥(sks0,sks1)用于非交互式零知识证明过程。
[0067] 公共引用字符串crs2包含用于非交互式零知识证明的参数,其中包括在公共引用字符串crs2的初始化生成过程中使
用到了Boneh‑Boyen短签名方案,调用BPG方法用于根据输入的安全常数λ生成双线性群,其中,p为与安全常数相关的一个大质数, 和 是p阶加法循环群, 是p阶乘法循环群,e为用于生成 的双线性映射,G1,G2为 的生成器;使用BKG方法生成密钥,其中,随机产生x作为私钥sks,计算xG2作为公钥pks;使用BSign方法对0到l‑1的所有值生成私钥签名指定 为哈希函数,用于作为零知识证明方法中使用的随机预言机,此哈希函数可以对任何输入的数据映射为一个l位的数字。
[0068] 系统参数生成以后,初始化节点即调用公共参数生成智能合约上传公共引用字符串(crs0,crs1,crs2)至联盟链,而私钥(sks0,sks1)将会由初始化节点严格保密,在零知识证明过程中,不会使用到此私钥,但如若被恶意节点得知此私钥,就可以破解零知识证明过程,生成不可信任的证据证明。
[0069] 步骤二:信用权重加密及证明生成
[0070] 信用权重加密及证明生成阶段主要由评级机构完成,评级机构首先从联盟链中读取初始化阶段生成并上传的公共引用字符串crs0,然后结合评级机构信用计算所使用的私有权重 调用信用权重加密及证明生成方法,生成信用权重密文x0及其证明π0,证明密文中权重值在合理范围内。
[0071] 信用权重加密及证明生成方法具体过程为,首先生成信用权重密文x0。对每一项的信用权重参数的数值范围进行检查,保证每一项信用权重均符合范围要求;使用PKG方法生成用于Paillier同态加密算法的密钥(pke,ske);使用私钥对每一位信用权重进行同态加密得到权重密文(c1,...,ct);结合Boneh‑Boyen签名算法公钥pke生成权重密文实例x0=(n,c1,...,ct)。
[0072] 然后生成私有权重密文证明π0,用Boneh‑Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对评级机构私有权重 进行进制转换,每一位权重均小于而 因此可以将每一位权重转换为u进制表示 为每一个ki,j生成证据ai,j;生成了证据χi,χ′i。这些证据包含了每一位权重数据的范围信息;对所有的证明材料ai,j,χi,χ′i进行哈希处理,记录哈希值h0,保证其完整性;生成进制转换后的权重数据范围在给定区间内的承诺 生成每一位权重数据范围在给定区间内的承诺 组合
零知识证明证据Vi,j,ai,j,χi,χ′i,证明哈希值h0,承诺 为私有权重密文证明π0。
[0073] 步骤三:信用权重证明验证
[0074] 评级机构获得(x0,π0)后,将密文和证明上传至联盟链。上传过程所使用智能合约调用信用权重密文验证方法对证明的有效性进行验证,若智能合约已验证信用权重数据已被加密封装在信用权重密文x0中且各权重值均在合理的范围以内,则将(x0,π0)写入联盟链账本中。
[0075] 信用权重密文验证方法的具体过程为,首先根据信用权重密文x0和权重密文证明π0计算哈希值h′0,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个ki,j的范围证据ai,j进行验证,确保每一项满足范围证明;结合承诺和密文对证据χi,χ′i进行验证,如果这些证据都是可被验证的,则接受每一位权重数据的范围证明。
[0076] 步骤四:信用数据加密及证明生成
[0077] 信用数据加密及证明生成阶段主要有数据所有方完成。数据所有方首先从联盟链账本中读取公共引用字符串crs1和信用权重密文x0,结合用户信用数据 然后调用信用数据加密及证明生成方法生成信用数据加密实例x1及其证明π1,证明密文中客户的信用数据正确计算且所有信用数据均在合理范围内。
[0078] 信用数据加密及证明生成方法具体过程为,首先生成信用数据加密实例x1。对每一项的信用数据的数值范围进行检查,保证每一项信用数据均符合范围要求;利用Paillier同态加密算法加法性质结合信用权重密文与信用数据生成最终信用评分密文y;将信用权重密文x0和信用评分密文y组合为信用数据加密实例x1。
[0079] 然后生成私有权重密文证明π1,用Boneh‑Boyen签名算法公钥和Paillier同态加密算法公钥生成大数np;对数据所有方数据 进行进制转换,每一位权重均小于 而因此可以将每一位权重转换为u进制表示 为每一个mi,j生成证据ai,j;为证明信用数据已经包含进了最终信用评分密文y中生成证据χ′,χ;对所有的证明材料进行哈希处理,保证其完整性;生成对进制转换后的信用数据范围在给定区间内的承诺 组合零知识证明证据Vi,j,ai,j,χ,χ,′,证明哈希值h1,承诺 为信用数据加密证明π1。
[0080] 步骤五:信用数据证明验证
[0081] 数据所有方获得(x1,π1)后,将密文和证明上传至联盟链。上传过程中智能合约调用信用数据密文验证方法对证明的有效性进行验证。若信用数据已成功加密封装进信用数据加密实例x1且各权重值均在合理的范围以内,则将(x1,π1)写入联盟链账本中。
[0082] 信用数据密文验证方法的具体过程为,首先根据信用数据加密实例x1和信用数据加密证明π1计算哈希值h′1,对证明材料的哈希值进行验证,保证每一项证据都是正确的;结合承诺和密文对每一个mi,j的范围证据ai,j进行验证,确保其满足范围证明;结合承诺和密文对证据χ′,χ进行验证,如果这些证据都是可被验证的,那么接受信用数据已被写入最终信用评分密文y的事实。
[0083] 步骤六:信用评分数据解密及证明生成
[0084] 信用评分数据解密及证明生成阶段主要由评级机构完成,评级机构首先从联盟链中读取初始化节点生成并上传的公共引用字符串crs2和信用数据加密实例x1,然后结合同态加密密钥ske,调用信用评分解密方法生成信用评分实例x2及其证明π2,证明最终分数与最终密文一致。
[0085] 信用评分解密方法具体过程为,首先生成信用评分实例x2。使用PDec算法对最终信用评分密文y进行解密,得到最终的信用评分m;将信用评分m、信用评分密文y和Boneh‑Boyen签名算法公钥pke组合为信用评分实例x2。
[0086] 然后生成信用评分证明π2,调用Paillier同态加密算法中的PExt方法产生随机数nr;取随机数ra生成证据R,证据z包含了信用评分的信息;对所有的证明材料进行哈希处理,保证其完整性;生成对信用评分与评分密文一致的承诺z。组合零知识证明证据R,证明哈希值h2,承诺z为信用评分证明π2。
[0087] 步骤七:信用评分数据证明验证
[0088] 评级机构获得(x2,π2)后,将密文和证明上传至联盟链。上传过程中智能合约的调用信用评分验证方法对证明的有效性进行验证。若信用评分密文x2有效,则将(x2,π2)写入联盟链账本中。
[0089] 信用评分验证方法具体过程为,首先对证明材料的哈希值进行验证,保证证据是正确的;结合承诺z和密文y对证据及承诺R,z进行验证,如果R,z可被验证,那么接受信用评分与评分密文一致的事实。
[0090] 由于x2=(m,y,n),m即为最终的信用评分,此时,用户查询区块链账本即可查询到自己的信用评分。同时,在用户调用智能合约从联盟链中读取到自己的信用评分后,可以读取在此信用评分生成过程中联盟链账本上所有的密文及证明数据,并可通过调用智能合约对每一步的密文正确性进行验证。
[0091] 在整个信用分数计算过程中,信用机构没有得到数据所有方的任何信用数据,数据所有方也没有得到信用机构的任何权重数据,即实现了对隐私数据的安全保护服务。
[0092] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。