基于差分传输管预充电逻辑的功耗恒定性电路改进设计

2021-07-29 03:34:22姚茂群李聪辉
电子与信息学报 2021年7期
关键词:预充电逻辑电路恒定

姚茂群 李聪辉

(杭州师范大学信息科学与工程学院 杭州 311121)

1 引言

功耗分析攻击是当前众多旁路攻击中一种有效且易于操作的攻击方法,其通过获取电子元器件在运行时所产生的功耗,并利用该功耗与元器件中所运行密码算法的某些运算结果之间的相关性来进行分析,进而获得有价值的秘密信息[1–5]。而这一相关性是由当前流行的数字集成电路逻辑–CMOS逻辑单元所决定的,这种逻辑单元的功耗与其输入输出信号的翻转状态(“0→1”或“1→0”)有密切联系,并且这两种信号翻转时的电流所对应产生的电路功耗是不同的。而当CMOS逻辑单元在连续的两个时钟周期都没有发生信号的翻转时,由于没有产生动态电流,因此在这连续的时钟周期里电路所产生的功耗较少,与有信号翻转时的电路功耗有明显的差异。因此,这种差异性就给攻击者通过分析功耗来获得秘密信息提供了理论依据[6–11]。

近年来,研究者逐渐重视对电路级抗旁路攻击的研究,其中对功耗恒定性电路的研究是一个比较热门的方向。在这之中就有学者提出了一种可以让电路的功耗曲线不随信号取值变化而变化的双轨预充电逻辑结构(Dual Rail Precharge, DRP),其中最具代表性的是Tiri 等人[12]提出的 SABL(Sense Amplifier Based Logic)电路和WDDL(Wave Dynamic Differential Logic)电路[13]。因此也有众多学者基于这些逻辑电路做了相关的研究[14–17],但是由于SABL, WDDL这些逻辑单元存在CMOS逻辑中固有的提前传播效应[18],且电路中某一时刻的整体功耗是各个单元电路在这个时刻的叠加,因此跳变时间的不同就会造成整体功耗的差异。正是因为有了这种功耗差异,因此上述提到的DRP结构仍然存在被功耗攻击的风险。针对这些不足之处,国内有学者受到了互补传输管逻辑(Complementary Pass-transistor Logic, CPL)的启发,提出了一种基于 CPL 的新型双轨预充电逻辑–差分传输管预充电逻辑(Differential Pass-transistor Precharge Logic, DP2L)[19],该逻辑电路不仅可以实现功耗恒定的性质,还可以消除以往DRP结构中存在的提前传播效应问题,这极大地提升了电路在抗功耗攻击方面的能力。

但是,利用Hspice软件进行仿真实验,实验结果表明已提出的基于CPL结构的DP2L电路仍然存在一定程度的功耗信息泄露,依旧存在被功耗攻击的可能性。对此,本文在分析了该电路逻辑结构的基础之上,对该电路的结构进行了改进,使其更加满足功耗恒定的特性。并通过与改进前的电路进行比较,验证了改进后电路在功耗恒定上的优势。

2 DP2L双轨预充电逻辑电路

CMOS逻辑单元在输出端信号发生“0→1”翻转或“1→0”翻转时消耗能量。除此之外,电路不消耗能量。因此众多研究者基于这种相关性进行了较多的研究,并已经提出了多种可以消除这种相关性的功耗恒定性电路逻辑,例如SABL, WDDL,LBDL[20]以及DP2L逻辑等等,这些电路逻辑都属于不同结构的双轨预充电逻辑。

双轨预充电逻辑的特点如下:

(1) 一个双轨预充电逻辑电路是由两个单轨预充电逻辑电路组合而成的;

(2) 双轨(单轨)预充电逻辑电路的一个时钟周期分为预充电和求值两个阶段;

(3) 预充电阶段时,双轨(单轨)预充电逻辑电路的所有互补输入信号端都输入预充电值低电平“0”。求值阶段时,所有互补输入信号端都输入互补值;

(4) 预充电阶段时,双轨(单轨)预充电逻辑电路的输出端都输出低电平“0”信号。求值阶段时,双轨预充电逻辑门采用了差分互补的双端输出形式,即若一个输出信号为高电平“1”,则另一个输出信号必为低电平“0”。

这样设计的目的就是使得双轨预充电逻辑电路从预充电阶段进入求值阶段时,不管输入信号取何互补值,两个互补输出端都是仅有一个会发生“0→1”的翻转。当从求值阶段进入预充电阶段时,互补输出端也是仅有一个发生“1→0”的翻转。这就保证了固定的信号翻转率和功耗恒定性,消除了输入信号与功耗的相关性。

图1和图2分别为DP2L单轨和双轨输出“或”逻辑门,通过这两个电路结构来详细阐述其预充电和求值过程。图1中P1~P6 的6个PMOS管用来实现电路的预充电功能;NMOS管N5和N6用来实现该电路的具体逻辑。即当输入端输入互补信号值时,电路进入求值阶段,此时这两个NMOS管中的一个会被导通,从而形成一条从输入端到反相器的通路;余下的NMOS管N1~N4的主要作用是消除提前传播效应[19];反相器是作为输出负载的驱动单元。例如,在预充电阶段,(a,b)接收到输入信号(0, 0),()也接收到输入信号(0, 0),这时该逻辑单元的所有PMOS管都被导通,电源VDD经过反相器之后输出低电平“0”;当进入求值阶段时,若(a,b)接收到输入信号(1, 1),则(a,b)接收到输入信号(0, 0),此时N2, N4, N5分别打开,N1, N3,N6保持关闭状态,此时就只有N2, N5和反相器构成一条唯一通路,该条通路将连接N2的b信号值输送到反相器,经过反相器后输出端q的值为高电平“1”,满足“或门”的电路逻辑。

图1 DP2L单轨输出“或”逻辑

图2 DP2L双轨输出“或”逻辑的构成

而其他逻辑功能单元只需要替换电路最左侧一列的两个输入信号就可以利用类似的电路结构来实现[19]。

将单轨预充电逻辑结构的正逻辑与其对应的负逻辑相组合,就形成了DP2L双轨预充电逻辑结构。图2以“或门”为例给出了DP2L双轨输出“或”逻辑的构成方式,它由“或”和“或非”单轨预充电逻辑结构组合而成,其中“或”逻辑门的输出端与DP2L双轨输出端q直接相连,“或非”逻辑门的输出端与DP2L 双轨输出端q直接相连。因此,根据该电路的设计特点,若要实现DP2L双轨输出“或非”逻辑,则只需要将q和q交叉换线即可。该电路的具体工作步骤为:预充电阶段时,所有输入信号端都输入低电平预充电值“0”,根据之前对单轨逻辑的分析,这时双轨逻辑的输出端q和q的值也分别为“0”;求值阶段时,所有互补输入信号端均输入互补信号值,则双轨逻辑的输出端q和q也输出互补值。因此当电路从预充电阶段进入求值阶段后,不管输入信号端取何互补值,其两个输出端仅有一个会产生“0→1”的跳变,而另一个输出端的值则保持“0”不变;而当电路的求值阶段结束进入预充电阶段时,DP2L逻辑电路的输入信号端则都输入低电平预充电值“0”,此时逻辑电路的两个输出端中也仅有一个会产生“1→0”的跳变。

3 DP2L逻辑电路的功耗分析

通过对图1中DP2L单轨输出“或”逻辑的仔细分析,发现该电路逻辑在求值阶段晶体管充放电的数量并不相同。也就是说,电路功耗与输入信号的取值并不完全独立,仍然存在相关性。例如,当电路进入求值阶段,如果输入信号的值(a,a)为(1,0), (b,b)的值也为(1, 0),则NMOS管N2, N5导通,PMOS管P2, P6导通,由于P1, P5断开,则电路将仅对N2, N5两个晶体管放电。而当输入端信号的值(a,a)为(0, 1), (b,b)的值也为(0, 1)时,NMOS管N3, N6导通,PMOS管P3, P5导通,电路将对这4个管子放电。这样当输入信号不同时,电路所消耗的功耗就会因为晶体管放电数目不同而造成差异,使得电路不能达到完全的功耗平衡。

为了验证此分析,利用Hspice软件对DP2L单轨输出“或”逻辑进行模拟实验,图3中有明显电流峰值的部分为电路进入求值阶段后输入信号(a,b)的值分别为(0, 0), (0, 1), (1, 0), (1, 1)时的电源端瞬态电流曲线,即可以表示为运行时的逻辑电路功耗变化。图中横坐标表示运行时间,纵坐标表示电源端瞬态电流,将相同的输入信号运行4个周期以保证数据的准确性。图中以2.3 ns为一个周期,一个周期中包含预充电和求值两个阶段,其中有明显电流峰值的时段为求值阶段,其余皆为预充电阶段。图中可看出一个周期中包含两个相邻的电流峰值,先产生的电流峰值表示输出信号发生“0→1”翻转时产生的电流,后产生的电流峰值表示输出信号发生“1→0”翻转时产生的电流。

图3(a)由于输入信号(a,b)的值为(0,0)时,“或”逻辑输出并没有发生翻转,因此产生的动态功耗即电源端电流非常小;而输入其他信号时,由于发生了输出信号的翻转,即产生了充放电过程。并且可明显看出同一周期中电流曲线的相邻两个峰值具有明显差异,这个差异是由输出信号发生“0→1”,“1→0”翻转时所产生的不同功耗所造成的。因此,攻击者仍然可以利用这个差异进行有效的攻击。

图3 4种输入信号下的DP2L单轨输出“或”逻辑瞬态电流曲线

4 DP2L逻辑电路的改进

经过以上对DP2L逻辑的分析,图4所示为改进后的DP2L单轨输出“或”逻辑。分析如下:在求值阶段时,当输入端(a,a)的值为(1, 0), (b,b)的值也为(1, 0)时,NMOS管N2, N5导通,PMOS管P3,P11导通,则电路将仅对N2, N5, P3, P11这4个晶体管放电。而当输入端信号(a,a)的值为(0, 1), (b,b)的值也为(0,1)时,NMOS管N3, N6导通,PMOS管P5, P9导通,则电路也将对4个管子放电。因此,在求值阶段不管输入信号为何值,晶体管的翻转数量都是恒定的;而预充电阶段时,输入信号都为低电平“0”,此时由于PMOS管全部都被导通,因此晶体管的放电数量亦恒定。因此只要保证逻辑电路中所使用的PMOS管的规格参数全部相同,NMOS管的规格参数也全部相同,则经过改进后的DP2L逻辑在不同阶段的功耗都是由相同参数和数量的晶体管充放电产生的,这就保证了功耗恒定的性质。其他的基于DP2L的逻辑门电路根据相同的改进方法即可达到相同的效果。

图4 改进后DP2L单轨输出“或”逻辑

为了验证此分析,通过Hspice软件对改进后的DP2L单轨输出“或”逻辑进行模拟,图5中有明显电流峰值的部分为求值阶段时输入信号(a,b)的值分别为(0, 0), (0, 1), (1, 0), (1, 1)时的电源端电流曲线。所使用的模拟实验方法与图3中所使用的完全相同。

图5 4种输入信号下的改进后DP2L单轨输出“或”逻辑瞬态电流曲线

由以上模拟结果可知,经过改进后的DP2L单轨输出“或”逻辑在不同输入信号取值的情况下,一个周期中相邻两个电流峰值的差异较小,与改进前相比有较大的改善。这就保证了电路在输出信号发生“0→1”,“1→0”翻转时具有近乎相等的功耗,从而改善了功耗恒定的特性。

将改进后的DP2L单轨输出“或”逻辑和改进后的DP2L单轨输出“或非”逻辑相组合就构成了如图2所示的DP2L双轨输出“或”逻辑。利用Hspice对该DP2L双轨输出“或”逻辑进行模拟,图6中有明显电流峰值的部分为求值阶段时输入信号(a,b)的值分别为(0, 0), (0, 1), (1, 0), (1, 1)时的电源端电流曲线。所使用的模拟实验方法与图3中所使用的完全相同。分析可得:不管输入端的信号取何值,该逻辑门电路所表现出的功耗都是完全恒定的,并且当输出信号产生“0→1”和“1→0”翻转时电路所产生的功耗也是近似相同的。

图6 4种输入信号下改进后DP2L双轨输出“或”逻辑瞬态电流曲线

5 功耗恒定性分析

为验证改进后DP2L电路的功耗恒定特性,将图3、图5、图6中的数据进行分析和整理,如表1–表3所示,表4为国际上同类型逻辑电路的功耗恒定性能比较。表中分别列出了电路改进前后在不同输入条件下发生“0→1”和“1→0”翻转时电流数据的平均值,以及衡量功耗恒定特性的评价指标:标准化能量偏差(Normalized Energy Deviation,NED)[13]。其定义为

表1 改进前DP2L单轨电路相关参数

表2 改进后DP2L单轨电路相关参数

表3 改进后DP2L双轨电路相关参数

表4 同类型逻辑实现的“或”门标准化能量偏差对比

式中,E是电路在一个运算周期所产生的功耗值的集合。NED的取值范围在[0,1],且数值越小表明该电路的功耗恒定性能越好。

由表4可得,改进后的DP2L电路在功耗恒定特性上明显优于其他逻辑电路,前者较高的NED值就表现出了一定程度的数据与功耗的相关性,更容易遭受到功耗攻击。而改进后的电路以其较低的NED值就体现出了较高的抗功耗攻击性能。

6 结束语

通过分析DP2L电路的功耗恒定特性并经过Hspice软件的模拟验证,发现该电路无法完全满足功耗恒定特性。因此本文对DP2L电路进行改进,并对改进后电路进行仿真测试和NED值的比较,结果表明改进后的DP2L电路在功耗恒定的特性上有了明显的提升,从而进一步为密码功能模块的可靠性和安全性提供有力支撑。

猜你喜欢
预充电逻辑电路恒定
动力电池预充设计及温升特性研究
电动汽车预充电保护设计
电动汽车分级预充电回路及预充电阻选型匹配方法研究
汽车电器(2021年2期)2021-03-05 07:12:04
花花世界
数字电子时钟逻辑电路的教学设计与仿真
电子制作(2019年20期)2019-12-04 03:51:28
漫画十万个为什么
小小艺术家(2017年8期)2018-01-26 13:15:10
基于软件技术的组合逻辑电路模型分析与实现研究
短区间自动闭塞车站接近区段逻辑电路设计
基于变频器的新型预充电电路的研究
电测与仪表(2015年2期)2015-04-09 11:29:18
恒定动能打击变初速发射原理