CN101847195B - 基于Cache时间特性的防御攻击方法 - Google Patents

基于Cache时间特性的防御攻击方法 Download PDF

Info

Publication number
CN101847195B
CN101847195B CN2010102102463A CN201010210246A CN101847195B CN 101847195 B CN101847195 B CN 101847195B CN 2010102102463 A CN2010102102463 A CN 2010102102463A CN 201010210246 A CN201010210246 A CN 201010210246A CN 101847195 B CN101847195 B CN 101847195B
Authority
CN
China
Prior art keywords
instruction
fundamental block
method based
program
meant
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
Application number
CN2010102102463A
Other languages
English (en)
Other versions
CN101847195A (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong 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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN2010102102463A priority Critical patent/CN101847195B/zh
Publication of CN101847195A publication Critical patent/CN101847195A/zh
Application granted granted Critical
Publication of CN101847195B publication Critical patent/CN101847195B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

一种信息安全技术领域的基于Cache时间特性的防御攻击方法,通过对二进制代码进行加密,得到加密程序;然后以基本块为单位逐条解释加密程序并依次提交进行中间表示转化处理,得到中间表示数据;当中间表示数据中包含访问内存指令时,则在该中间表示数据的基本块的中间表示中注入冗余指令后进行翻译处理,得到可执行指令并发送至硬件进行执行。本发明采取边执行,边修改的动态策略,大大提高了执行效率;可以直接应用于现有的加密程序,用户无需对源程序进行更改即可直接进行应用。

Description

基于Cache时间特性的防御攻击方法
技术领域
本发明涉及的是一种信息安全技术领域的方法,具体是一种利用动态二进制翻译技术的基于Cache时间特性的防御攻击方法。
背景技术
动态二进制翻译是虚拟执行技术中应用最为广泛的方法,是为遗留代码提供移植可能性和提高软件的平台适应性的一种有效手段,它在不需要可执行程序的源代码的情况下,可以动态地将源机器平台上的二进制程序经过转换,运行于其他目标机器平台上。同时,动态二进制翻译技术提供了探测程序行为的可能性,也提供了对源程序进行修改的方法,使程序执行变得可知、可控。正是动态二进制翻译技术的这种功能特性,使之可以运用于旁路攻击的防御。
在密码学中,旁路攻击指这样一种攻击方式:它不以通过暴力破解或针对加密方法中所采用的数学模型的漏洞为攻击手段,而是通过分析加密程序的执行平台在加密运算中所泄漏的一种或多种旁路信息来获取密钥的物理攻击方法。所述的旁路信息包括时间信息、电能开销、电磁峰值甚至噪音等信息。简言之,旁路攻击不攻击密钥本身,而是攻击那些运行于不安全系统上的加密程序,正是这类不安全的系统导致了旁路信息的产生。系统的不安全主要是由于体系结构设计的不合理所导致的,本发明所防御的旁路攻击就是利用了系统在硬件实现上采用了Cache-Memory存储结构。为了缓解CPU与主存储器之间的存取速度差,在现代计算机系统中一般都采用了Cache技术。Cache是位于CPU和DRAM主存之间的小规模高速缓冲存储器。它保存着CPU最常用的数据或指令。CPU直接访问Cache时称为“命中”(Cache hit),否则称为“缺失”(Cache miss)。当前很多加密方法如AES(Advanced Encryption Standard),出于性能的考虑,在实现过程中都采用了查找表。这种做法虽然大大降低了方法的时间复杂度,但也导致在加密过程中Cache信息的泄露。由于Cache容量的性质,加密过程中使用到的查找表无法完全放入Cache中,这必然引起加密过程中“命中”和“缺失”两种情况皆会出现,其中宏观的一种表现形式就是程序在执行过程中时间的变化,称为Cache的时间特性。基于测量加密程序执行时间的旁路攻击称为时间特性旁路攻击(Timing attack),这是目前使用最多的旁路攻击方式,也是本发明所针对的旁路攻击方式。
1992年,Kocher指出使用查找表的加密程序会由于Cache的存在而引起执行时间上的特性,后来Page从理论上论证了Cache能被用于旁路攻击。2005年,Bernstein首次成功实现了针对AES加密方法的旁路攻击。Bonneau基于Bernstein的工作,提出针对AES更加有效的旁路攻击方法。虽然在采用了不同的策略,但是他们都基于这样一个事实,即方法的执行时间直接受Cache缺失次数的影响。基于Cache时间特性的旁路攻击已被证明是一种有效的且在现实中是可行的攻击手段。从这个意义上说,任何采用Cache-Memory这种存储结构的设备都有被攻击的可能。因此,针对此类攻击的防御方法有很强的现实需求。
经过对现有技术的检索发现,现有技术手段主要是从硬件与软件这两方面提出防御措施。从硬件方面来看,大多数研究都是提议修改Cache的设计,希望能从根本上解决Cache可被用作旁路泄露加密程序的运算信息这一问题。Page提出动态划分Cache(Partitioned CacheArchitecture),为特定的应用程序指定特定的分区,并对该分区加锁,以防止敏感数据的泄露。而另外一些研究者则认为Cache冲突是导致加密方法运算信息泄露的根本原因,并提出PLCache(Partition-Locked Cache,分区加锁缓存)与RPCache(Random Permutation Cache,随机排列缓存)。此外,还有人提出重新设计体系架构,重新设计导致执行时间不可预测的部件,如Cache、硬件流水、分支预测等,以达到程序执行时间恒定的目标。从软件方面来看,提出的观点一般集中在对加密方法实现的修改,目的是通过提高攻击者的负担来降低旁路攻击的成功率。加密方法实现时采用查找表是出于保证方法的时间复杂度,就目前而言还很难找到不以牺牲方法性能为代价的替代方法。一种可选的方案是采用小压缩查找表的规模,譬如说,当查找表的元素首次被访问,整个查找表都可以被加载到内存中,但这只是增加了攻击者的分析难度,并没从根本上解决问题。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于Cache时间特性的防御攻击方法,通过动态二进制翻译器运行加密程序的二进制代码,使整个加密方法的执行过程变得可知,可控,且可改,从而隐藏掉旁路攻击所需要的信息来进行防御。利用动态二进制翻译技术创建沙盒(Sandbox),以沙盒作为加密程序运行和添加冗余指令的场所,使程序运行于一个安全的运行环境中。换言之,沙盒在旁路攻击与加密程序之间建立起一道屏障,使攻击者无法获得旁路攻击需要的信息。
本发明是通过以下技术方案实现的,本发明包括以下步骤:
第一步、使防御系统运行支持AES加密算法的实现程序;
所述的实现程序是指:支持AES加密算法的二进制文件,该实现程序实现了基本的传输层资料加密功能。
第二步、防御系统对加密程序进行代码解析:逐条解释加密程序并进行中间表示转换处理,以基本块为单位提交给翻译器处理;
所述的逐条解释加密程序是指:当一个二进制程序运行于动态二进制翻译器时,动态二进制翻译器的解释器根据程序执行顺序逐条对程序的二进制码进行解析,即解释器根据读取的二进制码分析出该二进制码表示的操作符和操作数信息;当该二进制程序是Intel ia32架构上的程序则解释器能够将二进制码还原为ia32架构的指令。
所述的中间表示转化处理是指:通过一对多的翻译模式,使用若干条中间语言进行等效表示解释器解析出的指令。
所述的以基本块为单位提交给翻译器处理是指:以动态基本块为单位,该动态基本块位于两条分支或跳转指令之间,当防御系统转化一条分支或跳转指令后得到的中间表示构成了一个动态基本块时将该动态基本块提交给翻译器进行构造处理,防御系统依次转化所有分支或跳转指令直至加密程序执行结束。
第三步、当基本块中包含访问内存指令时,则在该基本块中注入冗余指令后执行第四步;否则直接执行第四步;
所述的访问内存指令是指:对内存的某块地址空间进行读操作或写操作的指令,该指令根据生成的随机数来确定被访问内存的地址。
所述的注入冗余指令是指:在防御系统初始化阶段,预先分配出内存空间并记录这块内存空间的地址,当基本块中包含访问内存指令时,根据随机数设置每条访问内存指令中的内存地址。
所述的随机数是指:采用Intel指令集中的RDTSC(Read Time-Stamp Counter读取时间戳计数器)指令的返回值生成随机数。
第四步、对第三步或第二步得到的基本块进行翻译处理,得到可执行指令并发送至硬件进行执行。
所述的翻译处理是指:以基本块为单位对中间表示数据逐条进行译码,每完成一个基本块的译码后即将得到的目标代码保存到内存中并提交执行,直至基本块的执行结束后回到第一步处理下一个基本块,直至加密程序运行完毕。
与现有技术相比,本发明具有以下优点:采取边执行,边修改的动态策略,大大提高了执行效率;可以直接应用于现有的加密程序,用户无需对源程序进行更改即可直接进行应用。
附图说明
图1为防御系统的抽象逻辑模块示意图。
图2为实施例流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本实施例包括以下步骤:
第一步、选定加密算法的实现程序,并将其运行于防御系统之上:选择使用OpenSSL提供的AES加密程序,如OpenSSL 0.9.7a。OpenSSL是套开放源代码的SSL套件,实现了基本的传输层资料加密功能,包括AES加密算法。确定加密程序后,通过防御系统来运行该加密程序。
第二步、防御系统对加密程序进行代码解析:逐条解释加密程序并进行中间表示转换处理,以基本块为单位提交给翻译器处理;
所述的逐条解释加密程序是指:当一个二进制程序运行于动态二进制翻译器时,动态二进制翻译器的解释器会根据程序执行顺序逐条对程序的二进制码进行解析。解释器能够根据读入的二进制码,分析出该二进制码表示的操作符,操作数信息。如果该二进制程序是Intel ia32架构上的程序,则解释器能够将二进制码还原为ia32架构的指令。
所述的中间表示转化处理是指:通过一对多的翻译模式,使用多条中间语言来表示解释器解析出的指令,使二者在语义上等效。由于中间语言是低层次的虚拟精简机器指令,所以用中间语言表示后方便了后续翻译器的访问内存指令分析,且语义上的等效保证了程序的正确指令。以动态二进制翻译器Crossbit的中间语言VInst为例,MIPS的1b指令:
lb rt,offset(rs)
可用如下两条中间语言进行表示:
LD    (rs,offset),BYTE,rt
SEXT  rt,BYTE,rt
所述的以基本块为单位提交给翻译器处理是指:动态二进制翻译器的一个特性就是以基本块为单位进行翻译执行。此处的基本块为动态基本块,一个动态基本块在一条分支或跳转指令后开始,跟随程序执行流,在下一个分支或跳转指令时结束。当转化得到的中间表示构成了一个基本块时,系统就会将该部分中间表示提交给翻译器进行下一步处理,解释器转入下一个基本块的构造过程,如此循环,直至加密程序执行结束。
第三步、当中间表示数据中包含访问内存指令时,则在该中间表示数据的基本块的中间表示中注入冗余指令后执行第四步;否则直接执行第四步;
所述的访问内存指令是指:对内存的某块地址空间进行读操作或写操作的指令,该指令根据生成的随机数来确定被访问内存的地址。
所述的冗余指令包括随机数生成指令和系列访问内存指令,其中:
随机数生成指令的唯一目的在于生成随机数。随机数生成有多种方法,从本专利所述防御系统的角度来说,希望所采用的随机数生成方案尽量简单。因此,本实施例采用Intel指令集中的RDTSC指令的返回值来决定生成的随机数。
RDTSC指令全称为Read Time-Stamp Counter,其中Time-Stamp Counter是一个64位的MSR寄存器,在每个时钟信号到来时计数加一,该寄存器是x86架构上最精确的计数器之一。RDTSC指令读取TSC的计数值到EDX::EAX寄存器,其中EDX寄存器存放高32位值,EAX寄存器存放低32位值。如果要生成0~1023之间的随机数,只需每次使用RDTSC指令后读取EAX寄存器的后10位的值。因此在某一时刻,使用RDTSC指令后EAX寄存器的后10位数值总是处于0~1023某个值,理论上等同于生成一个0到1023范围内的随机数。
所插入的冗余指令,会与源程序的指令一起被执行,所以冗余指令在设计上必须满足以下两个要求:
1.冗余指令在执行逻辑上要独立于源指令。这样才能保证运行结果的正确性,程序逻辑不被冗余指令影响,即必须保证添加冗余指令后的执行结果与未添加时的执行结果保持一致。
2.冗余指令的执行时间需要具备随机性的特点。随机性的特性破坏了Cache时间特性与加密算法执行之间的关联性,使Cache的时间特性不再直接反映出加密算法的规律,达到防御攻击的目的。通过生成随机数来保证随机性。
基于上述两个要求,采用如下方法:
首先,在防御系统初始化阶段,预先分配出一块内存空间,记录这块内存空间的地址。
接着,插入系列访问内存指令。根据生成的随机数来设置每条访问内存指令中的内存地址。
下面通过例子对上述方法进行说明:
在防御系统初始化阶段,在堆区分配了一块内存空间,地址从0xA0000000到0xA00003FF。以RDTSC指令生成的随机数作为偏移量来确定访问内存指令中的地址,该数范围在0至1023之间。如果生成的随机数为255,则访问内存指令中的内存地址就为0xA0000FF,可以插入如下访问内存指令:
LD r,0xA00000FF
上式意为读取0xA00000FF地址的内容到寄存器r。
第四步、对第三步或第二步中得到的中间表示数据进行翻译处理,得到可执行指令并发送至硬件进行执行。
所述的翻译处理是指:以基本块为单位对中间表示数据逐条进行译码,每完成一个基本块的译码后即将得到的目标代码保存到内存中并提交执行,直至基本块的执行结束后回到第一步处理下一个基本块,直至加密程序运行完毕。
如图2所示,上述实施方法具体通过在动态二进制翻译器Crossbit上实现:
CrossBit是一个动态二进制翻译系统,它可以为执行在多种不同体系结构的源程序,通过翻译和优化的方法,提供异构架构下的执行环境。为了实现多源多目标,CrossBit使用了中间代码层,这样能减少翻译路径。只需要把前端二进制映像程序(前端)翻译成中间代码块,然后再把中间代码块翻译成对应的目标平台代码(后端),就能形成一种二进制翻译器。具体选用何种前端和后端根据实际情况进行选择。同时,好的中间语言的设计能方便访问内存指令的识别,例如Crossbit的中间语言指令集VInst。本实施例在具体实施中采用了前端为IA32,后端为x86版本的Crossbit,通过在Crossbit应用本实施例,使之成为适合于加密程序运行的沙盒。
Crossbit初始化时,在Crossbit程序自身的4G内存空间的未使用区域预分配了一块足够大的内存,这部分被保留的内存区域用于冗余指令涉及的访问内存操作。注入的冗余指令中涉及的访问内存操作只针对这部分已被分配的内存区域。这样就可以保证注入的冗余指令不会影响到源指令,保持程序运行的正确性。Crossbit以基本块为单位执行加密程序。对于每一个基本块,Crossbit按如下流程进行操作:
1)Crossbit逐条把一个基本块的二进制代码解释成中间代码,当结束一个基本块的解释后,保存为一个VBlock数据结构。此时Crossbit充当了解释器的角色。
2)判断VBlock中是否有访问内存指令。Crossbit的中间语言指令集VInst在设计上保持了一些特性,其中一个重要特性就是只有LD和ST两条指令可以读写内存。只需设置一个过滤器用于识别LD和ST指令,就能确定该VBlock是否包含了访问内存指令。从第二步开始Crossbit进入翻译器的角色。根据判断的结果有如下两种处理方式:
①如果VBlock中不含访问内存指令,不作处理跳到步骤4);
②如果VBlock中含有访问内存指令,执行步骤3)。
3)添加冗余指令。冗余指令包含两个部分:随机数生成指令和访问内存指令。利用Intel指令集中的RDTSC指令的返回值来决定生成的随机数。RDTSC指令返回x86结构中的时间计数器(Time-Stamp Counter)的值,它是x86结构上最精确的计数器之一。根据生成的随机数来确定访问内存指令访问内存的目的地址,这部分内存地址被限制在初始化时分配的内存空间里。
4)把中间语言翻译成目标代码。Crossbit在翻译完一个VBlock对象后会生成一个TBlock对象,用于存放翻译后的目标代码,提交目标平台运行。每个TBlock都对应一个加密程序中的基本块。
Crossbit以基本块为单位按以上流程动态翻译直至加密程序运行结束。实施例证明以此种方式运行的加密程序可以有效的防御基于Cache时间特性的旁路攻击。
实施例采用OpenSSL0.9.7a版本的AES加密程序,分别采用两种方案运行加密程序,第一种为直接运行加密程序,第二种通过Crossbit实现的防御系统再运行加密程序。同时采用Bonneu提出的旁路攻击方法尝试对加密程序的破解。实施例比对了三组密钥在两种方案下的破解情况,结果显示,Bonneu的旁路攻击方法能够破解出直接运行是AES加密程序的密钥,而对运行于防御系统上的AES加密程序失效。实施例结果证明,本实施例所述的防御方法能够在不修改加密程序代码的情况下,成功实现对基于Cache时间特性旁路攻击的防御。
  Cipher key   AES(OpenSSL 0.9.7a)   AES running in Sandbox
  Keyl   Success   Failure
  Key2   Success   Failure
  Key3   Success   Failure

Claims (8)

1.一种基于Cache时间特性的防御攻击方法,其特征在于,包括以下步骤:
第一步、通过防御系统运行支持AES加密算法的实现程序;
第二步、防御系统对加密程序进行代码解析:逐条解释加密程序并进行中间表示转换处理,以基本块为单位提交给翻译器处理;
第三步、当基本块中包含访问内存指令时,则在该基本块中注入冗余指令后执行第四步;否则直接执行第四步;
第四步、对第三步或第二步得到的基本块进行翻译处理,得到可执行指令并发送至硬件进行执行;
所述的注入冗余指令是指:在防御系统初始化阶段,预先分配出内存空间并记录这块内存空间的地址,当基本块中包含访问内存指令时,根据随机数设置每条访问内存指令中的内存地址。
2.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的实现程序是指:支持AES加密算法的二进制文件,该实现程序实现了基本的传输层资料加密功能。
3.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的逐条解释加密程序是指:当一个二进制程序运行于动态二进制翻译器时,动态二进制翻译器的解释器根据程序执行顺序逐条对程序的二进制码进行解析,即解释器根据读取的二进制码分析出该二进制码表示的操作符和操作数信息;当该二进制程序是Intel ia32架构上的程序则解释器能够将二进制码还原为ia32架构的指令。
4.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的中间表示转化处理是指:通过一对多的翻译模式,使用若干条中间语言进行等效表示解释器解析出的指令。
5.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的以基本块为单位提交给翻译器处理是指:以动态基本块为单位,该动态基本块位于两条分支或跳转指令之间,当防御系统转化一条分支或跳转指令后得到的中间表示构成了一个动态基本块时将该动态基本块提交给翻译器进行构造处理,防御系统依次转化所有分支或跳转指令直至加密程序执行结束。
6.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的访问内存指令是指:对内存的某块地址空间进行读操作或写操作的指令,该指令根据生成的随机数来确定被访问内存的地址。
7.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的随机数是指:采用Intel指令集中的读取时间戳计数器指令的返回值生成随机数。
8.根据权利要求1所述的基于Cache时间特性的防御攻击方法,其特征是,所述的翻译处理是指:以基本块为单位对中间表示数据逐条进行译码,每完成一个基本块的译码后即将得到的目标代码保存到内存中并提交执行,直至基本块的执行结束后回到第一步处理下一个基本块,直至加密程序运行完毕。
CN2010102102463A 2010-06-26 2010-06-26 基于Cache时间特性的防御攻击方法 Expired - Fee Related CN101847195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102102463A CN101847195B (zh) 2010-06-26 2010-06-26 基于Cache时间特性的防御攻击方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102102463A CN101847195B (zh) 2010-06-26 2010-06-26 基于Cache时间特性的防御攻击方法

Publications (2)

Publication Number Publication Date
CN101847195A CN101847195A (zh) 2010-09-29
CN101847195B true CN101847195B (zh) 2012-01-04

Family

ID=42771813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102102463A Expired - Fee Related CN101847195B (zh) 2010-06-26 2010-06-26 基于Cache时间特性的防御攻击方法

Country Status (1)

Country Link
CN (1) CN101847195B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933106B (zh) * 2016-04-08 2019-03-05 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
CN108964874B (zh) * 2017-05-17 2020-10-27 中国科学技术大学 抗路径差异攻击的aes加密方法
CN110036377B (zh) * 2017-06-28 2023-06-02 辉达公司 可缓存的但不可通过推测指令访问的内存类型
CN110018811B (zh) * 2019-04-15 2021-06-15 北京智芯微电子科技有限公司 Cache数据处理方法以及Cache
CN115001728B (zh) * 2021-06-28 2024-01-23 河南科家创新科技集团有限公司 一种计算机前端处理方法
CN117521061B (zh) * 2024-01-05 2024-03-15 南京南自华盾数字技术有限公司 一种基于二进制转换器的定时旁路攻击安全防护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387969A (zh) * 2008-10-16 2009-03-18 上海交通大学 软硬件协同设计的动态二进制翻译方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387969A (zh) * 2008-10-16 2009-03-18 上海交通大学 软硬件协同设计的动态二进制翻译方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马舒兰.动态二进制翻译中的Tcache的设计与实现——基于动态二进制翻译系统CrossBit的优化.《中国优秀硕士学位论文全文数据库 信息科技辑》.2008, *

Also Published As

Publication number Publication date
CN101847195A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101847195B (zh) 基于Cache时间特性的防御攻击方法
Ren et al. Constants count: Practical improvements to oblivious {RAM}
Jiang et al. A novel side-channel timing attack on GPUs
Fustos et al. Spectreguard: An efficient data-centric defense mechanism against spectre attacks
Maas et al. Phantom: Practical oblivious computation in a secure processor
Minkin et al. Fallout: Reading kernel writes from user space
Wang et al. New cache designs for thwarting software cache-based side channel attacks
May et al. Random register renaming to foil DPA
KR20200051694A (ko) 호출 경로 의존 인증
CN105046117A (zh) 一种具有指令集随机化的代码虚拟化软件保护系统
CN103761070A (zh) 微处理器以及相关的操作方法、以及加密方法
Alpirez Bock et al. On the ineffectiveness of internal encodings-revisiting the DCA attack on white-box cryptography
US11775177B2 (en) Integrity tree for memory integrity checking
CN101866406A (zh) 一种栈溢出攻击防御方法
CN106650340A (zh) 一种采用动态细粒度代码隐藏与混淆技术的二进制软件保护方法
Agosta et al. A multiple equivalent execution trace approach to secure cryptographic embedded software
CN107194246A (zh) 一种用于实现动态指令集随机化的cpu
Karimi et al. Hardware/software obfuscation against timing side-channel attack on a GPU
CN111538962A (zh) 程序控制流混淆方法、系统、存储介质、云服务器及应用
Che et al. Imbalance-aware scheduler for fast and secure ring oram data retrieval
Chen et al. Lightweight and secure branch predictors against Spectre attacks
Rogers et al. Memory predecryption: hiding the latency overhead of memory encryption
Bao et al. Reducing timing side-channel information leakage using 3D integration
CN115238281A (zh) 一种高效的基于混合oram的侧信道防御方法
Fletcher Ascend: An architecture for performing secure computation on encrypted data

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120104

Termination date: 20200626

CF01 Termination of patent right due to non-payment of annual fee