CN112054894B - 一种基于sm2的批量验证方法及系统 - Google Patents

一种基于sm2的批量验证方法及系统 Download PDF

Info

Publication number
CN112054894B
CN112054894B CN202010787513.7A CN202010787513A CN112054894B CN 112054894 B CN112054894 B CN 112054894B CN 202010787513 A CN202010787513 A CN 202010787513A CN 112054894 B CN112054894 B CN 112054894B
Authority
CN
China
Prior art keywords
verifier
verification
signer
result
signature
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
CN202010787513.7A
Other languages
English (en)
Other versions
CN112054894A (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.)
Hubei University of Technology
Original Assignee
Hubei University of Technology
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 Hubei University of Technology filed Critical Hubei University of Technology
Priority to CN202010787513.7A priority Critical patent/CN112054894B/zh
Publication of CN112054894A publication Critical patent/CN112054894A/zh
Application granted granted Critical
Publication of CN112054894B publication Critical patent/CN112054894B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

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

Abstract

本发明公开了一种基于SM2的批量验证方法及系统,其中的方法由验证者B首先针对不同签名者Ai(i=1,2,···,l)生成的
Figure DDA0002622549420000011
(i=1,2,···,l),分别进行累加运算,得到相对应的值(d,R,w),然后通过使用签名者的公钥
Figure DDA0002622549420000012
计算数字签名批量验证值R'。再批量验证签名
Figure DDA0002622549420000013
(i=1,2,···,l),对于不同签名者Ai(i=1,2,···,l)生成的
Figure DDA0002622549420000014
与验证者B计算得到的R'进行比较。若R=R',数字签名批验证成功,否则验证不成功。通过本发明的方法可以大大提高签名验证的效率。

Description

一种基于SM2的批量验证方法及系统
技术领域
本发明涉及计算机网络安全和密码协议技术领域,具体涉及一种基于SM2的批量验证方法及系统。
背景技术
电子现金在近年来广泛使用,商家或消费者需要大量的验证银行签署的电子货币,确保签署信息的安全性与正确性。当大量的电子现金进行数字签名的时候,会大大降低整个系统的效率,因此,现有技术中的方法存在验签效率低的技术问题。
发明内容
本发明提出一种基于SM2的批量验证方法及系统,可以加速不同签名者验证数字签名的速度,针对不同签名者实现SM2一次批量验证多个数字签名,尤其当签名数据量非常大的时刻,批量验证显得尤为重要,能够满足系统的安全性和高效的需求。
本发明提供了一种基于SM2的批量验证方法,应用于验证者B和不同的签名者Ai,该方法包括:
S1:验证者B接收签名者发送的签名后的消息
Figure BDA0002622549400000011
其中,
Figure BDA0002622549400000012
表示待签名的消息,
Figure BDA0002622549400000013
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure BDA0002622549400000014
表示签名者Ai产生的签名消息;
S2:验证者B根据签名后的消息
Figure BDA0002622549400000015
生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
S3:验证者B根据第一随机计算结果和第二随机计算结果,获得验签参数;
S4:验证者B基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
S5:验证者B将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
在一种实施方式中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值
Figure BDA0002622549400000021
并与
Figure BDA0002622549400000022
拼接得到
Figure BDA0002622549400000023
其中
Figure BDA0002622549400000024
Figure BDA0002622549400000025
表示不同签名者Ai具有长度为
Figure BDA0002622549400000026
比特的可辨别标识;
Figure BDA0002622549400000027
是由整数
Figure BDA0002622549400000028
转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示E上n阶的基点,
Figure BDA0002622549400000029
表示公钥
Figure BDA00026225494000000210
的坐标;
S2.2:验证者B针对不同签名者得到的拼接结果
Figure BDA00026225494000000211
进行哈希运算,得到哈希值
Figure BDA00026225494000000212
Hv表示消息摘要长度为v比特的哈希函数;
S2.3:验证者B对计算得出所有哈希值
Figure BDA00026225494000000213
进行累加运算,得到
Figure BDA00026225494000000214
S2.4:验证者B对不同签名者Ai发送的
Figure BDA00026225494000000215
进行累加运算,得到
Figure BDA00026225494000000216
S2.5:验证者B对不同签名者Ai发送的
Figure BDA00026225494000000217
进行累加运算,得到
Figure BDA00026225494000000218
在一种实施方式中,S3具体包括:
验证者B对不同签名者Ai发送的
Figure BDA00026225494000000219
进行加法运算,得到验签参数
Figure BDA00026225494000000220
Figure BDA00026225494000000221
n表示一个随机数。
在一种实施方式中,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
在一种实施方式中,S4具体包括:
S4.1:验证者B根据签名者的公钥、w、验签参数以及G计算椭圆曲线上新的点:
Figure BDA00026225494000000222
其中,G=(x,y),是E上n阶的基点,
Figure BDA00026225494000000223
为验签参数、
Figure BDA00026225494000000224
为签名者的公钥;
S4.2:验证者B计算数字签名批量验证值R',R'=(d+x)modn,n表示基点G的阶,为一个随机数。
基于同样的发明构思,本发明第二方面提供了一种基于SM2的批量验证系统,应用于验证者B和不同的签名者Ai,该系统包括:
接收模块,用于接收签名者发送的签名后的消息
Figure BDA0002622549400000031
其中,
Figure BDA0002622549400000032
表示待签名的消息,
Figure BDA0002622549400000033
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure BDA0002622549400000034
表示签名者Ai产生的签名消息;
中间结果生成模块,用于根据签名后的消息
Figure BDA0002622549400000035
生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于SM2的批量验证方法,验证者在接收到不同签名者发送的签名后的消息后,会根据签名后的消息中内容生成对应的中间结果,其中中间结果包括根据待签名的消息
Figure BDA0002622549400000036
计算出的哈希结果d、根据不同签名者的第一随机计算结果
Figure BDA0002622549400000037
得出的结果R以及根据不同签名者的第二随机计算结果
Figure BDA0002622549400000038
得出的结果w;然后根据第一随机计算结果和第二随机计算结果来计算得到验签参数,再根据签名者的公钥、根据不同签名者的第二随机计算结果
Figure BDA0002622549400000039
得出的结果w和验签参数来计算数字签名批量验证值,由于在计算数字签名批量验证值时,w是根据不同签名者的第二随机计算结果计算得出的,验签参数也是根据不同签名者的第一随机计算结果和第二随机计算结果来计算得到的,那么对于多个不同的签名者,仅需要计算一次,则可以实现对多个签名者的批量验证,相比于现有的方法,需要逐个针对每一个签名者进行计算来说,大大减少了计算量,提高了验证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于SM2的批量验证方法的具体流程图。
具体实施方式
本发明针对现有技术中验证签名的效率较低的问题,提出了一种基于SM2的批量验证方法及系统。
本发明的主要构思如下:
首先,验证者B针对不同签名者Ai(i=1,2,···,l)生成的
Figure BDA0002622549400000041
分别进行累加运算,得到相对应的值(d,R,w)。
然后,验证者B通过使用签名者的公钥
Figure BDA0002622549400000042
计算数字签名批量验证值R'。
最后,验证者B批量验证签名
Figure BDA0002622549400000043
对于不同签名者Ai(i=1,2,···,l)生成的
Figure BDA0002622549400000044
与验证者B计算得到的R'进行比较。若R=R',数字签名批验证成功,否则验证不成功。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
本发明实施例提供了一种基于SM2的批量验证方法,应用于验证者B和不同的签名者Ai,i表示签名者的编号,该方法包括:
S1:验证者B接收签名者发送的签名后的消息
Figure BDA0002622549400000051
其中,
Figure BDA0002622549400000052
表示待签名的消息,
Figure BDA0002622549400000053
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure BDA0002622549400000054
表示签名者Ai产生的签名消息;
S2:验证者B根据签名后的消息
Figure BDA0002622549400000055
生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
S3:验证者B根据第一随机计算结果和第二随机计算结果,获得验签参数;
S4:验证者B基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
S5:验证者B将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
具体来说,基于SM2的批量验证算法的相关参数和内容介绍如下:
基于素数域Fq的SM2算法参数:Fq的特征p为m比特长的素数,p要尽可能大,但太大会影响计算速度;因此p为长度不小于192比特的比特串种子;Fq上的2个元素a、b,满足4a3+27b2≠0,定义曲线E(FP):y2=x2+ax+b;E是定义在有限域Fq上的椭圆曲线;G=(x,y)是E上n阶的基点,其中G的阶n为m比特长的素数,满足n>2191
Figure BDA0002622549400000056
S1中,验证者B接收签名者发送的签名后的消息,签名后的消息是由不同的签名者签署签名后产生的消息,i表示不同签名者的下标,可以为1,2,3等等。例如签名者A1对应
Figure BDA0002622549400000057
表示签名者Ai产生的签名消息,
Figure BDA0002622549400000058
Figure BDA0002622549400000059
为签名过程中产生的随机计算结果,可以通过预设签名算法计算得到,签名过程不再本申请的讨论范围,故在此不再详细介绍
Figure BDA00026225494000000510
是如何进行计算的。
S2中计算出的中间结果是用于后续的验证过程的。
S4中,验证者可以在验证前获取签名者的公钥,然后根据签名者的公钥、根据不同签名者的第二随机计算结果
Figure BDA00026225494000000511
得出的结果w和验签参数来计算数字签名批量验证值,由于在计算数字签名批量验证值时,w是根据不同签名者的第二随机计算结果计算得出的,验签参数也是根据不同签名者的第一随机计算结果和第二随机计算结果来计算得到的,那么对于多个不同的签名者,仅需要计算一次,则可以实现对多个签名者的批量验证,相比于现有的方法,需要逐个针对每一个签名者进行计算来说,大大减少了计算量,提高了验证效率。
在一种实施方式中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值
Figure BDA0002622549400000061
并与
Figure BDA0002622549400000062
拼接得到
Figure BDA0002622549400000063
其中
Figure BDA0002622549400000064
Figure BDA0002622549400000065
表示不同签名者Ai具有长度为
Figure BDA0002622549400000066
比特的可辨别标识;
Figure BDA0002622549400000067
是由整数
Figure BDA0002622549400000068
转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示E上n阶的基点,
Figure BDA0002622549400000069
表示公钥
Figure BDA00026225494000000610
的坐标;
S2.2:验证者B针对不同签名者得到的拼接结果
Figure BDA00026225494000000611
进行哈希运算,得到哈希值
Figure BDA00026225494000000612
Hv表示消息摘要长度为v比特的哈希函数;
S2.3:验证者B对计算得出所有哈希值
Figure BDA00026225494000000613
进行累加运算,得到
Figure BDA00026225494000000614
S2.4:验证者B对不同签名者Ai发送的
Figure BDA00026225494000000615
进行累加运算,得到
Figure BDA00026225494000000616
S2.5:验证者B对不同签名者Ai发送的
Figure BDA00026225494000000617
进行累加运算,得到
Figure BDA00026225494000000618
具体来说,上述内容主要是针对中间结果中的每个参数的具体计算方式的介绍,密码杂凑函数为H256
在一种实施方式中,S3具体包括:
验证者B对不同签名者Ai发送的
Figure BDA00026225494000000619
进行加法运算,得到验签参数
Figure BDA00026225494000000620
Figure BDA00026225494000000621
n表示一个随机数。
在一种实施方式中,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
在一种实施方式中,S4具体包括:
S4.1:验证者B根据签名者的公钥、w、验签参数以及G计算椭圆曲线上新的点:
Figure BDA0002622549400000071
其中,G=(x,y),是E上n阶的基点,
Figure BDA0002622549400000072
为验签参数、
Figure BDA0002622549400000073
为签名者的公钥;
S4.2:验证者B计算数字签名批量验证值R',R'=(d+x)modn,n表示基点G的阶,为一个随机数。
具体来说,签名者是Ai(i=1,2,···,l),针对不同的待签名消息
Figure BDA0002622549400000074
其公私密钥对为
Figure BDA0002622549400000075
产生的签名消息为
Figure BDA0002622549400000076
验证者是B,则B需要对Ai发送过来的
Figure BDA0002622549400000077
进行数字签名验证,判断其签署者是否为Ai。验证者B对不同的消息
Figure BDA0002622549400000078
使用hash函数产生不同
Figure BDA0002622549400000079
并对其求和得到d。验证者B对签名者Ai传输过来的
Figure BDA00026225494000000710
分别对
Figure BDA00026225494000000711
进行累加运算,得到R与w,对
Figure BDA00026225494000000712
Figure BDA00026225494000000713
进行加法运算得到
Figure BDA00026225494000000714
在进行数字签名验证过程中,运算量最大的地方在计算点乘的时候,即计算椭圆曲线点
Figure BDA00026225494000000715
在计算可以数字签名批量验证值是,首先需要计算椭圆曲线上新的点,因此通过本发明的方法,先计算
Figure BDA00026225494000000716
从而在计算椭圆上点(x,y)时,只需要进行一次点乘运算,就可以是实现对多个签名者的批量验证,故而可以加速验签的效率。
本发明可以通过具体的推到过程证明来该方法的完整性和正确性,并对其做了安全性分析。这种基于SM2的批量验证方法能够确保用户数据不被篡改,并且能够加速不同签名者验签的速度。假设有100个不同的签名者对100条数据进行签名,对于传统的验签方式,需要进行操作100次,而对于基于SM2的批量验证算法,只需要进行一次操作。因此,此方案比起传统的验签方式,本发明计算更加简单方便,具有更高的计算效率、复杂度低的优势。相比于国外的RSA、ECDSA等数字签名算法的批量验证算法,首次提出了国密SM2的批量验证算法。
基于同样的发明构思,本发明还提供了一种与实施例一中的基于SM2的批量验证方法对应的系统,详见实施例二。
实施例二
本实施例提供了一种基于SM2的批量验证系统,应用于验证者B和不同的签名者Ai,该系统包括:
接收模块,用于接收签名者发送的签名后的消息
Figure BDA0002622549400000081
其中,
Figure BDA0002622549400000082
表示待签名的消息,
Figure BDA0002622549400000083
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure BDA0002622549400000084
表示签名者Ai产生的签名消息;
中间结果生成模块,用于根据签名后的消息
Figure BDA0002622549400000085
生成中间结果(d,R,a),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
由于本发明实施例二所介绍的系统,为实施本发明实施例一中基于SM2的批量验证方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (5)

1.一种基于SM2的批量验证方法,其特征在于,应用于验证者B和不同的签名者Ai,该方法包括:
S1:验证者B接收签名者发送的签名后的消息
Figure FDA0003595264730000011
其中,
Figure FDA0003595264730000012
表示待签名的消息,
Figure FDA0003595264730000013
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure FDA0003595264730000014
表示签名者Ai产生的签名消息;
S2:验证者B根据签名后的消息
Figure FDA0003595264730000015
生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
S3:验证者B根据第一随机计算结果和第二随机计算结果,获得验签参数;
S4:验证者B基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
S5:验证者B将签名批量验证值R′与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R′,数字签名批验证成功,否则验证不成功;
其中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值
Figure FDA0003595264730000016
并与
Figure FDA0003595264730000017
拼接得到
Figure FDA0003595264730000018
其中
Figure FDA0003595264730000019
Figure FDA00035952647300000110
表示不同签名者Ai具有长度为
Figure FDA00035952647300000111
比特的可辨别标识;
Figure FDA00035952647300000112
是由整数
Figure FDA00035952647300000113
转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示椭圆曲线上n阶的基点,
Figure FDA00035952647300000114
表示公钥
Figure FDA00035952647300000115
的坐标;
S2.2:验证者B针对不同签名者得到的拼接结果
Figure FDA00035952647300000116
进行哈希运算,得到哈希值
Figure FDA00035952647300000117
Figure FDA00035952647300000118
Hv表示消息摘要长度为v比特的哈希函数;
S2.3:验证者B对计算得出所有哈希值
Figure FDA00035952647300000119
进行累加运算,得到
Figure FDA00035952647300000120
S2.4:验证者B对不同签名者Ai发送的
Figure FDA00035952647300000121
进行累加运算,得到
Figure FDA00035952647300000122
S2.5:验证者B对不同签名者Ai发送的
Figure FDA0003595264730000021
进行累加运算,得到
Figure FDA0003595264730000022
2.如权利要求1所述的批量验证方法,其特征在于,S3具体包括:
验证者B对不同签名者Ai发送的
Figure FDA0003595264730000023
进行加法运算,得到验签参数
Figure FDA0003595264730000024
Figure FDA0003595264730000025
n表示一个随机数。
3.如权利要求1所述的批量验证方法,其特征在于,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
4.如权利要求1所述的批量验证方法,其特征在于,S4具体包括:
S4.1:验证者B根据签名者的公钥、w、验签参数以及G计算椭圆曲线上新的点:
Figure FDA0003595264730000026
其中,G=(x,y),是椭圆曲线上n阶的基点,
Figure FDA0003595264730000027
为验签参数、
Figure FDA0003595264730000028
为签名者的公钥;
S4.2:验证者B计算数字签名批量验证值R',R'=(d+x')modn,n表示基点G的阶,为一个随机数。
5.一种基于SM2的批量验证系统,其特征在于,应用于验证者B和不同的签名者Ai,该系统包括:
接收模块,用于接收签名者发送的签名后的消息
Figure FDA0003595264730000029
其中,
Figure FDA00035952647300000210
表示待签名的消息,
Figure FDA00035952647300000211
表示签名者Ai的第一随机计算结果和第二随机计算结果,
Figure FDA00035952647300000212
表示签名者Ai产生的签名消息;
中间结果生成模块,用于根据签名后的消息
Figure FDA00035952647300000213
生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R′与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R′,数字签名批验证成功,否则验证不成功;
其中,中间结果生成模块具体用于执行下述步骤:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值
Figure FDA0003595264730000031
并与
Figure FDA0003595264730000032
拼接得到
Figure FDA0003595264730000033
其中
Figure FDA0003595264730000034
Figure FDA0003595264730000035
表示不同签名者Ai具有长度为
Figure FDA0003595264730000036
比特的可辨别标识;
Figure FDA0003595264730000037
是由整数
Figure FDA0003595264730000038
转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示椭圆曲线上n阶的基点,
Figure FDA0003595264730000039
表示公钥
Figure FDA00035952647300000310
的坐标;
S2.2:验证者B针对不同签名者得到的拼接结果
Figure FDA00035952647300000311
进行哈希运算,得到哈希值
Figure FDA00035952647300000312
Figure FDA00035952647300000313
Hv表示消息摘要长度为v比特的哈希函数;
S2.3:验证者B对计算得出所有哈希值
Figure FDA00035952647300000314
进行累加运算,得到
Figure FDA00035952647300000315
S2.4:验证者B对不同签名者Ai发送的
Figure FDA00035952647300000316
进行累加运算,得到
Figure FDA00035952647300000317
S2.5:验证者B对不同签名者Ai发送的
Figure FDA00035952647300000318
进行累加运算,得到
Figure FDA00035952647300000319
CN202010787513.7A 2020-08-07 2020-08-07 一种基于sm2的批量验证方法及系统 Active CN112054894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010787513.7A CN112054894B (zh) 2020-08-07 2020-08-07 一种基于sm2的批量验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010787513.7A CN112054894B (zh) 2020-08-07 2020-08-07 一种基于sm2的批量验证方法及系统

Publications (2)

Publication Number Publication Date
CN112054894A CN112054894A (zh) 2020-12-08
CN112054894B true CN112054894B (zh) 2022-06-14

Family

ID=73602598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010787513.7A Active CN112054894B (zh) 2020-08-07 2020-08-07 一种基于sm2的批量验证方法及系统

Country Status (1)

Country Link
CN (1) CN112054894B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105577356A (zh) * 2015-12-17 2016-05-11 西安电子科技大学 基于对用户隐私保护的智能电网中数据收集方法
CN105681045A (zh) * 2016-01-14 2016-06-15 北京航空航天大学 盲签名方法和盲签名系统
CN107612681A (zh) * 2017-09-25 2018-01-19 郑州云海信息技术有限公司 一种基于sm3算法的数据处理方法、装置及系统
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971528B2 (en) * 2013-01-29 2015-03-03 Certicom Corp. Modified elliptic curve signature algorithm for message recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105577356A (zh) * 2015-12-17 2016-05-11 西安电子科技大学 基于对用户隐私保护的智能电网中数据收集方法
CN105681045A (zh) * 2016-01-14 2016-06-15 北京航空航天大学 盲签名方法和盲签名系统
CN107612681A (zh) * 2017-09-25 2018-01-19 郑州云海信息技术有限公司 一种基于sm3算法的数据处理方法、装置及系统
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yi-Li Huang 等.Verification of a Batch of Bad Signatures by Using the Matrix-Detection Algorithm.《2011 First International Conference on Data Compression, Communications and Processing》.2011,全文. *

Also Published As

Publication number Publication date
CN112054894A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
US9219602B2 (en) Method and system for securely computing a base point in direct anonymous attestation
US8958560B2 (en) Efficient multivariate signature generation
EP1714420B1 (en) One way authentication
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
CN109818730B (zh) 盲签名的获取方法、装置和服务器
CN110505061B (zh) 一种数字签名算法及系统
CN112446052B (zh) 一种适用于涉密信息系统的聚合签名方法及系统
TW201320700A (zh) 署名驗證裝置、署名驗證方法、程式及記錄媒體
WO2021061833A1 (en) Lattice based signatures with uniform secrets
CN112887081A (zh) 基于sm2的签名验签方法、装置及系统
CN113032844B (zh) 椭圆曲线的签名方法、验签方法和装置
CN113722767B (zh) 一种数据完整性验证方法、系统、存储介质及计算设备
CN113055189B (zh) Sm2数字签名验证失败原因判定方法、装置、设备和介质
CN112054894B (zh) 一种基于sm2的批量验证方法及系统
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
US20080002825A1 (en) Method and a system for a quick verification rabin signature scheme
CN114640463B (zh) 一种数字签名方法、计算机设备及介质
CN115174102A (zh) 一种基于sm2签名的高效批量验证方法及系统
CN112243011A (zh) 一种签名验证方法、系统、电子设备及存储介质
CN110061841B (zh) 一种签名方法、验签方法及装置
CN112887097A (zh) 基于sm2椭圆曲线的签名方法、相关装置、及存储介质
CN114124396B (zh) 信息传输方法、系统和存储介质
CN115001698B (zh) 聚合签名方法、装置、设备和存储介质
CN116318738B (zh) 签名方法、系统、电子设备及存储介质
CN112784314B (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