CN109150544A - 一种在嵌入式设备端加快sm2验签的方法 - Google Patents

一种在嵌入式设备端加快sm2验签的方法 Download PDF

Info

Publication number
CN109150544A
CN109150544A CN201811000664.2A CN201811000664A CN109150544A CN 109150544 A CN109150544 A CN 109150544A CN 201811000664 A CN201811000664 A CN 201811000664A CN 109150544 A CN109150544 A CN 109150544A
Authority
CN
China
Prior art keywords
calculated
calculating
execute
under
sign test
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.)
Pending
Application number
CN201811000664.2A
Other languages
English (en)
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.)
Tianjin Card Intelligent Network Polytron Technologies Inc
Original Assignee
Tianjin Card Intelligent Network Polytron Technologies Inc
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 Tianjin Card Intelligent Network Polytron Technologies Inc filed Critical Tianjin Card Intelligent Network Polytron Technologies Inc
Priority to CN201811000664.2A priority Critical patent/CN109150544A/zh
Publication of CN109150544A publication Critical patent/CN109150544A/zh
Pending legal-status Critical Current

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种在嵌入式设备端加快sm2验签的方法。方法包括如下步骤:初始化椭圆曲线记曲线阶为n,签名结果为(r,s),被签名消息和签名者标识的哈希值为m,签名者公钥为Q,获取椭圆曲线基点G;在C语言环境下,计算u=r+s mod n;在C语言环境下,计算(x,y)=s*G+u*Q;在C语言环境下,计算v=m+x mod n;判断是否满足v=r,满足则签名验证通过,否则签名验证不通过。本发明相对于现有技术具有以下优点:通过优化算法使得一些低端嵌入式设备具有较快的sm2验签速度,有效降低产品成本。

Description

一种在嵌入式设备端加快sm2验签的方法
技术领域:
本发明涉及移动支付技术领域,进一步涉及一种在嵌入式设备端加快sm2验签的方法。
背景技术:
因为刷卡支付,二维码支付等移动支付手段的进一步推广,sm2验签技术被广泛使用到嵌入式设备中。
目前移动支付的嵌入式设备普遍要求成本低,导致运算能力存在限制。研究嵌入式设备端加快sm2验签的方法可以有效解决上述问题。
由于高精度整数乘法和取模运算处于sm2验签算法最底层循环,所以改进乘法和取模运算运行速度能够有效提升sm2验签速度。在乘法运算中使用快速乘法代替普通乘法运算,是当前在算法方面普遍使用的优化方式。通过改进进位方式、改进递归过程和改进取模运算等,降低算法时间复杂度,以加快算法执行速度。
一般来说,高精度整数的乘法和取模运算在高级语言实现时会有三个主要问题:速度慢、取模需两次除法运算、中间数值可能越界。因此,应采用汇编语言和优化算法实现上述运算。使用汇编语言代替高级语言实现,是当前在语言方面普遍使用的优化方式,能够提高指令执行效率,可以加快程序运行速度。
发明内容:
本发明的目的在于提供一种可以加快sm2验签的方法。
本发明通过如下方式实现:
一种在嵌入式设备端加快sm2验签的方法,包括如下步骤:
步骤1:初始化椭圆曲线,记曲线阶为n,签名结果为(r,s),被签名消息和签名者标识的哈希值为m,获取椭圆曲线基点G,签名者公钥为Q;
步骤2:在C语言环境下,计算u=r+s mod n;
步骤3:在C语言环境下,计算(x,y)=s*G+u*Q;
步骤4:在C语言环境下,计算v=m+x mod n;
步骤5:判断是否满足v=r,满足则签名验证通过,否则签名验证不通过。
优选方案一,所述步骤3包括如下具体过程:
步骤3.1:记s=(st-1,st-2,…,s1,s0)2,u=(uk-1,uk-2,…,u1,u0)2取椭圆曲线点M=∞,N=∞,取整数i=t-1,j=k-1,执行3.2;
步骤3.2:判断是否i>=0,是则执行3.3,否则执行3.5;
步骤3.3:计算M=M+M,i=i-1,判断是否si=1,是则执行3.4,否则执行3.2;
步骤3.4:计算M=M+G,执行3.2;
步骤3.5:判断是否j>=0,是则执行3.6,否则执行3.8;
步骤3.6:计算N=N+N,j=j-1,判断是否uj=1,是则执行3.7,否则执行3.3;
步骤3.7:计算N=N+Q,执行3.2;
步骤3.8:返回(x,y)=M+N。
本发明相对于现有技术具有以下优点:
(一)通过优化算法提升sm2验签速度,没有增加硬件成本。
(二)通过优化算法使得一些低端嵌入式设备具有较快的sm2验签速度,有效降低产品成本。
附图说明:
图1为本发明方法的流程框图。
具体实施方式:
实施例:
一种在嵌入式设备端加快sm2验签的方法,包括如下步骤:
步骤1:初始化椭圆曲线,记曲线阶为n,签名结果为(r,s),被签名消息和签名者标识的哈希值为m,获取椭圆曲线基点G,签名者公钥为Q;
步骤2:在C语言环境下,计算u=r+s mod n;
步骤3:在C语言环境下,计算(x,y)=s*G+u*Q;
步骤4:在C语言环境下,计算v=m+x mod n;
步骤5:判断是否满足v=r,满足则签名验证通过,否则签名验证不通过。
所述步骤3包括如下具体过程:
步骤3.1:记s=(st-1,st-2,…,s1,s0)2,u=(uk-1,uk-2,…,u1,u0)2取椭圆曲线点M=∞,N=∞,取整数i=t-1,j=k-1,执行3.2;
步骤3.2:判断是否i>=0,是则执行3.3,否则执行3.5;
步骤3.3:计算M=M+M,i=i-1,判断是否si=1,是则执行3.4,否则执行3.2;
步骤3.4:计算M=M+G,执行3.2;
步骤3.5:判断是否j>=0,是则执行3.6,否则执行3.8;
步骤3.6:计算N=N+N,j=j-1,判断是否uj=1,是则执行3.7,否则执行3.3;
步骤3.7:计算N=N+Q,执行3.2;
步骤3.8:返回(x,y)=M+N。
上述步骤3.3,3.4,3.6,3.7,3.8中涉及的椭圆曲线上点A、点B、点C之间A=B+C的计算,按如下过程进行:
步骤3a:记B=(x1,y1),C=(x2,y2),A=(x3,y3),椭圆曲线方程为y2=x3+ax+b;
步骤3b:计算c=x1*x1;
步骤3c:计算d=x2*x2;
步骤3d:计算e=x1*x2;
步骤3e:计算λ=(c+d+e+a)/(y1+y2);
步骤3f:计算λ2=λ*λ;
步骤3g:计算x3=λ2-x1-x2;
步骤3h:计算f=λ*x1;
步骤3i:计算g=λ*x3;
步骤3j:计算y3=f-g-y1;
步骤3k:返回A=(x3,y3)。
上述步骤3b、步骤3c、步骤3d、步骤3f、步骤3h、3i中涉及的十进制下计算z=x*y,算法为z=alg(x,y),记m=(x与y的位数的最大值),递归下降最低位数为k,m和k均为编译前指定,且m为k的2的幂次倍;包括如下过程:
步骤301:判断是否满足m<k,是转步骤302,否则转步骤303;
步骤302:返回z=x*y;
步骤303:计算m2=m/2;
步骤304:记x1为x的高m2位,x2为x的低m2位,y1为y的高m2位,y2为y的低m2位;
步骤305:计算z1=alg(x2,y2),z2=alg(x1+x2,y1+y2),z3=alg(x1,y1);
步骤306:返回z=z3*10m+(z2-z3-z1)*10m2+z1。
上述步骤302按如下过程进行:
步骤302-1:在汇编语言环境下,记y的各位数字由高至低为yn、yn-1、…、y1
步骤302-2:在汇编语言环境下,计算zi=x*yi(1≤i≤n);
步骤302-3:在汇编语言环境下,返回z=∑ni=1zi*10i
在arm9处理器平台运行本发明实现的sm2验签,同Openssl库实现的sm2算法进行时间测试对比,得到如下结果:
第一种情况:后台有应用程序运行,测试前CPU使用率一般达80%以上,平均值误差约10ms;测试结果对比如下表
版本 平均时间 最小时间 最大时间
本发明 321ms 207ms 553ms
Openssl验签 1394ms 1216ms 1625ms
第二种情况:后台无应用程序运行,测试前CPU使用率一般在1%以下,平均值误差约1ms;测试结果对比如下表
版本 平均时间 最小时间 最大时间
本发明 33ms 32ms 36ms
Openssl验签 115ms 114ms 170ms
测试环境参数:主频:454Mhz,内存128M,每个测试进行1000次统计,测试结果显示,在相同嵌入式平台上,本发明时间性能具有显著优势。

Claims (5)

1.一种在嵌入式设备端加快sm2验签的方法,其特征在于,包括如下步骤:
步骤1:初始化椭圆曲线,记曲线阶为n,签名结果为(r,s),被签名消息和签名者标识的哈希值为m,获取椭圆曲线基点G,签名者公钥为Q;
步骤2:在C语言环境下,计算u=r+s mod n;
步骤3:在C语言环境下,计算(x,y)=s*G+u*Q;
步骤4:在C语言环境下,计算v=m+x mod n;
步骤5:判断是否满足v=r,满足则签名验证通过,否则签名验证不通过。
2.根据权利要求1所述一种在嵌入式设备端加快sm2验签的方法,其特征在于,所述步骤3包括如下具体过程:
步骤3.1:记s=(st-1,st-2,…,s1,s0)2,u=(uk-1,uk-2,…,u1,u0)2取椭圆曲线点M=∞,N=∞,取整数i=t-1,j=k-1,执行3.2;
步骤3.2:判断是否i>=0,是则执行3.3,否则执行3.5;
步骤3.3:计算M=M+M,i=i-1,判断是否si=1,是则执行3.4,否则执行3.2;
步骤3.4:计算M=M+G,执行3.2;
步骤3.5:判断是否j>=0,是则执行3.6,否则执行3.8;
步骤3.6:计算N=N+N,j=j-1,判断是否uj=1,是则执行3.7,否则执行3.3;
步骤3.7:计算N=N+Q,执行3.2;
步骤3.8:返回(x,y)=M+N。
3.根据权利要求2所述的一种在嵌入式设备端加快sm2验签的方法,其特征在于,所述步骤3.3,3.4,3.6,3.7,3.8中涉及的椭圆曲线上点A、点B、点C之间A=B+C的计算,按如下过程进行:
步骤3a:记B=(x1,y1),C=(x2,y2),A=(x3,y3),椭圆曲线方程为y2=x3+ax+b;
步骤3b:计算c=x1*x1;
步骤3c:计算d=x2*x2;
步骤3d:计算e=x1*x2;
步骤3e:计算λ=(c+d+e+a)/(y1+y2);
步骤3f:计算λ2=λ*λ;
步骤3g:计算x3=λ2-x1-x2;
步骤3h:计算f=λ*x1;
步骤3i:计算g=λ*x3;
步骤3j:计算y3=f-g-y1;
步骤3k:返回A=(x3,y3)。
4.根据权利要求3所述一种在嵌入式设备端加快sm2验签的方法,其特征在于,所述步骤3b、步骤3c、步骤3d、步骤3f、步骤3h、3i中涉及的十进制下计算z=x*y,算法为z=alg(x,y),记m=(x与y的位数的最大值),递归下降最低位数为k,m和k均为编译前指定,且m为k的2的幂次倍;包括如下过程:
步骤301:判断是否满足m<k,是转步骤302,否则转步骤303;
步骤302:返回z=x*y;
步骤303:计算m2=m/2;
步骤304:记x1为x的高m2位,x2为x的低m2位,y1为y的高m2位,y2为y的低m2位;
步骤305:计算z1=alg(x2,y2),z2=alg(x1+x2,y1+y2),z3=alg(x1,y1);
步骤306:返回z=z3*10m+(z2-z3-z1)*10m2+z1。
5.根据权利要求4所述一种在嵌入式设备端加快sm2验签的方法,其特征在于,所述步骤302按如下过程进行:
步骤302-1:在汇编语言环境下,记y的各位数字由高至低为yn、yn-1、…、y1
步骤302-2:在汇编语言环境下,计算zi=x*yi(1≤i≤n);
步骤302-3:在汇编语言环境下,返回z=∑n i=1zi*10i
CN201811000664.2A 2018-08-30 2018-08-30 一种在嵌入式设备端加快sm2验签的方法 Pending CN109150544A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811000664.2A CN109150544A (zh) 2018-08-30 2018-08-30 一种在嵌入式设备端加快sm2验签的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811000664.2A CN109150544A (zh) 2018-08-30 2018-08-30 一种在嵌入式设备端加快sm2验签的方法

Publications (1)

Publication Number Publication Date
CN109150544A true CN109150544A (zh) 2019-01-04

Family

ID=64829187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811000664.2A Pending CN109150544A (zh) 2018-08-30 2018-08-30 一种在嵌入式设备端加快sm2验签的方法

Country Status (1)

Country Link
CN (1) CN109150544A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737778A (zh) * 2020-12-30 2021-04-30 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 数字签名生成、验证方法及装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101296072A (zh) * 2007-04-29 2008-10-29 四川虹微技术有限公司 一种椭圆曲线上的共享密钥产生方法
US20110083015A1 (en) * 2009-10-05 2011-04-07 Eidgenossiche Technische Hochschule Zurich System and method for an electronic signature for quick and efficient data authentication
CN103532710A (zh) * 2013-09-26 2014-01-22 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN106856431A (zh) * 2015-12-09 2017-06-16 上海华虹集成电路有限责任公司 改进的椭圆曲线数字签名算法及验签方法
CN108111300A (zh) * 2016-11-24 2018-06-01 范洪国 一种基于ecc加密的电子商务系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101296072A (zh) * 2007-04-29 2008-10-29 四川虹微技术有限公司 一种椭圆曲线上的共享密钥产生方法
US20110083015A1 (en) * 2009-10-05 2011-04-07 Eidgenossiche Technische Hochschule Zurich System and method for an electronic signature for quick and efficient data authentication
CN103532710A (zh) * 2013-09-26 2014-01-22 中国科学院数据与通信保护研究教育中心 基于gpu的sm2算法实现方法及装置
CN106856431A (zh) * 2015-12-09 2017-06-16 上海华虹集成电路有限责任公司 改进的椭圆曲线数字签名算法及验签方法
CN108111300A (zh) * 2016-11-24 2018-06-01 范洪国 一种基于ecc加密的电子商务系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CSDN: "图解SM2算法流程", 《CSDN》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112737778A (zh) * 2020-12-30 2021-04-30 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 数字签名生成、验证方法及装置、电子设备及存储介质
CN112737778B (zh) * 2020-12-30 2022-08-12 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 数字签名生成、验证方法及装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Bernstein et al. Sliding right into disaster: Left-to-right sliding windows leak
Liu et al. MoTE-ECC: Energy-scalable elliptic curve cryptography for wireless sensor networks
US7957527B2 (en) Cryptographic processing apparatus
Faz-Hernández et al. High-performance implementation of elliptic curve cryptography using vector instructions
De Mulder et al. Using Bleichenbacher” s solution to the hidden number problem to attack nonce leaks in 384-bit ECDSA
CA2614120A1 (en) Elliptic curve point multiplication
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
US10999056B2 (en) Apparatus and method for performing operation being secure against side channel attack
KR20140046568A (ko) 단순 전력 파형 분석 및 오류 주입 분석을 방지하는 타원곡선 암호화 방법 및 그 시스템
Anastasova et al. Time-efficient finite field microarchitecture design for curve448 and ed448 on cortex-M4
US10348495B2 (en) Configurable crypto hardware engine
Koppermann et al. 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices
CN108875416B (zh) 椭圆曲线多倍点运算方法和装置
Jalali et al. ARMv8 SIKE: Optimized supersingular isogeny key encapsulation on ARMv8 processors
Pornin Optimized binary gcd for modular inversion
CN109150544A (zh) 一种在嵌入式设备端加快sm2验签的方法
CN111931176B (zh) 防御侧信道攻击的方法、装置及可读存储介质
US20120039462A1 (en) Rsa signature method and apparatus
Kabin et al. Randomized Addressing Countermeasures are Inefficient Against Address-Bit SCA
CN109005039A (zh) 一种在嵌入式设备端加快ecdsa验签的方法
US10659224B2 (en) Apparatus and method for performing operation being secure against side channel attack
Li et al. Single-trace side-channel attacks on the toom-cook: The case study of saber
CN110495133B (zh) 用于生成用于密码应用的素数的方法
Aljuffri et al. Multi-bit blinding: A countermeasure for RSA against side channel attacks
US11184148B2 (en) Elliptic curve cryptography scheme for Edwards curves having a differential side-channel attack countermeasure

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190104