如何来为MSP430单片机加密?

发布者:廿由人最新更新时间:2016-03-10 来源: eefocus关键字:MSP430  单片机  加密 手机看文章 扫描二维码
随时随地手机看文章
1、为什么要加密,如何加密?

当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的MSP430单片机没有被加密的话,那么您辛辛苦苦的劳动成功就很容易成为您竞争对手的产品了,使用JTAG调试工具FET虽然可以将程序下载到芯片内部,但只有使用专业编程器能够防止程序被窃取。

2、JTAG、BSL、BOOTLOADER、熔丝的区别和关系是什么?

JTAG接口能够访问MSP430单片机内部所有资源,通过JTAG可以对芯片进行程序下载、代码调试、内存修改等等,通过JTAG还能烧断加密熔丝,熔丝一旦被烧断,JTAG接口绝大部分功能失效,就再也不能通过它进行编程了。

BSL接口是利用芯片内部驻留的bootloader程序实现的自编程,通过特定的时序使得CPU进入bootloader代码断,然后利用每个MSP430芯片内部都有的Timer A构成一个软件串口来与上位机通讯,这样可以将代码下载到芯片内部。实现BSL除了JTAG接口的一些引脚外,还需要用到两个TA0功能引脚,因此在设计产品时如果需要加密,则应该考虑将这两个引脚也连出来。

注意:A 、要烧断熔丝(加密)必须使用JTAG接口;B、烧断熔丝后只能通过BSL或者用户代码来实现编程更新。

3、BSL的验证密码是怎么回事?

BSL也能读出芯片内部的代码,这样可以实现编程后的校验等功能。通过BSL擦除所有Flash信息时不需要验证密码,但是要进一步操作,就得输入32字节密码进行验证。BSL的协议规定这32字节密码为芯片FLASH区域的最高32字节,也就是程序的16个中断向量,如果您拥有这段程序的最后32字节,就能通过BSL将芯片内部所有代码读取出来。

4、为什么要使用高级加密?

32字节的密码看似几乎完全没可能使用穷举法来实现破解,但是各位别忘了,msp430的16个中断向量未必每一个都用到了,没用到的中断向量为0xffff,如果您的程序只用到了复位向量,那么破解者只需尝试最多32768次(中断向量为偶数,所以除以2)就能将其破解,另外,如果芯片本身Flash容量较小,比如4K字节,那么破解者只需尝试最多2K次就能将其破解。这对自动操作的计算机来说几乎是一瞬间的事情。那么如果用到的中断向量越多,就越难破解,最好的办法就是将所有未用到的中断向量全部填充为随机数据,这就是“高级加密”。

5、关于TI-TXT文件

TI-TXT文件是TI公司为MSP430单片机定义的一种编程代码格式,其内容为纯文本格式,使用任何文本编辑器都能对其进行阅读,下面是一个这类文件的例子:

@FEFE

B2 40 80 5A 20 01 F2 40 9D 00 90 00 F2 40 2E 00

40 00 F2 D0 80 00 01 00 F2 43 33 00 C2 43 95 00

C2 43 9A 00 F2 D0 20 00 53 00 F2 40 1F 00 52 00

F2 43 91 00 F2 43 92 00 F2 43 93 00 F2 43 94 00

F2 43 95 00 F2 43 96 00 F2 43 97 00 F2 43 98 00

F2 43 99 00 F2 43 9A 00 32 D0 D0 00 FD 3F 31 40

00 03 B0 12 A2 FF 0C 93 18 24 3C 40 00 02 0E 43

30 12 00 00 B0 12 C4 FF 3C 40 00 02 3E 40 FE FE

30 12 00 00 B0 12 A6 FF 21 52 3C 40 00 02 3E 40

FE FE 30 12 00 00 B0 12 A6 FF B0 12 FE FE 30 40

A0 FF FF 3F 1C 43 30 41 0A 12 1D 41 04 00 0F 4C

0A 4D 1D 83 0A 93 05 24 EF 4E 00 00 1F 53 1E 53

F7 3F 3A 41 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D

1D 83 0A 93 04 24 CF 4E 00 00 1F 53 F8 3F 3A 41

30 41

@FFFE

5C FF

q

第一行的@FEFE表示从地址0xFEFE开始,有如下代码。每行为16字节,每个字节使用16进制数表示,每两个字节之间用一个空格格开。内容末尾的@FFFE就是程序的复位向量了,表示程序的入口地址为0xFF5C。最后用一个小写的q字符加换行结束,当然也可以把中断向量的那两行放到最前面去,比如下面这段代码的含义跟上面的是一样的,同样符合规则。

@FFFE

5C FF

@FEFE

B2 40 80 5A 20 01 F2 40 9D 00 90 00 F2 40 2E 00

40 00 F2 D0 80 00 01 00 F2 43 33 00 C2 43 95 00

C2 43 9A 00 F2 D0 20 00 53 00 F2 40 1F 00 52 00

F2 43 91 00 F2 43 92 00 F2 43 93 00 F2 43 94 00

F2 43 95 00 F2 43 96 00 F2 43 97 00 F2 43 98 00

F2 43 99 00 F2 43 9A 00 32 D0 D0 00 FD 3F 31 40

00 03 B0 12 A2 FF 0C 93 18 24 3C 40 00 02 0E 43

30 12 00 00 B0 12 C4 FF 3C 40 00 02 3E 40 FE FE

30 12 00 00 B0 12 A6 FF 21 52 3C 40 00 02 3E 40

FE FE 30 12 00 00 B0 12 A6 FF B0 12 FE FE 30 40

A0 FF FF 3F 1C 43 30 41 0A 12 1D 41 04 00 0F 4C

0A 4D 1D 83 0A 93 05 24 EF 4E 00 00 1F 53 1E 53

F7 3F 3A 41 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D

1D 83 0A 93 04 24 CF 4E 00 00 1F 53 F8 3F 3A 41

30 41

q

手动修改TI-TXT文件来实现高级加密:

下面是使用到中断向量较少的一段代码的中断向量:

@FFE0

10 FF A0 FF

@FFFE

5C FF

它与下面这段代码意义是一样的:

@FFE0

10 FF A0 FF FF FF FF FF FF FF FF FF FF FF FF FF

FF FF FF FF FF FF FF FF FF FF FF FF FF FF 5C FF

这里我们把未用到中断向量改成随机数据,就实现高级加密了,不过注意不要把有效的中断向量也改了哦。

@FFE0

10 FF A0 FF A5 5A 37 21 F3 44 E0 77 9A 00 22 33

44 55 66 77 88 99 AA BB CC DD EE 3E E3 0F 5C FF

关键字:MSP430  单片机  加密 引用地址:如何来为MSP430单片机加密?

上一篇:编写延时函数的简单方法
下一篇:MSP430单片机常见加密总结

推荐阅读最新更新时间:2024-03-16 14:46

集成电路中真正单片化的单片机解析方案
随着集成电路技术和工艺的飞速发展,真正单片化的单片机已经成为主流产品。它的绝在部分资源都在单片机芯片内部;过去需要用外部扩展器件才能实现的功能,如 ROM、RAM、A/D、D/A、数字量I/O、显示驱动等功能,现在在单片机内部就可以完成。单片机真正单片化,省去了大量的硬件开发调试工作,大大地提高了工作效率;系统先天的可靠性、抗干扰能力得到了显著的改善。经实验测试,实现同样功能的系统,采用单片方式比总线扩展方式具有更多的优点。系统不仅功能强、性能可靠、成本降低,而且进一步微型化和便携化。因此,使用电池作为系统的电源也越来越普遍。系统的最小电源消除和最大的电池寿命就成为主要的技术要求。例如1999年的多国仪器仪表展览会上,不止一家国外
[单片机]
集成电路中真正单片化的<font color='red'>单片机</font>解析方案
CISC 和 RISC 微控制器
微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。 微控制器可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机;根据存储器结构可分为Harvard结构和Von Neumann结构;根据内嵌程序存储器的类别可分为OTP、掩膜、EPROM/EEPROM和闪存Flash;根据指令结构又可分为CISC(Complex Instruction
[应用]
ST:MCU四大设计要素 高效能与低功耗是关键
在物联网的应用环境中,许多设备都在联网的同时,还力求要有更好的运算能力。特别是每天与人互动的智能型电子装置,在要求运算表现的同时,还必须维持最低功耗,以达到每天与人的互动中,能拥有更长的电池续航时间。 MCU内建绘图功能已属必要,图为采用ST新款MCU的开发板,可流畅处理视讯画面。 也因此,身为这些智能联网装置运算核心的MCU,也必须在运算效能与功耗表现两者之间,取得最佳的平衡点。 特别是目前普遍在市场上可见到的健康手环、智能手表、小型医疗设备、智能电表、智能工业传感器等各种产品的中央控制器,这些应用设备皆需要复杂功能、快速响应、最短电池充电所必需之停机时间,而这些需求, 使得超高效同时具备低功耗的MCU,成为了产品成功与否的关
[半导体设计/制造]
51单片机基于 Proteus 制作 10 以内加减的计算器
51 单片机,本质上是微控制器,以逻辑运算见长。 用它来设计计算器 ? 不知道谁想出来的这样的题目,思路明显就是跑偏了,呵呵 特别是后一个的题目,不仅要求能加减乘除,竟然还要求选用数码管来显示。 如果是选用 LCD1602 液晶屏来显示,勉强还算对路。 数码管,只能显示出来减号,让它显示加号、乘号、除号,都是不可能的。 一些网友为这个题目提供了答案,可是没有一个像样的,呵呵 提问者也明显不满意,又反复提问了好几次。 前一个设计计算器的题目,提问者提供了部分程序和电路,要求如下: 老师要求只要3个数码管,完成10以内加减。 第一个数码管表示第1个数字, 第二个数码管表示符号(+或-,用A-F任意表示), 第三个数码管
[单片机]
51<font color='red'>单片机</font>基于 Proteus 制作 10 以内加减的计算器
[单片机] md5签名算法
#include string.h #include md5.h #define F(x, y, z) ((x & y) | (~x & z)) #define G(x, y, z) ((x & z) | (y & ~z)) #define H(x, y, z) (x ^ y ^ z) #define I(x, y, z) (y ^ (x | ~z)) #define ROTATE_LEFT(x, n) ((x n) | (x (32 - n))) #define FF(a, b, c, d, x, s, ac) { a += F(b, c, d) + x + ac;
[单片机]
单片机入门程序一
;*****************************************; ;实验名称: 闪烁灯实验 ; ;作者: 龙谊 ; ;版本: VER 1.0 ; ;说明: 初学者学习单片机编程入门实验 ; ;修改: 无 ; ;编程语言: 汇编语言 ; ;编程日期: 2010-04-12 ; ;********************
[单片机]
初学MSP430——按键中断控制小灯翻转
** /* * Copyright (c)... * All rights reserved. * * 文件名称:main.c * 文件标识:NO * 硬件描述:开发板上P1.3接按键,P1.0接了LED(用跳线帽连接)。 * 功能描述:每次按下按键后,控制P1.0、P1.6 LED闪烁情况 * * 当前版本:V1.0 * 作者:输入作者(或修改者)名字 * 完成日期:2015年2月6日 * * 取代版本:NO * 原作者:TI * 完成日期:2013-4-8 */ #include MSP430G2553.h //-----在main()函数前提前申明子函数----- void P1_IODect();
[单片机]
微控制器的FSMC到底是咋回事?(下)
摘要:上一篇文章我们具体讲解了FSMC的原理配置,这一章主要是关于使用FSMC的SRAM初始化流程,以及使用STM32CubeMX对FSMC进行配置。 一、SRAM初始化流程 通过上面的讲解,通过对 FSMC 相关的寄存器的描述,大家对 FSMC 的原理有了一个初步的认识,如果还不熟悉的朋友,请一定要搜索网络资料理解FSMC的原理。只有理解了原理,使用库函数才可以得心应手。那么在库函数中是怎么实现FSMC的配置的呢?FSMC_BCRx,FSMC_BTRx 寄存器在库函数是通过什么函数来配置的呢?下面我们来讲解一下 FSMC 相关的库函数: 1.1 使能FSMC时钟 要使用FSMC,当然首先得开启其时钟。然后需要把
[单片机]
<font color='red'>微控制器</font>的FSMC到底是咋回事?(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved