针对DES密码芯片的CPA攻击仿真设计方案

时间:2011-06-30来源:网络

  3 功耗分析仿真平台

  在系统的设计阶段,人们大多利用计算机进行数学仿真实验,因为修改、变换模型比较方便和经济。在部件研制阶段,可用已研制的实际部件或子系统去代替部分计算机仿真模型进行半实物仿真实验,以提高仿真实验的可信度。在个别情况下,可进行全物理的仿真实验,这时计算机仿真模型全部被物理模型或实物所代替。

  建立的仿真平台如图2所示。仿真平台主要由逻辑模拟器、功耗估算器和功耗分析模块组成。框图中应用Mentor公司提供的ModelSim作为逻辑模拟器,逻辑模拟器输入有:所设计密码电路的硬件语言描述代码、电路的激励文件和一些反标延迟信息等。输出的密码电路的功耗仿真结果是以vcd格式存储的文本文件,这个vcd文件包含了所有的信号模拟变化以及相应的仿真时刻标签,然后用VisualC++对vcd文本文件进行处理,得到模拟功耗数据,最后用MatLab对模拟功耗数据进行统计分析,推测密钥信息。

  要统计DES密码芯片中每个时钟周期的模拟功耗值,可以通过统计关键寄存器中在相邻时钟周期内0、1的变化情况。根据式(2)所示已经建立的功耗模型,将电路所处理的数据变化转换为模拟功耗变化即可。

  4 DES算法的CPA攻击仿真及结果分析

  基于所建立的功耗分析仿真平台,结合分组密码算法DES算法进行功耗分析攻击实验。下面是CPA攻击的详细步骤及结果分析。

  (1)用仿真的方法进行攻击的第1步是产生1个仿真功耗文件

  任意选择1 000个随机明文和1个固定但随机的密钥。每轮加密之后,记录下寄存器中数据二进制序列的变化情况,根据建立的功耗泄漏模型,统计模拟功耗值。这样仿真器就产生1个包含N×16的矩阵M1。

  (2)选择寄存器中M个最高位,用与步骤(1)相同的明文及密钥进行仿真实验

  仿真器统计寄存器中位的变化数目,结果存储在矩阵1 000×1的矩阵M2中,在这个验证实验中,选择M为8,然后计算M1的所有列和M2的相关系数,如下:

  ci=C(M1(1:1000,1),M2)     (7)

  式中,i=1,…10, M1(1:1000), i代表矩阵M1的第i列向量。步骤(1)和步骤(2)都用了同样的明文的密钥,所不同的是它们考虑的位变化的数目不同。第(2)步产生的值是第(1)步初始化密钥加操作计算值的预测。如果计算是正确的,M2和M1的第一列的相关系数比其他列要高得多。图3为预测的情况。

  (3)重复步骤(2),但使用一个不同的密钥

  这时产生1个功耗文件矩阵M3。与第(2)步一样计算M3和M1所有列的相关系数:

  式中,i=1,…10。由于实验中使用了一个不同的密钥产生M3,所以M3和M1所有列的相关系数将是很小的(或者说是没有相关性),包括第1列。通过计算得出如图4所示的相关系数图,图中的曲线表明其结果和预测的相同。

1 2 3 4

关键词: 仿真 设计 方案 攻击 CPA DES 密码 芯片 针对

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版