一种代码复用攻击防御系统及方法

文档序号:10655958阅读:304来源:国知局
一种代码复用攻击防御系统及方法
【专利摘要】本发明提供一种代码复用攻击防御系统及方法,系统包括高速缓存Cache、内存Memory、CPU、轻量级线性加密架构LEA。轻量级线性加密架构LEA包括:硅PUF模块、加密解密单元EDU、KEY_CFI寄存器、LEN_CFI寄存器。本发明基于物理不可克隆函数的线性加密结构以极低的性能开销来有效抵抗代码复用攻击,不需要额外的处理和扩展指令集,针对以构造ret指令链为主要攻击方式的ROP攻击以及以构造间接跳转指令链为攻击方式的JOP攻击效果十分明显。使用PUF生成密钥,根据密钥和加密的长度对内存中的指令进行加密、解密操作。该防御系统使用LEA线性加解密,不需要更改处理器指令集且硅PUF模块无需高开销的纠错机制,所以开销显著降低。硅PUF模块产生的密钥不可克隆且可动态更新,安全性显著提高。
【专利说明】
-种代码复用攻击防御系统及方法
技术领域
[0001] 本发明属于软件安全技术领域,具体是一种代码复用攻击防御系统及方法。
【背景技术】
[0002] 随着信息技术的高速发展,各类软件的功能得到极大丰富,给人们的生活和工作 带来了很大的便利,与此同时软件安全问题层出不穷,严重影响了计算机的安全,对用户的 数据安全构成极大的威胁。传统的攻击技术W代码注入攻击为主,该技术将需要执行的代 码注入到一段内存区域中,通过溢出漏桐使得程序执行注入的代码。该技术已经可W被诸 如Wex等软件安全机制成功防御,而新兴的代码复用攻击则可W轻松绕过运些传统的防御 机制。
[0003] 代码复用攻击利用程序之中原有的代码构造出可W利用的代码片段(代码片段由 若干汇编指令组成,每一个代码片段可W实现不同的功能,例如,向固定的寄存器写入指定 的值),通过将实现不同功能的代码片段相结合,攻击者可W构造出实现与恶意代码同等功 能的代码执行序列。由于代码复用攻击使用被攻击程序现有代码进行组合构造,而不需要 任何额外的代码,使得防御变得十分困难。现有比较流行的代码复用攻击根据构造代码片 段(gadgets)的结尾不同分为Re turn-oriented Program (ROP)攻击和Jump-oriented Program(JOP)攻击。ROP攻击主要Wret为gadgets结尾,该攻击已经被证明是图灵完备的。 而JOP攻击则W间接跳转指令作为结尾。著名的苹果越狱软件evasWn则是代码复用攻击的 典型代表,该软件利用多种漏桐,构造了ROP gadgets,成功的绕过了苹果的安全机制,拿到 了最高权限。因此,代码复用攻击的危害极大,如何防御代码复用攻击是当前软件安全领域 亟待解决的关键问题。
[0004] 近年来,研究人员针对代码复用攻击提出了很多防御方法,较成熟的有影子找防 护方法,ret频率检测方案,代码随机化技术等。但是由于运些方案都是基于软件的形式进 行防御,性能开销很大,使它们很难被应用到实际的系统中。

【发明内容】

[0005] 本发明针对现有防御技术存在的上述问题,提供一种代码复用攻击防御系统及方 法,基于物理不可克隆函数的线性加密结构W极低的性能开销来有效抵抗代码复用攻击, 不需要额外的软件处理和扩展指令集。
[0006] 为了达到上述目的,本发明所采用的具体技术方案如下:
[0007] 一种代码复用攻击防御系统,包括高速缓存化Che、内存Memory;
[000引还包括:
[0009] CPU:进行call指令、间接跳转指令、ret指令的识别,存储指令及其所处位置;程序 被加载到内存Memory中时将间接跳转指令目的地址处指令传送给轻量级线性加密架构LEA 进行加密;执行call指令时,将call指令的返回地址转到轻量级线性加密架构LEA进行加 密,执行ret指令时,将ret指令的返回地址转到轻量级线性加密架构LEA进行解密,执行间 接跳转指令时将跳转目的地址处指令传送给轻量级线性加密架构LEA进行解密;
[0010] 轻量级线性加密架构LEA(Linea;r !Encryption Architecture,LEA):产生加密解 密的密钥key,存储密钥k巧及其长度Ien;程序被加载到内存Memory时加密间接跳转指令目 的地址处指令,CPU识别出间接跳转指令时对其目的地址处指令进行解密,CPU识别出cal 1 指令时对其返回地址加密,CPU识别出ret指令时对其返回地址解密。
[0011] 所述轻量级线性加密架构LEA包括:娃PUF模块、加密解密单元抓U、KEY_CFI寄存 器、LEN_CFI寄存器;
[0012] 娃PUF模块:产生加密解密的密钥k巧及其长度Ien,加密解密的密钥key存储在 KEY_CFI寄存器中,密钥k巧的长度Ien存储在LEN_CFI寄存器中;
[0013] 加密解密单元邸U用于根据娃PUF模块产生的加密解密的密钥k巧及其长度Ien,对 call指令的返回地址加密、对ret指令的返回地址解密、对间接跳转指令的跳转目的地址处 指令进行加密和解密。
[0014] 所述加密解密的密钥key的长度Ien设置规则为从1到小于所有返回地址的长度、 间接跳转目的地址处指令的长度中的最小长度值的随机数。
[0015] -种所述的代码复用攻击防御系统进行代码复用攻击防御的方法,包括:
[0016] a)程序开启时,CPU调用娃PUF模块产生加密解密的密钥k巧并分别存储在KEY_CFI 寄存器中,根据长度设置规则产生长度Ien并存储在Len_CFI寄存器中;
[0017] b)程序加载到内存Memo巧中,CPU查找所有间接固龄指令的跳转目的地址;
[0018] c)CPU将查找到的跳转目的地址处指令传送给加密解密单元邸U;
[0019] d)加密解密单元抓U根据密钥k巧及其长度Ien对运些指令进行加密,加密结果返 回到CPU;
[0020] e) CPU将运些加密结果返回给内存Memory;
[0021] f)程序执行过程中,内存Memory实时将程序中的指令传送给高速缓存化che,CPU 取出高速缓存Cache中的指令,当取出的指令是call指令时,跳转到g),当取出的指令是ret 指令时,跳转到i),当取出的指令是间接跳转指令时,跳转到m),当程序执行完毕则退出;
[0022] g)将call指令的目的地址传送给加密解密单元邸U;
[0023] h)加密解密单元邸诉良据密钥k巧及其长度Ien对call指令对应的目的地址进行加 密,并将加密后的目的地址传送到找中;
[0024] i)CP诉良据call指令的原目的地址跳转继续执行程序,跳到步骤f);
[0025] i)将ret指令的目的地址传送给加密解密单元邸U;
[0026] k)加密解密单元邸诉良据密钥k巧及其长度Ien对ret指令进行解密,并将解密后的 目的地址传送到CPU中;
[0027] 1)CP诉良据解密后的目的地址跳转,跳到步骤f);
[0028] m)在执行到目的地址处指令加载到CPU时,将CPU的IR寄存器中的内容传送给加密 解密单元邸U;
[0029] n)加密解密单元抓U根据密钥k巧及其长度Ien对运些指令进行解密,并将解密结 果返回给CPU的IR寄存器;
[0030] O)CP诉良据IR寄存器内部解密后的指令继续执行,跳转到f)。
[0031] 有益效果:
[0032] 本发明基于物理不可克隆函数的线性加密结构W极低的性能开销来高效抵抗代 码复用攻击,不需要额外的软件处理和扩展指令集。本发明解决了代码复用攻击的防御问 题,针对W构造 ret指令链为主要攻击方式的ROP攻击W及W构造间接跳转指令链为攻击方 式的JOP攻击效果十分明显。
[0033] 本发明创新性的使用PUF(Physical Unclonable化nction,PUF)即时的产生易失 性响应来进行加密解密,响应不定期的重新生成,提高了安全性。通过在运行时加密与解密 返回地址的方式来抵御ROP攻击,通过在编译时加密间接跳转指令所对应的目的地址处一 定字节的指令与运行时解密的对应指令的方式去抵御JOP攻击。LEA使用PUF产生的不可克 隆密钥。运个密钥对于每个系统来说都是独一无二的。
[0034] 本发明使用PUF生成密钥,而后根据密钥和加密的长度进行加密、解密操作。由于 该防御系统使用LEA线性加解密,不需要更改处理器指令集且娃PUF模块无需高开销的纠错 机制,所W开销显著降低。同时由于娃PUF模块产生的密钥可动态更新,所W安全性显著提 局。
【附图说明】
[0035] 图1是对call-ret指令实施本发明方法的例子,(a)为原始部分指令,(b)为原始找 空间内容,(C)为新部分指令(与(a)相同),(d)为修改后找空间内容;
[0036] 图2是本发明【具体实施方式】中代码复用攻击防御系统的连接原理图;
[0037] 图3是本发明【具体实施方式】中加密解密单元邸U的简化的原理图;
[0038] 图4是本发明【具体实施方式】中产生可更新密钥的基于环形振荡器的可重构PUF结 构原理图;
[0039] 图5是本发明【具体实施方式】中间接跳转指令实例;
[0040] 图6是本发明【具体实施方式】中代码复用攻击防御方法流程图。
【具体实施方式】
[0041 ]下面结合附图对本发明的【具体实施方式】做详细说明。
[0042] -种代码复用攻击防御系统,如图2所示,包括:
[0043] CPU:进行call指令、间接跳转指令、ret指令的识别,存储指令及其所处位置;程序 被加载到内存Memory中时将间接跳转指令对应的跳转目的地址处指令传送给LEA进行加 密;执行call指令时,将call指令的返回地址转到LEA进行加密,执行ret指令时,将ret指令 的返回地址转到LEA进行解密,执行间接跳转指令时将跳转目的地址处指令传送给LEA进行 解密。
[0044] CPU设置有用来存储当前指令所处位置的指令位置寄存器IP、用来存储当前指令 的指令寄存器IR、Decode、Access Memoiy,Execute,Commit等常规模块,本实施方式中为实 现call指令、间接跳转指令、ret指令的识别,CPU修改指令识别模块化tch Instruction。
[0045] 高速缓存化Che:为CPU和内存Memory的中间层,实时接收内存Memory传来的程序 中的指令、LEA传来的加密结果、解密结果。
[0046] 内存Memory:程序加载到内存Memory中,除正常存储程序运行外,还能够与LEA交 互。
[0047]轻量级线性加密架构LEA:产生加密解密的密钥key,存储密钥k巧及其长度Ien;程 序被加载到内存Memory时加密间接跳转指令的目的地址处指令,CPU识别出间接跳转指令 时对其目的地址处指令进行解密,CPU识别出call指令时对其返回地址加密,CPU识别出ret 指令时对其返回地址解密。
[004引轻量级线性加密架构LEA包括:娃PUF模块、加密解密单元抓U、KE Y_CF I寄存器、 LEN_CFI寄存器;加密解密单元抓U在KEY_CFI寄存器、LEN_CFI寄存器、娃PUF模块下协同工 作。
[0049] 如图2所示,①加密解密单元抓闲尋加密后的间接跳转指令目的地址处指令返回到 内存Memory中;②加密解密单元抓闲尋解密后的间接跳转指令目的地址处指令返回给指令 寄存器IR中;③将需要解密的返回地址传送给加密解密单元EDU;④加密解密单元抓闲尋解 密后的返回地址传送给CPU;⑤加密解密单元邸U将加密的地址传送给高速缓存化che。
[0050] 娃PUF模块;产生加密解密的密钥k巧及其长度Ien,并存储在KEY_CFI寄存器中,该 密钥k巧的长度是由call-return和跳转加密的长度限制决定的,密钥k巧的长度Ien存储在 LEN_CFI寄存器中。加密解密单元邸U使用存储在KEY_CFI寄存器中的密钥k巧加密和解密。 [0051 ] 在LEA中使用娃PUF模块有如下优势:
[0052] (1)高安全性。因为PUF是可更新且不可克隆的,攻击者很难获取和伪造 PUF产生的 响应。
[0053] (2)轻量级。鉴于密钥的长度较小且无需纠错,使用PUF生成密钥进行线性加密解 密,比传统加密解密模块在性能和资源开销上显著降低。
[0054] PUF是利用制程变异(Process Variation)产生不可克隆的密钥(响应),每个忍片 上的PUF都是独一无二的。而且,当程序开始执行时,LEA上的PUF模型仅仅被用来生成密钥, 运样就可W忽视它在性能上的影响。
[0055] 本实施方式中密钥key的长度Ien设置规则为小于所有返回地址的长度、间接跳转 目的地址处指令的长度中的最小长度值。在1至该最小长度值之间随机取值,作为加密解密 长度len,在程序运行期间保持该加密解密长度len,当程序重新启动时则重新计算。如图5 所示的实例中,假设所有间接跳转指令目的地址的最短长度的指令为图5(a)所示,jmp ecx 对应的48 8B 4F 08的长度值8,则根据长度设置规则,加密解密长度Ien应该在I至该最小 长度值8之间随机值,本示例中取6,得到图5(b)所示的对加 P ecx对应的间接跳转目的地址 的前6*4比特进行加密。
[0056]密钥k巧有W下S个特点:
[0057] (1)随机;
[0化引 (2)忍片唯一;
[0059] (3)不可克隆。
[0060] (4)易于更新。
[0061] 根据预先设定的更新计划,任何密钥的更新都是由CPU触发的。本实施方式中的加 密解密的密钥key即为娃PUF模块产生的响应,该密钥key(响应)的最大优势之一是无需具 有高稳定性,即本实施方式中的基于PUF的线性加密结构打破了 PUF的响应必须稳定的运一 限制性条件,是当前PUF的应用领域中唯一不依赖于PUF响应稳定的典型应用。
[0062] 本实施方式中娃PUF模块可W采用基于环形振荡器的可重构PUF结构产生动态的 不可克隆的响应。基于环形振荡器的可重构PUF结构如图4所示,是一个包含n阶环形振荡器 的PUF。环形振荡器是能W-定频率振荡的简单电路,由于制程变异和其它不确定因子的影 响,导致环形振荡器之间的频率差不能被预测。运种基于环形振荡器的可重构PUF结构通过 比较两个环形振荡器之间的频率差产生逻辑O和逻辑1输出。图4中的每个环形振荡器共有n 个2X1多路选择器且每个多路选择器的选择端都能改变延迟循环。可重构的环形振荡器 PUF能产生更多可靠的PUF响应。
[00创在基于环形振荡器的可重构PUF结构中,激励C= (Ci,C2,…,Ci,…,Cn),其中Ci等于 O或者1,并且决定信号是沿着顶部还是底部路径进入第i阶。不同的延迟循环配置数为 玄:三C,N其中JEN(整数);为了使得延迟循环形成振荡,k必须为偶数。环形振荡器的频率 级别由k决定,k越大频率越低。对一样的k,两个环形振荡器的频率差值由延迟循环的配置 决定。为了确保环形振荡器之间频率的差值由随机制程变异决定,图4中虚线框中的环形振 荡器必须一样并且k的大小也必须一样。因此,C和k能改变PUF结构的激励响应行为从而产 生不同的PUF响应。
[0064] 加密解密单元邸U用于根据娃PUF模块产生的加密解密的密钥k巧及其长度Ien,对 call指令的返回地址加密、对ret指令的返回地址解密、对间接跳转指令的跳转目的地址处 指令进行加密和解密。
[0065] 如图3所示为一个简化的加密解密单元EDU,其中粗箭头为成组数据,细箭头为信 号。加密解密单元抓U由化1巧1曰旨、1?6*。1曰旨、1^〇曰0^1曰旨、化口。1曰旨四个信号源来控制其从不同 的输入端收取数据,其中化IlFlag、RetFlag与Return AcMress配合,LoadFlag、JmpFlag与 Instruct ion相配合。当成组的数据传来时,加密解密单元EDU使用加密解密的密钥k巧和 Len_CFI对其进行异或操作,异或后的结果返回给对应位置。
[0066] 加密解密单元邸U执行线性的加解密操作,公式如下:
[0067] A = E 异或 K
[006引其中,E为待加解密数据,即返回地址或间接跳转目标地址处指令、K表示加密解密 的密钥key,存储在KEY_CFI寄存器中。ED诉良据LEN_CFI值判断加密的长度。通过E异或K对数 据进行线性加密和解密。
[0069] 如下四个阶段需要使用该异或加密解密操作:
[0070] (1)当CPU执行一个call指令、返回地址存储到找之前,call指令的返回地址被转 到加密解密单元邸U中进行加密,加密的地址将被压入找中。
[0071] (2)当CPU执行一个ret指令时,加密解密单元抓U从找中把加密地址取出进行解 密,然后将地址传递给指令位置寄存器IP来实现正确的返回,程序返回到解密的地址继续 执行。
[0072] (3)当程序被加载到内存Memory中时,CPU将间接跳转指令对应的跳转目的地址处 指令传送给加密解密单元邸U进行加密。
[0073] (4)当CPU执行一个间接跳转指令时,加密解密单元抓叫尋跳转目的地址处指令中 已加密的指令进行解密。
[0074] 图1(a)~(d)展示了对call-ret指令使用本发明的例子。对于正常CPU架构来说, 在一个call指令执行结束后,CP闲尋返回地址004095FCH压入找中。在使用本发明时,加密解 密单元邸U使用密钥k巧将004095FCH加密,然后把加密后的地址0E5423阳h压入找中。
[0075] 利用本发明的系统对call-ret指令执行加解密的过程如下:
[0076] (1)当高速缓存Cache将cal 1指令条送给CPU时,CPU识别出cal 1指令,将cal 1指令 的目的地址传送给加密解密单元邸U;
[0077] (2)加密解密单元邸诉良据KEY_CFI寄存器中由娃PUF模块产生的密钥key W及LEN_ CFI寄存器中的加密解密长度Ien对运些call指令进行加密,并将加密地址传送到找中;
[007引(3)CP诉良据原目的地址跳转继续执行;
[0079] (4)当高速缓存化Che将ret指令条送给CPU时,CPU识别出ret指令,将ret指令的目 的地址传送给加密解密单元邸U;
[0080] (5)加密解密单元邸诉良据KEY_CFI寄存器中由娃PUF模块产生的密钥key W及LEN_ CFI寄存器中的加密解密长度Ien对ret指令进行解密,并将解密地址传送到CPU中;
[0081 ] (6) CP诉良据解密后地址跳转继续执行。
[0082] 当程序被加载到内存Memory时将间接跳转指令所对应的目标跳转地址处指令的 长度为Ien的字节进行加密。当执行一个间接跳转指令时,由来自KEY_CFI寄存器的密钥key 对目的地址处的长度为Ien的指令进行解密。之后加密解密单元抓U把解密后的结果存入到 指令寄存器IR中。
[0083] 图5是间接跳转指令的例子,假设LEN_CFI寄存器中的加密解密长度Ien是6,跳转 至Ijecx寄存器中的地址的目标指令是004095f6h。当程序被加载到内存Memo巧时,CP闲尋目的 地址处指令的前=个字节即(2*3*4比特)加密。
[0084] 当代码加载到内存Memory中时,将代码中的所有间接跳转指令的所有可能的目的 地址处指令传递给加密解密单元抓U;加密解密单元邸诉良据KEY_CFI寄存器中的密钥key W 及LEN_CFI寄存器中的加密解密长度Ien对运些指令进行加密;当高速缓存化Che将间接跳 转指令送给CPU时,CPU识别出该指令,在目的地址处指令加载到CPU时,将指令寄存器IR中 的内容传送给加密解密单元EDU;加密解密单元ED诉良据KEY_CFI寄存器中的密钥key W及 LEN_CFI寄存器中的加密解密长度Ien对运些指令进行解密,并将解密结果返回给指令寄存 器IR; CP诉良据指令寄存器IR内部指令继续执行。
[0085] -种代码复用攻击防御方法,如图6所示,包括:
[0086] a)程序开启时,CPU调用娃PUF模块产生加密解密的密钥k巧并分别存储在KEY_CFI 寄存器中,根据长度设置规则产生长度Ien并存储在Len_CFI寄存器中;
[0087] b)程序加载到内存Memory中,CPU查找所有间接跳转指令的跳转目的地址;
[0088] c)CPU将查找到的跳转目的地址处指令传送给加密解密单元邸U;
[0089] d)加密解密单元抓U根据密钥k巧及其长度Ien对运些指令进行加密,加密结果返 回到CPU;
[0090] e) CPU将运些加密结果返回给内存Memory;
[0091] f)程序执行过程中,内存Memory实时将程序中的指令传送给高速缓存化che,CPU 取出高速缓存Cache中的指令,当取出的指令是call指令时,跳转到g),当取出的指令是ret 指令时,跳转到i),当取出的指令是间接跳转指令时,跳转到m),当程序执行完毕则退出;
[0092] g)将call指令的目的地址传送给加密解密单元邸U;
[0093] h)加密解密单元邸诉良据密钥k巧及其长度Ien对call指令对应的目的地址进行加 密,并将加密后的目的地址传送到找中;
[0094] i)CP诉良据call指令的原目的地址跳转继续执行程序,跳到步骤f);
[0095] i)将ret指令的目的地址传送给加密解密单元邸U;
[0096] k)加密解密单元邸诉良据密钥k巧及其长度Ien对ret指令进行解密,并将解密后的 目的地址传送到CPU中;
[0097] 1)CP诉良据解密后的目的地址跳转,|?兆到步骤f);
[0098] m)在执行到目的地址处指令加载到CPU时,将CPU的IR寄存器中的内容传送给加密 解密单元邸U;
[0099] n)加密解密单元抓U根据密钥k巧及其长度Ien对运些指令进行解密,并将解密结 果返回给CPU的IR寄存器;
[0100] O)CP诉良据IR寄存器内部解密后的指令继续执行,跳转到f)。
【主权项】
1. 一种代码复用攻击防御系统,包括高速缓存Cache、内存Memory,其特征在于,还包 括: CPU:进行call指令、间接跳转指令、ret指令的识别,存储指令及其所处位置;程序被加 载到内存Memory中时将间接跳转指令对应的跳转目的地址处指令传送给轻量级线性加密 架构LEA进行加密;执行call指令时,将call指令的返回地址转到轻量级线性加密架构LEA 进行加密,执行ret指令时,将ret指令的返回地址转到轻量级线性加密架构LEA进行解密, 执行间接跳转指令时将跳转目的地址处指令传送给轻量级线性加密架构LEA进行解密; 轻量级线性加密解密架构LEA:产生加密解密的密钥key,存储密钥key及其长度len;程 序被加载到内存Memory时加密间接跳转指令的目的地址处指令,CPU识别出间接跳转指令 时对其目的地址处指令进行解密,CPU识别出call指令时对其返回地址加密,CPU识别出ret 指令时对其返回地址解密。2. 根据权利要求1所述的代码复用攻击防御系统,其特征在于,所述轻量级线性加密架 构LEA包括:硅PUF模块、加密解密单元EDU、KEY_CFI寄存器、LEN_CFI寄存器; 硅PUF模块:产生加密解密的密钥key及其长度len,加密解密的密钥key存储在KEY_CFI 寄存器中,密钥key的长度len存储在LEN_CFI寄存器中; 加密解密单元H)U用于根据硅PUF模块产生的加密解密的密钥key及其长度len,对call 指令的返回地址加密、对ret指令的返回地址解密、对间接跳转指令的跳转目的地址处指令 进行加密和解密。3. 根据权利要求1或2所述的代码复用攻击防御系统,其特征在于,所述加密解密的密 钥key的长度len设置规则为从1到小于所有返回地址的长度、间接跳转目的地址处指令的 长度中的最小长度值的随机数。4. 一种利用权利要求2所述的代码复用攻击防御系统进行代码复用攻击防御的方法, 其特征在于,包括: a) 程序开启时,CPU调用硅PUF模块产生加密解密的密钥key并分别存储在KEY_CFI寄存 器中,根据长度设置规则产生长度len并存储在Len_CFI寄存器中; b) 程序加载到内存Memory中,CRJ查找所有间接跳转指令的跳转目的地址; c) CPU将查找到的跳转目的地址处指令传送给加密解密单元EDU; d) 加密解密单元EDU根据密钥key及其长度len对这些指令进行加密,加密结果返回到 CPU; e )CRJ将这些加密结果返回给内存Memory; f) 程序执行过程中,内存Memory实时将程序中的指令传送给高速缓存Cache,CPU取出 高速缓存Cache中的指令,当取出的指令是call指令时,跳转到g),当取出的指令是ret指令 时,跳转到j),当取出的指令是间接跳转指令时,跳转到m),当程序执行完毕则退出; g) 将call指令的目的地址传送给加密解密单元EDU; h) 加密解密单元EDU根据密钥key及其长度len对call指令对应的目的地址进行加密, 并将加密后的目的地址传送到栈中; i) CHJ根据call指令的原目的地址跳转继续执行程序,跳到步骤f); j) 将ret指令的目的地址传送给加密解密单元EDU; k) 加密解密单元EDU根据密钥key及其长度len对ret指令进行解密,并将解密后的目的 地址传送到CPU中; 1 )CHJ根据解密后的目的地址跳转,跳到步骤f); m)在执行到目的地址处指令加载到CPU时,将CPU的IR寄存器中的内容传送给加密解密 单元EDU; η)加密解密单元EDU根据密钥key及其长度len对这些指令进行解密,并将解密结果返 回给CPU的IR寄存器; 〇 )CHJ根据IR寄存器内部解密后的指令继续执行,跳转到f)。
【文档编号】G06F21/62GK106022166SQ201610388347
【公开日】2016年10月12日
【申请日】2016年6月2日
【发明人】张吉良, 吕勇强, 金睿
【申请人】东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1