[发明专利]一种链式哈希栈运算方法及装置有效
申请号: | 202010357761.8 | 申请日: | 2020-04-29 |
公开(公告)号: | CN111680289B | 公开(公告)日: | 2023-04-14 |
发明(设计)人: | 陈李维;许奇臻;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/54 | 分类号: | G06F21/54;G06F1/329 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张睿 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 链式 哈希栈 运算 方法 装置 | ||
本发明实施例提供一种链式哈希栈运算方法及装置,该方法包括在函数调用时,将处理器保留栈中目标数据项返回地址保存到栈中,并用新的返回地址覆盖处理器保留栈中目标数据项返回地址;将目标数据项指向下一项,得到新的目标数据项,直至处理器保留栈存满新的返回地址;若依然存在函数调用,则将处理器保留栈中保存的所有返回地址进行批量哈希运算,得到当前哈希值信息。在函数返回时没有进入过栈中的处理器保留栈的返回地址直接用于函数返回,并用栈中取出的返回地址覆盖它。直到取出栈中的返回地址覆盖了处理器保留栈的初始数据项时,对处理器保留栈中的多个返回地址进行一次哈希校验。这种方式有效降低了处理器的功耗和性能损耗。
技术领域
本发明涉及计算机技术领域,尤其涉及一种链式哈希栈运算方法及装置。
背景技术
在普通的栈中,当程序运行时发生函数调用,会把返回地址依次压入栈中;在函数返回时,从栈中依次取出最上层的返回地址用于函数返回。
由于被保存到栈中的返回地址可能被攻击者篡改,最近提出了一种链式哈希栈的新型防御手段。它在硬件上添加了两个寄存器top和key,top用来保存哈希值,key用来保存哈希函数的密钥。
当调用子函数时,把哈希值和返回地址依次压入栈中。然后把密钥、哈希值和返回地址一起做哈希运算,运算结果用来更新top寄存器的值。函数调用时的计算称之为哈希值的更新运算。在函数返回时,把栈中的哈希值和返回地址一同弹出栈,并做同样的哈希运算。运算结果与top寄存器中的值做对比,称之为哈希值的校验运算。如果不同,则抛出一个异常;如果相同,则用栈中的哈希值更新top寄存器,返回到父函数中。
链式哈希栈的安全性极高,即使攻击者能任意读写内存地址空间,也无法绕过这种防御机制。然而由于函数体频繁地调用返回,需要进行大量的哈希运算。当哈希函数的运算周期较大时,导致处理器的性能损耗非常高,限制了其实用性,因此如何通过有效的方案,优化链式哈希栈运算,优化处理器的性能损耗,已经成为业界亟待解决的问题。
发明内容
本发明实施例提供一种链式哈希栈运算方法及装置,用以解决上述背景技术中提出的技术问题,或至少部分解决上述背景技术中提出的技术问题。
第一方面,本发明实施例提供一种链式哈希栈运算方法,包括:
在函数调用时,将处理器保留栈中目标数据项返回地址保存到栈中,并用新的返回地址覆盖处理器保留栈中目标数据项返回地址;
将目标数据项指向下一项,得到新的目标数据项,直至所述处理器保留栈存满新的返回地址;若依然存在函数调用,则将所述处理器保留栈中保存的所有返回地址进行批量哈希运算,得到当前哈希值信息。
更具体地,所述方法还包括:在函数返回时,取出处理器保留栈中存储的新的返回地址用于函数返回,并用栈中取出的返回地址覆盖所述新的返回地址,直至覆盖所述处理器保留栈中的初始数据项;
将处理器保留栈中所有返回地址进行哈希运算,将哈希运算结果与当前哈希值信息进行比较。
更具体地,所述将处理器保留栈中目标数据项返回地址保存到栈中,并用新的返回地址覆盖处理器保留栈中目标数据项返回地址的步骤,具体包括:
获取历史哈希值信息,将所述历史哈希值信息按照处理器保留栈数目进行均分,得到均分后历史哈希值信息;
将均分后历史哈希值信息和新的返回地址进行压缩,将压缩后的地址覆盖处理器保留栈中目标数据项返回地址。
更具体地,所述将压缩后的地址覆盖处理器保留栈中目标数据项返回地址的步骤,具体包括:
将均分后历史哈希值信息存储在处理器保留栈目标数据项中的tmp字段;
将新的返回地址存储在处理器保留栈处理器保留栈目标数据项中的ra字段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010357761.8/2.html,转载请声明来源钻瓜专利网。