CN112100688A - 数据验证方法、装置、设备以及存储介质 - Google Patents
数据验证方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN112100688A CN112100688A CN202011050441.4A CN202011050441A CN112100688A CN 112100688 A CN112100688 A CN 112100688A CN 202011050441 A CN202011050441 A CN 202011050441A CN 112100688 A CN112100688 A CN 112100688A
- Authority
- CN
- China
- Prior art keywords
- encrypted
- data
- order
- preserving
- encrypted data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013524 data verification Methods 0.000 title claims abstract description 30
- 238000012795 verification Methods 0.000 claims abstract description 115
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000008707 rearrangement Effects 0.000 claims description 5
- 201000004569 Blindness Diseases 0.000 claims 2
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000012163 sequencing technique Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012545 processing Methods 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Bioethics (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种数据验证方法、装置、设备以及存储介质,应用于零知识证明领域及数字医疗领域,该方法包括:从区块链中获取第一加密数据、第二加密数据以及保序签名;基于上述第一加密数据和上述第二加密数据确定第一公钥,对上述保序签名进行验签;若对上述保序签名验签不通过,则根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序得到重排后的第二加密数据,将上述重排后的第二加密数据的排序信息回传至区块链,获取等值签名;基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。采用本发明实施例,可以丰富数据验证场景,提高验证效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据验证方法、装置、设备以及存储介质。
背景技术
随着区块链技术的发展,为了实现安全的数据共享,所有数据都是以密文的形式加密存储,在保证数据安全性的同时也带来了很多不便。例如,在数字医疗领域中,需要对医疗设备的供应信息建立电子信息档案。而在传统的区块链项目中,如果想要确定供货商订购多批货品的数据与生产商要生产多批货品的数据是否一致,需要通过对供货商和生产商存储在区块链中的加密数据进行验证,只有在双方数据的数值相等且存储顺序一致时才可以通过验证,实现订货商与生产商的数据共享。但下游的经销商只知道货品的数值和以及货品到达的顺序,并不知道供货商的订购顺序,也不知道生产商的生产顺序,则无法通过验证,无法实现数据共享,这给经营带来了不便。
发明内容
本申请实施例提供一种数据验证方法、装置、设备以及存储介质,可以在双方掌握等值且同序的数据和等值但不同序的数据时分别通过验证,丰富验证场景,提高验证效率。
第一方面,本申请实施例提供一种数据验证方法,该方法包括:
从区块链中获取第一加密数据、第二加密数据以及保序签名,其中,上述第一加密数据由多个第一加密子数据组成,上述第二加密数据由多个第二加密子数据组成。
基于上述第一加密数据和上述第二加密数据确定第一公钥,利用上述第一公钥对上述保序签名进行验签。
若对上述保序签名验签不通过,则根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将上述重排后的第二加密数据的排序信息回传至区块链,获取等值签名。
基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
结合第一方面,在一种可能的实施方式中,上述第一加密子数据和上述第二加密子数据由椭圆曲线加密法ECC加密生成,且符合密码学中的佩德森复数PedersenCommitment格式。
结合第一方面,在一种可能的实施方式中,上述保序签名由保序私钥加密得到。
其中,上述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定。
其中,上述KA由上述第一加密子数据的保序盲因子确定,上述KB由上述第二加密子数据的保序盲因子确定。
结合第一方面,在一种可能的实施方式中,上述基于上述第一加密数据和上述第二加密数据确定第一公钥,包括:
基于上述第一加密数据以及上述多个第一加密子数据组成上述第一加密数据的第一组成顺序确定第一加密保序参数。
基于上述第二加密数据以及上述多个第二加密子数据组成上述第二加密数据的第二组成顺序确定第二加密保序参数。
根据上述第一加密保序参数和上述第二加密保序参数确定上述第一公钥。
结合第一方面,在一种可能的实施方式中,加密子数据的密文属性包括加密子数据的密文相似度和组成顺序;
上述根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据包括:
确定上述第一加密数据中的各第一加密子数据之间的密文相似度以及上述第一加密数据中各第一加密子数据的第一组成顺序。
确定上述第二加密数据中的各第二加密子数据之间的密文相似度。
根据上述各第一加密子数据之间的密文相似度、上述各第二加密子数据之间的密文相似度以及上述第一组成顺序调整各第二加密子数据组成顺序以得到重排后的第二加密数据。
结合第一方面,在一种可能的实施方式中,上述基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,包括:
基于上述第一加密数据以及上述多个第一加密子数据组成上述第一加密数据的第一组成顺序确定第一加密等值参数。
基于上述重排后的第二加密数据以及上述多个第二加密子数据组成上述重排后的第二加密数据的第三组成顺序确定第二加密等值参数。
根据上述第一加密等值参数和上述第二加密等值参数确定上述第二公钥。
第二方面,本申请实施例提供了一种数据验证装置,该装置包括:
数据传输模块,用于从区块链中获取第一加密数据、第二加密数据以及保序签名,和/或将重排后的第二加密数据的排序信息回传至区块链,获取等值签名。
保序验证模块,用于基于上述第一加密数据和上述第二加密数据确定第一公钥,利用上述第一公钥对上述保序签名进行验签。
密文重排模块,用于根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将上述重排后的第二加密数据的排序信息通过上述数据传输模块回传至区块链。
等值验证模块,用于基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
结合第二方面,在一种可能的实施方式中,上述保序签名由保序私钥加密得到。
其中,上述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定。
其中,上述KA由上述第一加密子数据的保序盲因子确定,上述KB由上述第二加密子数据的保序盲因子确定。
第三方面,本申请实施例提供了一种数据验证设备,该设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
在本申请实施例中,通过对加密数据进行保序验证和排序后的等值验证,可以对数值相等且顺序相同和数值相等但顺序不同的数据进行验证。极大地丰富了数据验证的应用场景,提高了验证效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据验证的场景示意图;
图2是本发明实施例提供的数据验证方法的一流程示意图;
图3是本发明实施例提供的数据验证方法的另一流程示意图;
图4是本发明实施例提供的数据验证装置的一结构示意图;
图5是本发明实施例提供的设备的结构示意图。
具体实施方式
请参见图1,图1是本发明实施例提供的一种数据验证方法的应用场景示意图。如图1所示,应用场景涉及的终端包括终端3000a、终端3000b以及终端3000n,节点2000a、节点2000b、节点2000c以及节点2000n。其中,每个终端对应一个节点,节点接收终端发送的数据,并上传至区块链中;同时,节点也可以接收区块链的数据并进行验证,若验证通过,则可以与区块链进行数据共享。多个终端将数据加密生成加密数据上传至对应的区块链节点中保存,区块链节点在存储加密数据的同时可以将数据发送给其他节点,并对获取到的加密数据进行验证,从而保证数据存储的安全。这里,在区块链中传递的数据可以是数字医疗领域中针对医疗设备的供应信息建立的电子信息档案,加密数据可以是对上述电子信息档案进行加密得到的数据。
在数字医疗领域中,通常需要对医疗设备的供应信息建立电子信息档案,以医疗设备的订货商、生产商和经销商的应用场景例,订货商、生产商和经销商分别是三个参与方,各自对应一个终端与节点用来传输数据,订货商通过终端3000a向节点2000a发送加密过后的n个订货信息,生产商通过终端3000b向节点2000b发送加密过后的n个生产信息,经销商通过终端3000c向节点3000c发送加密过后的n个到货信息。其中,n为大于1的正整数订货信息与生产信息等值且同序,生产信息与到货信息等值但不同序。这里,等值且同序可以理解为或者表示订货信息中第一订购货品的数量与生产信息中第一生产货品的数量相等,订货信息中第二订购货品的数量与生产信息中第二生产货品的数量相等,订货信息中第三订购货品的数量与生产信息中第三生产货品的数量相等……依次类推,订货信息中第i项的数据与生产信息中第i项的数据相等,其中,i为小于等于n的任一正整数。等值但不同序可以理解为或者表示生产信息中第一生产货品的数量与到货信息中第三到货信息相等,生产信息中第二生产货品的数量与到货信息中第一到货信息相等,生产信息中第三生产货品的数量与到货信息中第二到货信息相等……以此类推,生产信息中第i项的数据与到货信息中第k项的数据相等,其中,i、k分别为小于等于n的任一正整数,且i≠k。以生产商为例,具体应用场景可以是生产商终端对应的验证节点采集区块链中的数据(订货商的数据、经销商的数据、或者其他人的数据),和生产商终端通过节点上传至区块链的数据,然后进行验证。
验证过程为:验证节点从区块链中分别获取到两组加密数据以及保序签名,首先计算第一公钥对保序签名进行验签,若通过验签,判断两组加密数据等值且同序,则验证节点可以判定两组加密数据是加密后的订货信息与生产信息,从而判断数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部数据。若未通过保序验证,根据两组加密数据的密文属性,将加密子数据进行排序,并将排序信息进行回传,从区块链中得到等值签名,其中,等值签名由重排后的第二加密数据中加密子数据的盲因子确定,与重排信息有关。然后计算第二公钥对等值签名进行验签,若通过验签,判断两组加密数据等值但不同序,则验证节点可以判定两组加密数据是加密后的生产信息与到货信息,从而判断数据提供者为生产商和经销商,则可以开放部分权限,在生产商和经销商之间共享部分数据。
需要说明的是,图1中提供的数据验证方法的应用场景仅仅用于说明本申请的技术方案,并不用于限定本申请技术方案,上述连接关系与应用场景还可以有其他形式。
请参阅图2,图2为本发明实施例提供的数据验证方法的一流程示意图。如图2所示,该方法包括以下步骤:
S101:从区块链中获取第一加密数据、第二加密数据以及保序签名。
在一些可行的实施方式中,上述第一加密数据和上述第二加密数据由椭圆曲线加密法ECC加密生成,且符合密码学中的佩德森复数Pedersen Commitment格式,即Comm=m*U+k*V,其中Comm为加密子数据,m为加密子数据对应的明文,k为盲因子,U和V为特定椭圆曲线上生成的点且公开。以这种形式生成的Comm很难进行因式分解,即即使知道U和V以及m*U和k*V,也无法得到m和k的值。
具体地,上述第一加密数据由多个第一加密子数据组成,上述第二加密数据由多个第二加密子数据组成。为描述方便,本实施例以每个加密数据包括三个加密子数据为例,以A来表示第一加密数据,以A1、A2、A3分别表示对明文a1、a2、a3进行椭圆曲线加密法加密得到的三个第一加密子数据,则A可表示为A1||A2||A3,表示A1,A2,A3按照该顺序组合为A。以B来表示第二加密数据,以B1、B2、B3分别表示对明文b1、b2、b3进行椭圆曲线加密法加密得到的三个第二加密子数据,则B可表示为B1||B2||B3,表示B1、B2、B3按照该顺序组合为B。其中,生成第一加密子数据与第二加密子数据所用的加密曲线相同,可以为P256曲线、P224曲线、P384曲线以及P512曲线等曲线中的一种。
其中,各第一加密子数据和各第二加密子数据可以如下述公式(1)-公式(6)所示:
A1=a1*G+ka1*H,(1)
A2=a2*G+ka2*H,(2)
A3=a3*G+ka3*H,(3)
B1=b1*G+kb1*H,(4)
B2=b2*G+kb2*H,(5)
B3=b3*G+kb3*H,(6)
其中,G为基点,ka1、ka2、ka3、kb1、kb2以及kb3为盲因子,H是以h为加密私钥对G进行加密得到的点,大小等于h*G,且G和H都在加密曲线上。其中,h称为加密私钥,H为加密公钥。由于计算两个大素数的乘积十分容易,但对乘积进行质因数分解却很难,所以当h并不为人所知,仅得知H的情形下,无法通过加密公钥H获得加密私钥h对密文进行解密,从而提高了数据的保密性。
在一些可行的实施方式中,上述保序签名由保序私钥加密得到。其中,上述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定。其中,上述KA由上述第一加密子数据的保序盲因子确定,上述KB由上述第二加密子数据的保序盲因子确定。
订货商、生产商和经销商首先通过加密将自己的数据上传至区块链,并根据相关盲因子的信息生成签名,验证节点从区块链中获取到两组加密数据和相关验证签名进行验证,若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
S102:基于上述第一加密数据和上述第二加密数据确定第一公钥,利用上述第一公钥对上述保序签名进行验签。
在一些可行的实施方式中,上述基于上述第一加密数据和上述第二加密数据确定第一公钥,包括:基于上述第一加密数据中的第一加密子数据确定第一加密保序组,并将上述第一加密保序组中的各项进行累加得到第一加密保序参数CA。基于上述第二加密数据中的第二加密子数据确定第二加密保序组,并将上述第二加密保序组中的各项进行累加得到第二加密保序参数CB。将上述CA与上述CB相减,得到上述第一公钥P1。
利用P1对保序签名进行验签,可以通过验签,说明第一加密数据和第二加密数据对应的明文相等且同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
S103:若对上述保序签名验签不通过,则根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将上述重排后的第二加密数据的排序信息回传至区块链,获取等值签名。
在一些可行的实施方式中,可以根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据。例如,当明文a1=b3,a2=b1,a3=b2时,可以通过密文之间的特性计算第一加密子数据密文的对称性,以及第二加密子数据密文的对称性,得到A1,A2,A3和B1,B2,B3对称性的值为:5、10、3和3、5、10。按照第一加密子数据密文的对称性调整第二加密子数据的排序,得到重排后的第二加密数据B’=B’1||B’2||B’3,其中,B’1=B3,B’2=B1,B’3=B2。将上述重排后的第二加密数据的排序信息回传至区块链,即将B’1=B3,B’2=B1,B’3=B2回传至区块链,得到等值签名。
在一些可行的实施方式中,上述等值签名由等值私钥加密得到。其中,上述等值私钥由第一加密等值盲因子和K’A与第二加密等值盲因子和K’B确定。其中,上述K’A由上述第一加密子数据的等值盲因子确定,上述K’B由上述第二加密子数据的等值盲因子确定。
在验证节点将加密子数据进行重排之后,将重排的信息回传给区块链,从中获取到新的等值签名进行验证。若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
S104:基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
在一些可行的实施方式中,上述基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,包括:基于上述第一加密数据中的第一加密子数据确定第一加密等值组,并将上述第一加密等值组中的各项进行累加得到第一加密等值参数DA。基于上述重排后的第二加密数据中的第二加密子数据确定第二加密等值组,并将上述第二加密等值组中的各项进行累加得到第二加密等值参数DB。将上述DA与上述DB相减,得到上述第二公钥P2。
利用P2对等值签名进行验签,可以通过验签,说明第一加密数据和重排后的第二加密数据对应的明文相等且同序,即第一加密数据和第二加密数据对应的明文相等但不同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
本发明实施例中,通过将盲因子与项数相关联,得到保序盲因子和保序私钥,从而生成保序签名的过程,可以在不解密的情况下,实现对两个加密数据对应的明文数据是否等值且同序进行严格检测;通过将第二加密子数据按照第一加密子数据的密文属性进行重排,得到重排后的第二加密数据,可以在不解密的情况下,实现对两个加密数据对应的明文是否等值但不同序进行检测,从而丰富验证场景,提高验证效率。
请参见图3,图3是本发明实施例提供的数据验证方法的另一流程示意图。如图所示的数据验证方法可包括步骤:
S201:从区块链中获取第一加密数据、第二加密数据以及保序签名。
在一些可行的实施方式中,上述第一加密子数据和上述第二加密子数据由椭圆曲线加密法ECC加密生成,且符合密码学中的佩德森复数Pedersen Commitment格式,即Comm=m*U+k*V,其中Comm为加密子数据,m为加密子数据对应的明文,k为盲因子,U和V为特定椭圆曲线上生成的点且公开。以这种形式生成的Comm很难进行因式分解,即即使知道U和V以及m*U和k*V,也无法得到m和k的值。
具体地,上述第一加密数据由多个第一加密子数据组成,上述第二加密数据由多个第二加密子数据组成。为描述方便,本实施例以每个加密数据包括三个加密子数据为例,以A来表示第一加密数据,以A1、A2、A3分别表示对明文a1、a2、a3进行椭圆曲线加密法加密得到的三个第一加密子数据,则A可表示为A1||A2||A3,表示A1,A2,A3按照该顺序组合为A。以B来表示第二加密数据,以B1、B2、B3分别表示对明文b1、b2、b3进行椭圆曲线加密法加密得到的三个第二加密子数据,则B可表示为B1||B2||B3,表示B1、B2、B3按照该顺序组合为B。其中,生成第一加密子数据与第二加密子数据所用的加密曲线相同,可以为P256曲线、P224曲线、P384曲线以及P512曲线等曲线中的一种。
其中,各第一加密子数据和各第二加密子数据可以如下述公式(7)-公式(12)所示:
A1=a1*G+ka1*H,(7)
A2=a2*G+ka2*H,(8)
A3=a3*G+ka3*H,(9)
B1=b1*G+kb1*H,(10)
B2=b2*G+kb2*H,(11)
B3=b3*G+kb3*H,(12)
其中,G为基点,ka1、ka2、ka3、kb1、kb2以及kb3为盲因子,H是以h为加密私钥对G进行加密得到的点,大小等于h*G,且G和H都在加密曲线上。其中,h称为加密私钥,H为加密公钥。由于计算两个大素数的乘积十分容易,但对乘积进行质因数分解却很难,所以当h并不为人所知,仅得知H的情形下,无法通过加密公钥H获得加密私钥h对密文进行解密,从而提高了数据的保密性。
在一些可行的实施方式中,上述保序签名由保序私钥加密得到。其中,上述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定。其中,上述KA由上述第一加密子数据的保序盲因子确定,上述KB由上述第二加密子数据的保序盲因子确定。
具体地,如下述公式(13)-公式(14)所示:
KA=1*ka1+2*ka2+3*ka3,(13)
KB=1*kb1+2*kb2+3*kb3,(14)
其中,1*ka1、2*ka2、3*ka3、1*kb1、2*kb2以及3*kb3为保序盲因子,保序盲因子可以通过盲因子及其对应的加密子数据在加密数据中的顺序得到,即加密子数据在第几项就乘以几。计算KA与KB的差值,得到保序私钥,以保序私钥对数据(例如A的哈希值、B的哈希值等数据)进行加密生成签名,作为保序签名,并将该保序签名提供给区块链的验证节点进行验签。
订货商、生产商和经销商首先通过加密将自己的数据上传至区块链,并根据相关盲因子的信息生成签名,验证节点从区块链中获取到两组加密数据和相关验证签名进行验证,若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
S202:基于上述第一加密数据和上述第二加密数据确定第一公钥。
S203:利用上述第一公钥对上述保序签名进行验签,若对上述保序签名验签通过执行步骤S204,否则执行步骤S205。
S204:若对保序签名验签通过,则确定第一加密数据与第二加密数据对应的明文相等且同序。
在一些可行的实施方式中,可以将第一加密数据中的第一加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第一加密保序组,并将上述第一加密保序组中的各项进行累加得到第一加密保序参数CA;将第二加密数据中的第二加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第二加密保序组,并将上述第二加密保序组中的各项进行累加得到第二加密保序参数CB。如下述公式(15)-公式(16)所示:
CA=1*A1+2*A2+3*A3,(15)
CB=1*B1+2*B2+3*B3,(16)
将上述CA与上述CB相减,得到上述第一公钥P1,如公式(17)所示:
P1=CA-CB=1*(A1-B1)+2*(A2-B2)+3*(A3-B3),(17)
当且仅当a1=b1,a2=b2且a3=b3,即第一加密数据和第二加密数据对应的明文相等且同序时,P1可以通过公式(18)表示:
P1=1*(ka1-kb1)*H+2*(ka2-kb2)*H+3*(ka3-kb3)*H,(18)
此时利用P1对保序签名进行验签,可以通过验签,说明第一加密数据和第二加密数据对应的明文相等且同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
S205:若对保序签名验签不通过,则确定各第一加密子数据之间的密文相似度,各第一加密子数据的第一组成顺序,以及各第二加密子数据之间的密文相似度。
S206:根据各第一加密子数据之间的密文相似度、各第二加密子数据之间的密文相似度以及第一组成顺序调整各第二加密子数据组成顺序以得到重排后的第二加密数据并将上述重排后的第二加密数据的排序信息回传至区块链,获取等值签名。
在一些可行的实施方式中,例如运用同态加密的方法可以使加密后的密文保留一些明文数据的性质,这使得对密文进行的运算相当于对明文直接进行运算,这一特性可以通过前文所述的椭圆曲线加密法ECC实现,即可以计算第一加密数据中的各第一加密子数据之间的密文相似度,和第二加密数据中的各第二加密子数据之间的密文相似度,根据上述第一加密子数据的密文相似度调整第二加密子数据的排序,得到重排后的第二加密数据。例如,当明文a1=b3,a2=b1,a3=b2时,可以通过密文之间的相似性,计算第一加密子数据密文的之间的汉明距离,以及第二加密子数据密文的之间的汉明距离,得到A1分别与A2和A3的汉明距离、A2分别与A1和A3的汉明距离、以及A3分别与A1和A2的汉明距离为:(5,3),(5,10),(3,10),以及B1分别与B2和B3的汉明距离、B2分别与B1和B3的汉明距离、以及B3分别与B1和B2的汉明距离为:(10,5),(10,3),(5,3);则按照第一加密子数据密文的对称性将第二加密子数据排序,得到重排后的第二加密数据B’=B’1||B’2||B’3,其中,B’1=B3,B’2=B1,B’3=B2。将上述重排后的第二加密数据的排序信息回传至区块链,即将B’1=B3,B’2=B1,B’3=B2回传至区块链,得到等值签名。
在一些可行的实施方式中,上述等值签名由等值私钥加密得到。其中,上述等值私钥由第一加密等值盲因子和K’A与第二加密等值盲因子和K’B确定。其中,上述K’A由上述第一加密子数据的等值盲因子确定,上述K’B由上述第二加密子数据的等值盲因子确定。具体地,K’A和K’B如下述公式(19)-公式(20)所示
K’A=1*ka1+2*ka2+3*ka3=KA, (19)
K’B=1*k’b1+2*k’b2+3*k’b3=1*kb3+2*kb1+3*kb2, (20)
其中,1*ka1、2*ka2、3*ka3、1*kb3、2*kb1以及3*kb2为等值盲因子,等值盲因子可以通过重排后的加密子数据的盲因子及其对应的加密子数据在加密数据中的顺序得到,即加密子数据在第几项就乘以几,计算K’A与K’B的差值,得到等值私钥,以等值私钥对数据(例如A的哈希值、B的哈希值等数据)进行加密生成签名,作为等值签名,并将该等值签名提供给区块链的验证节点进行验签。
在验证节点将加密子数据进行重排之后,将重排的信息回传给区块链,从中获取到新的相关验证签名进行验证。若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
S207:基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
在一些可行的实施方式中,上述基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,包括:基于上述第一加密数据中的第一加密子数据确定第一加密等值组,并将上述第一加密等值组中的各项进行累加得到第一加密等值参数DA。基于上述重排后的第二加密数据中的第二加密子数据确定第二加密等值组,并将上述第二加密等值组中的各项进行累加得到第二加密等值参数DB。将上述DA与上述DB相减,得到上述第二公钥P2。
具体地,可以将第一加密数据中的第一加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第一加密等值组,并将上述第一加密等值组中的各项进行累加得到第一加密等值参数DA;将重排后的第二加密数据中的第二加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第二加密等值组,并将上述第二加密等值组中的各项进行累加得到第二加密等值参数DB。如下述公式(21)-公式(22)所示:
DA=1*A1+2*A2+3*A3,(21)
DB=1*B’1+2*B’2+3*B’3,(22)
将上述DA与上述DB相减,得到上述第二公钥P2,如公式(23)所示:
P2=DA-DB=1*(A1-B’1)+2*(A2-B’2)+3*(A3-B’3),(23)
当且仅当a1=b3,a2=b1且a3=b2,即第一加密数据和重排后的第二加密数据对应的明文相等且同序时,P2可以通过公式(24)表示:
P2=1*(ka1-kb3)*H+2*(ka2-kb1)*H+3*(ka3-kb2)*H,(24)
此时利用P2对等值签名进行验签,可以通过验签,说明第一加密数据和重排后的第二加密数据对应的明文相等且同序,即第一加密数据和第二加密数据对应的明文相等但不同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
本发明实施例中,通过将盲因子与项数相关联,得到保序盲因子和保序私钥,从而生成保序签名的过程,可以在不解密的情况下,实现对两个加密数据对应的明文数据是否等值且同序进行严格检测;通过计算第一加密子数据之间的汉明距离与第二加密子数据之间的汉明距离得到第一加密子数据和第二加密子数据的密文属性,将第二加密子数据按照第一加密子数据的相似度进行重排,得到重排后的第二加密数据,可以在不进行解密的情况下,实现对两个加密数据对应的明文是否等值但不同序进行检测,从而丰富验证场景,提高验证效率。
请参见图4,图4是本发明实施例提供的数据验证装置的一结构示意图。如图所示的数据验证装置包括:
数据传输模块401,用于从区块链中获取第一加密数据、第二加密数据以及保序签名,和/或将重排后的第二加密数据的排序信息回传至区块链,获取等值签名。
在一些可行的实施方式中,上述第一加密子数据和上述第二加密子数据由椭圆曲线加密法ECC加密生成,且符合密码学中的佩德森复数Pedersen Commitment格式,即Comm=m*U+k*V,其中Comm为加密子数据,m为加密子数据对应的明文,k为盲因子,U和V为特定椭圆曲线上生成的点且公开。以这种形式生成的Comm很难进行因式分解,即即使知道U和V以及m*U和k*V,也无法得到m和k的值。
具体地,上述第一加密数据由多个第一加密子数据组成,上述第二加密数据由多个第二加密子数据组成。为描述方便,本实施例以每个加密数据包括三个加密子数据为例,以A来表示第一加密数据,以A1、A2、A3分别表示对明文a1、a2、a3进行椭圆曲线加密法加密得到的三个第一加密子数据,则A可表示为A1||A2||A3,表示A1,A2,A3按照该顺序组合为A。以B来表示第二加密数据,以B1、B2、B3分别表示对明文b1、b2、b3进行椭圆曲线加密法加密得到的三个第二加密子数据,则B可表示为B1||B2||B3,表示B1、B2、B3按照该顺序组合为B。其中,生成第一加密子数据与第二加密子数据所用的加密曲线相同,可以为P256曲线、P224曲线、P384曲线以及P512曲线等曲线中的一种。
其中,
其中,各第一加密子数据和各第二加密子数据可以如下述公式(25)-公式(30)所示:
A1=a1*G+ka1*H,(25)
A2=a2*G+ka2*H,(26)
A3=a3*G+ka3*H,(27)
B1=b1*G+kb1*H,(28)
B2=b2*G+kb2*H,(29)
B3=b3*G+kb3*H,(30)
其中,G为基点,ka1、ka2、ka3、kb1、kb2以及kb3为盲因子,H是以h为加密私钥对G进行加密得到的点,大小等于h*G,且G和H都在加密曲线上。其中,h称为加密私钥,H为加密公钥。由于计算两个大素数的乘积十分容易,但对乘积进行质因数分解却很难,所以当h并不为人所知,仅得知H的情形下,无法通过加密公钥H获得加密私钥h对密文进行解密,从而提高了数据的保密性。
在一些可行的实施方式中,上述保序签名由保序私钥加密得到。其中,上述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定。其中,上述KA由上述第一加密子数据的保序盲因子确定,上述KB由上述第二加密子数据的保序盲因子确定。
具体地,如下述公式(31)-公式(32)所示:
KA=1*ka1+2*ka2+3*ka3,(31)
KB=1*kb1+2*kb2+3*kb3,(32)
其中,1*ka1、2*ka2、3*ka3、1*kb1、2*kb2以及3*kb3为保序盲因子,保序盲因子可以通过盲因子及其对应的加密子数据在加密数据中的顺序得到,即加密子数据在第几项就乘以几,计算KA与KB的差值,得到保序私钥,以保序私钥对数据(例如A的哈希值、B的哈希值、或A和B哈希值的和等数据)进行加密生成签名,作为保序签名,并将该保序签名提供给区块链的验证节点进行验签。
订货商、生产商和经销商首先通过加密将自己的数据上传至区块链,并根据相关盲因子的信息生成签名,验证节点从区块链中获取到两组加密数据和相关验证签名进行验证,若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
保序验证模块402,用于基于上述第一加密数据和上述第二加密数据确定第一公钥,利用上述第一公钥对上述保序签名进行验签。
在一些可行的实施方式中,可以将第一加密数据中的第一加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第一加密保序组,并将上述第一加密保序组中的各项进行累加得到第一加密保序参数CA;将第二加密数据中的第二加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第二加密保序组,并将上述第二加密保序组中的各项进行累加得到第二加密保序参数CB。如下述公式(33)-公式(34)所示:
CA=1*A1+2*A2+3*A3,(33)
CB=1*B1+2*B2+3*B3,(34)
将上述CA与上述CB相减,得到上述第一公钥P1,如公式(35)所示:
P1=CA-CB=1*(A1-B1)+2*(A2-B2)+3*(A3-B3),(35)
当且仅当a1=b1,a2=b2且a3=b3,即第一加密数据和第二加密数据对应的明文相等且同序时,P1可以通过如下的等式表示:
P1=1*(ka1-kb1)*H+2*(ka2-kb2)*H+3*(ka3-kb3)*H,(36)
此时利用P1对保序签名进行验签,可以通过验签,说明第一加密数据和第二加密数据对应的明文相等且同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为订货商和生产商,则可以开放全部权限,在订货商和生产商之间共享全部的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是订货商和生产商(可能是经销商或其他人和生产商),要进行进一步验证。
密文重排模块403,用于根据上述第一加密子数据的密文属性将上述第二加密子数据进行排序,得到重排后的第二加密数据,将上述第二加密数据的排序信息通过上述数据传输模块401回传至区块链。
在一些可行的实施方式中,例如运用同态加密的方法可以使加密后的密文保留一些明文数据的性质,这使得对密文进行的运算相当于对明文直接进行运算,这一特性可以通过前文所述的椭圆曲线加密法ECC实现,即可以计算第一加密数据中的各第一加密子数据之间的密文相似度,和第二加密数据中的各第二加密子数据之间的密文相似度,根据上述第一加密子数据的密文相似度将上述第二加密子数据进行排序,得到重排后的第二加密数据。例如,当明文a1=b3,a2=b1,a3=b2时,可以通过密文之间的相似性,计算第一加密子数据密文的之间的汉明距离,以及第二加密子数据密文的之间的汉明距离,得到A1分别与A2和A3的汉明距离、A2分别与A1和A3的汉明距离、以及A3分别与A1和A2的汉明距离为:(5,3),(5,10),(3,10),以及B1分别与B2和B3的汉明距离、B2分别与B1和B3的汉明距离、以及B3分别与B1和B2的汉明距离为:(10,5),(10,3),(5,3);则按照第一加密子数据密文的对称性将第二加密子数据排序,得到重排后的第二加密数据B’=B’1||B’2||B’3,其中,B’1=B3,B’2=B1,B’3=B2。将上述重排后的第二加密数据的排序信息回传至区块链,即将B’1=B3,B’2=B1,B’3=B2回传至区块链,得到等值签名。
在一些可行的实施方式中,上述等值签名由等值私钥加密得到。其中,上述等值私钥由第一加密等值盲因子和K’A与第二加密等值盲因子和K’B确定。其中,上述K’A由上述第一加密子数据的等值盲因子确定,上述K’B由上述第二加密子数据的等值盲因子确定。具体地,具体地,K’A和K’B如下述公式(37)-公式(38)所示
K’A=1*ka1+2*ka2+3*ka3=KA, (37)
K’B=1*k’b1+2*k’b2+3*k’b3=1*kb3+2*kb1+3*kb2, (38)
其中,1*ka1、2*ka2、3*ka3、1*kb3、2*kb1以及3*kb2为等值盲因子,等值盲因子可以通过重排后的加密子数据的盲因子及其对应的加密子数据在加密数据中的顺序得到,即加密子数据在第几项就乘以几,计算K’A与K’B的差值,得到等值私钥,以等值私钥对数据(例如A的哈希值、B的哈希值等数据)进行加密生成签名,作为等值签名,并将该等值签名提供给区块链的验证节点进行验签。
等值验证模块404,用于基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
在验证节点将加密子数据进行重排之后,将重排的信息回传给区块链,从中获取到新的相关验证签名进行验证。若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
在一些可行的实施方式中,上述基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,包括:基于上述第一加密数据中的第一加密子数据确定第一加密等值组,并将上述第一加密等值组中的各项进行累加得到第一加密等值参数DA。基于上述重排后的第二加密数据中的第二加密子数据确定第二加密等值组,并将上述第二加密等值组中的各项进行累加得到第二加密等值参数DB。将上述DA与上述DB相减,得到上述第二公钥P2。
具体地,可以将第一加密数据中的第一加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第一加密等值组,并将上述第一加密等值组中的各项进行累加得到第一加密等值参数DA;将重排后的第二加密数据中的第二加密子数据乘以在加密数据中的顺序,即加密子数据在第几项就乘以几,得到第二加密等值组,并将上述第二加密等值组中的各项进行累加得到第二加密等值参数DB。如下述公式(39)-公式(40)所示:
DA=1*A1+2*A2+3*A3,(39)
DB=1*B’1+2*B’2+3*B’3,(40)
将上述DA与上述DB相减,得到上述第二公钥P2,如公式(41)所示:
P2=DA-DB=1*(A1-B’1)+2*(A2-B’2)+3*(A3-B’3),(41)
当且仅当a1=b3,a2=b1且a3=b2,即第一加密数据和重排后的第二加密数据对应的明文相等且同序时,P2可以通过如公式(42)表示:
P2=1*(ka1-kb3)*H+2*(ka2-kb1)*H+3*(ka3-kb2)*H,(42)
此时利用P2对等值签名进行验签,可以通过验签,说明第一加密数据和重排后的第二加密数据对应的明文相等且同序,即第一加密数据和第二加密数据对应的明文相等但不同序,否则验签不通过。
若签名通过验证,则验证节点判定加密数据提供者为经销商和生产商,则可以开放部分权限,在订货商和生产商之间共享部分的生产商数据。若签名没有通过验证,则验证节点判断数据提供者不是经销商和生产商(可能是其他人),不会开放权限与之共享数据。
本发明实施例中,通过将盲因子与项数相关联,得到保序盲因子和保序私钥,从而生成保序签名的过程,可以在不解密的情况下,实现对两个加密数据对应的明文数据是否等值且同序进行严格检测;通过将第二加密子数据按照第一加密子数据的密文属性进行重排,得到重排后的第二加密数据,可以在不解密的情况下,实现对两个加密数据对应的明文是否等值但不同序进行检测,从而丰富验证场景,提高验证效率。
请参见图5,是本发明实施例提供的设备的结构示意图。如图5所示,本实施例中的设备可以包括:一个或多个输入设备100;存储器200,一个或多个处理器300和一个或多个输出设备400。上述处理器300、输入设备100、输出设备400和存储器200通过总线500连接。存储器200用于存储计算机程序,上述计算机程序包括程序指令,处理器300用于执行存储器200存储的程序指令。
应当理解,在本发明实施例中,所称处理器300可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备100可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备400可以包括显示器(LCD等)、扬声器等。
该存储器200可以包括只读存储器和随机存取存储器,并向处理器300提供指令和数据。存储器200的一部分还可以包括非易失性随机存取存储器。例如,存储器200还可以存储设备类型的信息。
其中,处理器300用于执行存储器200的程序指令,可以执行本发明实施例所描述的数据验证装置中的数据获取模块401、保序验证模块402、密文重排模块403以及等值验证模块404所执行的操作,并将文件识别结果反馈给输出设备400。
具体实现中,本发明实施例中所描述的处理器300、输入设备100、输出设备200可执行本发明实施例提供的数据验证方法的各个实施例中所描述的实现方式,也可执行本发明实施例所描述的数据验证装置的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行时实现:从区块链中获取第一加密数据、第二加密数据以及保序签名;基于上述第一加密数据和上述第二加密数据确定第一公钥,利用上述第一公钥对上述保序签名进行验签;若对上述保序签名验签不通过,则根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将上述重排后的第二加密数据的排序信息回传至区块链,获取等值签名;基于上述第一加密数据和上述重排后的第二加密数据确定第二公钥,利用上述第二公钥对上述等值签名进行验签。
上述计算机可读存储介质可以是前述任一实施例上述的设备的内部存储单元,例如设备的硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如上述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例上述的设备的内部存储单元,例如设备的硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如上述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
应当理解,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的数据验证方法可适用于任何区块链的节点、任何计算机及其相关设备上,适用于对各种加密算法得到的密文进行验证,具体可根据实际应用场景确定,在此不做限制。本发明实施例提供的数据验证方法可由任何具有数据验证功能的终端或者区块链节点执行。为便于表述,本发明实施例将采用区块链的验证节点为执行主体对数据进行验证的应用场景予以说明。
以上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据验证方法,其特征在于,所述方法包括:
从区块链中获取第一加密数据、第二加密数据以及保序签名,其中,所述第一加密数据由多个第一加密子数据组成,所述第二加密数据由多个第二加密子数据组成;
基于所述第一加密数据和所述第二加密数据确定第一公钥,利用所述第一公钥对所述保序签名进行验签;
若对所述保序签名验签不通过,则根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将所述重排后的第二加密数据的排序信息回传至区块链,获取等值签名;
基于所述第一加密数据和所述重排后的第二加密数据确定第二公钥,利用所述第二公钥对所述等值签名进行验签。
2.根据权利要求1所述的方法,其特征在于,所述第一加密子数据和所述第二加密子数据由椭圆曲线加密法ECC加密生成,且符合密码学中的佩德森复数Pedersen Commitment格式。
3.根据权利要求2所述的方法,其特征在于,所述保序签名由保序私钥加密得到;
其中,所述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定;
其中,所述KA由所述第一加密子数据的保序盲因子确定,所述KB由所述第二加密子数据的保序盲因子确定。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一加密数据和所述第二加密数据确定第一公钥,包括:
基于所述第一加密数据以及所述多个第一加密子数据组成所述第一加密数据的第一组成顺序确定第一加密保序参数;
基于所述第二加密数据以及所述多个第二加密子数据组成所述第二加密数据的第二组成顺序确定第二加密保序参数;
根据所述第一加密保序参数和所述第二加密保序参数确定所述第一公钥。
5.根据权利要求2所述的方法,其特征在于,加密子数据的密文属性包括加密子数据的密文相似度和组成顺序;
所述根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,包括:
确定所述第一加密数据中的各第一加密子数据之间的密文相似度以及所述第一加密数据中各第一加密子数据的第一组成顺序;
确定所述第二加密数据中的各第二加密子数据之间的密文相似度;
根据所述各第一加密子数据之间的密文相似度、所述各第二加密子数据之间的密文相似度以及所述第一组成顺序调整各第二加密子数据组成顺序以得到重排后的第二加密数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一加密数据和所述重排后的第二加密数据确定第二公钥,包括:
基于所述第一加密数据以及所述多个第一加密子数据组成所述第一加密数据的第一组成顺序确定第一加密等值参数;
基于所述重排后的第二加密数据以及所述多个第二加密子数据组成所述重排后的第二加密数据的第三组成顺序确定第二加密等值参数;
根据所述第一加密等值参数和所述第二加密等值参数确定所述第二公钥。
7.一种数据验证装置,其特征在于,包括:
数据传输模块,用于从区块链中获取第一加密数据、第二加密数据以及保序签名,和/或将重排后的第二加密数据的排序信息回传至区块链,获取等值签名;
保序验证模块,用于基于所述第一加密数据和所述第二加密数据确定第一公钥,利用所述第一公钥对所述保序签名进行验签;
密文重排模块,用于根据各第一加密子数据的密文属性和各第二加密子数据的密文属性调整各第二加密子数据的组成顺序以得到重排后的第二加密数据,并将所述重排后的第二加密数据的排序信息通过所述数据传输模块回传至区块链;
等值验证模块,用于基于所述第一加密数据和所述重排后的第二加密数据确定第二公钥,利用所述第二公钥对所述等值签名进行验签。
8.根据权利要求7所述的装置,其特征在于,所述保序签名由保序私钥加密得到;
其中,所述保序私钥由第一加密保序盲因子和KA与第二加密保序盲因子和KB确定;
其中,所述KA由所述第一加密子数据的保序盲因子确定,所述KB由所述第二加密子数据的保序盲因子确定。
9.一种数据验证设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050441.4A CN112100688A (zh) | 2020-09-29 | 2020-09-29 | 数据验证方法、装置、设备以及存储介质 |
PCT/CN2021/109165 WO2022068354A1 (zh) | 2020-09-29 | 2021-07-29 | 数据验证方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050441.4A CN112100688A (zh) | 2020-09-29 | 2020-09-29 | 数据验证方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100688A true CN112100688A (zh) | 2020-12-18 |
Family
ID=73783897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011050441.4A Pending CN112100688A (zh) | 2020-09-29 | 2020-09-29 | 数据验证方法、装置、设备以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112100688A (zh) |
WO (1) | WO2022068354A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022068354A1 (zh) * | 2020-09-29 | 2022-04-07 | 深圳壹账通智能科技有限公司 | 数据验证方法、装置、设备以及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544552B (zh) * | 2022-11-29 | 2023-03-14 | 蓝象智联(杭州)科技有限公司 | 一种不暴露明文数据的相似性检测方法、装置及存储介质 |
CN116049264B (zh) * | 2023-04-03 | 2023-06-23 | 广东省建设工程质量安全检测总站有限公司 | 一种基于区块链的工程试验数据分析管理方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809643A (zh) * | 2018-07-11 | 2018-11-13 | 飞天诚信科技股份有限公司 | 一种设备与云端协商密钥的方法、系统及设备 |
US20190036678A1 (en) * | 2015-01-12 | 2019-01-31 | Morphology, LLC | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
CN109919610A (zh) * | 2019-01-14 | 2019-06-21 | 如般量子科技有限公司 | 基于p2p公钥池的抗量子计算区块链保密交易方法和系统 |
CN109936456A (zh) * | 2019-01-15 | 2019-06-25 | 如般量子科技有限公司 | 基于私钥池的抗量子计算数字签名方法和系统 |
CN110061845A (zh) * | 2019-03-14 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 区块链数据加密方法、装置、计算机设备及存储介质 |
CN110224985A (zh) * | 2019-05-07 | 2019-09-10 | 平安科技(深圳)有限公司 | 数据处理的方法及相关装置 |
CN110493009A (zh) * | 2019-09-23 | 2019-11-22 | 百度在线网络技术(北京)有限公司 | 签名的生成方法和验证方法、装置、设备和介质 |
CN110929272A (zh) * | 2019-11-06 | 2020-03-27 | 山东易通发展集团有限公司 | 一种具有电子合同私密签署的客户端,签署平台、系统及方法 |
CN111343160A (zh) * | 2020-02-13 | 2020-06-26 | 南京如般量子科技有限公司 | 基于秘密共享和路由装置的抗量子计算区块链交易方法和系统 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111553792A (zh) * | 2020-03-24 | 2020-08-18 | 平安科技(深圳)有限公司 | 基于区块链的数据验证方法及装置 |
CN111565109A (zh) * | 2020-07-16 | 2020-08-21 | 百度在线网络技术(北京)有限公司 | 一种区块链的密钥处理方法、装置、设备和介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768639B (zh) * | 2018-06-06 | 2021-07-06 | 电子科技大学 | 一种公钥保序加密方法 |
CN110069939A (zh) * | 2019-03-12 | 2019-07-30 | 平安科技(深圳)有限公司 | 加密数据一致性校验方法、装置、计算机设备及存储介质 |
CN110399735A (zh) * | 2019-06-21 | 2019-11-01 | 深圳壹账通智能科技有限公司 | 加密数据大小关系证明方法、装置、设备及存储介质 |
CN111211911B (zh) * | 2019-12-31 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 一种协同签名方法、装置、设备及系统 |
CN111709738B (zh) * | 2020-05-18 | 2023-08-01 | 杜晓楠 | 区块链系统中隐藏交易金额的方法、计算机可读存储介质和区块链系统 |
CN112100688A (zh) * | 2020-09-29 | 2020-12-18 | 深圳壹账通智能科技有限公司 | 数据验证方法、装置、设备以及存储介质 |
-
2020
- 2020-09-29 CN CN202011050441.4A patent/CN112100688A/zh active Pending
-
2021
- 2021-07-29 WO PCT/CN2021/109165 patent/WO2022068354A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190036678A1 (en) * | 2015-01-12 | 2019-01-31 | Morphology, LLC | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
CN108809643A (zh) * | 2018-07-11 | 2018-11-13 | 飞天诚信科技股份有限公司 | 一种设备与云端协商密钥的方法、系统及设备 |
CN109919610A (zh) * | 2019-01-14 | 2019-06-21 | 如般量子科技有限公司 | 基于p2p公钥池的抗量子计算区块链保密交易方法和系统 |
CN109936456A (zh) * | 2019-01-15 | 2019-06-25 | 如般量子科技有限公司 | 基于私钥池的抗量子计算数字签名方法和系统 |
CN110061845A (zh) * | 2019-03-14 | 2019-07-26 | 深圳壹账通智能科技有限公司 | 区块链数据加密方法、装置、计算机设备及存储介质 |
CN110224985A (zh) * | 2019-05-07 | 2019-09-10 | 平安科技(深圳)有限公司 | 数据处理的方法及相关装置 |
CN110493009A (zh) * | 2019-09-23 | 2019-11-22 | 百度在线网络技术(北京)有限公司 | 签名的生成方法和验证方法、装置、设备和介质 |
CN110929272A (zh) * | 2019-11-06 | 2020-03-27 | 山东易通发展集团有限公司 | 一种具有电子合同私密签署的客户端,签署平台、系统及方法 |
CN111343160A (zh) * | 2020-02-13 | 2020-06-26 | 南京如般量子科技有限公司 | 基于秘密共享和路由装置的抗量子计算区块链交易方法和系统 |
CN111339569A (zh) * | 2020-02-26 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111553792A (zh) * | 2020-03-24 | 2020-08-18 | 平安科技(深圳)有限公司 | 基于区块链的数据验证方法及装置 |
CN111565109A (zh) * | 2020-07-16 | 2020-08-21 | 百度在线网络技术(北京)有限公司 | 一种区块链的密钥处理方法、装置、设备和介质 |
Non-Patent Citations (2)
Title |
---|
DING YONG 等: "A Novel Fully Homomorphic Encryption Scheme Bsed on LWE", 《WUHAN UNIVERSITY JOURNAL OF NATURAL SCIENCES》, vol. 21, no. 1, 31 December 2016 (2016-12-31), pages 84 - 92, XP035594421, DOI: 10.1007/s11859-016-1142-0 * |
王鑫 等: "基于商密SM9算法的安全高效数据采集网关研究", 《电力安全技术》, vol. 20, no. 11, 31 December 2018 (2018-12-31), pages 42 - 46 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022068354A1 (zh) * | 2020-09-29 | 2022-04-07 | 深圳壹账通智能科技有限公司 | 数据验证方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022068354A1 (zh) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7304398B2 (ja) | ブロックチェーンにより実装される方法及びシステム | |
Damgård et al. | The tinytable protocol for 2-party secure computation, or: Gate-scrambling revisited | |
CN111159779B (zh) | 报关数据处理方法、装置、计算机设备和存储介质 | |
CN112100688A (zh) | 数据验证方法、装置、设备以及存储介质 | |
EP1786139A1 (en) | Group signature system, member state judgment device, group signature method, and member state judgment program | |
CN112822255B (zh) | 基于区块链的邮件处理方法、邮件发送端、接收端及设备 | |
CN110362357A (zh) | 一种应用程序的配置文件管理方法及装置 | |
CN109245903B (zh) | 双方协同生成sm2算法的签名方法、装置及存储介质 | |
CN110597836B (zh) | 基于区块链网络的信息查询请求响应方法及装置 | |
CN107948155A (zh) | 密码校验方法、装置、计算机设备和计算机可读存储介质 | |
CN109978543B (zh) | 一种合同签署的方法、装置、电子设备及存储介质 | |
CN108055136A (zh) | 基于椭圆曲线的签名方法、装置、计算机设备及存储介质 | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
CN109361519A (zh) | 一种改进的包含秘密的数的生成方法及系统 | |
US11856095B2 (en) | Apparatus and methods for validating user data by using cryptography | |
CN107104788B (zh) | 终端及其不可抵赖的加密签名方法和装置 | |
CN112184441A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN111597586A (zh) | 一种区块链隐私保护方法、系统及装置 | |
US20170359177A1 (en) | Method and System for Cryptographic Decision-making of Set Membership | |
CN112199692A (zh) | 加密数据验证方法、装置、设备以及存储介质 | |
Liu et al. | Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators | |
CN115344882A (zh) | 基于可信计算环境的多方计算方法、装置及存储介质 | |
CN114239004A (zh) | 电子签章生成方法、装置、计算机设备和存储介质 | |
CN111885056A (zh) | 基于区块链的零知识证明方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI) Address before: Room 201, Building A, No. 1 Qianwan Road, Qianhaisheng Cooperation Zone, Shenzhen City, Guangdong Province, 518000 Applicant before: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI) |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |