Otp寄存器中的芯片标识符读写方法

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

【发明内容】

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