抗电磁侧信道攻击随机预混淆逻辑单元设计

2022-08-09 07:17赵毅强曹宇文何家骥马浩诚刘燕江
西安电子科技大学学报 2022年4期
关键词:时序延时密钥

赵毅强,曹宇文,何家骥,马浩诚,刘燕江,叶 茂

(1.天津大学 微电子学院,天津 300072;2.中国人民解放军战略支援部队信息工程大学 密码工程学院,河南 郑州 450001)

密码算法是数据安全交互的基石,现场可编程门阵列(Field Programmable Gate Arrays,FPGA)具备可重配置特性及较短的开发周期,被广泛用作各类密码算法的硬件载体,然而基于现场可编程门阵列实现的密码电路仍然面临潜在的侧信道攻击。侧信道攻击是攻击者利用密码设备运行时产生的运算时间、功耗、电磁等物理信息[1],破解出密码设备中密钥等关键信息的攻击方法[2]。

电磁侧信道最早由QUISQUATER等[3]发现,电路运行时,内部逻辑单元状态翻转产生动态电流,进而引起电磁辐射。电磁侧信道具备局部高信噪比、非接触式采集、可空间定位、包含丰富频域信息等特性,比功耗侧信道攻击更具威胁性。当前常用的电磁侧信道攻击方式包括简单电磁分析、差分电磁分析、相关性电磁分析等,其中相关性电磁分析(Correlation ElectroMagnetic Analysis,CEMA)被广泛用于电路的侧信道安全评估[4-8]。

现场可编程门阵列片载的可配置逻辑主要为高层次设计单元,包含查找表(Look Up Table,LUT)、存储块、可编程互连阵列等,基于现场可编程门阵列的密码算法电路实现,其设计流程与专用集成电路(Application Specific Integrated Circuits,ASIC)的实现存在较大区别。大多数针对专用集成电路开发的抗电磁侧信道攻击的方法并不适用于现场可编程门阵列,因此需要针对现场可编程门阵列的底层硬件架构,在兼容当前现场可编程门阵列开发流程的基础上,减弱现场可编程门阵列上实现电路的电磁侧信道信息泄露,提升密码算法硬件实现的安全性。

当前抗侧信道攻击防护策略主要包括掩码[9-10]和隐藏[11-12]等,从密码算法、硬件电路、电路安全实现等层级对侧信道安全进行增强。其中,掩码通过使用随机数值加掩的方式掩盖真正的密码运算中间值,可以从算法、电路实现等层面改善信息泄露,然而硬件电路一般需要经过专门的设计,且存在受高阶侧信道攻击的隐患。隐藏则分为幅度隐藏和时域隐藏,与基于物理不可克隆函数[13-14]的状态机隐藏不同,基于隐藏的电磁侧信道防护方法在保证密码电路正常运行的同时,隐藏逻辑单元状态转换产生的电磁信息泄露。幅度隐藏分为两类:第1类为补偿防护,通过补偿动态电磁,使侧信道信息泄露保持稳定,如动态差分逻辑[11],然而在现场可编程门阵列上应用时,存在逻辑门延时偏差、寄生电容失配等非对称问题,使该防护措施对电磁侧信道攻击的防护效果有限;第2类防护侧重于降低电路侧信道信息泄露的信噪比,在专用集成电路防护方法中,常使用定制模块来产生干扰电磁噪声,如低压差线性稳压器[4],但考虑到现场可编程门阵列是半定制电路,这类专用模块难以用现场可编程门阵列的硬件资源实现。使用插入逻辑单元或运算模块[6]来降低侧信道泄露的方法易于通过现场可编程门阵列来实现,如随机预充电逻辑单元,该逻辑单元的插入能弱化组合逻辑的侧信道信息泄露,而针对时序逻辑还需要级联寄存器[15]等来提供额外的防护。此外,也能利用电磁的位置敏感性,干扰被采集电磁的幅值来降低泄露,如数据流空间随机化[16]等。时域隐藏通过时钟信号的随机化[5,17],使得电磁曲线难以对齐从而增大侧信道攻击难度,然而现场可编程门阵列生成动态时钟需使用大量锁相环或混合模式时钟管理器的端口资源,耗费多余时钟资源且带来较大性能开销。

为了解决传统电路级侧信道防护方法在现场可编程门阵列上难以应用,或应用时存在较大面积开销和性能降低的问题,通过对现场可编程门阵列的底层硬件结构进行分析,结合原始电路的设计特点,设计了一种具备通用性的随机预混淆逻辑(Random Pre-Obfuscation Logic,RPOL)单元,显著提高了基于现场可编程门阵列实现的密码电路的电磁侧信道安全性。首先,定位密码算法易受侧信道攻击的薄弱点位,在对应电路模块的时序逻辑和组合逻辑通路中靶向插入RPOL单元,来混淆组合逻辑的输入,进而隐藏组合逻辑网络各节点的逻辑状态;其次,通过对RPOL单元的控制时序调整,掩盖时序逻辑状态翻转,最终实现密码电路抗电磁侧信道攻击能力的提高。

1 电磁侧信道泄露与防护原理

1.1 电磁侧信道泄露原理

当前数字芯片大多基于互补金属氧化物半导体(Complementary Metal-Oxide-Semiconductor,CMOS)工艺实现,CMOS电路运行时,逻辑单元的状态改变会引起芯片内部电流的变化,向芯片外释放电磁辐射,芯片产生的电磁与底层逻辑运算存在相关性。在密码电路加密数据的过程中,会产生与密钥相关的密码中间值,相关的逻辑操作产生的电磁,与该密码中间值存在直接关联,导致信息泄露。其余与该密码中间值运算无直接关联的逻辑单元,状态翻转时引起的电磁被视为噪声,对电磁侧信道攻击造成干扰。此外,测试设备、电磁工作环境也会引入一定的噪声。实际测量的电磁R用如下公式表示:

R=Q+Ne+No,

(1)

其中,Q表示直接泄露电磁,No表示无关电磁噪声,Ne表示环境噪声。

电磁侧信道攻击通过大量采集密码电路释放的电磁辐射,基于侧信道分析模型,使用统计学方法识别电磁辐射中与密钥相关的成分,实现密钥提取。汉明距离(Hamming Distance,HD)模型是常用的侧信道分析模型,表征存在状态翻转的逻辑单元数量。使用HD模型对密码电路做CEMA攻击,首先需要针对密码算法选定攻击点,根据不同密钥假设计算密码中间值,基于HD模型构建对应的假设电磁曲线。为了降低建立泄露模型的复杂度,每次假设8比特子密钥构建假设电磁曲线,把m比特密钥的假设复杂度从2m降低为28×(m/8)。

在极端条件下,攻击者已知芯片的架构,能够对芯片输入任意明文并获取加密结果。通过HD模型构建假设电磁曲线W,计算与实际测量电磁曲线R之间的相关系数,计算方式为

(2)

C=maxρcorrect/maxρwrong,

(3)

其中,ρcorrect和ρwrong分别表示正确和错误假设密钥的相关系数。C越接近0,则表明电路的侧信道安全等级越高。C超过1,则表明正确密钥被揭露,该情况下达到C=1时所需要的加密明文条数(Measurement To Disclosure,MTD)直接反映了破解密码电路的最低曲线数量。

1.2 电磁侧信道防护原理

增加电磁辐射中的无关电磁噪声并降低直接泄漏电磁是主要的幅度隐藏策略,其效果由电磁侧信道的泄露信噪比S表示。根据实测电磁R的定义,信噪比的计算公式为

(4)

其中,V(Q)和V(Ne+No)表示直接泄露电磁和噪声的方差。考虑噪声影响[18],相关系数ρ(R,W)的计算方式改进为

(5)

可见,为了提高CEMA攻击所需的实测电磁曲线数量,降低ρcorrect,需要降低电磁辐射的泄露信噪比,即信噪比越低,密码电路的电磁侧信道安全性越高。

2 RPOL单元设计与时序调控

2.1 RPOL单元结构及特性

基于现场可编程门阵列设计的RPOL单元由数据路径选通(Data-Path Select,DPS)组件和振荡环路组成,如图1所示。该逻辑的插入位置在时序逻辑触发器(Flip-Flop,FF)和组合逻辑查找表之间。数据路径选通具备导通上下级逻辑单元的数据缓冲功能以及控制振荡环路的功能。同时,作为振荡环路的组件,数据路径选通在振荡环路中具备反向逻辑功能。在振荡环路中,数据路径选通的输出逻辑经过偶数个反向逻辑传递至数据路径选通输入端。

表1 RPOL单元的工作模式

RPOL单元有两种工作模式:缓冲模式和振荡模式。输入端I1为数据缓冲端,与上级触发器输出端相连,在缓冲模式下,I1的逻辑值传递给输出端O1,O1=I1;输入端I2、I3是控制端,对RPOL单元的工作模式控制如表1所示。当I2=1且I3=0时,RPOL单元进入振荡模式,输出端O1为I4的取反逻辑值,即O1=~I4,振荡环路开启;当I2、I3处于其它状态组合时,电路进入缓冲模式,振荡环路逻辑状态保持稳定;输入端I4为振荡端,其逻辑状态始终与O1保持一致,即I4=O1。

RPOL单元在振荡模式下,振荡周期如下式所示:

T=2(ktinv-co+tDPS-co) ,

(6)

其中,k表示取反逻辑的级联级数,且k=0,2,4,…,2n,tinv-co表示单个反向逻辑的传播延时,tDPS-co表示数据路径选通的传播延时。

由于FPGA上的DPS和反向逻辑均由查找表实现,因此对查找表的延时抖动进行分析。用di表示振荡路径上的单个查找表的逻辑延迟,di由多个部分组成,如下式所示:

di=Di+Δdi=Di+Δdgl-i+Δdl-i,

(7)

其中,Di表示LUTi的稳定延时,Δdi表示延时的变化,包括全局延时抖动Δdgl-i和局部延时抖动Δdl-i,其中Δdgl-i表示由电路外界条件改变引起的延时变化。在外界条件不变时,Δdl-i是导致RPOL单元振荡频率不稳定的主要因素。对于单个查找表而言,Δdl-i主要包括局部高斯抖动Δdlg-i以及附近电路的串扰影响Δdld-i[19],如下式所示:

Δdl-i=Δdlg-i+Δdld-i,

(8)

局部抖动对RPOL振频影响如图2所示。密码电路输入不同的数据,加密过程中会对RPOL单元延时造成串扰影响,受该局部串扰以及局部高斯抖动的影响,RPOL单元振荡环路的振荡频率发生抖动,RPOL单元振荡相同时间后,输出逻辑值不稳定,可能为逻辑1或0。多个RPOL单元插入密码电路,数据缓冲端输出向量为I1,输出端输出向量为O1。在振荡模式下,O1快速改变,下游组合逻辑的状态由于输入的改变而持续翻转。RPOL单元的振荡环路各组件存在局部延时抖动,输出向量O1高度随机化,使得下游组合逻辑中的各单元逻辑状态均为随机状态。随着RPOL单元进入缓冲模式,输出更新为缓冲端数据I1,下游组合逻辑的状态逐渐稳定,此时组合逻辑输出正确运算结果。该混淆过程,能够降低组合逻辑的直接泄露电磁,从而降低组合逻辑的泄露电磁信噪比。

2.2 RPOL单元的时序调控

RPOL单元对组合逻辑输入信号的混淆,减弱了组合逻辑状态改变产生的电磁信息泄露与密钥的相关性。为了掩盖时序逻辑的电磁泄漏,基于延时链对RPOL单元的控制时序进行调控,用组合逻辑的状态翻转掩盖时序逻辑的状态翻转。

基于延时链相移后的控制信号工作时序如图3所示。CLK(CLocK)表示加密电路的主时钟信号,假设密码电路的所有触发器均由上升沿触发,为了减小延时链的资源开销,选用下降沿触发器产生控制信号I2、I3,延时链总延时深度为t0~t3。t0时刻CLK下降沿到来后,延迟链中信号逐级发生0→1翻转;t1时刻,I2发生0→1翻转,RPOL单元进入振荡模式,组合逻辑的输入随机翻转;t2时刻CLK上升沿到来,触发器寄存加密中间值并发生逻辑翻转;t3时刻,RPOL单元进入缓冲模式。由于t1~t3时间段内RPOL单元处于振荡模式,触发器的逻辑状态翻转被组合逻辑单元的随机状态翻转所掩盖。

时序逻辑的泄露电磁信噪比Z的计算方式为

(9)

其中,Nc为组合逻辑混淆过程中产生的电磁噪声,该噪声将改善时序逻辑的电磁泄露状况。

为了满足触发器的时序约束,使触发器对加密中间值OFF_clk2正确寄存,需要满足时序要求:

tFF-hold

(10)

其中,tFF-hold表示触发器的保持时间,tmin-comb表示组合逻辑的输入向量改变至下级触发器输入端数据稳定的最短传播时间,tDPS-co表示DPS组件的传播延时。该时序要求使得在时钟上升沿到来时,组合逻辑输入向量满足OFF_clk1→ORPOL→OFF_clk2,确保了密码运算的功能正确。

电路正常运行的最小时钟周期Tmin-clk的计算方式为

tmax-comb+tFF-setup+tFF-co

(11)

其中,tmax-comb表示组合逻辑的最大传播延时,tFF-co表示触发器的传播延时。插入RPOL单元后,密码电路运行的最高频率从1/Tmin-clk下降至1/(Tmin-clk+tDPS-co)。DPS组件最小可由单个查找表实现,而相比于密码算法组合逻辑传输延时,单个查找表的延时极小,因此RPOL单元的插入对性能基本无影响。

FPGA中有大量可作为延迟单元的逻辑资源,如:查找表、超前进位链、缓冲器等,其中超前进位链的延时精度最高,在45 nm工艺的FPGA中,精度可达到100 ps,能用于环振单元控制信号相位的细粒度调整。

3 实验结果与分析

为了验证所提出方法的有效性,使用高级加密标准(Advanced Encryption Standard,AES)算法的AES-NIST(AES-National Institute of Standards and Technology)设计作为基准电路,插入RPOL单元后,采集FPGA的电磁辐射,使用CEMA方法来评估电磁侧信道泄露。

3.1 实验环境

AES-NIST是AES算法的开源寄存器传输级(Register Transfer Level,RTL)设计,可选用128 bit、192 bit、256 bit密钥加密明文。实验中,使用的明文和密钥均为128 bit。AES电路运行时,先把密钥扩展为轮密钥并对明文密钥做异或运算,再对异或结果进行10轮加密操作,前9轮加密包括字节替换、行移位、列混淆、轮密钥加操作,第10轮仅进行字节替换、行移位、轮密钥加操作。在字节替换操作中,将128 bit中间数据拆分为4个32 bit数据,在4个时钟周期内分别运算。

使用已有自建的高性能电磁侧信道采集系统,如图4所示。

图4中使用的FPGA平台为SAKURA-G开发板。该开发板集成了两块Xilinx的Spartan-6系列FPGA,分为主控和运算FPGA。运算FPGA配置为AES加密核对明文加密,通信模块被配置在主控FPGA上,以完成上位机与AES加密核之间的明文、密文传输。该平台使用LANGER公司的近场电磁探头HH 250-75采集电磁辐射,探头的位置通过控制系统固定,在运算FPGA表面的电磁辐射最强点处采集电磁,电磁探头的感应电压经30 dB放大器放大后,由Tektronix MSO 4054示波器传递至上位机。

示波器在平均模式下,以2.5×109/s的采样率对电磁信号进行采样。平均模式能去除环境和实验设备引入的少量噪声,并且一定程度上检验文中所提出防护方法对于数据预处理的抗性。

3.2 泄露优化结果及开销分析

对于AES电路,S盒的字节替换操作是常用的侧信道攻击位置,因此对AES电路的第一轮字节替换操作构建泄露模型,并对采集的电磁曲线做CEMA分析[7]。AES电路优化前,在2 000条明文输入下,CEMA结果如图5(a)所示。存在泄露的采样时间点区间为50至120,正确假设密钥的最高相关系数为0.19,而泄露区间中错误假设密钥的最高泄露相关系数为0.097,正确假设密钥的相关性远高于错误假设密钥的相关性,C=1.96。该泄露区间内的电磁侧信道泄露MTD结果如图5(b)所示,正确假设密钥的相关性曲线在第94条曲线处与错误密钥的相关性曲线分离,MTD=94。

通过对AES电路架构的分析,在S盒模块的输出寄存器后插入RPOL单元,利用查找表和超前进位链串联实现控制信号,使得优化后AES电路依然满足时序要求。基于RPOL单元优化后的AES电路在100 000条明文输入下,CEMA结果如图5(c)所示,正确假设密钥被隐藏,表明该防护方法具备良好防护效果。在50~120的泄露区间内,正确假设密钥的最高泄露相关系数为0.015,错误假设密钥的最高泄露相关系数为0.032,C=0.47,相比防护前降低了76%。在相关系数最高采样时刻74处,MTD计算结果如图5(d)所示,在100 000条曲线处,仍有大量错误假设密钥相关性高于正确密钥相关性,优化后AES电路的MTD>100 000,泄露下降超过1 063倍。

表2列出了AES电路优化前后的资源、功耗和性能开销比较。

表2 优化前后的AES资源及性能开销

在电路优化后,触发器的使用数目减少1.2%,查找表使用开销增加4.3%。寄存器的减少可能是由于RPOL单元插入后,PlanAhead工具在综合过程中自动优化的结果。尽管Slice的使用数目较多,然而Slice中存在大量空余逻辑未使用,触发器和查找表的总逻辑资源开销仅增加1.1%。得益于基于延时链的控制信号生成,RPOL单元处于振荡模式的时间极短,使得该防护方法引入的额外功耗开销仅为1.47%。防护后AES电路的最高运行频率增加2.1%,表明该防护方法不影响电路性能。

表3比较了不同电磁侧信道防护方法的开销和效果,可见基于RPOL单元的防护方法相比于其他文献,以较低的资源开销和功耗开销,使得密码电路的安全性能有较高提升,在综合性能上具有明显优势。

表3 与相关文献的防护效果与开销对比

3.3 防护方法的延展性验证

为了验证笔者提出的防护方法在不同工艺制程的FPGA中的适用性,选用28 nm工艺的Kintex-7 XC7K160T FPGA重复上述实验,AES电路的时钟频率保持为48 MHz,电磁数据的采集使用了32次平均模式去除环境噪声影响。AES电路优化前,在2 000条明文输入下,攻击单个字节所需的最少曲线数目为25条,对应字节的CEMA相关系数为0.269。优化后的AES电路,在50 000条明文输入下,未能分析出对应密钥的字节,且相关系数降低至0.011,MTD>50 000。防护后所需MTD的数量增加2 000倍以上,泄露的下降同样达到千倍量级,表明笔者提出的防护方法在不同FPGA上仍然具备良好的防护效果。电路优化后,使用查找表和寄存器的逻辑资源总数从4 170提升至4 427,增长了约6.2%,增长的资源开销主要用于RPOL单元的时序调控。防护后电路的最大运行频率从194.5 MHz变化至187.8 MHz,降低了约3.44%,表明笔者提出的防护方法对电路性能基本无影响。

4 结束语

针对现场可编程门阵列实现密码电路面临的电磁侧信道安全威胁,笔者提出一种基于随机预混淆逻辑单元的抗电磁侧信道攻击方法,通过靶向插入RPOL单元来降低泄露电磁的信噪比。实验结果表明,该方法在不影响时序性能的同时,以较低的资源和功耗开销,有效地抵御了电磁侧信道攻击,大幅提高了现场可编程门阵列实现密码电路的安全性能。

猜你喜欢
时序延时密钥
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
幻中邂逅之金色密钥
幻中邂逅之金色密钥
课后延时中如何优化不同年级学生活动效果
你不能把整个春天都搬到冬天来
密码系统中密钥的状态与保护*
基于数据选择的引信测试回波信号高精度延时
Android密钥库简析