CN106464483B - 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 - Google Patents
用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 Download PDFInfo
- Publication number
- CN106464483B CN106464483B CN201580008628.9A CN201580008628A CN106464483B CN 106464483 B CN106464483 B CN 106464483B CN 201580008628 A CN201580008628 A CN 201580008628A CN 106464483 B CN106464483 B CN 106464483B
- Authority
- CN
- China
- Prior art keywords
- coordinate
- point
- scalar multiplication
- key point
- iteration
- 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
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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Abstract
本发明的主题是一种用于电子部件在域上定义的椭圆曲线E上实现公钥密码算法的应对方法,并且其包括迭代标量乘法运算,迭代标量乘法运算使得基于曲线E的点P和必须保持秘密的整数k来获得点[k]P成为可能,电子部件的电消耗取决于由在所述运算期间使用的至少一个所谓的关键点采用的值,以迭代地确定点[k]P,该方法包括:步骤(500),其提供中的不同于一的预定义的非零常量元素c的至少一次幂;步骤(501),其将至少一个关键点的坐标初始化为预定义的值;步骤(502),其实现所述标量乘法运算,与至少一个关键点相关联的坐标是在每次迭代中通过将该点的坐标中的至少一个坐标乘以在提供步骤(500)中获得的元素c的所述至少一次幂来修改的。
Description
技术领域
本发明涉及用于电子部件实现椭圆曲线公钥密码算法的应对方法、实现所述方法的电子部件以及系统。其应用于椭圆曲线密码学领域。具体而言,椭圆曲线密码学使得生成签名以加密数字消息或者设置加密密钥成为可能。
背景技术
电子电路的活动可以在电子电路进行操作时,通过诸如功率消耗、计算时间或电磁辐射之类的物理量来观察到。
这些物理量取决于计算架构和电路内部操作的数据二者。因此,通过观察所述量,与所处理的数据有关的信息在电路之外可间接获得,这被称为隐藏信道或边信道。
这些物理量的耗散会危害用于对特别是密码方案保护的秘密数据进行处理的系统的安全性。因此,如果秘密数据是利用具有秘密加密密钥的密码算法来保护的,所述保护的鲁棒性在于保持所述密钥实际秘密的能力。这些物理量的耗散可能使得第三方通过发起合适的攻击而获取密钥,并因此访问秘密数据。
基于观察由所述电路耗散的物理量的攻击通常被称作隐藏信道攻击。贯穿本说明,利用基于观察的攻击方案来访问不是旨在发往其的数据的第三方被称作攻击者,而所耗散的物理量对于它们所在的一方而言被称作泄露或隐藏信道。
当前存在基于观察的有力的攻击,其使得有可能访问由受保护电路处理的数据。利用这些方案,有可能规避通过密码学在数学级别上赋予的安全性。
基于椭圆曲线的密码应用通常利用椭圆曲线标量乘法ECSM作为主操作。该操作基于点P和整数k来确定标量[k]P=P+P…+P。该点P通常是数据的公共项,而整数k是秘密。
椭圆曲线标量乘法ECSM的运算可以借助于多个现有技术方案来实现,这些现有技术方案包括被称为左到右窗口标量乘法(参见图1)、蒙哥马利(Montgomery)阶梯(参见图2)的技术和被称为在wNAF上具有右到左滑动窗口的标量乘法(参见图3)的技术。这些方案通常按位进行操作。基本的椭圆曲线运算(例如加法或倍乘)、以及使用的点(预先计算的或动态的),取决于当前的比特。
由于对ECSM乘法的单独观察足以确定标量的全部比特,所以某些隐藏信道攻击是非常有力的。
存在可以被用于对抗基于椭圆曲线的密码方案的攻击,其包括通过比较电流的消耗的子轨迹来确定哪些值在特定运算期间被操作的。这种攻击被称为是水平的。一个例子是Big-Mac攻击,但是也存在其它攻击,例如,由C.Murdica、S.Guilley、J.-L.Danger、P.Hoogvorst和D.Naccache在2012年的关于“Constructive Side-Channel Analysis andSecure Design(建设性边信道分析和安全设计)”的研讨会上发表的名为“Silding WindowSuccumbs to Big MacAttack”(滑动窗口屈从于Big-Mac攻击)的文章中描述的SVA(相同数值分析)攻击。查明哪些值被操作的动作揭示了关于标量的信息。该攻击是通过对电流在ECSM的各次迭代的消耗进行比较来发起的。假定电流的消耗与被操作的值相关,那么该攻击包括检测相同的值是否在ECSM标量乘法计算中的不同时间被操作。
在蒙哥马利阶梯(参见图2)的情况下,在加法期间,Q[0]是操作数1(不以相同的方式使用加法的操作数1和2)。仅当ki=0时,Q[0]将会是倍乘的输入。
在在wNAF上具有右到左滑动窗口的标量乘法(参见图3)的情况下,需要检测在一个且相同的迭代中,点R是否被使用了两次。
对迭代的加法结果和随后迭代的加法的输入的分析也可能公开信息。
由于不必知晓基点并且标量可以通过单个轨迹来完全恢复,因此这种类型的攻击是十分有力的。因此,通过对起始点的随机化或者通过对标量的随机化的应对是无效的。此外,这种类型的攻击可以适于适合其它ECSM运算。这种类型的攻击被称作“Big-Mac”,并且在由C.D.Walter在2001年关于“Cryptographic Hardware and Embedded Systems(密码硬件和嵌入式系统)”的研讨会上发表的名为“Same Values Power Analysis Using SpecialPoints on Elliptic Curves(利用椭圆曲线上的特殊点进行的相同值的功率分析)”的文章中给出。
发明内容
本发明的一个目的是弥补现有技术的不足/缺陷和/或对其进行改进。
出于该目的,本发明的主题是一种用于电子部件在域上定义的椭圆曲线E上实现公钥密码算法的应对方法,并且其包括迭代标量乘法运算,所述迭代标量乘法运算使得基于所述曲线E的点P和必须保持秘密的整数k来获得点[k]P成为可能,所述电子部件的电消耗取决于由在所述运算期间使用的至少一个所谓的关键点采用的值,以迭代地确定所述点[k]P,所述方法包括:
-提供中的不同于一的预定义的非零常量元素c的至少一次幂的步骤;
-将所述至少一个关键点的坐标初始化为预定义的值的步骤;
-实现所述标量乘法运算的步骤,与至少一个关键点相关联的所述坐标是在每次迭代中通过将该点的坐标中的至少一个坐标乘以在所述提供步骤(500)中获得的所述元素c的所述至少一次幂来修改的。
根据一个实施例,所述元素c被选择为小于或等于所述曲线的基群的基数的一半。
根据一个实施例,所述元素c被选择为具有严格大于所述标量乘法的迭代次数的三倍的阶数δ,以防止元素一在c的连续的幂乘中出现。
根据一个实施例,根据c的次幂的以下乘法c、c^2、c^3、c^4和c^6是通过使用加法链来确定的,c被选择为使得所述加法链的长度最小化。
根据一个实施例,与至少一个关键点相关联的所述坐标是通过投影等价性来修改的。
根据一个实施例,与至少一个关键点相关联的所述坐标是通过对所述曲线E和第二椭圆曲线E′之间的同构的实现来修改的。
根据一个实施例,所述标量乘法运算是通过左到右窗口标量乘法来实现的,所述窗口的大小为w。
根据一个实施例,所述标量乘法运算是通过由蒙哥马利阶梯来实现的。
根据一个实施例,所述标量乘法运算是通过在wNAF上具有右到左滑动窗口的标量乘法来实现的。
根据一个实施例,所述标量乘法运算是利用以下步骤来实现的:
-将用作工作变量并且与部分标量乘法相对应的点Q的坐标初始化为0;
-预先计算2w乘以P的R[j],其中,j=1...2w;
-利用滑动窗口来对Q进行倍乘并将R[v]加到Q上,所述应对是通过利用以下表达式,在每次迭代i中修改所述点R[v]的坐标(XR[v],YR[v],ZR[v])来实现的:(XR[v],YR[v],ZR[v])=(c2XR[v],c3YR[v],cZR[v]),其中v=(ki,...,ki-w+1)2。
根据一个实施例,所述标量乘法运算是利用以下步骤来实现的:
-将用作工作变量并且与部分标量乘法对应的点Q的坐标初始化为0;
-预先计算2w乘以P的R[j],其中,j=1...2w;
-利用滑动窗口来对Q进行倍乘并将R[v]加到Q上(603),所述应对是通过在每次迭代中利用以下方式改变所述点R[j]和Q的坐标(XQ,YQ)和(XR[j],YR[j])来实现的:
i.(XQ,YQ)=(c2XQ,c3YQ)
ii.对于范围从1到2w的j而言,(XR[j],YR[j])=(u2XR[j],u3YR[j])。
本发明的主题也涉及一种用于在域上定义的椭圆曲线E上的公钥密码的电子电路,其实现标量乘法运算,所述标量乘法运算使得基于所述曲线E的点P和必须保持秘密的整数k获得点[k]P成为可能,所述部件的电子消耗取决于由在所述运算期间使用的至少一个所谓的关键点采用的值,以迭代地确定所述点[k]P,所述电路包括适于进行以下操作的至少一个模块:
-提供中的不同于一的预定义的非零常量元素c;
-将所述至少一个关键点的坐标初始化为预定义的值;
-实现所述标量乘法运算,与至少一个关键点相关联的所述坐标是在每次迭代中通过将该点的坐标中的至少一个坐标乘以所述元素c的次幂来修改的。
根据一个实施例,所述电子电路包括存储所述元素c的内部存储器。
根据一个实施例,与更新所述至少一个关键点的所述坐标所需的加法链相对应的计算过程被预先计算,并且被存储在所述部件内部的所述存储器中。
本发明的主题也涉及一种用于在域上定义的椭圆曲线E上的公钥密码的系统,其包括例如如上所述的电子电路、以及在所述电路外部并且存储所述元素c的存储器。
根据一个实施例,与更新所述至少一个关键点的所述坐标所需的加法链相对应的计算过程被预先计算,并且被存储在所述外部存储器中。
本发明的主题也涉及一种包括指令的计算机程序,其中,当所述程序被数据处理模块执行时,所述指令用于执行如上所述的方法。
附图说明
借助于通过非限制性说明以及参考附图给出的以下描述,本发明的其他特性和优势将变得显而易见的,其中:
-图1给出了借助于窗口化的标量乘法技术的椭圆曲线标量乘法ECSM的示例性实现;
-图2给出了借助于蒙哥马利阶梯的椭圆曲线标量乘法ECSM的示例性实现;
-图3给出了借助于wNAF上的右到左滑动窗口的椭圆曲线标量乘法ECSM的示例性实现;
-图4给出了由具有长度为2的窗口的标量乘法技术生成的示例性轨迹;
-图5是以简化的方式示出根据本发明的方法的图;
-图6给出了用于电子部件在基于依据投影特性的等价性来对点的坐标进行更新的情况下,在椭圆曲线E上实现公钥密码算法的应对方法的示例性实现;
-图7给出了用于电子部件在通过同构来对点的坐标进行更新的情况下,在椭圆曲线E上实现公钥密码算法的应对方法的示例性实现;
-图8给出了能够实现根据本发明的应对方法的电子系统。
具体实施方式
图1给出了借助于窗口化的标量乘法技术的椭圆曲线标量乘法ECSM的示例性实现。
用作输入100的数据为:
-与用基数2表示的私钥(kn-1,...,k0)2对应的整数k;
-曲线上的通常与数据的公共项对应的点P;
-与窗口大小对应的整数w。
应当注意的是,w是利用w|n来选择的。如果情况并非如此,那么标量就用0来左填充。
在第一步骤101中,将用作工作变量并且与部分标量乘法对应的点Q被初始化为0。
在第二步骤102中,预先计算2w乘以P的R[j]。
然后应用第三步骤103,以利用长度为w的滑动窗口来执行倍乘和加法处理。
然后将变量Q在步骤103结束时所采用的值作为结果返回,并且该值与标量[k]P对应。
图2给出了借助于蒙哥马利阶梯的椭圆曲线标量乘法ECSM的示例性实现。
用作输入200的数据为:
-与用基数2表示的私钥(kn-1,...,k0)2对应的整数k;
-曲线上的通常与数据的公共项对应的点P;
在第一步骤201中,与两个部分标量乘法对应的两个工作变量Q[0]和Q[1]分别被初始化成0和P。
第二步骤202执行基于阶梯的计算,并且变量Q[0]在该步骤结束时所采用的值随后作为结果来提出203,并且其对应于量[k]P。
图3给出了借助于wNAF上的右到左滑动窗口的椭圆曲线标量乘法ECSM的示例性实现。
正整数k的大小为w的NAF(非邻近形式)表示对应于以下表达式:
其中:
-每个不同于0的系数ki是奇数;
--2w-1<ki<2w-1;
-kl-1≠0;
-w个连续系数中最多一个不同于0;
由于该表示具有包含不同于0的少量元素的特定特征,因此在取幂的某些情况下该表示是有用的。
该方案的用作输入300的数据为:
-窗口的大小的NAF表示k=(kl-1,...,k0)w-NAF;
-曲线上的通常与数据的公共项对应的点P;
第一步骤301对用作对P的次幂进行累加的寄存器的变量m和变量R进行初始化。
第二步骤302将部分标量乘法的m个变量Q[]初始化为0。
步骤303通过对P的次幂的加法和减法来执行对变量Q[]的更新。函数abs()是返回输入参数的绝对值的函数。在该步骤中,在变量i上的递增循环的每次迭代中执行对累加寄存器R的倍乘。
步骤304实现后计算阶段,该阶段通过加上部分乘法j.Q[j]来迭代地确定Q[1]。
变量Q[1]在步骤303结束时所采用的值随后作为结果返回304并且其对应于点[k]P。
图4给出了通过具有长度为2的窗口的标量乘法技术生成的示例性轨迹。
对于w=2,R[1]、R[2]和R[3]等于:
R[1]=[(0 1)]2P
R[2]=[(1 0)]2P
R[3]=[(1 1)]2P
在通过举例的方式给出的该简单的例子中,标量k如下:
k=(10 10 11 01 10)2
将通过以下方式来计算出[k]P:
[k]P=4(4(4(4R[2]+R[2])+R[3])+R[1])+R[2]
如果攻击者能确定在每次迭代中R[1]、R[2]、R[3]中的哪个点被加到Q上,那么标量k能够容易地被导出。相应地,估计出在ECSM乘法的各次迭代中的电流消耗。Big-Mac攻击利用电流消耗与被增加的点的值相关的事实。
在图4的例子中,如果与步骤103的两次连续的迭代相对应的电消耗401、402的记录是相关的,那么这意味着:
(kn-1,kn-2)=(kn-3,kn-4)
如果电消耗401、402的记录是不相关的,那么相反,这意味着:
(kn-1,kn-2)≠(kn-3,kn-4)
Big-Mac攻击的目的是检测在标量乘法计算期间是否在不同的时间操作相同的数值以取回秘密k。
为了抵抗该类型的攻击,根据本发明的密码方法包括基于在椭圆曲线标量乘法期间使用至少一个关键点后修改该至少一个关键点的坐标的应对机制。因此,利用了椭圆曲线的特性。在该说明中,当对电子部件的电消耗变化(其是由于点在标量乘法的实现期间的使用而造成的)的观察结果能够揭示标量k的全部或部分时,该点被称为关键的点。
图5是以简化的方式说明根据本发明的方法的流程图。
本发明涉及在电子电路中实现椭圆曲线公钥密码算法的应对方法。因此,其在椭圆曲线E上应用标量乘法运算,以便在应用应对机制时,基于E的点P和整数k来获得点[k]P。该运算是基于至少一个关键点的使用的。
根据本发明的方法包括步骤500,其提供预定义的非零常量元素c的至少一次幂。该元素c属于域并且不同于1。通过举例的方式,这一步骤可以使得获得元素c本身(其事实上等于该元素的一次幂,即c^1)成为可能。在可替代的实施例中,该步骤可以使得获得c的次幂的集合(例如,由c^1、c^2和c^3组成)成为可能。
因此,c的若干次幂可以被存储在实现本发明的密码电路中,这具有使第三方难以检测所使用的c的值的决定性优势。
在一个实施例中,元素c被选择为其阶数δ严格大于标量乘法的迭代次数的三倍,以防止元素一在c的次幂连续乘法期间出现。应记得的是,的元素e的阶数是最小的非零整数δ,以使得eδ=1。
本领域技术人员将容易理解,该步骤期间也可以获取其它数据,其特别包括点P的坐标、标量k或者工作窗口的宽度w(如果有的话)。
该方法的步骤501随后对用于实现标量乘法的关键点或点进行初始化。因此,根据用于实现标量乘法的技术,关键点或点的坐标与点P的坐标一起可以被初始化为0,或者被初始化为任何其它合适的值。
步骤502以迭代方式以及用与其相关联的应对,在椭圆曲线E上实现标量乘法运算。所述应对包括在每次迭代中修改至少一个关键点的坐标。这些坐标是通过将它们中的至少一个乘以在步骤500中获取的元素c的次幂来修改的。所述元素的值例如被存储在电子电路中或从所述电路可访问的存储器中。
就元素c在应用所述方法之前被选择和存储的意义而言,其是预定义的。
用于实现标量乘法的技术可以是从以下算法中选择的:左到右窗口标量乘法、蒙哥马利阶梯、在wNAF上具有右到左滑动窗口的标量乘法。
根据本发明的方法包括两个优选实施例。
第一个优选实施例是基于对至少一个关键点的表示的更新,以便在更新其坐标之前和之后依据点的投影特性来保持等价性。
第二优选实施例是基于对所使用的点的表示(即它们的坐标)的同构的更新的。
就元素c在应用所述方法之前被选择和存储的意义而言,其是预定义的。通过举例的方式,将为实现根据本发明的方法的电子电路分配在其被生产时选择的c的值,并且该值将被存储在电路中。然而,这种电路的设计者可以为其生产的各种电路分配不同的c值。有利的是,分配多个值c使得调整安全性和实现复杂度之间的折衷成为可能。应当注意的是,为了实际修改坐标,c必须不同于一。
关键点或点的坐标可以在各个时间处来更新:
-在迭代开始时;
-在迭代结束时;
-诸如倍乘或加法之类的椭圆曲线运算之后;
-或者在椭圆曲线运算期间。
由于关键点的一个或多个表示在所述点的每次使用之后得以更新,所以可以保护该电路免受水平攻击。
包括该应对机制的ECSM乘法的效果特别取决于所选择的用于对点的一个坐标或多个坐标进行更新的时间。该时间可以被选择为避免折衷安全性。通过举例的方式,如果如由Chevallier-Mames,B.、Ciet,M.、和Joye,M.在2004年的“IEEE Transactions onComputer(关于计算机的IEEE会议)”第760-768页发表的、名为“Low-Cost Solutions forPreventing Simple Side-Channel Analysis:Side-Channel Atomicity(用于防止简单边信道分析的低成本解决方案:边信道原子数)”的文章中给出的原子应对方法是与在wNAF上具有右到左滑动窗口的标量乘法一起应用的,那么可以在每个原子块之后有利地应用所述更新。
应当注意的是,用于基于坐标的等价性来对起始点的坐标进行随机化的方法在欧洲专利公开EP1166494B1中得以描述。术语随机化通常是指使得在数据处理方案中引入随机元素成为可能的技术。在该公开中,随机地提取域的元素,从而使得有可能在ECSM标量乘法开始时对所述起始点进行随机化。
另一种随机化方法是在欧洲专利公开EP1381936B1中公开的,并且具体地是基于通过同构来随机地绘出起始曲线。在该情况下,域的元素被随机地提取,以便在ECSM标量乘法开始时对所述曲线和点进行随机化。
这两种方案使得有可能抵抗DPA(差分功率分析)和CPA(选择明文攻击)类型的攻击。然而,即使实现了这些方案,也可能面临Big-Mac攻击和其它所谓的水平攻击。应记得的是,当对密码电路的电消耗的信号表示的单个轨迹进行攻击时,该攻击被称为水平的。当对密码电路的电消耗的信号表示的多个轨迹进行攻击时,该攻击被称为垂直的。在本发明的框架中,至少一个关键点的坐标在标量乘法的每次迭代中得以修改,从而导致大多水平攻击不起作用。
与这些技术相反,根据本发明的方法使用用于对坐标进行更新的预定义常量,因此提供若干决定性的优势。
因此,与以上引用的现有技术相比,根据本发明的方法有利地允许实现降低的复杂度。事实上,随机数的生成本身是复杂的。这通常需要在用于实现基于椭圆曲线的密码方法的电子电路外部使用TRNG(真随机数生成器)或者PRNG(伪随机数生成器)。此外,这些生成器容易受到如在以下文章中描述的生成器阻塞类型的攻击:由T.Markettos和S.W.Moore在CHES 2009的第317-331页上发表的、名为“The Frequency Injection Attack on Ring-Oscillator-Based True Random Number Generators(在基于环形振荡器的真随机数生成器上的频率注入攻击)”。
另一个优点是实现关键点或点的坐标乘以预定义的常量元素c的方式能够通过例如使用加法链得以优化,这在随机提取的情况下是不可能的。
此外,当用于修改坐标的元素被随机地提取时,其可能潜在地是大的。通过说明的方式,在两次机会中存在其高阶比特等于1的一次机会。这带来的效果将是随后要求长乘法,这就计算资源而言是昂贵的。
图6给出了用于电子部件在基于依据投影特性的等价性来对点的坐标进行更新的情况下,在椭圆曲线E上实现公钥密码算法的应对方法的示例性实现。
椭圆曲线上的点通常被表示为Jacobian(雅克比)坐标,在本说明中被称作投影坐标。对于点P而言,使用以下记法:
P=(X,Y,Z)
在该实施方式中,使用了针对椭圆曲线的依据投影特性的等价性。依据投影特性的等价性意味着,如果是基域,点P的依据投影坐标(X,Y,Z)的表示相当于由(c2X,c3Y,cZ)定义的表示,其中(等于集合其中值0被移除)。另有说明,一个且相同的点P可以借助于若干坐标集合来表示,坐标集合也被称作点表示。
依据投影特性的等价性意味着,在域中利用第一表示来执行的任一操作给出相同的结果,就如同其是利用第二表示来应用的一样,依据投影特性是等价的。
在本发明的该实施例中,域的预定义元素c被用于对用于实现ECSM乘法的至少一个点的表示进行更新。该更新是通过以下方式来执行的:以这样的方式对与该点相关联的坐标集合进行修改,使得遵循依据投影特性的等价性。
在一个实施例中,与在其上构建曲线的基群的基数相比,c被选择为小的。更准确地说,用于编码c的比特数量被选择为小于或等于该曲线的基群的基数的一半。通过举例的方式,如果群的元素是在256个比特上编码的,那么基数是2256,并且c可以被选择在2和2128之间。这使得有可能避免使用过大的值并因此降低由坐标改变而引入的计算复杂度。c的值可以有利地被选择为等于3。
图6和图7是本发明的利用通过左到右窗口标量乘法的ECSM计算的实现的两个例子。本领域技术人员可以容易地设想到本发明的针对其它ECSM计算的实现,例如,蒙哥马利阶梯或者在wNAF上具有右到左滑动窗口的标量乘法技术。
图6的例子是基于通过窗口化的标量乘法的ECSM计算。因此,如借助于图1已经阐明的,在该实施例中,所述方法包括输入数据600以及实现步骤601和602,其分别对应输入数据100和步骤101和102。
随后应用第三步骤603,以便以与针对步骤103的相同的方式,利用长度为w的滑动窗口来执行倍乘和加法处理,但是另外利用点R[v]的表示(XR[v],YR[v],ZR[v])(其是在迭代中使用的,同时遵循依据投影特性的等价性)的每次迭代结束时的更新,。应当注意的是,迭代与在处理窗口中执行的处理相对应。
该更新以下述方式执行:
(XR[v],YR[v],ZR[v])←(c2XR[v],c3YR[v],cZR[v])
变量Q[1]在步骤603结束时采用的值随后作为结果提供604并且其对应于点[k]P。
图7给出了用于电子器件利用通过同构对点的坐标的更新来在椭圆曲线E上实现公钥密码算法的应对方法的示例性实现。
椭圆曲线是根据由下述表达式给出的降低的Weierstrass(维尔斯特拉斯)等式E定义的:
E:y2=x3+ax+b
考虑根据下述表达式给出的降低的Weierstrass等式E′所定义的第二椭圆曲线:
E′:y2=x3+a′x+b′
可以证明,如果存在E对于E′而言是同构的,使得:
a′=ac4
b′=bc6
在这种情况下,在E和E′之间的同构是通过下述表达式定义的:
就像基于通过依据投影特性的等价性进行的对坐标的修改的先前实施例那样,属于域的元素c是提前选择的,并且被存储在实现所述方法的电子电路中。
在将关键点(X,Y,Z)的表示用于实现ECSM所需的操作之后,应用且对全部的点表示进行更新。
如果参数a、b被用于诸如点的倍乘或加法之类的椭圆曲线运算,那么它们也被更新。
图7的例子是基于根据窗口化的标量乘法的ECSM计算的。因此,如借助于图1已经阐明的,在该实施例中,所述方法包括输入数据700和实现步骤701和702,其分别对应输入数据100和步骤101和102。
随后应用第三步骤703,以与针对步骤103相同的方式,利用长度为w的滑动窗口来执行倍乘和加法处理,但是另外利用了在关键点Q的表示的每次迭代结束时的更新,利用下述表达式执行上述操作:
(XQ,YQ)←(c2XQ,c3YQ)
此外,关键点R[j]的2w个表示的集合是利用下述表达式来更新的:
(XR[j],YR[j])←(c2XR[j],c3YR[j])
最后,在其被使用之后,利用下述表达式来更新参数:
a←c4a
b←C6b
应用704反同构以将点Q的坐标重写到起始椭圆曲线上。
变量Q在步骤704结束时采用的值随后作为结果被提供,并且其对应于标量[k]P。
对于所描述的能够实现坐标改变的两个替代方式中的每个方式,使用的元素c是必要的。至少一个关键点处的坐标可以通过利用最优加法链计算c2X、c3Y、cZ或c2X、c3Y得以更新,以避免必须在该域内计算乘法。
在两种情况下,对c的小值的选择是特别合适的。另外,优选地选择元素以使得乘以c、c2、c3、c4、c6或c2、c3、c4、c6可以通过非常短的加法链来执行。更准确地说,c被选择为小于或等于曲线的基群的基数的一半。通过这种方式,对坐标的更新仅需要该域中的少量加法,这比实现乘法成本低的多。例如,通过选择c=3,乘以c可以被执行基域中的两次加法,乘以c2=9可以被执行为四次加法,以及乘以c3=27可以被执行为六次加法。对于小数的加法链的大小可以在http://oeis.org/A003313处获得。对c的选择允许大量可能的优化,包括加法链。由于c的值是预定义的并且是固定的,例如有可能提前确定与更新关键点坐标所需的加法链相对应的计算过程,可以提前准备。因此,这些计算链可以有利地集成在用于实现基于椭圆曲线的密码运算的电子部件中。
根据本发明的一个方面,以下根据c的次幂的乘法c、c^2和c^3是利用加法链来确定的,在这种情况下c被选择为使得所述链的长度最小化。c^2和c^3分别表示c的2次幂或3次幂。
图8给出能够实现根据本发明的应对方法的电子系统。该系统包括连接到内部通信总线800的中央处理单元(CPU)801。随机存取存储器(RAM)807也连接到总线。
另外,该系统包括大容量存储外围控制器802,其功能是管理对大容量存储器(例如,硬盘803)的访问。
大容量存储器存储计算机程序指令和数据,所述计算机程序指令和数据使得实现用于分配临时认证数据的方法。
大容量存储器可以由任意形式的非易失性存储器构成,例如EPROM、EEPROM、闪存、诸如内部硬盘和可移动盘的磁盘、磁—光盘和CD-ROM盘804。
该系统还包括用于管理对电信网络806的访问的网络适配器805。
可选地,该设备也包括触觉装置809,例如,光标控制设备、键盘或任何其它类似的装置。因此,可以在设备中使用光标控制装置以使得用户能够将光标定位在屏幕808上的给定位置处。此外,光标驱动设备使得用户能够选择各个指令并生成驱动信号。光标控制设备可以是鼠标,所述鼠标的按钮中的一个按钮用于触发输入信号的生成。
Claims (17)
1.一种用于电子部件在域上定义的椭圆曲线E上实现公钥密码算法的应对方法,所述方法包括使用至少一个关键点来实现迭代标量乘法运算的一个或多个迭代,所述迭代标量乘法运算基于所述曲线E的点P并且根据整数k来获得点[k]P,所述电子部件的电消耗取决于由至少一个关键点采用的值,所述方法还包括:
-提供中的元素c的至少一次幂,所述元素是常量、非零并且不等于一;
-将所述至少一个关键点的坐标初始化为预定义的值;
-实现所述标量乘法运算,与所述至少一个关键点相关联的所述坐标是在所述标量乘法运算的每次迭代中通过将所述关键点的坐标中的至少一个坐标乘以在所述提供步骤中获得的所述元素c的所述至少一次幂来修改的。
2.根据权利要求1所述的方法,其中,所述元素c被选择为小于或等于所述曲线的基群的基数的一半。
3.根据权利要求1或2所述的方法,其中,所述元素c被选择为具有大于所述标量乘法运算的迭代次数的三倍的阶数δ。
4.根据权利要求1或2所述的方法,其中,所述至少一个关键点的所述坐标中的至少一个与所述元素c的次幂的乘法是通过使用加法链来确定的,c被选择为使得所述加法链的长度最小化,并且所述c的次幂是c、c^2、c^3、c^4和c^6。
5.根据权利要求1或2所述的方法,其中,与所述至少一个关键点相关联的所述坐标是通过投影等价性来修改的。
6.根据权利要求1或2所述的方法,其中,与所述至少一个关键点相关联的所述坐标是通过对所述曲线E和第二椭圆曲线E′之间的同构的实现来修改的。
7.根据权利要求1或2中的一项所述的方法,其中,所述标量乘法运算是通过左到右窗口标量乘法来实现的,所述窗口的大小为w。
8.根据权利要求1或2中的一项所述的方法,其中,所述标量乘法运算是通过由蒙哥马利阶梯来实现的。
9.根据权利要求1或2中的一项所述的方法,其中,所述标量乘法运算是使用在具有大小为w的非邻近形式表示wNAF中的右到左滑动窗口来实现的。
10.根据权利要求1所述的方法,其中,所述标量乘法运算包括:
-将用作工作变量并且与部分标量乘法相对应的点Q的坐标初始化为0(601);
-预先计算(602)2w乘以P的R[j],其中,j=1…2w,R表示所述关键点,w表示滑动窗口的大小;
-利用所述滑动窗口来执行对Q进行倍乘并将R[v]加到Q上(603),所述应对是通过利用以下等式,在每次迭代i中修改所述点R[v]的坐标(XR[v],YR[v],ZR[v])来实现的:(XR[v],YR[v],ZR[v])=(c2XR[v],c3YR[v],cZR[v]),其中v=(ki,…,ki-w+1)2。
11.根据权利要求1所述的方法,其中,实现所述标量乘法运算的步骤包括:
-将用作工作变量并且与部分标量乘法对应的点Q的坐标初始化为0(701);
-预先计算(702)2w乘以P的R[j],其中,j=1…2w,R表示所述关键点,w表示滑动窗口的大小;
-利用滑动窗口来执行对Q进行倍乘并将R[v]加到Q上(703),其中v=(ki,…,ki-w+1)2,所述应对是通过在每次迭代中改变所述点R[j]和Q的坐标(XQ,YQ)和(XR[j],YR[j])来实现的,使得:
i.(XQ,YQ)=(c2XQ,c3YQ)
ii.对于范围从1到2w的j而言,(XR[j],YR[j])=(c2XR[j],c3YR[j])。
12.一种用于在域上定义的椭圆曲线E上的公钥密码的电子电路,其使用至少一个关键点来实现标量乘法运算的一个或多个迭代,以根据所述曲线E的点P并且根据整数k获得点[k]P,所述电子电路的电子消耗取决于由所述至少一个关键点采用的值,所述电路被配置为:
-提供中的元素c,所述元素c是常量、非零并且不等于一;
-将所述至少一个关键点的坐标初始化为预定义的值;
-实现所述标量乘法运算,与所述至少一个关键点相关联的所述坐标是在所述标量乘法运算的每次迭代中通过将所述至少一个关键点的坐标中的至少一个坐标乘以所述元素c的次幂来修改的。
13.根据权利要求12所述的电子电路,包括存储所述元素c的内部存储器。
14.根据权利要求13所述的电子电路,其中,所述电路被配置为预先计算与更新所述至少一个关键点的所述坐标所需的加法相对应的计算过程,所述计算过程被存储在所述内部存储器中。
15.一种用于在域上定义的椭圆曲线E上的公钥密码的电子系统,其包括根据权利要求12至14中的一项所述的电子电路以及在所述电路外部的存储器,所述元素c被存储在外部存储器中。
16.根据权利要求15所述的电子系统,其中,所述电路被配置为预先计算与更新所述至少一个关键点的所述坐标所需的加法相对应的计算过程,所述计算过程被存储在所述外部存储器中。
17.一种存储计算机程序的计算机可读介质,所述计算机程序能够由处理器执行以实现根据权利要求1至11中的一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1451096 | 2014-02-12 | ||
FR1451096A FR3017476B1 (fr) | 2014-02-12 | 2014-02-12 | Procede de contremesure pour un composant electronique mettant en œuvre un algorithme de cryptographie sur une courbe elliptique |
PCT/EP2015/052908 WO2015121324A1 (fr) | 2014-02-12 | 2015-02-12 | Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie sur une courbe elliptique |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106464483A CN106464483A (zh) | 2017-02-22 |
CN106464483B true CN106464483B (zh) | 2019-12-03 |
Family
ID=51982638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580008628.9A Active CN106464483B (zh) | 2014-02-12 | 2015-02-12 | 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10374790B2 (zh) |
EP (1) | EP3117555B1 (zh) |
CN (1) | CN106464483B (zh) |
FR (1) | FR3017476B1 (zh) |
WO (1) | WO2015121324A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
WO2018145189A1 (en) * | 2017-02-13 | 2018-08-16 | Infosec Global Inc. | Countermeasures and optimizations in elliptic curve cryptographic schemes |
JP2018146766A (ja) * | 2017-03-06 | 2018-09-20 | キヤノン株式会社 | スカラー倍演算装置、スカラー倍演算方法及びプログラム |
CN107204856B (zh) * | 2017-08-01 | 2019-10-22 | 北京智慧云测科技有限公司 | 一种检测椭圆曲线算法漏洞的方法及装置 |
EP3447509B1 (en) * | 2017-08-21 | 2021-05-26 | Eshard | Method of testing the resistance of a circuit to a side channel analysis |
US10805081B1 (en) * | 2020-04-30 | 2020-10-13 | ISARA Corporation | Processing batches of point evaluations in a supersingular isogeny-based cryptosystem |
IT202100008951A1 (it) * | 2021-04-09 | 2022-10-09 | St Microelectronics Srl | Procedimento di occultamento di identificativo di sottoscrizione in un equipaggiamento utente di una rete di comunicazione mobile e corrispondente sistema e prodotto informatico |
CN114527956B (zh) * | 2022-01-25 | 2024-05-10 | 北京航空航天大学 | 抗spa攻击的sm2算法中非定点标量乘法的计算方法 |
CN117972761A (zh) * | 2024-04-01 | 2024-05-03 | 杭州金智塔科技有限公司 | 基于国密sm2算法的数据处理方法以及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441846A (zh) * | 2013-08-12 | 2013-12-11 | 国家密码管理局商用密码检测中心 | 一种对p域的ecc算法选择明文侧信道能量分析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748410B1 (en) * | 1997-05-04 | 2004-06-08 | M-Systems Flash Disk Pioneers, Ltd. | Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication |
US7069287B2 (en) * | 2000-09-19 | 2006-06-27 | Worcester Polytechnic Institute | Method for efficient computation of odd characteristic extension fields |
WO2005008955A1 (ja) * | 2003-07-22 | 2005-01-27 | Fujitsu Limited | 個人鍵を用いた耐タンパ暗号処理 |
DE102006014353B4 (de) * | 2006-03-28 | 2007-11-22 | Siemens Ag | Verfahren zum sicheren Ermitteln von Daten |
KR100867989B1 (ko) * | 2006-12-06 | 2008-11-10 | 한국전자통신연구원 | 단순전력분석에 안전한 Left-to-Right방향으로 리코딩과 스칼라 곱셈을 동시에 수행하는 스칼라곱셈 방법 |
US8559625B2 (en) * | 2007-08-07 | 2013-10-15 | Inside Secure | Elliptic curve point transformations |
US8422685B2 (en) * | 2008-02-26 | 2013-04-16 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication |
-
2014
- 2014-02-12 FR FR1451096A patent/FR3017476B1/fr not_active Expired - Fee Related
-
2015
- 2015-02-12 EP EP15703784.7A patent/EP3117555B1/fr active Active
- 2015-02-12 CN CN201580008628.9A patent/CN106464483B/zh active Active
- 2015-02-12 WO PCT/EP2015/052908 patent/WO2015121324A1/fr active Application Filing
- 2015-02-12 US US15/118,500 patent/US10374790B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441846A (zh) * | 2013-08-12 | 2013-12-11 | 国家密码管理局商用密码检测中心 | 一种对p域的ecc算法选择明文侧信道能量分析方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3117555A1 (fr) | 2017-01-18 |
FR3017476A1 (fr) | 2015-08-14 |
US10374790B2 (en) | 2019-08-06 |
FR3017476B1 (fr) | 2017-06-09 |
EP3117555B1 (fr) | 2020-01-22 |
WO2015121324A1 (fr) | 2015-08-20 |
CN106464483A (zh) | 2017-02-22 |
US20170180114A1 (en) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106464483B (zh) | 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 | |
Aranha et al. | LadderLeak: Breaking ECDSA with less than one bit of nonce leakage | |
US8402287B2 (en) | Protection against side channel attacks | |
US8280048B2 (en) | Method for strengthening the implementation of ECDSA against power analysis | |
US20210256165A1 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
CN107040362B (zh) | 模乘设备和方法 | |
US20130156180A1 (en) | Method And Device For Securing Block Ciphers Against Template Attacks | |
Özkaynak et al. | Security problems for a pseudorandom sequence generator based on the Chen chaotic system | |
CN109495270A (zh) | 数字签名生成中的临时乱数到消息的结合 | |
US20210152331A1 (en) | Protecting polynomial hash functions from external monitoring attacks | |
TWI403144B (zh) | 隨機化模數減化方法及其硬體 | |
JP7155173B2 (ja) | 外部監視攻撃からモジュラーインバージョン演算を保護すること | |
CN107896142B (zh) | 一种执行模幂运算的方法及装置、计算机可读存储介质 | |
CN110048840B (zh) | 一种基于rsa算法的信息处理方法、系统及相关组件 | |
Dubeuf et al. | ECDSA passive attacks, leakage sources, and common design mistakes | |
Fournaris | Fault and power analysis attack protection techniques for standardized public key cryptosystems | |
Pontie et al. | Dummy operations in scalar multiplication over elliptic curves: a tradeoff between security and performance | |
US20170286063A1 (en) | Non-modular multiplier, method for non-modular multiplication and computational device | |
JP7191097B2 (ja) | 計算デバイス及び方法 | |
Bock | SCA resistent implementation of the Montgomery kP-algorithm | |
Walter et al. | Data dependent power use in multipliers | |
Chen et al. | Timing leakage to break SM2 signature algorithm | |
Pontie et al. | An Elliptic Curve Crypto-Processor Secured by Randomized Windows | |
Su et al. | Combined attack on blinded fault resistant exponentiation algorithm and efficient countermeasure | |
Alpirez Bock | SCA resistent implementation of the Montgomery kP-algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |