用于检测故障的逻辑器件的制作方法

文档序号:16147124发布日期:2018-12-05 16:39阅读:233来源:国知局

本申请要求于2017年5月24日提交的法国专利申请第1754607号的优先权,该申请由此通过引用合并于此。

本专利申请涉及电子芯片,并且在特定实施例中涉及防止故障的注入的电子芯片。

背景技术

包含机密信息的电子芯片(诸如银行卡芯片)易于受到旨在确定芯片的操作方式和从中提取机密信息的攻击。

一种流行的用于侵入由集成电路处理的信息的方法包括检测在处理该信息时使用的电路区域。因此,集成电路被激活或放置在功能环境中并且数据被引入作为输入。在处理数据时,缺陷或故障例如通过激光、电磁信号或局部施加高电压而被注入到电路中。对电路的输出的分析可以使得能够确定处理数据的电路区域。在找到这些区域之后,黑客可以将攻击集中在这些区域上,以确定所处理的机密数据。

如果检测到这样的攻击,则可以触发对抗措施。这种对抗措施是例如擦除机密信息,将电路重置为零,和/或递增计数器,使得一旦检测到一定数目的故障,就可以确定性地禁用集成电路。

期望能够提供一种能够检测这些类型的攻击的芯片。



技术实现要素:

一个实施例提供了一种用于检测故障的器件,包括:适合于以时钟的节奏移位在移位寄存器的连续单元中在两个逻辑电平之间交替的二进制信号的移位寄存器;以及适合于比较被包含在寄存器的至少一对单元中的值的第一逻辑电路。

根据一个实施例,第一逻辑电路适合于比较被包含在连接到第一、第二和第三输入的三个连续单元中的值,并且适合于将在第一输入中接收的值与在第二输入中接收的值相比较,并且适合于将在第二输入中接收的值与在第三输入中接收的值相比较。

根据一个实施例,寄存器的连续单元中的倒数第一单元连接到第一逻辑电路的第三输入,寄存器的倒数第二单元连接到第一逻辑电路的第二输入,并且寄存器的倒数第三单元连接到第一逻辑电路的第一输入。

根据一个实施例,第一逻辑电路包括两个xor门,一个xor门具有构成逻辑电路的第一和第二输入的输入,并且另一xor门具有连接到逻辑电路的第二输入的输入和构成逻辑电路的第三输入的输入;以及第二逻辑电路,其适合于在两个xor门的输出具有等于低逻辑电平的值的情况下提供第一值并且在其他情况下提供第二值。

根据一个实施例,第二逻辑电路包括两个反相器,每个反相器具有连接到xor门之一的输出的输入;以及or门,其输入连接到两个反相器的输出,or门的输出对应于第一逻辑电路的输出。

根据一个实施例,第二逻辑电路包括and门,and门的输入连接到xor门的输出,and门的输出对应于第一逻辑电路的输出。

根据一个实施例,移位寄存器由连接到同一第一时钟信号的d型触发器组成,除了寄存器的最后的触发器之外的每个触发器的输出连接到下一触发器的d输入。其他实施例可以使用不同类型的触发器,诸如例如反转触发器。

根据一个实施例,寄存器的第一触发器的互补输出连接到其d输入。

根据一个实施例,寄存器的第一触发器的d输入连接到频率等于第一时钟信号的频率的一半的第二时钟信号。

根据一个实施例,第一时钟信号的频率在50mhz和100mhz之间。其他频率也是可能的。

根据一个实施例,移位寄存器是环形寄存器。

一个实施例提供了一种包括诸如上文中的用于检测故障的多个器件的电子芯片。在一些实施例中,电子芯片可以在单个单片半导体衬底中实现。

根据一个实施例,用于检测故障的器件占据芯片的面积的3%和10%之间。

根据一个实施例,该器件检测使用激光、电磁信号或局部施加高电压(例如,正常工作电压的至少两倍)向器件中注入的故障。

附图说明

在结合附图给出的特定实施例的以下非限制性描述中将详细阐述这些以及其他特征和优点,在附图中:

图1示意性地示出了用于检测故障的逻辑器件的一个实施例;

图2示出了一个示例性寄存器;

图3示出了在图1的器件中使用的比较器的一个示例;

图4示出了在图1的器件中使用的比较器的另一示例;以及

图5表示图1的器件在芯片上的示例性放置。

具体实施方式

相似的元件在各个图中已经用相似的附图标记来指定,并且此外,各种图不是按比例绘制的。为了清楚起见,仅对用于理解所描述的实施例的元素进行了表示和详述。

除非另有相反规定,否则表述“大约”和“数量级”表示在10%以内,优选地在5%以内。

图1示意性地图示了用于检测故障的逻辑器件的一个实施例。该器件包括移位寄存器2和比较逻辑电路4。

在图1中示出并且在下文中结合图2更详细描述的示例性移位寄存器2包括8个单元。寄存器2通常包括8、16、32或64个单元。具有不同数目的单元的移位寄存器也是可能的。移位寄存器2的单元包含其值被配置为在低逻辑电平“0”与高逻辑电平“1”之间交替的比特。寄存器2与时钟信号clk相关联。

以信号clk的节奏(即,与clk同步),例如在每个上升沿处,被包含在每个单元中的值被移位到下一个单元中,第一单元的内容在每个时钟周期处取其先前值的相反值。

在图1所示的时刻,被包含在寄存器2的单元中的值是“10101010”。在时钟信号的下一上升沿处,被包含在寄存器的单元中的值变为“01010101”。

电路4是比较逻辑电路,其适用于验证寄存器2的连续单元确实包含交替的值并且尚未通过故障的注入而被修改。

在图1的示例中,电路4具有链接到寄存器的相应输出7、9和11的三个输入6、8和10,以及输出12。电路4一方面比较输入6和8的值,另一方面比较输入8和10的值。电路4的输入连接到寄存器2的最后三个单元的输出。更确切地说,输入10连接到寄存器的最后的单元的输出11,输入8连接到倒数第二单元的输出9,并且输入6连接到倒数第三单元的输出7。

如果被包含在最后三个单元中的值在值0和1之间交替,也就是说,如果被包含在这三个单元中的值是“1、0、1”或“0、1、0”,则电路4的输出12的值等于第一值,例如0。

在如前所述的攻击期间,故障被注入,并且然后寄存器的一个或多个单元的值可以被修改。因此,被包含在若干连续单元中的值是相同的。当寄存器不断地改变其单元中包含的值时,故障到达电路4的输入。电路4的输出12的值然后取第二值,例如1。

例如,如果被包含在寄存器的单元中的值是图1所示的那些值,则插入故障可以将被包含在第三单元中的值从1改变为0。被包含在寄存器的单元中的值因此是“10001010”。在时钟clk的三个上升沿之后,被包含在寄存器的单元中的值已经被移位,并且因此是“01010001”。因此,电路4的输入6、8和10分别是0、0和1。两个连续值相等。电路4的输出取第二值,表示检测到故障。

时钟信号clk的频率优选地是与本文中描述的用于选择故障的器件被插入其中的系统兼容的最高可能频率。这个频率可以低于100mhz,例如在50mhz和100mhz之间。因此,寄存器中的故障非常迅速地到达其值被指派给电路4的寄存器的单元。

作为变型,比较电路4可以比较被包含在寄存器2的单元中的不同数目的值。例如,电路可以只比较被包含在寄存器的最后两个单元中的值或者寄存器的最后四个单元上的值。其他实现也是可能的。

作为变型,电路4可以将被包含在最后的单元中的值与寄存器的任何其他单元的值相比较。例如,在具有八个单元的寄存器的情况下,电路4可以将被包含在第八个单元(也是最后的单元)中的值与被包含在第三单元中的值进行比较(应当不同)或者与被包含在第二单元中的值进行比较(应当相同)。

增加要在给定的时刻比较的值对的数目使得故障检测更快,但是器件因此占用更大的面积。

作为变型,移位寄存器可以是环形寄存器,其已经被初始化使得每个单元包含与被包含在前一单元中和下一单元中的值不同的值。在时钟clk的每个周期处,被包含在寄存器的单元中的值被移位一个单元,被包含在最后的单元中的值被移位到第一单元。

在环形寄存器的情况下,连接在电路4的输入处的单元可能不是寄存器的最后的单元,并且可以位于寄存器的任何级别。例如,在具有八个单元的寄存器的情况下,连接到电路4的输入的三个单元可以是第二、第三和第四单元。

图2示出了由八个d型触发器13形成的示例性八单元寄存器2。

每个触发器13具有两个输入:以二进制信号形式接收数据项的d输入和接收时钟信号clk的输入。触发器13还具有两个互补的q和二进制输出。在时钟信号的每个上升沿处,q输出取d输入的值,并且输出的值取d输入的值的互补值。

寄存器2由连接到同一时钟信号clk的八个触发器13形成。每个触发器13的d输入连接到前一触发器的q输出,不同之处在于,第一触发器的d输入连接到其输出。第一触发器13的q输出的值在时钟信号的每个上升沿处在0到1之间交替。

在图2的示例中,寄存器的最后三个触发器的q输出构成寄存器的输出7、9和11。

作为变型,第一触发器的d输入可以接收频率是时钟信号clk的频率的一半的时钟信号。

图3示出了具有输入6、8和10以及输出12的示例性电路4。

这里,电路4包括两个异或或者xor门14和16。xor门14的输入对应于电路4的输入6和8,并且xor门16的输入对应于电路4的输入8和10。每个xor门14和16的输出连接到反相器的输入。更确切地说,门14的输出连接到反相器18的输入,门16的输出连接到反相器20的输入。两个反相器18和20的输出连接到or门(或门)22的输入。or门22的输出构成电路4的输出12。

如果输入6、8和10等于“0、1、0”或“1、0、1”,则电路4的输出12等于0,并且在其他情况下电路4的输出12等于1。电路4的输出处的值1对应于检测到故障。

图4示出了具有输入6、8和10以及输出12的另一示例性电路4。

这里,电路4包括两个异或或者xor门24和26。xor门24的输入对应于电路4的输入6和8,并且xor门26的输入对应于电路4的输入8和10。xor门24和26的输出连接到与门(and门)28的输入。and门28的输出构成电路4的输出12。

如果输入6、8和10等于“0、1、0”或“1、0、1”,则电路4的输出12等于1,并且在其他情况下电路4的输出12等于0。电路4的输出处的值0对应于检测到故障。

图5表示由未示出的多个逻辑部件块组成的芯片的部分21。诸如结合图1描述的故障检测器件被插入在这些逻辑部件块之间。表示了六个相同的结构,每个结构包括两个用于检测故障的器件。

每个器件包括由黑色矩形表示的逻辑电路4和具有八个单元的寄存器,每个单元由空白矩形表示。例如,每个单元是d型触发器13。更确切地说,每个触发器13和每个电路4由在部分21中形成的若干晶体管组成。

每个电路4和相应的触发器13通过连接36而连接。触发器13通过连接36串联链接。电路4到三个连续触发器13的输出的连接仅被部分表示。更确切地说,仅表示电路4与寄存器的最后的单元之间的连接38。

未示出的多种其他组件形成在用于检测故障的器件周围。用于检测故障的器件表示例如在芯片面积的3%和10%之间,例如大约5%。用于检测故障的器件分布在芯片的整个逻辑区域上,使得可以在整个芯片上定位故障注入攻击。

增加寄存器中的单元的数目,即触发器的数目,可以增加由单个电路保护的面积。

这里已经描述的用于检测故障的器件的优点在于,它是完全数字化的并且易于在任何类型的芯片上实现。而且,这样的器件消耗的能量很少,并且难以被准确地找到。

已经描述了特定实施例。对于本领域技术人员来说,多种变型和修改将是很清楚的。特别地,电路4和寄存器2不限于结合图2、3和4描述的示例,并且可以用具有相同特征的任何其他电路和寄存器来替换。

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