CN102799832B - 利用删除开关确保可编程器件安全的方法和装置 - Google Patents
利用删除开关确保可编程器件安全的方法和装置 Download PDFInfo
- Publication number
- CN102799832B CN102799832B CN201210130429.3A CN201210130429A CN102799832B CN 102799832 B CN102799832 B CN 102799832B CN 201210130429 A CN201210130429 A CN 201210130429A CN 102799832 B CN102799832 B CN 102799832B
- Authority
- CN
- China
- Prior art keywords
- pld
- switch
- deletion
- data
- key
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 13
- 238000012217 deletion Methods 0.000 claims abstract description 44
- 230000037430 deletion Effects 0.000 claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 27
- 238000001514 detection method Methods 0.000 claims description 5
- 241001269238 Data Species 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000005611 electricity Effects 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 abstract 1
- 238000013461 design Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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]
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/75—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 by inhibiting the analysis of circuitry or operation
- G06F21/755—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 by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
Abstract
本发明提供一种删除开关,当删除开关被触发时,可引起可编程逻辑器件(PLD)变成至少部分重置、禁能或两者。删除开关可以实现为熔丝或易失性电池备份的存储位。例如,当检测到安全威胁时,可断开开关并开始装置的重新配置以将PLD的存储器和可编程逻辑中的某些或所有清零或清除。
Description
背景技术
在静态随机存取存储(“SRAM”)贮存器中存储配置数据的可编程逻辑器件很普遍。SRAM贮存器是易失性的;在停止供电时,SRAM贮存器不能保留其内容。因此,以SRAM技术为基础的可编程逻辑器件与非易失性贮存器一起使用,以在器件关闭期间或在不提供电力的其他情形期间保留配置编程数据。但是,对手可能监视通电时非易失性贮存器的流出数据,从而确定可编程逻辑器件的编程配置。事实上,对手甚至不需要分析数据流,而只需要在其拥有的设备上记录并存储此数据流。
在非易失性存储器组件中存储配置编程数据的某些装置具有保护敏感数据的安全部件(例如,加密/解密)。不幸的是,未授权用户有时可能绕过这些安全部件并访问敏感信息。
发明内容
本公开涉及利用删除开关保护可编程装置(例如,可编程逻辑器件(PLDS))。可以利用,例如,删除熔丝、非易失性存储位或易失性电池备份存储位实现删除开关。响应于检测的安全威胁,例如,可以断开(blow)删除开关,引起装置的至少部分被重置、禁能/禁用(enable)或两者。在某些实施例中,响应检测到的安全威胁,装置的配置电路和/或解密电路被永久禁能。
在某些实施例中,断开删除开关(即将删除开关切换到特定状态)可能引起特定删除序列的执行。删除序列可以由在各PLD中实现的用户设计来定义。例如,对于存储解密密钥的PLD,删除序列可能引起密钥被清除或清零。删除序列可能引起存储在PLD配置存储器(例如,CRAM)中的任意的配置数据被去除以及重置PLD中实现当前用户设计的某些或全部逻辑连接。应该理解,删除序列至少可对PLD的任何适当部分进行局部重置、清除、清零、禁能或执行以上操作中的两种。可以定义多个删除序列并且特定删除序列的执行可基于与每个各自的 删除序列相关联的特定触发器。
附图说明
结合附图考虑以下详细说明,本公开的进一步特征、其本质和各种优点将是显而易见的,附图中同样的参考符号指代同样的部件,并且其中:
图1是根据某些实施例的示例性可编程逻辑器件的方框图;
图2是根据某些实施例的电池供电的易失性存储器的方框图;
图3是根据某些实施例的装置删除序列的示例性步骤的流程图;和
图4是根据某些实施例的并入可编程逻辑器件的示例性系统的方框图。
具体实施方式
图1显示示例性可编程逻辑器件(PLD)100作为可在其中实现本公开的可编程器件的示例。应该理解,本公开可应用于任何适当的可编程器件,包含现场可编程门阵列(FPGA)器件或任何其他类型的PLD。PLD 100可包含核心配置结构106,其可包含任何适当的软件、电路或两者以用于存储和实现PLD 100中的用户设计。这可包含,例如,将任何适当的技术用于存储器(例如,配置RAM(CRAM))和可编程逻辑(例如,逻辑阵列块)而实现的任何适当的可编程逻辑,具有硬布线逻辑(例如,乘累加电路)的数字信号处理(DSP)电路,任何其他合适的硬件、软件或两者或者以上各项的任意组合。SRAM,例如,可用于存储配置数据。
I/O电路102可包含为PLD 100提供数据输入、输出或两者的一个或更多端口。例如,I/O电路102可包含一个或更多JTAG端口和可用于输入编程对象文件(POF)位流的一个或更多端口。I/O电路102可耦合到核心配置结构106、控制块108、耦合到PLD 106的任何其他适当组件或者耦合到其任何组合。
控制块108可包含任何适当的软件、电路或两者以用于调节和控制PLD 100的配置,并用于保持PLD 100的安全性。控制块108可耦合到I/O电路102、删除开关(killswitch)104、PLD 100的任何其他 适当的组件(例如,核心配置结构106或诸如可编程选路(programmable routing)110的组件)或其任意组合。
在某些实施例中,为了避免对PLD 100的未授权存取或使用,如访问核心配置结构106中实现的(和存储器114(例如,CRAM)中存储的)用户设计,PLD 100可包含安全部件(feature)。例如,如图1所示,PLD 100可包含安全模块112。安全模块112可以是实现安全部件以阻止对PLD 100的未授权使用或存取的任何适当软件、硬件或两者。安全模块112可以是,例如,在核心配置结构106中实现的用户设计组件。可替代地,安全模块112可以是卖主提供的私有的配置数据的部分以用于各种通用功能,其由制造商预先加载在PLD100中或者由用户加载在PLD 100中。无论是由用户加载还是由制造商加载,安全模块112都可以由用户定制为例如用户设计实现的部分。如图所示,安全模块112是核心配置结构106的部分。应当理解,安全模块112可作为PLD 100的任何其他适当组件的部分实现,如在控制块108中,或者可以作为单个组件实现。
安全模块112可允许用户定义引起删除开关104被激活的触发器。删除开关104可以是禁能可编程器件功能的非易失性元件、机械装置或两者,或易失性电池备份元件。例如,在某些实施例中,通过安全模块112,用户设计可以被提供检测安全威胁和通过激活删除开关104开始删除序列的能力。安全威胁可基于任何适当的标准被检测到。删除开关104和删除序列(例如,重置、更改、清除、清零等)的各元素中的任意元素可以是用户可编程的。
在一个适当的方案中,删除开关104可至少部分利用物理的删除熔丝实现。删除熔丝可以是任何适当的熔丝,如非易失性(NV)熔丝。在另一方案中,删除开关104可至少部分利用电池备份易失性存储器实现。为使PLD 100被配置、重新配置、适当起作用或其任何组合,删除开关104可产生一个或更多必要的连接。例如,当PLD 100处于配置模式时,控制块108(或任何其他适当的组件)可不断地检查删除开关104以确保删除开关104没有被断开。如果检测到断开的删除开关104,则控制块108可阻止对PLD 100的任何配置或重新配置。或者可替代地,断开的删除开关104也可能引起PLD 100的某些或所有 存储器和/或逻辑组件的任何适当的重置、清除或清零(即清除和清除的确认)。例如,可保留用户配置数据的存储器114的某些或所有内容可能被去除、用随机数据代替或清零等等。
例如,当通过核心配置结构106的用户设计元件(例如,安全模块112)或通过控制块108检测到安全威胁时,可停止PLD 100(例如断开删除开关104)。为了简短和清楚的目的并且不通过限制性的方式,本发明是根据检测安全威胁和断开删除开关的安全模块112进行描述的。应当理解,任何其他适当的元件或元件的组合可检测安全威胁并停止PLD 100。
在某些实施例中,用于配置或重新配置PLD 100的编程对象文件(POF)位流或任何其他适当的配置数据可能被加密(例如,采用AES加密协议)。为了解密配置数据,PLD 100可使用解密密钥。如图2所示,解密密钥可以使用耦合到电池202的易失性存储器200存储在PLD 100中。当PLD 100关闭时,电池202防止易失性存储器200的内容被擦除。易失性存储器200可以在控制块108、核心配置结构106、PLD 100的任意其他适当元件或其任意组合中实现。易失性存储器可以是任何适当的存储器装置,例如,SRAM、DRAM、任何其他适当的易失性存储器或其任意组合。
在某些实施例中,当安全模块112检测到威胁并激活删除开关104时,并发的删除序列可能包括清除易失性存储器200的内容。因此,一旦检测到安全威胁即可能将解密密钥清除或清零(即以已知的和非机密内容替换存储器内容)。这将阻止PLD 100的配置或重新配置。解密密钥也可以或可替代地存储在非易失性存储器中。
图3显示了某些实施例中删除序列的示例性步骤的流程图300。在步骤302,安全模块112可检测起删除触发器作用的安全威胁。对于安全威胁可使用任何适合的标准。
在步骤304,响应检测到的删除触发器,安全模块112、控制块108或两者可将存储在易失性存储器(例如,易失性存储器200)中的易失性解密密钥清零或清除。应当理解,术语清除或清零内容指代用不同于当前数据的某数据替换此内容而不必用数据值零替换当前数据,某数据例如随机数据、已知数据等。
在步骤306,响应检测到的删除触发器,安全模块112、控制块108或者两者可断开删除开关104。
在步骤308,控制块108可开始PLD 100的重新配置。也就是说,PLD 100被置为配置模式(相对于用户模式)。作为重新配置序列的部分,控制块108可不断检查删除开关104。在通常环境下,当未检测到删除触发器且PLD 100处于配置模式时,控制块108可继续常规的配置序列,在常规的配置序列中配置数据从POF位流加载并且核心配置结构根据此配置数据被编程。
然而,如果在步骤310确定已经断开删除开关104,则在步骤312控制块108可清除核心配置结构106。这种清除可能有效地将配置结构初始化至例如缺省状态(例如,核心配置结构106中的逻辑阵列块和相应的可编程连接可能被初始化、存储器114可能被清除,并且任意其他配置数据或用户设计数据可能被去除)。或者作为步骤304、步骤308的部分或者作为步骤312的部分(或者作为一个或更多个单独的步骤),控制块108可以禁能PLD 100的任何其他适当功能以响应删除触发器三态I/O电路102(或以其他方式禁能I/O电路102),其他适当功能包括,例如,可以用于配置装置的任何配置工具。在某些实施例中,PLD 100中包含的解密工具被禁能以响应删除触发器。禁能解密工具的一个优点是可阻止对解密工具(如简易功耗分析(SPA)或差分功耗分析(DPA))的旁路攻击,因为这种攻击通常要求运用解密工具。具体地,即使在易失性电池备份密钥被完全清除之前,PLD 100的主要能量供应被中断,禁能解密工具仍会阻止攻击者利用旁路攻击存取密钥。
当删除开关104被断开或者当删除序列(例如,删除序列300)被执行时,PLD 100可能由于删除开关104被停止连接或者由于PLD 100的其他组件或部件的损坏而被永久地去激活。在某些实施例中,PLD100可被配置为甚至在删除序列执行后允许授权用户将其重置为起作用的(例如,当删除开关104作为电池备份易失性存储器被实现时)。在一些这样的实施例中,删除开关104实现为“粘滞位”,如下文所述。在易失性删除开关被断开之后,为了重新使能PLD 100,可将删除开关完全清除。也可清除存储在PLD 100中的包含密钥在内的数据。
应当理解,删除序列300仅仅是示例性的。除已示出的这些步骤外可执行任何其他适合的步骤,或者可执行任何其他适合的步骤来取代这些步骤。可对删除序列300作出任何适当的修改,并且应当理解呈现的顺序仅仅是示例性的。应当进一步理解,PLD 100可实施每个与各触发器关联的多个删除序列。因此,不同的触发事件可能引起一个或更多不同的删除序列的执行。
在某些实施例中,可以将通过熔断相应的熔丝来清除熔丝位作为删除序列的部分。例如,在PLD 100的某些设计中,代替使用易失性解密密钥(即,存储在由电池202供电的易失性存储器200(图2)中),可以使用永久的熔丝位存储一个或更多的密钥。当安全威胁引起删除开关被激活时,作为删除序列的部分,某些或所有熔丝位可能通过熔断相应的熔丝而被永久地清除,从而去除任何存储的密钥值。也可以在检测到安全威胁而未断开删除开关104时清除和验证熔丝密钥位。在较少的临界威胁情形中,PLD 100中的用户设计可清除熔丝密钥位,而不“删除”整个PLD 100。在例如操作条件、产品保存期限或维护要求不允许使用电池和易失性存储器存储密钥的情形中,可以使用熔丝密钥代替易失性密钥。应当理解,任何适当的熔丝可用于此方案中(例如,NV熔丝)。如果需要,当清除任何熔丝位时(或当作为删除序列的部分清除来自PLD 100的任何组件的任何数据时)可执行已成功清除熔丝位的验证,所述验证可涉及例如内置读回和验证程序的使用。如果熔丝位(或其他数据)没有被成功地清除,则可以重复清除和验证程序。
如上所讨论的,任何适当的安全威胁可以被识别并用于触发删除开关和关联的删除序列。在一种适当的方案中,代表特定安全威胁的安全选项位的使用可用于识别安全威胁以及触发装置清除或删除序列。安全选项位可采取例如粘滞位的形式。粘滞位可以利用电池供电的易失性存储器存储在PLD 100中。例如,参考图2,粘滞位可以存储在由电池202供电的易失性存储器200中。粘滞位可存储在控制块108或PLD 100的任何其他适当的组件中。如以上讨论的,易失性存储器200也可存储与PLD 100关联的解密密钥。应该理解,粘滞位和密钥位可分别或共同存储在相同或不同的存储器装置上,其中存储器 装置由相同或不同的电池供电。
在一种适当的方案中,粘滞位可存储在PLD 100上的多个副本中(例如,三重)并且可以利用由核心配置结构106供电的影子寄存器进行备份。如果任何粘滞位被设置为高,则相应的其他位也将被迫为高。仅循环其中的一个电源将恢复寄存器中的值,该值从未循环的对应寄存器中循环得到。
粘滞位可用于设置多个安全选项中的任何选项。他们也可用于测试是否存在特定的安全威胁。例如,在一个适当的方案中,存储在PLD100中的粘滞位可以与POF中传输的对应的安全选项位相比较。由于存储在PLD 100中的粘滞位是固定的形式(即,除了当重新配置PLD100时之外他们不能被修改),因此一种适当的安全威胁检查可能涉及比较粘滞位形式与POF中的安全位形式。如果存在不匹配,则可清除或清零解密密钥,或者可触发装置删除序列。
在某些实施例中,可检查或监视存储在PLD 100中的安全选项位,诸如粘滞位或从POF接收的位,以确保其各自的值尚未被修改(例如,由于辐射、安全威胁、任何其他适当的原因或其任意组合)。如果确定存储在PLD 100中的一个或更多安全选项位已经被更改,则可清除或清零解密密钥或触发装置删除序列。任何安全选项位是否已经被更改的判断可以利用任何适当的技术实现,例如,通过计算校验(例如,CRC)值并将其与存储的(即预期的)值比较。
包含粘滞位在内的安全选项位在美国专利申请13/098,074(律师卷号000174-0714-101(A03700))和13/098,316(律师卷号000174-0715-101(A03701))中进一步讨论,两者在同一日期提交且两者整体包含在此以供参考。
在某些实施例中,根据具体的逝去时间,可清除或清零易失性密钥(或任何其他类型的密钥)。例如,当编程密钥时,用户设计可指示在编程密钥后某一时间段后易失性密钥将被自动清零。时间可由电池供电的真实时钟确定。这可避免重新配置PLD的任何后续尝试(例如,如果只有PLD的单个配置操作是预期的)。可以从任何适当的起始点计算时间而不必须从初始编程密钥的时间计算。例如,在某一时间段逝去后,清零可自动发生,因为安全威胁已经通过安全模式112、 控制块108或两者被识别。
根据本发明的任何实施例编程的PLD 90可用于多种类型的电子装置中。一个可能的应用是在图4显示的数据处理系统900中。数据处理系统900可包含一个或更多以下组件:处理器901、存储器902、I/O电路903和外围装置904。这些组件通过系统总线905耦合在一起并组装在包含于终端用户系统907内的电路板906上。
系统900能用于多种应用,例如计算机网络化、数据网络化、仪器化、视频处理、数字信号处理或需要利用可编程逻辑或可重新编程逻辑的优点的任何其他应用。PLD 90能用于执行各种不同的逻辑功能。例如,PLD 90可以配置为与处理器901协作的处理器或控制器。PLD 90也可用作仲裁器以用于仲裁对系统900中共享资源的存取。在又一示例中,PLD90可配置为处理器901与系统900中其他组件中的一个组件之间的接口。应当注意,系统900只是作为示例性的,并且应当注意本公开的真实范围和精神应该由以下权利要求指示。
如上所述的各种技术可用于执行PLD 90且并入本发明。
应当理解,前述内容仅仅是作为本发明原理的示例性内容,并且应当理解,在不脱离本发明的范围和精神的情况下本领域技术人员可以作出各种修改。例如,本发明的各种元件可以以任何期望的数量和/或布局被提供于PLD上。本领域的技术人员将理解,所提供的实施例只是为了示例而非限制的目的,本发明可以由所描述的实施例以外的多种实施例实践,并且本发明仅由以下权利要求限制。
Claims (25)
1.一种可编程逻辑器件,包括:
删除开关;
包括安全模块的连通地耦合到所述删除开关的核心配置结构,其中所述安全模块被配置为:
检测第一预定义事件的发生;以及
通知所述删除开关在检测到所述第一预定义事件的发生时断开;以及;
连通地耦合到所述核心配置结构和所述删除开关的控制块,其中所述控制块被配置为:
确定所述删除开关是否被断开;以及
在所述删除开关被断开时改变存储在所述可编程逻辑器件内的至少部分数据。
2.根据权利要求1所述的可编程逻辑器件,其中所述删除开关包括熔丝。
3.根据权利要求1所述的可编程逻辑器件,其中所述控制块被配置为在所述删除开关被断开时禁能所述可编程逻辑器件的至少部分。
4.根据权利要求1所述的可编程逻辑器件,包括I/O电路,所述I/O电路被配置为有助于接收输入数据、传输输出数据或者接收输入数据并且传输输出数据两者;
其中所述控制块被配置为在所述删除开关被断开时禁能所述I/O电路。
5.根据权利要求1所述的可编程逻辑器件,其中所述可编程逻辑器件被配置为:
接收加密的配置数据;
至少部分基于存储在所述可编程逻辑器件中的解密密钥来解密所述加密的配置数据,以确定解密的配置数据;以及
基于所述解密的配置数据配置所述可编程逻辑器件;
其中所述控制块、所述安全模块或两者被配置为清除所述解密密钥,从而在检测到所述第一预定义事件时禁能所述可编程逻辑器件的配置。
6.根据权利要求1所述的可编程逻辑器件,进一步包括:
电池;和
电耦合到所述电池的易失性存储器,其中所述易失性存储器被配置为:
存储用于解密加密的配置数据的解密密钥;以及
在所述第一预定义事件被检测时清除所述解密密钥。
7.根据权利要求1所述的可编程逻辑器件,包括密钥熔丝,其中:
所述密钥熔丝包括被配置为存储用于解密加密的配置数据的解密密钥的熔丝位;以及
所述密钥熔丝的至少一个被配置为在检测到所述第一预定义事件时清除其对应的熔丝位。
8.根据权利要求1所述的可编程逻辑器件,其中:
所述安全模块被配置为检测不同于所述第一预定义事件的第二预定义事件的发生;以及
所述可编程逻辑器件被配置为:
实现在检测到所述第一预定义事件时断开所述删除开关的第一删除序列;以及
实现在检测到所述第二预定义事件时不断开所述删除开关的第二删除序列。
9.根据权利要求1所述的可编程逻辑器件,其中:
所述可编程逻辑器件被配置为:
存储粘滞位;以及
接收包括安全位的可编程对象文件;以及
所述安全模块被配置为在以下情况时检测所述第一预定义事件的发生:
所述粘滞位的第一形式和所述安全位的第二形式不匹配;
所述可编程逻辑器件中存储的所述粘滞位已经被更改;或者
上述两者。
10.一种用于操作可编程逻辑器件的方法,包括:
使用所述可编程逻辑器件的处理器在检测到所述可编程逻辑器件的未授权存取或使用时检测第一触发事件的发生;以及
使用所述处理器在检测到所述第一触发事件时开始第一删除序列,其中所述第一删除序列包括断开删除开关,用于禁能所述可编程逻辑器件的至少部分,并且用于调整存储在所述可编程逻辑器件中的数据的至少部分。
11.根据权利要求10所述的方法,包括使用所述处理器通知所述可编程逻辑器件存储粘滞位;
其中检测所述第一触发事件的发生包括利用存储在所述可编程逻辑器件中的粘滞位。
12.根据权利要求11所述的方法,包括:
使用所述处理器接收包括安全位的编程对象文件即POF位流;
使用所述处理器将所述粘滞位的第一形式与所述安全位的第二形式比较;以及
使用所述处理器在所述第一形式与所述第二形式不匹配时检测所述可编程逻辑器件的未授权的存取或使用的发生。
13.根据权利要求11所述的方法,其中检测所述触发事件的发生包括检测存储在所述可编程逻辑器件中的所述粘滞位中的至少一个已经被修改。
14.根据权利要求10所述的方法,其中所述第一删除序列包括将存储在所述可编程逻辑器件的易失性存储器中的解密密钥清除。
15.根据权利要求10所述的方法,其中所述第一删除序列包括熔断用于存储解密密钥的密钥熔丝。
16.根据权利要求10所述的方法,其中所述第一删除序列包括禁能I/O电路,所述I/O电路由所述可编程逻辑器件使用以便接收输入数据、传输输出数据或者接收输入数据并且传输输出数据两者。
17.根据权利要求10所述的方法,其中所述第一删除序列包括禁能用于解密加密的配置数据的解密电路。
18.根据权利要求10所述的方法,其中所述第一删除序列包括对所述可编程逻辑器件的至少部分重置。
19.根据权利要求10所述的方法,包括:
使用所述处理器检测不同于所述第一触发事件的第二触发事件的发生;以及
使用所述处理器在检测到所述第二触发事件时开始第二删除序列,其中所述第二删除序列包括清除存储在所述可编程逻辑器件中的密钥,而不断开所述删除开关。
20.根据权利要求19所述的方法,其中所述第二触发事件被配置为指示比所述第一触发事件较少的临界威胁。
21.一种可编程器件,包括:
删除开关;
密钥熔丝,所述密钥熔丝被配置为有助于存储由所述可编程器件使用的用于解密加密的数据的解密密钥;以及
连通地耦合到所述删除开关和所述密钥熔丝的控制块,其中所述控制块被配置为,当触发事件的发生被检测时:
通知所述删除开关断开,其中断开所述删除开关被配置为改变存储在所述可编程器件中的数据的至少部分;以及
通知所述密钥熔丝断开,其中断开所述密钥熔丝被配置为改变所述解密密钥。
22.根据权利要求21所述的可编程器件,其中所述删除开关包括非易失性熔丝。
23.根据权利要求21所述的可编程器件,其中断开所述删除开关被配置为禁能所述可编程器件的至少部分。
24.根据权利要求23所述的可编程器件,其中所述可编程器件的部分包括I/O电路、解密电路或两者。
25.根据权利要求21所述的可编程器件,其中存储在所述可编程器件的数据包括配置数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/097,816 | 2011-04-29 | ||
US13/097,816 US8461863B2 (en) | 2011-04-29 | 2011-04-29 | Method and apparatus for securing a programmable device using a kill switch |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799832A CN102799832A (zh) | 2012-11-28 |
CN102799832B true CN102799832B (zh) | 2017-06-16 |
Family
ID=47007816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210130429.3A Active CN102799832B (zh) | 2011-04-29 | 2012-04-28 | 利用删除开关确保可编程器件安全的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8461863B2 (zh) |
CN (1) | CN102799832B (zh) |
DE (1) | DE102012006225B4 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8624624B1 (en) * | 2011-08-26 | 2014-01-07 | Lockheed Martin Corporation | Power isolation during sensitive operations |
US8525545B1 (en) * | 2011-08-26 | 2013-09-03 | Lockheed Martin Corporation | Power isolation during sensitive operations |
US9105344B2 (en) * | 2012-12-20 | 2015-08-11 | Intel Corporation | Shut-off mechanism in an integrated circuit device |
US9106232B2 (en) * | 2013-09-25 | 2015-08-11 | Microsemi SoC Corporation | SONOS FPGA architecture having fast data erase and disable feature |
US9659178B1 (en) * | 2013-10-22 | 2017-05-23 | Square, Inc. | Device blanking |
US9577643B1 (en) * | 2013-11-26 | 2017-02-21 | Altera Corporation | Secure partial reconfiguration regions |
US9189656B1 (en) | 2014-11-25 | 2015-11-17 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | IC chip package disabling device |
EP3373188B1 (en) * | 2015-11-03 | 2020-05-13 | ICTK Holdings Co., Ltd. | Security apparatus and operation method thereof |
DE102015223152A1 (de) * | 2015-11-24 | 2017-05-24 | Siemens Aktiengesellschaft | Schutzvorrichtung, Sicherheitssystem und Schutzverfahren |
US10475034B2 (en) | 2016-02-12 | 2019-11-12 | Square, Inc. | Physical and logical detections for fraud and tampering |
TWI648741B (zh) * | 2017-06-05 | 2019-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置之控制器以及進階資料抹除的方法 |
US10255603B1 (en) | 2017-08-31 | 2019-04-09 | Sqaure, Inc. | Processor power supply glitch mitigation |
US11257072B1 (en) | 2018-03-29 | 2022-02-22 | Square, Inc. | Detecting unauthorized devices |
US11182794B1 (en) | 2018-03-29 | 2021-11-23 | Square, Inc. | Detecting unauthorized devices using proximity sensor(s) |
US10733291B1 (en) | 2018-06-11 | 2020-08-04 | Square, Inc. | Bi-directional communication protocol based device security |
DE102020109304A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte UART-Schnittstelle mit Passwort geschütztem Scan-Mode und Analog-Test-Bus |
DE102020109303A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte JTAG-Schnittstelle mit Passwort geschütztem Scan-Mode und Analog-Test-Bus |
DE102021106440A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte Schnittstelle mit Passwort geschütztem Speicherzugriff mit Speicherlöschung bei Speicherzugriff |
DE102020109306A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte Schnittstellen mit Passwort geschütztem Scan-Mode und Analog-Test-Bus |
DE102020109313A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte Schnittstellen mit Passwort geschütztem Speicherzugriff |
DE102020109305A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte SPI-Schnittstelle mit Passwort geschütztem Scan-Mode und Analog-Test-Bus |
DE102020109312A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte SPI-Schnittstelle mit Passwort geschütztem Speicherzugriff |
DE102020109310A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte UART-Schnittstelle mit Passwort geschütztem Speicherzugriff |
DE102020109307A1 (de) | 2020-04-03 | 2021-10-07 | Elmos Semiconductor Se | Modifizierte JTAG-Schnittstelle mit Passwort geschütztem Speicherzugriff |
US11397834B2 (en) * | 2020-07-31 | 2022-07-26 | EMC IP Holding Company LLC | Methods and systems for data backup and recovery on power failure |
US11463438B2 (en) | 2020-11-11 | 2022-10-04 | Bank Of America Corporation | Network device authentication for information security |
US11588848B2 (en) | 2021-01-05 | 2023-02-21 | Bank Of America Corporation | System and method for suspending a computing device suspected of being infected by a malicious code using a kill switch button |
US20220327249A1 (en) * | 2021-04-12 | 2022-10-13 | Microsoft Technology Licensing, Llc | Systems and methods for chassis intrusion detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6608792B2 (en) * | 2000-11-09 | 2003-08-19 | Texas Instruments Incorporated | Method and apparatus for storing data in an integrated circuit |
CN1828558A (zh) * | 2005-03-04 | 2006-09-06 | 中国科学院计算技术研究所 | 静态随机存储器可编程门阵列芯片的加密装置及加密方法 |
CN101281495A (zh) * | 2007-04-02 | 2008-10-08 | 北京华旗资讯数码科技有限公司 | 利用移动存储装置对文件加密的方法 |
US7676355B1 (en) * | 2000-04-26 | 2010-03-09 | Altera Corporation | Method and apparatus for providing protected intellectual property |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4774421A (en) | 1984-05-03 | 1988-09-27 | Altera Corporation | 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 |
US4617479B1 (en) | 1984-05-03 | 1993-09-21 | Altera Semiconductor Corp. | 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 |
US5220214A (en) | 1991-04-22 | 1993-06-15 | Altera Corporation | Registered logic macrocell with product term allocation and adjacent product term stealing |
US5121006A (en) | 1991-04-22 | 1992-06-09 | 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 |
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 |
US5260610A (en) | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
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 |
US5535168A (en) | 1994-12-01 | 1996-07-09 | Motorola, Inc. | Method and apparatus for selectively erasing memory to extend battery life |
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 |
GB9900432D0 (en) | 1999-01-08 | 1999-02-24 | Xilinx Inc | Linear feedback shift register in a progammable gate array |
US6651155B1 (en) | 2000-07-28 | 2003-11-18 | Altera Corporation | Apparatus and method for translating a programmable logic device programmer object file |
US6466048B1 (en) * | 2001-05-23 | 2002-10-15 | Mosaid Technologies, Inc. | Method and apparatus for switchably selecting an integrated circuit operating mode |
US6980649B1 (en) | 2001-12-10 | 2005-12-27 | Cisco Technology, Inc. | Hardware-based encryption/decryption employing dual ported memory and fast table initialization |
US7046570B1 (en) * | 2004-06-02 | 2006-05-16 | Xilinx, Inc. | Programmable logic devices optionally convertible to one time programmable devices |
US8255700B2 (en) * | 2004-06-29 | 2012-08-28 | Qualcomm Incorporated | Lockstep mechanism to ensure security in hardware at power-up |
US7236007B1 (en) | 2004-09-24 | 2007-06-26 | Altera Corporation | Methods and systems for achieving improved intellectual property protection for programmable logic devices |
US7536559B1 (en) * | 2005-05-05 | 2009-05-19 | Xilinx, Inc. | Method and apparatus for providing secure programmable logic devices |
US7368935B2 (en) * | 2005-10-18 | 2008-05-06 | Honeywell International Inc. | Tamper response system for integrated circuits |
US7844997B2 (en) * | 2006-01-12 | 2010-11-30 | Honeywell International Inc. | Securing standard test access port with an independent security key interface |
DE102006016303B4 (de) | 2006-04-06 | 2015-06-18 | Infineon Technologies Ag | Untergeordnete Testschnittstelle |
JP5026102B2 (ja) | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
US8159259B1 (en) * | 2007-08-06 | 2012-04-17 | Lewis James M | Self-modifying FPGA for anti-tamper applications |
US8977820B2 (en) | 2007-12-21 | 2015-03-10 | Arm Limited | Handling of hard errors in a cache of a data processing apparatus |
US7750694B1 (en) * | 2008-11-11 | 2010-07-06 | Altera Corporation | Power on reset circuitry for manufacturability and security using a fuse |
US8184812B2 (en) * | 2009-06-03 | 2012-05-22 | Freescale Semiconductor, Inc. | Secure computing device with monotonic counter and method therefor |
US8255620B2 (en) * | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
US8736299B1 (en) | 2011-04-29 | 2014-05-27 | Altera Corporation | Setting security features of programmable logic devices |
US8719957B2 (en) | 2011-04-29 | 2014-05-06 | Altera Corporation | Systems and methods for detecting and mitigating programmable logic device tampering |
US8502555B1 (en) * | 2012-06-28 | 2013-08-06 | Xilinx, Inc. | Method of and circuit for preventing the alteration of a stored data value |
-
2011
- 2011-04-29 US US13/097,816 patent/US8461863B2/en active Active
-
2012
- 2012-03-27 DE DE102012006225.7A patent/DE102012006225B4/de active Active
- 2012-04-28 CN CN201210130429.3A patent/CN102799832B/zh active Active
-
2013
- 2013-06-07 US US13/913,355 patent/US9111121B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676355B1 (en) * | 2000-04-26 | 2010-03-09 | Altera Corporation | Method and apparatus for providing protected intellectual property |
US6608792B2 (en) * | 2000-11-09 | 2003-08-19 | Texas Instruments Incorporated | Method and apparatus for storing data in an integrated circuit |
CN1828558A (zh) * | 2005-03-04 | 2006-09-06 | 中国科学院计算技术研究所 | 静态随机存储器可编程门阵列芯片的加密装置及加密方法 |
CN101281495A (zh) * | 2007-04-02 | 2008-10-08 | 北京华旗资讯数码科技有限公司 | 利用移动存储装置对文件加密的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20120274351A1 (en) | 2012-11-01 |
CN102799832A (zh) | 2012-11-28 |
US8461863B2 (en) | 2013-06-11 |
US20130271178A1 (en) | 2013-10-17 |
US9111121B2 (en) | 2015-08-18 |
DE102012006225B4 (de) | 2024-05-02 |
DE102012006225A1 (de) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799832B (zh) | 利用删除开关确保可编程器件安全的方法和装置 | |
US7218567B1 (en) | Method and apparatus for the protection of sensitive data within an integrated circuit | |
US10037438B2 (en) | Setting security features of programmable logic devices | |
Trimberger et al. | FPGA security: Motivations, features, and applications | |
CN101512660B (zh) | 电路装置和电路 | |
CN108604282B (zh) | 集成电路和用于保护集成电路的安全特征的方法 | |
US8209545B1 (en) | FPGA configuration bitstream protection using multiple keys | |
CN104615953B (zh) | 一种配置数据流安全性高的可编程逻辑器 | |
EP3543881B1 (en) | Chip access method, security control module, chip and debugging device | |
US7162644B1 (en) | Methods and circuits for protecting proprietary configuration data for programmable logic devices | |
US6931543B1 (en) | Programmable logic device with decryption algorithm and decryption key | |
CN104025500B (zh) | 使用在物理上不可克隆的函数的安全密钥存储 | |
EP2702526B1 (en) | Method and apparatus for securing programming data of a programmable device | |
US7339400B1 (en) | Interface port for electrically programmed fuses in a programmable logic device | |
CN105184196B (zh) | 电子系统信息安全保护系统及方法 | |
US7254800B1 (en) | Methods of providing error correction in configuration bitstreams for programmable logic devices | |
JP2002535793A (ja) | 集積回路上の機密モジュールの統合 | |
US8983073B1 (en) | Method and apparatus for restricting the use of integrated circuits | |
CN103164789A (zh) | 一种带安全校验的debug电路结构及其实现方法 | |
Peterson | Developing tamper resistant designs with Xilinx Virtex-6 and 7 series FPGAs | |
CN113496047A (zh) | 一种带防拆卸保护的电子密码卡 | |
TW202209108A (zh) | 管理積體電路裝置之安全性之未定義生命週期狀態識別符 | |
CN103262093B (zh) | 利用mems执行ic功能的非破坏性和安全停用的切换器及其方法 | |
Santos et al. | Designing and implementing a malicious 8051 processor | |
Peterson | Developing tamper-resistant designs with ultrascale and ultrascale+ FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |