CN116502266A - 基于同态加密的区块链可监管零知识证明的验证方法 - Google Patents
基于同态加密的区块链可监管零知识证明的验证方法 Download PDFInfo
- Publication number
- CN116502266A CN116502266A CN202310443795.2A CN202310443795A CN116502266A CN 116502266 A CN116502266 A CN 116502266A CN 202310443795 A CN202310443795 A CN 202310443795A CN 116502266 A CN116502266 A CN 116502266A
- Authority
- CN
- China
- Prior art keywords
- identity
- user
- ciphertext
- zero knowledge
- supervision
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000014509 gene expression Effects 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 claims 1
- 238000013524 data verification Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 4
- 238000012550 audit Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013329 compounding Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种基于同态加密的区块链可监管零知识证明验证方法,实现步骤为:构建区块链中可监管零知识证明的验证系统;监管方生成挑战并发送给用户;用户生成数据零知识摘要和身份零知识摘要并发送给验证方;验证方用接收的零知识摘要组成监管信息并发送给监管方;监管方解密监管信息实现监管;验证方对零知识摘要进行验证。本发明在在保证用户匿名与用户区块链上隐私数据不被泄露的前提下,有效提升了对用户隐私数据验证的安全性。
Description
技术领域
本发明属于区块链隐私保护与认证技术领域,涉及一种验证方法,具体涉及一种基于同态加密的区块链可监管零知识证明的验证方法,可应用于区块链中的用户隐私保护、用户身份验证与用户身份追踪等领域。
背景技术
区块链是一个分布式的共享账本和数据库,随着区块链技术在行业应用中的普及,区块链用户的隐私数据安全性尤为重要,零知识证明是一种保密性高、通用性强的区块链用户隐私保护技术,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
当区块链技术需要在实际生活中进行应用时,其数据的真实性也必须得到保障,零知识证明的验证可以在保证用户隐私数据不被泄露的同时对用户隐私数据的正确性进行验证,区块链中基于零知识证明的验证过程主要为:用户作为证明方将自己的链上隐私数据隐藏,验证方或第三方随机生成一个挑战并发送给用户,用户由接收到挑战与自己的隐私数据计算生成不包括任何自己的隐私数据的零知识摘要,验证方对零知识摘要的内容进行验证,根据验证内容判断用户的隐私数据是否正确。
而在对用户隐私数据保护的同时,利用区块链的匿名性实现违法交易活动的可能性也大大增加,因此在保护用户隐私的同时实现对链上用户的监管也尤为重要,区块链中可监管零知识证明的验证是在验证系统中设置监管方,监管方可以对用户的身份公钥进行追溯并对零知识摘要内容进行审计,目前主流的可监管零知识证明的验证方案为可链接环签名或公钥加密方法,可链接环签名为用户利用自己的身份公钥生成可链接环签名,监管方通过对签名混淆判断用户地址之间关联性来获取用户信息,公钥加密为用户使用监管方的公钥加密用户身份信息,监管方利用私钥可以解密出用户的身份信息。但是可链接环签名与公钥加密方法都没有对生成签名结果或身份密文的正确性进行验证,即无法对生成被监管身份信息的正确性进行验证,也没有对零知识摘要内容进行审计,导致验证的安全性较低。
例如,申请公布号为CN113159774A,名称为“一种区块链中可监管零知识证明验证方法及系统”,公开了一种区块链中可监管零知识证明的验证方法,该方法包括客户端、用户、智能合约和监管方,通过客户端创建用户的主账户,得到与用户身份一对一链接的主地址,并记录在区块链智能合约;根据所述主地址生成用户的公私钥对,并将所述用户的公私钥对广播至区块链全网;基于所述用户的公私钥对和监管方的公钥,通过环签名得到用户的副地址;通过区块链智能合约记录的主地址对用户发起的交易进行合法性验证:若判定为合法,则执行交易;否则,通过环签名混淆使得监管方判断用户的主地址和副地址的关联性,获得用户的身份信息。该方法实现了用户身份的可监管匿名、敏感数据的加密保护并支持共识节点验证数据,能对用户身份实现追踪,但其存在的不足之处在于无法验证用户是否生成正确的可链接环签名,而且不能对提交给验证节点的零知识摘要内容进行审计,导致验证的安全性较低。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于同态加密的区块链可监管零知识证明验证方法,用于解决现有技术的无法对生成被监管身份信息的正确性进行验证和缺少对数据零知识摘要内容的审计导致的验证安全性较低的技术问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)构建区块链中可监管零知识证明的验证系统:
构建包括可信中心CA、用户、验证方和监管方的区块链中可监管零知识证明的验证系统,区块链中包含有D+1个用户的隐私数据a=(a0,a1,...,ad,...aD),D≥1;可信中心CA选取随机数Psk、Tsk分别作为用户、监管方的身份私钥,并通过Psk、Tsk和椭圆曲线有限加法循环群G的生成元g计算用户的身份公钥Ppk=g·Psk、监管方的身份公钥Tpk=g·Tsk;监管方利用Paillier密钥生成算法计算用于同态加密的证明公钥Apk和证明私钥Ask;用户所构建的以X为自变量,以用户的隐私数据a为系数的D次待验证多项式为P(X):
(2)监管方生成挑战并发送:
监管方将在阶远大于D的有限域上选取的随机数s发送给验证方,同时采用Paillier同态加密算法,并通过证明公钥Apk对随机数s的d次方sd、i次方si进行同态加密后,将加密得到的D+1个密文E(S1)={E(s0),E(s1),...,E(sd),...,E(sD)}、I+1个密文E(S2)={E(s0),E(s1),...,E(si),...,E(sI)}作为挑战发送给用户,其中,E(sd)、E(si)分别表示sd、si对应的密文;其中,I=D-1;
(3)用户生成数据零知识摘要和身份零知识摘要并发送:
(3a)用户生成包括用户身份密文c、身份群元素e的哈希值H(e)、两个身份辅助信息ρ1和ρ2的身份零知识摘要π1={c,H(e),ρ1,ρ2},并发送给验证方,其中,H(·)表示哈希函数;
(3b)用户将在有限域内选择的正整数z作为自变量对待验证多项式P(X)进行求解,并采用Paillier同态加密算法,通过证明公钥Apk对自变量为z时P(X)的解P(z)进行加密,得到密文E(P(z));
(3c)用户通过P(X)、z和P(z)构建I次辅助多项式q(X),并通过挑战E(S1)和E(S2)分别计算自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))后,将z、E(P(s))、E(q(s))以及E(P(z))组成数据零知识摘要π2={z,E(P(s)),E(q(s)),E(P(z))}发送给验证方;
(4)验证方组成监管信息并发送:
验证方将身份零知识摘要π1中的用户身份密文c、数据零知识摘要π2中的自变量取值z、自变量为z时P(X)值的密文E(P(z))、自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))组成监管信息R={c,z,E(P(z)),E(P(s)),E(q(s))}并发送给监管方;
(5)监管方解密监管信息实现监管:
监管方通过证明私钥Ask对监管信息R中的密文E(P(z))、E(P(s))、E(q(s))进行解密,得到自变量为z时P(X)的值P(z),自变量取值为s时P(X)、q(X)的值P(s)、q(s),实现对数据零知识摘要内容的审计;同时通过身份私钥Tsk对用户身份密文c进行解密,得到用户的身份公钥Ppk,实现对用户身份的追踪;
(6)验证方对零知识摘要进行验证:
验证方根据身份零知识摘要π1与监管方的身份私钥Tpk计算验证身份群元素e',当e'的哈希值H(e')与身份群元素e的哈希值H(e)满足H(e')=H(e)时,判断数据零知识摘要π2中密文E(q(s))的s-z次幂E(q(s))(s-z)、密文E(P(z))的-1次幂E-1(P(z))以及密文E(P(s))是否满足E(s-z)(q(s))=E(P(s))·E-1(P(z)),若是,则证明P(X)在自变量为z时的值为P(z),输出用户区块链隐私数据验证成功,否则,输出用户区块链隐私数据验证失败。
本发明与现有技术相比,具有以下优点:
(1)本发明通过用户生成、监管方验证身份零知识摘要,保证了生成用户身份密文的正确性,解决了对生成被监管身份信息的正确性进行验证的问题,在保证用户匿名的前提下,提高了验证的安全性。
(2)本发明通过采用同态加密生成数据零知识摘要,使监管方可以利用证明私钥解密数据零知识摘要的内容,解决了需要对数据零知识摘要的审计问题,在保护用户区块链上隐私数据的前提下,进一步提高了验证的安全性。
附图说明
图1为本发明的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细描述。
参照图1,本发明包括如下步骤:
步骤1)构建区块链中可监管零知识验证系统:
构建包括可信中心CA、用户、验证方和监管方的区块链中可监管零知识证明的验证系统,区块链中包含有D个用户的隐私数据a=(a0,a1,...,ad,...aD-1),D≥1;可信中心CA选取随机数Psk、Tsk分别作为用户、监管方的身份私钥,并通过Psk、Tsk和椭圆曲线有限加法循环群G的生成元g计算用户的身份公钥Ppk=g·Psk、监管方的身份公钥Tpk=g·Tsk;监管方利用Paillier密钥生成算法计算用于同态加密的证明公钥Apk和证明私钥Ask;用户所构建的以X为自变量,以用户的隐私数据a为系数的D次待验证多项式为P(X):
监管方身份公钥Tpk、证明公钥Apk在区块链系统中公开,Apk和Ask的计算公式分别为:
m=pq
λ=lcm(p-1,q-1)
L(x)=(x-1)/m
μ=(L(tλmodm2))-1modm
Apk=(m,t)
Ask=(λ,μ);
其中,m、t分别表示第一、第二公钥,p、q分别表示大素数,t为随机整数,λ、μ分别表示第一、第二私钥,lcm(·)表示求取最小公倍数,mod表示取模,L(x)表示以x为自变量的密钥生成函数,t≤m2。
用户身份私钥由自己保管,身份公钥作为身份隐私信息可以追溯到用户的真实身份信息,用户在每次验证时随机生成一次性地址,从一次性地址无法追溯到用户的身份公钥。监管方计算证明公私钥的目的是为了加密数据零知识的同时保证摘要内容能被解密,使摘要内容可审计;椭圆曲线有限加法循环群G为基于有限域上的椭圆曲线secp256k1,用户通过构建待验证多项式将自己在区块链中的隐私数据隐藏在多项式P(X)的系数中,由证明待验证多项式P(X)的正确性来证明自己区块链上隐私数据的正确,在本实例中,P=2256-232-29-28-27-26-24-1,D=32。
步骤2)监管方生成挑战并发送:
监管方将在阶远大于D的有限域上选取的随机数s发送给验证方,同时采用Paillier同态加密算法,并通过证明公钥Apk对随机数s的d次方sd、i次方si进行同态加密后,将加密得到的D+1个密文E(S1)={E(s0),E(s1),...,E(sd),...,E(sD)}、I+1个密文E(S2)={E(s0),E(s1),...,E(si),...,E(sI)}作为挑战发送给用户,其中,E(sd)、E(si)分别表示sd、si对应的密文,加密公式分别为:
其中,I=D-1,r为加密随机数。
监管方使用的paillier加密算法是一种公钥加密算法,基于复合剩余类的困难问题,通过同态加密可以将监管方随机选取的随机数s对用户隐藏,避免恶意用户由s伪造数据零知识摘要;由于的paillier加密具有加法同态特性,公钥Apk相同时,可以通过密文相乘计算明文相加,通过密文的幂运算计算明文相乘,用户可以通过对s各次幂的加密值的运算计算出挑战对应的零知识摘要,有限域的阶应远大于多项式的次数D,在本实例中,
步骤3)用户生成数据零知识摘要和身份零知识摘要并发送:
(3a)用户生成包括用户身份密文c、身份群元素e的哈希值H(e)、两个身份辅助信息ρ1和ρ2的身份零知识摘要π1={c,H(e),ρ1,ρ2},并发送给验证方,π1的生成过程为:用户采用ElGamal加密算法,并通过监管方的身份公钥Tpk和随机正整数r1对用户身份公钥Ppk进行加密,得到用户身份密文c;同时通过随机正整数r2和Tpk计算身份群元素e,然后利用身份群元素e的哈希值H(e)、随机正整数r2分别计算第一身份辅助信息ρ1、第二身份辅助信息ρ2,最后将c、H(e)、ρ1和ρ2组成身份零知识摘要π1={c,H(e),ρ1,ρ2},其中:
c=(c1,c2)=(r1g,Ppk+r1Tpk)
e=2gr2+r2·Tpk
ρ1=r2+H(e)·Psk
ρ2=r2+H(e)·r1;
其中,H(·)表示哈希函数,c1、c2分别为第一、第二用户身份密文。
在本实例中,用户身份密文c为将发送给监管方的身份密文,监管方可以用证明私钥解密c得到用户公钥,H(e)、ρ1和ρ2的计算是为证明身份密文c是用户采用ElGamal加密算法,使用监管方的身份公钥Tpk正确加密自己的身份公钥生成的,验证方无法通过π1获取用户的身份公钥、身份私钥等任何身份信息,但可以通过对c、H(e)、ρ1和ρ2的分析计算来验证用户身份密文的正确生成并可以被监管方正确解密。
(3b)用户将有限域内选择的正整数z作为自变量对待验证多项式P(X)进行求解,并采用Paillier同态加密算法,通过证明公钥Apk对自变量为z时P(X)的解P(z)进行加密,得到密文E(P(z)),求解和加密表达式分别为:
E(P(z))=tP(z)rm mod m2。
用户通过在有限域内选择正整数作为自变量求P(X)的值,将证明待验证多项式P(X)系数的正确性转为证明存在一个待验证多项式P(X),当自变量的值为z时,多项式的值为P(z)。一个恶意用户用错误的链上隐私数据伪造一个待验证多项式P'(X),P'(X)≠P(X),当待验证多项式的次为D时,两个不同D次多项式最多存在D个交点,因此用户在有限域/>内以错误的隐私数据为系数构造的待验证多项式满足当自变量的值为z时,多项式的值为P(z)的概率为/>当/>远大于D时,此概率可以忽略;因此若自变量为z时多项式的值为P(z),待验证多项式的构造正确,继而得出用户的链上隐私数据正确这一结论,其中,/>为有限域/>的阶。
(3c)用户通过P(X)、z和P(z)构建I次辅助多项式q(X),并通过挑战E(S1)和E(S2)分别计算自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))后,将z、E(P(s))、E(q(s))以及E(P(z))组成数据零知识摘要π2={z,E(P(s)),E(q(s)),E(P(z))}发送给验证方,辅助多项式q(X)的表达式,密文E(P(s))、E(q(s))的计算公式分别为:
其中,bi为辅助多项式q(X)的系数,∏(·)表示累乘。
正确的待验证多项式满足在自变量为z的值为P(z),所以多项式P(X)-P(z)在z处存在零点,因此P(X)-P(z)可以被X-z整除,因此得到一个次数为I的辅助多项式且I=D-1。当待验证多项式错误时,P(X)-P(z)不能被X-z整除,辅助多项式q(X)不能正确生成;根据挑战E(S1)和E(S2)分别计算自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))利用了Paillier加密算法的同态特性,将多项式内各项的累加运算进行加密后转变为累乘运算,多项式各项的系数与自变量的各次幂的乘法运算转变为幂次运算,因此可以由D+1个s的d次方的值sd、I+1个s的i次方的值si采用Paillier同态加密的密文E(sd)、E(si)计算出密文E(P(s))、E(q(s)),验证方无法通过数据零知识摘要π2获取待验证多项式的系数,也无法获取任何用户链上隐私数据,但可以通过监管方发送的随机数s和π2中的内容进行分析,验证多项式P(X)的正确性。
步骤4)验证方组成监管信息并发送:
验证方将身份零知识摘要π1中的用户身份密文c、数据零知识摘要π2中的自变量取值z、自变量为z时P(X)解的密文E(P(z))、自变量取值为s时P(X)和g(X)值的密文E(P(s))、E(q(s))组成监管信息R={c,z,E(P(z)),E(P(s)),E(q(s))}并发送给监管方;
为防止用户发送给验证方和监管方的零知识摘要内容不统一,由验证方将身份零知识摘要π1与数据零知识摘要π2的内容进行整合,组成监管信息,监管方将收到的监管信息存储起来,以备后续再次查验。
步骤5)监管方解密监管信息实现监管:
监管方通过证明私钥Ask对监管信息R中的密文E(P(z))、E(P(s))、E(q(s))进行解密,得到自变量为z时P(X)值P(z),自变量取值为s时P(X)和q(X)值P(s)、q(s),实现对数据零知识摘要内容的审计;同时通过身份私钥Tsk对用户身份密文c进行解密,得到用户的身份公钥Ppk,实现对用户身份的追踪,解密密文E(P(z))得到P(z)、解密密文E(P(s))得到P(s)、解密密文E(q(s))得到q(s)的具体公式为:
Ppk=c2-c1·Tsk=Ppk+r1Tpk-r1gTsk
P(z)=L(E(P(z))λmodm2)·μmodm
P(s)=L(E(P(s))λmodm2)·μmodm
q(s)=L(E(q(s))λmodm2)·μmodm;
监管方通过身份私钥Tsk对用户身份密文c进行解密的过程采用的是ElGamal解密密算法,通过证明私钥Ask对密文E(P(z))、E(P(s))、E(q(s))进行解密采用的是Paillier同态解密算法,解密出用户身份公钥后可以由用户的身份公钥追溯到用户的真实身份信息,解密出多P(z)后可以得知用户想要验证的待验证多项式上的点,解密出P(s)、q(s)可以判断用户是否正确生成数据零知识摘要,实现对用户身份信息的追溯和对数据零知识摘要的审计。
步骤6)监管方解密监管信息实现监管:
验证方根据身份零知识摘要π1与监管方的身份私钥Tpk计算验证身份群元素e',当e'的哈希值H(e')与身份群元素e的哈希值H(e)满足H(e')=H(e)时,判断数据零知识摘要π2中密文E(q(s))的s-z次幂E(q(s))(s-z)、密文E(P(z))的-1次幂E-1(P(z))以及密文E(P(s))是否满足E(s-z)(q(s))=E(P(s))·E-1(P(z)),若是,则证明P(X)在自变量为z时的值为P(z),输出用户区块链隐私数据验证成功,否则,输出用户区块链隐私数据验证失败;根据身份证明π1与监管方的身份公钥Tpk计算验证身份群元素e',计算公式为:
e'=g(ρ1+ρ2)+Tpk·ρ2-H(e)(c1+c2);
验证方计算出验证群元素的哈希值并判断等式满足H(e')=H(e)后即能认为用户正确生成身份密文的正确性证明为:
g(ρ1+ρ2)=2gr2+H(e)Ppk+H(e)c1
H(e)(c1+c2)=H(e)c1+H(e)Ppk+H(e)r1Tpk
e'=g(ρ1+ρ2)+Tpk·ρ2-H(e)(c1+c2)=2gr2+r2·Tpk=e
H(e')=H(e);
根据判断等式E(s-z)(q(s))=E(P(s))·E-1(P(z))得出P(X)满足在自变量为z的值为P(z)的正确性证明为:当多项式满足在自变量为z的值时,多项式P(X)-P(z)能被(X-z)整除,即存在一个辅助多项式q(X),使得等式q(X)·(X-z)=P(X)-P(z)成立,自变量的取值为s时。
根据判断等式E(s-z)(q(s))=E(P(s))·E-1(P(z))进行推导:
Es-z(q(s))=E((s-z)q(s))
E(P(s))*E-1(P(z))=E(P(s))·E(P(z)·(-1))=E(P(s)-P(z))
E((s-z)q(s))=E(P(s)-P(z));
同时对等式E((s-z)q(s))=E(P(s)-P(z))的两端进行解密,得到:
q(s)·(s-z)=P(s)-P(z);
恶意用户伪造的D次待证明多项式P′(X)满足P′(s)=P(s)的概率为当/>远大于D时该概率可以忽略,因此恶意用户伪造的待证明多项式P′(X)、由P′(X)伪造的q(X)满足等式q(s)·(s-z)=P(s)-P(z)的概率可以忽略,故验证方可以根据判断等式是否满足E(s-z)(q(s))=E(P(s))·E-1(P(z))得出待验证多项式P(X)是否满足在自变量为z的值为P(z)的结论,由此可以验证用户构建的待验证多项式P(X)是否满足正确性,得出用户隐私信息是否正确的验证结果。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式上和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变在本发明的权利要求保护范围之内。
Claims (8)
1.一种基于同态加密的区块链可监管零知识证明验证方法,其特征在于,包括如下步骤:
(1)构建区块链中可监管零知识证明的验证系统:
构建包括可信中心CA、用户、验证方和监管方的区块链中可监管零知识证明的验证系统,区块链中包含有D+1个用户的隐私数据a=(a0,a1,...,ad,...aD),D≥1;可信中心CA选取随机数Psk、Tsk分别作为用户、监管方的身份私钥,并通过Psk、Tsk和椭圆曲线有限加法循环群G的生成元g计算用户的身份公钥Ppk=g·Psk、监管方的身份公钥Tpk=g·Tsk;监管方利用Paillier密钥生成算法计算用于同态加密的证明公钥Apk和证明私钥Ask;用户所构建的以X为自变量,以用户的隐私数据a为系数的D次待验证多项式为P(X):
(2)监管方生成挑战并发送:
监管方将在阶远大于D的有限域上选取的随机数s发送给验证方,同时采用Paillier同态加密算法,并通过证明公钥Apk对随机数s的d次方sd、i次方si进行同态加密后,将加密得到的D+1个密文E(S1)={E(s0),E(s1),...,E(sd),...,E(sD)}、I+1个密文E(S2)={E(s0),E(s1),...,E(si),...,E(sI)}作为挑战发送给用户,其中,E(sd)、E(si)分别表示sd、si对应的密文;其中,I=D-1;
(3)用户生成数据零知识摘要和身份零知识摘要并发送:
(3a)用户生成包括用户身份密文c、身份群元素e的哈希值H(e)、两个身份辅助信息ρ1和ρ2的身份零知识摘要π1={c,H(e),ρ1,ρ2},并发送给验证方,其中,H(·)表示哈希函数;
(3b)用户将在有限域内选择的正整数z作为自变量对待验证多项式P(X)进行求解,并采用Paillier同态加密算法,通过证明公钥Apk对自变量为z时P(X)的解P(z)进行加密,得到密文E(P(z));
(3c)用户通过P(X)、z和P(z)构建I次辅助多项式q(X),并通过挑战E(S1)和E(S2)分别计算自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))后,将z、E(P(s))、E(q(s))以及E(P(z))组成数据零知识摘要π2={z,E(P(s)),E(q(s)),E(P(z))}发送给验证方;
(4)验证方组成监管信息并发送:
验证方将身份零知识摘要π1中的用户身份密文c、数据零知识摘要π2中的自变量取值z、自变量为z时P(X)值的密文E(P(z))、自变量取值为s时P(X)和q(X)值的密文E(P(s))、E(q(s))组成监管信息R={c,z,E(P(z)),E(P(s)),E(q(s))}并发送给监管方;
(5)监管方解密监管信息实现监管:
监管方通过证明私钥Ask对监管信息R中的密文E(P(z))、E(P(s))、E(q(s))进行解密,得到自变量为z时P(X)的值P(z),自变量取值为s时P(X)、q(X)的值P(s)、q(s),实现对数据零知识摘要内容的审计;同时通过身份私钥Tsk对用户身份密文c进行解密,得到用户的身份公钥Ppk,实现对用户身份的追踪;
(6)验证方对零知识摘要进行验证:
验证方根据身份零知识摘要π1与监管方的身份私钥Tpk计算验证身份群元素e',当e'的哈希值H(e')与身份群元素e的哈希值H(e)满足H(e')=H(e)时,判断数据零知识摘要π2中密文E(q(s))的s-z次幂E(q(s))(s-z)、密文E(P(z))的-1次幂E-1(P(z))以及密文E(P(s))是否满足E(s-z)(q(s))=E(P(s))·E-1(P(z)),若是,则证明P(X)在自变量为z时的值为P(z),输出用户区块链隐私数据验证成功,否则,输出用户区块链隐私数据验证失败。
2.根据权利要求1所述的方法,其特征在于,步骤(1)中所述的监管方利用Paillier密钥生成算法计算用于同态加密的证明公钥Apk和证明私钥Ask,计算公式分别为:
m=pq
λ=lcm(p-1,q-1)
L(x)=(x-1)/m
μ=(L(tλmodm2))-1modm
Apk=(m,t)
Ask=(λ,μ);
其中,m、t分别表示第一、第二公钥,p、q分别表示大素数,t为随机整数,λ、μ分别表示第一、第二私钥,lcm(·)表示求取最小公倍数,mod表示取模,L(x)表示以x为自变量的密钥生成函数,t≤m2。
3.根据权利要求2所述的方法,其特征在于,步骤(2)中所述的对随机数s的d次方的值sd、i次方的值si进行同态加密,加密公式分别为:
其中,r为加密随机数。
4.根据权利要求1所述的方法,其特征在于,步骤(3a)中所述的身份零知识摘要π1,其生成过程为:
用户采用ElGamal加密算法,并通过监管方的身份公钥Tpk和随机正整数r1对用户身份公钥Ppk进行加密,得到用户身份密文c;同时通过随机正整数r2和Tpk计算身份群元素e,然后利用身份群元素e的哈希值H(e)、随机正整数r2分别计算第一身份辅助信息ρ1、第二身份辅助信息ρ2,最后将c、H(e)、ρ1和ρ2组成身份零知识摘要π1={c,H(e),ρ1,ρ2},其中:
c=(c1,c2)=(r1g,Ppk+r1Tpk)
e=2gr2+r2·Tpk
ρ1=r2+H(e)·Tsk
ρ2=r2+H(e)·r2;
其中,c1、c2分别为第一、第二用户身份密文。
5.根据权利要求2所述的方法,其特征在于,步骤(3b)中所述的自变量为z时P(X)的解P(z),以及密文E(P(z))的表达式分别为:
E(P(z))=tP(z)rmmodm2。
6.根据权利要求2所述的方法,其特征在于,步骤(3c)中所述的辅助多项式q(X)的表达式,密文E(P(s))、E(q(s))的计算公式分别为:
其中,bi为辅助多项式q(X)的系数,Π(·)表示累乘。
7.根据权利要求6所述的方法,其特征在于,步骤(5)中监管方利用身份私钥Tsk解密用户身份密文c得到用户的身份公钥Ppk、利用证明私钥Ask解密密文E(P(z))得到P(z)、解密密文E(P(s))得到P(s)、解密密文E(q(s))得到q(s)的具体公式为:
Ppk=c2-c1·Tsk=Ppk+r1Tpk-r1gTsk
P(z)=L(E(P(z))λmodm2)·μmodm
P(s)=L(E(P(s))λmodm2)·μmodm
q(s)=L(E(q(s))λmodm2)·μmodm。
8.根据权利要求6所述的方法,其特征在于,步骤(6)中所述的根据身份证明π1与监管方的身份公钥Tpk计算验证身份群元素e',计算公式为:
e'=g(ρ1+ρ2)+Tpk·ρ2-γ(c1+c2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443795.2A CN116502266A (zh) | 2023-04-24 | 2023-04-24 | 基于同态加密的区块链可监管零知识证明的验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443795.2A CN116502266A (zh) | 2023-04-24 | 2023-04-24 | 基于同态加密的区块链可监管零知识证明的验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116502266A true CN116502266A (zh) | 2023-07-28 |
Family
ID=87327873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310443795.2A Pending CN116502266A (zh) | 2023-04-24 | 2023-04-24 | 基于同态加密的区块链可监管零知识证明的验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116502266A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975937A (zh) * | 2023-09-22 | 2023-10-31 | 北京天润基业科技发展股份有限公司 | 匿名证明方法、匿名验证方法 |
CN117251884A (zh) * | 2023-09-21 | 2023-12-19 | 北京海泰方圆科技股份有限公司 | 一种数据验证方法及装置 |
-
2023
- 2023-04-24 CN CN202310443795.2A patent/CN116502266A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251884A (zh) * | 2023-09-21 | 2023-12-19 | 北京海泰方圆科技股份有限公司 | 一种数据验证方法及装置 |
CN116975937A (zh) * | 2023-09-22 | 2023-10-31 | 北京天润基业科技发展股份有限公司 | 匿名证明方法、匿名验证方法 |
CN116975937B (zh) * | 2023-09-22 | 2023-11-28 | 北京天润基业科技发展股份有限公司 | 匿名证明方法、匿名验证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021042685A1 (zh) | 一种区块链的交易方法、装置及系统 | |
Zhou et al. | ExpSOS: Secure and verifiable outsourcing of exponentiation operations for mobile cloud computing | |
JP5205398B2 (ja) | 鍵認証方式 | |
US8654975B2 (en) | Joint encryption of data | |
CN111814191B (zh) | 区块链隐私数据保护方法、装置及系统 | |
US20090217042A1 (en) | Provisional signature schemes | |
CN110086599B (zh) | 基于同态变色龙哈希函数的哈希计算方法及签密方法 | |
CN116502266A (zh) | 基于同态加密的区块链可监管零知识证明的验证方法 | |
EP2792098B1 (en) | Group encryption methods and devices | |
JP6041864B2 (ja) | データの暗号化のための方法、コンピュータ・プログラム、および装置 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
Rezaeibagha et al. | Secure and privacy-preserved data collection for IoT wireless sensors | |
CN112350820B (zh) | 多接收者签密方法、发送端、接收端、系统及存储介质 | |
Kumar et al. | Cryptanalysis and performance evaluation of enhanced threshold proxy signature scheme based on RSA for known signers | |
Li et al. | A secure two-factor authentication scheme from password-protected hardware tokens | |
CN116432204B (zh) | 基于同态加密和零知识证明的可监管交易隐私保护方法 | |
Schäge et al. | A CDH-based ring signature scheme with short signatures and public keys | |
WO2013004691A1 (en) | Traitor tracing for software-implemented decryption algorithms | |
Mu et al. | Delegated decryption | |
Chander | The state-of-the-art cryptography techniques for secure data transmission | |
Peng | Efficient and general PVSS based on ElGamal encryption | |
Verma et al. | Comparison of Threshold Proxy Signature Schemes. | |
CN116582275A (zh) | 一种可追踪匿名认证方法与系统 | |
Jeon et al. | An improvement of remote user authentication scheme using smart cards | |
CN116722984A (zh) | 一种基于后量子密码的区块链安全防御方法及系统 |
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 |