CN111162912A - 一种适用于区块链的验证方法及装置 - Google Patents
一种适用于区块链的验证方法及装置 Download PDFInfo
- Publication number
- CN111162912A CN111162912A CN201911399367.4A CN201911399367A CN111162912A CN 111162912 A CN111162912 A CN 111162912A CN 201911399367 A CN201911399367 A CN 201911399367A CN 111162912 A CN111162912 A CN 111162912A
- Authority
- CN
- China
- Prior art keywords
- decryption
- ciphertext
- sub
- node
- substitute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种适用于区块链的验证方法及装置,其中方法为:第一解密节点从区块链获取加密密文;所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果;所述第一解密节点根据所述各解密节点的解密中间结果,得到所述加密密文的明文;所述第一解密节点将所述明文和解密密钥证明上传至所述区块链,所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。上述方法应用于金融科技(Fintech)时,不会暴露第一解密节点的私钥,且能够验证所述明文是根据所述第一解密节点的私钥解密获得的。
Description
技术领域
本发明涉及金融科技(Fintech)领域和计算机软件领域,尤其涉及一种适用于区块链的验证方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变。目前,金融科技领域中,金融数据的安全至关重要,所以在传输过程中需要对金融数据进行加密并解密。
现有技术中,各解密者拥有一个共享的私钥,通过共享的私钥对密文解密后,最终得到的仅是一条解密后的明文,若要验证对密文解密的正确性,则需要获取解密者共享的私钥,这无疑会泄露共享的私钥。因此,现有技术中,不能在不泄露共享的私钥的前提下,验证密文解密过程的正确性。
发明内容
本申请实施例提供一种适用于区块链的验证方法及装置,解决了现有技术中不能在不泄露共享的私钥的前提下,验证密文解密过程的正确性的问题。
第一方面,本申请实施例提供一种适用于区块链的验证方法,包括:第一解密节点从区块链获取加密密文;所述加密密文包括N+1个子密文;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数;所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;所述第一解密节点根据所述各解密节点的解密中间结果,得到所述加密密文的明文;所述第一解密节点确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;所述第一解密节点通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;所述第一解密节点按照预设的哈希算法对所述N+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。
一种可选实施方式中,所述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。
一种可选实施方式中,N为1,所述第一解密节点按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值,包括:
c=Hash(t1_p,t2_p,……tn+1_p);其中,
t1_p=(a*G1)mod q;
t2_p=(a*G2)mod q;
其中,c为所述初始验证值;t1_p、t2_p为所述N+1个替代子密文;a为所述替代明文;Hash为所述哈希算法。
一种可选实施方式中,所述第一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值,包括:
Z1=(a-c*x_1)mod q;
Z2=(a-c*x_1’)mod q;
其中,Z1、Z2为所述替代子密文的子验证值;x_1为所述第一解密节点的私钥,x_1’为所述第一解密节点在对所述加密密文解密时所使用的私钥。
第二方面,本申请提供一种适用于区块链的验证装置,包括:获取模块,用于从区块链获取加密密文;所述加密密文包括N+1个子密文;所述装置为所述第一解密节点的验证装置;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数;处理模块,用于根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;根据所述各解密节点的解密中间结果,得到所述加密密文的明文;所述处理模块,还用于确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;验证模块,用于按照预设的哈希算法对所述N+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。
一种可选实施方式中,所述N+1个子密文中的子密文为C2;所述处理模块具体用于: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。
一种可选实施方式中,N为1,所述验证模块具体用于:c=Hash(t1_p,t2_p,……tn+1_p);其中,
t1_p=(a*G1)mod q;
t2_p=(a*G2)mod q;
其中,c为所述初始验证值;t1_p、t2_p为所述N+1个替代子密文;a为所述替代明文;Hash为所述哈希算法。
一种可选实施方式中,所述验证模块具体用于:
Z1=(a-c*x_1)mod q;
Z2=(a-c*x_1’)mod q;
其中,Z1、Z2为所述替代子密文的子验证值;x_1为所述第一解密节点的私钥,x_1’为所述第一解密节点在对所述加密密文解密时所使用的私钥。
上述第二方面及第二方面各个实施例的有益效果,可以参考上述第一方面及第一方面各个实施例的有益效果,这里不再赘述。
第三方面,本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例的方法。
第四方面,本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例的方法。
本申请实施例提供一种是用于区块链的验证方法及装置中,第一解密节点从区块链获取加密密文后,所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文得到所述加密密文在所述第一解密节点上的解密中间结果,同时加密密文在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上,因此所述第一解密节点结合所述各解密节点的解密中间结果,即可得到所述加密密文的明文;而所述第一解密节点重新根据所述明文的另一份替代明文,生成替代密文,得到初始验证值,进而生成所述替代子密文的子验证值,最终生成可以验证所述明文是根据所述第一解密节点的私钥解密获得的的解密密钥证明,可以在不暴露待第一解密节点的私钥的基础上,验证加密密文的解密正确性。
附图说明
图1为区块链的结构示意图;
图2为本申请实施例提供的一种适用于区块链的验证方法的步骤流程示意图;
图3为本申请实施例提供的一种适用于区块链的验证装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先解释本申请实施例中出现的名词。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。
节点:网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。
零知识证明:零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,金融数据的安全至关重要,所以在传输过程中需要对金融数据进行加密。目前各解密者拥有一个共享的私钥,若要验证对密文解密的正确性,则需要获取解密者共享的私钥,这无疑会泄露共享的私钥。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
为此,如图2所示,根据零知识证明的性质,本申请提供一种适用于区块链的验证方法。
步骤201:第一解密节点从区块链获取加密密文。
步骤202:所述第一解密节点根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上。
所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上。
步骤203:所述第一解密节点根据所述各解密节点的解密中间结果,得到所述加密密文的明文。
步骤204:所述第一解密节点确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值。
步骤205:所述第一解密节点通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文。
步骤206:所述第一解密节点按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值。
步骤207:所述第一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值。
步骤208:所述第一解密节点将所述明文和解密密钥证明上传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值。
所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
步骤201中,所述加密密文包括N+1个子密文;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数。其中,如果为了保证q中的整数足够多,不至于随机取数时容易出现重复,q可以为大素数,大素数指2^256位的数量级的素数。q阶循环群可以为q阶椭圆曲线循环群。
具体来说,可以在步骤201之前,进行如下初始化流程:
(1)所有解密节点拥有一个q阶椭圆曲线循环群G,其中q为大素数,循环群G可看作q个椭圆曲线点的集合。
(2)所有解密节点需要在循环群G中随机选择两个独立的椭圆曲线点作为生成元G1、G2。
(3)所以每个解密节点都需要从{1,2,…q-1}中随机选择一个数,作为自己的一个子密文x_i;每个解密节点计算(x_i*G2)mod q,作为主公钥H的一部分,发送到区块链。其中,q为取模运算。其中,x_i*G:表示标量x_i与q阶椭圆曲线的任一点G2的点乘运算。
(4)所以主公钥H需组合构造,即每个解密节点计算(Σx_i*G2)mod q=(x*G2)modq=H,其中主秘密x为所有子密文x_i之和。
(5)所有解密节点公布公钥:G1、G2、H,保留子密文x_i作为每个解密节点的私钥。
需要说明的是,步骤201中的所述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。
特别地,N为1时,即n也为1时,N个加密干扰值为一个随机数r,上述可选实施方式可以为:
(1)加密节点P确定待加密消息m。
(2)加密节点P从{1,2,…q-1}中选择随机数r。
(3)加密节点P利用Elgamal加密算法加密待加密消息m得到加密密文E=(C1,C2)=(m*G1+r*H,r*G2),其中G1、G2为初始化流程中q阶循环群G的两个生成元,H为初始化流程中的主公钥。
所述N+1个子密文中的子密文为C2;步骤202的一种可选实施方式中,步骤202具体可以为:
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。
进一步地,当N为1时,步骤203具体可以为:
通过(C1-r*H)mod q=(m*G1+r*H-r*H)mod q,得到(m*G1)mod q,第一解密节点对(m*G1)mod q,求解离散对数问题,即遍历得m,即明文。
上述实施方式适用于第一解密节点对加密密文解密后的场景,还需附上一个零知识的离散对数元素相等证明equality_proof,用于证明各解密节点解密操作的正确性。其中equality_proof的具体证明内容为“各解密节点联合解密时使用的密钥x_i确实是其在初始化中真实拥有的密钥x_i”,用于证明每个各解密节点计票过程的正确性。
具体来说,N为1,步骤206具体可以为:
c=Hash(t1_p,t2_p,……tn+1_p);其中,
t1_p=(a*G1)mod q;
t2_p=(a*G2)mod q;
其中,c为所述初始验证值;t1_p、t2_p为所述N+1个替代子密文;a为所述替代明文;Hash为所述哈希算法。
步骤207的一种可选实施方式中,步骤207具体可以为:
所述第一解密节点针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值,包括:
Z1=(a-c*x_1)mod q;
Z2=(a-c*x_1’)mod q;
其中,Z1、Z2为所述替代子密文的子验证值;x_1为所述第一解密节点的私钥,x_1’为所述第一解密节点在对所述加密密文解密时所使用的私钥。
解密密钥证明具体可以为equality_proof=(c,Z1,Z2)。
第一解密节点将明文m及离散对数元素相等证明equality_proof公布于区块链上,在保证消息第一解密节点的私钥x_1隐私的前提下供所有验证者验证解密过程的正确性,即保证x_1与x_1’相等。
验证者在区块链上查询得到解密结果m及离散对数元素相等证明equality_proof,通过离散对数元素相等证明验证算法验证解密者公布的解密结果m是否正确。具体来说,解密节点验证的方式如下,构造以下验证值:t1_v,t2_v。
t1_v=c*C1+z1*G1;
t2_v=c*C2+z2*G2。
检验c=?Hash(t1_v,t2_v);其中,=?表示判断是否相等,c为所述初始验证值,若相等,则确定明文的解密过程确实是根据各解密节点的私钥联合解密得到的。若通过验证,则验证者就认为第一解密节点的解密操作是正确的,即公布的明文消息m是正确的,且在此过程中没有获得关于第一解密节点的私钥的任何信息,实现隐私下的可验证。
如图3所示,本申请提供一种适用于区块链的验证装置,包括:获取模块301,用于从区块链获取加密密文;所述加密密文包括N+1个子密文;所述装置为所述第一解密节点的验证装置;所述第一解密节点为各解密节点中任一解密节点;所述各解密节点中每个解密节点都与一个解密私钥对应;N为正整数;所述加密密文是所述加密节点按照预设的加密算法,通过主公钥、N个加密干扰值和q阶循环群中不同的生成元对待加密信息进行加密得到的;q为素数;处理模块302,用于根据所述第一解密节点的私钥以及所述N+1个子密文中的子密文,确定所述加密密文在所述第一解密节点上的解密中间结果,并将所述第一解密节点上的解密中间结果存放于所述区块链上;所述加密密文同时在所述各解密节点上得到所述各解密节点的解密中间结果,且得到的解密中间结果存放于所述区块链上;根据所述各解密节点的解密中间结果,得到所述加密密文的明文;所述处理模块302,还用于确定所述明文的替代明文及所述N个加密干扰值对应的N个替代加密干扰值;通过所述替代明文、所述N个替代加密干扰值和所述生成元生成替代密文,所述替代密文包括N+1个替代子密文;验证模块303,用于按照预设的哈希算法对所述N+1个替代子密文进行哈希运算,得到初始验证值;针对每个替代子密文,根据所述初始验证值、所述替代明文、所述第一解密节点的私钥生成所述替代子密文的子验证值;所述验证模块303,还用于将所述明文和解密密钥证明上传至所述区块链,所述解密密钥证明包括所述初始验证值和每个替代子密文的子验证值;所述解密密钥证明用于验证所述明文是根据所述第一解密节点的私钥解密获得的。
一种可选实施方式中,所述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。
一种可选实施方式中,所述N+1个子密文中的子密文为C2;所述处理模块302具体用于: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。
一种可选实施方式中,N为1,所述验证模块303具体用于:c=Hash(t1_p,t2_p,……tn+1_p);其中,
t1_p=(a*G1)mod q;
t2_p=(a*G2)mod q;
其中,c为所述初始验证值;t1_p、t2_p为所述N+1个替代子密文;a为所述替代明文;Hash为所述哈希算法。
一种可选实施方式中,所述验证模块303具体用于:
Z1=(a-c*x_1)mod q;
Z2=(a-c*x_1’)mod q;
其中,Z1、Z2为所述替代子密文的子验证值;x_1为所述第一解密节点的私钥,x_1’为所述第一解密节点在对所述加密密文解密时所使用的私钥。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种适用于区块链的验证方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种适用于区块链的验证方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
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)
=r1*(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,……tn+1_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中任意一项所述的方法被执行。
10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至5中任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399367.4A CN111162912B (zh) | 2019-12-30 | 2019-12-30 | 一种适用于区块链的验证方法、装置及存储介质 |
PCT/CN2020/129482 WO2021135695A1 (zh) | 2019-12-30 | 2020-11-17 | 一种适用于区块链的验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399367.4A CN111162912B (zh) | 2019-12-30 | 2019-12-30 | 一种适用于区块链的验证方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111162912A true CN111162912A (zh) | 2020-05-15 |
CN111162912B CN111162912B (zh) | 2021-06-15 |
Family
ID=70559365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911399367.4A Active CN111162912B (zh) | 2019-12-30 | 2019-12-30 | 一种适用于区块链的验证方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111162912B (zh) |
WO (1) | WO2021135695A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737748A (zh) * | 2020-06-24 | 2020-10-02 | 深圳前海微众银行股份有限公司 | 一种应用于区块链的数据解密方法及装置 |
WO2021135695A1 (zh) * | 2019-12-30 | 2021-07-08 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
CN113794570A (zh) * | 2021-09-14 | 2021-12-14 | 广州蚁比特区块链科技有限公司 | 一种基于零知识证明的私钥管理方法及系统 |
CN113992325A (zh) * | 2021-10-09 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种隐私数据共享方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185993B (zh) * | 2021-12-21 | 2023-02-03 | 北京理工大学 | 一种基于区块链的可审计数据共享方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180139186A1 (en) * | 2016-11-17 | 2018-05-17 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
CN108650077A (zh) * | 2018-05-17 | 2018-10-12 | 深圳前海微众银行股份有限公司 | 基于区块链的信息传输方法、终端、设备及可读存储介质 |
CN109067719A (zh) * | 2018-07-23 | 2018-12-21 | 黄文佳 | 区块链应用中提高数据处理效率的方法 |
CN110351096A (zh) * | 2019-07-24 | 2019-10-18 | 深圳壹账通智能科技有限公司 | 多重签名方法、签名中心、介质及电子设备 |
CN110519274A (zh) * | 2019-08-28 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 区块链信息传输方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020037654A1 (zh) * | 2018-08-24 | 2020-02-27 | 区链通网络有限公司 | 区块链数据保护方法、装置、系统及计算机可读存储介质 |
CN110620658A (zh) * | 2019-08-26 | 2019-12-27 | 广州易波区块链技术有限公司 | 安全保存区块链私钥的方法及装置 |
CN111162912B (zh) * | 2019-12-30 | 2021-06-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法、装置及存储介质 |
-
2019
- 2019-12-30 CN CN201911399367.4A patent/CN111162912B/zh active Active
-
2020
- 2020-11-17 WO PCT/CN2020/129482 patent/WO2021135695A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180139186A1 (en) * | 2016-11-17 | 2018-05-17 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
CN108650077A (zh) * | 2018-05-17 | 2018-10-12 | 深圳前海微众银行股份有限公司 | 基于区块链的信息传输方法、终端、设备及可读存储介质 |
CN109067719A (zh) * | 2018-07-23 | 2018-12-21 | 黄文佳 | 区块链应用中提高数据处理效率的方法 |
CN110351096A (zh) * | 2019-07-24 | 2019-10-18 | 深圳壹账通智能科技有限公司 | 多重签名方法、签名中心、介质及电子设备 |
CN110519274A (zh) * | 2019-08-28 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 区块链信息传输方法、装置、设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135695A1 (zh) * | 2019-12-30 | 2021-07-08 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
CN111737748A (zh) * | 2020-06-24 | 2020-10-02 | 深圳前海微众银行股份有限公司 | 一种应用于区块链的数据解密方法及装置 |
CN113794570A (zh) * | 2021-09-14 | 2021-12-14 | 广州蚁比特区块链科技有限公司 | 一种基于零知识证明的私钥管理方法及系统 |
CN113794570B (zh) * | 2021-09-14 | 2023-06-06 | 广州蚁比特区块链科技有限公司 | 一种基于零知识证明的私钥管理方法及系统 |
CN113992325A (zh) * | 2021-10-09 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种隐私数据共享方法及装置 |
WO2023056763A1 (zh) * | 2021-10-09 | 2023-04-13 | 深圳前海微众银行股份有限公司 | 一种隐私数据共享方法及装置 |
CN113992325B (zh) * | 2021-10-09 | 2023-07-11 | 深圳前海微众银行股份有限公司 | 一种隐私数据共享方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021135695A1 (zh) | 2021-07-08 |
CN111162912B (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
EP4152683B1 (en) | Computer implemented method and system for transferring access to a digital asset | |
Sonnino et al. | Coconut: Threshold issuance selective disclosure credentials with applications to distributed ledgers | |
CN110740033B (zh) | 一种基于秘密共享技术的区块链多方数据共享方法 | |
EP0786178B1 (en) | Secret-key certificates | |
CN111159745B (zh) | 一种适用于区块链的验证方法及装置 | |
US6202150B1 (en) | Auto-escrowable and auto-certifiable cryptosystems | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
CN108418686A (zh) | 一种多分布式的sm9解密方法与介质及密钥生成方法 | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
Nguyen-Van et al. | Scalable distributed random number generation based on homomorphic encryption | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
TW202318833A (zh) | 臨界簽章方案 | |
TWI511517B (zh) | Information processing apparatus, information processing method, program and recording medium | |
Battagliola et al. | Threshold ecdsa with an offline recovery party | |
JP3513324B2 (ja) | ディジタル署名処理方法 | |
Shlomovits et al. | Jugglingswap: Scriptless atomic cross-chain swaps | |
CN111737748B (zh) | 一种应用于区块链的数据解密方法、装置及存储介质 | |
US20220345312A1 (en) | Zero-knowledge contingent payments protocol for granting access to encrypted assets | |
GB2610560A (en) | Generating shared cryptographic keys | |
Longo | Formal Proofs of Security for Privacy-Preserving Blockchains and other Cryptographic Protocols | |
Tang et al. | A flexible and scalable malicious secure aggregation protocol for federated learning | |
JP3302335B2 (ja) | 暗号文検証方法、そのプログラム記録媒体、及びその装置 | |
Al-Saidi et al. | A new idea in zero knowledge protocols based on iterated function systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |