CN112347432A - 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 - Google Patents

一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 Download PDF

Info

Publication number
CN112347432A
CN112347432A CN202011327894.7A CN202011327894A CN112347432A CN 112347432 A CN112347432 A CN 112347432A CN 202011327894 A CN202011327894 A CN 202011327894A CN 112347432 A CN112347432 A CN 112347432A
Authority
CN
China
Prior art keywords
judge
target
output signal
area
access
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.)
Granted
Application number
CN202011327894.7A
Other languages
English (en)
Other versions
CN112347432B (zh
Inventor
王锐
张良臣
李建军
莫军
王亚波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unicmicro Guangzhou Co ltd
Original Assignee
Unicmicro Guangzhou Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Unicmicro Guangzhou Co ltd filed Critical Unicmicro Guangzhou Co ltd
Priority to CN202011327894.7A priority Critical patent/CN112347432B/zh
Publication of CN112347432A publication Critical patent/CN112347432A/zh
Application granted granted Critical
Publication of CN112347432B publication Critical patent/CN112347432B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06MCOUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
    • G06M1/00Design features of general application
    • G06M1/27Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
    • G06M1/272Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum using photoelectric means

Abstract

本发明提供一种基于RISC‑V架构的嵌入式处理器中的程序保护方法,所述方法由计算机主控制单元执行,包括:控制程序计数器判断模块PC_Area_Judge根据起始地址AddrStart、结束地址AddrEnd及PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge;控制目标区域判断模块Target_Area_Judge根据起始地址AddrStart、结束地址AddrEnd及ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge;控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,根据访问结果的合法性实现嵌入式处理器中的程序保护。本发明的程序保护方法,控制电路简单,提高程序安全性,降低芯片制造成本,非常适合在嵌入式处理器中使用。

Description

一种基于RISC-V架构的嵌入式处理器中的程序保护方法及 系统
技术领域
本发明涉及嵌入式系统技术领域,特别是涉及一种基于RISC-V架构的嵌入式处理器中的程序保护方法及系统。
背景技术
RISC-V是一种基于RISC指令集原则的开源指令集架构。与大多数现有的指令集相比,RISC-V在应用中几乎没有任何限制,允许自由的设计、制造和销售RISC-V芯片和软件。虽然RISC-V不是第一个开源指令集,但它的出现具有重要意义,因为RISC-V指令集架构更适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。
近些年,随着智能手机、掌上电脑、机顶盒等众多产品走进了人们的生活,嵌入式系统也越来越被大众所熟知。与PC机操作系统下的应用软件的保护类似,嵌入式系统中的应用软件的保护也变得越来越重要。如何防止嵌入式系统中应用软件被非法盗取,成为了产品安全中的一个重要课题。
在嵌入式系统中,现阶段对应用程序的保护多是通过在嵌入式芯片的SOC系统中添加加解密算法,或通过禁止通信接口来实现的。此类方法在实现中往往需要引入复杂的电路控制来完成应用程序的保护,给芯片带来了额外的成本。
发明内容
本发明提供一种基于RISC-V架构的嵌入式处理器中的程序保护方法及系统,控制电路简单,提高程序安全性,降低芯片制造成本。
本发明一个实施例提供一种基于RISC-V架构的嵌入式处理器中的程序保护方法,所述方法由计算机主控制单元执行,包括:
控制程序计数器判断模块PC_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及当前PC指针发送的PC数据值;
控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge;
控制目标区域判断模块Target_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;
控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge;
控制程序执行模块Protect_Execution接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;
控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,根据访问结果的合法性实现嵌入式处理器中的程序保护。
进一步地,所述控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,包括:
当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
进一步地,所述控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
进一步地,所述控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge,包括:
当所述ADDR数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前访问的目标地址ADDR存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为1;
当所述ADDR数据值小于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前访问的目标地址ADDR不存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为0。
进一步地,所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,还包括:
控制程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算,根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择。
进一步地,所述根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择,包括:
当所述程序执行输出信号Permition为0,且所述ProtectEnable信号为使能信号,RISC-V处理器的读控制信号Read Ctrl Input和数据输入信号Data Input将被旁路,并禁止访问操作。
本发明一实施例提供一种基于RISC-V架构的嵌入式处理器中的程序保护系统,包括:
保护存储区域的起始地址寄存器,用于发送起始地址AddrStart;
保护存储区域的结束地址寄存器,用于发送结束地址AddrEnd;
PC指针寄存器,用于发送PC数据值;
目标地址ADDR寄存器,用于发送ADDR数据值;
CPU当前操作的标志信号寄存器,用于发送标志信号DATA_ACCESS;
程序计数器判断模块PC_Area_Judge,用于接收起始地址AddrStart、结束地址AddrEnd及PC数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge;
目标区域判断模块Target_Area_Judge,用于接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge;
程序执行模块Protect_Execution,用于接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;还用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法。
进一步地,所述的一种基于RISC-V架构的嵌入式处理器中的程序保护系统,还包括:
保护功能使能寄存器,用于发送ProtectEnable信号;
或非逻辑计算模块,用于根据程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算。
进一步地,所述程序执行模块Protect_Execution用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,包括:
当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
进一步地,所述程序计数器判断模块PC_Area_Judge用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0;
所述目标区域判断模块Target_Area_Judge用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
与现有技术相比,本发明实施例的有益效果在于:
本发明提供一种基于RISC-V架构的嵌入式处理器中的程序保护方法,所述方法由计算机主控制单元执行,包括:控制程序计数器判断模块PC_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及当前PC指针发送的PC数据值;控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge;控制目标区域判断模块Target_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge;控制程序执行模块Protect_Execution接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,根据访问结果的合法性实现嵌入式处理器中的程序保护。本发明基于RISC-V指令集的特点,其通过在RISC-V处理器中引入一个寄存器设置位,可以对程序存储器的读取做防护。本发明的程序保护方法,控制电路简单,在解决程序安全的前提下,不增加芯片的额外成本,非常适合在嵌入式处理器中使用。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图2是本发明另一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图3是本发明另一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图4是本发明另一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图5是本发明又一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图6是本发明某一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护系统的结构图;
图7是本发明另一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护方法的流程图;
图8是本发明另一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护系统的结构图;
图9是本发明又一实施例提供的一种基于RISC-V架构的嵌入式处理器中的程序保护系统的结构图;
图10是本发明某一实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在嵌入式系统中,现阶段对应用程序的保护多是通过在嵌入式芯片的SOC系统中添加加解密算法,或通过禁止通信接口来实现的。此类方法在实现中往往需要引入复杂的电路控制来完成应用程序的保护,给芯片带来了额外的成本。
第一方面。
请参阅图1-5,本发明一实施例提供一种基于RISC-V架构的嵌入式处理器中的程序保护方法,所述方法由计算机主控制单元执行,包括:
S10、控制程序计数器判断模块PC_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及当前PC指针发送的PC数据值。
S20、控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge。
在某一具体实施方式中,所述S20、控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge,包括:
S21、当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1。
S22、当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
S30、控制目标区域判断模块Target_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值。
S40、控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge。
在某一具体实施方式中,所述S40、控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge,包括:
S41、当所述ADDR数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前访问的目标地址ADDR存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为1。
S42、当所述ADDR数据值小于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前访问的目标地址ADDR不存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为0。
S50、控制程序执行模块Protect_Execution接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS。
S60、控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,根据访问结果的合法性实现嵌入式处理器中的程序保护。
在某一具体实施方式中,所述S60、控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,包括:
S61、当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作。
S62、当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法。
S63、当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作。
S64、当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
在某一具体实施方式中,所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,还包括:
S70、控制程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算,根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择。
进一步地,所述S70、根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择,包括:
S71、当所述程序执行输出信号Permition为0,且所述ProtectEnable信号为使能信号,RISC-V处理器的读控制信号Read Ctrl Input和数据输入信号Data Input将被旁路,并禁止访问操作。
本发明公开了一种基于RISC-V架构的嵌入式处理器中的程序保护的方法。基于RISC-V指令集的特点,其通过在RISC-V处理器中引入一个寄存器设置位,可以对程序存储器的读取做防护。本发明公开的程序保护方法,控制电路简单,在解决程序安全的前提下,不增加芯片的额外成本,非常适合在嵌入式处理器中使用。
在某一具体实施例中,请参阅图6,本发明公开的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,包括:
PC:Program Counter,专有名词,记录着CPU当前运行指令所在存储器中的位置;
ADDR:Address的缩写,在本发明中指当前CPU将要访问的存储器的地址;
DATA ACCESS:CPU当前进行的是取指令操作还是取数据操作的标志。CPU运行时,会根据取到数据的用途分为取指令操作还是取数据操作。取指令操作时,DATA ACCESS为0,取数据操作时,DATA ACCESS为1;此信号的意义,在下文中已有描述;
NO ACCESS:指不发起访问操作;
Read Ctrl Input/Output:Read Ctrl Input是CPU发起访问的控制信号组合的输入。不同的CPU有着不同协议的总线接口,所以这个信号在不同处理器中也不相同;在本发明中,它用来标志当前CPU发起的访问的控制;Read Ctrl Output是当前访问被Permition信号和Protect Enable信号屏蔽后的结果,它是CPU发起访问的最终信号。Permition信号为0,就是CPU发起的当前访问(Read Ctrl Input)不被允许,则通过CTRL MUX,电路将ReadCtrl Input信号旁路掉,即Read Ctrl Output信号将选择NO ACCESS通路,这时CPU发起的访问将传导不到后续的数据通路上,这样就起到了访问禁止的功能;
Data Input/Output:Data Input是发起读访问时,目标地址返回回来的读取的数据。Data Output是Data Input经过本发明的电路屏蔽后的数据,Data Output可以理解为最终CPU读到的数据。当Permition信号为0时,就是当前访问不被本发明允许,那么DATAMUX将选择DummyData通路,将DummyData中预先设置好的假的数据返回给CPU,作为CPU最终读取到数据。
图6中,AddrStart、AddrEnd、ProtectEnable、DummyData部分均为寄存器部分,这些寄存器位于RISC-V处理器内部,可以由软件进行配置。
AddrStart为保护存储区域的起始地址,
AddrEnd为保护存储区域的结束地址;
ProtectEnable为保护功能使能寄存器,当其被软件设置为1后,将开启数据读取保护功能。
DummyData为Dummy数据寄存器,在ProtectEnable设置为1,且当前访问被判定为非法访问后,软件的此次访问会失败,Dummy数据将会作为读取结果返回给CPU的读取逻辑。
图6中,PC_Area_Judge和Target_Area_Judge两个模块为区域判断模块,其内部的逻辑相同,只是输入数据不同。
PC_Area_Judge模块为CPU的PC指针在当前处于范围的判定逻辑,它的输入数据为AddrSart、AddrEnd和当前PC指针。当PC的值大于等于AddrStart,且小于AddrEnd时,即PC当前已经在被保护区域时,PC_Area_Judge模块的输出信号PC_Judge为1,当PC指针值小于AddrStart或者大于等于AddrEnd时,PC_Judge为0。
Target_Area_Judge模块为访问的目标地址在当前处于范围的判定逻辑,它的输入数据为AddrSart、AddrEnd和访问的目标地址ADDR。当ADDR的值大于等于AddrStart,且小于AddrEnd时,即当前访问的目标地址ADDR在被保护区域时,Target_Area_Judge模块的输出信号Target_Judge为1,当访问的目标地址ADDR值小于AddrStart或者大于等于AddrEnd时,Target_Judge为0。
PC_Area_Judge和Target_Area_Judge两个模块的输出信号PC_Judge和Target_Judge共同输入给Protect_Execution模块,用作当前访问是否违背设置的判定。
图6中Protect_Execution模块输入信号还有DATA_ACCESS,其为RISC-V处理器中当前访问为取指令操作还为读取数据操作的标志信号。
DATA_ACCESS信号为1,标志着当前RISC-V处理器进行的为读取数据的操作;DATA_ACCESS信号为0,标志着当前RISC-V处理器进行的是取指令操作;
Protect_Execution模块根据当前CPU的PC指针所在的位置、本次访问的目标地址所在的空间以及DATA_ACCESS信号,判定本次访问是否合法。判定的真值表如下所示:
DATA_ACCESS PC_Judge Target_Judge Permition
0 X X 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Permition信号为Protect_Execution模块的输出信号,1标志这当前访问合法,0标志着当前访问非法。
由上面真值表可知,当DATA_ACCESS信号为0时,即当前访问为取指令操作时,PC_Judge和Target_Judge信号不管为0还是为1,此次访问都将被允许,即Protect_Execution模块不对CPU的取指令操作进行权限限制,电路的这个行为符合RISC-V架构的处理器的行为特性。
当DATA_ACCESS信号为1,且Target_Judge信号为0时,即当前访问的地址不在AddrStart和AddrEnd寄存器设置的范围内时,Protect_Execution模块也将允许此次操作。
当DATA_ACCESS信号为1,PC_Judge和Target_Judge信号也为1时,即当前PC指针在保护范围内,且本次访问的地址也在保护范围内时,Protect_Execution模块也将允许此次操作。电路在这个状态下的行为,同样也符合RISC-V架构的处理器的行为特性。因为RISC-V处理器在正常运行时,取指令操作中会夹杂着取立即数操作,对于同一个函数,取指令和取数据会同时发起的。当PC指针在保护范围内,且目标地址也在保护范围内时,如果对此次访问做出访问限制,将会导致RISC-V处理器无法工作在受保护的程序存储器中,此时Protect_Execution模块允许此次访问与程序的保护不构成冲突。
当DATA_ACCESS信号为1,PC_Judge为0,且Target_Judge信号为1时,Protect_Execution模块对本次访问做出非法判断,此次访问不被允许。
由Protect_Execution模块的真值表可以看出,只有当前访问为取数据操作,PC不在受保护区域,且目标访问地址在受保护区域时,Protect_Execution模块才会对访问做出限制。
图6中,Permition信号信号与ProjectEnable信号做或非逻辑后,控制着CTRL MUX和DATA MUX通路的选择。当程序保护功能使能,且访问非法时,RISC-V处理器的读控制信号Read Ctrl Input和数据输入信号Data Input将被旁路,即本次操作不被允许。同时,DataOutput信号选择DummyData通路,即本次访问,CPU读取逻辑最后取得的数据为寄存器设置好的Dummy Data。
请参阅图7,本发明另一实施例提供了一种基于RISC-V架构的嵌入式处理器中的程序保护的方法。基于RISC-V指令集的特点,其通过在RISC-V处理器中引入一个寄存器设置位,可以对程序存储器的读取做防护。本发明公开的程序保护方法,控制电路简单,在解决程序安全的前提下,不增加芯片的额外成本,非常适合在嵌入式处理器中使用。
发明整体工作的流程图如图7所示:
1)设置DummyData寄存器,即设置访问被禁止时返回CPU的假的数据的值;
2)设置要保护的地址区域的起始地址寄存器AddrStart;
3)设置要保护的地址区域的结束地址寄存器AddrEnd;
4)设置保护功能使能(开启)寄存器ProtectEnable;
5)设置好了上述配置寄存器之后,当CPU发起访问时,Protect_Execution模块会对CPU发起的访问进行访问权限判断;
6)Protect_Execution如果禁止此次操作,则Read Ctrl Output会等于NOACCESS,即CPU发起的访问被禁止,并没有传送到后面的逻辑;并且此时返回给CPU读取的值为预先设置好的DummyData的值。
7)Protect_Execution如果允许此次操作,则Read Ctrl Output会等于Read CtrlInput,即CPU发起的访问被允许;并且此时返回给CPU读取的值为读取的值,即Data Output的值等于Data Input。
8)Protect_Execution模块对访问权限的判断在下文中有描述,即根据真值表:
DATA_ACCESS PC_Judge Target_Judge Permition
0 X X 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
第二方面。
请参阅图8-9,本发明一实施例提供一种基于RISC-V架构的嵌入式处理器中的程序保护系统,包括:
保护存储区域的起始地址寄存器10,用于发送起始地址AddrStart
保护存储区域的结束地址寄存器20,用于发送结束地址AddrEnd。
PC指针寄存器30,用于发送PC数据值。
目标地址ADDR寄存器40,用于发送ADDR数据值。
CPU当前操作的标志信号寄存器50,用于发送标志信号DATA_ACCESS。
程序计数器判断模块PC_Area_Judge60,用于接收起始地址AddrStart、结束地址AddrEnd及PC数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge。
在某一具体实施方式中,所述程序计数器判断模块PC_Area_Judge60用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1。当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
目标区域判断模块Target_Area_Judge70,用于接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge。
在某一具体实施方式中,所述目标区域判断模块Target_Area_Judge70用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1。当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
程序执行模块Protect_Execution80,用于接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;还用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法。
在某一具体实施方式中,所述程序执行模块Protect_Execution80用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,包括:
当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作。当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法。当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作。当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
在某一具体实施方式中,所述的一种基于RISC-V架构的嵌入式处理器中的程序保护系统,还包括:
保护功能使能寄存器90,用于发送ProtectEnable信号。
或非逻辑计算模块91,用于根据程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算。
第三方面。
本发明提供了一种电子设备,该电子设备包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面所示的一种基于RISC-V架构的嵌入式处理器中的程序保护方法对应的操作。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI总线或EISA总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
第四方面。
本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的一种基于RISC-V架构的嵌入式处理器中的程序保护方法。
本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。

Claims (10)

1.一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,所述方法由计算机主控制单元执行,包括:
控制程序计数器判断模块PC_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及当前PC指针发送的PC数据值;
控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge;
控制目标区域判断模块Target_Area_Judge接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;
控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge;
控制程序执行模块Protect_Execution接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;
控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,根据访问结果的合法性实现嵌入式处理器中的程序保护。
2.如权利要求1所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,所述控制程序执行模块Protect_Execution根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,包括:
当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
3.如权利要求1所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,所述控制程序计数器判断模块PC_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,生成程序计数器输出信号PC_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
4.如权利要求1所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,所述控制目标区域判断模块Target_Area_Judge根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,生成目标区域输出信号Target_Judge,包括:
当所述ADDR数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前访问的目标地址ADDR存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为1;
当所述ADDR数据值小于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前访问的目标地址ADDR不存在于被保护区域,目标区域判断模块Target_Area_Judge的目标区域输出信号Target_Judge为0。
5.如权利要求1所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,还包括:
控制程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算,根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择。
6.如权利要求5所述的一种基于RISC-V架构的嵌入式处理器中的程序保护方法,其特征在于,所述根据所述或非逻辑计算的结果控制CTRL MUX和DATA MUX通路的选择,包括:
当所述程序执行输出信号Permition为0,且所述ProtectEnable信号为使能信号,RISC-V处理器的读控制信号Read Ctrl Input和数据输入信号Data Input将被旁路,并禁止访问操作。
7.一种基于RISC-V架构的嵌入式处理器中的程序保护系统,其特征在于,包括:
保护存储区域的起始地址寄存器,用于发送起始地址AddrStart;
保护存储区域的结束地址寄存器,用于发送结束地址AddrEnd;
PC指针寄存器,用于发送PC数据值;
目标地址ADDR寄存器,用于发送ADDR数据值;
CPU当前操作的标志信号寄存器,用于发送标志信号DATA_ACCESS;
程序计数器判断模块PC_Area_Judge,用于接收起始地址AddrStart、结束地址AddrEnd及PC数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge;
目标区域判断模块Target_Area_Judge,用于接收保护存储区域的起始地址AddrStart、保护存储区域的结束地址AddrEnd及目标地址ADDR发送的ADDR数据值;还用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge;
程序执行模块Protect_Execution,用于接收所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS;还用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法。
8.如权利要求7所述的一种基于RISC-V架构的嵌入式处理器中的程序保护系统,其特征在于,还包括:
保护功能使能寄存器,用于发送ProtectEnable信号;
或非逻辑计算模块,用于根据程序执行模块Protect_Execution的程序执行输出信号Permition与保护功能使能寄存器发送的ProtectEnable信号进行或非逻辑计算。
9.如权利要求7所述的一种基于RISC-V架构的嵌入式处理器中的程序保护系统,其特征在于,所述程序执行模块Protect_Execution用于根据所述程序计数器输出信号PC_Judge、所述目标区域输出信号Target_Judge及CPU当前操作的标志信号DATA_ACCESS进行逻辑计算,根据所述逻辑计算的结果判定访问是否合法,包括:
当所述标志信号DATA_ACCESS为0时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为0时,判断访问为合法;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为1时,判断访问为合法,并允许访问操作;
当所述标志信号DATA_ACCESS为1,且所述目标区域输出信号Target_Judge为1,且所述程序计数器输出信号PC_Judge为0时,判断访问为非法,并禁止访问操作。
10.如权利要求7所述的一种基于RISC-V架构的嵌入式处理器中的程序保护系统,其特征在于,
所述程序计数器判断模块PC_Area_Judge用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述PC数据值之间的数据关系,进行判断并生成程序计数器输出信号PC_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0;
所述目标区域判断模块Target_Area_Judge用于根据所述起始地址AddrStart、所述结束地址AddrEnd及所述ADDR数据值之间的数据关系,进行判断并生成目标区域输出信号Target_Judge,包括:
当所述PC数据值大于等于所述起始地址AddrStart且小于结束地址AddrEnd时,判断当前程序计数器PC存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为1;
当所述PC数据值小于等于所述起始地址AddrStart或大于等于结束地址AddrEnd时,判断当前程序计数器PC不存在于被保护区域,程序计数器判断模块PC_Area_Judge的程序计数器输出信号PC_Judge为0。
CN202011327894.7A 2020-11-24 2020-11-24 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统 Active CN112347432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011327894.7A CN112347432B (zh) 2020-11-24 2020-11-24 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011327894.7A CN112347432B (zh) 2020-11-24 2020-11-24 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统

Publications (2)

Publication Number Publication Date
CN112347432A true CN112347432A (zh) 2021-02-09
CN112347432B CN112347432B (zh) 2021-10-12

Family

ID=74365486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011327894.7A Active CN112347432B (zh) 2020-11-24 2020-11-24 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统

Country Status (1)

Country Link
CN (1) CN112347432B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566972A (zh) * 2009-05-12 2009-10-28 苏州国芯科技有限公司 嵌入式系统用户多分区存储空间访问权限的安全控制方法
CN103136571A (zh) * 2011-11-28 2013-06-05 国民技术股份有限公司 一种智能卡系统
CN103136124A (zh) * 2011-11-28 2013-06-05 国民技术股份有限公司 一种智能卡硬件防火墙系统及其实现方法
CN104636276A (zh) * 2015-01-07 2015-05-20 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN107066311A (zh) * 2017-03-20 2017-08-18 中国科学院软件研究所 一种内核数据访问控制方法与系统
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法
CN109446835A (zh) * 2018-09-30 2019-03-08 龙芯中科技术有限公司 数据访问控制方法、装置及设备
CN109840410A (zh) * 2017-12-28 2019-06-04 中国科学院计算技术研究所 一种进程内数据隔离与保护的方法和系统
US20190370439A1 (en) * 2018-05-29 2019-12-05 Sunasic Technologies, Inc. Secure system on chip for protecting software program from tampering, rehosting and piracy and method for operating the same

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101566972A (zh) * 2009-05-12 2009-10-28 苏州国芯科技有限公司 嵌入式系统用户多分区存储空间访问权限的安全控制方法
CN103136571A (zh) * 2011-11-28 2013-06-05 国民技术股份有限公司 一种智能卡系统
CN103136124A (zh) * 2011-11-28 2013-06-05 国民技术股份有限公司 一种智能卡硬件防火墙系统及其实现方法
CN104636276A (zh) * 2015-01-07 2015-05-20 大连理工大学 一种保护内存存储器数据机密性和完整性的方法
CN107451493A (zh) * 2016-05-30 2017-12-08 珠海市微半导体有限公司 Risc架构保密电路及其方法
CN107066311A (zh) * 2017-03-20 2017-08-18 中国科学院软件研究所 一种内核数据访问控制方法与系统
CN109840410A (zh) * 2017-12-28 2019-06-04 中国科学院计算技术研究所 一种进程内数据隔离与保护的方法和系统
US20190370439A1 (en) * 2018-05-29 2019-12-05 Sunasic Technologies, Inc. Secure system on chip for protecting software program from tampering, rehosting and piracy and method for operating the same
CN109446835A (zh) * 2018-09-30 2019-03-08 龙芯中科技术有限公司 数据访问控制方法、装置及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MICHAEL BACKES,THORSTEN HOLZ,ET AL.: "You Can Run but You Can’t Read:Preventing Disclosure Exploits in Executable Code", 《PROCEEDINGS OF THE 21ST ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》 *
关文博: "基于RISC-V指令集微处理器的运算模块设计", 《中国优秀中国优秀硕士学位论文全文数据库 信息科技辑》 *
王烨,李清宝,等: "基于代码防泄漏的代码复用攻击防御技术", 《计算机研究与发展》 *

Also Published As

Publication number Publication date
CN112347432B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
US8689338B2 (en) Secure terminal, a routine and a method of protecting a secret key
US7895404B2 (en) Access rights on a memory map
US8407476B2 (en) Method and apparatus for loading a trustable operating system
CN105980993B (zh) 数据处理设备和方法
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
US8307416B2 (en) Data structures for use in firewalls
US8954804B2 (en) Secure boot circuit and method
WO2006137073A2 (en) System, device, and method of selectively allowing a host processor to access host-executable code
US11243894B2 (en) Method for protecting memory against unauthorized access
US20130318363A1 (en) Security system for code dump protection and method thereof
US20190080082A1 (en) Secure stack overflow protection via a hardware write-once register
CN112347432B (zh) 一种基于risc-v架构的嵌入式处理器中的程序保护方法及系统
US8635685B2 (en) Value generator coupled to firewall programmable qualifier data structure logics
US7076669B2 (en) Method and apparatus for communicating securely with a token
US10521150B2 (en) Data processing method and device for nonvolatile memory and storage medium
US9678899B2 (en) Method and apparatus for providing memory protection
CN106203087B (zh) 注入防护方法、系统、终端以及存储介质
CN111382433B (zh) 模块加载方法、装置、设备以及存储介质
CN114218129A (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
GR01 Patent grant
GR01 Patent grant