您的位置 首页 五金机械配件

单片机加密

单片机加密   摘要:单片机系统产品的加密和解密技术永远是一?个矛盾的统一体。然而,?为了更好的保护好自己的单…

单片机加密

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

关键词:单?片机系统 动态加密技术 FPGA

1 概述

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

  单片机系统一般都采用MCU+EPROM模式。通常EPRO≌M都?是透明的,而采用的MCU一般有Intel公司的MCS51、52系列,Zi?log公司的Z80、Z?84系列、Motorola公司的MC68HC系?列以及Microc?h?ip公司的PIC16C系列等。m虽然㏄有许多的?¬MCU都带有加密位,但现在已大多?能破解。因此,单靠MCU本身加?密位来进1行加密已极不可靠的。

2 常用加密技⊕术?分析

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

2.1 总线乱置法单片机加密

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

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

  (2)将数据或地址∮总线中的某些线进行异或。例如,D5’=D5,D?6’=D5+6等;

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

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

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

?

2.2 RAM替代法

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

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

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

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

3 常用解密方法分析

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

3.1 恢复加密位法?

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

  第一是?MCU系列,例如MCS51系列(包括89?C、97C、W78E/?77E系列等)、Z84Em系列、?PIC16C/12C系列、MC68HC系列等。

  第二是PLD,如CPLD的GAL,PALCE的1?6V8、20V8、2$2V10,Altera的EPM70?∞32、EM?P7064、EMP7128,Lattice的LSP1016、LSP1024和Atmel的ATV750/2?500等。

3.2 逻辑分析法

  该﹣方法主要采用示波器、逻辑分析仪和MDU解密?仪等℡分析工具分配一些逻辑较简单的可编程器件的逻辑功能。

3.3 仿真器软£件跟踪分析法

  此方法适用于?破解一些未带加密功能的单片机系统(如8031,Z8¢0等系统),而对于有加密功能的单片机系统,则可先破解其单片机的源§程序,然后进行仿真分析。

3.4 芯<片揭⊥盖分析?法

  现在市场上十万门以下的芯片多功能通过揭盖来进行逆>向分析?,但此破解法费用甚高。此法适用于破解专门的﹥ASIC芯片。

  综上所述,一般芯片及常规加密手段很难实现有效加密。严格来说,要做到绝对的加密是不?可能的。㎞选好≈适当的芯片,采用合适的加密技术,使仿制者面对需付高昂的解密费而却步,那就意味着加密工作的成功。

4 动态№加密技术原理

?

  动态加密技术的?主要思路是:在程序看到的是虚地址,而虚地?㎜址?对应的存储器㎡的实地址由CPU?程序运行时通过FPGA赋予。其原理如图1所示。

  举例说明≡,若调用子程序CAL?L Funct﹢ion时,对应于″同一个子程序调用,第一次调用的是真正的Function,绝对地址可能在1000H。而在第二次调用Func﹣tion时,实地址可能是2000H,功能可?能根本与Fu¥n?ction不相同,这样,只要在调÷用前?把实地址通过软件置进去?就可以了。因∴∽此可以通过℃连续表面调用同一个子程序Function,而实际则是分≠别调用几个不同的子程序来实现加密。至于虚地址映射到何处的实£地址,可由编程者自己安排,故只需在调用前输出实地址的对应关系即可。这种软件与硬件相结合、虚地址与实?地≧址相结合的加密方法使破解者即使获得源程序也极难分析出对应关系。

  但这种动态加密技术也有漏动,如很难对付仿真器单步跟踪?分析?,因此,须做进一步个性。改进的??方法之一是在FPGA内设计一个计数器,?并由CPU定时清零,否*则一旦超过时限,FPGA将停止一切操作而使CPU无法运行,就更不用∣说仿真了。改进方法之二是在FPGA内做一密,并由?CPU运?行足?够长的时间后去?访问FPGA,以读取密码并比较,?若出错则由C?PU破坏主内?存RAM的内容,从而导致所有结果出错。用这种方法足可以对付逻辑分析°仪的跟踪分析。

  对于数据加密,可采用与密钥逻辑异?或的方法。对于这种?方法密钥以及动◎态加=密技术的逻辑?函数都必须放在一个较难破译的芯片上 ?。鉴于对芯片解密?技术的了解,笔者推荐使用A?ctel公司生产的42MX系列的FPGA来进行一√次性编程,该芯片不可读?出码点文件¥,市场上无法破解。同时,其资源也极为丰富?,设计工具完整,∏且用VHDL语言极易实现?各种?功能。

5 结束语

  随着单片机系统越来越广泛的,其安全保密问题也越来·越受到重视。密码学为其提供了正确的%理论3基础。同时,性能优良的硬件是实现其@安全保密的物质基础。二者缺一不可。加%密解密长期以来就是一?对矛盾,解?密技?术随着科学技术的发展不断创新×。因此,只有对解密∷技术有♀了深刻的了解,?才能做好加密工作,从在则确?保产品的安全。


关于更多单片机加密内容,可以收藏本网页。凯莉费雪 单片机系统的动态加密技术

单片机加密单片机加密
本文来自网络,不代表天津五金网立场,转载请注明出处:http://www.mgnqyz.com/mgnqyz/881.html

作者: mgnqyz

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部