CN106548100B - 集成电路以及用于保护集成电路的方法 - Google Patents

集成电路以及用于保护集成电路的方法 Download PDF

Info

Publication number
CN106548100B
CN106548100B CN201610794230.9A CN201610794230A CN106548100B CN 106548100 B CN106548100 B CN 106548100B CN 201610794230 A CN201610794230 A CN 201610794230A CN 106548100 B CN106548100 B CN 106548100B
Authority
CN
China
Prior art keywords
value
mask
security
access
integrated circuit
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
CN201610794230.9A
Other languages
English (en)
Other versions
CN106548100A (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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN106548100A publication Critical patent/CN106548100A/zh
Application granted granted Critical
Publication of CN106548100B publication Critical patent/CN106548100B/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/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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • 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/86Secure or tamper-resistant housings
    • G06F21/87Secure or tamper-resistant housings by means of encapsulation, e.g. for integrated circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour
    • 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
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07372Means for preventing undesired reading or writing from or onto record carriers by detecting tampering with the circuit
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/57Protection from inspection, reverse engineering or tampering
    • H01L23/573Protection from inspection, reverse engineering or tampering using passive means
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/57Protection from inspection, reverse engineering or tampering
    • H01L23/576Protection from inspection, reverse engineering or tampering using active circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2133Verifying human interaction, e.g., Captcha
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/52Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
    • H01L23/522Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames including external interconnections consisting of a multilayer structure of conductive and insulating layers inseparably formed on the semiconductor body
    • H01L23/5222Capacitive arrangements or effects of, or between wiring layers
    • H01L23/5225Shielding layers formed together with wiring layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • Social Psychology (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

根据本发明的第一方面,提供一种集成电路,该集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,所述安全关键组件被配置成产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,其中所述存取密钥是基于该有源屏蔽的输出值。根据本发明的第二方面,构想一种用于保护集成电路的相应方法。

Description

集成电路以及用于保护集成电路的方法
技术领域
本发明涉及一种集成电路。此外,本发明还涉及一种用于保护集成电路的相应方法。
背景技术
现如今,安全性在许多电子装置和计算环境中发挥重要作用。例如,智能卡和电子识别文档等电子装置通常含有集成电路(integrated circuit,IC),在这些集成电路中存储了可以与商业和政府组织进行交易的敏感数据,例如私人信息和秘密密钥。电子识别文档的例子有电子护照(e-护照)和电子身份证(eID)。为了保护这些敏感数据,更确切地说,为了防止未经授权的个人存取这些数据,已经开发了许多技术。然而,还是存在许多技术会破坏所述IC的安全性。已经设计出各种攻击以从安全IC读取数据。举例来说,所谓的聚焦离子束(focused ion beam,FIB)攻击或探测攻击是相当强有力的。这样的攻击在于使用失效分析和晶片级IC调试设备来探测和/或强制所选信号的状态。鉴于此类攻击产生的风险,开发有效对策是非常重要的。
发明内容
根据本发明的第一方面,提供一种集成电路,该集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,该安全关键组件被配置成产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,其中所述存取密钥是基于有源屏蔽的输出值。
在一个或多个实施例中,安全关键组件另外被配置成使用存取密钥以实现对安全关键组件中包括的存储单元的内容的存取。
在一个或多个实施例中,所述内容是已加密内容,并且存取密钥包括用于对所述已加密内容进行解密的解密密钥。
在一个或多个实施例中,存取密钥是基于有源屏蔽的输出值以及基于固定随机数。
在一个或多个实施例中,安全关键组件另外被配置成通过对有源屏蔽的输出值和所述固定随机数执行异或运算来产生存取密钥。
在一个或多个实施例中,安全关键组件另外被配置成向有源屏蔽提供输入值,所述输入值是基于固定随机种子值。
在一个或多个实施例中,安全关键组件另外被配置成在将所述输入值提供到有源屏蔽之前以可变随机值掩蔽该输入值。
在一个或多个实施例中,安全关键组件另外被配置成使用所述可变随机值揭露有源屏蔽的输出值。
在一个或多个实施例中,安全关键组件另外被配置成使用布尔掩蔽来掩蔽输入值并揭露输出值。
在一个或多个实施例中,安全关键组件包括屏蔽控制器,该屏蔽控制器被配置成掩蔽输入值并揭露输出值。
在一个或多个实施例中,安全关键组件另外被配置成在不能实现所述存取的情况下产生误差信号。
在一个或多个实施例中,智能卡包括所阐述类型的集成电路。
在一个或多个实施例中,电子识别文档包括所阐述类型的集成电路。
根据本发明的第二方面,构想一种用于保护集成电路的方法,所述集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,其中安全关键组件产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,并且其中所述存取密钥是基于有源屏蔽的输出值。
附图说明
将参考附图更详细地描述实施例,在附图中:
图1示出集成电路的例子;
图2示出说明可以如何控制有源屏蔽的方框图;
图3示出表示集成电路的示意性实施例的方框图;
图4示出根据一个或多个实施例的说明可以如何控制有源屏蔽的方框图;
图5示出有源屏蔽实施方案的说明性实施例;
图6示出有源屏蔽实施方案的数据流的说明性实施例。
附图标记列表
100 集成电路
102 顶层
104 底层
106 IC组件
108 有源屏蔽
200 方框图
202 屏蔽控制器
204 屏蔽输入
206 屏蔽输出
300 方框图
302 密钥存储装置
304 已加密存储器
306 存储器加密块
308 中央处理单元
310 异或门
312 真随机数生成器
400 方框图
402 屏蔽控制器
404 掩蔽单元
406 揭露单元
500 有源屏蔽实施方案
502 屏蔽控制器
504 切片
506 IC组件
508 有源屏蔽
510 组合逻辑和存储器
512 组合逻辑和任选的存储器
600 有源屏蔽实施方案数据流
602 伪随机数生成器
604 N位加密
606 N位计数器
608 包括线性切片函数的有源屏蔽
610 缓冲器
612 伪随机数生成器
614 线性切片函数
616 哈希函数
618 异或门
620 异或门
具体实施方式
图1示出集成电路(integrated circuit,IC)100的例子。集成电路100包括第一层102,该第一层102包括有源屏蔽108。第一层102可以是集成电路100的顶层。此外,集成电路100包括第二层104,该第二层104包括IC组件106。第二层104可以是在第一层102正下方的层或可以是IC 100的底层。IC组件106可以是实施安全功能和/或将敏感数据存储于其中的安全关键组件。有源屏蔽108可以包括多个导线。具体地说,有源屏蔽108可以包括传输随机信号的密集网状线。
图2示出说明可以如何控制有源屏蔽的方框图200。如上所述,有源屏蔽108可以包括传输随机信号的密集网状线。可替换的是,可以不同方式实施有源屏蔽108,例如,将有源屏蔽108实施为导线和逻辑单元的布置,如2014年2月20日公开的专利申请案US 2014/0049359 A1中所描述。IC组件106可以包含屏蔽控制器202,该屏蔽控制器202连接到有源屏蔽108的输入端204并且连接到有源屏蔽108的输出端206。屏蔽控制器202可以产生所述随机信号并且可以检查这些随机信号的一致性以尝试检测导线的损坏。有源屏蔽被认为如此,并且举例来说,在塞巴斯蒂安.布里亚(Sébastien Briais)等人的文章“随机有源屏蔽(Random Active Shield)”(IEEE计算机学会(IEEE Computer Society),密码学中的故障诊断和公差(Fault Diagnosis and Tolerance in Cryptography),2012年9月,比利时勒芬,2012年)中已经对有源屏蔽进行了描述。如文章中所定义,有源屏蔽(也称为数字屏蔽)包括在IC的顶层中注入随机位序列,并且检查随机位序列在穿过嵌入所述层中的金属连接的行程之后照旧到达。有源屏蔽被设计为防止探测攻击;然而;该有源屏蔽通常产生误差信号,该误差信号本身可能是探测攻击或FIB操纵的目标。一些实施方案扩大误差信号的数目,但这仅仅减慢攻击者的速度而并不能阻止这种攻击。
因此,根据本发明,集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,其中安全关键组件被配置成产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,并且其中所述存取密钥是基于有源屏蔽的输出值。因此,通过使用有源屏蔽的输出对安全关键组件的一部分进行存取能减少绕过有源屏蔽的风险。因此尝试操控屏蔽的输出是毫无意义的,因为在屏蔽被攻击损坏并且由于所述损坏而产生错误存取密钥的情况下无法存取安全关键组件的所述部分。
在一个或多个实施例中,安全关键组件另外被配置成使用存取密钥来实现对安全关键组件中包括的存储单元的内容的存取。这适用于应存储并保护敏感数据的情况。存取密钥可以(例如)包括实现对存储单元的内容的存取的密码或其它代码。可替换的是或另外,存取密钥可以包括加密密钥,该加密密钥可以用来对所述存储单元中存储的内容进行解密,例如,用来对所述敏感数据进行解密。因此,在一个或多个实施例中,存储单元的内容是已加密内容,并且存取密钥包括用于对所述已加密内容进行解密的解密密钥。这可以提供对抗上述攻击的尤其强劲的保护。
图3示出表示集成电路的说明性实施例的方框图300。集成电路包括有源屏蔽108和安全关键IC组件106。IC组件106包括:密钥存储装置302;已加密存储器304(即,包含已加密内容的存储器);存储器加密块306,该存储器加密块306可操作地连接到已加密存储器304;以及中央处理单元308,该中央处理单元308可操作地连接到存储器加密块306。此外,IC组件106包括用于执行异或运算的异或门310。此外,IC组件106包括屏蔽控制器202和真随机数生成器312,该真随机数生成器312被配置成向屏蔽控制器202提供真随机位。屏蔽控制器202可以使用所述真随机位掩蔽提供到有源屏蔽108的输入值并且揭露有源屏蔽108的输出值,如将参考图4和图6更详细解释。
有源屏蔽108具有数据输入和数据输出。只要屏蔽108中的导线未被损坏,输出值就可以被看作是输入值的定性映射,标示为shield_map。换句话说,只要导线完好,通过所述线传送的输入值就产生可预测输出值。输出值的大小可以匹配所需解密密钥的大小。可替换的是,如果需要,可以使用压缩函数或哈希函数来将输出值的大小减小为解密密钥大小。存储器加密块306可以被配置成使用加密密钥对存储器304的内容进行加密,并且使用相应解密密钥对存储器304的内容进行解密。此外,解密密钥可以与加密密钥相同。以下数据可以永久地存储在密钥存储装置302中:shield_seed(在制造IC时一次产生的随机数,即,固定随机种子值)和key_share0(在制造IC时一次产生的另一随机数,即,另一固定随机数)。存储器加密块306可以由中央处理单元308控制。
运算时,有源屏蔽108可以输出key_share1=shield_map(shield_seed)。随后,存储器加密块306可以使用基于所述输出的解密密钥,以便对存储器304的内容进行解密。任选地,可以对有源屏蔽108的输出进行异或运算。因此,存储器加密块306可以使用以下解密密钥:mem_key=key_share0 XOR key_share1。如果有源屏蔽108被损坏,那么屏蔽的输出key_share1将计算不正确并且因此解密密钥mem_key将同样不正确。因此,虽然攻击者可能够探测内部信号,但是因为会不正确地解密存储器304的内容,所以这些信号将是无意义的。
应注意,虽然密钥存储装置302和已加密存储器304已经被示为IC组件106的分离的块,但是该密钥存储装置302和该已加密存储器304实际上可以存在于同一物理存储器中。以此方式,可以节省IC区域。例如,密钥存储装置302可以是所述物理存储器中不进行加密的较小区域。虽然可以借助于光学读出存取密钥存储装置302的内容,但是为了存取已加密存储器内容,攻击者还需要知晓映射shield_map。然而,此映射是可以由IC制造商保密的设计信息。
因此,在一个或多个实施例中,存取密钥(例如,mem_key)是基于有源屏蔽的输出值(例如,key_share1)以及基于固定随机数(例如,key_share0)。以此方式,存取密钥变得更复杂,所以更难以非法侵入。在实际且有效的实施方案中,安全关键组件可以被配置成通过对有源屏蔽的输出值和所述固定随机数执行异或运算来产生存取密钥。此外,在一个或多个实施例中,安全关键组件另外被配置成向有源屏蔽提供输入值,所述输入值是基于固定随机种子值(例如,shield_seed)。以此方式,所得存取密钥再次变得更复杂。
图4示出根据一个或多个实施例的说明可以如何控制有源屏蔽的方框图400。同样,有源屏蔽108可以包括传输随机信号的密集网状线。IC组件可以包含屏蔽控制器402,该屏蔽控制器402连接到有源屏蔽108的输入端204并且连接到有源屏蔽108的输出端206。屏蔽控制器402可以产生所述随机信号并且可以检查这些随机信号的一致性以尝试检测导线的损坏。由于信号是随机的,因此在实践中可能难以实施上述定性映射(shield_map)。因此,在一个或多个实施例中,安全关键组件另外被配置成在将所述输入值提供到有源屏蔽之前以可变随机值掩蔽所述输入值。此外,在一个或多个实施例中,安全关键组件另外被配置成使用所述可变随机值揭露有源屏蔽的输出值。以此方式,在将所述定性映射保持完好时,通过有源屏蔽108的导线传送的信号可以足够随机化。在实际且有效的实施方案中,屏蔽控制器402被配置成掩蔽输入值并且揭露输出值。例如,如图4中所示,屏蔽控制器402可以包括被配置成掩蔽输入值的掩蔽单元404以及被配置成揭露输出值的揭露单元406。
在一个或多个实施例中,可以使用布尔掩蔽来掩蔽输入值以及揭露输出值。由此,可以实现简单但有效的实施方案。例如,shield_map算法可以要求一个位处于状态‘A’中。接着,掩蔽单元404可以产生随机位‘R’并且将相关联屏蔽线设定为‘A’异或‘R’。在屏蔽线的另一端处,揭露单元406通过对该线上具有‘R’的状态执行异或运算来检索‘A’。技术人员将了解,可以使用其它方法来进行掩蔽和揭露,(例如)以便提高安全性等级并且提高整体效率。然而,一般来说,可以说,可以可变随机数掩蔽shield_map算法的确定性状态,以此方式使得可以恢复确定性状态。掩蔽运算与揭露运算之间的中间数据接着可被看作是足够随机的,并且适用于驱动屏蔽线或由有源屏蔽所使用的任何其它结构。
图5示出有源屏蔽实施方案500的说明性实施例。在这个例子中,有源屏蔽实施方案500包括多个切片504,并且每个切片504实施一个线性函数。每个切片504包括第一逻辑单元510和第二逻辑单元512,该第一逻辑单元510包括组合逻辑和存储器,该第二逻辑单元512包括组合逻辑和任选地存储器。位于保护区域上方且具体地说位于安全关键IC组件506上方的屏蔽线在第一逻辑单元510与第二逻辑单元512之间传输位。安全关键组件506中包括的屏蔽控制器502被配置成向第一切片(即,左边的切片)的第一逻辑单元510提供串行数据和控制信号。此外,屏蔽控制器502被配置成向第一切片的第二逻辑单元512提供串行数据和任选地控制信号。运算时,组合逻辑在控制信号的控制下对串行数据执行转换,由此实施上述线性函数。中间数据可以存储在逻辑单元510、512中包括的存储器中。因此,有源屏蔽可以在切片中分组并且每个切片可以实施相同线性函数。屏蔽控制器502可以驱动第一切片,并且数据可以通过切片移位;此过程可以被看作是类似于由移位寄存器执行的过程。除第一切片外的每个切片接受前一个切片的输出作为输入。屏蔽控制器502接收最后一个切片(即,右边的切片)的输出,并且使用该输出来产生所阐述类型的存取密钥。技术人员将了解,切片的数目可以不同于所示出的数目;要强调的是,图5仅仅示出具有少量切片的例子以便说明原理。切片所实施的线性函数可以接受多个输入位以便产生大量中间值。使用实施线性函数的切片可以使得减少屏蔽控制器的复杂性,并且因此实现有源屏蔽的实际且有效的实施方案。
图6示出有源屏蔽实施方案的数据流600的说明性实施例。在这个例子中,数据流600包括有源屏蔽608,该有源屏蔽608包括基于如参考图5所描述的实施线性函数的多个切片的切片函数(被称为“线性切片函数”)。在屏蔽控制器中实施数据流中的所有其它功能块。具体地说,那些功能块包括参与分别掩蔽和揭露有源屏蔽的输入值和输出值的一组元件:缓冲器610,该缓冲器610接收真随机位作为输入;伪随机数生成器602,该伪随机数生成器602接收来自所述缓冲器610的输入;异或门618,该异或门618接收来自伪随机数生成器602的输入;线性切片函数614,该线性切片函数614对应于包括于有源屏蔽608中的线性切片函数并且接收来自伪随机数生成器602的输入;以及异或门620,该异或门620接收来自切片函数614和有源屏蔽608的输入。此外,数据流600包括:另一伪随机数生成器602,该另一伪随机数生成器602接收种子值shield_seed作为输入;N位计数器606,该N位计数器606对提供到切片函数的输入值的数目进行计数;N位加密函数604,该N位加密函数604接收来自伪随机数生成器602以及来自N位计数器606的输入并且将其输出发送到异或门618;以及哈希函数616,该哈希函数616接收来自异或门620的输入并且产生输出值key_share1作为输出。
数据流600可以形成测试程序的一部分,该测试程序有效地测试有源屏蔽608是否已经被损坏,以便确定集成电路是否已经被篡改。如果N是一个切片的串行位的数目且M是切片的数目,那么单次通过可以限定为伪随机数生成器602、612的M步。此外,单个测试可以包括2N次通过,或在切片使用锁存器作为存储器元件的情况下包括2N×2次通过;此通过的数目确保提供所有可能的输入值到切片函数,并且因此此数目表示产生输出值key_share1同时确保所有屏蔽线完好所需的最小工作量。对于每次通过,复位伪随机数生成器602、612(即,针对每次通过重新加载伪随机数生成器602的晶种)。在每一步,伪随机数生成器602、612产生新的随机值,并且针对每个切片,伪随机数生成器602、612产生此种新的随机值。对于每次测试,将N位计数器复位到其初始值,并且在每次通过时,N位计数器606(也可以称为遍数计数器)产生新的值(即,使该值递增)。有源屏蔽608具有串行数据输入、串行数据输出,并且可以被看作是具有M级的移位寄存器,其中每个级包括一个切片,该切片被配置成向下一个切片移位N个变换位。缓冲器610、伪随机数生成器612和切片函数614不对与种子值shield_seed相关的任何数据进行运算,而是仅对真随机数据进行运算;该缓冲器610、伪随机数生成器612和切片函数614用于掩蔽到有源屏蔽608的输入值并且揭露有源屏蔽608的输出值。N位加密函数604用于取决于种子值shield_seed来使计数器值多样化。N位加密函数604输出用于有源屏蔽608的确定性输入,该确定性输入在异或门618处由伪随机数生成器612的输出掩蔽。因此,异或门618输出用于有源屏蔽608的随机输入。同样,有源屏蔽608的输出是随机的,并且在异或门620处被揭露。因此异或门620输出用于哈希函数616的确定性输入。
此外,在一个或多个实施例中,安全关键组件被配置成在不能实现对该安全关键组件的存取的情况下产生误差信号。如上所述,在有源屏蔽108损坏的情况下,将无法正确地对存储器304的内容进行解密。然而,在没有任何误差指示的情况下,可能难以预测系统的性能。因此,安全关键组件106可以产生(例如)输出到IC外部的装置的误差信号。如果需要确定性误差信号,那么系统可以在存储已知值的已加密存储器304中的特定位置处进行读取。如果值足够宽,例如128位,那么获得具有不正确的解密密钥的预期值的概率可忽略。另一方法是对mem_key计算循环冗余校验(cyclic redundancy check,CRC),并且将计算结果与密钥存储装置302中存储的预期值进行比较。
本文中描述的功能块和方法可以至少部分地通过一个或多个计算机程序实施,这些计算机程序可以在激活和闲置两个状态下以各种形式在单个计算机系统中或跨多个计算机系统存在。例如,这些计算机程序可以作为由程序指令组成的软件程序存在于源代码、目标代码、可执行码或其它格式中以用于执行一些步骤。以上格式中的任一格式可以压缩或未压缩形式在计算机可读媒体上实施,该计算机可读媒体可以包括存储装置和信号。
如本文中所使用,术语“处理器”或“处理单元”是指数据处理电路,该数据处理电路可以是微处理器、协同处理器、微控制器、微型计算机、中央处理单元、现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑电路和/或基于存储于存储器中的可操作指令控制信号(模拟信号或数字信号)的任何电路。术语“存储单元”或“存储器”是指一个或多个存储电路,例如只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、高速缓冲存储器和/或存储数字信息的任何电路。
如本文中所使用,“计算机可读媒体”或“存储媒体”可以是能够容纳、存储、传达、传播或传输计算机程序以供指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的任何构件。计算机可读媒体可以是(例如但不限于)电子、磁性、光学、电磁、红外线或半导体系统、设备、装置或传播媒体。计算机可读媒体的更多具体例子(非详尽性列表)可以包括以下项:具有一个或多个电线的电连接、便携式计算机磁盘、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM或快闪存储器)、光纤以及便携式只读光盘(compact disc read-only memory,CDROM)。
应注意,已经参考不同标的物描述了以上实施例。具体地说,一些实施例可能是已参考方法类的权利要求来描述的,而其它实施例可能是已参考设备类的权利要求来描述的。然而,本领域的技术人员将从上述内容了解到,除非另外指明,否则除属于一种类型的标的物的特征的任何组合外,与不同标的物相关的特征的任何组合,具体地说,方法类的权利要求的特征与设备类的权利要求的特征的组合,也视为与此文档一起公开。
此外,应注意,图式是示意性的。在不同图式中,用相同的附图标记表示类似或相同的元件。此外,应注意,为了提供对说明性实施例的简洁描述,可能并未描述属于技术人员的习惯做法的实施细节。应了解,在任何此类实施方案的发展中,如在任何工程或设计项目中,必须制定大量实施方案特定的决策以便实现研发者的特定目标,例如遵守系统相关的和商业相关的约束条件,这些约束条件在不同的实施方案中可能不同。此外,应了解,此类发展工作可能是复杂且耗时的,但不过是本领域技术人员进行设计、制造和生产的例行任务。
最后,应注意,技术人员将能够在不脱离所附权利要求书的范围的情况下设计许多替代实施例。在权利要求书中,括号里的任何附图标记不应解释为限制权利要求。词“包括”不排除权利要求书中列出的那些元件或步骤之外的元件或步骤的存在。元件之前的词“一”不排除多个此类元件的存在。权利要求书中叙述的措施可以借助于包括若干不同元件的硬件和/或借助于适当编程的处理器来实施。在列出若干构件的装置权利要求中,可以通过硬件中的同一个物件实施若干这些构件。在彼此不同的附属权利要求中叙述某些措施这一单纯事实并不指示不能使用这些措施的组合来获得优势。

Claims (8)

1.一种集成电路,其特征在于,所述集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,其中,所述有源屏蔽包括数据输入,数据输出以及嵌入所述第一层中的多个金属电连接,所述金属电连接被配置成传送包括随机位序列的输入值以产生输出值,其中,只要所述金属电连接未被损坏,所述输出值就被看作是所述输入值的定性映射,
其中,所述安全关键组件被配置成产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,其中所述存取密钥是基于所述有源屏蔽的输出值,
所述安全关键组件另外被配置成使用所述存取密钥以实现对所述安全关键组件中包括的存储单元的内容的存取,其中,所述存取密钥是实现对所述内容的存取或用于对所述内容进行解密的密码或解密密钥,
所述安全关键组件另外被配置成向所述有源屏蔽提供输入值以将所述输入值提供到所述有源屏蔽之前以可变随机值掩蔽所述输入值并且使用所述可变随机值揭露所述有源屏蔽的所述输出值,其中,所述输入值是基于固定随机种子值。
2.根据权利要求1所述的集成电路,其特征在于,所述存取密钥是基于所述有源屏蔽的所述输出值以及基于固定随机数。
3.根据权利要求2所述的集成电路,其特征在于,所述安全关键组件另外被配置成通过对所述有源屏蔽的所述输出值和所述固定随机数执行异或运算来产生所述存取密钥。
4.根据权利要求1所述的集成电路,其特征在于,所述安全关键组件包括屏蔽控制器,所述屏蔽控制器被配置成掩蔽所述输入值并揭露所述输出值。
5.根据权利要求1所述的集成电路,其特征在于,所述安全关键组件另外被配置成在不能实现所述存取的情况下产生误差信号。
6.一种智能卡,其特征在于,包括根据在前的任一项权利要求所述的集成电路。
7.一种电子识别文档,其特征在于,包括根据权利要求1至5所述的集成电路。
8.一种用于保护集成电路的方法,其特征在于,所述集成电路包括第一层中的有源屏蔽和第二层中的至少一个安全关键组件,其中,所述有源屏蔽包括数据输入,数据输出以及嵌入所述第一层中的多个金属电连接,所述金属电连接被配置成传送包括随机位序列的输入值以产生输出值,其中,只要所述金属电连接未被损坏,所述输出值就被看作是所述输入值的定性映射,
其中所述安全关键组件产生存取密钥,用于实现对所述安全关键组件的至少一部分的存取,并且其中所述存取密钥是基于所述有源屏蔽的输出值,
所述安全关键组件另外被配置成使用所述存取密钥以实现对所述安全关键组件中包括的存储单元的内容的存取,其中,所述存取密钥是实现对所述内容的存取或用于对所述内容进行解密的密码或解密密钥,
所述安全关键组件另外被配置成向所述有源屏蔽提供输入值以将所述输入值提供到所述有源屏蔽之前以可变随机值掩蔽所述输入值并且使用所述可变随机值揭露所述有源屏蔽的所述输出值,其中,所述输入值是基于固定随机种子值。
CN201610794230.9A 2015-09-23 2016-08-31 集成电路以及用于保护集成电路的方法 Active CN106548100B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP15290240.9 2015-09-23
EP15290240.9A EP3147830B1 (en) 2015-09-23 2015-09-23 Protecting an integrated circuit

Publications (2)

Publication Number Publication Date
CN106548100A CN106548100A (zh) 2017-03-29
CN106548100B true CN106548100B (zh) 2021-11-02

Family

ID=54476874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610794230.9A Active CN106548100B (zh) 2015-09-23 2016-08-31 集成电路以及用于保护集成电路的方法

Country Status (5)

Country Link
US (1) US10282312B2 (zh)
EP (1) EP3147830B1 (zh)
JP (1) JP6792970B2 (zh)
KR (1) KR20170035820A (zh)
CN (1) CN106548100B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3549305B1 (en) * 2016-12-05 2022-10-12 Cryptography Research, Inc. Backside security shield
US10573605B2 (en) * 2016-12-13 2020-02-25 University Of Florida Research Foundation, Incorporated Layout-driven method to assess vulnerability of ICs to microprobing attacks
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10798075B2 (en) * 2018-01-29 2020-10-06 International Business Machines Corporation Interface layer obfuscation and usage thereof
CN109100635B (zh) * 2018-07-11 2021-06-29 北京智芯微电子科技有限公司 对多通道金属屏蔽布线层进行完整性检测的电路及方法
US10839109B2 (en) * 2018-11-14 2020-11-17 Massachusetts Institute Of Technology Integrated circuit (IC) portholes and related techniques
US11606688B2 (en) 2019-02-20 2023-03-14 Coretigo Ltd. Secure key exchange mechanism in a wireless communication system
US12039091B2 (en) * 2021-10-07 2024-07-16 Duke University Integrated circuit protections against removal and oracle-guided attacks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101379517A (zh) * 2006-02-09 2009-03-04 Nxp股份有限公司 电路装置,包括这种电路装置的数据处理设备以及用于识别对这种电路装置的攻击的方法
CN103646137A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种高安全芯片有源屏蔽物理保护结构的设计方法
CN104268049A (zh) * 2014-09-30 2015-01-07 北京金山安全软件有限公司 判断存储设备异常的方法、装置及终端

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2738971B1 (fr) * 1995-09-19 1997-10-10 Schlumberger Ind Sa Procede de determination d'une cle de cryptage associee a un circuit integre
AT408925B (de) * 1996-10-22 2002-04-25 Posch Reinhard Dr Anordnung zum schutz von elektronischen recheneinheiten, insbesondere von chipkarten
US7005733B2 (en) 1999-12-30 2006-02-28 Koemmerling Oliver Anti tamper encapsulation for an integrated circuit
DE50013937D1 (de) * 2000-08-21 2007-02-15 Infineon Technologies Ag Vorrichtung zum Schutz einer integrierten Schaltung
DE10044837C1 (de) 2000-09-11 2001-09-13 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Detektieren eines unerwünschten Angriffs auf eine integrierte Schaltung
DE10223176B3 (de) * 2002-05-24 2004-01-22 Infineon Technologies Ag Integrierte Schaltung mit sicherheitskritischen Schaltungskomponenten
FR2864667B1 (fr) 2003-12-29 2006-02-24 Commissariat Energie Atomique Protection d'une puce de circuit integre contenant des donnees confidentielles
EP1721231B1 (en) 2004-02-24 2009-12-23 Nxp B.V. Method and apparatus for protecting an integrated circuit using an intrusion detection by Monte Carlo analysis
EP1977481B1 (en) 2006-01-24 2013-08-21 NDS Limited Chip attack protection
JP4349389B2 (ja) * 2006-07-28 2009-10-21 ソニー株式会社 データ記憶装置、および、通信装置
KR101299602B1 (ko) 2007-03-27 2013-08-26 삼성전자주식회사 리버스 엔지니어링을 보호하는 집적회로
KR101347001B1 (ko) * 2009-09-29 2014-01-02 잼텍 리미티드 제한된 암호 키 검색을 갖는 커뮤니케이션 시스템, 방법 및 장치
US8610454B2 (en) 2010-01-12 2013-12-17 Stc.Unm System and methods for generating unclonable security keys in integrated circuits
KR101665562B1 (ko) * 2010-11-05 2016-10-25 삼성전자주식회사 검출 회로, 그 검출 방법, 및 이를 포함하는 메모리 시스템
US20130141137A1 (en) 2011-06-01 2013-06-06 ISC8 Inc. Stacked Physically Uncloneable Function Sense and Respond Module
JP2013045407A (ja) * 2011-08-26 2013-03-04 Renesas Electronics Corp 半導体装置
EP2780938B1 (en) * 2011-11-18 2015-09-30 Tubitak Active shield with electrically configurable interconnections
US9323950B2 (en) * 2012-07-19 2016-04-26 Atmel Corporation Generating signatures using a secure device
US10771448B2 (en) * 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits
KR20140034332A (ko) 2012-08-14 2014-03-20 삼성전자주식회사 보안 장치 및 이를 구비하는 집적 회로
EP2819049B1 (en) 2013-06-27 2015-11-18 Nxp B.V. Device with capacitive security shield
US9171810B2 (en) * 2013-11-21 2015-10-27 Nxp B.V. Electronic device incorporating a randomized interconnection layer having a randomized conduction pattern

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101379517A (zh) * 2006-02-09 2009-03-04 Nxp股份有限公司 电路装置,包括这种电路装置的数据处理设备以及用于识别对这种电路装置的攻击的方法
CN103646137A (zh) * 2013-12-03 2014-03-19 北京中电华大电子设计有限责任公司 一种高安全芯片有源屏蔽物理保护结构的设计方法
CN104268049A (zh) * 2014-09-30 2015-01-07 北京金山安全软件有限公司 判断存储设备异常的方法、装置及终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Random Active Shield;Sébastien Briais et al.;《2012 Workshop on Fault Diagnosis and Tolerance in Cryptography》;20120920;全文 *
集成电路;佚名;《电子产品世界》;20041130;全文 *

Also Published As

Publication number Publication date
US10282312B2 (en) 2019-05-07
EP3147830B1 (en) 2020-11-18
EP3147830A1 (en) 2017-03-29
JP2017063401A (ja) 2017-03-30
JP6792970B2 (ja) 2020-12-02
US20170083459A1 (en) 2017-03-23
CN106548100A (zh) 2017-03-29
KR20170035820A (ko) 2017-03-31

Similar Documents

Publication Publication Date Title
CN106548100B (zh) 集成电路以及用于保护集成电路的方法
Hu et al. An overview of hardware security and trust: Threats, countermeasures, and design tools
Lazar et al. Why does cryptographic software fail? A case study and open problems
Bhasin et al. Hardware Trojan horses in cryptographic IP cores
Kitsos et al. Exciting FPGA cryptographic Trojans using combinatorial testing
JP6058245B2 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
US10678707B2 (en) Data processing device and method for cryptographic processing of data
CN102737202B (zh) 利用迭代加密/解密密钥更新的指令加密/解密设备和方法
Cui et al. A new PUF based lock and key solution for secure in-field testing of cryptographic chips
Knechtel et al. Protect your chip design intellectual property: An overview
Tunstall Smart card security
Sumathi et al. A review on HT attacks in PLD and ASIC designs with potential defence solutions
Wehbe et al. A novel approach to detect hardware Trojan attacks on primary data inputs
Woo et al. A secure scan architecture protecting scan test and scan dump using skew-based lock and key
JP2005045760A (ja) 暗号処理方法及び装置
Unterstein et al. SCA secure and updatable crypto engines for FPGA soc bitstream decryption
EP3907633B1 (en) System and method for obfuscating opcode commands in a semiconductor device
Kahri et al. An efficient fault detection scheme for the secure hash algorithm SHA-512
Lackner et al. A defensive java card virtual machine to thwart fault attacks by microarchitectural support
Alanwar et al. Dynamic fpga detection and protection of hardware trojan: A comparative analysis
US20200067693A1 (en) Systems and methods for masking ecc operations
CN113228012A (zh) 用于鉴别fpga配置的方法和设备
Lemke-Rust Models and algorithms for physical cryptanalysis
Wang et al. A secure scan architecture using parallel latch-based lock
Salmani et al. Special session: countering IP security threats in supply chain

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