CN116975937B - 匿名证明方法、匿名验证方法 - Google Patents

匿名证明方法、匿名验证方法 Download PDF

Info

Publication number
CN116975937B
CN116975937B CN202311228582.4A CN202311228582A CN116975937B CN 116975937 B CN116975937 B CN 116975937B CN 202311228582 A CN202311228582 A CN 202311228582A CN 116975937 B CN116975937 B CN 116975937B
Authority
CN
China
Prior art keywords
data
target
private
identity
polynomial
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
Application number
CN202311228582.4A
Other languages
English (en)
Other versions
CN116975937A (zh
Inventor
俞海清
张舒畅
胡益榕
宋英齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tianrun Foundation Technology Development Co ltd
Original Assignee
Beijing Tianrun Foundation Technology Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tianrun Foundation Technology Development Co ltd filed Critical Beijing Tianrun Foundation Technology Development Co ltd
Priority to CN202311228582.4A priority Critical patent/CN116975937B/zh
Publication of CN116975937A publication Critical patent/CN116975937A/zh
Application granted granted Critical
Publication of CN116975937B publication Critical patent/CN116975937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种匿名证明方法、匿名验证方法,涉及信息安全技术领域。该匿名证明方法包括:基于目标用户的金融业务请求对应的目标条件,确定用于证明目标用户满足目标条件的金融数据,金融数据存储于第三方机构端,第三方机构端还存储有目标用户的身份匿名数据和金融数据对应的密文数据;确定目标用户提供的身份匿名数据对应的私有数据;基于目标用户提供的身份匿名数据和金融数据,生成目标密文数据;基于金融数据、私有数据和目标密文数据,生成零知识证明;将零知识证明发送至第三方机构端。本申请避免了第三方机构端基于用户的请求干预用户参与的金融业务,提高了用户的隐私数据安全。

Description

匿名证明方法、匿名验证方法
技术领域
本申请涉及信息安全技术领域,具体涉及一种匿名证明方法、匿名验证方法。
背景技术
第三方机构存储有用户的一些金融数据,用户可以调用第三方机构存储的金融数据,以进行一些金融业务。然而,如果用户直接调用,第三方机构会获知具体是哪些用户在进行金融业务,从而造成用户的金融情况泄密的风险。
相关技术中,用户可以向第三方机构发送零知识证明,以便对第三方机构存储的金融数据进行验证,然而,该过程第三方机构不了解的仅仅是证明的内容,但对于证明本身的触发者还是已知的。
发明内容
有鉴于此,本申请实施例提供了一种匿名证明方法、匿名验证方法。
第一方面,本申请一实施例提供了一种匿名证明方法,应用于用户端。该匿名证明方法包括:基于目标用户的金融业务请求对应的目标条件,确定用于证明目标用户满足目标条件的金融数据,金融数据存储于第三方机构端,第三方机构端还存储有目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据;确定目标用户提供的身份匿名数据对应的私有数据;基于目标用户提供的身份匿名数据和金融数据,生成目标密文数据;基于金融数据、私有数据和目标密文数据,生成零知识证明,零知识证明用于证明目标用户在第三方机构端存储的金融数据满足目标条件;将零知识证明发送至第三方机构端,以便第三方机构端对零知识证明进行验证。
结合第一方面,在第一方面的某些实现方式中,基于金融数据、私有数据和目标密文数据,生成零知识证明,包括:基于私有数据和目标用户提供的身份匿名数据,生成目标用户的身份证明电路;基于目标密文数据,生成目标密文数据属于第三方机构端的归属证明电路;基于金融数据和目标条件,生成金融数据满足目标条件的属性证明电路;基于身份证明电路、归属证明电路和属性证明电路,生成零知识证明。
结合第一方面,在第一方面的某些实现方式中,身份匿名数据包括公钥,私有数据包括公钥对应的私钥。身份证明电路内的执行步骤如下:利用公钥对电子签名进行验证,确定电子签名的输出结果,电子签名是基于私钥生成的,输出结果表征电子签名的验证通过。
结合第一方面,在第一方面的某些实现方式中,基于身份证明电路、归属证明电路和属性证明电路,生成零知识证明,包括:基于身份证明电路、归属证明电路和属性证明电路,生成多项式约束条件;基于身份证明电路、归属证明电路和属性证明电路,生成复制约束条件,复制约束条件用于证明身份证明电路中使用的目标用户提供的身份匿名数据与归属证明电路中使用的目标密文数据对应的身份匿名数据一致、以及归属证明电路中使用的目标密文数据对应的金融数据和属性证明电路中使用的金融数据一致;将多项式约束条件和复制约束条件转化成所述零知识证明。
结合第一方面,在第一方面的某些实现方式中,多项式约束条件和复制约束条件中包含相同的多个私有多项式。该匿名证明方法还包括:生成多个私有多项式各自对应的多项式承诺;将多个私有多项式各自对应的多项式承诺发送至第三方机构端,以便第三方机构端基于多个私有多项式各自对应的多项式承诺,对零知识证明进行验证。
第二方面,本申请一实施例提供了一种匿名验证方法,应用于第三方机构端,第三方机构端存储有目标用户的金融数据、目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据。该匿名验证方法包括:接收目标用户所在的用户端发送的零知识证明,零知识证明是基于目标用户提供的身份匿名数据对应的私有数据、金融数据和目标密文数据生成的,目标密文数据是基于目标用户提供的身份匿名数据和金融数据生成的,零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标用户的金融业务请求对应的目标条件;对零知识证明进行验证。
结合第二方面,在第二方面的某些实现方式中,零知识证明由多项式约束条件和复制约束条件转化得到,多项式约束条件和复制约束条件中包含相同的多个私有多项式,多个私有多项式由目标用户想要证明的多个条件转化得到。对零知识证明进行验证,包括:确定随机数;将随机数发送至用户端,以便用户端基于随机数,计算多个私有多项式各自对应的多项式值;获取用户端发送的多个私有多项式各自对应的多项式值;基于多个私有多项式各自对应的多项式值,对零知识证明进行验证。
结合第二方面,在第二方面的某些实现方式中,基于多个私有多项式各自对应的多项式值,对零知识证明进行验证,包括:获取用户端发送的多个私有多项式各自对应的多项式承诺;基于多个私有多项式各自对应的多项式值,对多个私有多项式各自对应的多项式承诺进行验证;在多个私有多项式各自对应的多项式承诺通过验证的情况下,基于多个私有多项式各自对应的多项式值,检验多项式约束条件和复制约束条件在多个私有多项式各自对应的多项式值处是否成立,以便确定零知识证明是否通过验证。
第三方面,本申请一实施例提供了一种匿名证明装置,应用于用户端,装置包括:第一确定模块,用于基于目标用户的金融业务请求对应的目标条件,确定用于证明目标用户满足目标条件的金融数据,金融数据存储于第三方机构端,第三方机构端还存储有目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据;第二确定模块,用于确定目标用户提供的身份匿名数据对应的私有数据;加密模块,用于基于目标用户提供的身份匿名数据和金融数据,生成目标密文数据;生成模块,用于基于金融数据、私有数据和目标密文数据,生成零知识证明,零知识证明用于证明目标用户在第三方机构端存储的金融数据满足目标条件;发送模块,用于将零知识证明发送至第三方机构端,以便第三方机构端对零知识证明进行验证。
第四方面,本申请一实施例提供了一种匿名验证装置,应用于第三方机构端,第三方机构端存储有目标用户的金融数据、目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据。该匿名验证装置包括:接收模块,用于接收目标用户所在的用户端发送的零知识证明,零知识证明是基于目标用户提供的身份匿名数据对应的私有数据、金融数据和目标密文数据生成的,目标密文数据是基于目标用户提供的身份匿名数据和金融数据生成的,零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标用户的金融业务请求对应的目标条件;验证模块,用于对零知识证明进行验证。
第五方面,本申请一实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序用于执行第一方面和第二方面所述的方法。
第六方面,本申请一实施例提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;该处理器用于执行第一方面和第二方面所述的方法。
本申请采用了零知识证明的方式进行金融承诺,根据第三方机构端对目标用户产生的金融数据的存储形式,将目标用户的身份匿名数据作为零知识证明的一部分,身份匿名数据不会暴露目标用户在现实世界的真实身份。在这个过程中,第三方机构端无法得知是谁在进行零知识证明以及证明的具体内容,避免了第三方机构端基于用户的请求干预用户参与的金融业务,提高了用户的隐私数据安全。
附图说明
通过结合附图对本申请实施例进行更详细地描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1所示为本申请一示例性实施例提供的应用场景的示意图。
图2所示为本申请一示例性实施例提供的匿名证明方法的流程示意图。
图3所示为本申请一示例性实施例提供的生成零知识证明的流程示意图。
图4所示为本申请一示例性实施例提供的匿名验证方法的流程示意图。
图5所示为本申请一示例性实施例提供的匿名证明装置的结构示意图。
图6所示为本申请一示例性实施例提供的匿名验证装置的结构示意图。
图7所示为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1所示为本申请一示例性实施例提供的应用场景的示意图。该应用场景包括用户端10和交易中心20,用户端10可以是智能手机、平板电脑、台式计算机等。交易中心20可以是独立的物理服务器,或者由多个服务器组成的服务器集群,或者能进行云计算的云服务器。交易中心20可以是实体机,也可以是虚拟机,数量可以是一个或多个,本申请实施例对服务器的类型和数量不作限定。
示例性地,该场景的应用背景是:用户想向金融机构申请贷款,金融机构为了核实贷款资质,需要用户在交易中心20上的一些交易信息作为担保。例如,该交易信息为用户今年在交易中心20上的成交量大于100万。于是,用户需要交易中心20为其提供证明,证明该用户今年的成交量大于100万。
基于此,用户根据其已知信息,将能证明该用户在交易中心20中成交过的信息打包在零知识证明中,并且,将能证明自己提供的金融数据属于交易中心20中存储的数据以及将能证明自己提供的金融数据大于100万的条件打包在零知识证明中,最后,将零知识证明发送至交易中心20。交易中心20对零知识证明进行验证,并将验证结果发送至用户端10,由用户端10发送至金融机构。
图2所示为本申请一示例性实施例提供的匿名证明方法的流程示意图。如图2所示,本实施例中的匿名证明方法包含如下步骤。
步骤S210,基于目标用户的金融业务请求对应的目标条件,确定用于证明目标用户满足目标条件的金融数据。
金融数据存储于第三方机构端,第三方机构端还存储有目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据。示例性地,金融数据、密文数据和身份匿名数据以数据表的形式存储于第三方机构端,并且,属于同一用户的金融数据、密文数据和身份匿名数据在数据表中以行或列的形式排布,具体地,可参见表1,表1所示为存储金融数据、密文数据和身份匿名数据的数据表。
表1
假设金融业务为贷款资质审查,则目标条件为目标用户在第三方机构中存储的历史交易总额大于1000万,此外,目标条件也可以是目标用户在第三方机构中存储的单次最大交易额大于100万,或者在第三方机构中的交易次数大于10次等等。需要说明的是,本申请实施例不限制身份匿名数据、金融数据和密文数据的具体表现形式,目标条件可根据金融业务请求的具体内容确定。
步骤S220,确定目标用户提供的身份匿名数据对应的私有数据。
具体地,为了保证数据安全,即目标用户是真实存在第三方机构端的用户,而不是盗用其他用户的私有数据进行证明,在本实施例中,私有数据的设置应该具有唯一性,也即一个用户的身份匿名数据对应唯一的私有数据,并且,该私有数据和身份匿名数据能通过一些验证方式证明二者的正确对应性关系。
在本实施例中,不限制私有数据的具体生成方式和数据表现形式。示例性地,目标用户在第三方机构端存储的匿名身份数据可以是唯一的随机数,也可以是目标用户的隐性账户名和密码。利用目标加密运算,对用户的身份匿名数据进行加密后得到的结果可以作为身份匿名数据的私有数据。
步骤S230,基于目标用户提供的身份匿名数据和金融数据,生成目标密文数据。
在本实施例中,利用加密算法对目标用户提供的身份匿名数据和金融数据进行加密,生成目标密文数据;或者,利用身份匿名数据对金融数据进行加密,生成目标密文数据。具体来说,加密算法是通过使用特定的数学运算和算法来改变原始数据,使得未经授权的用户无法解读加密后的信息。这样可以保护数据的机密性,防止数据被篡改或泄露。
示例性地,本实施例可以采用非对称加密算法或者哈希算法来生成目标密文数据。非对称加密算法是一种使用不同的密钥来加密和解密数据的加密算法,这种算法使用公钥和私钥来加密和解密数据。公钥是公开的,任何人都可以获得,而私钥是保密的,只有拥有者才能获得。非对称加密算法的优点是安全性高。常见的非对称加密算法有RSA、ELGamal等。此外,本实施例还可以采用哈希算法生成目标密文数据,哈希算法是一种将任意长度的消息映射为固定长度的消息摘要(或称哈希值)的算法。哈希算法的优点是速度快、不可逆、不可篡改,常见的哈希算法有MD5、SHA-1、SHA-2等。
若采用非对称加密算法,可以基于目标用户的身份匿名数据和私有数据,生成一个公私钥对,并利用公钥对金融数据进行加密;若采用哈希算法,可以将金融数据和身份匿名数据作为输入信息进行加密。
步骤S240,基于金融数据、私有数据和目标密文数据,生成零知识证明。
零知识证明是一种协议,在零知识证明中,一个证明者向一个验证者证明某个命题为真,但不向证明者透露任何其他的信息。本实施例中的零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标条件。若目标用户是诚实用户,则在零知识证明内,通过私有数据能够证明用户是第三方机构端记录的用户;通过目标密文数据,能够证明目标用户提供的该数据与第三方机构端存储的一致;最后,通过金融数据,证明其确实满足金融业务请求对应的目标条件。
在本实施例中,零知识证明中包括:对金融数据某种处理结果的验证,对金融数据的归属的验证,以及对金融数据满足目标条件的验证。
步骤S250,将零知识证明发送至第三方机构端。
步骤S250的目的是便于第三方机构端对零知识证明进行验证。
在一些实现方式中,用户向交易中心表明身份,交易中心在数据库中查找该用户今年的总成交量,如果大于100万,那么,交易中心会给用户提供一个证明文件。然而,该方法存在一些缺陷,即用户向交易中心表明了自己的身份,因此,交易中心知道该用户正在向金融机构申请贷款,故而存在用户隐私泄露的风险。相比于上述实现方式,本申请采用了零知识证明的方式进行金融承诺,根据第三方机构端对目标用户产生的金融数据的存储形式,将目标用户的身份匿名数据作为零知识证明的一部分,身份匿名数据不会暴露目标用户在现实世界的真实身份。在这个过程中,第三方机构端无法得知是谁在进行零知识证明以及证明的具体内容,避免了第三方机构端基于用户的请求干预用户参与的金融业务,提高了用户的隐私数据安全。
除图2所示实施例中提及的零知识证明的生成方法,本实施例还提供另一种零知识证明的生成方法,具体地,可参见图3所示实施例。在该实施例中,假设第三方机构端日常运行中,记录了用户信息的一张表格,表格的列包括:用户的身份匿名数据(公钥),用户的相关属性(例如用户在第三方机构端的账户金额、交易数量、交易总金额等等)。以交易总金额为例,记录用户信息的表格可参见表2,表2所示为用户信息的记录表格。
表2
为了让用户能够生成零知识证明,更具体来说,为了让用户能够证明自己确实是上述表2中的某个用户,即证明自己的信息是表格中的某一行,第三方机构端需要维护表3中的信息,表3所示为用户的哈希列表。
表3
目标用户生成零知识证明需要上述表3中记录的数据,因此第三方机构端需要维护这个哈希列表,并将其公开给所有的用户,例如,将表3放在第三方机构端的网站上公布。在本实施例中,哈希函数是单向、抗碰撞的安全哈希函数,因此这些哈希值不会泄露用户的公钥信息和交易总金额。需要说明的是,表3只公布了用户的哈希值,并没有泄露用户在交易平台上的金融属性、金融行为等等。
具体地,图3所示为本申请一示例性实施例提供的生成零知识证明的流程示意图。首先,在生成零知识证明前,目标用户和第三方机构端共同生成公共参考串CRS,以及明确公共参数,示例性地,如果目标用户希望证明自己的金融数据P大于或等于T,那么T就是一个公共参数。
如图3所示,基于金融数据、私有数据和目标密文数据,生成零知识证明,包括如下步骤。
步骤S310,基于私有数据和目标用户提供的身份匿名数据,生成目标用户的身份证明电路。
示例性地,身份匿名数据包括公钥PK,私有数据包括公钥对应的私钥SK。目标用户证明自己拥有某个公钥PK的私钥SK,将其转化成算术电路,即将“Ver(PK,Sig(SK,m))=1”转化成算术电路。身份证明电路内的执行步骤如下:利用公钥对电子签名进行验证,确定电子签名的输出结果,电子签名是基于私钥生成的,输出结果表征电子签名的验证通过。
在本实施例中是用电子签名验证身份,例如,为了证明拥有PK对应的私钥SK,可以要求证明人在一条随机的消息m上进行签名,这个随机消息m可以在生成CRS的过程中同时产生,也可以当作是CRS的一部分。第三方机构端收到签名之后,用PK检查签名是否合法。电子签名的性质保证了如果目标用户能产生合法的签名,则必须拥有SK。因此,通过本实施例中的方案,目标用户证明自己确实拥有某个公钥PK对应的SK,即证明了自己的身份。
步骤S320,基于目标密文数据,生成目标密文数据属于第三方机构端的归属证明电路。
示例性地,将“Hash(PK||P)列表3”转化成算术电路,该算术电路即为目标密文属于第三方机构端的归属证明电路。
通过步骤S320,可以证明Hash(PK||P)在表3中,由哈希函数的抗碰撞性,这实际上证明了(PK,P)确实是表2中的某一行。
步骤S330,基于金融数据和目标条件,生成金融数据满足目标条件的属性证明电路。
示例性地,将“P>=T”转化成算术电路,该算术电路即为属性证明电路,其中,T是根据目标条件确定的,P表示金融数据。通过步骤S330,证明了金融数据p确实大于等于阈值T。
步骤S340,基于身份证明电路、归属证明电路和属性证明电路,生成零知识证明。
示例性地,根据于身份证明电路、归属证明电路和属性证明电路,生成多项式约束条件;再根据身份证明电路、归属证明电路和属性证明电路,生成复制约束条件;将多项式约束条件和复制约束条件转化成零知识证明,多项式约束条件和复制约束条件中包含的相同的多个私有多项式。复制约束条件用于证明身份证明电路中使用的目标用户提供的身份匿名数据与归属证明电路中使用的目标密文数据对应的身份匿名数据一致、以及归属证明电路中使用的目标密文数据对应的金融数据和属性证明电路中使用的金融数据一致。
示例性地,可以使用PLONK零知识证明技术来生成多项式约束条件。多项式约束条件可以表示为:。其中,/>是由步骤S310至步骤S330中所示的转化成算术电路的三个条件得到。其中,/>是多项式约束条件和复制约束条件中包含的相同的多个私有多项式,/>是多项式约束条件包含的公有多项式,这些公有多项式是用户和交易中心都已知的多项式。示例性地,也可以利用PLONK零知识证明技术来生成复制约束条件。
在本实施例中,多项式约束条件结合复制约束条件共同证明了,目标用户是表格2中的某一行,且目标用户拥有这一行的公钥对应的私钥,这一行的金融数据大于等于阈值T。
结合步骤S340所示实施例,用户端生成多个私有多项式各自对应的多项式承诺;并将多个私有多项式各自对应的多项式承诺发送至第三方机构端。
示例性地,用户将自己的多项式生成多项式承诺。,并发送给第三方机构端。该承诺可用于证明多项式在特定位置的值与指定的数值一致。例如,对于KZG多项式承诺,证明者计算一个多项式的承诺,并可以在多项式的任意一个点进行打开,用来证明多项式在特定位置的值与指定的数值一致。并且,由于多项式承诺的隐藏性,多项式承诺并不会泄露多项式的信息。以便第三方机构端基于多个私有多项式各自对应的多项式承诺,对零知识证明进行验证。
图4所示为本申请一示例性实施例提供的匿名验证方法的流程示意图。示例性地,该方法应用于第三方机构端,第三方机构端存储有目标用户的金融数据、目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据。
如图4所示,在本申请实施例中,匿名验证方法包括如下步骤。
步骤S410,接收目标用户所在的用户端发送的零知识证明。
零知识证明基于目标用户提供的身份匿名数据对应的私有数据、金融数据和目标密文数据生成的,目标密文数据是基于目标用户提供的身份匿名数据和金融数据生成的,零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标用户的金融业务请求对应的目标条件。更具体地,第三方机构端进行验证的零知识证明是前述实施例中用户端生成的零知识证明。
步骤S420,对零知识证明进行验证。
具体地,验证如下:
步骤一、确定随机数。
在本实施例中,随机数可以为任意值。示例性地,该随机数记为Z。
步骤二、将随机数发送至用户端,以便用户端基于随机数,计算多个私有多项式各自对应的多项式值。
在实际应用时,为了保证随机数不被篡改,通过第三方机构端的私钥,对随机数进行加密后,将加密结果发送至用户端。
步骤三、获取用户端发送的多个私有多项式各自对应的多项式值。
示例性地,若多个私有多项式为,则用户端发送的多项式值为
步骤四、基于多个私有多项式各自对应的多项式值,对零知识证明进行验证。
具体地,获取用户端发送的多个私有多项式各自对应的多项式承诺;基于多个私有多项式各自对应的多项式值,对多个私有多项式各自对应的多项式承诺进行验证;在多个私有多项式各自对应的多项式承诺通过验证的情况下,基于多个私有多项式各自对应的多项式值,检验多项式约束条件和复制约束条件在多个私有多项式各自对应的多项式值处是否成立,以便确定零知识证明是否通过验证。
沿用前述示例,由多项式承诺的绑定性,目标用户必须诚实地发送的值。第三方机构端基于CRS和公共参数检查多项式约束条件和复制约束条件是否在z处成立,若成立,则第三方机构端通过目标用户的零知识证明。
此外,在零知识证明验证通过的情况下,第三方机构端给目标用户开一个电子签名证书。例如,第三方机构端产生一条消息=“NONCE在第三方机构端的总金额大于等于T”,其中,NONCE是金融机构端为此次零知识证明的验证过程产生的。之后,第三方机构端使用私钥对这条消息进行签名,将/>和/>的签名即/>作为证书。目标用户收到第三方机构端签名产生的证明文件后,将这个证明文件(/>发送给金融机构端。金融机构端检查/>中的证明信息,检查/>中是否包含了自己产生的NONCE,并用金融机构端的公钥检查签名是否合法。上述检查都通过之后,认为目标用户满足其请求的金融业务对应的目标条件。
在本实施例中,第三方机构端是仅仅用了CRS和公共参数就能验证零知识证明,该过程中第三方机构端不会知道关于目标用户的金融数据、身份匿名数据和私有数据等信息。也就是说,第三方机构端并不知道具体是哪个身份匿名数据、金融数据为多少的用户在进行匿名证明,保护了目标用户的数据隐私。
上文结合图2至图4,详细描述了本申请的方法实施例,下面结合图5和图6,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图5所示为本申请一示例性实施例提供的匿名证明装置的结构示意图。如图5所示,本申请实施例提供的匿名证明装置50包括:
第一确定模块510,用于基于目标用户的金融业务请求对应的目标条件,确定用于证明目标用户满足目标条件的金融数据,金融数据存储于第三方机构端,第三方机构端还存储有目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据;
第二确定模块520,用于确定目标用户提供的身份匿名数据对应的私有数据;
加密模块530,用于基于目标用户提供的身份匿名数据和金融数据,生成目标密文数据;
生成模块540,用于基于金融数据、私有数据和目标密文数据,生成零知识证明,零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标条件;
发送模块550,用于将零知识证明发送至第三方机构端,以便第三方机构端对零知识证明进行验证。
在本申请一实施例中,生成模块540还用于,基于私有数据和目标用户提供的身份匿名数据,生成目标用户的身份证明电路;基于目标密文数据,生成目标密文数据属于第三方机构端的归属证明电路;基于金融数据和目标条件,生成金融数据满足目标条件的属性证明电路;基于身份证明电路、归属证明电路和属性证明电路,生成零知识证明。
在本申请一实施例中,身份匿名数据包括公钥,私有数据包括公钥对应的私钥。身份证明电路内的执行步骤如下:利用公钥对电子签名进行验证,确定电子签名的输出结果,电子签名是基于私钥生成的,输出结果表征电子签名的验证通过。
在本申请一实施例中,生成模块540还用于,基于身份证明电路、归属证明电路和属性证明电路,生成多项式约束条件;基于身份证明电路、归属证明电路和属性证明电路,生成复制约束条件,复制约束条件用于证明身份证明电路中使用的目标用户提供的身份匿名数据与归属证明电路中使用的目标密文数据对应的身份匿名数据一致、以及归属证明电路中使用的目标密文数据对应的金融数据和属性证明电路中使用的金融数据一致;将多项式约束条件和复制约束条件转化成所述零知识证明。
在本申请一实施例中,多项式约束条件和复制约束条件中包含相同的多个私有多项式,发送模块550还用于,生成多个私有多项式各自对应的多项式承诺;将多个私有多项式各自对应的多项式承诺发送至第三方机构端,以便第三方机构端基于多个私有多项式各自对应的多项式承诺,对零知识证明进行验证。
图6所示为本申请一示例性实施例提供的匿名验证装置的结构示意图。示例性地,该装置应用于第三方机构端,第三方机构端存储有目标用户的金融数据、目标用户的身份匿名数据和密文数据,密文数据是基于身份匿名数据和金融数据生成的,身份匿名数据和密文数据均为公有数据。如图6所示,本申请实施例提供的匿名验证装置60包括:
接收模块610,用于接收目标用户所在的用户端发送的零知识证明,零知识证明基于目标用户提供的身份匿名数据对应的私有数据、金融数据和目标密文数据生成的,目标密文数据是基于目标用户提供的身份匿名数据和金融数据生成的,零知识证明用于证明目标用户在第三方机构端中存储的金融数据满足目标用户的金融业务请求对应的目标条件;
验证模块620,用于对零知识证明进行验证。
在本申请一实施例中,零知识证明由多项式约束条件和复制约束条件转化得到,多项式约束条件和复制约束条件中包含相同的多个私有多项式,多个私有多项式由目标用户想要证明的多个条件转化得到。验证模块620还用于,确定随机数;将随机数发送至用户端,以便用户端基于随机数,计算多个私有多项式各自对应的多项式值;获取用户端发送的多个私有多项式各自对应的多项式值;基于多个私有多项式各自对应的多项式值,对零知识证明进行验证。
在本申请一实施例中,验证模块620还用于,获取用户端发送的多个私有多项式各自对应的多项式承诺;基于多个私有多项式各自对应的多项式值,对多个私有多项式各自对应的多项式承诺进行验证;在多个私有多项式各自对应的多项式承诺通过验证的情况下,基于多个私有多项式各自对应的多项式值,检验多项式约束条件和复制约束条件在多个私有多项式各自对应的多项式值处是否成立,以便确定零知识证明是否通过验证。
下面,参考图7来描述根据本申请实施例的电子设备。图7所示为本申请一示例性实施例提供的电子设备的结构示意图。
如图7所示,电子设备70包括一个或多个处理器701和存储器702。
处理器701可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备70中的其他组件以执行期望的功能。
存储器702可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器701可以运行所述程序指令,以实现上文所述的本申请的各个实施例的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如包括目标条件、金融数据、私有数据、目标密文数据、零知识证明等各种内容。
在一个示例中,电子设备70还可以包括:输入装置703和输出装置704,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置703可以包括例如键盘、鼠标等等。
该输出装置704可以向外部输出各种信息,包括目标条件、金融数据、私有数据、目标密文数据、零知识证明等。该输出装置704可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图7中仅示出了该电子设备70中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备70还可以包括任何其他适当的组件。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在目标用户计算设备上执行、部分地在目标用户设备上执行、作为一个独立的软件包执行、部分在目标用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种匿名证明方法,其特征在于,应用于用户端,所述方法包括:
基于目标用户的金融业务请求对应的目标条件,确定用于证明所述目标用户满足所述目标条件的金融数据,所述金融数据存储于第三方机构端,所述第三方机构端还存储有所述目标用户的身份匿名数据和密文数据,所述密文数据是基于所述身份匿名数据和所述金融数据生成的,所述身份匿名数据和所述密文数据均为公有数据;
确定所述目标用户提供的身份匿名数据对应的私有数据;
基于所述目标用户提供的身份匿名数据和所述金融数据,生成目标密文数据;
基于所述金融数据、所述私有数据和所述目标密文数据,生成零知识证明,所述零知识证明用于证明所述目标用户在所述第三方机构端存储的金融数据满足所述目标条件;
将所述零知识证明发送至所述第三方机构端,以便所述第三方机构端对所述零知识证明进行验证。
2.根据权利要求1所述的匿名证明方法,其特征在于,所述基于所述金融数据、所述私有数据和所述目标密文数据,生成零知识证明,包括:
基于所述私有数据和所述目标用户提供的身份匿名数据,生成所述目标用户的身份证明电路;
基于所述目标密文数据,生成所述目标密文数据属于所述第三方机构端的归属证明电路;
基于所述金融数据和所述目标条件,生成所述金融数据满足所述目标条件的属性证明电路;
基于所述身份证明电路、所述归属证明电路和所述属性证明电路,生成所述零知识证明。
3.根据权利要求2所述的匿名证明方法,其特征在于,所述身份匿名数据包括公钥,所述私有数据包括所述公钥对应的私钥,所述身份证明电路内的执行步骤如下:
利用所述公钥对电子签名进行验证,确定所述电子签名的输出结果,所述电子签名是基于所述私钥生成的,所述输出结果表征所述电子签名的验证通过。
4.根据权利要求2所述的匿名证明方法,其特征在于,所述基于所述身份证明电路、所述归属证明电路和所述属性证明电路,生成所述零知识证明,包括:
基于所述身份证明电路、所述归属证明电路和所述属性证明电路,生成多项式约束条件;
基于所述身份证明电路、所述归属证明电路和所述属性证明电路,生成复制约束条件,所述复制约束条件用于证明所述身份证明电路中使用的所述目标用户提供的身份匿名数据与所述归属证明电路中使用的所述目标密文数据对应的身份匿名数据一致、以及所述归属证明电路中使用的所述目标密文数据对应的金融数据和所述属性证明电路中使用的所述金融数据一致;
将所述多项式约束条件和所述复制约束条件转化成所述零知识证明。
5.根据权利要求4所述的匿名证明方法,其特征在于,所述多项式约束条件和所述复制约束条件中包含相同的多个私有多项式,所述方法还包括:
生成所述多个私有多项式各自对应的多项式承诺;
将所述多个私有多项式各自对应的多项式承诺发送至所述第三方机构端,以便所述第三方机构端基于所述多个私有多项式各自对应的多项式承诺,对所述零知识证明进行验证。
6.一种匿名验证方法,其特征在于,应用于第三方机构端,所述第三方机构端存储有目标用户的金融数据、所述目标用户的身份匿名数据和密文数据,所述密文数据是基于所述身份匿名数据和所述金融数据生成的,所述身份匿名数据和所述密文数据均为公有数据;
所述方法包括:
接收所述目标用户所在的用户端发送的零知识证明,所述零知识证明是基于所述目标用户提供的身份匿名数据对应的私有数据、所述金融数据和目标密文数据生成的,所述目标密文数据是基于所述目标用户提供的身份匿名数据和所述金融数据生成的,所述零知识证明用于证明所述目标用户在所述第三方机构端中存储的金融数据满足所述目标用户的金融业务请求对应的目标条件;
对所述零知识证明进行验证。
7.根据权利要求6所述的匿名验证方法,其特征在于,所述零知识证明由多项式约束条件和复制约束条件转化得到,所述多项式约束条件和所述复制约束条件中包含相同的多个私有多项式,所述多个私有多项式由所述目标用户想要证明的多个条件转化得到;
所述对所述零知识证明进行验证,包括:
确定随机数;
将所述随机数发送至所述用户端,以便所述用户端基于所述随机数,计算所述多个私有多项式各自对应的多项式值;
获取所述用户端发送的所述多个私有多项式各自对应的多项式值;
基于所述多个私有多项式各自对应的多项式值,对所述零知识证明进行验证。
8.根据权利要求7所述的匿名验证方法,其特征在于,所述基于所述多个私有多项式各自对应的多项式值,对所述零知识证明进行验证,包括:
获取所述用户端发送的所述多个私有多项式各自对应的多项式承诺;
基于所述多个私有多项式各自对应的多项式值,对所述多个私有多项式各自对应的多项式承诺进行验证;
在所述多个私有多项式各自对应的多项式承诺通过验证的情况下,基于所述多个私有多项式各自对应的多项式值,检验所述多项式约束条件和所述复制约束条件在所述多个私有多项式各自对应的多项式值处是否成立,以便确定所述零知识证明是否通过验证。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至8任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于执行上述权利要求1至8任一项所述的方法。
CN202311228582.4A 2023-09-22 2023-09-22 匿名证明方法、匿名验证方法 Active CN116975937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311228582.4A CN116975937B (zh) 2023-09-22 2023-09-22 匿名证明方法、匿名验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311228582.4A CN116975937B (zh) 2023-09-22 2023-09-22 匿名证明方法、匿名验证方法

Publications (2)

Publication Number Publication Date
CN116975937A CN116975937A (zh) 2023-10-31
CN116975937B true CN116975937B (zh) 2023-11-28

Family

ID=88485353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311228582.4A Active CN116975937B (zh) 2023-09-22 2023-09-22 匿名证明方法、匿名验证方法

Country Status (1)

Country Link
CN (1) CN116975937B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450645A (zh) * 2018-11-29 2019-03-08 中国电子科技集团公司第三十研究所 一种基于零知识证明的可监管匿名认证方法
CN114615280A (zh) * 2022-03-24 2022-06-10 国网河南省电力公司电力科学研究院 基于匿名凭证的电力区块链隐私保护方法及系统
CN116502266A (zh) * 2023-04-24 2023-07-28 西安电子科技大学 基于同态加密的区块链可监管零知识证明的验证方法
CN116628652A (zh) * 2023-06-06 2023-08-22 平安银行股份有限公司 金融系统身份验证方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451519B2 (en) * 2019-11-25 2022-09-20 Electronics And Telecommunications Research Institute Anonymous credential authentication system and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450645A (zh) * 2018-11-29 2019-03-08 中国电子科技集团公司第三十研究所 一种基于零知识证明的可监管匿名认证方法
CN114615280A (zh) * 2022-03-24 2022-06-10 国网河南省电力公司电力科学研究院 基于匿名凭证的电力区块链隐私保护方法及系统
CN116502266A (zh) * 2023-04-24 2023-07-28 西安电子科技大学 基于同态加密的区块链可监管零知识证明的验证方法
CN116628652A (zh) * 2023-06-06 2023-08-22 平安银行股份有限公司 金融系统身份验证方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
零知识证明在区块链中的应用综述;宋英齐 等;广州大学学报(自然科学版);第21卷(第4期);全文 *

Also Published As

Publication number Publication date
CN116975937A (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
EP3685334B1 (en) Improving integrity of communications between blockchain networks and external data sources
CN109844783B (zh) 不可变的密码保护的分类账支持的数据库
WO2021169107A1 (zh) 一种网络身份保护方法、装置及电子设备和存储介质
TW201931275A (zh) 用於具有分散式共識之分散式系統中之契約資料之存取控制方法及其契約產生器及驗證伺服器
CN114586315A (zh) 去中心化的数据认证
EP4128692B1 (en) Service-to-service strong authentication
CN111131336B (zh) 多方授权场景下的资源访问方法、装置、设备及存储介质
CN115460019B (zh) 基于数字身份的目标应用提供方法和装置、设备和介质
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN115203749A (zh) 一种基于区块链的数据交易方法和系统
US20170054561A1 (en) Double authenitication system for electronically signed documents
CN112948789B (zh) 身份认证方法及装置、存储介质及电子设备
CN111079190A (zh) 区块链供应链交易隐藏动态监管系统及方法
KR102329221B1 (ko) 블록체인 기반 사용자 인증 방법
CN114514550A (zh) 将请求分区成区块链的交易
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
CN116975937B (zh) 匿名证明方法、匿名验证方法
CN116263834A (zh) 许可区块链的多发布者匿名证书
CN115242471A (zh) 信息传输方法、装置、电子设备及计算机可读存储介质
CN110943846B (zh) 基于环签名技术的异构身份联盟用户信誉值传递方法
CN114117388A (zh) 设备注册方法、设备注册装置、电子设备以及存储介质
CN116975936B (zh) 金融资质证明方法、金融资质验证方法
CN117454437B (zh) 交易处理方法、存储介质及电子设备
CN116896440B (zh) 基于区块链的声明数据的验证方法和装置、设备和介质
WO2024014017A1 (ja) メッセージ提示システム、提示用装置、及びメッセージ提示方法

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