快捷搜索:

如何给HCS12系列单片机进行加密

在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的内容整个擦除,那么系统也将自动解密。

应用密码的加密

为了留有读取ROM代码的可能,用户可以采纳一种带有密码的加密要领。解密时,用户只要给出精确的密码(称为“后门密码”),就可以读写ROM,而不破坏其内容了。

应用这种措施,用户必要在加密之前,设定4个字长的密码,并将其寄放在Flash中,MC9S12DP256寄放密码的Flash地址是从$FF00到$FF07。设定的密码可以随用户法度榜样一路下载到芯片中。

解密时,吸收用户输入的密码并验证的事情只能由一个用户接口法度榜样来完成的,不能应用BDM编程器。接口的要领没有限定,如SCI、SPI、IIC、MSCAN等等,只要用户能够将精确的密码输入,任何一种接口要领都是可以的,最为范例的接口是串口。

假设接管的密码存在变量KEY0-KEY7中,验证密码的法度榜样如下:

奸淫奸淫奸淫奸淫奸淫奸淫

* TEST KEYS

奸淫奸淫奸淫奸淫奸淫奸淫

TESTKEYS

BSET FCNFG,$20 ;置KEYACC为1

LDD KEY0

STD $FF00

LDD KEY2

STD $FF02

LDD KEY4

机动应用带密码的加密解密措施

经由过程钻研我们发明,应用带有密码的加密要领,看似给破解代码留有了可能性,但由于吸收和验证密码都必要由用户法度榜样完成,只要用户法度榜样设计的靠得住,这种可能性是很小的。

为了增强用户接口法度榜样的靠得住性和机动性,我们提出以下几种可能的设计思路:

针对穷举密码的对策:MC9S12DP256的密码长达8个字节,假如不将密码限制在ASCII码的范围内,那么可以选择的密码数量将达到1.8*1019 种。为了防患破解者穷举密码,用户可以设定容许输入差错密码的次数,假如掉足跨越必然次数,接口法度榜样就不再接管新的密码了。容许掉足的次数可以根据安然必要和应用方便综合斟酌。

机动的对外接口:应用密码加解密时,用户法度榜样应用的对外接口是没有任何限定的。本文中的串口法度榜样只是一例,MC9S12DP256片内集成了浩繁的接口模块,如SCI、SPI、IIC、MSCAN、J1850等等。应用哪一个接口,用户可以根据方便和安然斟酌自己选择,这样也会使破解者难以入手。

用户法度榜样级密码验证:用户还可以给接口法度榜样增设一级密码验证的步骤。只有经由过程该密码验证,才能进一步输入解密的密码。由于加密后,Flash ROM就无法读写了,用户法度榜样可以将增设的密码也保存到Flash中,留待验证。别的,假如某一个模块既要作为吸收密码的接口,又有其他的用途,也应该留有一个交互界面,在应用前让用户选择该模块的用途。

远程加解密:在很多场合,用户对付单片机的节制是经由过程以太网等介质远程实现的,只要有响应的接口法度榜样,能够远程对单片机进行加解密,这无疑会给用户的事情带来很大年夜的方便。

滥觞;21ic

您可能还会对下面的文章感兴趣: