单片机系统的动态加密技术

时间:2020-10-06 19:36:11 理工毕业论文 我要投稿

单片机系统的动态加密技术

摘要:单片机系统产品的加密和解密技术永远是一个矛盾的统一体。然而,为了更好的保护好自己的单片机技术成果和知识产权,加大解密成本,研究新型加密技术仍是保护成果的主要手段之一。文中在讨论了传统的单处系统加密和解密技术的基础上,提出了一种实用而有效的动态加密技术的实现方案。

1 概述

随着单片机技术的发展和广泛应用,许多使用单片机的高新技术产品诸如智能化仪器、仪表、小型工业控制系统等都面临着一个令人头痛的问题,那就是新产品刚一推出就被仿制和剽窃。这种现象会使产品开发商蒙受很大损失,同时也极大地挫伤了开发商的积极性。创新开发是一个公司竞争力的关键,如何保护好自己的劳动成果,除用法律手段外,在产品面市前作好加密是一个必不可少的环节。

单片机系统一般都采用MCU EPROM模式。通常EPROM都是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zilog公司的Z80、Z84系列、Motorola公司的MC68HC系列以及Microchip公司的PIC16C系列等。虽然有许多的MCU都带有加密位,但现在已大多能破解。因此,单靠MCU本身加密位来进行加密已极不可靠的.。

2 常用加密技术分析

常用的单片机加密技术无非是硬件加密和软件加密两种。软件加密不能防止别人复制,只能增加别人解剖分析的难度,但对高手而言,这不足为虑。所以,这里讨论的加密主要是硬件加密。总结起来,主要是以下三大类。

2.1 总线乱置法

总线乱置法通常是将MCU和EPROM之间的数据线和地址线的顺序乱置。总线乱置法通常包括下面几种:

(1)将数据或地址总线的某些线位交换或求反;

(2)将数据或地址总线中的某些线进行异或。例如,D5'=D5,D6'=D5 6等;

(3)把(1)(2)结合起来以构成较复杂的电路;

(4)采用EPROM时,把地址总线(或数据总线)与系统程序的存储器地址(或数据)的对应关系按密钥交换。例如,用一片2764芯片存储密钥,把地址的高8位重新按密钥编码,也就是说,把原程序的页号顺序打乱;

(5)采用GAL器件,利用GAL的加密片来对硬件电路进行加密。

2.2 RAM替代法

用电池对RAM进行掉电数据保护。即先将一系列数据写入RAM并接上电池,然后将其余的芯片插上。这样,当单片微机系统运行后,CPU首先从RAM读出数据,这些数据可以是CPU执行程序的条件判别依据,也可以是CPU将要执行的程序。如果数据正确,整个系统正常运行。反之,系统不能运行。

2.3 利用MCU本身的加密位进行加密

现在很多的MCU都带有加密位,其中最成功的加密方法是总线烧毁法,此法在AT89C51中运行用得最成功。即把单片机数据总线的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程序的正确代码。此外还有破坏EA引脚的方法。

一般来说,上述的加密方法各有优点,但都存在致命的缺点:第一种方法有两个主要缺点:一是密钥放在哪里才能不被破译;二是用仿真器很容易就能把源程序截取出来。第二种方法同样可以用仿真器把数据区调出来,另外还可以把RAM接上电池,取下来放在仿真器上读出来。第三种方法用来加密小程序是成功的,但由于总线已被破坏,因而不能再使用总线来扩展接口芯片和存储器。同时,片内存储器也不再具有重复编程特性。

3 常用解密方法分析

加密和解密长期以来就是一对矛盾。要做好加密,必须先了解现在的解密水平及手段。目前的解密手段大致可分为下面四种。

3.1 恢复加密位法

该方法能破解常规用E2COMS工艺的存储加密位芯片。它包括两个系列: