CN111538480A - 一种用于椭圆曲线密码的倍点运算方法及系统 - Google Patents

一种用于椭圆曲线密码的倍点运算方法及系统 Download PDF

Info

Publication number
CN111538480A
CN111538480A CN202010226416.0A CN202010226416A CN111538480A CN 111538480 A CN111538480 A CN 111538480A CN 202010226416 A CN202010226416 A CN 202010226416A CN 111538480 A CN111538480 A CN 111538480A
Authority
CN
China
Prior art keywords
lookup table
point
elliptic curve
calculating
module
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
CN202010226416.0A
Other languages
English (en)
Other versions
CN111538480B (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information Technology 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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202010226416.0A priority Critical patent/CN111538480B/zh
Publication of CN111538480A publication Critical patent/CN111538480A/zh
Application granted granted Critical
Publication of CN111538480B publication Critical patent/CN111538480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明提出一种用于椭圆曲线密码的倍点运算方法,包括:根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)占用空间;将椭圆曲线阶的位数N依据V比特划分为(N+V‑1)/V份单元,计算椭圆曲线上点(x,y)的数量和查找表的大小;根据查找表的大小和设备内存大小计算V的最大值;计算
Figure DDA0002427560710000011
并依次计算k*2iVG,其中,
Figure DDA0002427560710000012
k∈[1,2v‑1],并根据计算的结果生成划分的各个单元的查找表;计算N%V,并计算
Figure DDA0002427560710000013
其中,k∈[1,2N%V‑1];依据K的取值不同依次从划分的各个单元的查找表中获取相应计算结果并进行点加运算获得椭圆曲线基点G的K倍点[K]G的点乘结果;本发明根据设备资源可动态构造查找表、提高倍点运算速度。

Description

一种用于椭圆曲线密码的倍点运算方法及系统
技术领域
本发明涉及密码技术领域,具体涉及一种用于椭圆曲线密码的倍点运算方法及系统。
背景技术
椭圆曲线密码(Elliptic Curve Cryptography,ECC)属于非对称密码体制,ECC具有密钥长度短、加解密速度快、对计算环境要求低、在需要通信时对带宽要求低等特点,因此,近年来,ECC被广泛应用于商用密码领域。国密SM2也是非对称密码体制,是一种基于ECC的非对称密码体制。
SM2椭圆曲线算法包括SM2加密/解密密码算法和SM2签名/验签密码算法,在SM2签名、验签和加密算法过程中,需要计算ECC椭圆曲线上一个固定点G的倍点,即计算[k]G,其中k为随机数,倍点运算是关键的一步,也是耗时最长的一步。目前,倍点运算的算法主要采用二进制展开法、加减法、滑动窗法、查表法等,其中以查表法计算速度最快,但是查表法存在占用资源(内存、闪存等)大的缺陷,已有实现并不能动态地适配各种设备资源,同样的算法在PC上可以正常有效地工作,但是在资源有限的设备中就不能正常工作。
因此如何根据设备资源来动态构造查找表、提高倍点运算的速度是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种用于椭圆曲线密码的倍点运算方法及系统,其能够根据设备资源来动态构造查找表、提高倍点运算的速度。
本发明第一方面提出一种用于椭圆曲线密码的倍点运算方法,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;
参数确定过程:
根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)的占用空间;
设定V比特,依据V比特将椭圆曲线阶的位数N划分为(N+V-1)/V份单元,计算椭圆曲线上点(x,y)的数量;
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小;
根据所述查找表的大小和设备内存大小计算V的最大值;
查找表生成过程:
计算
Figure BDA0002427560690000021
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure BDA0002427560690000022
Figure BDA0002427560690000023
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;
计算N%V,并计算
Figure BDA0002427560690000024
其中,k∈[1,2N%V-1];倍点运算过程:
依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果并进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
进一步的,所述椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000025
Figure BDA0002427560690000026
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000027
根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000028
计算出V的最大值;其中S为设备内存,单位为字节。
进一步的,椭圆曲线上点(x,y)的占用空间为N/4字节。
进一步的,所述倍点运算方法还包括标记设置过程:
将预设V的阈值设置为是否使用查找表进行倍点运算的标记,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
进一步的,在所述标记设置设置过程中,预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
本发明第二方面还提出一种用于椭圆曲线密码的倍点运算系统,所述系统包括:参数确定单元、查找表生成单元和倍点运算单元;
所述参数确定单元包括第一计算模块和划分模块;
所述划分模块,用于将椭圆曲线阶的位数N依据V比特划分为(N+V-1)/V份单元;
所述计算模块,用于根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)占用空间为N/4字节;还用于计算椭圆曲线上点(x,y)的数量;以及用于根据所述椭圆曲线上点(x,y)的数量计算查找表的大小,并通过所述查找表的大小和设备内存大小计算V的最大值;
所述查找表生成单元包括第二计算模块和构造模块;
所述第二计算模块,用于计算
Figure BDA0002427560690000031
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure BDA0002427560690000032
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;计算N%V,并计算
Figure BDA0002427560690000033
其中,k∈[1,2N%V-1];
所述构造模块,用于根据计算的结果构造生成所述划分的各个单元的查找表,并存储于所述设备内存中;
所述倍点运算单元包括结果获取模块和点加模块;
所述结果获取模块,用于依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果;
所述点加模块,用于对获取的各个计算结果进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
进一步的,所述计算模块对所述椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000034
所述计算模块根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000035
所述计算模块根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000041
计算出V的最大值;其中S为设备内存,单位为字节。
进一步的,椭圆曲线上点(x,y)的占用空间为N/4字节。
进一步的,所述倍点运算系统还包括标记单元,所述标记单元包括设置模块和判断模块;
所述设置模块,用于将预设V的阈值设置为是否使用查找表进行倍点运算的标记;
所述判断模块,用于根据设置的所述倍点运算的V的阈值进行判断,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
进一步的,所述标记单元还包括比较模块,用于预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)通过椭圆曲线阶的位数N和计算的椭圆曲线上点(x,y)的数量、查找表的大小参数、设备内存大小来计算V比特的最大值;再通过计算的查找表大小、设备资源和计算的V比特的大小进行各个单元的查找表的计算,从而构造生成设备资源相对应的查找表,能够动态地适配不同的设备资源,具有适应性强的特点;
(2)在进行倍点运算的过程中,依据K取值能够通过构造生成的查找表快速获取相应的计算结果进行点加运算,提高倍点运算的计算速度,而且在设备资源较少的情况下也可以使用查找表法进行倍点运算,不受设备资源的限制;
(3)通过设置倍点运算的标记判断是否使用查找表进行倍点运算,保证系统的灵活应用,提高运算速度。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种用于椭圆曲线密码的倍点运算方法流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,本发明第一方面提出一种用于椭圆曲线密码的倍点运算方法,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;
参数确定过程:
根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)的占用空间;
设定V比特,依据V比特将椭圆曲线阶的位数N划分为(N+V-1)/V份单元,计算椭圆曲线上点(x,y)的数量;
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小;
根据所述查找表的大小和设备内存大小计算V的最大值;
查找表生成过程:
计算
Figure BDA0002427560690000051
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure BDA0002427560690000052
Figure BDA0002427560690000061
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;
计算N%V,并计算
Figure BDA0002427560690000062
其中,k∈[1,2N%V-1];
倍点运算过程:
依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果并进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
具体的,所述椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000063
Figure BDA0002427560690000064
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000065
根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000066
计算出V的最大值;其中S为设备内存,单位为字节。
具体的,若N%V的值为0;在所述参数确定过程中,则将椭圆曲线阶的位数N依据V比特划分为N/V份单元,椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000067
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000068
根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000069
计算出V的最大值;其中S为设备内存,单位为字节。
需要说明的是,
Figure BDA00024275606900000610
代表的结果取整数,具体为向下取整,例如,
Figure BDA00024275606900000611
则为36。
在具体的实施例中,若椭圆曲线阶的位数N为256比特(N设置为8的整数倍),设备内存为512字节,则椭圆曲线上点(x,y)占用空间为256/4=64字节;
首先,计算椭圆曲线上点(x,y)的数量为:
Figure BDA0002427560690000071
Figure BDA0002427560690000072
其次,计算查找表的大小具体为:
Figure BDA0002427560690000073
Figure BDA0002427560690000074
Figure BDA0002427560690000075
得出V的最大值为8比特;
将椭圆曲线阶的位数N=256依据8比特划分为32个单元,相当于要构造生成32个单元的查找表,总共占512KB;
依次计算
KG=k*2iVG=k1*20G+k2*28G+k3*216G+k4*224G+......+k32*2248G,相当于要进行32个点加运算,而32个点的的计算结果已经在构造生成的32个查找表中,仅需要知道每个查找表中K的具体取值,依据K的取值能够快速查找到相应的计算结果,大大提高了计算速度。
在具体的实施例中,若出现N%V的值不为0时,例如将椭圆曲线阶的位数N=256依据7比特划分为37个单元,相当于要构造生成37个单元的查找表,前36个单元中是依据7比特划分的,最高位也就是第37个单元包括4比特:
依次计算
KG=k*2ivG=k1*20G+k2*28G+k3*216G+k4*224G+......+k36*245G+k37*252G,相当于要进行37个点加运算,其中k1至k36的取值范围是[1,27-1],k37的取值范围是[1,24-1]。
需要说明的是,构造生成的查找表可以预先进行构造并预置到设备中,也可以在设备初始化时动态构造查找表。
在实际的应用中,设备端首先调用初始化接口,传递ECC椭圆曲线参数、设备资源等参数;初始化函数负责根据这些参数进行计算,构造出固定点G的倍点运算查找表;之后再调用倍点运算接口时,使用该查找表进行倍点运算的加速运算。
可以理解的是,椭圆曲线阶的位数N如果按照V比特正好划分为整数个单元,每个单元中都是V比特,则N%V的值为0;如果椭圆曲线阶的位数N如果按照V比特划分的时候不能完全整除,则最高位单元中少于V比特,N%V的值不为0,存在有整数部分和余数部分。计算中涉及到(2V-1)是考虑到最最低位不需要做查找表,当然在实际的设计过程中可以采用不减去1的设计方法。
具体的,所述倍点运算方法还包括标记设置过程:
将预设V的阈值设置为是否使用查找表进行倍点运算的标记,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
具体的,在所述标记设置设置过程中,预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
本发明第二方面还提出一种用于椭圆曲线密码的倍点运算系统,所述系统包括:参数确定单元、查找表生成单元和倍点运算单元;
所述参数确定单元包括第一计算模块和划分模块;
所述划分模块,用于将椭圆曲线阶的位数N依据V比特划分为(N+V-1)/V份单元;
所述计算模块,用于根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)占用空间,优选的,椭圆曲线上点(x,y)的占用空间为N/4字节;还用于计算椭圆曲线上点(x,y)的数量;以及用于根据所述椭圆曲线上点(x,y)的数量计算查找表的大小,并通过所述查找表的大小和设备内存大小计算V的最大值;
所述查找表生成单元包括第二计算模块和构造模块;
所述第二计算模块,用于计算
Figure BDA0002427560690000091
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure BDA0002427560690000092
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;
计算N%V,并计算
Figure BDA0002427560690000093
其中,k∈[1,2N%V-1];
所述构造模块,用于根据计算的结果构造生成所述划分的各个单元的查找表,并存储于所述设备内存中;
所述倍点运算单元包括结果获取模块和点加模块;
所述结果获取模块,用于依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果;
所述点加模块,用于对获取的各个计算结果进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
具体的,所述计算模块对所述椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000094
所述计算模块根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000095
所述计算模块根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000096
计算出V的最大值;其中S为设备内存,单位为字节。
具体的,若N%V的值为0,则所述划分模块将椭圆曲线阶的位数N依据V比特划分为N/V份单元,所述计算模块对所述椭圆曲线上点(x,y)的数量计算具体为:
Figure BDA0002427560690000097
所述计算模块根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure BDA0002427560690000098
所述计算模块根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure BDA0002427560690000099
计算出V的最大值;其中S为设备内存,单位为字节。
具体的,所述倍点运算系统还包括标记单元,所述标记单元包括设置模块和判断模块;
所述设置模块,用于将预设V的阈值设置为是否使用查找表进行倍点运算的标记;
所述判断模块,用于根据设置的所述倍点运算的V的阈值进行判断,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
具体的,所述标记单元还包括比较模块,用于预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
本发明通过椭圆曲线阶的位数N和计算的椭圆曲线上点(x,y)的数量、查找表的大小参数、设备内存大小来计算V比特的最大值;再通过计算的查找表大小、设备资源和计算的V比特的大小进行各个单元的查找表的计算,从而构造生成设备资源相对应的查找表,能够动态地适配不同的设备资源,具有适应性强的特点;
在进行倍点运算的过程中,依据K取值能够通过构造生成的查找表快速获取相应的计算结果进行点加运算,提高倍点运算的计算速度,而且在设备资源较少的情况下也可以使用查找表法进行倍点运算,不受设备资源的限制;
通过设置倍点运算的标记判断是否使用查找表进行倍点运算,保证系统的灵活应用,提高运算速度。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于椭圆曲线密码的倍点运算方法,其特征在于,该方法包括:参数确定过程、查找表生成过程和倍点运算过程;
参数确定过程:
根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)的占用空间;
设定V比特,依据V比特将椭圆曲线阶的位数N划分为(N+V-1)/V份单元,计算椭圆曲线上点(x,y)的数量;
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小;
根据所述查找表的大小和设备内存大小计算V的最大值;
查找表生成过程:
计算
Figure FDA0002427560680000011
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure FDA0002427560680000012
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;
计算N%V,并计算
Figure FDA0002427560680000013
其中,k∈[1,2N%V-1];
倍点运算过程:
依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果并进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
2.根据权利要求1所述的倍点运算方法,其特征在于,所述椭圆曲线上点(x,y)的数量计算具体为:
Figure FDA0002427560680000014
根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure FDA0002427560680000015
根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure FDA0002427560680000016
Figure FDA0002427560680000017
计算出V的最大值;其中S为设备内存,单位为字节。
3.根据权利要求1或2所述的倍点运算方法,其特征在于,椭圆曲线上点(x,y)的占用空间为N/4字节。
4.根据权利要求1所述的倍点运算方法,其特征在于,所述倍点运算方法还包括标记设置过程:
将预设V的阈值设置为是否使用查找表进行倍点运算的标记,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
5.根据权利要求4所述的倍点运算方法,其特征在于,在所述标记设置设置过程中,预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
6.一种用于椭圆曲线密码的倍点运算系统,其特征在于,所述系统包括:参数确定单元、查找表生成单元和倍点运算单元;
所述参数确定单元包括第一计算模块和划分模块;
所述划分模块,用于将椭圆曲线阶的位数N依据V比特划分为(N+V-1)/V份单元;
所述计算模块,用于根据椭圆曲线阶的位数N比特计算椭圆曲线上点(x,y)占用空间;还用于计算椭圆曲线上点(x,y)的数量;以及用于根据所述椭圆曲线上点(x,y)的数量计算查找表的大小,并通过所述查找表的大小和设备内存大小计算V的最大值;
所述查找表生成单元包括第二计算模块和构造模块;
所述第二计算模块,用于计算
Figure FDA0002427560680000021
对每个k∈[1,2V-1],依次计算k*2iVG,其中,
Figure FDA0002427560680000022
G为基点;并根据计算的结果生成所述划分的各个单元的查找表,存储于所述设备内存中;计算N%V,并计算
Figure FDA0002427560680000023
其中,k∈[1,2N%V-1];
所述构造模块,用于根据计算的结果构造生成所述划分的各个单元的查找表,并存储于所述设备内存中;
所述倍点运算单元包括结果获取模块和点加模块;
所述结果获取模块,用于依据K的取值不同依次从所述划分的各个单元的查找表中获取相应的计算结果;
所述点加模块,用于对获取的各个计算结果进行点加运算后获得椭圆曲线基点G的K倍点[K]G的点乘结果。
7.根据权利要求6所述的倍点运算系统,其特征在于,所述计算模块对所述椭圆曲线上点(x,y)的数量计算具体为:
Figure FDA0002427560680000024
所述计算模块根据所述椭圆曲线上点(x,y)的数量计算查找表的大小具体为:
Figure FDA0002427560680000031
所述计算模块根据所述查找表的大小和设备内存大小计算V的最大值具体为:令
Figure FDA0002427560680000032
计算出V的最大值;其中S为设备内存,单位为字节。
8.根据权利要求6或7所述的倍点运算系统,其特征在于,椭圆曲线上点(x,y)的占用空间为N/4字节。
9.根据权利要求6所述的倍点运算系统,其特征在于,所述倍点运算系统还包括标记单元,所述标记单元包括设置模块和判断模块;
所述设置模块,用于将预设V的阈值设置为是否使用查找表进行倍点运算的标记;
所述判断模块,用于根据设置的所述倍点运算的V的阈值进行判断,若V不小于预设的阈值时,则使用查找表进行倍点运算;否则,使用非查找表方法进行倍点运算。
10.根据权利要求9所述的倍点运算系统,其特征在于,所述标记单元还包括比较模块,用于预先通过对使用查找表进行倍点运算和使用非查找表方法进行倍点运算的运算量进行比较来设置V的阈值。
CN202010226416.0A 2020-03-26 2020-03-26 一种用于椭圆曲线密码的倍点运算方法及系统 Active CN111538480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010226416.0A CN111538480B (zh) 2020-03-26 2020-03-26 一种用于椭圆曲线密码的倍点运算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010226416.0A CN111538480B (zh) 2020-03-26 2020-03-26 一种用于椭圆曲线密码的倍点运算方法及系统

Publications (2)

Publication Number Publication Date
CN111538480A true CN111538480A (zh) 2020-08-14
CN111538480B CN111538480B (zh) 2022-02-11

Family

ID=71974819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010226416.0A Active CN111538480B (zh) 2020-03-26 2020-03-26 一种用于椭圆曲线密码的倍点运算方法及系统

Country Status (1)

Country Link
CN (1) CN111538480B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162756A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于查表的sm4算法实现方法和装置
CN113472540A (zh) * 2021-07-01 2021-10-01 罗克佳华(重庆)科技有限公司 生成密文的方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080044010A1 (en) * 2005-07-12 2008-02-21 Ihor Vasyltasov Cryptographic system and method for encrypting input data
US20090074179A1 (en) * 2005-04-27 2009-03-19 Yuichi Futa Information security device and elliptic curve operating device
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质
CN110365481A (zh) * 2019-07-04 2019-10-22 上海交通大学 加速国密sm2算法的优化实现系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090074179A1 (en) * 2005-04-27 2009-03-19 Yuichi Futa Information security device and elliptic curve operating device
US20080044010A1 (en) * 2005-07-12 2008-02-21 Ihor Vasyltasov Cryptographic system and method for encrypting input data
CN103546288A (zh) * 2013-09-25 2014-01-29 中国科学院数据与通信保护研究教育中心 Sm2数字签名生成算法的实现方法及装置
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质
CN110365481A (zh) * 2019-07-04 2019-10-22 上海交通大学 加速国密sm2算法的优化实现系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
任春静: "椭圆曲线加密算法的研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113162756A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于查表的sm4算法实现方法和装置
CN113472540A (zh) * 2021-07-01 2021-10-01 罗克佳华(重庆)科技有限公司 生成密文的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111538480B (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
CN111538480B (zh) 一种用于椭圆曲线密码的倍点运算方法及系统
US20100020964A1 (en) Key generation method using quadratic-hyperbolic curve group
US20140294177A1 (en) Identity based public key cryptosystem
US8379844B2 (en) Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
CN106850221A (zh) 信息加密、解密方法及装置
US8385541B2 (en) Method of performing elliptic polynomial cryptography with elliptic polynomial hopping
Ganesan et al. A novel digital envelope approach for a secure E-commerce channel.
CA2680047C (en) Integer division in a manner that counters a power analysis attack
CN101753306A (zh) 运用Montgomery型椭圆曲线的数字签名认证方法
WO2009115824A1 (en) Encryption method
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN104123431B (zh) 一种元素的模逆计算方法及装置
CN112350827B (zh) 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统
CN111368317B (zh) 一种计算机数据加密系统及方法
CN109951275B (zh) 密钥生成方法、装置、计算机设备及存储介质
CN112019352A (zh) 一种sm9快速签名方法、系统及电子设备
JP2011002810A (ja) 暗号化装置、プログラム、暗号システム及び暗号化方法
CN116094716A (zh) 基于椭圆曲线密码学的文本加解密方法、系统及设备
CN112134704B (zh) 一种sm2性能优化实现方法
CN111797907B (zh) 一种用于医疗物联网的安全高效的svm隐私保护训练及分类方法
CN104104504A (zh) 一种rsa解密的方法及装置
US20080275932A1 (en) Integer Division In A Manner That Counters A Power Analysis Attack
US8850213B2 (en) Method for verifying an electronic signature and data processing device
CN102394747B (zh) 一种快速嵌入明文到椭圆曲线上一点的方法
CN118468325B (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