DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2909|回复: 1
打印 上一主题 下一主题

[资料] HCS12单片机加密及解密的方式方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-27 07:30:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        在HCS12系列单片机中,加密可以分成两种方法:完全加密和使用密码的加密。这两种加密的方法根据用户的需求,使用的场合也有所不同。
           完全加密:所谓完全加密,就是将芯片彻底的保护起来,屏蔽对芯片的所有读操作。在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的内容全部擦除,那么系统也将自动解密。
  const volatile unsigned char SecureReg @(0xFF0F)=0xFC;(注意VOLATILE字样,如果没有的话,可能被DUbUG掉)
        使用密码的加密:为了留有读取ROM代码的可能,用户可以采用一种带有密码的加密方式。解密时,用户只要给出正确的密码(称为“后门密码”),就可以读写ROM,而不破坏其内容了。 使用这种方法,用户需要在加密之前,设定4个字长的密码,并将其存放在Flash中,MC9S12DP256存放密码的Flash地址是从$FF00到$FF07。设定的密码可以随用户程序一起下载到芯片中。   
解密时,接受用户输入的密码并验证的工作只能由一个用户接口程序来完成的,不能使用bDM编程器。接口的方式没有限制,如SCI、SPI、IIC、MSCAN等等,只要用户能够将正确的密码输入,任何一种接口方式都是可以的,最为典型的接口是串口。
       假设接收的密码存在变量KEY0-KEY7中,验证密码的程序如下:
程序返回后,如果用户输入的密码和原值符合,系统将会把保密寄存器FSEC的最后两位SEC[1:0]改写到未加密的状态,系统自动解密。如果验证没有通过,系统将保持加密状态。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
沙发
发表于 2024-6-19 19:10:19 | 只看该作者
感谢分享 楼主NB
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-25 13:06 , 耗时 0.164560 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表