一种基于随机延时的面向aes算法的抗功耗攻击方法

文档序号:10515192阅读:304来源:国知局
一种基于随机延时的面向aes算法的抗功耗攻击方法
【专利摘要】本发明公开了一种基于随机延时的面向AES算法的抗功耗攻击方法,在AES算法中添加随机数发生器和随机延时模块,在寄存器与轮操作模块之间提供多条不同延时的路径,并通过随机数发生器产生的随机数来随机选择一条路径,使得轮操作模块产生功耗的时间点在一个时钟周期中趋于随机化。本方法有效降低了AES算法中基于汉明重量的假设功耗和实际功耗轨迹的相关性,可以有效抵抗基于汉明重量模型的功耗攻击。
【专利说明】
一种基于随机延时的面向AES算法的抗功耗攻击方法
技术领域
[0001]本发明涉及集成电路硬件实现和信息安全技术领域,特别是涉及一种基于随机延时的面向AES算法的抗功耗攻击方法。
【背景技术】
[0002]随着互联网技术与信息科技的快速发展,信息加密技术在很多领域都有非常重要的应用。密码产品可以采用软件或硬件实现,但由于硬件实现比软件实现具有速度更快,功耗更低的优势,基于硬件实现的密码设备已成为研究热点。各种基于DES(Data Encrypt1nStandard,数据加密标准)、AES(Advanced Encrypt1n Standard,高级加密标准)等算法的密码芯片得到了广泛的研究和开发。
[0003]密码芯片也面临着各种各样的安全风险,近年来以差分功耗攻为代表的旁路攻击,对密码设备的安全性提出了严峻的挑战。功耗攻击是一种非入侵式攻击,攻击者首先大量获取密码设备在加解密操作时泄露的功耗信息,然后根据明文或者密文建立功耗的数学模型,得到大量中间值,将中间值和实际功耗进行对比分析,采用统计处理方法计算出相关系数,从而分析出关键的密钥信息。如何抵抗功耗分析攻击保护算法安全是学术界一个重要的研究点。
[0004]对于数字电路,功耗主要来自于电路的转换状态,由于电路中存在寄生电容的影响,所以数据从O翻转到I与从I翻转到O的功耗具有微小的差别,因此电路的功耗与电路计算过程中的某一个二进制中间值的汉明重量存在微弱的相关性,利用这种相关性可以对密钥进行猜测,从而可以攻击出正确的中间值。
[0005]然而,现有技术有些实现成本高,对性能和硬件资源开销影响大;有些抗攻击方法存在局限性,难以抵抗弹性对齐等预处理手段;有些实现方案繁琐,需要改变标准单元库或改变现行标准EDA工具流程。

【发明内容】

[0006]发明目的:本发明的目的是提供一种能解决现有技术存在的缺陷的基于随机延时的面向AES算法的抗功耗攻击方法。
[0007]技术方案:为达到此目的,本发明采用以下技术方案:
[0008]本发明所述的基于随机延时的面向AES算法的抗功耗攻击方法,在AES算法中添加随机数发生器和随机延时模块;AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,密钥加操作结果存入寄存器中,随机数发生器发送初始阶段随机数给随机延时模块,随机延时模块根据随机数确定初始阶段延时时间,经过初始阶段延时时间后,将密钥加操作结果送入第I轮轮操作模块;AES算法的第i轮中,I < i < N,N*AES算法的轮操作的总次数,随机数发生器发送第i轮随机数给随机延时模块,随机延时模块根据第i轮随机数确定第i轮延时时间,经过第i轮延时时间后,将存储在寄存器中的第1-Ι轮中间值送入第i轮轮操作模块进行轮操作,如果i判,则将计算得到的第i轮中间值存入寄存器中,如果i=N,则将计算得到的密文输出。
[0009]进一步,所述随机延时模块包括多种不同延时的路径和一个数据选择器,随机数发生器将随机数发送给数据选择器的地址输入端,数据选择器对路径进行选择。
[0010]进一步,所述路径中,第j条路径包括2(j_l)个反相器,Kj<M,M为路径总数,数据选择器具有M路数据输入端。
[0011]进一步,所述AES算法的第i轮中,l〈i〈N,轮操作模块对第1-Ι轮中间值依次进行字节替换、行移位、列混合和密钥加这四种操作,得到第i轮中间值。
[0012]进一步,所述AES算法的第N轮中,轮操作模块对第N-1轮中间值依次进行字节替换、行移位和密钥加这三种操作,得到密文。
[0013]有益效果:与现有技术相比,本发明具有以下有益效果:
[0014]I)抗攻击效果好,特别能够抵御弹性对齐等预处理手段;
[0015]2)抗攻击成本低,表现为硬件资源开销增加不大,关键路径延时增加不大;
[0016]3)兼容性好,表现为无需定制标准单元库,无需改变常规EDA工具流程。
【附图说明】
[0017]图1为传统的无流水线的AES算法流程图;
[0018]图2为采用了本发明方法的AES算法的流程图;
[0019]图3为对传统AES算法进行基于汉明重量模型的功耗攻击第一个字节所得到的相关性系数矩阵;
[0020]图4为对使用本发明方法后的AES算法进行基于汉明重量模型的功耗攻击第一个字节所得到的相关性系数矩阵。
【具体实施方式】
[0021]下面结合【具体实施方式】对本发明的技术方案作进一步的介绍。
[0022]传统AES算法一共由3部分组成,分别是初始密钥加、9轮相同的轮操作和第10轮末变换。每一轮均需要一个轮密钥来完成密钥加操作,一共i^一个子密钥,记为Κη(η = 0,…,10)。子密钥由初始密钥经过扩展得到。AES算法中间9次循环的轮操作包括字节替换、行移位、列混合和密钥加四个操作。其中第十轮末变换包括字节替换、行移位和密钥加三个操作。AES每轮结束都会产生一个中间值数据,可以记为Dn(n = 0,…,10),存储在寄存器中,其中DlO即为密文输出。
[0023]如图1所示,以一级流水的AES128算法硬件实现为例,在攻击者可以获得输出的密文以及硬件的功耗轨迹的情况下,攻击者可以针对第九轮的输出值进行攻击。通过对密钥进行猜测,攻击者可以从密文推导出第九轮的输出值,根据第九轮的输出值可以建立汉明重量模型。由于密钥具有128比特字节,因此可以将密钥分为16个字节逐个攻破,具体的步骤如下:
[0024]1.根据DlO中的第N个字节数据和假设的密钥KlO的第N个字节数据可以推导出密钥加操作之前128比特中间值的第N个字节的值。
[0025]2.根据密钥加操作之前第N个字节的值,可以推导出行移位运算之前的数据第M个字节的值。N和M之前的映射关系可由行移位的运算规则得出。
[0026]3.通过行移位运算之前第M个字节的值经过逆字节变换可以推导出第九轮的输出第M个字节的值。
[0027]4.通过第九轮的输出中第M个字节的值建立汉明重量模型,与实际功耗轨迹进行相关性分析。
[0028]针对上述基于汉明重量模型的功耗攻击,本发明公开了一种基于随机延时的面向AES算法的抗功耗攻击方法,如图2所示,在AES算法中添加随机数发生器I和随机延时模块St3AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,密钥加操作结果存入寄存器中,随机数发生器I发送初始阶段随机数给随机延时模块2,随机延时模块2根据随机数确定初始阶段延时时间,经过初始阶段延时时间后,将密钥加操作结果送入第I轮轮操作模块;AES算法的第i轮中,I < i < 9,随机数发生器I发送第i轮随机数给随机延时模块2,随机延时模块2根据第i轮随机数确定第i轮延时时间,经过第i轮延时时间后,将存储在寄存器中的第1-Ι轮中间值送入第i轮轮操作模块进行轮操作,然后将计算得到的第i轮中间值存入寄存器中。第10轮轮操作得到的密文则直接输出。
[0029]其中,随机延时模块2包括4条不同延时的路径和一个数据选择器21,随机数发生器I将随机数发送给数据选择器21的地址输入端,数据选择器21对路径进行选择。第j条路径包括2(j_l)个反相器,I <4,数据选择器21具有4路数据输入端。随机延时模块2使得轮操作在每个加密周期中的时间趋于随机化,从而使得与中间值相关的功耗轨迹时间点无法对齐,因此可以极大的削弱中间值汉明重量模型与功耗轨迹间的相关性。
[0030]采用本发明方法后,整个AES电路所需的硬件资源增加了47%,关键路径延迟增长了22%,和其他抗汉明重量模型功耗攻击方法相比,对面积开销和性能开销的影响有限。
[0031]本【具体实施方式】基于FPGA平台实现了传统AES128算法和使用本专利提出的随机延时方法改进后的AES128算法,并对以上两种情况进行了基于汉明重量模型的功耗攻击。
[0032]I)针对传统AES算法的基于汉明重量模型的攻击
[0033]将传统AE S I 2 8算法通过F P G A实现,设置的初始密钥为’0102030405060708090a0b0c0d0e0f ’,其中随后一轮的128比特的子密钥为KlO为’1311ld7fe3944al7f37a78b4d2b30c5’。本【具体实施方式】使用FPGA对随机明文进行加密,同时利用示波器采集AES加密时的功耗轨迹共10000条,每条功耗轨迹的点数为N,同时获得10000组相对应的密文数据。由于密钥128位,因此需要将密钥分为16个字节逐个攻破。将10000组密文和假设的密钥可以推导出第九轮的输出值,同时利用汉明重量模型,可以得到一个256列10000行的假设功耗矩阵。其中矩阵的每一列对应一个密钥字节的一个密钥假设。10000条示波器采集的功耗轨迹可以组成一个N列10000行的真实功耗矩阵。将假设功耗矩阵的每一列和真实功耗矩阵的每一列进行相关性分析,可以得到一个256行N列的相关性矩阵,其中每一行对应相关字节的一个密钥假设。图3为使用汉明重量模型攻击第十轮的输入所得到的相关性矩阵图。其中每一条曲线为相关性矩阵的一行,即一个密钥假设,可以发现有一条曲线出现了明显的尖峰,该曲线所对应的密钥假设为19,为正确的密钥假设。
[0034]2)针对采用本发明方法改进后的AES算法的基于汉明重量模型的攻击
[0035]使用本专利提出的一种随机延时的方法改进了AES算法,并将改进后的AES算法使用FPGA实现,并尝试进行基于汉明重量模型的功耗攻击。本实验使用示波器一共采集了FPGA运行改进后的AES算法的功耗轨迹共30万条。然后使用相同的方法对改进后的AES算法进行攻击,得到相关性系数矩阵如图4所示。
[0036]从图4中可以看出正确密钥对应曲线(灰色曲线)已经淹没在了其余255条曲线之中,改进后的AES算法实现,功耗轨迹条数从I万条增加到30万条后,正确密钥依然没有出现尖峰。由此可知,改进后的AES算法有效的抵抗了基于汉明重量的功耗攻击,证明了本专利提出方法的有效性。
【主权项】
1.一种基于随机延时的面向AES算法的抗功耗攻击方法,其特征在于:在AES算法中添加随机数发生器(I)和随机延时模块(2) ;AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,密钥加操作结果存入寄存器中,随机数发生器(I)发送初始阶段随机数给随机延时模块(2),随机延时模块(2)根据随机数确定初始阶段延时时间,经过初始阶段延时时间后,将密钥加操作结果送入第I轮轮操作模块;AES算法的第i轮中,l<i <N,N为AES算法的轮操作的总次数,随机数发生器(I)发送第i轮随机数给随机延时模块(2),随机延时模块(2)根据第i轮随机数确定第i轮延时时间,经过第i轮延时时间后,将存储在寄存器中的第1-Ι轮中间值送入第i轮轮操作模块进行轮操作,如果i在N,则将计算得到的第i轮中间值存入寄存器中,如果i=N,则将计算得到的密文输出。2.根据权利要求1所述的基于随机延时的面向AES算法的抗功耗攻击方法,其特征在于:所述随机延时模块(2)包括多种不同延时的路径和一个数据选择器(21),随机数发生器(I)将随机数发送给数据选择器(21)的地址输入端,数据选择器(21)对路径进行选择。3.根据权利要求2所述的基于随机延时的面向AES算法的抗功耗攻击方法,其特征在于:所述路径中,第j条路径包括2(j_l)个反相器,I <M,M为路径总数,数据选择器(21)具有M路数据输入端。4.根据权利要求1所述的基于随机延时的面向AES算法的抗功耗攻击方法,其特征在于:所述AES算法的第i轮中,l〈i〈N,轮操作模块对第1-Ι轮中间值依次进行字节替换、行移位、列混合和密钥加这四种操作,得到第i轮中间值。5.根据权利要求1所述的基于随机延时的面向AES算法的抗功耗攻击方法,其特征在于:所述AES算法的第N轮中,轮操作模块对第N-1轮中间值依次进行字节替换、行移位和密钥加这三种操作,得到密文。
【文档编号】H04L9/00GK105871536SQ201610422789
【公开日】2016年8月17日
【申请日】2016年6月14日
【发明人】曹鹏, 申艾麟, 陈圣华, 陆启乐, 刘波, 杨锦江
【申请人】东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1