当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于寄存器掩码的面向AES算法的抗功耗攻击方法技术

技术编号:14756064 阅读:52 留言:0更新日期:2017-03-02 22:03
本发明专利技术公开了一种基于寄存器掩码的面向AES算法的抗功耗攻击方法,在AES算法中添加随机数发生器和寄存器保护模块,寄存器保护模块包括第一异或单元、第二异或单元和寄存器。更新寄存器中的中间结果时,将需要保存的中间结果与随机数异或之后保存到寄存器中,同时保存该随机数;读取寄存器中的中间结果时,在将寄存器中的值读取并与保存的随机数进行异或。该方法保证寄存器中的存储值具有随机性,有效的隐藏了AES密码算法中的汉明距离泄露,可以有效的抵抗基于汉明距离模型的功耗攻击。

【技术实现步骤摘要】

本专利技术涉及集成电路硬件实现和信息安全
,特别是涉及一种基于寄存器掩码的面向AES算法的抗功耗攻击方法
技术介绍
随着互联网技术与信息科技的快速发展,信息加密技术在很多领域都有非常重要的应用。密码产品可以采用软件或硬件实现,但由于硬件实现比软件实现具有速度更快,功耗更低的优势,基于硬件实现的密码设备已成为研究热点。各种基于AES(AdvancedEncryptionStandard,高级加密标准)算法的密码芯片得到了广泛的研究和开发。密码芯片也面临着各种各样的安全风险,近年来以差分功耗攻为代表的旁路攻击,对密码设备的安全性提出了严峻的挑战。功耗攻击是一种非入侵式攻击,攻击者首先大量获取密码设备在加解密操作时泄露的功耗信息,然后根据明文或者密文建立功耗的数学模型,得到大量中间值,将中间值和实际功耗进行对比分析,采用统计处理方法计算出相关系数,从而分析出关键的密钥信息。如何抵抗功耗分析攻击保护算法安全是学术界一个重要的研究点。在采集到大量实际功耗后,功耗攻击得以成功的关键在于建立准确的功耗数学模型。汉明距离模型的基本思想是计算数字电路在某个特定时段内电路中0→1转换和1→0转换的总数,然后利用转换的总数来刻画电路在该时间段内的功耗。对于数字电路,功耗主要来自于电路的状态转换,而并不依赖于数据本身,并且翻转的器件越多,其功耗越大。因此使用汉明距离模型能够较好的刻画数字电路的能量消耗。在某一时刻,如果能够计算得到电路翻转前的数据D0和翻转后的数据D1,得到数据翻转的比特个数,从而算出数据的汉明距离,就可以和真实的功耗值建立联系。建立汉明距离模型时,需要知道寄存器中数据变化前后的数值。汉明距离模型一般用于对寄存器的功耗进行描述。攻击者一般选取中间数据存储的寄存器为攻击点。攻击者首先猜测密钥,进一步猜测相邻两轮的中间值,计算汉明距离作为寄存器变化所产生的功耗模型;然后采集实际功耗,将功耗模型与实际功耗进行相关性分析得到正确的密钥。对于现有的抗功耗攻击的方法,从实现代价方面看,大多存在硬件资源开销大、性能开销大、可扩展性弱等缺点,从实现效果方面看,有些仅仅削弱中间结果数据汉明距离与功耗之间的相关性,而未能完全消除二者直接的相关性,因此无法完全抵御基于汉明距离的功耗攻击。
技术实现思路
专利技术目的:本专利技术的目的是提供一种能够解决现有技术存在的不足的基于寄存器掩码的面向AES算法的抗功耗攻击方法。技术方案:为达到此目的,本专利技术采用以下技术方案:本专利技术所述的基于寄存器掩码的面向AES算法的抗功耗攻击方法,在AES算法中添加随机数发生器和寄存器保护模块,寄存器保护模块包括第一异或单元、第二异或单元和寄存器;AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,随机数发生器产生初始阶段随机数,初始阶段随机数和密钥加操作结果通过第一异或单元进行异或操作,得到第一阶段异或结果并存入寄存器,在第1轮轮操作开始时,再将初始阶段随机数和初始阶段异或结果通过第二异或单元进行异或操作,得到被还原的密钥加操作结果,作为第1轮轮操作的输入数据;AES算法的第i轮中,轮操作模块计算得到第i轮中间值,随机数发生器产生第i轮随机数,第i轮中间值和第i轮随机数通过第一异或单元进行异或操作,得到第i轮异或结果并存入寄存器;如果i≠N,则在第i+1轮开始时,第i轮异或结果和第i轮随机数通过第二异或单元进行异或操作,得到被还原的第i轮中间值,作为第i+1轮的输入数据;如果i=N,则第i轮异或结果和第i轮随机数通过第二异或单元进行异或操作,得到密文;其中,N为AES算法的轮操作的总次数。进一步,所述AES算法的第i轮中,1<i<N,轮操作模块对第i-1轮中间值依次进行字节替换、行移位、列混合和密钥加这四种操作,得到第i轮中间值。进一步,所述AES算法的第N轮中,轮操作模块对第N-1轮中间值依次进行字节替换、行移位和密钥加这三种操作,得到密文。有益效果:与现有技术相比,本专利技术具有以下有益效果:1)本专利技术硬件资源开销低。只需要增加少量异或运算单元和随机数发生器,相比整个AES密码电路仅占很小比例;2)本专利技术性能开销低。对于电路关键路径仅增加少量异或运算单元的延迟,相比整个AES电路中的字节替换、行移位、列混合和密钥加等模块的延迟,仅占很小的比例,因此不会导致工作主频有明显降低;3)本专利技术具有很强的扩展性和通用性,通过对寄存器进行保护,可以很方便的移植到其他AES密码算法实现电路中;4)本专利技术保证寄存器中的存储值具有随机性,有效的隐藏了AES密码算法中的汉明距离泄露,消除了中间结果数据汉明距离与功耗之间的相关性,能够有效抵抗基于汉明距离模型功耗攻击。附图说明图1为传统的AES算法的流程图;图2为采用了本专利技术方法的AES算法的流程图;图3为对传统AES算法进行功耗攻击第一个字节所得到的相关性系数矩阵结果;图4为对使用本专利技术方法后的AES算法进行功耗攻击第一个字节所得到的相关性系数矩阵结果。具体实施方式下面结合具体实施方式对本专利技术的技术方案作进一步的介绍。传统的AES算法分组加密算法一共由3部分组成,分别是初始密钥加、9轮相同的轮操作和第10轮末变换。每一轮均需要一个轮密钥来完成密钥加操作,一共十一个子密钥,记为Kn(n=0,…,10)。子密钥由初始密钥经过扩展得到。AES算法中间9次循环的轮操作包括字节替换、行移位、列混合和密钥加四个操作。其中第十轮末变换包括字节替换、行移位和密钥加三个操作。AES每轮结束都会产生一个中间值数据,可以记为Dn(n=0,…,10),存储在寄存器中,其中D10即为密文输出。如图1所示,以一级流水的AES-128算法硬件实现为例,在攻击者可以获得输出的密文以及硬件的功耗轨迹的情况下,攻击者可以针对第九轮的输出值进行攻击。通过对密钥进行猜测,攻击者可以从密文推导出第九轮的输出值,由于寄存器在某一时刻其值从第九轮的输出变为第十轮的输出(即为密文),因此可以建立汉明距离模型。由于密钥长度为16字节,因此可以逐个字节攻破,具体的步骤如下:1.根据D10中的第N个字节数据和假设的密钥K10的第N个字节数据可以推导出密钥加操作之前128比特中间值的第N个字节的值。2.根据密钥加操作之前第N个字节的值,可以推导出行移位运算之前的数据第M个字节的值。N和M之前的映射关系可由行移位的运算规则得出。3.通过行移位运算之前第M个字节的值经过逆字节变换可以推导出第九轮的输出第M个字节的值。4.通过第九轮的输出中第M个字节的值和密文第M个字节的值之间可以建立一个8比特的汉明距离模型。针对上述的基于汉明距离模型的攻击,本专利专利技术了一种基于寄存器掩码的面向AES算法的抗功耗攻击方法,如图2所示,在AES算法中添加随机数发生器1和寄存器保护模块2,寄存器保护模块2包括第一异或单元21、第二异或单元23和寄存器22。AES算法包括三个阶段,第一阶段是初始密钥加操作,第二阶段包括9轮相同的轮操作,第三阶段是末变换。下面分别介绍本专利技术对这三个阶段的改进:AES算法的第一阶段中,明文和初始密钥进行密钥加操作,随机数发生器1产生第一阶段随机数,第一阶段随机数和密钥加操作结果通过第一异或单元21进行异或操作,得到第一阶段异或结果并存入寄存器22本文档来自技高网
...
一种基于寄存器掩码的面向AES算法的抗功耗攻击方法

【技术保护点】
一种基于寄存器掩码的面向AES算法的抗功耗攻击方法,其特征在于:在AES算法中添加随机数发生器(1)和寄存器保护模块(2),寄存器保护模块(2)包括第一异或单元(21)、第二异或单元(23)和寄存器(22);AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,随机数发生器(1)产生初始阶段随机数,初始阶段随机数和密钥加操作结果通过第一异或单元(21)进行异或操作,得到第一阶段异或结果并存入寄存器(22),在第1轮轮操作开始时,再将初始阶段随机数和初始阶段异或结果通过第二异或单元(23)进行异或操作,得到被还原的密钥加操作结果,作为第1轮轮操作的输入数据;AES算法的第i轮中,轮操作模块计算得到第i轮中间值,随机数发生器(1)产生第i轮随机数,第i轮中间值和第i轮随机数通过第一异或单元(21)进行异或操作,得到第i轮异或结果并存入寄存器(22);如果i≠N,则在第i+1轮开始时,第i轮异或结果和第i轮随机数通过第二异或单元(23)进行异或操作,得到被还原的第i轮中间值,作为第i+1轮的输入数据;如果i=N,则第i轮异或结果和第i轮随机数通过第二异或单元(23)进行异或操作,得到密文;其中,N为AES算法的轮操作的总次数。...

【技术特征摘要】
1.一种基于寄存器掩码的面向AES算法的抗功耗攻击方法,其特征在于:在AES算法中添加随机数发生器(1)和寄存器保护模块(2),寄存器保护模块(2)包括第一异或单元(21)、第二异或单元(23)和寄存器(22);AES算法初始阶段的密钥加操作中,明文和初始密钥进行密钥加操作,随机数发生器(1)产生初始阶段随机数,初始阶段随机数和密钥加操作结果通过第一异或单元(21)进行异或操作,得到第一阶段异或结果并存入寄存器(22),在第1轮轮操作开始时,再将初始阶段随机数和初始阶段异或结果通过第二异或单元(23)进行异或操作,得到被还原的密钥加操作结果,作为第1轮轮操作的输入数据;AES算法的第i轮中,轮操作模块计算得到第i轮中间值,随机数发生器(1)产生第i轮随机数,第i轮中间值和第i轮随机数通过第一异或单元(21)进行异或操作,得到第...

【专利技术属性】
技术研发人员:曹鹏陈圣华申艾麟陆启乐刘波杨锦江
申请(专利权)人:东南大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1