CN110336674B - 范围证明方法、装置、计算机设备和存储介质 - Google Patents

范围证明方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110336674B
CN110336674B CN201910541793.0A CN201910541793A CN110336674B CN 110336674 B CN110336674 B CN 110336674B CN 201910541793 A CN201910541793 A CN 201910541793A CN 110336674 B CN110336674 B CN 110336674B
Authority
CN
China
Prior art keywords
elliptic curve
preset
target object
value
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910541793.0A
Other languages
English (en)
Other versions
CN110336674A (zh
Inventor
何德彪
林超
谢翔
李升林
孙立林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juzix Technology Shenzhen Co ltd
Wuhan University WHU
Original Assignee
Juzix Technology Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juzix Technology Shenzhen Co ltd filed Critical Juzix Technology Shenzhen Co ltd
Priority to CN201910541793.0A priority Critical patent/CN110336674B/zh
Publication of CN110336674A publication Critical patent/CN110336674A/zh
Application granted granted Critical
Publication of CN110336674B publication Critical patent/CN110336674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供了一种范围证明方法、装置、计算机设备和存储介质,其中,该方法包括:第一用户端获取预设进制数;第一用户端根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端;第一用户端接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成;第一用户端接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成;第一用户端根据承诺值和盲化值对目标对象进行验证。上述方案解决了目前对目标对象进行验证的通信代价和计算开销高的技术问题,达到了有效降低通信代价和计算开销且提高计算安全性的技术效果。

Description

范围证明方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息安全技术领域,特别涉及一种范围证明方法、装置、计算机设备和存储介质。
背景技术
零知识证明协议能够在不向验证者提供任何有用的信息的情况下,对目标对象进行验证,使验证者相信某个论断是正确的,该协议被广泛应用于区块链隐私保护、电子现金系统、群签名方案、公开验证秘密共享方案等领域。
目前,最为广泛应用的对目标对象进行验证时所采用的方式是签名盲化的方式,但是目前采用该方式的协议主要是基于Boneh-Boyen签名进行实现的,需要涉及双线性对复杂的运算开销,造成通信代价和计算开销较高。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法、装置、计算机设备和存储介质,以解决现有技术中实现对目标对象进行验证的方案通信代价高且计算开销高的问题。
本申请实施例提供了一种数据处理方法,包括:第一用户端获取预设进制数;第一用户端根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端;第一用户端接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成;第一用户端接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成;第一用户端根据承诺值和盲化值对目标对象进行验证。
在一个实施例中,第一用户端根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端,包括:获取SM2签名算法的椭圆曲线相关参数和安全哈希函数;根据椭圆曲线相关参数生成私钥和公钥;根据椭圆曲线相关参数确定小于预设进制数的多个自然数中各自然数对应的椭圆曲线点,得到多个椭圆曲线点;根据私钥、安全哈希函数和各自然数对应的椭圆曲线点对各自然数进行签名,得到多个SM2签名;将公钥、多个椭圆曲线点和多个SM2签名发送至第二用户端。
在一个实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,包括:获取目标对象和椭圆曲线相关参数;根据目标对象和椭圆曲线相关参数生成承诺值。
在一个实施例中,第二用户端根据接收到的多个SM2签名和目标对象生成盲化值,包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;根据接收到的多个SM2签名确定多个系数中各系数对应的SM2签名;根据椭圆曲线相关参数对各系数对应的SM2签名进行盲化,得到各系数对应的盲化值。
在一个实施例中,第一用户端根据承诺值和盲化值对目标对象进行验证,包括:接收第二用户端发送的第一参数和第二参数,其中,第一参数和第二参数由第二用户端根据椭圆曲线相关参数、预设进制数、预设位数和公钥确定;根据椭圆曲线相关参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端发送的证明数据,其中,证明数据由第二用户端根据椭圆曲线相关参数、多个椭圆曲线点、挑战值和多个系数确定;根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据验证目标对象是否在预设范围内。
在一个实施例中,第二用户端按照以下公式生成承诺值:
C=σG+rH;
其中,C为承诺值,σ为目标对象,G为群
Figure GDA0002251485960000021
的生成元,群
Figure GDA0002251485960000022
为包含椭圆曲线E所有点以及无穷远点的循环群,H为群
Figure GDA0002251485960000023
上的点,
Figure GDA0002251485960000024
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,n为生成元G的阶,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,q、Fq、a、b、n、G、
Figure GDA0002251485960000025
和H为椭圆曲线相关参数。
在一个实施例中,第一用户端根据椭圆曲线相关参数生成私钥和公钥,包括按照以下公式生成公钥:
P=dG;
其中,P为公钥,d为私钥,
Figure GDA0002251485960000031
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数。
在一个实施例中,第一用户端按照以下公式确定各自然数对应的椭圆曲线点和各自然数对应的SM2签名:
Ki=kiG=(xi,yi);
Figure GDA0002251485960000032
si=(1+d)-1·(ki-rid)mod n;
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,Ki为i对应的椭圆曲线点,(xi,yi)为i对应的椭圆曲线点Ki的坐标,(ri,si)为i对应的SM2签名,
Figure GDA00022514859600000316
为安全哈希函数,d为私钥,
Figure GDA0002251485960000033
为集合{1,2,...,n}中与n互素的元素构成的集合,q为大素数,n为生成元G的阶,q、n和G为椭圆曲线相关参数,mod为模运算。
在一个实施例中,第二用户端按照以下公式生成盲化值:
Figure GDA0002251485960000034
Figure GDA0002251485960000035
其中,
Figure GDA0002251485960000036
是σj对应的签名的盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,
Figure GDA0002251485960000037
其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,
Figure GDA0002251485960000038
为多个SM2签名中与σj对应的SM2签名,
Figure GDA0002251485960000039
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为生成元G的阶,n和G为椭圆曲线相关参数,mod为模运算。
在一个实施例中,第二用户端按照以下公式生成第一参数和第二参数:
Ej=Tj+(αjj)P+βjG;
Figure GDA00022514859600000310
其中,Ej为第一参数,D为第二参数,
Figure GDA00022514859600000311
其中,j=0,1,2,...,l-1,
Figure GDA00022514859600000312
为集合{1,2,...,n}中与n互素的元素构成的集合,H为群
Figure GDA00022514859600000313
上的点,群
Figure GDA00022514859600000314
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA00022514859600000315
的生成元,n为生成元G的阶,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,其中,q、Fq、a、b、n、G、
Figure GDA0002251485960000041
和H为椭圆曲线相关参数。
在一个实施例中,第二用户端按照以下公式生成证明数据:
Figure GDA0002251485960000042
zy=y-r·c;
Figure GDA0002251485960000043
Figure GDA0002251485960000044
Figure GDA0002251485960000045
其中,
Figure GDA0002251485960000046
为证明数据,j=0,1,2,...,l-1;
Figure GDA0002251485960000047
Figure GDA0002251485960000048
c为挑战值,
Figure GDA0002251485960000049
其中,
Figure GDA00022514859600000410
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,
Figure GDA00022514859600000411
其中,σ为目标对象,u为预设进制数,l为预设位数,
Figure GDA00022514859600000412
为多个椭圆曲线点中与σj对应的椭圆曲线点。
在一个实施例中,第一用户端根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据确定目标对象是否在预设范围内,包括:
确定以下两个等式是否均成立:
Figure GDA00022514859600000413
Figure GDA00022514859600000414
在确定以上两个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,D为第二参数,Ej为第一参数,
Figure GDA00022514859600000415
为证明数据,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值,P为公钥,H为群
Figure GDA00022514859600000416
上的点,群
Figure GDA00022514859600000417
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA00022514859600000418
的生成元,q、Fq、a、b、n、G、
Figure GDA00022514859600000419
和H为椭圆曲线相关参数,其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,定义Fq上的椭圆曲线E,n为生成元G的阶;
Figure GDA00022514859600000420
是系数σj对应的签名的盲化值。
本申请实施例还提供了一种数据处理装置,位于第一用户端中,包括:获取模块,用于获取预设进制数;签名模块,用于根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端;第一接收模块,用于接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成;第二接收模块,用于接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成;验证模块,用于根据承诺值和盲化值对目标对象进行验证。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的数据处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的数据处理方法的步骤。
在本申请实施例中,提供了一种数据处理方法,第一用户端获取预设进制数,根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端,接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据获取的目标对象生成;接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成;根据承诺值和盲化值对目标对象进行验证。上述方案中,通过采用SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,由于SM2签名算法安全高效且简单易用,因此基于SM2签名算法对目标对象进行验证具有低计算复杂性、高安全性和易验证等优势;进一步地,根据承诺值以及基于SM2签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性。通过上述方案解决了现有的对目标对象进行验证的通信代价和计算开销高的技术问题,达到了有效降低通信代价和计算开销、提高计算安全性的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的数据处理方法的一种应用场景示意图;
图2示出了本申请一实施例中的数据处理方法的流程图;
图3示出了本申请一实施例中的数据处理方法的顺序图;
图4示出了本申请一实施例中的数据处理装置的示意图;
图5示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
考虑到现有的验证数据的方案主要是基于Boneh-Boyen签名进行实现的,需要涉及双线性对复杂的运算开销,造成通信代价和计算开销较高,发明人研究发现可以基于SM2签名算法来实现对目标对象的验证。
本申请实施例提供了一种数据处理方法,图1示出了该数据处理方法的一种应用场景的示意图。在图1中,示意性地示出了系统服务器、第一用户端和第二用户端,其中,系统服务器用于生成SM2签名算法所需的参数,第一用户端和第二用户端可以从系统服务器获取SM2签名算法所需的参数。第一用户端和第二用户端之间通信连接,其中,第一用户端为验证者,第二用户端为证明者,第二用户端中存储有目标对象。基于SM2签名算法,第一用户端和第二用户端执行预设协议,以使得在第二用户端不向第一用户端发送目标对象的情况下向第一用户端证明该目标对象,即,使得第一用户端在不获取目标对象的情况下对该目标对象进行验证。
其中,上述系统服务器可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。上述第一用户端和第二用户端可以是台式电脑、笔记本、手机终端、PDA等,只要是可以建立通信连接并具备计算能力的设备都可以,对于第一用户端和第二用户端的呈现形成,本申请也不作限定。
本申请实施例提供了一种数据处理方法,图2示出了本申请一实施例中数据处理方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的数据处理方法可以包括以下步骤:
步骤S201,第一用户端获取预设进制数。
步骤S202,第一用户端根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端。
其中,预设进制数可以由第一用户端和第二用户端根据实际情况共同设定,例如,预设进制数可以为2、8、10和16等。
具体地,第一用户端获取预设进制数,在获取预设进制数之后,第一用户端可以根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名。其中,小于预设进制数的多个自然数可以为{0,1,…,u-1},u为所述预设进制数。第一用户端根据SM2签名算法对{0,1,…,u-1}中的各个数进行签名,得到多个SM2签名。
步骤S203,第一用户端接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成。
为了在不获取目标对象的情况下对目标对象进行验证,第一用户端需要从第二用户端接收承诺值。具体地,第二用户端获取目标对象,根据目标对象生成承诺值,并将承诺值发送至第一用户端。
步骤S204,第一用户端接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成。
步骤S205,第一用户端根据承诺值和盲化值对目标对象进行验证。
具体地,在第一用户端向第二用户端发送多个SM2签名之后,第二用户端根据所述多个SM2签名和目标对象生成盲化值,即对目标对象的信号和SM2签名进行盲化,并将得到的盲化值发送至第一用户端。在第一用户端接收到第二用户端发送的承诺值和盲化值之后,可以根据承诺值和盲化值来对目标对象进行验证,即可以通过验证承诺值和盲化值是否一致来验证目标对象是否有效。
上述实施例中的数据处理方法,通过采用SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,由于SM2签名算法安全高效且简单易用,因此基于SM2签名算法对目标对象进行验证具有低计算复杂性、高安全性和易验证等优势;进一步地,根据承诺值以及基于SM2签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性。
进一步地,在本申请一些实施例中,第一用户端根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端,可以包括:获取SM2签名算法的椭圆曲线相关参数和安全哈希函数;根据椭圆曲线相关参数生成私钥和公钥;根据椭圆曲线相关参数确定小于预设进制数的多个自然数中各自然数对应的椭圆曲线点,得到多个椭圆曲线点;根据私钥、安全哈希函数和各自然数对应的椭圆曲线点对各自然数进行签名,得到多个SM2签名;将公钥、多个椭圆曲线点和多个SM2签名发送至第二用户端。通过上述方式,第一用户端可以基于SM2签名算法为小于预设进制数的多个自然数生成多个SM2签名,并将多个SM2签名、公钥和多个椭圆曲线点发送至第二用户端。
进一步地,在本申请一些实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,可以包括:获取目标对象和椭圆曲线相关参数;根据目标对象和椭圆曲线相关参数生成承诺值。通过上述方式,可以基于椭圆曲线相关参数生成承诺值。
进一步地,在本申请一些实施例中,第二用户端根据接收到的多个SM2签名和目标对象生成盲化值,可以包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;根据接收到的多个SM2签名确定多个系数中各系数对应的SM2签名;根据椭圆曲线相关参数对各系数对应的SM2签名进行盲化,得到各系数对应的盲化值。
具体地,第二用户端在获取预设进制数和预设位数之后,可以根据预设进制数和预设位数将目标对象表示为:
Figure GDA0002251485960000081
其中,σ为目标对象,u为预设进制数,l为预设位数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,j=0,1,2,...,l-1。在得到各个系数σj之后,可以根据接收到的多个SM2签名确定各个系数σj对应的SM2签名。由于,多个SM2签名为小于预设进制数的多个自然数中各自然数对应的SM2签名,而各个系数σj均为小于预设进制数的自然数,所以可以根据σj的数值确定σj对应的SM2签名。在确定各系数σj对应的SM2签名之后,第二用户端可以根据椭圆曲线相关参数对各系数对应的SM2签名进行盲化,得到各系数对应的盲化值,并将得到的盲化值发送至第一用户端。通过上述方式,可以基于多个SM2签名、椭圆曲线相关参数和目标对象的各个系数确定盲化值。
考虑到范围证明协议是零知识证明的一种,允许证明者不提供具体元素的情况下,让验证者相信某一承诺值中的元素在指定的范围内。也就是说,给定元素σ的承诺值,证明者能够以零知识的方式让验证者相信σ在某一个数值范围内(比如,σ∈[0,232-1)),因此本申请一些实施例中提供的数据处理方法可以用于实现范围证明协议,即证明目标对象在预设范围内。因此,在本申请一些实施例中,第一用户端根据承诺值和盲化值对目标对象进行验证,可以包括:接收第二用户端发送的第一参数和第二参数,其中,第一参数和第二参数由第二用户端根据椭圆曲线相关参数、预设进制数、预设位数和公钥确定;根据椭圆曲线相关参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端发送的证明数据,其中,证明数据由第二用户端根据椭圆曲线相关参数、多个椭圆曲线点、挑战值和多个系数确定;根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据验证目标对象是否在预设范围内。通过上述方式,可以实现范围证明协议,使得在第二用户端不提供目标对象的情况下,让第一用户端相信某一承诺值对应的目标对象在预设范围内。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成承诺值:
C=σG+rH;
其中,C为承诺值,σ为目标对象,G为群
Figure GDA0002251485960000091
的生成元,群
Figure GDA0002251485960000092
为包含椭圆曲线E所有点以及无穷远点的循环群,H为群
Figure GDA0002251485960000093
上的点,
Figure GDA0002251485960000094
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,n为生成元G的阶,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,q、Fq、a、b、n、G、
Figure GDA0002251485960000095
和H为椭圆曲线相关参数。
进一步地,在本申请一些实施例中,第一用户端根据椭圆曲线相关参数生成私钥和公钥,可以包括按照以下公式生成公钥:
P=dG;
其中,P为公钥,d为私钥,
Figure GDA0002251485960000096
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数。
进一步地,在本申请一些实施例中,第一用户端可以按照以下公式确定各自然数对应的椭圆曲线点和各自然数对应的SM2签名:
Ki=kiG=(xi,yi);
Figure GDA0002251485960000101
si=(1+d)-1·(ki-rid)mod n;
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,Ki为i对应的椭圆曲线点,(xi,yi)为i对应的椭圆曲线点Ki的坐标,(ri,si)为i对应的SM2签名,
Figure GDA0002251485960000102
为安全哈希函数,d为私钥,
Figure GDA0002251485960000103
为集合{1,2,...,n}中与n互素的元素构成的集合,q为大素数,n为生成元G的阶,q、n和G为椭圆曲线相关参数,mod为模运算。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成盲化值:
Figure GDA0002251485960000104
Figure GDA0002251485960000105
其中,
Figure GDA0002251485960000106
是σj对应的签名的盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,
Figure GDA0002251485960000107
其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,
Figure GDA0002251485960000108
为多个SM2签名中与σj对应的SM2签名,
Figure GDA0002251485960000109
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为生成元G的阶,n和G为椭圆曲线相关参数,mod为模运算。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成第一参数和第二参数:
Ej=Tj+(αjj)P+βjG;
Figure GDA00022514859600001010
其中,Ej为第一参数,D为第二参数,
Figure GDA00022514859600001011
其中,j=0,1,2,...,l-1,
Figure GDA00022514859600001012
为集合{1,2,...,n}中与n互素的元素构成的集合,H为群
Figure GDA00022514859600001013
上的点,群
Figure GDA00022514859600001014
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA00022514859600001015
的生成元,n为生成元G的阶,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,其中,q、Fq、a、b、n、G、
Figure GDA00022514859600001016
和H为椭圆曲线相关参数。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成证明数据:
Figure GDA00022514859600001017
zy=y-r·c;
Figure GDA0002251485960000111
Figure GDA0002251485960000112
Figure GDA0002251485960000113
其中,
Figure GDA0002251485960000114
为证明数据,j=0,1,2,...,l-1;
Figure GDA0002251485960000115
Figure GDA0002251485960000116
c为挑战值,
Figure GDA0002251485960000117
其中,
Figure GDA0002251485960000118
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,
Figure GDA0002251485960000119
其中,σ为目标对象,u为预设进制数,l为预设位数,Kσj为多个椭圆曲线点中与σj对应的椭圆曲线点。
进一步地,在本申请一些实施例中,第一用户端根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据确定目标对象是否在预设范围内,可以包括:
确定以下两个等式是否均成立:
Figure GDA00022514859600001110
Figure GDA00022514859600001111
在确定以上两个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,D为第二参数,Ej为第一参数,
Figure GDA00022514859600001112
为证明数据,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值,P为公钥,H为群
Figure GDA00022514859600001113
上的点,群
Figure GDA00022514859600001114
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA00022514859600001115
的生成元,q、Fq、a、b、n、G、
Figure GDA00022514859600001116
和H为椭圆曲线相关参数,其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,定义Fq上的椭圆曲线E,n为生成元G的阶;
Figure GDA00022514859600001117
是系数σj对应的签名的盲化值。
在本申请的一些实施例中,上述数据处理方法不仅支持σ∈[0,ul)形式的范围证明,还可以扩展成一般形式
Figure GDA00022514859600001118
的范围证明,其中,a和b为非负整数。若ul-1<b<ul,则将σ∈[a,b]等价为σ-b+ul∈[0,ul]∧σ-a∈[0,ul);若a+ul-1<b,则将σ∈[a,b]等价为b-σ∈[0,ul-1]∨σ-a∈[0,ul-1)。因此,通过两次调用σ∈[0,ul)形式的范围证明,可以实现一般形式σ∈[a,b]的范围证明。
可以理解的是,本申请实施例提供的数据处理方法可以用于验证目标对象在预设范围内,但本申请并不限于此。例如,本申请实施例提供的方法还可以用于验证目标对象是否为真,等等。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
如图3所示,示出了将本申请实施例中提供的数据处理方法应用于实现范围证明协议的顺序图,该方法包括以下步骤:
步骤1,第一用户端获取安全哈希函数
Figure GDA0002251485960000121
椭圆曲线相关参数(q,Fq,a,b,n,
Figure GDA0002251485960000122
G,H)、预设进制数u和预设位数l;第二用户端获取椭圆曲线相关参数(q,Fq,a,b,n,
Figure GDA0002251485960000123
G,H)、目标对象σ、预设进制数u和预设位数l,其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,定义Fq上的椭圆曲线E,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,群
Figure GDA0002251485960000124
为包含椭圆曲线E所有点以及无穷远点的循环群,H为群
Figure GDA0002251485960000125
上的点,G为群
Figure GDA0002251485960000126
的生成元,n为生成元G的阶;
步骤2,第一用户端根据椭圆曲线相关参数生成私钥和公钥,根据椭圆曲线相关参数确定小于预设进制数的所有自然数中各自然数对应的椭圆曲线点,得到多个椭圆曲线点,根据私钥、安全哈希函数和各自然数对应的椭圆曲线点对各自然数进行签名,得到多个签名,并将公钥、多个椭圆曲线点和多个签名发送至第二用户端,具体地,第一用户端随机选取
Figure GDA0002251485960000127
作为签名的私钥,计算公钥P=dG,对于
Figure GDA0002251485960000128
随机选取
Figure GDA0002251485960000129
计算椭圆曲线点Ki=kiG=(xi,yi),
Figure GDA00022514859600001210
si=(1+d)-1·(ki-rid)mod n,并将椭圆曲线点Ki、公钥P和签名(ri,si)
Figure GDA00022514859600001211
发送给第二用户端;
步骤3,第二用户端根据椭圆曲线相关参数和目标对象生成承诺值,并将承诺值发送至第一用户端,具体地,第二用户端随机选取
Figure GDA00022514859600001212
计算承诺值C=σG+rH,其中σ为第二用户端拥有的元素,并将承诺值C发送给第一用户端;
步骤4,第二用户端根据预设进制数和预设位数表示目标对象,得到对应的系数,系数的个数与预设位数相等,第二用户端根据接收到的多个签名确定系数中各系数对应的签名,根据椭圆曲线参数对各系数对应的签名进行盲化,得到盲化值,并将盲化值发送至第一用户端,具体地,第二用户端将目标对象表示成
Figure GDA00022514859600001213
然后对l个系数σj对应的签名进行盲化,即对于
Figure GDA00022514859600001214
随机选取
Figure GDA00022514859600001215
计算
Figure GDA0002251485960000131
然后将盲化值
Figure GDA0002251485960000132
发送给第一用户端;
步骤5,第二用户端根据椭圆曲线相关参数和公钥确定第一参数和第二参数,并将第一参数和第二参数发送至第一用户端,具体地,对于
Figure GDA0002251485960000133
第二用户端随机选取
Figure GDA0002251485960000134
计算第一参数Ej=Tj+(αjj)P+βjG和第二参数
Figure GDA0002251485960000135
最后将
Figure GDA0002251485960000136
发送给第一用户端;
步骤6,第一用户端根据椭圆曲线相关参数确定挑战值,并将挑战者发送至第二用户端,具体地,第一用户端随机选取挑战值
Figure GDA0002251485960000137
并将c发送给第二用户端;
步骤7,第二用户端根据椭圆曲线相关参数、多个椭圆曲线点、挑战值和系数确定证明数据,并将证明数据发送至第一用户端,具体地,第二用户端计算证明数据
Figure GDA0002251485960000138
Figure GDA0002251485960000139
并将证明数据
Figure GDA00022514859600001310
发送给第一用户端;
步骤8,第一用户端根据第一参数、第二参数、公钥、盲化值、证明数据和椭圆曲线相关参数确定目标对象是否在预设范围内,其中,预设范围由预设进制数和预设位数确定,具体地,第一用户端验证等式
Figure GDA00022514859600001312
和等式
Figure GDA00022514859600001311
是否成立,若两个等式均成立,说明验证通过,σ∈[0,ul);否则,拒绝该证明。
上述实施例中的用于实现范围证明协议的数据处理方法,第一用户端和第二用户端获取共同输入参数之后,第一用户端基于SM2签名算法对小于预设进制数的多个自然数进行签名,并将得到的多个SM2签名发送给第二用户端;第二用户端根据椭圆曲线相关参数和目标对象生成承诺值,将承诺值发送给第一用户端;第一用户端根据接收到的多个签名和目标对象生成多个盲化值,并将盲化值发送给第一用户端;第二用户端根据第一用户端返回的挑战值生成证明数据,并将证明数据发送给第一用户端,使得第一用户端可以根据盲化值、承诺值和证明数据验证目标对象是否在预设范围内。即,上述方案利用SM2签名算法进行构造,第一用户端预先提供各元素的签名时采用SM2签名算法进行签名,不仅具备更高的安全性,还有效地避免复杂的双线性对运算,降低和减轻了系统的开销和负担,适应云计算和大数据等领域的数据隐私保护安全需求。
基于同一发明构思,本申请实施例中还提供了一种数据处理装置,如下面的实施例所述。由于数据处理装置解决问题的原理与数据处理方法相似,因此数据处理装置的实施可以参见数据处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的数据处理装置的一种结构框图,如图4所示,包括:获取模块401、签名模块402、第一接收模块403、第二接收模块404和验证模块405,下面对该结构进行说明。
获取模块401用于获取预设进制数。
签名模块402用于根据SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端。
第一接收模块403用于接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成。
第二接收模块404用于接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据接收到的多个SM2签名和目标对象生成。
验证模块405用于根据承诺值和盲化值对目标对象进行验证。
在本申请一些实施例中,签名模块可以具体用于:获取SM2签名算法的椭圆曲线相关参数和安全哈希函数;根据椭圆曲线相关参数生成私钥和公钥;根据椭圆曲线相关参数确定小于预设进制数的多个自然数中各自然数对应的椭圆曲线点,得到多个椭圆曲线点;根据私钥、安全哈希函数和各自然数对应的椭圆曲线点对各自然数进行签名,得到多个SM2签名;将公钥、多个椭圆曲线点和多个SM2签名发送至第二用户端。
在本申请一些实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,可以包括:获取目标对象和椭圆曲线相关参数;根据目标对象和椭圆曲线相关参数生成承诺值。
在本申请一些实施例中,第二用户端根据接收到的多个SM2签名和目标对象生成盲化值,可以包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;根据接收到的多个SM2签名确定多个系数中各系数对应的SM2签名;根据椭圆曲线相关参数对各系数对应的SM2签名进行盲化,得到各系数对应的盲化值。
在本申请一些实施例中,验证模块可以具体用于:接收第二用户端发送的第一参数和第二参数,其中,第一参数和第二参数由第二用户端根据椭圆曲线相关参数、预设进制数、预设位数和公钥确定;根据椭圆曲线相关参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端发送的证明数据,其中,证明数据由第二用户端根据椭圆曲线相关参数、多个椭圆曲线点、挑战值和多个系数确定;根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据验证目标对象是否在预设范围内。
在本申请一些实施例中,第二用户端可以按照以下公式生成承诺值:
C=σG+rH;
其中,C为承诺值,σ为目标对象,G为群
Figure GDA0002251485960000151
的生成元,群
Figure GDA0002251485960000152
为包含椭圆曲线E所有点以及无穷远点的循环群,H为群
Figure GDA0002251485960000153
上的点,
Figure GDA0002251485960000154
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,n为生成元G的阶,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,q、Fq、a、b、n、G、
Figure GDA0002251485960000155
和H为椭圆曲线相关参数。
在本申请一些实施例中,根据椭圆曲线相关参数生成私钥和公钥,可以包括按照以下公式生成公钥:
P=dG;
其中,P为公钥,d为私钥,
Figure GDA0002251485960000156
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数。
在本申请一些实施例中,所述签名模块可以具体用于可以按照以下公式确定各自然数对应的椭圆曲线点和各自然数对应的SM2签名:
Ki=kiG=(xi,yi);
Figure GDA0002251485960000157
si=(1+d)-1·(ki-rid)mod n;
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,Ki为i对应的椭圆曲线点,(xi,yi)为i对应的椭圆曲线点Ki的坐标,(ri,si)为i对应的SM2签名,
Figure GDA0002251485960000159
为安全哈希函数,d为私钥,
Figure GDA0002251485960000158
为集合{1,2,...,n}中与n互素的元素构成的集合,q为大素数,n为生成元G的阶,q、n和G为椭圆曲线相关参数,mod为模运算。
在本申请一些实施例中,第二用户端可以按照以下公式生成盲化值:
Figure GDA0002251485960000161
Figure GDA0002251485960000162
其中,
Figure GDA0002251485960000163
是σj对应的签名的盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,
Figure GDA0002251485960000164
其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,
Figure GDA0002251485960000165
为多个SM2签名中与σj对应的SM2签名,
Figure GDA0002251485960000166
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为生成元G的阶,n和G为椭圆曲线相关参数,mod为模运算。
在本申请一些实施例中,第二用户端可以按照以下公式生成第一参数和第二参数:
Ej=Tj+(αjj)P+βjG;
Figure GDA0002251485960000167
其中,Ej为第一参数,D为第二参数,
Figure GDA0002251485960000168
其中,j=0,1,2,...,l-1,
Figure GDA0002251485960000169
为集合{1,2,...,n}中与n互素的元素构成的集合,H为群
Figure GDA00022514859600001610
上的点,群
Figure GDA00022514859600001611
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA00022514859600001612
的生成元,n为生成元G的阶,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,其中,q、Fq、a、b、n、G、
Figure GDA00022514859600001613
和H为椭圆曲线相关参数。
在本申请一些实施例中,第二用户端可以按照以下公式生成证明数据:
Figure GDA00022514859600001614
zy=y-r·c;
Figure GDA00022514859600001615
Figure GDA00022514859600001616
Figure GDA00022514859600001617
其中,
Figure GDA00022514859600001618
为证明数据,j=0,1,2,...,l-1;
Figure GDA00022514859600001619
Figure GDA00022514859600001620
c为挑战值,
Figure GDA00022514859600001621
其中,
Figure GDA00022514859600001622
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为椭圆曲线相关参数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,
Figure GDA00022514859600001623
其中,σ为目标对象,u为预设进制数,l为预设位数,
Figure GDA00022514859600001624
为多个椭圆曲线点中与σj对应的椭圆曲线点。
在本申请一些实施例中,根据盲化值、承诺值、第一参数、第二参数、挑战值和证明数据确定目标对象是否在预设范围内,可以包括:
确定以下两个等式是否均成立:
Figure GDA0002251485960000171
Figure GDA0002251485960000172
在确定以上两个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,D为第二参数,Ej为第一参数,
Figure GDA0002251485960000173
为证明数据,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值,P为公钥,H为群
Figure GDA0002251485960000174
上的点,群
Figure GDA0002251485960000175
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure GDA0002251485960000176
的生成元,q、Fq、a、b、n、G、
Figure GDA0002251485960000177
和H为椭圆曲线相关参数,其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,定义Fq上的椭圆曲线E,n为生成元G的阶;
Figure GDA0002251485960000178
是系数σj对应的签名的盲化值。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:上述方案中,通过采用SM2签名算法对小于预设进制数的多个自然数中的各自然数进行签名,由于SM2签名算法安全高效且简单易用,因此基于SM2签名算法对目标对象进行验证具有低计算复杂性、高安全性和易验证等优势;进一步地,根据承诺值以及基于SM2签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性。通过上述方案解决了现有的对目标对象进行验证的通信代价和计算开销高的技术问题,达到了有效降低通信代价和计算开销、提高计算安全性的技术效果。
本申请实施方式还提供了一种计算机设备,具体可以参阅图5所示的基于本申请实施例提供的数据处理方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的数据处理方法的步骤。所述输入设备51具体可以用于输入预设进制数和预设位数等参数。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于数据处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述数据处理方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种数据处理方法,其特征在于,所述方法包括:
第一用户端获取预设进制数;
所述第一用户端根据SM2签名算法对小于所述预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端;
所述第一用户端接收所述第二用户端发送的承诺值,其中,所述承诺值由所述第二用户端根据所述第二用户端获取的目标对象生成;
所述第一用户端接收所述第二用户端返回的盲化值,其中,所述盲化值由所述第二用户端根据接收到的所述多个SM2签名和所述目标对象生成;
所述第一用户端根据所述承诺值和所述盲化值对所述目标对象进行验证;
其中,所述第二用户端根据接收到的所述多个SM2签名和所述目标对象生成盲化值,包括:
获取所述预设进制数和预设位数;
根据所述预设进制数和所述预设位数表示所述目标对象,得到多个系数;
根据接收到的多个SM2签名确定所述多个系数中各系数对应的SM2签名;
根据椭圆曲线相关参数对所述各系数对应的SM2签名进行盲化,得到各系数对应的盲化值。
2.根据权利要求1所述的方法,其特征在于,所述第一用户端根据SM2签名算法对小于所述预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至所述第二用户端,包括:
获取SM2签名算法的椭圆曲线相关参数和安全哈希函数;
根据所述椭圆曲线相关参数生成私钥和公钥;
根据所述椭圆曲线相关参数确定小于所述预设进制数的多个自然数中各自然数对应的椭圆曲线点,得到多个椭圆曲线点;
根据所述私钥、所述安全哈希函数和所述各自然数对应的椭圆曲线点对所述各自然数进行签名,得到多个SM2签名;
将所述公钥、所述多个椭圆曲线点和所述多个SM2签名发送至所述第二用户端。
3.根据权利要求2所述的方法,其特征在于,所述第二用户端根据所述第二用户端中获取的目标对象生成所述承诺值,包括:
获取所述目标对象和所述椭圆曲线相关参数;
根据所述目标对象和所述椭圆曲线相关参数生成所述承诺值。
4.根据权利要求3所述的方法,其特征在于,所述第一用户端根据所述承诺值和所述盲化值对所述目标对象进行验证,包括:
接收所述第二用户端发送的第一参数和第二参数,其中,所述第一参数和所述第二参数由所述第二用户端根据所述椭圆曲线相关参数、所述预设进制数、所述预设位数和所述公钥确定;
根据所述椭圆曲线相关参数确定挑战值,并将所述挑战值发送至所述第二用户端;
接收所述第二用户端发送的证明数据,其中,所述证明数据由所述第二用户端根据所述椭圆曲线相关参数、所述多个椭圆曲线点、所述挑战值和所述多个系数确定;
根据所述盲化值、所述承诺值、所述第一参数、所述第二参数、所述挑战值和所述证明数据验证所述目标对象是否在预设范围内。
5.根据权利要求3所述的方法,其特征在于,所述第二用户端按照以下公式生成所述承诺值:
C=σG+rH;
其中,C为所述承诺值,σ为所述目标对象,G为群
Figure FDA0003490311640000021
的生成元,群
Figure FDA0003490311640000022
为包含椭圆曲线E所有点以及无穷远点的循环群,H为群
Figure FDA0003490311640000023
上的点,
Figure FDA0003490311640000024
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,n为生成元G的阶,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,q、Fq、a、b、n、G、
Figure FDA0003490311640000025
和H为所述椭圆曲线相关参数。
6.根据权利要求2所述的方法,其特征在于,所述第一用户端根据所述椭圆曲线相关参数生成私钥和公钥,包括按照以下公式生成公钥:
P=dG;
其中,P为所述公钥,d为所述私钥,
Figure FDA0003490311640000026
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为所述椭圆曲线相关参数。
7.根据权利要求2所述的方法,其特征在于,所述第一用户端按照以下公式确定各自然数对应的椭圆曲线点和各自然数对应的SM2签名:
Ki=kiG=(xi,yi);
Figure FDA0003490311640000031
si=(1+d)-1·(ki-rid)mod n;
其中,i=0,1,2,...,u-1,为小于所述预设进制数的多个自然数,u为所述预设进制数,Ki为i对应的椭圆曲线点,(xi,yi)为i对应的椭圆曲线点Ki的坐标,(ri,si)为i对应的SM2签名,
Figure FDA00034903116400000317
为所述安全哈希函数,d为所述私钥,
Figure FDA0003490311640000032
为集合{1,2,...,n}中与n互素的元素构成的集合,q为大素数,n为生成元G的阶,q、n和G为所述椭圆曲线相关参数,mod为模运算。
8.根据权利要求3所述的方法,其特征在于,所述第二用户端按照以下公式生成所述盲化值:
Figure FDA0003490311640000033
Figure FDA0003490311640000034
其中,
Figure FDA0003490311640000035
是σj对应的签名的盲化值,σj为根据预设进制数和预设位数表示所述目标对象时得到的多个系数,为小于预设进制数的自然数,
Figure FDA0003490311640000036
其中,σ为所述目标对象,u为所述预设进制数,l为所述预设位数,j=0,1,2,...,l-1,
Figure FDA0003490311640000037
为所述多个SM2签名中与σj对应的SM2签名,aj
Figure FDA0003490311640000038
为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为生成元G的阶,n和G为所述椭圆曲线相关参数,mod为模运算。
9.根据权利要求4所述的方法,其特征在于,所述第二用户端按照以下公式生成所述第一参数和所述第二参数:
Ej=Tj+(αjj)P+βjG;
Figure FDA0003490311640000039
其中,Ej为所述第一参数,D为所述第二参数,P为所述公钥,xj,y,αj
Figure FDA00034903116400000310
Figure FDA00034903116400000311
其中,j=0,1,2,...,l-1,
Figure FDA00034903116400000312
为集合{1,2,...,n}中与n互素的元素构成的集合,H为群
Figure FDA00034903116400000313
上的点,群
Figure FDA00034903116400000314
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure FDA00034903116400000315
的生成元,n为生成元G的阶,其中,椭圆曲线E的椭圆曲线方程为y2=x3+ax+b,其中,a,b为Fq中的元素,定义Fq上的椭圆曲线E,Fq为包含q个元素的有限域,q为大素数,其中,q、Fq、a、b、n、G、
Figure FDA00034903116400000316
和H为所述椭圆曲线相关参数。
10.根据权利要求4所述的方法,其特征在于,所述第二用户端按照以下公式生成所述证明数据:
Figure FDA0003490311640000041
zy=y-r·c;
Figure FDA0003490311640000042
Figure FDA0003490311640000043
Figure FDA0003490311640000044
其中,
Figure FDA0003490311640000045
为所述证明数据,j=0,1,2,...,l-1;aj,bj,xj,y,αj
Figure FDA0003490311640000046
c为所述挑战值,
Figure FDA0003490311640000047
其中,
Figure FDA0003490311640000048
为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为生成元G的阶,n和G为所述椭圆曲线相关参数,σj为根据预设进制数和预设位数表示所述目标对象时得到的所述多个系数,
Figure FDA0003490311640000049
其中,σ为所述目标对象,u为所述预设进制数,l为所述预设位数,
Figure FDA00034903116400000419
为所述多个椭圆曲线点中与σj对应的椭圆曲线点。
11.根据权利要求4所述的方法,其特征在于,所述第一用户端根据所述盲化值、所述承诺值、所述第一参数、所述第二参数、所述挑战值和所述证明数据确定所述目标对象是否在预设范围内,包括:
确定以下两个等式是否均成立:
Figure FDA00034903116400000410
Figure FDA00034903116400000411
在确定以上两个等式均成立的情况下,确定所述目标对象在预设范围内,其中,所述预设范围为[0,ul);
其中,D为所述第二参数,Ej为所述第一参数,
Figure FDA00034903116400000412
为所述证明数据,j=0,1,2,...,l-1,u为所述预设进制数,l为所述预设位数;c为所述挑战值,C为所述承诺值,P为所述公钥,xj,y,αj
Figure FDA00034903116400000413
其中,
Figure FDA00034903116400000414
为集合{1,2,...,n}中与元素n互素的元素构成的集合,片为群
Figure FDA00034903116400000415
上的点,群
Figure FDA00034903116400000416
为包含椭圆曲线E所有点以及无穷远点的循环群,G为群
Figure FDA00034903116400000417
的生成元,n为生成元G的阶,q、Fq、a、b、n、G、
Figure FDA00034903116400000418
和H为所述椭圆曲线相关参数,其中,q为大素数,Fq为包含q个元素的有限域,a,b为Fq中的元素,定义Fq上的椭圆曲线E,n为生成元G的阶;
Figure FDA0003490311640000051
是系数σj对应的签名的盲化值。
12.一种数据处理装置,其特征在于,位于第一用户端中,所述装置包括:
获取模块,用于获取预设进制数;
签名模块,用于根据SM2签名算法对小于所述预设进制数的多个自然数中的各自然数进行签名,并将得到的多个SM2签名发送至第二用户端;
第一接收模块,用于接收所述第二用户端发送的承诺值,其中,所述承诺值由所述第二用户端根据所述第二用户端获取的目标对象生成;
第二接收模块,用于接收所述第二用户端返回的盲化值,其中,所述盲化值由所述第二用户端根据接收到的所述多个SM2签名和所述目标对象生成;
验证模块,用于根据所述承诺值和所述盲化值对所述目标对象进行验证;
其中,所述第二用户端根据接收到的所述多个SM2签名和所述目标对象生成盲化值,包括:获取所述预设进制数和预设位数;根据所述预设进制数和所述预设位数表示所述目标对象,得到多个系数;根据接收到的多个SM2签名确定所述多个系数中各系数对应的SM2签名;根据椭圆曲线相关参数对所述各系数对应的SM2签名进行盲化,得到各系数对应的盲化值。
13.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至11中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至11中任一项所述方法的步骤。
CN201910541793.0A 2019-06-21 2019-06-21 范围证明方法、装置、计算机设备和存储介质 Active CN110336674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910541793.0A CN110336674B (zh) 2019-06-21 2019-06-21 范围证明方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910541793.0A CN110336674B (zh) 2019-06-21 2019-06-21 范围证明方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110336674A CN110336674A (zh) 2019-10-15
CN110336674B true CN110336674B (zh) 2022-06-24

Family

ID=68142522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910541793.0A Active CN110336674B (zh) 2019-06-21 2019-06-21 范围证明方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110336674B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116389164B (zh) * 2023-05-26 2023-09-12 建信金融科技有限责任公司 数据的检测方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2026267A1 (en) * 2007-07-31 2009-02-18 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Issuing electronic vouchers
CN102096778A (zh) * 2010-12-07 2011-06-15 中国科学院软件研究所 基于椭圆曲线和双线性对密码体制的直接匿名证明方法
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015398B2 (en) * 2007-12-06 2011-09-06 International Business Machines Corporation Set membership proofs in data processing systems
US8661240B2 (en) * 2011-04-29 2014-02-25 International Business Machines Corporation Joint encryption of data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2026267A1 (en) * 2007-07-31 2009-02-18 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Issuing electronic vouchers
CN102096778A (zh) * 2010-12-07 2011-06-15 中国科学院软件研究所 基于椭圆曲线和双线性对密码体制的直接匿名证明方法
CN107040385A (zh) * 2017-05-23 2017-08-11 广东工业大学 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN108667623A (zh) * 2018-05-28 2018-10-16 广东工业大学 一种sm2椭圆曲线签名验证算法
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A New Transitively Closed Undirected Graph Authentication Scheme for Blockchain-Based Identity Management Systems;He Debiao ET AL;《IEEE Access ( Volume: 6)》;20180517;全文 *
Study on Secret Sharing for SM2 Digital Signature and Its Application;Fan Ding ET AL;《2018 14th International Conference on Computational Intelligence and Security》;20181119;全文 *
基于Borromean的环签名的隐私数据认证方案;张凡等;《密码学报》;20181015;全文 *

Also Published As

Publication number Publication date
CN110336674A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
CN110311776B (zh) 范围证明方法、装置、计算机设备和存储介质
CN110380862B (zh) 基于隐式证书的签名验证方法、装置和计算机设备
US9641340B2 (en) Certificateless multi-proxy signature method and apparatus
US8675869B2 (en) Incorporating data into an ECDSA signature component
CN109861828B (zh) 一种基于边缘计算的节点接入和节点认证方法
EP2582088A2 (en) Verifying Implicit Certificates and Digital Signatures
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
US20210377048A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
CN112187469B (zh) 一种基于密钥因子的sm2多方协同数字签名方法和系统
US20170373847A1 (en) Method for updating a public key
CN112446052A (zh) 一种适用于涉密信息系统的聚合签名方法及系统
CN105515778A (zh) 云存储数据完整性服务签名方法
CN110336674B (zh) 范围证明方法、装置、计算机设备和存储介质
US20080320557A1 (en) Batch verification device, program and batch verification method
CN107147493B (zh) 一种有限资源下的数字签名方法、装置及系统
Shaw et al. Post-quantum secure identity-based signature achieving forward secrecy
WO2022116176A1 (zh) 数字签名的生成方法、装置和服务器
Chande et al. An improvement of a elliptic curve digital signature algorithm
WO2021143029A1 (zh) 零知识证明方法、装置及存储介质
JP4772965B2 (ja) エンティティの真正性および/またはメッセージの完全性を証明するための方法
CN111147254B (zh) 两方协同的EdDSA数字签名生成方法和装置
CN111064580B (zh) 隐式证书密钥扩展方法和装置
KR102019558B1 (ko) 내재적 인증서를 사용하는 전자서명에 대한 효율적인 서명 검증 방법
CN111181729B (zh) 显式证书密钥扩展方法和装置
RU2325768C1 (ru) Способ генерации и проверки подлинности электронной цифровой подписи, заверяющей электронный документ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230505

Address after: 518061 room 304, block B, building 5, software industry base, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: JUZIX TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: WUHAN University

Address before: 518061 room 304, block B, building 5, software industry base, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: JUZIX TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right