一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

MCU的加密方法及MCU与流程

2022-12-06 20:13:31 来源:中国专利 TAG:

mcu的加密方法及mcu
技术领域
1.本发明涉及mcu程序加密技术领域,具体地说,涉及一种mcu的加密方法及mcu。


背景技术:

2.因为mcu端的程序很容易被获取到,所以mcu端的程序和数据都是不安全的。最直接的加密防护,就是提升mcu的安全等级,让mcu自身变得坚不可摧。有些mcu厂家意识到这一点,也推出了一些不同等级的安全主控,这是个很好的现象,说明大家越来越重视mcu领域的信息安全和程序安全了。
3.目前常用mcu的加密方式有以下几种:1、程序写保护:这种方法是最常见,也是最简单的一种。现在的mcu基本都有些保护功能(配置信息中的security enable选项),但是这种加密方式容易被人破解。2、烧断数据总线:这个方法有很大损坏的风险,同样也能被破解。3、代码置乱加密:代码置乱加密是在程序代码中加上一些冗余字节,使整个程序反汇编后变得杂乱无章。是一些防止别人读懂程序的方法,单一的这种方法不能防止别人全盘复制,需配合其他的加密算法。4、添加外部硬件电路:这种加密方式会增加一定的成本。5、芯片丝印打磨改变型号:改变型号确实能误导解密者,在破解环节增加一定的难度;但同时在加工生产环节也会增加一定的成本,最终解密者一般也能分析出来。


技术实现要素:

4.本发明的目的在于提供一种mcu的加密方法及mcu,加密成本低,加密可靠性高。
5.本发明公开的mcu的加密方法所采用的技术方案是:
6.一种mcu的加密方法,包括:程序写入前,读取mcu只读存储器中信息区域的信息数据,并将信息数据写入只读存储器的预设地址中;程序执行前,读取mcu只读存储器中信息区域的信息数据,以及只读存储器预设地址中的数据,并将两者进行对比;若两者对比一致,则执行程序。
7.作为优选方案,所述读取mcu只读存储器中信息区域的信息数据的步骤具体包括:读取mcu只读存储器中信息区域的全部参数的trim值;将全部参数中至少一种参数的trim值作为信息数据。
8.作为优选方案,所述将信息数据写入只读存储器的预设地址中的步骤具体包括:将信息数据进行加密计算后写入只读存储器的预设地址中;所述读取mcu只读存储器中信息区域的信息数据的步骤具体包括:读取mcu只读存储器中信息区域的信息数据后进行加密计算。
9.本方案还提供了一种mcu,包括只读存储器,所述只读存储器包括上述的信息区域,所述信息区域内存储有信息数据。
10.本发明公开的实施例有益效果是:mcu的只读存储器(rom)中有单独一个区块,用于保存ad/da、ldo、ihrc等参数的trim值,此区域被称为信息区域(information block)。信息区域中的信息(information)数据有以下特点:1、用户只能访问,不能改写;2、每个mcu母
体中的信息数据排列位置各异;3、同一母体的每颗mcu的信息数据不同。因此通过利用信息区域中的信息数据来对mcu进行软件加密,可靠性相对来说非常高。另外,这种利用mcu特殊区域的information数据进行加密的方法,属于软件加密,相对mcu硬件加密来说,成本上占有很大优势。
附图说明
11.图1是本发明mcu的加密方法的流程示意图。
具体实施方式
12.下面结合具体实施例和说明书附图对本发明做进一步阐述和说明:
13.请参考图1,mcu的加密方法包括:
14.s100:程序写入前,读取mcu只读存储器中信息区域的信息数据,并将信息数据写入只读存储器的预设地址中。
15.用户在烧录mcu的user rom程序时,读取该mcu信息区域的信息数据并将其写入约定的user rom特定地址(information_address),例如mcu rom的最后一个page等,然后再将程序或数据写入。
16.s200:程序执行前,读取mcu只读存储器中信息区域的信息数据,以及只读存储器预设地址中的数据,并将两者进行对比。
17.s300:若两者对比一致,则执行程序。
18.在user程序启动时,通过直接寻址的方式读取信息区域的信息数据和user rom特定地址的rom data。然后二者进行比较,根据一致性确定是否正式执行user程序。
19.mcu的只读存储器(rom)中有单独一个区块,用于保存ad/da、ldo、ihrc等参数的trim值,此区域被称为信息区域(information block)。信息区域中的信息(information)数据有以下特点:1、用户只能访问,不能改写;2、每个mcu母体中的信息数据排列位置各异;3、同一母体的每颗mcu的信息数据不同。因此通过利用信息区域中的信息数据来对mcu进行软件加密,可靠性相对来说非常高。另外,这种利用mcu特殊区域的information数据进行加密的方法,属于软件加密,相对mcu硬件加密来说,成本上占有很大优势。
20.本实施例中,以sonix mcu为例进行说明。当下sonix mcu所有母体基本都包含信息区域(information block),信息(information)数据是mcu在原厂的各个生产测试环节所产生,每颗mcu中的信息(information)数据是不同的,用户可以通过直接寻址的方式读取得到。
21.每颗mcu母体information block中的information数据在information block中排列位置是不同的!也就是说,方案开发者即使用过sonix mcu其中一个母体进行开发,也无法掌握其他母体的information block相关数据排列方式。
22.所述读取mcu只读存储器中信息区域的信息数据的步骤具体包括:
23.读取mcu只读存储器中信息区域的全部参数的trim值;
24.将全部参数中至少一种参数的trim值作为信息数据。
25.由于每颗mcu母体information block中的information数据涉及很多参数,因此即使破解者通过直接寻址方式读取得到所有数据,也无法准确判定具体是通过哪个参数来
进行加密的。
26.进一步的,所述将信息数据写入只读存储器的预设地址中的步骤具体包括:
27.将信息数据进行加密计算后写入只读存储器的预设地址中。
28.对应的,所述读取mcu只读存储器中信息区域的信息数据的步骤具体包括:
29.读取mcu只读存储器中信息区域的信息数据后进行加密计算。
30.在user rom中所存储的information数据,以及验证二者数据一致性的地方,可以增加一些加密算法。这样两种加密算法叠加之后,即使别人读取了方案开发者的程序,也是无法正常执行。
31.information数据通过加密算法计算得到的数据,必须通过sonix定制版烧录软件才能写入约定的user rom特定地址。也就是说,此加密算法不仅存在于sonix mcu的主控程序中,也同样存在于sonix的定制版烧录软件中,分别用于程序执行前和程序写入前的加密计算。
32.本实施例中,sonix不同mcu母体的烧录时序也是不同的。sonix mcu的烧录时序,为非标准的eeprom/flash读写时序,且在正式版的烧录软件中存在加密算法。烧录时序破解者通过量测sonix烧录软件无法准确掌握真正的烧录时序。且sonix mcu的烧录时序,为sonix极机密性文件,未面对市场公开。
33.本实施例中,可以将通过加密算法后的加密数据分别存放在user rom的不同位置,user程序执行时再进行运算组合,然后根据一致性确定是否正式执行user程序。
34.综上所述,sonix mcu利用information block中的information数据进行加密的算法,破解难度非常之大,安全性极高,可靠性极强。
35.本实施例还提供了一种mcu,包括只读存储器,所述只读存储器包括上述的信息区域,所述信息区域内存储有信息数据。
36.最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献