CN110311776A - 数据处理方法、装置、计算机设备和存储介质 - Google Patents

数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110311776A
CN110311776A CN201910541541.8A CN201910541541A CN110311776A CN 110311776 A CN110311776 A CN 110311776A CN 201910541541 A CN201910541541 A CN 201910541541A CN 110311776 A CN110311776 A CN 110311776A
Authority
CN
China
Prior art keywords
key
user
value
private key
target object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910541541.8A
Other languages
English (en)
Other versions
CN110311776B (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
Matrix Element 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 Matrix Element Technology (shenzhen) Co Ltd filed Critical Matrix Element Technology (shenzhen) Co Ltd
Priority to CN201910541541.8A priority Critical patent/CN110311776B/zh
Publication of CN110311776A publication Critical patent/CN110311776A/zh
Application granted granted Critical
Publication of CN110311776B publication Critical patent/CN110311776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种数据处理方法、装置、计算机设备和存储介质,其中,该方法包括:将第一用户端的身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和***主私钥生成;获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的各自然数进行签名,并将得到的多个签名发送至第二用户端;接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据目标对象生成;接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成;根据承诺值和盲化值对目标对象进行验证。上述方案避免了高昂的证书管理开销,有效降低了成本。

Description

数据处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息安全技术领域,特别涉及一种数据处理方法、装置、计算机设备和存储介质。
背景技术
零知识证明协议能够在不向验证者提供任何有用的信息的情况下,对目标对象进行验证,使验证者相信某个论断是正确的,该协议被广泛应用于区块链隐私保护、电子现金***、群签名方案、公开验证秘密共享方案等领域。
目前,最为广泛应用的对目标对象进行验证时所采用的方式是签名盲化的方式,但是目前该方式采用的是基于PKI(Public Key Infrastructure,公钥基础设施)体系的密码***,需要CA(Certificate Authority,证书授权中心)维护管理用户公钥证书,主要包括证书的颁发、更新、撤销等。证书的管理开销随着用户数量增加而成线性增长,高昂的证书管理开销将限制该方法的使用。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法、装置、计算机设备和存储介质,以解决现有技术中实现对目标对象进行验证的方案中证书管理开销高的问题。
本申请实施例提供了一种数据处理方法,包括:第一用户端将第一用户端的身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和密钥生成***生成的***主私钥生成;第一用户端获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端;第一用户端接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成;第一用户端接收第二用户端返回的盲化值,其中,盲化值由第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成并公布;第一用户端根据承诺值和盲化值对目标对象进行验证。
在一个实施例中,密钥生成***根据身份信息和密钥生成***生成的***主私钥生成用户私钥,包括:生成SM9签名算法的***参数和安全哈希函数;根据***参数和安全哈希函数生成***主私钥和***主公钥,并公布***主公钥;接收第一用户端发送的第一用户端的身份信息;根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥。
在一个实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,包括:获取目标对象;从密钥生成***获取***参数;根据目标对象和***参数生成承诺值。
在一个实施例中,第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成盲化值,包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;从密钥生成***获取***主公钥,并根据***主公钥验证接收到的多个签名是否有效;在验证多个签名有效的情况下,根据多个签名确定多个系数中各系数对应的签名;根据***参数和各系数对应的签名生成盲化值。
在一个实施例中,第一用户端根据承诺值和盲化值对目标对象进行验证,包括:接收第二用户端发送的中间数据,其中,中间数据由第二用户端根据***参数、预设进制数和预设位数确定;根据***参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端返回的证明数据,其中,证明数据由第二用户端根据***参数、挑战值和多个系数确定;根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内。
在一个实施例中,第二用户端按照以下公式生成承诺值:
C=σG+ρH;
其中,C为承诺值,σ为目标对象,G和H为群的生成元,为n阶循环群,n为大素数,为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n,G,H为***参数。
在一个实施例中,密钥生成***根据***参数和安全哈希函数生成***主私钥和***主公钥,包括按照以下公式生成***主私钥和***主公钥:
msk=s;
其中,mpk为***主公钥,msk为***主私钥,为n阶循环群,e为双线性对映射,G,H,P1为群的生成元,P2为群的生成元,Ppub=sP2,g=e(P1,Ppub),其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为大素数,hid=1;为安全哈希函数, n,G,H,P1,P2,hid为***参数。
在一个实施例中,密钥生成***根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥,包括:
确定以下等式是否成立:
在确定以上等式成立的情况下,按照以下公式生成用户私钥:
其中,Dv为用户私钥,s为所述***主私钥,为集合{1,2,...,n}中与n互素的元素构成的集合,为安全哈希函数,IDv为第一用户端的身份信息,hid=1,P1为群的生成元,群为n阶循环群,n为大素数,其中,n,P1,hid为***参数,mod为模运算。
在一个实施例中,第一用户端按照以下公式对小于预设进制数的多个自然数中的各自然数进行签名:
Si=li·Dv
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,(wi,hi,Si)为i对应的签名,为安全哈希函数,li=(ri-hi)mod n,Dv为用户私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,n为大素数,g=e(P1,Ppub),其中,P1为群的生成元,Ppub=sP2,P2为群的生成元,其中,e为双线性对映射,为n阶循环群,n,P1,P2为***参数,mod为模运算。
在一个实施例中,在根据***主公钥验证接收到的多个签名有效的情况下,第二用户端按照以下公式生成盲化值:
其中,是盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,为多个签名中与σj对应的签名,∈j1,j2,j, 为集合{1,2,...,n}中与n互素的元素构成的集合,G和H为群的生成元,为n阶循环群,n为大素数,n,G,H为***参数,mod为模运算。
在一个实施例中,第二用户端按照以下公式生成中间数据:
Bj=m1,jG+m2,jH;
Dj=ejG+m3,jH;
其中,(A,Bj,Dj,Ej,Fj)为中间数据,xj,y,m1,j,m2,j,m3,j,ej,lj,其中,为集合{1,2,...,n}中与n互素的元素构成的集合,j=0,1,2,...,l-1,u为预设进制数,l为预设位数,H和G为群的生成元,Wj为群上的元素,为群上的元素,其中,e为双线性对映射,为n阶循环群,其中,n,G,H为***参数。
在一个实施例中,第二用户端按照以下公式生成证明数据:
zy=y-ρ·c,
其中为证明数据,j=0,1,2,...,l-1,l为预设位数;xj,y,ρ,m1,j,m2,j,m3,j1,j2,j3,j,ej,∈j,lj,c为挑战值,其中,为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为大素数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,其中,σ为目标对象,u为预设进制数,l为预设位数,γj是满足的随机数,其中,H和G为群的生成元,为n阶循环群,为群上的元素,其中,n,G,H为***参数。
在一个实施例中,第一用户端根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内,包括:
确定以下五个等式是否均成立:
在确定以上五个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,(A,Bj,Dj,Ej,Ej)为中间数据,为证明数据,是盲化值,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值;G,H,P1为群的生成元,Ppub=sP2,其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,P2为群的生成元,n为大素数;其中, 为n阶循环群,e为双线性对映射,n,G,H,P1,P2为***参数,Qv是第一用户端的公开参数,Qv=hashvP2+Ppub,其中,其中,IDv为第一用户端的身份信息,hid=1,为安全哈希函数。
本申请实施例还提供了一种数据处理装置,位于第一用户端中,包括:发送模块,用于将第一用户端的身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和密钥生成***生成的***主私钥生成;签名模块,用于获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端;第一接收模块,用于接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成;第二接收模块,用于接收第二用户端返回的盲化值,其中,盲化值由第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成并公布;验证模块,用于根据承诺值和盲化值对目标对象进行验证。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的数据处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的数据处理方法的步骤。
在本申请实施例中,提供了一种数据处理方法,第一用户端将身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和***主私钥生成;获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的各自然数进行签名,并将得到的多个签名发送至第二用户端;接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据目标对象生成;接收第二用户端返回的盲化值,其中,盲化值由第二用户端根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成;根据承诺值和盲化值对目标对象进行验证。上述方案中,通过采用SM9签名算法进行签名,由于SM9签名算法是基于双线性对的标识密码算法,可以生成***主公钥和***主私钥并利用***主私钥和用户的身份信息生成用户私钥,使得第一用户端可以根据用户私钥进行签名,第二用户端可以根据***主公钥来验证签名的有效性,所以采用SM9签名算法的方案不需要数字证书、证书库或密钥库,因此可以有效避免高昂的证书管理开销,有效降低验证成本;进一步地,根据承诺值以及基于签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性;此外,上述方案还具有低通信带宽消耗和低计算开销的特点,能够适应云计算和大数据等领域的数据隐私保护安全需求。通过上述方案解决了现有的对目标对象进行验证的目前的数据验证方法中证书管理开销高的技术问题,达到了有效降低验证成本的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的数据处理方法的一种应用场景示意图;
图2示出了本申请一实施例中的数据处理方法的流程图;
图3示出了本申请一实施例中的数据处理方法的顺序图;
图4示出了本申请一实施例中的数据处理装置的示意图;
图5示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种***、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
考虑到目前对数据验证的方式采用的是基于PKI体系的密码***,需要CA维护管理用户公钥证书,而证书的管理开销随着用户数量增加而成线性增长,带来高昂的证书管理开销,发明人经过研究发现可以基于SM9签名算法来实现对目标对象的验证。
本申请实施例提供了一种数据处理方法,图1示出了该数据处理方法的一种应用场景的示意图。在图1中,示意性地示出了密钥生成***、第一用户端和第二用户端,其中,密钥生成***可以用于生成签名算法所需的参数、***主公钥、***主私钥以及第一用户端的用户私钥,第一用户端可以从密钥生成***获取签名算法所需的参数和用户私钥,第二用户端可以从密钥生成***获取签名算法所需的参数以及***主公钥。第一用户端和第二用户端之间通信连接,其中,第一用户端为验证者,第二用户端为证明者,第二用户端中存储有目标对象。基于SM9签名算法,密钥生成***生成***主公钥和***主私钥并公布***主公钥,密钥生成***接收第一用户端发送的身份信息,并根据***主私钥和第一用户端的身份信息生成第一用户端的用户私钥,使得第一用户端可以根据用户私钥进行签名,第二用户端可以根据***主公钥验证签名的有效性,而不需要CA颁发公钥证书,因此可以降低对目标对象进行验证的证书管理开销。
其中,上述密钥生成***可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,只要可以生成SM9签名算法所需的参数、***主公钥、***主私钥以及用户私钥即可,具体的组成形成本申请不作限定。上述第一用户端和第二用户端可以是台式电脑、笔记本、手机终端、PDA等,只要是可以建立通信连接并具备计算能力的设备都可以,对于第一用户端和第二用户端的呈现形成,本申请也不作限定。
本申请实施例提供了一种数据处理方法,图2示出了本申请一实施例中数据处理方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的数据处理方法可以包括以下步骤:
步骤S201,第一用户端将第一用户端的身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和密钥生成***生成的***主私钥生成。
具体地,第一用户端将第一用户端的身份信息发送至密钥生成***。其中,第一用户端的身份信息是第一用户端对应的用户唯一标识,可以包括以下至少之一:姓名、住址、邮箱地址和手机号码等信息。密钥生成***可以生成***主私钥,并根据***主私钥和第一用户端的身份信息生成第一用户端的用户私钥,并将生成的用户私钥发送至第一用户端。
步骤S202,第一用户端获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端。
其中,预设进制数可以由第一用户端和第二用户端根据实际情况共同设定,例如,预设进制数可以为2、8、10和16等。
具体地,第一用户端获取预设进制数,在获取预设进制数之后,第一用户端可以根据SM9签名算法和用户私钥对小于预设进制数的多个自然数中的各自然数进行签名。其中,小于预设进制数的多个自然数可以为{0,1,…,u-1},u为所述预设进制数。第一用户端根据SM9签名算法和用户私钥对{0,1,…,u-1}中的各个数进行签名,得到多个签名,并将得到的多个签名发送至第二用户端。
步骤S203,第一用户端接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成。
为了在不获取目标对象的情况下对目标对象进行验证,第一用户端可以从第二用户端接收承诺值。具体地,第二用户端获取目标对象,根据目标对象生成承诺值,并将承诺值发送至第一用户端。
步骤S204,第一用户端接收第二用户端返回的盲化值,其中,盲化值由第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成并公布。
步骤S205,第一用户端根据承诺值和盲化值对目标对象进行验证。
密钥生成***生成***主公钥并公布所述***主公钥,第二用户端可以从密钥生成***获取***主公钥。在第一用户端向第二用户端发送多个签名之后,第二用户端可以根据***主公钥验证所述多个签名的有效性,并且在确定所述多个签名有效的情况下,根据所述多个签名和目标对象生成盲化值,即对目标对象和签名进行盲化,并将得到的盲化值发送至第一用户端。在第一用户端接收到第二用户端发送的承诺值和盲化值之后,可以根据承诺值和盲化值来对目标对象进行验证,即可以通过验证承诺值和盲化值是否一致来验证目标对象是否有效。
上述方案中,通过采用SM9签名算法进行签名,由于SM9签名算法是基于双线性对的标识密码算法,可以生成***主公钥和***主私钥并利用***主私钥和用户的身份信息生成用户私钥,使得第一用户端可以根据用户私钥进行签名,第二用户端可以根据***主公钥来验证签名的有效性,所以采用SM9签名算法的方案不需要数字证书、证书库或密钥库,因此可以有效避免高昂的证书管理开销,有效降低验证成本;进一步地,根据承诺值以及基于签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性;此外,上述方案还具有低通信带宽消耗和低计算开销的特点,能够适应云计算和大数据等领域的数据隐私保护安全需求。
进一步地,在本申请一些实施例中,密钥生成***根据身份信息和密钥生成***生成的***主私钥生成用户私钥,可以包括:生成SM9签名算法的***参数和安全哈希函数;根据***参数和安全哈希函数生成***主私钥和***主公钥,并公布***主公钥;接收第一用户端发送的第一用户端的身份信息;根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥。其中,***参数可以包括椭圆曲线相关参数或者其他类型的参数(例如基于乘法群的参数等)。通过上述方式,密钥生成***可以根据SM9签名算法的***参数和安全哈希函数生成***主公钥、***主私钥,并根据***主私钥和身份信息生成用户私钥。
进一步地,在本申请一些实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,可以包括:获取目标对象;从密钥生成***获取***参数;根据目标对象和***参数生成承诺值。通过上述方式,可以基于SM9签名算法的***参数和目标对象生成承诺值。
进一步地,在本申请一些实施例中,第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成盲化值,可以包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;从密钥生成***获取***主公钥,并根据***主公钥验证接收到的多个签名是否有效;在验证多个签名有效的情况下,根据多个签名确定多个系数中各系数对应的签名;根据***参数和各系数对应的签名生成盲化值。
具体地,第二用户端在获取预设进制数和预设位数之后,可以根据预设进制数和预设位数将目标对象表示为:其中,σ为目标对象,u为预设进制数,l为预设位数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,j=0,1,2,...,l-1。第二用户端从密钥生成***获取***主公钥,并根据***主公钥验证第一用户端发送的多个签名是否有效,并且在验证多个签名有效的情况下,可以根据接收到的多个签名确定各个系数σj对应的签名。由于接收到的多个签名为小于预设进制数的多个自然数中各自然数对应的签名,而各个系数σj均为小于预设进制数的自然数,所以可以根据σj的数值确定σj对应的签名。在确定各系数σj对应的签名之后,第二用户端可以根据***参数和各系数对应的签名生成盲化值,并将得到的盲化值发送至第一用户端。通过上述方式,第二用户端可以根据***主公钥验证签名的有效性,并在验证签名有效的情况下根据***参数、目标对象的系数和接收到的多个签名来生成盲化值。
考虑到范围证明协议是零知识证明的一种,允许证明者不提供具体元素的情况下,让验证者相信某一承诺值中的元素在指定的范围内。也就是说,给定元素σ的承诺值,证明者能够以零知识的方式让验证者相信σ在某一个数值范围内(比如,σ∈[0,232-1)),因此本申请一些实施例中提供的数据处理方法可以用于实现范围证明协议,即证明目标对象在预设范围内。因此,在本申请一些实施例中,第一用户端根据承诺值和盲化值对目标对象进行验证,可以包括:接收第二用户端发送的中间数据,其中,中间数据由第二用户端根据***参数、预设进制数和预设位数确定;根据***参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端返回的证明数据,其中,证明数据由第二用户端根据***参数、挑战值和多个系数确定;根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内。通过上述方式,可以实现范围证明协议,使得在第二用户端不提供目标对象的情况下,让第一用户端相信某一承诺值对应的目标对象在预设范围内。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成承诺值:
C=σG+ρH;
其中,C为承诺值,σ为目标对象,G和H为群的生成元,为n阶循环群,n为大素数, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n,G,G为***参数。
进一步地,在本申请一些实施例中,密钥生成***根据***参数和安全哈希函数生成***主私钥和***主公钥,可以包括按照以下公式生成***主私钥和***主公钥:
msk=s;
其中,mpk为***主公钥,msk为***主私钥,为n阶循环群,e为双线性对映射,G,H,P1为群的生成元,P2为群的生成元,Ppub=sP2,g=e(P1,Ppub),其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为大素数,hid=1;为安全哈希函数, n,G,H,P1,P2,hid为***参数。通过上述方式,密钥生成***可以根据***参数和哈希函数生成***主公钥和***主私钥。
进一步地,在本申请一些实施例中,密钥生成***根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥,可以包括:
确定以下等式是否成立:
在确定以上等式成立的情况下,按照以下公式生成用户私钥:
其中,Dv为用户私钥,s为所述***主私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,为安全哈希函数,IDv为第一用户端的身份信息,hid=1,P1为群的生成元,群为n阶循环群,n为大素数,其中,n,P1,hid为***参数,mod为模运算。通过以上方式,密钥生成***可以根据***参数和第一用户端的身份信息生成第一用户端的用户私钥。
进一步地,在本申请一些实施例中,第一用户端可以按照以下公式对小于预设进制数的多个自然数中的各自然数进行签名:
Si=li·Dv
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,(wi,hi,Si)为i对应的签名,为安全哈希函数,li=(ri-hi)mod n,Dv为用户私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,n为大素数,g=e(P1,Ppub),其中,P1为群的生成元,Ppub=sP2,P2为群的生成元,其中,e为双线性对映射,为n阶循环群,n,P1,P2为***参数,mod为模运算。
进一步地,在本申请一些实施例中,在根据***主公钥验证接收到的多个签名有效的情况下,第二用户端可以按照以下公式生成盲化值:
其中,是盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,为多个签名中与σj对应的签名,∈j1,j2,j, 为集合{1,2,...,n}中与n互素的元素构成的集合,G和H为群的生成元,为n阶循环群,n为大素数,n,G,H为***参数,mod为模运算。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成中间数据:
Bj=m1,jG+m2,jH;
Dj=ejG+m3,jH;
其中,(A,Bj,Dj,Ej,Fj)为中间数据,xj,y,m1,j,m2,j,m3,j,ej,lj,其中,为集合{1,2,...,n}中与n互素的元素构成的集合,j=0,1,2,...,l-1,u为预设进制数,l为预设位数,H和G为群的生成元,Wj为群上的元素,为群上的元素,其中,e为双线性对映射,为n阶循环群,其中,n,G,H为***参数。
进一步地,在本申请一些实施例中,第二用户端可以按照以下公式生成证明数据:
zy=y-ρ·c;
其中,为证明数据,j=0,1,2,...,l-1,l为预设位数;xj,y,ρ,m1,j,m2,j,m3,j1,j2,j3,j,ej,∈j,lj,c为挑战值,其中,为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为大素数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,其中,σ为目标对象,u为预设进制数,l为预设位数,γj是满足的随机数,其中,H和G为群的生成元,为n阶循环群,为群上的元素,其中,n,G,H为***参数。
进一步地,在本申请一些实施例中,第一用户端根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内,可以包括:
确定以下五个等式是否均成立:
在确定以上五个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,(A,Bj,Dj,Ej,Fj)为中间数据,为证明数据,是盲化值,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值;G,H,P1为群的生成元,Ppub=sP2,其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,P2为群的生成元,n为大素数;其中, 为n阶循环群,e为双线性对映射,n,G,H,P1,P2为***参数,Qv是第一用户端的公开参数,Qv=hashvP2+Ppub,其中,其中,IDv为第一用户端的身份信息,hid=1,为安全哈希函数。
在本申请的一些实施例中,上述数据处理方法不仅支持σ∈[0,ul)形式的范围证明,还可以扩展成一般形式的范围证明,其中,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,密钥生成***生成SM9签名算法的***参数和安全哈希函数,并根据***参数和安全哈希函数生成***主公钥和***主私钥;具体地,输入安全参数λ,选取素数n阶循环群和双线性对映射中随机选取生成元随机选取计算Ppib=sP2和g=e(P1,Ppub);选取两个安全哈希函数随机选取一个字节的附属信息hid,在SM9算法标准中,hid=1,G,H,P1,P2,g,hid为***参数,输出***主公钥和***主私钥msk=s;
步骤2,第一用户端向密钥生成***发送第一用户端的身份信息IDv
步骤3,密钥生成***根据***主私钥和第一用户端的身份信息生成用户私钥,具体地,密钥生成***判断是否成立,若成立,则重新生成主私钥;否则,计算第一用户端的用户私钥
步骤4,第一用户端从密钥生成***获取***参数、安全哈希函数和用户私钥,第二用户端从密钥生成***获取***参数和***主公钥;
步骤5,第二用户端获取目标对象,并根据***参数和目标对象生成承诺值,并将生成的承诺值发送给第一用户端,具体地,第二用户端随机选取计算承诺C=σG+ρH,其中σ为第二用户端的目标对象,为集合{1,2,...,n}中与n互素的元素构成的集合,n为大素数;
步骤6,第一用户端获取预设进制数u,并根据SM9签名算法和用户私钥对小于预设进制数的多个自然数种各自然数进行签名,得到多个签名,并将得到的多个签名发送至第二用户端,具体地,对于 为集合{0,1,2,...,u-1}中的u个元素,第一用户端随机选取计算签名和Si=li·Dv,其中,li=(ri-hi)mod n,(wi,hi,Si)为i对应的签名,将发送至第二用户端;
步骤7,第二用户端获取预设进制数u和预设位数l,并根据预设进制数u和预设位数l表示目标对象,得到多个系数,根据***主公钥验证接收到的多个签名是否有效,在验证接收到的多个签名有效的情况下,根据接收到的多个签名确定多个系数中各系数对应的签名,根据***参数和各系数对应的签名确定盲化值,将得到的盲化值返回至第一用户端,具体地,对于 为集合{0,1,2,...,l-1}中的l个元素,随机选取∈j1,j2,j,计算 第一用户端将盲化值发送给第二用户端;
步骤8,第二用户端根据***参数、预设进制数和预设位数确定中间数据,并将中间数据发送至第一用户端,具体地,对于第二用户端随机选取xj,y,m1,j,m2,j,m3,j,ej,lj,计算中间数据 并将中间数据发送给第一用户端;
步骤9,第一用户端挑选挑战值,并将挑战值发送至第二用户端,具体地,随机选取挑战值并将c发送给第二用户端;
步骤10,第二用户端根据***参数、挑战值和多个系数确定证明数据,并将证明数据发送给第一用户端,具体地,对于第二用户端计算 其中,γj是满足的随机数,将证明数据发送给第一用户端;
步骤11,第一用户端根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内,具体地,第一用户端验证者验证等式 是否均成立,若均成立,说明验证通过,σ∈[0,ul);否则,拒绝该证明。
上述实施例中的用于实现范围证明协议的数据处理方法,基于SM9签名算法,密钥生成***生成***主公钥和***主私钥并公布***主公钥,密钥生成***接收第一用户端发送的身份信息,并根据***主私钥和第一用户端的身份信息生成第一用户端的用户私钥,使得第一用户端可以根据用户私钥进行签名,第二用户端可以根据***主公钥验证签名的有效性,而不需要CA颁发公钥证书,因此可以降低对目标对象进行验证的证书管理开销;第一用户端根据用户私钥对小于预设进制数的多个自然数进行签名,并将得到的多个签名发送给第二用户端;第二用户端根据***参数和目标对象生成承诺值,将承诺值发送给第一用户端;第一用户端根据接收到的多个签名和目标对象生成多个盲化值,并将盲化值发送给第一用户端;第二用户端生成中间数据,并将中间数据发送至第一用户端,并根据第一用户端返回的挑战值生成证明数据,将证明数据发送给第一用户端,使得第一用户端可以根据***参数、盲化值、承诺值、挑战值、中间数据和证明数据验证目标对象是否在预设范围内。即,上述方案在采用签名盲化的方式实现范围证明协议时,利用SM9数字签名算法进行构造,即作为验证者的第一用户端预先提供各元素的签名时采用SM9签名算法进行签名,不仅有效避免了高昂的证书管理开销,还具有低通信带宽消耗和低计算开销的特点,能够适应云计算和大数据等领域的数据隐私保护安全需求。
基于同一发明构思,本申请实施例中还提供了一种数据处理装置,如下面的实施例所述。由于数据处理装置解决问题的原理与数据处理方法相似,因此数据处理装置的实施可以参见数据处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的数据处理装置的一种结构框图,如图4所示,包括:发送模块401、签名模块402、第一接收模块403、第二接收模块404和验证模块405,下面对该结构进行说明。
发送模块401用于将第一用户端的身份信息发送至密钥生成***,并接收密钥生成***返回的用户私钥,其中,用户私钥由密钥生成***根据身份信息和密钥生成***生成的***主私钥生成。
签名模块402用于获取预设进制数,根据SM9签名算法和用户私钥对小于预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端。
第一接收模块403用于接收第二用户端发送的承诺值,其中,承诺值由第二用户端根据第二用户端获取的目标对象生成。
第二接收模块404用于接收第二用户端返回的盲化值,其中,盲化值由第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成,其中,***主公钥由密钥生成***生成并公布。
验证模块405用于根据承诺值和盲化值对目标对象进行验证。
在本申请一些实施例中,密钥生成***根据身份信息和密钥生成***生成的***主私钥生成用户私钥,可以包括:生成SM9签名算法的***参数和安全哈希函数;根据***参数和安全哈希函数生成***主私钥和***主公钥,并公布***主公钥;接收第一用户端发送的第一用户端的身份信息;根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥。
在本申请一些实施例中,第二用户端根据第二用户端中获取的目标对象生成承诺值,可以包括:获取目标对象;从密钥生成***获取***参数;根据目标对象和***参数生成承诺值。
在本申请一些实施例中,第二用户端在根据***主公钥验证接收到的多个签名有效的情况下根据多个签名和目标对象生成盲化值,可以包括:获取预设进制数和预设位数;根据预设进制数和预设位数表示目标对象,得到多个系数;从密钥生成***获取***主公钥,并根据***主公钥验证接收到的多个签名是否有效;在验证多个签名有效的情况下,根据多个签名确定多个系数中各系数对应的签名;根据***参数和各系数对应的签名生成盲化值。
在本申请一些实施例中,验证模块可以具体用于:接收第二用户端发送的中间数据,其中,中间数据由第二用户端根据***参数、预设进制数和预设位数确定;根据***参数确定挑战值,并将挑战值发送至第二用户端;接收第二用户端返回的证明数据,其中,证明数据由第二用户端根据***参数、挑战值和多个系数确定;根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内。
在本申请一些实施例中,第二用户端可以按照以下公式生成承诺值:
C=σG+ρH;
其中,C为承诺值,σ为目标对象,G和H为群的生成元,为n阶循环群,n为大素数, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n,G,H为***参数。
在本申请一些实施例中,密钥生成***根据***参数和安全哈希函数生成***主私钥和***主公钥,可以包括按照以下公式生成***主私钥和***主公钥:
msk=s;
其中,mpk为***主公钥,msk为***主私钥,为n阶循环群,e为双线性对映射,G,H,P1为群的生成元,P2为群的生成元,Ppub=sP2,g=e(P1,Ppub),其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为大素数,hid=1;为安全哈希函数, n,G,H,P1,P2,hid为***参数。
在本申请一些实施例中,密钥生成***根据***参数、安全哈希函数、***主私钥和身份信息生成用户私钥,可以包括:
确定以下等式是否成立:
在确定以上等式成立的情况下,按照以下公式生成用户私钥:
其中,Dv为用户私钥,s为所述***主私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,为安全哈希函数,IDv为第一用户端的身份信息,hid=1,P1为群的生成元,群为n阶循环群,n为大素数,其中,n,P1,hid为***参数,mod为模运算。
在本申请一些实施例中,签名模块可以具体用于按照以下公式对小于预设进制数的多个自然数中的各自然数进行签名:
Si=li·Dv
其中,i=0,1,2,...,u-1,为小于预设进制数的多个自然数,u为预设进制数,(wi,hi,Si)为i对应的签名,为安全哈希函数,li=(ri-hi)mod n,Dv为用户私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,n为大素数,g=e(P1,Ppub),其中,P1为群的生成元,Ppub=sP2,P2为群的生成元,其中,e为双线性对映射,为n阶循环群,n,P1,P2为***参数,mod为模运算。
在本申请一些实施例中,在根据***主公钥验证接收到的多个签名有效的情况下,第二用户端可以按照以下公式生成盲化值:
其中,是盲化值,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,为小于预设进制数的自然数,其中,σ为目标对象,u为预设进制数,l为预设位数,j=0,1,2,...,l-1,为多个签名中与σj对应的签名,∈j1,j2,j, 为集合{1,2,...,n}中与n互素的元素构成的集合,G和H为群的生成元,为n阶循环群,n为大素数,n,G,H为***参数,mod为模运算。
在本申请一些实施例中,第二用户端可以按照以下公式生成中间数据:
Bj=m1,jG+m2,jH;
Dj=ejG+m3,jH;
其中,(A,Bj,Dj,Ej,Fj)为中间数据,xj,y,m1,j,m2,j,m3,j,ej,lj,其中,为集合{1,2,...,n}中与n互素的元素构成的集合,j=0,1,2,...,l-1,u为预设进制数,l为预设位数,H和G为群的生成元,Wj为群上的元素,为群上的元素,其中,e为双线性对映射,为n阶循环群,其中,n,G,H为***参数。
在本申请一些实施例中,第二用户端可以按照以下公式生成证明数据:
zy=y-ρ·c;
其中,为证明数据,j=0,1,2,...,l-1,l为预设位数;xj,y,ρ,m1,j,m2,j,m3,j1,j2,j3,j,ej,∈j,lj,c为挑战值,其中,为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为大素数,σj为根据预设进制数和预设位数表示目标对象时得到的多个系数,其中,σ为目标对象,u为预设进制数,l为预设位数,γj是满足的随机数,其中,H和G为群的生成元,为n阶循环群,为群上的元素,其中,n,G,H为***参数。
在本申请一些实施例中,第一用户端根据用户私钥、盲化值、承诺值、中间数据、挑战值和证明数据验证目标对象是否在预设范围内,可以包括:
确定以下五个等式是否均成立:
在确定以上五个等式均成立的情况下,确定目标对象在预设范围内,其中,预设范围为[0,ul);
其中,(A,Bj,Dj,Ej,Fj)为中间数据,为证明数据,是盲化值,j=0,1,2,...,l-1,u为预设进制数,l为预设位数;c为挑战值,C为承诺值;G,H,P1为群的生成元,Ppub=sP2,其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,P2为群的生成元,n为大素数;其中, 为n阶循环群,e为双线性对映射,n,G,H,P1,P2为***参数,Qv是第一用户端的公开参数,Qv=hashvP2+Ppub,其中,其中,IDv为第一用户端的身份信息,hid=1,为安全哈希函数。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:通过采用SM9签名算法进行签名,由于SM9签名算法是基于双线性对的标识密码算法,可以生成***主公钥和***主私钥并利用***主私钥和用户的身份信息生成用户私钥,使得第一用户端可以根据用户私钥进行签名,第二用户端可以根据***主公钥来验证签名的有效性,所以采用SM9签名算法的方案不需要数字证书、证书库或密钥库,因此可以有效避免高昂的证书管理开销,有效降低验证成本;进一步地,根据承诺值以及基于签名生成的盲化值,第一用户端可以在不获取目标对象的情况下验证目标对象,有效保护了数据隐私和数据安全性;此外,上述方案还具有低通信带宽消耗和低计算开销的特点,能够适应云计算和大数据等领域的数据隐私保护安全需求。通过上述方案解决了现有的对目标对象进行验证的目前的数据验证方法中证书管理开销高的技术问题,达到了有效降低验证成本的技术效果。
本申请实施方式还提供了一种计算机设备,具体可以参阅图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 (16)

1.一种数据处理方法,其特征在于,所述方法包括:
第一用户端将所述第一用户端的身份信息发送至密钥生成***,并接收所述密钥生成***返回的用户私钥,其中,所述用户私钥由所述密钥生成***根据所述身份信息和所述密钥生成***生成的***主私钥生成;
所述第一用户端获取预设进制数,根据SM9签名算法和所述用户私钥对小于所述预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端;
所述第一用户端接收所述第二用户端发送的承诺值,其中,所述承诺值由所述第二用户端根据所述第二用户端获取的目标对象生成;
所述第一用户端接收所述第二用户端返回的盲化值,其中,所述盲化值由所述第二用户端在根据***主公钥验证接收到的所述多个签名有效的情况下根据所述多个签名和所述目标对象生成,其中,所述***主公钥由所述密钥生成***生成并公布;
所述第一用户端根据所述承诺值和所述盲化值对所述目标对象进行验证。
2.根据权利要求1所述的方法,其特征在于,所述密钥生成***根据所述身份信息和所述密钥生成***生成的***主私钥生成所述用户私钥,包括:
生成SM9签名算法的***参数和安全哈希函数;
根据所述***参数和所述安全哈希函数生成***主私钥和***主公钥,并公布所述***主公钥;
接收所述第一用户端发送的所述第一用户端的身份信息;
根据所述***参数、所述安全哈希函数、所述***主私钥和所述身份信息生成所述用户私钥。
3.根据权利要求2所述的方法,其特征在于,所述第二用户端根据所述第二用户端中获取的目标对象生成所述承诺值,包括:
获取所述目标对象;
从所述密钥生成***获取所述***参数;
根据所述目标对象和所述***参数生成所述承诺值。
4.根据权利要求3所述的方法,其特征在于,所述第二用户端在根据***主公钥验证接收到的所述多个签名有效的情况下根据所述多个签名和所述目标对象生成盲化值,包括:
获取所述预设进制数和预设位数;
根据所述预设进制数和所述预设位数表示所述目标对象,得到多个系数;
从所述密钥生成***获取所述***主公钥,并根据所述***主公钥验证接收到的所述多个签名是否有效;
在验证所述多个签名有效的情况下,根据所述多个签名确定所述多个系数中各系数对应的签名;
根据所述***参数和所述各系数对应的签名生成盲化值。
5.根据权利要求3所述的方法,其特征在于,所述第一用户端根据所述承诺值和所述盲化值对所述目标对象进行验证,包括:
接收所述第二用户端发送的中间数据,其中,所述中间数据由所述第二用户端根据所述***参数、所述预设进制数和所述预设位数确定;
根据所述***参数确定挑战值,并将所述挑战值发送至所述第二用户端;
接收所述第二用户端返回的证明数据,其中,所述证明数据由所述第二用户端根据所述***参数、所述挑战值和所述多个系数确定;
根据所述用户私钥、所述盲化值、所述承诺值、所述中间数据、所述挑战值和所述证明数据验证所述目标对象是否在预设范围内。
6.根据权利要求3所述的方法,其特征在于,所述第二用户端按照以下公式生成所述承诺值:
C=σG+ρH;
其中,C为所述承诺值,σ为所述目标对象,G和H为群的生成元,为n阶循环群,n为大素数, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n,G,H为所述***参数。
7.根据权利要求2所述的方法,其特征在于,所述密钥生成***根据所述***参数和所述安全哈希函数生成***主私钥和***主公钥,包括按照以下公式生成***主私钥和***主公钥:
msk=s;
其中,mpk为所述***主公钥,msk为所述***主私钥,为n阶循环群,e为双线性对映射,G,H,P1为群的生成元,P2为群的生成元,Ppub=sP2,g=e(P1,Ppub),其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,其中,n为大素数,hid=1;为所述安全哈希函数,n,G,H,P1,P2,hid为所述***参数。
8.根据权利要求2所述的方法,其特征在于,所述密钥生成***根据所述***参数、所述安全哈希函数、所述***主私钥和所述身份信息生成所述用户私钥,包括:
确定以下等式是否成立:
在确定以上等式成立的情况下,按照以下公式生成所述用户私钥:
其中,Dv为所述用户私钥,s为所述***主私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,为所述安全哈希函数,IDv为所述第一用户端的身份信息,hid=1,P1为群的生成元,群为n阶循环群,n为大素数,其中,n,P1,hid为所述***参数,mod为模运算。
9.根据权利要求2所述的方法,其特征在于,所述第一用户端按照以下公式对小于所述预设进制数的多个自然数中的各自然数进行签名:
Si=li·Dv
其中,i=0,1,2,...,u-1,为小于所述预设进制数的多个自然数,u为所述预设进制数,(wi,hi,Si)为i对应的签名,为所述安全哈希函数,li=(ri-hi)mod n,Dv为所述用户私钥, 为集合{1,2,...,n}中与n互素的元素构成的集合,n为大素数,g=e(P1,Ppub),其中,P1为群的生成元,Ppub=sP2,P2为群的生成元,其中,e为双线性对映射,为n阶循环群,n,P1,P2为所述***参数,mod为模运算。
10.根据权利要求4所述的方法,其特征在于,在根据所述***主公钥验证接收到的所述多个签名有效的情况下,所述第二用户端按照以下公式生成所述盲化值:
其中,是所述盲化值,σj为根据预设进制数和预设位数表示所述目标对象时得到的多个系数,为小于预设进制数的自然数,其中,σ为所述目标对象,u为所述预设进制数,l为所述预设位数,j=0,1,2,...,l-1,为所述多个签名中与σj对应的签名,∈j,ρ1,j,ρ2,j,ρ3 为集合{1,2,...,n}中与n互素的元素构成的集合,G和H为群的生成元,为n阶循环群,n为大素数,n,G,H为所述***参数,mod为模运算。
11.根据权利要求5所述的方法,其特征在于,所述第二用户端按照以下公式生成所述中间数据:
Bj=m1,jG+m2,jH;
Dj=ejG+m3,jH;
其中,(A,Bj,Dj,Ej,Fj)为所述中间数据,xj,y,m1,j,m2,j,m3,j,ej,lj其中,为集合{1,2,...,n}中与n互素的元素构成的集合,j=0,1,2,...,l-1,u为所述预设进制数,l为所述预设位数,H和G为群的生成元,Wj为群上的元素,为群上的元素,其中,e为双线性对映射,为n阶循环群,其中,n,G,H为所述***参数。
12.根据权利要求5所述的方法,其特征在于,所述第二用户端按照以下公式生成所述证明数据:
zy=y-ρ·c;
其中为所述证明数据,j=0,1,2,...,l-1,l为所述预设位数;xj,y,ρ,m1,j,m2,j,m3,j,ρ1,j,ρ2,j,ρ3,j,ej,∈j,ljc为所述挑战值,其中,为集合{1,2,...,n}中与元素n互素的元素构成的集合,n为大素数,σj为根据预设进制数和预设位数表示所述目标对象时得到的所述多个系数,其中,σ为所述目标对象,u为所述预设进制数,l为所述预设位数,γj是满足的随机数,其中,H和G为群的生成元,为n阶循环群,为群上的元素,其中,n,G,H为所述***参数。
13.根据权利要求5所述的方法,其特征在于,所述第一用户端根据所述用户私钥、所述盲化值、所述承诺值、所述中间数据、所述挑战值和所述证明数据验证所述目标对象是否在预设范围内,包括:
确定以下五个等式是否均成立:
在确定以上五个等式均成立的情况下,确定所述目标对象在预设范围内,其中,所述预设范围为[0,ul);
其中,(A,Bj,Dj,Ej,Fj)为所述中间数据,为所述证明数据,是所述盲化值,j=0,1,2,...,l-1,u为所述预设进制数,l为所述预设位数;c为所述挑战值,C为所述承诺值;G,H,P1为群的生成元,Ppub=sP2,其中, 为集合{1,2,...,n}中与n互素的元素构成的集合,P2为群的生成元,n为大素数;其中, 为n阶循环群,e为双线性对映射,n,G,H,P1,P2为所述***参数,Qv是所述第一用户端的公开参数,Qv=hashvP2+Ppub,其中,其中,IDv为所述第一用户端的身份信息,hid=1,为所述安全哈希函数。
14.一种数据处理装置,其特征在于,位于第一用户端中,所述装置包括:
发送模块,用于将所述第一用户端的身份信息发送至密钥生成***,并接收所述密钥生成***返回的用户私钥,其中,所述用户私钥由所述密钥生成***根据所述身份信息和所述密钥生成***生成的***主私钥生成;
签名模块,用于获取预设进制数,根据SM9签名算法和所述用户私钥对小于所述预设进制数的多个自然数中的各自然数进行签名,并将得到的多个签名发送至第二用户端;
第一接收模块,用于接收所述第二用户端发送的承诺值,其中,所述承诺值由所述第二用户端根据所述第二用户端获取的目标对象生成;
第二接收模块,用于接收所述第二用户端返回的盲化值,其中,所述盲化值由所述第二用户端在根据***主公钥验证接收到的所述多个签名有效的情况下根据所述多个签名和所述目标对象生成,其中,所述***主公钥由所述密钥生成***生成并公布;
验证模块,用于根据所述承诺值和所述盲化值对所述目标对象进行验证。
15.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至13中任一项所述方法的步骤。
CN201910541541.8A 2019-06-21 2019-06-21 范围证明方法、装置、计算机设备和存储介质 Active CN110311776B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN110311776A true CN110311776A (zh) 2019-10-08
CN110311776B CN110311776B (zh) 2022-03-22

Family

ID=68077712

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN110311776B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111342962A (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 一种验证密文消息范围的方法和***
CN112015814A (zh) * 2020-08-26 2020-12-01 深圳壹账通智能科技有限公司 基于区块链网络的数据生成方法、设备、节点及存储介质
CN112039891A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 一种区块链共享异常数据的方法及装置
CN112511566A (zh) * 2021-02-02 2021-03-16 北京信安世纪科技股份有限公司 Sm9算法无证书机制签名密钥生成方法、设备及存储介质
CN115001711A (zh) * 2022-06-10 2022-09-02 成都卫士通信息产业股份有限公司 信息签名方法、装置、电子设备及计算机可读存储介质
CN115242402A (zh) * 2022-07-12 2022-10-25 长春吉大正元信息技术股份有限公司 签名方法、验签方法及电子设备
WO2023134577A1 (zh) * 2022-01-17 2023-07-20 中兴通讯股份有限公司 云数据安全认证方法、***和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300347A1 (en) * 2007-12-06 2009-12-03 Jan Leonhard Camenisch Set membership proofs in data processing systems
CN101834853A (zh) * 2010-04-02 2010-09-15 中国科学院软件研究所 匿名资源共享方法和***
CN102387019A (zh) * 2011-10-19 2012-03-21 西安电子科技大学 无证书部分盲签名方法
CN106789019A (zh) * 2016-12-27 2017-05-31 深圳大学 一种无证书部分盲签名方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300347A1 (en) * 2007-12-06 2009-12-03 Jan Leonhard Camenisch Set membership proofs in data processing systems
CN101834853A (zh) * 2010-04-02 2010-09-15 中国科学院软件研究所 匿名资源共享方法和***
CN102387019A (zh) * 2011-10-19 2012-03-21 西安电子科技大学 无证书部分盲签名方法
CN106789019A (zh) * 2016-12-27 2017-05-31 深圳大学 一种无证书部分盲签名方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHAABOUNI ETAL.: "Additive Combinatorics and Discrete Logarithm Based Range Protocols", 《15TH AUSTRALASIAN CONFERENCE, ACISP 2010》 *
HE DEBIAO ETAL.: "An efficient and provably-secure certificateless signature scheme without bilinear pairings", 《INT.J,COMMUN. SYST.》 *
JAN CAMENISCH ETAL.: "Efficient protocols for set membership and range proofs", 《ASIACRYPT 2008: ADVANCES IN CRYPTOLOGY - ASIACRYPT 2008》 *
国家密码管理局: "SM9标识密码算法", 《SM9标识密码算法 *
邓光: "一个安全的基于身份的密钥分发解决方案", 《计算机***应用》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111342962A (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 一种验证密文消息范围的方法和***
CN112015814A (zh) * 2020-08-26 2020-12-01 深圳壹账通智能科技有限公司 基于区块链网络的数据生成方法、设备、节点及存储介质
CN112015814B (zh) * 2020-08-26 2022-10-04 深圳壹账通智能科技有限公司 基于区块链网络的数据生成方法、设备、节点及存储介质
CN112039891A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 一种区块链共享异常数据的方法及装置
CN112039891B (zh) * 2020-08-31 2024-04-09 深圳前海微众银行股份有限公司 一种区块链共享异常数据的方法及装置
CN112511566A (zh) * 2021-02-02 2021-03-16 北京信安世纪科技股份有限公司 Sm9算法无证书机制签名密钥生成方法、设备及存储介质
WO2023134577A1 (zh) * 2022-01-17 2023-07-20 中兴通讯股份有限公司 云数据安全认证方法、***和计算机可读存储介质
CN115001711A (zh) * 2022-06-10 2022-09-02 成都卫士通信息产业股份有限公司 信息签名方法、装置、电子设备及计算机可读存储介质
CN115001711B (zh) * 2022-06-10 2024-01-30 成都卫士通信息产业股份有限公司 信息签名方法、装置、电子设备及计算机可读存储介质
CN115242402A (zh) * 2022-07-12 2022-10-25 长春吉大正元信息技术股份有限公司 签名方法、验签方法及电子设备
CN115242402B (zh) * 2022-07-12 2023-05-30 长春吉大正元信息技术股份有限公司 签名方法、验签方法及电子设备

Also Published As

Publication number Publication date
CN110311776B (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
CN110311776A (zh) 数据处理方法、装置、计算机设备和存储介质
CN108551392B (zh) 一种基于sm9数字签名的盲签名生成方法及***
CN103765809B (zh) 隐式认证的公钥
CN110380862A (zh) 签名验证方法、装置、计算机设备和存储介质
CN104378374B (zh) 一种基于安全套接层建立通信的方法及***
WO2019220270A1 (en) Computer-implemented systems and methods for using a blockchain to perform an atomic swap
CN108712261A (zh) 一种基于区块链的密钥生成方法、装置及介质
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
CN103780386B (zh) 基于身份的盲签名方法和装置
US6088798A (en) Digital signature method using an elliptic curve, a digital signature system, and a program storage medium having the digital signature method stored therein
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理***
CN111008863A (zh) 一种基于区块链的抽奖方法及***
US9172530B2 (en) Apparatus and method for generating secret key for ID-based encryption system and recording medium having program recorded thereon for causing computer to execute the method
ES2400895B1 (es) Método para realizar una firma digital de grupo
CN112436938B (zh) 数字签名的生成方法、装置和服务器
US20160149708A1 (en) Electronic signature system
CN111245626B (zh) 零知识证明方法、装置及存储介质
CN110062002A (zh) 一种鉴权方法及相关产品
CN111161075B (zh) 区块链交易数据证明监管方法、***及相关设备
CN109257181B (zh) 无证书环境下椭圆曲线盲签密方法
GB2450574A (en) Batch verification of multiple signature data
CN101296076A (zh) 一种基于ecc的数字签名方案
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
CN102769530A (zh) 一种计算高效的在线/离线数字签名方法
CN112184441A (zh) 数据处理方法、装置、节点设备及存储介质

Legal Events

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

Effective date of registration: 20230331

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.