针对fpga克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以xilinx公司7系列fpga为列,讨论了采用aes-256 cbc模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256 bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于dpa攻击相关系数极性的检验方法,避免了密钥错误引起fpga错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。
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攻击相关系数极性的检验方法。
4 结论
本文针对加密配置的fpga克隆技术进行了研究,引入能量攻击,针对aes-256 cbc模式,设计了对应的dpa攻击方法;同时,针对fpga不可直接代入验证的特殊情况,设计了一种基于dpa攻击相关系数极性的检验方法,为dpa攻击结果检验提供了一种新思路。
144层3D NAND将引领闪存容量的重大革命
互联网新概念,什么是互联网+
GSM模块TC35及其外围电路设计
2022年12月液晶电视面板价格趋势分析
可击落无人机和迫击炮弹的50千瓦双管激光武器面世
FPGA克隆技术研究(对加密密钥的攻击)
拆解:没有内置WiFi、蓝牙,共享充电器如何互联?
财政部等四部委:芯片企业最高免10年所得税
如何解密三星单片机
示波器知识点科普
涉水光学:透过雨雾湖海,光学与智能交叉融合
LT3042 具外部 NPN 的超低噪声 5Vin 至 2Vout、较高电流 (1A) 稳压器
海康威视推出一系列应用于工业互联网的新品,解决自动化技术难题
解析三闪信号灯中的数字电路
EDA系统框架结构是怎么样的?标准化现状如何?
太阳能WiFi无人机惊现 各国争相抢占“制高点”
OPPO用户抢先体验!Breeno语音上线愚人节4大限时功能玩法
5G商用比预想更快 华为轮值董事长谈5G+X战略
以太网中单股导线与多股导线的区别
网络分析仪和频谱分析仪区别