CN112819465B - 基于Elgamal的同态加密方法及应用系统 - Google Patents
基于Elgamal的同态加密方法及应用系统 Download PDFInfo
- Publication number
- CN112819465B CN112819465B CN202110120536.7A CN202110120536A CN112819465B CN 112819465 B CN112819465 B CN 112819465B CN 202110120536 A CN202110120536 A CN 202110120536A CN 112819465 B CN112819465 B CN 112819465B
- Authority
- CN
- China
- Prior art keywords
- transaction
- ciphertext
- sender
- evidence
- amount
- 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
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Elgamal的同态加密方法及应用系统,涉及信息安全技术,该方法包括基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据;将得到的密文和构造的证据发送至区块链节点;区块链节点的智能合约基于证据和密文对交易的合法性进行验证。本发明能够更加准确的进行交易合法性的验证。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于Elgamal的同态加密方法及应用系统。
背景技术
区块链技术来自于比特币,具有去中心化、集体维护、公开透明、不可篡改、准匿名性等突出特点而受到广泛关注,是价值互联网的基础,是信任产生的机器,是新的协作机制,能够为自治组织提供支撑。当前区块链技术平台中,公链以比特币、以太坊为代表,联盟链以超级账本(Hyperledger Fabric)、Fisco为代表。无论公有链还是联盟链,因为账本的公开透明或者一定范围内的公开透明,以及准匿名性,导致明文的交易金额易造成用户隐私的泄露。
在密码交易研究领域,出现了多种隐藏交易金额的项目,如zerocash协议、monero(门罗币)、RingCT(环签交易)等,也出现了很多隐藏交易金额的技术方案,如采用Pedersen承诺来隐藏交易金额从而达到交易保密的目的,同时利用Pedersen承诺的同态性校验交易的合法性,主要是转出的交易金额和接收方的接受金额相等,交易金额处于某个合适的范围,余额处于某个合适的范围等检查,为了获得具体的交易金额,可以对交易金额和随机数用对方的公钥加密后在链上,或者以链下明文方式通知对方。
但是,上述方案不但麻烦,而且无法对密文进行同态运算。为了克服上述不便,Zether(匿名支付协议)项目引入了Elgamal算法(一种非对称加密算法)对交易金额进行加密,且对算法进行了修改,把原始Elgamal算法的明文提升为指数,这样密文就具有了加法同态性,可以对密文进行范围证明,但任何密文不具有全网同态性。PGC项目进一步把Elgamal算法进行了修改,但对于余额的范围证明采用了对余额重加密的方式,这增加了上链交易数据量。使用Paillier同态算法进行交易加密是另外一种方法,但直接使用Paillier算法容易导致已知明文攻击,而且很难直接将Paillier改造为具有承诺的形式。即使对Paillier算法进行修改,以支持余额处于某个范围的零知识证明,但采用Paillier算法虽然有同态的优势,但还是存在密文数据量和证据数据量过大的问题。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Elgamal的同态加密方法及系统,能够更加准确的进行交易合法性的验证。
为达到以上目的,本发明提供的一种基于Elgamal的同态加密方法,包括以下步骤:
基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;
基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;
基于密文合法性证据生成函数构造交易金额密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据;
将得到的密文和构造的证据发送至区块链节点;
区块链节点的智能合约基于证据和密文对交易的合法性进行验证。
在上述方案的基础上,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中,生成的系统参数为:
sysPrm=(G,g,h,p)
其中,sysPrm表示系统参数,G表示循环群,且循环群的阶为p,且所述循环群为椭圆曲线群,p表示素数,且p-1中包括大素数因子,g是循环群G的生成元,h是循环群G中的一个随机元素。
在上述方案的基础上,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中:
生成交易发送方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x1,其中,Zp表示小于p的自然数构成的整数环;
生成的交易发送方公钥
在上述方案的基础上,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中:
生成交易接受方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x2;
生成的交易接受方公钥
在上述方案的基础上,所述基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文,其中:
计算得到的交易发送方交易金额密文
计算得到的交易接受方交易金额密文
计算得到的交易发送方账户原始金额密文
计算得到的交易发送方交易后账户余额密文
其中,c_ta表示交易发送方交易金额密文,cs表示交易发送方账户原始金额密文,s表示交易发送方账户原始金额,cb表示交易发送方交易后账户余额密文,c_tb表示交易接受方交易金额密文,r1、r2、r3均为Zp中随机的整数,且2≤r1≤p-1,2≤r2≤p-1,2≤r3≤p-1,t表示交易金额,且交易金额小于或等于交易发送方账户原始金额,且交易发送方对r2和s进行保存。
在上述方案的基础上,基于sigma协议构造交易发送方交易金额密文和交易接收方交易金额密文的合法性证据:
ZCVPT=ZCVPG(sysPrm,c_ta,c_tb,t,r1,r3:
其中,ZCVPT表示构造的交易发送方交易密文的正确性的证据,ZCVPG表示用于产生交易密文正确性证据的函数。
在上述方案的基础上,所述基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于某个特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于某个特定范围的证据,构造的两个证据聚合产生:
ZRPBT=ZRPG(cb1,ca1,sysPrm,s-t,r2-r1,t,r1,[0,2l]:
其中,ZRPBT表示给交易发送方交易金额密文和交易发送方交易后账户余额密文构造的范围证据,s-t表示交易发送方交易后账户余额,r2-r1表示交易发送方交易后账户余额密文对应的随机数,且交易发送方对s-t和r2-r1进行保存,2l表示验证范围的上界,ZRPG表示用于产生零知识范围证明的函数。
在上述方案的基础上,所述将得到的密文和构造的证据发送至区块链节点,具体为:
将交易发送方交易金额密文、交易接受方交易金额密文、给交易发送方交易金额密文构造的证据和给交易发送方交易后账户余额密文构造的证据发送至区块链节点。
在上述方案的基础上,所述区块链节点的智能合约基于证据和密文对交易的合法性进行验证,具体步骤包括:
获取系统参数、交易发送方公钥和交易接受方公钥;
从交易数据里读取交易发送方交易金额密文、交易接受方交易金额密文、从链上读取交易发送方账户原始金额密文、给交易发送方交易金额密文和给交易发送方交易后账户余额密文构造的范围聚合证据;
计算cb=cs/c_ta、验证ZVCPV(ZCVPT,c_ta,c_tb,sysPrm)和ZRPV(ZRPBT,cb1,ca1,sysPrm,[0,2l])是否均成立,若是,则交易合法,将接受方交易金额密文和交易接受方账户余额密文进行同态运算,得到新的交易接受方账户余额密文,将新密文、发送方交易后账户余额密文以及其它交易数据一并写入区块链账本,反之,则交易失败,其中,ZRPV表示用于验证零知识范围证据的函数,ZVCPV表示用于验证交易密文合法性证据的函数。
本发明提供的一种基于Elgamal的应用系统,包括:
生成模块,其用于基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;
加密模块,其用于基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;
构造模块,其用于基于密文合法性证据生成函数构造交易密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于某个特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于某个特定范围的证据;
发送模块,其用于将得到的密文和构造的证据发送至区块链节点;
验证模块,其用于驱使区块链节点的智能合约基于证据和密文对交易的合法性进行验证。
与现有技术相比,本发明的优点在于:通过对Elgamal算法进行变形,使得能够支持全网用户密文数据的同态,随机数可以直接解密,且支持余额的零知识范围证明,在证据大小和运算效率上均具有较好的优势,能够更加准确的进行交易合法性的验证。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于Elgamal的同态加密方法的流程图。
具体实施方式
本发明实施例提供一种基于Elgamal的同态加密方法,通过对Elgamal算法进行变形,使得能够支持全网用户密文数据的同态,随机数可以直接解密,且支持余额的零知识范围证明,在证据大小和运算效率上均具有较好的优势。本发明实施例相应地还提供了一种基于Elgamal的应用系统。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例中,变形后的Elgamal算法为:
对于系统参数和交易双方(用户)的秘钥生成。设g是循环群G的生成元,且循环群的阶为p,p表示素数,其中p-1包括大素数因子,h是G中的一个随机元素,则sysPrm=(G,g,h,p)为全局参数;随机选取Zp中的一个整数x作为私钥,且x不等于1,则公钥为y=g1/x,其中,Zp表示小于p的自然数构成的整数环,循环群G为椭圆曲线群,使得上链数据的数据量较少,有利于节省带宽和链上存储。
对于变形的Elgamal加密算法。对明文m加密(m为Zp中的一个整数),随机选取一个整数r,2≤r≤p-1,随机选取一个整数r0,2≤r0≤p-1,计算则c为对m加密后得到的密文。
变形的Elgamal解密算法:
hm=c1/c3 x,r=c2/c4 x。
具体的,m根据hm来求,可以采用时空折中的方法来加快穷举速度。另外在实际的交易场合,很大的可能是交易双方事先知道交易金额m,这样交易接收方只需要用事先知道的m验证一下即可。
本发明实施例中的变形Elgamal加密算法,密文(c1,c2,c3,c4)由四部分构成,全体可用于解密,而其中的密文c1支持全网用户密文的同态运算,且用于各种零知识证明,使得交易发起方和交易接受方共用密文c1,节省运算量,并消除了相等性证明的需求,密文(c2,c4)可用于解密随机数,使得可以直接对余额进行范围证明,可以节省链上的验证时间。
本发明实施例不但可以用于账户模型的交易金额加密与范围证明,也可以用于UTXO(Unspent Transaction Output,未花费过的交易输出)模型的交易金额加密与范围证明。下面以账户模型来说明本发明实施例如何用于区块链交易的加密及范围的零知识证明。
对于一个正确的交易,需要证明如下四个声明成立:(1)转出金额和接受金额相等;(2)交易的金额处于某个特定的范围;(3)账户余额处于某个特定的范围;(4)交易密文的成分合法。
对于第一个声明,由于c1与用户无关,只与具体的金额和随机数有关,所以交易发送方转出的交易金额承诺c1可以直接作为接收方的接受金额的承诺。因为g和h互相不能求出离散对数,很难购造出(m1,r1)≠(m2,r2)满足所以只要承诺相等,则所承诺的值必相等。
对于第二个声明,只需要利用bulletproof(零知识证明算法)证明交易密文里的Pedersen承诺c1所隐藏的值处于某个特定的范围即可。
对于第三个声明,假设转出账户原始金额为ms,转出金额为mr,则转出账户的余额为mb=ms-mr。设三个金额相应的密文分别为:cs,cr,cb=cs/cr,这里仅对第1和第3部分的密文进行运算。由于同态特性,可以从cb解密获得金额,容易知道余额mb=ms-mr,随机数模p的差rb,可以把mb,rb,cb中的c1作为输入,利用bulletproof对密文进行处于某个特定范围的零知识范围证明。
零知识证明是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的,分为交互和非交互两类。零知识证明可用于解决区块链隐私保护,交易合法性验证等问题。对于bulletproof的零知识范围证明协议,其输入承诺是Pedersen形式,该协议具有证据数据量少,计算效率高的优点,目前应用比较多。在对其进行使用时,函数ZKPRangeProofGenerator(pedersen commit,sysparam,PK,m,r,[0,2l])用于产生范围证据ZkpRangeProof,该可用于证明Pedersen承诺中隐藏的数据m位于[0,2l]区间内,函数ZKPRangeProofValidator(ZkpRangeProof,Pedersen commit,sysparam,PK,[0,2l])用于利用范围证据ZkpRangeProof,验证Pedersen承诺中所隐藏的数据m确实位于[0,2l]区间内。
参见图1所示,本发明实施例提供的一种基于Elgamal的同态加密方法,具体包括以下步骤:
S1:基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;
S2:基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;从本地或从账本读取交易发送方账户原始金额密文、利用同态性质计算交易发送方交易后账户余额密文。
S3:基于密文合法性证据生成函数构造交易金额密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据;本发明实施例中的特定范围根据实际需要进行确定。
S4:将得到的密文和构造的证据发送至区块链节点;
S5:区块链节点的智能合约基于证据和密文对交易的合法性进行验证。
本发明实施例中,基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中,生成的系统参数为:
sysPrm=(G,g,h,p)
其中,sysPrm表示系统参数,G表示循环群,且循环群的阶为p,且所述循环群为椭圆曲线群,p表示素数,且p-1中包括大素数因子,g是循环群G的生成元,h是循环群G中的一个随机元素。
本发明实施例中,基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中:
生成交易发送方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x1,Zp表示小于p的自然数构成的整数环;
生成的交易发送方公钥
生成交易接受方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x2;
生成的交易接受方公钥
本发明实施例中,基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文,其中:
计算得到的交易发送方交易金额密文
计算得到的交易接受方交易金额密文
计算得到的交易发送方账户原始金额密文
计算得到的交易发送方交易后账户余额密文
其中,c_ta表示交易发送方交易金额密文,cs表示交易发送方账户原始金额密文,s表示交易发送方账户原始金额,cb表示交易发送方交易后账户余额密文,c_tb表示交易接受方交易金额密文,r1、r2、r3均为Zp中随机的整数,且2≤r1≤p-1,2≤r2≤p-1,2≤r3≤p-1,t表示交易金额,且交易金额小于或等于交易发送方账户原始金额,且交易发送方对r2和s进行保存。由于c_ta和c_tb包含相同的承诺,所以不需要证明两个承诺里包含相同的值。
本发明实施例中,基于sigma协议构造交易发送方交易金额密文和交易接收方交易金额密文的合法性证据:
ZCVPT=ZCVPG(sysPrm,c_ta,c_tb,t,r1,r3:
其中,ZCVPT表示构造的交易发送方交易密文的正确性的证据,ZCVPG表示用于产生交易密文正确性证据的函数。
本发明实施例中,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据,构造的两个证据聚合产生:
ZRPBT=ZRPG(cb1,ca1,sysPrm,s-t,r2-r1,t,r1,[0,2l]:
其中,ZRPBT表示给交易发送方交易金额密文和交易发送方交易后账户余额密文构造的范围证据,s-t表示交易发送方交易后账户余额,r2-r1表示交易发送方交易后账户余额密文对应的随机数,且交易发送方对s-t和r2-r1进行保存,2l表示验证范围的上界,ZRPG表示用于产生零知识范围证明的函数。
本发明实施例中,将得到的密文和构造的证据发送至区块链节点,具体为:将交易发送方交易金额密文、交易接受方交易金额密文、给交易发送方交易金额密文构造的证据和给交易发送方交易后账户余额密文构造的证据发送至区块链节点。
区块链节点的智能合约基于证据和密文对交易的合法性进行验证,具体步骤包括:
A:获取系统参数、交易发送方公钥和交易接受方公钥;
B:从交易数据里读取交易发送方交易金额密文、交易接受方交易金额密文、从链上读取交易发送方账户原始金额密文、给交易发送方交易金额密文和给交易发送方交易后账户余额密文构造的范围聚合证据;
C:计算cb=cs/c_ta、验证ZVCPV(ZCVPT,c_ta,c_tb,sysPrm)和ZRPV(ZRPBT,cb1,ca1,sysPrm,[0,2l])是否均成立,若是,则交易合法,将接受方交易金额密文和交易接受方账户余额密文进行同态运算,得到新的交易接受方账户余额密文,将新密文、发送方交易后账户余额密文以及其它交易数据一并写入区块链账本,反之,则交易失败,其中,ZRPV表示用于验证零知识范围证据的函数,ZRPV的原型为ZKPRangeProofValidator,ZVCPV表示用于验证交易密文合法性证据的函数。
本发明实施例的基于Elgamal的同态加密方法,通过对Elgamal算法进行变形,使得能够支持全网用户密文数据的同态,随机数可以直接解密,且支持余额的零知识范围证明,在证据大小和链上验证运算方面有优势,有利于提升区块链整体的交易性能,能够更加准确的进行交易合法性的验证。
本发明实施例提供的一种基于Elgamal的应用系统,包括生成模块、加密模块、构造模块、发送模块和验证模块。
生成模块用于基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;加密模块用于基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;构造模块用于基于密文合法性证据生成函数构造交易密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据;发送模块用于将得到的密文和构造的证据发送至区块链节点;验证模块用于驱使区块链节点的智能合约基于证据和密文对交易的合法性进行验证。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。比如,由于本发明的随机数可以解密,这样接收端解密获得(m,r),然后用(m,r)验证接受密文的合法性,如果验证不合法,则该交易作废。由于接受者可以对交易进行检测,不会给接受者造成损失。相反,由于已经证明了交易金额大于0,所以发送者自己总会有损失,而不会获利。从博弈论的角度看,发送方应该诚实地按照算法构造密文,而不会主动作恶,所以可以对本发明做出修改,不对交易密文的合法性进行证明。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (6)
1.一种基于Elgamal的同态加密方法,其特征在于,包括以下步骤:
基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;
基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;
基于密文合法性证据生成函数构造交易金额密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于特定范围的证据;
将得到的密文和构造的证据发送至区块链节点;
区块链节点的智能合约基于证据和密文对交易的合法性进行验证;
其中,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中,生成的系统参数为:
sysPrm=(G,g,h,p)
其中,sysPrm表示系统参数,G表示循环群,且循环群的阶为p,且所述循环群为椭圆曲线群,p表示素数,且p-1中包括大素数因子,g是循环群G的生成元,h是循环群G中的一个随机元素;
其中,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中:
生成交易发送方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x1,其中,Zp表示小于p的自然数构成的整数环;
生成的交易发送方公钥
其中,所述基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥,其中:
生成交易接受方私钥的过程为:随机选取Zp中的一个不等于1的整数作为私钥x2;
生成的交易接受方公钥
其中,所述基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文,其中:
计算得到的交易发送方交易金额密文
计算得到的交易接受方交易金额密文
计算得到的交易发送方账户原始金额密文
计算得到的交易发送方交易后账户余额密文
其中,c_ta表示交易发送方交易金额密文,cs表示交易发送方账户原始金额密文,s表示交易发送方账户原始金额,cb表示交易发送方交易后账户余额密文,c_tb表示交易接受方交易金额密文,r1、r2、r3均为Zp中随机的整数,且2≤r1≤p-1,2≤r2≤p-1,2≤r3≤p-1,t表示交易金额,且交易金额小于或等于交易发送方账户原始金额,且交易发送方对r2和s进行保存。
2.如权利要求1所述的一种基于Elgamal的同态加密方法,其特征在于,基于sigma协议构造交易发送方交易金额密文和交易接收方交易金额密文的合法性证据:
ZCVPT=ZCVPG(sysPrm,c_ta,c_tb,t,r1,r3:
其中,ZCVPT表示构造的交易发送方交易密文的正确性的证据,ZCVPG表示用于产生交易密文正确性证据的函数。
3.如权利要求2所述的一种基于Elgamal的同态加密方法,其特征在于,所述基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于某个特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于某个特定范围的证据,构造的两个证据聚合产生:
ZRPBT=ZRPG(cb1,ca1,sysPrm,s-t,r2-r1,t,r1,[0,2l]:
其中,ZRPBT表示给交易发送方交易金额密文和交易发送方交易后账户余额密文构造的范围证据,s-t表示交易发送方交易后账户余额,r2-r1表示交易发送方交易后账户余额密文对应的随机数,且交易发送方对s-t和r2-r1进行保存,2l表示验证范围的上界,ZRPG表示用于产生零知识范围证明的函数。
4.如权利要求3所述的一种基于Elgamal的同态加密方法,其特征在于,所述将得到的密文和构造的证据发送至区块链节点,具体为:
将交易发送方交易金额密文、交易接受方交易金额密文、给交易发送方交易金额密文构造的证据和给交易发送方交易后账户余额密文构造的证据发送至区块链节点。
5.如权利要求4所述的一种基于Elgamal的同态加密方法,其特征在于,所述区块链节点的智能合约基于证据和密文对交易的合法性进行验证,具体步骤包括:
获取系统参数、交易发送方公钥和交易接受方公钥;
从交易数据里读取交易发送方交易金额密文、交易接受方交易金额密文、从链上读取交易发送方账户原始金额密文、给交易发送方交易金额密文和给交易发送方交易后账户余额密文构造的范围聚合证据;
计算cb=cs/c_ta、验证ZVCPV(ZCVPT,c_ta,c_tb,sysPrm)和ZRPV(ZRPBT,cb1,ca1,sysPrm,[0,2l])是否均成立,若是,则交易合法,将接受方交易金额密文和交易接受方账户余额密文进行同态运算,得到新的交易接受方账户余额密文,将新密文、发送方交易后账户余额密文以及其它交易数据一并写入区块链账本,反之,则交易失败,其中,ZRPV表示用于验证零知识范围证据的函数,ZVCPV表示用于验证交易密文合法性证据的函数。
6.一种基于Elgamal的应用系统,用于实现权利要求1至5任一项所述的基于Elgamal的同态加密方法,其特征在于,包括:
生成模块,其用于基于预设算法生成系统参数以及交易发送方和交易接受方的公私钥;
加密模块,其用于基于生成的系统参数和公私钥,并结合预设ElGamal加密算法,计算得到交易发送方交易金额密文、交易发送方账户原始金额密文、交易发送方交易后账户余额密文和交易接受方交易金额密文;
构造模块,其用于基于密文合法性证据生成函数构造交易密文合法性的证据,基于产生零知识范围证明的函数,给交易发送方交易金额密文构造一个交易金额处于某个特定范围的证据,给交易发送方交易后账户余额密文构造一个交易金额处于某个特定范围的证据;
发送模块,其用于将得到的密文和构造的证据发送至区块链节点;
验证模块,其用于驱使区块链节点的智能合约基于证据和密文对交易的合法性进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120536.7A CN112819465B (zh) | 2021-01-28 | 2021-01-28 | 基于Elgamal的同态加密方法及应用系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110120536.7A CN112819465B (zh) | 2021-01-28 | 2021-01-28 | 基于Elgamal的同态加密方法及应用系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819465A CN112819465A (zh) | 2021-05-18 |
CN112819465B true CN112819465B (zh) | 2023-08-15 |
Family
ID=75859885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110120536.7A Active CN112819465B (zh) | 2021-01-28 | 2021-01-28 | 基于Elgamal的同态加密方法及应用系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112819465B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113159762B (zh) * | 2021-01-28 | 2024-04-09 | 武汉天喻信息产业股份有限公司 | 基于Paillier和博弈论的区块链交易方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006210964A (ja) * | 2005-01-24 | 2006-08-10 | National Institute Of Information & Communication Technology | エルガマル暗号による情報授受伝達方法及び装置 |
CN110419053A (zh) * | 2018-11-27 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 用于信息保护的系统和方法 |
CN110612547A (zh) * | 2018-12-29 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种用于信息保护的系统和方法 |
CN111989891A (zh) * | 2018-04-26 | 2020-11-24 | 华为国际有限公司 | 数据处理方法、相关装置及区块链系统 |
CN114399307A (zh) * | 2021-11-01 | 2022-04-26 | 上海能链众合科技有限公司 | 一种区块链隐私的计算机交易方法 |
CN116051269A (zh) * | 2023-01-31 | 2023-05-02 | 南京磐数志星科技有限公司 | 一种基于区块链和零知识证明的质押融资业务数据处理方法以及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11887073B2 (en) * | 2014-04-23 | 2024-01-30 | Minkasu, Inc. | Securely storing and using sensitive information for making payments using a wallet application |
EP3718069B1 (en) * | 2017-11-30 | 2024-04-17 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
US11403420B2 (en) * | 2018-08-31 | 2022-08-02 | Visa International Service Association | System, method, and computer program product for maintaining user privacy in advertisement networks |
-
2021
- 2021-01-28 CN CN202110120536.7A patent/CN112819465B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006210964A (ja) * | 2005-01-24 | 2006-08-10 | National Institute Of Information & Communication Technology | エルガマル暗号による情報授受伝達方法及び装置 |
CN111989891A (zh) * | 2018-04-26 | 2020-11-24 | 华为国际有限公司 | 数据处理方法、相关装置及区块链系统 |
CN110419053A (zh) * | 2018-11-27 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 用于信息保护的系统和方法 |
CN110612547A (zh) * | 2018-12-29 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种用于信息保护的系统和方法 |
CN114399307A (zh) * | 2021-11-01 | 2022-04-26 | 上海能链众合科技有限公司 | 一种区块链隐私的计算机交易方法 |
CN116051269A (zh) * | 2023-01-31 | 2023-05-02 | 南京磐数志星科技有限公司 | 一种基于区块链和零知识证明的质押融资业务数据处理方法以及装置 |
Non-Patent Citations (1)
Title |
---|
一种高效且可监管的隐私交易方案;杨敏, 孟庆树 等;武汉大学学报(理学版);第69卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112819465A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sonnino et al. | Coconut: Threshold issuance selective disclosure credentials with applications to distributed ledgers | |
CA2838675C (en) | Implicitly certified digital signatures | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
Sakai et al. | Group signatures with message-dependent opening | |
CN106341232B (zh) | 一种基于口令的匿名实体鉴别方法 | |
Xu et al. | K-anonymous secret handshakes with reusable credentials | |
CN104821880B (zh) | 一种无证书广义代理签密方法 | |
US20140089670A1 (en) | Unique code in message for signature generation in asymmetric cryptographic device | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和系统 | |
Al-Riyami | Cryptographic schemes based on elliptic curve pairings | |
CN113159762B (zh) | 基于Paillier和博弈论的区块链交易方法 | |
GB2490407A (en) | Joint encryption using base groups, bilinear maps and consistency components | |
CN112785306B (zh) | 基于Paillier的同态加密方法及应用系统 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
JP2005503696A (ja) | 暗号認証方法 | |
Blanton | Online subscriptions with anonymous access | |
CN113098681B (zh) | 云存储中口令增强且可更新的盲化密钥管理方法 | |
CN112819465B (zh) | 基于Elgamal的同态加密方法及应用系统 | |
CN111030821A (zh) | 一种基于双线性映射技术的联盟链加密方法 | |
CN109766716A (zh) | 一种基于可信计算的匿名双向认证方法 | |
JP3513324B2 (ja) | ディジタル署名処理方法 | |
Kilciauskas et al. | Authenticated key agreement protocol based on provable secure cryptographic functions | |
CN113779593A (zh) | 一种基于身份的双服务器授权密文等值判定方法 | |
Shao et al. | Practical verifiably encrypted signatures based on discrete logarithms |
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 |