发明名称 存储器数据完整性保护的方法
摘要 本发明提出一种内存数据完整性的保护方法。当系统需要将一个数据块写回内存时,首先产生新的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号