CN112054894B - 一种基于sm2的批量验证方法及系统 - Google Patents
一种基于sm2的批量验证方法及系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
Description
技术领域
本发明涉及计算机网络安全和密码协议技术领域,具体涉及一种基于SM2的批量验证方法及系统。
背景技术
电子现金在近年来广泛使用,商家或消费者需要大量的验证银行签署的电子货币,确保签署信息的安全性与正确性。当大量的电子现金进行数字签名的时候,会大大降低整个系统的效率,因此,现有技术中的方法存在验签效率低的技术问题。
发明内容
本发明提出一种基于SM2的批量验证方法及系统,可以加速不同签名者验证数字签名的速度,针对不同签名者实现SM2一次批量验证多个数字签名,尤其当签名数据量非常大的时刻,批量验证显得尤为重要,能够满足系统的安全性和高效的需求。
本发明提供了一种基于SM2的批量验证方法,应用于验证者B和不同的签名者Ai,该方法包括:
S2:验证者B根据签名后的消息生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
S3:验证者B根据第一随机计算结果和第二随机计算结果,获得验签参数;
S4:验证者B基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
S5:验证者B将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
在一种实施方式中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值并与拼接得到其中 表示不同签名者Ai具有长度为比特的可辨别标识;是由整数转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示E上n阶的基点,表示公钥的坐标;
在一种实施方式中,S3具体包括:
在一种实施方式中,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
在一种实施方式中,S4具体包括:
S4.2:验证者B计算数字签名批量验证值R',R'=(d+x)modn,n表示基点G的阶,为一个随机数。
基于同样的发明构思,本发明第二方面提供了一种基于SM2的批量验证系统,应用于验证者B和不同的签名者Ai,该系统包括:
中间结果生成模块,用于根据签名后的消息生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于SM2的批量验证方法,验证者在接收到不同签名者发送的签名后的消息后,会根据签名后的消息中内容生成对应的中间结果,其中中间结果包括根据待签名的消息计算出的哈希结果d、根据不同签名者的第一随机计算结果得出的结果R以及根据不同签名者的第二随机计算结果得出的结果w;然后根据第一随机计算结果和第二随机计算结果来计算得到验签参数,再根据签名者的公钥、根据不同签名者的第二随机计算结果得出的结果w和验签参数来计算数字签名批量验证值,由于在计算数字签名批量验证值时,w是根据不同签名者的第二随机计算结果计算得出的,验签参数也是根据不同签名者的第一随机计算结果和第二随机计算结果来计算得到的,那么对于多个不同的签名者,仅需要计算一次,则可以实现对多个签名者的批量验证,相比于现有的方法,需要逐个针对每一个签名者进行计算来说,大大减少了计算量,提高了验证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于SM2的批量验证方法的具体流程图。
具体实施方式
本发明针对现有技术中验证签名的效率较低的问题,提出了一种基于SM2的批量验证方法及系统。
本发明的主要构思如下:
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
本发明实施例提供了一种基于SM2的批量验证方法,应用于验证者B和不同的签名者Ai,i表示签名者的编号,该方法包括:
S2:验证者B根据签名后的消息生成中间结果(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且
S1中,验证者B接收签名者发送的签名后的消息,签名后的消息是由不同的签名者签署签名后产生的消息,i表示不同签名者的下标,可以为1,2,3等等。例如签名者A1对应表示签名者Ai产生的签名消息, 为签名过程中产生的随机计算结果,可以通过预设签名算法计算得到,签名过程不再本申请的讨论范围,故在此不再详细介绍是如何进行计算的。
S2中计算出的中间结果是用于后续的验证过程的。
S4中,验证者可以在验证前获取签名者的公钥,然后根据签名者的公钥、根据不同签名者的第二随机计算结果得出的结果w和验签参数来计算数字签名批量验证值,由于在计算数字签名批量验证值时,w是根据不同签名者的第二随机计算结果计算得出的,验签参数也是根据不同签名者的第一随机计算结果和第二随机计算结果来计算得到的,那么对于多个不同的签名者,仅需要计算一次,则可以实现对多个签名者的批量验证,相比于现有的方法,需要逐个针对每一个签名者进行计算来说,大大减少了计算量,提高了验证效率。
在一种实施方式中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值并与拼接得到其中 表示不同签名者Ai具有长度为比特的可辨别标识;是由整数转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示E上n阶的基点,表示公钥的坐标;
具体来说,上述内容主要是针对中间结果中的每个参数的具体计算方式的介绍,密码杂凑函数为H256。
在一种实施方式中,S3具体包括:
在一种实施方式中,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
在一种实施方式中,S4具体包括:
S4.2:验证者B计算数字签名批量验证值R',R'=(d+x)modn,n表示基点G的阶,为一个随机数。
具体来说,签名者是Ai(i=1,2,···,l),针对不同的待签名消息其公私密钥对为产生的签名消息为验证者是B,则B需要对Ai发送过来的进行数字签名验证,判断其签署者是否为Ai。验证者B对不同的消息使用hash函数产生不同并对其求和得到d。验证者B对签名者Ai传输过来的分别对进行累加运算,得到R与w,对和进行加法运算得到在进行数字签名验证过程中,运算量最大的地方在计算点乘的时候,即计算椭圆曲线点在计算可以数字签名批量验证值是,首先需要计算椭圆曲线上新的点,因此通过本发明的方法,先计算从而在计算椭圆上点(x,y)时,只需要进行一次点乘运算,就可以是实现对多个签名者的批量验证,故而可以加速验签的效率。
本发明可以通过具体的推到过程证明来该方法的完整性和正确性,并对其做了安全性分析。这种基于SM2的批量验证方法能够确保用户数据不被篡改,并且能够加速不同签名者验签的速度。假设有100个不同的签名者对100条数据进行签名,对于传统的验签方式,需要进行操作100次,而对于基于SM2的批量验证算法,只需要进行一次操作。因此,此方案比起传统的验签方式,本发明计算更加简单方便,具有更高的计算效率、复杂度低的优势。相比于国外的RSA、ECDSA等数字签名算法的批量验证算法,首次提出了国密SM2的批量验证算法。
基于同样的发明构思,本发明还提供了一种与实施例一中的基于SM2的批量验证方法对应的系统,详见实施例二。
实施例二
本实施例提供了一种基于SM2的批量验证系统,应用于验证者B和不同的签名者Ai,该系统包括:
中间结果生成模块,用于根据签名后的消息生成中间结果(d,R,a),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R'与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R',数字签名批验证成功,否则验证不成功。
由于本发明实施例二所介绍的系统,为实施本发明实施例一中基于SM2的批量验证方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种基于SM2的批量验证方法,其特征在于,应用于验证者B和不同的签名者Ai,该方法包括:
S2:验证者B根据签名后的消息生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
S3:验证者B根据第一随机计算结果和第二随机计算结果,获得验签参数;
S4:验证者B基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
S5:验证者B将签名批量验证值R′与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R′,数字签名批验证成功,否则验证不成功;
其中,S2具体包括:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值并与拼接得到其中 表示不同签名者Ai具有长度为比特的可辨别标识;是由整数转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示椭圆曲线上n阶的基点,表示公钥的坐标;
3.如权利要求1所述的批量验证方法,其特征在于,在S3之后,所述方法还包括:
判断验签参数是否为0,如果为0,则验证不通过。
5.一种基于SM2的批量验证系统,其特征在于,应用于验证者B和不同的签名者Ai,该系统包括:
中间结果生成模块,用于根据签名后的消息生成中间结果(d,R,w),其中,d表示根据待签名的消息计算出的哈希结果,R表示根据不同签名者的第一随机计算结果得出的结果,w表示根据不同签名者的第二随机计算结果得出的结果;
验签参数计算模块,用于根据第一随机计算结果和第二随机计算结果,获得验签参数;
数字签名批量验证值计算模块,用于基于签名者的公钥、w和验签参数计算数字签名批量验证值R';
验证模块,用于将签名批量验证值R′与根据不同签名者的第一随机计算结果得出的结果R进行比较,如果若R=R′,数字签名批验证成功,否则验证不成功;
其中,中间结果生成模块具体用于执行下述步骤:
S2.1:验证者B采用密码杂凑函数获得不同签名者Ai的杂凑值并与拼接得到其中 表示不同签名者Ai具有长度为比特的可辨别标识;是由整数转换而成的两个字节;a、b为椭圆曲线方程y2=x2+ax+b的参数;xG、yG表示G的坐标;G=(x,y)表示椭圆曲线上n阶的基点,表示公钥的坐标;
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)
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)
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 |
-
2020
- 2020-08-07 CN CN202010787513.7A patent/CN112054894B/zh active Active
Patent Citations (4)
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)
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 |