[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN102109974A - 适用于椭圆曲线密码安全保护的随机点生成方法 - Google Patents

适用于椭圆曲线密码安全保护的随机点生成方法 Download PDF

Info

Publication number
CN102109974A
CN102109974A CN200910202023XA CN200910202023A CN102109974A CN 102109974 A CN102109974 A CN 102109974A CN 200910202023X A CN200910202023X A CN 200910202023XA CN 200910202023 A CN200910202023 A CN 200910202023A CN 102109974 A CN102109974 A CN 102109974A
Authority
CN
China
Prior art keywords
point
elliptic curve
random
generation method
applicable
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.)
Pending
Application number
CN200910202023XA
Other languages
English (en)
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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN200910202023XA priority Critical patent/CN102109974A/zh
Publication of CN102109974A publication Critical patent/CN102109974A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种适用于ECC(椭圆曲线密码)安全保护的随机点生成方法,包括如下步骤:步骤1,得到某个椭圆曲线上除无穷远点之外的一个固定点P;步骤2,选取一个随机数r;步骤3,计算r与P的标量乘法,得到计算结果Q;步骤4,判断Q是否为无穷远点,若为无穷远点,则转到步骤2;否则,进入下一步;步骤5,得到某个椭圆曲线上的随机点Q。由于通过上述方法能够避免传统方法中大数的开方或解一元二次方程运算,也就避免了大量模乘运算,因此本发明中的方法能够大幅改善椭圆曲线上随机点生成的运算速度和时间。

Description

适用于椭圆曲线密码安全保护的随机点生成方法
技术领域
本发明涉及ECC(椭圆曲线密码)安全保护中需要对椭圆曲线上的点进行掩码的方法,具体涉及一种适用于ECC安全保护的随机点生成方法,尤其适用于包含ECC算法的芯片的应用。
背景技术
ECC(椭圆曲线密码)算法容易受到DPA(差分功耗分析)攻击,对抗这种攻击的一种防御措施就是在公钥生成过程中用椭圆曲线上一个随机点对计算的输入点进行掩码,用掩码后的点和标量计算公钥,然后对计算结果进行恢复处理,最后得出正确的公钥。这样,每次生成公钥时芯片的功耗公钥都会随机变化,消除了功耗和密钥之间的相关性,达到保护密钥的目的。
根据传统方法描述,生成椭圆曲线上随机点最简单的方法就是随机选取某个椭圆曲线定义域内的横坐标,通过该椭圆曲线方程计算出纵坐标。但是,椭圆曲线方程中纵坐标都是二次项式,计算纵坐标的值就需要进行开方或解一元二次方程运算,而开方或解一元二次方程运算又是通过大量的模乘运算实现的,所消耗的时间代价十分巨大。
下面是椭圆曲线算术中的大数开方或解一元二次方程算法:
1.有限域Fp中求平方根:
p为质数,g为满足0≤g<p的整数。g的根为整数y,满足y2≡g(mod p)(式中符号“≡”表示等式两边都做mod p运算)。如果g=0,只有一个根0;如果g≠0,g有0个或2个根。若一个根为y,那么另一个根为p-y。
输入:域Fp,g;
输出:g的平方根y。
算法1:当p≡3(mod 4),计算整数u=(p-3)/4。
1)计算y=gu+1 mod p
2)计算z=y2 mod p.
如果z=g,表示有两个根,那么输出y;否则表示没有根,输出“nosquare roots exist.(没有平方根存在)”。
算法2:当p≡5(mod8),计算整数u=(p-5)/80。
1)计算γ=(2g)umodp
2)计算i=2gγ2modp
3)计算y=gγ(i-1)modp
4)计算z=y2modp
5)如果z=g,表示有两个根,那么输出y;否则表示没有根,输出“没有平方根存在”。
算法3:当p≡1(mod4),计算整数u=(p-1)/4。
1)令Q=g;
2)产生随机数0≤P<p;
3)计算Lucas序列元素:
U=U2u+1modp,V=V2u+1modp;
其中元素U和V的计算方法为:
U0=0,U1=1,Uk=PUk-1-QUk-2,k>2;
V0=2,V1=P,Vk=PVk-1-QVk-2,k>2。
4)如果V2=4Q(modp),输出y=V/2modp并跳出程序;
5)如果U≠(1modp),输出“没有平方根存在”并跳出程序;
6)返回步骤2)。
2.解有限域F2 m中的二元方程(z2+z=β)
如果β是有限域F2 m中的元素,那么方程z2+z=β有0或2个解。当β=0,解为0和1;当β≠0且其中一个解为z,那么另一个解为z+1。
下面的算法为在有限域F2 m中(多项式基)求方程z2+z=β的解。
输入:域F2 m,β;
输出:方程z2+z=β的解z。
1)随机选取t∈F2 m
2)令z=0,w=β。
3)i从1到m-1,做以下两个步骤:
A.令z=z2+w2t。
B.令w=w2+β。
如果w≠0,输出“无解存在”并跳出程序。
从上述算法可以看出大数开方或解一元二次方程运算需要用到大量模乘运算,我们假设椭圆曲线为y2=x3-3x+b,其数据长度为384位,模幂运算可以认为是模乘组合起来的,那么从上面的算法来看平均最少也需要大概576次模乘才能完成开方。可见,传统生成椭圆曲线上随机点方法所需大量模乘运算的时间代价消耗过大。
发明内容
本发明要解决的技术问题是提出了一种适用于ECC安全保护的随机点生成方法,能够通过使用随机数和椭圆曲线上固定点做标量乘法来实现椭圆曲线上随机点的生成,避免了传统方法生成椭圆曲线上随机点的大数开方或解一元二次方程运算,因此也减少了其所消耗的时间代价。
为解决上述技术问题,本发明提出了一种适用于ECC安全保护的随机点生成方法,包括如下步骤:
(1)得到某个椭圆曲线上除无穷远点之外的一个固定点P;
(2)选取一个随机数r;
(3)计算r与P的标量乘法,得到计算结果Q;
(4)判断Q是否为无穷远点,若为无穷远点,则转到步骤2;否则,进入下一步;
(5)得到某个椭圆曲线上的随机点Q。
步骤1中所述的某个椭圆曲线上的一个固定点P,包括该椭圆曲线上除无穷远点之外的任何一个固定点。
步骤2中所述的选取一个随机数r,包括随机选取一个64位或64位以内的随机数r。
步骤3中所述的r与P的标量乘法,可以采用任何公知的方法,例如从左向右的二进制方法、从右向左的二进制方法、二进制NAF算法、窗口NAF算法、标量分段算法、Montgomery算法。
步骤3中所述的r与P的标量乘法里椭圆曲线上点的坐标系,可以采用任何公知的坐标系,例如仿射坐标、标准射影坐标、Chudnovsky射影坐标、雅可比射影坐标、LD射影坐标。
步骤4中所述的判断Q是否为无穷远点,可以采用任何公知的判断方法,例如判断射影坐标中点的Z坐标是否为0、判断仿射坐标点加或倍点计算中斜率是否为无穷大。
下面对本发明适用于ECC安全保护的随机点生成方法的原理进行一下说明:
本发明适用于ECC安全保护的随机点生成方法的主体在于随机数和椭圆上一个固定点的标量乘法,只要选取足够长的随机数,便可以在保证安全性前提下快速得到该椭圆曲线上的随机点,以用于加密算法保护的点掩码措施。与传统椭圆曲线上随机点生成的方法相比,本发明中所采用的适用于ECC安全保护的随机点生成方法能够通过使用随机数和椭圆曲线上固定点做标量乘法来实现椭圆曲线上随机点的生成,减少了生成椭圆曲线上随机点所消耗的时间代价,因此能够更快速地生成椭圆曲线上的随机点。
本发明的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本发明的实践而得知。利用在书面描述及其权利要求以及附图中具体指出的结构,可以实现和达到本发明的目的和其他优点。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是本发明一种适用于ECC安全保护的随机点生成方法的流程图。
具体实施方式
下面给出采用本发明方法生成椭圆曲线上随机点的实施例。
在本发明的实施例中,给定的有限域为Fp,所用的椭圆曲线方程为y2=x3-3x+b,标量乘法的坐标系选用雅可比射影坐标,标量乘法采用从左向右的二进制方法,判断无穷远点的方法为射影坐标中点的Z坐标是否为0。
如图1所示,本发明具体的椭圆曲线上随机点的生成步骤如下所示:
步骤1,得到椭圆曲线y2=x3-3x+b上的固定点P。该固定点P可以是该椭圆曲线上除无穷远点之外的任何一个固定点。
步骤2,选取一个随机数r<265,可随机选取一个64位或64位以内的随机数r。
步骤3,采用从左向右的二进制方法计算Q=r·P(ECC标量乘法),标量乘法的坐标系选用雅可比射影坐标。
步骤4,判断Q是否为无穷远点(判断无穷远点的方法为射影坐标中点的Z坐标是否为0),如果射影坐标中点的Z坐标为0,则Q是无穷远点,转到步骤2;否则,进入下一步。
步骤5,得到椭圆曲线y2=x3+ax+b上的随机点Q。
本发明采用将一个足够长的随机数和给定椭圆曲线上的固定点做标量乘法获取椭圆曲线上的随机点。仍然假设椭圆曲线为y2=x3-3x+b,其数据长度为384位,如果不考虑标量乘法的加速运算,坐标系选用雅可比射影坐标,假设随机数的长度为32位,那么完成一次标量乘法平均最多需要432次模乘,如果采用加速标量乘法还能更快。较传统方法而言,本发明能够通过随机数和椭圆曲线上固定点的标量乘法较快速地找到椭圆曲线上的随机点,因此避免了通过大量模乘计算求大数开方或解一元二次方程的过程,有效减短了椭圆曲线上随机点的生成时间,从而有利于目前所有包含ECC算法的芯片产品。

Claims (6)

1.一种适用于椭圆曲线密码安全保护的随机点生成方法,其特征在于:包括如下步骤:
步骤1,得到某个椭圆曲线上除无穷远点之外的一个固定点P;
步骤2,选取一个随机数r;
步骤3,计算r与P的标量乘法,得到计算结果Q;
步骤4,判断Q是否为无穷远点,若为无穷远点,则转到步骤2;否则,进入下一步;
步骤5,得到某个椭圆曲线上的随机点Q。
2.如权利要求1所述的一种适用于椭圆曲线密码安全保护的随机点生成方法,其特征在于,步骤1中所述的某个椭圆曲线上的一个固定点P,包括该椭圆曲线上除无穷远点之外的任何一个固定点。
3.如权利要求1所述的一种适用于ECC安全保护的随机点生成方法,其特征在于,步骤2中所述的选取一个随机数r,包括随机选取一个64位或64位以内的随机数r。
4.如权利要求1所述的一种适用于椭圆曲线密码安全保护的随机点生成方法,其特征在于,步骤3中所述的r与P的标量乘法,包括从左向右的二进制方法、从右向左的二进制方法、二进制NAF算法、窗口NAF算法、标量分段算法和Montgomery算法。
5.如权利要求1所述的一种适用于椭圆曲线密码安全保护的随机点生成方法,其特征在于,步骤3中所述的r与P的标量乘法中椭圆曲线上点的坐标系包括仿射坐标、标准射影坐标、Chudnovsky射影坐标、雅可比射影坐标和LD射影坐标。
6.如权利要求1所述的一种适用于椭圆曲线密码安全保护的随机点生成方法,其特征在于,步骤4中所述的判断Q是否为无穷远点,包括如下方法:判断射影坐标中点的Z坐标是否为0,或者判断仿射坐标点加或倍点计算中斜率是否为无穷大。
CN200910202023XA 2009-12-24 2009-12-24 适用于椭圆曲线密码安全保护的随机点生成方法 Pending CN102109974A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910202023XA CN102109974A (zh) 2009-12-24 2009-12-24 适用于椭圆曲线密码安全保护的随机点生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910202023XA CN102109974A (zh) 2009-12-24 2009-12-24 适用于椭圆曲线密码安全保护的随机点生成方法

Publications (1)

Publication Number Publication Date
CN102109974A true CN102109974A (zh) 2011-06-29

Family

ID=44174152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910202023XA Pending CN102109974A (zh) 2009-12-24 2009-12-24 适用于椭圆曲线密码安全保护的随机点生成方法

Country Status (1)

Country Link
CN (1) CN102109974A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902897A (zh) * 2011-07-25 2013-01-30 上海华虹集成电路有限责任公司 适用于ecc点乘算法的抗无穷远点攻击的方法
CN104731553A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 用于进行ecc点倍的优化硬件架构和方法
CN104731552A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 使用混合仿射雅可比坐标进行ecc点加的硬件架构和方法
CN104915179A (zh) * 2015-04-28 2015-09-16 南京邮电大学 一种人体生理数据隐私保护的方法
CN104937537A (zh) * 2013-01-18 2015-09-23 英赛瑟库尔公司 包括与标量或求幂的乘法运算的密码学方法
WO2016112575A1 (zh) * 2015-01-12 2016-07-21 北京科技大学 一种集合成员关系判定的密码学构造方法及系统
CN106712949A (zh) * 2015-11-12 2017-05-24 中国科学院声学研究所 一种基于Montgomery的分段计算标量乘方法
US9929862B2 (en) 2013-12-23 2018-03-27 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using Jacobian coordinates over short Weierstrass curves
CN114065171A (zh) * 2021-11-11 2022-02-18 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902897A (zh) * 2011-07-25 2013-01-30 上海华虹集成电路有限责任公司 适用于ecc点乘算法的抗无穷远点攻击的方法
CN102902897B (zh) * 2011-07-25 2016-08-24 上海华虹集成电路有限责任公司 适用于ecc点乘算法的抗无穷远点攻击的方法
CN104937537A (zh) * 2013-01-18 2015-09-23 英赛瑟库尔公司 包括与标量或求幂的乘法运算的密码学方法
US9929862B2 (en) 2013-12-23 2018-03-27 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using Jacobian coordinates over short Weierstrass curves
CN104731552A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 使用混合仿射雅可比坐标进行ecc点加的硬件架构和方法
US9900154B2 (en) 2013-12-23 2018-02-20 Nxp B.V. Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves
CN104731553A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 用于进行ecc点倍的优化硬件架构和方法
US9979543B2 (en) 2013-12-23 2018-05-22 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves
CN104731552B (zh) * 2013-12-23 2018-11-16 恩智浦有限公司 使用混合仿射雅可比坐标进行ecc点加的硬件架构和方法
WO2016112575A1 (zh) * 2015-01-12 2016-07-21 北京科技大学 一种集合成员关系判定的密码学构造方法及系统
CN104915179A (zh) * 2015-04-28 2015-09-16 南京邮电大学 一种人体生理数据隐私保护的方法
CN104915179B (zh) * 2015-04-28 2018-07-17 南京邮电大学 一种人体生理数据隐私保护的方法
CN106712949A (zh) * 2015-11-12 2017-05-24 中国科学院声学研究所 一种基于Montgomery的分段计算标量乘方法
CN114065171A (zh) * 2021-11-11 2022-02-18 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质
CN114065171B (zh) * 2021-11-11 2022-07-08 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN102109974A (zh) 适用于椭圆曲线密码安全保护的随机点生成方法
US9749135B2 (en) Encrypting device, encrypting method, and recording medium
CN102468956A (zh) 适用于rsa模幂计算的方法
CN107040385A (zh) 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
IT201600076089A1 (it) Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
EP3276880A1 (en) Efficient ecdsa signature and verification
CN104836808A (zh) 基于改进差分错误攻击的sm2签名算法安全性验证方法
US8582758B2 (en) Apparatus and a method for calculating a multiple of a point an elliptic curve
CN107885486B (zh) 一种基于查找树的复合有限域求逆装置
CN114465728B (zh) 攻击椭圆曲线签名算法的方法、装置、设备及存储介质
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
Wu et al. Binary threshold sequences derived from Carmichael quotients with even numbers modulus
Jarvinen et al. Efficient circuitry for computing τ-adic non-adjacent form
Avanzi et al. Redundant τ-adic expansions I: non-adjacent digit sets and their applications to scalar multiplication
CN104468100A (zh) 改进的滑动窗口模幂计算方法
Brar et al. Design and implementation of block method for computing NAF
CN102394747B (zh) 一种快速嵌入明文到椭圆曲线上一点的方法
Shparlinski Bounds of Gauss sums in finite fields
Youssef et al. A low-resource 32-bit datapath ECDSA design for embedded applications
Rezai et al. An Efficient Scalar Multiplication Algorithm for Elliptic Curve Cryptography Using a New Signed-Digit Representation
Hassan et al. A Booth-like modulo operator
TWI465958B (zh) Error detection of finite field multiplication devices
Lou et al. Bounds and trade-offs for double-base number systems
Sun et al. Batch blind signatures on elliptic curves
Liu et al. A countermeasure for power analysis to scalar multiplication of ECC hardware

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110629