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

文档序号:9579548阅读:来源:国知局
可破解范畴。
[0056]版图设计中将数据读出关键路径设计走线使用底层铝线,增加FIB反向分析复杂程度及难度。
[0057](6)客户专属ID功能的特殊性:可以决定程序计数器的初值即复位值;决定系统加密计数器的初值即复位值;决定系统加密计数器的步进值(功能示意);决定系统加密计数器的访问地址。
[0058]1.3复位向量
[0059]是指系统复位后,程序入口地址,一般对于确定型号的电路,其复位向量都是固定的。本文设计的改良加密方式,可以通过客户专属ID来配置系统复位后的程序入口位置,即对于同一型号的电路可由客户决定程序入口位置,对于程序破解来说,难度大幅上升。
[0060]1.4程序计数器:
[0061]OTP的地址发生器,一般对于一个确定型号的OTP电路,其初始地址是确定的(复位向量确定);其本质是一个计数器,在普通指令执行过程中,配合OTP顺序执行指令,在跳转类指令执行过程中,配合完成对应地址的调整。本文提及的程序计数器,其初值由客户专属ID决定,其实现方式如下:
[0062]客户专属ID决定图4中PRE_SET〈N: 0>,在系统复位期间SYSRST = L,实现初值赋值,系统复位结束后,SYSRST = H,计数器初值即保持为PRE_SET〈N:0>,从而实现客户专属ID决定系统复位向量。
[0063]1.5系统加密计数器:
[0064]本文引入的加密计数器其本质是一个计数器,与一般计数器不同的是,其初始值由客户专属ID的对应内容决定,其步进值也由客户专属ID的对应内容决定,其物理地址由客户专属ID决定,其计数时钟信号通过程序访问加密计数器提供,计数器计数同时,更新系统数据总线;
[0065]实现方式:
[0066]1.5.1初值决定方式实现,同复位向量实现方式,不再赘述;
[0067]1.5.2步进实现方式:
[0068]如图5所示,计数器时钟由计数器读信号提供,计数同时完成计数器数值到数据总线的传递动作,计数步进由STEP〈N:0>决定,可通过配置ID信息实现步进2/4/8...如STEP<N:0>保持为I,则计数器的步进为1,如STEP〈N:0>设置为2,则计数器的步进为2,如STEP<N:0>设置为4,则计数器的步进为4,依次类推。
[0069]1.5.3寻址及计数时钟信号形成方式:如图6所示。
[0070]本文提出的特殊计数器的指针由客户专属ID决定,形成方式如下:
[0071]TCAD<N:0>是客户专属ID所决定的加密计数器的物理地址,本设计采用的物理地址映射到通用RAM地址区域,当RAMAD〈N:0>寻址到与TCAD〈N:0>相对应的地址时,系统形成WR_RD_CLK(加密计数器读写时钟)及RAM读写屏蔽信号,
[0072]如:当客户专属ID将特殊计数器映射到0x10地址,则所有对RAM,0x10的读写操作实际是对特殊计数器的读写操作,每次访问RAM 0x10得到的结果会产生相应变化(更新计数器数值)。
[0073]1.6加密实现:如图1所示为本发明的实现MCU电路加密的流程图。如图7所示为加密实现逻辑。
[0074]1.6.1计数实现
[0075]本文阐述的改良的加密方式旨在通过定义客户专属ID,从而实现对系统复位向量及数据总线的影响,增加程序反向分析的难度,来实现系统加密性能的提升。
[0076]本设计在系统载入配置信息(OPT1N)的过程中,增加了对客户专属ID的载入动作,客户专属ID载入后,将直接影响程序指针(PC)的初值发生相应变化(变为PCX),系统复位结束后(SYSRST = H),将首先从PCX取指执行,如图8所示。
[0077]另外系统中加密计数器的所有配置一指针映射关系,初值,及步进信息一都在客户专属ID载入的同时自动进行了相应的配置,可在程序开发过程中可频繁使用计数器进行数据传递,以增程序的破译难度:
[0078]关于加密计数器的访问,从寻址实现来看,本设计并没有指定特殊地址作为计数器的访问指针。
[0079]如果采用特殊地址寻址该计数器,在程序破解后,可以较为方便的判断何处进行了相关加密数据的调用,只要设法绕开加密即可,破解起来较为方便;
[0080]本文提出的加密方式,对加密计数器的地址选择了通用数据存取单元RAM中的任一地址,而此地址是由客户专属ID决定,仅当访问与ID对应的RAM单元时,才可以寻址到此计数器,而此时对应的RAM中的数据将被屏蔽;由于此指针的地址是RAM中任一地址,迷惑性非常大,在得知客户专属ID信息前,破解程序难度很大。
[0081]另外其初值及步进值可通过客户专属ID配置,不确定性较大。也增加了程序破解的难度。
[0082]1.6.2 应用
[0083]由于客户专属ID的不同,决定了程序的入口是各不相同的,如果方案商A通过某种途径得到了方案商B的方案,由于方案商A无法判断方案商B的客户专属ID信息,即使方案商A将对应程序复制到同型号电路中,但由于客户专属ID信息的差异,方案无法简单复制。
[0084]同时,为避免其他方案商通过芯片分析手段得知了某方案商的客户专属ID信息后长期反向破解程序,各方案商还可以定期更新客户专属ID信息,避免类似情况出现。
[0085]采用了该发明中的基于非挥发性存储器实现MCU电路加密的方法,具有如下有益效果:
[0086](I)本发明提出一种带非挥发性存储器的MCU加密方式,通过引入客户专属ID,改良烧录方式,加密计数器及复位向量可预设置的概念,使得现有MCU能依靠自身硬件配置获得改善的加密性能,在基本无需增加MCU电路成本的前提下,改善了带非挥发性存储器的MCU的加密性能,使得MCU获得了类似于加密芯片的加密效果,使系统的加密性能及成本得到有效平衡。
[0087](2)本发明的方法同样可应用于其他带非挥发性存储器的MCU加密设计中,如MTPROM(Mut1-time programmable read-only memory,多次编程只读存储器)、Flash、EEPROM(ElectricalIy erasable programmable read-only memory,电可擦只读存储器)等,具有更广泛的应用范围。
[0088]在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
【主权项】
1.一种基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的方法包括以下步骤: (1)在向所述的非挥发性存储器的用户配置区载入系统配置信息时,将客户专属ID载入所述的用户配置区,所述的客户专属ID包括程序入口地址和加密计数器信息; (2)根据所述的程序入口地址对程序复位向量进行加密; (3)根据所述的加密计数器信息对数据总线进行加密。2.根据权利要求1所述的基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的加密计数器信息包括加密计数器的配置-指针映射关系、初值和步进信息。3.根据权利要求2所述的基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的根据所述的加密计数器信息对数据总线进行加密,具体为: 根据所述的加密计数器信息,在所述的加密计数器计数同时更新所述的MCU电路的数据总线。4.根据权利要求1所述的基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的根据所述的程序入口地址对程序复位向量进行加密,具体为: 根据所述的程序入口地址配置所述的非挥发性存储器的程序区中的程序计数器。5.根据权利要求1所述的基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的步骤(3)之后,还包括: (4)重新在所述的用户配置区载入更新的客户专属ID并根据更新后的客户专属ID重新配置程序入口地址和加密计数器。6.根据权利要求1所述的基于非挥发性存储器实现MCU电路加密的方法,其特征在于,所述的非挥发性存储器为一次编程只读存储器、多次编程只读存储器、Flash存储器或电可擦只读存储器。
【专利摘要】本发明涉及一种基于非挥发性存储器实现MCU电路加密的方法,其中包括在向所述的非挥发性存储器的用户配置区载入系统配置信息时,将客户专属ID载入所述的用户配置区,所述的客户专属ID包括程序入口地址和加密计数器信息;根据所述的程序入口地址对程序复位向量进行加密;根据所述的加密计数器信息对数据总线进行加密。采用该种基于非挥发性存储器实现MCU电路加密的方法,通过引入客户专属ID,使得现有MCU能依靠自身硬件配置获得改善的加密性能,在基本无需增加MCU电路成本的前提下,改善了带非挥发性存储器的MCU的加密性能,使得MCU获得了类似于加密芯片的加密效果,使系统的加密性能及成本得到有效平衡,具有更广泛的应用范围。
【IPC分类】G06F21/78, G06F21/70, G06F21/60
【公开号】CN105335660
【申请号】CN201410370996
【发明人】谢兴华
【申请人】无锡华润矽科微电子有限公司
【公开日】2016年2月17日
【申请日】2014年7月30日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1