一,加密芯片的来源及工作流程:
市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法加密来实现的,流程大致如下:
主控芯片生成随机码 --> 主控芯片给加密芯片发送明文 --> 加密芯片通过加密算法对明文进行加密生成密文 --> 加密芯片返回密文给主控芯片 --> 主控芯片对密文进行解密生成解密值 --> 主控芯片对解密值与之前明文进行对比, 比较值一致则认证通过(认证不通过可进行关机操作);
(用户一般需要集成加密芯片商提供的解密库文件,调用指定库文件接口,来实现解密)
目前市面上的加密芯片种类繁多,从几毛钱到十几块钱价格不等;
二,不同类型加密芯片主要区别:
1)加密算法实现不同:各种加密芯片都是厂家根据需求选择自己编好的加密算法,进行更改适配,或者直接使用自己自定义的算法进行加密,常见算法介绍及比较详见附录1;
2)封装不同,常见的加密芯片封装有:SOT-23-3,SOT23-6,SOP-8、SOIC-8等;根据板段的设计可选择不同的封装对应的芯片;
3)其他区别:传输协议(I2C、SPI、UART、或者厂家自定义协议)不同,认证速率可靠性不同,开发适配难度差异等;
三,加密芯片的应用:
加密芯片一般广泛应用于给电子产品,防止抄板防止破解,部分常用产品(相机,监控摄像头,儿童数码玩具,行车记录仪,游戏机教育机,执法记录仪,安防设备,平板电脑,对讲机,会议系统,以及其他各种系统电子产品,行业工控机等产品);
备注:特别需要注意的是,明文的发送,建议使用真正的不可预知的随机数进行发送(如果每次都发送固定的几组明文,破解人员只需将该明文对应密文抓取出来,收到明文返回对应密文即可完成破解),建议在代码多个地方进行加密认证;在明文真正做到随机数的情况下,破解难度就取决于加密算法的复杂程度了;当然也会有其他更安全的因素可以提高破解风险,在此就不过多论述了;
五,加密芯片的如何选择(仅个人认为):
1)价钱:在产品量大情况下,建议选择便宜的加密芯片,大批量产品价格能够在一元一下会比较合适(当然越便宜越好);
2)重新烧录:有厂家的加密芯片采购相同的硬件芯片回来后需要烧录自己的算法和秘钥,这样就是无形中增加了人力 物力和财力,如果用量非常大的话,就需要有自动化烧录设备了,增加成本;也有一些厂家在晶元出厂时固化进去设计好的算法和秘钥,只需在搭配对应的库文件(对应的算法)
3)安全性:不同加密芯片,主要却别在于所选单片机不一样,加密芯片开发人员不一样,加密方式实现的差异;只要加密芯片实现方式上没有很大漏洞,以及加密算法不过于简单,所选加密芯片基本会有一定安全性, 大品牌加密方式复杂但破解者也更多,相比而言亦不占优势,小品牌不知名加密芯片加密算法复杂性可能欠缺但无人破解,相对也会有一定安全性;
4)其他:
①加密芯片可以选择有私有密钥(定制化算法)的(这样针对不同客户的加密芯片就会有区别);
②如果可能可以与加密芯片提供方要求,在原有加密算法基础上,集成一部分自己的数学运算进入到加密芯片算法内,以提高加密性;
③如果对认证速率有要求最好选择认证速率相对较快的芯片,这样不会影响到开机速度和系统运行;
不同的产品适用于不同出场景,各取所需。