一种适用于ECC算法的抗错误攻击的方法.pdf

上传人:62****3 文档编号:4258601 上传时间:2018-09-12 格式:PDF 页数:6 大小:329.74KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110127086.0

申请日:

2011.05.17

公开号:

CN102790673A

公开日:

2012.11.21

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 9/30申请日:20110517|||公开

IPC分类号:

H04L9/30; G06F7/72

主分类号:

H04L9/30

申请人:

上海华虹集成电路有限责任公司

发明人:

马博; 包斯刚; 柴佳晶

地址:

201203 上海市浦东新区张江高科技园区碧波路572弄39号

优先权:

专利代理机构:

上海浦一知识产权代理有限公司 31211

代理人:

刘昌荣

PDF下载: PDF下载
内容摘要

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

权利要求书

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

说明书

一种适用于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)计算 C = ENC k 1 ( m ) ]]> t = MAC k 2 ( C ) . ]]>

(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)计算 m = DEC k 1 ( C ) . ]]>

(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算法的智能卡的安
全性。

附图说明

附图是本发明的方法流程图。

具体实施方式

为对本发明的技术内容、特点与功效有更具体的了解,现结合图示的实施
方式,详述如下:

在本发明的实施例中,假设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点乘运算的中间结果,如此,攻击者便无法
得到有用的信息,从而有效地抵抗了这类错误攻击。

一种适用于ECC算法的抗错误攻击的方法.pdf_第1页
第1页 / 共6页
一种适用于ECC算法的抗错误攻击的方法.pdf_第2页
第2页 / 共6页
一种适用于ECC算法的抗错误攻击的方法.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《一种适用于ECC算法的抗错误攻击的方法.pdf》由会员分享,可在线阅读,更多相关《一种适用于ECC算法的抗错误攻击的方法.pdf(6页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102790673 A (43)申请公布日 2012.11.21 C N 1 0 2 7 9 0 6 7 3 A *CN102790673A* (21)申请号 201110127086.0 (22)申请日 2011.05.17 H04L 9/30(2006.01) G06F 7/72(2006.01) (71)申请人上海华虹集成电路有限责任公司 地址 201203 上海市浦东新区张江高科技园 区碧波路572弄39号 (72)发明人马博 包斯刚 柴佳晶 (74)专利代理机构上海浦一知识产权代理有限 公司 31211 代理人刘昌荣 (54) 发明名称 一种适用于ECC算法。

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

3、消耗的时间代价,提高了抗错误攻击 的效率。 (51)Int.Cl. 权利要求书1页 说明书3页 附图1页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 3 页 附图 1 页 1/1页 2 1.一种适用于ECC算法的抗错误攻击的方法,其特征在于,包括以下步骤: (1)在ECC点乘迭代算法中加入计数器; (2)初始化该计数器的计数初值,并设定该计数器的步长; (3)进行ECC点乘迭代运算前,计算点乘迭代次数; (4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递减; (5)ECC点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判断是 。

4、否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出ECC点 乘迭代运算的结果。 2.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(1)中,所述计数器包括 软件计数器和硬件计数器。 3.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(2)中,所述计数初值包 括0值和其它非0值。 4.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(2)中,所述步长大于等 于1。 5.如权利要求1所述的抗错误攻击的方法,其特征在于:步骤(5)中,所述对应关系包 括线性关系和非线性关系。 权 利 要 求 书CN 102790673 A 1/3页 3 一种适用于 ECC 。

5、算法的抗错误攻击的方法 技术领域 0001 本发明涉及信息安全领域,特别是涉及一种适用于ECC算法的抗错误攻击的方 法。 背景技术 0002 ECC(椭圆曲线密码)算法是智能卡中常用的加密算法之一,其加密算法流程如 下: 0003 输入:参数组D(q,FR,S,a,b,P,n,h),公钥Q,明文m。 0004 输出:密文(R,C,t)。 0005 (1)选择k R 1,n-1。 0006 (2)计算RkP和ZhkQ。若Z,则转到步骤(1)。 0007 (3)(k 1 ,k 2 )KDF(x Z ,R),其中x Z 是Z的x坐标。 0008 (4)计算和 0009 (5)返回(R,C,t)。 0。

6、010 解密算法流程: 0011 输入:参数组D(q,FR,S,a,b,P,n,h),私钥d,密文(R,C,t)。 0012 输出:明文m或者拒绝该密文。 0013 (1)对R进行嵌入的公钥确认。若确认失败,则返回(“拒绝该密文”)。 0014 (2)计算ZhdR。若Z,则返回(“拒绝该密文”)。 0015 (3)(k 1 ,k 2 )KDF(x Z ,R),其中x Z 是Z的x坐标。 0016 (4)计算若tt,则返回(“拒绝该密文”)。 0017 (5)计算 0018 (6)返回(m)。 0019 由上述算法流程可以看出,ECC算法的核心是点乘计算,由于攻击者能够在点乘迭 代循环中注入错误。

7、,使迭代循环提前结束,然后在任意时间查看点乘计算的中间结果,并进 而逐位地反推出密钥,因此,普通的ECC算法对错误攻击(其目的是获取算法中的密钥)的 防御能力不强。 0020 传统的对抗错误攻击的方法是在ECC密码解密流程中加入检错机制,对解密操作 进行验算,即:解密之后对计算出的明文再进行加密操作,比对加密后的结果是否和解密前 的输入一致,如果不一致,表明存在错误,则禁止输出结果。可见,这种方法实质是以ECC加 密流程来检查ECC解密是否受到错误攻击,它虽然可以使攻击者无法得到有利于攻击的数 据,达到保护密钥的目的,但是,由于其需要进行大量的验算(尤其是其中的点乘算法的执 行时间比较长),因。

8、此,抵抗错误攻击所需要消耗的时间较长,效率较低。 发明内容 0021 本发明要解决的技术问题是提供一种适用于ECC算法的抗错误攻击的方法,它可 说 明 书CN 102790673 A 2/3页 4 以高效地抵抗针对ECC算法的错误攻击,提高智能卡的安全性。 0022 为解决上述技术问题,本发明的适用于ECC算法的抗错误攻击的方法,包括以下 步骤: 0023 (1)在ECC点乘迭代算法中加入计数器; 0024 (2)初始化该计数器的计数初值,并设定该计数器的步长; 0025 (3)进行ECC点乘迭代运算前,计算点乘迭代次数; 0026 (4)在每轮迭代中,对该计数器的计数值按照步长进行递增或者递。

9、减; 0027 (5)ECC点乘迭代运算结束后,将计数器的计数终值和点乘迭代次数进行比对,判 断是否满足预先设定的对应关系,若是,则输出ECC点乘迭代运算的结果;若否,则不输出 ECC点乘迭代运算的结果。 0028 所述计数器可以是软件计数器或硬件计数器。 0029 所述计数初值包括0值和其它非0值。 0030 所述步长可以是任何大于或等于1的数。 0031 所述对应关系可以是线性关系或非线性关系。 0032 与传统的ECC算法抗错误攻击方法相比,本发明的方法通过在ECC点乘算法中引 入计数器对点乘的迭代次数进行计数,判断计数值和迭代次数关系的正确性来检查错误, 抵抗错误攻击,从而避免了对解密。

10、结果的长时间验算,提高了ECC算法抵抗错误攻击的效 率,保证了当前所有使用ECC算法的智能卡的安全性。 附图说明 0033 附图是本发明的方法流程图。 具体实施方式 0034 为对本发明的技术内容、特点与功效有更具体的了解,现结合图示的实施方式,详 述如下: 0035 在本发明的实施例中,假设ECC算法的数据长度为m位,即标量d和椭圆曲线上点 坐标的长度都是m位的数值,点乘的时间代价为T(m)。请参阅图1所示,该实施例的ECC点 乘算法的流程为: 0036 输入:标量d,椭圆曲线上的点P,ECC相关参数 0037 步骤1,引入一个计数器counter; 0038 步骤2,初始化该计数器的计数初。

11、值,并设定该计数器的计数步长; 0039 步骤3,在进行ECC点乘迭代运算前,计算点乘迭代次数N; 0040 步骤4,在每轮迭代中,对计数器的计数值按照步长进行递增(或递减); 0041 步骤5,ECC点乘迭代运算结束后,将计数器的计数终值和ECC点乘迭代次数N进 行比对,判断其是否满足预先设定的对应关系,若是,则输出点乘迭代运算的结果,若否,则 输出点乘错误信息,不输出计算结果。 0042 由上述流程可见,整个ECC点乘运算流程中仅增加了计数器操作和判断点乘迭代 次数和计数器的计数值之间的关系的操作,其时间代价和点乘运算本身所需的时间相比, 可以忽略,所以,总的时间代价近似于T(m),即普通ECC点乘运算的时间代价。 说 明 书CN 102790673 A 3/3页 5 0043 同时,由本实施例的上述算法可以看出,如果攻击者在点乘迭代过程中(即步骤 4)注入错误导致迭代提前结束,则步骤5中就会发现点乘迭代次数N的数值和计数器的计 数终值不满足预设的对应关系,即检测到ECC解密过程受到了错误攻击,从而不会向外输 出ECC点乘运算的中间结果,如此,攻击者便无法得到有用的信息,从而有效地抵抗了这类 错误攻击。 说 明 书CN 102790673 A 1/1页 6 说 明 书 附 图CN 102790673 A 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1