集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1312|回复: 2

基于能量攻击的FPGA克隆技术研究

[复制链接]
fpga_wuhan 发表于 2017-5-10 09:44:27 | 显示全部楼层 |阅读模式
摘  要: 针对FPGA克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以Xilinx公司7系列FPGA为列,讨论了采用AES-256 CBC模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256 bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于DPA攻击相关系数极性的检验方法,避免了密钥错误引起FPGA错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。

    关键词: FPGA克隆;能量攻击;AES-256 CBC;相关系数;结果检验

    中图分类号: TP309.7

    文献标识码: A


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所示。

wdz4-t1.gif

    加密比特流结构如图2所示,使用HMAC算法生成认证码SHA256,并通过AES-256算法以CBC模式对SHA256、HMAC密钥kHMAC和配置信息加密;初始向量IV明文写入比特流中[5]。因此,密文存储时,FPGA克隆的关键在于AES密钥kAES的获取。

wdz4-t2.gif

    由于kAES保存于FPGA内部eFUSE中,一次性写入,外部无法读取[5],而明文信息plaintext直接用于FPGA配置,同样无法获取,kAES的获取演变为唯密文攻击(Ciphertext-Only Attack,COA)。由于CBC模式具备很强的抗COA攻击能力,传统密码分析方法难以攻破,此时引入旁道攻击成为一种较为理想的方法,如图1所示。

2 能量攻击方法设计

2.1 能量攻击原理

2.1.1 攻击流程

    能量攻击是最流行的旁道攻击方法,攻击者无须了解被攻击设备的详细知识,根据功耗的数据相关性,利用加密或解密时的能量迹即可恢复密钥,能量攻击流程如图3所示[10],具体流程如下:

wdz4-t3.gif

    (1)选取攻击点

wdz4-2.1.1-x1.gif

    (4)计算假设功耗值

wdz4-t3-x1.gif

    (6)结果检验

    一般直接代入攻击所得密钥,使用新的分组数据加密或解密,从而验证攻击结果的正确性。

2.1.2 常用功耗模型及统计方法

    针对硬件实现的密码设备,DPA攻击通常针对寄存器翻转功耗的数据相关性进行攻击[10],根据统计方法不同,主要分为基于相关系数的CPA攻击和基于均值差的DPA攻击两种。

    (1)基于相关系数的CPA攻击

wdz4-2.1.2-x1.gif

wdz4-gs1.gif

    其中,rij表示用第i个猜测密钥对能量迹上第j个点求得的均值差(下文统称相关系数)。

2.2 攻击点选取

2.2.1 CPA攻击

    Xilinx FPGA中AES-256解密模块内部结构如图4所示[7],寄存器中寄存每一轮的解密中间值,通过数据选择器控制进行新的分组解密或下一轮运算。

wdz4-t4.gif

    则第i次解密运算中,每轮运算结果可以表示为式(2):

wdz4-gs2-5.gif

wdz4-gs2-5-x1.gif

2.2.2 DPA攻击

    考虑DPA攻击,采用单比特模型,为减少影响Δ的密钥长度,对Δ进行分割和化简如下:

     wdz4-gs6.gif

    则当被攻击的FPGA固定时,K13,K14均为定值,可得Δ1也为定值。则当采用单比特功耗模型进行攻击,可使用Δ2代替Δ,从而评估寄存器R中某一比特的翻转情况,具体分析如表1所示。

wdz4-b1.gif

    由表1可知,使用单比特模型实施DPA攻击时,所得的两组功耗集完全相同,只有极性相反,可以达到攻击目的,即攻击点函数为:

wdz4-gs7.gif

3 实验验证及分析

3.1 DPA攻击结果

wdz4-3.1-x1.gif

wdz4-3.1-x2.gif

wdz4-t5.gif

wdz4-t6.gif

3.2 攻击结果检验

    DPA攻击通常采用直接代入密钥加/解密来检验攻击结果的正确性。然而,这种检验方法在FPGA克隆中并不适用,因为错误密钥解密得到的比特流可能导致FPGA功能失常,甚至毁坏[8]。为克服这一问题,本文设计了一种基于DPA攻击相关系数极性的检验方法。

wdz4-3.2-x1.gif

wdz4-t7.gif

4 结论

    本文针对加密配置的FPGA克隆技术进行了研究,引入能量攻击,针对AES-256 CBC模式,设计了对应的DPA攻击方法;同时,针对FPGA不可直接代入验证的特殊情况,设计了一种基于DPA攻击相关系数极性的检验方法,为DPA攻击结果检验提供了一种新思路。
zxopenljx 发表于 2021-1-15 13:49:08 | 显示全部楼层
基于能量攻击的FPGA克隆技术研究
zxopenljx 发表于 2024-7-9 17:35:03 | 显示全部楼层
基于能量攻击的FPGA克隆技术研究
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 19:46 , Processed in 0.057536 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表