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

文档序号:7668024阅读:552来源:国知局
专利名称:一种适用于ecc算法的抗错误攻击的方法
技术领域
本发明涉及信息安全领域,特别是涉及一种适用于ECC算法的抗错误攻击的方法。
背景技术
ECC(椭圆曲线密码)算法是智能卡中常用的加密算法之一,其加密算法流程如下输入参数组D = (q, FR, S, a, b, P, n, h),公钥 Q,明文 m。输出密文(R,C,t)。 (I)选择 k e κ[1,η-1]。(2)计算 R = kP 和 Z = hkQo 若 Z = 00,则转到步骤(I)。(3) (k1; k2) — KDF (xz, R),其中 Xz 是 Z 的 x 坐标。(4)计算C = ENCk O)和 = MACki (C)。(5)返回(R, C,t)。解密算法流程输入参数组D= &}1 ,5,&,13,?,11,11),私钥(1,密文(R,C,t)。输出明文m或者拒绝该密文。(I)对R进行嵌入的公钥确认。若确认失败,则返回(“拒绝该密文”)。(2)计算Z = hdR。若Z =c ,则返回(“拒绝该密文”)。(3) (k1; k2) — KDF (xz, R),其中 Xz 是 Z 的 x 坐标。(4)计算=MACk2(C)。若t'幸t,则返回(“拒绝该密文”)。(5)计算w = DECk (C)。(6)返回(m)。由上述算法流程可以看出,ECC算法的核心是点乘计算,由于攻击者能够在点乘迭代循环中注入错误,使迭代循环提前结束,然后在任意时间查看点乘计算的中间结果,并进而逐位地反推出密钥,因此,普通的ECC算法对错误攻击(其目的是获取算法中的密钥)的防御能力不强。传统的对抗错误攻击的方法是在ECC密码解密流程中加入检错机制,对解密操作进行验算,即解密之后对计算出的明文再进行加密操作,比对加密后的结果是否和解密前的输入一致,如果不一致,表明存在错误,则禁止输出结果。可见,这种方法实质是以ECC加密流程来检查ECC解密是否受到错误攻击,它虽然可以使攻击者无法得到有利于攻击的数据,达到保护密钥的目的,但是,由于其需要进行大量的验算(尤其是其中的点乘算法的执行时间比较长),因此,抵抗错误攻击所需要消耗的时间较长,效率较低。

发明内容
本发明要解决的技术问题是提供一种适用于ECC算法的抗错误攻击的方法,它可以高效地抵抗针对ECC算法的错误攻击,提高智能卡的安全性。为解决上述技术问题,本发明的适用于ECC算法的抗错误攻击的方法,包括以下步骤(I)在ECC点乘迭代算法中加入计数器;(2)初始化该计数器的计数初值,并设定该计数器的步长;(3)进行ECC点乘迭代运算前,计算点乘迭代次数;(4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递减;(5)ECC点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出
ECC点乘迭代运算的结果。所述计数器可以是软件计数器或硬件计数器。所述计数初值包括O值和其它非O值。所述步长可以是任何大于或等于I的数。 所述对应关系可以是线性关系或非线性关系。与传统的ECC算法抗错误攻击方法相比,本发明的方法通过在ECC点乘算法中引入计数器对点乘的迭代次数进行计数,判断计数值和迭代次数关系的正确性来检查错误,抵抗错误攻击,从而避免了对解密结果的长时间验算,提高了 ECC算法抵抗错误攻击的效率,保证了当前所有使用ECC算法的智能卡的安全性。


附图是本发明的方法流程图。
具体实施例方式为对本发明的技术内容、特点与功效有更具体的了解,现结合图示的实施方式,详述如下在本发明的实施例中,假设ECC算法的数据长度为m位,即标量d和椭圆曲线上点坐标的长度都是m位的数值,点乘的时间代价为T(m)。请参阅图I所示,该实施例的ECC点乘算法的流程为输入标量d,椭圆曲线上的点P, ECC相关参数步骤I,引入一个计数器counter ;步骤2,初始化该计数器的计数初值,并设定该计数器的计数步长;步骤3,在进行ECC点乘迭代运算前,计算点乘迭代次数N ;步骤4,在每轮迭代中,对计数器的计数值按照步长进行递增(或递减);步骤5,ECC点乘迭代运算结束后,将计数器的计数终值和ECC点乘迭代次数N进行比对,判断其是否满足预先设定的对应关系,若是,则输出点乘迭代运算的结果,若否,则输出点乘错误信息,不输出计算结果。由上述流程可见,整个ECC点乘运算流程中仅增加了计数器操作和判断点乘迭代次数和计数器的计数值之间的关系的操作,其时间代价和点乘运算本身所需的时间相比,可以忽略,所以,总的时间代价近似于T (m),即普通ECC点乘运算的时间代价。
同时,由本实施例的上述算法可以看出,如果攻击者在点乘迭代过程中(即步骤4)注入错误导致迭代提前结束,则步骤5中就会发现点乘迭代次数N的数值和计数器的计数终值不满足预设的对应关系,即检测到ECC解密过程受到了错误攻击,从而不会向外输出ECC点乘运算的中间结果,如此,攻击者便无法得到有用的信息,从而有效地抵抗了这类
错误攻击。·
权利要求
1.一种适用于ECC算法的抗错误攻击的方法,其特征在于,包括以下步骤 (1)在ECC点乘迭代算法中加入计数器; (2)初始化该计数器的计数初值,并设定该计数器的步长; (3)进行ECC点乘迭代运算前,计算点乘迭代次数; (4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递减; (5)ECC点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出ECC点乘迭代运算的结果。
2.如权利要求I所述的抗错误攻击的方法,其特征在于步骤(I)中,所述计数器包括软件计数器和硬件计数器。
3.如权利要求I所述的抗错误攻击的方法,其特征在于步骤(2)中,所述计数初值包括O值和其它非O值。
4.如权利要求I所述的抗错误攻击的方法,其特征在于步骤(2)中,所述步长大于等于I。
5.如权利要求I所述的抗错误攻击的方法,其特征在于步骤(5)中,所述对应关系包括线性关系和非线性关系。
全文摘要
本发明公开了一种适用于ECC算法的抗错误攻击的方法,包括步骤(1)在ECC点乘算法中加入计数器;(2)初始化该计数器的计数初值,并设定计数步长;(3)进行点乘迭代运算前,计算点乘迭代次数;(4)在每轮迭代中,按照步长更新计数器的计数值;(5)点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是否满足预先设定的对应关系。该抗错误攻击的方法可以高效地防御针对ECC算法的错误攻击,提高智能卡的安全性。进行ECC点乘运算时,整个点乘流程中仅增加了计数器操作和判断点乘迭代次数和计数值之间关系的操作,从而减少了抵抗错误攻击所需要消耗的时间代价,提高了抗错误攻击的效率。
文档编号H04L9/30GK102790673SQ20111012708
公开日2012年11月21日 申请日期2011年5月17日 优先权日2011年5月17日
发明者包斯刚, 柴佳晶, 马博 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1