[发明专利]存储器数据完整性保护的方法有效
| 申请号: | 201410707362.4 | 申请日: | 2014-11-27 |
| 公开(公告)号: | CN104463020B | 公开(公告)日: | 2017-08-22 |
| 发明(设计)人: | 姚念民;徐文霞;谭国真;战福瑞;陈炳才 | 申请(专利权)人: | 大连理工大学 |
| 主分类号: | G06F21/64 | 分类号: | G06F21/64;G06F21/78;G06F12/06 |
| 代理公司: | 大连理工大学专利中心21200 | 代理人: | 李宝元,梅洪玉 |
| 地址: | 124221 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 存储器 数据 完整性 保护 方法 | ||
技术领域
本发明属于计算机数据存储保护技术领域,涉及一种存储器数据完整性保护的方法。
背景技术
科技的不断发展,使得越来越多的数据存储在内存中,特别是一些机密信息。攻击者可以对内存发动多种主动攻击,破坏存储在内存中的数据的完整性,使系统运行出现错误的结果。所以,需要对这些数据的完整性进行保护。目前保护内存数据完整性的常见方案是构建完整性保护树,对从内存中取到的数据进行完整性验证。但是,采用完整性保护树进行完整性保护需要耗费大量的存储空间存储树的内部节点,并且需要花费大量的时间对从内存中取到的数据块进行完整性验证,这会占用大量的系统计算资源。
发明内容
本发明提供一种隐藏数据块和系统为这个数据块分配的counter的地址间的映射关系的方法,以较低的存储开销和计算资源占用为内存数据提供完整性保护。
本发明的技术方案包括以下两个部分:
当CPU将一个数据块写回内存时:
1.11首先,系统使用的counter自动增长,给这个数据块分配新的counter,然后应用计数器模式加密方法对数据块加密,以获得相应的密文;
1.12将得到的密文形式的数据块写回内存;
1.13使用加密后的数据块和这个数据块的地址作为带密钥的MAC函数的输入产生相应的输出,根据这个输出确定这个数据块对应的counter在内存的最新存储位置,如(1);
1.14如果counter在缓存中不需要写回内存,则不写回;如果需要写回内存,则将其写回到根据1.13计算得出的结果确定的内存位置上,并且数据块与它所对应的counter不是同时写回内存。当counter需要写回内存时,可以将多个counter批量写回,使攻击者无法分析出数据与counter的对应关系。使用的数据块的地址是数据块的物理地址。
当CPU从内存中读取一个数据块时:
1.21直接从内存中读取数据块;
1.22同时,如果这个数据块对应的counter在缓存中,则直接使用这个counter解密1.21中取到的数据块;如果这个counter不在缓存中,则根据(1)计算系统为这个数据块分配的counter在内存中的存储位置,读取这个counter,使用读取到的counter对1.21中取到的数据块进行解密;
将数据块和数据块的地址的连接作为带密钥的MAC函数的输入,确保每次的输入都是不同的,产生不同的输出。如果产生冲突,采用通用的冲突消解方法处理。
可以在(1)中添加另一个非常短的输入counter_i,进一步消除MAC函数的输入发生重复的可能性,counter_i可以与数据以明文方式连接起来存储,如(2)所示。相应的,在验证数据完整性的步骤中,计算counter的存储地址时也按照(2)计算:
系统使用计数器模式加密方法保护数据的机密性。
带密钥的MAC函数的输入是密文形式的数据块和数据块的物理地址的连接。
本发明可以显著的降低系统的存储空间消耗。现存的完整性保护方法都需要在内存中存储完整性验证树的内部节点,会消耗大量的存储空间。本发明只需要将系统为数据块分配的counter存储到内存。
本发明可以隐藏数据块和counter的存储地址间的映射关系。因为带密钥的MAC函数的输出是均匀分布的,只要输入不同,产生的输出也是不同的。如果产生冲突,采用通用的冲突消除方法处理。
本发明可以显著降低完整性保护方法导致的系统性能下降。当系统从内存中读取一个数据块时,如果对应的counter在片上,则直接使用这个counter;如果对应的counter需要从内存中读取,则计算counter在内存中的位置;不需要进行完整性检查,直接解密即可,对系统的性能产生的负面影响较小。
本发明可以将一个非常短的辅助counter_i引入带密钥的MAC函数的输入中,进一步的降低MAC函数的输入产生重复的可能,提高系统的安全性,counter_i可以与明文数据连接起来存储,如等式2。相应的,在验证数据完整性的步骤中,计算counter的存储地址也按照等式2计算。
addrcounter=Hkey(block||counter_i||addrblock) (2)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410707362.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





