芯片标识符读写方法

文档序号:8259621阅读:1162来源:国知局
芯片标识符读写方法
【技术领域】
[0001] 本发明涉及标识符读写方法,特别涉及芯片标识符读写方法。
【背景技术】
[0002] 随着嵌入式应用的越来越广泛,产品的安全也显得越来越重要。一方面是为了保 护硬件设计,另外一方面也是为了产品本身的安全,防止被黑客攻击(HACKED)。为了保护芯 片中的数据,越来越多的厂商在芯片内部提供了一种特殊的寄存器:〇TP寄存器(One Time Programmable,一次性编程寄存器)。OTP寄存器的特点是每组OTP寄存器包括多个比特位, 对每一比特位而言,信息都是一次性写入,不可重写,但是不同比特位可以分多次写入。掉 电不丢失数据,可以反复读出数据。
[0003] 芯片标识符Chip ID具有唯一性和不可更改的要求,所以目前通常都使用0TP寄 存器来实现。目前的Chip ID的写入和读出方法如图1所示:
[0004] 首先是步骤101,设定Chip ID;
[0005] 然后是步骤102,把设定的Chip ID写入到OTP寄存器;
[0006] 接着步骤103,在需要读出Chip ID时,从0TP寄存器中读出设定的Chip ID ; [0007] 最后步骤104,用户获取从0TP寄存器读出的设定的Chip ID。
[0008] 通常步骤2中把设定的Chip ID写入到0TP寄存器是使用电子熔丝e-Fuse实现 的,从硅片代工厂生产出来时,所有芯片都是同样的值,比如说16位0x0,当把设定的Chip ID写入到0TP寄存器时后,芯片的值可以改成设定的Chip ID,比如说是16位的0x1,最后 一位改变了,最后系统读到的值就是步骤101中设定的ChipID。这个过程中芯片的外部虽 然没有变化,但是由于e-Fuse对芯片的物理影响比较大,如果把这颗芯片解剖分析,就很 容易发现改写的位,用光学显微镜就能很容易逆向分析破解这些Chip ID。当然也可以把未 写入设定的Chip ID的芯片(对应ID为0x0)改写为0x1,实现复制拷贝。这样就对产品本 身的安全性造成很大的威胁。

【发明内容】

[0009] 本发明的目的在于提供一种芯片标识符读写方法,使得用户和厂商使用0TP寄存 器可以得到唯一的芯片标识符Chip ID,而且难以被逆向破解和非法复制。
[0010] 为解决上述技术问题,本发明提供了一种芯片标识符读写方法,包含以下步骤:
[0011] 将待写入到一次性编程0TP寄存器中的芯片标识符,进行安全散列算法SHA的运 算,得到经所述SHA加密后的芯片标识符;
[0012] 将经所述SHA加密后的芯片标识符写入到所述0TP寄存器中的设定地址内;
[0013] 在从所述0TP寄存器中读出所述芯片标识符时,获取所述0TP寄存器中所述设定 地址内的数据;
[0014] 将所述获取的数据进行SHA的运算,得到经所述SHA加密后的读取数据;
[0015] 将经所述SHA加密后的读取数据显示给用户。
[0016] 与现有技术相比,本发明中写入到OTP寄存器的芯片标识符是经过SHA运算后得 到的加密的芯片标识符,该加密的芯片标识符与上述待写入到0TP寄存器中的芯片标识符 不同,因此可以对待写入到0TP寄存器中的芯片标识符进行加密保护,防止被破解;并且, 从0TP寄存器中读取这个加密的芯片标识符时还会经过一次SHA的运算,使最终显示给用 户的芯片标识符经过两次加密处理,上述显示给用户的芯片标识符跟写入到0TP寄存器中 的已经加密的芯片标识符也不相同,这样就对待写入到0TP寄存器中的芯片标识符作了进 一步的加密保护。由于SHA的运算过程是单向不可逆的,所以即使是黑客也很难根据最终 显示给用户的芯片标识符来逆向推断出0TP寄存器里面真实的芯片标识符。另外,SHA是 把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破 解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。
[0017] 优选地,在进行SHA的运算之前,还包含以下步骤:
[0018] 将所述待写入到0TP寄存器中的芯片标识符作为第一字段,在所述第一字段后的 第二字段用于存放停止位,在所述第二字段后的第三字段为填充字段,所述填充字段中的 各比特位填充为0 ;
[0019] 在所述第三字段后的第四字段用于指示所述第一字段占用的比特位数;
[0020] 所述第一字段、第二字段、第三字段和第四字段的比特长度总和为512位比特;
[0021 ] 在所述将待写入到0TP寄存器中的芯片标识符,进行SHA的运算的步骤中,将所述 第一字段、第二字段、第三字段和第四字段组成的512位比特,进行所述SHA的运算。
[0022] 在SHA运算过程中,由于输入的数据必须是512位比特,通过上述SHA运算之前的 准备步骤,就能将第一字段、第二字段、第三字段和第四字段的比特长度总和综合处理成适 用于SHA运算的512位比特,保证了 SHA运算的可操作性和准确性。
[0023] 优选地,本发明中的芯片标识符包含用户设定的ID和厂商设定的ID,使用这种方 法,只要保护好厂商代码或用户代码,即使是知晓全部设计细节的研发人员,缺了任意一个 代码,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定Chip ID的芯片,比单 有一个厂商代码或者用户代码安全系数更高。
[0024] 另外,本发明是通过系统接口获取所述用户设定的ID和厂商设定的ID。该系统接 口用于把用户设定的ID和厂商设定的ID合并处理成一定的顺序,便于下一步SHA算法对 其进行运算处理。
[0025] 另外,本发明中的0TP寄存器中的用于存放用户设定的ID的字段,为该0TP寄存 器中从低到高的第72个比特位至第103个比特位;用于存放厂商设定的ID的字段,为该 0TP寄存器中从低到高的第104个比特位至第247个比特位。
[0026] 由于使用SHA算法运算后的芯片标识符信息会按照一定的顺序写入到0TP寄存器 中,并且在从0TP寄存器中读出芯片标识符时也要经过SHA算法的运算,而本发明中0TP寄 存器中用户设定的ID的字段和厂商设定的ID的字段是有一一对应的位置存放关系的,这 就为SHA算法的准确性提供了保障,使整个运算过程井井有条,不容易发生由于位置关系 不正确导致的运算错误。
[0027] 作为本发明的进一步改进,在将由SHA加密后的芯片标识符写入到所述0TP寄存 器中的设定地址内的步骤之前,还可以包含以下步骤:
[0028] 通过软件对经所述SHA加密后的芯片标识符进行测试,判断所述加密是否成功, 如果加密成功,则再进入所述将经所述SHA加密后的芯片标识符写入到所述OTP寄存器中 的设定地址内的步骤。
[0029] 上述软件测试可以避免由于SHA运算错误把错误的芯片标识符写入到0TP寄存器 中,而且,如果软件测试加密失败,还会给出SHA运算错误的提示,便于用户及时修改相关 信息,增加了本发明的可操作性。
[0030] 此外,本发明中的0TP寄存器可以为烧断laser型0TP寄存器、熔断fuse型0TP 寄存器或电子熔丝efuse型0TP寄存器。这些类型的0TP寄存器的特点就是一次性写入, 不可改写,如果有需要,芯片厂商也可以根据客户的需要写入特定的序列号,这样,每个芯 片都会有一个不一样的ID号,避免被复制,符合芯片标识符Chip ID具有唯一'丨生和不可更 改的要求。
【附图说明】
[0031] 图1是现有技术中的芯片标识符读写方法流程图;
[0032] 图2是根据本发明第一实施方式中的芯片标识符读写方法流程图;
[0033] 图3是根据本发明第一实施方式中的芯片标识符读写方法示意图;
[0034] 图4是根据本发明第一实施方式中的写入0TP寄存器的芯片标识符的数据通道;
[0035] 图5是根据本发明第一实施方式中的读出0TP寄存器的芯片标识符的数据通道;
[0036] 图6是根据本发明第二实施方式中的写入0TP寄存器的芯片标识符的数据通道。
【具体实施方式】
[0037] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实 施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中, 为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基 于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方 案。
[0038] 本发明的第一实施方式涉及一种芯片标识符的读写方法。具体流程如图2所示。
[0039] 首先是步骤201
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1