[发明专利]链式哈希栈的影子缓存优化方法和装置有效

专利信息
申请号: 201910559287.4 申请日: 2019-06-26
公开(公告)号: CN110362502B 公开(公告)日: 2021-05-04
发明(设计)人: 陈李维;许奇臻;李锦峰;史岗;孟丹 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F12/0804 分类号: G06F12/0804;G06F12/0891;G06F12/0893
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 苗晓静
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 链式 哈希栈 影子 缓存 优化 方法 装置
【说明书】:

发明实施例提供的链式哈希栈的影子缓存优化方法和装置,添加了一个影子缓存表,当调用子函数时,保存子函数头部哈希运算的输入(返回地址和哈希值),记录该项为有效,然后指针指向最近更新的缓存项的下一项。当函数返回时,查询最近一次有效的缓存项。如果此时的输入(从栈中取出的返回地址和哈希值)与影子缓存最新的有效项相同,则不需要进行哈希计算,而是直接用影子缓存表中的缓存项来更新top寄存器,然后将影子缓存表中的该项缓存置为无效。这种方法能够加速函数体尾部对栈中返回地址和哈希值的校验,减少流水线停顿。

技术领域

本发明实施例涉及链式哈希栈技术领域,尤其涉及一种链式哈希栈的影子缓存优化方法和装置。

背景技术

链式哈希栈是一种新型的保护函数返回地址的防御手段。它在硬件上添加了两个寄存器top和salt,top用来保存哈希值,salt用来保存哈希函数的密钥。当调用函数时,把哈希值和返回地址依次压入栈中。然后把密钥、哈希值和返回地址一起做哈希运算,运算结果用来更新top寄存器的值。在函数返回时,把哈希值和返回地址一同弹出栈,并做哈希运算。运算结果与top寄存器中的值做对比。如果不同,则抛出一个异常;如果相同,则用栈中的哈希值更新top寄存器,返回到父函数中。

链式哈希栈的安全性极高,即使攻击者能任意读写内存地址空间,也无法绕过这种防御机制。然而,当哈希函数的运算周期增大时,它的性能损耗会急剧地加大。例如,当一次哈希运算需要80个时钟周期时,它的性能损耗大约为20%,限制了它的实用性。

发明内容

本发明实施例提供链式哈希栈的影子缓存优化方法和装置,用以加速函数体尾部的哈希运算,减少流水线停顿的问题。

第一方面,本发明实施例提供一种链式哈希栈的影子缓存优化方法,包括:

链式哈希栈在调用函数并更新top寄存器值时,将所述函数头部哈希运算的输入项作为缓存项保存在影子缓存表中;

链式哈希栈在返回函数时,查询最近的缓存项,若此时返回的函数的输入项与影子缓存表中的缓存项相同,则不需要再进行哈希运算,通过影子缓存表中的缓存项来更新top寄存器值。

作为优选的,所述影子缓存表包括head指针、valid位、old_hash和 ret_addr;

所述head指针用于指向当前函数体对应的缓存项的下一项;

所述valid位用于表示当前缓存项是否有效;

所述old_hash为进入函数时的top寄存器值;

所述ret_addr为函数的返回地址。

作为优选的,将所述函数头部哈希运算的输入项作为缓存项保存在影子缓存表中,具体包括:

将哈希运算的输入old_hash和输入ret_addr作为缓存项分别保存到影子缓存表的old_hash和ret_addr中,并将对应缓存项的valid位置为1,然后head 指针+1,移动到下一项缓存项。

作为优选的,若此时返回的函数的输入项与影子缓存表中的缓存项相同,则不需要再进行哈希运算,具体包括:

校验从链式哈希栈中读取出的top寄存器值和返回地址,若判断获知此时影子缓存表中head-1指针项valid位为1,且top寄存器值和返回地址与valid 位为1时对应的old_hash和ret_addr相等,则不需要进行本次哈希计算;

当哈希值的更新运算还未结束时,若校验运算已进入流水线,则不停顿流水线,终止正在进行的哈希值更新运算,通过影子缓存表对比校验。

作为优选的,通过影子缓存表中的缓存项来更新top寄存器值,具体包括:

通过old_hash来更新top寄存器值,head指针-1。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910559287.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top