随着近两年的科技发展,市场对加密芯片的需求量也越来越大。本人通过调查发现目前市面上以ATMEL AT88系列、韩国ALPU系列、北京凌科芯安LKT系列三类加密芯片为主流。
那么我们该如何选择加密芯片、选择加密方案呢?对于需要加密芯片保护的企业来说,其产品肯定是有一定市场价值,产品的在生存换代周期内不能被盗版。下面对三种芯片的加密方案进行对比,以供参考。
ATMEL AT88系列芯片加密方案:
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)加密模式下访问加密的存储区:在加密模式下,I2C总线上传输的数据为经过加密的密文数据,首先将存储区的密码进行加密,发送给芯片进行认证;然后利用加密读指令加密访问带密码的加密存储区,将获得数据进行解密,并与产品内部特定存储空间的数据进行比较,如果相同,则更新芯片内部的数据和FLASH的数据。如果上述操作均成功,则完成加密认证任务的处理。
韩国ALPU系列芯片加密方案:
ALPU系列加密芯片工作原理为在被保护器件的引导区写入密钥,从而防止器件内的软件代码被恶意拷贝,以ASIC方式制造的.目前用的加密芯片是EEPROM方式的,这种加密芯片的空间上要放进需要的软件密码的。不过,EEPROM方式的芯片是能打开并且可以看到里面的设置,所以很容易复制。
ALPU芯片是通过软件计算结果和硬件计算结果要一致才能通过检测。
凌科芯安LKT系列芯片加密方案:
LKT系列加密芯片采用算法移植加密方案,即将原有CPU中的一部分重要程序移植到LKT加密芯片中去运行,使CPU中的程序不再完整,当使用到移植的这部分程序时向加密芯片发送命令,而LKT加密芯片本身内核可以自行运行程序,并将程序结果返回给CPU端进行下步的运算参数。这样即使CPU端的程序被破解后得到的也只是部分数据,此时如果要完成完全破解需要完成对LKT系列芯片的破解,而LKT系列加密芯片是以高等级的智能卡硬件平台为基础开发,从保证了硬件的安全,内部数据不能拷贝、不能复制。
此外LKT系列加密芯片同时支持3DES算作为辅助认证方案使用。内部的安全存储区可以存放一些开机使用数据和一些重要数据。
方案注意事项:
1).输入输出参数不要一成不变,或有规律变化
2).算法返回参数作为CPU端下步程序的运行参数
3).多种算法调用配合使用。
总结:
ATMEL的AT88系列芯片在市场时间有10多年的历史,其安全性和加密方式已经被众多的破解厂商所熟知。破解商可以完全对整个芯片完成破解,同时CPU中的程序是完整的可以通过绕过CPU程序中的认证点完成对CPU的破解。
韩国ALPU系列加密芯片其芯片硬件本身有唯一ID、ASICs、AES专有算法、用户定制等保护,使其硬件平台不易被破解。但是其最致命的问题依旧是CPU端采用对比数据的方式完成加密,CPU端的程序依然是完整的。破解商完全没有必要花时间去破解加密芯片硬件,只需绕过CPU的对比点就可完成破解。
凌科芯安LKT系列芯片采用的算法移植加密方式从根本上杜绝了绕过对比点这种破解方式,使破解商必须将破解方向转移到以智能卡为平台的LKT加密芯片。智能卡芯片的构架与一台普通PC的构架是类似的,既然构架类似于PC,那么同样需要有操作系统来运行于加密芯片内部,支持客户自定义的算法下载后,能够被加密芯片所支持。凌科芯安的LKCOS操作系统的最大特点是对芯片底层防护做了很多有针对性的工作,这是其他采用智能卡芯片厂商所不具备的。从芯片的执行效率,通讯速率以及安全级别上,智能卡芯片对于外界的各种攻击手段,启动自毁功能,使得外界对于IC的破解无法进行。
通过以上对比,凌科芯安的LKT系列加密芯片能从根本上保护企业的知识产权,将成为以后最主要的加密芯片。 |