利用FPGA加密芯片的抗DPA攻击电路设计
2.2 DES加密核的实现
DES算法的基本流程如下:首先,输入明文通过初始置换,将其分成左、右各为32位的两个部分,然后进行16轮完全相同的运算。经过16轮运算后,左、右半部分合并在一起经过一个末置换(初始置换的逆置换),于是整个算法结束。在每一轮运算中,密钥位移位,然后再从密钥的56位中选取48位。通过一个扩展置换,将数据的右半部分扩展为48位,并通过一个异或操作与一个48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再通过一级置换操作,这四步操作即为函数f。
S盒是DES中的非线性模块,直接决定DES算法的安全性。在函数f的实现中,采用上面的思路,使用例化调用了S盒。DES加密核的VHDL设计思路如下:首先调用库函数构造ROM,然后使用VHDL语句进行行为描述。这种方法要结合器件的内部结构,对于小容量的ROM采用数组描述,大容量的ROM应采用元件的方式来实现。在VHDL设计中,库函数、子程序的调用以及元件的调用和使用间接变量,都是影响速度的主要因素。由此得到DES Core的接口定义如下:
3 攻击实验的对比与分析
3.1 FPGA加密芯片攻击试验平台建立
目前FPGA的种类很多,但其中有大于50%的份额被Xilinx公司抢占,在此选用xilinx公司的Virtex-5(ML501),对其他种类的FPGA的攻击和此类似。

ML50l在工作时需要3个工作电压:内核电压(1.2 V)、辅助电压(2.5 V)、I/O电压(3.3 V),而ML501芯片的所有地线是并结在一起的。对FPGA攻击的实验的原理图如图3所示,示波器(Tektronix DP04104,1 GHz BW,5 Gsample/s)的2通道接收Virtex-5(ML501)加密模块的触发信号,在内核电压和芯片之间置一个电流探针(Tektronix CT-2,1.2 kHz~200 MHz),1通道用电流探针测试内核的功耗变化。攻击过程如下:在PC机上生成64位随机明文,通过串口发送至FPGA。FPGA收到明文后利用存储在其中的密钥对明文进行DES加密,并在第16轮加密操作时对示波器产生数据采集的触发信号。在进行数据采集时其实质是要采集内核电流所引起的功耗变化,并将数据通过USB总线送至PC机,最后在PC机上运行分析程序攻击出64位的密钥。
3.2 对FPGA加密芯片的攻击
设定明文输入和电流数据采样为500组,采样深度100 000点,采样频率为500 MSPS,在相同的试验环境下,对带有防护结构和不带防护结构的两种DES的加密结构进行功耗测量,同时根据密钥的推测将明文分类,计算各类的平均功耗,然后相减,可以得到差分功耗分析曲线。试验后发现对不带防护结构的ML50l FPGA芯片进行攻击时,当子密钥块猜测正确时,功率差分曲线出现明显的尖峰,采用相同的方法可以攻击出其他子密钥块,由此可以获取第16轮的子密钥K16(48位),攻击成功。对带防护结构的芯片攻击时,功率差分曲线基本是平缓的,波动非常小,也没有明显的尖峰存在,可见DPA攻击对带有防护结构的FPGA无效。
4 结语
由以上DPA攻击试验表明了FPGA实现DES加密算法对DPA的脆弱性,而采用双轨和预充电防护技术的FPGA加密芯片具有较好的抗DPA攻击能力。这也说明利用FPGA底层开发工具通过硬件宏方法能在FPGA硬件上实现安全防护技术的拓展,对开展芯片的安全防护工作的研究具有重要意义。
攻击 电路设计 DPA 芯片 FPGA 加密 利用 相关文章:
- 留有vector的FPGA有被黑的可能(06-05)
- 谈谈攻击单片机的攻击技术(11-22)
- 用Linux系统防火墙功能抵御网络攻击(09-12)
- 网络管理预防ARP攻击(09-12)
- 基于智能卡的动态身份认证协议(09-12)
- 基于跳数的防御无线传感器网络中虫洞攻击方案(10-09)
