CN102902897B - 适用于ecc点乘算法的抗无穷远点攻击的方法 - Google Patents
适用于ecc点乘算法的抗无穷远点攻击的方法 Download PDFInfo
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种适用于ECC点乘算法的抗无穷远点攻击的方法,包括步骤:1)按轮进行ECC点乘迭代运算;2)在上一轮点乘迭代结束,下一轮点乘迭代开始前,判断当前迭代结果是否为无穷远点,若是,则输出计算错误信息,并结束ECC点乘迭代运算;若否,则继续进行下一轮迭代运算,直到最后一轮迭代完成,输出运算结果。该方法通过在ECC点乘迭代运算中加入一个条件判断,判断每轮迭代结果是否为无穷远点,实现了检测并防御无穷远点攻击的目的,从而提高了使用ECC算法的智能卡的安全性。
Description
技术领域
本发明涉及信息安全领域,特别是涉及一种适用于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;或者仿射坐标点加或倍点计算中,斜率为无穷大。
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)
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)
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 | 上海华虹集成电路有限责任公司 | 适用于椭圆曲线密码安全保护的随机点生成方法 |
-
2011
- 2011-07-25 CN CN201110208355.6A patent/CN102902897B/zh active Active
Patent Citations (4)
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 |