基于流水线体系结构的微控制器的对抗方法

文档序号:6467179阅读:213来源:国知局
专利名称:基于流水线体系结构的微控制器的对抗方法
技术领域
本发明涉及一种用于微控制器的对抗方法,在该微控制器中执行程序指令序列。
本发明特别用于受保护的电子器件如芯片卡的微控制器。
微控制器为其中有至少一个也称为CPU的微处理器的单片集成电路。这些微控制器为容纳在单个硅基体或集成电路芯片上的真正计算机。
因此微控制器芯片卡构成受保护信息载体该载体结构与一计算机相同,即它们可用来存储数据和处理信息。在这里,只要证明进行合法操作,微控制器即可用来鉴别该卡及其持有者的真实性、对信息进行编码和解码并计算电子签名。


图1简示出芯片卡的一微控制器的结构。这类集成在一芯片上的微控制器有一能处理记录在该芯片上的数据和程序的微处理器或CPU。该微处理器用数据总线与不同类型的存储器相联。操作程序和算法一般存储在ROM存储器中,而数据,不管秘密与否,存储在比方说EEPROM型可编程存储器中。RAM存储器中有各种内部处理动作所需工作寄存器。对于有触头的芯片卡来说,一由一接头构成的输入/输出部件确保与外界对话。
由一时钟(CLK)按序进行该微控制器的各项操作。该微控制器还有一电源Vcc和一接地线GND。
微控制器基本上分为两类。现时的大多数微控制器(约90%)基于CISC(复杂指令集计算机)体系结构,在该体系结构中,由一大解码引擎顺序读取和执行指令。但是,当前的趋势是越来越多地使用RISC(精简指令集计算机)体系结构的微处理器,在该体系结构中,平行读取和执行指令。这一体系结构要求集成电路芯片上有若干昂贵的解码引擎,但指令序列的执行速度快得多。特别是,使用所谓的“流水线”方法的RISC体系结构可通过把若干指令分成子步骤后在同一时钟周期中执行若干指令的各步骤而交织这些指令。RISC中的流水线的细节在下文详述。
由于所处理的所有或某些数据是秘密的,因此微控制器对程序的执行必需受到保护。可用所执行程序中集成的数学算法和/或所谓的对抗方法进行这一保护。
对抗方法为这样一种保护方法,它防止程序指令执行过程中所处理的数据在受保护部件外部被翻译。由于微控制器的结构本身它会遭受所谓的功率攻击或差分功率攻击DPA(Differential PowerAttack),从而发生信息泄漏。
图2用芯片的随时钟周期七数而变的电流消耗I曲线示出功率攻击的原理。
当微控制器用一算法执行一由指令序列(指令1、指令2、指令3、...)构成的不管秘密与否的程序时,它将在存储器中寻找所需数据、处理它们后在存储器中写入结果。
通常,不管微控制器为何种体系结构(CISC或RSIC),总是以确定的相同方式执行指令序列。
然后,只要(从微控制器的电源Vcc)读取会使处理中的秘密数据上的信息泄露的微控制器电流消耗,即可进行功率攻击。为了获得这类信息。必需执行同一指令序列若干次。然后可使电流消耗与同一指令执行过程中所处理的数据发生关联。因此微控制器的电流消耗可变成所处理数据的真实证明。
例如,攻击者可如下进行攻击。设一秘密数据项为8位k[i],其中,i从1到8。使用一累加器对i从1到8进行循环Acc=k[i]xork[i]。在循环结束时得到Acc=xor(∑(i=1-8)k[i])。当在该序列(循环)中把电流消耗看作时间的函数时,得出反映微控制器中执行情况的一周期趋势曲线,即在上述例子中,对该循环的8次操作得出8个相同信号。但是,如对这些信号中的每一成分进行比较,就可得出差别、从而找出k[i]秘密上的信息。由于同一循环可执行若干次,因此便于进行观察。对于同一操作序列,卡的电流消耗是相同的,因此可获得所要寻找的信息。
因此消除同一指令序列的电流消耗的重复性变得很重要。这就是对抗方法的目的。
这类对抗方法是公知的,特别是在可使用含有随机变量的程序的软件领域中。这类程序可以以随机方式调用子程序。因此,对于通常调用同一指令序列的重复若干次的同一任务,调用不同子程序造成执行指令的不同序列。从而电流消耗无法与处理中的数据发生关联。
但是,这类软件解决方案执行起来很复杂。事实上需要写入不同子程序,从而在展开时间上和编码大小上的成本高。
本发明的目的是提供一种能消除现有技术的这些缺点的对抗方法。在本发明对抗方法中,在比方说RSIC体系结构的电子部件中按照所谓的流水线方法执行指令序列。
本发明的原理是在指令本身层面上随机、无法复制地执行各指令序列。
本发明特别涉及能执行指令序列的微控制器的一种对抗方法,所述指令按照所谓的流水线方法执行,其特征在于,该方法在相继两指令之间和/或至少一个指令中随机引入至少一个等待时间。
按照一个特征,指令分解成多个子步骤。
按照一特点,这些子步骤包括-获取指令步骤;-对指令进行解码步骤;-指令执行步骤;以及-写入指令结果步骤。
按照一个特征,等待时间在一指令的任何两个子步骤之间随机引入。
按照另一特征,指令可为与复杂逻辑模块如加密算法的子块相应的宏指令。
按照另一特征,等待时间在指令序列执行过程中随机引入若干次。
按照一特征,在一受保护指令序列前,在软件命令后引入等待时间。
按照一特征,通过一由指令解码的电子器件直接负责的非软件设计实施该方法。
按照另一特征,引入可用电子或软件参数静态地或动态地调节等待时间,从而调节同一指令序列的执行的变化性。
按照本发明一实施例,在一RSIC体系结构的微控制器的集成电路芯片中通过流水线操作实施该方法。
本发明最好用于芯片卡类型的任何受保护装置。
本发明的优点是提供一种在集成电路芯片上直接在微控制器层面上实施的机制。从而避免软件解决方案的复杂性。
此外,本发明对抗方法确保在装有这类对抗机制的电子部件上执行任何程序,不管该程序是受保护的还是不受保护的。
事实上是该部件本身而非程序的指令序列,确保了处理中的数据的随机执行和安全性。从而有利地可使程序与部件不发生关联,这在某些应用场合证明是非常有用的。从而同一部件可用于不同程序且不失去其保护性。
从结合附图的如下例示性而非限制性的说明中可清楚看出本发明的其他优点和细节,附图包括图1如上所述简示出一有一微控制器的集成电路芯片;图2如上所述为说明对一受保护电子部件进行功率攻击的方法的曲线图;图3示出一CISC体系结构的现有微控制器对指令进行解码的功能;图4示出一RISC体系结构的现有微控制器对指令进行解码的功能;和图5示出本发明RISC体系结构的微控制器对指令进行解码的功能。
本发明对抗方法基于一般使用在具有RISC体系结构的微控制器中的通过流水线技术的处理指令的原理。
RISC体系结构与CISC体系结构有如下几点不同。
首先,每一指令对应于通过具体的,唯一的电子子模块形式实施的单一逻辑块,从而一指令可在一个时间周期中解码和执行;而CSIC体系结构使用单个电子块顺序处理所有指令。
其次,数据总线与指令总线不同,从而每一时间周期中一指令的解码可独立于存储在存储器中、被其他指令使用的数据。从而可在指令解码的同时在存储器中寻找数据,该指令解码必须对指令进行处理。此外,所有指令的大小必需至少等于外部数据总线的大小,以便直接、毫不延迟地进行指令的解码。
RISC体系结构的微控制器一般有两种模型。
-“斯坦福”(stanford)模型,该模型使用常常称为流水线技术的最佳化指令链,从而可使用非常强大的指令组;-“伯克利”(Berkeley)模型,该模型使用可迅速调用子例行程序、特别适用于实时应用场合的指令链。
本发明特别适用于“斯坦福”模型中提出的流水线技术。这是因为本发明提出一种依赖于这一流水线体系结构的对抗方法。
流水线技术可通过把每一指令分成若干子步骤后平行执行这些子步骤而交织执行若干指令。从而一流水线级定义为同时执行的子步骤组。从而每条指令的时钟周期数的划分与流水线技术级数将成正比。
应该指出,在执行一程序、更简单地说一连串指令时,当指令发生线性执行之外的支线、跳跃、中断及其它时,流水线的功能可分解。
图3和4分别示出流水线CISC体系结构和RISC体系结构的微控制器的现有功能。
指令INSn可为简单指令或与复杂逻辑模块如加密算法子块对应的宏指令,如置换、压缩或扩展结构、非基本数学函数、查表等。
指令INSn最好分解成若干子步骤。示出一分解成4个子步骤的一例,但该例子只是例示性的而非限制性的。
表示“取指令(fetch)”的第一步骤“F”可以在存储器中寻找待解码指令。它将接下来要传给下一级的该指令放置在总线上。
表示“解码(decode)”的第二步骤“D”可以对该指令进行解码,即激活微控制器的可处理这一指令的子模块。
表示“执行(execute)”的第三步骤“E”可以在微控制器中的该子模块中执行指令。
表示“写入(write)”的最后一个步骤“W”可以在总线上写入由微控制器的子模块执行的指令的结果。该结果然后使用在随后的执行中或回到存储器中。
从图3可见,CISC体系结构的微控制器在8个时间周期中只能完成两个指令。
相反,如图4所示,分成4个子步骤的流水线在9个时间周期中能完成6个指令。由于能同时执行若干指令的子步骤,因此总执行时间缩短。
但这样一种体系结构不能免遭功率攻击。这是因为,如果同一指令序列重复若干次,将总是有具有相同电流消耗的,流水线的相同级链。
为了解决由功率攻击造成的问题和防止若干次执行同一指令序列的电流消耗的可复制性,在指令处理过程中随机引入等待时间B(Break)。该等待时间B可在一指令开始时和/或同一指令的任何两子步骤之间随机引入。
该随机等待时间B必要时还可在指令序列执行过程中引入若干次。
图5示出本发明对抗方法的机制。
该随机等待时间B在每一指令序列上改变流水线级而不干扰指令的执行,从而防止电流消耗的可复制性。
本发明方法通过非软件执行、直接由对微控制器指令进行解码的电子模块(硬件)执行。
在其功能上,该方法可用电子或软件装置静态或动态地调整,以便多多少少获得同一指令序列反复执行的可变性。
按照实施本发明方法的一种可能性,等待时间B的引入可决定于以软件方式控制的启动,例如只在要保护的指令序列的执行之前。这样,不必以降低无需特殊保护的指令序列的执行速度为代价。
因此本发明方法可确保指令序列的随机执行即该序列从一次执行到下一次执行的无法复制性并可得出相同功能结果。
为了使指令序列的执行时间不至于过长而失去流水线的主要优点,必需简单定义一妥协方案。
权利要求
1.用于能执行指令序列(INSn)的微控制器的一种对抗方法,所述指令按照所谓的流水线方法执行,其特征在于,该方法在相继两指令(INSn,INSn+1)之间和/或至少一个指令(INSn)中随机引入至少一个等待时间(B)。
2.按权利要求1所述的对抗方法,其特征在于,指令分解成多个子步骤。
3.按权利要求2所述的对抗方法,其特征在于,这些子步骤包括-获取指令步骤(F);-对指令进行解码步骤(D);-指令执行步骤(E);以及-写入指令结果步骤(W)。
4.按权利要求2或3所述的对抗方法,其特征在于,等待时间(B)在一指令(INSn)的任何两个子步骤之间随机引入。
5.按权利要求1所述的对抗方法,其特征在于,指令(INSn)可为与复杂逻辑模块如加密算法的子块对应的宏指令。
6.按上述任一权利要求所述的对抗方法,其特征在于,等待时间(B)在指令序列执行过程中随机引入若干次。
7.按上述任一权利要求所述的对抗方法,其特征在于,等待时间(B)在受保护指令序列前在逻辑命令后引入。
8.按上述任一权利要求所述的对抗方法,其特征在于,通过由一微处理器指令解码的电子器件直接负责的非软件方案实施该方法。
9.按上述任一权利要求所述的对抗方法,其特征在于,用电子或软件参数静态或动态地调节等待时间(B)的引入,从而调节同一指令序列的执行的可变性。
10.按上述任一权利要求所述的方法,其特征在于,在一有一流水线RSIC体系结构的微控制器的集成电路芯片中实施该方法。
11.一种受保护芯片卡类型装置,其特征在于,它包括一能实施按上述任一权利要求所述的对抗方法的电子部件。
全文摘要
本发明涉及能执行指令序列(INSn)的微控制器的一种对抗方法,所述指令按照所谓的流水线方法执行,其特征在于,该方法在相继两指令(INSn,INSn+1)之间和/或至少一个指令(INSn)中随机引入至少一个等待时间(B)。本发明方法用微控制器的电子器件而不用增加软件实施。
文档编号G06F21/55GK1426547SQ0180752
公开日2003年6月25日 申请日期2001年3月16日 优先权日2000年4月6日
发明者N·费伊特 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1