CN110414981B - 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 - Google Patents
一种支持ZKPs的同态加密方法和区块链交易金额加密方法 Download PDFInfo
- Publication number
- CN110414981B CN110414981B CN201910599674.0A CN201910599674A CN110414981B CN 110414981 B CN110414981 B CN 110414981B CN 201910599674 A CN201910599674 A CN 201910599674A CN 110414981 B CN110414981 B CN 110414981B
- Authority
- CN
- China
- Prior art keywords
- sysprm
- ciphertext
- transaction amount
- encryption method
- random number
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 claims 1
- 238000012795 verification Methods 0.000 description 9
- 239000004744 fabric Substances 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种支持ZKPs(零知识证明)的同态加密方法和区块链交易金额加密方法,属于信息安全技术领域。包括:根据零知识证明要求和Paillier算法,生成公钥、私钥和系统参数;根据给定的明文,使用加密算法和公钥、系统参数进行加密,输出密文(E,c1,c2,c3);根据给定的密文,使用解密算法和私钥进行解密,输出明文。本发明改进了Paillier同态算法,4个部分的密文整体上可以用于保密交易金额,承诺部分E还可用于交易金额的零知识范围证明,使得Paillier算法与基于FO承诺的零知识范围证明相结合,支持密文的范围证明。由于将私钥λ隐藏到系统参数k中,每个用户拥有自己的公私钥,使用起来也更加方便,安全性能更好。
Description
技术领域
本发明属于信息安全技术领域,更具体地,涉及一种支持ZKPs的同态加密方法和区块链交易金额加密方法。
背景技术
区块链技术的实质是,由多方参与共同维护的一个持续增长的分布式数据库,由于其去中心化、集体维护、公开透明、不可篡改、准匿名性等突出特点受到广泛关注。当前区块链技术平台中,以比特币、以太坊和超级账本(Hyperledger Fabric)最具代表性。
Hyperledger Fabric是一个开源的带许可的联盟链,整个网络由共识服务和众多channel构成,所有channel共享一套共识服务,该共识服务称作order。每个channel维护自己的账本,账本在channel的成员peer之间共享。因为诸多功能模块可插拔,比如共识服务,加密算法等都可以插拔,Fabric是一个通用的联盟链框架,目前成为事实上的联盟链标准,如京东,阿里,华为的区块链服务平台。但因为账本的公开透明或者一定范围内的公开透明,以及准匿名性,明文的交易金额造成用户隐私的泄露。为此出现了多种隐藏交易金额的项目,如zerocash、monero、RingCT等项目。
加法同态算法也有很多,Paillier同态加密算法综合性能最好,然而它不支持密文的范围证明。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术Paillier同态加密算法不支持密文的范围证明、同态加密算法安全性有待提高的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种支持ZKPs的同态加密方法,该方法包括以下步骤:
S1.根据零知识证明要求和Paillier算法,生成公钥、私钥和系统参数sysPrm;
S2.根据给定的明文,使用加密算法和公钥、系统参数进行加密,输出密文(E,c1,c2,c3);
S3.根据给定的密文,使用解密算法和私钥、系统参数进行解密,输出明文。
具体地,步骤S1具体包括以下步骤:
S101.以Paillier算法中生成g的方式生成g1;
S102.选择随机数r<n2,计算g2=g1 rmodn2,且要满足gcd(L(g2 λmodn2),n)==1,L(u)=(u-1)/n,λ=lcm(p-1,q-1);基于g1生成k=g1 λmodn2;
S103.选择随机数x<n,计算h=g2 xmodn2;
其中,n=pq,p和q为随机选取两个大素数,lcm(·)为两个参数的最小公倍数,gcd(·)为两个参数的最大公约数;
此时,同态算法公钥PaillierPub为h,私钥PaillierPrv为x,系统参数sysPrm为(g2,k,n,n2)。
具体地,明文加密过程Encrypt(m,PaillierPub,sysPrm,r0,r1)具体为:
对于明文m,m∈Zn,选择随机数r0<n,r1<n,
具体地,密文解密过程Decrypt((E,c1,c2,c3),PaillierPrv)具体为:
具体地,密文随机数解密具体为:
第二方面,本发明实施例提供了一种区块链交易金额加密方法,交易金额加密使用第一方面所述的支持ZKPs的同态加密方法。
具体地,所述同态加密方法既可用于账户模型的交易金额加密与范围证明,也可用于UTXO模型的交易金额加密与范围证明。
具体地,Alice向Bob转账,交易金额为T,发起交易的Alice应用端的数据处理流程如下:
步骤S1.获取Alice的参数PaillierPubA、PaillierPrvA和Bob的参数PaillierPubB,获取系统参数sysPrm;
步骤S2.根据PaillierPrvA和sysPrm,用所述同态加密方法解密输入的UTXO金额(input1,input2),验证UTXO金额,并计算找零B;
步骤S3.成功验证UTXO金额后,分别根据PaillierPubA和sysPrm、PaillierPubB和sysPrm,用所述同态加密方法加密交易金额T;
步骤S4.产生证据ElproofT,以证明c_ta.E和c_tb.E这两个承诺里包含同一个数据T;
步骤S5.根据PaillierPubA和sysPrm,用所述同态加密方法对找零进行加密,返回给Alice;
步骤S6.产生交易输入与交易输出金额相等的证据ElproofIO。
步骤S7.产生证据ZkpRangeProofT用于证明T大于0,产生证据ZkpRangeProofB用于证明B大于0。
具体地,步骤S2具体为:
Decrypt(input1,PaillierPrvA,sysPrm)解密得到明文input1Balance、明文随机数r0input1;
Decrypt(input2,PaillierPrvA,sysPrm)解密得到明文input2Balance、明文随机数r0input2;
验证输入金额是否大于等于交易金额T:check(input1Balance+input2Balance≥T),如果是,计算找零B=input1Balance+input2Balance–T,进入步骤S3;否则,交易失败,结束。
第三方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的支持ZKPs的同态加密方法,或者,第二方面所述的区块链交易金额加密方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1.本发明改进了Paillier同态算法,4个部分的密文整体上可以用于保密交易金额,承诺部分E还可用于交易金额的零知识范围证明,使得Paillier算法与基于FO承诺的零知识范围证明相结合,支持密文的范围证明。
2.本发明改进了Paillier同态算法,加密方持有一个公钥h,解密方持有1个私钥x,系统参数sysPrm(g2,k,n,n2)公开,需要加密时,根据给定的明文,使用加密算法和公钥、系统参数进行加密,输出密文(E,c1,c2,c3);需要解密时,根据给定的密文,使用解密算法和私钥、系统参数进行解密,输出明文m。由于将私钥λ隐藏到系统参数k中,同时加解密过程中不需用到g1,每个用户拥有自己的公私钥,使用起来也更加方便,安全性能更高。
附图说明
图1为本发明实施例提供的Alice应用端的数据处理流程示意图;
图2为本发明实施例提供的智能合约处理流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Paillier同态加密算法是一种加法同态算法。
1.密钥产生
(1)随机选取两个大素数p和q。
(2)计算n=pq和λ=lcm(p-1,q-1),lcm(·)为两个参数的最小公倍数。
此时,公钥为(n,g),私钥为(λ,μ)。
2.加密过程
对于明文m,m∈Zn,选择随机数r<n,加密过程为c=gmrnmodn2。
3.解密过程
Fujisaki-Okamoto承诺(Fujisaki-Okamoto Commitment)
设Alice和Bob不知n的分解,g∈Zn *,h∈(g),g、h的阶是大于160bit的素数,这使得在他们生成循环群中计算离散对数是不可行的。Alice不知loggh和loghg,随机选取r∈R{-2sn+1,2sn-1},计算E(x,r)=gxhrmodn,发送E(x,r)给Bob作为对x的承诺。Alice在不知道n的分解和loggh的情况下,不可能找到x1≠x2满足E(x1,r1)=E(x2,r2);Bob也不可能从E(x,r)中获得关于x的任何信息,该协议是统计安全的,称该承诺方案为Fujisaki-Okamoto承诺,简称FO承诺。
零知识证明(zero-knowledge proofs,简写为ZKPs)
零知识证明是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的,分为交互和非交互两类。零知识证明可用于解决区块链隐私保护,交易合法性验证等问题。
为了将Paillier算法与基于FO承诺的零知识范围证明相结合,本发明对Paillier算法进行了改进。
1.密钥产生
g1的生成方式与原始Paillier算法中g的生成方式相同。
g2的生成方式:选择随机数r<n2,计算g2=g1 rmodn2,且要满足gcd(L(g2 λmodn2),n)==1,L(u)=(u-1)/n,λ=lcm(p-1,q-1)。
k的生成方式:k=g1 λmodn2。
h的生成方式:选择随机数x<n,计算h=g2 xmodn2。
此时,同态算法公钥PaillierPub为h,私钥PaillierPrv为x,系统参数sysPrm为(g2,k,n,n2)公开。
2.明文加密过程Encrypt(m,PaillierPub,sysPrm,r0,r1)
3.密文解密过程Decrypt((E,c1,c2,c3),PaillierPrv)
4.密文随机数解密过程
5.加法同态属性
设有明文ma,mb,对它们加密分别得出密文Encrpt(ma)=(Ea,c1a,c2a,c3a)、Encrpt(mb)=(Eb,c1b,c2b,c3b)。
定义Encrpt(ma)Encrpt(mb)=(E,c1,c2,c3),其中,E=EaEbmodn2,c1=c1ac1bmodn2,c2=c2ac2bmodn2,c3=c3ac3bmodn2。
解密过程如下:
本发明提出一种改进Paillier同态加密算法,不但可以用于对交易金额进行加密,而且支持具有零知识证明的密文范围检查。本发明不但可以用于账户模型的交易金额加密与范围证明,也可以用于UTXO模型(Unspent Transaction Output,未花费过的交易输出)的交易金额加密与范围证明。
UTXO模型
每笔交易都有若干交易输入,也就是资金来源,也都有若干笔交易输出,也就是资金去向。一般来说,每一笔交易都要花费(spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是UTXO。UTXO是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。
本发明以UTXO模型为例具体描述了加解密过程,以及加密金额大于0的零知识证明过程。本发明的密文(E,c1,c2,c3)由四部分构成,其全体用于解密,其中,E用于各种零知识证明,视不同的情景,可以用于交易金额相等的证明,交易的输入与交易的输出相等性证明,找零和交易金额大于0的证明。
这些FO承诺及零知识范围证明协议是已有结果,本发明不展开描述,仅描述用到的函数的功能。
函数ElproofGenerator用于产生Elproof,可用于证明两个承诺中隐藏着同一个数据的证据。
函数ZKPRangeProofGenerator用于产生范围证据ZkpRangeProof,可用于证明FO承诺中隐藏的数据位于[a,b]区间内的证据。
函数ElproofValidator用于利用Elproof,证明两个承诺里确实隐藏了同一个数据。
函数ZKPRangeProofValidator用于利用范围证据ZkpRangeProof,证明FO承诺中所隐藏的数据确实位于[a,b]区间内。
一个典型的描述如下:Alice向Bob转账,交易金额为T(tokens),输入的密文UTXO为input1、input2,找零为B。本发明以上述交易为例说明客户端和链上的chaincode如何工作。
如图1所示,Alice应用端的数据处理流程如下:
步骤S1.获取Alice的参数PaillierPubA、PaillierPrvA和Bob的参数PaillierPubB,获取系统参数sysPrm。
步骤S2.根据PaillierPrvA和sysPrm,用所述同态加密方法解密输入的UTXO金额(input1,input2),验证UTXO金额,并计算找零B。
Decrypt(input1,PaillierPrvA,sysPrm)解密得到明文input1Balance、明文随机数r0input1。
Decrypt(input2,PaillierPrvA,sysPrm)解密得到明文input2Balance、明文随机数r0input2。
验证输入金额是否大于等于交易金额T:check(input1Balance+input2Balance≥T),如果是,计算找零B=input1Balance+input2Balance–T,进入步骤S3;否则,交易失败,结束。
步骤S3.成功验证UTXO金额后,分别根据PaillierPubA和sysPrm、PaillierPubB和sysPrm,用所述同态加密方法加密交易金额T。
选择随机数r0_ta<sysPrm.n,选择随机数r1_ta<sysPrm.n。采用Encrypt(T,PaillierPubA,sysPrm,r0_ta,r1_ta),为Alice产生密文交易金额c_ta。
选择随机数r0_tb<sysPrm.n,选择随机数r1_tb<sysPrm.n。采用Encrypt(T,PaillierPubB,sysPrm,r0_tb,r1_tb),为Bob产生密文交易金额c_tb。
步骤S4.产生证据ElproofT,以证明c_ta.E和c_tb.E这两个承诺里包含同一个数据T。
ElproofGenerator(T,r0_ta,r0_tb,PaillierPubA,PaillierPubB,sysPrm,sysPrm,c_ta.E,c_tb.E)产生证据Elproof(c_ta,c_tb)=ElproofT。
步骤S5.根据PaillierPubA和sysPrm,用所述同态加密方法对找零进行加密,返回给Alice。
选择随机数r0_ba<sysPrm.n,r1_ba<sysPrm.n。采用Encrypt(B,PaillierPubA,sysPrm,r0_ba,r1_ba)产生密文找零c_ba。
步骤S6.产生交易输入与交易输出金额相等的证据ElproofIO。
r0_input=r0input1+r0input2。
r0_output=r0_ba+r0_ta。
sum=input1Balance+input2Balance。
产生证据ElproofGenerator(sum,r0_input,r0_output,PaillierPubA,PaillierPubA,sysPrm,sysPrm,c_inputsum.E,c_outputsum.E)=ElproofIO。
步骤S7.产生证据ZkpRangeProofT用于证明T大于0,产生证据ZkpRangeProofB用于证明B大于0。
计算密文utxo input1、input2的和得到交易的总输入金额c_inputsum,利用c_ta和c_ba计算出交易的总输出金额c_outputsum。
ZKPRangeProofGenerator(T,r0_ta,c_ta.E,PaillierPubA,sysPrm,range[0,b])产生证据ZkpRangeProofT用于证明T大于0。
ZKPRangeProofGenerator(B,r0_ba,c_ba.E,PaillierPubA,sysPrm,range[0,b])产生证据ZkpRangeProofB用于证明B大于0。
把有关数据组成交易放到区块链链上,具体包括:交易金额的密文c_ta,c_tb,交易后的密文找零c_ba,ElproofT,ElproofIO,ZkpRangeProofT,ZkpRangeProofB,用于供区块链节点进行验证。
本发明的密文(E,c1,c2,c3)由四部分构成,其全体用于解密,其中,E用于各种零知识证明,视不同的情景,可以用于交易金额相等的证明,交易的输入与交易的输出相等性证明,找零和交易金额大于0的证明。
如图2所示,智链码端的智能合约用于验证交易的合法性,智能合约处理流程如下:
步骤S1.获取Alice的参数PaillierPubA、sysPrm,获取Bob的参数PaillierPubB、sysPrm,从客户端发来的交易里获取ElproofT、ElproofIO、ZkpRangeProofT、ZkpRangeProofB、input1、input2、c_ta、c_tb、c_ba。
步骤S2.验证承诺c_ta.E与c_tb.E隐藏了同样的数字T。
ElproofValidator(c_ta.E,c_tb.E,PaillierPubA,PaillierPubB,sysPrm,sysPrm,ElproofT)。
步骤S3.验证交易输入金额与交易输出金额相等。
E_output=c_ta.E*c_ba.E mod sysPrm.n2。
E_input=Input1.E*Input2.E mod sysPrm.n2。
ElproofValidator(E_output,E_input,PaillierPubA,PaillierPubA,sysPrm,sysPrm,ElproofIO)。
步骤S4.验证承诺c_ta.E与c_ba.E所隐藏的数据值大于0。
ZKPRangeProofValidator(ZkpRangeProofT,c_ta.E,PaillierPubA,sysPrm)。
ZKPRangeProofValidator(ZkpRangeProofB,c_ba.E,PaillierPubA,sysPrm)。
每一次验证,如果验证失败则交易失败;否则,继续后续步骤。如果上述所有验证通过,则说明链码端(区块链节点处)验证交易合法。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种支持ZKPs的同态加密方法,其特征在于,该方法包括以下步骤:
S1.根据零知识证明要求和Paillier算法,生成公钥、私钥和系统参数sysPrm;
S2.根据给定的明文,使用加密算法和公钥、系统参数进行加密,输出密文(E,c1,c2,c3);
S3.根据密文(E,c1,c2,c3),使用解密算法和私钥、系统参数进行解密,输出明文;
其中,步骤S1具体包括以下步骤:
S101.随机选取两个大素数p和q,计算n=pq和λ=lcm(p-1,q-1),其中lcm(·)为两个参数的最小公倍数;选取随机数g1,且满足μ=(L(g1 λmodn2))-1modn存在,其中,为不大于n2的自然数构成的乘法群,L(u)=(u-1)/n,u为自变量;
S102.选择随机数r<n2,计算g2=g1 rmodn2,且要满足gcd(L(g2 λmodn2),n)=1;基于g1生成k=g1 λmodn2;
S103.选择随机数x<n,计算h=g2 xmodn2;
其中,n=pq,p和q为随机选取两个大素数,lcm(·)为两个参数的最小公倍数,gcd(·)为两个参数的最大公约数;
此时,同态算法公钥PaillierPub为h,私钥PaillierPrv为x,系统参数sysPrm为(g2,k,n,n2);
步骤S2具体包括以下步骤:
对于明文m,m∈Zn,选择随机数r0<n,r1<n,
4.一种区块链交易金额加密方法,其特征在于,交易金额加密使用权利要求1至3任一项所述的支持ZKPs的同态加密方法。
5.如权利要求4所述的区块链交易金额加密方法,其特征在于,所述同态加密方法既可用于账户模型的交易金额加密,也可用于UTXO模型的交易金额加密。
6.如权利要求4所述的区块链交易金额加密方法,其特征在于,Alice向Bob转账,交易金额为T,发起交易的Alice应用端的数据处理流程如下:
步骤S1.获取Alice的公钥参数PaillierPubA、私钥参数PaillierPrvA和Bob的公钥参数PaillierPubB,获取系统参数sysPrm;
步骤S2.根据PaillierPrvA和sysPrm,用所述同态加密方法解密输入的UTXO金额input1、input2,验证UTXO金额,并计算找零B;
步骤S3.成功验证UTXO金额后,分别根据PaillierPubA和sysPrm、PaillierPubB和sysPrm,用所述同态加密方法加密交易金额T,具体包括:选择随机数r0_ta<sysPrm.n,选择随机数r1_ta<sysPrm.n,采用Encrypt(T,PaillierPubA,sysPrm,r0_ta,r1_ta),为Alice产生密文交易金额c_ta;选择随机数r0_tb<sysPrm.n,选择随机数r1_tb<sysPrm.n,采用Encrypt(T,PaillierPubB,sysPrm,r0_tb,r1_tb),为Bob产生密文交易金额c_tb;
步骤S4.产生证据ElproofT,以证明密文交易金额c_ta的密文E对明文的Fujisaki-Okamoto承诺和密文交易金额c_tb的密文E对明文的Fujisaki-Okamoto承诺这两个承诺里包含相同的交易金额T;
步骤S5.根据PaillierPubA和sysPrm,用所述同态加密方法对找零B进行加密,返回给Alice;
步骤S6.产生交易输入与交易输出金额相等的证据ElproofIO;
步骤S7.产生证据ZkpRangeProofT用于证明T大于0,产生证据ZkpRangeProofB用于证明B大于0。
7.如权利要求6所述的区块链交易金额加密方法,其特征在于,步骤S2具体为:
Decrypt(input1,PaillierPrvA,sysPrm)解密得到明文input1Balance、明文随机数r0input1;
Decrypt(input2,PaillierPrvA,sysPrm)解密得到明文input2Balance、明文随机数r0input2;
验证输入金额是否大于等于交易金额T:check(input1Balance+input2Balance≥T),如果是,计算找零B=input1Balance+input2Balance–T,进入步骤S3;否则,交易失败,结束。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的支持ZKPs的同态加密方法,或者,如权利要求4至7任一项所述的区块链交易金额加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599674.0A CN110414981B (zh) | 2019-07-04 | 2019-07-04 | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599674.0A CN110414981B (zh) | 2019-07-04 | 2019-07-04 | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414981A CN110414981A (zh) | 2019-11-05 |
CN110414981B true CN110414981B (zh) | 2023-05-09 |
Family
ID=68360425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910599674.0A Active CN110414981B (zh) | 2019-07-04 | 2019-07-04 | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414981B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112950367B (zh) * | 2019-12-11 | 2021-09-14 | 支付宝(杭州)信息技术有限公司 | 生成和执行智能合约交易的方法及装置 |
CN110991655B (zh) * | 2019-12-17 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
CN112418857B (zh) * | 2020-11-30 | 2023-06-30 | 北京八分量信息科技有限公司 | 基于utxo模型的隐藏交易方法、装置及相关产品 |
CN112733163B (zh) * | 2021-01-04 | 2023-02-03 | 北京航空航天大学 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
CN112785306B (zh) * | 2021-01-28 | 2023-08-15 | 武汉天喻聚联科技有限公司 | 基于Paillier的同态加密方法及应用系统 |
CN113159762B (zh) * | 2021-01-28 | 2024-04-09 | 武汉天喻信息产业股份有限公司 | 基于Paillier和博弈论的区块链交易方法 |
CN112953712B (zh) * | 2021-02-19 | 2022-10-18 | 昆明理工大学 | 一种基于零知识证明和同态加密的数据跨链共享方法 |
CN113011894B (zh) * | 2021-03-29 | 2023-04-07 | 昆明理工大学 | 一种基于可信计算与智能合约的金融衍生品数字交易系统 |
CN113254954A (zh) * | 2021-04-30 | 2021-08-13 | 中核武汉核电运行技术股份有限公司 | 一种基于区块链的核电数据安全方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090177591A1 (en) * | 2007-10-30 | 2009-07-09 | Christopher Thorpe | Zero-knowledge proofs in large trades |
US11158000B2 (en) * | 2015-12-02 | 2021-10-26 | Michael MAZIER | Method and cryptographically secure peer-to-peer trading platform |
JP6663809B2 (ja) * | 2016-07-07 | 2020-03-13 | 株式会社日立製作所 | 監査装置、監査機能付匿名送金方法及びプログラム |
CN107666388B (zh) * | 2016-07-28 | 2019-11-01 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN108418689B (zh) * | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN109670801B (zh) * | 2018-12-10 | 2021-02-12 | 华中科技大学 | 一种针对区块链的数字加密货币转移方法 |
CN109903158A (zh) * | 2019-01-31 | 2019-06-18 | 武汉大学 | 利用零知识证明协议证明交易金额处于某个区间的方法 |
-
2019
- 2019-07-04 CN CN201910599674.0A patent/CN110414981B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110414981A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414981B (zh) | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 | |
CN110011781B (zh) | 用于交易金额加密且支持零知识证明的同态加密方法和介质 | |
US11936774B2 (en) | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys | |
CN108667625B (zh) | 协同sm2的数字签名方法 | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
CN110011803B (zh) | 一种轻量级sm2两方协同生成数字签名的方法 | |
CN113159762B (zh) | 基于Paillier和博弈论的区块链交易方法 | |
Tian et al. | DIVRS: Data integrity verification based on ring signature in cloud storage | |
Tian et al. | Accountable fine-grained blockchain rewriting in the permissionless setting | |
CN117220891A (zh) | 基于非交互分布式密钥的门限ecdsa签名方法及系统 | |
CN116318696A (zh) | 一种双方无初始信任情况下代理重加密数字资产授权方法 | |
CN113746829B (zh) | 多源数据的关联方法、装置、设备及存储介质 | |
Wang | Signer‐admissible strong designated verifier signature from bilinear pairings | |
Nicholas et al. | Enhancing Confidentiality and Integrity in Cloud Computing using RSA Encryption Standard and MD5 Hashing Algorithm | |
Li et al. | Bilinear‐map accumulator‐based verifiable intersection operations on encrypted data in cloud | |
Zhang et al. | Efficient Non-Interactive Polynomial Commitment Scheme in the Discrete Logarithm Setting | |
Li et al. | Decentralized Blockchain Transaction Scheme Based on Digital Commitment | |
Bingol et al. | FlexHi: A Flexible Hierarchical Threshold Signature Scheme | |
Rahmati et al. | Quantum resistant multi-signature scheme with optimal communication round: A Blockchain-based approach | |
CN113704831A (zh) | 一种参与方无需同时在线的数字签名多方生成方法及系统 | |
Bar‐IIan | Security issues on the Internet | |
Mohan | Provable Data Possession using sigma protocols | |
Li | Efficient cryptographic primitives: Secure comparison, binary decomposition and proxy re-encryption |
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 |