当前位置:文档之家› 新唐MCU通过UID加密的一种方法

新唐MCU通过UID加密的一种方法

新唐MCU通过UID加密的一种方法

新唐的每颗M0/M4芯片内部均有一个96位的唯一ID码(UID),通过该UID码,用户可以对程序进行相应的加密,以保证其他人若拿到其程序,将程序烧录到同种MCU,功能也不能正常运行。

下面介绍一种通过MCU的UID码对程序进行加密的方法。

首先对MCU烧录程序时,需把密钥文件同时烧录到MCU的DataFlash(为了加大破解难度,可将密钥的位数设置多点,数据设置复杂点),下图为通过ICP工具烧录程序的一个示意图:

MCU烧录程序后,首次上电时,首先读取DataFlash指定位置的密钥,并判断是否与之前烧录的密钥一致,以此来判断该MCU是否是第一次运行。若是第一次运行,首先擦除DataFlash的密钥,然后读取MCU的UID码并进行加密运算,然后将加密运算后的结果(即密码)存储到DataFlash的指定位置;若不是第一次运行,读取MCU的UID码并进行加密运

算,然后将加密运算后的结果与DataFlash指定位置的密码进行比较。若比较结果一致,则解密通过,程序往下正常运行;若不一致,则解密不通过,程序进入死循环。

相应程序流程图如下:

使用这种加密方法有以下两个优点:1、烧录程序时,不用制作专门的,可以生成加密

数据的烧录器对芯片进行烧录,芯片首次运行时会自动生成加密数据;2、若客户的产品需要在用户端可以通过串口等升级程序,用这种加密方法,可以保证把程序发给客户升级,客户将该程序烧录到其他同种类型的芯片上是不能正常运行的。

当然使用这种加密方法也有个缺点,就是必须保证产品出厂前MCU已运行过一次,即已将密钥擦除并已生成加密数据。

AIX 上总有一种压缩方式适合你

AIX 上总有一种压缩方式适合你 简介 当今世界每天产生大量的数据,有些数据我们需要进行压缩,压缩数据的好处不言而喻:节省空间;方便传输;加密保护等等。很多压缩工具应运而出,每种工具都有自己的特点。对于AIX 平台上的压缩方法也很多compress、pack、gzip、pax、tar 等等。 本文将首先简单介绍一下压缩的基本原理然后详细介绍AIX 平台的常用压缩工具并针对它们各自的特色进行比较,让读者对对AIX 平台的压缩有针对性的认识,从而能够根据不通的需要选择合适的压缩工具。 数据压缩的原理 数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。数据压缩包括有损压缩和无损压缩。无损压缩是可逆的;有损压缩是不可逆的。计算机处理信息是以二进制数(0 和1)的形式表示的,压缩软件把二进制信息中相同的字符串以特殊字符标记起来,从而实现缩小文件大小来达到压缩的目的。压缩的理论基础是信息论。从信息的角度来看,压缩就是去除掉信息中的冗余,即去除掉确定的或可推知的信息,而保留不确定的信息,也就是用一种更接近信息本质的描述来代替原有的冗余的描述,这个本质的东西就是信息量。 数据压缩的硬件和软件工具也非常多,本文将针对AIX 平台常见的几种数据压缩工具进行介绍和比较并提供常用的示例进行解说,希望您能从中选择合适的压缩工具进行压缩。AIX 平台上,通常我们看到的.Z .gz .z .ar .tar 后缀的文件都是压缩文件。 通过compress 可以生成.Z 压缩文件,通过compress、uncompress、gzip 可以解压.Z 格式的压缩文件; 通过gzip 可以生成.gz 压缩文件,通过gzip 可以解压.gz 格式的压缩文件; 通过pack 可以生成.z 压缩文件,通过unpack、gzip 可以解压.z 格式的压缩文件; 通过pax 可以生成.ar 压缩文件,通过pax 可以解压.ar 格式的压缩文件; 通过pax、tar 可以生成.tar 压缩文件,通过pax、tar、untar、可以解压.tar 格式的压缩文件。 图1 描述了各种类型文件的压缩及解压可以选择的AIX 工具。

新唐MCU通过UID加密的一种方法

新唐MCU通过UID加密的一种方法 新唐的每颗M0/M4芯片内部均有一个96位的唯一ID码(UID),通过该UID码,用户可以对程序进行相应的加密,以保证其他人若拿到其程序,将程序烧录到同种MCU,功能也不能正常运行。 下面介绍一种通过MCU的UID码对程序进行加密的方法。 首先对MCU烧录程序时,需把密钥文件同时烧录到MCU的DataFlash(为了加大破解难度,可将密钥的位数设置多点,数据设置复杂点),下图为通过ICP工具烧录程序的一个示意图: MCU烧录程序后,首次上电时,首先读取DataFlash指定位置的密钥,并判断是否与之前烧录的密钥一致,以此来判断该MCU是否是第一次运行。若是第一次运行,首先擦除DataFlash的密钥,然后读取MCU的UID码并进行加密运算,然后将加密运算后的结果(即密码)存储到DataFlash的指定位置;若不是第一次运行,读取MCU的UID码并进行加密运

算,然后将加密运算后的结果与DataFlash指定位置的密码进行比较。若比较结果一致,则解密通过,程序往下正常运行;若不一致,则解密不通过,程序进入死循环。 相应程序流程图如下: 使用这种加密方法有以下两个优点:1、烧录程序时,不用制作专门的,可以生成加密

数据的烧录器对芯片进行烧录,芯片首次运行时会自动生成加密数据;2、若客户的产品需要在用户端可以通过串口等升级程序,用这种加密方法,可以保证把程序发给客户升级,客户将该程序烧录到其他同种类型的芯片上是不能正常运行的。 当然使用这种加密方法也有个缺点,就是必须保证产品出厂前MCU已运行过一次,即已将密钥擦除并已生成加密数据。

相关主题
文本预览
相关文档 最新文档