APP下载

密码算法实现方式对安全性的影响研究*

2016-11-12陈大钊

通信技术 2016年10期
关键词:功耗密钥密码

陈大钊,成 超,熊 峙,王 津

(1.成都三零嘉微电子有限公司,四川 成都 610041;2.61569部队,北京 100071)

密码算法实现方式对安全性的影响研究*

陈大钊1,成超2,熊峙2,王津2

(1.成都三零嘉微电子有限公司,四川 成都 610041;2.61569部队,北京 100071)

实际应用中,密码算法总要在软件、硬件或物理设备等环境中实现,也只有在实际应用场景中讨论密码算法的安全性才是有意义的。密码算法实现方式对其安全性有着重要影响,本文以不同实现方式在FPGA上实现SM4算法,通过对不同实现方式的SM4算法进行相关性功耗分析(Correlation Power Analysis,CPA),评估密码算法实现方式对安全性的影响。分析结果表明,SM4算法并行实现方式比串行实现方式具有更高的安全性。

密码安全;CPA;FPGA;安全性

0 引 言

密码设备在运行中总会泄露出各种与密码算法相关的信息,如运行时间、功耗信息和电磁辐射信息等,这类信息称为旁路信息[1](Side Channel Information)。攻击者可以利用旁路信息攻击密码设备,从而获取秘密信息,这种攻击方式称为旁路攻击(Side Channel Attack,SCA)。其中,功耗分析[2-3](Power Analysis)是最普遍的攻击方式,其特点是攻击效率较高、成本低。功耗分析又分为简单功耗分析(Simple Power Analysis,SPA)、差分功耗分析(Differential Power Analysis,DPA)和相关系数功耗分析[4](Correlation Power Analysis,CPA)。

CPA是利用密码芯片的功耗假设模型,预测其运行密码算法时的功耗大小,然后和实际测量的功耗大小进行相关性分析,从而推测密钥。由于CPA考虑的数据相关状态位比DPA多,因此利用假想模型得到的模拟功耗和实际测量的功耗之间的相关系数更大,比DPA更具有攻击性。因此,本文选取CPA作为评估SM4密码算法不同实现方式的安全性方法。

1 SM4算法简介

SM4密码算法是我国第一个公开的商密分组密码算法[5],分组长度为128 bit,密钥长度为128 bit。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。算法原理如图1所示。

图1 SM4密码算法加密流程

则:

此外,rki(i=0,1,…,31)为轮密钥,长度为32 bit。

2 相关性功耗分析(CPA)

相关性功耗分析(CPA)是一种通过对实际测量功耗样本和与功耗相关数据的假设功耗之间的相关性大小推测密码芯片的密钥等秘密信息的方法。

CPA包括以下五个步骤[2]:

(1)选择待分析密码算法的某个中间值

CPA攻击的第一步是确定被攻击密码算法的一个中间值。这个中间值必须是一个与密钥相关的函数f (d,k),其中d是已知的数据(明文或密文),而k是密钥的一部分。

(2)测量瞬时功耗

CPA攻击的第二步是测量密码设备在执行密码算法时所产生的瞬时功耗。加解密期间,密码设备密钥保持不变,随机变换明文。每进行一个分组的加解密,记录一条功耗曲线和相应的明/密文信息。假设采集D条功耗曲线,每条功耗曲线的长度记为T,则功耗曲线组成了一个大小为D×T的功耗曲线矩阵T,而矩阵的每一行代表一条功耗曲线。

(3)计算假设中间值

根据之前记录的D组明文或密文信息,按照中间值函数f(d,k)计算出每一次密钥猜测k对应的假设中间值。假设有D个猜测密钥,每一个猜测密钥对每一组明文或者密文计算一个假设中间值,那么每个猜测密钥将得到D个假设中间值。这样可以得到一个大小为D×K的假设中间值矩阵V。

(4)将假设中间值映射为假设功耗值

对假设中间值矩阵V中每一个假设的中间值所导致的密码设备功耗进行仿真(仿真模型可以为单比特模型、汉明重量模型和汉明距离模型等),生成对应的假设功耗值,以此得到假设的能量消耗矩阵H。

(5)比较假设功耗和实测功耗曲线

对假设功耗矩阵H中的每一列hi和实测功耗矩阵T中的每一列tj的相关性进行比较(其中i=1,2,…,K,j=1,2,…,T)。通过式(4)计算两列间的相关系数ri,j:

于是,得到一个K×T的矩阵R。它的每一个元素ri,j包含了hi和tj的比较结果。ri,j越大,说明hi和tj的匹配度越高,也就说明假设的密钥更接近于真实的密钥。找到矩阵R中的最大值,并把该值对应的行的猜测作为正确的密钥猜测。该最大值揭示了对所选中间值进行的处理结果以及攻击设备所使用的密钥。

3 测试验证环境

测试验证环境如图2所示。

图2 测试验证系统原理

密码芯片为国产FPGA华微HWD2V6000,通过在密码芯片和电源间串联一个1 Ω的电阻,可以间接测量密码芯片瞬时功耗。

为了对密码芯片的瞬时功耗进行测量,密码芯片还需要外接PC和数字示波器。PC用来控制全部测量配置并储存采样获得的功耗曲线。数字示波器用来记录电阻消耗的能量,并将能量迹发送给PC。数字示波器一个通道记录密码芯片功耗,一个通道作为信号触发。

测试环境工作原理:完成系统配置后,PC端上位机程序向密码芯片发送明文和密钥;密码芯片收到明文和密钥后,执行密码算法,同时拉高触发信号,触发示波器采集密码芯片瞬时功耗,并将采集到的功耗数据存入PC端;直到加密结束,拉低触发信号,停止采集瞬时功耗数据。

4 SM4的CPA分析

设置SM4算法的工作密钥为0x0B2DB59B A139404F 8AF90254 06BE22D3。经过密钥扩展,得第一轮轮密钥为0xF89BCA84。根据测试验证环境,分别采集SM4算法并行实现和串行实现的功耗曲线各10万条,每条功耗曲线采样点数为14 000。

分析中,SM4子密钥长度为32 bit,搜索遍历空间为232。这是难以实现的,因此采用分而治之的方法,将32 bit分为4个8 bit,即4个字节单元进行遍历,遍历空间减少为4×28。对于第一轮轮密钥,首先分析最高字节密钥信息(248,0xF8),然后遍历其他三个字节密钥信息。

攻击点选择:根据SM4算法实现过程,串行和并行实现方式均选择第一轮S盒运算为攻击点。

对第一轮S盒输出建立汉明重量模型,计算每一个假设密钥字节与明文异或后进行S盒输出值的汉明重量,得到一个100 000×256的假设能量消耗矩阵H。将矩阵H每一列与实测功耗曲线T每一列进行统计分析计算相关系数,即将每一个密钥假设对应的假设能量消耗值与在每一个位置所记录的能量迹进行比较。比较的结果是一个相关系数矩阵R,R的最大值即假设密钥与功耗匹配度最高。如果相关系数矩阵R上有一行(即有一个猜测密钥与功耗的相关系数曲线)出现最大尖峰,则表明通过CPA获取了密钥信息。

4.1对并行实现的SM4算法的CPA攻击

利用搭建的测试验证环境,采集10万条并行实现的SM4算法功耗曲线,其中一条曲线如图3所示,横轴表示采样点数,纵轴表示电压值。

图3 SM4算法并行实现功耗曲线

在Matlab环境下对并行实现的SM4算法功耗曲线进行CPA分析,结果如图4所示,横轴表示采样点数,纵轴表示第一轮子密钥最高字节密钥与功耗的相关系数。从图4可以看出,正确密钥248(0xF8)与功耗的相关系数曲线上不存在明显尖峰,说明通过CPA方式不能获取密钥信息,并行实现的SM4算法具有抗CPA分析能力。

图4 SM4算法并行实现正确密钥与功耗相关系数曲线

为了更好地证明并行实现的SM4算法地抗CPA能力,将第一轮子密钥最高字节所有256种猜测密钥与功耗相关系数进行对比,结果如图5所示。从图5可以发现所有的256种猜测密钥与功耗相关系数均不存在明显尖峰。进一步说明了并行实现的SM4算法具有抗CPA分析能力。

图5 SM4算法并行实现所有猜测密钥与功耗相关系数曲线

4.2对串行实现的SM4算法的CPA攻击

利用搭建的测试验证环境,采集10万条串行实现的SM4算法功耗曲线,其中一条曲线如图6所示,横轴表示采样点数,纵轴表示电压值。

图6 SM4算法串行实现功耗曲线

根据选择的攻击点,只需关心第一轮加密运算S盒操作所产生的功耗,为了提高分析效率,只截取了功耗曲线前2 000个采样点。

在Matlab环境下对串行实现的SM4算法功耗曲线进行CPA分析,得到结果如图7和图8所示,横轴表示采样点数,纵轴表示第一轮子密钥最高字节密钥与功耗的相关系数。

图7 SM4算法串行实现正确密钥与功耗相关系数曲线

图8 SM4算法串行实现所有猜测密钥与功耗相关系数曲线

从图7和图8可以清晰看到,通过遍历第一轮子密钥最高字节的256种猜测密钥,正确密钥248(0xF8)与功耗的相关系数曲线存在最大尖峰,其他错误的假设密钥与功耗的相关系数曲线不存在尖峰。可见,串行实现的SM4算法具有密钥信息泄露情况,攻击者可以通过CPA获取密钥信息,因此安全性较低。

5 结 语

通过对基于FPGA并行实现和串行实现的SM4算法的CPA攻击实验结果进行对比,可以发现密码算法实现方式对其安全性有着显著影响。并行实现方式比串行实现方式具有更高的安全性,这是由于密码算法在并行实现过程中的运行将产生更多的转换噪声,从而降低了攻击者获取的信号信噪比,提高了攻击难度。

[1] 郭世泽,王韬,赵新杰.密码旁路分析原理与方法[M].北京:科学出版社,2014. GUO Shi-ze,WANG Tao,ZHAO Xin-jie.Principles and Methodologies of Side-Channel Analysis in Cryptography[M].Beijing:Science press,2014.

[2] Stefan Mangard,Elisabeth Oswald,Thomas Popp. Power Analysis Attacks:Revealing the Secrets of Smart Cards[M].NewYork:Springer,2007.

[3] Kocher P,Jaffe J,Jun B.Differential Power Analysis[C]. Springer Berlin Heidelberg:Advances in Cryptology-CRYPTO’99,1999:388-397.

[4] Eric Brier,Christophe Clavier,Francis Olivier.Correlation Power Analysis with a Leakage Model[C].CHES2004,LNCS3156,2004:16-19.

[5] 国家商用密码管理办公室.无线局域网产品使用用的SMS4密码算法[Z].北京,2006:1-4. National Commercial Cipher Management Office.SMS4 Cipher Algorithm for Wireless Local Area Network Products[Z].Beijing,2006:1-4.

陈大钊(1986—),男,硕士,工程师,主要研究方向为密码安全;

成 超(1983—),男,硕士,工程师,主要研究方向为信息安全;

熊 峙(1973—),男,学士,高级工程师,主要研究方向为信息安全;

王 津(1979—),男,学士,工程师,主要研究方向为信息安全。

Security of Crypto Algorithms Implementation

CHEN Da-zhao1, CHENG Chao2, XIONG Zhi2, WANG Jin2
(1.Chengdu 30Javee Microelectronics Co., Ltd, Chengdu Sichuan 610041, China;2.PLA Unit 61569, Beijing 100071, China)

The security of cryptographic algorithm draws much attention from the people.In practical application, crypto algorithm is usually implemented in the environment such as software, hardware and physical devices. There exists an essential relation of between the security and practical application of crypto algorithm. SM4 algorithm is implemented on FPGA in different implementation modes, and CPA(Correlation Power Analysis) is also done on SM4 algorithm in different implementation modes, thus to evaluate the influence of different implementations on security. Simulation indicates that the parallel implementation of SM4 is mush better than serial implementation in security.

security of crypto algorithm; CPA; FPGA; security

TP309.7

A

1002-0802(2016)-10-1387-05

10.3969/j.issn.1002-0802.2016.10.023

2016-06-11;

2016-09-17

data:2016-06-11;Revised data:2016-09-17

猜你喜欢

功耗密钥密码
探索企业创新密钥
密码里的爱
密码系统中密钥的状态与保护*
密码疲劳
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
揭开GPU功耗的面纱
密码藏在何处
数字电路功耗的分析及优化
“功耗”说了算 MCU Cortex-M系列占优