简述:机顶盒系统中存在个性化的加密芯片,该加密芯片与CPU进行交互认证,从而控制机顶盒的软件流程,实现系统的防拷贝。该加密芯片内部配置数据基本无法获取,与CPU间通信采用密文方式。安全性较好。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
机顶盒主程序在启动或运行过程中可以随时唤醒加密认证任务。完成机顶盒产品中芯片(ID)的确认。加密认证任务通过发送一个认证指令,查找加密芯片的存在。
下面将利用本加密芯片进行产品加密的最安全模式的原理及其实现过程进行阐述。
1)芯片的认证:通过读取芯片配置区内的序列号,制造商ID以及加密的存储区,获得数据进行64位密钥的运算(自制的F1算法),得到芯片内部的加密种子Gc。再获得芯片内部的特定寄存器的随机数Ci 和CPU产生的随机数Q1,利用芯片内部的F2算法,芯片和CPU分别进行F2(Ci,Q1,Gc)运算,利用计算结果进行双向判断,从而完成认证。
2)芯片的加密认证:芯片认证完成后,采用第一步运算产生的SK(F2算法特定处的中间结果),以及由认证更新过得Ci+1 和CPU产生的随机数Q2再进行一次加密运算F2(Ci+1,Q2,SK)认证,最后再通过读取芯片内部更新的Ci+2与CPU计算的结果进行比较,如果相同,则加密认证完成,进入加密模式。
3)加密模式下访问加密的存储区:在加密模式下,I<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2C总线上传输的数据为经过加密的密文数据,首先将存储区的密码进行加密,发送给芯片进行认证;然后利用加密读指令加密访问带密码的加密存储区,将获得数据进行解密,并与产品内部特定存储空间的数据进行比较,如果相同,则更新芯片内部的数据和FLASH的数据。如果上述操作均成功,则完成加密认证任务的处理。
1)芯片的加密种子Gc是加密认证中最重要的加密算子,不能泄露。
2) 芯片的F1算法是获得加密种子Gc的途径,不可泄露。
3) 芯片存储区密码是获取存储区数据的钥匙,不可泄露。
用户1447735 2010-11-22 13:42