CN111342962B - 一种验证密文消息范围的方法和系统 - Google Patents

一种验证密文消息范围的方法和系统 Download PDF

Info

Publication number
CN111342962B
CN111342962B CN202010252437.XA CN202010252437A CN111342962B CN 111342962 B CN111342962 B CN 111342962B CN 202010252437 A CN202010252437 A CN 202010252437A CN 111342962 B CN111342962 B CN 111342962B
Authority
CN
China
Prior art keywords
interference
message
commitment
factor
ciphertext
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
CN202010252437.XA
Other languages
English (en)
Other versions
CN111342962A (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010252437.XA priority Critical patent/CN111342962B/zh
Publication of CN111342962A publication Critical patent/CN111342962A/zh
Application granted granted Critical
Publication of CN111342962B publication Critical patent/CN111342962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • H04L9/0822Key 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) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs

Abstract

本说明书实施例公开了一种验证密文消息范围的方法及系统。该方法包括获取密文消息;获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;以及至少基于所述获取的消息、承诺和值验证所述待验证消息是否属于待验证范围。验证方采用零知识证明的方式对密文消息的范围进行验证,验证过程中验证方不会知晓任何待验证消息具体数值,进而保护了各方隐私。

Description

一种验证密文消息范围的方法和系统
技术领域
本说明书涉及信息安全领域,特别涉及一种验证密文消息范围的方法和系统。
背景技术
零知识证明(Zero-Knowledge Proof)指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
密文消息范围的验证属于零知识证明,其中证明方在不向验证方披露待验证消息的基础上,验证方证明并使其相信其拥有在某一区间内的值。
发明内容
本说明书实施例之一提供一种验证密文消息范围的方法。所述验证密文消息范围的方法由验证方执行以验证消息范围,包括:获取密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;至少基于所述获取的消息、承诺和值验证所述待验证消息是否属于待验证范围。
本说明书实施例之一提供一种验证密文消息范围的系统,包括:第一密文获取模块,用于获取密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由公钥加密得到,所述第二密文由待验证消息通过所述加密得到;消息承诺获取模块,用于获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;干扰值获取模块,用于获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;验证模块,至少基于所述获取的消息、承诺和值验证所述待验证消息是否属于待验证范围。
本说明书实施例之一提供一种验证密文消息范围的装置,包括处理器及存储介质,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现上述的验证密文消息范围的方法。
本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行验证密文消息范围的方法。
本说明书实施例之一提供一种验证密文消息范围的方法,该方法由证明方执行以便于验证方验证消息范围,包括:生成密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;;生成对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;生成对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;向所述验证方发送所述承诺和值,以便验证方验证。
本说明书实施例之一提供一种验证密文消息范围的系统,包括:第二密文获取模块,用于生成密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;消息承诺生成模块,用于生成对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;干扰值生成模块,用于生成对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;发送模块,用于向所述验证方发送所述承诺和值,以便验证方验证。
本说明书实施例之一提供一种验证密文消息范围的装置,包括处理器及存储介质,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现上述的验证密文消息范围的方法。
本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行验证密文消息范围的方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,
其中:
图1是根据本说明书一些实施例所示的验证密文消息范围的系统的应用场景示意图;
图2是根据本说明书一些实施例所示的验证密文消息范围的流程示意图;
图3是根据本说明书一些实施例所示的验证方对待验证消息的验证流程示意图;
图4是根据本说明书一些实施例所示的扰动系数的承诺的计算流程示意图;
图5是根据本说明书一些实施例所示的第一干扰值和第二干扰值的计算流程示意图;
图6是根据本说明书一些实施例所示的证明方侧的示例性系统框图;
图7是根据本说明书一些实施例所示的验证方侧的示例性系统框图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书的一个或多个实施例可以用于基于互联网的各种验证场景。例如,转账汇款服务、借贷服务、认证服务、区块链等,在一些实施例中,进行密文消息范围的验证包括证明方和验证方,证明方要提供包含数值信息的密文,验证方在不显露数值信息的情况下,对密文消息的范围进行验证。在一些实施例中,采用转账作为示例,汇款方作为证明方向作为验证方的收款方进行转账,证明方基于公钥对金额进行加密,并基于加密后的交易金额得到证据传输给验证方。作为收款方的验证方在不显露证明方账户余额以及交易金额的前提下,验证交易金额大于0、证明方账户余额大于等于交易金额以及交易金额小于某个上限。在一些实施例中,证明方不一定是作为汇款方,其可以获取基于交易金额和账户余额的密文,并基于范围做验证,供验证方进行验证证明。
图1是根据本说明书一些实施例所示的验证密文消息范围的系统的应用场景示意图;
如图1所示,在一些实施例中,验证密文消息范围的系统100可以包括参与方110和网络120,其中,参与方的数量为多个。在一些实施例中,验证密文消息范围的系统100还能够参与到区块链网络130。在一些实施例中,参与方110包括第一参与方110-a和第二参与方110-b,其可以作为区块链网络130的第一节点和第二节点。第一参与方110-a和第二参与方110-b任意一方可以作为证明方或验证方。
在一些实施例中,参与方110可以是单个服务器,也可以是服务器组。所述服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,参与方110-a可以经由网络120发送或获取其他参与方110-b的断言。在一些实施例中,参与方110可以在一个云平台上实现。仅仅举个例子,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、云之间、多重云等,或其任意组合。
节点是例如支持区块链网络并保持其平稳运行的计算设备或大型计算机系统。有两种类型的节点,全量节点和轻量节点。全量节点保存区块链的完整副本。区块链网络上的全量节点验证它们接收的交易和区块,并将这些交易和区块中继到连接的对等点,以提供交易的共识验证。另一方面,轻量节点仅下载区块链的一小部分。例如,轻量节点用于数字货币交易。当轻量节点想要进行交易时,轻量节点将与全量节点通信。
在一些实施例中,参与方110可以包含一个或多个子处理设备(如:单核处理器或多核处理器)。仅仅作为范例,参与方110可包含中央处理器(CPU)、专用集成电路(ASIC)、专用指令处理器(ASIP)、图形处理器(GPU)、物理处理器(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编辑逻辑电路(PLD)、控制器、微控制器单元、精简指令集电脑(RISC)、微处理器等或以上任意组合。
在一些实施例中,网络120连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以是有线网络或无线网络中的任意一种或多种。例如,网络120可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
在一些实施例中,参与方之间交易的主题可以包括例如金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券、权益或可以以数字形式描述的任何其他资产。采用数字形式的m作为待验证消息,假设第一参与方110-a为证明方,第二参与方110-b为验证方。继续以转账交易作为示例,待验证消息m为交易金额,证明方基于待验证消息m生成证据并发送给验证方,验证方基于证据进行验证。如果消息范围的验证满足若干条件,则认为交易金额在某一合法范围,即此次交易金额大于等于0、且交易金额小于等于转账方账户余额,但验证方不会知晓此次交易的金额。
在一些交易中,例如,在跨境汇款中或在供应链中,交易金额具有极高级别的隐私保护值,这是因为使用交易金额信息可以推断交易方的特定位置和身份。因此需要避免相关方获得交易金额的信息。
在一些应用中,为了保护隐私,采用Pedersen承诺(C(m)=gmhr)对消息m进行承诺,其中,g和h为两方达成共识的离散对数关系未知的两个生成元,证明方将证据发送验证方,验证方基于bulletproofs协议进行验证,当验证证据合法即完成交易。
根据Pedersen承诺的性质,每个消息m会对应一个随机数r,在一些实施例中,当涉及多笔交易时,存在多个消息m,相应的会需要同时传输多个随机数r,使得交易过程复杂化且本地管理也是复杂的。此外,在区块链应用中,UTXO(未被花费的交易输出)模型和账户/余额模型是用于实现区块链交易的两个示例性模型。UTXO是区块链对象模型。根据UTXO,资产由尚未被花费的区块链交易的输出表示,所述输出可以用作新交易中的输入。比特币是使用UTXO模型的数字货币的示例。在有效的区块链交易的情况下,未被花费的输出可用于实现进一步的交易。在一些实施例中,当节点需要利用该未被花费的交易输出进行交易时,由于其并不是该笔未被花费的交易输出的生成方,故该节点还需要对该笔未被花费的交易输出对应的随机数r进行保存和维护,当在区块链网络上存在大量该未被花费的交易输出时,需要维护大量的随机数r以避免丢失或损坏,同时,交易还可能会产生新的随机数r,账户余额频繁变化,多节点备份储存难以实现,进而导致业务友好度降低。
在一些实施例中,进行密文消息范围的验证的证明方是持有私钥的,而验证方能够获取与该私钥对应的公钥,针对上述方案存在的限制,提出采用私钥代替随机数r的方法和系统。
图2是根据本说明书一些实施例所示的验证密文消息范围的流程示意图。
证明方和验证方之间基于协议可以承诺信息m,其可以是交易金额、资产价值、关键参数等,为了便于描述,下文证明方和验证方继续沿用转账场景进行说明。
在本说明书中,对于一些公式表示约定如下:
yn表示由y生成的n元向量:[y0,y1,y2,...,y(n-1)]。
运算符ο的定义为:pοq=[p1,p2,p3]ο[q1,q2,q3]=[p1q1,p2q2,p3q3]。
内积由运算符<>表示:<p,q>=<[p1,p2,p3],[q1,q2,q3]>。
步骤210,证明方获取获取密文消息,所述密文消息包括第一密文和第二密文。在一些实施例中,步骤210可以由第二密文获取模块610执行。
在一些实施例中,证明方获取待验证消息m、待验证范围并且拥有仅证明方自己知晓的私钥sk。在一些实施例中,待验证范围是待验证消息m的数值范围,以[0,2n)的形式可以公开获取。证明方基于私钥sk能够通过公式计算得到公钥pk。在一些实施例中,可以利用以下公式,通过私钥sk计算出公钥pk:
pk=hsk (1)
在公式(1)中,私钥sk的底数h为两方共识的生成元,其具体获取步骤在前文中已经说明,在此不再赘述。
在一些实施例中,证明方由公钥pk基于第一加密算法得到第一密文,由待验证消息基于第一加密算法得到第二密文。在一些实施例中,第一加密算法为Twisted El-Gamal算法,其为传统Lifted El-Gamal加密方案的变种。与传统Lifted El-Gamal加密方案相同,采用了g和h为证明方与验证方达成共识的离散对数关系未知的两个生成元,但TwistedEl-Gamal算法在密文中指数部分进行了一定调整。Twisted El-Gamal算法的加密方案可以表示为:E(m)=(pkr,gmhr)。
在一些实施例中,采用(E1,E2)的方式分别表示第一密文和第二密文。在一些实施例中,可以存在多个待验证消息m,为了便于描述,以两个待验证消息m1和m2进行表示,即为m1的密文消息表示为:
Figure GDA0002662145910000061
m2的密文消息表示为:
Figure GDA0002662145910000062
在一些实施例中,由于公钥是公开能够获取的,密文消息可以由交易生成方计算得到,此时证明方可以直接向第三方处获取该密文消息。
在一些实施例中,待验证范围同样是公开能够获取的。待验证范围为[0,2n),如n=5时,待验证范围为0~32。如果待验证范围上限不是2n的形式,可以通过映射等常用方式进行转换,将待验证范围转换为2n的形式。
步骤220,证明方生成对待验证消息的承诺以及所述待验证消息的干扰值。在一些实施例中,步骤220可以由消息承诺生成模块720执行。
在一些实施例中,证明方基于验证密文消息范围的协议,生成若干承诺。承诺的特性是生成方将一个信息承诺起来后,被承诺的信息就不会承诺的生成方篡改,日后只要承诺生成方公开被承诺的消息,任何人都可以验证该消息就是当初被承诺的消息,承诺的接受者由于承诺中存在随机数干扰,从而不能够逆推出被承诺的信息。但承诺的接受者可以通过交叉验证的方式,防止承诺的生成者对信息的内容进行篡改。
在本实施例中,证明方生成与待验证消息相关的信息包括对待验证消息的承诺以及待验证消息的干扰值。待验证消息的承诺在后文中采用A表示,在一些实施例中,可以利用以下公式计算得到:
Figure GDA0002662145910000071
其中,α是由共识的大素数p组成的循环群Zp上随机选取的。
aL是m1和m2基于所述待验证范围的二进制表示,其形式为m1和m2的二进制的字符串拼接起来得到。
仅作为示例,如果要判断的范围为[0,23),则每笔汇款转换后的长度要统一为3;
汇款m1=2,转换为二进制位10,统一后为010;
汇款m2=4,转换为二进制位100,统一后为100;
则aL=010100。
对于该二进制表示,可以进行各种等价的变换,对本方案没有实质的影响,在本说明书中不再详述。
在一些实施例中,公式(2)中aR可以由以下公式,通过aL计算得到:
aR=aL-1n (3)
其中,由n表示aL的长度,1n表示由n个1组成的数列。在一些实施例中,如果有多个待验证消息,如待验证消息个数为i个,则aL的长度为in。
在公式(3)中,仅作为示例,aL=010100,n=6,1n=111111,由(3)可以计算得到aR=101011。换言之,待验证范围的二进制表示中0变成1,1变成0。
公式(2)中向量
Figure GDA0002662145910000072
Figure GDA0002662145910000073
的长度与aL长度n一致,向量
Figure GDA0002662145910000074
Figure GDA0002662145910000075
分别由前文中提到的两方达成共识的离散对数关系未知的独立的生成元,同g和h。在一些实施例中,如aL=010100长度为6,则向量
Figure GDA0002662145910000081
由6个生成元组成,以g为例,其形式为(g1,g2,g3,g4,g5,g6),相应的
Figure GDA0002662145910000082
为(h1,h2,h3,h4,h5,h6)。
公式(2)中,向量
Figure GDA0002662145910000083
幂计算过程即
Figure GDA0002662145910000084
与aL
Figure GDA0002662145910000085
与aR对位做幂计算,显然幂计算得到的依旧是向量,
Figure GDA0002662145910000086
Figure GDA0002662145910000087
进行幂计算后相乘。仅作为示例,aL=011,对aL每一位分别取值,可以得到a1=0,a2=1,a3=1,同时可以计算得到aR=100,同样方式对每一位取值,得到b1,b2,b3,代入公式(2)得到待验证消息的承诺
Figure GDA0002662145910000088
Figure GDA0002662145910000089
在一些实施例中,g和h选取自椭圆曲线循环群
Figure GDA00026621459100000810
故公式(2)中待验证消息的承诺A也属于循环群
Figure GDA00026621459100000811
在一些实施例中,可以生成第一随机因子x、第二随机因子z、第三随机因子y和私钥随机因子c。随机因子是双方共同知晓的值,证明方不能控制其取值。随机因子可以由验证方在共识循环群中随机选取或证明方通过特定共识方法计算获得,在后文统一说明。
在一些实施例中,待验证消息的干扰值包括若干所述第一密文为底数的幂相乘得到。在一些实施例中,待验证消息的干扰值可以由以下公式计算:
Figure GDA00026621459100000812
公式(4)中m为待验证消息的个数,η为证明方取自公式循环群的第一随机数,在一些实施例中,第一随机数η可以取自大素数循环群Zp。E11为前文中m1的密文消息中第一密文,在此不再赘述。
由于使用了随机数η,因此F是一个干扰值,验证方无法从该值获取原始信息。
仅作为示例,当待验证消息个数为2个时,
Figure GDA00026621459100000813
步骤230,证明方生成对第一干扰因子的承诺、对扰动多项式的扰动系数的承诺、聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值。在一些实施例中,步骤230可以由干扰值生成730模块执行。
在一些实施例中,根据验证密文消息范围的需要,还同时生成部分与待验证消息不直接相关的承诺。
证明方生成对第一干扰因子的承诺。在一些实施例中,第一干扰因子中包括第一随机数η。第一干扰因子的承诺包括对η基于公钥pk的承诺D,在一些实施例中,可以表示为:
D=pkη (5)
在一些实施例中,第一干扰因子还包括证明方生成的与第一随机数η同样选自共识循环群中的第二随机数λ,相应的,对第一干扰因子的承诺还包括第二随机数λ基于生成元h的承诺K,可以表示为:K=hλ
第一干扰因子的承诺还包括对干扰向量的承诺S,在一些实施例中,可以用以下公式表示:
Figure GDA0002662145910000091
在公式(6)中,在一些实施例中,ρ与公式(2)中的α类似,可以是由共识的大素数p组成的循环群Zp上随机选取的。式中sL、sR为基于第一干扰因子中的干扰向量,可以根据aL和aR的长度,从循环群中随机选取多个数构成。仅作为示例,如aL的长度n为5位,则在Zp中随机选取5个数构成sL
公式(6)中承诺S的计算过程与公式(2)类似,在此不再赘述。
在一些实施例中,证明方计算扰动多项式的系数t1和t2并生成扰动多项式的系数t1和t2的承诺T1和T2,在一些实施例中,可以用以下公式表示:
Figure GDA0002662145910000092
Figure GDA0002662145910000093
公式(7)和(8)中的τ1、τ2为循环群Zp中随机选取获得,扰动多项式的系数t1和t2通过计算得到,其计算过程在图4中进行详细说明。对扰动多项式的系数的承诺与待验证消息的数量无关,只有T1和T2两个。
在一些实施例中,基于从循环群Zp中选取的随机数τ1、τ2,证明方还生成第一随机因子的二阶干扰值τx。在一些实施例中,可以由以下公式表示:
τx=τ2·x21·x+λ (9)
公式(9)中x为中获取的第一随机因子,λ为前文中获取的第二随机数。
第一随机因子x、第二随机因子z、第三随机因子y以及私钥随机因子c具有多种生成方式,根据验证密文消息范围的协议交互与非交互式选择不同方式生成。
在一些实施例中,在交互式协议中,第一随机因子x、第二随机因子z、第三随机因子y以及私钥随机因子c由验证方在与证明方达成共识的循环群中选取。
在一些实施例中,在非交互式的协议中,第一随机因子x、第二随机因子z、第三随机因子y以及私钥随机因子c可以由证明方生成,但为了保证证明方对生成的随机因子不可控,故采用证明方利用哈希算法计算已知值的方式,取哈希值,同时选定的哈希算法向验证方公开。
例如,证明方和验证方通过Fiat-Shamir转换实现非交互式的协议。仅作为示例,在Fiat-Shamir转换中用statement表示(g,h,E1,E2,...,Em,pk),那么,在一些实施例中,取
y=Hash(statement,A,S,D,K);
z=Hash(y);或z=Hash(statement,A,S,D,K,y)
x=Hash(z,T1,T2,F);或x=Hash(statement,A,S,,D,K,y,z,T1,T2,F)
c=Hash(x);或c=Hash(statement,A,S,D,K,y,z,T1,T2,F,x)
在一些实施例中,上述哈希算法包括但不限于有SHA3、SHA256或SHA512中的任意一种。以SHA256为例,意味着证明方无论输入的原始内容是什么,最终都计算出一个256bit长的哈希值,称作消息摘要。并且只要原始内容不同,就可以保证相应的哈希值是唯一的,如“SHA256是密码学安全的哈希函数”的哈希值是bfb1ee162340fa9d707d5a39e2858175722e9f5c69c8e0a28ee0a38e6c006d00,该哈希算法是不可逆的,即正向计算是容易的,而即使耗尽所有计算资源,也无法实现逆向计算,故以此保证证明方无法通过哈希算法构造欺诈第一随机因子x、第二随机因子z、第三随机因子y以及私钥随机因子c。
在一些实施例中,为了利用私钥替代Pedersen承诺中需要链下传输的随机数r,证明方还基于私钥计算私钥干扰值,在一些实施例中,私钥干扰值φ可以由以下公式计算;
φ=η+c·sk-1 (10)
公式(10)中,在一些实施例中,c为前文中获取的私钥随机因子,η为前文中的第一随机数。sk-1为私钥sk在大素数循环群Zp中的逆元,即sk-1与sk相乘等于单位元。
步骤230中,还生成第一干扰值和第二干扰值。
在一些实施例中,聚合因子干扰值μ用于体现上文中获取的α和ρ,在一些实施例中,可以利用一下公式表示:
μ=α+ρ·x (11)
公式(11)中x为第一随机因子。
在一些实施例中,第一干扰值L和第二干扰值R由第一随机因子x代入相应的干扰式中得到,具体的生成方法在图5中进行说明。
步骤240,证明方向所述验证方发送生成承诺和值,以便验证方验证。在一些实施例中,步骤240可以由发送模块640执行。
在一些实施例中,验证方通过前文中生成的对密文消息的承诺A、对公钥的承诺D、对第二随机数的承诺K、对干扰向量的承诺S、对扰动多项式的扰动系数的承诺T1和T2、待验证消息的干扰值F、私钥干扰值φ、第一随机因子的二阶干扰值τx、聚合因子干扰值μ、第一干扰值L、第二干扰值R以及第一干扰值L和第二干扰值R的内积t,以便验证方进行验证。
在一些实施例中,上述消息、承诺和值可以一同发送,也可以是分组或单独发送,如将对密文消息的承诺A、对公钥的承诺D、对第二随机数的承诺K和对干扰向量的承诺S一同发送,对扰动多项式的扰动系数的承诺T1和T2和待验证消息的干扰值F一同发送,私钥干扰值φ、第一随机因子的二阶干扰值τx、聚合因子干扰值μ、第一干扰值L和第二干扰值R以及第一干扰值L和第二干扰值R的内积t一同发送至验证方。
在一些实施例中,密文消息可以由证明方在进行密文消息范围的验证前发送给验证方或与上述消息、承诺和值一同发送。
在一些实施例中,由于采用Twisted ElGamal算法进行加密,并针对性地设计了验证密文消息范围的协议,使得能够利用同态性对多个待验证消息m进行密文消息范围的验证,其相对于一些实施例中采用原始的lifted ElGamal加密算法,证明尺寸由原来的k[(2lg(|m|)+4)|G|+5|Z|]缩小为[2lg(k|m|)+7]|G|+6|Z|,即包括512个64比特消息证明尺寸仅约1.38KB,式中k为密文个数、|m|为明文比特数、|G|为椭圆曲线上点的尺寸、|Z|为数域上随机数尺寸。可以看到,在一些实施例中,证明尺寸得到对数级别的减小,证明尺寸减小减轻了网络传输压力,并且大大加快了传输和计算耗费的时间,在对多个待验证消息进行传输时,该优势更加明显。
步骤250,验证方获取密文消息。在一些实施例中,步骤250可以由第一密文获取模块710执行。
密文消息是在交易发生时产生,其不属于密文消息范围的验证生成的元素。在一些实施例中,验证方可以在进行密文消息范围的验证前由证明方处获取或在步骤240中与消息、承诺和值一同获取。在一些实施例中,证明方不属于交易生成方时,验证方还可以由其他途径获取该密文消息。
在一些实施例中,验证方还获取公钥pk以及待验证范围。与证明方私钥sk对应的公钥pk可以视为公开,能够直接获取的。
步骤270,验证方至少基于所述获取的消息、承诺和值验证所述待证消息是否属于待验证范围。在一些实施例中,步骤270可以由验证模块740进行。
验证的具体过程可参见图3的详细说明。
图3是根据本说明书一些实施例所示的验证方对待验证消息的验证流程示意图。
如图3所示,在一些实施例中,验证方基于获取到的公钥pk、密文消息、待验证范围、对密文消息的承诺A、对公钥的承诺D、对第二随机数的承诺K、对干扰向量的承诺S、对扰动多项式的扰动系数的承诺T1和T2、待验证消息的干扰值F、私钥干扰值φ、第一随机因子的二阶干扰值τx、聚合因子干扰值μ、第一干扰值L、第二干扰值R以及第一干扰值L和第二干扰值R的内积t,进行如下验证:
第一验证,验证方验证公钥与私钥的配对性。
在一些实施例中,首先需要验证公钥pk与私钥sk的配对性,而私钥sk仅证明方持有。在一些实施例中,验证方验证以下验证式是否成立:
pkφ==D·hc (12)
式(12)使用了由验证方处获取的对公钥的承诺D、私钥干扰值φ,并且私钥随机因子c是证明方和验证方都知道的数值,参见前文中公式(1)、公式(5)和公式(10)。当验证式(12)两端相等时,即验证公钥与私钥配对。当验证式两端不相等时,即可认为证明失败。
第二验证,验证所述扰动多项式。
验证方还需要对扰动多项式进行验证,为了便于验证,首先构造Y并对Y进行赋值,在一些实施例中,可以采用以下公式:
Figure GDA0002662145910000121
式(13)中m为待验证消息的个数,在一些实施例中,由加密方案E(m)=(pkr,gmhr)以及关于待验证消息的干扰值F的公式(4),可以看出,在一些实施例中,利用公式(13)和私钥干扰值φ,采用相除的方式,将随机数r约去,从而验证方在验证过程中无需知晓r,即可进行验证。
验证方在一些实施例中,验证以下验证式是否成立:
Figure GDA0002662145910000122
在一些实施例中,基于生成元g和h、第二随机因子、对扰动多项式的扰动系数的承诺T1和T2以及第一随机因子的二阶干扰值τx,进行验证。可以认为,利用公式(14)对扰动多项式基于t(x)=t0+t1·x+t2·x2进行验证,式中t0能够计算得到,同时提供了扰动多项式的扰动系数t1和t2的承诺T1和T2,由此验证方可以计算出t(x)并验证与证明方提供的t是否相等。与验证式(12)类似,在一些实施例中,当验证式(14)两端相等时,即密文验证通过。当验证式两端不相等时,即可认为密文消息范围的验证失败。
第三验证,验证所述第一干扰值和所述第二干扰值。
在一些实施例中,验证方需要对第一干扰值和所述第二干扰值进行验证。验证方首先构造h′i,并且对h′i进行赋值:
Figure GDA0002662145910000131
公式(15)中,m为待验证消息的个数,即利用上述公式(15)对每一个密文构造出一个h′i,在下文中,用hL表示针对单个待验证消息生成的h′i。在一些实施例中,对待验证消息范围验证构造的验证式为:
Figure GDA0002662145910000132
其中μ为由证明方生成的聚合因子干扰值,L为证明方计算得到的第一干扰值,R为证明方计算得到的第二干扰值。x、y和z分别为第一随机因子、第二随机因子和第三随机因子。
与验证式(12)类似,在一些实施例中,当验证式(16)两端相等时,即密文验证通过。当验证式两端不相等时,即可认为密文消息范围的验证失败。
第四验证,验证所述扰动多项式的结果是否与第一干扰值和第二干扰值的内积相等。
在一些实施例中,验证第一干扰值L和第二干扰值R的内积与证明方传输的t相等,在一些实施例中,验证方验证以下验证式是否成立:
t==<L,R> (17)
式(17)其本质上是为了验证证明方发送的第一干扰值L和第二干扰值R是否与内积t匹配,由于在第二验证和第三验证中分别验证了第一干扰值L、第二干扰值R以及第一干扰值L和第二干扰值R的内积t的正确,在第四验证中,验证证明方发送的t等于验证方发送的第一干扰值L和第二干扰值的内积,即验证通过。当验证式两端不相等时,即可认为密文消息范围的验证失败。
在一些实施例中,第四验证可以使用本领域成熟的内积向量证明(Inner ProductArgument)协议实现。
在一些实施例中,上述验证式(12)、验证式(14)、验证式(16)和验证式(17)均通过时,即完成对待验证消息范围的验证,而任何一个验证式验证失败,即密文消息范围的验证失败。
在一些实施例中,验证式(12)、验证式(14)、验证式(16)和验证式(17)可以是同时进行的,即当多个待验证消息验证失败时,是无法得知哪一个待验证消息是有误的。
图4是根据本说明书一些实施例所示的扰动系数的承诺的计算流程示意图。
如图4所示,参见步骤230,证明方生成对扰动多项式的扰动系数,包括:
步骤232,证明方以待验证值为第二随机因子的多项式系数,以第二随机因子和第三随机因子的函数为多项式的常数,构造验证多项式。
第二随机因子z和第三随机因子y的获取可参见前文的说明。
在一些实施例中,需要构造的验证多项式的一种形式为:
zi+1·<aL,0(i-1)n||2n>+…+z3·<aL,0n||2n||0(i-2)n>+z2·<aL,2n||0(i-1)n>+z·<aL-1in-aR,yin>+<aLοaR,yin> (18)
公式(18)中,i为待验证消息的个数,n为待验证消息空间的比特数,即表示待验证消息属于[0,2n)的范围。
在一些实施例中,可以由(18)得到等价的变形得到最终的验证多项式:
Figure GDA0002662145910000141
在公式(19)中vi表示第i个待验证消息的值,该多项式是第二随机因子z的多项式,以待验证值为该多项式的系数,以第二随机因子和第三随机因子的函数δ(y,z)为多项式的常数。
在一些实施例中,式(19)中δ(y,z)在一些实施例中,可以表示为:
Figure GDA0002662145910000149
步骤234,证明方将所述验证多项式(19)等号左边部分分解为第一分解式和第二分解式;基于验证多项式(20),其形式为一个内积的结果,将内积计算的两部分进行分解,分解得到第一分解式
Figure GDA0002662145910000142
可以表示为:
Figure GDA0002662145910000143
以及第二分解式
Figure GDA0002662145910000144
可以表示为:
Figure GDA0002662145910000145
步骤236,证明方基于所述第一干扰因子和所述第一分解式构造第一干扰式;基于所述第一干扰因子和所述第二分解式构造第二干扰式;
将已经获得的第一分解式
Figure GDA0002662145910000146
以及第二分解式
Figure GDA0002662145910000147
中加入第一干扰因子。在一些实施例中,基于第一干扰因子中的干扰向量sL和第一分解式
Figure GDA0002662145910000148
构造第一干扰式L(w),表示为:
L(w)=(aL-z·1in)+sL·w (23)
基于基于第一干扰因子中的干扰向量sR和第二分解式
Figure GDA0002662145910000151
构造第二干扰式R(w),表示为:
Figure GDA0002662145910000152
式(23)和式(24)中w为未知数,在一些实施例中,可以对w进行赋值,从而对式(23)和式(24)进行计算。
步骤238,证明方基于所述第一干扰式和所述第二干扰式进行内积计算得到所述扰动多项式。
在一些实施例中,第一干扰式L(x)和第二干扰式R(x)为长度为n的向量,在一些实施例中,如果有多个待验证消息,如待验证消息个数为i个,则第一干扰式L(x)和第二干扰式R(x)的长度为in。基于第一干扰式L(x)和第二干扰式R(x)进行内积计算得到扰动多项式,表示为:
t(x)=<L(w),R(w)>=t0+t1·w+t2·w2 (25)
通过式(25),得到步骤230中扰动多项式中未知数w的系数t1和t2,即步骤230所述的扰动多项式的系数t1和t2
图5是根据本说明书一些实施例所示的第一干扰值和第二干扰值的计算流程示意图。
如图5所示,参见步骤230,在一些实施例中,第一干扰值L基于第一干扰式L(x)以第一随机因子x为参数计算得到,即将式(23)中未知数w赋值为第一随机因子x,计算得到第一干扰值L,在一些实施例中,赋值后的第一干扰值L计算的公式为:
L(x)=(aL-z·1in)+sL·x (26)
在一些实施例中,第二干扰值R计算方式与第一干扰值L计算方式相同,将式(24)中未知数赋w值为第一随机因子x,通过第二干扰式R(x)计算得到第二干扰值R。
在一些实施例中,第一干扰值L和第二干扰值R连同第一干扰值L和第二干扰值R的内积t一同发送验证方。在一些实施例中,对未知数w赋值为第一随机因子x后利用式(25)计算第一干扰值L和第二干扰值R的内积,得到t。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对上述流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图6根据本说明书一些实施例所示的证明方侧的示例性系统框图;
如图6所示,该验证密文消息范围的系统可以包括第二密文获取模块610、消息承诺生成模块620、干扰值生成模块630以及发送模块640。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
第二密文获取模块610可以用于生成密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由公钥加密得到,所述第二密文由待验证消息通过所述加密得到;
关于证明方获取的密文消息的特征信息的更多描述可以在本说明书的其他地方(如步骤210及其相关描述中)找到,在此不作赘述。
消息承诺生成模块620可以用于生成对待验证消息的承诺以及所述待验证消息的干扰值;所述干扰值与所述第一密文相关;
关于对待验证消息的承诺以及所述待验证消息的干扰值的特征信息的更多描述可以在本说明书的其他地方(如步骤220及其相关描述中)找到,在此不作赘述。
干扰值生成模块630可以用于生成对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;
关于成对第一干扰因子的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值的特征信息的更多描述可以在本说明书的其他地方(如步骤230及其相关描述中)找到,在此不作赘述。
发送模块640可以用于向所述验证方发送所述承诺和值,以便验证方验证。
图7是根据本说明书一些实施例所示的验证方侧的示例性系统框图。
如图7所示,该验证密文消息范围的系统可以包括第一密文获取模块710、消息承诺获取模块720、干扰值获取模块730以及验证模块740。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
第一密文获取模块710可以用于获取密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由公钥加密得到,所述第二密文由待验证消息通过所述加密得到;
关于验证方获取的密文消息的特征信息的更多描述可以在本说明书的其他地方(如步骤250及其相关描述中)找到,在此不作赘述。
消息承诺获取模块720可以用于获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;所述干扰值与所述第一密文相关;
干扰值获取模块730可以用于获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数基于所述公钥的承诺;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;
验证模块730可以至少基于所述获取的消息、承诺和值验证所述待验证消息是否属于待验证范围。
关于验证方至少基于所述获取的消息、承诺和值验证所述待验证消息是否属于待验证范围的更多描述可以在本说明书的其他地方(如步骤270及其相关描述中)找到,在此不作赘述。
应当理解,图6和图7所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,装置及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行装置,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和装置可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的装置及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
在一些实施例中,验证方和证明方为实体对象,待验证消息为金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种。其中数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种以数字化的形式表示,如用户的详细资料包括身份号、血型等,验证方和证明方可以都为用户,也可是是机构亦或一方为用户另一方为机构,验证方接受证明方的一种或多种待验证消息进行验证从而进行转账、购买等操作。一般而言,参与上述验证的数据可以是任何需要进行保密的数据,本说明书不进行限制。
需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块执行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,例如,图6中的第二消息获取模块610和发送模块640以为同一个模块,第二消息获取模块610用于获取数据,并发送数据。又例如,图7中承诺获取模块720、干扰值获取模块730可以为同一个模块,即同一模块进行承诺即干扰值的获取工作。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变种,均在本说明书的保护范围之内。
在一些实施例中,采用Pedersen承诺当涉及多笔交易时,存在多个消息m,相应的会需要同时传输多个随机数r,使得交易过程复杂化且本地管理也是复杂的。而当节点需要利用该未被花费的交易输出进行交易时,由于其并不是该笔未被花费的交易输出的生成方,故该节点还需要对该笔未被花费的交易输出对应的随机数r进行保存和维护,当在区块链网络上存在大量该未被花费的交易输出时,需要维护大量的随机数r以避免丢失或损坏,同时,交易还可能会产生新的随机数r,账户余额频繁变化,多节点备份储存难以实现,进而导致业务友好度降低。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过第一干扰因子和私钥干扰值,将证明方的私钥代替常规方案中的随机数r,使得进行密文消息范围的验证时无需传输随机数从而免去针对不同密文管理和保存不同随机数,亦无需建立认证信道、链下交互传输随机数;同时利用单个私钥能够对多个待验证消息进行范围的验证,避免了系统内随交易增加产生大量随机数;(2)保证了密文的同态性,使得证明尺寸对数级别缩小,从而使传输和计算的压力大大减小。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变种也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (34)

1.一种验证密文消息范围的方法,该方法由验证方执行以验证消息范围,包括:
获取密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;所述第一加密算法为Twisted El-Gamal算法;
获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;所述待验证消息的干扰值与所述第一密文相关包括所述待验证消息的干扰值通过所述第一密文为底数的幂通过乘法运算得到;
获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数的承诺,所述第一随机数的承诺基于所述公钥得到;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、私钥干扰值、第一干扰值、第二干扰值以及所述第一干扰值和第二干扰值的内积;所述第一干扰因子至少包括以下中的一项:第一随机数,证明方生成的与第一随机数同样选自共识循环群中的第二随机数;所述聚合因子干扰值由第一随机因子所属的循环群上随机选取的数得到;所述第一干扰值基于第一干扰式计算得到;所述第二干扰值基于第二干扰式计算得到;所述第一干扰式和所述第二干扰式基于所述扰动多项式得到;
至少基于所述获取的消息、承诺和干扰值验证所述待验证消息是否属于待验证范围。
2.根据权利要求1所述的方法,所述至少基于所述获取的消息、承诺和干扰值验证所述待验证消息是否属于待验证范围包括:
第一验证,验证所述公钥与证明方的私钥的配对性;
第二验证,验证所述扰动多项式;
第三验证,验证所述第一干扰值和所述第二干扰值;
第四验证,验证所述扰动多项式的结果是否与第一干扰值和第二干扰值的内积相等。
3.根据权利要求1所述的方法,其中,
所述对第一干扰因子的承诺还包括对干扰向量的承诺以及对第二随机数的承诺,所述干扰向量可以从循环群Zp中随机选取多个数构成。
4.根据权利要求3所述的方法,所述对扰动多项式的扰动系数的承诺,其中,
所述扰动多项式的构造方法包括,
以待验证消息的值为第二随机因子的多项式系数,以第二随机因子和第三随机因子的函数为多项式的常数,得到验证多项式;
将所述验证多项式分解为第一分解式和第二分解式;
基于所述干扰向量和所述第一分解式构造第一干扰式;
基于所述干扰向量和所述第二分解式构造第二干扰式;
基于所述第一干扰式和所述第二干扰式进行内积计算得到所述扰动多项式。
5.根据权利要求4所述的方法,获取第一干扰值包括:
基于第一干扰式以所述第一随机因子为参数,计算得到第一干扰值;
获取第二干扰值包括,
基于第二干扰式以所述第一随机因子为参数,计算得到第二干扰值。
6.根据权利要求4所述的方法,其中:
所述第一随机因子、第二随机因子和第三随机因子由验证方基于随机数提供。
7.根据权利要求4所述的方法,其中:
所述第一随机因子、第二随机因子和第三随机因子由证明方通过哈希算法获得,所述哈希算法向所述验证方公开。
8.根据权利要求1所述的方法,其中:
所述验证方为实体对象,所述待验证消息为金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种。
9.一种验证密文消息范围的系统,包括:
第一密文获取模块,用于获取密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;所述第一加密算法为Twisted El-Gamal算法;
消息承诺获取模块,用于获取证明方对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;所述待验证消息的干扰值与所述第一密文相关包括所述待验证消息的干扰值通过所述第一密文为底数的幂通过乘法运算得到;
干扰值获取模块,用于获取证明方对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数的承诺,所述第一随机数的承诺基于所述公钥得到;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、私钥干扰值、第一干扰值、第二干扰值以及所述第一干扰值和第二干扰值的内积;所述第一干扰因子至少包括以下中的一项:第一随机数,证明方生成的与第一随机数同样选自共识循环群中的第二随机数;所述聚合因子干扰值由第一随机因子所属的循环群上随机选取的数得到;所述第一干扰值基于第一干扰式计算得到;所述第二干扰值基于第二干扰式计算得到;所述第一干扰式和所述第二干扰式基于所述扰动多项式得到;
验证模块,至少基于所述获取的消息、承诺和干扰值验证所述待验证消息是否属于待验证范围。
10.根据权利要求9所述的系统,所述至少基于所述获取的消息、承诺和干扰值验证所述待验证消息是否属于待验证范围包括:
第一验证,验证所述公钥与证明方的私钥的配对性;
第二验证,验证所述扰动多项式;
第三验证,验证所述第一干扰值和所述第二干扰值;
第四验证,验证所述扰动多项式的结果是否与第一干扰值和第二干扰值的内积相等。
11.根据权利要求9所述的系统,其中,
所述对第一干扰因子的承诺还包括对干扰向量的承诺以及对第二随机数的承诺;所述干扰向量可以从循环群Zp中随机选取多个数构成。
12.根据权利要求11所述的系统,
所述对扰动多项式的扰动系数的承诺,其中,
所述扰动多项式的构造方法包括,
以待验证消息的值为第二随机因子的多项式系数,以第二随机因子和第三随机子的函数为多项式的常数,得到验证多项式;
将所述验证多项式分解为第一分解式和第二分解式;
基于所述干扰向量和所述第一分解式构造第一干扰式;
基于所述干扰向量和所述第二分解式构造第二干扰式;
基于所述第一干扰式和所述第二干扰式进行内积计算得到所述扰动多项式。
13.根据权利要求12所述的系统,其中,
基于第一干扰式以所述第一随机因子为参数,计算得到第一干扰值;
获取第二干扰值包括,
基于第二干扰式以所述第一随机因子为参数,计算得到第二干扰值。
14.根据权利要求12所述的系统,其中,
所述第一随机因子、第二随机因子和第三随机因子由验证方基于随机数提供。
15.根据权利要求12所述的系统,其中,
所述第一随机因子、第二随机因子和第三随机因子由证明方通过哈希算法获得,所述哈希算法向所述验证方公开。
16.根据权利要求9所述的系统,其中,
所述验证方为实体对象,所述待验证消息为金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种。
17.一种验证密文消息范围的装置,包括处理器及存储介质,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现如权利要求1-8中任意一项所述的验证密文消息范围的方法。
18.一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述计算机指令被处理器执行后,能够实现如权利要求1-8中任意一项所述的验证密文消息范围的方法。
19.一种验证密文消息范围的方法,该方法由证明方执行以便于验证方验证消息范围,包括:
生成密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;所述第一加密算法为Twisted El-Gamal算法;
生成对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;所述待验证消息的干扰值与所述第一密文相关包括所述待验证消息的干扰值通过所述第一密文为底数的幂通过乘法运算得到;
生成对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数的承诺,所述第一随机数的承诺基于所述公钥得到;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;所述第一干扰因子至少包括以下中的一项:第一随机数,证明方生成的与第一随机数同样选自共识循环群中的第二随机数;所述聚合因子干扰值由第一随机因子所属的循环群上随机选取的数得到;所述第一干扰值基于第一干扰式计算得到;所述第二干扰值基于第二干扰式计算得到;所述第一干扰式和所述第二干扰式基于所述扰动多项式得到;
向所述验证方发送所述承诺和干扰值,以便验证方验证。
20.根据权利要求19所述的方法,其中,
所述对第一干扰因子的承诺还包括对干扰向量的承诺以及对第二随机数的承诺;所述干扰向量可以从循环群Zp中随机选取多个数构成。
21.根据权利要求20所述的方法,所述生成对扰动多项式的扰动系数的承诺,其中,
所述扰动多项式的构造方法包括,
以待验证消息的值为第二随机因子的多项式系数,以第二随机因子和第三随机因子的函数为多项式的常数,得到验证多项式;
将所述验证多项式分解为第一分解式和第二分解式;
基于所述干扰向量和所述第一分解式构造第一干扰式;
基于所述干扰向量和所述第二分解式构造第二干扰式;
基于所述第一干扰式和所述第二干扰式进行内积计算得到所述扰动多项式。
22.根据权利要求21所述的方法,其中,
基于第一干扰式以所述第一随机因子为参数,计算得到第一干扰值;
获取第二干扰值包括,
基于第二干扰式以所述第一随机因子为参数,计算得到第二干扰值。
23.根据权利要求21所述的方法,其中,
所述第一随机因子、第二随机因子和第三随机因子由验证方基于随机数提供。
24.根据权利要求21所述的方法,其中,
所述第一随机因子、第二随机因子和第三随机因子由证明方通过哈希算法获得,所述哈希算法向所述验证方公开。
25.根据权利要求19所述的方法,其中,
所述证明方为实体对象,所述待验证消息为金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种。
26.一种验证密文消息范围的系统,包括:
第二密文获取模块,用于生成密文消息;所述密文消息包括第一密文和第二密文;所述第一密文由第一加密算法通过对公钥加密得到;所述第二密文由所述第一加密算法对待验证消息加密得到;所述第一加密算法为Twisted El-Gamal算法;
消息承诺生成模块,用于生成对待验证消息的承诺以及所述待验证消息的干扰值;所述待验证消息的干扰值与所述第一密文相关;所述待验证消息的干扰值与所述第一密文相关包括所述待验证消息的干扰值通过所述第一密文为底数的幂通过乘法运算得到;
干扰值生成模块,用于生成对第一干扰因子的承诺和对扰动多项式的扰动系数的承诺;所述第一干扰因子的承诺包括第一干扰因子中的第一随机数的承诺,所述第一随机数的承诺基于所述公钥得到;获取证明方生成的聚合因子干扰值、第一随机因子的二阶干扰值、第一干扰值、第二干扰值以及私钥干扰值;所述第一干扰因子至少包括以下中的一项:第一随机数,证明方生成的与第一随机数同样选自共识循环群中的第二随机数;所述聚合因子干扰值由第一随机因子所属的循环群上随机选取的数得到;所述第一干扰值基于第一干扰式计算得到;所述第二干扰值基于第二干扰式计算得到;所述第一干扰式和所述第二干扰式基于所述扰动多项式得到;
发送模块,用于向所述验证方发送所述承诺和干扰值,以便验证方验证。
27.根据权利要求26所述的系统,其中,
所述对第一干扰因子的承诺还包括对干扰向量的承诺以及对第二随机数的承诺;所述干扰向量可以从循环群Zp中随机选取多个数构成。
28.根据权利要求26所述的系统,所述生成对扰动多项式的扰动系数的承诺,其中,
所述扰动多项式的构造方法包括,
以待验证消息的值为第二随机因子的多项式系数,以第二随机因子和第三随机因子的函数为多项式的常数,得到验证多项式;
将所述验证多项式分解为第一分解式和第二分解式;
基于所述干扰向量和所述第一分解式构造第一干扰式;
基于所述干扰向量和所述第二分解式构造第二干扰式;
基于所述第一干扰式和所述第二干扰式进行内积计算得到所述扰动多项式。
29.根据权利要求28所述的系统,其中,
基于第一干扰式以所述第一随机因子为参数,计算得到第一干扰值;
获取第二干扰值包括,
基于第二干扰式以所述第一随机因子为参数,计算得到第二干扰值。
30.根据权利要求28所述的系统,其中,
所述第一随机因子、第二随机因子和第三随机因子由验证方基于随机数提供。
31.根据权利要求28所述的系统,其中,
所述第一随机因子、第二随机因子和第三随机因子由证明方通过哈希算法获得,所述哈希算法向所述验证方公开。
32.根据权利要求26所述的系统,其中,
所述证明方为实体对象,所述待验证消息为金钱、代币、数字货币、合同、契据、医疗记录、客户详细资料、股票、债券以及权益中的一种或多种。
33.一种验证密文消息范围的装置,包括处理器及存储介质,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令以实现如权利要求19-25中任意一项所述的验证密文消息范围的方法。
34.一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述计算机指令被处理器执行后,能够实现如权利要求19-25中任意一项所述的验证密文消息范围的方法。
CN202010252437.XA 2020-04-01 2020-04-01 一种验证密文消息范围的方法和系统 Active CN111342962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010252437.XA CN111342962B (zh) 2020-04-01 2020-04-01 一种验证密文消息范围的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010252437.XA CN111342962B (zh) 2020-04-01 2020-04-01 一种验证密文消息范围的方法和系统

Publications (2)

Publication Number Publication Date
CN111342962A CN111342962A (zh) 2020-06-26
CN111342962B true CN111342962B (zh) 2020-10-30

Family

ID=71182938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010252437.XA Active CN111342962B (zh) 2020-04-01 2020-04-01 一种验证密文消息范围的方法和系统

Country Status (1)

Country Link
CN (1) CN111342962B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111738857B (zh) * 2020-06-28 2021-07-06 深圳前海微众银行股份有限公司 应用于区块链的隐匿支付证明的生成与验证方法及装置
CN112765616B (zh) * 2020-12-18 2024-02-02 百度在线网络技术(北京)有限公司 多方安全计算方法、装置、电子设备和存储介质
CN112633890B (zh) * 2020-12-22 2024-04-05 深圳前海微众银行股份有限公司 一种基于区块链的隐匿权益证明的验证方法及装置
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统
CN114978538B (zh) * 2022-05-17 2023-11-14 蚂蚁区块链科技(上海)有限公司 保护隐私的数据关系证明方法、装置、介质和计算设备
CN117278213B (zh) * 2023-10-31 2024-02-09 杭州趣链科技有限公司 基于多项式承诺的方法、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401839A (zh) * 2013-07-02 2013-11-20 河海大学 一种基于属性保护的多授权中心加密方法
CN110264172A (zh) * 2019-05-10 2019-09-20 平安科技(深圳)有限公司 基于区块链的交易处理方法及装置
EP3568826A2 (en) * 2018-12-29 2019-11-20 Alibaba Group Holding Limited System and method for information protection

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3718069B1 (en) * 2017-11-30 2024-04-17 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN110224985B (zh) * 2019-05-07 2022-07-08 平安科技(深圳)有限公司 数据处理的方法及相关装置
CN110311776B (zh) * 2019-06-21 2022-03-22 矩阵元技术(深圳)有限公司 范围证明方法、装置、计算机设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103401839A (zh) * 2013-07-02 2013-11-20 河海大学 一种基于属性保护的多授权中心加密方法
EP3568826A2 (en) * 2018-12-29 2019-11-20 Alibaba Group Holding Limited System and method for information protection
CN110264172A (zh) * 2019-05-10 2019-09-20 平安科技(深圳)有限公司 基于区块链的交易处理方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Bulletproofs Short Proofs for Confidential Transactions and More;Benedikt Bunz;《39th IEEE Symposium on Security and Privacy 2018》;20180601;全文 *
PGC-Decentralized Confidential Payment System with Auditability;Chen Yu;《Cryptology ePrint Archive Report》;20200211;全文 *
区块链交易数据隐私保护研究与实现;付溢;《中国优秀硕士论文全文数据库 信息技术辑》;20200131(第1期);第4.2节 *

Also Published As

Publication number Publication date
CN111342962A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN111342962B (zh) 一种验证密文消息范围的方法和系统
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CN110011781B (zh) 用于交易金额加密且支持零知识证明的同态加密方法和介质
CN110247757B (zh) 基于国密算法的区块链处理方法、装置及系统
JP5329676B2 (ja) 鍵合意プロトコルの加速
CN110414981B (zh) 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN113569294B (zh) 一种零知识证明方法及装置、电子设备、存储介质
US10846372B1 (en) Systems and methods for trustless proof of possession and transmission of secured data
US20130097420A1 (en) Verifying Implicit Certificates and Digital Signatures
JP2021507563A (ja) ブロックチェーンベースのスマートコントラクトの複数当事者生成のためのシステム及び方法
CN111277415A (zh) 基于区块链智能合约的隐私保护方法及装置
Zheng et al. Blockchain-based verifiable privacy-preserving data classification protocol for medical data
Srinivasan et al. Batching, aggregation, and zero-knowledge proofs in bilinear accumulators
US10795658B2 (en) Updatable random functions
CN116389164B (zh) 数据的检测方法及装置
KR20230002941A (ko) 비밀 공유를 갖는 (ec)dsa 임계값 서명
US20230214826A1 (en) Key-value map commitments system and method
Liu et al. An efficient fine-grained data access control system with a bounded service number
Hajny et al. Privacy ABCs: Now Ready for Your Wallets!
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
CN115694822A (zh) 基于零知识证明的验证方法、装置和系统、设备及介质
Ma et al. Efficient pairing-free attribute-based blind signature scheme based on ordered binary decision diagram
CN117728959A (zh) 门限签名方法和装置、电子设备和存储介质
KR20240046201A (ko) 디지털 서명들의 생성
CN115499135A (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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40031428

Country of ref document: HK