[发明专利]链式哈希栈的优化方法及优化系统有效
申请号: | 201910559289.3 | 申请日: | 2019-06-26 |
公开(公告)号: | CN110362503B | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 陈李维;许奇臻;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F12/0804 | 分类号: | G06F12/0804;G06F12/0895 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 马英迪 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 链式 哈希栈 优化 方法 系统 | ||
本发明实施例提供了一种链式哈希栈的优化方法及系统,通过为链式哈希栈配置发射队列,实现链式哈希栈上的返回地址的错位存储,原本函数返回必定经过的校验运算也大都被消除掉了,提高了链式哈希栈的运行速度,本发明实施例中使用较小的硬件开销,起到了很好的加速效果。
技术领域
本发明涉及计算机技术领域,更具体地,涉及链式哈希栈的优化方法及优化系统。
背景技术
目前,在普通栈中,当程序运行时发生函数调用,会把返回地址(即RA)依次压入普通栈中;在函数返回时,从栈中依次取出最上层的返回地址于函数返回。由于被保存到普通栈中的返回地址可能被攻击者篡改,研究人员提出了一种链式哈希栈的新型防御手段。链式哈希栈在硬件上添加了top寄存器和key寄存器,top寄存器用来保存哈希值,key寄存器用来保存哈希函数的密钥,其中的密钥为常量。当调用函数时,将哈希值和返回地址依次压入链式哈希栈中。然后把密钥、哈希值和返回地址一起做哈希运算,运算结果用来更新top寄存器的值。在函数返回时,把哈希值和返回地址一同弹出链式哈希栈,并做哈希运算。运算结果与top寄存器中的哈希值做对比。如果不同,则抛出一个异常;如果相同,则用栈中的哈希值更新top寄存器,返回到主函数中。
其中,top寄存器中的哈希值可以用如下递推公式求得:
Top[m]=Hash(key,RA[m],Top[m-1]),
其中,m为链式哈希栈中从下往上数第m个栈帧。
链式哈希栈的安全性极高,即使攻击者能任意读写内存地址空间,也无法绕过这种防御机制。然而,当哈希函数的运算周期增大时,它的性能损耗会急剧地加大。例如,当一次哈希运算需要80个时钟周期时,它的性能损耗大约为20%,限制了它的实用性。
发明内容
为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种链式哈希栈的优化方法及系统。
第一方面,本发明实施例提供了一种链式哈希栈的优化方法,包括:
S1,为链式哈希栈配置发射队列,所述发射队列中包括n个数据项,所述发射队列用于按顺序存储所述链式哈希栈中后入栈的n个栈帧中的返回地址和哈希值;
S2,当函数调用时,分别将所述发射队列中目标数据项内的初始返回地址和初始哈希值存储至所述链式哈希栈中,所述目标数据项为与所述链式哈希栈对应的RA寄存器中的目标返回地址对应的数据项;并用所述目标返回地址覆盖所述目标数据项内的初始返回地址;
S3,将所述链式哈希栈对应的top寄存器中存储的、与所述目标返回地址对应的哈希值存储至所述目标数据项内,对所述目标数据项内的所述目标返回地址、对应的哈希值以及预设密钥进行哈希运算,将哈希运算的第一结果作为所述目标返回地址的下一返回地址对应的哈希值存储至所述top寄存器中;
S4,当函数返回时,将所述目标数据项内的返回地址用于函数返回。
优选地,所述S4之后还包括:
用所述发射队列中与所述目标数据项内的返回地址对应的哈希值替换所述top寄存器中与所述目标返回地址对应的哈希值,并用所述链式哈希栈中存储的所述初始返回地址和所述初始哈希值分别覆盖所述目标数据项内的返回地址和哈希值。
优选地,所述S4之后还包括:
若判断获知所述目标数据项内的返回地址为所述链式哈希栈中存储的所述初始返回地址覆盖得到,则对所述目标数据项内的返回地址进行校验。
优选地,所述对所述目标数据项内的返回地址进行校验,具体包括:
将所述目标数据项内的返回地址、对应的哈希值以及所述预设密钥进行哈希运算,并将哈希运算的第二结果与所述top寄存器中存储的所述第一结果进行比较,若所述第二结果与所述第一结果不相等,则进行报错。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910559289.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:链式哈希栈的影子缓存优化方法和装置
- 下一篇:对一致性链路和多级存储器的管理