基于ecc实现抗dpa攻击的标量乘算法的方法及装置制造方法

文档序号:7802733阅读:189来源:国知局
基于ecc实现抗dpa攻击的标量乘算法的方法及装置制造方法
【专利摘要】本发明公开了一种基于ECC实现抗DPA攻击的标量乘算法的方法,包括:状态控制器控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算。本发明还公开了一种加密装置,所述加密装置基于ECC算法实现,包括有:状态控制器,用于控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算;随机数产生器,用于产生随机数;双模乘器,用于受控于状态控制器进行模乘计算。通过本发明实施例,令标量乘运算有了抗DPA攻击的能力,也提高了运算速度。
【专利说明】基于ECC实现抗DPA攻击的标量乘算法的方法及装置
【技术领域】
[0001]本发明涉及椭圆曲线加密算法(ECC)【技术领域】,具体涉及一种基于ECC实现抗DPA攻击的标量乘算法的方法及装置。
【背景技术】
[0002]ECC加密算法是单位比特安全性能最高的非对称加密算法,由于硬件实现ECC算法速度比软件快很多,很多智能卡芯片、阅读器芯片及安全芯片中。随着该算法应用的广泛,加上各种新型攻击方法的出现,ECC安全问题越来越受到重视。目前对ECC加密算法的攻击方式有很多种,最有效的方法是通过旁信道,分析硬件运算过程中产生的功耗,对其进行功耗分析攻击。
[0003]功耗分析攻击主要包括简单功耗分析(SPA)及差分功耗分析(DPA)。SPA利用设备在不同的操作步骤下会产生不同的功耗的特点,对攻击目标的一次加密操作产生的功耗数据进行截取,获得一条操作功耗曲线。对这条曲线进行分析,根据不同操作产生的不同功耗曲线来解析操作,获取整个操作步骤,完成对加解密的攻击。DPA与SPA不同,它采用了统计的方法,获取同一次操作的多条功耗曲线,对这些功耗曲线联合进行数理统计从而获得密钥。
[0004]ECC算法中最关键的运算为标量乘,常见的标量乘算法有二进制标量乘算法,冗余的二进制编码算法以及蒙格玛利算法,以及这三种算法的变形。二进制标量乘算法是最原始的标量乘算法,它直接根据算法定义进行实现,运算速度很慢,没有抗SPA及DPA的性能。冗余的二进制编码算法对二进制算法进行了改进,降低了操作数的汉明重量,减少了计算的次数,运算速度得到提高,但依然较慢,同样不具备抗SPA及DPA的性能。而蒙格玛利算法是目前实现ECC标量乘最为有效的算法,其在实现的过程中利用椭圆曲线上计算倍点、点加操作只需要用到点的X坐标,并不需要I坐标这一特性,使得在占用较少的存储资源的同时具有较高的运算速度,而且具有抗SPA攻击的特性。但足之处在于蒙格玛利算法依然无法抵抗DPA攻击。

【发明内容】

[0005]针对以上几种实现算法的不足,本发明提出了一种ECC实现抗DPA攻击的标量乘算法的方法及装置。它在原始的蒙格玛利算法基础上加以改进,以牺牲小部分面积为代价,采用双模乘器进行并行计算,同时加入随机数冗余操作步骤,具备了抗DPA攻击特性的同时提高了计算的速度。
[0006]本发明提供了一种基于ECC实现抗DPA攻击的标量乘算法的方法,所述方法包括如下步骤:
[0007]状态控制器控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算。
[0008]所述状态控制器在标量乘算法中还控制模加、或者模减、或者模平方、或者模逆计笪
[0009]相应的,本发明实施例还提供了一种加密装置,所述加密装置基于ECC算法实现,包括有:
[0010]状态控制器,用于控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算;
[0011]随机数产生器,用于产生随机数;
[0012]双模乘器,用于受控于状态控制器进行模乘计算。
[0013]所述加密装置还包括:寄存器组,用于存储计算过程中用到的变量。
[0014]所述加密装置还包括:模加模块、模减模块、模平方模块、模逆模块。
[0015]在本发明通过提供的标量乘实现方法,采用双模乘器的结构,同时引入随机数模乘运算周期,一方面令标量乘运算有了抗DPA攻击的能力,一方面提高了运算速度。
【专利附图】

【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0017]图1是本发明实施例中的加密装置结构示意图;
[0018]图2是本发明实施例中的基于ECC实现抗DPA攻击的标量乘算法的方法流程图;
[0019]图3是本发明实施例中的实现标量乘算法的流程图;
[0020]图4是本发明实施例中的标量乘算法中迭代周期插入冗余模乘周期的流程图。【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0022]图1示出了本发明实施例中的加密装置结构示意图,该加密装置主要包括状态机、寄存器组以及模乘单元A、模乘单元B (由模乘单元A和模乘单元B组成了双模乘器)、模平方单元及模逆单元等。其中:状态机控制整个计算的过程,寄存器组用来储存计算过程中用到的变量,模乘单元A与模乘单元B构成双模乘器结构,以加快计算速度。模平方单元及模逆单元用于完成一些必要的运算。本发明主要利用状态机来控制整个计算流程,通过该状态机来控制两个模乘器进行模乘操作,使得两个模乘器在大多时刻都保持工作状态,使得标量乘的运算可以分为两个部分同时进行,大大提高运算的时间。同时状态机还控制模加/减、模平方、模逆等模块,使其与模乘运算一起共同完成标量乘的计算的过程。随机数产生器产生的随机数也通过接口输入至该模块,在状态机的控制下,随机的进行随机数的冗余计算。该随机数用来在蒙格玛利算法中冗余计算,使标量乘模块的功耗曲线具有不可重复和分析的性能。
[0023]图2示出了本发明实施例中的基于ECC实现抗DPA攻击的标量乘算法的方法流程图,包括如下步骤:
[0024]S201、状态控制器控制双模乘器进行并行运算;
[0025]S202、状态控制器同时基于随机数产生器产生的随机数进行冗余计算。
[0026]采用双模乘器结构,同时对算法进行优化,使得大部分时间双模乘器均处于工作状态,以达到资源的最大利用。该算法在实现上采用双模乘器结构,理论上可以将速度提高到原来的两倍。但为了实现抗DPA,引入了由真随机数生成模块产生的随机数,并用双模乘器作冗余计算。在算法实现上,蒙格玛利算法一个迭代周期需要进行六次模乘算法,使用双模乘器,三个模乘算法时间周期即可算完。为了令攻击者无法进行DPA攻击,本发明实施例加了一个冗余的模乘周期,在该周期内,双模乘器处于工作状态,对随机数进行模乘操作。由于引入随机数,该硬件模块的功耗曲线不再具有可重现性,可以达到抗DPA的效果。
[0027]具体计算方法的实现,如图3所示,状态机对输入的数据进行具体的控制,完成标量乘的计算。蒙格玛利算法利用了一个特性,就是在进行循环迭代的过程中,求点加与倍点的操作只需要用到点的X坐标的值,y坐标的值不需要用到。本发明实施例中根据点的X坐标进行计算,直到循环迭代全部完成后,再利用输入的点的I坐标及迭代输出的结果进行计算,求出输出点的y坐标,完成计算。记输入的标量为k,k[i]表示k的二进制形式中第i位的二进制值,令其长度为L。首先计算[P,2P]的值,这是作为迭代的初始值,此处状态机调用模平方单元完成该步骤的计算。接下来令i= (L-2),循环进行迭代操作直至i为O。每一轮的迭代都会根据k[i]的值进行操作,计算出[2tP,(2t+l)P]或者[(2t+l)P,(2t+2)P]的值。每个计算的过程都包括三个模乘周期及一个冗余模乘计算周期。三个模乘周期记为周期A、周期B及周期C,对X坐标进行模乘计算。冗余模乘计算周期通过将随机数产生器生成的随机数进行模乘计算,形成一个跟其它模乘周期功耗强度可比拟的计算过程,以达到抗DPA的目的。经过(1-Ι)次的迭代后,状态机通过调用模逆单元及模乘单元对迭代结果进行相应的计算,求出点的I坐标。此时便得到了完整的X坐标与I坐标,完成标量乘的计算。
[0028]本发明将随机冗余模乘将该模乘周期出现的位置随机化。记原算法中的模乘周期分别有周期A、周期B、周期C。则该模乘周期D出现的位置可以在A前、AB间、BC间及C后。我们将从真随机数输出模块引入一个两位的随机数,用来随机控制该模乘周期的出现的位置,进而实现冗余模乘计算周期位置的随机化。
[0029]具体的随机化过程如图4所示,在每一个标量乘迭代周期里面,不管值为O还是为1,均按图4所示的流程图一样进行判断,三个模乘周期间随机的插入冗余的随机数模乘周期。这样一来,攻击者见到的是四个模乘周期ABCD,这四个模乘周期的功耗具有可比拟性,无法将其区分开来,找不出冗余周期所处的位置。攻击者进行DPA攻击时,只能对整个功耗曲线进行分析。但由于有一个模乘周期是对随机数进行模乘操作的,因此其运算生成的功耗具有不可预知性。从而从原理上防护了 DPA攻击。
[0030]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
[0031]以上对本发明实施例所提供的基于ECC实现抗DPA攻击的标量乘算法的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种基于ECC实现抗DPA攻击的标量乘算法的方法,其特征在于,所述方法包括如下步骤: 状态控制器控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算。
2.如权利要求1所述的基于ECC实现抗DPA攻击的标量乘算法的方法,其特征在于,所述状态控制器在标量乘算法中还控制模加、或者模减、或者模平方、或者模逆计算。
3.一种加密装置,其特征在于,所述加密装置基于ECC算法实现,包括有: 状态控制器,用于控制双模乘器进行并行计算;并同时基于随机数产生器产生的随机数进行冗余计算; 随机数产生器,用于产生随机数; 双模乘器,用于受控于状态控制器进行模乘计算。
4.如权利要求3所述的加密装置,其特征在于,所述加密装置还包括:寄存器组,用于存储计算过程中用到的变量。
5.如权利要求4所述的加密装置,其特征在于,所述加密装置还包括:模加模块、模减模块、模平方模块、模逆模块。
【文档编号】H04L9/06GK103944714SQ201410179317
【公开日】2014年7月23日 申请日期:2014年4月26日 优先权日:2014年4月26日
【发明者】胡建国, 黄晴晴, 李仕仁, 王德明, 谭宇泉 申请人:胡建国, 广东顺德中山大学卡内基梅隆大学国际联合研究院, 中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1