CN103282950B - 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法 - Google Patents

运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法 Download PDF

Info

Publication number
CN103282950B
CN103282950B CN201080070826.5A CN201080070826A CN103282950B CN 103282950 B CN103282950 B CN 103282950B CN 201080070826 A CN201080070826 A CN 201080070826A CN 103282950 B CN103282950 B CN 103282950B
Authority
CN
China
Prior art keywords
variable
coordinate
value
scalar multiplication
bit
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.)
Expired - Fee Related
Application number
CN201080070826.5A
Other languages
English (en)
Other versions
CN103282950A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN103282950A publication Critical patent/CN103282950A/zh
Application granted granted Critical
Publication of CN103282950B publication Critical patent/CN103282950B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

不管随机数k的值如何都能够在恒定的计算时间内处理椭圆标量乘法kG,防止椭圆标量乘法kG的定时解析。初始设定部121对标量乘法变量R设定椭圆曲线上的特定点G。标量乘法部122针对表示随机数k的t比特的比特串从上位逐个比特进行参照,每当参照一个比特时,对作业变量R[0]设定对标量乘法变量R进行2倍乘法而得到的值,对作业变量R[1]设定对作业变量R[0]设定的值加上特定点G而得到的值。然后,在标量乘法部122中,如果所参照的比特的值是0,则对标量乘法变量R设定作业变量R[0],如果所参照的比特的值是1,则对标量乘法变量R设定作业变量R[1]。标量倍点输出部123从标量乘法变量R减去常数值2tG,将进行减法而得到的值作为标量倍点kG输出。

Description

运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法
技术领域
本发明涉及用于生成例如椭圆曲线密码的电子签名的运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法。
背景技术
存在为了对电子数据的制作者进行证明而使用电子签名的技术。
电子签名是使用电子数据、秘密密钥以及随机数通过特定的签名生成算法而制作的。电子签名与电子数据一起通信。
电子数据的接收者使用所接收到的电子数据、所接收到的电子签名、以及签名者的公开密钥通过特定的签名验证算法验证电子数据。即,电子数据的接收者判定是否使用与公开密钥对应的秘密密钥生成了所接收到的电子签名。然后,如果使用与公开密钥对应的秘密密钥生成了所接收到的电子签名,则证明由秘密密钥的持有者(签名者)制作了所接收到的电子数据。
因此,在他人得知了秘密密钥的情况下,存在伪造电子签名、冒充秘密密钥的持有者而对电子数据进行通信的危险。
另外,在他人得知了在电子签名的生成时使用的随机数的情况下,根据电子签名和随机数来确定秘密密钥。
因此,与得知了秘密密钥的情况同样地,伪造电子签名,冒充秘密密钥的持有者而对电子数据进行通信。
进而,存在通过对用于生成电子签名的运算处理的处理时间进行定时解析而能够求出在运算处理中使用的数值(例如,秘密密钥、随机数)的可能性(参照非专利文献1)。
例如,在EC-Schnorr、ECDSA等的椭圆曲线密码的签名生成算法(以及签名验证算法)中,进行以随机数k对椭圆曲线上的点G进行标量倍运算的椭圆标量乘法kG。椭圆曲线密码的签名生成算法(以及签名验证算法)被记载于非专利文献2。
以往的椭圆标量乘法kG如下所述。
[式1]
步骤1.R=G;
步骤2.设为i=t-1,直到i=0为止,反复步骤2-1至步骤2-4。
步骤2-1.R[0]=2R;
步骤2-2.R[1]=R[0]+G;
步骤2-3.R=R[k[i]];
步骤2-4.i--;
步骤3.Return(返回)R;
其中,t:k的比特数
k[i]:从下位起第i比特的k的比特值
R[k[i]]:如果k[i]为0,则为R[0],如果k[i]为1,则为R[1]。
将上述计算方法称为Add-Double-Always法。
在Add-Double-Always法中必须k[t]=1,所以随机数k的比特数t根据随机数k的值而变化。例如,在用32比特来表示了随机数k的情况下,最上位比特是1的随机数k的比特数t是“32”,但上位12比特是0的随机数k的比特数t变化为“20(=32-12)”。
即,由于随机数k的值而在计算时间中产生差,存在通过定时解析来确定随机数k的可能性。
以下,示出将Add-Double-Always法变形而得到的椭圆标量乘法kG。
[式2]
步骤1.R=0;
步骤2.设i=t,直至成为i=0为止,反复步骤2-1至步骤2-4。
步骤2-1.R[0]=2R;
步骤2-2.R[1]=R[0]=G;
步骤2-3.R=R[k[i]];
步骤2-4.i--;
步骤3.Return(返回)R;
在上述计算方法中即使并非k[t]=1也可以,所以随机数k的比特数t是固定值,而不根据随机数k的值发生变化。
其中,在步骤2-1中,在随机数k的最上位比特是1的情况下,无穷远点的变量R(R=0)的2倍乘法仅进行1次,在随机数k的上位的多个比特是0的情况下,无穷远点的变量R的2倍乘法反复多次。另外,在无穷远点的变量R的2倍乘法和非无穷远点的变量R的2倍乘法中,计算时间不同。
因此,由于随机数k的值而在计算时间中产生差,有可能通过定时解析确定随机数k。
另外,在椭圆曲线密码的签名生成算法(以及签名验证算法)中,需要进行多精度运算处理。
以下,示出在多精度运算处理中进行的剩余运算“a/2modp”。a表示多精度整数,p表示素数,mod表示剩余算子。
[式3]
步骤1.如果a是偶数,c=a>>1;
步骤2.否则c=a+p;c=c>>1;
步骤3.Return(返回)c;
其中,
x>>1:使x的比特串向右移位1比特。
在上述剩余运算中,在a是偶数的情况下,进行1次移位运算,在a是奇数的情况下,将移位运算和加法各进行1次。
即,由于a的值而在计算时间中产生差,有可能通过定时解析来确定a,根据a来确定随机数k。
以下,示出在多精度运算处理中进行的零判定运算。在零判定运算中,判定多精度整数b的值是否为零。多精度整数b被表示为连结多个字(word)(整数值)而得到的值。
[式4]
处理:从b的最上位字依次判定字是否为零。
条件1:如果字是非零,则判定为b是非零而结束。
条件2:如果所有字是零,则判定为b是零而结束。
在上述零判定运算中,非零的字的位置越是上位,计算时间越短。
即,由于b的值而在计算时间中产生差,有可能通过定时解析来确定随机数k。
非专利文献1:Jean-SebastienCoron:ResistanceagainstDifferentialPowerAnalysisforEllipticCurveCryptosystems.CHES1999:292-302
非专利文献2:ISO/IECJTC1/SC27
发明内容
本发明的目的在于通过不管在运算处理中使用的数值的差异如何都在恒定的计算时间内处理用于生成例如电子签名的运算处理,从而防止定时解析。
本发明的运算装置计算对椭圆曲线所包含的特定点的坐标值G通过用t比特的比特串来表示的乘数值k进行标量乘法而得到的坐标值kG。
所述运算装置具备:
常数存储部,预先存储对所述特定点的坐标值G通过2的t次幂进行标量倍运算而得到的坐标值2tG;
初始设定部,对标量乘法变量R设定所述特定点的坐标值G;
标量乘法部,针对表示所述乘数值k的t比特的比特串从上位逐次参照各规定数的比特,每当针对所述比特串逐次参照各规定数的比特时,对第0作业变量R[0]设定对所述标量乘法变量R进行2倍乘法而得到的坐标值,对第1作业变量R[1]设定对所述第0作业变量R[0]设定的坐标值加上对所述特定点的坐标值G进行规定倍运算的坐标值而得到的坐标值,如果所参照的规定数的比特的值是零,则对所述标量乘法变量R设定所述第0作业变量R[0],如果所参照的规定数的比特的值是非零,则对所述标量乘法变量R设定所述第1作业变量R[1];
标量倍点输出部,从由所述标量乘法部设定的标量乘法变量R减去所述常数存储部所存储的坐标值2tG,将进行减法而得到的坐标值作为所述坐标值kG而输出;以及
多精度剩余运算部,该多精度剩余运算部计算把将多精度整数a除以2的值除以素数p而得到的余数作为剩余值r,该多精度剩余运算部如果所述多精度整数a是偶数,则对临时变量temp设定0,如果所述多精度整数a是奇数,则对所述临时变量temp设定所述素数p,对剩余运算变量c设定对所述多精度整数a加上所述临时变量temp而得到的值,将使所设定的剩余运算变量c向右移位1比特而得到的值作为所述剩余值r而输出,
所述初始设定部对所述标量乘法变量R设定表示所述特定点的坐标值G的多精度整数,
所述标量乘法部使用所述多精度剩余运算部,计算对所述标量乘法变量R进行2倍乘法而得到的坐标值、和对所述第0作业变量R[0]加上所述特定点的坐标值G而得到的坐标值,
所述标量倍点输出部使用所述多精度剩余运算部,计算从所述标量乘法变量R减去所述坐标值2tG而得到的坐标值。。
根据本发明,不管随机数k(乘数值)的值如何都能够在恒定的计算时间内处理椭圆标量乘法kG,防止椭圆标量乘法kG的定时解析。
附图说明
图1是实施方式1中的椭圆曲线密码装置100的结构图。
图2是示出实施方式1中的电子签名生成方法(EC-Schnorr方式)的流程图。
图3是示出实施方式1中的电子签名生成方法(ECDSA方式)的流程图。
图4是示出实施方式1中的椭圆标量乘法方法的流程图。
图5是示出实施方式1中的椭圆标量乘法方法的其他例子的流程图。
图6是示出实施方式1中的椭圆曲线密码装置100的硬件资源的一个例子的图。
图7是实施方式2中的椭圆曲线密码装置100的结构图。
图8是示出实施方式2中的多精度剩余运算方法的流程图。
图9是实施方式3中的椭圆曲线密码装置100的结构图。
图10是示出实施方式3中的多精度零判定方法的流程图。
(符号说明)
100:椭圆曲线密码装置;110:电子签名生成部;111:随机数生成部;112:签名生成处理部;120:椭圆标量乘法部;121:初始设定部;122:标量乘法部;123:标量倍点输出部;130:多精度剩余运算部;131:多精度整数判定部;132:剩余运算变量设定部;133:移位运算部;140:多精度零判定部;141:“或”运算部;142:零判定部;190:装置存储部;901:CPU;902:总线;903:ROM;904:RAM。
具体实施方式
实施方式1.
说明使用椭圆曲线密码方式来生成电子签名的椭圆曲线密码装置。
其中,电子签名的生成是使用了椭圆曲线密码方式的密码处理的一个例子。
图1是实施方式1中的椭圆曲线密码装置100的结构图。
根据图1,说明实施方式1中的椭圆曲线密码装置100的结构。
椭圆曲线密码装置100(运算装置)具备电子签名生成部110、椭圆标量乘法部120、以及装置存储部190。
电子签名生成部110执行EC-Schnorr、ECDSA等的利用了椭圆曲线密码的签名生成算法(参照专利文献2),生成电子签名。
电子签名生成部110具备随机数生成部111和签名生成处理部112。
随机数生成部111通过规定的随机数生成处理生成(计算)随机数k。
随机数k是用t比特的比特串来表示的值。
签名生成处理部112使用由椭圆标量乘法部120计算的坐标值kG来生成电子签名。
椭圆标量乘法部120计算针对特定的椭圆曲线所包含的特定点的坐标值G用由随机数生成部111生成的随机数k(乘数值)进行标量乘法而得到的坐标值kG。
椭圆标量乘法部120具备初始设定部121、标量乘法部122以及标量倍点输出部123。
初始设定部121对规定的标量乘法变量R设定特定点的坐标值G。
标量乘法部122针对表示随机数k的t比特的比特串从上位逐次参照各规定数的比特(1比特或者多个比特)。
在标量乘法部122中,每当针对比特串逐次参照各规定数的比特时,对规定的第0作业变量R[0]设定对标量乘法变量R进行2倍乘法而得到的坐标值。
标量乘法部122对规定的第1作业变量R[1]设定如下坐标值,该坐标值是对在第0作业变量R[0]设定的值加上对特定点的坐标值G进行规定数倍(1倍或者多倍)而得到的坐标值而得到的值。
在标量乘法部122中,如果所参照的规定数的比特的值是零,则对标量乘法变量R设定第0作业变量R[0],如果所参照的规定数的比特的值是非零,则对标量乘法变量R设定第1作业变量R[1]。
标量倍点输出部123从由标量乘法部122设定的标量乘法变量R减去坐标值2tG,将进行减法而得到的坐标值作为坐标值kG进行输出。
坐标值2tG是对特定点的坐标值G以2的t次幂进行标量倍运算而得到的值。
装置存储部190存储在椭圆曲线密码装置100中使用的各种数据。
特定点的坐标值G、特定点的坐标值G的位数n、秘密密钥d、坐标值2tG、消息M、随机数k、电子签名是装置存储部190中存储的数据的一个例子。
特定点的坐标值G、特定点的坐标值G的位数n以及秘密密钥d被预先存储于装置存储部190。特定点的坐标值G还被称为“椭圆曲线正弦值”。
关于坐标值2tG,根据特定点的坐标值G预先计算并存储到装置存储部190。
消息M被输入到椭圆曲线密码装置100而存储到装置存储部190,随机数k是由随机数生成部111计算而存储到装置存储部190,电子签名是由签名生成处理部112生成而存储到装置存储部190。
以下,将特定点的坐标值G记载为“特定点G”,将坐标值2tG记载为“常数值2tG”,将坐标值kG记载为“标量倍点kG”。
图2是示出实施方式1中的电子签名生成方法(EC-Schnorr方式)的流程图。
根据图2,说明利用EC-Schnorr方式的电子签名生成方法。
电子签名生成部110从装置存储部190输入特定点G、特定点G的位数n、秘密密钥d以及消息M,使用特定点G、特定点G的位数n以及秘密密钥d,如以下那样生成(计算)与消息M对应的电子签名(e,s)。
在S111A中,随机数生成部111执行规定的随机数生成处理,生成(计算)随机数k。其中,随机数k是小于特定点G的位数n的自然数。
在S111A之后,进入S112A。
在S112A中,签名生成处理部112将在S111A中生成的随机数k和从装置存储部190输入的特定点G输入到椭圆标量乘法部120。
然后,签名生成处理部112将由椭圆标量乘法部120计算出的标量倍点kG设定为规定的变量P。以下,将变量P称为“标量倍点P”。
将由椭圆标量乘法部120执行的标量倍点kG的计算方法作为“椭圆标量乘法方法”而另外说明。
在S112A之后,进入S113A。
在S113A中,签名生成处理部112将结合了消息M和标量倍点P的x坐标值Px而得到的消息M’(=M||Px)作为输入值而计算规定的散列函数h,计算散列值e。
在实施方式中,“A||B”意味着A和B的连结,“h(C)”意味着用于计算输入值C的散列值的散列函数。
在S113A之后,进入S114A。
在S114A中,签名生成处理部112计算(d×e+k)除以特定点G的位数n而得到的余数。以下,将在S114中计算出的余数记载为“剩余值s”。
在实施方式中,“AmodB”意味着求出A除以B而得到的余数的运算。
签名生成处理部112将在S113A中计算出的散列值e和在S114A中计算出的剩余值s的组合(e,s)作为消息M的电子签名而输出。
通过S114A,利用EC-Schnorr方式的电子签名生成处理结束。
图3是示出实施方式1中的电子签名生成方法(ECDSA方式)的流程图。
电子签名生成部110也可以通过图3所示那样的ECDSA方式生成电子签名。
电子签名生成部110从装置存储部190输入特定点G、特定点G的位数n、秘密密钥d以及消息M,使用特定点G、特定点G的位数n以及秘密密钥d,如以下那样生成(计算)与消息M对应的电子签名(Px,s)。
在S111B中,随机数生成部111执行规定的随机数生成处理,生成(计算)随机数k。
在S111B之后,进入S112B。
在S112B中,签名生成处理部112将在S111B中生成的随机数k和从装置存储部190输入的特定点G输入到椭圆标量乘法部120。
然后,签名生成处理部112将由椭圆标量乘法部120计算出的标量倍点kG设定为规定的变量P(标量倍点P)。
将由椭圆标量乘法部120执行的标量倍点kG的计算方法作为“椭圆标量乘法方法”而另外说明。
在S112B之后,进入S113B。
在S113B中,签名生成处理部112计算剩余值s,将标量倍点P的x坐标值Px和剩余值s的组合(Px,s)作为消息M的电子签名而输出。
剩余值s的计算式能够通过“s=k-1×(h(M)+Px×d)modn”来表示。
通过S113B,利用ECDSA方式的电子签名生成处理结束。
EC-Schnorr方式(图2)以及ECDSA方式(图3)的详细内容记载于非专利文献2。
图4是示出实施方式1中的椭圆标量乘法方法的流程图。
根据图4,说明实施方式1中的椭圆标量乘法方法。
椭圆标量乘法部120从电子签名生成部110输入随机数k和特定点G,从装置存储部190输入常数值2tG,如以下那样计算标量倍点kG。
在S121A中,初始设定部121对规定的变量R设定特定点G。以下,将变量R称为“标量乘法变量R”。
在S121A之后,进入S122A。
在S122A中,标量乘法部122对规定的变量i设定表示随机数k的比特串的比特数t。以下,将变量i称为“循环变量i”。
例如,在表示随机数k的值的变量(比特串)是32比特的变量的情况下,标量乘法部122对循环变量i设定“32”。
以下,将从表示随机数k的比特串的下位起第i比特的值(比特值)记载为“k[i]”。
即,随机数k的最上位比特的比特值是“k[t]”,随机数k的最下位比特的比特值是“k[1]”。最上位比特是最左的比特且表示2的t次幂的比特。最下位比特是最右的比特且表示2的0次幂的比特。
随机数k的最上位比特的比特值k[t]可以是“0”和“1”中的任意一个。
在S122A之后,进入S123A。
在S123A中,标量乘法部122对标量乘法变量R进行2倍运算,对规定的变量R[0]设定所得到的值“2R”。以下,将变量R[0]称为“第0作业变量R[0]”。
在S123A之后,进入S124A。
在S124A中,标量乘法部122对在第0作业变量R[0]设定的值加上特定点G,将所得到的值设定给规定的变量R[1]。以下,将变量R[1]称为“第1作业变量R[1]”。
在S124A之后,进入S125A。
在S125A中,标量乘法部122根据循环变量i参照从随机数k的下位起第i比特的比特值k[i]。
例如,如果“i=t”,则标量乘法部122参照随机数k的最上位比特k[t],如果“i=1”,则标量乘法部122参照随机数k的最下位比特k[1]。
在比特值k[i]是“0”的情况下,标量乘法部122对标量乘法变量R设定第0作业变量R[0]。
在比特值k[i]是“1”的情况下,标量乘法部122对标量乘法变量R设定第1作业变量R[1]。
在S125A之后,进入S126A。
在S126A中,标量乘法部122从循环变量i减去“1”。
在S126A之后,进入S127A。
在S127A中,标量乘法部122判定循环变量i是否为“0”。
在循环变量i是“0”的情况下,进入S128A。
在循环变量i非“0”的情况下,返回到S123A。
但是,关于S127A的判定,也可以并非S126A之后进行而在S123A之前进行,在S126A之后返回到S127A。在该情况下,在S127A中如果循环变量i是“0”则进入S128A,如果循环变量i非“0”则进入S123A。
在S128A中,标量倍点输出部123从标量乘法变量R减去常数值2tG,将所得到的标量乘法变量R的值作为标量倍点kG输出到电子签名生成部110。
通过S128A,椭圆标量乘法处理结束。
在上述椭圆标量乘法处理(图4)中,对标量乘法变量R作为初始值设定特定点G而非无穷远点“0”(S121A),最后从标量乘法变量R减去与初始值对应的常数值2tG(S128A)。
由此,能够不管随机数k的值如何都在恒定的计算时间内计算标量倍点kG。例如,不论是在随机数k的最上位比特是“1”的情况下还是在从随机数k的最上位比特起连续多个比特是“0”的情况下,标量倍点kG的计算所需的计算时间都不变。
即,关于椭圆标量乘法处理,由于不管随机数k的值如何都在恒定的计算时间内进行,所以椭圆标量乘法处理不会被定时解析。所谓定时解析是指,通过分析处理时间的时间差来确定所处理的数据的技术。关于定时解析,记载于非专利文献1。
因此,关于在椭圆标量乘法处理中使用的随机数k,不会通过定时解析来确定,也不会根据随机数k而得知电子签名。
图5是示出实施方式1中的椭圆标量乘法方法的其他例子的流程图。
椭圆标量乘法部120也可以通过图5所示的方法计算标量倍点kG。
椭圆标量乘法部120从电子签名生成部110输入随机数k和特定点G,从装置存储部190输入常数值2tG,如以下那样计算标量倍点kG。
在S121B中,初始设定部121对标量乘法变量R设定特定点G。
在S121B之后,进入S122B。
在S122B中,标量乘法部122对循环变量i设定表示随机数k的比特串的比特数t。
在S122B之后,进入S123B。
在S123B中,标量乘法部122对标量乘法变量R进行2倍运算。
在S123B之后,进入S124B。
在S124B中,标量乘法部122根据循环变量i参照从随机数k的下位起第i比特的比特值k[i],判定所参照的比特值k[i]是“0”和“1”中的哪一个值。
在比特值k[i]是“0”的情况下,进入S125B。
在比特值k[i]是“1”的情况下,进入S126B。
在S125B中,标量乘法部122对标量乘法变量R加上特定点G。
在S125B之后,进入S126B。
在S126B中,标量乘法部122从循环变量i减去“1”。
在S126B之后,进入S127B。
在S127B中,标量乘法部122判定循环变量i是否为“0”。
在循环变量i是“0”的情况下,进入S128B。
在循环变量i非“0”的情况下,返回到S123B。
但是,关于S127B的判定,也可以不是在S126B之后进行而是在S123B之前进行,在S126B之后返回到S127B。在该情况下,在S127B中,如果循环变量i是“0”,则进入S128B,如果循环变量i非“0”,则进入S123B。
在S128B中,标量倍点输出部123从标量乘法变量R减去常数值2tG,将所得到的标量乘法变量R的值作为标量倍点kG输出到电子签名生成部110。
通过S128B,椭圆标量乘法处理结束。
在上述椭圆标量乘法处理(图5)中,在S123B中进行了标量乘法变量R的2倍乘法(2R),但在无穷远点“0”的2倍乘法和无穷远点“0”以外的值的2倍乘法中,在计算时间中产生差。
但是,在S121B中,对标量乘法变量R初始设定了特定点G而并非无穷远点“0”,所以即使在从随机数k的最上位比特起连续多个比特是“0”的情况下,在S123B中也不会对无穷远点“0”进行2倍乘法。即,不会由于随机数k的值而在S123B的计算时间中产生差。
因此,与不会由于随机数k的值而在S123B的计算时间中产生差相应地,能够使椭圆标量乘法处理的定时解析变得困难。
图6是示出实施方式1中的椭圆曲线密码装置100的硬件资源的一个例子的图。
在图6中,椭圆曲线密码装置100具备CPU901(CentralProcessingUnit,中央处理单元)。CPU901经由总线902而与ROM903和RAM904连接,控制这些硬件设备。
在ROM903或者RAM904中,存储了OS(操作系统)、程序群、文件群。
在程序群中,包括执行在实施方式中说明为“~部”的功能的程序。程序由CPU901读出并执行。即,程序使计算机作为“~部”发挥功能,并且使计算机执行“~部”的步骤、方法。
在文件群中,包括在实施方式中说明的“~部”中使用的各种数据(输入、输出、判定结果、计算结果、处理结果等)。
在实施方式中,结构图以及流程图中包含的箭头主要表示数据、信号的输入输出。
在实施方式中说明为“~部”的部分既可以是“~电路”、“~装置”、“~设备”,并且也可以是“~步骤”、“~阶段”、“~处理”。即,说明为“~部”的部分也可以通过固件、软件、硬件或者它们的组合中的某个来实现。
例如,椭圆曲线密码装置100构成为IC芯片,被搭载于具有电子结算功能的便携终端或者IC卡。在IC芯片中预先存储个人信息。
在便携终端或者IC卡使用电子结算功能时,椭圆曲线密码装置100生成个人信息的电子签名。然后,便携终端或者IC卡的无线通信功能将个人信息和电子签名发送到规定的电子结算装置。电子结算装置验证电子签名,根据个人信息进行电子结算。
另外,在由个人计算机、服务器装置等计算机构成椭圆曲线密码装置100的情况下,椭圆曲线密码装置100除了ROM903、RAM904以外,还具备通信板、显示器装置、键盘、鼠标、驱动器装置、磁盘装置等硬件。CPU901还控制这些硬件。
在实施方式1中,椭圆曲线密码装置100也可以不是生成电子签名的密码装置,椭圆标量乘法处理(图4、5)也可以通过生成电子签名的处理以外的运算处理来执行。
即,实施方式1中的椭圆标量乘法处理(图4、5)也可以用于使用椭圆标量倍点kG(k也可以不是随机数)的任意的运算处理。
图4或者图5所示的椭圆标量乘法处理是被称为二进制法的幂乘剩余运算法,但作为椭圆标量乘法处理也可以使用其他幂乘剩余运算法(例如,Comb法)。在使用Comb法的情况下,通过在图4、图5中关于k[i]并非参照1比特而是同时参照多个比特,能够使循环次数小于t。
即使在使用其他幂乘剩余运算法的情况下,只要对标量乘法变量R作为初始值设定特定点G(参照图4的S121A),最后从标量乘法变量R减去常数值2tG即可。由此,不管随机数k的值如何都能够在恒定的计算时间内计算标量倍点kG。
实施方式2.
说明在恒定的计算时间内进行多精度整数的剩余运算的方式。
多精度整数的剩余运算是指,将多精度整数除以特定值来计算余数的处理。
以下,主要说明与实施方式1不同的事项。关于省略说明的事项,与实施方式1相同。
图7是实施方式2中的椭圆曲线密码装置100的结构图。
根据图7,说明实施方式2中的椭圆曲线密码装置100的结构。
椭圆曲线密码装置100除了在实施方式1中说明的结构以外,还具备多精度剩余运算部130。
多精度剩余运算部130将特定的多精度整数a除以2,将由此得到的值除以特定的素数p,将由此得到的余数计算为剩余值r。
多精度剩余运算部130具备多精度整数判定部131、剩余运算变量设定部132、以及移位运算部133。
在多精度整数判定部131中,如果多精度整数a是偶数,则对规定的临时变量temp设定0,如果多精度整数a是奇数,则对临时变量temp设定素数p。
剩余运算变量设定部132对多精度整数a加上临时变量temp,对规定的剩余运算变量c设定进行加法而得到的值。
移位运算部133使剩余运算变量c向右移位1比特,将移位而得到的值作为剩余值r输出。
椭圆标量乘法部120的初始设定部121对标量乘法变量R设定表示特定点的坐标值G的多精度整数(图4的S121A)。
标量乘法部122使用多精度剩余运算部130,计算对标量乘法变量R进行2倍乘法而得到的坐标值“2R”(图4的S123A)。
标量乘法部122使用多精度剩余运算部130,计算对第0作业变量R[0]加上特定点的坐标值G而得到的坐标值“R[0]+G”(图4的S124A)。
标量倍点输出部123使用多精度剩余运算部130,计算从标量乘法变量R减去坐标值2tG而得到的坐标值“R-2tG”(图4的S128A)。
以下,将特定点的坐标值G记载为“特定点G”,将坐标值2tG记载为“常数值2tG”。
图8是示出实施方式2中的多精度剩余运算方法的流程图。
参照图8,说明实施方式2中的多精度剩余运算方法。
在电子签名的生成、验证等密码处理或者其他密码处理中,为了使密码的解读变得困难,使用多精度整数,进行使用了多精度整数的运算处理。
多精度整数是指,比能够通过与寄存器的数据尺寸相当的规定的比特数来表示的最大的整数值大的整数值。例如,在32比特机器中比能够用32比特表示的最大的整数值(2的32次幂-1)大的整数值是多精度整数。
以下,将使用了多精度整数的运算处理称为“多精度运算处理”。
通常,在多精度运算处理中,进行多精度剩余运算。
多精度剩余运算是指,将多精度整数(后述a)除以特定值(后述p)而求出余数(后述r)的处理。
在实施方式1中说明的椭圆曲线上的特定点G的坐标值是多精度整数的一个例子。
例如,椭圆标量乘法部120在S123A、S124A以及S128A(参照图4)中调出多精度剩余运算部130,多精度剩余运算部130执行图8所示的多精度剩余运算。
以下,将计算对象的多精度整数设为“a”,将“a/2”除以的值设为“p”,将把“a/2”除以“p”而得到的余数设为“剩余值r”。“a/2”是将多精度整数a除以2而得到的值。“p”是素数。剩余值r是0以上且小于p的整数值。
在S131中,多精度整数判定部131判定多精度整数a是偶数和奇数中的哪一个值。
在多精度整数a是偶数的情况下,进入S132。
在多精度整数a是奇数的情况下,进入S133。
在S132中,多精度整数判定部131对规定的变量temp设定“0”。以下,将变量temp称为“临时变量temp”。
在S132之后,进入S134。
在S133中,多精度整数判定部131对临时变量temp设定素数p。
在S133之后,进入S134。
在S134中,剩余运算变量设定部132对多精度整数a加上临时变量temp的值,将所得到的值设定给规定的变量c。以下,将变量c称为“剩余运算变量c”。
在S134之后,进入S135。
在S135中,移位运算部133使表示剩余运算变量c的比特串向右移位1比特,将所得到的值作为剩余值r输出。
剩余值r是将“a/2”除以“p”而得到的余数,能够通过“r=a/2modp”这样的公式来表示。
通过S135,多精度剩余运算处理结束。
在上述多精度剩余运算处理(图8)中,不论多精度整数a是偶数和奇数中的哪一个的值,处理步骤数都不发生变化。
因此,在多精度剩余运算处理中,在多精度整数a是偶数的情况和多精度整数a是奇数的情况下,不产生计算时间的时间差。即,不管多精度整数a的值如何都在恒定的计算时间内进行多精度剩余运算处理,所以多精度剩余运算处理不会被定时解析。
因此,关于多精度整数a,不会通过定时解析来确定,也不会根据多精度整数a得知随机数k、电子签名等秘密信息。
在实施方式2中,椭圆曲线密码装置100也可以不是生成电子签名的密码装置,多精度剩余运算处理(图8)也可以作为生成电子签名的处理以外的处理所包含的多精度运算处理来执行。
即,实施方式2中的多精度剩余运算处理(图8)也可以用于验证电子签名的处理、与电子签名无关的密码处理、椭圆曲线密码以外的密码处理或者密码处理以外的运算处理等使用多精度整数的任意的运算处理。
实施方式3.
说明在恒定的计算时间内进行多精度整数的零判定的方式。
多精度整数的零判定是指,判定多精度整数的值是零和非零中的哪一个值的处理。
以下,主要说明与实施方式1、2不同的事项。关于省略说明的事项,与实施方式1、2相同。
图9是实施方式3中的椭圆曲线密码装置100的结构图。
根据图9,说明实施方式3中的椭圆曲线密码装置100的结构。
椭圆曲线密码装置100除了在实施方式2中说明的结构以外,还具备多精度零判定部140。
多精度零判定部140判定连结多个整数值来表示的特定的多精度整数b是否为零。
多精度零判定部140具备“或”运算部141和零判定部142。
“或”运算部141计算表示多精度整数b的多个整数值(字)的“或”。
零判定部142根据由“或”运算部141计算出的“或”而判定多精度整数b是否为零。
椭圆标量乘法部120的初始设定部121对标量乘法变量R设定表示特定点的坐标值G的多精度整数(图4的S121A)。
标量乘法部122使用多精度零判定部140来计算对标量乘法变量R进行2倍乘法而得到的坐标值“2R”(图4的S123A)。
标量乘法部122使用多精度零判定部140而计算对第0作业变量R[0]加上特定点的坐标值G而得到的坐标值“R[0]+G”(图4的S124A)。
标量倍点输出部123使用多精度零判定部140来计算从标量乘法变量R减去坐标值2tG而得到的坐标值“R-2tG”(图4的S128A)。
以下,将特定点的坐标值G记载为“特定点G”,将坐标值2tG记载为“常数值2tG”。
图10是示出实施方式3中的多精度零判定方法的流程图。
根据图10,说明实施方式3中的多精度零判定方法。
通常,在多精度运算处理中,进行多精度零判定处理。
多精度零判定处理是指,判定多精度整数b的值是零和非零中的哪一个值的处理。
在实施方式1中说明的椭圆曲线上的特定点G的坐标值是多精度整数的一个例子。
例如,椭圆标量乘法部120在S123A、S124A以及S128A(参照图4)中调出多精度零判定部140,多精度零判定部140执行图10所示的多精度零判定处理。
在S141中,“或”运算部141按照每规定的位数(或者比特数)来分割多精度整数b。例如,“或”运算部141将100位的多精度整数b分割为每10位为1个整数值的10个整数值。另外,例如,“或”运算部141将96比特的多精度整数b分割为每32比特为1个比特串的3个比特串。
以下,将用分割多精度整数b而得到的多个整数值或者分割多精度整数b而得到的多个比特串表示的多个整数值称为“字”。
另外,将多精度整数b的字数(分割数)设为“w”,将从下位起第i个字设为b[i]。即,将最上位的字(开头字)设为b[w],将最下位的字(最终字)设为b[1]。
在S141之后,进入S142。
在S142中,“或”运算部141计算在S141中得到的多精度整数b的多个字的“或”,对规定的变量OR设定所计算出的“或”。以下,将变量OR称为““或”OR”。在实施方式中,“A|B”意味着A与B的“或”。
因此,在构成多精度整数b的多个字所有值是“0”的情况下,“或”OR的值为“0”,在构成多精度整数b的多个字的至少某一个的值非“0”的情况下,“或”OR的值成为“1”。
在S142之后,进入S143。
在S143中,零判定部142判定在S142中设定的“或”OR的值是“0”和“1”中的哪一个值。
然后,在“或”OR的值是“0”的情况下,零判定部142判定为多精度整数b的值是零,输出判定结果。
另外,在“或”OR的值非“0”的情况下,零判定部142判定为多精度整数b的值是零以外的值(非零),输出判定结果。
通过S143,多精度零判定处理结束。
在上述多精度零判定处理(图10)中,不论多精度整数b是什么样的值,处理步骤数都不变。
因此,在多精度零判定处理中,不会由于多精度整数b的值而产生计算时间的时间差。即,不管多精度整数b的值如何都在恒定的计算时间内进行多精度零判定处理,多精度零判定处理不会被定时解析。
因此,关于多精度整数b,不会通过定时解析来确定,也不会根据多精度整数b得知随机数k、电子签名等秘密信息。
在实施方式3中,椭圆曲线密码装置100也可以不是生成电子签名的密码装置,多精度零判定处理(图10)也可以作为生成电子签名的处理以外的处理所包含的多精度运算处理而执行。
即,实施方式3中的多精度零判定处理(图10)也可以使用于验证电子签名的处理、与电子签名无关的密码处理、椭圆曲线密码以外的密码处理或者密码处理以外的运算处理等使用多精度整数的任意的运算处理。

Claims (6)

1.一种运算装置,计算对椭圆曲线所包含的特定点的坐标值G通过用t比特的比特串来表示的乘数值k进行标量乘法而得到的坐标值kG,其特征在于,具备:
常数存储部,预先存储对所述特定点的坐标值G通过2的t次幂进行标量倍运算而得到的坐标值2tG;
初始设定部,对标量乘法变量R设定所述特定点的坐标值G;
标量乘法部,针对表示所述乘数值k的t比特的比特串从上位逐次参照各规定数的比特,每当针对所述比特串逐次参照各规定数的比特时,对第0作业变量R[0]设定对所述标量乘法变量R进行2倍乘法而得到的坐标值,对第1作业变量R[1]设定对所述第0作业变量R[0]设定的坐标值加上对所述特定点的坐标值G进行规定数倍运算的坐标值而得到的坐标值,如果所参照的规定数的比特的值是零,则对所述标量乘法变量R设定所述第0作业变量R[0],如果所参照的规定数的比特的值是非零,则对所述标量乘法变量R设定所述第1作业变量R[1];
标量倍点输出部,从由所述标量乘法部设定的标量乘法变量R减去所述常数存储部所存储的坐标值2tG,将进行减法而得到的坐标值作为所述坐标值kG而输出;以及
多精度剩余运算部,该多精度剩余运算部计算把将多精度整数a除以2的值除以素数p而得到的余数作为剩余值r,该多精度剩余运算部如果所述多精度整数a是偶数,则对临时变量temp设定0,如果所述多精度整数a是奇数,则对所述临时变量temp设定所述素数p,对剩余运算变量c设定对所述多精度整数a加上所述临时变量temp而得到的值,将使所设定的剩余运算变量c向右移位1比特而得到的值作为所述剩余值r而输出,
所述初始设定部对所述标量乘法变量R设定表示所述特定点的坐标值G的多精度整数,
所述标量乘法部使用所述多精度剩余运算部,计算对所述标量乘法变量R进行2倍乘法而得到的坐标值、和对所述第0作业变量R[0]加上所述特定点的坐标值G而得到的坐标值,
所述标量倍点输出部使用所述多精度剩余运算部,计算从所述标量乘法变量R减去所述坐标值2tG而得到的坐标值。
2.根据权利要求1所述的运算装置,其特征在于,
所述运算装置还具备:多精度零判定部,该多精度零判定部判定连结多个整数值而表示的多精度整数b是否为零,该多精度零判定部计算表示所述多精度整数b的多个整数值的“或”,根据所计算出的“或”判定所述多精度整数b是否为零,
所述标量乘法部使用所述多精度剩余运算部和所述多精度零判定部,计算对所述标量乘法变量R进行2倍乘法而得到的坐标值、和对所述第0作业变量R[0]加上所述特定点的坐标值G而得到的坐标值,
所述标量倍点输出部使用所述多精度剩余运算部和所述多精度零判定部,计算从所述标量乘法变量R减去所述坐标值2tG而得到的坐标值。
3.根据权利要求1或2所述的运算装置,其特征在于,
所述运算装置还具备:电子签名生成部,该电子签名生成部生成用作所述乘数值k的随机数值,使用从所述标量倍点输出部输出的坐标值kG来生成电子签名。
4.一种运算装置的椭圆标量乘法方法,是计算对椭圆曲线所包含的特定点的坐标值G通过用t比特的比特串来表示的乘数值k进行标量乘法而得到的坐标值kG的运算装置的椭圆标量乘法方法,其特征在于,
所述运算装置是具备初始设定部、标量乘法部、标量倍点输出部以及多精度剩余运算部的装置,
所述多精度剩余运算部是如下运算部,即、计算把将多精度整数a除以2的值除以素数p而得到的余数作为剩余值r,如果所述多精度整数a是偶数,则对临时变量temp设定0,如果所述多精度整数a是奇数,则对所述临时变量temp设定所述素数p,对剩余运算变量c设定对所述多精度整数a加上所述临时变量temp而得到的值,将使所设定的剩余运算变量c向右移位1比特而得到的值作为所述剩余值r而输出,
所述初始设定部对标量乘法变量R设定表示所述特定点的坐标值G的多精度整数,
所述标量乘法部针对表示所述乘数值k的t比特的比特串从上位逐次参照各规定数的比特,每当针对所述比特串逐次参照各规定数的比特时,使用所述多精度剩余运算部计算对所述标量乘法变量R进行2倍乘法而得到的第一坐标值,将计算出的第一坐标值设定给第0作业变量R[0],使用所述多精度剩余运算部计算对所述第0作业变量R[0]设定的第一坐标值加上对所述特定点的坐标值G进行规定数倍运算的坐标值而得到的第二坐标值,将计算出的第二坐标值设定给第1作业变量R[1],如果所参照的规定数的比特的值是零,则对所述标量乘法变量R设定所述第0作业变量R[0],如果所参照的规定数的比特的值是非零,则对所述标量乘法变量R设定所述第1作业变量R[1],
所述标量倍点输出部使用所述多精度剩余运算部计算第三坐标值,将计算出的第三坐标值作为所述坐标值kG而输出,所述第三坐标值是从由所述标量乘法部设定的标量乘法变量R减去对所述特定点的坐标值G通过2的t次幂进行标量倍运算而得到的常数值2tG而得到的坐标值。
5.一种运算装置,计算把将多精度整数a除以2的值除以素数p而得到的余数作为剩余值r,其特征在于,具备:
多精度整数判定部,如果所述多精度整数a是偶数,则对临时变量temp设定0,如果所述多精度整数a是奇数,则对所述临时变量temp设定所述素数p;
剩余运算变量设定部,对所述多精度整数a加上所述临时变量temp,将进行加法而得到的值设定给剩余运算变量c;以及
移位运算部,使所述剩余运算变量c向右移位1比特,将进行移位而得到的值作为所述剩余值r输出。
6.一种运算装置的剩余运算方法,是计算把将多精度整数a除以2的值除以素数p而得到的余数作为剩余值r的运算装置的剩余运算方法,其特征在于,
多精度整数判定部如果所述多精度整数a是偶数,则对临时变量temp设定0,如果所述多精度整数a是奇数,则对所述临时变量temp设定所述素数p,
剩余运算变量设定部对所述多精度整数a加上所述临时变量temp,将进行加法而得到的值设定给剩余运算变量c,
移位运算部使所述剩余运算变量c向右移位1比特,将进行移位而得到的值作为所述剩余值r输出。
CN201080070826.5A 2010-12-27 2010-12-27 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法 Expired - Fee Related CN103282950B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/073620 WO2012090284A1 (ja) 2010-12-27 2010-12-27 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム

Publications (2)

Publication Number Publication Date
CN103282950A CN103282950A (zh) 2013-09-04
CN103282950B true CN103282950B (zh) 2015-11-25

Family

ID=46382434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080070826.5A Expired - Fee Related CN103282950B (zh) 2010-12-27 2010-12-27 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法

Country Status (6)

Country Link
US (1) US9176707B2 (zh)
EP (1) EP2660796B1 (zh)
JP (1) JP5449576B2 (zh)
KR (1) KR101439804B1 (zh)
CN (1) CN103282950B (zh)
WO (1) WO2012090284A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497171B2 (en) * 2011-12-15 2016-11-15 Intel Corporation Method, device, and system for securely sharing media content from a source device
US9391773B2 (en) * 2014-04-04 2016-07-12 Qualcomm Incorporated Elliptic curve point multiplication procedure resistant to side-channel information leakage
US9800411B1 (en) * 2016-05-05 2017-10-24 ISARA Corporation Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme
CN106301770A (zh) * 2016-08-22 2017-01-04 大唐微电子技术有限公司 一种Java卡SM2数字签名验证或信息加密的方法及装置
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
WO2020075797A1 (ja) * 2018-10-10 2020-04-16 日本電信電話株式会社 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
JP6690686B2 (ja) * 2018-11-07 2020-04-28 日本電気株式会社 口座開設システム、口座開設方法、及びプログラム
CN111756538B (zh) * 2020-06-28 2023-10-13 哈尔滨理工大学 一种基于素数预处理的ecc标量乘法器的实现方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738478B1 (en) * 1998-10-28 2004-05-18 Certicom Corp. Power signature attack resistant cryptography
CN101031944A (zh) * 2004-09-30 2007-09-05 索尼株式会社 加密计算方法、加密系统和计算机程序

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3210356B2 (ja) * 1991-03-12 2001-09-17 富士通株式会社 データのゼロ判定装置
AU2557399A (en) * 1998-01-02 1999-07-26 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
JP2000353077A (ja) 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd 多倍長演算装置
US6963644B1 (en) 1999-04-07 2005-11-08 Matsushita Electric Industrial Co., Ltd. Multi-word arithmetic device for faster computation of cryptosystem calculations
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP2004198566A (ja) * 2002-12-17 2004-07-15 Oki Electric Ind Co Ltd 演算処理装置
EP1648111B1 (en) * 2003-07-22 2014-01-15 Fujitsu Limited Tamper-resistant encryption using a private key
US7607019B2 (en) * 2005-02-03 2009-10-20 Apple Inc. Small memory footprint fast elliptic encryption
JP4668931B2 (ja) * 2005-01-24 2011-04-13 富士通株式会社 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
JP2010164904A (ja) * 2009-01-19 2010-07-29 Fujitsu Ltd 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
US8542820B2 (en) * 2009-02-05 2013-09-24 Infineon Technologies Ag Apparatus for calculating a result of a scalar multiplication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738478B1 (en) * 1998-10-28 2004-05-18 Certicom Corp. Power signature attack resistant cryptography
CN101031944A (zh) * 2004-09-30 2007-09-05 索尼株式会社 加密计算方法、加密系统和计算机程序

Also Published As

Publication number Publication date
JP5449576B2 (ja) 2014-03-19
EP2660796A1 (en) 2013-11-06
US20130218937A1 (en) 2013-08-22
EP2660796A4 (en) 2017-05-03
CN103282950A (zh) 2013-09-04
KR101439804B1 (ko) 2014-09-11
EP2660796B1 (en) 2018-10-31
US9176707B2 (en) 2015-11-03
KR20130089653A (ko) 2013-08-12
JPWO2012090284A1 (ja) 2014-06-05
WO2012090284A1 (ja) 2012-07-05

Similar Documents

Publication Publication Date Title
CN103282950B (zh) 运算装置、运算装置的椭圆标量乘法方法以及运算装置的剩余运算方法
CA1255784A (en) Signed document transmission system
CN101753306B (zh) 运用Montgomery型椭圆曲线的数字签名认证方法
TW201320700A (zh) 署名驗證裝置、署名驗證方法、程式及記錄媒體
CN110768799B (zh) 数字签名方法、装置、设备及介质、系统
CN109359471B (zh) 基于用户身份的加密方法、装置、系统、设备和介质
CN105359455A (zh) 电子签名系统
CN110210865A (zh) 基于区块链的打包方法及装置
CN101877639A (zh) 信息处理设备、密钥更新方法和程序
CN101335625B (zh) 统一验证装置、程序以及统一验证方法
US6480606B1 (en) Elliptic curve encryption method and system
Nabil et al. Hardware implementation of elliptic curve digital signature algorithm (ECDSA) on Koblitz curves
JP2010134465A (ja) ハッシュ暗号装置及び方法
JP3102692B2 (ja) カードの真性を証明する方法
CN113158176B (zh) 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN103049242A (zh) 数字式真随机数发生器电路
Kuang et al. Benchmark performance of a new quantum-safe multivariate polynomial digital signature algorithm
CN112019352B (zh) 一种sm9快速签名方法、系统及电子设备
CN113055189A (zh) Sm2数字签名验证失败原因判定方法、装置、设备和介质
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
CN111147249A (zh) 数据处理方法、装置、设备及介质
CN107204856B (zh) 一种检测椭圆曲线算法漏洞的方法及装置
US8850213B2 (en) Method for verifying an electronic signature and data processing device
CN114710293B (zh) 数字签名方法、装置、电子设备及存储介质
Nofriansyah et al. Efficiency of 128-bit Encryption and Decryption Process in Elgamal Method Using Elliptic Curve Cryptography (ECC)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151125

Termination date: 20201227