首页> 中国专利> 用于集成电路的基于双随机位生成器的防篡改系统

用于集成电路的基于双随机位生成器的防篡改系统

摘要

一种装置包括网格块,被配置为生成第一数字的第一数字生成器,被配置为生成第二数字的第二数字生成器,以及被配置为将该第一数字与第二数字进行比较并且从该网格块生成输出信号的比较器块。该输出信号指示在该网格块上的未授权活动的出现。

著录项

  • 公开/公告号CN104982095A

    专利类型发明专利

  • 公开/公告日2015-10-14

    原文格式PDF

  • 申请/专利权人 马维尔国际贸易有限公司;

    申请/专利号CN201480008329.0

  • 申请日2014-02-24

  • 分类号H05K1/02(20060101);G06K19/073(20060101);H04L9/00(20060101);G09C1/00(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 巴巴多斯圣米加勒

  • 入库时间 2023-12-18 11:19:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    专利权的转移 IPC(主分类):G06F21/86 登记生效日:20200427 变更前: 变更后: 申请日:20140224

    专利申请权、专利权的转移

  • 2018-02-23

    授权

    授权

  • 2016-01-06

    实质审查的生效 IPC(主分类):H05K1/02 申请日:20140224

    实质审查的生效

  • 2015-10-14

    公开

    公开

说明书

相关申请的交叉引用

本公开要求于2013年3月1日提交的题为“DUALPSEUDO-RANDOM BITS GENERATOR-BASED ACTIVE MESHWIRE ANTI-TAMPER SYSTEM FOR INTEGRATED CIRCUITS”的美国临时申请No.61/771511的权益,其通过引用的方式整体并入于此。

背景技术

这里所提供的背景技术描述是为了总体上呈现本公开的上下文的目的。本发明人的工作(到该背景技术部分中所描述的工作的程度)以及描述中在提交时并不以其它方式构成现有技术的方面,既非明确也非隐含地被承认形成相对本公开的现有技术。

防篡改(AT)系统旨在针对诸如计算机处理器、集成电路(IC)和多芯片模块之类的电子硬件的功能的逆向工程或改动提供保护。AT系统能够被归类为被动或主动AT系统。例如,被动AT系统包括在集成电路的关键部分之上的共形的涂层和/或排列网格(mesh)线路,而使得该关键部分在不去除该涂层和/或网格线路的情况下不可见。在使用网格线路的被动AT系统中,没有电信号通过该网格线路进行传送。另一方面,主动AT系统在检测到未授权活动时采取保护性动作。在包括网格线路的主动AT系统中,可以通过该网格线路传送电信号以便检测触发保护性动作的未授权活动。

发明内容

在一个实施例中,一种装置包括网格块,被配置为生成第一数字的第一数字生成器,被配置为生成第二数字的第二数字生成器,以及被配置为将该第一数字与第二数字进行比较并且从该网格块生成输出信号的比较器块。该输出信号指示在该网格块上的未授权活动的出现。

在一个实施例中,一种方法包括分别使用网格块中的第一数字生成器和第二数字生成器来生成第一数字和第二数字,并且将该第一数字与第二数字进行比较以从该网格块生成输出信号。该输出信号指示在该网格块上的未授权活动的出现。

附图说明

参考以下附图对作为示例而提供的本公开的各个实施例进行详细描述,其中同样的附图标记指代同样的元件,并且其中:

图1是包括防篡改(AT)系统和控制器的集成电路(IC)的一部分的框图。

图2是根据一个实施例的AT系统的示图。

图3A是根据一个实施例的图2的AT系统中所包括的时钟篡改检测器的电路图。

图3B和3C图示了与图3A中的电路的操作相关的波形。

图4A图示了根据一个实施例的网格块。

图4B图示了根据一个实施例的图4A的网格块中所包括的网格缓冲器的一部分。

图4C图示了根据一个实施例的图4A中的网格块中所包括的反相块的一部分。

图4D图示了根据一个实施例的图4A中的网格块中所包括的用于生成伪随机数的第一电路的示图。

图4E是根据一个实施例的图4A中的网格块中所包括的用于生成伪随机数的第二电路的示图。

图5是图示根据一个实施例的包括图4A中的网格块的一部分的多个分层的截面图。

图6是根据一个实施例的用于生成AT系统的警报信号的方法的流程图。

图7是根据一个实施例的用于生成AT系统的警报信号的方法的流程图。

具体实施方式

图1是包括防篡改(AT)系统1-110和控制器150的集成电路(IC)的部分100的框图。当AT系统1-110检测到非授权活动时,AT系统1-110向控制器150提供包括一个或多个位的警报信号1-130以便采取保护性动作。例如,这些非授权活动包括蚀刻AT系统1-110的一部分、绕过AT系统1-110的网格线路以及禁用AT系统1-110中的时钟信号以便对IC的功能进行逆向工程或改动中的一种或多种活动。

控制器150响应于用于采取保护性动作的警报信号1-130而控制IC的电路元件。该保护性动作可以包括禁用IC芯片的一些功能、重写或擦除IC芯片的存储器单元中的一些或所有存储器单元,或者物理损坏或清除IC芯片的关键元件中的一种或多种。

图2是根据一个实施例的AT系统2-110的示图。AT系统2-110包括多个网格块210-1至210-n、时钟篡改检测器220和时钟生成器260。

多个网格块210-1至210-n生成多个块输出信号230-1至230-n,输出信号中的每个输出信号指示相对应的网格块是否检测到非授权活动。例如,当网格块210-1至210-n之一的一部分被蚀刻以暴露出处于该网格块的被蚀刻部分下方的IC芯片的关键部分时,该网格块生成具有诸如逻辑高值(例如,“1”)的第一逻辑值的相对应的块输出信号;否则该网格块生成诸如逻辑低值(例如,“0”)的第二逻辑值。

时钟生成器260被耦合至多个网格块210-1至210-n以及时钟篡改检测器2-220。时钟生成器260通过多个时钟线路265-1至265-(n+1)向多个网格块210-1至210-n和时钟篡改检测器2-220提供时钟信号。响应于该时钟信号,多个网格块210-1至210-n可以执行逻辑操作。

块输出信号230-1至230-n与时钟篡改检测信号2-232在一起被分组为(n+1)位的警报信号2-130。时钟篡改检测信号2-232由时钟篡改检测器2-220生成,并且在被重置时取逻辑值1,并且在一个时钟周期后假设等于块输出信号230-1至230-n的逻辑OR的值。结果,尝试通过切断时钟信号而对活跃的网格块210-1至210-n之一去激活将会使得警报信号2-130中的时钟篡改检测信号2-232变为停顿在逻辑1,这以信号发出警报。

图3A是根据一个实施例的适于用作图2的时钟篡改检测器2-220的时钟篡改检测器3-220的电路图。时钟篡改检测器3-220包括n输入的OR门304以及锁存器308。

对应于图2的块输出信号230-1至230-n的警报信号Alarm-1至Alarm-n均被连接至n位OR门304的输入。对应于时钟线路265-(n+1)上的信号的时钟信号CLK被连接至锁存器308的时钟输入。重置信号RESET被连接至锁存器308的设置输入。该锁存器的输出被连接至Alarm-(n+1)信号,其对应于图2的时钟篡改检测信号2-232。时钟篡改检测器3-220的操作将参考图3B和3C进行解释。

图3B和3C图示了与图3A的时钟篡改检测器3-220相关联的波形。图3B和3C图示了图3A中的Alarm-1至Alarm-n信号、Alarm-(n+1)信号、重置信号RESET和时钟信号CLK的波形。

图3B图示了在时钟信号CLK进行操作时的时钟篡改检测器3-220的操作。在第一时间t1,施加重置信号RESET,其对锁存器308进行设置并且因此使得Alarm-(n+1)信号具有如边沿321所示的逻辑高值(例如,“1”)。在一个实施例中,该第一时间t1对应于与时钟信号CLK具有不同周期的另一时钟信号的边沿。当多个网格块210-1至210-n(参见图2)并未检测到非授权活动时,Alarm-1至Alarm-n信号在第一时间t1具有逻辑低值(例如,“0”)。

在继第一时间t1之后的对应于时钟信号CLK的上升沿312的第二时间t2,锁存器308进行时钟计时并且因此Alarm-(n+1)信号具有对应于Alarm-1至Alarm-n信号的逻辑OR的值。由于Alarm-1至Alarm-n信号在第二时间t2全部具有逻辑低值,所以Alarm-(n+1)变为具有逻辑低值,并且因此不以信号发出警报。

图3C图示了时钟篡改检测器3-220在时钟信号CLK已经由于非授权活动而被禁用时的操作,上述非授权活动诸如切断图2中的时钟线路265-1至265-(n+1)。结果,时钟篡改检测器3-220根据对Alarm-1至Alarm-n信号的OR运算而并不产生输出。

参考图3C,在对应于图3B的第一时间t1的第三时间t3,施加重置信号RESET以设置锁存器308,这使得Alarm-(n+1)信号具有如边沿341所示的逻辑高值(例如,“1”)。当多个网格块210-1至210-n(参见图2)并未检测到非授权活动时,Alarm-1至Alarm-n信号在第三时间t3具有逻辑低值(例如,“0”)。

在对应于图3B的第二时间t2的第四时间t4,由于时钟信号310已经被去激活,所以锁存器308并不进行时钟计时,并且因此Alarm-(n+1)信号并不具有对应于Alarm-1至Alarm-n信号上的逻辑OR运算的值。结果,Alarm-(n+1)信号在第四时间t4及其之后继续具有逻辑高值。

由于至少对应于图2的时钟篡改检测信号232的Alarm-(n+1)信号继续具有逻辑高值,所以图2的警报信号2-130包括至少一个具有逻辑高值的位并且可以使得控制器150(参见图1)触发保护性动作。因此,可以使用Alarm-(n+1)信号而挫败通过去激活时钟信号CLK而禁用AT系统2-110的尝试。

图4A图示了根据一个实施例的对应于图2所示的第i个网格块210-i的网格块4-210。网格块4-210包括第一伪随机数生成器(PRNG)4-410、第一多个网格线路411-1至411-32、网格缓冲器4-420、第二多个网格线路412-1至412-32,以及具有第二PRNG 4-450和比较器4-470的比较器块4-460。

第一PRNG 4-410位于远离比较器块4-460的网格块4-210的一部分处或者在其下面并且生成作为X=x1x2....xn的第一n位数X。在一个实施例中,第一PRNG 4-410包括线性反馈移位寄存器(LFSR),其使用初始值(或种子(seed))和反馈功能来生成伪随机数。在一个实施例中,该反馈功能使用包括多个异或(XOR)门的反馈网络来实施。在另一实施例中,该反馈功能可以使用被加载到反馈矢量寄存器中的反馈矢量而被指定。第一PRNG 4-410可以包括斐波纳契(Fibonacci)LFSR或伽罗瓦(Galois)LFSR。

指示第一32位数X的二进制数x1x2....xn的多个第一随机信号(或者多个第一伪随机信号)413-1至413-32分别通过第一多个网格线路411-1至411-32并行传送。例如,指示第一二进制数x1的第一信号413-1通过第一网格线路411-1进行传送,指示第二二进制数x2的第二信号413-2通过第二网格线路411-2进行传送,等等。

第一多个网格线路411-1至411-32将第一PRNG 4-410连接至网格缓冲器4-420。在一个实施例中,第一多个网格线路411-1至411-32中相邻的网格线路被狭窄地间隔开而使得用于对处于网格线路411-1至411-32下方的IC芯片的关键部分进行逆向工程的非授权活动(例如,蚀刻或绕过网格线路411-1至411-32)变得难以进行。例如,两条相邻的网格线路可以间隔约0.4μm的距离d。

网格缓冲器4-420通过第一多个网格线路411-1至411-32接收对应于二进制数x1x2....xn的多个第一随机信号413-1至413-32,并且通过第二多个网格线路412-1至412-32输出对应于经修改的二进制数x’1x’2....x’32的多个经修改的信号414-1至414-32。在一个实施例中,如以下将参考图4B更为详细进行解释的,网格缓冲器4-420对所接收的随机信号413-1至413-32进行反相并放大,并且还对所接收的随机信号413-1至413-32的信号路径进行混排(jumble)。如这里所使用的,术语“混排”是指将信号路径连接至去往在两个结合点之间可用的多条信号路径中的一个信号路径。例如,通过由网格缓冲器4-420通过第一多个网格线路411-1至411-32之一(例如,第一网格线路411-x)接收的信号通过经由在网格缓冲器4-420处对信号路径进行混排而将该第一网格线路411-x连接至第二多个网格线路412-1至412-32之一而被传送至比较器块4-460。

图4B图示了根据一个实施例的被包括在图4A的网格块4-410中的网格缓冲器4-420的部分4-440。网格缓冲器4-420的部分4-440包括多个缓冲器472a至472d,它们如图4B所示耦合至多个串联的反相器470a至470d。

在图4B所示的这一实施例中,分别指示二进制数x1至x4的随机信号413-1至413-4被输入到网格缓冲器4-420的部分4-440。例如,第四反相器470d接收指示对应于逻辑高值(例如,“1”)的第一二进制数x1的第一随机信号413-1并且输出指示逻辑低值(例如,“0”)的第四反相信号415-4。随后,第四缓冲器472d对第四反相信号415-4进行放大以生成第四经修改的信号414-4。结果,第四经修改的信号414-4指示第一随机信号413-1的经反相的值并且具有高于第一随机信号413-1的信号强度。

指示对应于逻辑低值(例如,“0”)的第二二进制数x2的第二随机信号413-2被输入到第二反相器470b以生成指示逻辑高值(例如,“1”)的第二反相信号415-2。随后,该第二反相信号415-2被第二缓冲器472b所放大以输出第二经修改的信号414-2。结果,第二经修改的信号414-2指示第二随机信号413-2的经反相的值并且具有高于第二随机信号413-2的信号强度。

指示对应于逻辑高值(例如,“1”)的第三二进制数x3的第三随机信号413-3被输入到第三反相器470c以生成指示逻辑低值(例如,“0”)的第三反相信号415-3。随后,该第三反相信号415-3被第三缓冲器472c所放大以输出第三经修改的信号414-3。结果,第三经修改的信号414-3指示第三随机信号413-3的经反相的值并且具有高于第三随机信号413-3的信号强度。

指示对应于逻辑低值(例如,“0”)的第四二进制数x4的第四随机信号413-4被输入到第一反相器470a以生成指示逻辑高值(例如,“1”)的第一反相信号415-1。随后,该第一反相信号415-1被第一缓冲器472a所放大以输出第一经修改的信号414-1。结果,第一经修改的信号414-1指示第四随机信号413-4的经反相的值并且具有高于第四随机信号413-4的信号强度。

按以上所描述的方式,网格缓冲器4-420的该部分可以对随机信号413-1至413-4进行反相、放大和混排以生成经修改的信号414-1至414-4。结果,第一经修改的信号414-1、第二经修改的信号414-2、第三经修改的信号414-3和第四经修改的信号414-4分别是对应于第四随机信号413-4、第二随机信号413-2、第三随机信号413-3和第一随机信号413-1的经反相和放大的信号。

借鉴这里的公开和教导的本领域技术人员将会理解的是,随机信号413-1至413-4可以使用反相器470a至470d和缓冲器472a至472d的各种配置而被反相、放大并混排以生成经修改的信号414-1至414-4。借鉴这里的公开和教导的本领域技术人员将会理解的是,反相器470a至470d中的反相器和缓冲器472a至472d中的缓冲器的每种组合都可以替代以使用反相缓冲器来提供。

返回参考图4A,网格缓冲器4-420可以对多个第一随机信号413-1至413-32进行反相和混排以产生多个经修改的信号414-1至414-32。结果,通过将第一PRNG 4-410连接至比较器4-470而绕过第一和第二多个网格线路411-1至411-32和412-1至412-32的尝试将会导致被绕过的信号和第二多个信号418-1至418-32之间的信号失配,由此生成指示绕过尝试的出现的块输出信号4-230。

此外,网格缓冲器4-420可以对多个第一随机信号413-1至413-32进行放大以对对应于第一32位数字X的二进制数x1x2....x32的信号413-1至413-32通过第一和第二多个网格线路411-1至411-32和412-1至412-32以及比较器块线路417-1至417-32的传输损耗进行补偿。

在一个实施例中,多个经修改的信号414-1至414-32通过第二多个网格线路412-1至412-32和比较器块线路417-1至417-32而被输入到比较器块4-460中所包括的反相块4-480。比较器块线路417-1至417-32可以被置于不同于第二多个网格线路412-1至412-32的分层之中。例如,如将关于图5所描述的,当第二多个网格线路412-1至412-32被置于上部互连层中时,比较器块线路417-1至417-32可以被置于位于该上部互联层下方的一个或多个下部互连层中。

反相块4-480将多个经修改的信号414-1至414-32再次反相以输出第一多个输入信号419-1至419-32。在一个实施例中,如以下将参考图4C进行解释的,反相块4-480还可以将所接收的信号414-1至414-32进行混排而使得第一多个输入信号419-1至419-32具有分别对应于多个第一随机信号413-1至413-32的逻辑值。

图4C图示了根据一个实施例的被包括在图4A的网格块中的反相块4-480的部分4-490。指示对应于逻辑低值(例如,“0”)的反相二进制数x’4的第四经修改的信号被反相块4-480的第四反相器475d反相为第一输入信号419-1。第一输入信号419-1指示对应于高逻辑值(例如,“1”)的二进制数x1”。结果,第一输入信号419-1具有与第一随机信号413-1的逻辑值x1相同的逻辑值x”1。类似地,第四输入信号419-4具有与第四随机信号413-4的逻辑值x4(例如,“0”)相对应的逻辑值x”4(例如,“0”)。

指示对应于高逻辑值(例如,“1”)的反相二进制数x2’的第二经修改的信号414-2被反相块4-480的第二反相器475b反相为指示二进制数x2”的第二输入信号419-2。第二输入信号419-2指示对应于逻辑低值(例如,“0”)的二进制数x2”。结果,第二输入信号419-2具有与第二随机信号413-2的逻辑值x2相对应的逻辑值x”2。类似地,第三输入信号419-3具有与第三随机信号413-3的逻辑值x3(例如,“1”)相对应的逻辑值x”3(例如,“1”)。

反相块4-480的部分4-490对经修改的信号414-1至414-4进行反相和混排以生成输入信号419-1至419-4。结果,第一输入信号419-1、第二输入信号419-2、第三输入信号419-3和第四输入信号419-4具有分别对应于第一随机信号413-1、第二随机信号413-2、第三随机信号413-3和第四随机信号413-4的相同逻辑值。借鉴这里的公开和教导的本领域技术人员将会理解的是,可以使用反相器475a至475d以及连接反相器475a至475d的线路的各种配置对经修改的信号414-1至414-4进行反相和混排以生成输入信号419-1至419-4。

按以上所描述的方式,反相块4-480对多个经修改的信号414-1至414-32进行反相和混排而使得输出的第一多个输入信号419-1至419-32分别具有与第一多个随机信号413-1至413-32相同的逻辑值。结果,对应于由第一PRNG 4-410生成的二进制数(x1,x2,...,xn)的第一多个输入信号419-1至419-32被输入到比较器4-470。

第二PRNG 4-450位于比较器块4-460中并且生成作为y1y2....yn的第二n位数字Y。由于第二PRNG 4-450被嵌入在比较器块4-460中,所以为了提取第二n位数字Y而针对第二PRNG 4-450的外部访问将会难以进行。在一个实施例中,比较器块4-460整体或部分位于第二多个网格线路412-1至412-32之下,这进一步增加了篡改或观察第二PRNG 4-450和比较器块4-460的操作的难度。

在一个实施例中,第二PRNG 4-450包括线性反馈移位寄存器(LFSR),该LFSR使用与第一PRNG 4-410相同的种子和反馈功能来产生伪随机数。结果,由第一PRNG 4-410生成的二进制数x1x2....xn分别对应于由第二PRNG 4-450生成的二进制数y1y2....yn

在一个实施例中,用来实施第二PRNG 4-450的电路基本上复制了用来实施第一PRNG 4-410的电路。在另一实施例中,用来实施第二PRNG 4-450的电路不同于用来实施第一PRNG 4-410的电路,但是在使用与第一PRNG 4-410相同的种子和反馈功能时产生相同的伪随机数序列。

比较器4-470接收指示第一随机数X的二进制数(x1,x2,...,xn)的第一多个输入信号419-1至419-32以及指示第二随机数Y的二进制数(y1,y2,...,yn)的第二多个输入信号418-1至418-32,以便生成块输出信号4-230,该块输出信号4-230指示X=Y或X≠Y。在一个实施例中,比较器4-470生成块输出信号4-230,该块输出信号4-230在X=Y的情况下具有逻辑低值(例如,“0”),并且在X≠Y的情况下具有逻辑高值(例如,“1”)。

在一个实施例中,如图4A所示,比较器4-470并行地接收指示二进制数(x1,x2,...,xn)的第一多个输入信号419-1至419-32以及指示二进制数(y1,y2,...,yn)的第二多个输入信号418-1至418-32。例如,比较器4-470包括具有数目为n的单元的迭代网络(未示出),每个单元接收一对位X和Y。在该迭代网络中,该迭代网络的第一单元(未示出)接收指示二进制数x1和y1的输入信号419-1和418-1,并且该迭代网络的第二单元(未示出)接收指示二进制数x2和y2的输入信号419-2和418-2,等等。

在另一实施例中,比较器4-470按顺序接收指示二进制数(x1,x2,...,xn)的第一多个输入信号419-1至419-32以及指示二进制数(y1,y2,...,yn)的第二多个输入信号418-1至418-32。例如,比较器块4-460包括第一串行化器,其并行地接收第一多个输入信号419-1至419-32并且按顺序输出指示二进制数(x1,x2,...,xn)之一的第一输入信号。比较器块4-460还包括第二串行化器,其并行地接收第二多个输入信号418-1至418-32并且以与第一串行化器相同的顺序输出指示二进制数(y1,y2,...,yn)之一的第二输入信号。结果,第一和第二串行化器向比较器4-470的单元输出第一和第二输入信号而使得该单元基本上同时接收到一对相对应的二进制数(xi,yi)。比较器4-470生成块输出信号4-230,该块输出信号4-230在X=Y的情况下具有逻辑低值(例如,“0”),并且在X≠Y的情况下具有逻辑高值(例如,“1”)。

图4D是根据一个实施例的被包括在图4A的网格块中的第一PRNG 4-410的电路图。第一PRNG 4-410包括LFSR 432、串行输入并行输出(SIPO)移位寄存器434、时钟分频器(clock divider)436和多位锁存器438。

向LFSR 432提供高频时钟(HSC)。在HFC的每个周期,LFSR432根据LFSR 432的当前内部状态值和反馈功能而在其输出(“out”)生成新的输出位。LFSR 432还根据LFSR 432的当前内部状态值和反馈功能生成新的内部状态值。

当LFSR 432被初始化时,LFSR 432的内部状态值被设置为种子值。在一个实施例中,每个网格块可以具有不同的种子值。

在一个实施例中,该种子值是由LFSR 432的设计预先确定的。在一个实施例中,由控制器或处理器将该种子值提供至LFSR 432,使用串行总线或并行总线将该种子值传输至LFSR 432。在一次初始化期间被提供至LFSR 432的种子值可以不同于在之前或后续初始化期间被提供至LFSR 432的种子值。

LFSR 432所使用的反馈功能可以由电路设计来确定。可替换地,该反馈功能可以由使用串行总线或并行总线而被提供至LFSR 432的反馈矢量来确定。例如,该反馈矢量可以包括用于LSFR中的每个分接头(tap)的控制位,其中该分接头被用来在相应控制位处于第一逻辑状态时生成反馈,并且该分接头并不被用来在相应控制位处于第二逻辑状态时生成反馈。

在HSC的每个周期,移位寄存器434在串行输入(“sin”)上接收LFSR 432的输出并且将之前所接收到的位下移一个位置,而使得在N个时钟周期之后,在移位寄存器434的并行输出(“pout”)上提供LFSR 432的N个最近的输出值。

时钟分频器436通过对HSC做除法而产生时钟CLK。在时钟CLK的每个周期,锁存器438载入在移位寄存器434的并行输出pout上的值。锁存器438的输出提供第一随机信号413-1至413-32。

在一个实施例中,时钟分频器436通过将HSC除以等于锁存器438中的位数的除数而产生时钟CLK。在另一实施例中,时钟分频器436通过将HSC除以大于锁存器438中的位数的除数而产生时钟CLK。使用大于锁存器438中的位数的除数可以增大根据第一随机信号413-1至413-32来确定LFSR 432的种子值和/或反馈功能的难度。

图4E是根据一个实施例的被包括在图4A的网格块中的第二PRNG 4-450的电路图。第二PRNG 4-450包括LFSR 452、串行输入并行输出(SIPO)移位寄存器454和多位锁存器458。

第二PRNG 4-450以与图4D的第一PRNG 4-410相同的方式进行操作,并且使用相同的种子值、反馈功能、高速时钟(HSC)和时钟CLK。结果,由第二PRNG 4-450在时钟CLK的一个周期期间在第二多个输入信号418-1至418-32上产生的值将与由图4E的第一PRNG 4-410在时钟CLK的该周期期间在第一多个随机信号413-1至413-32上产生的值相同。

在一个实施例中,第二PRNG 4-450使用由第一PRNG 4-410的时钟分频器436产生的时钟CLK。在另一实施例中,第二PRNG 4-450使用与第一PRNG 4-410的时钟分频器436相同的时钟分频器生成一个版本的时钟CLK。在一个实施例中,第二PRNG 4-450所使用的时钟CLK相对于由第一PRNG 4-410使用的时钟CLK有所延迟以与线路网格中的电路延迟相适应。

图5是图示根据一个实施例的图示出多个分层的截面图500。截面图500图示了沿图4A所示的直线A-A'的截面。该截面包括重分布层540、第一至第六互连层531至536(经常分别被称作金属1层至金属6层)、设备层520和衬底510。第一至第五互连层531至535是下部互连层,并且第六互连层536是上部互连层。在一个实施例中,在第一至第六互连层531至536的上方、下方或者在上方和下方两者可能存在附加的互连层。

对应于多个网格线路412-22至417-32(参见图4A)的多个网格线路512-22至512-32被包括在第六互连层536中。网格线路512-22至512-32被间隔开从而防止诸如通过探测而对网格线路512-22至512-32下方的电路进行物理和/或电气访问,上述电路诸如第一至第五互连层531至535中的互连和/或设备层520中的电子设备。例如,在40纳米的CMOS工艺中,网格线路512-22至512-32可以间隔40微米。

重分布层(RDL)540包括重分布金属层541,该重分布金属层541分布用于IC芯片中的电路的电力。重分布金属层541可以基本上覆盖RDL的表面的全部,并且相应地可以防止对RDL 540之下的电路进行视觉检验。RDL 540还包括用作绝缘层的电介质层544。在一个实施例中,电介质层544包括进一步遮挡下面电路的不透明材料。在一个实施例中,不透明覆盖层覆盖RDL 540。

设备层520包括连接在一起以形成电路的多个主动和被动电子设备,诸如执行IC芯片的各种操作的逻辑门。主动和被动电子设备使用第一至第六互连层531至536中的一个或多个互连线路进行连接。

设备层520的位于网格线路512-22至512-32之下的部分包括被保护免于篡改和逆向工程的设备和电路。在一个实施例中,诸如图2和4所示的电路的监视网格线路512-22至512-32的一些或全部电路位于设备层520中的处于网格线路512-22至512-32下面的部分中,从而该监视电路被保护免于篡改和逆向工程。

第一至第六互连层531至536中的每个互连层包括通过介电材料分离的传导性互连。互连层531至536可以包括其中布置不同类型的金属线路的多个分层。此外,不同类型或群组的信号可以使用不同的互连层跨IC芯片而被路由。

例如,图2的时钟线路265-1至265-(n+1)可以使用位于包括网格线路512-22至512-32在内的网格线路之下的第二和第三互连层532和533的部分而跨芯片进行路由。图2中向图1的控制器150传送图2中的(n+1)位警报信号2-130的警报线路230-1至230-n可以使用位于网格线路之下的第二、第三和/或第四互连层532至534的部分跨芯片进行路由。比较器块线路417-1至417-32可以被置于第一至第五互连层531至535中的一个或多个互连层中,而使得比较器块线路417-1至417-32在被置于第六互连层536中的多个网格线路下面的分层中。其它线路或电路可以类似地得到保护。结果,图1的防篡改系统1-110保护其自身免于篡改和逆向工程。

图6是根据一个实施例的用于生成网格块的块输出信号的方法的流程图600。该方法可以被用来检测网格块上的非授权活动,例如蚀刻网格块的一部分以暴露出被蚀刻部分下面的IC芯片的关键部分。

在S610,由第一伪随机数生成器(PRNG)和第二伪随机数生成器生成第一n位伪随机数和第二n位伪随机数。在一个实施例中,第二PRNG位于比较器块中而使得难以对第二PRNG进行外部访问。第一PRNG和第二PRNG生成伪随机数的匹配序列。

在S620,使用网格块传送第一伪随机数并且由比较器块接收第一伪随机数。

在S630,在比较器块中将所接收的第一伪随机数与第二伪随机数进行比较。该比较器块可以生成指示这两个n位数是否相同的块输出信号。在一个实施例中,该比较器块生成块输出信号,该块输出信号在这两个n位数相同时具有逻辑低值(例如,“0”)并且在这两个n位数不同时具有逻辑高值(例如,“1”)。

图7是根据一个实施例的用于生成AT系统的警报信号的方法的流程图700。该方法可以被用来检测IC芯片中所包括网格块中的一个或多个网格块上的非授权活动,由此生成警报信号以针对IC芯片功能的逆向工程或改动而采取保护性动作。

在S710,接收多个块输出信号,每个块输出信号已经根据图6所示的方法被生成。在一个实施例中,该多个块输出信号中的每个块输出信号具有逻辑低值(例如,“0”)或逻辑高值(例如,“1”)。

在S730,输出基于所接收的块输出信号的警报信号。在一个实施例中,当任何所接收的块输出信号具有逻辑高值(例如,“1”)时,该警报信号就触发针对IC芯片功能的逆向工程或改动的保护性动作。

虽然已经结合作为示例所给出的其具体实施例对本公开的多个方面进行了描述,但是可以对该示例进行替换、修改和变化。因此,如这里所给出的实施例意在是说明性而非限制性的。可能在并不背离以下所给出的权利要求的范围的情况下进行改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号