CN112733163B - 基于离散对数相等性证明的可监管零知识证明方法及装置 - Google Patents
基于离散对数相等性证明的可监管零知识证明方法及装置 Download PDFInfo
- Publication number
- CN112733163B CN112733163B CN202110002623.2A CN202110002623A CN112733163B CN 112733163 B CN112733163 B CN 112733163B CN 202110002623 A CN202110002623 A CN 202110002623A CN 112733163 B CN112733163 B CN 112733163B
- Authority
- CN
- China
- Prior art keywords
- proof
- party
- commitment
- proving
- equality
- 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
Images
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/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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于离散对数相等性证明的可监管零知识证明方法及装置,该方法包括:获取可监管零知识证明系统的公共参数、数据加密和提取的公钥和私钥、承诺的生成元,并公开公共参数、公钥和生成元;证明方对隐私数据进行加密;证明方对隐私数据进行承诺和零知识证明;证明方对密文和承诺生成离散对数相等性证明;证明方将承诺和零知识证明广播,密文和相等性证明发送给监管方;验证方对零知识证明进行验证,验证数据的有效性;监管方对离散对数相等性证明进行验证,判断证明方加密的数据是否为上链数据;监管方根据相等性证明验证结果提取密文中的数据,进行审计。该方法采用非对称加密构建了无需交互的高效监管方案,在使用零知识证明保护数据隐私的场景下满足了监管者的监管需求。
Description
技术领域
本发明涉及数据安全技术领域,特别涉及一种基于离散对数相等性证明的可监管零知识证明方法及装置。
背景技术
在当前大数据时代,云计算、区块链等技术被广泛应用的场景下,强调对数据隐私保护。通常的保护方法是采用零知识证明的方式,将数据进行隐藏,并让验证方在不知道数据内容的情况下,能够验证其满足某种论断,这种原始的零知识证明方法能够极大地保护数据持有方。但是,随着国家对网络安全的重视,为防止网络上非法信息的传播,需要对隐私数据进行适当的监管。因此,需要在零知识证明方法上实现可由特定监管机构提取隐私数据。分析表明,目前的监管方案存在各自的缺点。
Li等人在Zerocash隐私保护方案的基础上提出了一种监管方案。该方案中,监管方给每一个被监管用户颁发对称密钥,被监管的用户用对称密钥对交易信息加密,密文存储在每个交易单中。该方案采用零知识证明协议保证加密的信息和交易信息是一致的。监管方需要使用其私钥尝试对每个密文的解密,从而获得被监管者的交易内容。Narula等人提出了可审计的隐私保护分布式账本方案,该方案中银行之间的交易信息对审计者是保密的,但银行的资产可以被审计部门审计。当审计者要审计某一银行的现有资产时,银行回复其资产和一个证明给审计者,以证明其回答和账本内容一致。审计者根据银行的账本内容对反馈的信息进行有效性验证。上述第一个方案采用了对称加密,监管者需要对所有用户分别进行密钥生成、分发和管理;第二个方案由于审计方与被监管方需要频繁交互,当某一方离线时,监管将无法进行。
上述研究现状表明,构造一个使用非对称加密、无需交互的可监管零知识证明方法以降低监管方负载,提升监管能力,将是亟待解决的关键问题。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于离散对数相等性证明的可监管零知识证明方法,该方法解决了其监管过程采用对称加密以及监管过程需要进行交互的问题。
本发明的另一个目的在于提出一种基于离散对数相等性证明的可监管零知识证明装置。
为达到上述目的,本发明一方面实施例提出了一种基于离散对数相等性证明的可监管零知识证明方法,包括:
S1,监管方根据安全参数输出系统公共参数,根据所述系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,根据所述系统公共参数生成生成元,并将所述公钥、所述系统公共参数和所述生成元进行广播;
S2,证明方根据特定随机数生成算法生成第一盲化因子和第二盲化因子;
S3,证明方利用所述第一盲化因子和公钥对第一隐私数据进行加密生成密文;
S4,证明方利用所述第二盲化因子和所述生成元,根据特定论断对第二隐私数据生成承诺,对所述承诺进行零知识证明,生成证明,将所述承诺和所述证明进行广播,等待验证方进行验证;
S5,证明方根据所述密文和所述承诺生成离散对数相等性证明;
S6,验证方对证明方的所述证明进行验证;
S7,监管方根据所述承诺、所述密文和所述离散对数相等性证明验证所述第一隐私数据是否等于所述第二隐私数据,在所述第一隐私数据等于所述第二隐私数据时,通过私钥对所述密文进行解密,并对解密得到的所述第一隐私数据进行审查。
本发明实施例的基于离散对数相等性证明的可监管零知识证明方法,采用了变体形式的Paillier公钥加密算法,仅需执行一次密钥生成算法即可将公钥提供给全网进行加密,克服了现有技术下采用对称加密导致需要对全网用户生成单独的密钥,并进行安全分发的问题。而Paillier加密的变体形式从数学形式上与Pedersen承诺匹配,从而可以对二者直接进行离散对数相等性证明。此外,由于整个证明过程是非交互式的,所以监管者可以在确保数据不泄露的情况下随时选择某用户数据进行审查,而不需要该用户保持在线,从而使得监管过程更具有效率,符合现实需求。
另外,根据本发明上述实施例的基于离散对数相等性证明的可监管零知识证明方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述S1进一步包括:
S11,输入安全参数1λ,输出系统公共参数Params;
S12,基于所述系统公共参数Params,运行Paillier加密算法的变体形式的密钥生成算法,生成公钥和私钥{EK,DK},其中,(EK,DK)←KGen(1λ,Params);
S13,根据所述系统公共参数生成Pedersen承诺的生成元pc_gens;
S14,根据特定信道将所述系统公共参数、公钥和所述生成元公开。
进一步地,在本发明的一个实施例中,所述S3进一步包括:
利用所述第一盲化因子u及公钥EK,对所述第一隐私数据m1采用paillier加密的变体形式进行加密,得到所述密文CT:
CT←Enc(u,EK,m1)。
进一步地,在本发明的一个实施例中,所述S4进一步包括:
S41,利用所述第二盲化因子v和所述生成元pc_gens对所述第二隐私数据m2生成Pedersen承诺CM:CM←Com(v,pc_gens,m2);
S42,对所述承诺CM进行零知识证明,生成所述承诺满足论断x的证明πZK,πzK←Prove(x,CM);
S43,将所述承诺CM及所述证明πZK进行广播,等待验证方进行验证。
进一步地,在本发明的一个实施例中,所述S5进一步包括:
S52,计算c=H(CT||CM||α||β),其中,H为单向杂凑函数;
S53,计算σ=m′-cm1,s=u′-cu,t=v′-cv,其中c单向杂凑函数计算结果,m′,u′,v′为随机数,u,v为盲化因子,m1为第一隐私数据;
S54,将所述密文CT、所述相等性证明πEQ={c,σ,s,t}发送至监管方。
进一步地,在本发明的一个实施例中,所述S6一步包括:
验证方验证零知识证明:
res←VerifyZK(CM,pc_gens,πZK,x)
其中,CM为所述承诺,pc_gens为所述生成元,πZK为所述证明,x为所述承诺满足的论断,该式表示验证承诺CM满足论断x的证明πZK是否成立,若成立则res=1。
进一步地,在本发明的一个实施例中,所述S7进一步包括:
S71,监管方获取所述承诺CM;
S72,验证离散对数相等性证明:
res←VerifyEQ(CT,CM,πEQ)
该式用于验证所述相等性证明πEQ是否成立,若成立则res=1,说明所述密文CT与所述承诺CM中的m1=m2,否则m1≠m2;
S73,若m1≠m2,则证明方进行零知识证明的数据和提交给监管方的数据不同,证明方欺骗监管方,监管方执行追责;
S74,若m1=m2,监管者利用私钥DK对密文CT进行解密得到所述第一隐私数据m1:m1←Dec(DK,CT)。
为达到上述目的,本发明另一方面实施例提出了一种基于离散对数相等性证明的可监管零知识证明装置,包括:
初始化模块,用于生成系统公共参数、监管方的公钥和私钥,并将所述系统公共参数及公钥进行广播,分发给系统的证明方和验证方;
证明模块,用于系统证明方对所持有的隐私数据生成零知识证明和承诺与密文的相等性证明;
验证模块,用于系统验证方对证明方提供的零知识证明进行验证,判断其是否满足给定论断;
监管模块,用于系统监管方对证明方提供的相等性证明进行验证,并当验证结果为真时,通过监管方的私钥对隐私数据进行提取和审计。
本发明实施例的基于离散对数相等性证明的可监管零知识证明装置,采用了变体形式的Paillier公钥加密算法,仅需执行一次密钥生成算法即可将公钥提供给全网进行加密,克服了现有技术下采用对称加密导致需要对全网用户生成单独的密钥,并进行安全分发的问题。而Paillier加密的变体形式从数学形式上与Pedersen承诺匹配,从而可以对二者直接进行离散对数相等性证明。此外,由于整个证明过程是非交互式的,所以监管者可以在确保数据不泄露的情况下随时选择某用户数据进行审查,而不需要该用户保持在线,从而使得监管过程更具有效率,符合现实需求。
另外,根据本发明上述实施例的基于离散对数相等性证明的可监管零知识证明装置还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述初始化模块,具体用于,根据输入的安全参数,输出所述系统公共参数,根据所述系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,将所述系统公共参数及公钥分发给系统的证明方和验证方。
进一步地,在本发明的一个实施例中,所述证明模块具体用于,根据输入的隐私数据、所述系统公共参数,证明方运行零知识证明算法,输出对隐私数据的承诺以及关于某种论断的零知识证明;
根据输入的隐私数据、监管方的公钥,证明方运行加密算法,输出隐私数据的密文;
根据所述承诺和所述密文,证明方运行相等性证明算法,输出对所述承诺和所述密文的相等性证明。
进一步地,在本发明的一个实施例中,所述验证模块具体用于,根据所述承诺和所述零知识证明,验证方运行零知识证明验证算法,输出验证结果,验证结果为真表示与隐私数据相关的某种论断为真。
进一步地,在本发明的一个实施例中,所述监管模块具体用于,根据所述承诺、所述密文以及所述相等性证明,监管方运行相等性证明验证算法,输出验证结果;若验证结果为假,表示证明方欺骗监管方,监管方执行追责;若验证结果为真,根据所述密文、监管方的公钥,监管方执行解密算法,输出解密结果得到所述隐私数据,对所述隐私数据进行审查。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明方法流程图;
图2为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明方法拓扑示意图;
图3为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明方法执行步骤图;
图4为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明装置结构示意图;
图5为根据本发明一个实施例的各模块具有的密码学工具。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于离散对数相等性证明的可监管零知识证明方法及装置。
首先将参照附图描述根据本发明实施例提出的基于离散对数相等性证明的可监管零知识证明方法。
需要说明的是,本发明的实施例涉及密码学工具,在介绍发明的方法之前,首先对用到的密码学基础工具进行解释,包括承诺、公钥加密、零知识证明和单向杂凑函数。
令C={Com,Open}代表承诺方案,其中Com,Open分别为承诺和解承诺;
令PKE={KGen,Enc,Dec}代表公钥加密方案,其中KGen,Enc,Dec分别为密钥生成算法、加密算法和解密算法;
令ZKP={Prove,Verify}代表零知识证明方案,Prove,Veirfy分别为证明算法和验证算法;
令H代表单向杂凑函数。
承诺(Commitment)
密码学承诺方案是一个涉及两方的二阶段交互协议,双方分别为承诺方和接收方。第一阶段为承诺级阶段,承诺方选择一个消息m,以密文的形式发送给接收方,意味着自己不会更改m。第二阶段为打开阶段,承诺方公开消息m与盲化因子,接收方以此来验证其与承诺阶段所接收的消息是否一致;
公钥加密(Public Key Encryption)
是指一对加密密钥与解密密钥,这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥;
零知识证明(Zero Knowledge Proof)
指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
单向杂凑函数(One-wayHash Function)
把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。
在本发明实施例的方法中,包括三类实体机构:证明方、验证方和监管方,每个实体机构的角色都由至少一个实体组成。
其中,证明方:需要向验证方证明他承诺的隐私数据满足某种论断;向监管者证明提供给其的密文与提交给验证方的承诺包含的隐私数据相同。
验证方:验证证明方对隐私数据的零知识证明。
监管方:第三方监管机构,可在验证证明方密文真实性的情况下进行解密,提取并审查其数据。
图1为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明方法流程图。
如图1所示,该基于离散对数相等性证明的可监管零知识证明方法包括以下步骤:
步骤S1,监管方根据安全参数输出系统公共参数,根据系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,根据系统公共参数生成生成元,并将公钥、系统公共参数和生成元进行广播。
进一步地,S1进一步包括:
S11,输入安全参数1λ,输出系统公共参数Params;
S12,基于系统公共参数Params,运行Paillier加密算法的变体形式的密钥生成算法,生成公钥和私钥{EK,DK},其中,(EK,DK)←KGen(1λ,Params);
S13,根据系统公共参数生成Pedersen承诺的生成元pc_gens;
S14,根据特定信道将系统公共参数、公钥和生成元公开,使证明方与验证方能够获取。
步骤S2,证明方根据特定随机数生成算法生成第一盲化因子和第二盲化因子。
步骤S3,证明方利用第一盲化因子和公钥对第一隐私数据进行加密生成密文。
可以理解的是,证明方对隐私数据m1用公钥加密生成密文。
具体地,S3进一步包括:利用第一盲化因子u及公钥EK,对第一隐私数据m1采用paillier加密的变体形式进行加密,得到密文CT:
CT←Enc(u,EK,m1)。
步骤S4,证明方利用第二盲化因子和生成元,根据特定论断对第二隐私数据生成承诺,对承诺进行零知识证明,生成证明,将承诺和证明进行广播,等待验证方进行验证。
可以理解的是,根据承诺生成元,以及盲化因子,证明方对隐私数据m2进行Pedersen承诺;根据需证明的内容,证明方对Pedersen承诺生成相应零知识证明,证明内容包括但不限于范围证明、成员资格证明等。
具体地,S4进一步包括:
S41,利用第二盲化因子v和生成元pc_gens对第二隐私数据m2生成Pedersen承诺CM:CM←Com(v,pc_gens,m2);
S42,对承诺CM进行零知识证明,生成承诺满足论断x的证明πZK,πZK←Prove(x,CM);
S43,将承诺CM及证明πZK进行广播,等待验证方进行验证。
步骤S5,证明方根据密文和承诺生成离散对数相等性证明。
可以理解的是,根据公共参数、加密公钥、承诺生成元以及盲化因子,对密文和承诺内所含隐私数据是否相等进行离散对数零知识证明。
具体地,S5进一步包括:
S52,计算c=H(CT||CM||α||β),其中,H为单向杂凑函数;
S53,计算σ=m′-cm1,s=u′-cu,t=v′-cv,其中c单向杂凑函数计算结果,m′,u′,v′为随机数,u,v为盲化因子,m1为第一隐私数据;
S54,将密文CT、相等性证明πEQ={c,σ,s,t}发送至监管方。
步骤S6,验证方对证明方的证明进行验证,验证数据的有效性。
可以理解的是,证明方将生成的承诺和零知识证明广播给所有验证方节点,证明方根据特定信道,将密文和相等性证明发送给公钥对应监管方。系统验证方对零知识证明进行验证,判断其证明内容是否满足特定论断。
具体地,S6进一步包括:验证方验证零知识证明:
res←VerifyZK(CM,pc_gens,πZK,x)
其中,CM为承诺,pc_gens为生成元,πZK为证明,x为承诺满足的论断,该式表示验证承诺CM满足论断x的证明πZK是否成立,若成立则res=1。
步骤S7,监管方根据承诺、密文和离散对数相等性证明验证第一隐私数据是否等于第二隐私数据,在第一隐私数据等于第二隐私数据时,通过私钥对密文进行解密,并对解密得到的第一隐私数据进行审查。
可以理解的是,监管方对离散对数相等性证明进行验证,判断证明方加密的数据是否为上链数据,根据验证结果提取密文中的数据,进行审计。
具体地,根据系统公共参数、加密公钥以及承诺生成元,监管方对离散对数相等性证明进行验证;根据验证结果,若结果为相等,则可进行下一步操作,否则说明证明方提供给监管方的数据与其实际上链数据不符,给予相应追究。
当需要进行监管时,根据监管方持有的私钥,对密文进行解密,对解密后的密文进行监管审计工作。
进一步地,S7进一步包括:
S71,监管方获取承诺CM;
S72,验证离散对数相等性证明:
res←VerifyEQ(CT,CM,πEQ)
该式用于验证相等性证明πEQ是否成立,若成立则res=1,说明密文CT与承诺CM中的m1=m2,否则m1≠m2;
S73,若m1≠m2,则证明方进行零知识证明的数据和提交给监管方的数据不同,证明方欺骗监管方,监管方执行追责;
S74,若m1=m2,监管者利用私钥DK对密文CT进行解密得到第一隐私数据m1:m1←Dec(DK,cT)。
得到隐私数据之后,即可对解密数据m1进行审查。
进一步地,本发明的方法具有广泛的应用场景,基于区块链场景,实际可用于云计算、云存储等各种场景:区块链为了保护用户交易数据的隐私性,例如公司之间的商业转账行为,需要对交易金额进行隐藏。区块链的验证节点虽然无法知道具体数值,但需要能够验证该金额是大于零且小于用户余额,保证交易的合法性,对此用户需要对隐藏的金额数生成一个零知识范围证明,证明的内容就是其大于零而小于某个指定的数。问题在于,用户可以保持交易对外界的隐私性,但必须要接受监管者的审查,以防止出现交易合法合规的问题。对此,基于安全性和效率性两方面的考量,提出了发明的实施例。
图2展示了一种可监管零知识证明方法的示意性拓扑图,在本发明的一个具体实施例中,证明方为区块链中进行交易的用户,需要提供关于交易金额的范围证明以及关于交易金额的密文和承诺的相等性证明;验证方为区块链中的验证节点,在该实施例中用于验证交易金额的范围证明,保障交易的合法进行;监管方为第三方权威机构,能够验证相等性证明,确保证明者提供给自己的交易数据与实际发起的交易是一致的,并提取出交易金额进行审查;区块链即表示承载交易信息的记账数据,也表示由多对等节点组成的区块链网络,参与交易信息的广播和确认。
图3展示了完整的执行流程,具体可细分为如下步骤:
S10,监管方生成证明过程中的密钥对以及公共参数:
该步骤属于初始化阶段,其中监管方需要选择合适的安全参数生成Paillier加密的公私钥,而证明方可用该公钥进行加密,并且只有监管方持有私钥,有解密的能力。其他的公共参数包含证明方在对交易金额进行范围证明时需要用到的承诺生成元、范围大小及初始字符串。
S101,监管方输入包括安全参数1λ,输出包括系统公共参数Params。
S102,基于Paillier加密算法的变体形式,生成公钥和私钥{EK,DK},即(EK,DK)←KGen(1λ,Params)。
采用变体形式加密函数进行加密:
CT=gm(gn)umodn2:
其中,CT为密文,g、n为公钥,m为隐私数据,在本实施例中代表交易金额,u为盲化因子,这样的变体形式将u转换到了指数位置,从而使该数学形式与Pedersen承诺的数学形式一致,因此该变体形式的转化是必需的。
S103,监管方输入公共参数Params生成Pedersen承诺的生成元pc_gens={g2,h2},其为p阶循环群G上随机选取的两个生成元。
S104,将公钥以及承诺生成元公开,保证证明方和验证方能够获取到。为防止出现中间人攻击等攻击出现,证明方和验证方应预存有CA中心为监管者颁发的数字证书,验明数据来源的真实性。
S20,证明方生成随机盲化因子u、v,分别用于加密和承诺步骤;
S30,证明方对交易金额m1用公钥加密生成密文:
对m1进行加密,如下式
S40,证明方对交易金额m2根据特定论断生成承诺及零知识证明:
S401,对m2进行承诺,如下式:
表示用盲化因子v和生成元pc_gens={g2,h2}对m2生成了Pedersen承诺CM,从该式可以印证,其与Paillier变体形式的加密函数从数学形式上是一致的,因此可以直接适用于基于离散对数的相等性零知识证明,来证明二者隐藏的消息m是相等的;
S402,对承诺CM进行零知识证明,证明其满足论断x,生成证明πZK:
πZK←Prove(x,CM)
零知识证明方案可适用于任意NP问题,只需要将待证明的问题转化为能被零知识证明系统识别的论断x。而本实施例中待证明的问题为范围证明,即用x表述“承诺CM中的数据m2是在给定范围内的”,之后再将承诺CM、论断x输入任意零知识证明系统,即可输出相应的证明πZK。本实施例采用的零知识证明系统为Bulletproofs,其原生实现了对Pedersen承诺的范围证明,且无需可信启动,当然,可选的零知识证明系统不限于Bulletproofs,其他的类似于ZK-SNARKs、Supersonic等均可实现范围证明;
S403,证明方发起一笔交易金额数为m2的转账交易,同时将对应承诺CM及证明πZK广播,等待区块链上的验证节点验证。
S50,证明方对S2中的密文和承诺生成离散对数相等性零知识证明:
该步骤是本发明中提出的关键步骤,该步骤将对加密解密与对承诺的零知识证明两个模块连接了起来。正是有了这一步做保证,监管者才能相信他们所提取的交易金额与用户实际交易金额是一致的。
S502,计算c=H(CT||CM||α||β),其中H为单向杂凑函数,实际实施中,可选取任意常用单向杂凑函数如SHA256或国密杂凑函数SM3;
S503,计算σ=m′-cm1,s=u′-cu,t=v′-cv,其中c为S5-2中的杂凑值,m′,u′,v′为随机数,u,v为S2中的盲化因子;
S504,发送密文CT、相等性证明πEQ={c,σ,s,t}至监管方。出于对区块链网络带宽、存储成本等方面的考虑,本发明中选择将CT和πEQ直接提交至监管方,而不需要监管方从区块链账本中拉取,提高了运行效率,降低了执行成本。从安全性上,该方式不会威胁到交易本身,且不妨碍监管方对未按要求提交的用户进行管理。
S60,验证方验证零知识证明:
res←VerifyZK(CM,pc_gens,πZK,x)
表示验证对承诺CM满足论断x的证明πZK是否成立,若成立则res=1。该步骤中用到验证函数VerifyZK()为所使用的零知识证明系统对应的验证函数,如本实施例中则使用了Bulletproofs中范围证明的验证函数。
S70,监管方对区块链上的数据进行监管:
S701,当监管方需要发挥监管功能时,先从区块链账本中获取被监管对象于S4-3上传的承诺CM;
S702,验证离散对数相等性证明:
res←VerifyEQ(CT,CM,πEQ)
其具体流程分两步:
其中CT为密文,CM为承诺,g1、h1为Paillier加密的生成元,g2、h2为Pedersen承诺的生成元,c、σ、s、t属于相等性证明πEQ。
2)判断c是否等于c′,若相等则res=1,说明CT与CM中的m1=m2,否则m1≠m2。
S703,若m1≠m2,说明该用户没有遵守监管规则,其实际交易金额与汇报给监管者的金额不相等,监管者可对其采取相应管理措施。
S704,若m1=m2,监管者则用私钥DK对密文CT进行解密:
根据本发明实施例提出的基于离散对数相等性证明的可监管零知识证明方法,采用了变体形式的Paillier公钥加密算法,仅需执行一次密钥生成算法即可将公钥提供给全网进行加密,克服了现有技术下采用对称加密导致需要对全网用户生成单独的密钥,并进行安全分发的问题。而Paillier加密的变体形式从数学形式上与Pedersen承诺匹配,从而可以对二者直接进行离散对数相等性证明。此外,由于整个证明过程是非交互式的,所以监管者可以在确保数据不泄露的情况下随时选择某用户数据进行审查,而不需要该用户保持在线,从而使得监管过程更具有效率,符合现实需求。
其次参照附图描述根据本发明实施例提出的基于离散对数相等性证明的可监管零知识证明装置。
图4为根据本发明一个实施例的基于离散对数相等性证明的可监管零知识证明装置结构示意图。
如图4所示,该基于离散对数相等性证明的可监管零知识证明装置包括:初始化模块401、证明模块402、验证模块403和监管模块404。
初始化模块401,用于生成系统公共参数、监管方的公钥和私钥,并将系统公共参数及公钥进行广播,分发给系统的证明方和验证方。
证明模块402,用于系统证明方对所持有的隐私数据生成零知识证明和承诺与密文的相等性证明。
验证模块403,用于系统验证方对证明方提供的零知识证明进行验证,判断其是否满足给定论断。
监管模块404,用于系统监管方对证明方提供的相等性证明进行验证,并当验证结果为真时,通过监管方的私钥对隐私数据进行提取和审计。
监管方、证明方和验证方属于实体机构,每个实体机构的角色都由至少一个实体合作充任。
结合图5所示,对各个模块进行详细叙述。
初始化模块401具体用于,根据输入的安全参数,输出系统公共参数,根据系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,将系统公共参数及公钥分发给系统的证明方和验证方。
公钥应以数字证书的形式安全分发,接收方能够通过CA根证书进行验证。
证明模块402具体用于,根据输入的隐私数据、系统公共参数,证明方运行零知识证明算法,输出对隐私数据的承诺以及关于某种论断的零知识证明;
根据输入的隐私数据、监管方的公钥,证明方运行加密算法,输出隐私数据的密文;
根据承诺和密文,证明方运行相等性证明算法,输出对承诺和密文的相等性证明。
承诺和零知识证明可全网广播给验证方,密文和相等性证明应确保监管者能够完整接收。
验证模块403具体用于,根据承诺和零知识证明,验证方运行零知识证明验证算法,输出验证结果,验证结果为真表示与隐私数据相关的某种论断为真。
监管模块404具体用于,根据承诺、密文以及相等性证明,监管方运行相等性证明验证算法,输出验证结果;若验证结果为假,表示证明方欺骗监管方,监管方执行追责;若验证结果为真,根据密文、监管方的公钥,监管方执行解密算法,输出解密结果得到隐私数据,对隐私数据进行审查。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
根据本发明实施例提出的基于离散对数相等性证明的可监管零知识证明装置,采用了变体形式的Paillier公钥加密算法,仅需执行一次密钥生成算法即可将公钥提供给全网进行加密,克服了现有技术下采用对称加密导致需要对全网用户生成单独的密钥,并进行安全分发的问题。而Paillier加密的变体形式从数学形式上与Pedersen承诺匹配,从而可以对二者直接进行离散对数相等性证明。此外,由于整个证明过程是非交互式的,所以监管者可以在确保数据不泄露的情况下随时选择某用户数据进行审查,而不需要该用户保持在线,从而使得监管过程更具有效率,符合现实需求。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.基于离散对数相等性证明的可监管零知识证明方法,其特征在于,包括:
S1,监管方根据安全参数输出系统公共参数,根据所述系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,根据所述系统公共参数生成生成元,并将所述公钥、所述系统公共参数和所述生成元进行广播;
S2,证明方根据特定随机数生成算法生成第一盲化因子和第二盲化因子;
S3,证明方利用所述第一盲化因子和公钥对第一隐私数据进行加密生成密文;
S4,证明方利用所述第二盲化因子和所述生成元,根据特定论断对第二隐私数据生成承诺,对所述承诺进行零知识证明,生成证明,将所述承诺和所述证明进行广播,等待验证方进行验证;
S5,证明方根据所述密文和所述承诺生成离散对数相等性证明;
S6,验证方对证明方的所述证明进行验证;
S7,监管方根据所述承诺、所述密文和所述离散对数相等性证明验证所述第一隐私数据是否等于所述第二隐私数据,在所述第一隐私数据等于所述第二隐私数据时,通过私钥对所述密文进行解密,并对解密得到的所述第一隐私数据进行审查。
2.根据权利要求1所述的基于离散对数相等性证明的可监管零知识证明方法,其特征在于,所述S1进一步包括:
S11,输入安全参数1λ,输出系统公共参数Params;
S12,基于所述系统公共参数Params,运行Paillier加密算法的变体形式的密钥生成算法,生成公钥和私钥{EK,DK},其中,(EK,DK)←KGen(1λ,Params);
S13,根据所述系统公共参数生成Pedersen承诺的生成元pc_gens;
S14,根据特定信道将所述系统公共参数、公钥和所述生成元公开。
3.根据权利要求2所述的基于离散对数相等性证明的可监管零知识证明方法,其特征在于,所述S3进一步包括:
利用所述第一盲化因子u及公钥EK,对所述第一隐私数据m1采用paillier加密的变体形式进行加密,得到所述密文CT:
CT←Enc(u,EK,m1)。
4.根据权利要求3所述的基于离散对数相等性证明的可监管零知识证明方法,其特征在于,所述S4进一步包括:
S41,利用所述第二盲化因子v和所述生成元pc_gens对所述第二隐私数据m2生成Pedersen承诺CM:CM←Com(v,pc_gens,m2);
S42,对所述承诺CM进行零知识证明,生成所述承诺满足论断x的证明πZK,πZK←Prove(x,CM);
S43,将所述承诺CM及所述证明πZK进行广播,等待验证方进行验证。
6.根据权利要求5所述的基于离散对数相等性证明的可监管零知识证明方法,其特征在于,所述S6进一步包括:
验证方验证零知识证明:
res←VerifyZK(CM,pc_gens,πZK,x)
其中,CM为所述承诺,pc_gens为所述生成元,πZK为所述证明,x为所述承诺满足的论断,该式表示验证承诺CM满足论断x的证明πZK是否成立,若成立则res=1。
7.根据权利要求6所述的基于离散对数相等性证明的可监管零知识证明方法,其特征在于,所述S7进一步包括:
S71,监管方获取所述承诺CM;
S72,验证离散对数相等性证明:
res←VerifyEQ(CT,CM,πEQ)
该式用于验证所述相等性证明πEQ是否成立,若成立则res=1,说明所述密文CT与所述承诺CM中的m1=m2,否则m1≠m2;
S73,若m1≠m2,则证明方进行零知识证明的数据和提交给监管方的数据不同,证明方欺骗监管方,监管方执行追责;
S74,若m1=m2,监管者利用私钥DK对密文CT进行解密得到所述第一隐私数据m1:m1←Dec(DK,CT)。
8.基于离散对数相等性证明的可监管零知识证明装置,其特征在于,所述基于离散对数相等性证明的可监管零知识证明装置用于实现如权利要求1至7中任一所述的基于离散对数相等性证明的可监管零知识证明方法,包括:
初始化模块,用于生成系统公共参数、监管方的公钥和私钥,并将所述系统公共参数及公钥进行广播,分发给系统的证明方和验证方;
证明模块,用于系统证明方对所持有的隐私数据生成零知识证明和承诺与密文的相等性证明;
验证模块,用于系统验证方对证明方提供的零知识证明进行验证,判断其是否满足给定论断;
监管模块,用于系统监管方对证明方提供的相等性证明进行验证,并当验证结果为真时,通过监管方的私钥对隐私数据进行提取和审计。
9.根据权利要求8所述的基于离散对数相等性证明的可监管零知识证明装置,其特征在于,所述初始化模块,具体用于,根据输入的安全参数,输出所述系统公共参数,根据所述系统公共参数,监管方运行密钥生成算法,生成对应的私钥和公钥,将所述系统公共参数及公钥分发给系统的证明方和验证方。
10.根据权利要求9所述的基于离散对数相等性证明的可监管零知识证明装置,其特征在于,所述证明模块具体用于,根据输入的隐私数据、所述系统公共参数,证明方运行零知识证明算法,输出对隐私数据的承诺以及关于某种论断的零知识证明;
根据输入的隐私数据、监管方的公钥,证明方运行加密算法,输出隐私数据的密文;
根据所述承诺和所述密文,证明方运行相等性证明算法,输出对所述承诺和所述密文的相等性证明。
11.根据权利要求10所述的基于离散对数相等性证明的可监管零知识证明装置,其特征在于,所述验证模块具体用于,根据所述承诺和所述零知识证明,验证方运行零知识证明验证算法,输出验证结果,验证结果为真表示与隐私数据相关的某种论断为真。
12.根据权利要求11所述的基于离散对数相等性证明的可监管零知识证明装置,其特征在于,所述监管模块具体用于,根据所述承诺、所述密文以及所述相等性证明,监管方运行相等性证明验证算法,输出验证结果;若验证结果为假,表示证明方欺骗监管方,监管方执行追责;若验证结果为真,根据所述密文、监管方的公钥,监管方执行解密算法,输出解密结果得到所述隐私数据,对所述隐私数据进行审查。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110002623.2A CN112733163B (zh) | 2021-01-04 | 2021-01-04 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110002623.2A CN112733163B (zh) | 2021-01-04 | 2021-01-04 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733163A CN112733163A (zh) | 2021-04-30 |
CN112733163B true CN112733163B (zh) | 2023-02-03 |
Family
ID=75589532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110002623.2A Active CN112733163B (zh) | 2021-01-04 | 2021-01-04 | 基于离散对数相等性证明的可监管零知识证明方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733163B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4141768A1 (en) * | 2021-08-27 | 2023-03-01 | ETH Zurich | Method and system for a central bank digital currency with unlinkable transactions and privacy preserving regulation |
CN113721888B (zh) * | 2021-11-01 | 2022-01-25 | 中科声龙科技发展(北京)有限公司 | 一种Equihash算法的数据处理方法及装置 |
CN114389810A (zh) * | 2022-02-25 | 2022-04-22 | 蚂蚁区块链科技(上海)有限公司 | 证明生成方法及装置、电子设备、存储介质 |
CN114785511A (zh) * | 2022-02-25 | 2022-07-22 | 蚂蚁区块链科技(上海)有限公司 | 证明生成方法及装置、电子设备、存储介质 |
CN116561789B (zh) * | 2023-07-07 | 2023-09-19 | 北京天润基业科技发展股份有限公司 | 隐私数据的处理方法、装置、电子设备及可读存储介质 |
CN116827555A (zh) * | 2023-07-21 | 2023-09-29 | 安徽省大数据中心 | 基于密文密钥关系验证的区块链数据加解密方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418689B (zh) * | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
WO2019204711A1 (en) * | 2018-04-19 | 2019-10-24 | Google Llc | Security measures for determination of private set intersections |
WO2020096996A2 (en) * | 2018-11-05 | 2020-05-14 | Tunnel International Inc. | Methods, systems, and devices for concealing account balances in ledgers |
CN110414981B (zh) * | 2019-07-04 | 2023-05-09 | 华中科技大学 | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 |
CN110855631B (zh) * | 2019-10-24 | 2022-05-17 | 南京可信区块链与算法经济研究院有限公司 | 一种区块链中可监管的零知识验证方法、系统及存储介质 |
CN110933045A (zh) * | 2019-11-08 | 2020-03-27 | 中国电子科技网络信息安全有限公司 | 一种基于承诺的区块链数字资产隐私保护方法 |
-
2021
- 2021-01-04 CN CN202110002623.2A patent/CN112733163B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112733163A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112733163B (zh) | 基于离散对数相等性证明的可监管零知识证明方法及装置 | |
WO2021042685A1 (zh) | 一种区块链的交易方法、装置及系统 | |
Jiang et al. | Public integrity auditing for shared dynamic cloud data with group user revocation | |
CN107733648B (zh) | 一种基于身份的rsa数字签名生成方法及系统 | |
CN107733870B (zh) | 可审计可追踪匿名消息接收系统及方法 | |
EP0786178B1 (en) | Secret-key certificates | |
US20040010700A1 (en) | Method and system for validating software code | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
CN104168114A (zh) | 一种分布式的基于(k,n)门限证书加密方法及系统 | |
CA2554368A1 (en) | Group signature system, method, device, and program | |
CN105187425B (zh) | 面向云计算通信系统安全的无证书门限解密方法 | |
CN110599164B (zh) | 一种可监管的链下任意收款方快速支付方法 | |
CN113191863B (zh) | 投标方法、第三方设备、发标方设备及投标方设备 | |
CN113704736A (zh) | 基于ibc体系的电力物联网设备轻量级接入认证方法及系统 | |
CN105162589A (zh) | 一种基于格的可验证属性加密方法 | |
CN109547413A (zh) | 具有数据源认证的可转换的数据云存储的访问控制方法 | |
CN111756722B (zh) | 一种无密钥托管的多授权属性基加密方法和系统 | |
Zhang et al. | A lattice-based designated verifier signature for cloud computing | |
CN111314059B (zh) | 账户权限代理的处理方法、装置、设备及可读存储介质 | |
Su et al. | Secure blockchain-based electronic voting mechanism. | |
CN114900283A (zh) | 基于多方安全计算的深度学习用户梯度聚合方法 | |
WO2023055371A1 (en) | Replicated secret share generation for distributed symmetric cryptography | |
WO2021222272A1 (en) | Adaptive attack resistant distributed symmetric encryption | |
CN114066449A (zh) | 多中心协同监管的区块链用户身份匿名和追踪方法及系统 | |
EP1649635A1 (en) | Generation and validation of diffie-hellman digital signatures |
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 |