CN102790673B - 一种适用于ecc算法的抗错误攻击的方法 - Google Patents

一种适用于ecc算法的抗错误攻击的方法 Download PDF

Info

Publication number
CN102790673B
CN102790673B CN201110127086.0A CN201110127086A CN102790673B CN 102790673 B CN102790673 B CN 102790673B CN 201110127086 A CN201110127086 A CN 201110127086A CN 102790673 B CN102790673 B CN 102790673B
Authority
CN
China
Prior art keywords
counter
ecc
algorithm
point multiplication
dot product
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
CN201110127086.0A
Other languages
English (en)
Other versions
CN102790673A (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 CN201110127086.0A priority Critical patent/CN102790673B/zh
Publication of CN102790673A publication Critical patent/CN102790673A/zh
Application granted granted Critical
Publication of CN102790673B publication Critical patent/CN102790673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种适用于ECC算法的抗错误攻击的方法,包括步骤:(1)在ECC点乘算法中加入计数器;(2)初始化该计数器的计数初值,并设定计数步长;(3)进行点乘迭代运算前,计算点乘迭代次数;(4)在每轮迭代中,按照步长更新计数器的计数值;(5)点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是否满足预先设定的对应关系。该抗错误攻击的方法可以高效地防御针对ECC算法的错误攻击,提高智能卡的安全性。进行ECC点乘运算时,整个点乘流程中仅增加了计数器操作和判断点乘迭代次数和计数值之间关系的操作,从而减少了抵抗错误攻击所需要消耗的时间代价,提高了抗错误攻击的效率。

Description

一种适用于ECC算法的抗错误攻击的方法
技术领域
本发明涉及信息安全领域,特别是涉及一种适用于ECC算法的抗错误攻击的方法。
背景技术
ECC(椭圆曲线密码)算法是智能卡中常用的加密算法之一,其加密算法流程如下:
输入:参数组D=(q,FR,S,a,b,P,n,h),公钥Q,明文m。
输出:密文(R,C,t)。
(1)选择k∈R[1,n-1]。
(2)计算R=kP和Z=hkQ。若Z=∞,则转到步骤(1)。
(3)(k1,k2)←KDF(xZ,R),其中xZ是Z的x坐标。
(4)计算
(5)返回(R,C,t)。
解密算法流程:
输入:参数组D=(q,FR,S,a,b,P,n,h),私钥d,密文(R,C,t)。
输出:明文m或者拒绝该密文。
(1)对R进行嵌入的公钥确认。若确认失败,则返回(“拒绝该密文”)。
(2)计算Z=hdR。若Z=∞,则返回(“拒绝该密文”)。
(3)(k1,k2)←KDF(xZ,R),其中xZ是Z的x坐标。
(4)计算若t'≠t,则返回(“拒绝该密文”)。
(5)计算
(6)返回(m)。
由上述算法流程可以看出,ECC算法的核心是点乘计算,由于攻击者能够在点乘迭代循环中注入错误,使迭代循环提前结束,然后在任意时间查看点乘计算的中间结果,并进而逐位地反推出密钥,因此,普通的ECC算法对错误攻击(其目的是获取算法中的密钥)的防御能力不强。
传统的对抗错误攻击的方法是在ECC密码解密流程中加入检错机制,对解密操作进行验算,即:解密之后对计算出的明文再进行加密操作,比对加密后的结果是否和解密前的输入一致,如果不一致,表明存在错误,则禁止输出结果。可见,这种方法实质是以ECC加密流程来检查ECC解密是否受到错误攻击,它虽然可以使攻击者无法得到有利于攻击的数据,达到保护密钥的目的,但是,由于其需要进行大量的验算(尤其是其中的点乘算法的执行时间比较长),因此,抵抗错误攻击所需要消耗的时间较长,效率较低。
发明内容
本发明要解决的技术问题是提供一种适用于ECC算法的抗错误攻击的方法,它可以高效地抵抗针对ECC算法的错误攻击,提高智能卡的安全性。
为解决上述技术问题,本发明的适用于ECC算法的抗错误攻击的方法,包括以下步骤:
(1)在ECC点乘迭代算法中加入计数器;
(2)初始化该计数器的计数初值,并设定该计数器的步长;
(3)进行ECC点乘迭代运算前,计算点乘迭代次数;
(4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递减;
(5)ECC点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出ECC点乘迭代运算的结果。
所述计数器可以是软件计数器或硬件计数器。
所述计数初值包括0值和其它非0值。
所述步长可以是任何大于或等于1的数。
所述对应关系可以是线性关系或非线性关系。
与传统的ECC算法抗错误攻击方法相比,本发明的方法通过在ECC点乘算法中引入计数器对点乘的迭代次数进行计数,判断计数值和迭代次数关系的正确性来检查错误,抵抗错误攻击,从而避免了对解密结果的长时间验算,提高了ECC算法抵抗错误攻击的效率,保证了当前所有使用ECC算法的智能卡的安全性。
附图说明
图1是本发明的方法流程图。
具体实施方式
为对本发明的技术内容、特点与功效有更具体的了解,现结合图示的实施方式,详述如下:
在本发明的实施例中,假设ECC算法的数据长度为m位,即标量d和椭圆曲线上点坐标的长度都是m位的数值,点乘的时间代价为T(m)。请参阅图1所示,该实施例的ECC点乘算法的流程为:
输入:标量d,椭圆曲线上的点P,ECC相关参数
步骤1,引入一个计数器counter;
步骤2,初始化该计数器的计数初值,并设定该计数器的计数步长;
步骤3,在进行ECC点乘迭代运算前,计算点乘迭代次数N;
步骤4,在每轮迭代中,对计数器的计数值按照步长进行递增(或递减);
步骤5,ECC点乘迭代运算结束后,将计数器的计数终值和ECC点乘迭代次数N进行比对,判断其是否满足预先设定的对应关系,若是,则输出点乘迭代运算的结果,若否,则输出点乘错误信息,不输出计算结果。
由上述流程可见,整个ECC点乘运算流程中仅增加了计数器操作和判断点乘迭代次数和计数器的计数值之间的关系的操作,其时间代价和点乘运算本身所需的时间相比,可以忽略,所以,总的时间代价近似于T(m),即普通ECC点乘运算的时间代价。
同时,由本实施例的上述算法可以看出,如果攻击者在点乘迭代过程中(即步骤4)注入错误导致迭代提前结束,则步骤5中就会发现点乘迭代次数N的数值和计数器的计数终值不满足预设的对应关系,即检测到ECC解密过程受到了错误攻击,从而不会向外输出ECC点乘运算的中间结果,如此,攻击者便无法得到有用的信息,从而有效地抵抗了这类错误攻击。

Claims (4)

1.一种适用于ECC算法的抗错误攻击的方法,其特征在于,包括以下步骤:
(1)在ECC点乘迭代算法中加入计数器;
(2)初始化该计数器的计数初值,并设定该计数器的步长;
(3)进行ECC点乘迭代运算前,计算点乘迭代次数;
(4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递减;
(5)ECC点乘迭代运算结束后,判断计数器的计数终值和点乘迭代次数是否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出ECC点乘迭代运算的结果;所述对应关系为线性关系。
2.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(1)中,所述计数器包括软件计数器和硬件计数器。
3.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(2)中,所述计数初值包括0值和其它非0值。
4.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(2)中,所述步长大于等于1。
CN201110127086.0A 2011-05-17 2011-05-17 一种适用于ecc算法的抗错误攻击的方法 Active CN102790673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110127086.0A CN102790673B (zh) 2011-05-17 2011-05-17 一种适用于ecc算法的抗错误攻击的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110127086.0A CN102790673B (zh) 2011-05-17 2011-05-17 一种适用于ecc算法的抗错误攻击的方法

Publications (2)

Publication Number Publication Date
CN102790673A CN102790673A (zh) 2012-11-21
CN102790673B true CN102790673B (zh) 2017-05-10

Family

ID=47155981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110127086.0A Active CN102790673B (zh) 2011-05-17 2011-05-17 一种适用于ecc算法的抗错误攻击的方法

Country Status (1)

Country Link
CN (1) CN102790673B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106161391B (zh) * 2015-04-17 2020-10-23 国民技术股份有限公司 一种安全芯片及其对错误注入攻击的防御方法和装置
CN104836808B (zh) * 2015-05-12 2017-12-15 中国科学院软件研究所 基于改进差分错误攻击的sm2签名算法安全性验证方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法
CN101507176A (zh) * 2005-07-01 2009-08-12 微软公司 椭圆曲线点乘法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101507176A (zh) * 2005-07-01 2009-08-12 微软公司 椭圆曲线点乘法
CN1831754A (zh) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 一种椭圆曲线密码系统及实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
椭圆曲线密码体制及其应用研究;张朝培;《中国优秀硕士学位论文全文数据库 信息科技辑(2007)》;20070915(第3期);全文 *
椭圆曲线密码体制的研究及DSP实现;赖晖;《中国优秀硕士学位论文全文数据库 信息科技辑(2007)》;20071115(第5期);全文 *

Also Published As

Publication number Publication date
CN102790673A (zh) 2012-11-21

Similar Documents

Publication Publication Date Title
Wyseur White-Box Cryptography.
Batina et al. Mutual information analysis: a comprehensive study
CN104094553B (zh) 防侧信道攻击的加密方法和装置
CN110401627B (zh) 一种适用于分组密码算法感染防护的抗差分故障攻击安全性评估方法和系统
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
CN104734845B (zh) 基于全加密算法伪操作的旁路攻击防护方法
CN102546157B (zh) 一种抵抗能量分析的随机混合加密系统及其实现方法
CN103795527A (zh) 防止基于功耗分析攻击aes算法的软件掩码防护方案
US10461922B2 (en) Method and system for protecting a cryptographic operation
CN103404073A (zh) 针对无源监听的保护
Pan et al. One fault is all it needs: Breaking higher-order masking with persistent fault analysis
CN102790673B (zh) 一种适用于ecc算法的抗错误攻击的方法
US9559838B2 (en) Method of processing data protected against fault injection attacks and associated device
US20180034628A1 (en) Protecting polynomial hash functions from external monitoring attacks
CN106487510B (zh) 模幂计算的保护
Wang et al. Improved lightweight encryption algorithm based on optimized S-box
Medwed et al. A continuous fault countermeasure for AES providing a constant error detection rate
US11902412B2 (en) Fault attack resistant cryptographic systems and methods
CN102902897B (zh) 适用于ecc点乘算法的抗无穷远点攻击的方法
Zhao et al. Two-point Joint CPA Attacks against SM4 Algorithm
Ma et al. Improved differential fault analysis of SOSEMANUK
CN110730072A (zh) 针对rsa密码应用的抗侧信道攻击方法
CN112532373B (zh) 针对流密码算法的差分故障分析方法、系统和存储介质
CN113794549B (zh) 一种4比特密码s盒自动化门限掩码方法

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