- A+
目前,市面上芯片加密一般有如下几种方式:
第一种:通过MCU的普通IO口进行加密。比如,电路板中默认给MCU的某个或多个IO口进行上拉和下拉操作,程序在MCU上电时,延时一段时间,判断电平的预设的状态是否与原理图设计一致,如果判断正确,则程序继续往下执行,反之,则停止等待,这种方式,是最低级的一种加密方式,很容易被抄板破解;
第二种:通过MCU的AD口进行芯片加密。比如,电路板中接入AD采样电路,这种方法与第一种方案类似。此种方法需要读取外围电路的AD值,如果读取的AD值在预设电压的区间范围内,则程序继续往下执行,反之,停止等待,这种加密强度较第一种相对高一些,但对MCU的基准电压有精度要求;
第三种:通过外接EEROM配合MCU的ID码使用。自定义写一算法,在MCU启动时,读取MCU_ID的值,然后通过某段算法与EEROM里存储的值进行比对。EEROM里的数据段也是根据算法而来。匹配,则继续往下执行,反之,停止等待。这种芯片加密比较繁琐,需要写EEROM;
第四种:通过外接专用加密芯片。目前专用的加密芯片有很多,ATMEL也有提供专业的加密芯片,此种目前市面上比较常见,方便使用,而且破解较困难;
第五种:通过外接CPLD或FPGA。这种不是很昂贵的设备,一般不推荐此方法。这种方式,是市面上最灵活的加密方式,但要求软件工程师的编码功底比较高;
还有其他的加密方法,如果设备中带有上网功能,可以通过向服务器索要鉴权码进行加密,这种网络加密的方式,在互联网设备中比较常见,但是,非常麻烦,非一般的编码功力,搞不好,自己的设备都很不容易正常工作,经验不丰富的开发者请谨慎使用。