APP下载

FPGA上抗侧信道攻击的密码算法实现*

2014-02-10韩炼冰段俊红刘鸿博

通信技术 2014年9期
关键词:加解密掩码功耗

王 松,陈 曼,韩炼冰,段俊红,刘鸿博

(中国电子科技集团公司第三十研究所,四川成都610041)

FPGA上抗侧信道攻击的密码算法实现*

王 松,陈 曼,韩炼冰,段俊红,刘鸿博

(中国电子科技集团公司第三十研究所,四川成都610041)

密码算法在运行时可能会受到侧信道攻击,抗侧信道攻击的FPGA密码算法实现是目前研究的一个热点。通过随机数保护关键数据的S盒移位掩码法被认为是一种有效的防御手段。采用该方式实现的密码算法在提高运行安全性的同时,可能会带来硬件资源开销的增加及加解密速度的降低。通过对SM4算法的实现表明,采用合适的实现方式时S盒移位掩码法抗侧信道攻击实现对算法硬件资源开销及加解密速度影响不是太大,具有一定的实用价值。

侧信道密码分析 FPGA 实现

0 引 言

密码算法是信息安全的关键技术之一,成熟的密码算法在数学理论上都具有很强的安全性,然而在密码算法实际运行时,硬件电路会泄漏出与逻辑0和逻辑1相关的电磁辐射、功耗波动等侧信道信息。密码算法的侧信道攻击就是指利用这些泄露出来的侧信道信息,再利用密码学、统计学原理,分析和破译密钥信息[1]。国内外对侧信道攻击技术的研究已经取得非常大的进展,发展出了一系列的分析方式,如功耗分析,电磁分析和时间分析等,其中比较成熟有效的侧信道分析方式是功耗分析技术,主要有简单功耗分析(SPA,Simple Power Analysis)和差分功耗分析(DPA,Differential Power Analysis)以及高阶功耗分析((Ho-DPA,High order Differential Power Analysis)[2]。

随着密码算法侧信道攻击技术的提高,对应的抗侧信道攻击技术也在与时俱进的发展。目前基于FPGA抗侧信道攻击密码算法实现的方法有时钟扰乱法、高频电路法、宽总线查表法和掩码法等。掩码法又分为S盒计算掩码法和S盒移位掩码法。

时钟扰乱法通过时钟频率的随机变化来对功耗进行扰乱,使得攻击者无法将时钟信号和功耗曲线对准,隐藏密码算法运行的内部信息,达到抗侧信道攻击的目的。高频电路法的原理是通过提高芯片的工作频率使得攻击者准确找到注入点进行侧信道分析的难度加大。宽总线设计法通过增加S盒输入输出位宽使得攻击者遍历密钥比特串的复杂度呈指数增长。S盒计算掩码法要求S盒是由有限域上的求逆运算或仿射变换等方式构成,其原理是在S盒求逆等运算中加入保护措施。S盒移位掩码法通过加入随机数掩码并改变S盒中数据的存储顺序使得侧信道攻击时对功耗曲线的分析困难,从而达到抗侧信道攻击的目的。

随着示波器等能量分析设备精度提高,时钟扰乱法、高频电路法已经不再安全。宽总线查表法的安全性依赖于计算的复杂度,然而随着计算机性能的提升,宽总线查表法也越来越不安全。S盒计算法要求S盒是由某种运算产生,其应用场景受限。S盒移位掩码法目前还没有特别明显的缺陷,是当前的一个研究热点。本文以分组密码算法SM4的实现为例比较了S盒移位掩码法与传统不具有抗侧信道攻击能力的实现方法在资源开销和加解密速度方面的差异,并分析了S盒移位掩码法在工程实现上的实用性。

1 盒移位掩码法

在分组密码算法中,其加解密或密钥扩展轮函数Y=R(x)总能表示成Y=L(S(x))的形式,其中L(.)表示密码算法轮函数中的线性运算部分,S(.)表示密码算法轮函数中的非线性运算部分,即通常说的S盒。S盒的设计直接决定了密码算法的抗侧信道攻击能力[3]。S盒移位掩码法通过对S盒中原始数据与掩盖随机数m进行异或掩盖,并随机化S盒的存储位置来保护S盒查表输出结果,使得侧信道攻击者无法直接得到S盒中的原始数据,能有效的阻止对密码算法运行时的侧信道攻击[4]。假设一个分组密码算法中S盒中有k个数据,轮运算次数为j,Si为第i轮的S盒,表1描述了该S盒采用S盒移位掩码法实现后的结果。

表1 S盒移位掩码法的实现Table 1 One way of masking schemes

从表1中可以看出,密码算法每轮运算使用的S盒都被不同的随机数掩盖保护,使得运行时每轮运算产生的电磁辐射或功耗等侧信道信息都不相同,增加了分析的复杂度。即使攻击者解析出了中间某一轮运算数据,也不能直接得到其它运算轮次的输出信息。

在FPGA平台上采用传统不具有抗侧信道攻击能力的方法实现密码算法时,S盒中的数据一般按照S(0),S(1)…S(k-2)S(k-1)的方式顺序从低地址到高地址依次存放。采用S盒掩码法实现时,S盒中的数据被掩盖随机数m掩盖并改变存储顺序,第i(i≠0)轮从低地址到高地址的存储顺序变为S(L(m(i-1))^0),S(L(m(i-1))^1)…S(L(m(i-1))^(k-1))。

2 具体实现方式

在FPGA中采用传统不具备抗侧信道攻击能力的方式实现密码算法时,一般会复用密码算法的轮运算单元,资源占用开销与算法的运算轮数没有太大关系。

采用S盒掩码法实现时,由于每轮运算的S盒数据被不同的随机数掩盖且存储顺序不同,轮运算模块不能直接复用。具体实现时可以有以下三种实现方式。

方式一、每轮运算完成时,对S盒中的数据采用下一轮的掩盖随机数重新掩盖并按照新的顺序存储到存储块中,再开始下一轮的运算。

方式二、设计两倍的S盒存储块,一份存储块存储当前正在使用的S盒,另一份存储块存储下一轮将要使用的S盒。算法运行时两份存储块采用乒乓操作实现S盒的使用和更新,即算法在使用其中一份存储块中的S盒进行加解密运算时,另一份存储块中的S盒可以同时进行数据的更新,为下一轮的运算做准备。

方式三、按照密码算法的运算轮数实现多个轮运算模块。算法初始化时,每个轮运算模块中的S盒分别使用对应的随机数进行掩盖。算法运行时直接使用已经掩盖好的S盒。采用该方式实现的S盒只有在更换掩盖随机数或更新S盒参数时才需要对S盒重新初始化。

密码算法实现时,S盒一般由FPGA内部的双口RAM实现,设S盒的数据位宽为n,存储块完成一次数据更新至少需要2n/2个时钟周期。比如位宽为8位的S盒,完成一次更新至少需要28/2=128个时钟周期。

方式一实现的密码算法每轮运算完成后需要消耗2n/2个时钟周期进行S盒数据更新,密码算法的加解密速度将严重下降,在实际工程实现中不具有实用性。

方式二实现的密码算法由于采用了乒乓操作,密码算法轮运算和下一轮的S盒数据更新可以同时进行,然而通常情况下密码算法的轮运算仅需要几个时钟即可完成运算,算法运行的瓶颈还是在数据更新上。每轮运算依然至少需要2n/2个时钟周期,该方法依然不具有实用性。

方式三将每个轮运算模块的S盒在算法初始化时预先一次性置入。采用这种方式实现的密码算法由于在运行时不再需要更新S盒中的数据,不会增加时钟开销。在资源开销方面,由于了轮运算模块被实现了多份,FPGA中寄存器、查找表和存储块等硬件资源的开销会与算法轮数成正比增加。假设待实现的密码算法有n次轮运算,采用方式三实现时硬件电路原理图如图1所示。

图1 采用方式三实现的硬件电路原理Fig.1 Schematic circuit diagram in method three

从图1中可以看到,采用方式三实现的硬件电路中每个轮运算模块完成一次轮运算的处理,上一个轮运算模块的输出结果直接进入到下一个轮运算模块中继续处理,直到完成所有的轮运算。最后一个轮运算模块的输出结果由输出处理模块做一次去掩码处理后即可得到加解密的结果。

3 SM4算法的实现

SM4抗侧信道攻击实现选用的FPGA芯片型号为Atera公司的EP3SE50F484C4,编译器及版本为Quartus II 11.1(32-Bit),仿真软件及版本为Modelsim SE 6.5。

作为比对样本的常规实现方式电路在硬件设计上仅实现一个轮运算单元,其硬件电路原理图如图2所示。

图2 采用常规方式实现的硬件电路原理Fig.2 Schematic circuit diagram in customarily

图2所示中硬件电路加解密数据时,算法核循环调用轮运算模块,并通过计数器对轮运算的次数进行计数,当完成指定次数的轮运算后,输出加解密后的数据。

FPGA中算法运行的理论最大处理速度可用公式V=(W/N)×F计算。F为算法在FPGA中运行的理论最高工作频率,N为待加解密数据从输入算法核到完成加解密后输出算法核所消耗的时钟周期数,W为每次运算处理的分组长度[5]。算法的硬件资源消耗及理论最高工作频率情况由编译器给出。实验结果如表2所示。

表2 实验结果Table 2 Experiment result

表2中各项数据后面百分比指的是该资源消耗量占芯片中此类资源总量的比例。从测试数据可以看出采用方式三实现的密码算法对算法的加解密速度影响不大。查找表和存储资源开销较大,主要是由于采用方式三实现密码算法时将硬件电路进行了展开从而增加了资源开销,但从占芯片资源总量百分比来看,占整个芯片资源的总量比例并不高。

此外,采用方式三实现的硬件电路在处理ECB模式的密码算法时还可以按照流水的方式处理,进一步提高算法的加解密性能。

4 结 语

抗侧信道攻击的密码算法实现是今后密码算法实现的一个趋势。采用抗侧信道攻击方式实现的密码算法在满足抗侧信道攻击的同时,在硬件开销和加解密性能上还必须具有可用性。对SM4算法的实验表明采用图1方式实现的S盒移位掩码法抗侧信道攻击实现方式合理,对算法的加解密速度没有太大影响。硬件资源的开销与传统不具有抗侧信道攻击能力的算法实现方式相比有较大增加,但占整个芯片资源的总量比例并不大,当芯片资源较富余时具有较大的实用价值。

[1] 成为,谷大武,郭筝,等.一种针对RSA-CRT的功耗分析攻击方法[J].通信技术,2011,44(06):123-125, 128.

CHENG Wei,GU Da-wu,GUO Zheng,ZHANG Lei.A Power Analysis Attack Against RSA-CRT[J].Communications Technology,2011(06):123-125,128.

[2] 陈廷定.密码芯片的侧信道安全性分析和量化评估[D].济南:山东大学,2010.

CHEN Yan-ding.Analysis and Quantitative Evaluation of Side Channel Security on Crypto Chips[D].Jinan:Shandong university,2010.

[3] 常小龙,丁国良,武翠霞,等.抗电磁侧信道攻击的AESS盒设计[J].计算机工程,2011(17):93-95.

CHANG Xiao-long,DING Guo-liang,WU Cui-xia,et al.Design of AES S-box Against Electromagnetic Sidechannel Attacks[J].Computer Engineering,2011(17): 93-95.

[4] 彭涛,王栓杰,席伟,等.FPGA密码芯片改进掩码防护方法研究[J].信息技术,2011(11):31-33.

PENG Tao,WANG Shuanjie,XI Wei,et al.Research on Improved Masking Technique based on FPGA Cryptographic chip[J].Information Technology,2011(11):31-33.

[5] 王松,韩炼冰,段俊红.布尔函数法实现S盒在FPGA中的应用[J].信息安全与通信保密,2013(09):90-91.

WANG Song,HAN Lian-bing,DUAN Jun-hong.Application of Implement S Box in FPGA Based on Boolean Function[J].Information Security and Communications Privacy,2013(9):90-91.

WANG Song(1985-),male,B.Sci.,engineer,majoring in embedded system and communications security technology.

陈 曼(1988—),女,硕士,工程师,主要研究方向为信息安全;

CHEN Man(1988-),female,M.Sci.,engineer,majoring in information security.

韩炼冰(1984—),男,学士,工程师,主要研究方向为嵌入式系统、通信安全技术;

HAN Lian-bing(1984-),male,B.Sci.,engineer,majoring in embedded system,and communications security technology.

段俊红(1984—),男,学士,工程师,主要研究方向为嵌入式系统、通信安全技术;

DUAN Jun-hong(1984-),male,B.Sci.,engineer,majoring in embedded system,and communications security technology.

刘鸿博(1981—),女,学士,工程师,主要研究方向为信息安全。

LIU Hong-bo(1981-),female,B.Sci.,engineer,majoring in information security.

Side-Channel Resistance Implementation for FPGA

WANG Song,CHEN Man,HAN Lian-bing,DUAN Jun-hong,LIU Hong-bo
(NO.30 Institute of CETC,Chengdu Sichuan 610041,China)

As the cryptographic algorithm is vulnerable to side-channel analysis during its operation,sidechannel resistance implementation for FPGA now becomes a hotspot of study.To counter this analysis, masking scheme in randomizing key-dependent data by addition of one or several random value(s)(the masks)is usually involved.This method may increase the hardware overhead and reduce the work efficiency while improving the security.SM4 implemented on an Altera FPGA by using certain masking scheme with location randomization indicates that the masking scheme does have certain influence on hardware overhead and work efficiency,but this is acceptable when area cost is not strictly limited.Experiment indicates that this masking scheme is of practical value in implementing crypto algorithm.

side-channel cryptanalysis;FPGA;implementation

TN791

A

1002-0802(2014)09-1100-04

10.3969/j.issn.1002-0802.2014.09.025

王 松(1985—),男,学士,工程师,主要研究方向为嵌入式系统、通信安全技术;

2014-06-11;

2014-07-28 Received date:2014-06-11;Revised date:2014-07-28

猜你喜欢

加解密掩码功耗
基于任务映射的暗硅芯片功耗预算方法
低面积复杂度AES低熵掩码方案的研究
基于布尔异或掩码转算术加法掩码的安全设计*
PDF中隐私数据的保护方法
揭开GPU功耗的面纱
数字电路功耗的分析及优化
电子取证中常见数据加解密理论与方法研究
《计算机网络技术》的几个重点课题的教学分析
一种面向星载计算机的功能级功耗估计方法
基于掩码的区域增长相位解缠方法