Flash型单片机的加密与解密

小微 科技Flash型单片机的加密与解密已关闭评论299字数 1916阅读模式
摘要厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性。考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的。 早期的单片机,代码是交给芯片制造商制成掩膜RO...

厂商应用单片机进行产品开发时,都会关切其代码以及数据的保密性。斟酌到用户在编写以及调试代码时所付出的时间以及精力,代码的本钱是显而易见的。
初期的单片机,代码是交给芯片制造商制成掩膜ROM。有两种加密的机制,一是彻底损坏读取代码的功能,不管是开发者还是使用者都永久没法读取其中的内容。从安全上来讲,这类方式很彻底,然而已经没法检查ROM中的代码了。另外一种办法是不公开读取办法,厂商仍可以读取代码。这类方式留有检查代码的可能性,然而其实不能算是一种真实的“加密”,被破解的可能性是存在的。
客观地讲,一方面但愿加密很彻底,而此外一方面又但愿留有检查代码的可能,这是互相矛盾的请求。

文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

自Flash技术得到广泛利用以来,各类单片机制造商纷纭采取了多种不同的芯片加密办法,对照掩膜ROM芯片来讲,Flash ROM在线可编程特性使得芯片的加密以及解密方式变得更为灵便以及可靠。在Flash型单片机中,芯片的加密以及解密工作都是通过对Flash ROM的编程来完成的,因为用户程序可以在线地改写ROM的内容,可以编写一套加密以及解密的小程序,随用户程序下载到芯片中,通过运行该程序,在线修改Flash ROM的内容,对芯片进行加密以及解密,使整个的加解密进程更加简单灵便。
Freescale公司的HCS12单片机采取的加解密思路有一定的典型性,咱们对此作了一些钻研,现以MC9S12DP256单片机为例,介绍Flash型单片机的加密解密办法。文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

BDM程序调试接口
Freescale公司的不少单片机都借用一种被称为后台调试模式(Background Debug Mode,BDM)作为下载以及调试程序的接口。
BDM是一种单线调试模式,芯片通过一个引脚与编程器进行通讯。在HCS12系列单片机中,内部都置有标准的BDM调试模块。文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

该模块的有三种作用:
1) 对内部存储器的读写。将用户程序下载到目标芯片中或是将存储器中的数据读出。
2) 对单片机工作方式以及资源进行配置。部份触及到单片机工作方式以及资源配置的存放器只能在特殊模式下由编程器发送BDM命令来修改。
3) 程序调试。应用BDM模块可以读写内存以及CPU内部存放器,调试程序。
在HCS12单片机未加密的状况下,使用BDM硬件命令可以将Flash ROM中的程序读出或将新的程序写入。BDM命令可以由独立的硬件系统来送出,咱们一般称此类系统为BDM编程器。
BDM编程器的时序协定是公开的,任何人均可以依据协定设计硬件、编写程序,实现BDM编程器的功能。使用BDM接口,编程器可以很容易的走访到目标系统的存储器,这给程序调试以及烧写带来了很大的利便,但是,便利的对外接口也给盗用者留下了可乘之机。
在带有BDM模块的单片机中引入数据保密机制并不是HCS12系列的开创,先前的HC12系列单片机的D家族中,就已经引入了屏蔽Lockout BDM读写的机制,惋惜,该机制在单片机的扩大工作模式下存在着漏洞。相比之下,HCS12系列单片机中的保密机制更为完美,不管在BDM模式下或是扩大模式下,均可以屏蔽外部对Flash ROM的读写。文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

两种加密解密办法
在HCS12系列单片机中,加密可以分成两种办法:完整加密以及使用密码的加密。这两种加密的办法依据用户的需求,使用的场合也有所不同。文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

·完整加密
所谓完整加密,就是将芯片彻底的维护起来,屏蔽对芯片的所有读操作。在MC9S12DP256单片机中,加密是通过对某一Flash单元($FF0F)编程来实现的。加密后的芯片,BDM编程器对Flash的读操作就被制止了。
采取完整加密,读取ROM代码的可能性就不存在了,这是一种最为“安全”的加密办法。如果用户想修改ROM的内容,独一的方法就是将Flash的内容全体擦除了,这一操作可以通过BDM编程器来完成。
使用BDM编程器擦除了Flash ROM以及EEPROM的进程与在普通模式下对片内的Flash ROM擦除了操作进程基本同样,区分是对存放器或是存储单元的读写要改由BDM命令来实现。通过BDM编程器将一连串完全的擦除了指令序列送给单片机,就可将Flash ROM以及EEPROM的内容全体擦除了了。
在全擦除了操作完成后,BDM编程器将系统复位,系统会自动检查全擦除了操作是不是胜利。如果胜利,BDM状况存放器的UNSEC位会自动置“1”,系统进入解密状况。
因为系统靠检查Flash ROM以及EEPROM是不是清空来抉择系统是不是维持加密状况,所以,如果用户程序偶然将Flash ROM以及EEPROM的内容全体擦除了,那么系统也将自动解密。文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

以上就是微观生活(93wg.com)关于“Flash型单片机的加密与解密”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/5809.html

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/5809.html