CN107451493A - Risc架构保密电路及其方法 - Google Patents
Risc架构保密电路及其方法 Download PDFInfo
- Publication number
- CN107451493A CN107451493A CN201610373968.8A CN201610373968A CN107451493A CN 107451493 A CN107451493 A CN 107451493A CN 201610373968 A CN201610373968 A CN 201610373968A CN 107451493 A CN107451493 A CN 107451493A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- circuit
- instruction
- code
- 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.)
- Pending
Links
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Abstract
本发明公开一种RISC架构保密电路及其方法,通过数据过滤电路和指令监视电的整体电路设计,可有效的起到保护区代码保护的作用。通过监视指令总线来确定当前运行空间,编译时只需将两个代码空间代码独立编译,不需要人为确定每个函数的入口地址。保护空间放置保密代码,非保密空间放置非保密代码。因此编译器自身修改很小,不增加软件开发难度,软件实现简单。使得机器既可以使用算法,开放一部分存储空间给第三方开发,增加了SOC的应用场景和范围,又能够防止代码被读出,起到了存储器内容的保护作用。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种RISC架构保密电路及其方法。
背景技术
在计算机中执行代码和读出代码是两个概念。CPU执行代码是将一串指令编码翻译成CPU动作,而读出代码则是获得这一串编码的数值。
基于数据和指令的存储结构,SOC中CPU的结构可以分为两大类:哈佛结构和冯诺依曼结构。本发明基于哈佛结构,哈佛结构处理器具有指令和数据分开的特性,读写数据指令(load/store)只通过数据通道发命令,取指令只通过指令通道。如果CPU要把存储器中的内容读出来则必须通过数据通道。
随着集成电路的发展,SOC应用到了一些更加特定的领域。这些SOC被用来执行一些特定的算法。如何保护固化在SOC中的这些算法变得尤为重要。目前的集成电路SOC一部分采用通用的存储器和CPU,不具备存储内容的保护功能,而且CPU可以读出自身执行的代码,不具备代码保护功能。另外一部分SOC将整个存储器全部保护,没有留出空间给第三方开发,缺少灵活性。还有一部分SOC具备对存储空间进行分块保护的功能,但不具备块之间代码互相调用的功能,块之间不可互相访问。
申请号为201110444179.6的中国专利申请公开了一种SOC芯片系统安全的存储保护控制器及方法,通过对存储空间进行划分,利用跳转保护单元,来判定当前运行的代码属于哪个代码空间,对规定的代码空间进行一些相应的权限配置。该技术方案与本申请存在的本质差别:该技术方案是根据跳转指令作为代码空间判断依据,而本申请则是以取指令地址作为判断依据。该技术方案存在一些局陷性:1、以跳转指令作为代码空间判断的情况下,程序开发时并不知道每个函数的编译后所属具体空间,编译器必须人为干预设置,且设置复杂,因些大型软件开发情况下很难实现;2、函数入口记录的配置项较多,硬件成本高。
发明内容
本申请针对SOC中保护存储内容的需求,发明一种可以保护存储内容的保密电路及相应的方法,实现非保护区可以执行保护区代码的功能,同时保证保护区代码不被读出;与此同时,在存储器的非保护区域还可以进行正常的代码开发,同时块之间还具备互相调用的功能。本发明由以下技术方案实现:
一种RISC架构保密电路,包括CPU、DMA、存储器及非易失性存储器;存储器的空间被划分为保护区域与非保护区域,从地址address_0到地址address_1为保护区域,从地址address_1到地址address_2为非保护区域;address_0、address_1、address_2分别存储在非易失性存储器中;CPU通过数据通道1和指令通道访问存储器,DMA数据通道2访问存储器;其特征在于:还包括数据过滤电路和指令监视电路,数据过滤电路过滤每一路数据通道,指令监视电路监视指令通道地址,并将指令信息输出到数据过滤电路中;数据过滤电路根据指令的区域信息对数据通道的数据进行过滤。
一种基于上述RISC架构保密电路的保密方法,其特征在于,包括以下步骤:
(1)撤消SOC的系统复位且CPU的复位没有马上撤消时,从非易失性存储器中读出三个地址address_0、address_1、address_2到指令监视电路和数据过滤电路的寄存器中;
(2)CPU复位撤消,开始启动;
(3)指令监视电路获取到最近一次取指令的地址(i_addr),取指令地址代表着当前CPU在运行哪个空间的指令。数据过滤电路比对每一个数据访问的地址,如果数据访问地址(d_addr)小于address_1,则访问的是保护区域,反之访问的是非保护区;当且仅当(i_addr>address_1)&&(d_addr<address_1)=1时,禁止访问保护区域;数据过滤电路对数据地址进行转换使之为固定值0xffffffff,数据通道返回0xffffffff地址的值,从而读不到真实地址的值;反之,数据过滤电路不对地址进行任何转换。
本发明的有益效果在于:数据过滤电路和指令监视电的整体电路设计可有效的起到保护区代码保护的作用。通过监视指令总线来确定当前运行空间,编译时只需将两个代码空间代码独立编译,不需要人为确定每个函数的入口地址。保护空间放置保密代码,非保密空间放置非保密代码。因此编译器自身修改很小,不增加软件开发难度,软件实现简单。使得机器既可以使用算法,开放一部分存储空间给第三方开发,增加了SOC的应用场景和范围,又能够防止代码被读出,起到了存储器内容的保护作用。此外,硬件上对存储内容的保护比软件加密具备更大的安全性。
附图说明
图1为本发明实施例提供的SOC系统处理器与存储器访问的结构框图。
图2为本发明实施例提供的保护机制的访问控制流程图。
具体实施方式
如图1所示,本实施例提供的RISC架构保密电路包括CPU、DMA、数据过滤电路、指令监视电路、存储器及非易失性存储器(图中未示)。
存储器的空间被人为的划分为两块:保护区域与非保护区域,从地址address_0到地址address_1为保护区域,从地址address_1到地址address_2为非保护区域。address_0、address_1、address_2分别存储在非易失性存储器(如EFUSE,FLASH,EEPROM等)中,掉电不会丢失,通过密码等保密手段才能改写。本发明必须保证区域划分不能随意改动,否则起不到保护的作用。保护区域中存放保护代码,非保护区域存放第三方开发代码,两个空间中的代码独自编译,编译环境不同。
CPU通过数据通道1和指令通道访问存储器,DMA数据通道2访问存储器。数据过滤电路过滤每一路数据通道。指令监视电路监视指令通道地址,指令监视电路记录最近一次或几次取出的有效指令地址,并将指令信息输出到数据过滤电路中。数据过滤电路根据指令的区域信息对数据通道的数据进行过滤,过滤逻辑关系如下表1所示:
访问保护区数据 | 访问非保护区数据 | |
保护区指令 | 正常访问 | 正常访问 |
非保护区指令 | 阻止访问 | 正常访问 |
表1
在区域划分固定后,指令通道没有任何改变,CPU可以正常取指执行,但是不能通过数据通道访问保护区,保护区指令只能作为指令。本发明实现了执行指令,但无法知道指令对应的编码数据的效果。这些代码只能够CPU执行,不能进行保护区数据输出。此外,数据过滤电路同时对其它数据通道(如DMA)的数据进行过滤,当数据通道访问保护区域时,则禁止访问。
上述RISC架构保密电路的保密流程描述如下:
撤消SOC的系统复位,CPU的复位没有马上撤消,而是受一个状态机控制。这个状态机负责从非易失性存储器中读出三个地址(address_0、address_1、address_2)到指令监视电路和数据过滤的电路的寄存器中。然后CPU复位撤消,开始启动。
如图2所示,CPU启动后,指令监视电路获取到最近一次取指令的地址(i_addr),取指令地址代表着当前CPU在运行哪个空间的指令。数据过滤电路比对每一个数据访问的地址,如果数据访问地址(d_addr)小于address_1,则访问的是保护区域,反之访问的是非保护区。当且仅当(addr>address_1)&&(d_addr<address_1)=1时,禁止访问保护区域。数据过滤电路对数据地址进行转换使之为固定值0xffffffff。数据通道返回0xffffffff地址的值,从而读不到真实地址的值。反之,数据过滤电路不对地址进行任何转换。
本实施例中,所述的代码空间分界地址是受保护的,由代码空间分界地址一次性写入电路写入,不能随意更改。只有当保护空间数据部分或全部被修改情况下,才能修改代码空间分界地址。独立的指令总线监视器,用于判断当前的程序处于哪个空间。独立的数据总线监视器,用于处理越界的数据访问,判断当前访问数据的地址是否属于保护区域,并对保护区域的访问请求进行修改,使之返回错误数据。数据和指令分开的访问总线。指令总线只能发出指令访问请求,不能发出数据访问请求。数据总线只能发出数据访问请求,不能够发出指令访问请求。
数据过滤电路和指令监视电的整体电路设计可有效的起到保护区代码保护的作用。本发明中的电路不限制指令的取指,仅仅只限制读数据功能。本发明将保护区的代码打包成一个具有特定功能的黑盒子,可以使用,但不能读出黑盒子内部代码。
上述实施例仅表达了本发明的一种典型实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。对本领域的技术人员来说,在不脱离本发明的构思前提下,所做出的若干变形或改进,都属于本发明的揭露范围。
Claims (2)
1.一种RISC架构保密电路,包括CPU、DMA、存储器及非易失性存储器;存储器的空间被划分为保护区域与非保护区域,从地址address_0到地址address_1为保护区域,从地址address_1到地址address_2为非保护区域;address_0、address_1、address_2分别存储在非易失性存储器中;CPU通过数据通道1和指令通道访问存储器,DMA数据通道2访问存储器;其特征在于:还包括数据过滤电路和指令监视电路,数据过滤电路过滤每一路数据通道,指令监视电路监视指令通道地址,并将指令信息输出到数据过滤电路中;数据过滤电路根据指令的区域信息对数据通道的数据进行过滤。
2.一种基于权利要求1所述的RISC架构保密电路的保密方法,其特征在于,包括以下步骤:
(1)撤消SOC的系统复位且CPU的复位没有马上撤消时,从非易失性存储器中读出三个地址address_0、address_1、address_2到指令监视电路和数据过滤电路的寄存器中;
(2)CPU复位撤消,开始启动;
(3)指令监视电路获取到最近一次取指令的地址(i_addr),取指令地址代表着当前CPU在运行哪个空间的指令。数据过滤电路比对每一个数据访问的地址,如果数据访问地址(d_addr)小于address_1,则访问的是保护区域,反之访问的是非保护区;当且仅当(i_addr>address_1)&&(d_addr<address_1)=1时,禁止访问保护区域;数据过滤电路对数据地址进行转换使之为固定值0xffffffff,数据通道返回0xffffffff地址的值,从而读不到真实地址的值;反之,数据过滤电路不对地址进行任何转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610373968.8A CN107451493A (zh) | 2016-05-30 | 2016-05-30 | Risc架构保密电路及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610373968.8A CN107451493A (zh) | 2016-05-30 | 2016-05-30 | Risc架构保密电路及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107451493A true CN107451493A (zh) | 2017-12-08 |
Family
ID=60484759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610373968.8A Pending CN107451493A (zh) | 2016-05-30 | 2016-05-30 | Risc架构保密电路及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451493A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069261A (zh) * | 2019-05-11 | 2019-07-30 | 肖银皓 | 一种嵌入式软件的可配置分区方法及系统 |
CN112347432A (zh) * | 2020-11-24 | 2021-02-09 | 广芯微电子(广州)股份有限公司 | 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1196524A (zh) * | 1997-02-14 | 1998-10-21 | 日本电气株式会社 | 存储器存取控制电路 |
US20050138481A1 (en) * | 2003-12-19 | 2005-06-23 | International Business Machines Corporation | Microcomputer, A Method For Protecting Memory And A Method For Performing Debugging |
CN101097609A (zh) * | 2006-06-28 | 2008-01-02 | 夏普株式会社 | 程序执行控制电路、计算机系统和ic卡 |
CN201828906U (zh) * | 2010-08-02 | 2011-05-11 | 雅格罗技(北京)科技有限公司 | 存储器保护装置 |
CN102648456A (zh) * | 2009-09-21 | 2012-08-22 | 飞思卡尔半导体公司 | 存储器装置及方法 |
-
2016
- 2016-05-30 CN CN201610373968.8A patent/CN107451493A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1196524A (zh) * | 1997-02-14 | 1998-10-21 | 日本电气株式会社 | 存储器存取控制电路 |
US6101586A (en) * | 1997-02-14 | 2000-08-08 | Nec Corporation | Memory access control circuit |
US20050138481A1 (en) * | 2003-12-19 | 2005-06-23 | International Business Machines Corporation | Microcomputer, A Method For Protecting Memory And A Method For Performing Debugging |
CN101097609A (zh) * | 2006-06-28 | 2008-01-02 | 夏普株式会社 | 程序执行控制电路、计算机系统和ic卡 |
CN102648456A (zh) * | 2009-09-21 | 2012-08-22 | 飞思卡尔半导体公司 | 存储器装置及方法 |
CN201828906U (zh) * | 2010-08-02 | 2011-05-11 | 雅格罗技(北京)科技有限公司 | 存储器保护装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069261A (zh) * | 2019-05-11 | 2019-07-30 | 肖银皓 | 一种嵌入式软件的可配置分区方法及系统 |
CN112347432A (zh) * | 2020-11-24 | 2021-02-09 | 广芯微电子(广州)股份有限公司 | 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 |
CN112347432B (zh) * | 2020-11-24 | 2021-10-12 | 广芯微电子(广州)股份有限公司 | 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462509A (zh) | 用于保全存取保护方案的设备及方法 | |
CN1954302A (zh) | 数字信号控制器安全存储器分割 | |
JPH09500469A (ja) | メモリカード及びその作動方法 | |
US20190073473A1 (en) | Dynamic security domain data flow analysis via passive monitoring | |
CN108205502A (zh) | 轻量可信任务 | |
US10114948B2 (en) | Hypervisor-based buffer overflow detection and prevention | |
CN110598405B (zh) | 一种运行时访问控制方法及计算装置 | |
RU2266559C2 (ru) | Микропроцессорная схема для носителя данных и способ для обеспечения доступа к данным, загруженным в память | |
CN107003936A (zh) | 具有非可读页的存储器保护 | |
CN110928737B (zh) | 监控样本进程的内存访问行为的方法和装置 | |
US20070174622A1 (en) | Protection of data of a memory associated with a microprocessor | |
CN108701025A (zh) | 安全的存储器寻址方法 | |
CN115510430A (zh) | 一种函数指针及其数据依赖的识别与保护方法、装置 | |
CN107451493A (zh) | Risc架构保密电路及其方法 | |
CN110647764B (zh) | 针对用户态非易失性内存文件系统的保护方法及系统 | |
CN103136571B (zh) | 一种智能卡系统 | |
EP1124184A2 (en) | Privilege promotion in computer systems | |
US20020016890A1 (en) | Secured microprocessor comprising a system for allocating rights to libraries | |
CN205750790U (zh) | Risc架构保密电路 | |
CN110597641A (zh) | 一种线性地址空间的布局方法及计算装置 | |
CN113467844A (zh) | 适用于工业级应用场景的嵌入式系统的控制方法、嵌入式系统和计算机可读存储介质 | |
RU2198424C2 (ru) | Микрокомпьютер | |
CN101178762A (zh) | 抑制利用移动存储设备传播病毒的方法及移动存储设备 | |
JPS63317975A (ja) | 磁気ディスク装置のライトプロテクト機構 | |
CN112685802B (zh) | Flash芯片读取控制方法、装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |