完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
0 引言 随着可编程威廉希尔官方网站
的不断发展,FPGA已经成为各类商业系统的重要组成部分。然而,由于配置文件(比特流)必须存储在FPGA外部,通过窃取外部存储器后,攻击者可直接盗版生产,还可通过FPGA逆向工程(FPGA Reverse Engineering)获得硬件设计[1,2]或加入硬件木马[3,4],对产品进行伪造和破坏,严重地威胁了用户知识产权。 为克服这一漏洞,Xilinx公司在ISE、Vivado等设计软件中增加AES-256 CBC加密配置方式,并在FPGA内部集成解密模块,从而防止硬件设计被克隆和伪造[5]。然而,这种方式并不完全可靠。2011年Moradi等人使用差分能量攻击(Differential Power Attack,DPA)恢复了Virtex-II Pro系列FPGA加密比特流所用3DES算法密钥[6],引起了工业界的广泛关注。此后,使用AES-256算法加密的Xilinx 4系列和5、6、7系列FPGA分别于2012年[7]和2016年[8]被DPA攻击和差分电磁攻击(Differential Electromagnetic Attack,DEMA)攻破。 本文针对Xilinx 7系列FPGA实施能量攻击,从攻击和检验等两个角度对攻击效率进行了提升。首先根据Xilinx FPGA解密的实现方式,讨论了攻击点函数的选取方法,使用DPA攻击成功恢复了AES-256算法密钥,并基于相关系数极性设计了一种新的检验方法。 1 FPGA克隆威廉希尔官方网站
基于FPGA生产的商用产品,必须通过外部非易失存储器进行重新配置。而FPGA克隆则是通过非法手段获取比特流配置文件,配合FPGA逆向工具(如BIL[1]、FpgaTools[9])窃取其内部设计XDL/NCD网表的方法,具体流程如图1所示。 加密比特流结构如图2所示,使用HMAC算法生成认证码SHA256,并通过AES-256算法以CBC模式对SHA256、HMAC密钥kHMAC和配置信息加密;初始向量IV明文写入比特流中[5]。因此,密文存储时,FPGA克隆的关键在于AES密钥kAES的获取。 由于kAES保存于FPGA内部eFUSE中,一次性写入,外部无法读取[5],而明文信息plaintext直接用于FPGA配置,同样无法获取,kAES的获取演变为唯密文攻击(Ciphertext-Only Attack,COA)。由于CBC模式具备很强的抗COA攻击能力,传统密码分析方法难以攻破,此时引入旁道攻击成为一种较为理想的方法,如图1所示。 2 能量攻击方法设计 2.1 能量攻击原理 2.1.1 攻击流程 能量攻击是最流行的旁道攻击方法,攻击者无须了解被攻击设备的详细知识,根据功耗的数据相关性,利用加密或解密时的能量迹即可恢复密钥,能量攻击流程如图3所示[10],具体流程如下: (1)选取攻击点 (4)计算假设功耗值 (6)结果检验 一般直接代入攻击所得密钥,使用新的分组数据加密或解密,从而验证攻击结果的正确性。 2.1.2 常用功耗模型及统计方法 针对硬件实现的密码设备,DPA攻击通常针对寄存器翻转功耗的数据相关性进行攻击[10],根据统计方法不同,主要分为基于相关系数的CPA攻击和基于均值差的DPA攻击两种。 (1)基于相关系数的CPA攻击 其中,rij表示用第i个猜测密钥对能量迹上第j个点求得的均值差(下文统称相关系数)。 2.2 攻击点选取 2.2.1 CPA攻击 Xilinx FPGA中AES-256解密模块内部结构如图4所示[7],寄存器中寄存每一轮的解密中间值,通过数据选择器控制进行新的分组解密或下一轮运算。 则第i次解密运算中,每轮运算结果可以表示为式(2): 2.2.2 DPA攻击 考虑DPA攻击,采用单比特模型,为减少影响Δ的密钥长度,对Δ进行分割和化简如下: 则当被攻击的FPGA固定时,K13,K14均为定值,可得Δ1也为定值。则当采用单比特功耗模型进行攻击,可使用Δ2代替Δ,从而评估寄存器R中某一比特的翻转情况,具体分析如表1所示。 由表1可知,使用单比特模型实施DPA攻击时,所得的两组功耗集完全相同,只有极性相反,可以达到攻击目的,即攻击点函数为: 3 实验验证及分析 3.1 DPA攻击结果 3.2 攻击结果检验 DPA攻击通常采用直接代入密钥加/解密来检验攻击结果的正确性。然而,这种检验方法在FPGA克隆中并不适用,因为错误密钥解密得到的比特流可能导致FPGA功能失常,甚至毁坏[8]。为克服这一问题,本文设计了一种基于DPA攻击相关系数极性的检验方法。 |
|
相关推荐
|
|
1947 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1134 浏览 0 评论
3049 浏览 1 评论
2716 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
3008 浏览 0 评论
2208 浏览 58 评论
6101 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 00:03 , Processed in 0.449051 second(s), Total 70, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号