CN108959129A - 一种基于硬件的嵌入式系统机密性保护方法 - Google Patents

一种基于硬件的嵌入式系统机密性保护方法 Download PDF

Info

Publication number
CN108959129A
CN108959129A CN201810762746.4A CN201810762746A CN108959129A CN 108959129 A CN108959129 A CN 108959129A CN 201810762746 A CN201810762746 A CN 201810762746A CN 108959129 A CN108959129 A CN 108959129A
Authority
CN
China
Prior art keywords
cache
data
embedded system
encryption
object 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.)
Granted
Application number
CN201810762746.4A
Other languages
English (en)
Other versions
CN108959129B (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201810762746.4A priority Critical patent/CN108959129B/zh
Publication of CN108959129A publication Critical patent/CN108959129A/zh
Application granted granted Critical
Publication of CN108959129B publication Critical patent/CN108959129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种基于硬件的嵌入式系统机密性保护方法,步骤如下:1,生成目标代码;2,加密目标代码,存入非易失存储;3,上电复位;4,执行程序,如发生Cache失靶或数据Cache回写,执行步骤5;否则,执行步骤4,至程序结束;5,如写外存,则执行步骤6;否则执行步骤8;6,进行截断、填充,用硬件加密逻辑生成pad,异或Cache行的数据产生密文;7,将密文写入外存,执行步骤4;8,将Cache行对应的物理地址进行截断、填充,用硬件加密逻辑生成pad,并异或从外存读取的密文,得到指令或者数据;9,将指令或数据送入处理器,并写对应Cache行,执行步骤4;通过以上步骤,本发明能以较低的性能代价和实现代价实现对嵌入式系统的机密性保护。

Description

一种基于硬件的嵌入式系统机密性保护方法
技术领域
本发明提供一种一种基于硬件的嵌入式系统机密性保护方法,它是针对嵌入式系统的机密性保护方法,该方法应用于嵌入式系统中存储的程序、数据加解密和安全防护中,可以提高嵌入式系统的鲁棒性。属于嵌入式系统信息安全技术领域。
背景技术
嵌入式设备在人们日常生活中得到了大量应用,越来越多的嵌入式终端和日益拓展的线上互联使得嵌入式系统的安全受到了广泛的关注。目前常见的针对嵌入式系统的攻击方式包括以硬件木马、芯片反向、侧边带攻击、存储芯片拆焊分析为代表的硬件攻击和以恶意代码注入、缓冲区溢出、数据或代码篡改、指令数据重放为代表的软件攻击。恶意攻击者可以通过物理访问、总线挂载或者非法程序获取到嵌入式系统内部存储或处理的程序代码和数据,造成了用户隐私信息的泄露。近年来,基于返回导向编程和基于跳转导向编程的方法可以利用原有的合法程序指令片段组成新的恶意程序,这种攻击方式可以通过针对嵌入式系统代码和数据完整性的安全检查,严重地威胁嵌入式系统的安全。
针对嵌入式系统的机密性保护,可以有效的阻止恶意攻击者对系统中存储的程序和数据的非法访问和理解,避免程序和数据信息的泄露,防止基于返回导向编程和跳转导向编程方法的攻击。目前嵌入式系统的机密性保护方法主要是通过对系统中存储器的加密来实现,比较常见的方法是使用软件将需要存到外部存储器中的代码和数据加密后进行存储。然而嵌入式系统在计算能力、存储规模和系统功耗方面都有比较严格的限制,分配出部分资源用于数据加密将会造成较大的系统损耗。一些基于硬件实现的嵌入式系统机密性保护方法在系统总线的从设备控制器端或者存储器芯片内集成硬件加解密模块,使用通用的密码算法对写入存储器的代码和数据进行加密操作,对从存储器中读出的代码和数据进行解密操作。然而,密码算法的加密和解密运算比较复杂,硬件实现后会消耗较多的片上资源;对外部存储器的访问和密码计算是串行操作的,需要先从存储器中读出数据然后进行解密,或者先对数据进行加密然后再存入存储器中,这会造成较大的系统性能损耗。除此之外,硬件实现的密码引擎被放置在存储器控制器或存储器芯片内部,对于具有多个存储器的嵌入式系统需要对每个存储器实例化一套密码引擎,进一步造成了系统资源的浪费。
综上所述,当前针对于嵌入式系统的机密性保护方法还存在着以下问题:
(1)使用协处理器或者软件的方式对嵌入式系统的程序代码和数据进行加解密,浪费了嵌入式系统有限的系统资源,导致了较大系统性能的损耗;
(2)常见的基于硬件的机密保护方法需要同时实现硬件加密模块和硬件解密模块,消耗了较多的片上硬件资源;
(3)常见的机密性保护方法对外部存储器的访问和密码计算串行操作,即需要先从存储器中读出数据然后进行解密,或者先对数据进行加密然后再存入存储器中,造成了较大的系统性能损耗;
(4)常见的基于硬件的机密保护方法将硬件加解密逻辑连接在存储器控制器或存储器芯片内,对于具有多个存储器的嵌入式系统需要在控制器或者存储器芯片内逐一实例化密码引擎,造成了系统资源的浪费。
发明内容
1.发明目的
针对上述问题,本发明提供一种基于硬件的嵌入式系统机密性保护方法。本方法在嵌入式处理器芯片内部处理器内核的高速缓存(即Cache)和系统总线之间只硬件实现了密码加密逻辑,将物理地址截断并填充加密后与明文或密文进行异或操作,完成对写入外部存储器中的数据进行加密,对从外部存储器中读取的数据进行解密,实现了对嵌入式系统中存储的程序代码和数据的机密性保护。同时,有效的降低了系统的性能损耗和实现代价。
2.技术方案
具体来说,本发明提供了一种基于硬件的嵌入式系统机密性保护方法,该方法包括以下步骤:
步骤1,根据选用的嵌入式处理器,选择对应的编译、链接工具链,将用户源程序经编译、链接生成嵌入式系统目标代码;
步骤2,在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中;
步骤3,对嵌入式系统进行上电复位,嵌入式系统开始进行初始化,处理器将自动从非易失存储器中存储的目标代码的系统复位地址处开始执行嵌入式程序;
步骤4,嵌入式处理器进入运行状态,执行后续嵌入式程序,如果指令Cache及数据Cache中的任意一个发生失靶、或者数据Cache向外部存储器进行回写操作,则执行步骤5;否则,则按照步骤4的方法继续执行后续的嵌入式程序,直到程序执行完毕;
步骤5,如果数据Cache需要进行对外部存储器的回写操作,或者嵌入式处理器访问数据Cache失靶且对应Cache行处于脏状态(dirty)时,此时嵌入式处理器需要向外部存储器中写入数据,则执行步骤6;否则,即嵌入式处理器对于指令及数据的读取操作发生Cache失靶,或者对于数据的写出操作发生数据Cache失靶且需要将写出地址对应的Cache行先读入数据Cache时,此时嵌入式处理器需要从外部存储器中读出数据,则执行步骤8;
步骤6,以指令Cache及数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成密码序列(pad),将pad异或Cache行的数据产生密文;
步骤7,将产生的密文根据嵌入式处理器计算出的存储地址,写入外部存储器中,然后按照步骤4的方法继续执行后续的嵌入式程序;
步骤8,以指令Cache数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文,然后将pad异或读取到的密文,得到嵌入式处理器需要的指令或者数据;
步骤9,将解密后的指令或者数据送入嵌入式处理器,并写入到对应片上Cache的一行中,然后按照步骤4的方法继续执行后续的嵌入式程序。
其中,在步骤2中所述的“在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中”,其作法如下:将目标代码中的代码段和数据段,按照指令Cache和数据Cache中的一行为单位,将其存放的物理地址进行截断、填充,然后采用选用的加密算法进行加密生成pad,然后将pad异或对应的Cache行产生密文,实现将目标代码进行加密;在生成pad过程中使用的加密算法和密钥,与步骤6、步骤7中使用的加密算法和密钥一致,以确保加密后的目标代码在嵌入式系统运行过程中可以被解密和使用;然后通过嵌入式系统中的JTAG(一种国际标准测试协议)接口将加密后的目标代码下载到嵌入式系统中的非易失存储器中;
其中,在步骤3中所述的“非易失存储器中存储的目标代码的系统复位地址”是指嵌入式系统上电后嵌入式处理器读取第一条指令的地址,该地址在嵌入式处理器和嵌入式系统设计完成后是一个固定的地址;
其中,在步骤4中所述的“指令Cache或者数据Cache中的任意一个发生失靶,或者数据Cache向外部存储器进行回写操作”包括以下几种情况:读指令Cache失靶;读数据Cache失靶,且对应的Cache行状态为干净(clean);读数据Cache失靶,且对应的Cache行状态为dirty;写指令Cache失靶,且对应的Cache行状态为clean;写指令Cache失靶,且对应的Cache行状态为dirty;指令控制数据Cache进行回写操作;
其中,在步骤6和步骤8中所述的“将Cache行对应的物理地址进行截断、填充”的方法是,不同容量的Cache所对应的Cache中一行数据的字节宽度是不同的,根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低几位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度;填充的方法可以选用固定的字节进行填充,也可以根据需要生成计数值或者偏移向量进行物理地址的填充;
其中,在步骤6和步骤8中所述的“使用硬件实现的加密逻辑进行加密”的过程中,所使用的硬件实现的加密逻辑是在嵌入式处理器芯片内部硬件实现的密码加密算法引擎,该密码引擎在嵌入式处理器芯片的连接位置是在Cache与系统总线之间,当嵌入式系统存在多个外部存储器时也无需将密码引擎实例多份;在对进出外部存储器的代码或数据进行加密和解密时,利用了异或操作三个操作数可任意交换的特性,使用了流密码的方式;因此在硬件实现时,只需要实现所选用密码算法的加密逻辑,而不需要实现解密逻辑电路,减少了实现代价;
其中,在步骤8中所述的“使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文”的过程中,使用硬件加密逻辑进行加密运算和从外部存储器中读取出密文的过程是同步并行进行的,这有效的降低了嵌入式系统在引入机密性保护机制后造成的性能损失。
通过以上步骤,本发明提供的一种基于硬件的嵌入式系统机密性保护方法能以较低的实现代价和性能损失实现对嵌入式系统中存储的程序代码和数据的机密性的保护,能有效的避免了恶意攻击对系统中存储、处理的程序和数据的非法访问和理解,能避免程序和数据信息的泄露,能防止基于返回导向编程和跳转导向编程方法的攻击。
3.优点及功效
本发明的有益功效在于:
本发明提供的是一种基于硬件的嵌入式系统机密性保护方法。本方法通过在嵌入式处理器内核的Cache和系统总线之间实现的密码加密逻辑,以Cache中的一行数据为粒度,将数据对应的物理地址进行截断、填充后作为pad,与明文或者密文进行异或操作,完成对存入外部存储器中的数据进行加密,对从外部存储器中读取的数据进行解密,实现了对嵌入式系统中存储的程序代码和数据的机密性保护。
(1)机密性保护过程中的密码计算使用专门设计的硬件实现,与基于协处理器或者软件实现方式相比,有效的减少了对嵌入式系统性能的损耗;
(2)使用了基于流密码的加密方法,先通过加密算法生成pad,然后通过pad异或明文和pad异或密文,分别实现了对嵌入式系统中代码、数据的加密和解密操作,而无需用到密码算法的解密逻辑,有效减少了对片上硬件资源的消耗;
(3)通过对物理地址截断、填充后进行加密处理产生pad,pad的产生过程与数据无关,因此可以将加密过程和访存过程并行进行,比传统法可以有效的降低机密性保护机制对系统性能的影响;
(4)本方法中使用的硬件加密逻辑是在嵌入式处理器内核的Cache和系统总线之间实现,对于具有多个外部存储器的嵌入式系统,不需要在每个外存控制器或者存储器芯片内逐一实例化密码引擎,降低了系统资源的消耗。
附图说明
图1是本发明所述方法的操作流程图。
图2是本发明所述方法的一个实施例硬件结构框图。
其中,图2中的代号AES是高级加密标准,是一种广泛应用的对称密钥加密标准。
具体实施方式
下面结合附图对本发明进行详细的描述,但不作为对本发明的限定。
图1是本发明的一种基于硬件的嵌入式系统机密性保护方法的操作流程图。
本发明一种基于硬件的嵌入式系统机密性保护方法,如图1所示,该方法包括具体实施步骤如下:
步骤1,根据选用的嵌入式处理器,选择对应的编译、链接工具链,将用户源程序经编译、链接生成嵌入式系统目标代码;
步骤2,在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中。这里采用的方法是将目标代码中的代码段和数据段,按照指令Cache和数据Cache中的一行为单位进行对齐,将其存放的物理地址进行截断、填充,采用选用的加密算法进行加密生成pad,然后将pad异或对应的Cache行产生密文,实现将目标代码进行加密。在生成pad过程中使用的加密算法和密钥,与步骤6、步骤7中使用的加密算法和密钥一致,以确保加密后的目标代码在嵌入式系统运行过程中可以被解密和使用;
步骤3,对嵌入式系统进行上电复位,嵌入式系统开始进行初始化,处理器将自动从非易失存储器中存储的目标代码的系统复位地址处开始执行嵌入式程序;
步骤4,嵌入式处理器进入运行状态,执行后续嵌入式程序,如果指令Cache或者数据Cache中的任意一个发生失靶,或者数据Cache向外部存储器进行回写操作,则执行步骤5;否则,则按照步骤4的方法继续执行后续的嵌入式程序,直到程序执行完毕;
步骤5,如果数据Cache需要进行对外部存储器的回写操作,或者嵌入式处理器访问数据Cache失靶,且对应Cache行处于dirty状态时,此时嵌入式处理器需要向外部存储器中写入数据,则执行步骤6;否则,即嵌入式处理器对于指令或者数据的读取操作发生Cache失靶,或者对于数据的写出操作发生数据Cache失靶,且需要将写出地址对应的Cache行先读入数据Cache时,此时嵌入式处理器需要从外部存储器中读出数据,则执行步骤8;
步骤6,以指令Cache或数据Cache中的一行为粒度,根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低几位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度;填充的方法可以选用固定的字节进行填充,也可以根据需要生成计数值或者偏移向量进行物理地址的填充。然后,使用硬件实现的加密逻辑进行加密生成pad,将pad异或Cache行的数据产生密文;
步骤7,将产生的密文根据嵌入式处理器计算出的存储地址,写入外部存储器中,然后按照步骤4的方法继续执行后续的嵌入式程序;
步骤8,以指令Cache或数据Cache中的一行为粒度,根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低几位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度;填充的方法可以选用固定的字节进行填充,也可以根据需要生成计数值或者偏移向量进行物理地址的填充。然后,使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文,然后将pad异或读取到的密文,得到嵌入式处理器需要的指令或者数据;
步骤9,将解密后的指令或者数据送入嵌入式处理器,并写入到对应片上Cache的一行中,然后按照步骤4的方法继续执行后续的嵌入式程序。
通过以上步骤,本发明提供的一种基于硬件的嵌入式系统机密性保护方法能以较低的实现代价和性能损失实现对嵌入式系统中存储的程序代码和数据的机密性的保护,能有效的避免了恶意攻击对系统中存储、处理的程序和数据的非法访问和理解,能避免程序和数据信息的泄露,能防止基于返回导向编程和跳转导向编程方法的攻击。
图2是本发明所述方法的一种实施例的硬件结构框图,该结构框图给出了OpenRisc处理器(一种32位精简指令集嵌入式处理器)平台上,采用AES加密标准作为选取的密码算法,使用本发明的基于硬件的嵌入式系统机密性保护方法对嵌入式系统进行机密性保护的一种实施例。下面以32位OpenRisc处理器平台为例,采用128位AES加密标准作为选取的密码算法,结合图2列举本发明的基于硬件的嵌入式系统机密性保护方法的一种实施例。该实施例中的基于硬件的嵌入式系统机密性保护方法包括:
步骤1,使用OpenRisc处理器指令集兼容的编译器和链接器对用户源程序代码进行编译、链接,生成二进制目标代码文件;
步骤2,在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中。这里采用的方法是将目标代码中的代码段和数据段,按照指令Cache和数据Cache中的一行为单位进行对齐(Openrisc处理器中Cache一行为16字节,即128位),将其存放的物理地址进行截断、填充,采用AES加密算法进行加密生成pad,然后将pad异或对应的Cache行产生密文,实现将目标代码进行加密。在生成pad过程中使用的AES加密算法和密钥,与步骤6、步骤7中使用的AES加密算法和密钥一致,以确保加密后的目标代码在嵌入式系统运行过程中可以被解密和使用;
步骤3,上电复位嵌入式系统进行初始化,OpenRisc处理器将会从非易失存储器中存储的目标代码的系统复位地址处开始执行嵌入式程序。这里的复位地址即上电后Openrisc处理器读取第一条指令的地址,该地址在Openrisc处理器和嵌入式系统设计完成后是一个固定的地址;
步骤4,嵌入式处理器进入运行状态,执行后续嵌入式程序,如果指令Cache或者数据Cache中的任意一个发生失靶,或者数据Cache向外部存储器进行回写操作,则执行步骤5;否则,则按照步骤4的方法继续执行后续的嵌入式程序,直到程序执行完毕;
步骤5,如果数据Cache需要进行对外部存储器的回写操作,或者嵌入式处理器访问数据Cache失靶,且对应Cache行处于dirty状态时,此时嵌入式处理器需要向外部存储器中写入数据,则执行步骤6;否则,即嵌入式处理器对于指令或者数据的读取操作发生Cache失靶,或者对于数据的写出操作发生数据Cache失靶,且需要将写出地址对应的Cache行先读入数据Cache时,此时嵌入式处理器需要从外部存储器中读出数据,则执行步骤8;
步骤6,以指令Cache或数据Cache中的一行为粒度(OpenRisc处理器中Cache一行为16字节,即128位),根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低4位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度,在本实施例中为128位;填充的方法可以选用固定的字节进行填充,也可以根据需要生成计数值或者偏移向量进行物理地址的填充。然后,使用硬件实现的加密逻辑(图2中AES加密逻辑)进行加密生成pad,将pad异或Cache行的数据产生密文;
步骤7,将产生的密文根据嵌入式处理器计算出的存储地址,写入外部存储器中,然后按照步骤4的方法继续执行后续的嵌入式程序;
步骤8,以指令Cache或数据Cache中的一行为粒度(Openrisc处理器中Cache一行为16字节,即128位),根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低4位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度,在本实施例中为128位;填充的方法可以选用固定的字节进行填充,也可以根据需要生成计数值或者偏移向量进行物理地址的填充。然后,使用硬件实现的加密逻辑(图2中AES加密逻辑)进行加密生成pad,与此同时从外部存储器中读取出密文,然后将pad异或读取到的密文,得到嵌入式处理器需要的指令或者数据;
步骤9,将解密后的指令或者数据送入嵌入式处理器,并写入到对应片上Cache的一行中,然后按照步骤4的方法继续执行后续的嵌入式程序。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都属于本发明所附的权利要求的保护范围。

Claims (7)

1.一种基于硬件的嵌入式系统机密性保护方法,其特征在于:该方法包括以下步骤:
步骤1,根据选用的嵌入式处理器,选择对应的编译、链接工具链,将用户源程序经编译、链接生成嵌入式系统目标代码;
步骤2,在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中;
步骤3,对嵌入式系统进行上电复位,嵌入式系统开始进行初始化,处理器将自动从非易失存储器中存储的目标代码的系统复位地址处开始执行嵌入式程序;
步骤4,嵌入式处理器进入运行状态,执行后续嵌入式程序,如果指令Cache及数据Cache中的任意一个发生失靶、及数据Cache向外部存储器进行回写操作两种情况中的一种情况发生,则执行步骤5;否则,则按照步骤4的方法继续执行后续的嵌入式程序,直到程序执行完毕;
步骤5,如果数据Cache需要进行对外部存储器的回写操作、及嵌入式处理器访问数据Cache失靶且对应Cache行处于脏状态即dirty两种情况中的一种情况发生时,此时嵌入式处理器需要向外部存储器中写入数据,则执行步骤6;否则,即嵌入式处理器对于指令及数据的读取操作发生Cache失靶、及对于数据的写出操作发生数据Cache失靶且需要将写出地址对应的Cache行先读入数据Cache两种情况中的一种情况发生时,此时嵌入式处理器需要从外部存储器中读出数据,则执行步骤8;
步骤6,以指令Cache及数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成密码序列即pad,将pad异或Cache行的数据产生密文;
步骤7,将产生的密文根据嵌入式处理器计算出的存储地址,写入外部存储器中,然后按照步骤4的方法继续执行后续的嵌入式程序;
步骤8,以指令Cache数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文,然后将pad异或读取到的密文,得到嵌入式处理器需要的指令及数据;
步骤9,将解密后的指令及数据送入嵌入式处理器,并写入到对应片上Cache的一行中,然后按照步骤4的方法继续执行后续的嵌入式程序;
通过以上步骤,本发明提供的一种基于硬件的嵌入式系统机密性保护方法,能以较低的实现代价和性能损失实现对嵌入式系统中存储的程序代码和数据的机密性的保护,能有效的避免了恶意攻击对系统中存储、处理的程序和数据的非法访问和理解,能避免程序和数据信息的泄露,能防止基于返回导向编程和跳转导向编程方法的攻击。
2.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤2中所述的“在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中”,其作法如下:将目标代码中的代码段和数据段,按照指令Cache和数据Cache中的一行为单位,将其存放的物理地址进行截断、填充,然后采用选用的加密算法进行加密生成pad,然后将pad异或对应的Cache行产生密文,实现将目标代码进行加密;在生成pad过程中使用的加密算法和密钥,与步骤6、步骤7中使用的加密算法和密钥一致,以确保加密后的目标代码在嵌入式系统运行过程中可以被解密和使用,然后通过嵌入式系统中的JTAG即一种国际标准测试协议接口将加密后的目标代码下载到嵌入式系统中的非易失存储器中。
3.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤3中所述的“非易失存储器中存储的目标代码的系统复位地址”是指嵌入式系统上电后嵌入式处理器读取第一条指令的地址,该地址在嵌入式处理器和嵌入式系统设计完成后是一个固定的地址。
4.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤4中所述的“指令Cache和数据Cache中的任意一个发生失靶、及数据Cache向外部存储器进行回写操作”,包括以下几种情况:读指令Cache失靶;读数据Cache失靶,且对应的Cache行状态为干净即clean;读数据Cache失靶,且对应的Cache行状态为dirty;写指令Cache失靶,且对应的Cache行状态为clean;写指令Cache失靶,且对应的Cache行状态为dirty;指令控制数据Cache进行回写操作。
5.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤6和步骤8中所述的“将Cache行对应的物理地址进行截断、填充”的方法是,不同容量的Cache所对应的Cache中一行数据的字节宽度是不同的,根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低几位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度;填充的方法能选用固定的字节进行填充,也能根据需要生成计数值及偏移向量进行物理地址的填充。
6.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤6和步骤8中所述的“使用硬件实现的加密逻辑进行加密”的过程中,所使用的硬件实现的加密逻辑是在嵌入式处理器芯片内部硬件实现的密码加密算法引擎,该密码引擎在嵌入式处理器芯片的连接位置是在Cache与系统总线之间,当嵌入式系统存在复数个外部存储器时也无需将密码引擎实例多份;在对进出外部存储器的代码及数据进行加密和解密时,利用了异或操作三个操作数能任意交换的特性,使用了流密码的方式;因此在硬件实现时,只需要实现所选用密码算法的加密逻辑,而不需要实现解密逻辑电路,减少了实现代价。
7.根据权利要求1所述的一种基于硬件的嵌入式系统机密性保护方法,其特征在于:
在步骤8中所述的“使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文”的过程中,使用硬件加密逻辑进行加密运算和从外部存储器中读取出密文的过程是同步并行进行的,这有效的降低了嵌入式系统在引入机密性保护机制后造成的性能损失。
CN201810762746.4A 2018-07-12 2018-07-12 一种基于硬件的嵌入式系统机密性保护方法 Active CN108959129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810762746.4A CN108959129B (zh) 2018-07-12 2018-07-12 一种基于硬件的嵌入式系统机密性保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810762746.4A CN108959129B (zh) 2018-07-12 2018-07-12 一种基于硬件的嵌入式系统机密性保护方法

Publications (2)

Publication Number Publication Date
CN108959129A true CN108959129A (zh) 2018-12-07
CN108959129B CN108959129B (zh) 2021-08-24

Family

ID=64482857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810762746.4A Active CN108959129B (zh) 2018-07-12 2018-07-12 一种基于硬件的嵌入式系统机密性保护方法

Country Status (1)

Country Link
CN (1) CN108959129B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204714B2 (en) 2018-10-23 2021-12-21 Microsoft Technology Licensing, Llc Hybrid use of non-volatile memory as storage device and cache
LU102287B1 (en) * 2020-12-15 2022-06-15 Microsoft Technology Licensing Llc Data security when tiering volatile and non-volatile byte-addressable memory
US11403214B2 (en) 2017-06-15 2022-08-02 Microsoft Technology Licensing, Llc Memory management in non-volatile memory
CN118171308A (zh) * 2024-05-16 2024-06-11 贵州航天控制技术有限公司 一种嵌入式程序的加密方法及装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201134097Y (zh) * 2007-12-26 2008-10-15 浪潮电子信息产业股份有限公司 集成raid和sas控制ip核的soc芯片
CN101782956A (zh) * 2010-02-09 2010-07-21 杭州晟元芯片技术有限公司 一种基于aes实时加密的数据保护方法及装置
CN101882189A (zh) * 2010-06-30 2010-11-10 华南理工大学 一种保证程序完整性的嵌入式系统及其实现方法
CN102004880A (zh) * 2010-11-23 2011-04-06 复旦大学 一种适用于嵌入式系统的数据保护单元
CN102355352A (zh) * 2011-07-24 2012-02-15 哈尔滨工程大学 一种数据机密性和完整性保护方法
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
US20150086012A1 (en) * 2013-09-25 2015-03-26 Siddhartha Chhabra Secure video ouput path
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN104991526A (zh) * 2015-05-04 2015-10-21 中国科学院软件研究所 工业控制系统安全支撑框架及其数据安全传输和存储方法
US20160033575A1 (en) * 2014-02-12 2016-02-04 Ultrasoc Technologies Ltd. Functional Testing of an Integrated Circuit Chip
CN107111710A (zh) * 2014-09-13 2017-08-29 先进元素科技公司 用于基于安全和可靠标识的计算的方法和系统
CN107220560A (zh) * 2017-06-22 2017-09-29 北京航空航天大学 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201134097Y (zh) * 2007-12-26 2008-10-15 浪潮电子信息产业股份有限公司 集成raid和sas控制ip核的soc芯片
CN101782956A (zh) * 2010-02-09 2010-07-21 杭州晟元芯片技术有限公司 一种基于aes实时加密的数据保护方法及装置
CN101882189A (zh) * 2010-06-30 2010-11-10 华南理工大学 一种保证程序完整性的嵌入式系统及其实现方法
CN102004880A (zh) * 2010-11-23 2011-04-06 复旦大学 一种适用于嵌入式系统的数据保护单元
CN102355352A (zh) * 2011-07-24 2012-02-15 哈尔滨工程大学 一种数据机密性和完整性保护方法
US20150086012A1 (en) * 2013-09-25 2015-03-26 Siddhartha Chhabra Secure video ouput path
US20160033575A1 (en) * 2014-02-12 2016-02-04 Ultrasoc Technologies Ltd. Functional Testing of an Integrated Circuit Chip
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN107111710A (zh) * 2014-09-13 2017-08-29 先进元素科技公司 用于基于安全和可靠标识的计算的方法和系统
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
CN104991526A (zh) * 2015-05-04 2015-10-21 中国科学院软件研究所 工业控制系统安全支撑框架及其数据安全传输和存储方法
CN107220560A (zh) * 2017-06-22 2017-09-29 北京航空航天大学 一种基于数据缓存扩充的嵌入式系统数据完整性保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘烊: "嵌入式系统中数据存储保护的关键技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
朱庆春: "片外存储器的加密与完整性保护研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403214B2 (en) 2017-06-15 2022-08-02 Microsoft Technology Licensing, Llc Memory management in non-volatile memory
US11204714B2 (en) 2018-10-23 2021-12-21 Microsoft Technology Licensing, Llc Hybrid use of non-volatile memory as storage device and cache
LU102287B1 (en) * 2020-12-15 2022-06-15 Microsoft Technology Licensing Llc Data security when tiering volatile and non-volatile byte-addressable memory
WO2022133388A1 (en) * 2020-12-15 2022-06-23 Microsoft Technology Licensing, Llc Data security when tiering volatile and non-volatile byte-addressable memory
CN118171308A (zh) * 2024-05-16 2024-06-11 贵州航天控制技术有限公司 一种嵌入式程序的加密方法及装置

Also Published As

Publication number Publication date
CN108959129B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
Henson et al. Memory encryption: A survey of existing techniques
TWI460604B (zh) 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法
JP4073913B2 (ja) 開放型汎用耐攻撃cpu及びその応用システム
CN108959129A (zh) 一种基于硬件的嵌入式系统机密性保护方法
US6345359B1 (en) In-line decryption for protecting embedded software
KR101863143B1 (ko) 메모리 무결성
TWI468971B (zh) 安全軟體下載
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
US20150294123A1 (en) System and method for sharing data securely
US20070101158A1 (en) Security region in a non-volatile memory
KR101303278B1 (ko) 비트스트림 보호를 위한 fpga 장치 및 그 방법
CN104156642A (zh) 一种基于安全触控屏控制芯片的安全密码输入系统和方法
EP2375355A1 (en) Method and device for protecting memory content
CN204242180U (zh) 一种基于安全触控屏控制芯片的安全密码输入系统
US20170063544A1 (en) System and method for sharing data securely
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
CN107533615A (zh) 用于利用安全飞地来强化数据加密的技术
TW201918923A (zh) 安全邏輯系統及操作安全邏輯系統的方法
GB2528780A (en) Security against memory replay attacks in computing systems
CN112906015A (zh) 一种基于硬件标签的内存敏感数据加密保护系统
CN114785503A (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
CN109325322B (zh) 用于嵌入式平台的软件知识产权保护系统和方法
CN107563226B (zh) 一种存储器控制器、处理器模块及密钥更新方法
CN101901629A (zh) 非易失性存储器保护系统和保护方法
CN102004880B (zh) 一种适用于嵌入式系统的数据保护单元

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