安全模块的篡改检测器的制作方法

文档序号:14271061阅读:159来源:国知局
安全模块的篡改检测器的制作方法

本发明针对电子电路,并且更具体地说,针对用于安全模块的篡改检测电路。



背景技术:

篡改模块包括例如在检索、更改或搀加敏感信息、产品、封装或系统的意图的情况下对模块的非授权访问。例如,受保护的对象可以是诸如用于与银行卡一起使用的支付终端或自动提款机的受保护的电子模块、用于与包括身份数据和其它个人信息的智能卡一起使用的身份验证终端、或密码模块。例如,受保护的对象可以处于电子保护套、房间、保险箱或地下室中。防止篡改的安全措施包括使得非授权访问更加困难的物理特征,包括诸如门、盖子、套、封装或模块周围的包装的封闭件。篡改的检测通常包括对受保护的物理特征的攻击的检测。

模块的安全性可以包括篡改检测器,所述篡改检测器用于检测对保护对所述模块的访问的一个或多个检测电路的干扰。检测电路可以是通过篡改中断其连续性的电导体,例如是桥接两个组件的电导体或是形成在形成封闭件的一部分的包装中的电导体、以及如果包裹被刺破成为开路的电导体。替代地,如果封闭件被开启,则电子检测电路可以具有被设计为开启或关闭的开关。检测电路可以替代地包括光学检测电路和换能器。篡改检测器的输出可以将检测信号应用于物理安全特征的检测电路的一个末端,所述检测器将所述检测信号与来自检测电路的另一个末端的、在检测器的输入处接收到的信号进行比较以便检测对检测电路的干扰。

更复杂的攻击可能试图使篡改检测无效。例如,攻击可以包括将外来信号注入到检测器输入中以模仿检测信号和伪装对检测电路的干扰。为了使这样的攻击复杂化,检测信号可以包括伪随机代码,也就是说,在不知道或未发现用于生成代码和原始种子的算法的情况下不能预测的确定性代码。通常,线性反馈移位寄存器(LFSR)被用于生成这样的伪随机代码。试图破译伪随机代码可以包括简易功率分析和差分功率分析(SPA和DPA),所述两种分析从视觉上或通过计算伪随机代码的功率消耗的变化的统计分析来推导出加密的中间值。

期望避免通过篡改对策带给篡改检测器的复杂化,以防范使篡改检测器的安装和编程更加难以制作和使用的攻击。

附图说明

本发明通过举例的方式说明并没有被附图中所示的其实施例所限制,在附图中类似的参考符号表示相同的元件。附图中的元件被图示是为了简便以及清楚,并且不一定按比例绘制。

图1是具有篡改检测器的常规安全模块的示意框图;

图2是常规线性反馈移位寄存器的示意框图;

图3是在第一配置中通过举例的方式给出的根据本发明的实施例的篡改检测器的示意框图;

图4是在第二配置中图3的篡改检测器的示意框图;

图5和6分别是图3和图4的篡改检测器的查找表;

图7是通过举例的方式的根据本发明的实施例的篡改检测器元件的示意框图;以及

图8是图7的篡改检测器元件的控制器的示意框图。

具体实施方式

图1和2图示了具有篡改检测器102和防止非授权访问的电路104的常规安全模块100。所述电路104的物理保护包括在所述受保护电路104周围的物理封闭件106和与所述物理封闭件106链接的检测电路108。所述检测电路108的一个末端被连接到所述篡改检测器102的输出管脚110,以及所述检测电路108的另一个末端被连接到所述篡改检测器102的输入管脚112。所述检测电路108被示出包括串联的检测开关114和116,所述开关正常是关闭的,但是在对所述物理封闭件106的干扰的情况下就被开启,但是通常对于所述检测电路108包括其连续性被这样的干扰中断的电导体是足够的。所述检测开关114和116自身对所述物理封闭件106的访问提供保护,例如被嵌入封闭件的材料中。虽然为了简单起见示出了单一的检测电路108,但是实践中所述安全模块100将通常包括连接到所述篡改检测器102的输出管脚110和输入管脚112的相应对的不止一个检测电路108。

所述篡改检测器102包括用于生成应用于所述输出管脚110的伪随机代码检测信号的线性反馈移位寄存器(LFSR)118。所述篡改检测器102中的比较器120具有通过信号预调节器122被连接到所述输入管脚112的输入。所述信号预调节器122具有数字滤波器,该数字滤波器阻碍传入信号直到其对于检测信号中的过滤故障的可编程数量的时钟周期来说是稳定的。所述比较器120的另一个输入通过延迟电路124从所述LFSR118接收检测信号,延迟电路124在这种情况下将检测信号延迟了内部时钟信号的一个周期以使它们与通过所述信号预调节器122从所述检测电路108接收到的信号同步。所述比较器120将检测信号与从所述检测电路108接收到的信号进行比较,并且如果检测到显著的差异,则肯定断定是篡改信号。篡改检测器102中的处理器126包括篡改检测逻辑电路128,并且当所述比较器120肯定断定篡改信号的时候,处理器126采取合适的保护行动,诸如停止检测信号的产生以阻止攻击者通过将输出管脚110连接到输入管脚112伪装他的攻击,以及在攻击者获取对它们的访问之前抹掉诸如代码或私钥的敏感数据。

图2图示了斐波那契LFSR118的常规例子;所述LFSR118包括具有一组十六个串联连接的触发器(在附图中被编号为1到16)的移位寄存器200,每一个触发器(除了第一个触发器)的输入被连接到前面的触发器的输出。除了第一个,每一个触发器的状态响应于时钟信号而改变为由前面的触发器的输出定义的值。第一触发器1的输入被连接到线性反馈回路202,反馈信号是来自移位寄存器的触发器的输出处的抽头的信号的线性函数,包括最后的触发器。反馈抽头信号被选择并且通过由异或(XOR)门204、206以及208定义的生成多项式被线性组合,如所图示的硬链接或由软件提供。由受保护的模块的产生器来选择生成多项式。来自移位寄存器200的最后的触发器16的输出的输出信号是确定的,也就是说,移位寄存器的每一个状态通过其先前的状态以及种子,LFSR的初始值,决定。在重复连续状态的周期之前,移位寄存器200具有有限数量的可能状态。在触发器11、13、14、以及16的输出处示出的四个抽头的位置在其自身重复之前给出了输出的最大长度序列,在这个例子中是65,535。

图3和4图示了在两个不同的配置中通过举例的方式给出的根据本发明的实施例的具有篡改检测器302的安全模块300的例子。安全模块300包括防止非授权访问的电路104。电路104的物理保护包括在受保护的电路104周围的物理封闭件106以及与物理封闭件106紧密链接的一组检测电路108_0到108_3,从而防止了对模块300的非授权访问。篡改检测器302中的处理器326包括篡改检测逻辑电路328,并且当比较器320肯定断定篡改信号的时候,处理器326采取保护行动。根据不同的需要,检测电路108_0到108_3的配置可以通过安全模块300的产生器选择,并且产生器然后可以容易地使标准化的篡改检测器302适用于所选择的配置。

篡改检测器302具有分别连接到检测电路108_0到108_3的末端的一组输出管脚110_0到110_3和一组输入管脚112_0到112_3。篡改检测器302还具有与所述一组输入管脚112和所述一组输出管脚110相对应的一组LFSR318。LFSR318具有根据种子值和由反馈抽头定义的生成多项式来生成伪随机代码检测信号的反馈抽头。对应的一组比较器320通过输入管脚112_0到112_3和预调节电路322将从所述检测电路108_0到108_3接收到的信号与在延迟电路324中延迟的代码检测信号进行比较。对应的一组复用器319将代码检测信号应用于输出管脚110_0到110_3和比较器320。控制器321控制复用器319以选择性地将来自一个或多个LFSR318的代码检测信号应用于输出管脚110_0到110_3和比较器320。

图3和4图示了具有四对输出管脚110_0到110_3和输入管脚112_0到112_3组的篡改检测器302的例子,但是将理解可以提供其它数量的输入和输出管脚组对。根据检测电路108_0和108_3的部署,通过编程篡改检测器302的复用器319,检测电路108_0到108_3的配置可以容易地由安全模块300的制造商根据其需要进行选择。在图3所示出的例子中,检测电路108_0到108_3中的每一个独立于其他的检测电路而被连接到对应对的输入和输出管脚110_0到110_3和112_0到112_3以及连接到对应的独立的LFSR318。在图4所示出的例子中,第一输出管脚110_0和对应的第一LFSR318LSFR0的输出被连接到所有的检测电路108_0到108_3,然后被单独连接到对应的输入管脚112_0到112_3以及连接到单独的比较器320,比较器320使用相同的检测信号以监督不同的检测电路108_0到108_3。无源LFSR318LSFR1到LSFR3可以被禁用,以及对应的输出管脚110_1到110_3可以被用于被动篡改检测,例如通过将恒定电压源连接到任何输入管脚112_1到112_3,以及监视接收到的电压。

可以根据选择的配置来设计检测电路108_0到108_3,其中每一个检测电路108的一个末端被连接到篡改检测器102适当的输出管脚110以及检测电路108的另一个末端被连接到篡改检测器102适当的输入管脚112。然后,控制器321可以被编程为使用查找表(LUT)500来控制复用器319。图5和6图示了在分别地与图3和4中示出的篡改检测器302的配置相对应的LUT500中的值。LUT500的行值定义了在相应的LFSR318和在相应列中定义的复用器319的输出之间的互连。附图中示出为‘1’的值对应于在相同行中的LFSR318和在相同列中的复用器319的输出之间的互连的肯定断定。附图中示出为‘0’的值对应于所述互连的否定断定(de-assertion)。在图5中,如在图3中物理示出的,所述值‘1’分别地被编程用于LFSR318LFSR0、LFSR1、LFSR2、以及LFSR3到复用器319MUX0、MUX1、MUX2、以及MUX3的输出的互连。在图6中,如在图4中物理示出的,所述值‘1’被编程用于LFSR318LFSR0到所有的复用器MUX0、MUX1、MUX2、以及MUX3的输出的互连。

图7图示了具有篡改检测器702和防止非授权访问的电路104的安全模块700的例子。电路104的物理保护包括在受保护电路104周围的物理封闭件106和与物理封闭件106紧密链接的检测电路108,从而保护了对所述模块700的安全访问。篡改检测器702具有用于连接到检测电路108的相应末端的输出管脚110和输入管脚112。篡改检测器702还具有根据种子值和由反馈抽头定义的生成多项式来生成伪随机代码检测信号的反馈抽头的LFSR718。所述代码检测信号被应用于输出管脚110。比较器720通过输入管脚112和通过预调节电路722将从检测电路108接收到的信号与被延迟电路724延迟的代码检测信号进行比较。处理器726包括篡改检测逻辑电路728。当比较器720肯定断定篡改信号的时候,处理器726采取合适的保护行动。模块700可以具有单一的LFSR718、输出管脚110和输入管脚112、以及检测电路108,但是在这个例子中,如模块300一样,模块700具有带有对应组的篡改检测元件的一组检测电路108,所述篡改检测元件具有用于编程与检测电路互连的复用器719,为了简便起见在图7中仅示出一组篡改检测元件。

根据本发明的实施例,通过举例的方式,篡改检测器702还具有控制器704,控制器704用于控制和改变伪随机代码检测信号的不同周期值的种子值。如果种子值是恒定的,则在2n-1连续状态周期之后,n-阶段LFSR将重复其状态序列;也就是,例如在65,636状态周期之后的16-阶段LFSR118。控制器704改变了种子值,使得每一个种子值与先前的种子值不相关。改变伪随机代码检测信号的不同周期值的种子值使得攻击者更难推断和预测种子值以及因此代码检测信号的后续值。在这个例子中,控制器704在伪随机代码检测信号开始重复周期值之前改变种子值,使得所述值不存在攻击者去分析的重复的确定周期值。

根据通过举例的方式给出的本发明的另一个实施例,LFSR718被时钟信号定时,以及控制器704控制并且改变伪随机代码检测信号的不同周期值的时钟信号的频率、生成多项式、种子值中的至少两个。改变这种参数中的两个或更多个使得攻击者更难推断和预测检测信号的后续值。

在具有所述输出管脚110、输入管脚112、LFSR718、以及比较器720组的例子中,控制器704给不同的LFSR718提供不同的种子值。

在这个例子中,在伪随机代码检测信号开始重复周期值之前,控制器704改变了种子值、生成多项式和/或时钟信号的频率。例如,控制器704以是随机信号或伪随机信号的函数的间隔来改变种子值、生成多项式和/或时钟信号的频率。在例子中,种子值是片上随机存取存储器(RAM)地址信号和与所述生成多项式相关的变量的组合的函数。为了确保种子值决不全为零,所述组合可以包括非零恒定输入值。所述组合可以是线性组合,诸如不同输入值的异或函数,使得新的种子值由下列等式给出:

(恒定)XOR(RAM地址)XOR(生成多项式)

其中所述值是16比特LFSR的16比特向量,RAM地址是15比特片上RAM地址加上例如与篡改检测器不相关的中心系统的存储器区域的1比特片上RAM芯片选择值。

更详细地,在图8中示出的篡改检测器702的元件800的例子中,所述LFSR718包括移位寄存器200、可配置的反馈回路802、用于存储由控制器704定义的种子值的寄存器804、以及用于选择性地将来自寄存器804的种子值作为并行输入应用于移位寄存器200的一组门806。和应用信号以控制复用器719一样,控制器704生成了控制定义多项生成器的反馈回路802的配置的信号、可以是串联输入的到寄存器804的种子输入信号、以及控制门806将来自寄存器804的种子值应用于移位寄存器200的时刻的触发信号。

控制器704还包括篡改检测元件800的可变的时钟分频器808,时钟分频器808按照由控制器704定义的可变的比率来划分来自生成器730的系统时钟信号的时钟频率。在这个例子中,所得到的时钟频率总是大于一赫兹,例如两赫兹或更多使得攻击者没有足够的时间解密与所述LFSR相对应的算法以及重建所述LFSR输出的模拟。在一个例子中,所得到的时钟频率是几百赫兹的量级。例如,LFSR的一个或多个时钟频率可以根据安全需要和功率消耗被选择。预调节滤波器被编程使得其低通滤波器的截止频率高于所述LFSR的时钟频率以避免使接收到的信号失真以及破坏与代码检测信号的比较。

本发明至少部分地可以在用于在计算机系统上运行的计算机程序中被实现,当在诸如计算机系统的可编程装置上运行或启用可编程装置以执行根据本发明的设备或系统的功能时,根据本发明所述计算机系统至少包括用于执行一种方法的步骤的代码部分。

计算机程序是指令的列表,诸如特别的应用程序和/或操作系统。计算机程序可以例如包括以下中的一个或多个:子例程、功能、程序、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机系统上执行的指令的其它序列。

在前面的说明中,已经参照本发明实施例的特定例子对本发明进行了描述。然而,将明显的是,在不脱离所附权利要求中阐述的本发明的较宽精神及范围的情况下可以做出各种修改和变化。

在此所讨论的连接可以是适于例如经由中间设备将信号从或传输到相应的节点、单元或设备的任何类型的连接。因此,除非暗示或另外说明,连接可以是直接连接或间接连接。连接可以被说明或描述,涉及到是单一连接、多个连接、单向连接、或双向连接。然而,不同实施例可以改变连接的实现。例如,可以使用单独单向连接而不是双向连接,并且反之亦然。此外,多个连接可以被替换为连续地或以时间复用方式传输多个信号的单一连接。同样地,携带多个信号的单一连接可以被分离出携带这些信号的子集的各种不同的连接。因此,存在用于传输信号的许多选项。

当将信号、状态比特、或类似的装置分别变为其逻辑真或逻辑假状态的时候,在此使用术语“肯定断定”或“设置”以及“否定”(或“否定断定”或“清除”)。如果逻辑真状态是逻辑电平“1”,则逻辑假状态是逻辑电平“0”。如果逻辑真状态是逻辑电平“0”,则逻辑假状态是逻辑电平“1”。

本领域所属技术人员将认识到逻辑块之间的界限仅仅是说明性的并且替代实施例可以合并逻辑块或电路元件或在各种逻辑块或电路元件上强加替代的分解功能。因此,应了解在此描述的实现相同功能性的架构仅仅是示例性的,并且事实上实现相同功能的很多其它架构可以被实现。同样地,要实现的组件的任何布置是有效“关联”的,使得实现所期望的功能。因此,为了实现特定功能而组合的任何两个元件可以被看作彼此“相关联”以便实现所期望的功能,而不论架构或中间元件。同样地,任何两个元件这样的关联也可以被视为彼此“可操作连接”或“可操作耦合”以实现所期望的功能。

上述描述的多个操作可以组合成单一的操作,单一的操作可以分布在附加操作中,并且操作可以至少在时间上部分重叠被执行。而且,替代实施例可以包括特定操作的多个实例,并且操作的顺序在各种其它实施例中可以更改。

又如,在一个实施例中,所说明的例子可以作为位于单一集成电路上的电路或在相同器件内的电路被实现。替代地,所述例子可以作为任何数量的单独集成电路或以合适的方式彼此互连的单独器件被实现。

在权利要求中,词语“包括”或“具有”不排除除了在权利要求中列出的那些之外的其它元素或步骤的存在。此外,如在此使用的词语“一”或“一个”被定义为一个或不止一个。而且,即使当同一权利要求包括介绍性短语“一个或多个”或“至少一个”以及诸如“一”或“一个”的不定冠词,在权利要求中诸如“至少一个”以及“一个或多个”的介绍性短语的使用也不应当被解释成暗示通过不定冠词“一”或“一个”进行的另一要求保护的元素的引入将包含这样引入的要求保护的元素的任何特定权利要求限定为仅包含这样的元素的发明。这对定冠词的使用也是如此。除非另有说明,使用诸如“第一”和“第二”的词语来任意区分这样的词语所描述的元素。因此,这些术语不一定意在指示这样的元素的时间或其它优先次序。在相互不同的权利要求中列举某些措施的这一事实并不指示这些措施的组合不能被用于获取优势。

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