集成电路上安全模块的集成的制作方法

文档序号:6828755阅读:155来源:国知局
专利名称:集成电路上安全模块的集成的制作方法
技术领域
本发明涉及集成电路设计内部的安全保护,特别涉及集成电路上安全模块的集成。
对有些处理应用来说,最重要的是在安全的环境中运行,使得操作不被刺探和篡改。在现有技术中,使用了各种方法来提供安全的处理环境。
例如,可以用一个机械机箱来安置处理设备。这个机械机箱可包含干预开关(tamper switches)和其它部件,用来检测和保护不受干预和篡改。不幸的是,这种机械机箱会给产品增加很多成本。
另外,为了限制对特定集成电路的接触,可以用环氧树脂或其它化学物质覆盖,以防止接触。不幸的是,这常常很容易就遭到破坏,所以只提供极少的保护。
另一种提供安全处理环境的方法是在单一集成电路上实现该系统。例如可用集成电路的一部分来执行安全操作。不过可能还有使这种方案失效的企图。
例如,攻击者可能会试图通过在适当位置应用放射线或阿尔法粒子来暴露关于密钥的信息或关于安全系统的信息。过度的放射线或阿尔法粒子会导致单事件扰乱(SEU,single event upset)。单事件扰乱会影响安全操作的数据完整性。如果在与密钥或以密钥加密的数据相关的操作中发生单事件扰乱,这会削弱集成电路内保护的有效性,可为破坏该安全系统提供通途。
进行其它类型的攻击是可能的。尽管添加了各种用来保护集成电路的电路,这些电路通常都是针对某一问题而专门添加的。还没有综合的努力来保护集成电路。
按照本发明的最佳实施例,一种集成电路包括要求保护的安全逻辑。安全保障逻辑保护该安全逻辑。该安全保障逻辑包括多个监视不安全条件的发生的保护模块。每个保护模块监视一个不同类型的不安全条件。每个保护模块在检测到相关的不安全条件时发出一个报警信号。由多个保护模块发出的报警信号被存储起来。
在该最佳实施例中,一旦有报警信号发出,该报警信号被一个第一寄存器接收。用一个第二寄存器来屏蔽报警信号。由该第二寄存器进行的屏蔽用来防止所选择的报警信号被传播。这就允许在测试安全保障逻辑期间封闭某些报警。一个第三寄存器存储已经发出但尚未被第二寄存器屏蔽的报警信号。当检测到报警信号时可以将集成电路复位。
该多个保护监控器例如包括下述中的一个或多个一个检测受监视时钟何时超过预定频率的高频监控器,一个检测受监视时钟何时小于预定频率的低频监控器,一个监视集成电路内的单事件扰乱的单事件检测器监控器,一个监视集成电路被复位的次数的复位监控器,和一个监视无效电平的电压检测器。
此外,安全保障逻辑一般还包括一个用于在集成电路上电时将集成电路复位到一个已知状态的通电复位电路。
上述的将保护模块集成到安全保障逻辑中,要求攻击集成电路的安全性能的人必须同时使一个以上的安全部件失去作用。这增加了要成功地克服安全性能所要求的攻击的复杂程度。本文所述的集成解决方案可用来保护实现必须访问两个独立的地址空间的固件的集成电路。安全保障逻辑的可编程特点,允许独立地改变寄存器值,使得在集成电路的操作中没有不安全的重叠时段(insecure periodof overlap)。


图1是表示其中用按照本发明实施例的安全保障逻辑来保护受保护逻辑的集成电路的简化框图;图2是表示按照本发明实施例的在集成电路内将电保护装置连接在一起的安全保障逻辑的简化框图;图3是表示按照本发明实施例的在集成电路内将电保护装置连接在一起的另外的安全保障逻辑的简化框图;图4是表示按照本发明实施例的图1所示状态寄存器的结构的简化框图;图5是按照本发明实施例的通电复位逻辑的简化框图;图6是通电复位逻辑单元的一种方式的简化框图。
图1是一个包括处理器123、受保护逻辑112和其它逻辑140的集成电路的简化框图。在集成电路11内安全保障逻辑12将电保护装置连接在一起。将所有安全保障逻辑12部件集成到单一的模块化受保护部件中,使处理器123能控制和观察用于测试的保护模块,而不影响集成电路11的安全性。通过将多个保护模块连接在一起,因为保护模块现在是协同工作的,所以改善了系统的安全性。此外,可以控制保护模块的复位状态,使得为了IDDq测试(***什么是IDDq测试?***)而断电时不破坏集成电路的安全性。
图2是安全保障逻辑12的简化框图。受监测的时钟信号(MON_CLK)被放置在一个监测时钟信号线上。安全保障逻辑12内的部件监测并保护该受监测的时钟。屏蔽寄存器29被用来屏蔽特定的安全保障功能,使得能通过处理器123为某些操作关闭个别的安全功能部件(即报警信号)。这也使得能测试每个功能部件。由于在集成电路11中有完全相同的安全功能部件,所以能在启动时测试安全逻辑,而不会产生问题,也不会产生能为攻击者利用的突破口。
安全保障逻辑12包括一个高频监控器21、一个低频监控器22,一个单事件扰乱(SEU)检测监控器24、一个复位监控器25和一个过/欠压检测器26。
用原始(raw)寄存器28、屏蔽寄存器29和状态寄存器30汇集来自监测模块的报警。处理器123能用总线45对原始寄存器28、屏蔽寄存器29和状态寄存器30进行信息的读写。
原始报警源被异步地俘获在原始寄存器28中。这些报警在报警线54上输出。这些报警先由屏蔽寄存器29中的值屏蔽后再传递到状态寄存器30。被屏蔽的报警是在线路55上被传递到状态寄存器30的。之所以要求异步俘获是因为在报警的时刻不能保证有效的时钟源。异步俘获被双同步到处理器123的时钟域,然后被状态寄存器30取样。一旦状态寄存器中的某位被置位,相应的异步俘获就被清除。状态寄存器30中的一个报警置位(alarm set)导致在线路57上设置一个复位信号。
图4表示在状态寄存器30内用于报警位的双同步的一例逻辑。一个第一延迟(D)触发器91与一个第二D触发器92串行地相连。D触发器19的D输入端通过线路94与VDD相连。D触发器91的时钟输入端在线路95上接收来自屏蔽寄存器29的一个屏蔽报警位。D触发器92的时钟输入端97接收系统时钟(CLK)信号。D触发器92的Q输出端在线路98上设置一个状态位。系统时钟(CLK)信号被用来为安全保障逻辑12的所有同步部件和寄存器定时。线路40上的一个来自(图2中所示的)同步部件32的复位信号被用来复位D触发器92。逻辑NOR门93被用来为D触发器91生成复位信号。
如图2中所示,通电复位单元27、在线路42上和复位(PINRST_L)线路43上设置的软件复位,都被用来复位该监控系统。各复位信号由如图所示那样连接的同步部件31、同步部件32和同步部件33同步。逻辑0R门34和逻辑0R门35综合各复位信号,在线路58上生成复位(信号)(RSROUT_L)。保存复位部件36按预定的时钟周期数保存复位(信号),并在复位删除线路59上生成复位删除(RSTDEL_L)信号。
(图3中所示的)软件复位同步器64生成在线路42上设置的软件复位。(图3中所示的)控制寄存器63为软件复位同步器64存储两个控制位,它们在线路79和线路80上被传递给软件复位同步器64。
低频监控器22用由内部环形振荡器(ROSC)23生成的基准时钟来与监视时钟信号线41上的被监视时钟信号(MON_CLK)作比较。必须使用环形振荡器23,因为低频监控器23需要能检测何时被监视时钟信号已经停止。低频监控器22在线路47上设置低频报警。
由于受监视时钟被取样,低频监控器22可能会以任何违反尼奎斯特速率(Nyquist rate)的输入时钟频率产生一个虚假错误。受监视时钟必须小于环形振荡器所生成的基准时钟的频率的8倍。在(图3中所示的)寄存器62中存储的一个8位低频值被用来配置低频监控器22。
高频监控器21被用来保证监视时钟信号线41上的受监视时钟信号(MON_CLK)小于设备的最大频率。由于高频监控器21用设备的关键路径来确定时钟频率是否太快,结果是一个包括监测电压、过程和温度的操作点检测。
高频限度不是固定的,而是由设备的能力决定的。在一个于零度和额定电压下为最佳处理设备的系统中,允许该设备的频率高于高温和更低电压下操作发生时的频率。由于操作点是可编程的,能用高频监控器21来为当前操作环境调整有相锁定循环(PLL-phasedlocked loop)的频率。高频监控器21在线路46上设置一个高频报警。
存储在(图3中所示的)寄存器61中的一个8位高打击值(highstrike value)和一个8位高频值被用来配置高频监控器21。
复位监控器25计算所发出的复位(复位输出线58上的复位输出信号(RSROUT_L)。达到复位限值时,复位监控器25在线路51上发出一个报警。复位监控器25能用(图3中所示的)控制寄存器63中的一个清除打击位(clear strike bit)清除。在完成集成电路的引导处理并等待一个随机的时段后,用软件来清除复位监控器25。
来自复位监控器25的报警被用来发出一个设备复位(如果在屏蔽寄存器29中未被屏蔽的话)。复位之后,就忽略在线路43上发出的其它的人工复位(PINRST_L),直到这个报警已经在状态寄存器30中被清除。(图3中所示的)控制寄存器63为复位监控器51存储一个清除位,它在线路78上被传递到复位监控器51。
过和欠压检测器26被用来保护电平免得对于该处理技术来说是无效的。该处理的最小工作核心电压和最大工作核心电压被用作该电压检测的边界值。
为检测器的启动范围规定的电压范围是基于集成电路在其中实现的处理技术。在欠压启动范围以下,将总是检测到一个欠压错误。在通电复位(POR)启动范围以上,通电复位单元27将总是不活动的(不是声明的)。在过压检测(OVD)启动范围以上,过压检测器将生成一个报警。在过压检测器启动范围以下,过压检测器将不生成报警。
在许多处理技术中,欠压启动范围和POR启动范围重叠。在这种情况下,就不执行欠压检测器(即在设计中避免它)。如果不执行欠压检测器,则应当在VDD-10%要求而不是最小VDD的基础上设置POR启动范围,以保证欠压扰乱将导致PRO复位。
在最佳实施例中,过和欠压检测器26的欠压检测部分监测核心VDD电压馈送,以保证电压水平总不落在给定处理所需的最小核心电压之下。当VDD处于核心VDD+/-10%这个设备的有效工作范围内时,决不会检测到错误。
在最佳实施例中,过和欠压检测器26的欠压检测部分有一个可用于IDDq测试的断电(PD)输入81。当断电时,不管核心VDD的值如何,设备的输出状态不指示错误。欠压设计也抑制电源线上的噪声。过和欠压检测器26的欠压检测部分能与数字逻辑一起被传送,不会因数字转换噪声而产生错误。
过和欠压检测器26的过压检测部分监视核心VDD供应,以保证电平总不高于给定处理的最大可允许核心电压。此外,当VDD处于核心VDD+/-10%这个设备的有效工作范围内时,决不会检测到错误。
过和欠压检测器26的过压检测部分也有一个可用于IDDq测试的断电输入82。当断电时,不管核心VDD的值如何,输出状态不指示错误。过和欠压检测器26的过压检测部分的构造方式,能抑制电源线上的噪声。
单事件扰乱(SEU)检测监控器24跟踪逻辑操作并检测256个时钟周期内的单一或多个位的错误。在最佳实施例中,检测逻辑是在集成电路11中实现的完全数字的逻辑。当检测到一个单事件扰乱时,单事件扰乱检测监控器24在报警线49或报警线50上设置报警。控制寄存器63为单事件扰乱检测监控器24存储两个错误位(r_err和p_err),它们在线路76和线路77上被传递给单事件扰乱检测监控器24。
图1表示散布在整个集成电路11中的各单事件扰乱检测器的使用。有些单事件扰乱检测器位于受到保护的受保护逻辑112(例如加密逻辑)的附近。另外的单事件扰乱检测器尽可能远离受保护逻辑,用作比较。所用的单事件扰乱检测器的数目由集成电路11的总共的门数决定。一个好的近似计算法是,在按集成电路11内部逻辑块的设计中每15k-20k基于单元的逻辑的门大约一个计数器(在这个计算中包括RAM和ROM)。
各单事件扰乱检测器在图1中由单事件扰乱检测器114、单事件扰乱检测器115、单事件扰乱检测器116、单事件扰乱检测器117、单事件扰乱检测器118、单事件扰乱检测器119、单事件扰乱检测器120和单事件扰乱检测器121表示。图1不是按比例绘制的。单事件扰乱检测器散布在整个集成电路11中,以便能检测即使在安全集成电路11的似乎不关键的区域中发生的事件。
安全保障逻辑12内的单事件扰乱检测监控器24(图2中所示)通过数据路径124从单事件扰乱检测器114收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径125从单事件扰乱检测器115收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径126从单事件扰乱检测器116收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径127从单事件扰乱检测器117收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径128从单事件扰乱检测器118收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径129从单事件扰乱检测器119收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径130从单事件扰乱检测器120收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径131从单事件扰乱检测器121收集单事件扰乱检测信息。安全保障逻辑12内的单事件扰乱检测监控器24通过数据路径132从单事件扰乱检测器122收集单事件扰乱检测信息。
单事件扰乱检测器114至122的每一个用数字逻辑检测单事件扰乱。例如监测单事件扰乱检测器内每个由一个触发器构成的位寄存器因单事件扰乱而引起的状态转换。这些触发器被以预定的方式使用,然后受到监测,以检测在操作期间发生的错误。状态转换中的错误例如可指示一个由放射线、阿尔法粒子或其它操作错误引起的单事件扰乱。
通电复位单元27在施加电源时为设备提供一个已知状态。初始化到一个已知状态对安全集成电路来说是关键的。通电复位单元27用电源的施加来生成一个直到该电源稳定时才释放的复位输出。
通电复位单元27的集成对集成电路11的安全是必不可少的。目前的测试策略要求将集成电路的所有元件的电能降到一个低电能状态才能进行IDDq测试。由于设备上的任何元件的初始状态只有当通电复位单元27活动时才是可信的(trusted),有一个与用于切断通电复位单元27的电源的断电线路44相连的外部引线。该外部引线不能受到安全保障逻辑12的信任,以致它绕过通电复位单元27并在上电后导致一个未知状态。
环形振荡器(ROSC)23为低频监控器22提供基准时钟。此外,环形振荡器23还在输出线48上提供一个振荡时钟(OSC CLK)。该振荡时钟被用于主动归零(active zeroization)。环形振荡器23是通过扫描测试方式得到全面测试的,方法是断开环形振荡器链路(chain)并插入使该链路可观测和可控制的触发器。
环形振荡器23的频率值可以在布线(layout)后调整,方法是用(OSC_CFG)输入引线调整用哪个抽头点作为环形振荡器23的端点。这些配置输入对设备的最终布线来说必须固定。控制寄存器63(图3中所示)为环形振荡器23存储一个关闭位,它在线路75上被传递给环形振荡器23。
引线复位线(PINRST_L)43是来自集成电路的输入焊点的外部复位。由于引线复位(PINRST_L)是在集成电路外部被控制的,它不能被信任。该引线复位被集成电路假设是异步的。该外部复位必须被声明为时至少一个时钟周期才能保证同步逻辑32捕获到该复位。同步逻辑32为元稳定性(meta-stability)提供双同步。当被声明时,引线复位(外部复位)将不被作为为时两个时钟的复位扩散到核心。
安全保障逻辑12可被用来在安全设备中实现主动归零。安全保障逻辑12通过连接高频和低频监控器而总是提供一个有保障的有效时钟。每当有高频或低频错误被检测到、启用或俘获时,开关时钟(SWTICLK)信号在47上就是活动的。该SWTICLK信号可被用来与系统时钟(在时钟树(clock tree)之前)一起多路转换输出线路48上的OSC_CLK信号。由于设备复位是根据俘获的扰乱发出的,所以不要求这个转换是没有假信号的。由于当前的时钟确实会被停止,所以在最佳实施例中直接与一个多路转换器进行这个联系。一旦对输出线路48上的振荡时钟信号发生了转换,处理器123(或其它硬件逻辑)就能根据状态寄存器30内的状态寄存器位或报警输出对主动归零作出决定。
图5是解释通电复位逻辑的操作的简化框图。线路153上的通电复位信号,由通电复位单元154(相当于图1中所示的通电复位单元27)、延迟(D)触发器156(相当于图1中所示的同步部件33)或低频监控器157(相当于图1中所示的低频监控器22)生成。各复位信号由逻辑OR门155采集。断电信号在线路151上设置。D触发器156由在线路152上设置的系统时钟(CLK)定时。低频监控器157监控系统时钟(CLK)的频率。
当电能被施加到集成电路11时,通电复位单元154被断电,集成电路11保持在一个不变的状态(没有复位被发出)。
如果攻击者试图通过在线路151上声明断电信号而绕过通电复位单元154,D触发器156确保只要使用系统时钟(CLK)就会引起集成电路的复位。复位导致集成电路11被初始化到一个已知状态。低频监控器157防止系统时钟(CLK)被停止。就是说,如果由与线路151相连的断电引线生成的断电信号在集成电路进入测试方式(此时低频监控器157被禁止)之前被声明,则如果系统时钟(CLK)被停止,集成电路11就将进入一个复位状态。其结果是,不能有效地绕过通电复位逻辑27。
图6是模拟通电复位单元154的实现的简化框图。通电复位单元154是以适合特定处理技术的定制单元(custom cell)的形式实现的。通电复位单元154构造方式,能抑制电源线上的噪声。
通电复位单元154的复位(POR_L)输出158必须在电压稳定后最少在20微秒的时间保持在低电平。电力干线的稳定值,必须是大于所实现的处理技术的最低工作电压的电平。
断电(PD)输入151至通电复位单元154不得改变复位输出158的状态。如果在电力被施加的同时断电输入151维持在高电平,复位输出158永远不释放复位。如果在电力已经被施加并且复位脉冲已经完成后(电力被施加后超过20微秒)断电输入151被声明为高电平,则复位输出必须保持在高电平并且不能发出复位。
图6表示的通电复位单元154是以一个RC网络的形式模拟的,由电阻164和通过线路166接地的电容器165组成。VDD位于输入线161上。缓冲器162将VDD传送到由断电线151控制的开关163。当断电输入151是不活动的(低电平的),允许电容器165充电。当断电输入151是声明的(高电平的),不允许电容器165充电。电容器165被用来通过施密特触发器167驱动复位输出158。所以,一旦电容器165达到阀值(一个等于20微秒的时间常量),复位输出158就被释放。尽管在图6中通电复位单元154是以一个RC网络的形式模拟的,通电复位单元的实际实现取决于所采用的技术。
以上讨论仅披露和描述了本发明的示例性的方法和实施例。熟悉本领域的人们将明白,在不偏离其精神和本质特点的情况下本发明可以用其它具体形式来实现。所以,本发明的说明旨在解释而不是限制由以下权利要求提出的本发明范围。
权利要求
1.一种集成电路,包含要求保护的安全逻辑;和保护该安全逻辑的安全保障逻辑,该安全保障逻辑包括多个监视不安全条件的发生的保护模块,其中每个保护模块监视一个不同类型的不安全条件,每个保护模块在检测到不安全条件时发出一个报警信号;和用于接收和存储由该多个保护模块发出的报警信号的存储装置。
2.如权利要求1所述的集成电路,其中存储装置包含一个用于接收报警信号第一寄存器;一个用于屏蔽报警信号的第二寄存器,该第二寄存器被用来防止所选择的报警信号被传播;和一个用于存储尚未被第二寄存器屏蔽的报警信号的第三寄存器。
3.如权利要求1所述的集成电路,其中该多个保护监控器包括一个检测受监视时钟何时超过预定频率的高频监控器。
4.如权利要求1所述的集成电路,其中该多个保护监控器包括一个检测受监视时钟何时小于预定频率的低频监控器。
5.如权利要求1所述的集成电路,其中该多个保护监控器包括一个监视集成电路内的单事件扰乱的单事件检测监控器。
6.如权利要求1所述的集成电路,其中该多个保护监控器包括一个监视集成电路被复位的次数的复位监控器。
7.如权利要求1所述的集成电路,其中该多个保护监控器包括一个监视无效电平的电压检测器。
8.如权利要求1所述的集成电路,其中该安全保障逻辑此外还包括一个用于在集成电路上电时将集成电路复位到一个已知状态的通电复位电路。
9.一种用于保护集成电路内的安全逻辑的方法,该方法包含以下步骤(a)由多个保护模块监视不安全条件的发生,其中每个保护模块监视一个不同类型的不安全条件的方式,包括下列子步骤(a.1)该多个保护模块中的保护模块在检测到相关的不安全条件时发出一个报警信号;和(b)接收和存储由该多个保护模块发出的报警信号。
10.如权利要求9所述的方法,其中步骤(b)包括下列子步骤(b1.)将报警信号接收到一个第一寄存器中;(b.2)按照一个第二寄存器中的值屏蔽报警信号;和(b.3)将在步骤(b.2)中未被屏蔽的报警信号存储在一个第三寄存器中。
11.如权利要求10所述的方法,另外还包含以下步骤(c)在有报警信号被存储到第三寄存器中时复位集成电路。
12.如权利要求9所述的方法,其中步骤(a)包括检测受监视时钟何时超过预定频率。
13.如权利要求9所述的方法,其中步骤(a)包括检测受监视时钟何时小于预定频率。
14.如权利要求9所述的方法,其中步骤(a)包括监视集成电路内何时单事件扰乱。
15.如权利要求9所述的方法,其中步骤(a)包括监视集成电路被复位的次数。
16.如权利要求9所述的方法,其中步骤(a)包括一个监视无效电平。
17.如权利要求9所述的方法,其中步骤(a)此外还包括以下步骤(c)在集成电路上电时将集成电路复位到一个已知状态。
18.集成电路内部的安全保障逻辑,该安全保障逻辑保护安全逻辑,该安全保障逻辑包含多个监视不安全条件的发生的保护模块,其中每个保护模块监视一个不同类型的不安全条件,每个保护模块在检测到相关的不安全条件时发出一个报警信号,和用于接收和存储由该多个保护模块发出的报警信号的存储装置。
19.如权利要求18所述的安全保障逻辑,其中存储装置包含一个用于接收报警信号第一寄存器;一个用于屏蔽报警信号的第二寄存器,该第二寄存器被用来防止所选择的报警信号被传播;和一个用于存储尚未被第二寄存器屏蔽的报警信号的第三寄存器。
20.如权利要求18所述的安全保障逻辑,其中该多个保护监控器包括下列中至少之一一个检测受监视时钟何时超过预定频率的高频监控器;一个检测受监视时钟何时小于预定频率的低频监控器;一个监视集成电路内的单事件扰乱的单事件检测监控器;一个监视集成电路被复位的次数的复位监控器;和一个监视无效电平的电压检测器。
全文摘要
一种集成电路包括要求保护的安全逻辑。安全保障逻辑保护该安全逻辑。该安全保障逻辑包括多个监视不安全条件的发生的保护模块。每个保护模块监视一个不同类型的不安全条件。每个保护模块在检测到不安全条件时发出一个报警信号。该多个保护模块发出的报警信号被存储起来。
文档编号H01L21/822GK1304503SQ99806915
公开日2001年7月18日 申请日期1999年11月20日 优先权日1999年2月1日
发明者M·L·布尔 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1