防止通过功率分析进行窃听的电子电路及防止窃听的方法与流程

文档序号:11620872阅读:286来源:国知局
防止通过功率分析进行窃听的电子电路及防止窃听的方法与流程

本发明是有关于一种加密装置,且特别是有关于一种防止通过对加密装置进行功率分析而对密码金钥进行确定的应对措施。



背景技术:

临近20世纪末,已发现来自加密装置(例如,智能卡读取器)的信息可通过对所述装置的功耗进行分析而被非入侵性地泄露。已知的功率分析方法例如有简单功率分析(simplepoweranalysis,spa)及差分功率分析(differentialpoweranalysis,dpa)。简单功率分析涉及对装置所使用的电流随时间而变化的曲线图进行目视检查。举例来说,当互补金属氧化物半导体(complementarymetaloxidesemiconductor,cmos)逻辑电路自逻辑0状态改变至逻辑1状态时,会自电源供应器绘制出显著量的电流,然而在相反的情形中绘出的量则可忽略不计。相同地,微处理器将对于不同的命令具有不同的功耗分布。因此,在来自实行数据加密标准(dataencryptionstandard,des)加密的智能卡的功率跟踪中,可清楚地看见不同的轮次(rounds)。同样,rsa实作的平方运算及乘法运算可被区分出,因此使得窃听者(eavesdropper)能够计算私密金钥。

差分功率分析对加密装置的功耗进行统计分析。差分功率分析在许多轮次内对功耗进行记录并可接着移除将会防止基于简单功率分析进行分析的噪声。

一种防止功率分析的方法是基于对计算进行隐藏。此方法包括将加密装置设计成无论所实行的操作如何均具有均匀的或随机的功耗,例如通过对泄露信号(leakagesignal)添加随机性或通过对计算信号进行求反以实现均匀的功耗来实现。

用于保护加密装置的另一种方法是通过对计算进行遮罩(masking)。在此方法中,将加密装置设计成对计算添加随机性(例如,与所述计算一起实行其他不必要的计算)以使得即使在对相同的数据进行分析时,每一轮次的功耗也不同。

其他方法则添加随机噪声和/或使时脉信号随机化,以使得更难通过差分功率分析来识别计算。

通常,保护加密装置的每一种方法均与一定程度的复杂性相关联,且可在投入足够的努力时被攻克。因此,需要寻找更复杂的方法来防止所述方法被破解。



技术实现要素:

本发明提供一种电子电路及方法,所述电子电路及方法防止通过对电路的功耗进行分析而破译对一组二进制位(bits)实行的逻辑计算。所述方法包括将所述计算划分成两个或更多个阶段,以使得所述计算在两个或更多个时脉周期(clockcycle)中而非在一个时脉周期中实行。在第一周期中,将所述二进制位的一部分提供至所述电路的逻辑单元并以随机值取代所述二进制位中的另一部分。所述逻辑单元自局部数据计算第一结果。接着在接下来的一个或多个周期中,将所述被取代的二进制位被取代前的正确数据提供至所述逻辑单元。所述逻辑单元利用所述正确数据计算其他结果。所述其他结果被提供至存储元件,以用作所述电路的下一状态的一组二进制位。

在本发明的一实施例中,在第一周期中,上述的电路随机选择所述二进制位中的一半或周期数目的倒数,而以随机值取代。作为另外一种选择,所述电路为所述第一周期及其他周期选择随机数目的二进制位,而以随机值取代。在本发明的某些实施例中,在接下来的一个或多个周期中,自中间存储器提供所述二进制位,以使得可通过所述第一周期中所述逻辑单元的计算而改变所述存储元件。

因此,根据本发明的示例性实施例提供一种防止通过功率分析而进行窃听的电子电路,所述电子电路包括:存储元件,用于存储对应多个正确值的一组二进制位;逻辑单元,用于处理所述所存储的一组二进制位并在两个或更多个周期之后提供下一状态的一组二进制位,以及随机二进制位产生器。在第一周期中,所述所存储的一组二进制位中的某些二进制位被正确地提供至所述逻辑单元且某些二进制位被随机值取代,且在最后周期中,所有所述存储的一组二进制位被正确地提供至所述逻辑单元。随机二进制位产生器为所述所存储的一组二进制位中的每一二进制位产生随机二进制位,以确定欲正确地提供所述所存储的一组二进制位的哪些二进制位、以及确定在每一周期中欲取代哪些二进制位。

在本发明的一实施例中,上述的电路是通过两个时脉信号驱动,所述两个时脉信号中的一者的频率是另一者的一半。视情况,所述电路包括与存储元件相关联的中间存储器,所述中间存储器用于存储所述所存储的一组二进制位的正确值以供在所述最后周期中使用。在本发明的示例性实施例中,所述电路包括与所述存储元件以及随机二进制位产生器相关联的用于所述所存储的一组二进制位中的每一二进制位的选择器;其中所述选择器由所述随机二进制位控制以在所述正确值与随机值之间进行选择。视情况,所述所存储的一组二进制位是以加密形式存储于所述存储元件中。在本发明的示例性实施例中,所述所存储的一组二进制位是在被提供至所述逻辑单元时进行解密。视情况,在第二周期中,对应所述随机值的所述被取代的二进制位更被对应的正确值取代并被提供至所述逻辑单元。在本发明的示例性实施例中,所述二进制位中的一半在所述第一周期中被随机值取代。视情况,随机数目的二进制位在所述第一周期中被随机值取代。在本发明的示例性实施例中,被随机选择成被取代的二进制位被设定为对应的所述正确值的相反值。

本发明还提供一种防止电子电路通过功率分析而被窃听的方法,所述方法包括:将对应多个正确值的初始的一组二进制位存储至存储元件;为所述所存储的一组二进制位中的每一二进制位产生随机二进制位;在第一周期中,将来自所述存储元件的二进制位中的某些二进制位正确地提供至逻辑单元并以随机值来取代所述二进制位中的其余二进制位;在最后周期中,将所有所述存储的一组二进制位正确地提供至所述逻辑单元;在所述最后周期中处理所有所述存储的一组二进制位,以提供下一状态的一组二进制位。

在本发明的一实施例中,上述的电路是通过两个时脉信号驱动,所述两个时脉信号中的一者的频率是另一者的一半。视情况,所述方法包括存储用以供在所述最后周期中使用的所述所存储的一组二进制位的正确值至与所述存储元件相关联的一中间存储器。在本发明的示例性实施例中,所述方法还包括由用于所述所存储二进制位中的每一二进制位的选择器根据所述随机二进制位在所述正确值与随机值之间进行选择。视情况,存储所述初始的一组二进制位的步骤还包括加密所存储的一组二进制位。在本发明的示例性实施例中,在所述最后周期提供所有所述存储的一组二进制位至所述逻辑单元的步骤还包括解密所述所存储的一组二进制位。视情况,在所述最后周期提供所有所述存储的一组二进制位至所述逻辑单元的步骤还包括在所述第一周期自所述存储元件获得所述多个二进制位的一部分并以对应的正确值取代在所述第一周期已被所述多个随机值取代的所述多个二进制位的其余部分。在本发明的示例性实施例中,所述二进制位中的一半在所述第一周期中被随机值取代。视情况,随机数目的二进制位在所述第一周期中被随机值取代。在本发明的示例性实施例中,被随机选择成被取代的二进制位被设定为对应的所述正确值的相反值。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据本发明的示例性实施例,显示用于对加密装置实行功率攻击的系统的示意图。

图2是根据本发明的示例性实施例,显示加密装置的逻辑电路的示意图。

图3是根据本发明的示例性实施例,显示加密装置的两二进制位式逻辑电路(twobitlogiccircuit)的示意图。

图4是根据本发明的示例性实施例,显示加密装置的增强型逻辑电路的示意图。

图5是根据本发明的示例性实施例,显示逻辑信号及功耗随时间变化的示意图。

图6是根据本发明的示例性实施例,显示一种分两个周期实行逻辑计算的方法的流程图。

图7是根据本发明的示例性实施例,显示也对下一状态进行遮罩的加密装置的增强型逻辑电路的示意图。

图8是根据本发明的示例性实施例,显示也对下一状态进行遮罩的加密装置的另一增强型逻辑电路的示意图。

附图标记说明:

100:系统;

110:加密装置;

120:智能卡;

130:电脑;

140:示波器;

150:功率输入;

160:所记录信号;

200、300、400:逻辑电路;

210、310、410:逻辑单元;

220、320、420:存储元件;

230:外部输入值;

360、370、380:时间线;

440:随机二进制位产生器;

450:指示器;

460:随机串流;

470:中间存储单元;

480:异或门;

500:示意图;

510:时脉频率clk;

520:时脉频率的一半clk/2;

530:信号;

540:下一状态二进制位;

550:信号;

560、570:时间线;

600:方法;

610、620、630、640、650:步骤;

700、800:增强型逻辑电路;

710、720:异或门;

b1、b0:串流噪声;

clk:时脉信号;

clk:时脉频率;

clk/2:时脉频率的一半;

l0、l1:选择器;

n0、n1:下一状态二进制位;

r0、r1、ri:随机二进制位;

s0、s1、sn:触发器。

具体实施方式

图1是根据本发明的示例性实施例,显示用于对加密装置110实行功率攻击的系统100的示意图。在本发明的示例性实施例中,可使用示波器140或其他功率测量装置来监测加密装置110的功率输入150。视情况,加密装置110可为卡片读取器(例如,用于读取智能卡120)、电路中的芯片或其他实作形式。

在本发明的示例性实施例中,通用电脑130被程序设计为与加密装置110进行通信,例如将指令提供至加密装置110并接收未经加密的交易信息(transactioninformation)。视情况,在使用期间,加密装置110例如自智能卡120读取经加密信息并将未经加密信息提供至电脑130以实行交易。在本发明的示例性实施例中,示波器140(oscilloscope)监测加密装置110的功耗并将所记录信号160提供至电脑130以用于分析。视情况,基于来自加密装置110及/或示波器140的信息,电脑130可确定在对所述信息进行加密时使用的密码金钥或其他机密信息。

图2是根据本发明的示例性实施例,显示加密装置110的逻辑电路200的示意图。在本发明的示例性实施例中,逻辑电路200包括存储元件220(触发器s0…sn)及组合逻辑单元210,存储元件220用于存储电流值/状态,组合逻辑单元210接受来自存储元件220的数据并计算下一值/状态,所述下一值/状态被存储回至所述存储元件220。在本发明的示例性实施例中,逻辑电路200在初始时被提供以外部输入值230(例如,自智能卡读取的值)。视情况,逻辑电路200通过自外部输入值230产生几代(generations)下一值并接着将经处理/经解密的值例如输出至电脑130而实行一个或多个处理周期。

图3是根据本发明的示例性实施例,显示加密装置110的两二进制位式逻辑电路300(twobitlogiccircuit)的示意图。在本发明的示例性实施例中,逻辑电路300包括存储元件320及组合逻辑单元310,存储元件320具有两个触发器(s0及s1)以用于存储当前状态,组合逻辑单元310在此种情形中将存储值递增1并将递增后的值作为下一状态而存储回至存储元件320中。时间线360示出驱动逻辑电路300时脉信号clk的时脉值(clockvalue),且时间线370及380分别示出对于下一状态及当前状态而言存储于存储元件320中的值。在此种情形中,自0至3进行计数的简单计数器由逻辑电路300来实作。

在本发明的示例性实施例中,存在两个易受功率攻击且可用作逻辑电路(例如200及300)的内容的潜在漏洞(potentialleak)的位置。第一位置是在对下一值/状态进行计算期间来自逻辑单元(例如210、310),且第二位置是在更新存储器时(例如,在将下一值/状态存储回至存储元件(例如220、320)时)。在本发明的实施例中,为了防止窃听者利用功率分析来确定逻辑电路的当前内容,所述计算被分割成两个或更多个周期。

图4是根据本发明的示例性实施例,显示加密装置110的增强型逻辑电路400的示意图。在本发明的示例性实施例中,增强型逻辑电路400包括具有两个或更多个触发器(s0、s1...si...sm,为简明起见仅示出s0及s1)的存储元件420。逻辑电路400也包括组合逻辑单元410,组合逻辑单元410因应于其输入而提供下一状态二进制位n0、n1...ni...nm(为简明起见仅示出n0及n1)。

在本发明的示例性实施例中,逻辑电路400包括随机二进制位产生器440,随机二进制位产生器440如存储元件420一样提供m个随机二进制位(r0、r1...ri...rm)。视情况,具有为“零”的值的随机二进制位ri表示触发器si存储的二进制位将在第一周期中被传递至逻辑单元410,而具有为“一”的值的随机二进制位ri表示触发器si存储的二进制位将仅在第二周期中被传递至逻辑单元410。随机二进制位ri随机选择触发器s0至sm存储的二进制位中的1个或多个二进制位在第一周期中通过组合逻辑单元410进行处理且选择其余二进制位仅在第二周期中通过组合逻辑单元410进行处理。视情况,随机二进制位产生器440可提供随机二进制位序列(randombitsequence),在所述随机二进制位序列中所述二进制位的一半为“零”,以使得所述二进制位的一半将在第一周期中得到处理且接着所有所述二进制位将在第二周期中得到处理。此将通过组合逻辑单元410进行处理的计算分割成两个周期并防止所述计算通过功率分析而被破译。在本发明的某些实施例中,所述计算可被分割成多于两个周期。

在本发明的示例性实施例中,对于每一触发器si存储的二进制位均提供选择器li(l0及l1示出于图4中)。视情况,当随机二进制位ri为“零”时,所述选择器li将触发器si存储的二进制位的正确值传递至组合逻辑单元410,然而当ri为“1”时,则在第一周期中,随机值(ri,例如r0及r1示出于图4中)通过异或门480而自随机串流460提供至组合逻辑单元410,且在第二周期中,触发器si存储的二进制位被传递至组合逻辑单元410。随机串流460可包括串流噪声b1与串流噪声b0。视情况,所述随机值是与由随机二进制位产生器440所提供的相同的(ri)或者其可来自不同的随机二进制位产生器。相同地,被随机选择成被取代的二进制位可被设定为正确值的相反值(例如,以“一”替代“零”、及以“零”替代“一”)。在本发明的示例性实施例中,增强型逻辑电路400包括指示器450,指示器450为第一周期提供为“1”的值且为第二周期提供为“0”的值。视情况,在第一周期中,所述为“1”的值使得随机值能够被提供至选择器li并接着在ri具有为“1”的值时被提供至组合逻辑单元410。在本发明的示例性实施例中,中间存储单元470被设置成在ri为“1”的情形中保存将于第二周期被传送出的触发器si存储的二进制位的值。

图5是增强型逻辑电路400的逻辑信号及功耗随时间变化的示意图500,且图6是根据本发明的示例性实施例的一种在两个周期中实行逻辑计算的方法600的流程图。在本发明的示例性实施例中,增强型逻辑电路400使用2个时脉信号,这两个时脉信号中的一者具有时脉频率clk510且一者具有上述频率的一半clk/2520。视情况,所述电路中的某些元件以频率clk510运作而某些则以上述频率的一半clk/2520运作(在两个周期内)。在本发明的示例性实施例中,逻辑电路400将这些触发器si存储的初始的一组二进制位的值接受至存储元件420中(步骤610)。信号550示出增强型逻辑电路400中的示例性的这些触发器si存储的一组二进制位。视情况,随机二进制位产生器440通过信号530而产生如图所示的随机的一组二进制位ri,以确定哪些触发器si存储的二进制位将在第一周期中使用且哪些二进制位将仅在第二周期中使用(步骤620)。

在第一周期中,将某些触发器si存储的二进制位自存储元件420传递至组合逻辑单元410并以随机值取代某些二进制位(步骤630)。随机二进制位ri确定在第一周期中传递哪些二进制位及取代哪些二进制位。在第二周期中,将所有二进制位自存储元件420传递至组合逻辑单元410(以真实二进制位(realbits)取代随机二进制位)(步骤640)。视情况,在第二周期中,在组合逻辑单元410中消耗大量功率的自0变至1的二进制位减少,原因在于约一半已经在前一周期中得到改变。组合逻辑单元410的处理结果用作下一状态二进制位ni(540)而被存储回至存储元件420中(步骤650)。

在本发明的示例性实施例中,时间线560示出逻辑电路的标准功率使用量,与此相对,时间线570示出被在两个周期中随机分割成两部分的功耗。在第一周期中正确地设定所述二进制位中的某些二进制位,且在第二周期中仅修正某些二进制位。

图7是根据本发明的示例性实施例,显示也对下一状态二进制位ni(540)进行遮罩的加密装置110的增强型逻辑电路700的示意图。除增强型逻辑电路400如以上所阐释仅防止对组合逻辑单元410进行功率分析而不防止对存储元件420进行功率分析以外,增强型逻辑电路700相似于增强型逻辑电路400。在增强型逻辑电路700中,使用一对互连的异或门(710、720)对存储于存储元件420中的数据二进制位进行加密及解密。视情况,异或门710将随机遮罩应用至下一状态二进制位ni,以使下一状态二进制位ni在存储于存储元件420中时被随机地加密,以防止利用功率分析进行窃听。相同地,异或门720应用所述随机遮罩以在触发器si存储的二进制位到达组合逻辑单元410时对触发器si存储的二进制位进行解密,以使正确的数据得到处理。

图8是根据本发明的示例性实施例,也对下一状态进行遮罩的加密装置的另一增强型逻辑电路800的示意图。除其未实作有中间存储单元470以外,增强型逻辑电路800相似于增强型逻辑电路700。

在本发明的示例性实施例中,增强型逻辑电路400可被设计成以与上述相似的方式(例如,在第一周期中将所述二进制位中的某些二进制位改变成正确值、在第二周期中将某些二进制位改变成正确值、及在第三周期中将某些二进制位改变成正确值)支持三个或更多个周期。视情况,每一周期可引入相同数目的正确二进制位。

还应领会到,上述方法及设备可以许多方式加以改变,包括省略或添加步骤、改变步骤的次序及所使用装置的类型。应领会到,不同的特征可以不同的方式加以组合。具体而言,以上在特定实施例中示出的所有特征并非均为本发明的每一实施例所必需的。以上特征的其他组合也被视为处于本发明的某些实施例的范围内。所属领域的技术人员还将领会到,本发明并非仅限于已在上文中具体示出并阐述者。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1