CN103503318A - 用于检测和减轻可编程逻辑器件篡改的系统和方法 - Google Patents
用于检测和减轻可编程逻辑器件篡改的系统和方法 Download PDFInfo
- Publication number
- CN103503318A CN103503318A CN201280020701.0A CN201280020701A CN103503318A CN 103503318 A CN103503318 A CN 103503318A CN 201280020701 A CN201280020701 A CN 201280020701A CN 103503318 A CN103503318 A CN 103503318A
- Authority
- CN
- China
- Prior art keywords
- value
- error counter
- integrated circuit
- circuit device
- programmable integrated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/86—Secure or tamper-resistant housings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17768—Structural details of configuration resources for security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了用于防止可编程集成电路器件的篡改的系统和方法。通常,诸如FPGA的可编程器件具有两个操作阶段:配置阶段和用户模式阶段。为了防止可编程器件的篡改和/或逆向工程,一旦推测篡改,在任一操作阶段期间可以采用各种防篡改技术来中止该器件和/或擦去该器件上存储的敏感信息。一种类型的篡改涉及用许多错误的配置尝试轰击该器件,以便将加密数据解密。通过利用坏位和粘滞差错计数器,该器件能够掌握已经发生的失败的配置尝试的数目,并且当推测到篡改时,尽管该器件仍旧处于操作的配置阶段中,仍可以启动防篡改操作。
Description
技术领域
本公开涉及用于保障可编程器件的编程数据的系统和方法,该可编程器件例如现场可编程门阵列(FPGA)或以防复制及其他篡改的其他可编程逻辑器件(PLD)。
背景技术
可编程器件是众所周知的。在一类已知的PLD中,每个器件都具有许多逻辑门,并且用户将该器件编程,从而频繁地使用由该器件的制造商提供的软件工具来采用那些逻辑门的特定配置,该软件工具在具有适配器(该器件被插入其中)的计算机上运行。
在许多情况下,用户的兴趣在于防止其竞争者确定其特定的逻辑门配置。早期的系统通过实施诸如加密算法的各种安全措施来应对这个问题。共同受让的美国专利No.5768372和5915017描述了在非易失性存储器中存储的配置数据的加密以及当载入该可编程器件时的它的解密,其全部内容通过参考合并于此。然而,一些加密密钥能够通过用错误的配置数据轰击该器件并且分析该器件对假数据的反应来解密。因为这在该器件进入实施许多安全性算法的用户模式之前实行,所以特别难以保障不受这种类型的攻击。
发明内容
为了防止类似如上所述的攻击,本公开涉及用于减轻可编程集成电路器件的篡改的系统和方法。特别是,能够采用坏位和粘滞差错计数器来确定已经尝试了多少次不成功的器件配置。多次不成功的配置尝试能够指示发生攻击,并且因而,能够激活防篡改技术,从而当检测到许多不成功的配置尝试时能够保护该器件上的敏感数据。
按照本公开的实施例,提供了具有寄存器、控制模块和逻辑电路的可编程集成电路器件。该寄存器被配置为存储坏位。该控制模块被配置为配置该可编程集成电路器件。在开始给定的配置尝试之前,该控制模块确定该坏位的状态。如果没有设定该坏位,则该控制模块会在该给定的配置尝试开始时设定它。
按照本公开的额外实施例,当该控制模块确定在开始该给定配置尝试之前该坏位被设定时,该可控制模块能够发出警报,例如该警报指示怀疑该器件正在被篡改。在一些实施例中,当该坏位被确定为在开始该配置尝试之前被设定时,该控制模块启动防篡改操作。例如,该防篡改操作能够包括清除该可编程集成电路器件中存储的密钥和/或切断该可编程集成电路器件。
按照本公开的额外实施例,可编程集成电路器件包括寄存器,其被配置为存储差错计数器的值。在配置尝试没有完全成功之后,控制模块会更改该差错计数器的值。然后,该控制模块确定该差错计数器的值是否已经达到第一阈值。如果已经达到,则该控制模块会启动防篡改操作。在一些实施例中,可以配置许多阈值,以便随着失败的配置尝试次数积累,可以启动不同的防篡改操作。
附图说明
在结合该附图考虑下列详细说明下,本公开的进一步特性、它的性质和各种优点将会显而易见,其中贯穿附图类似的附图标记指代类似的部分,并且其中:
图1是根据说明性实施例的逻辑器件的方框图;
图2是根据说明性实施例的寄存器的方框图;
图3是根据说明性实施例的在器件的配置阶段开始时所执行的确定是否设定坏位的说明性步骤的流程图;和
图4是根据说明性实施例当器件配置尝试失败时与粘滞差错计数器关联执行的说明性步骤的流程图。
具体实施方式
通常,诸如FPGA的可编程器件具有两个操作阶段:配置阶段和用户模式阶段。该配置阶段可以包括各种操作,这些操作逐淅引到用户模式阶段,例如初始化、配置、和起动操作。该用户模式阶段大体上指的是在已经成功地完成器件的配置之后的操作阶段,其中该器件大体上基于在该配置阶段期间配置的逻辑电路工作。
为了防止可编程器件的篡改,一旦推测篡改,在任一操作阶段期间,可以采用各种防篡改技术以中止(disable)该器件和/或擦去该器件上存储的敏感信息。本文中描述了在操作的配置阶段期间采用的利用坏位和粘滞差错计数器的示例性防篡改技术的系统和方法。
如本文中所使用的术语“粘滞位”指的是可以被用于配置、控制、和/或激活各种安全措施的易失性或非易失性位或一系列位。一种类型的粘滞位,“坏位”,提供了是否先前已经进行了配置器件的不成功尝试的指示,这进而能够指示有人可能试图篡改该器件。
例如,篡改者可以实现的一种类型的攻击是轰击具有编程目标文件(POF)的器件,所述POF文件包括错误的配置数据(例如,在被解密之后不会经过循环冗余检验(CRC)的配置数据)。通过在接收该错误的配置数据之后分析该器件返回的数据,该篡改者也许能确定加密密钥的值,然后使用所确定的加密密钥可以获得对该器件上存储的敏感信息的访问权。当该器件处于它的操作的配置阶段中时并且在该器件进入该用户模式阶段(其中可以采用某些类型的防篡改操作)之前,会发生这种形式的攻击。应该注意,涉及加密密钥的任何实例都是用于说明性目的,并且可以在不偏离本公开的保护范围的情况下,同样应用于解密密钥或者其中存储的任何敏感信息。
该坏位和粘滞差错计数器能够被用于确定因为包含错误的配置数据的POF的轰击已经发生多少次不成功的对该器件进行配置的尝试。一旦已经检测到预定次数的不成功的配置尝试,尽管仍然在配置阶段中,由该粘滞位配置的防篡改安全措施可以被激活以阻挠该攻击。例如,在某些情况下,由粘滞位配置的该安全措施可以启动器件切断序列和/或清除在该器件中存储的加密密钥。在审理中的共同受让的美国专利申请No.13/097816(代理人案号No.000174-0708-101/A03694)中讨论了关于切断序列和加密密钥清除的更多细节,其全部内容通过参考合并于此。
图1示出了可能受到如上所述篡改者攻击的逻辑器件100的说明性方框图。器件100包括芯102和外围104。芯102包括能够根据由用户编程的配置数据配置的可编程序逻辑电路。例如,芯102能够被配置为管理特定类型的数字信号处理算法或如由用户编程的任何其他适当操作。芯102也可以包括安全模块106,其能够管理器件100的各种防篡改操作。例如,一旦器件100已经进入用户模式阶段,安全模块106就可以为器件100采用防篡改技术。在一个实施例中,器件100是FPGA;然而,器件100可以是任何其他适当形式的电路。例如,器件100可以是专用集成电路(ASIC)或任何适当的可编程逻辑器件。
在一些实施例中,外围104包括控制模块110和寄存器112。控制模块110大体上控制芯102的配置,并且可以管理与芯102关联的各种其他任务,诸如加密、解密、压缩、解压、和/或任何其他适当的功能。寄存器112可以包括各种类型的易失性和非易失性寄存器,例如用于存储有关于安全选项信息和/或安全选项配置的加密密钥和/或粘滞位。下面将关于图2更详细地讨论寄存器112的各种实施例。
在一些实施例中,控制模块110接收编程目标文件(POF)114。POF114包括来自用户或制造商的配置数据,其可以被用于配置芯102和/或各种安全选项(例如,防篡改安全选项),这些选项例如被存储在寄存器112或在安全模块106中。在一些实施例中,能够这样配置POF114,以便除非激活具体的安全选项,否则其不能被用于配置器件100。作为一个具体实例,除非器件100包括激活具体的防篡改安全选项的寄存器112中的保险丝坏位,否则POF114不可以被用于编程芯102的逻辑电路。下面将关于图2更详细地讨论保险丝坏位。
图2示出说明性的寄存器200,其可以大体上类似于图1的寄存器112。寄存器200可以包括第一组易失性寄存器202、第二组易失性寄存器204、电池206、和非易失性寄存器208。
在一些实施例中,第一组易失性寄存器202、第二组易失性寄存器204、和非易失性寄存器208可以被用于存储加密密钥,该密钥由控制模块110用于解密和/或加密例如图1的POF114中的配置数据。在一些实施例中,该加密密钥基于高级加密标准(AES)。在共同审理中的共同受让的美国专利申请No.13/097205和13/098315(代理人案号分别是No.000174-0710-101/A03696和000174-0713-101/A03699)中更详细地讨论了关于加密密钥及其在加密与解密中的使用的各种实施例的更多细节,其全部内容通过参考合并于此。
在一些实施例中,第一组易失性寄存器202、第二组易失性204寄存器、和/或非易失性寄存器208可以被用于存储该粘滞位。如上所述,粘滞位可以被用于配置、控制、和激活各种防篡改安全措施。
可以使用任何适当的易失性存储技术来实现第一组易失性寄存器202和第二组易失性寄存器204。如图2所示,如通过VCC所示,第一组易失性寄存器202可以由与芯102(未示出)相同的电源供电,和/或从芯102接收电力;并且如由VCCBAT说明的,第二组易失性寄存器204可以由电池206供电。在一些实施例中,第二组易失性寄存器204除了从VCCBAT(未示出)接收电力之外,还可以经由VCC接收电力。在这种实施例中,与仅仅去除VCCBAT相反,两种电源都会需要被从第二组寄存器去除,从而清除第二组易失性寄存器204中存储的任何数据。电池206可以是任何适当类型的电池。在第二组易失性寄存器204中存储的粘滞位在本文中可以被称作电池后备粘滞位,因为即使当去除该芯电压VCC时(例如,当器件100被关闭时),该电池206接通,它们从电池206接收电力并且维持它们的值。
可以使用任何适当的非易失性存储技术来实现非易失性寄存器208。例如,可以使用诸如EEPROM的可擦且可编程非易失性技术来实现非易失性寄存器208。在这种实施例中,非易失性寄存器中所存储的数据能够被控制模块110擦去和/或重新编程。在一些实施例中,可以使用诸如保险丝的一次可编程非易失性技术来实现非易失性寄存器208。在这种实施例中,当该保险丝被断开时,其造成开路并且一旦被断开就不能再熔合(refuse),这能够致使器件100无限期地不能工作。
在一些实施例中,不同粘滞位或粘滞位图案可以与不同的防篡改安全措施相关联。例如,如果特定的粘滞位或粘滞位的图案被设定,则将激活特定的防篡改选项。防篡改选项的一个具体实例是中止FPGA的JTAG端口。在一些实施例中,该粘滞位和各种安全选项位由POF、由控制模块110、和/或由制造商(例如,制造商可以在生产期间设定非易失性寄存器208中的保险丝)设定和/或清除。在一些实施例中,可以只能从芯102访问该粘滞位。同样,在操纵该粘滞位、坏位、和/或粘滞差错计数器的值之前,操作人必须进入该用户模式阶段。在共同审理中的共同受让的美国专利申请No.13/097816和13/098316(代理人案号分别是No.000174-0708-101/A03694和000174-0715-101/A03701)中更详细地讨论了关于粘滞位的配置以及各种防篡改选项和操作的更多细节,其全部内容通过参考合并于此。
在一个实施例中,寄存器200位于图1的外围104中;然而,在一些实施例中,除了处于外围104中或者代替处于外围104中,寄存器200可以处于芯102中。在一些实施例中,寄存器200中的粘滞位可以由控制模块110和/或芯102访问。
在一个实施例中,在三份粘滞位组中冗余地实现该粘滞位,并且使用由芯102中的逻辑电路供电的阴影寄存器支持该粘滞位。例如,第一组易失性寄存器202、第二组易失性204寄存器、非易失性寄存器208、和芯102中的寄存器的每个中都可以存储相同的粘滞位图案。
在一些实施例中,这样配置该冗余的粘滞位组,以便如果设定一个组中的一个粘滞位,则在其它粘滞位组中会自动设定相应的粘滞位。在这个实施例中,如果从在易失性寄存器中存储的一个或两个粘滞位去除电力,则当将电力重新应用到各自的易失性寄存器时,它们会基于在非易失性寄存器中存储的设定而重新获得适当的设定。在一些实施例中,通过同时循环两个电源,能够清除粘滞位。例如,如果该粘滞位仅仅被存储在第一组易失性寄存器202、第二组易失性寄存器204中,则当从该寄存器去除VCC和VCCBAT两个电源时,将清除该粘滞位。如果该篡改者使该器件的电力完全下降(例如,出去VCC和VCCBAT两个电源),则该粘滞位配置可能消失,因此该加密密钥也会消失,并且该篡改者意图提取的配置数据也可能会消失。同样,当使用非易失性寄存器时,该冗余的粘滞位组防止攻击机除去使用该粘滞位配置的防篡改安全选项,并且当仅使用易失性寄存器时,该冗余的粘滞位组防止攻击机存取该加密密钥和配置数据。
在一些实施例中,图1的控制模块110控制该不同的粘滞位组之间的粘滞位的冗余配置。例如,控制模块110可以被配置为检测一个粘滞位组什么时候失去并重新获得电力,然后当该粘滞位组重新获得电力时规定提供适当的粘滞位图案给所述粘滞位组。在一些实施例中,该冗余配置在图1的器件100中是硬连接的,因此该粘滞位自动同步。
如上所述,能够利用坏位(作为一种类型粘滞位)来确定是否已经存在对器件100进行配置的不成功的尝试,并且粘滞差错计数器可以被用于确定已经发生多少次配置器件100的不成功尝试。例如,该坏位被配置为在该配置阶段开始时被设定(例如,等于值1),并且进一步被配置为一旦器件100进入该用户模式阶段,就通过芯102的用户配置清除该坏位,或者在加密POF成功地配置该器件(例如,通过POF的循环冗余检验)之后通过控制模块110清除该坏位(例如,等于值0)。然而,如果配置器件100的尝试是不成功的,或者POF包含错误的配置数据并且没有通过CRC,则不会清除该坏位。下次进行配置尝试时,控制模块110会确定该坏位已经被设定并且采取适当行动,例如如上面关于图1所讨论的,该行动可以包括发出警报、清除加密密钥、和/或启动其他防篡改措施。
如上面关于该粘滞位所提到的,坏位可以被连接到连接该加密密钥的同一电源,以便如果篡改者试图通过除去该坏位的电力来清除该坏位,则该篡改者也可能清除该加密密钥。在一些实施例中,当粘滞差错计数器在该配置阶段开始时遇到设定坏位,则控制模块110使粘滞差错计数器递减。下面关于图4更详细地描述这种实施例。应当理解,不偏离本文中实施例的精神,该粘滞差错计数器可以被类似地实施为递增,而不是递减。
图3示出了用于确定在图1的器件100的配置阶段开始时是否设定坏位的说明性过程300。当启动配置尝试时,过程300大体上开始。在步骤302,应当确定是否设定该坏位。例如,图1的控制模块110可以确定该坏位的状况。如果在步骤302确定设定该坏位(例如,指示可能有人正在篡改器件100),则过程300根据该器件100的配置进行到步骤304或者步骤A。可选地,在步骤304,由器件100发出指示器件100正在被篡改的警报。在一些实施例中,该警报可以是从器件100或者被连接到器件100的其他器件发出的视觉或听觉警报。在一些实施例中,器件100可以将警报发送到远程站,从而为器件100的真正所有者指示它正在被篡改。在步骤304发出该警报之后、之时、或代替发出警报,过程300进行到步骤306。可由粘滞位配置采取哪些动作以及这些行动的时间。在步骤306,启动防篡改操作,例如其可以包括中止器件100或清除在图2的寄存器200中存储的加密密钥。如上所述,在共同审理中的共同受让的美国专利申请No.13/097816(代理人案号No.000174-0708-101/A03694)中讨论了关于防篡改操作的更多细节,其全部内容通过参考合并于此。在步骤A,启动图4的过程400,从而调整粘滞差错计数器。下面关于图4更详细地描述过程400。
如果没有设定该坏位,则过程300进行到步骤308,在这里设定该坏位。在设定该坏位之后,过程300进行到步骤310。在步骤310,尝试芯102的配置。如上所述,这可以包括在图1的控制模块110接收POF114和使用POF114中的配置数据来配置该芯102的逻辑电路。
如果恶意的用户试图篡改器件100,则过程300会在步骤312以不成功的器件配置结束,并且当该恶意用户再次试图配置器件100时,在步骤302重新开始。例如,在如上所述篡改者用配置尝试轰击器件100时的情况下,器件100的配置将被尝试,并且在企图确定该加密密钥的值中失败多次。在这种情况下,如上所述,当因为在步骤312没有清除该坏位,该篡改者启动另一个配置尝试时,过程300会进行到步骤304或步骤A。
如果在步骤310该配置尝试成功,则过程300进行到步骤314。在步骤314,清除该坏位,其指示了成功地完成了该配置。在一些实施例中,可以通过用户逻辑清除该坏位,该逻辑刚刚完成配置或芯102中的其它元件。在一些实施例中,例如,当通过对配置数据的CRC检验时,通过控制模块110清除该坏位。
如上所述,在一些实施例中,粘滞差错计数器可以被用于掌握已经失败的配置尝试的次数。每次加密POF没有正确载入时(例如,因为除去电源,所以该POF的该CRC检验失败,或者其他配置故障/中断),调整该粘滞差错计数器(例如,递减或递增)。例如,如上面所讨论的,一种类型的攻击可能包括用错误的配置信息轰击该器件,从而试图确定该加密密钥。每次该错误的配置信息被接收和/或没有被处理时,调整该粘滞差错计数器。该粘滞差错计数器可以被存储在上面关于图2所讨论的任何寄存器中,例如由芯102的电源供电的第一组易失性寄存器202、由电池206电池支持的第二组易失性寄存器204、或者非易失性寄存器208、或其任何组合。
在一些实施例中,如上所述,该粘滞差错计数器可以正如该粘滞位那样被冗余地存储。在一些实施例中,如上所述(例如,通过除去被供给到易失性寄存器的电力),可以以与清除该粘滞位相同的方式清除该粘滞差错计数器。在一个实施例中,该粘滞差错计数器被存储在第二组易失性寄存器204的电池支持的寄存器中,在这里支持寄存器204的电池也支持易失性加密密钥,以便除去该电池电源除了会清除粘滞差错计数器外,还会清除该加密密钥。
在一些实施例中,一旦该粘滞差错计数器达到零值或者其它预定阈值,器件100就能够启动各种防篡改操作,诸如发出警报、清除该加密密钥、切断器件100、和/或如上所述的任何其它适当的防篡改操作。在一些实施例中,可以设定许多阈值,以便可以在不同时期启动不同的防篡改操作。例如,该粘滞差错计数器起初可以被设定到值10,两个阈值分别被设定在值5和值0。当该粘滞差错计数器达到第一阈值(例如,值5)时,控制模块110可以启动第一防篡改操作,诸如清除该加密密钥。当该粘滞差错计数器达到第二阈值(例如,值0)时,控制模块110可以启动第二防篡改操作,诸如切断器件100。在一些实施例中,该粘滞差错计数器可以被递增而不是被递减,或者可以使用任何其他适当的数学函数操纵。
在一些实施例中,一旦用户进入用户模式阶段,该用户可以更改(例如,重置或改变)该粘滞差错计数器的值。例如,一旦该用户成功地处于该用户模式阶段,其可以选择重置该粘滞差错计数器。可替换地,该用户可以不选择重置该粘滞差错计数器,从而维持使用寿命器件配置计数。在一些实施例中,用户可以更改该阈值的值,以便在不同的粘滞差错计数器值启动该警报/防篡改操作。在一些实施例中,用户可以经由JTAG或芯逻辑将该粘滞差错计数器的值预编程到一个寄存器200中。
图4示出了当器件配置尝试失败时用于调整粘滞差错计数器的说明性过程400。如上关于图3所述,过程300可以从步骤A进入过程400,从而当在步骤302确定在该配置阶段开始时设定该坏位时,调整该粘滞差错计数器。在一些实施例中,当使用任何其他的适用技术(例如,不利用坏位的技术)检测到失败的配置尝试时,可以进入过程400。在步骤402,该粘滞差错计数器递减。如上所述,在不偏离本文中实施例的精神的情况下,该粘滞差错计数器可以递增而不是递减。在步骤404,确定该粘滞差错计数器是否等于第一阈值,这可以大体上类似于如上所述的第一阈值。
如果该粘滞差错计数器等于该第一阈值,则过程400进行到步骤406,在这里启动第一防篡改操作。为了说明性的目的,步骤406描述了清除该加密密钥;然而,在步骤406可以启动任何适当的防篡改操作。在清除该加密密钥之后,过程400可以经由步骤B退出并返回过程300,从而继续配置该器件的尝试。在一些实施例中,在粘滞差错计数器达到任何阈值之后,器件100暂停和/或防止进一步配置处理和/或尝试,而不是例如经由步骤B返回过程300。
如果该粘滞差错计数器在步骤404不等于第一阈值,则过程400进行到步骤408。在步骤408,确定该粘滞差错计数器是否等于第二阈值,这可以大体上类似于如上所述的第二阈值。如果该粘滞差错计数器不等于第二阈值,则过程400可以经由步骤B退出并返回过程300,从而继续配置该器件的尝试。如果该粘滞差错计数器等于该第二阈值,则过程400进行到步骤410,在这里启动第二防篡改操作。为了说明性的目的,步骤410描述了切断该器件;然而,在步骤410可以启动任何适当的防篡改操作。应该注意,可能存在任何数目的阈值,在粘滞差错计数器达到所述阈值时,可以启动各种防篡改操作。在过程400中为了说明性目的描述了两个阈值,这两个阈值不是意图限制。
实际上,过程300或过程400中所示的一个或多个步骤可以与其他步骤结合、以任何适当的顺序执行、被并行执行(例如,同时或大体上同时)、或被除去。例如,当过程400使该粘滞差错计数器递减时,可以在步骤304发出警报。可以以任何适当的方式使用硬件和/或软件的任何适当结合来实现过程300和过程400。
呈现本公开的上述描述实施例是为了说明的目的而不是为了限制的目的,本公开仅由前面的权利要求限定。
Claims (22)
1.一种可编程集成电路器件,包括:
寄存器,其被配置为存储坏位;和
控制模块,其被配置为:
在开始配置尝试之前确定所述坏位的值,
如果在开始所述配置尝试之前,所述坏位的值被确定为等于清除值,则将所述坏位设定到设定值,和
如果在开始所述配置尝试之前,所述坏位的值被确定为等于所述设定值,则启动第一防篡改操作。
2.根据权利要求1所述的可编程集成电路器件,其中如果在开始所述配置尝试之前所述坏位的值被确定为等于所述设定值,则所述控制模块进一步被配置为发出警报。
3.根据权利要求1所述的可编程集成电路器件,其中所述控制模块进一步被配置为:
如果在开始所述配置尝试之前,所述坏位的值被确定为等于所述设定值,则更改差错计数器值,并且其中如果所述差错计数器值等于第一阈值并且所述坏位的值被确定为等于所述设定值,则所述第一防篡改操作发生。
4.根据权利要求3所述的可编程集成电路器件,其中所述控制模块进一步被配置为,当所述差错计数器值等于第二阈值时,启动第二防篡改操作,其中所述第一阈值不同于所述第二阈值。
5.根据权利要求1所述的可编程集成电路器件,进一步包括逻辑电路,所述逻辑电路被配置为在成功地配置所述可编程集成电路器件之后,将所述坏位清除为清除值。
6.根据权利要求1所述的可编程集成电路器件,其中所述第一防篡改操作包括清除所述可编程集成电路器件中存储的密钥和切断所述可编程集成电路器件的至少一项。
7.一种减轻可编程集成电路器件的篡改的方法,包括:
在开始配置尝试之前确定所述坏位的值;
如果在开始所述配置尝试之前,所述坏位的值被确定为等于清除值,则将所述坏位设定到设定值;和
如果在开始所述配置尝试之前,所述坏位的值被确定为等于所述设定值,则启动第一防篡改操作。
8.根据权利要求7所述的方法,进一步包括如果在开始所述配置尝试之前所述坏位的值被确定为等于所述设定值,则发出警报。
9.根据权利要求7所述的方法,进一步包括:
如果在开始所述配置尝试之前,所述坏位的值被确定为等于所述设定值,则更改差错计数器值,并且其中如果所述差错计数器值等于第一阈值并且所述坏位的值被确定为等于所述设定值,则所述第一防篡改操作发生。
10.根据权利要求9所述的方法,进一步包括当所述差错计数器值等于第二阈值时,启动第二防篡改操作,其中所述第一阈值不同于所述第二阈值。
11.根据权利要求7所述的方法,其中所述第一防篡改操作包括清除所述可编程集成电路器件中存储的密钥和切断所述可编程集成电路器件的至少一项。
12.根据权利要求7所述的方法,进一步包括在使用逻辑电路成功地配置所述可编程集成电路器件之后,将所述坏位清除为清除值。
13.一种可编程集成电路器件,包括:
寄存器,其被配置为存储差错计数器的值;和
控制模块,其被配置为:
配置所述可编程集成电路器件,
响应于不成功的配置尝试而更改所述差错计数器的值,
确定所述差错计数器的值是否等于第一阈值,和
响应于所述差错计数器的值等于所述第一阈值而启动第一防篡改操作。
14.根据权利要求13所述的可编程集成电路器件,进一步包括逻辑电路,所述逻辑电路被配置为在配置尝试成功完成之后重置所述差错计数器的值。
15.根据权利要求13所述的可编程集成电路器件,其中所述控制模块进一步被配置为确定所述差错计数器的值是否等于第二阈值。
16.根据权利要求15所述的可编程集成电路器件,其中所述控制模块进一步被配置为,当所述差错计数器的值被确定为等于所述第二阈值时,启动第二防篡改操作,其中所述第一防篡改操作和所述第二防篡改操作不同。
17.根据权利要求13所述的可编程集成电路器件,其中更改所述差错计数器的值包括使所述差错计数器的值递增和递减的至少一项。
18.一种减轻可编程集成电路器件的篡改的方法,包括:
接收启动信号以配置所述可编程集成电路器件;
如果差错计数器的值已经被预先设定,则响应于配置所述可编程集成电路器件的不成功的尝试而更改所述差错计数器的值;
确定所述差错计数器的值是否等于第一阈值;和
响应于所述差错计数器的值等于所述第一阈值而启动第一防篡改操作。
19.根据权利要求18所述的方法,进一步包括在配置尝试成功完成之后重置所述差错计数器的值。
20.根据权利要求18所述的方法,进一步包括确定所述差错计数器的值是否等于第二阈值。
21.根据权利要求20所述的方法,进一步包括当所述差错计数器的值被确定为等于所述第二阈值时,启动第二防篡改操作,其中所述第一防篡改操作和所述第二防篡改操作不同。
22.根据权利要求18所述的方法,其中更改所述差错计数器的值包括使所述差错计数器的值递增和递减的至少一项。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/098,074 | 2011-04-29 | ||
US13/098,074 US8719957B2 (en) | 2011-04-29 | 2011-04-29 | Systems and methods for detecting and mitigating programmable logic device tampering |
PCT/US2012/033481 WO2012148707A2 (en) | 2011-04-29 | 2012-04-13 | Systems and methods for detecting and mitigating programmable logic device tampering |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103503318A true CN103503318A (zh) | 2014-01-08 |
CN103503318B CN103503318B (zh) | 2016-06-15 |
Family
ID=47069041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280020701.0A Active CN103503318B (zh) | 2011-04-29 | 2012-04-13 | 用于检测和减轻可编程逻辑器件篡改的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (4) | US8719957B2 (zh) |
EP (1) | EP2702690B1 (zh) |
CN (1) | CN103503318B (zh) |
WO (1) | WO2012148707A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8461863B2 (en) | 2011-04-29 | 2013-06-11 | Altera Corporation | Method and apparatus for securing a programmable device using a kill switch |
US8736299B1 (en) | 2011-04-29 | 2014-05-27 | Altera Corporation | Setting security features of programmable logic devices |
US9577643B1 (en) * | 2013-11-26 | 2017-02-21 | Altera Corporation | Secure partial reconfiguration regions |
GB201400992D0 (en) * | 2014-01-21 | 2014-03-05 | Metaforic Ltd | Method of protecting dynamic cryptographic keys |
US9727722B2 (en) | 2015-02-23 | 2017-08-08 | Cisco Technology, Inc. | Non-intrusive monitoring |
US9940486B2 (en) | 2015-02-23 | 2018-04-10 | Cisco Technology, Inc. | Detection of hardware tampering |
US10572675B2 (en) | 2016-11-02 | 2020-02-25 | Cisco Technology, Inc. | Protecting and monitoring internal bus transactions |
EP3667533A1 (en) * | 2018-12-10 | 2020-06-17 | Thales Dis France SA | Method for securing a system in case of an undesired power-loss |
US11256520B2 (en) * | 2019-09-18 | 2022-02-22 | Xilinx, Inc. | Tracing status of a programmable device |
US11630784B2 (en) * | 2019-11-20 | 2023-04-18 | Raytheon Company | Low-cost physical tamper detection and response for cryptographically secure sanitization |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289459B1 (en) * | 1999-01-20 | 2001-09-11 | Intel Corporation | Processor unique processor number feature with a user controllable disable capability |
US6980649B1 (en) * | 2001-12-10 | 2005-12-27 | Cisco Technology, Inc. | Hardware-based encryption/decryption employing dual ported memory and fast table initialization |
EP1659515A1 (fr) * | 2004-11-19 | 2006-05-24 | Proton World International N.V. | Protection d'un microcontrôleur |
US20070094420A1 (en) * | 2005-10-18 | 2007-04-26 | Ingemar Holm | System and method for validating chip configuration data |
US7368935B2 (en) * | 2005-10-18 | 2008-05-06 | Honeywell International Inc. | Tamper response system for integrated circuits |
US7607025B1 (en) * | 2004-02-26 | 2009-10-20 | Xilinx, Inc. | Methods of intrusion detection and prevention in secure programmable logic devices |
US7739565B1 (en) * | 2007-07-19 | 2010-06-15 | Xilinx, Inc. | Detecting corruption of configuration data of a programmable logic device |
US20110078379A1 (en) * | 2007-02-07 | 2011-03-31 | Junichi Iida | Storage control unit and data management method |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4455602A (en) * | 1981-05-22 | 1984-06-19 | Data General Corporation | Digital data processing system having an I/O means using unique address providing and access priority control techniques |
US4617479B1 (en) | 1984-05-03 | 1993-09-21 | Altera Semiconductor Corp. | Programmable logic array device using eprom technology |
US4713792A (en) | 1985-06-06 | 1987-12-15 | Altera Corporation | Programmable macrocell using eprom or eeprom transistors for architecture control in programmable logic circuits |
US4774421A (en) | 1984-05-03 | 1988-09-27 | Altera Corporation | Programmable logic array device using EPROM technology |
US4609986A (en) | 1984-06-14 | 1986-09-02 | Altera Corporation | Programmable logic array device using EPROM technology |
US4677318A (en) | 1985-04-12 | 1987-06-30 | Altera Corporation | Programmable logic storage element for programmable logic devices |
US4871930A (en) | 1988-05-05 | 1989-10-03 | Altera Corporation | Programmable logic device with array blocks connected via programmable interconnect |
US4912342A (en) | 1988-05-05 | 1990-03-27 | Altera Corporation | Programmable logic device with array blocks with programmable clocking |
US4899067A (en) | 1988-07-22 | 1990-02-06 | Altera Corporation | Programmable logic devices with spare circuits for use in replacing defective circuits |
US5081675A (en) | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
US5033084A (en) | 1990-04-02 | 1991-07-16 | Data I/O Corporation | Method and apparatus for protection of software in an electronic system |
US5091938B1 (en) | 1990-08-06 | 1997-02-04 | Nippon Denki Home Electronics | Digital data cryptographic system |
US5121006A (en) | 1991-04-22 | 1992-06-09 | Altera Corporation | Registered logic macrocell with product term allocation and adjacent product term stealing |
US5220214A (en) | 1991-04-22 | 1993-06-15 | Altera Corporation | Registered logic macrocell with product term allocation and adjacent product term stealing |
US5479512A (en) | 1991-06-07 | 1995-12-26 | Security Dynamics Technologies, Inc. | Method and apparatus for performing concryption |
US5260610A (en) | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5260611A (en) | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic array having local and long distance conductors |
US5371422A (en) | 1991-09-03 | 1994-12-06 | Altera Corporation | Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements |
GB9121591D0 (en) | 1991-10-11 | 1991-11-27 | Pilkington Micro Electronics | Data security arrangement for semiconductor programmable logic devices |
NL9200296A (nl) | 1992-02-18 | 1993-09-16 | Tulip Computers International | Inrichting voor het door middel van het des algoritme vercijferen en ontcijferen van data naar en van een harde geheugenschijf. |
FR2702857B1 (fr) | 1993-03-18 | 1995-06-02 | Pierre Antonini | Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation. |
US5350954A (en) | 1993-03-29 | 1994-09-27 | Altera Corporation | Macrocell with flexible product term allocation |
JP3144967B2 (ja) | 1993-11-08 | 2001-03-12 | 株式会社日立製作所 | 半導体集積回路およびその製造方法 |
US5563592A (en) | 1993-11-22 | 1996-10-08 | Altera Corporation | Programmable logic device having a compressed configuration file and associated decompression |
US5548228A (en) | 1994-09-28 | 1996-08-20 | Altera Corporation | Reconfigurable programmable logic device having static and non-volatile memory |
US5450022A (en) | 1994-10-07 | 1995-09-12 | Xilinx Inc. | Structure and method for configuration of a field programmable gate array |
US5581198A (en) | 1995-02-24 | 1996-12-03 | Xilinx, Inc. | Shadow DRAM for programmable logic devices |
US5768372A (en) | 1996-03-13 | 1998-06-16 | Altera Corporation | Method and apparatus for securing programming data of a programmable logic device |
US6421812B1 (en) * | 1997-06-10 | 2002-07-16 | Altera Corporation | Programming mode selection with JTAG circuits |
US6263398B1 (en) * | 1998-02-10 | 2001-07-17 | Ramtron International Corporation | Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache |
US6118869A (en) * | 1998-03-11 | 2000-09-12 | Xilinx, Inc. | System and method for PLD bitstream encryption |
GB9900432D0 (en) | 1999-01-08 | 1999-02-24 | Xilinx Inc | Linear feedback shift register in a progammable gate array |
FR2795838B1 (fr) * | 1999-06-30 | 2001-08-31 | Bull Cp8 | Procede de securisation du traitement d'une information sensible dans un module de securite monolithique, et module de securite associe |
AU2001253818A1 (en) * | 2000-02-14 | 2001-08-20 | Christina Alvarez | Security module system, apparatus and process |
US6331784B1 (en) | 2000-07-28 | 2001-12-18 | Atmel Corporation | Secure programmable logic device |
US6651155B1 (en) * | 2000-07-28 | 2003-11-18 | Altera Corporation | Apparatus and method for translating a programmable logic device programmer object file |
JP2002196845A (ja) * | 2000-12-27 | 2002-07-12 | Matsushita Electric Ind Co Ltd | マイクロコンピュータの制御方法 |
GB0114317D0 (en) * | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US7143295B1 (en) * | 2002-07-18 | 2006-11-28 | Xilinx, Inc. | Methods and circuits for dedicating a programmable logic device for use with specific designs |
JP4376787B2 (ja) * | 2002-11-21 | 2009-12-02 | 富士通株式会社 | イベント通知方法、デバイス及びプロセッサシステム |
CA2508141C (en) * | 2002-12-02 | 2009-11-03 | Silverbrook Research Pty Ltd | Dead nozzle compensation |
US6894527B1 (en) * | 2003-05-12 | 2005-05-17 | Xilinx, Inc. | Evolved circuits for bitstream protection |
US7180008B2 (en) * | 2004-01-23 | 2007-02-20 | Pitney Bowes Inc. | Tamper barrier for electronic device |
US7254800B1 (en) * | 2004-02-26 | 2007-08-07 | Xilinx, Inc. | Methods of providing error correction in configuration bitstreams for programmable logic devices |
US7236007B1 (en) * | 2004-09-24 | 2007-06-26 | Altera Corporation | Methods and systems for achieving improved intellectual property protection for programmable logic devices |
US7490311B1 (en) * | 2004-11-12 | 2009-02-10 | Xilinx, Inc. | Reset manager |
US20090294524A1 (en) * | 2005-02-03 | 2009-12-03 | Rice Lee R | High Security Transaction Card System and Method |
US7757295B1 (en) * | 2005-02-09 | 2010-07-13 | Lsi Corporation | Methods and structure for serially controlled chip security |
US7218567B1 (en) * | 2005-09-23 | 2007-05-15 | Xilinx, Inc. | Method and apparatus for the protection of sensitive data within an integrated circuit |
US7345502B1 (en) | 2006-01-17 | 2008-03-18 | Xilinx, Inc. | Design security for configurable devices |
US7546498B1 (en) * | 2006-06-02 | 2009-06-09 | Lattice Semiconductor Corporation | Programmable logic devices with custom identification systems and methods |
TW200807425A (en) * | 2006-06-05 | 2008-02-01 | Renesas Tech Corp | Semiconductor device, unique ID of semiconductor device and method for verifying unique ID |
US7759968B1 (en) | 2006-09-27 | 2010-07-20 | Xilinx, Inc. | Method of and system for verifying configuration data |
US7551470B2 (en) * | 2006-10-19 | 2009-06-23 | International Business Machines Corporation | Non volatile memory RAD-hard (NVM-rh) system |
WO2009039462A1 (en) * | 2007-09-19 | 2009-03-26 | Tabula, Inc. | Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic |
US20090113220A1 (en) * | 2007-10-26 | 2009-04-30 | Sang Han Lee | Encrypted backup data storage device and storage system using the same |
US8977820B2 (en) * | 2007-12-21 | 2015-03-10 | Arm Limited | Handling of hard errors in a cache of a data processing apparatus |
DE102008006301B4 (de) * | 2008-01-28 | 2017-06-08 | Infineon Technologies Ag | Schaltungsanordnung zum Detektieren von Spannungsänderungen und Verfahren zum Detektieren einer Spannungsänderung |
US7952387B1 (en) * | 2008-08-13 | 2011-05-31 | Altera Corporation | Securing memory based IP in FPGAs |
US8242790B2 (en) * | 2009-02-23 | 2012-08-14 | Lewis James M | Method and system for detection of tampering related to reverse engineering |
US8576641B1 (en) * | 2010-02-26 | 2013-11-05 | Xilinx, Inc. | Method of and circuit for providing non-volatile memory in an integrated circuit |
US8499173B2 (en) * | 2010-11-23 | 2013-07-30 | Lockheed Martin Corporation | Apparatus and method for protection of circuit boards from tampering |
US8736299B1 (en) * | 2011-04-29 | 2014-05-27 | Altera Corporation | Setting security features of programmable logic devices |
US8581617B2 (en) * | 2011-04-29 | 2013-11-12 | Altera Corporation | Systems and methods for providing user-initiated latch up to destroy SRAM data |
US10079677B2 (en) * | 2015-06-05 | 2018-09-18 | Apple Inc. | Secure circuit for encryption key generation |
-
2011
- 2011-04-29 US US13/098,074 patent/US8719957B2/en active Active
-
2012
- 2012-04-13 EP EP12776082.5A patent/EP2702690B1/en active Active
- 2012-04-13 WO PCT/US2012/033481 patent/WO2012148707A2/en active Application Filing
- 2012-04-13 CN CN201280020701.0A patent/CN103503318B/zh active Active
-
2014
- 2014-03-18 US US14/218,455 patent/US9852315B2/en active Active
-
2017
- 2017-10-31 US US15/799,690 patent/US10592699B2/en active Active
-
2020
- 2020-02-18 US US16/794,003 patent/US11436382B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289459B1 (en) * | 1999-01-20 | 2001-09-11 | Intel Corporation | Processor unique processor number feature with a user controllable disable capability |
US6980649B1 (en) * | 2001-12-10 | 2005-12-27 | Cisco Technology, Inc. | Hardware-based encryption/decryption employing dual ported memory and fast table initialization |
US7607025B1 (en) * | 2004-02-26 | 2009-10-20 | Xilinx, Inc. | Methods of intrusion detection and prevention in secure programmable logic devices |
EP1659515A1 (fr) * | 2004-11-19 | 2006-05-24 | Proton World International N.V. | Protection d'un microcontrôleur |
US20070094420A1 (en) * | 2005-10-18 | 2007-04-26 | Ingemar Holm | System and method for validating chip configuration data |
US7368935B2 (en) * | 2005-10-18 | 2008-05-06 | Honeywell International Inc. | Tamper response system for integrated circuits |
US20110078379A1 (en) * | 2007-02-07 | 2011-03-31 | Junichi Iida | Storage control unit and data management method |
US7739565B1 (en) * | 2007-07-19 | 2010-06-15 | Xilinx, Inc. | Detecting corruption of configuration data of a programmable logic device |
Also Published As
Publication number | Publication date |
---|---|
EP2702690B1 (en) | 2015-09-23 |
US10592699B2 (en) | 2020-03-17 |
US9852315B2 (en) | 2017-12-26 |
US20180068136A1 (en) | 2018-03-08 |
US8719957B2 (en) | 2014-05-06 |
US20120278906A1 (en) | 2012-11-01 |
EP2702690A2 (en) | 2014-03-05 |
US11436382B2 (en) | 2022-09-06 |
US20200184118A1 (en) | 2020-06-11 |
CN103503318B (zh) | 2016-06-15 |
WO2012148707A3 (en) | 2012-12-27 |
EP2702690A4 (en) | 2014-05-07 |
WO2012148707A2 (en) | 2012-11-01 |
US20140201852A1 (en) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103503318A (zh) | 用于检测和减轻可编程逻辑器件篡改的系统和方法 | |
US10037438B2 (en) | Setting security features of programmable logic devices | |
KR102469232B1 (ko) | 고유 내부 식별자를 갖는 암호화 asic | |
CN100361038C (zh) | 程序窜改检测装置及方法 | |
CN102799832B (zh) | 利用删除开关确保可编程器件安全的方法和装置 | |
US8184812B2 (en) | Secure computing device with monotonic counter and method therefor | |
CN104025500A (zh) | 使用在物理上不可克隆的函数的安全密钥存储 | |
US8931091B2 (en) | Method for operating a tachograph and tachograph | |
US20070237325A1 (en) | Method and apparatus to improve security of cryptographic systems | |
US8539254B1 (en) | Method and integrated circuit for protecting against differential power analysis attacks | |
US7254800B1 (en) | Methods of providing error correction in configuration bitstreams for programmable logic devices | |
CN103559435A (zh) | 终端设备的调试端口控制方法和装置 | |
EP1280038B1 (en) | System and method for code and data security in a semiconductor device | |
US20150249679A1 (en) | Method and device for protecting an electronic device against fault attack(s) | |
US7607025B1 (en) | Methods of intrusion detection and prevention in secure programmable logic devices | |
US8983073B1 (en) | Method and apparatus for restricting the use of integrated circuits | |
CN101164048A (zh) | 具有寿命周期阶段的安全存储卡 | |
JP7531033B2 (ja) | コンピュータへの不正操作の防止 | |
CN102279813A (zh) | 一种加密卡内系统的保护方法 | |
KR20060067584A (ko) | 해킹 방지 기능이 있는 스마트 카드 | |
WO2018040678A1 (zh) | 一种存储器数据保护方法、集成电路芯片及存储介质 | |
CN105095780A (zh) | 一种芯片内测试端口的访问方法及装置 | |
CN100442303C (zh) | 应用程序保护系统及方法 | |
KR20160096391A (ko) | 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법 | |
WO2020167283A1 (en) | Recovery from corruption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |