CN109241789A - 一种芯片标识方法 - Google Patents
一种芯片标识方法 Download PDFInfo
- Publication number
- CN109241789A CN109241789A CN201810794618.8A CN201810794618A CN109241789A CN 109241789 A CN109241789 A CN 109241789A CN 201810794618 A CN201810794618 A CN 201810794618A CN 109241789 A CN109241789 A CN 109241789A
- Authority
- CN
- China
- Prior art keywords
- identifier
- chip
- otp register
- field
- encrypted
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K1/00—Methods or arrangements for marking the record carrier in digital fashion
- G06K1/12—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
- G06K1/128—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by electric registration, e.g. electrolytic, spark erosion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/067—Record 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/07—Record 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/073—Special arrangements for circuits, e.g. for protecting identification code in memory
- G06K19/07309—Means for preventing undesired reading or writing from or onto record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/0008—General problems related to the reading of electronic memory record carriers, independent of its reading method, e.g. power transfer
Abstract
本发明提供一种芯片标识方法,包括:获取芯片标识符,芯片标识符至少包括按预定顺序排列的第一标识符和第二标识符;将芯片标识符按MD6进行加密运算,得到经MD6加密后的芯片标识符;将经MD6加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内;当要从OTP寄存器的设定地址内中读出数据时,自OTP寄存器中获取数据;将获取的数据按MD6进行加密运算,得到经MD6加密后的读取数据;提供经MD6加密后的读取数据。本发明提供的芯片标识方法通过使芯片标识符至少包含第一标识符和第二标识符,且第一标识符根据芯片特定膜层图形的逻辑值获得,由此实现OTP寄存器可以得到唯一的芯片标识符,而且难以被逆向破解和非法复制。
Description
技术领域
本发明涉及半导体技术领域,尤其涉及一种芯片标识方法。
背景技术
随着嵌入式应用的越来越广泛,芯片产品的安全也显得越来越重要。一方面是为了保护硬件设计,另外一方面也是为了产品本身的安全,防止被黑客攻击(HACKED)。为了保护芯片中的数据,越来越多的厂商在芯片内部提供了一种特殊的寄存器:OTP寄存器(OneTime Programmable,一次性编程寄存器)。OTP寄存器是每位信息都是一次性写入,不可重写,掉电不丢失数据,可以反复读出数据。
芯片标识符,又称设备唯一识别码Device Unique Keys,是芯片安全性的核心技术,不可解密或复用。电子束直写Direct Electron Writing作为芯片标识符的创建和存储应当简易,使其便于大批量生产,且鉴定标示过程安全。
为了实现“一芯一异”——每颗芯片都不同,芯片标识符的核心在于标识的唯一性。芯片标识符具有唯一性和不可更改的要求,所以目前通常都使用OTP寄存器来实现。实现机制包括eFuse/AntiFuse器件,目前的芯片标识符的写入和读出方法如图1所示:
首先是步骤S101,设定芯片标识符;
然后是步骤S102,把设定的芯片标识符写入到OTP寄存器;
接着步骤S103,在需要读出芯片标识符时,从OTP寄存器中读出设定的芯片标识符;
最后步骤S104,用户获取从OTP寄存器读出的设定的芯片标识符。
通常步骤S102中把设定的芯片标识符写入到OTP寄存器是使用电子熔丝e-Fuse实现的,从硅片代工厂生产出来时,所有芯片都是同样的值,比如说16位0x0,当把设定的芯片标识符写入到OTP寄存器时后,芯片的值可以改成设定的芯片标识符,比如说是16位的0x1,最后一位改变了,最后系统读到的值就是步骤101中设定的芯片标识符。这个过程中芯片的外部虽然没有变化,但是由于e-Fuse对芯片的物理影响比较大,如果把这颗芯片解剖分析,就很容易发现改写的位,用光学显微镜就能很容易逆向分析破解这些芯片标识符。当然也可以把未写入设定的芯片标识符的芯片(对应ID为0x0)改写为0x1,实现复制拷贝。这样就对产品本身的安全性造成很大的威胁。
每颗芯片的芯片标识符可以通过通孔层图形的逻辑值来对应,每颗芯片的芯片标识符对应的通孔层图形都不同。
特别地,类似SHA160的安全散列算法,不能抵御差分攻击,对于修改VIA过孔的电路层设计方法(把实现唯一安全芯片的可配置连接放置在特定的通孔层中)对芯片的电流和热效应加以分析是有效破解手段之一。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种芯片标识方法,通过使芯片标识符至少包含第一标识符和第二标识符,且第一标识符根据芯片特定掩模层图形的逻辑值获得,由此实现OTP寄存器可以得到唯一的芯片标识符,而且难以被逆向破解和非法复制。通过基于消息摘要MD6的算法进行芯片标识符的加密,并行度高,且可以有效抵御黑客攻击。
根据本发明的一个方面,提供一种芯片标识方法,包括:获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的第一标识符和第二标识符,所述第一标识符通过读取芯片的特定膜层图形的逻辑值获得;将所述芯片标识符按MD6进行加密运算,得到经所述MD6加密后的芯片标识符;将经所述MD6加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内,所述设定地址至少包括对应第一标识符的第一地址段和对应第二标识符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同;当要从所述OTP寄存器的设定地址内中读出数据时,按所述第一地址段和所述第二地址段的顺序自所述OTP寄存器中获取数据;将所述获取的数据按MD6进行加密运算,得到经所述MD6加密后的读取数据;提供经所述MD6加密后的读取数据。
可选地,所述将待写入到OTP寄存器中的芯片标识符,按MD6进行加密运算,得到经所述MD6加密后的芯片标识符的步骤还包括:将所述芯片标识符扩展为待运算字段组,所述待运算字段组的比特位数总和为4096的整数倍;对所述待运算字段组按MD6进行加密运算,得到经所述MD6加密后的芯片标识符,其中,若经所述MD6加密后得到的数据的比特长度大于等于所述第二标识符的比特长度,则在经所述MD6加密后得到的数据中,取低d个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述d为所述第二标识符的比特长度。
可选地,所述待运算字段组包括:第一字段,所述第一字段为所述待写入到OTP寄存器中的芯片标识符;第二字段,紧接于所述第一字段,所述第二字段的比特长度为1,且该比特位内填充1作为停止位;第三字段,紧接于所述第二字段,所述第三字段为填充字段,所述填充字段中的各比特位填充为0。
可选地,通过一掩模控制所述OTP寄存器中的标准单元的输入端口和输出端口的电连接形成第一标识符。
可选地,所述标准单元的输入端口和输出端口通过后道工艺改变连接逻辑关系以改变所述第一地址段的第一标识符,所述后道工艺的处理次数不大于1次。
可选地,将所述获取的数据按MD6进行加密运算,得到经所述MD6加密后的读取数据还包括:按与所述待写入到OTP寄存器中的芯片标识符相同的方式,将所述获取的数据扩展为待运算字段组;对所述待运算字段组按MD6进行加密运算,得到经所述MD6加密后的读取数据。
可选地,所述第一标识符为厂商设定的标识符,所述第二标识符为用户设定的标识符。
可选地,所述将所述芯片标识符按MD6进行加密运算,得到经所述MD6加密后的芯片标识符的步骤之后,所述将经所述MD6加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内的步骤之前,还包括:检测所述OTP寄存器中的设定地址是否已被编程写入过;若检测到所述设定地址尚未被编程写入过,则继续执行所述将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤;若检测到所述设定地址已被编程写入过,则不执行所述将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤,并报错。
可选地,所述特定膜层图形使用电子束直写实现。
可选地,所述OTP寄存器为以下任意一种类型的OTP寄存器:烧断型、熔断型、电子熔丝型、反熔丝型OTP寄存器。
可选地,所述电子熔丝型OTP寄存器包含耦合电容型、串联晶体管型和电介质击穿型的电子熔丝型寄存器。
本发明中写入到OTP寄存器的芯片标识符是经过MD6运算后得到的加密的芯片标识符,该加密的芯片标识符与上述待写入到OTP寄存器中的芯片标识符不同,因此可以对待写入到OTP寄存器中的芯片标识符进行加密保护,防止被破解。此外,从OTP寄存器中读取这个加密的芯片标识符时还会经过一次MD6的运算,使最终显示给用户的芯片标识符经过两次加密处理,上述显示给用户的芯片标识符跟写入到OTP寄存器中的已经加密的芯片标识符也不相同,这样就对待写入到OTP寄存器中的芯片标识符作了进一步的加密保护。具体而言,MD6算法相比其它加密算法而言,安全性更好,可以抵抗差分攻击;并行度更好,速度性能更快;灵活度高,可以在此架构框架下方便调整尺度,实现自定义应用。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据现有技术的芯片标识方法的流程图。
图2示出了根据本发明实施例的芯片标识方法的流程图。
图3示出了根据本发明一具体实施例的芯片标识方法的流程图。
图4示出了根据本发明一具体实施例的芯片标识方法的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本发明的芯片标识方法是基于MD6来实现。MD6是一种哈希加密算法,可将其主要分为两部分:MD6压缩函数和MD6运行模式。在此不予赘述。本发明并非以上述的算法为限,MD6的其它模式也在本发明的保护范围之内。
本发明的目的在于提供一种芯片标识方法,使得用户和厂商使用OTP寄存器可以得到唯一的芯片标识符,而且难以被逆向破解和非法复制。
本发明通过开发一种电路层设计方法,确保可以把实现唯一安全芯片的可配置连接放置在特定的通孔层中。该通孔层图形的逻辑值可以对应初始化向量Initial Vector作为第一标识符,该孔层图形可以理解为“二维码”,可以是通过电子束直写技术在特定的一层掩模实现,每颗芯片都不同,实现物理层不可复制。类似于“二维码”,该读取通孔层的图形,通孔部分和非通孔部分分别取值为1和0,以此可以获取。电子束直写(Direct ElectronWriting,DEWs)技术可以满足这样的要求。使得芯片标识符具有唯一性和不可更改。
参见图2,图2示出了根据本发明实施例的加密读写芯片标识符的方法的流程图。图2共示出6个步骤:
步骤S210:获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的第一标识符和第二标识符,所述第一标识符通过读取芯片的特定膜层图形的逻辑值获得。
该第一标识符例如可以是厂商设定的标识符,该第二标识符例如可以是用户设定的标识符。本发明并非以两个标识符的实施方式为限,三个标识符及更多标识符的情况也在本发明的保护范围之内。
其中,通过一掩模控制所述OTP寄存器中的标准单元的输入端口和输出端口的电连接形成所述第一标识符。所述标准单元的输入端口和输出端口通过后道工艺改变连接逻辑关系以改变所述第一地址段的第一标识符,所述后道工艺的处理次数不大于1次。这样的标准单元在芯片中可以放置几千个,彼此独立,又可以分别控制。由此,且标准单元可允许后道工艺的处理次数不大于1次,由此,实现OTP的功能。具体而言,本发明中所述的“标准单元”亦即“StandCell”,是指具体工艺库中的缓冲驱动BUF/反相器INV/与非门NAND/触发器DFF等基本模块。例如,上述实施例中标准模块可以是某工艺库中的具有缓冲驱动BUFFER功能的驱动BUF。进一步的,上述标准单元可以位于第一地址段,步骤S210从第一地址段读取初始的第一标识符,在后序步骤加密后通过后道工艺将第一标识符再写入第一地址段以实现OTP的功能。
步骤S220:将待写入到一次性编程OTP寄存器中的芯片标识符,进行安全散列算法MD6的运算,得到经所述MD6加密后的芯片标识符。
在步骤S210之后,可选地还可以通过软件对经所述MD6加密后的芯片标识符进行测试,判断所述加密是否成功,如果加密成功,则再进入所述将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤。
上述软件测试可以避免由于MD6运算错误把错误的芯片标识符写入到OTP寄存器中,而且,如果软件测试加密失败,还会给出MD6运算错误的提示,便于用户及时修改相关信息,增加了本发明的可操作性。
步骤S230:将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内。
所述设定地址至少包括对应第一标识符的第一地址段和对应第二标识符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同。
在一个优选例中,可以在将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内之前,先检测所述设定地址是否已被编程写入过;如果检测到所述设定地址尚未被编程写入过,则再将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内。这样做就能避免将芯片标识符重复写入相同的设定地址,避免出错。
在上述优选例的一个具体实施中,经MD6运算加密后的芯片标识符写入到OTP寄存器设定地址之前检测动作中,如果检测到的设定地址已经被编程写入,则将会忽略本次写操作,还可以向上层软件系统报错,这样就能避免因重复编程写入损坏OTP寄存器。
步骤S240:当要从所述OTP寄存器的设定地址内中读出数据时,按所述第一地址段和所述第二地址段的顺序自所述OTP寄存器中获取数据。
步骤S250:将所述获取的数据进行MD6的运算,得到经所述MD6加密后的读取数据。
步骤S260:将经所述MD6加密后的读取数据显示给用户。
与现有技术相比,本发明中写入到OTP寄存器的芯片标识符是经过MD6运算后得到的加密的芯片标识符,该加密的芯片标识符与上述待写入到OTP寄存器中的芯片标识符不同,因此可以对待写入到OTP寄存器中的芯片标识符进行加密保护,防止被破解。此外,从OTP寄存器中读取这个加密的芯片标识符时还会经过一次MD6的运算,使最终显示给用户的芯片标识符经过两次加密处理,上述显示给用户的芯片标识符跟写入到OTP寄存器中的已经加密的芯片标识符也不相同,这样就对待写入到OTP寄存器中的芯片标识符作了进一步的加密保护。
由于MD6的运算过程是单向不可逆的,所以即使是黑客也很难根据最终显示给用户的芯片标识符来逆向推断出OTP寄存器里面真实的芯片标识符。另外,MD6是把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。最后,MD6的安全是基于密钥管理的,算法和实现可以完全公开,只要保护密码就可以维护芯片系统安全。
优选地,在步骤S220和步骤S250中进行MD6的运算还包含以下步骤:
将待处理数据(所述待写入到OTP寄存器中的芯片标识符及自OTP寄存器中所述设定地址内的数据)作为第一字段,在所述第一字段后的第二字段用于存放1位1作为停止位,在所述第二字段后的第三字段为填充字段,所述填充字段中的各比特位填为0。所述第一字段、第二字段、第三字段共同组成待运算字段组,待运算字段组的比特位数总和为4096的整数倍。对待运算字段组进行所述MD6的运算,并输出d位比特的数据,其中d表示MD6算法中设定的输出数据比特位数。在MD6运算过程中,由于输入的数据必须是4096的整数倍比特位,通过上述MD6运算之前的准备步骤,就能将消息的比特长度总和综合处理成适用于MD6运算的4096的整数倍比特位,保证了MD6运算的可操作性和准确性。
优选地,本发明中的芯片标识符包含用户设定的标识符和厂商设定的标识符,使用这种方法,只要保护好厂商代码或用户代码,即使是知晓全部设计细节的研发人员,缺了任意一个代码,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定芯片标识符的芯片,比单有一个厂商代码或者用户代码安全系数更高。
另外,本发明可以通过系统接口获取所述用户设定的标识符和厂商设定的标识符。该系统接口用于把用户设定的标识符和厂商设定的标识符合并处理成一定的顺序,便于下一步MD6算法对其进行运算处理。
另外,本发明中,经所述MD6加密后得到的数据的比特长度可提前设定,若经所述MD6加密后得到的数据的比特长度大于等于所述第二标识符的比特长度,则在经所述MD6加密后得到的数据中,取低d个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述d为所述第二标识符的比特长度。
由于使用MD6算法运算后的芯片标识符信息会按照一定的顺序写入到OTP寄存器中,并且在从OTP寄存器中读出芯片标识符时也要经过MD6算法的运算,而本发明中OTP寄存器中用户设定的标识符的字段和厂商设定的标识符的字段是有一一对应的位置存放关系的,这就为MD6算法的准确性提供了保障,使整个运算过程井井有条,不容易发生由于位置关系不正确导致的运算错误。
此外,本发明中的OTP寄存器可以为烧断laser型OTP寄存器、熔断fuse型OTP寄存器或电子熔丝e-Fuse型OTP寄存器。所述e-Fuse型OTP寄存器可以包含耦合电容型、串联晶体管型和电介质击穿型的e-Fuse寄存器。这些类型的OTP寄存器的特点就是一次性写入,不可改写,如果有需要,芯片厂商也可以根据客户的需要写入特定的序列号,这样,每个芯片都会有一个不一样的标识符号,避免被复制,符合芯片标识符具有唯一性和不可更改的要求。
下面将结合图3和图4描述本发明提供的具体实施例:
首先是步骤S201,根据芯片特定膜层获取第一标识符,获取第二标识符,形成芯片标识符。
该芯片标识符包含用户设定的标识符(第二标识符)、厂商设定的标识符(第一标识符)、其它自定义的标识符或其任意组合的标识符。在本实施方式中使用用户设定的标识符和厂商设定的标识符的组合,如图4标号301和302所示。使用这种方法,只要保护好用户设定的标识符和厂商设定的标识符,即使是知晓全部设计细节的研发人员,缺了任意一个值,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定芯片标识符的芯片,比单有一个厂商代码或者用户代码安全系数更高。
接着是步骤S202,使用安全散列算法MD6算法对设定的芯片标识符进行运算加密。
在步骤S202中,经过系统接口(图4标号304)获取待写入到OTP寄存器中的第一标识符和第二标识符后,需要经过一个合并处理的过程(如图4标号305),用于把用户设定的标识符和厂商设定的标识符合并处理成一定的顺序,以便用于MD6运算。
具体而言,在MD6运算过程中,由于输入的数据必须是4096位比特的整数倍,通过上述MD6运算之前的准备步骤,就能将消息长度总和综合处理成适用于MD6运算的16位比特的整数倍,保证了MD6运算的可操作性和准确性。
使用消息摘要MD6哈希算法对设定的芯片标识符进行运算加密。MD6算法是把不定长度的一串设定值,加以特定的算法处理,得到固定长度的数据,即加密后的芯片标识符330。
以输入消息“abc”为例,MD6算法中辅助参数是:
d=256(输出摘要的比特位数)
L=64(层数)
r=5(圈数)
K=”(密钥)
k=0(密钥的字节数),迭代结果为:
则密文为
“0x8854c14dc284f840ed71ad7ba542855ce189633e48c797a55121a746be48cec8”。
由于MD6运算的过程是单向不可逆的,使用MD6算法对设定的芯片标识符进行运算后加密得到的芯片标识符跟步骤S101中待写入到OTP寄存器中的原始的芯片标识符是不同的芯片标识符,因此在不知道用户设定的标识符原始数据和厂商设定的标识符原始数据的情况下,即使是已知的特定OTP寄存器中的标识符,也是不能被复制的。
MD6密码算法架构决定了,即使算法理论和工程实现流程完全公开,只要能保证密码安全,电子束直写DEW作为PUC芯片标识符的认证过程,在这样的系统中安全可控。
MD6理论上破解很困难(即目前的数学分析理论已经证明了当前数学工具不能通过对加密后数据的分析,反推破解出加密前的原始数据),工程实现是不可能的(即无法使用暴力穷举的方式,根据加密后的数据破解出加密前的原始数据)。其特征如下:
1)由数据摘要反推原输入数据,从计算理论上来说是很困难;
2)想要找到两组不同的数据对应到相同的数据摘要,从计算理论上来说也是很困难的;
3)任何对输入数据的变动,都有很高的机率导致其产生的数据摘要迥异。
可选地,经过步骤S202后,系统还可加一个检测装置,这个检测装置用来检测MD6运算是否正确,如果检测结果正确,就直接进入步骤S203,如果检测结果不正确,则不会进入步骤S203,而是提示用户运算错误,同时还会出现错误提示,提示用户修改相关参数,增加了本实施例的可操作性。
接着进入S203,检测OTP寄存器中的设定地址是否已经被编程写入过。
如果检测到上述OTP寄存器中的设定地址尚未被编程写入过,就会将经MD6加密后的芯片标识符写入到OTP寄存器中的设定地址内,这样就能避免将芯片标识符重复写入相同的设定地址,避免出错;如果检测到上述OTP寄存器中的设定地址已被编程写入过,则忽略将经MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的操作,并向上层系统报错,这样就能避免因重复编程写入损坏OTP寄存器,方便用户及时修改相关信息。
接着进入步骤S204,将经MD6加密后的芯片标识符写入OTP寄存器的设定地址内。系统写入OTP寄存器时,厂商设定的标识符(例如其比特长度为[127:0])和用户设定的标识符(例如其比特长度为[31:0])必须分两次写入,写入数据通过MD6加密以后才能真正写入OTP寄存器。具体地说:
若经所述MD6加密后得到的数据的比特长度大于等于所述第二标识符的比特长度,则在经所述MD6加密后得到的数据中,取低d个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述d为所述第二标识符的比特长度。若MD6加密后得到的数据的比特长度小于所述第二标识符的比特长度,则将s个比特位(加密后比特长度)写入第一地址段的低s位,第一地址段的第(d-s)高位可以填零。
至此,写入过程结束。
在本实施例中,OTP寄存器中的用于存放用户设定的标识符的字段,例如为该OTP寄存器中从低到高的第72个比特位至第103个比特位,用于存放厂商设定的标识符的字段,例如为该OTP寄存器中从低到高的第104个比特位至第232个比特位。
由于使用MD6算法运算后的芯片标识符信息会按照一定的顺序写入到OTP寄存器中,而本发明中OTP寄存器中用户设定的标识符的字段和厂商设定的标识符的字段是有一一对应的位置存放关系的,这就为MD6算法的准确性提供了保障,使整个运算过程井井有条,不容易发生由于位置关系不正确导致的运算错误。
本步骤中OTP寄存器的写入是通过电子熔丝e-Fuse、烧断laser或熔断fuse来实现的,其中e-Fuse型OTP寄存器包含耦合电容型的efuse寄存器、串联晶体管型的e-Fuse寄存器和电介质击穿型的e-Fuse寄存器。这些方式实现的OTP寄存器特点是只能一次性写入,不可改写,但是可以重复读出数据,如果有需要,芯片厂商也可以根据客户的需要写入特定的序列号,这样,每个芯片都会有一个不一样的标识符号,避免被复制,符合芯片标识符具有唯一性和不可更改的要求。上述步骤S204对应图4中的标号305、306及307。
接着进入步骤S205,系统会自动判断是否需要读出芯片标识符。
如果不需要读出芯片标识符,则就会返回判断动作,如此循环下去。
如果需要读出芯片标识符,就会进入下一步骤S206。
步骤S206,在OTP寄存器设定地址中读出数据。
步骤S207,使用MD6算法对读出的数据进行第二次运算加密。
在读出的数据进行第二次运算加密之前也要经过步骤S202中的合并处理过程,本步骤中的合并处理过程跟步骤S202中的合并处理过程相同,此处不做赘述。
对读出的数据进行MD6的运算过成也是跟步骤S202的MD6运算过程相同,此处不做赘述。
经过此步骤的第二次MD6运算,得到了加密两次的芯片标识符。
最后进入步骤S208,用户获取经过两次加密的芯片标识符。
此步骤中用户获取的芯片标识符与步骤204中写入到OTP寄存器中的芯片标识符是不同的芯片标识符,与步骤S201中待写入到OTP寄存器中的芯片标识符也是不同的芯片标识符,用户获取的芯片标识符相当于是经过了两次加密的芯片标识符,大大的增加了芯片标识符的安全系数。
具体而言,可以按如下方式利用系统接口读取用户设定的标识符及厂商设定的标识符。系统可以通过DRM(Digital Right Manage数字权利管理,是一种包括加解密以及密钥管理实现保密功能(Security)的硬件)读出OTP寄存器中的标识符时,经过MD6加密,可以分为用户设定的标识符和厂商设定的标识符两种情况,利用硬件控制信号hardware_sel[1:0]来实现(这两位可以是00/01/10/11,对应4种功能选择,分别对应用户设定的标识符CustomID/厂商设定的DevelopID和自测试等功能)。具体地址在DRM(Security)的偏移量0x0100[4:3]处(系统软件可以配置这个地址,改变hardware_sel,实现不同功能),例如,hardware_sel为10(二进制)是读出用户设定的标识符,hardware_sel为11(二进制)是读出厂商设定的标识符。通过MD6处理,达到散列杂凑的目的。
对系统而言,无论是厂商设定的标识符还是用户设定的标识符都不是OTP寄存器保存的数据,软件读出的结果都是经过了MD6加密的结果。
至此,整个芯片标识符的读写过程结束。
与现有技术相比,本发明中写入到OTP寄存器的芯片标识符是经过MD6运算后得到的加密的芯片标识符,该加密的芯片标识符与上述待写入到OTP寄存器中的芯片标识符不同,因此可以对待写入到OTP寄存器中的芯片标识符进行加密保护,防止被破解;并且,从OTP寄存器中读取这个加密的芯片标识符时还会经过一次MD6的运算,使最终显示给用户的芯片标识符经过两次加密处理,上述显示给用户的芯片标识符跟写入到OTP寄存器中的已经加密的芯片标识符也不相同,这样就对待写入到OTP寄存器中的芯片标识符作了进一步的加密保护。由于MD6的运算过程是单向不可逆的,所以即使是黑客也很难根据最终显示给用户的芯片标识符来逆向推断出OTP寄存器里面真实的芯片标识符。另外,MD6是把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。最后,MD6算法生成标识符符合国家安全标准,支持密码口令管理。生成过程中分组后利于并行迭代计算,利用硬件电路优势,提高运算性能。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
本发明中写入到OTP寄存器的芯片标识符是经过MD6运算后得到的加密的芯片标识符,该加密的芯片标识符与上述待写入到OTP寄存器中的芯片标识符不同,因此可以对待写入到OTP寄存器中的芯片标识符进行加密保护,防止被破解。此外,从OTP寄存器中读取这个加密的芯片标识符时还会经过一次MD6的运算,使最终显示给用户的芯片标识符经过两次加密处理,上述显示给用户的芯片标识符跟写入到OTP寄存器中的已经加密的芯片标识符也不相同,这样就对待写入到OTP寄存器中的芯片标识符作了进一步的加密保护。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种芯片标识方法,其特征在于,包括:
获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的第一标识符和第二标识符,所述第一标识符通过读取芯片的特定膜层图形的逻辑值获得;
将所述芯片标识符按MD6进行加密运算,得到经所述MD6加密后的芯片标识符;
将经所述MD6加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内,所述设定地址至少包括对应第一标识符的第一地址段和对应第二标识符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同;
当要从所述OTP寄存器的设定地址内中读出数据时,按所述第一地址段和所述第二地址段的顺序自所述OTP寄存器中获取数据;
将所述获取的数据按MD6进行加密运算,得到经所述MD6加密后的读取数据;
提供经所述MD6加密后的读取数据。
2.根据权利要求1所述的芯片标识方法,其特征在于,所述将待写入到OTP寄存器中的芯片标识符,按MD6进行加密运算,得到经所述MD6加密后的芯片标识符的步骤还包括:
基于MD6算法将所述芯片标识符扩展为待运算字段组,所述待运算字段组的比特位数总和为4096的整数倍;
对所述待运算字段组按MD6进行加密运算,得到经所述MD6加密后的芯片标识符,其中,
若经所述MD6加密后得到的数据的比特长度大于等于所述第二标识符的比特长度,则在经所述MD6加密后得到的数据中,取低d个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述d为所述第二标识符的比特长度。
3.根据权利要求2所述的芯片标识方法,其特征在于,所述待运算字段组包括:
第一字段,所述第一字段为所述待写入到OTP寄存器中的芯片标识符;
第二字段,紧接于所述第一字段,所述第二字段的比特长度为1,且该比特位内填充1作为停止位;
第三字段,紧接于所述第二字段,所述第三字段为填充字段,所述填充字段中的各比特位填充为0。
4.根据权利要求3所述的芯片标识方法,其特征在于,通过一掩模控制所述OTP寄存器中的标准单元的输入端口和输出端口的电连接形成所述第一标识符。
5.根据权利要求4所述的芯片标识方法,其特征在于,所述标准单元的输入端口和输出端口通过后道工艺改变连接逻辑关系以改变所述第一地址段的第一标识符,所述后道工艺的处理次数不大于1次。
6.根据权利要求2所述的芯片标识方法,其特征在于,将所述获取的数据按MD6进行加密运算,得到经所述MD6加密后的读取数据还包括:
按与所述待写入到OTP寄存器中的芯片标识符相同的方式,将所述获取的数据扩展为待运算字段组;
对所述待运算字段组按MD6进行加密运算,得到经所述MD6加密后的读取数据。
7.根据权利要求1至4任一项所述的芯片标识方法,其特征在于,所述第一标识符为厂商设定的标识符,所述第二标识符为用户设定的标识符。
8.根据权利要求1至4任一项所述的芯片标识方法,其特征在于,所述将所述芯片标识符按MD6进行加密运算,得到经所述MD6加密后的芯片标识符的步骤之后,所述将经所述MD6加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内的步骤之前,还包括:
检测所述OTP寄存器中的设定地址是否已被编程写入过;
若检测到所述设定地址尚未被编程写入过,则继续执行所述将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤;
若检测到所述设定地址已被编程写入过,则不执行所述将经所述MD6加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤,并报错。
9.根据权利要求1至6中任一项所述的芯片标识方法,其特征在于,所述特定膜层图形使用电子束直写实现。
10.根据权利要求1至6中任一项所述的芯片标识方法,其特征在于,所述OTP寄存器为以下任意一种类型的OTP寄存器:
烧断型、熔断型、电子熔丝型、反熔丝型OTP寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794618.8A CN109241789A (zh) | 2018-07-19 | 2018-07-19 | 一种芯片标识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794618.8A CN109241789A (zh) | 2018-07-19 | 2018-07-19 | 一种芯片标识方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109241789A true CN109241789A (zh) | 2019-01-18 |
Family
ID=65072164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810794618.8A Pending CN109241789A (zh) | 2018-07-19 | 2018-07-19 | 一种芯片标识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241789A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159711A (zh) * | 2019-12-06 | 2020-05-15 | 珠海慧联科技有限公司 | 一种防串货方法及系统 |
CN111339523A (zh) * | 2020-02-21 | 2020-06-26 | 深圳英飞拓智能技术有限公司 | 嵌入式设备的授权方法及装置 |
CN113033130A (zh) * | 2021-03-18 | 2021-06-25 | 奇捷科技(深圳)有限公司 | 一种电子设计自动化的全阶段功能变更系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6191963B1 (en) * | 2000-01-19 | 2001-02-20 | Lucent Technologies Inc. | Charge pump with no diode drop at output stage |
CN104573572A (zh) * | 2013-10-25 | 2015-04-29 | 上海华力创通半导体有限公司 | 加密读写芯片标识符的方法 |
CN108280373A (zh) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | 加密读写芯片标识符的方法 |
CN108279864A (zh) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | 系统随机数生成方法 |
-
2018
- 2018-07-19 CN CN201810794618.8A patent/CN109241789A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6191963B1 (en) * | 2000-01-19 | 2001-02-20 | Lucent Technologies Inc. | Charge pump with no diode drop at output stage |
CN104573572A (zh) * | 2013-10-25 | 2015-04-29 | 上海华力创通半导体有限公司 | 加密读写芯片标识符的方法 |
CN108280373A (zh) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | 加密读写芯片标识符的方法 |
CN108279864A (zh) * | 2018-01-31 | 2018-07-13 | 上海集成电路研发中心有限公司 | 系统随机数生成方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159711A (zh) * | 2019-12-06 | 2020-05-15 | 珠海慧联科技有限公司 | 一种防串货方法及系统 |
CN111339523A (zh) * | 2020-02-21 | 2020-06-26 | 深圳英飞拓智能技术有限公司 | 嵌入式设备的授权方法及装置 |
CN111339523B (zh) * | 2020-02-21 | 2024-04-23 | 深圳英飞拓仁用信息有限公司 | 嵌入式设备的授权方法及装置 |
CN113033130A (zh) * | 2021-03-18 | 2021-06-25 | 奇捷科技(深圳)有限公司 | 一种电子设计自动化的全阶段功能变更系统 |
CN113033130B (zh) * | 2021-03-18 | 2021-09-14 | 奇捷科技(深圳)有限公司 | 一种电子设计自动化的全阶段功能变更系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102469232B1 (ko) | 고유 내부 식별자를 갖는 암호화 asic | |
US10872154B2 (en) | Secure device state apparatus and method and lifecycle management | |
JP5586628B2 (ja) | 分散puf | |
CN104573572B (zh) | 加密读写芯片标识符的方法 | |
CN109241789A (zh) | 一种芯片标识方法 | |
US9152576B2 (en) | Mode-based secure microcontroller | |
WO2018038829A1 (en) | Systems and methods for authenticating firmware stored on an integrated circuit | |
US11528135B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
CN108280373A (zh) | 加密读写芯片标识符的方法 | |
EP3136286B1 (en) | Data processing system with secure key generation | |
Ahmed et al. | Malicious routing: Circumventing bitstream-level verification for FPGAs | |
US20210160063A1 (en) | Cryptographic management of lifecycle states | |
CN108388817A (zh) | 加密读写芯片标识符的方法 | |
US11962693B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
CN108388816A (zh) | 一种加密读写芯片标识符的方法 | |
CN104573754B (zh) | 芯片标识符读写方法 | |
CN108279864A (zh) | 系统随机数生成方法 | |
CN104575609B (zh) | Otp寄存器中的芯片标识符读写方法 | |
CN110516457B (zh) | 一种数据存储方法及读取方法、存储设备 | |
Maes et al. | A discussion on the Properties of Physically Unclonable Functions | |
US9582686B1 (en) | Unique secure serial ID | |
Li et al. | Enhancing tpm security by integrating sram pufs technology | |
JP7391682B2 (ja) | 改ざん防止カウンタ | |
TWI834551B (zh) | 記憶體裝置以及用於非揮發性記憶體的安全程式化的方法 | |
Perumalla et al. | Memometer: Memory PUF-Based Hardware Metering Methodology for FPGAs |
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 |