CN102902897B - 适用于ecc点乘算法的抗无穷远点攻击的方法 - Google Patents

适用于ecc点乘算法的抗无穷远点攻击的方法 Download PDF

Info

Publication number
CN102902897B
CN102902897B CN201110208355.6A CN201110208355A CN102902897B CN 102902897 B CN102902897 B CN 102902897B CN 201110208355 A CN201110208355 A CN 201110208355A CN 102902897 B CN102902897 B CN 102902897B
Authority
CN
China
Prior art keywords
dot product
ecc
iteration
infinite point
interative computation
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
Application number
CN201110208355.6A
Other languages
English (en)
Other versions
CN102902897A (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.)
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 CN201110208355.6A priority Critical patent/CN102902897B/zh
Publication of CN102902897A publication Critical patent/CN102902897A/zh
Application granted granted Critical
Publication of CN102902897B publication Critical patent/CN102902897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种适用于ECC点乘算法的抗无穷远点攻击的方法,包括步骤:1)按轮进行ECC点乘迭代运算;2)在上一轮点乘迭代结束,下一轮点乘迭代开始前,判断当前迭代结果是否为无穷远点,若是,则输出计算错误信息,并结束ECC点乘迭代运算;若否,则继续进行下一轮迭代运算,直到最后一轮迭代完成,输出运算结果。该方法通过在ECC点乘迭代运算中加入一个条件判断,判断每轮迭代结果是否为无穷远点,实现了检测并防御无穷远点攻击的目的,从而提高了使用ECC算法的智能卡的安全性。

Description

适用于ECC点乘算法的抗无穷远点攻击的方法
技术领域
本发明涉及信息安全领域,特别是涉及一种适用于ECC点乘算法的抗无穷远点攻击的方法。
背景技术
ECC(椭圆曲线密码)算法是智能卡中常用的加密算法,其优越性在于应用较短的密钥就可以达到很高的安全强度。
ECC算法的核心是点乘运算,其一般有以下几种算法:
第一种,从右向左的二进制算法,流程为:
输入:k=(kt-1,Λ,k1,k0)2,P∈E(Fq)
输出:kP
1.Q←∞
2.对于i从0到t-1,重复执行
2.1若ki=1,则Q←Q+P
2.2P←2P
3.返回Q
第二种,从左向右的二进制算法,流程为:
输入:k=(kt-1,Λ,k1,k0)2,P∈E(Fq)
输出:kP
1.Q←∞
2.对于i从t-1到0,重复执行
2.1Q←2Q
2.2若ki=1,则Q←Q+P
3.返回Q
第三种,NAF窗口法,包括计算一个正整数的窗口宽度ω的NAF算法和点乘算法两部分,其中,NAF算法的流程为:
输入:窗口宽度ω,一个正整数k
输出:NAFω(k)
1.i←0
2当k≥1时,重复执行
2.1若k是奇数:
2.1.1ki←(kmod2ω)
2.1.2如果ki>2ω-1,ki=ki-2ω
2.1.3k←k-ki
2.2否则,ki←0
2.3k←k/2,i←i+1
3.返回(ki-1,ki-2,Λ,k1,k0)
点乘算法的流程为:
输入:窗口宽度ω,k=(kt-1,Λ,k1,k0)2,P∈E(Fq)
输出:kP
1.用计算窗口NAF的算法计算
2.对于i∈{1,3,5,Λ,2ω-1-1},计算Pi=iP
3.Q←∞
4.对于i从l-1到0,重复执行
4.1Q←2Q
4.2若ki>0,则
4.3否则,则
5.返回Q
从上述算法流程可以看出,无论用什么方法实现点乘运算,其实质都是进行有限的迭代运算,因此,传统的ECC点乘算法很容易受到无穷远点攻击,攻击者只要在点乘运算的任意时刻导入一个可控的故障,将当前迭代的中间结果变为无穷远点,就可以将私钥长度变短,然后通过最终的运算结果反推出密钥的数值。例如,假设攻击者在迭代的倒数第二步精确地导入了一个故障,使此刻的中间结果变为无穷远点,那么,经过最后一步迭代以后,输出的运算结果就相当于只做了最后一步迭代的结果,由此,攻击者就可以反推出最后一次迭代对应的密钥值,以此类推,攻击者可以逐步地推演出密钥其他位上的数值,从而完全获取密钥。可见,传统的ECC点乘算法缺乏抵御无穷远点攻击的能力,不利于智能卡的安全性。
发明内容
本发明要解决的技术问题是提供一种适用于ECC点乘算法的抗无穷远点攻击的方法,它可以提高使用ECC算法的智能卡的安全性。
为解决上述技术问题,本发明的适用于ECC点乘算法的抗无穷远点攻击的方法,包括以下步骤:
1)按轮进行ECC点乘迭代运算;
2)在上一轮点乘迭代结束,下一轮点乘迭代开始前,判断当前迭代结果是否为无穷远点,若是,则输出计算错误信息,并结束ECC点乘迭代运算;若否,则继续进行下一轮迭代运算,直到最后一轮迭代完成,输出运算结果。
所述ECC点乘迭代运算包括任何有限域中的ECC点乘迭代运算。
步骤2)中,可以通过判断射影坐标中点的Z坐标是否为0,或者仿射坐标下,点加或倍点计算中,斜率是否为无穷大来判断当前的迭代结果是否为无穷远点。判断当前迭代结果为无穷远点的依据是:射影坐标中,点的Z坐标为0;或者仿射坐标点加或倍点计算中,斜率为无穷大。
本发明的适用于ECC点乘算法的抗无穷远点攻击的方法,通过在点乘迭代运算中加入一个条件判断,对点乘的每轮迭代结果是否为无穷远点进行判断,实现了对无穷远点攻击的检测,从而有效防御了无穷远点攻击,提高了智能卡信息的安全性。
附图说明
附图是本发明的方法流程图。
具体实施方式
为对本发明的技术内容、特点与功效有更具体的了解,现结合图示的实施方式,详述如下:
如附图所示,本发明的适用于ECC点乘算法的抗无穷远点攻击的方法,包括以下步骤:
步骤1,进行ECC点乘迭代运算,该ECC点乘迭代运算包括任何有限域中的ECC点乘迭代运算。
步骤2,在当前一轮点乘迭代结束,下一轮点乘迭代开始前,判断当前的迭代结果是否为无穷远点,若是,则输出点乘计算错误信息,并结束ECC点乘迭代运算;若否,则转到步骤3。
步骤3,重复步骤1至2,继续进行下一轮点乘迭代运算及结果判断,直到最后一轮迭代完成,输出运算结果。
以从左向右的二进制算法为例,假设ECC的数据长度为t位,即密钥和其他参数的长度都为t位,则按照本发明的上述方法,对应的ECC点乘算法为:
输入:标量d,椭圆曲线上的点P,ECC相关参数
1.Q←∞
2.对于i从t-1到0,重复执行2.1到2.3
2.1如果i≠t-1,判断Q是否为无穷远点,若是,则返回点乘错误信息;若否,则继续;
2.2Q←2Q
2.3若ki=1,则Q←Q+P
3.返回Q
输出:Q=ScalarMult(d,P)或点乘错误信息
上述步骤2.1中,可以通过判断射影坐标中,Q的Z坐标是否为0,来判断Q是否为无穷远点(若射影坐标中Q的Z坐标为0,则Q为无穷远点)。
根据上述算法流程,倘若攻击者在点乘过程中注入故障,导致迭代的中间结果变成无穷远点,则在步骤2.1中就可以检测到这种攻击,不会再向外输出点乘运算的结果,这样,攻击者就无法得到有用的信息,从而有效抵抗了无穷远点攻击,保证了智能卡内信息的安全。

Claims (3)

1.一种适用于ECC点乘算法的抗无穷远点攻击的方法,包括步骤:
1)按轮进行ECC点乘迭代运算;其特征在于,还包括步骤:
2)在上一轮点乘迭代结束,下一轮点乘迭代开始前,判断当前迭代结果是否为无穷远点,若是,则输出计算错误信息,并结束ECC点乘迭代运算;若否,则继续进行下一轮迭代运算,直到最后一轮迭代完成,输出运算结果。
2.根据权利要求1所述的方法,其特征在于,所述ECC点乘迭代运算包括任何有限域中的ECC点乘迭代运算。
3.根据权利要求1所述的方法,其特征在于,步骤2)中,判断当前迭代结果为无穷远点的依据是:射影坐标中,点的Z坐标为0;或者仿射坐标点加或倍点计算中,斜率为无穷大。
CN201110208355.6A 2011-07-25 2011-07-25 适用于ecc点乘算法的抗无穷远点攻击的方法 Active CN102902897B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110208355.6A CN102902897B (zh) 2011-07-25 2011-07-25 适用于ecc点乘算法的抗无穷远点攻击的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110208355.6A CN102902897B (zh) 2011-07-25 2011-07-25 适用于ecc点乘算法的抗无穷远点攻击的方法

Publications (2)

Publication Number Publication Date
CN102902897A CN102902897A (zh) 2013-01-30
CN102902897B true CN102902897B (zh) 2016-08-24

Family

ID=47575125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110208355.6A Active CN102902897B (zh) 2011-07-25 2011-07-25 适用于ecc点乘算法的抗无穷远点攻击的方法

Country Status (1)

Country Link
CN (1) CN102902897B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656629B (zh) * 2014-11-25 2018-12-11 上海华虹集成电路有限责任公司 芯片中安全的非相邻表示型实现方法
CN109214195A (zh) * 2018-07-26 2019-01-15 广东工业大学 一种抗差分功耗攻击的sm2椭圆曲线签名验签硬件***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101296072A (zh) * 2007-04-29 2008-10-29 四川虹微技术有限公司 一种椭圆曲线上的共享密钥产生方法
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
CN102104482A (zh) * 2009-12-21 2011-06-22 上海华虹集成电路有限责任公司 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法
CN102109974A (zh) * 2009-12-24 2011-06-29 上海华虹集成电路有限责任公司 适用于椭圆曲线密码安全保护的随机点生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
CN101296072A (zh) * 2007-04-29 2008-10-29 四川虹微技术有限公司 一种椭圆曲线上的共享密钥产生方法
CN102104482A (zh) * 2009-12-21 2011-06-22 上海华虹集成电路有限责任公司 椭圆曲线密码体制中无穷远点在仿射坐标系下的表示方法
CN102109974A (zh) * 2009-12-24 2011-06-29 上海华虹集成电路有限责任公司 适用于椭圆曲线密码安全保护的随机点生成方法

Also Published As

Publication number Publication date
CN102902897A (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
Oswald et al. Template attacks on masking—resistance is futile
JP5412274B2 (ja) サイドチャネル攻撃からの保護
CN103227717B (zh) 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法
CN103166752B (zh) 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN104836670B (zh) 一种基于随机数未知的sm2签名算法安全性验证方法
CN104283669B (zh) 全同态加密中重加密深度优化方法
CN105991292A (zh) 用于操作安全椭圆曲线密码***的***和方法
Shoukry et al. Secure state reconstruction in differentially flat systems under sensor attacks using satisfiability modulo theory solving
CN103903047B (zh) 一种适用于rfid安全通信的椭圆曲线加密协处理器
CN103560877A (zh) 攻击密钥的方法及装置
Campos et al. Trouble at the CSIDH: protecting CSIDH with dummy-operations against fault injection attacks
CN102902897B (zh) 适用于ecc点乘算法的抗无穷远点攻击的方法
CN106487510B (zh) 模幂计算的保护
CN104811297B (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
TW200411593A (en) Method and apparatus for protecting public key schemes from timing, power and fault attacks
CN108155984B (zh) 一种基于能量分析的密码算法簇逆向工程分析方法
CN104484627B (zh) 面向可重构阵列架构的随机化抗故障攻击措施的设计方法
CN106484365B (zh) 验证执行模幂计算的电子电路的敏感度
Sim et al. Key bit-dependent attack on protected PKC using a single trace
CN105740730A (zh) 芯片中安全的点乘实现方法
Cao et al. Two lattice-based differential fault attacks against ECDSA with w NAF algorithm
CN102790673B (zh) 一种适用于ecc算法的抗错误攻击的方法
Lee et al. Single-trace attack using one-shot learning with Siamese network in non-profiled setting
CN102484587B (zh) 基于椭圆曲线的加密方法
Gayatri et al. Detection of trojan based DoS attacks on RSA cryptosystem using hybrid supervised learning models

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