CN108804352B - 管理安全性集成电路状态的装置及其方法 - Google Patents

管理安全性集成电路状态的装置及其方法 Download PDF

Info

Publication number
CN108804352B
CN108804352B CN201711324397.XA CN201711324397A CN108804352B CN 108804352 B CN108804352 B CN 108804352B CN 201711324397 A CN201711324397 A CN 201711324397A CN 108804352 B CN108804352 B CN 108804352B
Authority
CN
China
Prior art keywords
state
integrated circuit
lock
bits
words
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
Application number
CN201711324397.XA
Other languages
English (en)
Other versions
CN108804352A (zh
Inventor
日弗·赫诗曼
尤瑟·塔米
丹·摩瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN108804352A publication Critical patent/CN108804352A/zh
Application granted granted Critical
Publication of CN108804352B publication Critical patent/CN108804352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开一种管理安全性集成电路状态的装置及其方法。此装置包括一非易失性存储器及一控制器。该控制器是被配置为于该非易失性存储器存储一状态阵列,其包括多个字。于各字中,一个或多个位被配置为锁定位。该控制器进一步被配置基于该状态阵列的锁定位设置该装置的一操作状态。通过(i)比对该字中的该锁定位的对应的锁定值以判定于该状态阵列中的各字是被锁定或被解锁,(ii)如果状态阵列中的所有字都被判定为被锁定,则设置该设备为一锁定状态,(iii)如果状态阵列中的所有字都被判定为被解锁,则设置该设备为一解锁状态,且(iv)如果一个或多个字被发现为被锁定,且一个或多个字被发现为被解锁,设置该设备为一错误状态。

Description

管理安全性集成电路状态的装置及其方法
技术领域
本发明是关于一种安全性数据存储的技术领域,且特别是关于一种管理安全性集成电路状态的装置及其方法。
背景技术
在不同的系统及应用中,安全性集成电路是存储敏感数据,例如:存储于快闪存储器或其他非易失性存储器(NVM)中。现有技术中,有不同技术是用于避免非易失性存储器中的数据被未授权的存存取。例如,美国专利8,151,072,其所揭露的内容通过引用并入本文,所描述的电子装置包括一具有多个字1…N的非易失性存储器,其存取和/或写入的权限可以被锁定。保护暂存器是由二保护字A和B所形成,两个保护字A和B可根据在该可编程存储器中字1…N的连续锁定状态而可选地启动和非启动。保护暂存器的状态是通过启动字而定义。在初始主动字的内容被复制到非启动字之前,初始启动字不会被删除。当初始主动字的内容根据锁定命令而改变,保护暂存器的初始被动字变成主动字。
美国专利9,202,073,其公开内容通过引用并入本文,描述了于集成电路上保护、遮蔽数据或敏感信号的安全性措施。根据其所揭露的系统和方法,当存取权限未被锁定时允许擦除敏感数据,于正常操作时通过直接或间接的手段锁定存取敏感数据的通道,并遮蔽敏感信号免于侵入式的探测或操作。
美国专利9,262,259,其公开内容通过引用并入本文,描述了一次性的可编程(One-Time Programmable)集成电路的安全保护技术。其揭露的示范方法包含:取样多个OTP存储器阵列的数值,并对OTP存储器阵列的取样数值之间进行比较,以及将每一OTP存储器阵列的取样数值与未编程的OTP存储器阵列内的数值进行比较。此方法进一步包含根据取样数值的比较结果决定集成电路是否发生错误。
美国专利5,954,818,其公开内容通过引用并入本文,其描述于包括第一和第二存储器阵列的一快闪存储器装置中写入存储器元件的一种方法,该第一存储器阵列包括多个存储器模组。该独立的第二存储器阵列包括分别对应多个存储器区块的区块锁定位(blocklock-bit)。写入第一存储器阵列的存储器区块的一的存储器元件的方法包括发出写入存储器元件的命令,判断独立的第二存储器阵列中相应的区块锁定位是否被设置,如果相应的区块锁定位未设置,则可写入存储器元件。
美国专利6,073,243,其公开内容通过引用并入本文,其描述一快闪存储器装置包括一第一存储器阵列、区块锁定电路、以及控制电路。存储器阵列包括多个存储器区块。区块锁定电路包括多个区块锁定位及一主要锁定位。各区块锁定位是对应于至少一存储器模组,并指出该对应的存储器模组是否被锁定。主要锁定位是指出多个锁定位是否被锁定。控制电路被配置为接收一通行码以使该控制电路覆写该主要锁定位。
发明内容
本发明提供了一种管理安全性集成电路状态的装置及其方法,用于防止未经授权地存取安全性集成电路中数据,保全性集成电路(IC)状态管理。
本文描述的本发明的实施例提供了一种管理安全性集成电路状态的装置,是一种包括非易失性存储器(NVM)和控制器的装置。控制器被配置为在非易失性存储器中存储包括多个字的状态阵列。在每个字中,一个或多个位被指定为锁定位。控制器还被配置为基于状态阵列的锁定位来设置装置的操作状态,通过(i)通过将该字的锁定位与分别对应的锁定值比对,判定状态阵列中个字是已锁定或未锁定,(ii)如果状态阵列中的所有字被发现为已锁定,则将装置设置为锁定状态,(iii)如果发现状态阵列中的所有字为已解锁,则将该装置设置为解锁状态,和(iv)如果一个或多个字被发现为已锁定且其他一个或多个字被发现为已解锁,设置该装置为一错误状态。
在一些实施例中,控制器被配置为指定状态阵列中,非锁定位的其他位中的一个或多个位为密码位,并且通过密码位以推导出一密码以执行加密操作。在一个实施例中,控制器被配置为将密码位和锁定位存储在非易失性存储器的交错式存储器单元中。在一个公开的实施例中,控制器被用于设置预设锁定值,将给定字中锁定位与预设锁定值比对,以及设定预设锁定值等于给定字中密码位的函数。
在一些实施例中,当装置被设置为错误状态时,控制器被用于执行保护动作以避免存取存储于集成电路中的数据。在示例性实施例中,当电源开启(UPON POWER UP)时,控制器设定操作状态。在一些实施例中,控制器被配置为从只读硬件存取预设锁定值。
根据本发明的实施例,另外提供了一种管理安全性集成电路状态的方法,是一种操作集成电路(IC)的方法。该方法包括在非易失性存储器(NVM)中存储包括多个字的状态阵列,其中每个字中的一个或多个位被指定为锁定位。集成电路的操作状态是基于状态阵列的锁定位而决定,其通过(i)将字中的锁定位与相应的预设锁定值进行比对,以决定状态阵列中的各个字是已锁定或已解锁,(ii)如果状态阵列中的所有字都为已锁定,则将集成电路设置为锁定状态,(iii)如果发现状态阵列中的所有字都为已解锁,则将集成电路设置为已解锁状态,以及(iv)如果发现一个或多个字已锁定并且发现其他一个或多个字已解锁,则将集成电路设置为错误状态。
附图说明
通过下面结合附图对本发明的实施例的详细描述,将更充分地理解本发明,其中:
图1示意性地示出了根据本发明的实施例的包括非易失性存储器的安全性集成电路的方块图;以及
图2示意性地示出了根据本发明图1的集成电路操作状态实施例的状态图。
符号说明:
20:集成电路
22:主机
24:控制器
28:快闪存储器
32:启动只读存储器
40:状态阵列
44:字
50:解锁状态
54:锁定状态
58:错误状态
具体实施方式
本文描述的本发明的实施例提供了用于防止未经授权的存取安全性集成电路中数据的改进方法和系统。在示例性实施例中,所公开的技术保护非易失性存储器(NVM)中所存储的敏感数据以抵抗外部篡改,例如激光或电磁干扰(EMI,ElectromagneticInterference)攻击。
在一些实施例中,安全性集成电路包括非易失性存储器和控制器。除其他功能外,控制器使用一个或多个加密密码对存储在非易失性存储器或其他存储器上的数据(例如,数据和/或软件程序)执行加密操作(例如,加密,解密和/或认证),并且还依照多种操作状态操作集成电路。
其中一个状态是“解锁状态”,可以自由存取(例如:写入、存取或删除)非易失性存储器,操作各种调试功能(例如JTAG)和测试模式,存取内部存储器如:随机存取存储器(RAM)和硬件暂存器,和/或以其他方式自由操作集成电路功能。这种状态可以在例如开发期间或在生产期间,用于将保全集成电路传递给其最终用户之前使用。另一个状态是集成电路处于其功能模式的“锁定状态”。通常,在这种状态下,集成电路的调试功能关闭,集成电路只能通过特意设置功能接口进行存取和使用。锁定状态通常是提供给最终用户的唯一状态。第三个状态是集成电路未被锁定的“错误状态”,也不会被合法解锁。可以当检测到非易失性存储器被尝试篡改而响应达到该状态。其他附加的状态也可以被定义为适当的。
在一些实施例中,非易失存储器保存被称为“状态阵列”的多个字的阵列。状态阵列用于维持集成电路的操作状态并用于维持单一密码或多个密码以防止外部篡改。使用状态阵列可防止未授权方存取(例如,存取,修改或删除)安全数据内容,并防止使用其调试功能进一步存取集成电路。在状态阵列的每个字中,一个或多个位被指定为“密码位”,并且一个或多个其他位被指定为“锁定位”。密码位于产生加密密码或多个密码。锁定位用于检测对于非易失性存储器的外部攻击。
在一些实施例中,状态阵列的每个字的锁定位决定该字的状态。如果该字的所有锁定位都等于相应的预设锁定值,则状态阵列的给定字被视为已锁定,否则视为已解锁。一个字的锁定值(指示该字被锁定的锁定位值的预期组合)可以根据不同的状态阵列中而有不同。如果状态阵列中的所有字为已锁定,则认为该集成电路被锁定(即:处于已锁定状态)。如果状态阵列中的所有字都为已解锁,则认为集成电路被解锁(即:处于被解锁状态)。如果一个或多个字已锁定,并且一个或多个其他字已解锁,则认为集成电路是处于错误状态。
密码位和锁定位的设置位置通常彼此交错,并且可能因不同的字而不同。由于锁定位和密码位彼此紧密地物理接近,所以对于锁定位的任何外部篡改都很可能损坏一个或多个密码位。因此,即使外部攻击以某种方式成功解锁所有单词,也很可能会损坏许多密码位,并使单一加密密码或多个密码不可恢复。
在典型的实施例中,控制器在电源开启时检查状态阵列并为集成电路设置适当的操作状态。对于状态阵列中的每个字,控制器将锁定位与相应的预设锁定值进行比较,并判定该字是已锁定或已解锁。如果找到一个或多个字已锁定并且发现其他一个或多个字已解锁,则控制器将判定已经被攻击,而将集成电路设置为错误状态。例如,控制器此时可以删除非易失性存储器的整个内容,禁止对集成电路的进一步存取,和/或采取其他合适的保护措施。
图1是示意性地示出了根据本发明的实施例的安全性集成电路(IC)20的方块图。集成电路20可以安全地存储用于主机22的数据。集成电路20可以用于在任何合适的系统中服务任何合适的主机22,例如在安全性存储设备中。
集成电路22包括将数据存储在快闪存储器28中的控制器24。此处所描述的实施例主要涉及快闪存储器,但是所公开的技术可应用于任何其它合适类型的非易失性存储器。在本示例中,集成电路20还包括存储控制器24的软件的启动只读存储器(ROM)32。在一个实施例中,存储在启动只读存储器32中的软件包括启动软件,即:从启动只读存储器32启动控制器24开启电源的程序代码。
图1所示的系统和存储器配置是纯粹为了概念清晰而描绘的示例配置。在不同实施例中,可以使用任何其它合适的配置。控制器24和快闪存储器28通常被配置为,使得:(i)将快闪存储器和控制器彼此分离是完全不可能的,并且(ii)快闪存储器只能通过来自控制器的授权来存取。在一个实施例中,控制器24和快闪存储器28可以制造在相同的集成电路封装中或同一硅晶片上。为了清楚起见,图中省略了对于公开的技术的理解不强制的要素。
各种实施例中,可以使用诸如专用集成电路(ASIC,Application-SpecificIntegrated Circuit)或现场可编程门阵列(FPGA,Field-Programmable Gate Array)中的任何合适的硬件来实现图1中所示的不同系统元件。或者,集成电路20的一些功能,例如控制器24的功能,可以以软件或使用软件和硬件元件的组合来实现。
在一些实施例中,控制器24包括通用处理器,其通过软件程序代码以执行本文所述的功能。该软件可以以电子形式,通过网路或从主机22下载到处理器中,或者可替代地或另外地将其提供和/或存储在非瞬时有形介质上,例如磁、光、或电子存储器。
在一些实施例中,控制器24对数据进行加密操作,例如,使用一个或多个加密密码(简称为“密码”)在快闪存储器28上存储数据。例如,控制器可以在将数据存储在快闪存储器28之前对从主机22接收的用于存储的使用者数据进行加密,并且在将其发送到主机22之前,解密从快闪存储器28存取的数据。另外或者替代地,控制器可以加密内部标码或其他管理数据、验证和/或加密内部软件程序,或执行任何其他合适的加密操作。这些加密操作中的每一个可以使用不同的密码。
在本发明的一些实施例中,控制器24将状态阵列40存储在快闪存储器28中。
状态阵列40的一个例子显示在图1底部的附图中。从图中可以看出,状态阵列40包括多个字44。在每个字44中,一个或多个位被指定为“密码位”(在图中表示为“K”),并且指定一个或多个其他位作为“锁定位”(在图中表示为“L”)。
在图1的示例中,状态阵列40包括总共128个字,每个字包括16位,其中5个被指定为锁定位,11个被指定为密码位。这些数值以及图1所示的密码位和锁定位的具体位置仅仅是通过示例来描绘的。在替代实施例中,可以使用任何其它合适的状态阵列进行配置。
控制器24使用密码位来产生加密密码。例如,控制器24可以通过将哈希函数(hashfunction)例如:SHA,应用于某些或全部密码位来产生密码。在一个实施例中,为了简化实施方式,控制器24可以通过将哈希函数应用于包括密码位和锁定位的整个状态阵列来产生密码。锁定位用于检测针对非易失性存储器的外部攻击。
字44和状态阵列40之间的密码位和锁定位的位置通常彼此交错。这种交错通常意味着密码位和锁定位存储在彼此物理交错的快闪存储器单元中,在具有多级单元(MLC,Multi-Level Cell)快闪存储器的情况下甚至可能存储在相同的存储器单元中。
因此,篡改一个或多个锁定位可能会损坏至少一个密码位。换句话说,即使攻击者成功解锁集成电路并得以完全存取状态阵列40,对锁定位的物理攻击(例如,通过用激光或聚焦电磁辐射外部照射集成电路20的选定区域)将很可能使加密密码不可恢复。
在所公开的实施例中,如果该字的所有锁定位都等于相应的预设锁定值,则控制器24将状态阵列40的任何字44视为锁定。否则,该字被视为解锁。在状态阵列40中,预设锁定值可以因字44不同而改变。如果状态阵列40的所有字44已锁定,则整个集成电路20总体上被视为已锁定。如果状态阵列中的所有字44已解锁,则整个集成电路20亦被认为是已解锁。如果一个或多个字44已锁定,并且其他一个或多个其他字44已解锁,则控制器24将集成电路20视为处于错误状态。
当设定锁定值时,通常需要选择快闪存储器28首次通电时,不会无意中产生的值。通常,在第一次开启电源时,状态阵列预期处于未锁定状态。因此,无意中产生的锁定值可能导致不可恢复的错误状态。
在一些实施例中,各种字44的锁定值被预先定义并存储在例如为启动只读存储器32的只读硬件中。在另一个实施例中,锁定位和密码位可以逻辑地合并在一起。例如,在一些实施例中,每个字44的锁定值被定义为相同字的密码位的函数。例如,每个锁定位可以被定义为多个密码位的异或逻辑(XOR)。在一些实施例中,字44的锁定值被定义为符合该字的密码位的错误检测方程式。任何合适的错误检测方程式或错误检测程序代码都可以用于此目的。在一个示例性实施例中,通过在该字的密码位上计算循环冗余校验(CRC,CyclicRedundancy Check)来计算每个字44的锁定值。循环冗余校验的结果用作为锁定值(密码位的预期值)。
在一些实施例中,控制器24是用于评估集成电路20的状态,作为电源开启时启动过程的一部分。控制器的启动软件通常将每个字44的锁定位与预设锁定值进行比较,并且确定集成电路是为已锁定、已解锁或处于错误状态。当锁定值存储在启动只读存储器32中时,启动软件通常从启动只读存储器存取锁定值以执行比对。当锁定值被运算为密码位的错误检测功能时,启动软件通常通过每个字44的密码位来计算错误检测功能,并将结果与该字的锁定位进行比对。
图2示意性地示出了根据本发明的实施例的集成电路20的操作状态的状态图。在本实施例中,如上所述,控制器24根据三种可能的状态,即:解锁状态50、锁定状态54和错误状态58来操作集成电路20。
在一个示例性实施例中,三个状态定义如下:
解锁状态是初始电源开启时集成电路启动的出厂预设状态。在这种状态下,通常也被称为开发状态,通常包括有工程测试模式和调试功能(例如JTAG)。集成电路20整体可能不发挥功能。控制器24通常能够写入数据至快闪存储器28中,或从快闪存储器28中读取数据。
锁定状态通常是将集成电路20递交给最终用户的完整功能状态。这通常是最终用户被允许使用的唯一状态。其对集成电路的存取受限于设备规范的预期功能用途。例如,可信平台模组(TPM,Trusted Platform Module)接口可以被定义为符合“TCG PC ClientPlatform TPM Profile(PTP)”,Family“2.0”,Level 00,Revision 00.43,于2015年1月26日的规定。其相关内容由此并入引用作为参考。
在错误状态下,控制器24会判定为遭受攻击,并采取适当的保护措施,以防止存取快闪存储器28或其他集成电路20中的安全数据。示例保护措施可包括例如:删除某些或所有的快闪存储器28中的内容,阻止对集成电路20的一个或多个功能的存取,将集成电路20转换到集成电路不再起作用的故障模式,和/或任何其它合适的措施。
为了从解锁状态50转换到锁定状态54(“锁定集成电路”),将锁定值(锁定位的期望值)写入状态阵列40中的适当位置。密码位也被写入状态阵列40中的适当位置。在填充状态阵列之后,集成电路20可以关闭电源。
当电源开启时,集成电路20在锁定状态54启动。
在启动过程中,控制器24检查状态阵列40。并对每个字44,控制器24将锁定位的值与相应的锁定值进行比对。如果位值吻合,则控制器24将该字视为已解锁。如果位值不吻合,则控制器24将该字视已锁定。如果发现所有字44已锁定,则控制器24保持在锁定状态54。如果发现所有字44已解锁,则控制器24转换到解锁状态50。如果发现状态阵列40不一致(即,一个或多个字44已锁定,其他一个或多个字44已解锁),控制器24则判定集成电路20可能已经遭受攻击,此时转换到错误状态58。如上所述,在错误状态,控制器24中采取适当的保护措施来防止未经授权的存取集成电路20中的数据。
图2的状态图,包括状态定义和状态之间的转换,是纯粹为了厘清概念而绘示的示例状态图。在替代的实施例中,可以使用任何其它合适的状态和转换。
尽管这里描述的实施例主要涉及TPM,但是本文描述的方法和系统也可以用于其他应用中,例如在具有嵌入式非易失性存储器的智能卡或其他安全设备中。
因此,应当理解,上述实施例是作为示例引用的,并且本发明不限于上文具体示出和描述的内容。相反地,本发明的范围包括上文描述的各种特征的组合和子组合,以及本领域技术人员在阅读前述描述后将会想到的变化和修改,并且在现有技术在本专利申请中通过引用并入的文件被认为是应用的组成部分,除了在与本说明书中明确或隐含地定义的定义相冲突的方式之外,应当考虑本说明书中的定义。

Claims (14)

1.一种管理安全性集成电路状态的装置,其特征在于,包括:
一非易失性存储器;以及
一控制器,被配置为:
于所述非易失性存储器中存储一状态阵列,所述状态阵列包括多个字,其中,于各所述字中,一个或多个位被指定为锁定位;以及
根据所述状态阵列的所述锁定位设置用于所述装置的一操作状态,通过下列步骤:
通过比对所述字中的所述锁定位与分别对应的一预设锁定值,以判定于所述状态阵列中各字已锁定或已解锁;
如果所述状态阵列中所有字确认为已锁定,设定所述装置至一锁定状态;
如果所述状态阵列中所有字确认为已解锁,设定所述装置至一未锁定状态;以及
如果一个或多个所述字确认为已锁定且其他一个或多个字确认为未锁定,设定所述装置至一错误状态。
2.如权利要求1所述的管理安全性集成电路状态的装置,其特征在于,所述控制器被配置为指定所述状态阵列中非所述锁定位的其他位的一个或多个位为一密码位,通过所述密码位所推导出一密码,执行一加密操作。
3.如权利要求2所述的管理安全性集成电路状态的装置,其特征在于,所述控制器被配置为存储所述密码位及所述锁定位于所述非易失性存储器的一交错式存储器单元。
4.如权利要求2所述的管理安全性集成电路状态的装置,其特征在于,所述控制器被配置为设置所述预设锁定值,而一给定字中的所述锁定位与所述预设锁定值比对,以及使所述给定字相等于所述密码位的一方程式。
5.如权利要求1所述的管理安全性集成电路状态的装置,其特征在于,当设定所述装置为所述错误状态,所述控制器被设置为执行一保护动作以避免存取存储于所述装置中的数据。
6.如权利要求1所述的管理安全性集成电路状态的装置,其特征在于,当电源开启时,所述控制器设定所述操作状态。
7.如权利要求1所述的管理安全性集成电路状态的装置,其特征在于,所述控制器从一只读硬件存取所述预设锁定值。
8.一种管理安全性集成电路状态的方法,其特征在于,所述方法包括:
存储一状态阵列于一非易失性存储器,其包括多个字,其中,于各字中,一个或多个位被指定为一锁定位;以及
设定一操作状态,基于所述状态阵列的所述锁定位以用于所述集成电路,其通过下列步骤:
通过将字中的所述锁定位与一预设锁定值比对,以决定所述状态阵列的各字已锁定或已解锁;
如果于所述状态阵列中的所有字被确认为被锁定,设定所述集成电路为一锁定状态;
如果于所述状态阵列中的所有字被确认为被解锁,设定所述集成电路为一解锁状态;以及
如果一个或多个字被确认为锁定状态,且一个或多个字确认为解锁状态,则设定所述集成电路至一错误状态。
9.如权利要求8所述的管理安全性集成电路状态的方法,其特征在于,其所存储的所述状态阵列包括指定,指定所述状态阵列中非锁定位的多个字为密码位,以由所述密码位执行一加密操作。
10.如权利要求9所述的管理安全性集成电路状态的方法,其特征在于,其所存储的所述状态阵列包括存储所述密码位及所述锁定位于所述非易失性存储器的一交错式存储器单元上。
11.如权利要求9所述的管理安全性集成电路状态的方法,其特征在于,其包括设定所述预设锁定值,以使一给定字中的所述锁定位与所述预设锁定值比对,使所述给定字相等于所述锁定位的一方程式。
12.如权利要求8所述的管理安全性集成电路状态的方法,其特征在于,设定所述集成电路为所述错误状态包括执行一保护动作以避免存取存储于所述集成电路中的数据。
13.如权利要求8所述的管理安全性集成电路状态的方法,其特征在于,当电源开启时,设定所述操作状态。
14.如权利要求8所述的管理安全性集成电路状态的方法,其特征在于,比对所述锁定位与所述预设锁定值包括从一只读硬件存取所述预设锁定值。
CN201711324397.XA 2017-05-03 2017-12-13 管理安全性集成电路状态的装置及其方法 Active CN108804352B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/585,260 2017-05-03
US15/585,260 US10296738B2 (en) 2017-05-03 2017-05-03 Secure integrated-circuit state management

Publications (2)

Publication Number Publication Date
CN108804352A CN108804352A (zh) 2018-11-13
CN108804352B true CN108804352B (zh) 2021-05-28

Family

ID=63255966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711324397.XA Active CN108804352B (zh) 2017-05-03 2017-12-13 管理安全性集成电路状态的装置及其方法

Country Status (4)

Country Link
US (1) US10296738B2 (zh)
JP (1) JP6518798B2 (zh)
CN (1) CN108804352B (zh)
TW (1) TWI625627B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142948A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Method and system for preventing and detecting security threats
EP3663959B1 (en) * 2018-12-06 2021-08-11 Mastercard International Incorporated An integrated circuit, method and computer program
US11321458B2 (en) * 2020-01-28 2022-05-03 Nuvoton Technology Corporation Secure IC with soft security countermeasures
US11600332B2 (en) 2020-10-20 2023-03-07 Micron Technology, Inc. Programmable atomic operator resource locking

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178909B2 (ja) 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
US5394367A (en) * 1994-03-18 1995-02-28 Ramtron International Corporation System and method for write-protecting predetermined portions of a memory array
US6073243A (en) 1997-02-03 2000-06-06 Intel Corporation Block locking and passcode scheme for flash memory
US5954818A (en) 1997-02-03 1999-09-21 Intel Corporation Method of programming, erasing, and reading block lock-bits and a master lock-bit in a flash memory device
FR2810152A1 (fr) 2000-06-13 2001-12-14 St Microelectronics Sa Memoire eeprom securisee comprenant un circuit de correction d'erreur
CN1378146A (zh) * 2001-04-03 2002-11-06 李长珍 计算机用信息安全智能保护锁
US7398554B1 (en) 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word
US6842371B2 (en) * 2003-06-03 2005-01-11 Micron Technology, Inc. Permanent master block lock in a memory device
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
JP4367482B2 (ja) * 2006-12-20 2009-11-18 株式会社カシオ日立モバイルコミュニケーションズ 携帯端末及びプログラム
EP1970813B1 (fr) * 2007-03-13 2011-01-12 EM Microelectronic-Marin SA Procédé de verrouillage de mots d'une mémoire non volatile dans un dispositif électronique équipé de moyens de communication RF
CN101320355B (zh) * 2007-06-04 2010-12-22 群联电子股份有限公司 存储装置、存储卡存取装置及其读写方法
US20090125726A1 (en) 2007-11-14 2009-05-14 Mcm Portfolio Llc Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
JP2010009421A (ja) * 2008-06-27 2010-01-14 Sony Corp 集積回路
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8572334B2 (en) * 2010-04-23 2013-10-29 Psion, Inc. System and method for locking portions of a memory card
US8369149B2 (en) * 2010-09-30 2013-02-05 Sandisk Technologies Inc. Multi-step channel boosting to reduce channel to floating gate coupling in memory
CN102385556B (zh) * 2011-11-08 2014-11-26 聚辰半导体(上海)有限公司 串行非易失性存储器及解除存储器写保护的方法
TWI454959B (zh) * 2011-12-08 2014-10-01 Phison Electronics Corp 儲存裝置保護系統及其儲存裝置上鎖與解鎖方法
US8803548B2 (en) * 2012-04-19 2014-08-12 Microsemi SoC Corporation Apparatus and methods for a tamper resistant bus for secure lock bit transfer
US9390278B2 (en) * 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
US11068620B2 (en) * 2012-11-09 2021-07-20 Crossbar, Inc. Secure circuit integrated with memory layer
US9202073B2 (en) 2012-11-21 2015-12-01 Fairchild Semiconductor Corporation Security measures for data protection
US9262259B2 (en) 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security
US10452567B2 (en) * 2013-04-29 2019-10-22 Hewlett Packard Enterprise Development Lp Non-volatile memory to store resettable data
US9658787B2 (en) * 2014-02-26 2017-05-23 Macronix International Co., Ltd. Nonvolatile memory data protection using nonvolatile protection codes and volatile mask codes

Also Published As

Publication number Publication date
JP6518798B2 (ja) 2019-05-22
TWI625627B (zh) 2018-06-01
US10296738B2 (en) 2019-05-21
CN108804352A (zh) 2018-11-13
TW201843594A (zh) 2018-12-16
US20180322278A1 (en) 2018-11-08
JP2018190386A (ja) 2018-11-29

Similar Documents

Publication Publication Date Title
US10872154B2 (en) Secure device state apparatus and method and lifecycle management
US11601269B2 (en) Unchangeable physical unclonable function in non-volatile memory
EP3407335B1 (en) Non-volatile memory based physically unclonable function with random number generator
JP3734408B2 (ja) 半導体記憶装置
CN108804352B (zh) 管理安全性集成电路状态的装置及其方法
US10855477B2 (en) Non-volatile memory with physical unclonable function and random number generator
US20180278418A1 (en) Physical unclonable function for security key
EP2115655B1 (en) Virtual secure on-chip one time programming
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
CN113597600B (zh) 用于数据产生的数据线更新
KR20070048960A (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
EP3407336B1 (en) Unchangeable phyisical unclonable function in non-volatile memory
US8230495B2 (en) Method for security in electronically fused encryption keys
CN113672878A (zh) 防止回滚攻击的系统及方法
US7398554B1 (en) Secure lock mechanism based on a lock word
EP3454216A1 (en) Method for protecting unauthorized data access from a memory
CN114521261A (zh) 用于管理集成电路器件的安全性的未定义生命周期状态标识符
WO2018040678A1 (zh) 一种存储器数据保护方法、集成电路芯片及存储介质
JP7097407B2 (ja) ビットエラー修正の試行錯誤を優先順位付けるためのシステムおよび方法
CN112015582A (zh) 自修正存储器系统、提供错误修正至存储器内容的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant