发明名称 |
存储器数据完整性保护的方法 |
摘要 |
本发明提出一种内存数据完整性的保护方法。当系统需要将一个数据块写回内存时,首先产生新的counter分配给这个数据块;然后应用计数器模式加密方法对数据块加密;随后将得到的密文数据块和数据块的地址输入到带密钥的MAC函数中,MAC函数会产生一个输出;最后根据MAC函数的输出确定counter在内存中的存储位置。本发明与传统的内存数据完整性保护方案相比,它能够以更低的存储空间消耗、更小的计算资源占用,提供相同或者更高级别的内存数据完整性保护。 |
申请公布号 |
CN104463020A |
申请公布日期 |
2015.03.25 |
申请号 |
CN201410707362.4 |
申请日期 |
2014.11.27 |
申请人 |
大连理工大学 |
发明人 |
姚念民;徐文霞;谭国真;战福瑞;陈炳才 |
分类号 |
G06F21/64(2013.01)I;G06F21/78(2013.01)I;G06F12/06(2006.01)I |
主分类号 |
G06F21/64(2013.01)I |
代理机构 |
大连理工大学专利中心 21200 |
代理人 |
李宝元;梅洪玉 |
主权项 |
一种保护内存存储器数据完整性的方法,其特征在于隐藏数据块和系统为这个数据块分配的最新的counter的存储地址之间的映射关系;具体包括以下两个部分:当CPU将一个数据块写回内存时:首先,系统使用的counter自动增长,给这个数据块分配新的counter,然后应用计数器模式加密方法对数据块加密,以获得相应的密文;将得到的密文形式的数据块写回内存;使用加密后的数据块和这个数据块的地址作为带密钥的MAC函数的输入产生相应的输出,根据这个输出确定这个数据块对应的counter在内存的最新存储位置,如式(1);如果counter在缓存中不需要写回内存,则不写回;如果需要写回内存,则将其写回到根据1.13计算得出的结果确定的内存位置上,并且数据块与它所对应的counter不是同时写回内存;当counter需要写回内存时,可以将多个counter批量写回,使攻击者无法分析出数据与counter的对应关系;使用的数据块的地址是数据块的物理地址:addr<sub>counter</sub>=H<sub>key</sub>(block||addr<sub>block</sub>) (1);当CPU从内存中读取一个数据块时:直接从内存中读取数据块;同时,如果这个数据块对应的counter在缓存中,则直接使用这个counter解密取到的数据块;如果这个counter不在缓存中,则根据计算系统为这个数据块分配的counter在内存中的存储位置,读取这个counter,使用读取到的counter对取到的数据块进行解密。 |
地址 |
124221 辽宁省盘锦市辽东湾新区大工路2号 |