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

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

Info

Publication number
CN108959129B
CN108959129B CN201810762746.4A CN201810762746A CN108959129B CN 108959129 B CN108959129 B CN 108959129B CN 201810762746 A CN201810762746 A CN 201810762746A CN 108959129 B CN108959129 B CN 108959129B
Authority
CN
China
Prior art keywords
data
cache
embedded
instruction
hardware
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.)
Active
Application number
CN201810762746.4A
Other languages
English (en)
Other versions
CN108959129A (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

Images

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 (1)

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中所述的“在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式***的非易失存储器中”,其作法如下:将目标代码中的代码段和数据段,按照指令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,与此同时从外部存储器中读取出密文”的过程中,使用硬件加密逻辑进行加密运算和从外部存储器中读取出密文的过程是同步并行进行的,这有效的降低了嵌入式***在引入机密性保护机制后造成的性能损失。
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 CN108959129A (zh) 2018-12-07
CN108959129B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201709499D0 (en) 2017-06-15 2017-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
CN118171308A (zh) * 2024-05-16 2024-06-11 贵州航天控制技术有限公司 一种嵌入式程序的加密方法及装置

Citations (6)

* 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 哈尔滨工程大学 一种数据机密性和完整性保护方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501668B2 (en) * 2013-09-25 2016-11-22 Intel Corporation Secure video ouput path
GB2506825B (en) * 2014-02-12 2014-10-15 Ultrasoc Technologies Ltd Functional testing of an integrated circuit chip
CN104156659B (zh) * 2014-08-14 2017-02-01 电子科技大学 一种嵌入式***的安全启动方法
WO2016040506A1 (en) * 2014-09-13 2016-03-17 Advanced Elemental Technologies, Inc. Methods and systems for secure and reliable identity-based computing
CN104991526B (zh) * 2015-05-04 2017-09-26 中国科学院软件研究所 工业控制***安全支撑框架及其数据安全传输和存储方法
CN107220560B (zh) * 2017-06-22 2020-04-07 北京航空航天大学 一种基于数据缓存扩充的嵌入式***数据完整性保护方法

Patent Citations (6)

* 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 哈尔滨工程大学 一种数据机密性和完整性保护方法
CN104794393A (zh) * 2015-04-24 2015-07-22 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱庆春.片外存储器的加密与完整性保护研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2014,(第06期), *
片外存储器的加密与完整性保护研究;朱庆春;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140615(第06期);第I137-54页 *

Also Published As

Publication number Publication date
CN108959129A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108959129B (zh) 一种基于硬件的嵌入式***机密性保护方法
Yan et al. Improving cost, performance, and security of memory encryption and authentication
Henson et al. Memory encryption: A survey of existing techniques
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
Rogers et al. Using address independent seed encryption and bonsai merkle trees to make secure processors os-and performance-friendly
CN108345806B (zh) 一种硬件加密卡和加密方法
US6345359B1 (en) In-line decryption for protecting embedded software
US10237059B2 (en) Diversified instruction set processing to enhance security
JP2021505995A (ja) アドレススクランブルのための記憶機器及び方法
US10095636B2 (en) Secure computing
KR20160093702A (ko) 메모리 무결성
Elbaz et al. A parallelized way to provide data encryption and integrity checking on a processor-memory bus
US8745407B2 (en) Virtual machine or hardware processor for IC-card portable electronic devices
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
Crenne et al. Configurable memory security in embedded systems
CN112906015A (zh) 一种基于硬件标签的内存敏感数据加密保护***
CN101901629A (zh) 非易失性存储器保护***和保护方法
CN102004880B (zh) 一种适用于嵌入式***的数据保护单元
JP6899308B2 (ja) 情報処理装置および情報処理装置のデータ処理方法
Vaslin et al. A security approach for off-chip memory in embedded microprocessor systems
CN105939192A (zh) 数据加密的方法及装置
Hossain et al. Hexon: Protecting firmware using hardware-assisted execution-level obfuscation
Vaslin et al. Memory security management for reconfigurable embedded systems
Wang et al. Hardware-based protection for data security at run-time on embedded systems
Gomathisankaran et al. Architecture support for 3d obfuscation

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