《FPGA克隆技术研究(对加密密钥的攻击).docx》由会员分享,可在线阅读,更多相关《FPGA克隆技术研究(对加密密钥的攻击).docx(5页珍藏版)》请在第一文库网上搜索。
1、FPGA克隆技术研究(对加密密钥的攻击)针对FPGA克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以Xi1inx公司7系列FPGA为列,讨论了采用AES-256CBC模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于DPA攻击相关系数极性的检验方法,避免了密钥错误引起FPGA错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。O引言随着可辘技术的不断发展,FPGA已经成为各类商业系统的重要组成部分。然而,由于配置文件(比特流)必须存储在FPGA外部,通过窃取外部存储器
2、后,攻击者可直接盗版生产,还可通过FPGA逆向工程(FPGAReverseEngineering)获得便性设计1,2或加入硬件木马3,4,对产品进行伪造和破坏,严重地威胁了用户知识产权。为克服这一漏洞,Xi1inX公司在ISE、ViVMo等设计软件中增加AES-256CBC加密配置方式,并在FPGA内部集成解密模块,从而防止硬件设计被克隆和伪造5。然而,这种方式并不完全可靠。2011年MOradi等人使用差分能量攻击(Differentia1PowerAttack,DPA)恢复了VirteXT1PrO系列FPGA加密比特流所用3Df算法密钥6,F1起了工业界的广泛关注。此后,使用AES-256
3、算法加密的XiIinX4系列和5、6、7系列FPGA分别于2012年7和2016年8被DPA攻击和差分电磁攻击(DifferentiaIE1ectromagneticAttack,DEMA)攻破。本文针对XiIinX7系列FPGA实施能量攻击,从攻击和检验等两个角度对攻击效率进行了提升。首先根据XiIinXFPGA解密的实现方式,讨论了攻击点函数的选取方法,使用DPA攻击成功恢复了AES-256算法密钥,并基于相关系数极性设计了一种新的检验方法。1FPGA克隆技术基于FPGA生产的商用产品,必须通过外部非易失存储器进行重新配置。而FPGA克隆则是通过非法手段获取比特流配置文件,配合FPGA逆向
4、工具(如FPgaToOIS9)窃取其内部设计XD1/NCD网表的方法,具体流程如图1所示。图1FP3A克隆流程图C加密比特流结构如图2所示,使用HMAC算法生成因正码SHA256,并通过AES-256算法以CBC模式对SHA256、HMAC密钥kHMAC和配置信息加密;初始向量IV明文写入比特流中5。因此,密文存储时,FPGA克隆的关键在于AES密钥kAES的获取。同步码(SynchronizationWord)加密命令(EncryptCOnnmnd)初始向量IV(Initia1Vector)HMAr算法认BE配置命令(SeiCQNiiiHud)AES256,CBe加密、配宜数据(Config
5、ura1ionData)IMAC密包及结果(SHa256)启动命令(StartCoramand)图2比特流内由于kAES保存于FPGA内部eFUSE中,一次性写入,外部无法读取5,而明文信息pin拄Xt直接用于FPGA配置,同样无法获取,kAES的获取演变为唯密文攻击(CiPherteXt-On1yAttack,COA)O由于CBC模式具备很强的抗CoA攻击能力,传统密码分析方法难以攻破,此时引入旁道攻击成为一种较为理想的方法,如图1所示。2能量攻击方法设计2.1能量攻击原理2.1.1攻击流程能量攻击是最流行的旁道攻击方法,攻击者无须了解被攻击设备的详细知识,根据功耗的数据相关性,利用加密或解
6、密时的能量迹即可恢复密钥,能量攻击流程如图3所示10,具体流程如下:(1)选取攻击点(1)选取攻击点根据不同的密码算法,选取与功耗相关的中间运算作为攻击点,同时确定猜测密钥空间不。(2)测量功耗在密码设备加密或解密时,通过串联小电阻或使用电磁差分探头,记录密码运算功耗i。(3)计算假设中间值根据所选择的攻击点函数,对猜测簟期蒙典中所有密钥计算假设中间值。/(4)计算假设功耗值根据密码算法实现特点和攻击点函数,选择合适的功耗模型(汉明距离、汉明重量、单比特模型等),将中间值,转化为假设功耗值认(5)统计分析采用均值差、皮尔森相关系数等统计方法,计算与,之间的相关系数一般认为相关系数最大乌醇到笠钥
7、为正确密钥即。(6)结果检验一般直接代入攻击所得密钥,使用新的分组数据加密或解密,从而验证攻击结果的正确性。2.1.2常用功耗模型及统计方法针对硬件实现的密码设备,DPA攻击通常针对蜜谴翻转功耗的数据相关性进行攻击10,根据统计方法不同,主要分为基于相关系数的CPA攻击和基于均值差的DPA攻击两种。(1)基于相关系数的CPA攻击通常采用汉明距离(HanmiingDistance,HD)或者汉明重量(HammingWeight,HW)模型进行攻击,攻击点函数结果通常为多比特,以i的HD或HW作为假设功耗值/;,通过求解/;与,的相关系数(通常为皮尔森相关系数),从而完成攻击O(2)基于均值差的DPA攻击通常采用单比特模型进行攻击,攻击点函数结果为单比特,此时/;二:。根据2;的取值0、1,将,划分为两个集合并求均值差,如果在某一时间点出磬)明尾寺啰冽该时刻为相关时间点,对应猜测密钥为乙密;钥计算公式”为式(1):DDUni*%E(1。f.片上)E%(i)IiS赞念nX1ns1其中,rij表示用第i个猜测密钥对能量迹上第j个点求得的均值差(下文统称相关系数)。