主动ASIC侵犯屏障的制作方法

文档序号:14255097阅读:176来源:国知局

本申请涉及主动asic侵犯屏障。



背景技术:

必须保护高性能专用集成电路(asic)免受来自未授权攻击者的各种专门攻击。一类攻击涉及物理地探测、修改、或者破坏在asic内的逻辑。这种类型的篡改通常涉及若干步骤,这些步骤包括:例如,(1)物理地打开封装物的封盖以物理接触在硅片上的布线和逻辑;(2)在表面保护层上钻孔以能够触及金属触点;(3)物理地探测(当活动时)位于装置的顶层的导线以确定它们的内容;(4)切开被视为不重要的顶级层级导线以能够访问在较低层——可能一直到基础层上更令人感兴趣的内容;(5)使用聚焦离子束(fib)来切开导线从而潜在地关闭关键的安全特征;以及(6)沉积金属来创建新连接以修改关键的功能。

尽管涉及到该众多步骤,未授权方物理地探测、修改、和/或破坏在asic内的逻辑的技术却日趋精深。为了避免危害装置的正确操作和功能的企图,重要的是具有物理安全系统,其可以在芯片处于活动时检测上述任何一种活动以及在启动时检测出在上一个断电时段期间是否发生过这些活动中的任何一种活动。



技术实现要素:

本发明内容按照简化的形式介绍了一系列构思以提供对本公开的一些方面的基本理解。本发明内容不是对本公开的广泛概述,并且不旨在标识本公开的关键或者重要元素或者描绘本公开的范围。本发明内容仅呈现了本公开的构思中的一些以作为下面提供的具体实施方式的前序。

本公开大体上涉及集成电路。更具体地,本公开的方面涉及保护免受在专用集成电路上的侵入性攻击。

本公开的一个实施例涉及一种用于保护集成电路免受侵入性攻击的设备,该设备包括:迹线导线阵列,该迹线导线阵列跨至少该集成电路的顶部金属层布置;伪随机二进制序列生成器,该伪随机二进制序列生成器用于生成多个比特;真随机数生成器,该真随机数生成器用于向被馈送至该伪随机二进制序列生成器的多个抽头点中的至少一个提供熵源;以及比较电路,该比较电路连接至迹线导线阵列的一端,其中,该比较电路基于由伪随机二进制序列生成器生成并且在迹线导线中的至少一条迹线导线的该一端处接收到的比特来确定该至少一条迹线导线是否具有期望值。

在另一个实施例中,该用于保护集成电路免受侵入性攻击的设备进一步包括:解复用电路,该解复用电路将伪随机二进制序列生成器连接至迹线导线阵列的另一端。

在又一个实施例中,该用于保护集成电路免受侵入性攻击的设备进一步包括:警报响应系统,该警报响应系统用于确定是否响应于比较电路生成的警报信号而发起一个或者多个动作。

在一个或者多个其它实施例中,在本文中描述的方法、系统、和设备可以可选地包括以下附加特征中的一个或者多个:由伪随机二进制序列生成器生成的多个比特中的每个比特在被传输至所述迹线导线阵列时相对其相邻的比特是唯一的;伪随机二进制序列生成器是线性反馈移位寄存器;该迹线导线的子集是根据实时时钟周期来切换的;比较电路在每个实时时钟循环中比较迹线导线中的全部;比较电路确定在每个实时时钟循环中该迹线导线中的至少一条是否具有期望值;解复用电路在每个实时时钟循环中只驱动该迹线导线中的一条,并且剩余的迹线导线接地;比较电路基于在该至少一条迹线导线的第二端接收到的比特来检测短路故障、开路故障、和滞止(stuck-at)故障中的一个;比较电路响应于检测到短路故障、开路故障、和滞止故障中的一个而生成警报信号;警报响应系统确定由比较电路生成的警报信号的数目是否满足条件,并且响应于确定警报信号的数目满足该条件,警报响应系统发起该一个或者多个动作;如果由比较电路生成的警报信号数目在预定时间段内超过阈值数目,则警报响应系统确定警报信号数目满足该条件;如果在该警报信号中的每一个的生成之间的时间间隔处于阈值时间段内,则警报响应系统确定警报信号的数目满足该条件;和/或该一个或者多个动作包括以下中的至少一个:将中断发送至集成电路的处理器,以及控制集成电路的电源。

应当注意,在本文中公开的一些或者所有的处理器和存储器系统的实施例还可以配置为执行上面所公开的一些或者所有的方法实施例。另外,上面所公开的一些或者所有的方法的实施例还可以表示为包含在诸如光学或者磁性存储器等非暂时性处理器可读存储介质上的指令。

本公开的方法和系统的进一步的适用性范围将通过下面给出的具体实施方式变得显而易见。然而,应当理解,由于在本文中所公开的构思的精神和范围内的各种改变和修改将通过具体实施方式对本领域的技术人员变得显而易见,因此,具体实施方式和具体示例虽然指示了方法和系统的实施例,但是仅通过说明的方式给出。

附图说明

本公开的这些和其它目的、特征、和特性将通过对以下结合随附权利要求书和附图的具体实施方式的研究对本领域的技术人员变得更显而易见,权利要求书、附图、和具体实施方式全部构成本说明书的一部分。在附图中:

图1是图示了根据本文中描述的一个或者多个实施例的,用于防御在专用集成电路上的侵入性攻击的示例系统的框图。

图2是图示了根据本文中描述的一个或者多个实施例的,集成电路的安全系统和警报响应系统的示例布置的框图。

图3a-3c图示了根据本文中描述的一个或者多个实施例的,跨集成电路的一层对迹线导线进行走线的示例走线配置。

图4是图示了根据本文中描述的一个或者多个实施例的,用于防御在专用集成电路上的侵入性攻击的示例方法的流程图。

在本文中提供的标题仅仅是为了方便起见,并且不一定会影响本公开所要求保护的范围或含义。

在附图中,为了便于理解和出于方便起见,相同的附图标记和任何首字母缩写标识具有相同或者类似结构或者功能的元件或者动作。将在下面的具体实施方式中对附图进行详细描述。

具体实施方式

现在将描述本公开的方法和系统的各个示例和实施例。以下描述提供具体细节以供彻底理解并且实现对这些示例的描述。然而,相关领域的技术人员要明白,可以在没有这些细节中的许多情况下实践在本文中描述的一个或者多个实施例。同样,相关领域的技术人员还要明白,本公开的一个或者多个实施例可以包括在本文中未详细描述的其它特征。另外,下面将不会详细示出或者描述一些熟知的结构或者功能,以避免不必要地模糊相关描述。

本公开的实施例涉及设计来保护集成电路(ic)(例如,asic)免受例如探测攻击、fib、和其它这样的篡改的防御机制或者系统。如将在下面更加详细描述的,该防御机制可以是主动物理安全屏障,该主动物理安全屏障包括:位于ic的高金属层(例如,可用于完全覆盖或者基本覆盖敏感电路的顶部一个或者两个金属层)处的迹线阵列(例如,迹线导线),该迹线阵列优选地覆盖了该层的较高百分比(例如,80%、90%、95%等)的表面积;以及,可以跨迹线驱动信号的数字逻辑组件的集合。

根据至少一个实施例,可以跨迹线主动地驱动信号(例如,线性反馈寄存器等所生成的比特),使得可以在短时间段内检测到在迹线中的任何迹线上的短路故障、开路故障(例如,损坏的迹线导线)、或者滞止(stuck-at)故障(例如,信号或者门输出滞止在“0”或者“1”值)。例如,根据至少一个实施例,检测在迹线中的一个迹线上的故障的检测时间可能大约是几个时钟循环,其中频率是特定于应用的。对于低功耗的实施方式,对于待检测的破缺(breach),该检测时间可能大约是几微秒。例如,频率是250khz时,检测时间将是1/250khz=4us。

还应当注意,根据一个或者多个实施例,由于信号跨导线的传播延迟而可能存在故障检测时间的下限(例如,较大的芯片具有较大的传播延迟,并且因此,可以通过适用的传播延迟来限制这样的较大芯片的检测时间)。

进一步地,在一个或者多个实施例中,本公开的主动安全系统/机制可以连接至相关联的警报响应机构或者系统(例如,集成电路的专门的处理器)、包括相关联的警报响应机构或者系统、和/或以其他方式与相关联的警报响应机构或者系统通信(例如,经由通过有线网络或者无线网络的直接连接或者间接连接),使得可以将由安全系统检测到的故障指示为发送至警报响应机构的警报。在至少一个实施例中,安全系统和/或警报响应机构可以连接至ic的处理器、或者与ic的处理器通信。例如,如果基于安全系统的检测到的故障而确定(例如,通过警报响应机构)应当采取可动作的响应以解决对ic的潜在威胁,则可以发起各种保护性措施或者预防性措施,诸如中断处理器、完全关闭ic等。

图1是用于防御在ic上的侵入性攻击或者侵犯性攻击的示例安全系统100。根据至少一个实施例,该系统100包括m比特prbs(伪随机二进制序列)生成器电路120、用于将熵源提供给prbs生成器电路120的真随机数生成器电路(trng)130、跨ic的高金属层(例如,可用于完全覆盖或者基本覆盖ic的敏感电路的顶部一个或者多个金属层)的n导线总线140、用于将m转为n的解复用电路110、以及用于检查并且确保n导线在采样时间具有正确(例如,期望)值的比较器电路150。另外,系统100还可以包括用于控制系统的各个组件的一个或者多个寄存器,并且还包括警报响应机构或者电路(未示出)。

根据一个或者多个实施例,除了示出的示例配置之外或者替代示出的示例配置,其它走线(routing)配置也可以用于n导线总线140。这些其它走线配置可以取决于各种因素,包括例如,迹线导线的数目(n)(例如,1000条导线、1200条导线、1485条导线、1550条导线等)、导线的厚度、相邻导线之间的间隔等。

在图3a至3c中示出了这样的其它走线配置的示例。例如,可以跨ic的金属层按照锯齿形配置(在图3a中示出的320)或者按照迷宫状配置(在图3b中的340)来对(n导线总线140的)迹线导线阵列进行走线。应当理解,也可以使用各种其它走线配置,只要这样的配置确保最大覆盖面积同时还在感兴趣的区域上避开容易作出切口和跳线的区域(利用fib+沉积)。例如,n导线总线140可以设计为包括尽可能多的覆盖芯片的唯一迹线,使得任何尚可的开口都需要大量昂贵且困难的切口和跳线。此外,在至少一个实施例中,可以将ic的多于一个的顶部金属层用于导线总线。例如,在ic的顶部金属层处,可以在第一方向(例如,水平地或者跨该层的宽度)上跨该层的表面对迹线导线进行走线,并且,在刚好位于该顶层之下的金属层处,可以在垂直于第一方向的第二方向(例如,垂直地或者跨该层的长度)上跨该层的表面来对迹线导线进行走线。图3c图示了这样的布置的示例(360)。

根据至少一个实施例,m比特prbs生成器电路120(其中,“m”是任意值,诸如例如99)可以是线性反馈移位寄存器(lfsr),其中,将m-1比特下移,并且移入的新比特是寄存器中的若干抽头点的异或(xor)(例如,通过使用xor门),所述比特包括:移出的比特、以及连结至熵源(例如,从trng130出来)以增强随机化的一个比特。本领域中的普通技术人员已知,通过抽头点的正确顺序,在没有熵源的情况下,可以针对任何值m生成prbs,其中重复周期为2m-1。然而,在有诸如例如trng130的熵源的情况下,不应当存在可预见的重复。

应当注意,为了使电力耗费最小化(例如,因为在至少一个实施例中跨芯片的迹线导线的数目可能相对大,其中每个迹线导线都具有一定量的电容值),可能不是每一个核心循环都会完成prbs生成器120的移位。相反,例如,可以根据以大约250khz进行切换的实时时钟(rtc)来使prbs生成器120移位。根据至少一个实施例,rtc可以与芯片的主(核心)时钟分开。在这样的实施例中,rtc可以比主时钟更慢,以帮助减少芯片上的电力消耗和噪声。应当注意,虽然与主时钟分开的时钟(rtc)可以用于安全系统(屏障),但是这样的单独的时钟可能并非严格专用于安全系统,相反其可以服务附加目的和/或芯片的组件。

应当理解,在本文中描述的示例系统(例如,系统100)中,prbs生成器电路120所生成之物的精确值不如以下有重要性:prbs120的每个比特以相对模糊的方式和相对频繁的速率(例如,250khz更新)变化,使得每个比特(在其被传输至导线阵列140时)相对其相邻的比特都是唯一的。基于利用trng130输出来更新prbs120的事实,prbs120的比特被称为以“模糊”方式变化。如果只是在启动时播种了(或者非常不频繁地重新播种)prbs120,则攻击者潜在地会基于先前值来预测未来的prbs120值。因此,trng130设计为对未来的prbs120值进行模糊,由此使攻击者更加难以猜到未来的值(攻击者然后可能会在切开的导线上驱动该未来的值以避免检测)。虽然250khz更新相对低(例如,与几十mhz的核心时钟频率相比),但是应当注意,相对于prbs120的每个比特可能变化的速率,“频繁”可以意味着足够经常以使得在芯片活动时切口和跳线是不可能的。

应当注意,所有迹线导线并不必需同时切换(尽管有可能)。例如,在至少一种实施方式中,可以减少切换量(例如,在每个rtc时钟周期中,每15条导线中有1条导线切换),以便在每一个rtc时钟边沿处不会物理地汲取太多电流。在这样的实施例中,下一条相邻导线(例如,与切换的那条导线相邻的导线)然后可以在下一个时钟循环切换,以此类推。根据一个或者多个其它实施例,附加prbs可以用于随机地确定一条或者多条迹线导线是否会在下一个时钟循环期间切换,而不是如上面描述的那样在迹线间线性地步进。

为了减少逻辑复杂性和面积,prbs生成器电路120的大小可以显著小于跨芯片的导线总线140中的导线的数目(n)。为了将m比特prbs120连接至在金属中跨过的n条导线,在一个或者多个实施例中,系统100可以包括解多路复用逻辑电路110。例如,根据至少一个实施例,比率n:m是标示为r的整数。在解多路复用逻辑电路110中,每个循环只可以驱动r条导线中的一条导线,而其它导线在该循环内保持接地(其中,“循环”指代在每个rtc时钟循环中ptbs140移位的周期)。在prbs120的每一个新循环中,可以驱动r条导线中的下一条导线。这样的技术有效地产生如下的导线分配(其中,这样的分配仅出于说明的目的),其中,cur_sel是包含从0到r-1的值的寄存器,该值指示在比率内应当驱动哪条导线:

for(a=0;a<m;a++)

for(b=0;b<r;b++)

wires[a*r+b]=(cur_sel==b)&prbs[a]

根据至少一个实施例,可以在prbs120的每循环驱动r条导线中的多于一条的导线。然而,取决于特定的实施方式,电力(例如,电池供电的装置可以具有严格的电力要求)和/或信号完整性(例如,屏障是否正在产生太多噪声而使得影响到ic的主电路)可以限制针对prbs120的给定循环所驱动的导线的数目。在每次可以驱动多于一条导线的一个实施例中,可以将导线物理地分开以使得电力消耗分布遍及ic的电网(及其旁路电容)。

物理地绘制的跨ic的高金属层的n条导线阵列(n导线总线140)创建在物理上和电气上都密集的网格,该网格意在阻止各种类型的侵入性攻击,包括:例如探测、目测等。导线阵列可以连接至逻辑的其余部分(例如,解复用电路110和/或比较器电路150),例如,经由放置和走线。

n导线总线140可以连接至比较器电路150以确保所有值在采样时间是如期望的那样。这不仅包括驱动prbs值(例如,比特值)的m条活动的导线,还包括应当连结至0值或者连结至地的n-m条导线。对于用于确定跨活动的导线驱动的值是否是它们应当处于的值(并且还确定导线应当连结至地面还是连结至0值)的比较器电路150,比较器电路150可以连接至prbs120以便接收期望值(170)。根据至少一个实施例,比较器电路150可以配置为对每一个rtc时钟循环执行比较逻辑,从而给予信号跨导线阵列140的传播足够的时间。

根据至少一个实施例,在导线阵列140上的值失配可以指示在防御性屏障(例如,安全系统100)中的破缺或者在asic上的攻击。可以例如通过比较器电路150检测到这样的值失配,该比较器电路150将信号(160)发送至相关联的警报响应机构。取决于实施方式,警报响应机构可以是安全系统100的一部分、连接至安全系统100、和/或以其他方式与安全系统100通信(例如,经由通过有线网络或者无线网络的直接连接或者间接连接)以使得警报响应机构以有效率的方式接收并且处理比较器电路150生成的信号(160)。

图2示出了集成电路的安全系统210和警报响应系统220的示例布置。根据至少一个实施例,安全系统210可以与警报响应系统220通信(例如,通过网络)或者连接至警报响应系统220(例如,经由有线连接或者无线连接),使得如果安全系统210检测到在集成电路的防御屏障中的可能的故障或者潜在的破缺,则安全系统210可以将信号传送(例如,发送、提供等)至警报响应系统220(例如,用于警示图1中所示的示例系统100中的警报响应机构的信号(160)),并且警报响应系统220可以确定是否要采取任何动作,并且如果是,则确定要采取什么特定动作。

例如,可以按照多种可配置的方式来处置警报响应系统220响应于接收到来自安全系统210的信号(例如,来自在图1中示出的并且在上面详细描述的示例系统100的比较器电路150的信号(160))而生成的警报或者采取的响应。例如,这样的警报可以处于可动作响应的形式,所述可动作响应诸如中断处理器230、或者通过控制电源240来部分关闭或者完全关闭集成电路。取决于特定的攻击,响应最好可以是缓慢的并且被测量到,或者如果响应是快速的并且破坏性的则可能更好。在另一个示例中,警报响应系统220可以配置为使其看起来如同完全没有发生事情,而实际上将装置(例如,asic)的机密锁定或者以其他方式进行保护。因此,根据至少一个实施例,安全系统210可以包括警报响应系统(机构)220或者结合警报响应系统(机构)220操作,该警报响应系统(机构)220配置为具有各种水平的响应(例如,将特定类型的响应与给定的威胁相附联)。

应当注意,即使当asic断电时或者处于“关闭”状态时,安全系统(例如,在图1中示出的示例系统100)也可以继续监视在每个rtc时钟循环的活动。例如,任何检测到的侵犯都可以导致计数器增量,该计数器在断电期间是活动的(例如,通过使用常开(always-on)逻辑)。在从断电状态恢复之后(例如,当asic上电或者以其他方式切换至“打开”状态时),非常开逻辑变得可用并且立即感测(例如,确定)计数器的值。如果该值非0,则可以发送警报并且可以存储计数器的值以供后续使用(例如,待由相关联的程序查询)。

图4是用于防御在专用集成电路上的侵入性攻击的示例过程400。

在框405中,可以更新prbs(例如,在图1中示出的示例系统100中的prbs生成器电路120)的值(例如,随机值)。可以更新prbs,例如通过使用trng(例如,trng130)生成的输出来更新,从而将向prbs提供熵源并且使潜在的攻击者更难以猜到prbs的未来值。

在框410中,可以跨导线阵列(例如,在图1中示出的示例系统100中的n线总线140)驱动prbs的经更新的随机值。根据至少一个实施例,可以跨组成阵列的迹线导线中的一条或者多条驱动prbs的经更新的值(来自框405)。

在框415中,可以确定在框410中跨导线阵列驱动的值是否与期望值匹配(或者与其相同)。例如,根据至少一个实施例,在框415中进行的确定可以基于被传输至阵列的一端的值与在阵列的另一端接收到的值的比较(例如,由图1中示出的示例系统100中的比较器电路150执行的比较)。这样的比较可能不仅涉及驱动prbs值(例如,在框405中生成的比特值)的阵列中的一条或者多条活动导线,还涉及连结至值0或者地的阵列的迹线。根据至少一个实施例,在框415中的比较可以在每一个rtc时钟循环中执行,从而允许信号跨导线阵列的传播有足够的时间(在框410中)。

如果在框415中确定驱动的值与期望值相同,则过程可以返回框405,在框405中再次更新prbs值。

另一方面,如果在框415中确定跨导线阵列驱动的值与期望值不匹配,则可以在框420中生成警报。例如,根据至少一个实施例,(在框415中确定的)在导线阵列415上的值失配可以指示在防御屏障(例如,安全系统100)中的破缺或者在asic上的攻击。如果在框415中检测到这样的值失配(例如,通过比较器电路150),则可以在框420中生成警报信号(例如,在图1中示出的示例系统100中的信号(160))。可以将在框420中生成的警报发送至与安全系统相关联的或者作为安全系统的一部分的警报响应机构或者系统(例如,在图2中示出的警报响应系统220)。

在框425中,可以基于在框420中生成的警报来确定生成的警报的数目是否满足条件。例如,根据至少一个实施例,在框425中进行的确定可以是确定在预定时间段(例如,30秒、2分钟、5分钟等)期间是否已经生成了阈值数目的警报(例如,3个警报、5个警报、10个警报等)、在特定的时间间隔(例如,5秒、30秒等)内是否已经生成了阈值数目的警报,这可以指示在芯片上的特定类型的潜在攻击等。如果在框425中确定生成的警报的数目不满足该条件,则过程可以返回框405,在框405中更新prbs值。

如果,相反,在框425中确定生成的警报的数目满足条件,则在框430中确定错误或者故障检测掩蔽过程或者参数是否就绪。如果在框430中确定应当掩蔽检测到的错误或者故障,则过程返回框405。例如,根据至少一个实施例,警报响应系统(例如,在图2中示出的警报响应系统220)可以配置为使其看起来如同完全没有发生事情(例如,在框430中的错误或者故障检测掩蔽),而实际上装置(例如,asic)的机密锁定或者以其他方式进行保护。

另一方面,如果在框430中确定错误或者故障检测掩蔽并未就绪,则在框435中可以发起对在框420中生成的警报的动作响应。这样的可动作响应可以是例如中断芯片的处理器(例如,处理器230)、或者通过控制供应至芯片的电力(例如,控制电源240)来部分关闭或者完全关闭芯片。取决于特定的情形(例如,在一段时间内生成的警报的数目、在生成的警报之间的时间间隔等),在框435中发起的响应可以是缓慢的并且经计算的响应,或者相反该响应可以是快速的并且破坏性的。

前面的详细描述已经经由使用框图、流程图、和/或示例对装置和/或过程的各个实施例进行了阐述。就这样的框图、流程图、和/或示例包含一个或者多个功能和/或操作而言,本领域技术人员要明白,在这样的框图、流程图、或者示例内的每个功能和/或操作可以由范围广泛的硬件、软件、固件、或者事实上其任何组合来单独地和/或共同地实现。根据至少一个实施例,可以经由一个或者多个asic、现场可编程门阵列(fpga)、数字信号处理器(dsp)、或者其它集成格式来实现在本文中描述的主题的若干部分。然而,本领域的技术人员要认识到,在本文中所公开的实施例的一些方面能够整体地或者部分地在一个或者多个集成电路中等效地被实现为在一个或者多个计算机上运行的一个或者多个计算机程序、实现为在一个或者多个处理器上运行的一个或者多个程序、实现为固件、或者实现为其任何虚拟组合,并且认识到根据本公开设计电路系统和/或编写软件和/或固件的代码也将在本领域的技术人员的技术范围内。

另外,本领域的技术人员要了解,能够将在本文中描述的主题的机制分发为各种形式的程序产品,并且不论用于实际执行该分布的非暂时性信号承载介质的特定类型如何,在本文中描述的主题的说明性实施例都适用。非暂时性信号承载介质的示例包括但不限于以下:可记录型介质,诸如,软盘、硬盘驱动器、压缩盘(cd)、数字视频盘(dvd)、数字磁带、计算机存储器等。

关于在本文中大幅度使用的任何复数的和/或单数的术语,由于适用于场境和/或申请,本领域的技术人员可以从复数转化为单数和/或从单数转化为复数。为了清楚起见,可以在本文中对各种单/复数置换进行明确地阐述。

因此,已经描述了本主题的特定实施例。其它实施例在以下权利要求书的范围内。在一些情况下,可以按照不同的顺序来执行在权利要求书中阐述的动作,并且仍然实现期望的结果。另外,为了实现期望的结果,在附图中描绘的过程不一定要求示出的特定顺序、或者连续顺序。在某些实施方式中,多任务处理和并行处理可以是有利的。

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