CN106164918B - 基于内在特征而部分被激活的集成电路 - Google Patents

基于内在特征而部分被激活的集成电路 Download PDF

Info

Publication number
CN106164918B
CN106164918B CN201580019225.4A CN201580019225A CN106164918B CN 106164918 B CN106164918 B CN 106164918B CN 201580019225 A CN201580019225 A CN 201580019225A CN 106164918 B CN106164918 B CN 106164918B
Authority
CN
China
Prior art keywords
integrated circuit
code
generator
configuration data
registration
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
CN201580019225.4A
Other languages
English (en)
Other versions
CN106164918A (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.)
Renesas Electronics Europe Ltd
Original Assignee
Renesas Electronics Europe Ltd
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 Renesas Electronics Europe Ltd filed Critical Renesas Electronics Europe Ltd
Publication of CN106164918A publication Critical patent/CN106164918A/zh
Application granted granted Critical
Publication of CN106164918B publication Critical patent/CN106164918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • 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/72Protecting 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 cryptographic 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/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/73Protecting 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 creating or determining hardware identification, e.g. serial numbers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种固定逻辑集成电路。集成电路包括被配置为生成具有对集成电路是内在唯一的值的代码(4)的唯一代码生成器(3),被配置为基于唯一代码(4)生成登记图案(6)的登记图案生成器(5)。集成电路被配置为向外部登记设备(2)传送登记图案(6)并且从外部登记设备接收启用数据(7)。可选地,集成电路可以包括用于存储远程生成的启用数据(7)的存储器(8)。集成电路包括:配置文件生成器(9),其被配置为使用远程生成的启用数据(7)和唯一代码(4)来生成配置数据(10);以及特征激活模块(11),其被配置为根据配置数据(10)激活和/或禁用集成电路的特征(13)和/或定制集成电路。

Description

基于内在特征而部分被激活的集成电路
技术领域
本发明涉及固定逻辑集成电路,诸如微控制器或系统芯片。
背景技术
一些集成电路的某些特征可以通过被称为“特征化”的处理来启用或禁用。例如,特征化可以用于配置多种不同的功能和诸如操作电压、最大时钟操作频率、存储容量之类的设备属性以及诸如通信端口、定时器等等的许多外围模块的可用性。
特征化提供一种便宜且容易的方式来提供一系列在芯片上呈现固定集合的特征的不同特征化的集成电路,从具有完整集合的特征的那些集成电路(在本文被称为“完全地特征化的集成电路”)到具有较少特征的其它集成电路(在本文被称为“变体”)。
特征化牵涉对非易失性存储器中的设备配置文件进行编程,该设备配置文件然后由特征激活功能使用以启用或禁用特征。可以使用在集成电路制造期间定义的配置访问密钥来控制对非易失性存储器的访问。如果编程工具不具有正确的密钥,那么其不能对设备配置文件进行编程。
然而,如果密钥被损害,那么特征化处理可能被破坏。例如,如果未被授权的用户可以访问密钥,那么他们可以使用设备配置文件来创建完全特征化的集成电路。
用于保护诸如现场可编程门阵列(FPGA)之类的可编程逻辑设备中的知识产权(IP)核的布置是已知的。
例如,US 8 427 193 B1涉及保护合并于在诸如FPGA之类的可编程集成电路中实施的电路设计中的IP核。US 2011/113392 A1描述一种用于保护IP核的方法。WO 2008/125999 A2描述诸如FPGA或软件模块之类的产品或组件中的至少一个功能的受控激活。WO2009/024913 A2描述生成对于物理不可克隆函数的响应,该物理不可克隆函数唯一地表示诸如FPGA之类的具有挑战性存储器的设备的标识。GB 2 268 605 A涉及向诸如电话交换系统之类的计算机类型的系统的买方提供功能选项的方法。
也参考以下:乔治·瓜哈尔多等人的“FPGA Intrinsic PUFs and Their Use forIP Protection(用于IP保护的FPGA内在PUF和它们的使用)”,Cryptographic Hardwareand Embedded Systems(密码硬件和嵌入式系统)-CHES 2007第63页至80页(2007),以及乔治·瓜哈尔多等人的“Physically Unclonable Functions and Public-Key Crypto forFPGA IP Protection(用于FPGA IP保护的物理不可克隆函数和公用密钥密码)”,2007–FPL207、第189页至195页(2007)。
发明内容
根据本发明的第一方面,提供一种固定逻辑集成电路。集成电路包括被配置为生成具有对于集成电路是内在唯一的值的代码的唯一代码生成器以及被配置为基于唯一代码生成登记图案的登记图案生成器。代码优选地是按需生成的并且是暂时的。集成电路可以包括用于存储远程生成的(使用登记图案和远程存储的配置数据生成的)启用数据的存储器。集成电路包括被配置为使用远程生成的启用数据和唯一代码来生成配置数据的配置文件生成器。集成电路包括被配置为根据配置数据来激活和/或禁用集成电路的特征和/或定制集成电路的特征激活模块。
这可以帮助提供对诸如微控制器之类的固定逻辑集成电路的特征化的更严格控制,这是因为配置数据的集合在集成电路被生成,并且依赖于集成电路的唯一代码和具体地对于该集成电路提供的启用数据的对应集合两者。因此,如果启用数据的集合被拦截和复制,那么其不能用于激活另一个不同的固定逻辑集成电路的特征。
而且,其可以为无晶圆厂或轻晶圆厂集成电路制造商提供监视在半导体铸造厂进行的生产的方式,这是因为可以收集识别每个制造的集成电路及其相应的启用的特征集合的信息。这可以帮助减少或防止生产过剩。
在本文,术语“特征化”意图是包括不仅仅特征化、而且也包括定制,诸如修整和标识初始化。因此,在某些情况下,特征化不一定需要牵涉启用或禁用特定特征。然而,在某些情况下——即,在没有任何修整或标识初始化的情况下,特征化可以排他地牵涉启用或禁用特定特征。在其他情况中,特征化可以牵涉启用或禁用特定特征以及修整和/或标识初始化。
登记图案优选地包含加密形式的唯一代码的至少一部分。
唯一代码生成器优选地是物理不可克隆函数(PUF)。物理不可克隆函数可以是SRAM物理不可克隆函数。
登记图案生成器优选地被配置为从代码中移除噪声。登记图案生成器可以被配置为对登记图案进行加密,并且集成电路可以被配置为向外部登记设备传送加密形式的登记图案。
配置模块可以被配置为根据配置数据激活特征的集合。配置模块被配置为根据配置数据来激活外围模块(诸如通用异步接收机/发射机(UART)或模拟数字转换器(ADC))的集合。配置模块可以被配置为根据配置数据来设置时钟速度。
特征激活模块可以被配置为响应于不正确的配置数据来激活特征的最小集合。特征的最小集合可以包括允许特征化的模块。优选地,特征的最小集合主要地或仅仅包括仅仅或主要地用于特征化的模块。例如,可以将唯一代码生成器、登记图案生成器、配置文件生成器和特征激活模块包括在特征的最小集合中。唯一代码生成器、登记图案生成器、配置文件生成器和特征激活模块优选地包括相应的固定逻辑模块。
集成电路可以是数字集成电路。集成电路可以包括存储器。存储器可以是诸如DRAM或SRAM之类的易失性存储器。存储器可以是诸如EPROM、EEPROM、NOR闪存或NAND闪存之类的非易失性存储器。集成电路可以是微集成电路,诸如微处理器、微控制器或信号处理芯片。集成电路可以是具有嵌入的闪速存储器的微控制器。集成电路可以是没有嵌入的闪速存储器的处理器。集成电路可以是系统芯片(SoC)。集成电路可以是诸如专用集成电路芯片之类的逻辑集成电路、标准逻辑或显示驱动器。
根据本发明的第二方面,提供一种登记设备。登记设备(其可以在计算机系统上的软件中被实施)包括:用于配置集成电路的配置数据,以及启用数据生成器,其被配置为使用配置数据和在集成电路生成的登记图案来生成集成电路的启用数据。
根据本发明的第三方面,提供一种包括集成电路和登记设备的系统。集成电路和登记设备可以保持安全的(即,加密的)通信中。可以由登记设备使用证书或其他认证手段来对发送登记图案的一方(例如,半导体铸造厂)进行认证。
根据本发明的第四方面,提供一种登记集成电路的方法。该方法包括生成一代码,该代码具有对于集成电路是唯一的值。该方法包括基于唯一代码来生成登记图案并且向外部登记设备发送登记图案。该方法包括从登记设备接收启用数据。该方法可以包括在芯片上(即,在集成电路上)存储远程生成的启用数据。
该方法可以包括在芯片外(即,在外部存储器中)存储远程生成的启用数据。
登记集成电路的方法可以是硬件实施的方法。
根据本发明的第五方面,提供一种配置集成电路的方法。该方法包括使用远程生成的启用数据和具有对于集成电路是唯一的值的代码来生成配置数据。该方法包括根据配置数据来激活和/或停用集成电路的特征。
该方法可以包括从外部存储器调取启用数据。
每当集成电路启动时,可以执行对集成电路的配置。
配置集成电路的方法可以是硬件实施的方法。
附图说明
现在将参考附图通过示例来描述本发明的某些实施例,在附图中:
图1是集成电路和外部登记设备的示意性框图;
图2是集成电路、外部存储器和外部登记设备的示意性框图;
图3是微控制器或系统芯片的示意性框图;
图4图示出集成电路的预激活特征;
图5图示出特征化的控制;
图6是在登记中涉及的模块的示意性框图;
图7是登记的方法的处理流程图;
图8图示出激活图案的片上生成;
图9是特征激活的方法的处理流程图;
图10图示出外围模块的多比特激活;
图11图示出设置时钟频率;
图12是激活图案的一些示例的表格;
图13图示出设置存储器的上界;
图14图示出轻晶圆厂制造环境中的设备登记;并且
图15图示出无晶圆厂制造环境中的设备登记。
具体实施方式
参考图1,示出了集成电路1和外部登记设备2。集成电路1是固定的逻辑设备(与可编程逻辑设备相对)。因而,集成电路1包括功能在制造时已固定、但在制造之后可以被单独可选择地启用或禁用和/或定制的逻辑电路和其他模块。
集成电路1包括唯一代码生成器3,用于可再现地生成内在地对集成电路1唯一的代码4。唯一代码生成器3基于物理不可克隆函数(PUF)。唯一代码4取决于集成电路1中的元件内在的物理属性。例如,唯一代码生成器3可以使用在存储器元件的启动时的值生成唯一代码4。甚至相对于具有相同的设计且使用相同集合的掩模(未示出)同时制造的其他集成电路(未示出),代码4对集成电路1也是唯一的。代码4是按需生成的并且是暂时的。换句话说,代码4并非被生成并且然后被永久地存储。可信的初始化序列号或其他初始化根不被用作唯一代码4。
集成电路1包括设备登记模块5,用于使用唯一代码4来生成登记图案6。在登记阶段中,集成电路1向登记设备2传送登记图案6,并且反回来接收配置启用器7(在本文也被称为“代码构造数据”或“帮助数据”)。集成电路1不用明码向登记设备2传送原始的(即,有噪声的)唯一代码4。因而,原始的唯一代码4不离开集成电路2。而是仅仅传送被处理的代码,诸如可以被加密的登记图案6。集成电路1可以包括用于存储配置启用器7的非易失性存储器8以及用于使用唯一代码4和配置启用器7来生成特征激活图案10的配置文件生成器9。集成电路1包括特征激活模块11,其生成用于启用和/或禁用集成电路特征13(在本文被简单成为“特征”)的启用和/或禁用信号12。特征可以是外围模块,诸如通用异步接收机/发射机(UART)或模拟-数字转换器(ADC)。特征可以是参数,诸如时钟速度。
登记设备2包括用于存储集成电路1的设备配置文件15的存贮器14以及用于生成配置启用器7的配置启用器生成器15。
具体地对于集成电路1生成配置启用器7,并且仅仅可以使用配置启用器7和曾用于创建配置启用器7的代码4来生成激活图案10。此外,当需要时,在芯片上生成激活图案10。因此,这可以帮助提供对特征化的更严格的控制。
参考图2,集成电路1可以被提供有用于存储配置启用器7的外部非易失性存储器8’。因而,集成电路1不必包括片上非易失性存储器8。
参考图3,示出了第一和第二集成电路11、12。第一集成电路11意图是完全特征化的集成电路,并且第二集成电路12意图是部分特征化的集成电路,即,其中与完全特征化的集成电路相比较少功能被启用的一个集成电路。
第一和第二集成电路11、12的特征化通过相应的第一和第二设备配置文件151、152来设置。具体地对于第一和第二集成电路11、12生成第一和第二设备配置文件151、152
因此,即使第一配置启用器11被复制,其也不能用于第二集成电路12的特征化,更不用说启用完整集合的特征。
再次参考图1,在生产之后并且在特征化之前,集成电路1的至少一些固定逻辑特征被激活并且是可操作的。因此,在登记之前,至少部分地特征化(或“部分地激活”)集成电路1。具体地,代码生成器3、设备登记模块5、配置文件生成器9和特征激活模块11是被激活并且是可操作的固定逻辑模块。
参考图4,在微控制器或系统芯片1中,至少一个中央处理单元17、可以以低于最快可用的(即,最快可特征化的)时钟速度的有限时钟速度操作的时钟18、可用的尺寸可以低于可用的最大值的存储器19以及通信外围模块20被激活并且操作用于允许特征化。
也参考图5,电压供给21、时钟信号22和复位信号23以及至代码生成器3、设备登记模块5、配置文件生成器9和特征激活模块11(在本文被称为“预激活的片上模块”)不是中央处理单元(多个)17或集成电路1上的诸如直接存储器访问模块之类的其他处理单元可控制的。因此,电源电压和时钟信号线路21、22至预激活的片上模块3、5、9、11受到保护。换句话说,处理元件不能接通或关闭或改变至预激活的片上模块3、5、9、11的电源电压和时钟。例如,可以从经由引脚25提供给集成电路1的外部电源电压24获取(例如,直接地馈送)内部(即,片上)电源电压21,并且可以在芯片上生成时钟信号23。此外,可以响应于受限制的集合的情况——诸如在启动结束,或响应于配置文件生成器9所生成的错误信号27,通过复位功能26来生成至预激活的片上模块3、5、9、11的复位信号23。复位功能26和错误信号27受到保护。因而,除了在某些情况下——如果有的话,处理元件(诸如中央处理单元17)不能自由地生成或操纵错误信号27。可以硬布线地实施复位功能26。
预激活的片上模块3、5、9、11优选地采取特定片上电路的形式。
代码生成器3不具有可由中央处理单元17或其他处理单元访问的任何接口。代码生成器3优选地具有一个输入接口和一个输出接口,该输出接口直接地耦合到设备登记模块5和配置文件生成器9。限制接口的数量可以帮助防止或阻止中央处理单元(多个)17或其他处理元件或单元对于代码4的操纵或变更。取决于用于实施代码生成器3的PUF,输入/输出接口可以采取不同的形式。例如,在SRAM PUF的情况下,接口可以是至将被用作噪声数据源的SRAM存储器(未示出)的地址和数据线。
优选地,代码生成器3嵌入电路(未示出),来保护其不受外加电压24(其可能影响或操纵代码4的生成)的操纵。此外,可以提供电路(未示出),以自动地重新校准噪声数据源,使得其不随着时间的推移而改变。此类电路例如可以动态地断开代码生成器3内的电源电压——每当其未被设备登记模块5和配置文件生成器9使用时。
设备登记模块5具有用于信号29的一个输入接口28,其允许中央处理单元17或其他处理元件触发登记图案6的生成。设备登记模块5具有一个或多个寄存器形式的一个输出接口29,其允许中央处理单元17或其他处理单元(诸如DMA)在一个或多个操作中读出登记图案6。设备登记模块5可以向中央处理单元17或其他处理单元提供状态信息(未示出),以指示何时已经完成了登记图案6的生成。
设备登记模块5可以在对代码4进一步处理(例如应用加密)之前从代码4中移除噪声。
也参考图1,为诸如特定微控制器或系统芯片之类的集成电路1生成的登记图案6包含使配置启用器生成器16生成结合到集成电路1的配置启用器7的充足信息。窃听登记图案6不提供使潜在的攻击者调取代码4的足够信息。可以以可以通过配置启用器生成器16检测到潜在操纵的方式,进一步针对任何此类操纵来保护登记图案6。可以进一步利用与配置启用器生成器16共享的密钥来加密登记图案6。
在用作登记设备的高安全性防篡改硬件安全模块(HSM)中实施配置启用器生成器16。通过IC制造商来控制和处理该生成器16的安装和维持。设备配置文件15被安全地存储在HSM中,并且通过IC制造商来控制和处理其安装和维持。
仍然参考图1,配置启用器7包含使配置文件生成器9将代码4变换为激活图案10的充足信息。了解配置启用器7和相关联的登记图案6的攻击者不具有重构在配置启用器生成器16中处理的生成算法的充足信息。配置文件生成器9也可以被安排为检测配置启用器7是否已经被操纵。配置启用器生成器16可以利用与配置文件生成器9共享的密钥来对配置启用器7进行加密。
配置文件生成器9具有呈一个或多个寄存器形式的输入接口30,其允许中央处理单元17或其他处理元件(诸如DMA)在一个或多个操作中在登记图案6中写进配置启用器7。配置文件生成器9可以向中央处理单元17或其他处理元件提供状态信息(未示出),以指示激活图案10的成功生成和/或错误何时出现。
配置文件生成器9直接地向特征激活模块11输出激活图案10。特征激活模块11没有可被中央处理单元17或其他处理元件使用的输入接口。这可以帮助阻止或防止激活图案10的操纵。
在集成电路1已经例如在复位之后启动了操作后,配置启用器9可以生成具有缺省值的激活图案10(在本文被称为“缺省激活图案”),其导致没有特征13被激活或者一些预先定义的特征13被激活,诸如通信模块。
特征激活模块11输出独立信号12的集合,以启用(或“激活”)或停用一个或多个特征13,例如,外围模块。每个启用(或禁用)信号12连接到诸如通信接口模块、定时器、图形处理单元等等的至少一个外围模块的启用输入(未示出)。
每个启用(或禁用)信号12可以使用AND门(未示出)与用户可配置的启用信号(未示出)耦合。启用(或禁用)信号12被安排为使得它们不能被中央处理单元17或其他处理单元直接地操纵。
如果特征12被禁用,那么特征12不进行操作。因此,通过中央处理单元17或其他处理单元进行的任何尝试导致意想不到的行为,诸如没有通信、没有定时器滴答、没有图形处理,等等。
如果在复位之后提供缺省激活图案10,那么特征激活模块11可以禁用所有特征13或除了一些特征13之外的其它全部特征。因此,即使集成电路1中的特征13的集合可能先前已经被启用,在复位之后、重新激活之前,那些特征13随后也可以被禁用。
特征激活模块11的输出也可以包括提供整数值的一个或多个多比特寄存器(未示出)的集合。这些寄存器可以向诸如存储器地址边界、时钟倍频器等等的集成电路资源提供部分的或完全的配置信息。安排寄存器(未示出),使得它们不能被中央处理单元17或其他形式的处理单元所操纵。如果在复位之后提供缺省激活图案10,那么特征激活模块11可以导致最小的设备配置,例如打开有限的存储器空间、提供最小值时钟倍频器等等。
使用设备内在的参数的特征化通常被划分为两个阶段,即,登记和特征激活阶段。
登记
参考图6和图7,示出了设备登记的处理。
在集成电路1中,设备登记模块5从代码生成器3中获取唯一代码4、从代码4中移除噪声并且生成登记图案6(步骤S1)。加密模块18可以利用登记设备2的公共密钥(未示出)对登记图案6进行加密(步骤S2)。设备登记模块5向登记设备2传送登记图案6(步骤S3)。可以由登记设备2使用证书(未示出)或其他手段来对发送登记图案6的一方(例如,半导体铸造厂)进行认证。登记图案6采取q比特整数的形式。
登记设备2可以采取不同的形式。在该例子中,登记设备2采取可编程硬件安全模块(HSM)的形式。
登记设备2接收登记图案6(步骤S4),并且如果代码被加密,则解密模块(未示出)对登记图案6进行解密(步骤S5)。配置启用器生成器16从存贮器14中调取设备配置文件15(步骤S6)。配置启用器生成器16基于登记图案6和设备配置文件15生成特定于集成电路1的配置启用器7(步骤S7),并且向集成电路1传送配置启用器7(步骤S8)。配置启用器7采取p比特整数的形式。优选地,p至少是32。p和q的值越大,则可以做出更安全的登记。
集成电路1接收配置启用器7(步骤S9),并且将配置启用器存储在非易失性存储器中(步骤S10)。
对于集成电路1执行一次登记。然而,登记设备2可以登记许多不同的集成电路1。
特征激活
参考图8和图9,示出了特征激活的处理。
在集成电路1已经被登记之后,特征激活可以发生。
当集成电路1启动时,特征激活发生。
配置文件生成器9包括许多功能,许多功能允许配置文件生成器9使用唯一代码4排他地生成激活图案10形式的配置文件。配置文件生成器9可以包括噪声降低单元(未示出)、随机性提取器单元(未示出)、数字图案提取单元(未示出)和后处理单元(未示出)。
配置文件生成器9从存储器8调取配置启用器7(步骤S11)。唯一代码生成器3生成代码4的另一个实例(步骤S12)。配置文件生成器9使用代码4和配置启用器7来提取激活图案10(步骤S13)。激活图案10采取n比特整数的形式,其中n<p。
仅仅一个配置启用器7将为集成电路1生成正确的激活图案10。因此,配置文件生成器9可以执行错误检查,来确定激活图案10是否是有效的(步骤S14)。
如果激活图案10是有效的,则配置文件生成器9将激活图案10输出到特征激活模块11,以被存储在配置寄存器25中(步骤S15)。
然而,如果激活图案10是无效的,则配置文件生成器9可以可选地输出错误信号34(步骤S16)。可以将错误信号24提供给设备复位功能27,其可以禁用设备1。然而,在某些情况下,设备1可以利用最小集合的功能进行操作,例如所有可配置的外围模块被禁用并且最低量的存储器被设置。
可以将配置启用器7存储在芯片外。例如,集成电路1可以连接到单独的闪存或EEPROM芯片,例如,如图2中所示。这可以允许不具有闪速存储器的集成电路的特征化。
特征激活的示例
特征激活可以用于生成启用或禁用外围模块的个体和/或群组的信号以及使诸如存储器的上界的地址、时钟频率等等的设备参数固定的整数值。
简单的编码方案可以用于启用或停用功能。例如,可以使用二比特符号和具有一个反相输入和一个非反相输入的AND门。因而,具有例如值‘01’的符号可以引起具有值‘1’的激活信号,其引起功能被启用。具有诸如‘10’的任何其他值的符号可以引起具有值‘0’的激活信号,其引起功能未被启用。
参考图10,可以使用r-比特激活信号,其中r>2。例如,r可以采用值4。
例如,主配置寄存器33的比特编号0到3可以用于控制第一外围模块13A的激活。首先,使用第二和第三AND门Q1、Q2、Q3,其中,第一和第二AND门Q1和Q2具有一个反相输入和一个非反相输入。将主配置寄存器23的比特编号0提供给第一门Q1的反相输入。将主配置寄存器33的比特编号1提供给第一门Q1的非反相输入。将主配置寄存器23的比特编号2提供给第二门Q2的反相输入。将主配置寄存器33的比特编号3提供给第二门Q2的非反相输入。提供第一和第二门Q1、Q2的输出作为到第三门Q3的输入。因而,在比特编号3至0中具有值‘1010’(十六进制0xA)的符号将启用第一外围模块13A。其他值将不启用外围模块13A
同样地,主配置寄存器23的比特编号7至4可以用于使用第四、第五和第六AND门Q4、Q5、Q6的类似的配置来控制第二外围模块13B的激活。在这种情况下,仅仅第五AND门Q5具有与比特编号6相对应的反相输入。因而,在比特编号7至4中具有值‘0111’(十六进制0x7)的符号将启用第二外围模块13B
为了允许外部测试器材26控制外围模块13A、13B,可以在特征激活模块11与通过生产测试模块38控制的每个外围模块13A、13B之间串联地提供复用器37A、37B。生产测试模块38可以允许集成电路1在不需要登记图案的情况下被测试。保护测试模块38以阻止或者防止对于特征激活进行的控制的绕过。例如,可以通过使用密钥(未示出)控制对模块38的访问、通过在使用后自动地吹塑模块38和/或通过在晶圆刻线(未示出)中浇注模块38(这将意味着在随后的晶圆切割步骤期间模块38被毁坏)来实现这一点。
参考图11,r-比特激活信号可以用于控制时钟速度。
比特编号8和9提供用于时钟倍频器模块39的2-比特指数n,其中n=0、1、2或者3。比特编号10是奇偶控制。比特编号11采用比特10的补充值。使用XOR和AND门的布置,可以使用符号‘0110’(十六进制0x6)将时钟倍频器设置为4。
图12示出列出主配置寄存器33的比特0至11的三个可能的激活码的表格30。
参考图13,可以将主配置寄存器33的部分复制到另一个寄存器31中来提供参数。在该示例中,将比特编号16至18复制到上地址边界寄存器31的比特20至22中。比特0至19被设置为‘1’并且比特23至31被设置为‘0’。因此,在具有1MB粒度的8MB闪速存储器的情况下,上地址边界寄存器41可以采用值0x0FFFFF至0xFFFFFF。
参考图14和图15,设备登记为无晶圆厂或者轻晶圆厂IP所有者42提供监视发生在半导体铸造厂43的生产的方式,这是因为识别每个制造的集成电路和其相应的启用的特征集合的信息被收集。这可以帮助减少或防止生产过剩。
将理解的是,可以对以上描述的实施例作出许多修改。
例如,可以通过哈希函数来保护配置启用器7。
设备登记允许无晶圆厂或者轻晶圆厂半导体出售商免于生产过剩。然而,设备登记也可以保护原始器材制造商和/或原始设备制造商(或者“顾客”)保护它们的产品免受损害或者伪造。在一个可能的方案中,在已经将固定的逻辑集成电路特征化之前将其递送给顾客。照此,仅仅部分地激活集成电路以允许特征化处理发生,但是集成电路不能运行客户软件。客户首先使用位于它们的生产设施的登记设备或经由因特网远程地访问登记设备来进行登记处理。

Claims (20)

1.一种固定逻辑集成电路,包括:
唯一代码生成器(3),被配置为生成一代码(4),所述代码(4)具有对于所述集成电路是内在唯一的值;
登记图案生成器(5),被配置为基于所述唯一代码(4)生成登记图案(6);
其中所述集成电路被配置为向外部登记设备(2)传送所述登记图案(6)并且从所述外部登记设备接收启用数据(7),其中所述集成电路进一步包括:
配置文件生成器(9),被配置为使用所述启用数据(7)和所述唯一代码(4)来生成配置数据(10);以及
特征激活模块(11),被配置为根据所述配置数据(10)激活和/或禁用所述集成电路的特征(13)和/或定制所述集成电路,
其中所述唯一代码生成器(3)包括物理不可克隆函数,并且其中所述登记图案生成器(5)被配置为从所述代码(4)中移除噪声。
2.一种固定逻辑集成电路,包括:
唯一代码生成器(3),被配置为生成一代码(4),所述代码(4)具有对于所述集成电路是内在唯一的值;
登记图案生成器(5),被配置为基于所述唯一代码(4)生成登记图案(6);
其中所述集成电路被配置为向外部登记设备(2)传送所述登记图案(6)并且从所述外部登记设备接收启用数据(7),其中所述集成电路进一步包括:
配置文件生成器(9),被配置为使用所述启用数据(7)和所述唯一代码(4)来生成配置数据(10);以及
特征激活模块(11),被配置为根据所述配置数据(10)激活和/或禁用所述集成电路的特征(13)和/或定制所述集成电路,
其中所述唯一代码生成器(3)、所述登记图案生成器(5)、所述配置文件生成器(9)和特征激活模块(11)包括相应的固定逻辑模块;
其中所述配置文件生成器:
执行错误检查,来确定所述配置数据是否是有效的,
如果所述配置数据是有效的,则将所述配置数据输出到所述特征激活模块,以及
如果所述配置数据是无效的,则输出错误信号,
其中所述唯一代码生成器、所述登记图案生成器、所述配置文件生成器和所述特征激活模块基于所述错误信号被复位。
3.根据权利要求2所述的集成电路,其中所述唯一代码生成器(3)包括物理不可克隆函数。
4.根据权利要求3所述的集成电路,其中所述登记图案生成器(5)被配置为从所述代码(4)中移除噪声。
5.根据权利要求1或2所述的集成电路,其中所述登记图案生成器(5)被配置为对所述登记图案进行加密,并且所述集成电路被配置为将加密形式的所述登记图案(6)传送至所述外部登记设备(2)。
6.根据权利要求1或2所述的集成电路,其中所述配置数据(10)包括激活图案。
7.根据权利要求1或2所述的集成电路,其中所述特征激活模块(11)被配置为响应于不正确的配置数据而激活特征的最小集合。
8.根据权利要求1或2所述的集成电路,其中所述唯一代码生成器(3)、所述登记图案生成器(5)、所述配置文件生成器(9)和特征激活模块(11)包括在特征的最小集合中。
9.根据权利要求1或2所述的集成电路,其中所述特征激活模块(11)被配置为根据所述配置数据至少激活外围模块。
10.根据权利要求1或2所述的集成电路,其中所述特征激活模块(11)被配置为根据所述配置数据设置时钟速度。
11.根据权利要求1或2所述的集成电路,其中所述特征激活模块(11)被配置为根据所述配置数据设置可用存储器的量。
12.根据权利要求1或2所述的集成电路,进一步包括用于存储所述启用数据(7)的非易失性存储器(8)。
13.根据权利要求1或2所述的集成电路,所述集成电路是数字集成电路。
14.根据权利要求1或2所述的集成电路,所述集成电路是混合信号集成电路。
15.根据权利要求1或2所述的集成电路,所述集成电路包括存储器。
16.一种登记设备,包括:
用于配置根据权利要求1至15中任何一项所述的固定逻辑集成电路(1)的配置数据(15);以及
启用数据生成器(16),被配置为使用所述配置数据(15)以及由所述集成电路使用唯一代码(4)生成的登记图案(6)来生成所述集成电路的启用数据(7),所述唯一代码(4)基于物理不可克隆函数并且所述唯一代码(4)中的噪声已被移除。
17.一种系统,包括:
根据权利要求1至15中任何一项所述的集成电路(1);以及
根据权利要求16所述的登记设备(2);
其中所述集成电路和所述登记设备保持通信,可选地保持安全通信。
18.一种用于登记根据权利要求1至15中任何一项所述的固定逻辑集成电路的方法,所述方法包括:
生成一代码(4),所述代码(4)具有对于所述集成电路是唯一的值;
基于所述唯一代码(4)生成登记图案(6);
向外部登记设备发送所述登记图案(6);
从所述登记设备接收启用数据(7);以及
可选地存储远程生成的启用数据,
其中所述代码基于物理不可克隆函数并且所述代码中的噪声已被移除。
19.一种用于配置根据权利要求1至15中任何一项所述的固定逻辑集成电路(1)的方法,所述方法包括:
使用远程生成的启用数据(7)以及一代码(4)生成配置数据(10),所述代码(4)具有对于所述集成电路是唯一的值;以及
根据所述配置数据激活和/或停用所述集成电路的特征(13)和/或定制所述集成电路,
其中所述代码基于物理不可克隆函数并且所述代码中的噪声已被移除。
20.根据权利要求19所述的方法,所述方法在所述集成电路(1)每次启动时执行。
CN201580019225.4A 2014-02-19 2015-02-19 基于内在特征而部分被激活的集成电路 Active CN106164918B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14290043.0A EP2911086A1 (en) 2014-02-19 2014-02-19 Integrated circuit with parts activated based on intrinsic features
EP14290043.0 2014-02-19
PCT/EP2015/053505 WO2015124673A1 (en) 2014-02-19 2015-02-19 Integrated circuit with parts activated based on intrinsic features

Publications (2)

Publication Number Publication Date
CN106164918A CN106164918A (zh) 2016-11-23
CN106164918B true CN106164918B (zh) 2020-01-31

Family

ID=50774788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580019225.4A Active CN106164918B (zh) 2014-02-19 2015-02-19 基于内在特征而部分被激活的集成电路

Country Status (5)

Country Link
US (1) US10833878B2 (zh)
EP (2) EP2911086A1 (zh)
JP (1) JP6695805B2 (zh)
CN (1) CN106164918B (zh)
WO (1) WO2015124673A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108475482A (zh) * 2016-01-20 2018-08-31 瑞萨电子欧洲有限公司 具有防伪造能力的集成电路
US10534882B2 (en) 2016-03-29 2020-01-14 Qualcomm Incorporated Method and apparatus for configuring an integrated circuit with a requested feature set
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
EP3407335B1 (en) * 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator
FR3074933B1 (fr) * 2017-12-07 2021-05-21 Algodone Systeme et procede de licence et de mesure d'utilisation d'un bloc ip
JP2019121884A (ja) 2017-12-28 2019-07-22 三菱重工業株式会社 集積回路、制御装置、情報配信方法及び情報配信システム
KR101989149B1 (ko) * 2018-02-09 2019-06-13 성균관대학교산학협력단 PUF(Physically Unclonable Function) 셀 재조합 방법 및 장치와, PUF 회로
US10944557B2 (en) 2018-04-25 2021-03-09 Nxp B.V. Secure activation of functionality in a data processing system
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
WO2024123767A1 (en) * 2022-12-05 2024-06-13 Cisco Technolgoy, Inc. On-demand and secure hardware license-based sku creation for asics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009024913A2 (en) * 2007-08-22 2009-02-26 Intrinsic Id Bv Identification of devices using physically unclonable functions
CN101682612A (zh) * 2007-04-12 2010-03-24 本质Id有限责任公司 受控的功能激活
US8427193B1 (en) * 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2073495C (en) * 1992-07-08 1999-01-12 Michael Wright Option selection and control
US5530753A (en) * 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
US6161213A (en) * 1999-02-17 2000-12-12 Icid, Llc System for providing an integrated circuit with a unique identification
US20010032318A1 (en) * 1999-12-03 2001-10-18 Yip Kun Wah Apparatus and method for protecting configuration data in a programmable device
US6425116B1 (en) * 2000-03-30 2002-07-23 Koninklijke Philips Electronics N.V. Automated design of digital signal processing integrated circuit
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
EP1227385A3 (en) * 2001-01-24 2005-11-23 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit
US20020129261A1 (en) * 2001-03-08 2002-09-12 Cromer Daryl Carvis Apparatus and method for encrypting and decrypting data recorded on portable cryptographic tokens
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
US7162644B1 (en) * 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US7469338B2 (en) * 2002-07-29 2008-12-23 Broadcom Corporation System and method for cryptographic control of system configurations
DE10340861A1 (de) * 2003-09-04 2005-04-07 Infineon Technologies Ag Prozessorschaltung und Verfahren zum Zuordnen eines Logikchips zu einem Speicherchip
US7802085B2 (en) * 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
EP1800433A1 (en) * 2004-10-04 2007-06-27 Koninklijke Philips Electronics N.V. Two-way error correction for physical tokens
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
EP1905188B1 (en) * 2005-07-07 2018-05-30 Intrinsic ID B.V. Method, apparatus and system for verifying authenticity of an object
DE602006006065D1 (de) * 2005-08-10 2009-05-14 Nxp Bv Prüfen einer integrierten schaltung, die geheiminformationen enthält
US7759968B1 (en) * 2006-09-27 2010-07-20 Xilinx, Inc. Method of and system for verifying configuration data
EP2081170A1 (en) * 2006-11-06 2009-07-22 Panasonic Corporation Information security apparatus
US7778074B2 (en) * 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
US8166366B1 (en) * 2007-10-22 2012-04-24 Xilinx, Inc. Partial configuration of programmable circuitry with validation
DE102008003946A1 (de) * 2008-01-11 2009-07-23 Micronas Gmbh Schaltung und Verfahren zur Generierung einer echten, schaltungsspezifischen und zeitinvarianten Zufallszahl
US7761714B2 (en) * 2008-10-02 2010-07-20 Infineon Technologies Ag Integrated circuit and method for preventing an unauthorized access to a digital value
US8683210B2 (en) * 2008-11-21 2014-03-25 Verayo, Inc. Non-networked RFID-PUF authentication
FR2948793B1 (fr) * 2009-07-28 2014-10-31 Thales Sa Procede securise de reconstruction d'une mesure de reference d'une donnee confidentielle a partir d'une mesure bruitee de cette donne, notamment pour la generation de cles cryptographiques
US8387071B2 (en) * 2009-08-28 2013-02-26 Empire Technology Development, Llc Controlling integrated circuits including remote activation or deactivation
US8402401B2 (en) * 2009-11-09 2013-03-19 Case Western University Protection of intellectual property cores through a design flow
EP2524334B1 (en) * 2010-01-12 2020-07-08 Stc.Unm System and methods for generating unclonable security keys in integrated circuits
FR2955394B1 (fr) * 2010-01-18 2012-01-06 Inst Telecom Telecom Paristech Circuit integre en silicium comportant une fonction physiquement non copiable, procede et systeme de test d'un tel circuit
US20120137137A1 (en) * 2010-11-30 2012-05-31 Brickell Ernest F Method and apparatus for key provisioning of hardware devices
US8418006B1 (en) * 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
JP5839659B2 (ja) * 2011-06-20 2016-01-06 ルネサスエレクトロニクス株式会社 半導体装置
JP5770026B2 (ja) * 2011-06-20 2015-08-26 ルネサスエレクトロニクス株式会社 半導体装置
US8581618B1 (en) * 2012-02-14 2013-11-12 Social Silicon, Inc. Apparatus for controlling the usability of intellectual property within a programmable device and method of using
US8750502B2 (en) * 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
US8885819B2 (en) * 2012-12-27 2014-11-11 Intel Corporation Fuse attestation to secure the provisioning of secret keys during integrated circuit manufacturing
US9716708B2 (en) * 2013-09-13 2017-07-25 Microsoft Technology Licensing, Llc Security certificates for system-on-chip security
US9590636B1 (en) * 2013-12-03 2017-03-07 Marvell International Ltd. Method and apparatus for validating a system-on-chip based on a silicon fingerprint and a unique response code
US11329833B2 (en) * 2017-09-28 2022-05-10 Intel Corporation Programmable device key provisioning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101682612A (zh) * 2007-04-12 2010-03-24 本质Id有限责任公司 受控的功能激活
WO2009024913A2 (en) * 2007-08-22 2009-02-26 Intrinsic Id Bv Identification of devices using physically unclonable functions
US8427193B1 (en) * 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits

Also Published As

Publication number Publication date
WO2015124673A1 (en) 2015-08-27
EP2911086A1 (en) 2015-08-26
US10833878B2 (en) 2020-11-10
EP2973198A1 (en) 2016-01-20
US20170078105A1 (en) 2017-03-16
EP2973198B1 (en) 2018-04-04
CN106164918A (zh) 2016-11-23
JP6695805B2 (ja) 2020-05-20
JP2017512337A (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
CN106164918B (zh) 基于内在特征而部分被激活的集成电路
US8732468B2 (en) Protecting hardware circuit design by secret sharing
EP2506488B1 (en) Secure dynamic on-chip key programming
US9866370B2 (en) Configurable ASIC-embedded cryptographic processing engine
US10521618B1 (en) Methods and apparatus for secure root key provisioning
JP2022527757A (ja) 物理複製困難関数を使用したコンピューティングデバイスのidの生成
TWI632483B (zh) 安全裝置及在其內提供安全服務至主機的方法、安全設備以及電腦軟體產品
JP2022528641A (ja) 秘密鍵を使用したアイデンティティの検証
US20150006914A1 (en) Semiconductor integrated circuit and system
CN105515763B (zh) 用于经由逻辑门加密来提高机密性的系统和方法
US11783039B2 (en) Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module
US8983073B1 (en) Method and apparatus for restricting the use of integrated circuits
Roy et al. Protecting bus-based hardware IP by secret sharing
CN113079001B (zh) 密钥更新方法、信息处理设备及密钥更新装置
US11874928B2 (en) Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain
US20170262626A1 (en) Method and system for authentication of a storage device
EP3460705B1 (en) Distributed deployment of unique firmware
EP3214613B1 (en) Protecting the content of different ip cores in a system on chip using pufs
EP2575068A1 (en) System and method for providing hardware-based security
WO2017106406A1 (en) Cryptographic management of lifecycle states
US20220043900A1 (en) Method and device for authenticating an fpga configuration
US9530022B1 (en) Protection of designs for electronic systems
WO2017174788A1 (en) Flexible cryptographic device
Canon FIPS 140-2 Security Policy
JP2018042136A (ja) 回路情報作成システム、回路情報作成方法、及び回路情報作成プログラム

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
GR01 Patent grant