芯片标识符读写方法_2

文档序号:8259621阅读:来源:国知局
,经系统接口获取待写入到0TP寄存器中的Chip ID。
[0040] 该Chip ID包含用户设定的ID、厂商设定的ID、其它自定义的ID或其任意组合的 ID,在本实施方式中使用用户设定的ID和厂商设定的ID的组合,如图3所示。使用这种方 法,只要保护好用户设定的ID和厂商设定的ID,即使是知晓全部设计细节的研发人员,缺 了任意一个值,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定Chip ID的 芯片,比单有一个厂商代码或者用户代码安全系数更高。
[0041] 经过系统接口获取待写入到0TP寄存器中的Chip ID后,需要经过一个合并处理 的过程,用于把用户设定的ID和厂商设定的ID合并处理成一定的顺序,以便用于后续的 SHA运算。具体如图4所示:
[0042] 首先系统接口将待写入到0TP寄存器中的由用户设定的ID (图4中编号1)和厂 商设定的ID (图4中编号2)组成的Chip ID作为第一字段,如图4中的编号3,然后在上 述第一字段后的第二字段存放停止位,如图4中的编号4,之后把上述第二字段后的第三字 段作为为填充字段,该填充字段中的各比特位填充为0,如图4中的编号5,最后将第三字段 后的第四字段作为指示上述第一字段占用的比特位数,如图4中的编号6。
[0043] 上述第一字段、第二字段、第三字段和第四字段的比特长度总和为512位比特,其 中第四字段的比特长度为64位比特,其余三段比特长度为512位比特减去64位比特,即 448位比特。
[0044] 上述合并过程完成后,才能对这些设定的值进行SHA运算,在SHA运算过程中,由 于输入的数据必须是512位比特,通过上述SHA运算之前的准备步骤,就能将第一字段、第 二字段、第三字段和第四字段的比特长度总和综合处理成适用于SHA运算的512位比特,保 证了 SHA运算的可操作性和准确性。
[0045] 接着是步骤202,使用安全散列算法SHA (Secure Hash Algorithm)算法对设定的 Chip ID进行运算加密。
[0046] SHA算法是把不定长度的一串设定值,加以特定的算法处理,得到固定长度的数 据,即加密后的Chip ID。
[0047] 以用户设定的ID[31:0]为例,如图4所示。
[0048] 用户设定的ID (准备写入)原始数据为0XF66FAA55,经过SHA运算加密后的用户 设定的 ID 为 0x8558c7b5d53fb052af498dcf9bl7fb487fe877e9 = SHA(F66FAA55),实际写入 0TP寄存器的被保存值是0x7fe877e9,通过SHA后得到0TP寄存器读出来的数据是0x66cl e9fl9a4891253al00e86cac4239a58604ad7 = SHA(7fe877e9),软件系统读到的用户设置的 ID 为 0x58604ad7。
[0049] 软件认为写入值efuse_pgm_word[103 : 72](对应用户设定的ID[31 : 0])为 0xF66FAA55,但是 0TP 寄存器实际保存值 efuse_pgm_real_word[103 : 72]为 0x7FE877E9。
[0050] 另外,针对图4,本实施方式还列举了 4个实例,如表1中的例1、例2、例3和例4。
[0051] 表 1
[0052]
【主权项】
1. 一种芯片标识符读写方法,其特征在于,包含w下步骤: 将待写入到一次性编程OTP寄存器中的芯片标识符,进行安全散列算法SHA的运算,得 到经所述SHA加密后的芯片标识符; 将经所述SHA加密后的芯片标识符写入到所述OTP寄存器中的设定地址内; 在从所述OTP寄存器中读出所述芯片标识符时,获取所述OTP寄存器中所述设定地址 内的数据; 将所述获取的数据进行SHA的运算,得到经所述SHA加密后的读取数据; 将经所述SHA加密后的读取数据显示给用户。
2. 根据权利要求1所述的芯片标识符读写方法,其特征在于,在所述将待写入到OTP寄 存器中的芯片标识符,进行SHA的运算之前,还包含W下步骤: 将所述待写入到OTP寄存器中的芯片标识符作为第一字段,在所述第一字段后的第二 字段用于存放停止位,在所述第二字段后的第H字段为填充字段,所述填充字段中的各比 特位填充为0 ; 在所述第H字段后的第四字段用于指示所述第一字段占用的比特位数; 所述第一字段、第二字段、第H字段和第四字段的比特长度总和为512位比特; 在所述将待写入到OTP寄存器中的芯片标识符,进行SHA的运算的步骤中,将所述第一 字段、第二字段、第H字段和第四字段组成的512位比特,进行所述SHA的运算。
3. 根据权利要求1所述的芯片标识符读写方法,其特征在于,在将所述获取的数据进 行SHA的运算,得到经所述SHA加密后的读取数据的步骤之前,还包含W下步骤: 将所述获取的数据作为第一字段,在所述第一字段后的第二字段用于存放停止位,在 所述第二字段后的第H字段为填充字段,所述填充字段中的各比特位填充为0 ; 在所述第H字段后的第四字段用于指示所述第一字段占用的比特位数; 所述第一字段、第二字段、第H字段和第四字段的比特长度总和为512位比特; 在将所述获取的数据进行SHA的运算,得到经所述SHA加密后的读取数据的步骤中,将 所述第一字段、第二字段、第H字段和第四字段组成的512位比特,进行所述SHA的运算。
4. 根据权利要求1所述的芯片标识符读写方法,其特征在于, 所述芯片标识符包含用户设定的ID和厂商设定的ID。
5. 根据权利要求4所述的芯片标识符读写方法,其特征在于,通过系统接口获取所述 用户设定的ID和厂商设定的ID。
6. 根据权利要求4所述的芯片标识符读写方法,其特征在于,将经所述SHA加密后的芯 片标识符写入到所述OTP寄存器中的设定地址内的步骤中,包含W下子步骤: 在经所述SHA运算后得到的数据中,取低位的N个比特位,所述N为所述厂商设定的ID 的比特长度; 将所述N个比特位写入到所述OTP寄存器中的用于存放厂商设定的ID的字段中;将所 述N个比特位中的低位的N1个比特位写入到所述OTP寄存器中的用于存放用户设定的ID 的字段中;其中,所述N1为所述用户设定的ID的比特长度。
7. 根据权利要求6所述的芯片标识符读写方法,其特征在于, 所述OTP寄存器中的用于存放用户设定的ID的字段,为该OTP寄存器中从低到高的第 72个比特位至第103个比特位; 所述OTP寄存器中的用于存放厂商设定的ID的字段,为该OTP寄存器中从低到高的第 104个比特位至第247个比特位; 其中,所述0TP寄存器中的最低比特位为第0个比特位。
8. 根据权利要求1至7中任一项所述的芯片标识符读写方法,其特征在于,在将经所 述SHA加密后的芯片标识符写入到所述0TP寄存器中的设定地址内的步骤之前,还包含W 下步骤: 通过软件对经所述SHA加密后的芯片标识符进行测试,判断所述加密是否成功,如果 加密成功,则再进入所述将经所述SHA加密后的芯片标识符写入到所述0TP寄存器中的设 定地址内的步骤。
9. 根据权利要求1至7中任一项所述的芯片标识符读写方法,其特征在于,所述0TP寄 存器为W下任意一种类型的0TP寄存器: 烧断laser型0TP寄存器、烙断化se型0TP寄存器、电子烙丝e化se型0TP寄存器。
10. 根据权利要求9所述的芯片标识符读写方法,其特征在于, 所述e化se型0TP寄存器包含禪合电容型的e化se寄存器、串联晶体管型的e化se寄 存器和电介质击穿型的e化se寄存器。
【专利摘要】本发明涉及读写方法,公开了一种芯片标识符读写方法。本发明中将待写入到一次性编程OTP寄存器中的芯片标识符,先进行安全散列算法SHA的运算,得到经SHA加密后的芯片标识符,然后将该加密后的芯片标识符写入到OTP寄存器中的设定地址内,在从OTP寄存器中读出芯片标识符时,再对上述加密后的芯片标识符进行SHA运算加密,最后用户得到经过两次加密后的芯片标识符。与现有技术相比,本发明中最终显示给用户的芯片标识符经过两次加密处理,由于SHA的运算过程是单向不可逆的,所以即使是黑客也很难根据最终显示给用户的芯片标识符来逆向推断出OTP寄存器里面真实保存的芯片标识符;也不能在空白芯片上写入芯片标识符,无法非法复制。
【IPC分类】G06K17-00
【公开号】CN104573754
【申请号】CN201310512156
【发明人】李林, 陈煜 , 胡健
【申请人】上海华力创通半导体有限公司
【公开日】2015年4月29日
【申请日】2013年10月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1