APP下载

基于3DES密码算法的差分能量分析攻击方法的研究

2019-11-14周悦文毅杨旭王秀君李梅

软件 2019年9期
关键词:能量消耗密钥排序

周悦 文毅 杨旭 王秀君 李梅

摘  要: 針对基于芯片实现分组密码算法的物理泄漏安全问题,本文对软件实现3DES算法的STM32芯片进行了电磁辐射信号采集,通过差分能量分析攻击成功获取了密钥。实验选择3DES算法Sbox输出作为中间值,在算法的中间值开始运算时,通过芯片引脚输出高电平对示波器进行触发,极大地提高了实验攻击效率。一则实现已采集信号占用最小的存储资源,最大限度只采集中间值运算所对应的区间;二则保证已采集曲线未出现失调,在进行曲线处理时无需进行对齐操作;三则保证了已采集的信号的质量,极大减少攻击所需的曲线数目。实验表明,仅200条电磁信号曲线就能获取1次DES运算的轮密钥,同时反映了芯片存在严重的电磁辐射泄露。

关键词 3DES算法;差分能量分析攻击;汉明重量模型;电磁辐射分析

中图分类号: TP309. 7    文献标识码 A    DOI:10.3969/j.issn.1003-6970.2019.09.001

本文著录格式:周悦,文毅,杨旭,等. 基于3DES密码算法的差分能量分析攻击方法的研究[J]. 软件,2019,40(9):01-07

Research on Differential Power Analysis Attack Method Based on 3DES Cryptographic Algorithm

ZHOU Yue1, WEN Yi1, YANG Xu2, WANG Xiu-jun1, LI Mei2

(1. National Application Software Testing Labs Beijing Software Testing & QA Center, Beijing 100193, China;2. School of Information EngineeringChina University Of Geosciences, Beijing 100083, China

Abstract: Aiming at the physical leakage security problem based on chip implementation of block cipher algorithm, this paper collects the electromagnetic radiation signal of STM32 chip which implements 3DES algorithm, and we can reveal the key successfully through differential power analysis attack. The experiment selects the 3DES algorithm Sbox output as the intermediate result. When the intermediate result of the algorithm starts to operate, the oscilloscope is triggered by the high level of the chip pin output, which greatly improves the experimental attack efficiency. First of all, the collected signal occupies the smallest storage resource, and only collects the interval corresponding to the intermediate result operation; secondly, it ensures that the acquired Power Trace does not appear to be misaligned, and does not need to perform alignment operation when performing traces processing; At last, The quality of the signal greatly reduces the number of traces required for the attack. Experiments show that only 200 electromagnetic signal traces can reveal the round key of DES operation, and it also reflects the serious electromagnetic radiation leakage of the chip.

Key words: Triple DES; Differential power analysis attack; Hamming-weight; Electromagnetic radiation analysis

0  引言

随着密码设备的普及,人们越来越关注其安全性,一般会在设备中嵌入一些密码算法,DES是最常见的密码算法之一,其改进的3DES算法在很多领域都有应用,因此对3DES的研究很有现实意义。差分能量分析(DPA)攻击是侧信道攻击的一种,通过分析密码设备的能量消耗从而获得密钥。在1999年,Kocher等[1]提出DPA攻击后,DPA就受到国内外学者的广泛关注。

本文在研究DPA理论和3DES加密算法特性的基础上,对执行3DES算法的STM32芯片进行DPA攻击实验。实验首先搭建了DPA攻击测试平台,基于该平台设计合理的DPA攻击流程,平台使用一款特定的侧信道分析软件对采集到的电磁信号进行处理分析。对于3DES算法,选择了S盒的输出作为DPA攻击的目标,使用汉明重量模型对能量进行仿真,最后通过分析相关系数来完成实验。

1  差分能量分析攻击

1.1  能量泄露机理

密码设备需要通过数字电路来设计实现,逻辑元件是构建数字电路的关键,而互补型CMOS是一种实现逻辑元件常用的逻辑结构。CMOS反相器是最简单的CMOS元件,反相器的能量消耗分为静态、动态能量消耗两部分,静态能量消耗发生在元件没有转换活动的时候,而动态能量消耗则发生在信号发生转换或者元件的负载电容需要充电的时候。通常来说静态的消耗值很低,动态能量消耗是总能量损耗的主要因素,而动态的能量消耗对CMOS电路中所要进行处理的数据有依赖性。CMOS反相器由NMOS以及PMOS组成,典型电路结构如图1所示。

Input表示信号的输入端,Output表示信号的输出端。当Input发生1→0转换时,由MOS管的特征可知,此时NMOS晶体管截止,PMOS晶体管导通,电容CL就处于充电的状态,从电源处获取电流;当Input发生0→1转换时,NMOS管将导通,PMOS管则截止,负载电容CL此时处于放电状态,不从电源处获取电流。若输出端的信号不发生转换,则逻辑元件仅仅产生静态的能量损耗,而不会产生动态的能量损耗。

1.2  汉明重量模型

CMOS反相器能量消耗和要处理的数据有很大的关系,对于密码设备来说,进行处理的数据不同,所损耗的能量也就不同。在DPA攻击中,需要对密码设备进行能量仿真,也就是说将操作数映射成为对应的能量消耗值。本实验采用汉明重量模型,假设能量消耗和设备器件所要处理的数据中被置位的比特个数是正比关系,并且忽略此数据前面和后面所处理的数值。

1.3  攻击步骤[2]

DPA攻击的策略一般由以下5个步骤组成:

(1)选择算法的某个中间值,用函数表示,d通常是明文(或密文),k代表的是密钥的一部分。满足这些条件的中间值即可用来恢复k

(2)测量能量消耗。记录大量数据值d加密(或解密)时的能量消耗曲线。数据值所对应的能量消耗的曲线用来表示,其中T代表着这条能量迹的长度。对于D个数据分组来说,用一个D×T的矩阵T来代表这些数据值的能量迹。

(3)计算假设的中间值。对密钥进行假设猜测,用向量来表示,然后计算出假设的中间值,用大小為D×K的矩阵V来表示。设备执行操作时只使用了K中的一个值,我们用来表示设备用到的密钥,DPA攻击的目标就是找出经过D次密码运算矩阵V中被处理的那列,进而得到

(4)将假设中间值映射成能量消耗值。利用能量模型将已经假设好的中间值V映射成相应的能量消耗值矩阵H。我们在实验中采用的是汉明重量模型[3],通过映射得到,映射的效果越好,DPA攻击就越成功。

(5)对比分析能量迹以及能量消耗值。比较矩阵H和T相应列的值,即比较。事实上就是拿假设的能量消耗来与设备实际产生的能量迹进行比较,用一个R矩陣来表示比较的结果,矩阵的大小是K×T,并且其中的每一元素代表着的相关性结果。计算相关系数如公式(1)所示,得到的值越高,就说明的匹配性越好。

通过公式(1)可形成多条相关性曲线,每一条曲线对应一个密钥假设。相关系数矩阵出现的最大值对应正确的密钥假设,在该曲线上表现为一个明

显的尖峰,该尖峰同时也揭示了对所选择中间值进行处理的位置。

2  DPA攻击过程

2.13DES算法DPA攻击原理[4]

DES算法通过使用64位的密钥对输入的64位明文进行一系列操作,使其输出为64位的密文。算法包含16轮迭代运算,每轮有8个S盒,S盒的输出包含有明文和密钥的信息,因此作为我们DPA攻击的目标[5]。由于DES算法的安全强度不够,所以才有了安全度更高的3DES。3DES的加密公式(2)如下:

其中P代表明文,E是加密运算,D是解密运算,本实验3DES算法采用双倍长(16字节)密钥,即密钥K1与K3相同。

实验首先对第1次DES加密的第1轮运算进行DPA攻击,然后在对第2次加密的第16轮运算进行攻击,得出密钥K1在第1轮和第16轮中使用的轮密钥后,通过穷举搜索找到正确的K1。接着再攻击解密的第1轮运算,由已得到的密钥K1,破解出K2的轮密钥。

2.2攻击平台

DPA攻击的测量配置通常由密码设备、时钟信号发生器、计算机(PC)、电磁探头、数字示波器等几部分组件构成,测量配置框图如图2所示

本文研究DPA攻击使用的是特制的侧信道攻击平台,选择STM32F103RC的单片机芯片作为攻击的对象,采集芯片执行3DES算法时辐射的电磁信号,并在装有3DES算法分析工具的电脑上进行处理。实验使用140Mhz的低通滤波器进行滤波,采样频率为1GS/s,整个3DES算法的采样点为10MS。PC机运行DPA攻击脚本,不断发送随机明文给芯片,然后保存下明文、密文,还有每次加密时示波器采集的电磁辐射信号。

2.3攻击结果

首先在3DES算法源代码中通过GPIO功能使芯片引脚输出3路信号,分别对应3DES算法第1次DES第1轮的Sbox运算、第2次DES第1轮的Sbox运算、第3次DES第16轮的Sbox运算,如图3所示。

2.3.1  对第1次DES第1轮运算进行DPA攻击

以第1次DES第1轮Sbox所对应的输出信号作为示波器的触发信号,8个S盒运算对应8个触发信号。采集200条电磁辐射曲线,如图4所示。

从已采集的200条曲线中任选3条进行显示,如图5所示,可知曲线已经严格对齐,进行曲线处理时,无需进行对齐操作。

以此200条电磁曲线,选择S盒输出的汉明重量进行DPA攻击,基于相关系数的攻击结果如下:

SBox1的相关性排序结果是:

1、候选子密钥0[0x00],对应相关性为–0.65709912776947,在点绝对位置1582上

2、候选子密钥31[0x1f],对应相关性为0.392379492521286,在点绝对位置1582上

SBox2的相关性排序结果是:

1、候選子密钥2[0x02],对应相关性为–0.496553242206573,在点绝对位置4068上

2、候选子密钥34[0x22],对应相关性为–0.321006268262863,在点绝对位置6228上

SBox3的相关性排序结果是:

1、候选子密钥19[0x13],对应相关性为–0.536363363265991,在点绝对位置6555上

2、候选子密钥9[0x09],对应相关性为0.36610472202301,在点绝对位置17955上

SBox4的相关性排序结果是:

1、候选子密钥12[0x0c],对应相关性为–0.534933149814606,在点绝对位置9042上

2、候选子密钥28[0x1c],对应相关性为0.398669868707657,在点绝对位置9042上

SBox5的相关性排序结果是:

1、候选子密钥13[0x0d],对应相关性为–0.514000236988068,在点绝对位置11528上

2、候选子密钥7[0x07],对应相关性为–0.392057627439499,在点绝对位置16291上

SBox6的相关性排序结果是:

1、候选子密钥34[0x22],对应相关性为–0.624307572841644,在点绝对位置14014上

2、候选子密钥31[0x1f],对应相关性为0.469585478305817,在点绝对位置14014上

SBox7的相关性排序结果是:

1、候选子密钥0[0x00],对应相关性为–0.403402060270309,在点绝对位置16501上

2、候选子密钥2[0x02],对应相关性为–0.360525220632553,在点绝对位置16496上

SBox8的相关性排序结果是:

1、候选子密钥5[0x05],对应相关性为–0.385684728622437,在点绝对位置18987上

2、候选子密钥59[0x3b],对应相关性为0.345604658126831,在点绝对位置11992上

轮密钥:0024CC362005

对攻击结果进行可视化显示,8个可视化图对应8个Sbox攻击结果,如图6所示。

通过观察可知,图中显示最高的尖峰,对应正确密钥索引以及对中间值Sbox查表操作进行处理的位置。由于STM32芯片3DES加密算法由软件实现,8个Sbox查表操作顺序执行,一个Sbox查表操作完成后再执行下一个。

2.3.2  对第3次DES第16轮运算进行DPA攻击

以第3次DES第16轮Sbox所对应的输出信号作为示波器的触发信号,采集200条电磁辐射曲线,如图7所示。

对采集的200条电磁信号原始曲线,选择S盒输出的汉明重量进行DPA攻击,基于相关系数的攻击结果如下:

SBox1的相关性排序结果是:

1、候选子密钥0[0x00],对应相关性为–0.642539024353027,在点绝对位置1151上

2、候选子密钥58[0x3a],对应相关性为–0.352906137704849,在点绝对位置1151上

SBox2的相关性排序结果是:

1、候选子密钥19[0x13],对应相关性为–0.585478901863098,在点绝对位置3651上

2、候选子密钥30[0x1e],对应相关性为–0.305856138467789,在点绝对位置8758上

SBox3的相关性排序结果是:

1、候选子密钥16[0x10],对应相关性为–0.474530726671219,在点绝对位置6152上

2、候选子密钥31[0x1f],对应相关性为–0.366014689207077,在点绝对位置6152上

SBox4的相关性排序结果是:

1、候选子密钥12[0x0c],对应相关性为–0.527862429618835,在点绝对位置8652上

2、候选子密钥20[0x14],对应相关性为0.390225887298584,在点绝对位置16923上

SBox5的相关性排序结果是:

1、候选子密钥13[0x0d],对应相关性为–0.535461604595184,在点绝对位置11153上

2、候选子密钥44[0x2c],对应相关性为0.342443287372589,在点绝对位置1321上

SBox6的相关性排序结果是:

1、候选子密钥2[0x02],对应相关性为–0.513921439647675,在点绝对位置13653上

2、候选子密鑰15[0x0f],对应相关性为0.349797010421753,在点绝对位置9491上

SBox7的相关性排序结果是:

1、候选子密钥6[0x06],对应相关性为–0.448327392339706,在点绝对位置16153上

2、候选子密钥56[0x38],对应相关性为–0.33991950750351,在点绝对位置2015上

SBox8的相关性排序结果是:

1、候选子密钥1[0x01],对应相关性为–0.504002630710602,在点绝对位置18653上

2、候选子密钥2[0x02],对应相关性为–0.319470077753067,在点绝对位置4347上

轮密钥:01340C342181

攻击结果进行可视化显示,如图8所示。

通过对第1次DES和第3次DES攻击,得到第1个密钥k1为1111222233334444。

2.3.3  对第2次DES第1轮运算进行DPA攻击

以第2次DES第1轮Sbox所对应的输出信号作为示波器的触发信号,采集200条电磁辐射曲线,如图9所示。

进行第2次DES攻击时,将第1个密钥带入。选择S盒输出的汉明重量进行DPA攻击,基于相关系数的攻击结果如下:

SBox1的相关性排序结果是:

1、候选子密钥42[0x2a],对应相关性为–0.629880964756012,在点绝对位置1360上

2、候选子密钥33[0x21],对应相关性为0.439686805009842,在点绝对位置1360上

SBox2的相关性排序结果是:

1、候选子密钥26[0x1a],对应相关性为–0.643305003643036,在点绝对位置3832上

2、候选子密钥59[0x3b],对应相关性为0.343240588903427,在点绝对位置9026上

SBox3的相关性排序结果是:

1、候选子密钥24[0x18],对应相关性为–0.462969660758972,在点绝对位置6305上

2、候选子密钥47[0x2f],对应相关性为–0.312610268592834,在点绝对位置11791上

SBox4的相关性排序结果是:

1、候选子密钥47[0x2f],对应相关性为–0.512154519557953,在点绝对位置8777上

2、候选子密钥7[0x07],对应相关性为–0.397135555744171,在点绝对位置8777上

SBox5的相关性排序结果是:

1、候选子密钥41[0x29],对应相关性为–0.642742931842804,在点绝对位置11250上

2、候选子密钥15[0x0f],对应相关性为–0.454308360815048,在点绝对位置11250上

SBox6的相关性排序结果是:

1、候选子密钥22[0x16],对应相关性为–0.580213785171509,在点绝对位置13722上

2、候选子密钥43[0x2b],对应相关性为0.398896187543869,在点绝对位置13722上

SBox7的相关性排序结果是:

1、候选子密钥46[0x2e],对应相关性为–0.389477849006653,在点绝对位置16195上

2、候选子密钥16[0x10],对应相关性为–0.330734074115753,在点绝对位置19343上

SBox8的相关性排序结果是:

1、候选子密钥49[0x31],对应相关性为–0.511115372180939,在点绝对位置18667上

2、候选子密钥32[0x20],对应相关性为0.317385584115982,在点绝对位置862上

轮密钥:A9A62FA56BB1

对攻击结果进行可视化显示,如图10所示。

由第2次DES的轮密钥和第1个密钥K1,可得到密钥K2为5555666677778888。连接K1和K2则是3DES完整密钥K,即11112222333344445555- 666677778888。

3  结论

本文基于实际的STM32芯片进行了DPA攻击实验,成功获得了3DES加密算法的密钥。实验结果表明,芯片存在明显的电磁辐射信号泄露,DPA攻击对没有任何防护的3DES算法存在严重的威胁性,这种软件实现方式并不安全,需要进行一些防护措施。

参考文献

[1] Kocher P, Jaffe J, Jun B. Differential Power Analysis[J]. Proc Crypto, 1999, 1666: 388-397.

  • Mangard S, Oswald E, Popp T. 能量分析攻击[M]. 冯登国,周永彬, 刘继业, 等译. 北京: 北京科学出版社, 2010: 97-101.
  • 褚杰, 赵强, 丁国良, 等. 密码系统差分功耗分析攻击及功耗模型[J]. 华中科技大学学报(自然科学版), 2008, 36(6): 18-21.
  • 欧海文, 李起瑞, 胡晓波, 等. 智能卡芯片中TDES密码电路的差分功耗攻击[J]. 计算机应用研究, 2012, 29(3): 927- 929.
  • 欧海文, 党凡, 付永亮, 等. 智能卡芯片的差分能量分析攻击研究[J]. 北京电子科技学院学报, 2016(4): 1-8.
  • 罗晓飞, 陈运, 陈俊, 等. 针对DES密码芯片的两种功耗攻击对比分析[J]. 成都信息工程学院学报, 2012, 27(6): 536-540.
  • 党凡. 对智能卡分组密码算法的能量分析攻击研究[D]. 陕西: 西安电子科技大学, 2015.
  • 管莹, 敬茂华. DES算法原理及实现[J]. 电脑编程技巧与维护, 2009(4): 5-7.
  • 徐磊. 密码芯片能量分析研究与实现[D]. 硕士学位论文. 山东: 山东大学, 2015.
  • 郭世泽, 王韬光, 赵新杰. 密码旁路分析原理与方法[M]. 北京: 科学出版社, 2014: 95-101.

猜你喜欢

能量消耗密钥排序
探索企业创新密钥
太极拳连续“云手”运动强度及其能量消耗探究
中年女性间歇习练太极拳的强度、能量消耗与间歇恢复探究分析
排序不等式
没别的可吃
密码系统中密钥的状态与保护*
恐怖排序
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
铝诱导大豆根系有机酸分泌的能量消耗定量研究