CN101507176B - 椭圆曲线点乘法 - Google Patents
椭圆曲线点乘法 Download PDFInfo
- Publication number
- CN101507176B CN101507176B CN2006800315433A CN200680031543A CN101507176B CN 101507176 B CN101507176 B CN 101507176B CN 2006800315433 A CN2006800315433 A CN 2006800315433A CN 200680031543 A CN200680031543 A CN 200680031543A CN 101507176 B CN101507176 B CN 101507176B
- Authority
- CN
- China
- Prior art keywords
- circulation
- comb
- frame
- bit
- establish
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
-
- 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
-
- 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
-
- 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/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
公开了被配置成用于记录奇整数和椭圆曲线点乘的系统和方法,该系统和方法具有一般的效用并尤其适用于椭圆曲线点乘和密码系统。在一个实现中,该记录是通过将奇整数k转换成二进制表示来执行的。该二进制表示例如可以是表示该奇整数的2的幂的系数。该二进制表示然后被配置为梳比特列,其中每一比特列是一有符号奇整数。另一实现应用该记录方法,并公开了更高效且比已知的梳法保存更少点的计算椭圆曲线点乘的梳法的变型。所公开的点乘法然后被修改为抗简单功率分析(SPA)。
Description
背景
椭圆曲线密码系统(ECC)构成了一类新兴公钥密码系统,并且已被广泛应用于诸如智能卡和嵌入式系统等应用。大多数ECC的安全性是以基于椭圆曲线上的一组点来求解离散对数问题的难度为基础的。当正确地选择椭圆曲线的时候,被配置成找出离散对数的已知方法中的最佳方法的难度呈指数地增加。因此,ECC充分利用了没有次指数(sub-exponential)方法来解出椭圆曲线上离散对数问题的这一事实。与诸如RSA等其它公钥密码系统相比,ECC对相同的安全等级使用了更短的密钥大小。这变为对存储、存储器和计算能力的较少要求。
不幸的是,ECC中的常规运算方法易于受到侧通道攻击(side-channel attack)。侧通道攻击测量密码运算期间诸如定时或功耗等可观察到的参数,以推导该密码系统内的全部或部分秘密信息。例如,梳法(comb method)以及其它高效的点乘法易于受到功率分析攻击。功率分析攻击基于对系统所消耗的功率的分析。关于系统所使用的功率的信息帮助攻击者作出关于系统所执行的操作的假设,且最终作出关于系统内包含的秘密的猜测。
例如椭圆曲线点乘法等标量乘法在ECC中扮演了一个关键的角色。实际上,执行这些乘法的方法对于不同的侧通道攻击是否有效有很大的影响。因此,改进的方法将得到更安全的ECC。
概述
公开了被配置成记录奇整数并用于椭圆曲线点乘法的系统和方法,该系统和方法具有一般效用,并且特别适用于椭圆曲线点乘法和密码系统。在一个实现中,记录是通过将奇整数k转换成二进制表示来执行的。该二进制表示可以是例如代表该奇整数的2的幂的系数。该二进制表示然后被配置为梳比特列,其中每一比特列是一有符号的奇整数。另一实现应用了该记录方法,并且公开了更高效且比已知的梳法保存更少点的计算椭圆曲线点乘法的梳法的一种变型。所公开的点乘法然后被修改成抗简单功率分析(SPA)。
附图简述
参考附图描述了该详细描述。在附图中,参考标号的最左边数字标识了该参考标号首次出现的附图。在不同附图中使用相同的参考标号来指示相似或相同的项。
图1-4示出了示例性的现有椭圆曲线点乘法。
图5和6示出了示例性的现有椭圆曲线点乘法或抵抗简单功率分析的相应记录方法。
图7示出了用于奇标量的仅有符号奇数梳记录法的一个示例。
图8示出了用于奇或偶标量的仅有符号奇数梳椭圆曲线点乘法的一个示例。
图9示出了用于奇阶点的仅有符号奇数梳椭圆曲线点乘法的一个示例。
图10示出了用于可被w除尽的n的仅有符号奇数梳椭圆曲线点乘法的一个示例。
图11示出了抗SPA的仅有符号奇数梳椭圆曲线点乘法的一个示例。
图13示出了具有一般效用或可用于梳椭圆曲线点乘或在密码系统内使用的记录的一个示例实施例。
图14示出了梳椭圆曲线点乘系统的操作的一个示例实施例。
图15示出了适用于实现梳椭圆曲线点乘法的一个示例性计算环境。
详细描述
综述
公开了对奇整数的记录和椭圆曲线点乘,它具有一般效用且特别适用于椭圆曲线密码系统。在一个实现中,提出了一种仅有符号奇数记录方法,该方法将奇标量转换成有符号的非零表示,其中每一梳比特列是一有符号奇整数。另一实现应用了该记录方法,并公开了更高效且比已知的梳法保存更少点的计算椭圆曲线点乘的梳法的一种变型。所公开的点乘法因此通过充分利用点加法和点减法在椭圆曲线系统中实际上是相同的计算复杂度的这一事实而被修改为抗简单功率分析(SPA)。所公开的抗SPA梳法被配置成继承了梳法的优点-当提前或在别处计算预计算的点时,其运行比其它抗SPA窗法要快得多。与将抗SPA的方法转换成抗DPA的技术相组合,所公开的抗SPA梳的实施例对于所有的侧通道攻击都是安全的。因此,此处所公开的实现有一般的用途,且尤其适用于其中功率和计算资源非常珍贵的智能卡和嵌入式应用。
预备
椭圆曲线等式是椭圆曲线密码系统(ECC)的核心特征。域K上的椭圆曲线可由其维尔斯特拉斯(Weierstrass)型来表达:
E:y2+a1xy+a3y=x3+a2x2+a4x+a6,其中ai∈F。
用E(F)来表示满足以上等式加上“无穷远点”O的点集(x,y)∈F2。采用弦正切(chord-tangent)过程,E(F)形成了其中无穷远点O为0的阿贝尔(Ablelian)群。设P1(x1,y1)和P2(x2,y2)是E上的两个有限点。如下计算点加法P3(x3,y3)=P1+P2:
1.如果x1=x2=x且y1+y2=-(a1x+a3),则P3=O.
2.如果P1=P2=(x,y)且2y≠-(a1x+a3),则
3.如果P1≠±P2,则
由某一有限域F上的椭圆曲线生成的组E(F)满足离散对数问题非常难以求解的公钥密码要求。因此,ECC已在许多标准和应用中使用。为了加速密码运算,使用投影坐标来表示椭圆曲线点。通过使用雅可比(Jacobian)投影坐标,维尔斯特拉斯等式可用以下形式写出:
E:Y2+a1XYZ+a3YZ3=X3+a2X2Z2+a4XZ4+a6Z6
因此,对所有θ∈F*,无穷远点O由(θ2,θ3,0)来表示。对所有θ∈F*,仿射点(x,y)由(θ2x,θ3y,θ)表示,并且投影点(X,Y,Z)≠O对应于仿射点(X/Z2,Y/Z3)。使用投影坐标,点加法可在没有高成本的域转换的情况下计算,但是以更多域乘法为代价。域乘法通常要比域转换快得多,得到更快的椭圆曲线点加法。其中将一点与其自身相加的一种特殊点加法被称为加倍。点加倍的成本通常不同于一般的点加法的成本。
密码学中使用的椭圆曲线是在域F2m或Fp或上定义的椭圆曲线,其中m是大整数,而p是大质数。在这两种域上,椭圆曲线的维尔斯特拉斯等式可被简化为以下更简单的形式:
在F2m上定义的E:y2+xy=x3+ax2+b,或
在Fp上定义的E:y2=x3+ax+b
其中p是大质数。这些等式简化了点加法和加倍,并且可被称为“短维尔斯特拉斯型”。在实际的密码应用中,通常要求椭圆曲线具有大质阶数ρ的子组。椭圆曲线密码系统通常仅采用E(F)的该ρ阶子组中的点。
将一点P与其自身相加k次被称为标量乘法或点乘法,并且被表示为Q=kP,其中k是正整数。用于标量乘法的最简单的有效方法是以下将k扩展成二进制表示的加倍与相加(double-and-add)法。
在框104处,将点Q最初设为无穷远点,即设Q=O。在框106处,进入一循环,诸如具有索引i的for循环。该循环从i=n-1到0按-1递减计数。在该循环内:在框108处,设Q=2Q;并且在框110处,如果(bi==1)则Q=Q+P。在框112处,该标量乘法的示例性加倍与相加法100返回Q=kP形式的Q。
整数k可以用(二进制)有符号数位(SD)表示 来表示,其中si∈{-1,0,1}。称为非邻接型(Non-Adjacent Form,NAF)的一种特殊的SD表示特别令人感兴趣,其中没有毗邻的非零数位,即对所有i≥0,si×si+1=0。每一整数k具有一唯一的NAF,并且NAF具有k的所有SD表示中的最低权重。与对二进制表示的期望权重n/2相比,长度为n位的NAF的期望权重是n/3。椭圆曲线点减法实际上具有与点加法相同的成本。因此,图2的使用k的NAF的加减法比加倍并相加法100更高效。
图2示出了用于标量乘法(即,点乘法)的一种加减法200。在框202处,对加减法200的输入包括点P和n位NAF整数 si∈{-1,0,1}。在框204处,点Q最初被设为无穷远点,即设Q=O。在框206处,进入一循环,诸如具有索引i的for循环。该循环从i=n-1到0按-1递减计数。在该循环内:在框208处,设Q=2Q;在框210处,如果(si==1)则Q=Q+P;在框212处,如果(si==-1)则Q=Q-P.。在框214处,返回输出Q,其中Q=kP。
整数k可被扩展成m进制表示,其中对某一整数w≥2,m通常等于2w。图3的m进制方法300将标量乘法拆分成预计算和求值阶段以用存储来换取速度。加倍并相加法300是该方法的一种特殊情况,其中w=1。
图3示出了用于标量乘法的m进制方法300。在框302处,对m进制方法300的输入包括点P和整数 ai∈{0,1,…,m-1}。框304-308表示预计算阶段。在框304处,设点P1=P。在框306处,进入一单步循环,诸如具有索引i的for循环。该循环从i=2到m-1计数。在该单步循环内:在框306处,设Pi=Pi-1+P。在框308处,点Q最初被设为无穷远点,即设Q=O。框310-314表示求值阶段。在框3 10处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框312处,设Q=mQ,这需要w加倍:并且在框314处,设 在框316处,返回Q,其中Q=kP。
m进制方法中的预计算阶段需要储存m-1≡2w-1个点,包括用于输入点P的存储。本公开内容中的存储估算是对于点P的输入来作出的。可作出对用于该方法的时间成本的估算。在成本估算中,不对涉及O的运算进行计数。预计算阶段需要计算2P,3P,…,[2w-1]P。由于加倍和相加之和保持相同,且由于对于各应用中通常使用的投影坐标,加倍比相加更高效,因此在该阶段使用加倍运算一般是较佳的。一种高效的方案是用以下方式来进行计算:
使用该方案,预计算成本为(2w-1-1)D+(2w-1-1)A,其中D意指点加倍,而A意指点相加。对于求值阶段的时间成本,如果作出最高有效数位为非零,即ad-1≠0的假设,则该阶段中的加倍次数是w(d-1)。如果ai=0,则不需要框314中的相加。如果作出k为均匀分布的假设,则求值阶段中的平均相加次数是因此,求值阶段中的平均时间成本约为 而平均总时间成本约为
对m进制方法的修改可使其更高效。例如,m进制方法也可被扩展为滑动窗法。梳法是另一类点乘法。也可高效地计算标量乘法的梳法是已知的。设n位整数 其中bi∈{0,1}。对于整数w≥2,设。则定义:[bw-1,bw-2,…,b1,b0]≡bw-12(w-1)d+…+b12d+b0,,其中 。以与这些计算一致的方式,图4的梳法400使用了w行和d列的二进制矩阵来表示整数k,并且按列来处理该矩阵。
图4示出了用于标量乘法的一种固定基(fixed-base)梳法400。在框402处,对固定基梳法400的输入包括点P、整数 以及窗宽度w≥2。在框404-408中示出预计算阶段。在框404处,对所有 计算[bw-1,…b1,b0]P。在框406处,确定k=Kw-1‖…‖K1‖K0,其中每一Kj是长度为d的位串。在该操作中,可能需要在左侧用一个或多个0(零)来填充。设Ki j表示Kj的第i位。定义在框408处,点Q最初被设为无穷远点,即设Q=0。
框410-414表示求值阶段。在框410处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框412处,设Q=2Q;并且在框414处,设在框416处,返回Q,其中Q=kP。
该梳法在预计算阶段中储存2w-1个点。可对梳法的时间成本作出估算。在预计算阶段中,需要对 计算[bw-1,…,b1,b0]P。为此,首先计算2dP,22dP,… ,2(w-1)dP,其成本为(w-1)d次加倍运算。然后,从加倍运算的结果中计算[bw-1,…,b1,b0]P中仅两个非零位的所有可能组合。有Cw 2个这样的组合。每一组合使用一个点加法。在这一步中有Cw 2次点加法。在下一步中,计算正好有三个非零位的所有组合。有Cw 3个这样的组合。其每一个都需要从先前计算的结果进行的一次点加法。因此,这一步的成本为Cw 3次点加法。该过程继续,直到所有位都是非零。预计算阶段中的总的点加法次数因此是
并且因此,预计算阶段中的时间成本为
{(w-1)d}D+{(2w-w-1)}A
为了估算求值阶段中的时间成本,假定的最高有效列为非零,即则求值阶段中的加倍运算次数为(d-1)。如果则不需要框414中的点加法。如果假定k是均匀分布的,则的概率为并且平均的点加法次数为因此,求值阶段中的平均时间成本约为 该成本比用于m进制方法的求值阶段中的时间成本小得多,后者如先前所导出的为 对梳法,此求值阶段处的得到的增益是以预计算阶段处更高的时间成本为代价的。梳法的总时间成本为
侧通道攻击和对策
两种类型的功率分析攻击是简单功率分析(SPA)和差分功率分析(DPA)。SPA分析在标量乘法期间的密码设备中的功耗的单次跟踪。可从所记录的功耗数据中标识出分支指令条件。这表示椭圆曲线加倍运算的连续性。如果加倍并相加法用于计算标量乘法,则该攻击揭示了密码乘数k的每一位的值bi。对于标量乘法,尽管SPA不能推导出加减或m进制方法的每一数位si或ai,或梳法中的的值,但是它可检测该数位或是否为零,这造成了信息泄漏。
DPA记录标量乘法的多次功率跟踪,并使用记录之间的相关和纠错技术来推导秘密k的部分或全部数位。DPA比SPA更复杂,但更强大。抗SPA的标量乘法不一定能抵抗DPA攻击,然而,可使用许多措施来将抗SPA的方法变换成抗DPA的方法。一种措施是作出执行,且因此使得功耗对相同的输入是不同的。通常采用随机化来实现这一效果。多种随机化方法是切实可行的,包括:随机化投影坐标中的输入点;随机化指数参数表示;随机化椭圆曲线等式;以及随机化域表示。另外,这些随机化方法中的每一种都可用于将此处公开的抗SPA方法变换成抵抗DPA攻击。
为了有效,ECC必须提供对SPA攻击的措施。此处所公开的ECC的实现的该特定方法是使得标量乘法的执行独立于乘数k的任何具体值。例如,使得加倍并相加方法抵抗SPA攻击的一种简单方式是移除该方法中的分支操作,使得不论bi是0还是1都应用相同的操作。因此,可配置始终加倍并相加(double-and-add-always)法。
图5示出了提供SPA抵抗性的始终加倍并相加法500。在框502处,对始终加倍并相加法500的输入包括点P和n位整数 bi∈{0,1}。在框504处,点Q0最初被设为无穷远点,即,设Q0=O。在框506处,进入一循环,诸如具有索引i的for循环。该循环从i=n-1到0按-1递减计数。在该循环内:在框508处,设Q0=2Q0;在框510处,设Q1=Q0+P;并且在框512处,设 在框514处,返回Q=Q0,其中Q的形式为Q=kP。
针对SPA攻击进行保护的另一种策略是将图4的梳法400中的扩展为有符号表示其中每一都是非零的。对于由梳法中的(0≤i<d)表示的奇整数k,使用以下过程来获得那样的有符号表示设s0=1并通过设置以下来构造其余部分
如果Ki=0,并且
其它。
该梳法对常规的梳法使用该有符号表示来对偶数的k计算(k+1)P,并对奇数的k计算(k+2)P。然后计算点2P。从常规梳法的结果中减去点P或2P以获得所需的点kP。在预计算阶段中该梳法的时间和空间成本与原始梳法所具有的时间和空间成本相同,即2w-1个点的存储和{(w-1)d}D+{(2w-w-1)}A。求值阶段的成本为d-1次点加法和d-1加倍。常规梳法之后的最后一个阶段的成本为一次加倍和一次减法。因此,总成本为(w-1)d+(d-1)+1=wd次加倍运算和(2w-w-1)+(d-1)+1=2w-w+d-1次加法运算。与图4的方法400相比,该方法具有相同的存储成本和略高的时间成本。
用于整数 (其中ai∈{0,1,…,2w-1})的另一种抗SPA的m进制标量乘法首先将k转换成另一表示 使得ai′∈{-2w,±1,±2,…,±(2w-1-1),2w-1}并且d′要么是d要么是d+1。直观上,这一记录方法用-2w替换了0,并调整下一最高有效数位以保持k不变。该记录方法用两个辅助值ci和ti来递归地表达,其中0≤ci≤2并且0≤ti≤2w+1。设c0=0。然后,对于i=0,…,d+1,设ti=ai+ci
并且
=(1,-2w) 如果ti=0
=(0,ti) 如果0<ti<2w-1(ci+1,ai′)=(1,-2w+ti)如果2w-1<ti<2w
=(2,-2w) 如果ti=2w
=(1,1) 如果ti=2w+1
注意,等式ci+1·2w+ai′=ti始终成立。
在转换之后,该标量乘法与图3的对于m=2w的m进制方法300完全相同,除了预计算阶段需要计算2P,3P,…,[2w-1]P,和[-2w]P之外。由于加倍和相加之和保持相同,并且对于各应用中通常使用的投影坐标,加倍比相加更高效,因此在该阶段中可尽可能多地使用加倍运算。最高效的方案是使用等1来计算,得到对于预计算阶段的成本(2w-2+1)D+(2w-2-1)A。如果d′=d,求值阶段的成本为w(d-1)D+(d-1)A,或如果d′=d+1,则成本为wdD+dA。因此,总成本至少是(2w-2+wd-w+1)D+(2w-2+d-2)A。另外,预计算阶段记住2w-1+1个点。
另一种抗SPA的仅奇数m进制标量乘法基于将奇整数 (其中ai∈{0,1,…,2w-1})转换成另一表示 使得ai′∈{±1,±3,…,±(2w-1)}.的想法。这可用以下记录方法来实现。
图6示出了用于奇标量的另一种抗SPA的仅奇数m进制记录方法600。在框602处,对仅奇数m进制记录方法600的输入包括n位奇整数 (其中ai∈{0,1,…,2w-1})。在框604处,进入一循环,诸如具有索引i的for循环。该循环从i=0到d-1按1计数。在该循环内:在框606处,如果ai为奇数,则设ai′=ai;并且在框608处,如果ai为偶数,则设ai′=ai+1并且a′i-1=a′i-1-2w。在框610处,返回输出 (其中ai′∈{±1,±3,…,±(2w-1)})。
使用这一转换,对m=2w使用图3的m进制方法300来对偶数k计算[k+1]P并对奇数k计算[k+2]P。然后从图3的方法300的结果中减去P或2P以获得所需的点kP。方法600需要储存2w-1个点P,3P,5P,…,[2w-1]P。这些点可通过在预计算阶段中首先计算2P,然后用等式[i]P=2P+[i-2]P迭代而计算其它点。该阶段中的成本是1D+(2w-1-1)A。求值阶段中的for循环的成本是w(d-1)D+(d-1)A,并且后处理阶段的成本是一次加倍来计算2P和一次减法来减去P或2P。对OT方法的总成本因此是(wd-w+2)D+(2w-1+d-1)A。
仅奇数梳法
仅奇数梳法的一个实施例包括对ECC中的已知梳法的显著进步。该仅奇数梳实施例将标量k的所有梳比特列变换成有符号的非零表示与已知技术明显不同,所生成的每一是有符号奇整数。更具体地,该实施例对每一梳比特列生成 和 其中被定义为-1。有利的是,预计算阶段只需计算并保存ECC中的常规梳法中的一半点。
图7示出了用于奇标量的仅有符号奇数梳记录法700的示例性细节。方法700执行适用于梳椭圆曲线点乘的椭圆曲线计算。记录方法700是对宽度为w≥2的窗来配置的,其中对方法700的输入包括n位奇整数 (其中bi∈{0,1})。从该方法的输出包括 其中每一K′j是d位长的二进制串,并且在需要时在左侧用0填充。在图7中,设Kr′j表示K′j的第r位,即 定义输出满足对j≠0且0≤r<d, 且
参考图7,可理解用于奇标量的仅有符号奇数梳记录方法700的操作。在框702处,根据 (其中bi∈{0,1}),输入被设为n位奇整数。在框704处,进入一循环,诸如具有索引i的for循环。该循环从i=0到d-1按1计数。在该循环内:在框706处,如果bi=1,则设bi′=1;并且在框708处,如果bi=0,则设bi′=1且 在框710处离开该循环之后,设且i=d。在框712处,进入一循环,诸如具有索引i的while循环,该循环被配置成当i<wd时继续。在该循环内:在框714处,通过设 且来解决其中e是奇数且 的情况;并且在框716处,通过设bi′=emod 2且来解决另一种情况。在框718处,通过设i=i+1来递增i。在框720处,返回输出 其中每一K′j是d位长的二进制串,它具有{bi′}作为构成比特,并在必要时在左边用0来填充。
方法700首先通过利用 的这一事实将最后(即,最低有效)d位的每一位转换成要么为1要么为换言之,K′0中的每一位Kr′0,0≤r<d要么为1要么为该记录方法的其余部分从第d位向着最高位来处理每一位。如果当前位是1且具有与同一梳比特列中的最低有效位不同的符号,则当前位被设为并且由其余较高位构成的值加1以保持k的值不变。该过程生成wd个比特{bi′}来表示n位的奇整数k。
因此,图7的方法700在给出了奇标量k之后输出比特串{bi′}和的序列,诸如 并且对于而对于j≠0且0≤r<d, 其中 以上命题可如下证明。很明显,由方法700生成的每一满足对j≠0, 且 的条件:因为k是奇数,所以b0=1。框704-708将中的最后一位br′设为要么是1要么是因此, 在方法700中,如果 则bi′由框714设为或由框716设为0。如果b′imod d =1,则bi′由框716设为要么是0要么是1。这意味着每一中除了最低有效位之外的所有位要么是0,要么具有与最低有效位相同的值。
为证明 首先证明
这可通过归纳证明对0≤j<d, 来完成。该等式对于j=0成立,因为k是奇数。如果该等式对j-1<d为真,则方法700中的步骤2和3确保该公式对j<d也为真。通过设j=d-1,得到所需等式。
当在框714之前进入第i个循环时,将e的值表示为ei,其中i>d。断言
对i≥d总是为真。这可通过归纳来完成。通过使用等式2,得到 这证明了等式3对i=d成立。假定等式3对i≥d为真。如果ei是奇数且 则有 且并且
同一过程可用于证明当ei是偶数或b′imod d =1时 这意味着等式3对i+1也为真。因此,等式3对i≥d成立。
ei≤2n-i (4)
在i=d时已经进行了证明,假定对i为真,n>i≥d。如果ei是奇数,则该不等式意味着ei≤2n-i-1。在这一情况下,框714-716给出
即,在这一情况下,等式3对i+1为真。如果ei是偶数,则从框716中,
等式3仍成立。换言之,等式4对i+1≤n为真。因此,证明等式(4)对n≥i≥d为真。等式4导出en≤20=1。
由于得到n+1≤wd。如果n+1=wd,则ewd-1≡en≤1。如果n+1<wd,则从框714-716中,继续该过程,还得到ewd-1≤1。换言之,总是有ewd-1≤1。从框706-708中,有bd-1′=1。当框712-718的循环中i=wd-1时,由于bwd-1modd=bd-1′=1,因此执行框716,即将该结果应用于等式3产生所需结果,
图7的记录方法700仅对奇标量起作用。如果标量k是偶整数,则可使用图8的方法800。在图8中,首先对奇标量k′=k+1计算点乘,然后从结果中减去P以获得所需结果kP。
图8示出了仅有符号奇数梳法800的操作。在框802处,接收包括点P和整数k>0的输入。预计算阶段包括框804-810。在框804处,进行预计算,包括对所有(bw-1…,b2,b1)∈(Z2)w-1计算[bw-1…,b2,b1,1]P。在框806处,如果k是偶数,则设k′=k+1;否则设k′=k。(注意,还可以在k是偶数时设k′=k-1,否则设k′=k。)在框808处,将图7的方法700应用于k′以计算对应的梳比特列在框810处,点Q最初被设为无穷远点,即设Q=O。框812-818构成求值阶段。在框812处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框814处,设Q=2Q;并在框816处,设 在框818处,返回Q=kP形式的输出,其中如果k是偶数,则返回Q-P,否则返回Q。(注意,如果k′=k-1,则在k为偶数时加P)。
在实际的ECC应用中,实际仅使用具有大质数阶数ρ的子群中的椭圆曲线点。在这一情况下,可通过利用对偶数k,ρ-k为奇数且[ρ-k]P=-kP的事实,来修改仅有符号奇数梳法800以移除后处理框818。该修改的方法在图9中描述。
图9示出了用于奇阶数的点的仅有符号奇数梳法的操作。在框902处,接收包括奇阶数ρ的点P和整数k>0的输入。预计算阶段包括框904-910。在框904处,进行预计算运算。例如,对所有(bw-1,…,b2,b1)∈(Z2)w-1计算[bw-1,…,b2,b1,1]P。在框906处,设置k′。具体地,如果k是奇数,则设k′=k,否则设k′=ρ-k。在框908处,将图7的方法700应用于k′,由此计算对应于k′的梳比特列 在框910处,点Q最初被设为无穷远点,即,设Q=O.。框912-916构成了求值阶段。在框912处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框914处,设Q=2Q;并在框916处,设 在框918处,返回形为Q=kP的Q。注意,在以上框916中,对奇数k,Q被设为而对偶数k,Q被设为
在图7的记录方法700中,d被定义为而非图4的原始固定基梳法400中使用的如果n不能被w除尽,则本记录方法中的d与原始梳法中的完全相同,即,但是如果n可被w除尽,则本方法的d比方法400中使用的d大1,即将d增加1将导致预计算阶段中w-1次额外的加倍,以及求值阶段中一次额外的加法和一次额外的加倍。任何额外的运算都是不合需要的。幸运的是,当n可被d除尽时大多数额外的运算都可通过如将在以下经修改的梳法中描述的经深思熟虑的操纵来消除。
图10示出了对于n能被w除尽时的仅有符号奇数梳法的操作。在框1002处,接收包括点P和n位整数k>0的输入。预计算阶段包括框1004-1010。在框1004处,进行预计算运算。例如,对所有的(bw-1,…,b2,b1)∈(Z2)w-1.计算[bw-1…,b2,b1,1]P。在框1006处,对kmod 4求值,并且设置k′。具体地:如果kmod 4=0,则设k′=k/2+1;如果kmod 4=1,则设如果kmod 4=2,则设k′=k/2;而如果kmod 4=3,则设在框1008处,将方法700应用于k′以计算对应的梳比特列在框1010处,点Q最初被设为无穷远点,即,设Q=O。求值阶段包括框1012-1026。在框1012处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框1014处,设Q=2Q;并在框1016处,设在框101 8处,如果kmod 4=0,则设Q=Q-P。在框1020处,设Q=2Q。在框1022处,如果kmod 4=1,则设Q=Q-P;并且在框1024处,如果kmod 4=3,则设Q=Q+P。在框1026处,返回形为Q=kP的Q。
由于框1006,方法1000中使用d的值等于即与原始梳法400中的相同。与方法800相比,方法1000在n可被w除尽时节省了预计算阶段中的w-1次加倍。在这一情况下,如果kmod 4=2,则还在求值阶段中节省了一次加法。各种方法的更多性能比较将在本说明书的稍后给出。
方法800和1000不是抗SPA的。即使所有梳比特列在两种方法中都是非零的,标量k的最后一位的值也可被SPA在图8的框818中检测到,并且标量k的最后两位的信息可被SPA从图10中的框1016之后的步骤泄漏。由于所有对所有三种梳法800、900和1000的for循环中的运算是交替的点加倍和点加法的序列,即DADA…DADA,因此不会向SPA泄漏关于秘密标量k的任何信息。这意味着如果取每一标量k(或更具体地,图9的框906中的k′)为位的整数,其中ρ是点P的阶数,则方法900是抗SPA的梳法。这是研究抗SPA方法时的一种典型假设。通过在for循环之后插入可能的假运算,可将以上非抗SPA方法转换成抗SPA方法。方法800可被修改成以下抗SPA梳法。
图11示出了抗SPA的仅有符号奇数梳法1100的操作。在框1102处,接收包括点P和n位整数k>0的输入。预计算阶段包括框1104-1110。在框1104处,进行预计算运算。例如,对所有的(bw-1,…,b2,b1)∈(Z2)w-1.计算[bw-1,b2,b1,1]P。在框1106处,如果k是偶数,则设k′=k+1,否则设k′=k+2。在框1108处,将方法700应用于k′以计算对应的梳比特列在框1110处,点Q最初被设为无穷远点,即,设Q=O。求值阶段包括框1112-1120。在框1112处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框1114处,设Q=2Q;在框1116处,设并在框1118处,设P2=2P。在框1120处,返回形为Q=kP的输出。具体地,如果k是偶数,则返回Q-P,否则返回Q-P2。
如上所述,在研究抗SPA方法时,标量被认为是位的整数,其中ρ是点P的阶数,即在图7的方法700中。在这一情况下,如果可被w除尽,则图11的方法1100中使用的d的值比图4的原始梳法400中使用的d大1,导致更高的计算复杂度。以下抗SPA方法1200没有增加d,因此消除了所增加的计算复杂度。
图12示出了对可被w除尽时抗SPA的仅有符号奇数梳法1200的操作。在框1202处,接收包括ρ阶点P和n位整数k>0的输入。预计算阶段包括框1204-1212。在框1204处,进行预计算运算。例如,对所有的(bw-1,…,b2,b1)∈(Z2)w-1.计算[bw-1…,b2,b1,1]P。在框1206处,如果 则设k*=ρ-k,否则设k*=k。在框1208处,如果k*是偶数,则设k′=k*+1,否则设k′=k*+2。在框1210处,将方法700应用于k′以计算对应的梳比特列在框1012处,点Q最初被设为无穷远点,即,设Q=O。求值阶段包括框1214-1226。在框1214处,进入一循环,诸如具有索引i的for循环。该循环从i=d-1到0按-1递减计数。在该循环内:在框1216处,设Q=2Q;并在框1218处,如果 则设否则设在框1220处,设P2=2P。在框1222处,如果 则设Δ=1,否则设Δ=-1。在框1224处,如果k*是偶数,则设Q=Q+ΔP,否则设Q=Q+ΔP2。在框1226处,返回形为Q=kP的Q。注意,在图12的方法1200中,框1206确保k*小于或等于并且,k′应是位的整数以确保该方法中使用的d等于如果不是,则可在框1206中对偶数k*将k′设为k*-1,并对奇数k*设为k*-2以获得期望的结果。在这一情况下,框1222对 将Δ设为-1,否则设为1。
操作安全性
本节中讨论所公开的点乘法对于功率分析的安全性。首先着眼于对于SPA的安全性,接着是关于如何变换所公开的方法以抵抗DPA、二阶DPA和其它侧通道攻击的描述。
梳法900、1100和1200利用了点减法对于功率分析实际上与点加法相同的这一事实。另外,所公开的梳法在计算点乘时在每一循环执行一次点加法(或点减法)和一次加倍。这意味着对所有的标量k执行相同的序列。因此,SPA不能通过检查执行的功耗来提取关于秘密k的任何信息。换言之,梳法900、1100和1200是真正抗SPA的。
然而,抗SPA的点乘法不一定能抵抗DPA攻击。可使用随机化投影坐标或随机同构曲线来将所公开的方法变换成抗DPA方法。
当使用刚才所提到的随机化方案时,二阶DPA攻击可能仍能被成功地应用于梳法900、1100和1200。这一二阶攻击利用了功耗与所加载的数据的汉明(hamming)权重之间的相关,以确定加载了哪一为阻碍这样的二阶DPA攻击,可使用在获得表中的点之后随机化所有预计算的点的方案,使得没有固定的汉明权重。
近来提出的DPA攻击是对许多随机化方案的细化攻击。该攻击采用坐标之一为0的特殊点。这一DPA攻击可通过简单地选择在Fp(p>3)上定义的椭圆曲线E:y2=x3+ax+b来解决,其中b不是模数p的二次剩余,并且在应用所公开的标量操纵方法时拒绝任何点(x,0)作为输入点。如果势(cardinality)#E(Fp)是大质数,则点(x,0)不能是合格的输入点,因为它们不在椭圆曲线上。与上述随机化技术和措施相结合,所公开的梳法可阻碍所有的功率分析攻击。
运算效率
梳法800-1200需要2w-1个点的存储。在这些梳法的预计算阶段中,首先计算2dP,22dP,…,2(w-1)dP。这花费(w-1)次点加倍。然后,以与对图4的方法400的预计算阶段相同的方式来计算所有可能的组合[bw-1,…,b2,b1,1]P,其中(bw-1,…,b2,b1)∈(Z2)w-1,其成本是2w-1-1点加法。所公开的梳法在预计算阶段中的总成本因此是{(w-1)d}D+{2w-1-1}A。梳法800-1200在求值阶段中的时间成本由于for循环之后的后处理而只有很小的变化。假定标量k是随机分布的,则对图8的方法800,求值阶段中的平均成本是对图9的方法900是(d-1)D+(d-1)A,对图10的方法1000是而对图11和12的方法1100和1200都是dD+dA。
可在图8-10的固定基梳法800、900和1000与图4的原始固定基梳法400之间作出比较。表1列出了对于这些方法的空间和时间成本。表1中的梳法800-1000储存2w-1,这约是原始梳法400中所储存的2w-1个点的一半。另外,梳法800-1000比图4的原始梳法400在预计算阶段中节省了2w-1-w次点加法。求值阶段对表1中的所有四种方法具有相似的时间成本。为维护对预计算的点大致相同的存储空间,可按使得w的值被选为w=w1+1,即比梳法400中使用的值w=w1大1的方式来利用方法800-1000。这得到与梳法400相似的存储(2w1对比2w1-1),但在求值阶段中有更快的计算,这要归功于方法800-1000中使用的较小的d。
可在图9、11和12的公开的抗SPA梳法900、1100和1200与抗SPA的方法400的修改之间作出比较。对这些抗SPA方法的空间和时间成本在表2中列出。再一次,抗SPA的梳法900、1100和1200使用经修改的梳法400的约一半的存储用于预计算的点,但在预计算阶段中节省了2w-1-w次点加法。方法1100和1200在求值阶段具有与经修改的方法400相同的时间成本,而公开的方法900在该阶段中节省了一次点加倍和一次点加法。从表2中的数据中,如果n不能被w除尽,则方法900是最高效的抗SPA的梳法。当n可被w除尽时,推荐方法1200,因为在这一情况下,比大1,导致更高的时间成本。
表1:对固定基梳法400和固定基梳法800-1000的空间和平均时间成本的比较。
此处公开的抗SPA的实施例与其它抗SPA的点乘法的比较是有益的。对两种抗SPA的m进制标量乘法(一种是抗SPA的扩展的m进制方法,另一种是使用图6的记录方法600的m进制方法)的空间和时间成本在表3的第二和第三列中列出。从表2和3中,图9、11和12的所公开的抗SPA的梳法900、1100和1200储存了与使用记录方法600的m进制方法相同数目的预计算的点,即比其它抗SPA的m进制方法少一个点。
为使点乘法能抵抗SPA攻击,需要额外的运算来消除该密码执行过程对k的具体值的依赖性。这意味着与类似方案的非抗SPA方法比较,抗SPA方法的效率一般会降低。如果考虑组合的预计算和求值阶段中的总成本,则最高效的点乘法是非抗SPA的有符号m进制窗法。对有符号m进制窗法的空间和时间成本在表3的第一列中列出。该方法需要储存较少的点,但是比所有抗SPA方法运行快得多。在其中安全性是最高优先级的许多应用中,空间和时间损失几乎不重要。如果仅考虑求值阶段,则所公开的梳法要比有符号m进制窗法快。
应用示例
方法800-1200可在许多ECC应用中使用。如果可提前或由别人计算预计算,则它们是特别高效的,这是许多应用中的情况。本节描述了两个这种应用情形。一个示例是其中使用智能卡来提供防篡改且安全的环境来储存秘密和执行关键密码运算,而一单独的、更强大的计算子系统负责其它操作的系统。蜂窝电话和无线应用协议(WAP)设备是这种系统的典型示例。在蜂窝电话中,用户标识模块(SIM)卡是安全地储存关键的用户信息以及负责提供对无线网络的合法接入的认证和加密方法的智能卡。电话的CPU、存储器和存储负责其它操作。无线身份模块(WIM)卡在WAP设备中扮演了相似的角色。在这一系统中,如果由设备的CPU计算的点是可观察的但不可篡改的,则可能将预计算委托给更强大的设备的CPU,而使用智能卡来执行求值阶段。注意,预计算不包含任何秘密,除非点本身是秘密。
椭圆曲线数字签名算法(ECDSA)是另一示例。ECDSA是在称为数字签名标准的美国政府标准中指定的数字签名算法(DSA)的椭圆曲线模拟。ECDSA在许多标准中已被接受。它包括签名生成和验证。设P是公共已知的椭圆曲线点,而ρ是点P的质数阶数。按以下方式来生成和验证签名:ECDSA签名生成:为签署消息m,与密钥对(d,Q)相关联的实体A执行以下步骤:
1.选择随机或伪随机整数k,使得1≤k<ρ。
2.计算kP=(x1,y1)和r=x1 mod ρ。如果r=0,则到步骤1。
3.计算k-1mod ρ。
4.计算e=SHA-1(m),其中SHA-1是在安全散列标准中指定的安全散列算法(SHA)。
5.计算s=k-1(e+dr)mod ρ。如果s=0,则到步骤1。
6.由A对消息m生成的签名是(r,s)。
ECDSA签名验证:为验证A在消息m上的签名,实体B获得A的公钥Q,并执行以下步骤:
1.验证r和s是区间[1,ρ-1]中的整数。
2.计算e=SHA-1(m)。
3.计算w=s-1modρ。
4.计算u1=ew mod ρ和u2=rw mod ρ。
5.计算X=u1P+u2Q=(x1,y1)。如果X=O,则拒绝该签名。否则,计算v=x1 mod ρ。
6.当且仅当v=r时接受该签名。
对于ECDSA签名,P、ρ和r、s、e是公共值。标量k必须保密。否则,可从等式s=k-1(e+dr)mod ρ中导出私钥d。因此,私钥d和ECDSA签名生成必须被安全地储存和执行。这可用储存P的预计算的点并使用抵抗功率分析的点乘法来计算kP的智能卡来方便地实现。此处所公开的抗SPA的梳法对于这一应用是理想的,因为在生成签名时仅执行求值阶段。另一方面,ECDSA签名验证不使用任何秘密密钥。在验证ECDSA签名时,此处所公开的非抗SPA梳法可用于计算u1P,并且使用有符号m进制窗法来计算u2Q。这是点乘法的高效组合,因为P的预计算的点可被事先计算,并且在这一情况下梳法比其它方法更高效。作为对比,Q的预计算的点不能被事先计算,因为公钥Q在各个实体之间不同。有符号m进制窗法在这一情况下是适当的。
示例性方法
图13示出了一个示例实现1300,它示出适于在椭圆曲线密码系统的椭圆曲线点乘中使用的记录系统的操作。实现1300被配置成在许多不同的计算环境中使用,诸如智能卡、蜂窝电话、工作站、或大型计算环境。在框1302处,将奇整数k转换成二进制表示。该二进制表示可以是例如2的幂的系数。框1302的转换可用多种方式来执行,诸如框1304-1308处讨论的示例性转换。在框1304处,转换奇整数k的二进制表示的d个最低有效位中的每一位。该转换以符合在每一比特列中有要么为1要么为的最低有效位的方式来执行。注意,该转换可按图7中的框704-708所公开的方式来执行。在框1306处,转换该二进制表示中高d的有效位,使得所得的第i个位置处的位要么是0要么是有符号的1,其中有符号的1的符号是根据第(i mod d)个位置上的位来定的。框1306的转换可用各种不同方式来执行,诸如图7的框712-718所示的或框1308所示的方式。在框1308处,将当前位的符号与同一梳比特列中的最低有效位的符号进行比较。在符号不同且当前位是1的情况下,将当前位设为并且将下一较高有效位的值递增1以维持k的值。在框1310处,将该二进制表示配置为梳比特列,其中每一比特列是有符号奇整数。更具体而言,实现1300可对每一梳比特列生成 和 其中被定义为-1。
图14示出了椭圆曲线点乘系统的操作1400的一个示例。在框1402处,接收点P和整数k,其中k是偶或奇整数。在框1404处,至少部分地基于k的值来设置k′,其中k′是奇整数。例如,在图8的框806处,基于k的状态是偶还是奇来设置k′。在框1406处,将奇整数k′转换成包括梳比特列的二进制表示,其中每一比特列是一有符号奇整数。例如,这可根据图7的方法700来执行。因此,操作1406可对每一梳比特列产生 和 j≠0,其中可以被定义为-1。在框1408处,处理梳比特列和点P以计算值Q,其中Q可对不同的k值不同地设置。例如,框818、916、1018、1022-1024、1120和1222-1224都部分地基于k来设置Q。在框1410处,输出Q,其中Q表示kP。
此处所描述的方法的任一种都可在智能卡、计算机系统或任何数字处理设备和/或组件上执行。例如,该方法可通过执行处理器和/或计算机可读介质上定义的指令来执行。如此处所使用的“处理器可读介质”可以是可包含或储存供处理器使用或执行的指令的任何装置,不论是在智能卡、计算机还是任何计算或运算设备和/或组件上。处理器可读介质可以是,但不限于,电、磁、光、电磁、红外或半导体系统、装置、设备或组件。处理器可读介质的更具体示例包括智能卡上的存储器组件、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光和/或磁存储器、可写紧致盘(CD-RW)、以及便携式紧致盘只读存储器(CDROM)等等。
尽管借助流程图和与流程图的框相关联的文本来公开了一个或多个方法,但是可以理解,这些框不一定要按照呈现它们的顺序来执行,并且替换顺序可达到相似的优点。此外,该方法并非是穷尽的,并且可单独或彼此组合执行。
示例性计算环境
图15示出了适用于实现椭圆曲线密码系统的一个示例性计算环境。尽管示出了一个具体配置,但是可替换任何计算环境来满足任何特定应用的要求。计算机环境1500包括计算机1502形式的通用计算系统。计算机1502的组件可包括但不限于,一个或多个处理器或处理单元1504、系统存储器1506以及将包括处理器1504的各类系统组件耦合至系统存储器1506的系统总线1508。系统总线1508表示若干种总线结构类型的任一种的一个或多个,包括存储器总线或存储器控制器、外围总线、外围部件互连(PCI)总线、加速图形端口、以及使用各类总线体系结构的处理器或局部总线。
计算机1502通常包括各种计算机可读介质。这类介质可以是可由计算机1502访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。系统存储器1506包括诸如随机存取存储器(RAM)1510等易失性存储器,和/或诸如只读存储器(ROM)1512等非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)1514包括如在启动时帮助在计算机1502内的元件之间传输信息的基本例程,它通常储存在ROM 1512中。RAM 1510通常包含处理单元1504立即可访问和/或当前正在操作的数据和/或程序模块。
计算机1502也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图15示出了对不可移动、非易失性磁介质(未示出)进行读写的硬盘驱动器1516,对可移动、非易失性磁盘1520(如,“软盘”)进行读写的磁盘驱动器1518,以及对可移动、非易失性光盘1524,如CD-ROM、DVD-ROM或其它光介质进行读写的光盘驱动器1522。硬盘驱动器1516、磁盘驱动器1518和光盘驱动器1522的每一个通过一个或多个数据介质接口1525连接到系统总线1508。或者,硬盘驱动器1516、磁盘驱动器1518和光盘驱动器1522可通过SICSI接口(未示出)连接到系统总线1508。
盘驱动器及其相关联的计算机可读介质为计算机1502提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管示例示出了硬盘1516、可移动磁盘1520和可移动光盘1524,然而可以理解,可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等,也可用于实现示例性计算系统和环境。
任意数目的程序模块可储存在硬盘1516、磁盘1520、光盘1524、ROM 1512和/或RAM 1510中,作为示例,包括操作系统1526、一个或多个应用程序1528、其它程序模块1530以及程序数据1532。这些操作系统1526、一个或多个应用程序1528、其它程序模块1530和程序数据1532(或其某一组合)的每一个可包括用于用户网络接入信息的高速缓存方案的一个实施例。
计算机1502可包括被标识为通信介质的各种计算机/处理器可读介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
用户可以通过诸如键盘1534和定点设备1536(如,“鼠标”)等输入设备向计算机1502输入命令和信息。其它输入和/或外围设备1538(未具体示出)可包括智能卡和/或智能卡读取器、话筒、操纵杆、游戏垫、圆盘式卫星天线、串行端口、扫描仪和/或其类似物。这些和其它输入设备通过耦合至系统总线1508的输入/输出接口1540连接到处理单元1504,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器1542或其它类型的显示设备也通过接口,如视频适配器1544连接到系统总线1508。除监视器1542之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机1546等组件,它们可通过输入/输出接口1540连接到计算机1502。
计算机1502可以使用到一个或多个远程计算机,如远程计算设备1548的逻辑连接在网络化环境中操作。作为示例,远程计算设备1548可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它常见的网络节点等等。远程计算设备1548被示为可包括此处相对于计算机1502所描述的许多或所有元件和特征的便携式计算机。
计算机1502和远程计算机1548之间的逻辑连接被描述为局域网(LAN)1550和通用广域网(WAN)1552。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。当在LAN网络环境中实现时,计算机1502通过网络接口或适配器1554连接至局域网1550。当在WAN网络环境中使用时,计算机1502通常包括调制解调器1556或用于通过广域网1552建立通信的其它装置。调制解调器1556可以对计算机1502是内置或外置的,它通过输入/输出接口1540或其它适当的机制连接至系统总线1508。可以理解,示出的网络连接是示例性的,也可以使用在计算机1502和1548之间建立通信链路的其它装置。
在诸如用计算环境1500示出的网络化环境中,相对于计算机1502描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,远程应用程序1558驻留在远程计算机1548的存储器设备中。为说明起见,应用程序和诸如操作系统等其它可执行程序组件在此处被示为离散的框,尽管可以认识到,这些程序和组件在不同的时刻驻留在计算设备1502的不同存储组件中,并由计算机的数据处理器执行。
具有内部智能卡1562的蜂窝电话1560提供了其中可利用梳法800-1400的另一环境。该蜂窝电话可被配置成与计算机1502通信,这可以与蜂窝电话运营商或服务相关联。在这一环境中,可使用ECC方法来例如建立蜂窝电话1560作为(在此情况中操作计算机1502的)蜂窝服务供应商的合法顾客的真实性。
结论
图7的新颖的仅有符号奇数梳记录方法700将用于奇整数的梳序列的梳比特列转换成仅有符号奇数非零表示。使用该记录方法,图8-12的几种新颖的非抗SPA和抗SPA的梳法800-1200可被配置成为椭圆曲线密码系统计算点乘。所公开的梳法与已知的非抗SPA和抗SPA的梳法相比储存更少的点且运行得更快。另外,所公开的仅有符号奇数梳法继承了梳法的优点-当事先或在别处计算预计算的点时,比窗法和非抗SPA有符号m进制窗法运行得快得多。因此,图8-12的仅有符号奇数梳法800-1200很好地适用于其中功率和计算资源极其珍贵的智能卡和嵌入式系统。当在选择椭圆曲线和参数时与随机化技术和特定预防措施组合时,该抗SPA梳法可阻碍所有的侧通道攻击。
最后,尽管本公开内容的各方面包括具体描述较佳实施例的结构和/或方法特征的语言,但是可以理解,所附权利要求书并不限于所描述的具体特征或动作。相反,这些具体特征和动作仅是作为示例性实现来公开的,并且代表了更一般的概念。此外,此处通过首先标识多个特征可解决的示例性问题来描述了这些特征。这一解释方式并不构成对其他人以此处指定的方式理解和/或清楚表达该问题的认可。对相关领域中存在的问题的理解和清楚表达被理解为是本发明的一部分。更具体而言,此处不认可本公开内容的背景一节中描述的特征构成现有技术。此外,概述一节和本公开内容的摘要中所述的主题并不限制权利要求书中所述的主题。
Claims (11)
1.一种用于椭圆曲线点乘法加密的方法,包括:
接收点P和整数k;
根据下述条件来设定k′:当k为偶数时设定k′=k+1,否则设定k′=k;
将一奇整数k′转换成一二进制表示;以及
将所述二进制表示配置为梳比特列,其中所述梳比特列中的每一个是一有符号奇整数,其中所述配置包括:
将所述奇整数k′的二进制表示的d个最低有效位的每一位转换为要么为1要么为-1,其中d为整数;以及
转换具有高于d的有效位的所述二进制表示的位,使得所得的第i个位置处的位要么是0要么是有符号的1,其中所述有符号的1的符号是根据第(i mod d)个位置处的位来定的;
将点Q设为初始的无穷远值;
配置一循环,在该循环中,使用所转换的二进制表示和所述点P来在操作中处理Q;以及
输出Q。
6.如权利要求1所述的方法,其特征在于,还包括:
在处理Q的循环中,插入假运算以使得所述方法能抵抗简单功率分析SPA。
7.如权利要求1所述的方法,其特征在于,还包括:
在处理Q的循环中,利用椭圆曲线的随机化技术和选择来提供对差分功率分析DPA的抵抗性。
9.一种用于椭圆曲线点乘法加密的计算系统,所述计算系统包括:
用于接收点P和整数k的装置;
用于根据下述条件来设定k′的装置:当k为偶数时设定k′=k+1,否则设定k′=k;
用于将一奇整数k′转换成一二进制表示的装置;以及
用于将所述二进制表示配置为梳比特列的装置,其中所述梳比特列中的每一 个是一有符号奇整数,其中所述配置装置包括:
用于将所述奇整数k′的二进制表示的d个最低有效位的每一位转换为要么为1要么为-1的装置,其中d为整数;以及
用于转换具有高于d的有效位的所述二进制表示的位的装置,使得所得的第i个位置处的位要么是0要么是有符号的1,其中所述有符号的1的符号是根据第(i mod d)个位置处的位来定的;
用于将点Q设为初始的无穷远值的装置;
用于配置一循环的装置,在该循环中,使用所转换的二进制表示和所述点P来在操作中处理Q;以及
用于输出Q的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/173,251 | 2005-07-01 | ||
US11/173,251 US7602907B2 (en) | 2005-07-01 | 2005-07-01 | Elliptic curve point multiplication |
PCT/US2006/025498 WO2007005563A2 (en) | 2005-07-01 | 2006-06-29 | Elliptic curve point multiplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101507176A CN101507176A (zh) | 2009-08-12 |
CN101507176B true CN101507176B (zh) | 2012-07-04 |
Family
ID=37605020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800315433A Active CN101507176B (zh) | 2005-07-01 | 2006-06-29 | 椭圆曲线点乘法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7602907B2 (zh) |
EP (1) | EP1889391B1 (zh) |
JP (1) | JP5301989B2 (zh) |
KR (1) | KR101255393B1 (zh) |
CN (1) | CN101507176B (zh) |
CA (1) | CA2614120C (zh) |
WO (1) | WO2007005563A2 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7505585B2 (en) * | 2002-06-25 | 2009-03-17 | The United States Of America As Represented By The Director, The National Security Agency | Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same |
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 |
JP4682852B2 (ja) * | 2006-01-16 | 2011-05-11 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
KR100850202B1 (ko) * | 2006-03-04 | 2008-08-04 | 삼성전자주식회사 | Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법 |
US8050403B2 (en) | 2007-03-06 | 2011-11-01 | Research In Motion Limited | Method and apparatus for generating a public key in a manner that counters power analysis attacks |
US8559625B2 (en) * | 2007-08-07 | 2013-10-15 | Inside Secure | Elliptic curve point transformations |
JP4861272B2 (ja) * | 2007-08-31 | 2012-01-25 | 日本電信電話株式会社 | 楕円曲線暗号演算装置、方法、プログラム |
US7991162B2 (en) * | 2007-09-14 | 2011-08-02 | University Of Ottawa | Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields |
US8619977B2 (en) * | 2008-01-15 | 2013-12-31 | Inside Secure | Representation change of a point on an elliptic curve |
US8233615B2 (en) * | 2008-01-15 | 2012-07-31 | Inside Secure | Modular reduction using a special form of the modulus |
JP2010068293A (ja) * | 2008-09-11 | 2010-03-25 | Toshiba Corp | 秘密情報を用いて演算する装置、方法およびプログラム |
EP2169535A1 (en) * | 2008-09-22 | 2010-03-31 | Thomson Licensing | Method, apparatus and computer program support for regular recoding of a positive integer |
JP5225115B2 (ja) * | 2009-01-15 | 2013-07-03 | 株式会社東芝 | Naf変換装置 |
US8542820B2 (en) * | 2009-02-05 | 2013-09-24 | Infineon Technologies Ag | Apparatus for calculating a result of a scalar multiplication |
JP5327380B2 (ja) * | 2010-03-31 | 2013-10-30 | 富士通株式会社 | 暗号処理装置および暗号処理方法 |
WO2012090288A1 (ja) | 2010-12-27 | 2012-07-05 | 富士通株式会社 | 暗号処理装置、暗号処理方法、およびプログラム |
WO2012090284A1 (ja) * | 2010-12-27 | 2012-07-05 | 三菱電機株式会社 | 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム |
CN102790673B (zh) * | 2011-05-17 | 2017-05-10 | 上海华虹集成电路有限责任公司 | 一种适用于ecc算法的抗错误攻击的方法 |
CN102306091B (zh) * | 2011-07-08 | 2014-04-16 | 西安电子科技大学 | 椭圆曲线点乘硬件快速实现方法 |
CN102902897B (zh) * | 2011-07-25 | 2016-08-24 | 上海华虹集成电路有限责任公司 | 适用于ecc点乘算法的抗无穷远点攻击的方法 |
WO2013116916A1 (en) * | 2012-02-09 | 2013-08-15 | Irdeto Canada Corporation | System and method for generating and protecting cryptographic keys |
FR3010210B1 (fr) * | 2013-08-29 | 2017-01-13 | Stmicroelectronics Rousset | Protection d'un calcul contre des attaques par canaux caches |
US9645794B2 (en) * | 2014-09-23 | 2017-05-09 | Texas Instruments Incorporated | Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography |
US9590805B1 (en) * | 2014-12-23 | 2017-03-07 | EMC IP Holding Company LLC | Ladder-based cryptographic techniques using pre-computed points |
JP6293681B2 (ja) * | 2015-01-19 | 2018-03-14 | 日本電信電話株式会社 | マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム |
US9531531B2 (en) * | 2015-05-06 | 2016-12-27 | Qualcomm Incorporated | Methods and devices for fixed execution flow multiplier recoding and scalar multiplication |
CN106301770A (zh) * | 2016-08-22 | 2017-01-04 | 大唐微电子技术有限公司 | 一种Java卡SM2数字签名验证或信息加密的方法及装置 |
CN108242994B (zh) | 2016-12-26 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 密钥的处理方法和装置 |
KR101914028B1 (ko) * | 2017-04-28 | 2018-11-01 | 삼성에스디에스 주식회사 | 부채널 공격에 안전한 연산 장치 및 방법 |
GB201707168D0 (en) * | 2017-05-05 | 2017-06-21 | Nchain Holdings Ltd | Computer-implemented system and method |
CN112119609A (zh) * | 2018-05-14 | 2020-12-22 | 区块链控股有限公司 | 用于传达秘密的方法和系统 |
CN109831290B (zh) * | 2019-01-24 | 2021-06-11 | 上海交通大学 | 针对基于cave算法认证协议的侧信道分析方法 |
CN112068799B (zh) * | 2019-06-11 | 2022-08-02 | 云南大学 | 一种最优带符号二进制快速计算方法以及椭圆曲线标量乘法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1280726A (zh) * | 1997-12-05 | 2001-01-17 | 保密信息技术公司 | 优化椭圆曲线密码计算的变换方法 |
US6252959B1 (en) * | 1997-05-21 | 2001-06-26 | Worcester Polytechnic Institute | Method and system for point multiplication in elliptic curve cryptosystem |
US6298135B1 (en) * | 1999-04-29 | 2001-10-02 | Motorola, Inc. | Method of preventing power analysis attacks on microelectronic assemblies |
US6430588B1 (en) * | 1998-09-03 | 2002-08-06 | Nippon Telegraph And Telephone Corporation | Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method |
CN1505306A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线加密解密方法和装置 |
CN1505313A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线签名和验证签名方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3145368B2 (ja) * | 1998-09-03 | 2001-03-12 | 日本電信電話株式会社 | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 |
JP2003091236A (ja) * | 2001-09-19 | 2003-03-28 | Nagoya Industrial Science Research Inst | 楕円曲線スカラー倍点演算装置、楕円曲線スカラー倍点演算方法、楕円曲線スカラー倍点演算プログラム及び記録媒体 |
JP4423900B2 (ja) * | 2003-08-05 | 2010-03-03 | 株式会社日立製作所 | 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム |
-
2005
- 2005-07-01 US US11/173,251 patent/US7602907B2/en active Active
-
2006
- 2006-06-29 CA CA2614120A patent/CA2614120C/en active Active
- 2006-06-29 KR KR1020077030378A patent/KR101255393B1/ko active IP Right Grant
- 2006-06-29 WO PCT/US2006/025498 patent/WO2007005563A2/en active Application Filing
- 2006-06-29 CN CN2006800315433A patent/CN101507176B/zh active Active
- 2006-06-29 JP JP2008520297A patent/JP5301989B2/ja active Active
- 2006-06-29 EP EP06785921.5A patent/EP1889391B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252959B1 (en) * | 1997-05-21 | 2001-06-26 | Worcester Polytechnic Institute | Method and system for point multiplication in elliptic curve cryptosystem |
CN1280726A (zh) * | 1997-12-05 | 2001-01-17 | 保密信息技术公司 | 优化椭圆曲线密码计算的变换方法 |
US6430588B1 (en) * | 1998-09-03 | 2002-08-06 | Nippon Telegraph And Telephone Corporation | Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method |
US6298135B1 (en) * | 1999-04-29 | 2001-10-02 | Motorola, Inc. | Method of preventing power analysis attacks on microelectronic assemblies |
CN1505306A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线加密解密方法和装置 |
CN1505313A (zh) * | 2002-11-29 | 2004-06-16 | 海南信安数据系统有限公司 | 椭圆曲线签名和验证签名方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20080019642A (ko) | 2008-03-04 |
KR101255393B1 (ko) | 2013-04-17 |
JP2009500676A (ja) | 2009-01-08 |
CA2614120C (en) | 2015-02-24 |
CA2614120A1 (en) | 2007-01-11 |
EP1889391A4 (en) | 2016-11-30 |
US20070064931A1 (en) | 2007-03-22 |
JP5301989B2 (ja) | 2013-09-25 |
WO2007005563A2 (en) | 2007-01-11 |
WO2007005563A3 (en) | 2009-04-23 |
US7602907B2 (en) | 2009-10-13 |
EP1889391A2 (en) | 2008-02-20 |
CN101507176A (zh) | 2009-08-12 |
EP1889391B1 (en) | 2020-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101507176B (zh) | 椭圆曲线点乘法 | |
Souyah et al. | An image encryption scheme combining chaos-memory cellular automata and weighted histogram | |
CN100583739C (zh) | 加密装置、加密方法及其存储介质 | |
US7676037B2 (en) | Cryptographic method capable of protecting elliptic curve code from side channel attacks | |
Banegas et al. | DAGS: Key encapsulation using dyadic GS codes | |
US8953784B2 (en) | Lightweight stream cipher cryptosystems | |
Ghazanfaripour et al. | Designing a digital image encryption scheme using chaotic maps with prime modular | |
Coron et al. | High order masking of look-up tables with common shares | |
CN101911009B (zh) | 用于以签名方案进行非对称加密的对策方法和设备 | |
Hart et al. | A Practical Cryptanalysis of WalnutDSA^ TM TM | |
Kumar et al. | Intertwining logistic map and Cellular Automata based color image encryption model | |
da Silva et al. | A new approach towards fully homomorphic encryption over geometric algebra | |
EP3125145B1 (en) | White-box elliptic curve point multiplication | |
Vollala et al. | Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography | |
Marouf et al. | Comparative study of efficient modular exponentiation algorithms | |
JP2007187908A (ja) | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 | |
Gorbenko et al. | Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form | |
Beullens et al. | Practical attacks against the Walnut digital signature scheme | |
US7680272B2 (en) | Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code | |
AU2021106274A4 (en) | A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis) | |
Knezevic et al. | Modular reduction without precomputational phase | |
Orsini et al. | Bootstrapping BGV ciphertexts with a wider choice of p and q | |
US20230195943A1 (en) | Processor architecture and related techniques | |
Cambou et al. | Key Distribution for Post Quantum Cryptography using Physical Unclonable Functions | |
Krikun et al. | Parallelized Montgomery Exponentiation in GF (2 k) for Diffie–Hellman Key Exchange Protocol. |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150429 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150429 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |