WO2020253106A1 - 加密数据大小关系证明方法、装置、设备及存储介质 - Google Patents

加密数据大小关系证明方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2020253106A1
WO2020253106A1 PCT/CN2019/120850 CN2019120850W WO2020253106A1 WO 2020253106 A1 WO2020253106 A1 WO 2020253106A1 CN 2019120850 W CN2019120850 W CN 2019120850W WO 2020253106 A1 WO2020253106 A1 WO 2020253106A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
plaintext data
size relationship
signature
plaintext
Prior art date
Application number
PCT/CN2019/120850
Other languages
English (en)
French (fr)
Inventor
谢丹力
张文明
贾牧
陆陈一帆
Original Assignee
深圳壹账通智能科技有限公司
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 深圳壹账通智能科技有限公司 filed Critical 深圳壹账通智能科技有限公司
Publication of WO2020253106A1 publication Critical patent/WO2020253106A1/zh

Links

Images

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/602Providing cryptographic facilities or services

Definitions

  • This application relates to the field of blockchain technology, and in particular to a method, device, equipment and computer-readable storage medium for proving the size relationship of encrypted data.
  • the traditional method of verifying the size relationship between two encrypted data is to indirectly prove the size relationship between the corresponding plaintext data by providing zero knowledge of the difference between the two encrypted data.
  • the traditional proof method can only prove that the two encrypted data correspond to the plaintext data.
  • the relationship between is greater than or equal to or less than or equal, and it is impossible to directly prove the greater than or less than relationship.
  • the main purpose of this application is to provide a method, device, equipment and computer-readable storage medium for proving the size relationship of encrypted data, which aims to solve the technical problem that the traditional verification method cannot directly prove the greater or less than relationship between two encrypted data.
  • this application provides a method for proving the size relationship of encrypted data, which includes the following steps:
  • Use signature as the proof that the plaintext data c is greater than or equal to 0 publish the signature, ciphertext data A and B to the blockchain for the data demander to verify the signature through the RangeProof algorithm, and determine the plaintext data a based on the verification result The relationship with the size of b.
  • the present application also provides an encrypted data size relationship certification device, the encrypted data size relationship certification device including:
  • the signature generation module is used to take message, c, and y as input parameters, sign the input parameters through the RangeProof algorithm, and generate the signature signature;
  • the publishing module is used to use the signature as the proof that the plaintext data c is greater than or equal to 0, and publish the signature, ciphertext data A and B to the blockchain for the data demander to verify the signature through the RangeProof algorithm, and based on the signature verification As a result, the size relationship between the plaintext data a and b is determined.
  • the present application also provides a device for proving the size relationship of encrypted data
  • the device for proving the size relationship of encrypted data includes a memory, a processor, and stored on the memory and running on the processor.
  • Encrypted data size relationship certification program which implements the steps of the encrypted data size relationship certification method described in any one of the above when the encrypted data size relationship certification program is executed by the processor.
  • the present application also provides a computer-readable storage medium, the computer-readable storage medium stores an encrypted data size relationship certification program, and the encrypted data size relationship certification program is executed by the processor.
  • the plaintext data to be compared for the size relationship are a and b, and the corresponding ciphertext data are A and B.
  • the three parameters that this application submits to the data requester through the blockchain node are the ciphertext data A, B and the signature signature, that is, the ciphertext data A and B of the plaintext data a and b participate in the calculation of the size relationship. Therefore, the specific values of the plaintext data a and b are not leaked. Therefore, while ensuring data privacy and security, it realizes the determination of the size relationship between ciphertext data, and improves the comparison method of the size relationship between encrypted data.
  • FIG. 1 is a schematic diagram of the structure of the device hardware operating environment involved in the embodiment of the device for proof of the size relationship between encrypted data of the application;
  • FIG. 2 is a schematic flowchart of a first embodiment of a method for proving the size relationship of encrypted data in this application;
  • FIG. 3 is a schematic flowchart of a second embodiment of a method for verifying the size relationship of encrypted data according to the application
  • FIG. 4 is a schematic flowchart of a third embodiment of a method for verifying the size relationship of encrypted data in this application;
  • FIG. 5 is a schematic diagram of functional modules of an embodiment of an apparatus for proving the size relationship of encrypted data according to this application.
  • This application provides a device for proving the size relationship of encrypted data.
  • FIG. 1 is a schematic structural diagram of a device hardware operating environment involved in an embodiment of a device for proving the size relationship of encrypted data in this application.
  • the encrypted data size relationship proof device may include: a processor 1001, such as a CPU, a communication bus 1002, a user interface 1003, a network interface 1004, and a memory 1005.
  • the communication bus 1002 is used to implement connection and communication between these components.
  • the user interface 1003 may include a display screen (Display) and an input unit such as a keyboard (Keyboard), and the optional user interface 1003 may also include a standard wired interface and a wireless interface.
  • the network interface 1004 may optionally include a standard wired interface and a wireless interface (such as a WI-FI interface).
  • the memory 1005 may be a high-speed RAM memory or a non-volatile memory (non-volatile memory), such as a magnetic disk memory.
  • the memory 1005 may also be a storage device independent of the foregoing processor 1001.
  • the hardware structure of the encrypted data size relationship certification device shown in FIG. 1 does not constitute a limitation on the encrypted data size relationship certification device, and may include more or less components than shown in the figure, or a combination Certain components, or different component arrangements.
  • the memory 1005 which is a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and an encrypted data size relationship certification program.
  • the operating system is a program that manages and controls the size of encrypted data to prove the device and software resources, and supports the operation of network communication modules, user interface modules, encrypted data size relationships and other programs or software;
  • the network communication module is used to manage and Control the network interface 1004;
  • the user interface module is used to manage and control the user interface 1003.
  • the network interface 1004 is mainly used to connect to the system backend, and to communicate with the system backend;
  • the user interface 1003 is mainly used to connect the client (user end), and the client Perform data communication;
  • the encrypted data size relationship certification device calls the encrypted data size relationship certification program stored in the memory 1005 through the processor 1001, and executes the operations of the following embodiments of the encrypted data size relationship certification method.
  • FIG. 2 is a schematic flowchart of a first embodiment of a method for proving the size relationship of encrypted data in this application.
  • the method for proving the size relationship of encrypted data includes the following steps:
  • a and b are used to represent any two plaintext data, and A and B are used to represent two ciphertext data corresponding to a and b.
  • the size relationship between the plaintext data a and b may be either a>b or b>a, whether a>b or b>a is proved, which needs to be determined according to the proof requirements of specific application scenarios.
  • a and b represent any two plaintext data, a method to prove a>b is equivalent to a method to prove b>a.
  • Step S130 taking message, c, and y as input parameters, signing the input parameters through the RangeProof algorithm, and generating a signature signature;
  • message, c, and y are used as input parameters, and the input parameters are signed by the RangeProof algorithm, and then the signature is output.
  • signature means "the plaintext data c is greater than or equal to 0" proof.
  • Step S140 using the signature as the proof that the plaintext data c is greater than or equal to 0, publish the signature, ciphertext data A and B on the blockchain for the data demander to verify the signature through the RangeProof algorithm, and determine based on the verification result The size relationship between plaintext data a and b.
  • the signature obtained through the RangeProof algorithm signature is used as the proof that the plaintext data c is greater than or equal to 0.
  • the signature is also submitted to the data requester, and then by The data requester verifies the signature and determines the size relationship between the plaintext data a and b based on the verification result.
  • the data provider and the data demander are both blockchain nodes, and a blockchain node can be either a data provider or a data demander alone, or a data provider and a data demander at the same time.
  • the data published on the blockchain can only be written into the blockchain or processed on the blockchain after being verified by other nodes on the blockchain.
  • the three parameters submitted to the data requester through the blockchain node are the ciphertext data A, B and the signature signature, that is, the ciphertext data A, B of the plaintext data a and b are provided to participate in the data size relationship Therefore, the specific values of plaintext data a and b are not leaked. Therefore, while ensuring data privacy and security, it realizes the determination of the size relationship between ciphertext data and improves the comparison method of the size relationship between encrypted data .
  • FIG. 3 is a schematic flowchart of a second embodiment of a method for proving the size relationship of encrypted data according to this application.
  • the method for proving the size relationship of encrypted data further includes:
  • Step S210 Obtain the proof signature that the ciphertext data A, B and the plaintext data c published on the blockchain by the data provider are greater than or equal to 0;
  • the nodes on the blockchain can be either the data provider or the data demander.
  • the blockchain node serves as the data demander, it is necessary to perform data processing on the data published by the data provider on the blockchain. Sign verification.
  • the data requester specifically verifies whether the signature signature is true based on the proof signature that the ciphertext data A, B and the plaintext data c published on the blockchain by the data provider are greater than or equal to 0.
  • the ciphertext data C corresponding to the plaintext data c
  • All nodes on the blockchain use the same elliptic curve encryption algorithm.
  • the encrypted data C is encrypted using the same elliptic curve encryption algorithm as the encrypted data A and B, and the message used by the data requester is the same as the message used by the data processor.
  • step S230 using message, C, and signature as input parameters, the input parameters are verified by the RangeProof algorithm, and the verification result is obtained;
  • Step S240 Determine the size relationship between the plaintext data a and b based on the signature verification result. If the signature verification result proves to be true, it is determined that the plaintext data a is greater than b.
  • the RangeProof algorithm is used to verify the signature.
  • the input parameters are message, C, and signature, and the output result is true/false (that is, whether the verification is true or false). If the verification result is true, then It is determined that the plaintext data a is greater than b. If the verification result is that the proof is false, the size relationship between the plaintext data a and b cannot be determined.
  • the plaintext data a is greater than b.
  • the RangeProof algorithm is a zero-knowledge proof algorithm. In order to facilitate the understanding of this application, the following gives an example of the specific implementation process of the RangeProof algorithm:
  • Step 2 Process a total of 16 numbers from a 15 to a 0 sequentially;
  • Step 2.2 Calculation:
  • step 2.2 the 4 public-private key pairs of 0 ⁇ 4 13 , 1 ⁇ 4 13 , 2 ⁇ 4 13 , and 3 ⁇ 4 13 are constructed, which are: (?, C 20 ), (x2, C 21 ), (?,C 22 ), (?,C 23 ).
  • the ring signature satisfies such a property: Take the above as an example, suppose there are 4 people in the member group. If one person in the member group provides his own private key (assuming x2), combined with the public key C 20 of other people, C 22 , C 23 , can be calculated to generate a signature Sig, and any other person, as long as they get the public keys C 20 , C 21 , C 22 , C 23 , they can verify that this Sig must be any one of these 4 people It was signed by someone, but it’s not known who this person is.
  • Step 2.4 Similarly, refer to steps 2.1-2.4, and perform the same processing on all other numbers respectively, and finally get:
  • step 1
  • Step 2.1 Also take a 13 as an example:
  • a 13 has 4 possibilities: 0 ⁇ 4 13 , 1 ⁇ 4 13 , 2 ⁇ 4 13 , 3 ⁇ 4 13 ;
  • Step 2.2 Verify the ring signature
  • Step 2.3 By analogy, check all the 16 numbers, return true if all of them pass, and return false if any of them fail.
  • the RangeProof algorithm guarantees that the number a must be (a 15 a 14 a 13 ....a 1 a 0 ) 4 , which indirectly guarantees that this number must be within the range of 4 16 , which is 2 Within 32 . Therefore, the RangeProof algorithm can verify that the number a is greater than or equal to zero.
  • FIG. 4 is a schematic flowchart of a third embodiment of a method for proving the size relationship of encrypted data according to this application. Based on the first embodiment of the foregoing method, in this embodiment, before the foregoing step S110, the method further includes:
  • Step S10 Obtain original plaintext data used to prove the size relationship of encrypted data
  • Step S20 judging whether the original plaintext data is a positive integer
  • Step S30 if yes, use the original plaintext data as plaintext data a, b;
  • step S40 if not, the original plaintext data is converted to a decimal point to obtain the plaintext data of a positive integer, and the plaintext data of the positive integer is used as the plaintext data a, b.
  • the verification method specifically includes:
  • the encrypted data corresponding to n and h and the encrypted data corresponding to n and k are respectively verified for the encrypted data size relationship, and the size relationship between n and h, n And the magnitude of k;
  • the verification of the mathematical relationship of different data is split into the verification of the size relationship between multiple pairs of data, thereby further expanding the application scenario of performing size relationship verification on different encrypted data.
  • This application also provides a device for proving the size relationship of encrypted data.
  • FIG. 5 is a schematic diagram of functional modules of an embodiment of an apparatus for proving the size relationship of encrypted data according to the present application.
  • the device for proving the size relationship of encrypted data includes:
  • a and b are used to represent any two plaintext data, and A and B are used to represent two ciphertext data corresponding to a and b.
  • the size relationship between the plaintext data a and b may be a>b, or b>a, whether a>b or b>a is proved, which needs to be determined according to the proof requirements of specific application scenarios.
  • a and b represent any two plaintext data, a method to prove a>b is equivalent to a method to prove b>a.
  • the signature generation module 30 is used to take message, c, and y as input parameters, sign the input parameters through the RangeProof algorithm, and generate a signature signature;
  • message, c, and y are used as input parameters, and the input parameters are signed by the RangeProof algorithm, and then the signature is output.
  • signature means "the plaintext data c is greater than or equal to 0" proof.
  • the issuing module 40 is used to use the signature as the proof that the plaintext data c is greater than or equal to 0, and publish the signature, ciphertext data A and B to the blockchain for the data demander to verify the signature through the RangeProof algorithm, and based on the verification
  • the sign result determines the size relationship between the plaintext data a and b.
  • the signature obtained through the RangeProof algorithm signature is used as the proof that the plaintext data c is greater than or equal to 0.
  • the signature is also submitted to the data requester, and then by The data requester verifies the signature and determines the size relationship between the plaintext data a and b based on the verification result.
  • the data provider and the data demander are both blockchain nodes, and a blockchain node can be either a data provider or a data demander alone, or a data provider and a data demander at the same time.
  • the data published on the blockchain can only be written into the blockchain or processed on the blockchain after being verified by other nodes on the blockchain.
  • the three parameters submitted to the data requester through the blockchain node are the ciphertext data A, B and the signature signature, that is, the ciphertext data A, B of the plaintext data a and b are provided to participate in the data size relationship Therefore, the specific values of plaintext data a and b are not leaked. Therefore, while ensuring data privacy and security, it realizes the determination of the size relationship between ciphertext data and improves the comparison method of the size relationship between encrypted data .
  • the application also provides a computer-readable storage medium, which may be a non-volatile storage medium or a volatile storage medium.
  • an encrypted data size relationship certification program is stored on the computer-readable storage medium, and the encrypted data size relationship certification program is executed by a processor to realize the encrypted data as described in any of the above method embodiments. Steps of the method of proof of size relationship.
  • the method implemented when the encrypted data size relationship certification program is executed by the processor can refer to the various embodiments of the encrypted data size relationship certification method of the present application, so it will not be repeated.

Landscapes

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

Abstract

本申请涉及区块链技术领域,公开了一种加密数据大小关系证明方法,包括以下步骤:分别对明文数据a、b进行加密,得到对应密文数据A、B,A=a*G+x1*H,B=b*G+x2*H;分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),c=a-b-1,y=x1-x2;以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。本申请还公开了一种加密数据大小关系证明装置、设备及计算机可读存储介质。本申请在保证数据隐私和安全性的同时,实现了基于密文数据判定对应明文数据的大小关系,完善了加密数据大小关系的比较方式。

Description

加密数据大小关系证明方法、装置、设备及存储介质
本申请要求于2019年6月21日提交中国专利局、申请号为201910542027.6、发明名称为“加密数据大小关系证明方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本申请涉及区块链技术领域,尤其涉及一种加密数据大小关系证明方法、装置、设备及计算机可读存储介质。
背景技术
在区块链中,由于所有的数据都是加密存储的,因而也带来了很多麻烦。例如,在实际的商业案例中,有大量需要比较两笔加密金额大于小于关系的场景,比如:在供应链金融中,上游的生产商可以使用核心企业的订单进行贷款申请,而银行接收到申请后,必须能够判断生产商的贷款申请金额,小于其订单的总金额;又比如:在区块链的环保检测项目中,相关的企业需要向环保局出示自己的环境指标(比如排放的废水重金属含量)小于环保局定义的指标。
传统的验证两个加密数据大小关系的方法是通过提供两个加密数据差值的零知识明来间接证明对应明文数据之间的大小关系,但是传统证明方式只能证明两个加密数据对应明文数据之间的大于等于或小于等于关系,而无法直接证明大于或小于关系。
发明内容
本申请的主要目的在于提供一种加密数据大小关系证明方法、装置、设备及计算机可读存储介质,旨在解决传统证明方式无法直接证明两个加密数据之间大于或小于关系的技术问题。
为实现上述目的,本申请提供一种加密数据大小关系证明方法,所述加密数据大小关系证明方法包括以下步骤:
分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
进一步地,为实现上述目的,本申请还提供一种加密数据大小关系证明装置,所述加密数据大小关系证明装置包括:
加密模块,用于分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
第一参数计算模块,用于分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
签名生成模块,用于以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
发布模块,用于以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
进一步地,为实现上述目的,本申请还提供一种加密数据大小关系证明设备,所述加密数据大小关系证明设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的加密数据大小关系证明程序,所述加密数据大小关系证明程序被所述处理器执行时实现如上述任一项所述的加密数据大小关系证明方法的步骤。
进一步地,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有加密数据大小关系证明程序,所述加密数据大小关系证明程序被处理器执行时实现如上述任一项所述的加密数据大小关系证明方法的步骤。
本申请中,假设需要进行大小关系比较的明文数据为a和b,其对应的密文数据为A和B,通过计算c=(a-b-1)并通过RangeProof算法生成与A、B、c 相关的签名signature,然后将signature、A与B提供给数据需求方进行验签,如果验签通过,则说明c是一个大于等于0的数,也就是说:a-b-1>=0,也即a-b>=1>0。本申请通过区块链节点提交给数据需求方的三个参数为密文数据A、B以及签名signature,也即提供的是明文数据a、b的密文数据A、B参与大小关系的运算,因而没有泄露明文数据a、b的具体值,因此在保证了数据隐私安全性的同时,实现了对密文数据之间大小关系的判定,完善了加密数据之间大小关系的比较方式。
附图说明
图1为本申请加密数据大小关系证明设备实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本申请加密数据大小关系证明方法第一实施例的流程示意图;
图3为本申请加密数据大小关系证明方法第二实施例的流程示意图;
图4为本申请加密数据大小关系证明方法第三实施例的流程示意图;
图5为本申请加密数据大小关系证明装置一实施例的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请提供一种加密数据大小关系证明设备。
参照图1,图1为本申请加密数据大小关系证明设备实施例方案涉及的设备硬件运行环境的结构示意图。
如图1所示,该加密数据大小关系证明设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储 器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的加密数据大小关系证明设备的硬件结构并不构成对加密数据大小关系证明设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及加密数据大小关系证明程序。其中,操作系统是管理和控制加密数据大小关系证明设备与软件资源的程序,支持网络通信模块、用户接口模块、加密数据大小关系证明程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的加密数据大小关系证明设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;加密数据大小关系证明设备通过处理器1001调用存储器1005中存储的加密数据大小关系证明程序,并执行以下加密数据大小关系证明方法的各实施例的操作。
基于上述加密数据大小关系证明设备硬件结构,提出本申请加密数据大小关系证明方法的各个实施例。
参照图2,图2为本申请加密数据大小关系证明方法第一实施例的流程示意图。本实施例中,所述加密数据大小关系证明方法包括以下步骤:
步骤S110,分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
在某些应用场景中,为保证数据交互过程中的数据安全性,通常需要对明文数据进行加密,而加密数据是不能直接进行大小比较的。本实施例中,为便于对加密后的密文数据进行大小比较,因此,优选基于椭圆曲线加密算法对明文数据进行加密。为便于说明,本实施例中使用a、b表示任意的两个明文数据,使用A、B表示与a、b对应的两个密文数据。
明文数据a与b的大小关系既可能是a>b,也可能是b>a,是证明a>b, 还是证明b>a,这需要根据具体应用场景的证明需求而定。此外,由于a、b表示任意的两个明文数据,因此,给出了证明a>b的方法即相当于给出了证明b>a的方法。
明文数据a和b采用密码学中的Perdesen Commitment格式,使用ECC椭圆曲线加密算法进行加密,得到A=a*G+x1*H,B=b*G+x2*H,其中,G、H分别是同一个椭圆曲线的不同两个点,x1和x2表示盲因子且为随机数,用于保证A和B不被破解。
步骤S120,分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
本实施例中,若需要证明a>b,则只需证明a-1>=b即可,也即a-b>=1>0,a-b-1>=0。因此,本实施例中引入参数c,将明文数据a>b的证明转换为证明c>=0,也即需要提供c大于或等于0的证明。
因此,在生成c大于或等于0的证明之前,分别计算参数message、c、y,其中,message表示RangeProof算法的介质,具体内容为message=hash(string(A)+string(B)),也即message为对串联的密文数据A与B的字符串进行哈希运算所生成的哈希值。message为用于签名的消息,具体用来防止生成证明的人造假,因此message需要和参与运算的数据相关。
步骤S130,以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
本实施例中,为保证数据的安全性,因此优选采用零知识证明的方式实现加密数据大小关系的验证。优选采用RangeProof算法实现零知识证明。例如,假设有密文A=a*G+x1*H,若需要提供明文数据a大于或等于0的证明,但同时又不能暴露a的值,则可以使用RangeProof算法可以完成这个工作。
本实施例中,以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,进而输出签名signature。其中,signature表示“明文数据c大于或等于0”的证明。
步骤S140,以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
本实施例中,将通过RangeProof算法签名得到的signature作为明文数据 c大于或等于0的证明,在将加密数据A、B提交给数据需求方的同时,也将signature提交给数据需求方,进而由数据需求方对signature进行验签,并基于验签结果确定明文数据a与b的大小关系。
本实施例中,数据提供方与数据需求方都是区块链节点,一个区块链节点既可以单独是数据提供方或数据需求方,也可以同时是数据提供方与数据需求方。发布到区块链上的数据只有经过区块链上其他节点的验签后,才能写入区块链中或者进行区块链业务处理。
本实施例中,假设需要进行大小关系比较的明文数据为a和b,其对应的密文数据为A和B,通过计算c=(a-b-1)并通过RangeProof算法生成与A、B、c相关的签名signature,然后将signature、A与B提供给数据需求方进行验签,如果验签通过,则说明c>=0,也就是说a-b-1>=0,也即a-b>=1>0。本实施例对于数据需求方对signature的验签的具体实现过程不限。
本实施例通过区块链节点提交给数据需求方的三个参数为密文数据A、B以及签名signature,也即提供的是明文数据a、b的密文数据A、B来参与数据大小关系的运算,因而没有泄露明文数据a、b的具体值,因此在保证了数据隐私安全性的同时,实现了对密文数据之间大小关系的判定,完善了加密数据之间大小关系的比较方式。
参照图3,图3为本申请加密数据大小关系证明方法第二实施例的流程示意图。本实施例中,所述加密数据大小关系证明方法还包括:
步骤S210,获取数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature;
本实施例中,区块链上的节点既可以是数据提供方,也可以是数据需求方,当区块链节点作为数据需求方时,需要对数据提供方发布到区块链上的数据进行验签。
本实施例中,数据需求方具体基于数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature,验证签名signature是否为真。
步骤S220,分别计算参数message、C,其中,message=hash(string(A)+string(B)),C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H,C为明文数据c的密 文数据;
本实施例中,为便于对signature进行验签,因此需要构造出与明文数据c对应的密文数据C,C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H。区块链上各节点使用相同的椭圆曲线加密算法,加密数据C采用与加密数据A、B相同的椭圆曲线加密算法进行加密,并且数据需求方使用的message与数据处理方使用的message相同。
步骤S230,以message、C、signature为输入参数,通过RangeProof算法对输入参数进行验签,得到验签结果;
步骤S240,基于验签结果,确定明文数据a与b的大小关系,其中,若验签结果为证明为真,则判定明文数据a大于b。
本实施例中,采用RangeProof算法对signature进行验签,输入参数为message、C、signature,输出结果为true/false(即证明是真的还是假的),若验签结果为证明为真,则判定明文数据a大于b,若验签结果为证明为假,则无法判定明文数据a与b的大小关系。
本实施例中,通过RangeProof算法对签名signature进行验签,如果验签通过,则说明c>=0,也就是说a-b-1>=0,也即a-b>=1>0,进而可直接确定明文数据a大于b。
RangeProof算法是一种零知识证明算法,为便于理解本申请,下面对RangeProof算法的具体实现过程进行举例说明:
(一)RangeProof签名过程:
输入:message,a,x;
输出:sig;
为表述方便,选择a=(100000000) 10=(0011331132010000) 4来进行说明。
步骤1:用4进制表示a,所以a一共有16位,记为:a=(a 15a 14a 13....a 1a 0) 4=(0011331132010000) 4
步骤2:依次对a 15到a 0总共16个数进行分别处理;
下面以a 13为例进行说明:
a 13有4种可能:0×4 13,1×4 13,2×4 13,3×4 13(可以计算:4 13=67108864);其中1×4 13才是真实的数据;然后构建这四个数的公私钥对,方法是:
步骤2.1:计算:
C 2=1×67108864G+x2H
步骤2.2:计算:
C 20=C 2-0G=x2H+4 13G;
C 21=C 2-67108864G=x2G;
C 22=C 2-134217728G=x2G-4 13G;
C 23=C 2-201326592G=x2G–2*4 13G;
通过步骤2.2构建了0×4 13,1×4 13,2×4 13,3×4 13这4个数的公私钥对,分别是:(?,C 20),(x2,C 21),(?,C 22),(?,C 23)。
说明:公私钥对格式为:(私钥,公钥),其中,私钥使用?表示是因为私钥没有人知道,因为H=xG,x表示盲因子且为任意随机数。
步骤2.3:计算:
利用(?,C 20),(x2,C 21),(?,C 22),(?,C 23)对0×4 13,1×4 13,2×4 13,3×4 13这4个数做环签名,因此利用C 20,x2,C 22,C 23进行环签名,得到s2
说明:环签名满足这样一个性质:以上面为例,假设成员组中有4个人,如果成员组中的某个人提供自己的私钥(假设为x2),并结合其他人的公钥C 20,C 22,C 23,可以运算生成签名Sig,而任何一个其他人,只要拿到公钥C 20,C 21,C 22,C 23,就可以验证这个Sig一定是由这4个人中的任何一个人签名得到的,但是这个人是谁则无法知晓。
步骤2.4:同理参照步骤2.1-2.4,分别对其他所有数进行相同处理,最后得到:
C 0,C 1,...,C 15
以及:s0,s1,...,s15;
其中,C=C 0+C 1+C 2+...+C 15
同样的,对于盲因子x,也有:x=x1+x2+…+x15;
最后将C 0,C 1,...C 14,s0,s1,...,s15全部合在一起作为Sig输出。
(二)RangeProof验证签名过程:
输入:message,C,Sig;其中C=a*G+x*H;
输出:true or false;
步骤1:
计算C 15=C-C 0+C 1+C 2+...+C 14
步骤2.1:同样以a 13为例进行说明:
a 13有4种可能:0×4 13,1×4 13,2×4 13,3×4 13
计算:
C 20=C 2-0G=x2H+4 13G;
C 21=C 2-67108864G=x2G;
C 22=C 2-134217728G=x2G-4 13G;
C 23=C 2-201326592G=x2G–2*4 13G;
步骤2.2:验证环签名;
使用C 20,C 21,C 22,C 23对s2进行环签名验签,如果验签失败,则返回失败;
步骤2.3:以此类推,对16个数全部进行验签,全部通过则返回true,如果有任意一个失败,则返回false。
说明:RangeProof算法保证了数a一定是(a 15a 14a 13....a 1a 0) 4这样的形式,进而间接保证了这个数一定是在4 16范围之内,也就是2 32范围之内。因此,通过RangeProof算法可验证数a大于或等于0。
参照图4,图4为本申请加密数据大小关系证明方法第三实施例的流程示意图。基于上述方法第一实施例,本实施例中,在上述步骤S110之前,还包括:
步骤S10,获取用于进行加密数据大小关系证明的原始明文数据;
步骤S20,判断原始明文数据是否为正整数;
步骤S30,若是,则将原始明文数据作为明文数据a、b;
步骤S40,若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
本实施例中,在根据加密数据确定对应明文数据之间的大小关系验证时,由于是将明文数据a大于b的证明转换为a-b>=1>0的证明,因此需要保证明文数据都为正整数(任意正整数之间的差值大于或等于1)。
因此,在对明文数据进行加密之前,先判断原始明文数据是否为小数,若是,则对原始明文数据进行小数点定点化处理,从而将小数转换成整数。 例如,明文数据a=1.01,b=2,则将a和b同时放大100倍,a=101,b=200,从而保证用于生成密文数据A、B的明文数据a和b都是整数。
进一步地,在本申请加密数据大小关系证明方法一实施例中,还可用于进行加密数据隶属数值范围的验证,验证方法具体包括:
(1)获取用于进行加密数据隶属数值范围验证的原始明文数据n、h、k,其中,待验证的不等式关系为h<n<k;
(2)基于数值n与数值h、k之间的大小关系,将待验证的不等式关系拆分为n>h、k>n;
(3)采用上述方法第一、二实施例中的方式,分别对n、h对应的加密数据以及n、k对应的加密数据进行加密数据大小关系验证,得出n和h的大小关系、n和k的大小关系;
(4)基于n和h的大小关系、n和k的大小关系,最终确定不等式关系h<n<k是否为真。
本实施例中,在进行加密数据隶属数值范围验证时,可将证明某个数据隶属于一个数值范围内转换为将该数据分别与数值范围的两个端点进行大小关系验证,也即提供(n-a)>0且(b-n)>0的证明,即可证明n隶属于(a,b)之间。
本实施例将不同数据的数学关系的验证拆分为多对数据之间的大小关系验证,因而进一步扩展了对不同加密数据进行大小关系验证的应用场景。
本申请还提供一种加密数据大小关系证明装置。
参照图5,图5为本申请加密数据大小关系证明装置一实施例的功能模块示意图。本实施例中,所述加密数据大小关系证明装置包括:
加密模块10,用于分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
在某些应用场景中,为保证数据交互过程中的数据安全性,通常需要对明文数据进行加密,而加密数据是不能直接进行大小比较的。本实施例中,为便于对加密后的密文数据进行大小比较,因此,优选基于椭圆曲线加密算法对明文数据进行加密。为便于说明,本实施例中使用a、b表示任意的两个 明文数据,使用A、B表示与a、b对应的两个密文数据。
明文数据a与b的大小关系既可能是a>b,也可能是b>a,是证明a>b,还是证明b>a,这需要根据具体应用场景的证明需求而定。此外,由于a、b表示任意的两个明文数据,因此,给出了证明a>b的方法即相当于给出了证明b>a的方法。
明文数据a和b采用密码学中的Perdesen Commitment格式,使用ECC椭圆曲线加密算法进行加密,得到A=a*G+x1*H,B=b*G+x2*H,其中,G、H分别是同一个椭圆曲线的不同两个点,x1和x2表示盲因子且为随机数,用于保证A和B不被破解。
第一参数计算模块20,用于分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
本实施例中,若需要证明a>b,则只需证明a-1>=b即可,也即a-b>=1>0,a-b-1>=0。因此,本实施例中引入参数c,将明文数据a>b的证明转换为证明c>=0,也即需要提供c大于或等于0的证明。
因此,在生成c大于或等于0的证明之前,分别计算参数message、c、y,其中,message表示RangeProof算法的介质,具体内容为message=hash(string(A)+string(B)),也即message为对串联的密文数据A与B的字符串进行哈希运算所生成的哈希值。message为用于签名的消息,具体用来防止生成证明的人造假,因此message需要和参与运算的数据相关。
签名生成模块30,用于以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
本实施例中,为保证数据的安全性,因此优选采用零知识证明的方式实现加密数据大小关系的验证。优选采用RangeProof算法实现零知识证明。例如,假设有密文A=a*G+x1*H,若需要提供明文数据a大于或等于0的证明,但同时又不能暴露a的值,则可以使用RangeProof算法可以完成这个工作。
本实施例中,以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,进而输出签名signature。其中,signature表示“明文数据c大于或等于0”的证明。
发布模块40,用于以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof 算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
本实施例中,将通过RangeProof算法签名得到的signature作为明文数据c大于或等于0的证明,在将加密数据A、B提交给数据需求方的同时,也将signature提交给数据需求方,进而由数据需求方对signature进行验签,并基于验签结果确定明文数据a与b的大小关系。
本实施例中,数据提供方与数据需求方都是区块链节点,一个区块链节点既可以单独是数据提供方或数据需求方,也可以同时是数据提供方与数据需求方。发布到区块链上的数据只有经过区块链上其他节点的验签后,才能写入区块链中或者进行区块链业务处理。
本实施例中,假设需要进行大小关系比较的明文数据为a和b,其对应的密文数据为A和B,通过计算c=(a-b-1)并通过RangeProof算法生成与A、B、c相关的签名signature,然后将signature、A与B提供给数据需求方进行验签,如果验签通过,则说明c>=0,也就是说a-b-1>=0,也即a-b>=1>0。本实施例对于数据需求方对signature的验签的具体实现过程不限。
本实施例通过区块链节点提交给数据需求方的三个参数为密文数据A、B以及签名signature,也即提供的是明文数据a、b的密文数据A、B来参与数据大小关系的运算,因而没有泄露明文数据a、b的具体值,因此在保证了数据隐私安全性的同时,实现了对密文数据之间大小关系的判定,完善了加密数据之间大小关系的比较方式。
本申请还提供一种计算机可读存储介质,该存储介质可以是非易失性存储介质,也可以是易失性存储介质。
本实施例中,所述计算机可读存储介质上存储有加密数据大小关系证明程序,所述加密数据大小关系证明程序被处理器执行时实现如上述任一项方法实施例中所述的加密数据大小关系证明方法的步骤。其中,加密数据大小关系证明程序被处理器执行时所实现的方法可参照本申请加密数据大小关系证明方法的各个实施例,因此不再过多赘述。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的, 本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本申请的保护之内。

Claims (20)

  1. 一种加密数据大小关系证明方法,所述加密数据大小关系证明方法包括以下步骤:
    分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
    分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
    以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
    以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
  2. 如权利要求1所述的加密数据大小关系证明方法,所述加密数据大小关系证明方法还包括:
    获取数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature;
    分别计算参数message、C,其中,message=hash(string(A)+string(B)),C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H,C为明文数据c的密文数据;
    以message、C、signature为输入参数,通过RangeProof算法对输入参数进行验签,得到验签结果;
    基于验签结果,确定明文数据a与b的大小关系,其中,若验签结果为证明为真,则判定明文数据a大于b。
  3. 如权利要求1所述的加密数据大小关系证明方法,在所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还包括:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  4. 如权利要求2所述的加密数据大小关系证明方法,在所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还包括:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  5. 如权利要求3所述的加密数据大小关系证明方法,在所述获取用于进行加密数据大小关系证明的原始明文数据的步骤之前,还包括:
    获取用于进行加密数据隶属数值范围验证的原始明文数据n、h、k,其中,待验证的不等式关系为h<n<k;
    基于数值n与数值h、k之间的大小关系,将待验证的不等式关系拆分为n>h、k>n,以供分别对n、h对应的加密数据以及n、k对应的加密数据进行加密数据大小关系验证。
  6. 一种加密数据大小关系证明装置,所述加密数据大小关系证明装置包括:
    加密模块,用于分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
    第一参数计算模块,用于分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
    签名生成模块,用于以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
    发布模块,用于以signature作为明文数据c大于或等于0的证明,将 signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
  7. 如权利要求6所述的加密数据大小关系证明装置,所述加密数据大小关系证明装置还包括:
    第一获取模块,用于获取数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature;
    第二参数计算模块,用于分别计算参数message、C,其中,message=hash(string(A)+string(B)),C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H,C为明文数据c的密文数据;
    签名验证模块,用于以message、C、signature为输入参数,通过RangeProof算法对输入参数进行验签,得到验签结果;基于验签结果,确定明文数据a与b的大小关系,其中,若验签结果为证明为真,则判定明文数据a大于b。
  8. 如权利要求6所述的加密数据大小关系证明装置,所述加密数据大小关系证明装置还包括:
    第二获取模块,用于获取用于进行加密数据大小关系证明的原始明文数据;
    第一判断模块,用于判断原始明文数据是否为正整数;
    第一预处理模块,用于若原始明文数据为正整数,则将原始明文数据作为明文数据a、b;若原始明文数据为非正整数,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  9. 如权利要求8所述的加密数据大小关系证明装置,所述加密数据大小关系证明装置还包括:
    第三获取模块,用于获取用于进行加密数据隶属数值范围验证的原始明文数据n、h、k,其中,待验证的不等式关系为h<n<k;
    第二预处理模块,用于基于数值n与数值h、k之间的大小关系,将待验证的不等式关系拆分为n>h、k>n,以供分别对n、h对应的加密数据以及n、 k对应的加密数据进行加密数据大小关系验证。
  10. 如权利要求7所述的加密数据大小关系证明装置,所述加密数据大小关系证明装置还包括:
    第四获取模块,用于获取用于进行加密数据大小关系证明的原始明文数据;
    第二判断模块,用于判断原始明文数据是否为正整数;
    第三预处理模块,用于若原始明文数据为正整数,则将原始明文数据作为明文数据a、b;若原始明文数据为非正整数,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  11. 一种加密数据大小关系证明设备,所述加密数据大小关系证明设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的加密数据大小关系证明程序,所述加密数据大小关系证明程序被所述处理器执行时实现如下所述的加密数据大小关系证明方法的步骤:
    分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
    分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
    以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
    以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
  12. 如权利要求11所述的加密数据大小关系证明设备,所述加密数据大小关系证明程序被所述处理器执行时还实现如下所述的加密数据大小关系证明方法的步骤:
    获取数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature;
    分别计算参数message、C,其中,message=hash(string(A)+string(B)),C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H,C为明文数据c的密文数据;
    以message、C、signature为输入参数,通过RangeProof算法对输入参数进行验签,得到验签结果;
    基于验签结果,确定明文数据a与b的大小关系,其中,若验签结果为证明为真,则判定明文数据a大于b。
  13. 如权利要求11所述的加密数据大小关系证明设备,所述加密数据大小关系证明程序被所述处理器执行所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还执行如下步骤:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  14. 如权利要求12所述的加密数据大小关系证明设备,所述加密数据大小关系证明程序被所述处理器执行所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还执行如下步骤:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  15. 如权利要求13所述的加密数据大小关系证明设备,所述加密数据大小关系证明程序被所述处理器执行所述获取用于进行加密数据大小关系证明的原始明文数据的步骤之前,还执行如下步骤:
    获取用于进行加密数据隶属数值范围验证的原始明文数据n、h、k,其中,待验证的不等式关系为h<n<k;
    基于数值n与数值h、k之间的大小关系,将待验证的不等式关系拆分为n>h、k>n,以供分别对n、h对应的加密数据以及n、k对应的加密数据进行加密数据大小关系验证。
  16. 一种计算机可读存储介质,所述计算机可读存储介质上存储有加密数据大小关系证明程序,所述加密数据大小关系证明程序被处理器执行时实现如下所述的加密数据大小关系证明方法的步骤:
    分别对明文数据a、b进行加密,得到对应密文数据A、B,其中,A=a*G+x1*H,B=b*G+x2*H,G、H表示同一个椭圆曲线上的不同两个点,a、b为正整数,x1和x2表示盲因子且为随机数;
    分别计算参数message、c、y,其中,message=hash(string(A)+string(B)),参数c为明文且c=a-b-1,y=x1-x2;
    以message、c、y为输入参数,通过RangeProof算法对输入参数进行签名,生成签名signature;
    以signature作为明文数据c大于或等于0的证明,将signature、密文数据A与B发布到区块链上,以供数据需求方通过RangeProof算法进行验签,并基于验签结果确定明文数据a与b的大小关系。
  17. 如权利要求16所述的计算机可读存储介质,所述加密数据大小关系证明程序被处理器执行时还实现如下所述的加密数据大小关系证明方法的步骤:
    获取数据提供方发布到区块链上的密文数据A、B以及明文数据c大于或等于0的证明signature;
    分别计算参数message、C,其中,message=hash(string(A)+string(B)),C=(A-B-G)=(a-b-1)*G+(x1-x2)*H=c*G+y*H,C为明文数据c的密文数据;
    以message、C、signature为输入参数,通过RangeProof算法对输入参数进行验签,得到验签结果;
    基于验签结果,确定明文数据a与b的大小关系,其中,若验签结果为 证明为真,则判定明文数据a大于b。
  18. 如权利要求16所述的计算机可读存储介质,所述加密数据大小关系证明程序被所述处理器执行所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还执行如下步骤:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  19. 如权利要求17所述的计算机可读存储介质,所述加密数据大小关系证明程序被处理器执行所述分别对明文数据a、b进行加密,得到对应密文数据A、B的步骤之前,还执行如下步骤:
    获取用于进行加密数据大小关系证明的原始明文数据;
    判断原始明文数据是否为正整数;
    若是,则将原始明文数据作为明文数据a、b;
    若否,则对原始明文数据进行小数点定点化处理,得到正整数的明文数据,并将正整数的明文数据作为明文数据a、b。
  20. 如权利要求18所述的计算机可读存储介质,所述加密数据大小关系证明程序被处理器执行所述获取用于进行加密数据大小关系证明的原始明文数据的步骤之前,还执行如下步骤:
    获取用于进行加密数据隶属数值范围验证的原始明文数据n、h、k,其中,待验证的不等式关系为h<n<k;
    基于数值n与数值h、k之间的大小关系,将待验证的不等式关系拆分为n>h、k>n,以供分别对n、h对应的加密数据以及n、k对应的加密数据进行加密数据大小关系验证。
PCT/CN2019/120850 2019-06-21 2019-11-26 加密数据大小关系证明方法、装置、设备及存储介质 WO2020253106A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910542027.6 2019-06-21
CN201910542027.6A CN110399735A (zh) 2019-06-21 2019-06-21 加密数据大小关系证明方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
WO2020253106A1 true WO2020253106A1 (zh) 2020-12-24

Family

ID=68324184

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/120850 WO2020253106A1 (zh) 2019-06-21 2019-11-26 加密数据大小关系证明方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN110399735A (zh)
WO (1) WO2020253106A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420307A (zh) * 2021-06-28 2021-09-21 未鲲(上海)科技服务有限公司 密文数据的评估方法、装置、计算机设备和存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399735A (zh) * 2019-06-21 2019-11-01 深圳壹账通智能科技有限公司 加密数据大小关系证明方法、装置、设备及存储介质
CN111046409B (zh) * 2019-12-16 2021-04-13 支付宝(杭州)信息技术有限公司 一种私有数据多方安全计算方法和系统
CN113379415B (zh) * 2020-03-10 2022-09-20 深圳市迅雷网络技术有限公司 区块链系统及信息处理方法、系统、装置、计算机介质
CN111552736A (zh) * 2020-03-30 2020-08-18 深圳壹账通智能科技有限公司 加密数据对等关系比对方法、装置及存储介质
CN111628865B (zh) * 2020-04-23 2021-06-29 平安科技(深圳)有限公司 加密数据对等关系参数检验方法、装置及存储介质
CN111612457A (zh) * 2020-04-27 2020-09-01 深圳壹账通智能科技有限公司 基于区块链的电子投票方法、装置及存储介质
CN112100688A (zh) * 2020-09-29 2020-12-18 深圳壹账通智能科技有限公司 数据验证方法、装置、设备以及存储介质
CN112417432A (zh) * 2020-11-25 2021-02-26 北京奇艺世纪科技有限公司 数据转换方法、验证方法、装置、电子设备和存储介质
CN112632636B (zh) * 2020-12-23 2024-06-04 深圳前海微众银行股份有限公司 一种密文数据比较结果的证明与验证方法及装置
CN113014384B (zh) * 2021-03-16 2022-07-15 平安付科技服务有限公司 基于dh密钥交换算法的数据比较方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105027181A (zh) * 2013-03-13 2015-11-04 株式会社东芝 加密数据运算系统、装置以及程序
US20170142109A1 (en) * 2014-05-25 2017-05-18 Fujitsu Limited Relational encryption
CN108234108A (zh) * 2017-12-15 2018-06-29 复旦大学 弱泄露的高效揭序加密方法
CN108512840A (zh) * 2018-03-21 2018-09-07 杭州弗兰科信息安全科技有限公司 一种基于泄序加密的密文检索方法
CN110399735A (zh) * 2019-06-21 2019-11-01 深圳壹账通智能科技有限公司 加密数据大小关系证明方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707358B (zh) * 2017-10-30 2019-12-24 武汉大学 一种ec-kcdsa数字签名生成方法及系统
CN109257182B (zh) * 2018-10-24 2021-06-25 杭州趣链科技有限公司 基于同态密码学承诺与零知识范围证明的隐私保护方法
EP3549303B1 (en) * 2018-11-27 2021-05-26 Advanced New Technologies Co., Ltd. System and method for information protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105027181A (zh) * 2013-03-13 2015-11-04 株式会社东芝 加密数据运算系统、装置以及程序
US20170142109A1 (en) * 2014-05-25 2017-05-18 Fujitsu Limited Relational encryption
CN108234108A (zh) * 2017-12-15 2018-06-29 复旦大学 弱泄露的高效揭序加密方法
CN108512840A (zh) * 2018-03-21 2018-09-07 杭州弗兰科信息安全科技有限公司 一种基于泄序加密的密文检索方法
CN110399735A (zh) * 2019-06-21 2019-11-01 深圳壹账通智能科技有限公司 加密数据大小关系证明方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420307A (zh) * 2021-06-28 2021-09-21 未鲲(上海)科技服务有限公司 密文数据的评估方法、装置、计算机设备和存储介质
CN113420307B (zh) * 2021-06-28 2023-03-28 未鲲(上海)科技服务有限公司 密文数据的评估方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110399735A (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
WO2020253106A1 (zh) 加密数据大小关系证明方法、装置、设备及存储介质
Li et al. Traceable monero: Anonymous cryptocurrency with enhanced accountability
WO2020181822A1 (zh) 加密数据一致性校验方法、装置、计算机设备及存储介质
US7882359B2 (en) Method and system for user attestation-signatures with attributes
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
KR20200096784A (ko) 트러스트 레스 또는 무 딜러 방식으로 동작하는 그룹에 걸쳐 계산 작업을 수행하기 위한 컴퓨터 구현 시스템 및 방법
WO2019006446A1 (en) METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT FOR DETERMINING THE SOLVENCY OF AN EXCHANGE OF DIGITAL ASSETS
US9219602B2 (en) Method and system for securely computing a base point in direct anonymous attestation
WO2010137508A1 (ja) 署名装置、署名検証装置、匿名認証システム、署名方法、署名認証方法およびそれらのプログラム
CN111342962B (zh) 一种验证密文消息范围的方法和系统
CN111010265B (zh) 基于分层密钥和bls数字签名的区块链组织密钥管理方法
US20120210123A1 (en) One-time password certificate renewal
CN104468476A (zh) 无证书多重代理签名的方法和装置
WO2020253108A1 (zh) 信息隐匿方法、装置、设备及存储介质
US20220368539A1 (en) Computer implemented method and system for storing certified data on a blockchain
CN107171788A (zh) 一种基于身份且签名长度恒定的在线离线聚合签名方法
Li et al. A privacy-protecting authorization system based on blockchain and zk-SNARK
CN109902508A (zh) 一种凭证签发者匿名的实体鉴别方法及系统
CN115277010A (zh) 身份认证方法、系统、计算机设备和存储介质
Wang et al. zkfl: Zero-knowledge proof-based gradient aggregation for federated learning
US20230316241A1 (en) Partitioning a request into transactions for a blockchain
Ren et al. A lightweight possession proof scheme for outsourced files in mobile cloud computing based on chameleon hash function
CN104506532A (zh) 一种适用于紧急救援平台的远程证明方法
Hajny et al. Privacy ABCs: Now Ready for Your Wallets!
CN111245869B (zh) 一种信息物理系统中的跨域匿名认证方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19933544

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19933544

Country of ref document: EP

Kind code of ref document: A1