×

分析泄漏功率攻击采用90nm CMOS技术的加密器件

发布时间:2020-06-29 发布时间:
|

      泄漏电流可能被用于攻击加密系统。

      在电子商务与电子银行等应用中,安全要求越来越严格。虽然加密技术提供了强健的算法,但这些算法的物理实现一般会通过器件电气运行中的物理现象,泄漏一些信息,攻击者会利用它来探测密钥。这些“旁路”(side-channel)攻击利用加密实现硬件模块所泄漏的信息。该信息可能包含数据与功耗或时序之间的相互关系。一种广为报道的强大旁路攻击方法是微分功率分析(differential-Power analysis),因为它能让攻击者用现售元件做出的测量设置探测出密钥。攻击者依据的事实是,标准CMOS逻辑的动态功耗主要依赖于输入数据。例如,考虑一个简化的CMOS反相器模型,它以一只接地电容作为自己的负载。该模型只有当输出从0至1的过渡时才从电源吸入电流。在1至0的过渡时,输出电容释放能量,而从0至0和1至1的过渡时电路不消耗能量。最近工程师们提出了很多同时采用软件和RTL(寄存器传输级)的对策,以阻止通过动态功率分析的攻击。

      历史上,CMOS电路功耗的主要来源是CMOS开关活动造成的动态功耗。动态功耗是电源电压的二次方,而对时钟频率的依赖则是线性的。CMOS电路功耗的另外一个来源是CMOS器件关断状态下寄生电流所造成的泄漏功率。这种泄漏功率很快将达到可与动态功耗相比较的量级。CMOS设计中的泄漏电流主要取决于输入数据的矢量,工程师使用这个特性,在电路的等待周期内减少泄漏功耗。他们还提出了可以预测在CMOS电路中分别产生最大和最小泄漏电流的输入矢量模型。

      由于泄漏电流依赖于CMOS逻辑中的输入值,你可以通过测量泄漏电流,提取出一个加密核心中有关加密数据的信息。对一个采用RTL仿真的简单加密核心,通过分析泄漏电流与输入数据的依赖关系,就可以用统计分析技术发动攻击。这些技术类似于微分功耗分析技术,可以提取出从泄漏电流测量开始的密钥,原理上更容易实现。

      数据依赖性

      泄漏电流主要来自反向结、亚阈值以及门隧道电流。对于一个偏置在弱反向区的MOS晶体管,亚阈值电流是最重要的因素。标准CMOS门的设计者会使用串并联连接组成的上拉和下拉网络。设计者还为串并联配置的MOS器件开发了泄漏电流模型。

      为了解标准CMOS门泄漏电流对数据的依赖性,研究人员对意法半导体公司90 nm CMOS090工艺的标准单元作了仿真。这些仿真采用了代工厂针对Spectre晶体管级仿真器所提供的模型,用五种温度来验证泄漏电流与温度的关系(表1)。如果对表中泄漏电流按升序排序,则顺序与温度的变化相同。例如,对一个双输入与非门,逻辑输入0或1在所有温度值下都产生最大的泄漏电流。这种功率分析方法能揭示出一个加密核心的输入与产生最大或最小泄漏电流之间的关联。现在有资料描述最大、最小和其它算法,用于估算泄漏电流。

      对称密钥算法的基本部件是S盒(substitution box)。当使用分组密码时,一般用S盒来掩盖原文本与加密文本之间的关系。S盒在N位输入字和M位输出字之间提供了一种组合映射。这些盒子(如有四输入和四输出)一般都使用固定表。

      Cadence公司的研究人员采用一个真值表和意法半导体公司的90 nm CMOS工艺库,对一种S盒做综合,这款S盒有四个输入和四个输出(表2)。然后研究人员对S盒的所有可能的输入组合作了大量泄漏电流仿真。如果按泄漏电流的升序对表中的输入组合作排列,则结果与温度的变动无关。于是,在仿真或测量中可以使用任何热系数,只要它保持恒定不变。可以将异或门连接到一只S盒的输入端,实现一个简单加密核心的组合器件。异或门将任何原文本文字与密钥预先混合,S盒加密结果。你可以针对一个加密核心的组合部分,对所有密钥值和输入值作大量的泄漏电流仿真。如果将泄漏电流值升序排列,则输入与输出的次序对每个密钥都是相同的,意味着泄漏电流与输入值无关。这些仿真还显示出,对不同密钥和相同输入值,泄漏电流值有差异。异或门对输入变化很敏感,它是这种差异的根源。S盒不是过错方,因为对相同的输入,测得的电流总是相同的。

图1,为一个组合设计增加一些电阻,就可以构建出一个简单的加密核心。

[page]

      可以在一个组合设计中增加电阻,构成一个简单的加密核心(图1)。表3是输入组合的电阻泄漏电流,它表示出泄漏电流与一个二进制字中1的数量的直接关系。对整个加密核心的仿真给出了原文本与密钥的所有可能组合(表4)。该表以升序对泄漏电流排序,并按输入密钥对其分组,输入栏是S盒的输入,而输出栏是加密核心的输出。

      泄漏电流攻击

      研究人员一般按加密算法,根据被动或主动弱点的实现类别,将攻击区分为数学类和实现类。研究人员试图找出能制约这些强大攻击的措施。被动攻击得益于旁路信息,通过测量一些物理量可以搜集到它(图2)。主动攻击有更高的扩散危害,因为它们会带来造成错误计算的故障,从而暴露密钥。

图2,被动攻击得益于旁路信息,通过测量一些物理量就可以获得这些信息。

      最常见的旁路攻击渠道就是一款器件的功耗。这些类型的攻击均采用简单功率分析、微分功率分析以及相关性功率分析。在简单功率分析攻击时,攻击者会使用一次测量得到的旁路信息,直接确定一个密钥或部分密钥。微分与相关性功率分析是统计性攻击,需要进行大量测量和数据采集。相关性功率攻击过程包括采集数据、分析所获得数据、使用被攻击器件的一种所谓假设模型。

      图3,泄漏功率分析攻击的结果表明,通过泄漏功率数据,除0000密钥以外,所有密钥都清晰可辨。

      你可以用一个统计分析工具来探测加密核心的密钥。另外,还有一种攻击方法,是通过计算所获泄漏电流的矢量与采用一个假设密钥的逻辑矢量之间的相关系数。该方法使用S盒中输入的汉明权重,或一个二进制字中1的个数作为逻辑矢量。从一个密钥假设可以获得这个权重。图3给出了计算出的相关系数。橙色方块表示正确的密钥假设,绿色圆表示一个随机密钥假设。采用这种攻击的结果是,除了0000密钥以外,所有密钥都可清晰辨识。研究人员正在探讨0000密钥结果不同的原因。

      这个初步研究表明,通过泄漏电流去揭示密钥存在着实际的可能性。采用相关系数作攻击的结果表示,泄漏功率分析可能成为你设计加密核心时应考虑的一个问题,尤其是对那些采用小于0.1μm逻辑门的核心,它们有很高的泄漏功耗。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
疫情之下产业链遭遇倒春寒.部分MLCC价格翻倍