CN103745140B - 微控制器及其他嵌入式系统程序代码保护方法和装置 - Google Patents
微控制器及其他嵌入式系统程序代码保护方法和装置 Download PDFInfo
- Publication number
- CN103745140B CN103745140B CN201410046230.1A CN201410046230A CN103745140B CN 103745140 B CN103745140 B CN 103745140B CN 201410046230 A CN201410046230 A CN 201410046230A CN 103745140 B CN103745140 B CN 103745140B
- Authority
- CN
- China
- Prior art keywords
- program
- key
- subregion
- sectioning
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000004224 protection Effects 0.000 title claims abstract description 16
- 230000013011 mating Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 4
- 238000005192 partition Methods 0.000 abstract 1
- 238000011161 development Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 230000006872 improvement Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
本发明公开了一种微控制器及其他嵌入式系统程序代码保护方法,包括以下步骤:提供至少一中央处理单元,一总线控制器以及一程序存储器,所述中央处理单元通过所述总线控制器连接所述程序存储器;将所述程序存储器分为复数个程序分区;提供一密钥存储器,在所述密钥存储器中存储分别对应所述程序分区的复数个分区密钥,用于锁定所述程序分区中的程序。本发明对程序存储器进行分区,每个程序分区设置不同的密钥锁定,只允许被密钥认可的设备执行此程序分区内的程序,其他任何操作如读、写、擦除都将被拒绝,同时此程序分区的密钥将不能被随意更改,且不能被任何主动设备或从动设备读出,保证了程序存储器的程序不会被破译或者擦除毁坏。
Description
技术领域
本发明涉及计算机领域,尤其是指一种微控制器及其他嵌入式系统程序代码保护方法和装置。
背景技术
MCU(Micro Control Unit)中文名称为微控制器,又称单片微型计算机(SingleChip Microcomputer)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
一般说来,SOC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
微控制器(以下简称MCU)或其他嵌入式系统(以下简称SOC)常常存在多次开发的情况,举例来说,MCU/SOC芯片制造商提供给系统开发用户的开发程序库,或者系统开发商提供给用户的程序代码,都存在即要求保护代码不被读出又要求可以被CPU执行这些代码的需求。
如图1所示,通用的MCU/SOC系统的结构,一般由中央处理单元91(以下简称CPU)或者数字信号处理单元(以下简称DSP)、调试器92、直接通道存取单元93(以下简称DMA)总线、总线控制器94及程序存储器95及其他外部设备96、97等组成。其中,CPU、DMA与调试器92都是主动设备,可以发出指令,请求取得总线控制权。而程序存储器95及其他外部设备96、97等是从动设备,只能被主动设备操作,无法主动发起总线控制权请求。具体的程序执行的过程如下,首先整个系统上电,上电复位电路发出复位信号,程序指针复位为0,复位完成后释放复位信号,在时钟(也称为定时器)的驱动下,主动设备CPU从0地址开始执行,CPU发出读取0地址存储单元程序总线请求,总线控制器仲裁,赋予CPU总线控制权,存储单元地址译码器得到本设备读出请求,从存储单元读出0地址程序或数据返回总线,CPU取得指令,送入CPU执行单元执行,完成指令执行,程序指针增加或跳转,重复以上过程。
通用系统的程序一般放在程序存储器95中,一次开发,二次开发及多次开发的程序被存在程序存储器95中不同的位置,通用系统主动设备可以访问或擦写程序存储器95的任意位置,这样一次开发的程序,可能被二次或多次开发的程序读出来破译或者擦除毁坏,也存在二次开发的程序被其后续开发的程序读出来破译或擦除毁坏,也存在程序被调试器92、DMA等主动设备读出或擦除毁坏。
为了解决上述问题,目前行业内通常都采用传统的加密算法(比如AES,DES,RSA等)来直接加密程序本身,防止程序被读出来破译或擦除毁坏。但是,这种方法是将程序本身被加密存储于程序存储器中,那么每次执行,读写都要加解密,缺点在于:第一会增加硬件成本,第二增加执行,读写时间,降低CPU及系统的效率。
发明内容
有鉴于上述问题,本发明的目的在于,提供一种既能保护程序代码本身不被读出、跟踪或破解,又能使得已开发程序可以被调用与执行的微控制器程序代码保护方法。
为此,本发明提供了一种微控制器及其他嵌入式系统程序代码保护方法,包括以下步骤:
提供至少一中央处理单元,一总线控制器以及一程序存储器,所述中央处理单元通过所述总线控制器连接所述程序存储器;
将所述程序存储器分为复数个程序分区;
提供一密钥存储器,在所述密钥存储器中存储分别对应所述程序分区的复数个分区密钥,用于锁定所述程序分区中的程序。
本发明对程序存储器进行分区,程序开发者首先将已开发完成的程序编程入程序存储器的各个程序分区中,然后将密钥存储到密钥存储器的各个分区密钥中,重新上电启动该系统装置,这样各个程序分区以及其各自对应的分区密钥,都将被密钥锁定,只允许被密钥认可的设备执行此程序分区内的程序,其他任何操作如读、写、擦除都将被拒绝,同时此程序分区的密钥将不能被随意更改,且不能被任何主动设备或从动设备读出,保证了程序存储器的程序不会被破译或者擦除毁坏。
本发明微控制器及其他嵌入式系统程序代码保护方法的进一步改进在于,提供所述密钥存储器之后,还包括步骤:提供一密钥临时寄存器,在所述密钥临时寄存器中存储分别匹配所述分区密钥的复数个解锁密钥。
本发明微控制器及其他嵌入式系统程序代码保护方法的进一步改进在于,对所述程序分区进行解锁的方法,包括以下步骤:
在待解锁的程序分区相对应的解锁密钥中输入一密钥;
该程序分区判断所述输入的密钥是否与该程序分区相对应的分区密钥中的密钥相匹配;
判断所述输入的密钥与该程序分区相对应的分区密钥中的密钥相匹配时,完成对该程序分区的解锁。
这样,如果是程序开发者本身要更改程序分区的程序时,首先要输入该程序分区的密钥到密钥临时寄存器中,(通常将密钥设置成较多位数的密钥,这样可以增加破译的时间成本),如果输入密钥临时寄存器的密钥跟与之相对应的密钥存储器里的密钥对上了,就完成对该程序分区的解锁,该程序分区将可以被任意操作。
本发明微控制器及其他嵌入式系统程序代码保护方法的进一步改进在于,还包括步骤:提供一访问识别模块,用于识别访问所述程序分区的设备类型与访问类型,所述访问识别模块连接于所述总线控制器与各所述程序分区之间。该访问识别模块,其主要功能是识别是谁来访问程序存储器,是CPU,调试器,还是DMA访问,以及访问类型,是读,写,或者擦除。
本发明还提供了一种微控制器及其他嵌入式系统程序代码保护装置,至少包括:
一中央处理单元,一总线控制器以及一程序存储器,所述中央处理单元通过所述总线控制器连接所述程序存储器,所述程序存储器进一步分为复数个程序分区;
一密钥存储器,在所述密钥存储器中存储分别对应所述程序分区的复数个分区密钥,用于锁定所述程序分区中的程序。
本发明微控制器及其他嵌入式系统程序代码保护装置的进一步改进在于,还包括:
一密钥临时寄存器,在所述密钥临时寄存器中存储分别匹配所述分区密钥的复数个解锁密钥。
本发明微控制器及其他嵌入式系统程序代码保护装置的进一步改进在于,还包括:
一访问识别模块,用于识别访问所述程序分区的设备类型与访问类型,所述访问识别模块连接于所述总线控制器与各所述程序分区之间。
附图说明
图1是现有的MCU/SOC系统的结构框图。
图2是本发明的微控制器及其他嵌入式系统程序代码保护装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
配合参看图2所示,本发明的微控制器及其他嵌入式系统程序代码保护装置,至少包括:
一中央处理单元(即CPU)10或者数字信号处理单元(即DSP),一总线控制器40以及一程序存储器50,所述中央处理单元10通过所述总线控制器40连接所述程序存储器50。所述程序存储器50进一步分为复数个程序分区501,程序分区501的数量根据需要进行设置,图中所示为三个;所述中央处理单元10进一步连接有一调试器20与一直接通道存取单元(即DMA)30;所述总线控制器40进一步连接有至少一个的外部设备60、70;
一密钥存储器80,在所述密钥存储器80中存储分别对应所述程序分区501的复数个分区密钥801,用于锁定所述程序分区501中的程序。
一密钥临时寄存器90,在所述密钥临时寄存器90中存储分别匹配所述分区密钥801的复数个解锁密钥901。
一访问识别模块502,用于识别访问所述程序分区501的设备类型与访问类型,所述访问识别模块502连接于所述总线控制器40与各所述程序分区501之间。该访问识别模块502,其主要功能是识别是谁来访问程序存储器50,是CPU,调试器20,还是DMA访问,以及访问类型,是读,写,或者擦除。
本发明的微控制器及其他嵌入式系统程序代码保护方法,包括以下步骤:
提供至少一中央处理单元10,一总线控制器40以及一程序存储器50,所述中央处理单元10通过所述总线控制器40连接所述程序存储器50;
将所述程序存储器50分为复数个程序分区501;
提供一密钥存储器80,在所述密钥存储器80中存储分别对应所述程序分区501的复数个分区密钥801,用于锁定所述程序分区501中的程序。
提供一密钥临时寄存器90,在所述密钥临时寄存器90中存储分别匹配所述分区密钥801的复数个解锁密钥901。
提供一访问识别模块502,用于识别访问所述程序分区501的设备类型与访问类型,所述访问识别模块502连接于所述总线控制器40与各所述程序分区501之间。该访问识别模块502,其主要功能是识别是谁来访问程序存储器50,是CPU,调试器20,还是DMA访问,以及访问类型,是读,写,或者擦除。
本发明对程序存储器50进行分区,程序开发者首先将已开发完成的程序编程入程序存储器50的各个程序分区501中,然后将密钥存储到密钥存储器80的各个分区密钥801中,重新上电启动该系统装置,这样各个程序分区501以及其各自对应的分区密钥801,都将被密钥锁定,只允许被密钥认可的设备执行此程序分区501内的程序,其他任何操作如读、写、擦除都将被拒绝,同时此程序分区501的密钥将不能被随意更改,且不能被任何主动设备或从动设备读出,保证了程序存储器50的程序不会被破译或者擦除毁坏。
在本发明的一较佳实施例中,将某一个程序分区501设置为只能被CPU(也可以是其他设备)执行此程序分区501内的程序。其工作原理步骤如下,通过访问识别模块502来识别访问该程序分区501的设备类型是否为CPU,如果识别出访问的设备类型不是CPU,而是其他设备如DMA或调试器20,则该访问被拒绝;如果识别出访问的设备类型是CPU,则进一步识别该访问类型是否仅为执行程序,如果识别出此次的访问类型不是仅为执行程序,而是其他操作如读、写、擦除,则该访问被拒绝。
本发明微控制器及其他嵌入式系统程序代码保护方法,对所述程序分区501进行解锁时,包括以下步骤:
在待解锁的程序分区501相对应的解锁密钥901中输入一密钥;
该程序分区501判断所述输入的密钥是否与该程序分区501相对应的分区密钥801中的密钥相匹配;
判断所述输入的密钥与该程序分区501相对应的分区密钥801中的密钥相匹配时,完成对该程序分区501的解锁。
这样,如果是程序开发者本身要更改程序分区501的程序时,首先要输入该程序分区501的密钥到密钥临时寄存器90中,(通常将密钥设置成较多位数的密钥,这样可以增加破译的时间成本),如果输入密钥临时寄存器90的密钥跟与之相对应的密钥存储器80里的密钥对上了,就完成对该程序分区501的解锁,该程序分区501将可以被任意操作。
以上所述仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (1)
1.一种微控制器及其他嵌入式系统程序代码保护方法,其特征在于包括以下步骤:
提供至少一中央处理单元,一总线控制器以及一程序存储器,所述中央处理单元通过所述总线控制器连接所述程序存储器;
将所述程序存储器分为复数个程序分区;
提供一密钥存储器,在所述密钥存储器中存储分别对应所述程序分区的复数个分区密钥,用于锁定所述程序分区中的程序,只允许被所述分区密钥认可的设备执行此程序分区内的程序;
提供一密钥临时寄存器,在所述密钥临时寄存器中存储分别匹配所述分区密钥的复数个解锁密钥;
提供一访问识别模块,用于识别访问所述程序分区的设备类型与访问类型,所述访问识别模块连接于所述总线控制器与各所述程序分区之间;
对所述程序分区进行解锁的方法,包括以下步骤:
在待解锁的程序分区相对应的解锁密钥中输入一密钥;
该程序分区判断所述输入的密钥是否与该程序分区相对应的分区密钥中的密钥相匹配;
判断所述输入的密钥与该程序分区相对应的分区密钥中的密钥相匹配时,完成对该程序分区的解锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046230.1A CN103745140B (zh) | 2014-02-10 | 2014-02-10 | 微控制器及其他嵌入式系统程序代码保护方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410046230.1A CN103745140B (zh) | 2014-02-10 | 2014-02-10 | 微控制器及其他嵌入式系统程序代码保护方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103745140A CN103745140A (zh) | 2014-04-23 |
CN103745140B true CN103745140B (zh) | 2017-01-25 |
Family
ID=50502157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410046230.1A Expired - Fee Related CN103745140B (zh) | 2014-02-10 | 2014-02-10 | 微控制器及其他嵌入式系统程序代码保护方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103745140B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318188B (zh) * | 2014-10-11 | 2017-07-04 | 中国航天科工集团第三研究院第八三五七研究所 | 一种防抄袭sip芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1373425A (zh) * | 2001-03-05 | 2002-10-09 | 中国科学院计算技术研究所 | 一种具有安全等级分区隔离的计算机系统 |
CN101788958A (zh) * | 2010-02-04 | 2010-07-28 | 杭州晟元芯片技术有限公司 | 一种存储器数据保护的方法 |
US8356186B1 (en) * | 2009-10-01 | 2013-01-15 | Rockwell Collins, Inc. | Decryption system and method for reducing processing latency of stored, encrypted instructions |
-
2014
- 2014-02-10 CN CN201410046230.1A patent/CN103745140B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1373425A (zh) * | 2001-03-05 | 2002-10-09 | 中国科学院计算技术研究所 | 一种具有安全等级分区隔离的计算机系统 |
US8356186B1 (en) * | 2009-10-01 | 2013-01-15 | Rockwell Collins, Inc. | Decryption system and method for reducing processing latency of stored, encrypted instructions |
CN101788958A (zh) * | 2010-02-04 | 2010-07-28 | 杭州晟元芯片技术有限公司 | 一种存储器数据保护的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103745140A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5007867B2 (ja) | 安全な環境におけるプロセッサ実行を制御するための装置 | |
Raj et al. | {fTPM}: A {Software-Only} Implementation of a {TPM} Chip | |
JP6137499B2 (ja) | 方法および装置 | |
JP6239788B2 (ja) | 指紋認証方法、装置、インテリジェント端末及びコンピュータ記憶媒体 | |
CN103559448B (zh) | 一种用于安全环境的处理器 | |
US7624279B2 (en) | System and method for secure O.S. boot from password-protected HDD | |
US7707645B2 (en) | Microprocessor | |
JP6088072B2 (ja) | ホスト中央処理装置及びホスト・オペレーティング・システムからの干渉及びホスト中央処理装置及びホスト・オペレーティング・システムによる制御から切り離されたユーザ認可及びユーザ存在検出 | |
TW201535145A (zh) | 使用保護讀取儲存器安全地儲存韌體數據之系統及方法 | |
CN100432890C (zh) | 计算机开机身份认证系统及其认证方法 | |
CN102385671B (zh) | 软件加密方法及系统 | |
CN106462509A (zh) | 用于保全存取保护方案的设备及方法 | |
US7818567B2 (en) | Method for protecting security accounts manager (SAM) files within windows operating systems | |
US11586779B2 (en) | Embedded system and method | |
US10452567B2 (en) | Non-volatile memory to store resettable data | |
Raj et al. | ftpm: A firmware-based tpm 2.0 implementation | |
CN112541166A (zh) | 一种方法、系统和计算机可读存储介质 | |
JP4591163B2 (ja) | バスアクセス制御装置 | |
US20080104711A1 (en) | System and method for an isolated process to control address translation | |
Goodspeed | Extracting keys from second generation zigbee chips | |
US20060080540A1 (en) | Removable/detachable operating system | |
CN103745140B (zh) | 微控制器及其他嵌入式系统程序代码保护方法和装置 | |
Chen et al. | Schedguard: Protecting against schedule leaks using linux containers | |
KR20180011847A (ko) | 가상 기계들을 위한 상태 정보 보호 | |
TW202127435A (zh) | 電腦裝置及基於信任鏈的權限管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20170623 Granted publication date: 20170125 |
|
PD01 | Discharge of preservation of patent | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20230623 Granted publication date: 20170125 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170125 |