CN109818730A - 盲签名的获取方法、装置和服务器 - Google Patents

盲签名的获取方法、装置和服务器 Download PDF

Info

Publication number
CN109818730A
CN109818730A CN201910167543.5A CN201910167543A CN109818730A CN 109818730 A CN109818730 A CN 109818730A CN 201910167543 A CN201910167543 A CN 201910167543A CN 109818730 A CN109818730 A CN 109818730A
Authority
CN
China
Prior art keywords
data
signed
random number
server
signed data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910167543.5A
Other languages
English (en)
Other versions
CN109818730B (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 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 Technology (shenzhen) Co Ltd filed Critical Matrix Technology (shenzhen) Co Ltd
Priority to CN201910167543.5A priority Critical patent/CN109818730B/zh
Publication of CN109818730A publication Critical patent/CN109818730A/zh
Application granted granted Critical
Publication of CN109818730B publication Critical patent/CN109818730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种盲签名的获取方法、装置和服务器,其中,该方法包括:获取待签名的目标数据;根据同态加密算法,对目标数据进行第一预设处理,得到第一数据,并发送至第二服务器;接收第二数据,其中,第二数据为第二服务器根据同态加密算法,对第一数据进行第二预设处理得到的;根据第二数据,获取所述目标数据的签名数据。由于该方案通过利用同态加密算法在SM2基础上先对目标数据进行盲化处理,再将处理后的数据发送至第二服务器进行盲签名,第二服务器无法获取目标数据所包含的具体内容,同时第二服务器进行的签名也无法被追踪,从而解决了现有方法中存在的用户和签名者的数据隐私得不到保护的技术问题。

Description

盲签名的获取方法、装置和服务器
技术领域
本申请涉及互联网技术领域,特别涉及一种盲签名的获取方法、装置和服务器。
背景技术
在信息数据处理过程中,为了保证数据处理安全,常常需要使用相应的签名数据(也可以称为数字签名)作为验证签名者身份,以及信息数据内容的合法性的数据凭证,拥有该数据凭证后才能顺利地完成相应的数据处理。
现有的签名数据的获取方法大多是基于SM2(椭圆曲线公钥密码算法)来生成具体的签名数据的。基于上述方法,在生成签名数据的过程中,签名者需要在知道待签名的信息数据所包含的具体内容的情况下才能进行相应签名。但待签名的信息数据所包含的具体内容往往可能涉及到用户隐私,有时用户并不希望签名者知晓信息数据中的具体内容。此外,基于现有方法得到的签名数据的安全性相对较差,容易被第三方追踪,也会对签名者的隐私造成影响。综上可知,现有方法具体实施时,往往会存在用户和签名者的数据隐私得不到保护的技术问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种盲签名的获取方法、装置和服务器,以解决现有方法中存在的用户和签名者的数据隐私得不到保护的技术问题。
本申请实施例提供了一种盲签名的获取方法,所述方法应用于第一服务器,包括:
获取待签名的目标数据;
根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;
接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;
根据所述第二数据,获取所述目标数据的签名数据。
在一个实施例中,根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,包括:
获取用户的身份标识,并根据所述用户的身份标识,生成第一哈希值;
根据所述第一哈希值和所述目标数据,生成第一中间数据;
根据所述第一中间数据生成第二哈希值;
获取处理后的第一随机数,以及第二随机数,其中,所述处理后的第一随机数为第二服务器根据所得到的第一随机数生成,所述第一随机数和所述第二随机数分别为同一预设范围内随机抽取的整数;
根据所述处理后的第一随机数,以及第二随机数,生成处理后的第二随机数;
根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据;
利用加密公钥对所述第一签名数据和第二随机数分别进行加密处理,得到加密后的第一签名数据和加密后的第二随机数;
根据所述加密后的第一签名数据和所述加密后的第二随机数,获得第一数据。
在一个实施例中,在根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据后,所述方法还包括:
检测所述第一签名数据是否满足预设的数值要求;
在确定所述第一签名数据不满足预设的数值要求的情况下,重新获取第二随机数。
在一个实施例中,所述预设的数值要求包括:第一签名数据的数值为0,或,第一签名数据与第二随机数的和等于所述预设范围中所包含的整数的个数加1。
在一个实施例中,根据所述第二数据,获取所述目标数据的签名数据,包括:
按照以下公式获取第二签名数据,并将所述第一签名数据和所述第二签名数据作为所述目标数据的签名数据:
D(C)=s′=(1+ds)-1(k1k2+r)modq
s=s′-rmodq
其中,C为第二数据,D(C)表示对第二数据进行解密运算,ds为签名私钥,k1为第一随机数,k2为第二随机数,r为第一签名数据,q为有限域中所包含的整数的个数,modq表示模q运算,s为第二签名数据,(1+ds)-1为(1+ds)的模q乘法逆运算。
在一个实施例中,在根据所述第二数据,获取所述目标数据的签名数据后,所述方法还包括:
按照预设的验证规则,对所述签名数据进行验证;
根据验证结果,确定所述签名数据是否符合要求。
本申请实施例还提供了一种盲签名的获取方法,所述方法应用于第二服务器,包括:
获取第一数据;其中,所述第一数据为第一服务器根据同态加密算法,对待签名的目标数据进行第一预设处理得到的;
根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据;
将所述第二数据发送至第一服务器。
在一个实施例中,根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据,包括:
按照以下公式进行第二预设处理,得到第二数据:
其中,C为第二数据,C1为加密后的第一签名数据,C2为加密后的第二随机数,k1为第一随机数,(1+ds)-1为(1+ds)的模q乘法逆运算,为同态加密中的加运算,为同态加密中的乘运算。
本申请实施例还提供了一种盲签名的获取装置,包括:
第一获取模块,用于获取待签名的目标数据;
处理模块,用于根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;
接收模块,用于接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;
第二获取模块,用于根据所述第二数据,获取所述目标数据的签名数据。
本申请实施例还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取待签名的目标数据;根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;根据所述第二数据,获取所述目标数据的签名数据。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取待签名的目标数据;根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;根据所述第二数据,获取所述目标数据的签名数据。
在本申请实施例中,通过利用同态加密算法在SM2的框架基础上,先对待签名的目标数据进行盲化处理,得到了第一数据,并将该数据发送给负责签名的第二服务器;第二服务器再根据相应的同态加密算法,在无法获取目标数据所包含的具体内容的情况下对第一数据进行签名加密处理,即进行盲签名处理,得到并向第一服务器反馈对应的第二数据,以便第一服务器可以根据该数据获得目标数据的签名数据,从而可以在兼容适用现有的基于SM2的签名规范的基础上,避免了目标数据所包含的具体内容被第二服务器所获取,也提高了签名数据的安全度和可靠性,避免了第二服务器的签名数据被追踪,解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施方式提供的盲签名的获取方法的处理流程图;
图2是根据本申请实施方式提供的盲签名的获取装置的组成结构图;
图3是基于本申请实施例提供的盲签名的获取方法的服务器的组成结构示意图;
图4是在一个场景示例中应用本申请实施例提供的盲签名的获取方法和装置获得的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到现有的签名数据的获取方法大多是根据业内常规使用的椭圆曲线公钥密码算法(即SM2)来生成相应的签名数据。但是基于上述椭圆曲线公钥密码算法在实现过程中,签名者需要获取并知晓用户想要签名的目标数据的具体内容,导致对用户的数据隐私造成影响。此外,基于现有方法所得到的签名数据容易被第三方追踪,导致又会对签名者造成影响。
针对产生上述技术问题的根本原因,本申请考虑可以在业内常规使用的椭圆曲线公钥密码算法的框架上,引入保密性较高的同态加密算法先对用户需要签名的目标数据进行盲化处理,再将盲化处理后的数据发送给负责签名的服务器,这样可以使得服务器无法知晓获取目标数据的具体内容,保护用户的数据隐私。同时,服务器也可以基于相应的同态加密算法对盲化处理后的数据进行签名加密。用户在获得了服务器反馈的签名数据后,可以进行相应的解密处理,最终得到可以用于具体数据处理的签名数据。这样得到签名数据第三方无法直接进行追踪,也保护了签名者的数据隐私。从而解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题,达到能在保护用户的目标数据的数据隐私的同时,有效地保护签名者的签名数据无法被第三方追踪的技术效果。
基于上述思考思路,本申请实施例提供了一种盲签名的获取方法。具体请参阅图1所示的根据本申请实施方式提供的盲签名的获取方法的处理流程图。本申请实施例提供的盲签名的获取方法,具体应用于用户一侧的第一服务器,具体实施时,该方法可以包括以下内容。
S11:获取待签名的目标数据。
在本实施例中,上述待签名的目标数据具体可以理解为数据处理过程中需要得到有效合法的签名数据后,才能进行后续处理的信息数据。例如,可以是交易数据处理过程中的账单数据,也可以是账户登录处理过程中的账户数据,还可以是数据传输过程中需要保密传输的数据等等。当然,上述所列举的待签名的目标数据只是为了更好地说明本说明书实施例。具体实施时,根据具体应用场景和使用需求,上述待签名的目标数据还可以包括其他类型和内容的信息数据。对此,本说明书不作限定。
其中,上述签名数据,具体可以理解为一种基于密码算法生成的,具有较高安全,不容易被第三方伪造的数字签名,具体可以用作数据处理中用于验证签名者身份,或者所签名的数据合法的数据凭证,即在一些安全度较高的数据处理过程,只会对具有合法的签名数据的目标数据进行相应的数据处理。例如,在交易数据处理过程中,只会对携带有有效、合法的签名数据的账单数据进行相应处理,例如,调用对应用户的账户中的资金数据对账单数据进行核销。
在本实施例中,上述盲签名的获取方法具体可以应用于用户所使用的第一服务器。具体的,用户想要进行某项具体的数据处理,例如,用户想要发起某个交易数据处理,该数据处理在执行时需要对应的签名数据作为数据处理的凭证,这时用户可以通过所使用的第一服务器获取待签名的目标数据。
在本实施例中,具体实施时,可以是用户直接向第一服务器输入待签名的目标数据,也可以是第一服务器接收并响应用户发起的数据处理请求,通过解析用户的数据处理请求,自动获取得到对应的待签名的目标数据。
S13:根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器。
在本实施例中,上述同态加密算法具体可以理解为一种基于数学难题的计算复杂性理论的密码学算法。基于该算法,具体实施时可以先对经过同态加密处理后的数据进行处理得到一个输出,再将这一输出进行解密,解密得到的结果与用同一方法处理未同态加密的原始数据所得到的输出结果是一样的。
基于同态加密算法的上述特征,考虑可以引入同态加密算法先对用户的待签名的目标数据进行处理,使得签名者无法获取、知晓该处理后的数据的具体内容,但仍能够对该处理后的数据进行相应签名。
在本实施例中,上述第一预设处理具体可以理解为一种基于同态加密算法所确定的处理规则对目标数据进行的数据处理。通过上述对目标数据进行第一预设处理,相当于对目标数据进行了盲化处理,即可以将目标数据所包含的具体信息内容通过加密等形式隐藏起来。
在本实施例中,上述第一数据具体可以理解为一种对目标数据进行预设处理后所得到处理后的目标数据,相当于一种盲化处理后的数据。这种数据通常具有更高的安全性,例如,第三方往往无法直接读取出该数据所包含的具体的信息内容。
在本实施例中,上述第二服务器具体具体可以理解为一种负责签名的服务器,即签名者。通过该服务器可以根据所接收到的待签名的目标数据,生成与该目标数据对应的签名数据,并反馈给用户,即第一服务器。
在本实施例中,进一步,又考虑到同态加密算法在实现过程中具有以下的运算处理特点,即:假设用户所使用的公私钥对为(pk,sk)。定义Encpk为加密运算,Decsk为解密运算。定义为c1,c2中密文做“加”运算。定义运算为c中的密文与a做“乘”运算。则具体运算时:如果使用公钥pk对消息数据进行加密,只有唯一对应的私钥sk才可以解密得到对应的信息数据,即Decsk(Encpk(m))=m,其中,m为未加密的信息数据。而密文之间的相乘运算又可以映射为明文之间的相加运算,即具体的,密文之间的相乘运算满足:其中,m1和m2分别为两个未加密的信息数据。类似的,密文与某明文的指数运算也可以映射到密文对应明文与该明文的相乘运算,即具体可以满足以下所列的关系式:
又考虑到基于常规较为广泛使用的SM2,根据《SM2椭圆曲线公钥密码算法》规范。还定义有以下规则:两个整数相乘(或整数符号相乘),在不产生二义性的情况下,省略乘号“·”,例如“a·b”可以简化为“ab”;整数和点相乘,在不产生二义性的情况下,不省略乘号“·”,例如“a·P”不能简化成“aP”;mod q具体可以表示为模q运算,其中,需要说明的是,模q运算的优先级是最低区分的,例如a+b mod q等同于(a+b)mod q,ab mod q等同于(ab)modq;“≡”表示同余式,即a≡b mod q等同于a mod q=b mod q。
结合同态加密算法所具有的上述运算处理特点,以及SM2的规则,为了达到适应常规较为广泛使用的SM2(以兼容目前广为使用SM2,降低实现成本),在SM2的框架基础上不让签名者获取、知晓待签名的目标数据所包含的具体的信息内容,保护用户的数据隐私;但又可以顺利得到签名者针对目标数据的签名数据,以便完成用户的数据处理,具体实施时,可以根据同态加密算法所具体的运算处理特点,确定出适应于本方案,能够达到上述效果的处理规则,进而第一服务器可以根据该处理规则,通过对目标数据进行第一预设处理,得到符合要求的第一数据,即类似盲化处理后的数据,再发送给第二服务器进行签名。
在一个实施例中,上述根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,具体实施时,可以包括以下内容:
S1:获取用户的身份标识,并根据所述用户的身份标识,生成第一哈希值。
在本实施例中,上述用户(可以记为U)的身份标识具体可以理解为一种用于指示用户身份的标识信息。其中,每一个用户的身份标识与一个用户对应。具体的,上述用户的身份标识可以是用户的账户号,也可以是用户的ID号等,可以记为具体可以记为IDU
在本实施例中,上述第一哈希值具体可以理解为一种基于用户的身份标识得到的数据,具体可以记为ZU
在本实施例中,上述根据所述用户的身份标识,生成第一哈希值,具体实施时,可以按照以下公式计算对应的第一哈希值:
ZU=H256(ENTLA||IDU||a||b||xG||yG||xS||yS)
其中,ZU具体可以表示为第一哈希值,H256()具体可以表示为一种哈希值运算,ENTLA具体可以表示为用户的身份标识的长度,IDU具体可以表示为用户的身份标识,||具体可以表示为数据拼接处理,a具体可以表示为第一系统参数,b具体可以表示为第二系统参数,xG具体可以表示为椭圆曲线上基点的横坐标,yG具体可以表示为椭圆曲线上基点的纵坐标,xS具体可以表示为验证公钥的横坐标,yS具体可以表示为验证公钥的纵坐标。
其中,上述H256()是一种基于SM2的安全哈希函数,相当于{0,1}*→{0,1}q,即可以表示将任意字符长度的信息映射为q个字符长度的信息。
在一个实施例中,在获取待签名的目标数据进行签名数据的生成之前,所述方法还包括:第一服务器和第二服务器响应初始化指令,进行系统初始化,以生成后续签名数据生成过程中所要使用到的参数数据。具体的,第一服务器和第二服务器可以根据SM2相应的规则,生成共有的包含有q个元素(元素可以是正整数)的数值范围作为有限域,可以记为Fq。根据上述有限域,确定两个分别属于上述有限域的数值a和b分别作为第一系统参数和第二系统参数。根据上述第一系统参数和第二系统参数,以及有限域,构造SM2椭圆曲线E(Fq)。再从上述SM2椭圆曲线中确定出基点G,进而确定出基点G的位置坐标为:(xG、yG)。
在本实施例中,上述第二服务器生成验证公钥,具体实施时,可以包括:第二服务器作为签名者从预设范围(即不包含0元素的有限域)中随机抽取一个随机数作为签名私钥(具体可以记为dS);再根据该签名私钥生成匹配的验证公钥。具体的,可以按照以下公式生成验证公钥:PS=dsG=ds(xG,yG)=(xS,yS)。其中,xS具体可以表示为验证公钥的横坐标,yS具体可以表示为验证公钥的纵坐标。
S2:根据所述第一哈希值和所述目标数据(具体可以记为M),生成第一中间数据。
在本实施例中,上述第一中间数据具体可以理解为一种根据目标数据和第一哈希值生成的,包含有目标数据的信息内容的数据,具体可以记为
在本实施例中,具体实施时,可以按照以下公式计算出第一中间数据:
其中,上述具体可以表示为第一中间数据,M具体可以表示为目标数据,ZU具体可以表示为第一哈希值。
S3:根据所述第一中间数据生成第二哈希值。
在本实施例中,上述第二哈希值具体可以理解为一种根据基于第一中间数据得到的数据,具体可以记为e。
在本实施例中,具体实施时,可以按照以下公式计算出第二哈希值:
其中,e具体可以表示为第二哈希值,HV()具体可以表示为另一种哈希值运算,具体可以表示为第一中间数据。
其中,上述HV()是另一种基于SM2的安全哈希函数,相当于{0,1}q→{0,1}q,即可以表示将q个字符长度的信息映射为q个字符长度的信息。
S4:获取处理后的第一随机数,以及第二随机数,其中,所述处理后的第一随机数为第二服务器根据所得到的第一随机数生成,所述第一随机数和所述第二随机数分别为同一预设范围内随机抽取的整数。
在本实施例中,上述处理后的第一随机数具体可以是由第二服务器提供的。具体实施时,第二服务器可以从与第一服务器所共有的包含有q个元素的有限域但除0元素以外的数值范围(即预设范围:{1,2,…,q-1})内随机选择选择一个整数作为第一随机数(可以记为k1);再根据处理规则,对第一随机数进行相应的运算处理,得到处理后的第一随机数(具体可以记为K1);再通过有线或无线等方式将处理后的第一随机数发送给第一服务器,从而可以使得第一服务器获取上述处理后的第一随机数。
在本实施例中,具体实施时,第二服务器可以根据处理规则按照以下公式对第一随机数进行处理,得到处理后的第一随机数:
K1=k1G=k1(xG,yG)
其中,K1具体可以表示为处理后的第一随机数,k1具体可以表示为第一随机数,G具体可以表示为椭圆曲线上的基点,xG具体可以表示为椭圆曲线上基点的横坐标,yG具体可以表示为椭圆曲线上基点的纵坐标。
在本实施例中,类似于第二服务器获取第一随机数的方式,第一服务器可以从与第二服务器所共有的包含有q个元素的有限域但除0元素以外的数值范围(即预设范围:{1,2,…,q-1})内随机选择选择一个整数作为第二随机数(可以记为k2),即获取第二随机数。
在本实施例中,需要说明的是,根据上述获取第一随机数和第二随机数的过程可知,所述第一随机数和所述第二随机数分别为同一预设范围内随机抽取得到的整数。
S5:根据所述处理后的第一随机数,以及第二随机数,生成处理后的第二随机数。
在本实施例中,第一服务器在得到了上述处理后的第一随机数和第二随机数后,可以根据处理规则,进一步生成处理后的第二随机数(具体可以记为K),以备后续使用。
在本实施例中,具体实施时,第一服务器可以按照以下公式生成处理后的第二随机数:
K=k2K1=k2k1G=(xK,yK)
其中,K具体可以表示为处理后的第二随机数,K1具体可以表示为处理后的第一随机数,G具体可以表示为椭圆曲线上的基点,xK具体可以表示为处理后的第二随机数的横坐标,yK具体可以表示为处理后的第二随机数的纵坐标。
S6:根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据。
在本实施例中,上述第一签名数据具体可以理解为所要获取的目标数据的签名数据中的一部分的签名数据,具体可以记为r。需要说明的是,由于第一签名数据是用户,即第一服务器根据处理规则,基于目标数据所生成的签名数据,其中隐藏有目标数据的信息内容,但第一签名数据中所包含的目标数据的信息内容又不是可以直接读取得到的。因此,上述第一签名数据也可以理解为是一种盲化处理后的,能够有效保护用户的数据隐私的数据。
在本实施例中,目标数据的签名数据具体可以包括:第一签名数据和第二签名数据(具体可以记为s)两个部分的数据,整体可以记为(r,s)。其中,上述第一签名数据具体可以用于对第二签名数据的签名者身份,以及合法性等进行验证。
在本实施例中,具体实施时,第一服务器在已经获得所述第二哈希值和所述处理后的第二随机数后,可以根据处理规则,按照以下公式生成对应的第二签名数据:
r=e+xK mod q
其中,r具体可以表示为第一签名数据,xK具体可以表示为处理后的第二随机数的横坐标,modq具体可以表示为模q运算,e具体可以表示为第二哈希值。
S7:利用加密公钥对所述第一签名数据和第二随机数分别进行加密处理,得到加密后的第一签名数据和加密后的第二随机数。
在本实施例中,上述加密公钥具体可以是由第一服务器生成的用于加密的密钥数据,具体可以记为pk。具体实施时,第一服务器可以按照以下方式生成加密公钥:从预设范围(即不包含0元素的有限域)中随机抽取一个随机数作为解密私钥(具体可以记为sk);再根据该解密私钥计算出匹配的加密公钥。
在本实施例中,具体实施时,第一服务器可以利用加密公钥对第一签名数据进行加密处理,得到对应的加密后的第一签名数据,具体可以记为C1。例如,第一服务器可以按照以下方式进行加密处理,得到加密后的第一签名数据:C1=Encpk(r)。其中,Encpk()具体可以表示为利用加密公钥pk进行加密运算。
在本实施例中,具体实施时,第一服务器可以利用加密公钥对第二随机数进行加密处理,得到对应的加密后的第二随机数,具体可以记为C2。例如,第一服务器可以按照以下方式进行加密处理,得到加密后的第二随机数:C2=Encpk(k2)。其中,Encpk()具体可以表示为利用加密公钥pk进行加密运算。
S8:根据所述加密后的第一签名数据和所述加密后的第二随机数,获得第一数据。
在本实施例中,第一服务器在得到上述加密后的第一签名数据和加密后的第二随机数后,可以将加密后的第一签名数据和加密后的第二随机数,以及加密时所使用的加密公钥一起作为第一数据(例如,可以表示为{C1,C2,pk}),再通过有线或无线的方式发送至第二服务器进行处理。
S15:接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的。
在本实施例中,上述第二数据具体可以理解为第二服务器根据同态加密算法,根据相应的处理规则,通过第二预设处理实现加密签名所得到的数据,相当于一种携带有签名者签名的密文数据。
在本实施例中,上述第二预设处理具体可以理解为一种基于同态加密算法所确定的处理规则对基于同态加密算法进行盲化处理后的数据进行签名加密的处理。第二服务器通过上述方式对第一数据进行第二预设处理,相当于对加密了的密文数据进行了签名,且这种签名后续根据对应的处理规则又能完整、准确地映射为未加密的明文数据的签名。
在本实施例中,具体实施时,第二服务器可以按照以下公式对第一数据进行第二预设处理,得到第二数据:
其中,C具体可以表示为第二数据,C1具体可以表示为加密后的第一签名数据,C2具体可以表示为加密后的第二随机数,k1具体可以表示为第一随机数,(1+ds)-1具体可以表示为(1+ds)的模q乘法逆运算,具体可以表示为同态加密中的加运算,具体可以表示为同态加密中的乘运算。
在本实施例中,还需要补充的是,上述第一数据中还可以包括有第一服务器生成的加密公钥,具体实施时,第二服务器可以利用上加密公钥,结合所保管的签名私钥对第一数据中的加密后的第一签名数据和加密后的第二随机数进行相应的第二预设处理,使得第二服务器所生成的签名数据也是一种加密了的数据。这样可以保证第三方在获得第二数据后无法直接读取出签名数据,从而无法追踪到签名者,保护了签名者的数据隐私。
在本实施例中,第二服务器在按照上述方式对第一数据进行第二预设处理得到第二数据后,可以通过有线或无线的方式将上述第二数据发送至第一服务器,以便第一服务器可以接收到上述第二数据。
S17:根据所述第二数据,获取所述目标数据的签名数据。
在本实施例中,需要说明的是,上述第二数据虽然包含有第二服务器生成的签名数据,但第二服务器具体进行第二预设处理生成签名数据时是采用加密公钥进行处理的,因此第二数据中所包含的签名数据也是一种加密了的数据。
基于上述原因,第二服务器在获得上述第二数据后,可以根据处理规则,先利用所生成的加密私钥对上述第二数据进行解密处理,得到第二签名数据;再将之前获得的第一签名数据和第二签名数据组合作为目标对象的签名数据。
在本实施例中,上述第二签名数据具体可以理解为一种由签名者,即第二服务器根据处理规则提供的签名数据,可以理解为签名者确认后提供的数字签名。
在本实施例中,上述根据所述第二数据,获取所述目标数据的签名数据,具体实施时,可以包括以下内容:第一服务器可以按照以下公式获取第二签名数据,并将所述第一签名数据和所述第二签名数据作为所述目标数据的签名数据:
D(C)=s′=(1+ds)-1(k1k2+r)mod q
s=s′-r mod q
其中,C具体可以表示为第二数据,D(C)具体可以表示对第二数据进行解密运算,ds具体可以表示为签名私钥,k1具体可以表示为第一随机数,k2具体可以表示为第二随机数,r具体可以表示为第一签名数据,q具体可以表示为有限域中所包含的整数的个数(即预设范围中所包含的整数的个数加1),modq具体可以表示模q运算,s具体可以表示为第二签名数据,(1+ds)-1具体可以表示为(1+ds)的模q乘法逆运算。
在本实施例中,通过上述方式可以最终获得第二服务器生成的第二签名数据(即s),进而第一服务器可以将之前得到的根据目标数据生成的第一签名数据(即r)与第二签名数据组合,形成一组数据对,作为完整的目标数据的签名数据,具体可以记为(r,s)。从而能兼容于现有广泛采用的SM2,安全、高效地生成并获取到了所需要的签名数据。其中,上述目标数据的签名数据可以理解为是一种盲签名。基于这种盲签名。第二服务器在对目标数据进行签名时无法知晓目标数据所包含的具体内容。同时,该盲签名数据相对于普通的签名数据具有相对更高的安全性。
在本申请实施例中,相较于现有方法,通过利用同态加密算法对目标数据进行盲化处理,得到了第一数据,并将该数据发送给负责签名的第二服务器;第二服务器再根据相应的同态加密算法,在无法获取目标数据具体内容的情况下对第一数据进行签名加密处理,得到并向第一服务器反馈对应的第二数据,以便第一服务器可以根据该数据得到对应的签名数据,从而避免了目标数据被第二服务器所获取,也避免了第二服务器的签名数据被追踪,解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题。
在一个实施例中,为了保证所获取的第一签名数据具有较高的准确度,也为了减少后续生成第二签名数据的误差,在根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据后,可以先对第一签名数据的准确性进行检测。具体的,在根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据后,所述方法还包括:检测所述第一签名数据是否满足预设的数值要求;在确定所述第一签名数据不满足预设的数值要求的情况下,重新获取第二随机数。
在本实施例中,所述预设的数值要求具体可以包括:第一签名数据的数值为0,或,第一签名数据与第二随机数的和等于所述预设范围中所包含的整数的个数加1(即有限域所包含的元素个数q)。
在本实施例中,具体实施时,可以按照以下算式,检测上述第一签名数据是否满足预设的数值要求:r=0或r+k2=q。
如果第一签名数据满足上述算式中的任意一个,则可以确定所述第一签名数据满足预设的数值要求,进而可以判断所得到第一签名数据是准确的,可以根据该第一签名数据进行第一数据的生成。如果上述两个算式第一签名数据都不能满足,则可以确定所述第一签名数据不满足预设的数值要求,进而可以判断所得到第一签名数据不是准确的,基于这样的第一签名数据所生成的第一数据也可能存在较大误差。这时,为了保证所生成的签名数据的准确度,第一服务器可以重新生成一个第二随机数,基于重新生成的第二随机数,按照上述方式重新生成第一签名数据。
在一个实施例中,在根据所述第二数据,获取所述目标数据的签名数据(即完整的签名数据(r,s))后,在使用该签名数据进行具体数据处理之前,为了保证所得到签名数据是准确、合法的,能够作为凭证进行具体的数据处理,第一服务器,或者负责数据处理的平台中的验证服务器(例如,支付平台中的验证服务器)还可以对目标数据的签名数据进行验证处理。
在本实施例中,在根据所述第二数据,获取所述目标数据的签名数据后,所述方法具体实施时,还可以包括以下内容:按照预设的验证规则,对所述签名数据进行验证;根据验证结果,确定所述签名数据是否符合要求。其中,上述签名数据可以理解为一种待验证的签名数据包含有待验证的第一签名数据和待验证的第二签名数据。
在本实施例中,上述按照预设的验证规则,对所述签名数据进行验证,具体实施时,可以包括以下内容:检测第一签名数据是否位于预设范围(例如数值范围{1,2,…,q-1))内;在确定所述第一签名数据位于预设范围(例如数值范围{1,2,…,q-1))内的情况下,检测第二签名数据是否位于预设范围内;在确定所述第二签名数据位于预设范围内的情况下,根据用户的身份标识,计算第一签名数据与第二签名数据和的模q运算的运算结果(可以记为t′),以及测试哈希值(具体可以记为e′);检测所述运算结果是否等于0;在确定所述运算结果不等于0的情况下,根据第二签名数据和验证公钥,生成测试随机数(可以记为K′);根据测试随机数和测试哈希值,生成测试数据(R);检测所述测试数据与所述第一签名数据是否相等;在确定所述测试数据与所述第一签名数据相等的情况下,确定所述签名数据验证通过,所述签名数据合法。
在本实施例中,上述生成测试哈希值具体实施时,可以是获取待验证的用户的身份标识和待验证的目标数据,根据待验证的用户的身份标识生成待验证的第一哈希值;根据待验证的第一哈希值和待验证的目标数据生成待验证的第一中间数据;根据待验证的第一中间数据计算对应的哈希值作为测试哈希值。
在本实施例中,上述计算第一签名数据与第二签名数据和的模q运算的运算结果,具体实施时,可以按照以下公式计算运算结果:
t′=r+smodq
其中,r具体可以表示为(待验证的)第一签名数据,s具体可以表示为(待验证的)第二签名数据,t′具体可以表示为运算结果。
在本实施例中,上述根据第二签名数据和验证公钥,生成测试随机数,具体实施时,可以按照以下公式生成测试随机数:
K′=(xK′,yK′)=sG+t′PS
其中,K′具体可以表示为测试随机数,xK′具体可以表示为测试随机数的横坐标,yK′具体可以表示测试随机数的纵坐标,G具体可以表示为椭圆曲线上的基点,PS具体可以表示为验证公钥。
在本实施例中,上述根据测试随机数和测试哈希值,生成测试数据,具体实施时,可以按照以下公式生成测试数据:
R=e′+xK′mod q
其中,R具体可以表示为测试数据,e′具体可以表示为测试哈希值,xK′具体可以表示为测试随机数的横坐标。
在本实施例中,在确定所述测试数据与所述第一签名数据相等的情况下,确定验证通过,进而可以确定所述签名数据是符合要求的,即是合法的,该签名数据可以作为数据处理的凭证。在确定所述测试数据与所述第一签名数据不相等的情况下,确定验证不通过,进而可以确定所述签名数据是不符合要求的,即使不合法的,该签名数据不可以作为数据处理的凭证。
在一个实施例中,在目标数据的签名数据验证通过后,具体实施时,还可以包括以下内容:根据所述签名数据进行数据处理。
在本实施例中,在确定目标数据的签名数据验证通过后,确定该签名数据合法、有效,进而可以以该签名数据作为数据处理凭证,对该目标数据进行具体的数据处理。例如,在确定账单数据的签名数据(即交易签名)验证通过后,可以利用该签名数据作为处理凭证,调用对应的账户中的资金数据完成对账单数据的核销处理。当然,上述所列举的根据所述签名数据进行数据处理只是一种示意性说明。具体实施时,根据具体的应用场景,还可以应用到其他类型的数据处理中。对此,本说明书不作限定。
在一个实施例中,具体实施时,用户一侧的第一服务器可以先进行注册。具体的,第一服务器可以先生成同态加密的密钥对(pk,sk),其中,pk为加密公钥,sk为解密私钥;并将加密公钥和用户的身份标识发送至证书中心(CA),获得证书中心反馈的证书,完成注册。
在一个实施例中,类似的,签名者一侧的第二服务器也可以先进行注册。具体的,第二服务器可以先生成签名密钥对(dS,PS),其中,PS为验证公钥,dS为签名私钥;并将验证公钥和签名者的身份标识发送至证书中心(CA),获得证书中心反馈的证书,完成注册。
从以上的描述中,可以看出,本申请实施例提供的盲签名的获取方法,通过利用同态加密算法对目标数据进行盲化处理,得到了第一数据,并将该数据发送给负责签名的第二服务器;第二服务器再根据相应的同态加密算法,在无法获取目标数据具体内容的情况下对第一数据进行签名加密处理,得到并向第一服务器反馈对应的第二数据,以便第一服务器可以根据该数据得到对应的签名数据,从而避免了目标数据被第二服务器所获取,也避免了第二服务器的签名数据被追踪,解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题;还通过按照预设的验证规则,对所述签名数据进行验证,以确定所述签名数据是否符合要求,提高了针对目标数据的数据处理的安全性。
本申请实施例还提供了另一种的盲签名的获取方法,该方法具体可以应用于签名者一侧的第二服务器,该方法具体实施时,可以包括以下内容:
S1:获取第一数据;其中,所述第一数据为第一服务器根据同态加密算法,对待签名的目标数据进行第一预设处理得到的;
S2:根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据;
S3:将所述第二数据发送至第一服务器。
在一个实施例中,上述根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据,具体实施时,可以包括以下内容:
按照以下公式进行第二预设处理,得到第二数据:
其中,C具体可以表示为第二数据,C1具体可以表示为加密后的第一签名数据,C2具体可以表示为加密后的第二随机数,k1具体可以表示为第一随机数,(1+ds)-1具体可以表示为(1+ds)的模q乘法逆运算,具体可以表示为同态加密中的加运算,具体可以表示为同态加密中的乘运算。
在一个实施例中,在获取第一数据前,具体实施时,所述方法还可以包括以下内容:生成第一随机数;按照预设的处理公式对第一随机数进行处理,得到处理后的第一随机数;将处理后的第一随机数发送至第一服务器。
基于同一发明构思,本申请实施例中还提供了一种盲签名的获取装置,如下面的实施例所述。由于盲签名的获取装置解决问题的原理与盲签名的获取方法相似,因此盲签名的获取装置的实施可以参见盲签名的获取方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。请参阅图2,是本申请实施例提供的盲签名的获取装置的一种组成结构图,该装置具体可以包括:第一获取模块201、处理模块202、接收模块203和第二获取模块204,下面对该结构进行具体说明。
第一获取模块201,具体可以用于获取待签名的目标数据;
处理模块202,具体可以用于根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;
接收模块203,具体可以用于接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;
第二获取模块204,具体可以用于根据所述第二数据,获取所述目标数据的签名数据。
在一个实施例中,为了能够根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,所述处理模块202具体可以包括以下结构单元:
第一生成单元,具体可以用于获取用户的身份标识,并根据所述用户的身份标识,生成第一哈希值;
第二生成单元,具体可以用于根据所述第一哈希值和所述目标数据,生成第一中间数据;
第三生成单元,具体可以用于根据所述第一中间数据生成第二哈希值;
第一获取单元,具体可以用于获取处理后的第一随机数,以及第二随机数,其中,所述处理后的第一随机数为第二服务器根据所得到的第一随机数生成,所述第一随机数和所述第二随机数分别为同一预设范围内随机抽取的整数;
第四生成单元,具体可以用于根据所述处理后的第一随机数,以及第二随机数,生成处理后的第二随机数;
第五生成单元,具体可以用于根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据;
第一处理单元,具体可以用于利用加密公钥对所述第一签名数据和第二随机数分别进行加密处理,得到加密后的第一签名数据和加密后的第二随机数;并根据所述加密后的第一签名数据和所述加密后的第二随机数,获得第一数据。
在一个实施例中,所述装置还包括检测模块,用于在根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据后,检测第一签名数据是否符合预设的数值要求。其中,所述检测模块具体可以包括以下结构单元:
第一检测单元,具体可以用于检测所述第一签名数据是否满足预设的数值要求;
第二处理单元,具体可以用于在确定所述第一签名数据不满足预设的数值要求的情况下,重新获取第二随机数。
在一个实施例中,所述预设的数值要求具体可以包括:第一签名数据的数值为0,或,第一签名数据与第二随机数的和等于所述预设范围中所包含的整数的个数加1。
在一个实施例中,为了能够根据所述第二数据,获取所述目标数据的签名数据,所述第二获取模块204具体实施时,可以按照以下公式获取第二签名数据,并将所述第一签名数据和所述第二签名数据作为所述目标数据的签名数据:
D(C)=s′=(1+ds)-1(k1k2+r)mod q
s=s′-r mod q
其中,C具体可以表示为第二数据,D(C)具体可以表示对第二数据进行解密运算,ds具体可以表示为签名私钥,k1具体可以表示为第一随机数,k2具体可以表示为第二随机数,r具体可以表示为第一签名数据,q具体可以表示为有限域中所包含的整数的个数,modq具体可以表示模q运算,s具体可以表示为第二签名数据,(1+ds)-1具体可以表示为(1+ds)的模q乘法逆运算。
在一个实施例中,所述装置还包括验证模块,具体可以用于在根据所述第二数据,获取所述目标数据的签名数据后,对目标数据的签名数据是否符合要求进行验证。其中,所述验证模块具体可以包括以下结构单元:
验证单元,具体可以用于按照预设的验证规则,对所述签名数据进行验证;
确定单元,具体可以用于根据验证结果,确定所述签名数据是否符合要求。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,在本说明书中,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
此外,在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
从以上的描述中,可以看出,本申请实施例提供的盲签名的获取装置,通过处理模块利用同态加密算法对目标数据进行盲化处理,得到了第一数据,并将该数据发送给负责签名的第二服务器;第二服务器再根据相应的同态加密算法,在无法获取目标数据具体内容的情况下对第一数据进行签名加密处理,得到并向第一服务器反馈对应的第二数据,再通过第二获取模块根据该第二数据解密处理得到对应的签名数据,从而避免了目标数据被第二服务器所获取,也避免了第二服务器的签名数据被追踪,解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题;还通过验证模块按照预设的验证规则,对所述签名数据进行验证,以确定所述签名数据是否符合要求,提高了针对目标数据的数据处理的安全性。
本申请实施例还提供了一种电子设备,具体可以参阅图3所示的基于本申请实施例提供的盲签名的获取方法的电子设备组成结构示意图,所述电子设备具体可以包括输入设备31、处理器32、存储器33。其中,所述输入设备31具体可以用于输入待签名的目标数据。所述处理器32具体可以用于根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;根据所述第二数据,获取所述目标数据的签名数据。所述存储器33具体可以用于存储所述处理器32所基于的指令程序。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施例还提供了一种基于盲签名的获取方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取待签名的目标数据;根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;根据所述第二数据,获取所述目标数据的签名数据。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
在一个具体实施场景示例中,可以应用本申请实施例的提供盲签名的获取方法和装置,生成数据处理过程中所需要的签名数据。具体可以结合图4所示的在一个场景示例中应用本申请实施例提供的盲签名的获取方法和装置获得的示意图,参阅以下内容执行。
具体执行时可以包括两部分内容:基于同态加密的盲签名(即目标数据的签名数据)生成和签名验证。
对于基于同态加密的盲签名生成,该部分内容主要用于用户U(即用户一侧的第一服务器)生成消息M(即目标数据)的签名(r,s)(即目标数据的签名数据)。
首先用户U可以使用同态加密算法对消息M进行盲化处理(即第一预设处理),然后签名者S(即签名者一侧的第二服务器)使用同态加密算法对盲化的消息(即第一数据)进行签名处理(即第二预设处理),最终用户U解密(去盲化)签名者反馈的数据(即第二数据)得到消息的签名。
S1:签名者S从{1,2,...,q-1)(即预设范围)中随机选取一个整数k1(即第一随机数),计算K1=k1G并将K1(即处理后的第一随机数)发送给用户U。
S2:用户U计算哈希值ZU=H256(ENTLA||IDU||a||b||xG||yG||xS||ys)(即第一哈希值),并确定(即第一中间数据),其中,ENTLA表示当前用户标识IDU的长度,H256(·):{0,1}*→{0,1}q。U计算哈希值(即第二哈希值),其中,HV(·):{0,1}q→{0,1}q
S3:U从{1,2,...,q-1}中随机选取一个整数k2(即第二随机数),并计算K=k2K1=k2k1G=(xK,yK)(即处理后的第二随机数)。
S4:U计算r=e+xK mod q(即第一签名数据),判断r=0或者r+k2=q是否成立,如果相等,则返回S3选择新的随机数k2,否则用户继续执行第5步。
S4:U计算C1=Encpk(r)(即加密后的第一签名数据),C2=Encpk(k2)(加密后的第二随机数),并将{C1,C2,pk}(即第一数据)发送给签名者S。
S5:S计算(即第二数据),并将C发送给用户,其中,(1+ds)-1是(1+ds)的模q乘法逆。
S6:U在接收到C后,进一步可以通过对C进行解密处理,得到签名者提供消息的签名(即第二签名数据),D(C)=s′=(1+ds)-1(k1k2+r)mod q,s=s′-rmod q。
S7:用户U输出消息M的签名(r,s)(即完整的目标数据的签名数据)。
对于签名验证,该部分内容主要用于验证消息M′签名(r′,s*)(即待验证的签名数据)的合法性。具体验证过程可以包括以下内容:
S1:验证者B(可以是第一服务器,也可以是数据处理平台上的验证服务器)检查r′(即待验证的第一签名数据)是否属于{1,2,..,q-1},如果不是,则验证不通过;再检查s*(即待验证的第二签名数据)是否属于{1,2,...,q-1}中,如果不是,则验证不通过;否则验证者B继续执行S2。
S2:验证者B进一步可以获取用户U的身份标识和加密公钥,并通过用户U的参数计算哈希值ZU′=H256(ENTLA′||IDU′||a||b||xG||yG||xS||ys),确定并计算哈希值(即测试哈希值)。
S3:验证者B计算t′=r′+s*mod q(即运算结果),判断t′=0是否成立,如果成立,则验证不通过,否则继续执行S4。
S4:验证者B计算K′=(xK′,yK′)=s*G+t′Ps(即测试随机数),R=e′+xK′mod q(即测试数据),并判断R=r′是否成立,如果成立,则验证通过,否则验证不通过。
通过与现有方法比较可知,现有的SM2签名方案虽然具有强的安全性和高的效率性,但签名过程中,签名者直接对消息进行签名,不能保护用户隐私和消息匿名,同时验证者可以通过验证签名所用的公钥追踪签名者,不能保护签名者隐私安全。而本申请实施例所提供的盲签名的获取方法具体实施时,是在SM2签名算法整体架构不改变的基础上,使用同态加密算法,对签名过程中的消息进行盲化处理,签名者不知道签名消息的内容,但用户能够得到真实消息的SM2签名,从而保证本发明方案的匿名性和不可追踪性。
通过上述场景示例,验证了本申请实施例提供的盲签名的获取方法、装置和服务器,通过利用同态加密算法对目标数据进行盲化处理,得到了第一数据,并将该数据发送给负责签名的第二服务器;第二服务器再根据相应的同态加密算法,在无法获取目标数据具体内容的情况下对第一数据进行签名加密处理,得到并向第一服务器反馈对应的第二数据,以便第一服务器可以根据该数据得到对应的签名数据,从而避免了目标数据被第二服务器所获取,也避免了第二服务器的签名数据被追踪,确实解决了现有方法中存在的用户和签名者的数据隐私得到保护的技术问题。
尽管本申请内容中提到不同的具体实施例,但是,本申请并不局限于必须是行业标准或实施例所描述的情况等,某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、处理、输出、判断方式等的实施例,仍然可以属于本申请的可选实施方案范围之内。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
上述实施例阐明的装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的实施方式包括这些变形和变化而不脱离本申请。

Claims (10)

1.一种盲签名的获取方法,其特征在于,所述方法应用于第一服务器,包括:
获取待签名的目标数据;
根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;
接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;
根据所述第二数据,获取所述目标数据的签名数据。
2.根据权利要求1所述的方法,其特征在于,根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,包括:
获取用户的身份标识,并根据所述用户的身份标识,生成第一哈希值;
根据所述第一哈希值和所述目标数据,生成第一中间数据;
根据所述第一中间数据生成第二哈希值;
获取处理后的第一随机数,以及第二随机数,其中,所述处理后的第一随机数为第二服务器根据所得到的第一随机数生成的,所述第一随机数和所述第二随机数分别为同一预设范围内随机抽取的整数;
根据所述处理后的第一随机数,以及第二随机数,生成处理后的第二随机数;
根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据;
利用加密公钥对所述第一签名数据和第二随机数分别进行加密处理,得到加密后的第一签名数据和加密后的第二随机数;
根据所述加密后的第一签名数据和所述加密后的第二随机数,获得第一数据。
3.根据权利要求2所述的方法,其特征在于,在根据所述第二哈希值和所述处理后的第二随机数,生成第一签名数据后,所述方法还包括:
检测所述第一签名数据是否满足预设的数值要求;
在确定所述第一签名数据不满足预设的数值要求的情况下,重新获取第二随机数。
4.根据权利要求3所述的方法,其特征在于,所述预设的数值要求包括:第一签名数据的数值为0,或,第一签名数据与第二随机数的和等于所述预设范围中所包含的整数的个数加1。
5.根据权利要求2所述的方法,其特征在于,根据所述第二数据,获取所述目标数据的签名数据,包括:
按照以下公式获取第二签名数据,并将所述第一签名数据和所述第二签名数据作为所述目标数据的签名数据:
D(C)=s′=(1+ds)-1(k1k2+r)modq
s=s′-rmodq
其中,C为第二数据,D(C)表示对第二数据进行解密运算,ds为签名私钥,k1为第一随机数,k2为第二随机数,r为第一签名数据,q为有限域中所包含的整数的个数,modq表示模q运算,s为第二签名数据,(1+ds)-1为(1+ds)的模q乘法逆运算。
6.根据权利要求1所述的方法,其特征在于,在根据所述第二数据,获取所述目标数据的签名数据后,所述方法还包括:
按照预设的验证规则,对所述签名数据进行验证;
根据验证结果,确定所述签名数据是否符合要求。
7.一种盲签名的获取方法,其特征在于,所述方法应用于第二服务器,包括:
获取第一数据;其中,所述第一数据为第一服务器根据同态加密算法,对待签名的目标数据进行第一预设处理得到的;
根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据;
将所述第二数据发送至第一服务器。
8.根据权利要求7所述的方法,其特征在于,根据同态加密算法,对所述第一数据,进行第二预设处理,得到第二数据,包括:
按照以下公式进行第二预设处理,得到第二数据:
其中,C为第二数据,C1为加密后的第一签名数据,C2为加密后的第二随机数,k1为第一随机数,(1+ds)-1为(1+ds)的模q乘法逆运算,为同态加密中的加运算,为同态加密中的乘运算。
9.一种盲签名的获取装置,其特征在于,包括:
第一获取模块,用于获取待签名的目标数据;
处理模块,用于根据同态加密算法,对所述目标数据进行第一预设处理,得到第一数据,并将所述第一数据发送至第二服务器;
接收模块,用于接收第二数据,其中,所述第二数据为所述第二服务器根据同态加密算法,对所述第一数据进行第二预设处理得到的;
第二获取模块,用于根据所述第二数据,获取所述目标数据的签名数据。
10.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,其特征在于,所述处理器执行所述指令时实现权利要求1至6中任一项所述方法的步骤。
CN201910167543.5A 2019-03-06 2019-03-06 盲签名的获取方法、装置和服务器 Active CN109818730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910167543.5A CN109818730B (zh) 2019-03-06 2019-03-06 盲签名的获取方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910167543.5A CN109818730B (zh) 2019-03-06 2019-03-06 盲签名的获取方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN109818730A true CN109818730A (zh) 2019-05-28
CN109818730B CN109818730B (zh) 2022-09-30

Family

ID=66608255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910167543.5A Active CN109818730B (zh) 2019-03-06 2019-03-06 盲签名的获取方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN109818730B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535635A (zh) * 2019-07-19 2019-12-03 北京向芯力科技有限公司 一种支持信息隐藏的协同签名方法与系统
CN111901123A (zh) * 2020-07-15 2020-11-06 浙江军盾信息科技有限公司 一种sm2签名的生成方法、存储介质和终端
CN112235118A (zh) * 2020-12-16 2021-01-15 富算科技(上海)有限公司 信息加密匹配的方法、系统、装置、处理器及存储介质
CN112866258A (zh) * 2021-01-22 2021-05-28 支付宝(杭州)信息技术有限公司 基于隐私保护的数据核对方法、装置和服务器
CN112929342A (zh) * 2021-01-22 2021-06-08 支付宝(杭州)信息技术有限公司 基于隐私保护的数据核对方法、装置和服务器
CN113518992A (zh) * 2020-02-06 2021-10-19 谷歌有限责任公司 使用多个聚合服务器防止数据操作
CN114726542A (zh) * 2022-04-08 2022-07-08 中国再保险(集团)股份有限公司 一种基于隐私求交的数据传输方法及装置
WO2023134055A1 (zh) * 2022-01-13 2023-07-20 平安科技(深圳)有限公司 隐私联合推理方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3091689A1 (fr) * 2015-05-06 2016-11-09 Morpho Procédé de génération d'une signature de message à partir d'un jeton de signature chiffré à l'aide d'une fonction de chiffrement homomorphique
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN107634836A (zh) * 2017-09-05 2018-01-26 何德彪 一种sm2数字签名生成方法及系统
CN107733648A (zh) * 2017-10-30 2018-02-23 武汉大学 一种基于身份的rsa数字签名生成方法及系统
US20180234253A1 (en) * 2017-02-10 2018-08-16 International Business Machines Corporation Signature scheme for homomorphic message encoding functions
CN108650094A (zh) * 2018-04-13 2018-10-12 武汉大学 一种基于sm2数字签名的盲签名生成方法及系统
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN109274503A (zh) * 2018-11-05 2019-01-25 北京仁信证科技有限公司 分布式协同签名方法及分布式协同签名装置、软盾系统
CN109309569A (zh) * 2018-09-29 2019-02-05 北京信安世纪科技股份有限公司 基于sm2算法的协同签名的方法、装置及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3091689A1 (fr) * 2015-05-06 2016-11-09 Morpho Procédé de génération d'une signature de message à partir d'un jeton de signature chiffré à l'aide d'une fonction de chiffrement homomorphique
US20180234253A1 (en) * 2017-02-10 2018-08-16 International Business Machines Corporation Signature scheme for homomorphic message encoding functions
CN107483212A (zh) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 一种双方协作生成数字签名的方法
CN107634836A (zh) * 2017-09-05 2018-01-26 何德彪 一种sm2数字签名生成方法及系统
CN107579819A (zh) * 2017-09-13 2018-01-12 何德彪 一种sm9数字签名生成方法及系统
CN107733648A (zh) * 2017-10-30 2018-02-23 武汉大学 一种基于身份的rsa数字签名生成方法及系统
CN108650094A (zh) * 2018-04-13 2018-10-12 武汉大学 一种基于sm2数字签名的盲签名生成方法及系统
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN109309569A (zh) * 2018-09-29 2019-02-05 北京信安世纪科技股份有限公司 基于sm2算法的协同签名的方法、装置及存储介质
CN109274503A (zh) * 2018-11-05 2019-01-25 北京仁信证科技有限公司 分布式协同签名方法及分布式协同签名装置、软盾系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUDI ZHANG: "Efficient and Provably Secure Distributed Signing Protocol for Mobile Devices in Wireless Networks", 《IEEE INTERNET OF THINGS JOURNAL》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535635A (zh) * 2019-07-19 2019-12-03 北京向芯力科技有限公司 一种支持信息隐藏的协同签名方法与系统
CN110535635B (zh) * 2019-07-19 2022-06-17 北京向芯力科技有限公司 一种支持信息隐藏的协同签名方法与系统
CN113518992A (zh) * 2020-02-06 2021-10-19 谷歌有限责任公司 使用多个聚合服务器防止数据操作
CN111901123A (zh) * 2020-07-15 2020-11-06 浙江军盾信息科技有限公司 一种sm2签名的生成方法、存储介质和终端
CN111901123B (zh) * 2020-07-15 2022-07-05 杭州安恒信息安全技术有限公司 一种sm2签名的生成方法、存储介质和终端
CN112235118A (zh) * 2020-12-16 2021-01-15 富算科技(上海)有限公司 信息加密匹配的方法、系统、装置、处理器及存储介质
CN112235118B (zh) * 2020-12-16 2021-03-09 富算科技(上海)有限公司 信息加密匹配的方法、系统、装置、处理器及存储介质
CN112866258A (zh) * 2021-01-22 2021-05-28 支付宝(杭州)信息技术有限公司 基于隐私保护的数据核对方法、装置和服务器
CN112929342A (zh) * 2021-01-22 2021-06-08 支付宝(杭州)信息技术有限公司 基于隐私保护的数据核对方法、装置和服务器
WO2023134055A1 (zh) * 2022-01-13 2023-07-20 平安科技(深圳)有限公司 隐私联合推理方法、装置、设备及存储介质
CN114726542A (zh) * 2022-04-08 2022-07-08 中国再保险(集团)股份有限公司 一种基于隐私求交的数据传输方法及装置
CN114726542B (zh) * 2022-04-08 2024-04-09 中国再保险(集团)股份有限公司 一种基于隐私求交的数据传输方法及装置

Also Published As

Publication number Publication date
CN109818730B (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN109818730A (zh) 盲签名的获取方法、装置和服务器
CN107483212B (zh) 一种双方协作生成数字签名的方法
JP5697180B2 (ja) ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
US10326753B2 (en) Authentication via revocable signatures
RU2376651C2 (ru) Использование изогений для разработки криптосистем
JP5710075B2 (ja) 証明書の検証
CN113569294B (zh) 一种零知识证明方法及装置、电子设备、存储介质
US9219602B2 (en) Method and system for securely computing a base point in direct anonymous attestation
WO2020038137A1 (zh) 二维码生成方法、数据处理方法、装置及服务器
CN107911217B (zh) 基于ecdsa算法协同生成签名的方法、装置和数据处理系统
CN109936456B (zh) 基于私钥池的抗量子计算数字签名方法和系统
US8868910B2 (en) Elliptic curve cryptographic signature
CN111105235B (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
CN105515778B (zh) 云存储数据完整性服务签名方法
CN112436938B (zh) 数字签名的生成方法、装置和服务器
CN106972924A (zh) 加密、解密、电子签章、验证签章的方法及装置
US20160149708A1 (en) Electronic signature system
CN114760114A (zh) 身份认证方法、装置、设备及介质
Ali et al. RFID authentication scheme based on hyperelliptic curve signcryption
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN111404685A (zh) 一种属性基签名方法及系统
CN109768969A (zh) 权限控制方法及物联网终端、电子设备
CN112906059B (zh) 代理签名和验证方法、装置、系统及存储介质
JP6067474B2 (ja) 電子署名検証方法および電子署名検証システム

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: 20230419

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.