CMOS门电路的功率与数据相关性
作者:李翔宇 孙义和 时间:2006-11-23 23:47 来源:电子设计信息网-www.edires.net
摘 要:为了研究电路实现形式对密码芯片抗“功耗分析攻击”能力的影响,考察了CMOS门电路的交流馈通对电源电流的影响,输入组合对电路充放电网络的影响以及静态电流的数据相关性。对静态逻辑、N/P型动态逻辑和差分Domino逻辑的这3种信息泄漏机制进行了具体分析,并对这4种逻辑的2输入与门和或门进行了仿真。静态电路和普通动态电路不同输入变化对应的电流曲线间的最大差值都大于60
μA,而差分Domino电路的所有电流曲线之差小于2
μA。结果表明:采用N型Domino逻辑,并使数据输入只在时钟为高时有效,相对于其他逻辑功耗信息泄漏要小。
关键词:场效应型集成电路;数据安全;功耗分析;差分功耗;功耗数据相关性
密码芯片在工作时功率的变化可能泄漏内部数据的信息。功耗分析是一种分析芯片工作功率随时间变化的波形,从中提取密钥信息的物理攻击方法。功耗分析的物理基础是半导体器件在工作中功耗与电路中翻转节点的数量,以及状态等因素有关,对于不同的数据,芯片往往会产生不同的功率变化。本文通过分析CMOS门电路电流模型,对不同逻辑形式电路的功率与数据相关性进行比较。以便找到更加适于密码芯片的逻辑形式,为抗“功耗分析攻击”芯片设计提供参考。
1 功耗数据相关性
下面分析以电源电流代替功率。
1. 1 动态电流模型
图1标出了一个CMOS反相器在输入变化时存在的各种动态电流。为了单独表征反相器的电源电流,采用独立电源给它供电(Vdd1),负载电源用Vdd2 表示。通过Vdd1的主要电流包括:1) 电容馈通电流(i
fp1和i
fp3);2) 短路电流(i
s);3) 内部节点与输出节点的充电电流(i
cd) 。虽然当输入信号的变化速率非常快时,短路电流可以忽略,但考虑芯片安全时,必须考虑攻击者可能采用降低电压,升高温度等方法使芯片内信号翻转速率减慢,所以这里短路电流不能忽略。复杂CMOS逻辑门也可以将电路分为上拉网络和下拉网络两个部分。它们的动态电源电流也由这3种机制产生。

图1 一般CMOS反相器的电流
1. 2 动态电源电流与数据的相关性
电容馈通电流与输入信号和电路状态(即内部节点和输出节点的电平)的变化有关。节点电容充电,可以看作一个RC网络的信号传输问题。根据Elmore延时公式,充电时间正比于

其中:i是节点编号,n为充电节点数,C
i表示对应节点的电容,R
i表示从电源到该节点和距电源最远的被充电节点的共享路径电阻。如果用零阶近似,i
cd(t) 为

其中:k是比例系数,V
di是C
i电压变化幅度。
显然,i
cd(t) 与充电网络的参数和状态有关。如果充电网络是由数据输入控制的,那么i
cd(t) 就是数据相关的。例如,两个初级节点间是并联支路时,导通电阻就与导通支路的数目有关。
短路电流与输出节点是否翻转、电源到地之间的短路电阻有关。而短路电阻的大小也是由门电路的结构和电阻参数决定的。
因此,电源电流的信息泄漏,主要分成两种机制,一是状态和输入变化直接交流耦合到电源;二是数据输入信号对于电路网络参数和状态的改变反应到电源电流中。
此外,输出信号的变化速率还会影响下级电路的短路电流。因为短路电流受输入信号变化时间的影响很大。由Elmore延时公式,输出节点充放电时间和充放电网络的参数相关。所以下一级电路的短路电流也和本级的输入状态和输入变化相关。
1. 3 静态电流与数据的相关性
深亚微米条件下静态的次开启电流已经不可忽略。静态时往往会存在次开启电流I
sub,一个N管的次开启电流为

其中:K
1和n是经验常数,q/KT是热电压,V
ds是源漏间的电压,V
T表示阈值电压。P管次开启电流公式与式(2) 类似。变量V
ds与各个内部节点电平联系紧密。所以次开启电流也是数据相关的。另外,因为栅氧化层漏电流流经的是输入级的电源,这里只讨论本级电路的功耗情况,故不考察这种机制。
2 不同类型门电路的信息泄漏
2. 1 几种实现形式的比较
下面考察静态逻辑、N型动态逻辑和P型动态逻辑3种主要CMOS逻辑:静态逻辑的上拉部分和下拉部分都受数据输入端控制;N型动态逻辑上拉部分只受时钟控制,下拉部分由数据输入信号控制;P型动态逻辑上拉部分由数据输入信号控制,下拉部分只受时钟控制。
静态逻辑工作时,两部分的RC网络同时变化,由1.2节的结论,每次状态变化都有数据相关的电流成分,所以每次动作都会有信息泄漏。
动态电路一般分成3步工作:1)预充时刻:时钟下降(对N型而言);2)数据变化;3)求值时刻:时钟上升(对N型而言)。因为只有充电电流才经过电源,N型动态电路的充电网络受数据输入影响低于P型动态电路,因此,N型动态电路的信息泄露往往比P型动态电路少。
由于静态电路与输入相关的内部节点比动态电路多,所以静态电路的信息泄漏往往要多于下拉网络(或者上拉网络)的结构与之相同的动态电路。如果输入数据采用双轨编码——即用两个信号表示一bit 数:“10”表示“1”,“01”表示“0”,“00”表示无效状态,“11”是非法状态——则可以采用差分Domino 逻辑。由于在无效状态即便时钟为高输出节点预充的电荷也不会放掉,所以可以在两次运算数据间用无效状态(所有数据输入全为0)间隔,工作顺序是:数据无效时时钟下降,输出节点预充时钟变高数据有效,开始求值数据无效时钟变低,为下次运算预充。数据有效和变化都是在时钟为高时才进行,预充时刻,输入数据是无效的,而数据变化时,充电开关截止,所以放电网络与电源是隔离的,仅有少量信息通过交流耦合泄漏。
2. 2 2输入与门的实验结果
2. 2. 1 不同实现形式的电源电流特征以2输入与门(与非门+ 非门)为例考察静态门、N型/P型动态门和差分Dom ino门在所有输入情况下的电源电流波形情况。
一个CMOS逻辑门可以看成一个状态机:内部节点的电平是它的状态,输入是状态机的输入。图2是一个静态2输入与非门和它的STGPE图,表示其状态转移关系。每个圆圈表示一个状态,圈中是状态字(MSB 和LSB分别是输出节点和两个NMOS之间节点的状态)。

图2 2输入与非门STGPE图
图2中各边(边用E
k表示, k为边的编号)上标记的符号e
k表示该边对应的转移条件,每个e
k包括两项:第一项是输入图形(A在前B在后) ,第二项是边名称。具体各边的转移条件是:e
0=(00,E
0) ,e
1=(01,E
1) ,e
2 = (10,E
2) ,e
3=(11, E
3) ,e
4=(00,E
4),e
5=(01, E
5),e
6=(10,E
6),e
7=(11, E
7) ,e
8=(00,E
8),e
9=(01,E
9),e
10=(10,E
10) ,e
11=(11,E
11)。
由STGPE图知,输入AB =“11”,电路处于图中的S
0状态;输入AB =“10”,电路处于图中的S
2状态;输入AB =“01”,电路处于S
1状态;而AB =“00”可以对应S
1、S
2两种状态。由于输入变化会耦合到电源端, 所以这里不仅考虑电路状态的变化还要考虑输入信号的变化。于是与非门共有如下20种工作情况: AB分别由“11”、“10”和“01”变为“00”“10”“01”“11”;以及电路处于S
1、S
2状态时,输入由“00”变为各种输入组合的8种情况。由于动态电路的上拉或下拉部分与静态电路相同,所以动态与非门的工作情况也可以概括为上述20种。
对4种实现方式下典型宽长比的与门进行Hspice仿真(中芯国际0.18
μm工艺) —— 为了研究静态电流,仿真中输入信号的高低电平分别比理想电平低(高)10% ——得到各自的电流变化曲线。图3给出了动态电路和静态电路的部分典型电流曲线和Domino电路的全部结果。图3a和图3b曲线出现尖峰的3个时刻从左到右依次是:预充时刻数据变化时刻求值时刻;图3c的两组尖峰分别对应两次输入变化;图3d的尖峰依次是:第一次数据有效数据无效时钟下降时钟上升第二次数据有效。如果把每个时刻对应的部分重合的曲线归为一组;那么, 组数越多则意味该时刻的信息泄漏越多。
图3 中N型和P型动态电路在预充、求值时刻曲线都大体按照输出节点是否充电分成两组,但P型与门在求值时刻,其中一组曲线重合程度要低于N型与门。在求值时刻两者的曲线间差异都很明显,也就意味着所含信息量大。N型动态逻辑和P型动态逻辑最大的电流差值分别是65
μA 和103
μA。静态与门则在每次输入变化时对应的曲线组都非常多,最大电流差值为73
μA。而按照前面提到的时序进行工作的差分Domino电路各时刻的电流差值都小于2
μA。
2. 2. 2 2 输入或门的工作电流
同样地,对2输入或门(或非门+ 反相器)的各种输入变化情况进行仿真,得到4种逻辑的或门的工作电流。
对于或门,N型动态电路仍然比P型动态电路的信息泄漏少,差分Domino 或门与与门的电路结构相同。N型动态逻辑和P型动态逻辑的电流最大差值分别约为66
μA和124
μA,静态或门的最大电流差值约等于88
μA。差分Domino电路同样具有最少的信息泄漏。
2. 2. 3 次开启电流的差分
N型动态与门AB从“11”变为“00”,“01”,“10”的电流曲线非常相似(见图4a)。但当把数据稳定区域(图中方框所标出的部分)的曲线放大,可以看到变为“10”的曲线与其他两条之间存在100nA左右的差值(见图4b)。这是由于:AB = 10 时,A 管导通,B管存在次开启电流;而A=0 时,A管截止,其源端电平已经在预充时刻充到了高电平,所以没有次开启。由此可见次开启电流同样是数据相关的。

图3 不同实现形式下2输入与门的工作电流波形

图4 动态与门的静态电流差别示例
3 结 论
CMOS门电路中交流耦合、内部节点充电RC参数与输入和电路状态相关是主要的信息泄漏机制。同时,静态电流同样是数据相关的。另外,本级电路的状态和输入还可以通过输出信号影响到下级电路的短路电流。数据在时钟为高时有效的N型差分Domino电路是一种低信息泄漏的实现形式。