CN112541197A - 一种结果验证方法及装置 - Google Patents
一种结果验证方法及装置 Download PDFInfo
- Publication number
- CN112541197A CN112541197A CN202011575759.4A CN202011575759A CN112541197A CN 112541197 A CN112541197 A CN 112541197A CN 202011575759 A CN202011575759 A CN 202011575759A CN 112541197 A CN112541197 A CN 112541197A
- Authority
- CN
- China
- Prior art keywords
- plaintext
- ciphertext
- hash value
- encryption algorithm
- preset encryption
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 title abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 89
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种结果验证方法及装置,包括:运算方基于预设加密算法,确定各明文的第一密文及各替代文的第二密文,其中,各明文与各替代文一一对应,然后基于预设加密算法的公钥、各明文的运算系数、各明文的运算结果及第二密文,确定第一哈希值,并基于第一哈希值,确定各替代文与各明文之间的各绑定关系,再将预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明上传至区块链中,其中,零知识证明包括第一哈希值及各绑定关系。以此实现了在不需要可信第三方提供数据的基础上,创建零知识证明,增加了创建零知识证明的效率,且根据明文的运算系数,使本发明所应有的技术场景更加的广泛。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种结果验证方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出的更高的要求。
数据隐私是当今社会最重要的课题之一,保护与个人身份有关的个人数据是至关重要的,因此,在保护与个人身份有关的个人数据的基础上,为了证明某数据是真实的,在现有技术中,引入了零知识证明技术。
零知识证明用于证明一方(如运算方)就某数据对另一方(如验证方)来说是真实的。在现有技术中,在实现零知识证明时,一般是由运算方使用双线性对构造证明,然后由验证方使用双线性对类型的验证方法进行验证。但基于双线性对构造证明的方法中,需要由一个或多个可信第三方创建双线性对所需的基点,从而影响了构造证明的效率。
因此,现需要一种数据运算验证的方法,实现在结果证明过程中不再需要第三方参与,以提升零知识证明的创建效率及验证效率。
发明内容
本发明实施例提供一种结果验证方法及装置,用于在不需要可信第三方的基础上,实现零知识证明,提升零知识证明的创建效率及验证效率。
第一方面,本发明实施例提供一种结果验证方法,包括:
运算方基于预设加密算法,确定各明文的第一密文及各替代文的第二密文;所述各明文与所述各替代文一一对应;
所述运算方基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值;
所述运算方基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系;
所述运算方将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中;所述零知识证明包括所述第一哈希值及所述各绑定关系。
上述技术方案中,基于预设加密算法,根据各明文得到第一密文和第二密文,以保证明文的隐私,再根据第一哈希值得到各明文与各替代文之间的绑定关系,进而得到零知识证明,实现了在不需要可信第三方提供数据的基础上,创建出各明文的运算结果和各明文的运算系数的零知识证明,以此增加了创建零知识证明的效率。且创建零知识证明过程中包括各明文的运算系数,使上述技术方案所应有的技术场景更加的广泛。
可选的,运算方基于预设加密算法,确定各明文的第一密文,包括:
针对任一明文,所述运算方随机生成所述明文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥和所述明文的私钥,确定所述明文的第一密文。
上述技术方案中,通过随机生成的明文的私钥,确定明文的第一密文,保证了明文数据的隐私性,增加了明文数据的安全性。
可选的,运算方基于预设加密算法,确定各替代文的第二密文,包括:
针对任一替代文,所述运算方随机生成所述替代文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥、所述替代文的私钥,确定所述替代文的第二密文。
上述技术方案中,通过随机生成替代文的私钥,确定替代文的第二密文,保证了替代文的隐私性及安全性,各替代文与各明文一一对应,因此通过替代文进一步的保证了明文数据的隐私性,增加了明文数据的安全性。
可选的,所述运算方基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系,包括:
所述运算方基于所述第一哈希值,确定各明文与各替代文之间的第一绑定关系;
所述运算方基于所述第一哈希值,确定各明文的私钥与各替代文的私钥之间的第二绑定关系。
上述技术方案中,通过第一绑定关系和第二绑定关系创建零知识证明,不需要使用明文数据创建零知识证明,实现了在保证明文数据的隐私性及安全性的前提下,使验证方验证各明文的运算结果。
第二方面,本发明实施例提供一种结果验证方法,包括:
验证方从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明;所述第一密文是通过预设加密算法得到的;所述零知识证明包括第一哈希值及各替代文与各明文之间的各绑定关系;
所述验证方通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文;
所述验证方基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值;
所述验证方确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
上述技术方案中,验证方通过零知识证明以及预设加密算法的公钥生成第三密文,并根据第三密文得到第二哈希值,通过第二哈希值和第一哈希值验证各明文的运算结果,实现了在不需要可信第三方提供数据的基础上,验证各明文的运算结果,以此增加了验证零知识证明的效率。且在验证过程中,验证方不需要获取明文数据,保证了明文数据的隐私性及安全性。
可选的,所述零知识证明包括第一绑定关系;所述第一绑定关系是基于第一哈希值,根据各明文与各替代文得到的;
所述方法还包括:
所述验证方根据第一绑定关系和所述各明文的运算系数,得到所述第一绑定关系的运算结果;
所述验证方确定所述第一绑定关系的运算结果与所述各明文的运算结果之间的关系符合所述第一哈希值时,确定所述各明文的运算系数及所述各明文的运算结果是正确的。
上述技术方案中,通过验证第一绑定关系的运算结果与各明文的运算结果之间的关系符合第一哈希值,在不公开替代文以及明文的前提下,确定各明文的运算系数及各明文的运算结果是正确的,增加了明文的隐私性和安全性,并进一步地增加了零知识证明的准确性。
第三方面,本发明实施例提供一种结果验证装置,包括:
创建模块,用于基于预设加密算法,确定各明文的第一密文及各替代文的第二密文;所述各明文与所述各替代文一一对应;
处理模块,用于基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值;
基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系;
将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中;所述零知识证明包括所述第一哈希值及所述各绑定关系。
可选的,所述创建模块具体用于:
针对任一明文,随机生成所述明文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥和所述明文的私钥,确定所述明文的第一密文。
可选的,所述创建模块具体用于:
针对任一替代文,随机生成所述替代文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥、所述替代文的私钥,确定所述替代文的第二密文。
可选的,所述处理模块具体用于:
基于所述第一哈希值,确定各明文与各替代文之间的第一绑定关系;
基于所述第一哈希值,确定各明文的私钥与各替代文的私钥之间的第二绑定关系。
第四方面,本发明实施例提供一种结果验证装置,包括:
获取单元,用于从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明;所述第一密文是通过预设加密算法得到的;所述零知识证明包括第一哈希值及各替代文与各明文之间的各绑定关系;
处理单元,用于通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文;
基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值;
确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
可选的,所述零知识证明包括第一绑定关系;所述第一绑定关系是基于第一哈希值,根据各明文与各替代文得到的;
所述处理单元还用于:
根据第一绑定关系和所述各明文的运算系数,得到所述第一绑定关系的运算结果;
确定所述第一绑定关系的运算结果与所述各明文的运算结果之间的关系符合所述第一哈希值时,确定所述各明文的运算系数及所述各明文的运算结果是正确的。
第五方面,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述结果验证方法。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述结果验证方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种***架构示意图;
图2为本发明实施例提供的一种结果验证方法的流程示意图;
图3为本发明实施例提供的一种结果验证方法的流程示意图;
图4为本发明实施例提供的一种结果验证方法的结构示意图;
图5为本发明实施例提供的一种结果验证方法的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
数据隐私是当今社会最重要的课题之一,保护与个人身份有关的个人数据(如电话号码、身份证号码、银行***、网银地址等个人数据)是至关重要的,并且其重要性将不断提高。因此,为了在保护个人数据隐私性及安全性的前提下验证运算方的某数据是真实的,在现有技术中,引入了零知识证明技术。其中,零知识证明指的是运算方能够在不向验证方提供任何隐私的明文数据的情况下,使验证方相信某个论断(如根据各明文以及各明文的运算系数得到运算结果)是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。运算方向验证方提供零知识证明,并使验证方相信运算方知道或拥有某一论断,但在验证过程中,运算方不向验证方泄漏任何明文数据(即隐私的个人数据)。
目前,在实现零知识证明时,一般是由运算方使用双线性对算法创建零知识证明,即根据双线性对算法得到各明文的密文,如,双线性对算法公式为:其中,g1和g2为双线性对的基点,为了保证各明文的安全性,需要由一个或多个可信第三方来提供双线性对的基点,然后再由验证方使用双线性对算法(即由一个或多个可信第三方来提供双线性对的基点运算公式)进行验证。因为在创建零知识证明及验证零知识证明中,均得到了可信第三方的参与,从而影响了创建零知识证明及验证零知识证明的效率。
因此,现需要一种数据运算验证的方法,实现在结果证明过程中不再需要第三方参与,以提升零知识证明的创建效率及验证效率。
图1示例性的示出了本发明实施例所适用的一种***架构,该***架构包括运算方110和验证方120。
其中,运算方110和验证方120可以为区块链上的任一节点,也可以为任一服务器或客户端。
运算方110,用于生成各明文的替代文,并确定各明文的第一密文及各替代文的第二密文,然后创建各明文的运算系数和各明文的运算结果,再基于预设加密算法的公钥、各明文的运算系数、各明文的运算结果及第二密文,确定第一哈希值,然后基于第一哈希值确定各明文与各替代文之间的第一绑定关系,确定各明文的私钥与各替代文的私钥之间的第二绑定关系,然后根据第一绑定关系、第二绑定关系和第一哈希值创建零知识证明,最后将预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明上传至区块链中,以供验证方120进行验证。
验证方120,用于从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明,然后通过零知识证明、预设加密算法的公钥和所述各明文的第一密文,生成第三密文,再根据预设加密算法的公钥、各明文的运算系数、各明文的运算结果及第三密文,确定第二哈希值,最后在确定第一哈希值和第二哈希值相同时,且确定各替代文的运算结果与各明文的运算结果之间的关系符合第一哈希值时,确定各明文的运算系数是正确情况下,验证各明文的运算结果是通过各明文及各明文的运算系数得到的。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种结果验证方法的流程,该流程可由结果验证装置执行。
如图2所示,该流程具体包括:
步骤210,运算方基于预设加密算法,确定各明文的第一密文及各替代文的第二密文。
本发明实施例中,各明文与各替代文是一一对应的,各替代文是运算方根据各明文的数量随机生成的,例如,明文包括x1和x2,随机生成各明文的替代文,f1和f2。其中,f1与x1相对应,f2与x2相对应。
在确定出替代文之后,根据各明文的私钥确定明文的第一密文,根据各替代文的私钥确定第二密文。
进一步地,针对任一明文,运算方随机生成明文的私钥,按照预设加密算法,根据预设加密算法的公钥和明文的私钥,确定明文的第一密文。
针对任一替代文,运算方随机生成替代文的私钥,按照预设加密算法,根据预设加密算法的公钥、替代文的私钥,确定替代文的第二密文。
本发明实施例中,明文的私钥与替代文的私钥也是随机生成的,例如,随机生成随机数r1和r2,作为明文x1和x2的私钥,随机生成随机数k1和k2,作为替代文f1和f2的私钥。其中,预设加密算法可以为Pedersen承诺算法,Pedersen承诺算法的计算公式为C=x*G1+r*G2。其中,C为密文,x为明文,r为明文的私钥,G1和G2是椭圆曲线上的点,且G1和G2满足离散对数问题,即G1和G2为预设加密算法的公钥。结合Pedersen承诺算法,确定第一密文和第二密文,例如,将确定的各明文x1和x2、各明文的私钥r1和r2、各替代文f1和f2及各替代文的私钥k1和k2带入上述公式,得到第一密文为C1=x1*G1+r1*G2,C2=x2*G1+r2*G2。第二密文为t1=f1*G1+k1*G2,t2=f2*G1+k2*G2。
步骤220,所述运算方基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值。
本发明实施例中,各明文的运算系数是预设的,各明文的运算结果是根据各明文及各明文的运算系数得到的,其中运算结果可以为公开任意常数,也可以为运算方的隐私数据。结合上述步骤210,例如,明文x1和x2的运算系数为a1和a2,运算结果为公开任意常数b,则有a1*x1+a2*x2=b。其中,等式中的加法也可以为其它计算方法,如减法,具体计算方法在此不做限定。
需要说明的是,上述步骤210中随机生成的各替代文与各明文的运算系数乘积的和为0,如a1*f1+a2*f2=0。用于验证方确定各明文的运算系数是正确的,具体方法在下述验证方进行阐述。
运算方根据预设加密算法的公钥、各明文的运算系数、各明文的运算结果及第二密文进行哈希运算,得到第一哈希值,例如,第一哈希值c1=Hash(G1,G2,a1,a2,b,t1,t2)。
步骤230,所述运算方基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系。
本发明实施例中,基于第一哈希值,确定出各替代文、各明文、各明文的私钥以及各替代文的私钥之间的绑定关系。
具体的,基于第一哈希值,确定各明文与各替代文之间的第一绑定关系,确定各明文的私钥与各替代文的私钥之间的第二绑定关系。结合上述步骤210和步骤220,例如,第一绑定关系为zx1=f1-c1*x1,zx2=f2-c1*x2,第二绑定关系为zr1=k1-c1*r1,zr2=k2-c1*r2。
步骤204,所述运算方将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中。
本发明实施例中,零知识证明包括第一哈希值、第一绑定关系和第二绑定关系。例如,证明P包括第一哈希值c、第一绑定关系zx1和zx2、及第二绑定关系zr1和zr2。
本发明实施例中,通过随机生成替代文的私钥,确定替代文的第二密文,保证了替代文的隐私性及安全性,因为替代文是根据明文随机生成的,因此通过替代文保证了明文的隐私性,又通过随机生成的明文的私钥,确定明文的第一密文,进一步的保证了明文的安全性,然后再根据第一哈希值得到第一绑定关系和第二绑定关系,确定零知识证明,实现了在不需要可信第三方提供数据的基础上,创建出各明文的运算结果和各明文的运算系数的零知识证明,以此增加了创建零知识证明的效率。且创建零知识证明过程中包括各明文的运算系数,使本发明实施例的技术方案所应有的技术场景更加的广泛。
结合上述图2,图3示例性的示出了本发明实施例提供的一种结果验证方法的流程,该流程可由结果验证装置执行。
如图3所示,具体流程包括:
步骤310,验证方从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明。
本发明实施例中,零知识证明中包括第一哈希值、第一绑定关系和第二绑定关系,第一密文是通过预设加密算法得到的。例如,验证方从区块链获取预设加密算法的公钥G1和G2、各明文的第一密文C1和C2、各明文的运算结果b、各明文的运算系数a1和a2第一哈希值c1、第一绑定关系zx1和zx2及第二绑定关系zr1和zr2。
步骤320,所述验证方通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文。
本发明实施例中,第三密文是根据第一哈希值、第一绑定关系及第二绑定关系、预设加密算法的公钥和各明文的第一密文得到的,例如,基于第二密文,第三密文为v1=zx1*G1+zr1*G2+c1*C1,v2=zx2*G1+zr2*G2+c1*C2。
步骤330,所述验证方基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值。
本发明实施例中,第二哈希值是根据预设加密算法的公钥、各明文的运算系数、各明文的运算结果及第三密文进行哈希运算得到的,例如,第二哈希值c2=Hash(G1,G2,a1,a2,b,v1,v2)。
步骤340,所述验证方确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
本发明实施例中,验证方确定第一哈希值和所述第二哈希值相同时,即可证明各明文是正确的,且各明文的运算结果是通过各明文及各明文的运算系数得到的。例如,v1=zx1*G1+zr1*G2+c*C1,其中zx1=f1-c1*x1,zr1=k1-c1*r1,将zx1和zr1带入等式v1得,v1=(f1-c1*x1)*G1+(k1-c1*r1)*G2+c1*C1,经过等式变换得,v1=f1*G1+k1*G2-c1*x1*G1-c1*r1*G2+c1*C1,进一步地,v1=f1*G1+k1*G2-c1*(x1*G1+r1*G2)+c1*C1,由上述步骤210中可知,C1=x1*G1+r1*G2,因此,v1=f1*G1+k1*G2-c1*(C1)+c1*C1=f1*G1+k1*G2=t1,同理v2=t2。也就是说,若第二哈希值与第一哈希值相等,则证明第三密文v1和v2与第二密文t1和t2相等,因为第二密文t1和t2是根据替代文得到的,替代文与明文是一一对应的,因此若第二哈希值与第一哈希值相等,即证明各明文x1和x2是正确的,且各明文的运算结果b是根据各明文x1和x2及各明文的运算系数a1和a2得到的。
为了进一步地证明各明文的运算结果b及各明文的运算系数a1和a2是正确的,验证方根据第一绑定关系和各明文的运算系数进行验证,具体的,零知识证明中包括第一绑定关系,第一绑定关系是基于第一哈希值,根据各明文与各替代文得到的,验证方根据第一绑定关系和各明文的运算系数,得到第一绑定关系的运算结果,验证方确定第一绑定关系的运算结果与各明文的运算结果之间的关系符合第一哈希值时,确定各明文的运算系数及各明文的运算结果是正确的。
例如,第一绑定关系的运算结果为m=a1*zx1+a2*zx2,其中,zx1=f1-c1*x1,zx2=f2-c1*x2,因此,m=a1*(f1-c1*x1)+a2*(f2-c1*x2),进一步地,m=a1*f1+a2*f2-a1*c1*x1-a2*c1*x2,m=a1*f1+a2*f2-c1*(a1*x1+a2*x2)。因在上述步骤220规定有a1*f1+a2*f2=0,且a1*x1+a2*x2=b,因此m=-c1*b。综上,若验证方验证第一绑定关系的运算结果m=各明文的运算结果b*负数形式的第一哈希值-c1,则确定各明文的运算系数及各明文的运算结果是正确的。
本发明实施例中,验证方通过验证第二哈希值与第一哈希值是否相等及第一绑定关系的运算结果与各明文的运算结果之间的关系是否符合第一哈希值,来确定运算方满足根据各明文及各明文的运算系数得到各明文的运算结果,即确定运算方满足a1*x1+a2*x2=b。实现了在不需要可信第三方提供数据的基础上,验证各明文的运算结果,以此增加了验证零知识证明的效率。且在不公开替代文以及明文的前提下,确定各明文的运算系数及各明文的运算结果是正确的,增加了明文的隐私性和安全性,并进一步地增加了零知识证明的准确性。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种结果验证装置的结构,该装置可以执行结果验证方法的流程。
如图4所示,该装置具体包括:
创建模块410,用于基于预设加密算法,确定各明文的第一密文及各替代文的第二密文;所述各明文与所述各替代文一一对应;
处理模块420,用于基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值;
基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系;
将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中;所述零知识证明包括所述第一哈希值及所述各绑定关系。
可选的,所述创建模块410具体用于:
针对任一明文,随机生成所述明文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥和所述明文的私钥,确定所述明文的第一密文。
可选的,所述创建模块410具体用于:
针对任一替代文,随机生成所述替代文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥、所述替代文的私钥,确定所述替代文的第二密文。
可选的,所述处理模块420具体用于:
基于所述第一哈希值,确定各明文与各替代文之间的第一绑定关系;
基于所述第一哈希值,确定各明文的私钥与各替代文的私钥之间的第二绑定关系。
基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种结果验证装置的结构,该装置可以执行结果验证方法的流程。
如图5所示,该装置具体包括:
获取单元510,用于从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明;所述第一密文是通过预设加密算法得到的;所述零知识证明包括第一哈希值及各替代文与各明文之间的各绑定关系;
处理单元520,用于通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文;
基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值;
确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
可选的,所述零知识证明包括第一绑定关系;所述第一绑定关系是基于第一哈希值,根据各明文与各替代文得到的;
所述处理单元520还用于:
根据第一绑定关系和所述各明文的运算系数,得到所述第一绑定关系的运算结果;
确定所述第一绑定关系的运算结果与所述各明文的运算结果之间的关系符合所述第一哈希值时,确定所述各明文的运算系数及所述各明文的运算结果是正确的。
基于相同的技术构思,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述结果验证方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述结果验证方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种结果验证方法,其特征在于,包括:
运算方基于预设加密算法,确定各明文的第一密文及各替代文的第二密文;所述各明文与所述各替代文一一对应;
所述运算方基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值;
所述运算方基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系;
所述运算方将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中;所述零知识证明包括所述第一哈希值及所述各绑定关系。
2.如权利要求1所述的方法,其特征在于,运算方基于预设加密算法,确定各明文的第一密文,包括:
针对任一明文,所述运算方随机生成所述明文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥和所述明文的私钥,确定所述明文的第一密文。
3.如权利要求2所述的方法,其特征在于,运算方基于预设加密算法,确定各替代文的第二密文,包括:
针对任一替代文,所述运算方随机生成所述替代文的私钥;按照所述预设加密算法,根据所述预设加密算法的公钥、所述替代文的私钥,确定所述替代文的第二密文。
4.如权利要求3所述的方法,其特征在于,所述运算方基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系,包括:
所述运算方基于所述第一哈希值,确定各明文与各替代文之间的第一绑定关系;
所述运算方基于所述第一哈希值,确定各明文的私钥与各替代文的私钥之间的第二绑定关系。
5.一种结果验证方法,其特征在于,包括:
验证方从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明;所述第一密文是通过预设加密算法得到的;所述零知识证明包括第一哈希值及各替代文与各明文之间的各绑定关系;
所述验证方通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文;
所述验证方基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值;
所述验证方确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
6.如权利要求5所述的方法,其特征在于,所述零知识证明包括第一绑定关系;所述第一绑定关系是基于第一哈希值,根据各明文与各替代文得到的;
所述方法还包括:
所述验证方根据第一绑定关系和所述各明文的运算系数,得到所述第一绑定关系的运算结果;
所述验证方确定所述第一绑定关系的运算结果与所述各明文的运算结果之间的关系符合所述第一哈希值时,确定所述各明文的运算系数及所述各明文的运算结果是正确的。
7.一种结果验证装置,其特征在于,包括:
创建模块,用于基于预设加密算法,确定各明文的第一密文及各替代文的第二密文;所述各明文与所述各替代文一一对应;
处理模块,用于基于所述预设加密算法的公钥、各明文的运算系数、各明文的运算结果及所述第二密文,确定第一哈希值;
基于所述第一哈希值,确定各替代文与各明文之间的各绑定关系;
将所述预设加密算法的公钥、所述各明文的第一密文、所述各明文的运算结果、所述各明文的运算系数及零知识证明上传至区块链中;所述零知识证明包括所述第一哈希值及所述各绑定关系。
8.一种结果验证装置,其特征在于,包括:
获取单元,用于从区块链获取预设加密算法的公钥、各明文的第一密文、各明文的运算结果、各明文的运算系数及零知识证明;所述第一密文是通过预设加密算法得到的;所述零知识证明包括第一哈希值及各替代文与各明文之间的各绑定关系;
处理单元,用于通过所述零知识证明、所述预设加密算法的公钥和所述各明文的第一密文,生成第三密文;
基于所述预设加密算法的公钥、所述各明文的运算系数、所述各明文的运算结果及所述第三密文,确定第二哈希值;
确定所述第一哈希值和所述第二哈希值相同时,确定所述各明文的运算结果是通过各明文及各明文的运算系数得到的。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4或5至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至4或5至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011575759.4A CN112541197B (zh) | 2020-12-28 | 2020-12-28 | 一种结果验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011575759.4A CN112541197B (zh) | 2020-12-28 | 2020-12-28 | 一种结果验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112541197A true CN112541197A (zh) | 2021-03-23 |
CN112541197B CN112541197B (zh) | 2024-07-09 |
Family
ID=75017658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011575759.4A Active CN112541197B (zh) | 2020-12-28 | 2020-12-28 | 一种结果验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112541197B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779147A (zh) * | 2021-08-30 | 2021-12-10 | 武汉天喻信息产业股份有限公司 | 一种数据上链与利用方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694218B2 (en) * | 2000-09-13 | 2010-04-06 | Canon Kabushiki Kaisha | Information processing apparatus, method therefor, and computer-readable memory |
EP3206154A1 (de) * | 2016-02-12 | 2017-08-16 | Deutsche Telekom AG | Verfahren und vorrichtungen zum sicheren übermitteln von nutzdaten |
US20170366349A1 (en) * | 2016-06-16 | 2017-12-21 | International Business Machines Corporation | Proofs of Plaintext Knowledge and Group Signatures Incorporating Same |
CN109559224A (zh) * | 2018-10-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 征信评估方法及装置、电子设备 |
KR20200028164A (ko) * | 2018-09-06 | 2020-03-16 | 국민대학교산학협력단 | 비트치환 연산기, 확장 비트치환 연산기 및 이를 이용한 암호 장치 |
CN111159745A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
-
2020
- 2020-12-28 CN CN202011575759.4A patent/CN112541197B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7694218B2 (en) * | 2000-09-13 | 2010-04-06 | Canon Kabushiki Kaisha | Information processing apparatus, method therefor, and computer-readable memory |
EP3206154A1 (de) * | 2016-02-12 | 2017-08-16 | Deutsche Telekom AG | Verfahren und vorrichtungen zum sicheren übermitteln von nutzdaten |
US20170366349A1 (en) * | 2016-06-16 | 2017-12-21 | International Business Machines Corporation | Proofs of Plaintext Knowledge and Group Signatures Incorporating Same |
KR20200028164A (ko) * | 2018-09-06 | 2020-03-16 | 국민대학교산학협력단 | 비트치환 연산기, 확장 비트치환 연산기 및 이를 이용한 암호 장치 |
CN109559224A (zh) * | 2018-10-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 征信评估方法及装置、电子设备 |
CN111159745A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
Non-Patent Citations (2)
Title |
---|
王勇等: "基于随机函数的哈希函数", 《计算机工程与设计》, vol. 36, no. 10, 31 October 2015 (2015-10-31), pages 2679 - 2683 * |
王骏飞: "FPGA在分组加密算法中的应用", 《无线通信技术》, vol. 21, no. 03, 31 August 2012 (2012-08-31), pages 33 - 35 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113779147A (zh) * | 2021-08-30 | 2021-12-10 | 武汉天喻信息产业股份有限公司 | 一种数据上链与利用方法、装置、设备及可读存储介质 |
CN113779147B (zh) * | 2021-08-30 | 2023-11-07 | 武汉天喻信息产业股份有限公司 | 一种数据上链与利用方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112541197B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563261A (zh) | 一种基于可信执行环境的隐私保护多方计算方法和*** | |
CN112437049B (zh) | 一种基于bft的区块链共识方法及装置 | |
CN110505061B (zh) | 一种数字签名算法及*** | |
US20160149708A1 (en) | Electronic signature system | |
CN112187469B (zh) | 一种基于密钥因子的sm2多方协同数字签名方法和*** | |
CN111340494A (zh) | 资产类型一致性证据生成、交易、交易验证方法及*** | |
CN112464155B (zh) | 一种数据处理方法、多方安全计算***和电子设备 | |
CN111245626B (zh) | 零知识证明方法、装置及存储介质 | |
CN112632630A (zh) | 一种基于sm2的协同签名计算方法及装置 | |
CN112541197B (zh) | 一种结果验证方法及装置 | |
CN111262707B (zh) | 数字签名方法及验证方法、设备、存储介质 | |
CN112184245B (zh) | 一种跨区块链的交易身份确认方法及装置 | |
CN112434269A (zh) | 文件的零知识证明方法、验证方法、计算设备和存储介质 | |
KR102070061B1 (ko) | 묶음 검증 방법 및 장치 | |
CN115473632B (zh) | 一种改进的多层可链接环签名生成方法及装置 | |
CN116389164A (zh) | 数据的检测方法及装置 | |
CN112528340B (zh) | 一种分布式存储一致性的验证方法及装置 | |
CN111245869A (zh) | 一种信息物理***中的跨域匿名认证方法 | |
CN117118637B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN117692150B (zh) | 一种签名生成、签名验证方法及计算机设备 | |
CN112632636A (zh) | 一种密文数据比较结果的证明与验证方法及装置 | |
CN117811732A (zh) | 基于dlin假设的高效群体委托隐私方法、***及设备 | |
CN115118437B (zh) | 基于一致性哈希和路径证明的多签验证方法、装置及设备 | |
CN118157874A (zh) | 一种签名方法和装置 | |
Wang et al. | The Analysis of Schnorr Multi-Signatures and the Application to AI |
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 |