用于保护外部程序代码的控制系统技术方案

技术编号:3211154 阅读:142 留言:0更新日期:2012-04-11 18:40
一用于保护外部程序代码的控制系统,该系统包括: 一外部ROM,用以存储与该程序相关联的程序代码;以及 一微控制器,用以读取并处理来自外部ROM的程序代码,其中该微处理器包括: 一程序计数器,该程序计数器具有其上存储有程序代码的位置的位置信息,并用于输出地址信号; 一地址加密单元,用以加密地址信号,并将加密的地址输出至外部ROM; 一多重密码分析单元,用以接收来自地址加密单元的加密信息以响应来自外部ROM中的程序代码,利用加密信息来对程序代码的多重密码进行解密,并将程序代码转换为原始程序代码;以及 一指令寄存器,用以通过一内部接口和一总线存储由多重密码分析单元发送来的原始程序代码,并修补原始程序代码以执行该程序, 其中,外部ROM将由多重密码所加密的程序代码存储在一已加密的地址位置中,并将与地址加密单元的已加密地址相对应的多重已加密程序代码发送至多重密码分析单元。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一般的半导体存储器件,尤其是涉及一种用于保护外部程序代码的控制系统
技术介绍
本质上必须通过构成一个需要一外部程序存储器的应用系统来保护程序代码。附图1给出了一个用于保护外部程序代码的传统系统的方框图,该系统包括一个用于存储已加密程序代码的外部只读存储器(ROM)200以及一个用于读取在外部ROM 200中存储的已加密程序代码并通过该已加密程序代码来控制该系统的微控制器100。具体地说,微控制器100包括一个密码分析单元110,一外部ROM接口120,一指令寄存器130,以及一程序计数器140。该密码分析单元110具有加密信息用于对来自外部ROM 200的已加密程序代码进行分析并将其转换为可用的原始程序代码。该外部ROM接口120将来自密码分析单元110的程序代码发送至一内部代码总线125。该指令寄存器130用于存储来自内部代码总线125的程序代码。该程序计数器140具有程序代码的位置信息以从外部ROM 200中读取它们从而输出地址信号ADD[15:0]。例如,当外部ROM 200与微控制器100间的数据比率为8位,且加密密钥为2-0-5-3-7-6-1-4时,以8位为一单元而存储在外部ROM 200中的程序代码按照D2、D0、D5、D3、D7、D6、D1和D4的顺序被重新排序、加密并存储。当将在程序计数器140的地址中存储的程序代码从外部ROM 200发送至微控制器100时,程序代码按照D2、D0、D5、D3、D7、D6、D1和D4的顺序被发送。因此,没有密钥,程序代码不会被解密。因而,程序代码的内容将不会被恢复。当已加密的程序代码被发送时,密码分析单元110利用位重排序逻辑通过其输出端口PO7至PO0而输出来自外部ROM 200的数据(例如,来自输入端口PI7至PI0的数据),该位重排序逻辑用于将已加密的并已重排序的程序代码重新排序为原始程序代码。具体地说,密码分析单元110通过接口PO2输出来自端口PI7的数据D2,通过端口PO0输出来自端口PI6的数据D0,通过端口PO5输出来自端口PI5的数据D5,通过端口PO3输出端口PI4的数据D3,通过端口PO7输出来自端口PI3的数据D7,通过端口PO6输出来自端口PI2的数据D6,通过端口PO1输出来自端口PI1的数据D1,以及通过端口PO4输出来自端口PI0的数据D4。也就是说,密码分析单元110按加密密钥顺序(D2、D0、D5、D3、D7、D6、D1、D4)接收在外部ROM200中存储的程序代码,并将程序代码重新排序成D7、D6、D5、D4、D3、D2、D1、D0的原始代码,并输出经过重新排序的程序代码。从密码分析单元110输出的程序代码通过外部ROM接口120和内部代码总线125而存储在指令寄存器130中,指令寄存器130修补程序代码以执行该程序。然而,外部ROM中的源程序可能仅仅由于内置加密密钥而泄露。通常,在微控制器复位后,一程序计数器被赋值为“0000h”。跳转一程序代码位置的跳转指令存在于ROM地址“0000h”中,以便ROM根据一外部指令而提供程序代码。例如,Intel 8051指令组为“LJMP 1000h”,即跳至地址1000h以执行该程序。当LJMP 1000h转换为16进制代码以写至ROM时,LJMP将被转换为02h,1000h的10将被转换为10h,1000h的00将被转换为00h。因此,02h被写入到ROM的地址0000h,10h被写入到ROM的地址0001h,00h被写入到ROM的地址0002h。通过确定地址0000h的值为02h,加密密钥可能会被侦破。其结果是,该程序代码将可能通过这一加密密钥而被分析,程序也很容易被泄露。
技术实现思路
本专利技术公开了一种通过利用地址加密密钥及多重加密密钥来防止外部ROM的数据被泄露的保护外部程序代码的控制系统。该用于保护外部程序代码的控制系统包括一外部ROM,用以存储与一程序相关联的程序代码;一微控制器,用以读取并处理来自外部ROM的程序代码。该微控制器包括一程序计数器,该程序计数器具有用以存储程序代码的位置信息以输出地址信号;一地址加密单元,用以加密地址信号,并将经过加密的地址输出至外部ROM;一多重密码分析单元,为响应来自外部ROM中程序代码而接收来自地址加密单元的加密信息以利用加密信息对程序代码的多重密码进行解密,并将程序代码转换为原始程序代码;以及一指令寄存器,用以通过一内部接口和总线存储由多重地址分析单元发送的原始程序代码,并修补原始程序代码以执行该程序。外部ROM将已由多重密码所加密的程序代码存储在加密地址位置中,并将与地址加密单元的已加密地址相对应的多重已加密程序代码发送至多重密码分析单元。附图说明以下将通过一些实施例来对本专利技术进行具体描述一揭示其广义的教导。附图标记也用于随后的附图。图1给出了一个用于保护外部程序代码的传统系统的方框图;图2给出了一个通过利用多重加密密钥来保护外部ROM中的程序代码的系统方框图;图3给出了一个通过利用地址加密密钥来保护外部ROM中的程序代码的系统方框图;图4给出了一个通过利用多重加密密钥以及地址加密密钥来保护外部程序代码的系统方框图。具体实施例方式参照随后的附图对用于保护外部代码的系统进行详细的说明。具体地说,图2给出了一个通过利用多重加密密钥来保护外部ROM中的程序代码的系统方框图。参考图2,通过利用多重加密密钥来保护外部ROM中的程序代码的系统包括一外部ROM 400,用以存储多重已加密程序代码,以及一微控制器300,用以从外部ROM 400中读取该多重已加密程序代码并利用多重加密程序代码来控制该系统。微控制器300包括一多重密码分析单元310、一外部ROM接口320、一指令寄存器330以及一程序计数器340。该多重密码分析单元310用以使用多重加密信息对来自外部ROM 400中的多重加密程序代码进行分析并将其转换为可用的原始程序代码。该外部ROM接口320用以将多重密码分析单元310中的程序代码发送至一内部代码总线325。该指令寄存器330用以通过内部总线325来存储程序代码。该程序计数器340具有其上存储有程序代码的外部ROM 400的地址信息以输出地址信号ADD[15:0]。该系统通过利用多重加密密钥来保护外部ROM 400中的程序代码。下面,以8位加密密钥为例进行说明。例如,通过利用来自程序计数器340的地址Add[15:0]中的低3位Add[2:0]而产生8(8=23)位加密密钥。换言之,当在预定位的每低3位地址重复出现时,将使用同样的加密密钥。表1给出了利用任意加密密钥的加密表。换言之,任何值均是可用的。表1 由表1中的加密密钥所重新排序的程序代码被存储在外部ROM 400中。当外部ROM 400中的存储位置地址的低3位Add[2:0]与表1中所示相同时,根据相应的加密密钥来重新排列存储在外部ROM中的程序代码。例如,根据表1的加密密钥,按D7、D1、D2、D3、D4、D5、D6和D0的顺序将程序代码存储在外部ROM 400的地址0000h中,按D1、D0、D2、D6、D4、D5、D3和D7的顺序将程序代码存储在外部ROM 400的地址0001h中,按D4、D1、D7、D3、D0、D本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一用于保护外部程序代码的控制系统,该系统包括一外部ROM,用以存储与该程序相关联的程序代码;以及一微控制器,用以读取并处理来自外部ROM的程序代码,其中该微处理器包括一程序计数器,该程序计数器具有其上存储有程序代码的位置的位置信息,并用于输出地址信号;一地址加密单元,用以加密地址信号,并将加密的地址输出至外部ROM;一多重密码分析单元,用以接收来自地址加密单元的加密信息以响应来自外部ROM中的程序代码,利用加密信息来对程序代码的多重密码进行解密,并将程序代码转换为原始程序代码;以及一指令寄存器,用以通过一内部接口和一总线存储由多重密码分析单元发送来的原始程序代码,并修补原始程序代码以执行该程序,其中,外部ROM将由多重密码所加密的程序代码存储在一已加密的地址位置中,并将与地址加密单元的已加密地址相对应的多重已加密程序代码发送至多重密码分析单元。2.如权利要求1所述的控制系统,其中通过利用与地址加密单元的已加密地址信息相对应的各个地址中的不同位顺序来存储多重已加密外部程序代码。3.如权利要求1所述的控制系统,其中通过利用与地址加密单元的已加密地址信息相对应的地址预定间隔中的相同位顺序来存储多重已加密外部程序代码。4.一用于保护外部程序代码的控制系统,该系统包括一外部ROM,用以存储与该程序相关联的程序代码;一微控制器,用以读取并处理外部ROM中的程序代码,其中,该微处理器包括一程序计数器,该程序计数器具有其上存储有程序代码的位置的位置信息,以输出地址信号;一多重密码分析单元,用以接收来自程序计数器的地址信息以响应来自外部ROM的程序代码,...

【专利技术属性】
技术研发人员:李钟奥
申请(专利权)人:海力士半导体有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利