0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机4大硬件加密方法解析

5RJg_mcuworld 来源:YXQ 2019-08-06 15:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们知道,研究一套可行实用的单片机系统肯定要花大量的人力和物力。为了使所研制的系统不被别人所剽窃,保护知识产权,通常在单片机系统设计时,都要进行加密设计。加密设计一般有硬件加密和软件加密。而硬件加密的方法很多,可以采用PAL、GAL等芯片将CPUROM之间的地址线或数据线按一定密钥规律进行交换,这样就把原程序页号打乱,起到加密作用。但这里探讨的是几种简单的硬件加密技术。

1.硬件加密设计步骤

1.1 根据具体项目和任务,设计目标程序并在未加密情况下调试成功。

1.2 设计硬件加密电路。

1.3 对调试好的软件按硬件电路进行加密翻译,不同的硬件加密电路翻译出来的软件不同。

1.4 将加密翻译后的软件写进EPROM。

这样,剽窃者将得到的EPROM里的程序进行反汇编后,不在是原来的程序,甚至是逻辑关系混乱毫无价值的代码。从而保护了原设计者的利益。

2. 硬件加密电路的设计

为方便说明硬件加密原理和软件加密翻译方法,先列举一例题,以下论述均以该例子为研究对象。

例1 比较两个无符号数的大小,设两个无符号数事先分别存在RAM里的30H和31H单元,若(30H)里的数大,则累加器的A.0~A.3为高电平;若(31H)里的数大,则累加器的A.4~A.7为高电平;若两数相等,则累加器的A.2~A.5为高电平。试设计汇编程序实现。

该例题所设计的原程序、机器代码和存储单元如下:

2.1 硬件加密方法一

将数据线中某几根线换位,如图1所示。将图中数据线D1、D2交叉,这样单片机系统执行的实际代码就与EPROM中存储的代码完全不同了。若将例1的程序存入EPROM ,那么存入的实际代码就要做相应的加密翻译,以使单片机从EPROM中所取的代码正确。

加密翻译后在EPROM中实际存的代码和反汇编的结果如下:

P2.0~P2.4P0.3~P0.7P0.2P0.1P0.0ALEPSENCPU8031

74LS373

A8~A12A3~A7A2A1A0 2764OE CED3~D7D2D1

2.2 硬件加密方法二:

将CPU和EPROM间的地址换位,如图2所示,将地址线A0、A1换位交叉,这样单片机系统程序存在EPROM中的代码不变,但存储顺序完全打乱。若将例1的程序存入EPROM时,为保证单片机的正常工作,要将存储代码的顺序按硬件电路要求做相应的改变,即进行加密翻译,加密翻译后EPROM中存储的实际代码和反汇编的结果如下:

从反汇编的结果看,既是剽窃者取出EPROM里的程序代码,反汇编后也得不到原来的程序了。

2.3 硬件加密方法三

将CPU和EPROM间的数据线某些位经过三态反相器求反。如图3所示,将数据线D0、D1分别求反后送CPU,这样存在EPROM里的程序和原来的程序就不同了。若将例1的程序按硬件加密电路进行软件加密翻译后,存在EPROM里的实际代码和反汇编后结果如下:

P2.0~P2.4P0.2~P0.7P0.1P0.0 ALEPSENCPU8031

74LS373

A8~A12A2~A7A1A0 2764OE CE D2~D7D1D0

可见经硬件加密后,存在EPROM里的代码与原来代码完全不同。

2.4 硬件加密方法四

将CPU和EPROM间的地址线的某些位求反。如图4所示,将地址线A0、A1求反,这样存在EPROM里的代码内容不变,但代码的存储顺序要按硬件电路相应改变。若仍以例1为例,将该程序代码加密后,存在EPROM里的代码和反汇编后的结果如下:

A8~A12A2~A7A1A0OE CE2764D2~D7D1D0

P2.0~P2.4P0.2~P0.7P0.1P0.0 ALEPSENCPU8031

74LS373

可见将EPROM里的代码反汇编后,仍得不到原程序。

总结

坚持不懈的尝试突破保护机制的破解团体和不断引入新的安全防范方案的制造商之间的斗争是没有尽头的。 “道高一尺,魔高一丈”,又或是“邪不压正”,将不停的在两派之间上演。其实软件加密原理很简单,就是利用单片机IC厂商,为每片出厂芯片的某一特殊全球唯一识别参数,即ID号做为密钥,对程序进行加密。如果以本ID号的程序烧到另一ID号的芯片中,程序中经软件加密过的部分的功能将完全失效。

要解密上述经软件加密过的程序,唯一的途径,就是反汇编程序,分析单片机反汇编后的汇编程序,将程序中软件加密相关的密钥去掉,然后编译得到新的程序。这项工作需要的不只是耐心,更多的是专业知识与经验。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45344

    浏览量

    663784
  • 硬件加密
    +关注

    关注

    0

    文章

    6

    浏览量

    9310

原文标题:这4大硬件加密方法,在单片机中你会用了吗?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机硬件设计原则,抗干扰常用方法

    、SRAM、A/D、I/O、两个串口、看门狗、上电复位电路等等。 单片机系统硬件抗干扰常用方法实践 影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并
    发表于 12-09 06:30

    单片机系统硬件的调试方法

    单片机的系统硬件调试,通常有静态调试和动态调试两种不同,前者是通过目测、万能表测试、加电检查、联机检查的方法,在加电于样机之前.对样机的型号规格,以及安装要求等进行核对,同时检查 电源 系统.防止
    发表于 12-03 06:10

    一文解析单片机晶振脚的原理

    晶振是重要元器件之一,对于晶振,小编于往期晶振相关文章中有过诸多阐述。本文中,小编将对单片机晶振脚的原理加以解析,以帮助大家更好理解晶振。晶振电路需要2个10-30pF级别的电容作为起振用途
    的头像 发表于 11-21 15:37 3267次阅读
    一文<b class='flag-5'>解析</b><b class='flag-5'>单片机</b>晶振脚的原理

    第1章 如何学习单片机

      在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的。本章节讲到的学习单片机方法,都是作者学习单片机的无数经验和教训总结出来的瑰宝。通过作者前面的披荆斩棘,开辟了道路
    的头像 发表于 10-10 10:32 238次阅读

    浮思特 | ABOV 32位单片机的技术演进与行业应用解析

    随着科技的不断进步,单片机(MCU)已经从最初的8位和16位时代,逐步迈向了32位的时代。32位单片机的高性能和广泛适应性,使其成为未来嵌入式系统和智能硬件的核心驱动力量。特别是在家电、工业控制和物
    的头像 发表于 09-01 09:56 674次阅读
    浮思特 | ABOV 32位<b class='flag-5'>单片机</b>的技术演进与行业应用<b class='flag-5'>解析</b>

    如何使用单片机直接输出4-20mA?GP210高集成方案。

    如何使用单片机直接输出4-20mA?GP210高集成方案。
    的头像 发表于 08-15 17:30 926次阅读
    如何使用<b class='flag-5'>单片机</b>直接输出<b class='flag-5'>4</b>-20mA?GP210高集成方案。

    什么单片机比较耐用

            在工业控制、户外设备、医疗仪器等场景中,单片机的耐用性直接决定了设备的稳定运行与维护成本。耐用的单片机通常具备宽温工作范围、强抗干扰能力、稳定的电源适应性和长寿命的硬件设计。深圳市安
    的头像 发表于 07-31 13:48 561次阅读

    单片机的储存优点是什么

    场景。深圳市安凯星科技有限公司在单片机应用开发中,充分利用这些储存优点,为拓邦、朗科、安徽龙多等客户打造了高效稳定的解决方案。 1.集成度高,节省硬件空间 单片机将程序存储器(ROM)、数据存储器(RAM)与 CPU、I/O 接
    的头像 发表于 07-31 10:09 499次阅读

    单片机怎么控制转速

           在工业自动化、智能家居、机器人等领域,单片机控制电机转速是实现精准运动控制的核心技术。通过结合硬件电路设计与软件算法优化,单片机可根据不同应用场景灵活调整电机转速。以下从控制方法
    的头像 发表于 07-25 13:58 660次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 487次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 446次阅读

    单片机怎么烧程序

    骤,才能让单片机发挥作用。 烧程序前的准备工作 单片机烧程序前,需要做好硬件和软件两方面的准备。硬件方面,核心设备包括目标单片机、编程器(或
    的头像 发表于 07-23 11:47 661次阅读

    STC15W4K32S4单片机原理图

    STC15W4K32S4 单片机原理图
    发表于 04-10 17:51 9次下载

    单片机科普总结,建议收藏!

    来说,单片机可能是一个既熟悉又陌生的概念。熟悉,是因为我们在日常生活中经常接触到单片机控制的设备,比如微波炉、空调、智能手表;陌生,则是因为单片机涉及硬件、软件、通
    的头像 发表于 04-07 11:58 4501次阅读
    <b class='flag-5'>单片机</b>科普总结,建议收藏!

    单片机Debug与仿真区别

    单片机的开发是一个复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,开发者需要使用Debug和仿真技术来检测和修正代码中的错误。 Debug(调试) Debug
    的头像 发表于 12-19 09:47 1424次阅读