一种适用于区块链的验证方法、装置及存储介质转让专利
申请号 : CN201911399367.4
文献号 : CN111162912B
文献日 : 2021-06-15
发明人 : 王朝阳 , 严强 , 李昊轩 , 李辉忠 , 张开翔 , 范瑞彬 , 刘雪峰 , 裴庆祺
申请人 : 深圳前海微众银行股份有限公司 , 西安电子科技大学
摘要 :
权利要求 :
1.一种适用于区块链的验证方法,其特征在于,包括:第一解密节点从区块链获取加密密文;所述加密密文包括N+1个子密文;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个私钥对应;N为正整数;所述加密密文是加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数;
所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;
所述第一解密节点根据所述各解密节点的解密中间结果,得到所述加密密文的明文;
所述第一解密节点确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;所述第一解密节点通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;
所述第一解密节点按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值;所述第一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值;
所述第一解密节点将所述明文和解密密钥证明上传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值;所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
2.如权利要求1所述的方法,其特征在于,所述N个加密干扰值为从1至q‑1的q‑1个整数中随机选择的N个不同的整数;所述生成元包括q阶椭圆曲线上的两个生成元G1和G2;所述主公钥H=Σx_i*G2,x_i为第i个解密节点的私钥;i为正整数;所述N+1个子密文具体为:C1=(m*G1+(r1+r2+……+rn)*H)mod q;
C2=(r1*G2)mod q;
……
Cn+1=(rn*G2)mod q;
E=(C1,C2,……Cn+1);
其中,mod表示取模运算,E为所述加密密文;C1、C2……Cn+1为N+1个子密文;m为所述明文;r1、r2……rn为所述N个加密干扰值;n等于N。
3.如权利要求2所述的方法,其特征在于,所述N+1个子密文中的子密文为C2;所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,包括:x_1*C2+x_2*C2+…+x_n*C2=x_1*(r1*G2)+x_2*(r1*G2)+…+x_n*(r1*G2)=r 1*(x_1*G2)+r1*(x_2*G2)+…+r1*(x_n*G2)=r1*H;
所述加密密文在所述第一解密节点上的解密中间结果为r1*H。
4.如权利要求3所述的方法,其特征在于,N为1,所述第一解密节点按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值,包括:c=Hash(t1_p,t2_p);其中,t1_p=(a*G1)mod q;
t2_p=(a*G2)mod q;
其中,c为所述初始验证值;t1_p、t2_p为所述N+1个替代子密文;a为所述替代明文;
Hash为所述哈希算法。
5.如权利要求4所述的方法,其特征在于,所述第一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值,包括:
Z1=(a‑c*x_1)mod q;
Z2=(a‑c*x_1’)mod q;
其中,Z1、Z2为所述替代子密文的子验证值;x_1为所述第一解密节点的私钥,x_1’为所述第一解密节点的私钥。
6.一种适用于区块链的验证装置,其特征在于,包括:获取模块,用于从区块链获取加密密文;所述加密密文包括N+1个子密文;所述装置为第一解密节点的验证装置;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个私钥对应;N为正整数;所述加密密文是加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数;
处理模块,用于根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;根据所述各解密节点的解密中间结果,得到所述加密密文的明文;
所述处理模块,还用于确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;
验证模块,用于按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值;针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值;
所述验证模块,还用于将所述明文和解密密钥证明上传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值;所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
7.如权利要求6所述的装置,其特征在于,所述N个加密干扰值为从1至q‑1的q‑1个整数中随机选择的N个不同的整数;所述生成元包括q阶椭圆曲线上的两个生成元G1和G2;所述主公钥H=Σx_i*G2,x_i为第i个解密节点的私钥;i为正整数;所述N+1个子密文具体为:C1=(m*G1+(r1+r2+……+rn)*H)mod q;
C2=(r1*G2)mod q;
……
Cn+1=(rn*G2)mod q;
E=(C1,C2,……Cn+1);
其中,mod表示取模运算,E为所述加密密文;C1、C2……Cn+1为N+1个子密文;m为所述明文;r1、r2……rn为所述N个加密干扰值;n等于N。
8.如权利要求7所述的装置,其特征在于,所述处理模块具体用于:x_1*C2+x_2*C2+…+x_n*C2=x_1*(r1*G2)+x_2*(r1*G2)+…+x_n*(r1*G2)=r1*(x_1*G2)+r1*(x_2*G2)+…+r1*(x_n*G2)=r1*H;
所述加密密文在所述第一解密节点上的解密中间结果为r1*H。
9.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被处理器执行时,如权利要求1至5中任意一项所述的方法被执行。
说明书 :
一种适用于区块链的验证方法、装置及存储介质
技术领域
背景技术
科技领域中,金融数据的安全至关重要,所以在传输过程中需要对金融数据进行加密并解
密。
私钥,这无疑会泄露共享的私钥。因此,现有技术中,不能在不泄露共享的私钥的前提下,验
证密文解密过程的正确性。
发明内容
中任一解密节点;所述各解密节点中每个解密节点都与一个解密私钥对应;N为正整数;所
述加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环
群中不同的生成元对待加密信息进行加密得到的;q为素数;所述第一解密节点根据所述第
一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密
节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;
所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解
密中间结果存放于所述区块链上;所述第一解密节点根据所述各解密节点的解密中间结
果,得到所述加密密文的明文;所述第一解密节点确定所述明文的替代明文及所述N个加密
干扰值对应的N个替代加密干扰值;所述第一解密节点通过所述替代明文、所述N个替代加
密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;所述第一解密
节点按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值;所述第
一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点
的私钥生成所述替代子密文的子验证值;所述第一解密节点将所述明文和解密密钥证明上
传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值;
所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
i*G2,x_i为第i个解密节点的私钥;i为正整数;所述N+1个子密文具体为:
一解密节点上的解密中间结果,包括:
装置;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点
都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算法,
通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q
为素数;处理模块,用于根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,
确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解
密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密
节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;根据所述各解密节点
的解密中间结果,得到所述加密密文的明文;所述处理模块,还用于确定所述明文的替代明
文及所述N个加密干扰值对应的N个替代加密干扰值;通过所述替代明文、所述N个替代加密
干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;验证模块,用于
按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值;针对每个替
代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子
密文的子验证值;所述验证模块,还用于将所述明文和解密密钥证明上传至所述区块链,所
述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值;所述解密密钥证明用
于验证所述明文是根据所述第一解密节点的私钥解密获得的。
i*G2,x_i为第i个解密节点的私钥;i为正整数;所述N+1个子密文具体为:
文中的子密文得到所述加密密文在所述第一解密节点上的解密中间结果,同时加密密文在
所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所
述区块链上,因此所述第一解密节点结合所述各解密节点的解密中间结果,即可得到所述
加密密文的明文;而所述第一解密节点重新根据所述明文的另一份替代明文,生成替代密
文,得到初始验证值,进而生成所述替代子密文的子验证值,最终生成可以验证所述明文是
根据所述第一解密节点的私钥解密获得的的解密密钥证明,可以在不暴露待第一解密节点
的私钥的基础上,验证加密密文的解密正确性。
附图说明
具体实施方式
术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例
以及实施例中的技术特征可以相互结合。
一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无
法被篡改。
具有参与区块链网络共识和账本维护的能力。
协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其
相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信
息。
加密。目前各解密者拥有一个共享的私钥,若要验证对密文解密的正确性,则需要获取解密
者共享的私钥,这无疑会泄露共享的私钥。这种情况不符合银行等金融机构的需求,无法保
证金融机构各项业务的高效运转。
密节点上的解密中间结果存放于所述区块链上。
加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群
中不同的生成元对待加密信息进行加密得到的;q为素数。其中,如果为了保证q中的整数足
够多,不至于随机取数时容易出现重复,q可以为大素数,大素数指2^256位的数量级的素
数。q阶循环群可以为q阶椭圆曲线循环群。
中,q为取模运算。其中,x_i*G:表示标量x_i与q阶椭圆曲线的任一点G2的点乘运算。
=Σx_i*G2,x_i为第i个解密节点的私钥;i为正整数。
中的主公钥。
中equality_proof的具体证明内容为“各解密节点联合解密时使用的密钥x_i确实是其在
初始化中真实拥有的密钥x_i”,用于证明每个各解密节点计票过程的正确性。
性,即保证x_1与x_1’相等。
来说,解密节点验证的方式如下,构造以下验证值:t1_v,t2_v。
则验证者就认为第一解密节点的解密操作是正确的,即公布的明文消息m是正确的,且在此
过程中没有获得关于第一解密节点的私钥的任何信息,实现隐私下的可验证。
验证装置;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密
节点都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算
法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到
的;q为素数;处理模块302,用于根据所述第一解密节点的私钥以及所述N+1个子密文中的
子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节
点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所
述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;根据所述各
解密节点的解密中间结果,得到所述加密密文的明文;所述处理模块302,还用于确定所述
明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;通过所述替代明文、所
述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;
验证模块303,用于按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始
验证值;针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的
私钥生成所述替代子密文的子验证值;所述验证模块303,还用于将所述明文和解密密钥证
明上传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证
值;所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
i*G2,x_i为第i个解密节点的私钥;i为正整数;所述N+1个子密文具体为:
和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程
序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机
程序产品的形式。
方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到
通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个
机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流
程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本申请也意图包含这些改动和变型在内。