CN108875416A - 椭圆曲线多倍点运算方法和装置 - Google Patents
椭圆曲线多倍点运算方法和装置 Download PDFInfo
- Publication number
- CN108875416A CN108875416A CN201810652042.1A CN201810652042A CN108875416A CN 108875416 A CN108875416 A CN 108875416A CN 201810652042 A CN201810652042 A CN 201810652042A CN 108875416 A CN108875416 A CN 108875416A
- Authority
- CN
- China
- Prior art keywords
- point
- true
- sub
- equivalent
- elliptic curve
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004458 analytical method Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000003672 processing method Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种椭圆曲线多倍点运算方法和装置。该椭圆曲线多倍点运算方法包括有序的倍点和点加运算。在点加运算过程中,当扫描到标量K的当前位不为0时则执行真点加运算,当扫描到标量K的当前位为0时则执行等价点转换运算,将所述真点加运算的结果和所述等价点转换运算的结果存到相同的寄存器堆中,所述寄存器堆中包括多个寄存器。所述椭圆曲线多倍点运算方法和装置能够有效抵抗侧信道分析和安全错误攻击。
Description
技术领域
本发明是关于密码芯片领域,特别是关于一种椭圆曲线多倍点运算方法和装置。
背景技术
自从1985年由Neal Koblitz和Victor Miller各自独立将椭圆曲线引入密码学以来,椭圆曲线在密码学中的作用越来越大。
有限域Fq上的椭圆曲线是由点组成的集合,有限域上椭圆曲线在点加运算下构成有限交换群,设k是一个正整数,P是椭圆曲线上的点,称点P的k次加为点P的k倍点运算,记为多倍点Q=[k]P。
类似于有限域乘法群中的乘幂运算,椭圆曲线多倍点运算构成一个单向函数。在多倍点运算中,已知多倍点Q与基点P,求解倍数k的问题称为椭圆曲线离散对数问题。对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密码较其它公钥密码所需的密钥规模要小得多。
椭圆曲线多倍点运算的实现可以有多种方法,常见的多倍点运算包括二进制扫描法、固定窗口扫描法等。
由于固定窗口扫描法与二进制扫描法的运算逻辑相似,下面以从左向右的二进制扫描法为例,介绍现有的多倍点算法,如下:
算法1:
输入:点P,整数k的二进制表示
输出:Q=[k]P.
步骤:
1)Q=O;
2)i=n-1to 0执行
2.1)Q=[2]Q;
2.2)if(ki=1),则Q=Q+P;
3)返回Q.
随着测量技术和攻击技术的不断进步,对密码算法的各种分析和攻击方法不再局限于算法本身,出现了许多针对密码算法实现载体的攻击方法,侧信道攻击是其中威胁性较强的一种方法。攻击者利用密码设备在运行过程中泄露的侧信息如功耗、时间、电磁辐射等,对密码系统进行侧信道攻击。以上述算法为例,由于只有在ki为1时才会执行点加运算,攻击者可以通过观察功耗曲线上是否执行点加运算判断当前密钥比特是1还是0。
目前,抵抗侧信道攻击可以通过消除条件分支的方法,不管当前比特是0还是1均执行倍点、点加运算,算法如下:
算法2:
输入:点P,整数k的二进制表示
输出:Q=[k]P.
步骤:
1)Q=O;
2)i=n-1to 0执行
2.1)Q=[2]Q;
2.2)if(ki=1),则Q=Q+P;
else Q’=Q+P;
3)返回Q.
虽然算法2虽然无法从功耗曲线上区分出当前比特是0还是1,但是Q’=Q+P这一步由于运算结果Q’不参与后续运算,相当于是冗余操作,无法抵抗安全错误攻击:如果攻击者通过故障注入改变Q’的值,然后观察最终运算结果是否正确,如果正确,说明Q’的改变不影响最终结果,当前比特为0,否则为1。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种椭圆曲线多倍点运算方法和装置,其能够有效抵抗侧信道分析和安全错误攻击。
为实现上述目的,本发明提供了一种椭圆曲线多倍点运算方法。该椭圆曲线多倍点运算方法用于椭圆曲线密码算法中来抵抗攻击者对密码的侧信道分析攻击和安全错误攻击。该椭圆曲线多倍点运算方法包括:对多倍点Q执行有序的倍点运算;对多倍点Q执行点加运算,当扫描到标量K的当前位不为0时,则对多倍点Q执行真点加运算,当扫描到标量K的当前位为0时,则对多倍点Q执行等价点转换运算,所述标量K是二进制形式或多进制形式的整数;将所述真点加运算的结果和所述等价点转换运算的结果存到相同的寄存器堆中,所述寄存器堆中包括多个寄存器。
在一优选的实施方式中,所述真点加运算包括多个真点加子运算步骤,所述等价点转换运算包括多个等价点转换子运算步骤,所述真点加子运算步骤的数目与所述等价点转换子运算步骤的数目相同。
在一优选的实施方式中,当所述真点加运算和所述等价点转换运算分别在执行同一个步骤下的真点加子运算和等价点转换子运算时,该同一个步骤下的两种子运算均执行加减运算或均执行乘法运算。
在一优选的实施方式中,当所述真点加运算和所述等价点转换运算分别在执行同一个步骤下的真点加子运算和等价点转换子运算时,将该相同步骤的两种子运算产生的运算结果存到所述寄存器堆中的相同寄存器中。
本发明还提供了一种椭圆曲线多倍点运算装置。所述椭圆曲线多倍点运算装置采用二进制扫描法进行多倍点运算。所述椭圆曲线多倍点运算装置包括:有序倍点运算模块、扫描模块、真点加运算模块、等价点转换运算模块。有序倍点运算模块用于对多倍点Q进行有序的倍点运算。扫描模块用于扫描标量K,所述标量K是二进制形式或多进制形式的整数。真点加运算模块与所述扫描模块和所述有序倍点运算模块均相耦合,用于当扫描到标量K的当前位不为0时,对多倍点Q执行真实的点加运算。等价点转换运算模块与所述扫描模块和所述有序倍点运算模块均相耦合,用于当扫描到标量K的当前位为0时,对多倍点Q执行等价点转换运算。存储模块与所述有序倍点运算模块、所述真点加运算模块、所述等价点转换运算模块均相耦合。存储模块用于将所述真点加运算的结果和所述等价点转换运算的结果存到相同的寄存器堆中,所述寄存器堆中有多个寄存器。
在一优选的实施方式中,所述真点加运算模块包括N个真点加运算子运算单元,分别用于执行真点加运算的各个子运算步骤,当N个真点加运算子运算单元都执行完相应的子运算后产生所述真点加运算的结果。所述等价点转换运算模块包括N个等价点转换运算子运算单元,分别用于执行等价点转换运算的各个子运算步骤,当N个等价点转换运算子运算单元都执行完相应的子运算后产生所述等价点转换运算的结果。
在一优选的实施方式中,当所述真点加运算和所述等价点转换运算的子运算步骤相同时,该相同步骤的两种子运算均执行加减运算或均执行乘法运算。
在一优选的实施方式中,当所述真点加运算和所述等价点转换运算的子运算步骤相同时,将该相同步骤的两种子运算产生的运算结果存到所述寄存器堆中的相同的寄存器中。
与现有技术相比,根据本发明的椭圆曲线多倍点运算方法和装置,当标量K的当前位为0时执行等价点转换运算,等价点转换运算与真实的点加运算的每一步子运算均按照相同的运算方式执行算法,相当于“伪”点加,攻击者无法从功耗等侧信道信息中区分真实点加运算和“伪”点加运算,可有效抵抗侧信道攻击。此外,等价点转换运算结果更新到真实运算结果寄存器Q中,此过程中没有冗余运算,可有效抵抗安全错误攻击。
附图说明
图1是根据本发明一实施方式的椭圆曲线多倍点运算的方法的流程;
图2是根据本发明一实施方式的椭圆曲线多倍点运算装置的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
根据椭圆曲线的性质,对于雅克比射影坐标系下的两个点(x1,y1,z1)和(x2,y2,z2),若存在某个有限域上的非零元素u使得x1=u2x2,y1=u3y2,z1=u z2,则称这两个三元组等价,表示同一个点。
据此,本发明提出了一种椭圆曲线多倍点运算方法和装置,在进行椭圆曲线多倍点运算过程中,当ki比特为0时执行等价点转换运算,等价点转换运算与真实的点加运算的每一步子运算均按照相同的运算方式执行算法,相当于“伪”点加,攻击者无法从功耗等侧信道信息中区分真实点加运算和“伪”点加运算,可有效抵抗侧信道攻击。此外,等价点转换运算结果更新到真实运算结果寄存器Q中,此过程中没有冗余运算,可有效抵抗安全错误攻击。
图1是根据本发明一实施方式的椭圆曲线多倍点运算的方法的流程图。
椭圆曲线多倍点运算的方法包括:
s1,对多倍点Q执行有序的倍点运算。
s2,对多倍点Q执行点加运算。该过程包括:
当扫描到标量K的当前位不为0时,则对多倍点Q执行真点加运算S201,所述标量K是二进制形式或多进制形式的整数;当扫描到标量K的当前位为0时,则对多倍点Q执行等价点转换运算S202。
其中,所述真点加运算S201包括N个子运算步骤,从第一步到第N步执行完毕后产生所述真点加运算的结果。所述等价点转换运算S202也包括N个子运算步骤,从第一步到第N步执行完毕后产生所述等价点转换运算的结果。当所述真点加运算S201和所述等价点转换运算S202的子运算步骤相同时,该相同步骤的两种子运算均执行加减运算或均执行乘法运算。将该相同步骤的两种子运算产生的运算结果存到所述寄存堆中的相同的寄存器中。
s3,存储运算结果。将所述真点加运算S201的结果和所述等价点转换运算S202的结果存到相同的寄存器堆中。
在一实施方式中,基于二进制扫描法的多倍点算法如下:
输入:点P,整数k的二进制表示
输出:Q=[k]P.
步骤:
1)Q=O;
2)i=n-1to 0执行
2.1)Q=[2]Q;
2.2)if(ki=1),则Q=Q+P;
else Q=Q;//等价点转换,相当于“伪”点加
3)返回Q.
在又一实施方式中,基于固定窗口扫描法的多倍点算法如下:设窗口长度为w,m=2w,则标量k(多进制数)可以表示为k=kt-1mt-1+kt-1mt-1+…+k1m+k0(0≤ki<2w)从左向右的固定窗口扫描法如下:
输入:点P,整数k.
输出:Q=[k]P.
步骤:
1)预计算:
1.1)P1=P;
1.2)for i=2to 2w-1执行
Pi=Pi-1+P;
2)Q=O;
3)i=t-1to 0执行
3.1)Q=[2]Q;
3.2)if(ki≠0),则
else Q=Q;//等价点转换,相当于“伪”点加
4)返回Q.
图2是根据本发明一实施方式的椭圆曲线多倍点运算装置的结构示意图。
该椭圆曲线多倍点运算装置包括:有序倍点运算模块10、扫描模块11、真点加运算模块12、等价点转换运算模块13、存储模块14。
有序倍点运算模块10用于对多倍点Q进行有序的倍点运算。扫描模块10用于扫描标量K,所述标量K是二进制形式或多进制形式的整数。真点加运算模块12与所述扫描模块11以及有序倍点运算模块10均相耦合,用于当扫描到标量K的当前位不为0时,对多倍点Q执行真实的点加运算。等价点转换运算模块13与所述扫描模块11以及有序倍点运算模块10均相耦合,用于当扫描到标量K的当前位为0时,对多倍点Q执行等价点转换运算。存储模块14用于将得到的真点加运算结果和伪点加运算结果存到相同的寄存器堆中。
真点加运算模块12包括N个真点加运算子运算单元,分别用于执行真点加运算的各个子运算步骤,当N个真点加运算子运算单元都执行完相应的子运算后产生所述真点加运算的结果。所述等价点转换运算模块13也包括N个等价点转换运算子运算单元,分别用于执行等价点转换运算的各个子运算步骤,当N个等价点转换运算子运算单元都执行完相应的子运算后产生所述等价点转换运算的结果。优选地,当所述真点加运算和所述等价点转换运算的子运算步骤相同时,该相同步骤的两种子运算均执行加减运算或均执行乘法运算。当所述真点加运算和所述等价点转换运算的子运算步骤相同时,将该相同步骤的两种子运算产生的运算结果存到寄存器堆中的相同的寄存器中。
下面以素数域上的椭圆曲线点加及“伪点加”为一实施例进行详细说明。运算过程详见下表:
从表中可以看出,点加和“伪”点加每一子运算步骤的运算方式相同(均执行乘法,或者均执行加/减法)。X1,Y1,Z1,X2,Y2都参与运算,而且每一子运算步骤的运算结果都更新到相同的寄存器变量V0,V1,V2,VA,VB,VC,VD或者X1,Y1,Z1中。
综上所述,该椭圆曲线多倍点运算方法和装置当ki比特为0时执行等价点转换运算,等价点转换运算与真实的点加运算的每个子运算的运算方式相同,相当于“伪”点加,攻击者无法区分真实点加运算和“伪”点加运算,可有效抵抗侧信道攻击。等价点转换运算结果更新到真实运算结果寄存器Q中,此过程中没有冗余运算,可有效抵抗安全错误攻击。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本发明的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。
Claims (8)
1.一种椭圆曲线多倍点运算方法,该椭圆曲线多倍点运算方法用于椭圆曲线密码算法中来抵抗攻击者对密码的侧信道分析攻击和安全错误攻击,其特征在于,该椭圆曲线多倍点运算方法包括:
对多倍点Q执行有序的倍点运算;
对多倍点Q执行点加运算,当扫描到标量K的当前位不为0时,则对多倍点Q执行真点加运算,当扫描到标量K的当前位为0时,则对多倍点Q执行等价点转换运算,所述标量K是二进制形式或多进制形式的整数;
将所述真点加运算的结果和所述等价点转换运算的结果存到相同的寄存器堆中,所述寄存器堆中包括多个寄存器。
2.如权利要求1所述的椭圆曲线多倍点运算方法,其特征在于,
所述真点加运算包括多个真点加子运算步骤,所述等价点转换运算包括多个等价点转换子运算步骤,所述真点加子运算步骤的数目与所述等价点转换子运算步骤的数目相同。
3.如权利要求2所述的椭圆曲线多倍点运算方法,其特征在于,
当所述真点加运算和所述等价点转换运算分别在执行同一个步骤下的真点加子运算和等价点转换子运算时,该同一个步骤下的两种子运算均执行加减运算或均执行乘法运算。
4.如权利要求2所述的椭圆曲线多倍点运算方法,其特征在于,
当所述真点加运算和所述等价点转换运算分别在执行同一个步骤下的真点加子运算和等价点转换子运算时,将该同一个步骤下的两种子运算产生的运算结果存到所述寄存器堆中的相同寄存器中。
5.一种椭圆曲线多倍点运算装置,其特征在于,包括:
有序倍点运算模块,用于对多倍点Q进行有序的倍点运算;
扫描模块,用于扫描标量K,所述标量K是二进制形式或多进制形式的整数;
真点加运算模块,与所述扫描模块和所述有序倍点运算模块均相耦合,用于当扫描到标量K的当前位不为0时,对多倍点Q执行真实的点加运算;
等价点转换运算模块,与所述扫描模块和所述有序倍点运算模块均相耦合,用于当扫描到标量K的当前位为0时,对多倍点Q执行等价点转换运算;
存储模块,与所述有序倍点运算模块、所述真点加运算模块、所述等价点转换运算模块均相耦合,该存储模块用于将所述真点加运算的结果和所述等价点转换运算的结果存到相同的寄存器堆中,所述寄存器堆中有多个寄存器。
6.如权利要求5所述的椭圆曲线多倍点运算装置,其特征在于,
所述真点加运算模块包括N个真点加运算子运算单元,分别用于执行真点加运算的各个子运算步骤,当N个真点加运算子运算单元都执行完相应的子运算后产生所述真点加运算的结果;
所述等价点转换运算模块包括N个等价点转换运算子运算单元,分别用于执行等价点转换运算的各个子运算步骤,当N个等价点转换运算子运算单元都执行完相应的子运算后产生所述等价点转换运算的结果。
7.如权利要求6所述的椭圆曲线多倍点运算装置,其特征在于,
当所述真点加运算和所述等价点转换运算的子运算步骤相同时,该相同步骤的两种子运算均执行加减运算或均执行乘法运算。
8.如权利要求6所述的椭圆曲线多倍点运算装置,其特征在于,
当所述真点加运算和所述等价点转换运算的子运算步骤相同时,将该相同步骤的两种子运算产生的运算结果存到所述寄存器堆中的相同寄存器中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810652042.1A CN108875416B (zh) | 2018-06-22 | 2018-06-22 | 椭圆曲线多倍点运算方法和装置 |
PCT/CN2019/091161 WO2019242562A1 (zh) | 2018-06-22 | 2019-06-13 | 椭圆曲线多倍点运算方法和装置 |
US16/970,488 US11003769B2 (en) | 2018-06-22 | 2019-06-13 | Elliptic curve point multiplication operation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810652042.1A CN108875416B (zh) | 2018-06-22 | 2018-06-22 | 椭圆曲线多倍点运算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875416A true CN108875416A (zh) | 2018-11-23 |
CN108875416B CN108875416B (zh) | 2020-05-19 |
Family
ID=64340867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810652042.1A Active CN108875416B (zh) | 2018-06-22 | 2018-06-22 | 椭圆曲线多倍点运算方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11003769B2 (zh) |
CN (1) | CN108875416B (zh) |
WO (1) | WO2019242562A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110048844A (zh) * | 2019-03-29 | 2019-07-23 | 网御安全技术(深圳)有限公司 | 实现sm2算法的多倍点计算方法、装置 |
WO2019242562A1 (zh) * | 2018-06-22 | 2019-12-26 | 北京智芯微电子科技有限公司 | 椭圆曲线多倍点运算方法和装置 |
CN111966324A (zh) * | 2020-08-19 | 2020-11-20 | 哈尔滨理工大学 | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 |
CN113014388A (zh) * | 2021-03-30 | 2021-06-22 | 浙江萤火虫区块链科技有限公司 | 一种椭圆曲线密码算法中标量乘的加速系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562522A (zh) * | 2009-05-06 | 2009-10-21 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
CN105991292A (zh) * | 2015-03-18 | 2016-10-05 | 马克西姆综合产品公司 | 用于操作安全椭圆曲线密码系统的系统和方法 |
CN107425974A (zh) * | 2017-05-18 | 2017-12-01 | 西安电子科技大学 | 一种FourQ椭圆曲线上KP运算的硬件实现方法 |
US20180062843A1 (en) * | 2016-08-26 | 2018-03-01 | Intel Corporation | Secure elliptic curve cryptography instructions |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2252078C (en) * | 1998-10-28 | 2009-02-17 | Certicom Corp. | Power signature attack resistant cryptographic system |
JP4067818B2 (ja) * | 2001-12-10 | 2008-03-26 | 富士通株式会社 | 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法 |
FR2843506B1 (fr) * | 2002-08-09 | 2004-10-29 | Gemplus Card Int | Procede de calcul universel applique a des points d'une courbe elliptique definie par une quartique, procede cryptographique et composant electronique associes |
EP1548687B1 (en) * | 2002-12-18 | 2013-01-09 | Fujitsu Limited | Tamper-resistant elliptical curve encryption using secret key |
EP1653428B1 (en) * | 2003-08-06 | 2012-08-15 | Fujitsu Limited | Elliptic curve encrypting device, elliptic curve encrypting method, elliptic curve encrypting program and computer-readable recording medium recording that program |
JP4668931B2 (ja) * | 2005-01-24 | 2011-04-13 | 富士通株式会社 | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 |
WO2007048430A1 (en) * | 2005-10-28 | 2007-05-03 | Telecom Italia S.P.A. | A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems |
KR100850202B1 (ko) * | 2006-03-04 | 2008-08-04 | 삼성전자주식회사 | Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법 |
KR100867989B1 (ko) * | 2006-12-06 | 2008-11-10 | 한국전자통신연구원 | 단순전력분석에 안전한 Left-to-Right방향으로 리코딩과 스칼라 곱셈을 동시에 수행하는 스칼라곱셈 방법 |
CN101183945A (zh) * | 2007-12-20 | 2008-05-21 | 上海交通大学 | 基于旁路算子的椭圆曲线抗旁路攻击方法 |
US20100150340A1 (en) * | 2008-12-02 | 2010-06-17 | Electronics And Telecommunications Research Institute | Device and method for elliptic curve cryptosystem |
CN104579651B (zh) * | 2013-10-28 | 2018-08-24 | 上海复旦微电子集团股份有限公司 | 椭圆曲线密码点乘运算的方法和装置 |
FR3057369B1 (fr) * | 2016-10-07 | 2018-10-19 | Idemia Identity And Security | Procede de traitement cryptographique comprenant une multiplication d'un point d'une courbe elliptique par un scalaire |
CN108875416B (zh) * | 2018-06-22 | 2020-05-19 | 北京智芯微电子科技有限公司 | 椭圆曲线多倍点运算方法和装置 |
-
2018
- 2018-06-22 CN CN201810652042.1A patent/CN108875416B/zh active Active
-
2019
- 2019-06-13 WO PCT/CN2019/091161 patent/WO2019242562A1/zh active Application Filing
- 2019-06-13 US US16/970,488 patent/US11003769B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562522A (zh) * | 2009-05-06 | 2009-10-21 | 深圳先进技术研究院 | 抗侧信道攻击的椭圆曲线密码系统实现方法 |
CN102387015A (zh) * | 2011-09-14 | 2012-03-21 | 中国矿业大学 | 一种提高椭圆曲线标量乘法计算效率的方法 |
CN105991292A (zh) * | 2015-03-18 | 2016-10-05 | 马克西姆综合产品公司 | 用于操作安全椭圆曲线密码系统的系统和方法 |
US20180062843A1 (en) * | 2016-08-26 | 2018-03-01 | Intel Corporation | Secure elliptic curve cryptography instructions |
CN107425974A (zh) * | 2017-05-18 | 2017-12-01 | 西安电子科技大学 | 一种FourQ椭圆曲线上KP运算的硬件实现方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019242562A1 (zh) * | 2018-06-22 | 2019-12-26 | 北京智芯微电子科技有限公司 | 椭圆曲线多倍点运算方法和装置 |
US11003769B2 (en) | 2018-06-22 | 2021-05-11 | Beijing Smartchip Microelectronics Technology Comp | Elliptic curve point multiplication operation method and apparatus |
CN110048844A (zh) * | 2019-03-29 | 2019-07-23 | 网御安全技术(深圳)有限公司 | 实现sm2算法的多倍点计算方法、装置 |
CN110048844B (zh) * | 2019-03-29 | 2020-09-11 | 网御安全技术(深圳)有限公司 | 实现sm2算法的多倍点计算方法、装置 |
CN111966324A (zh) * | 2020-08-19 | 2020-11-20 | 哈尔滨理工大学 | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 |
CN111966324B (zh) * | 2020-08-19 | 2024-01-30 | 哈尔滨理工大学 | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 |
CN113014388A (zh) * | 2021-03-30 | 2021-06-22 | 浙江萤火虫区块链科技有限公司 | 一种椭圆曲线密码算法中标量乘的加速系统 |
CN113014388B (zh) * | 2021-03-30 | 2022-06-28 | 浙江萤火虫区块链科技有限公司 | 一种椭圆曲线密码算法中标量乘的加速系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200380122A1 (en) | 2020-12-03 |
US11003769B2 (en) | 2021-05-11 |
CN108875416B (zh) | 2020-05-19 |
WO2019242562A1 (zh) | 2019-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Costello et al. | Efficient algorithms for supersingular isogeny Diffie-Hellman | |
CN108875416A (zh) | 椭圆曲线多倍点运算方法和装置 | |
US8498411B1 (en) | Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables | |
US9772821B2 (en) | Cryptography method comprising an operation of multiplication by a scalar or an exponentiation | |
WO2007012179A2 (en) | Karatsuba based multiplier and method | |
US9176707B2 (en) | Arithmetic apparatus, elliptic scalar multiplication method of arithmetic apparatus, elliptic scalar multiplication program, residue operation method of arithmetic apparatus, and residue operation program | |
CN103631660A (zh) | 在gpu中进行大整数计算时的存储资源分配方法及装置 | |
Koppermann et al. | 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices | |
KR100834096B1 (ko) | 고차 전력분석공격에 대응하는 블록 암호 알고리즘aria의 암호화 방법 | |
Jalali et al. | ARMv8 SIKE: Optimized supersingular isogeny key encapsulation on ARMv8 processors | |
Hu et al. | The analysis and investigation of multiplicative inverse searching methods in the ring of integers modulo m | |
US9722773B2 (en) | Method of determining a representation of a product of a first element and a second element of a finite set, method of evaluating a function applied to an element of a finite set and associated devices | |
Pu et al. | Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture | |
Keliris et al. | Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions | |
Telle et al. | Customising hardware designs for elliptic curve cryptography | |
WO2023050813A1 (zh) | 数据处理和密钥保护方法、装置、设备、存储介质和程序 | |
Lamriji et al. | Towards fast ECC signing algorithms for Blockchain | |
JP6885460B2 (ja) | 逆像サンプリング装置、逆像サンプリング方法および逆像サンプリングプログラム | |
Aidong et al. | Collision-based chosen-message simple power clustering attack algorithm | |
Liu et al. | Multiprecision multiplication on armv8 | |
Seo et al. | MoTE-ECC based encryption on MSP430 | |
Dąbrowski et al. | Generation and Implementation of Cryptographically Strong Elliptic Curves | |
Choi | Lightweight ECC coprocessor with resistance against power analysis attacks over NIST prime fields | |
Jalali et al. | Optimized supersingular isogeny key encapsulation on armv8 processors | |
Liu et al. | An Improved Ternary Montgomery Ladder Algorithm on Elliptic Curves over GF (3^ m). |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20181123 Assignee: CHINA GRIDCOM Corp.,Ltd. Assignor: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd. Contract record no.: X2021990000247 Denomination of invention: Method and device for computing multiple points of elliptic curve Granted publication date: 20200519 License type: Common License Record date: 20210429 |