基于非挥发性存储器实现mcu电路加密的方法

文档序号:9579548阅读:364来源:国知局
基于非挥发性存储器实现mcu电路加密的方法
【技术领域】
[0001]本发明涉及信息加密技术领域,尤其涉及MCU电路加密技术领域,具体是指一种基于非挥发性存储器实现MCU电路加密的方法。
【背景技术】
[0002]在嵌入式应用领域,目前产品设计者面临的最大问题就是程序被抄袭和破解,在激烈竞争的电子产品行业,很多公司大概都有这样的经历,自己费尽心血设计的产品,投放市场不久,就被竞争对手从硬件到软件原封不动地被克隆,换了一个外壳投放市场。还有一些公司在委托生产厂商进行产品生产时,被生产厂商额外地生产出大量的相同产品,换个品牌投放市场,不但扰乱了市场秩序,还严重地损害了产品设计者的利益。在行业竞争日益激烈的今天,如何保护自己的产品设计方案以提高产品的市场占有率,如何在产品技术转让时有一个理想的、可以量化的计量标准已经成为很多公司和产品设计者日益关切的问题。
[0003]现有技术主要有两种:
[0004]一是传统加密方式,通过对数据输出通道加密,实现芯片数据保护。实现方式简单,加密由硬件实现,无需软件配合,成本低,操作简单。但容易通过方向分析后被破解。
[0005]二是借助外部加密芯片,通过认证,保存关键数据等手段实现加密,实现方式复杂,加密需要软硬件配合,操作复杂,不容易被破解。但成本高。
[0006]从现有的芯片加密技术来看,主要分为利用芯片自带的加密功能及使用专用的加密芯片实现加密。
[0007]芯片自带的加密功能往往只是通过自带的加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机芯片内的程序,从而实现芯片编程模式的加密。
[0008]使用加密芯片,主要通过ID号认证、密钥认证、随机数加密认证,关键的代码和数据保护等的方式对芯片实现加密。
[0009]前者加密便捷,成本低,但是容易被破解;后者加密较为复杂,破解难度大,但成本高。

【发明内容】

[0010]本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现在基本无需增加MCU电路成本的前提下、改善了带非挥发性存储器的MCU的加密性能、使得MCU获得了类似于加密芯片的加密效果、使系统的加密性能及成本得到有效平衡、具有更广泛的应用范围的基于非挥发性存储器实现MCU电路加密的方法。
[0011 ] 为了实现上述目的,本发明的基于非挥发性存储器实现MCU电路加密的方法具有如下构成:
[0012]该基于非挥发性存储器实现MCU电路加密的方法,其主要特点是,所述的方法包括以下步骤:
[0013](I)在向所述的非挥发性存储器的用户配置区载入系统配置信息时,将客户专属ID载入所述的用户配置区,所述的客户专属ID包括程序入口地址和加密计数器信息;
[0014](2)根据所述的程序入口地址对程序复位向量进行加密;
[0015](3)根据所述的加密计数器信息对数据总线进行加密。
[0016]较佳地,所述的加密计数器信息包括加密计数器的配置-指针映射关系、初值和步进信息。
[0017]更佳地,所述的根据所述的加密计数器信息对数据总线进行加密,具体为:
[0018]根据所述的加密计数器信息,在所述的加密计数器计数同时更新所述的MCU电路的数据总线。
[0019]较佳地,所述的根据所述的程序入口地址对程序复位向量进行加密,具体为:
[0020]根据所述的程序入口地址配置所述的非挥发性存储器的程序区中的程序计数器。
[0021]较佳地,所述的步骤(3)之后,还包括:
[0022](4)重新在所述的用户配置区载入更新的客户专属ID并根据更新后的客户专属ID重新配置程序入口地址和加密计数器。
[0023]较佳地,所述的非挥发性存储器为一次编程只读存储器、多次编程只读存储器、Flash存储器或电可擦只读存储器。
[0024]采用了该发明中的基于非挥发性存储器实现MCU电路加密的方法,具有如下有益效果:
[0025](I)本发明提出一种带非挥发性存储器的MCU加密方式,通过引入客户专属ID,改良烧录方式,加密计数器及复位向量可预设置的概念,使得现有MCU能依靠自身硬件配置获得改善的加密性能,在基本无需增加MCU电路成本的前提下,改善了带非挥发性存储器的MCU的加密性能,使得MCU获得了类似于加密芯片的加密效果,使系统的加密性能及成本得到有效平衡。
[0026](2)本发明的方法同样可应用于其他带非挥发性存储器的MCU加密设计中,如MTPROM(Mult1-time programmable read-only memory,多次编程只读存储器)、Flash、EEPROM(ElectricalIy erasable programmable read-only memory,电可擦只读存储器)等,具有更广泛的应用范围。
【附图说明】
[0027]图1为本发明的基于非挥发性存储器实现MCU电路加密的方法的流程图。
[0028]图2为0TPR0M的内部区域划分示意图。
[0029]图3为本发明的客户专属ID烧录方式的示意图。
[0030]图4为本发明的复位值预设实现逻辑的示意图。
[0031]图5为本发明的加密计数器步进值预设实现逻辑的示意图。
[0032]图6为本发明的加密计数器地址预设实现逻辑的示意图。
[0033]图7为本发明的加密过程实现逻辑示意图。
[0034]图8为本发明的电路复位时序的示意图。
【具体实施方式】
[0035]为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0036]如何使电路的加密性能及加密成本得到有效平衡,本文以带OTPROM (One t imeprogrammable read-only memory,一次编程只读存储器)的MCU(Micro controller unit,微控制器)为例,提出了一带非挥发性MCU的加密方式,旨在增加客户程序被读取后的破译难度,只需在传统加密方式基础上做简单修改,基本不会影响电路成本的前提下,就可以大幅提升系统的加密程度,当程序破解难度及开销超过了程序开发成本,那么程序破解将失去意义。
[0037]本文以带0TPR0M的MCU为例,提出的加密技术,通过增加配置客户专属ID,来实现对系统复位向量入口及数据总线(通过加密计数器影响)的控制,从而增加程序破解的难度,相应实现系统加密性能的提升。在阐述加密实现过程前,需要对以下概念有所理解:
[0038]OTP架构,客户专属ID,复位向量,程序计数器,加密计数器。
[0039]1.10TP 架构
[0040]如图2所示,现有的OTP基本上都可以分为2个区域:
[0041]系统配置区域:用于存储系统初始化信息或客户信息,一般此区间的信息是不做保护的。
[0042]程序区域:用于存储客户程序,一般此区间的信息是需要做保护的。
[0043]一般OTP的加密字节存储于系统配置区域,加密后,程序区域无法通过烧录器直接访问,但一般会预留系统配置预留区域的访问权限,客户可使用烧录器来获取系统配置预留区域信息,从而判断当前加密芯片的方案。
[0044]本文介绍的加密方式,涉及到客户专属ID的概念,此ID就是存储在系统配置区域的空闲区间。
[0045]1.2客户专属ID
[0046]本文提出的客户专属ID有以下特征:
[0047](I)客户专属ID存储于OTP系统配置预留区域即非挥发性存储器的用户配置区;
[0048](2)客户专属ID具有唯一性,任何两个客户的专属ID都不一致,不会重复;
[0049](3)客户专属ID保密性,只有客户及电路设计方知道对应ID信息;
[0050](4)客户专属ID形成方式的特殊性,与其他区域烧录方式不同,只有在圆片测试阶段才可以形成,一经形成确认后不可再次修改;
[0051](5)客户专属ID访问方式的特殊性,无法通过普通的烧录模式访问,只有在圆片测试阶段可以访问,一经加密无法通过烧录模式直接访问,即使未加密,也无法通过烧录器直接访问。如图3所示。
[0052]客户专属ID的形成方式的主体烧录部分与程序区及系统配置区域一致,只是在区域选择控制机制的基础上增加了额外的判断时序,判断时序需要使用专用引脚打入,(一般不封装出来)当时序匹配且此区域处于未加密状态,则可以正常写入客户专属ID内容;如时序未匹配,或客户专属ID区域已处于加密状态,系统将无法寻址到该区域,从而无法实现编程器访问动作。
[0053]所以当电路硬封后,由于不封装客户专属ID烧录专用引脚,使用烧录器无法打入匹配时序,从而无法访问;
[0054]若电路封出此引脚,由于一般圆片出厂前已由客户指定了对应的客户专属ID,且处于加密状态,也无法使用编程器实现对该区域的访问。
[0055]解密时序与客户ID有关联,不同的客户ID解密时序不同。假定反向分析芯片后获取解密时序方式,但由于解密时序与客户ID有关联,一客户ID为4*16bit为例,枚举法反向分析需要进行264枚举,若单次枚举时间为Iu计算,完成全枚举需要历时约58万年,基本上属于不
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1