发明名称 |
基于Bloom Filter的数据完整性保护方法 |
摘要 |
本发明提供的是一种基于Bloom Filter的数据完整性保护方法。先将受保护的存储区分成相等的多个块,然后在计算机安全区中维护一个m个元素的数组,同时设置k个散列函数,用于将数据块映射到数组中;存储器初始化即建立保护时,内存块数据经k次散列函数计算得到k个值,将这k个值作为数组的序号,将数组相应序号的值加1;当修改数据块时,将原数据块的k个映射位的值减1,再将修改后数据块的k个映射位的值加1;在校验时,如所读取的数据块映射到数组中相应位的值都不为0,则认为数据正常,只要有一个映射位的值为0,则认为遭到篡改。用于防止内存中的数据被恶意篡改;保证内存数据完整性同时,能降低完整性保护的时间和空间开销。 |
申请公布号 |
CN101901316B |
申请公布日期 |
2012.05.09 |
申请号 |
CN201010226569.1 |
申请日期 |
2010.07.15 |
申请人 |
哈尔滨工程大学 |
发明人 |
姚念民;马海峰;范洪博 |
分类号 |
G06F21/00(2006.01)I |
主分类号 |
G06F21/00(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
一种基于Bloom Filter的数据完整性保护方法,其特征是:先将受保护的存储区分成相等的多个块,然后在计算机安全区中维护一个m个元素的数组,同时设置k个散列函数,用于将数据块映射到数组中;执行如下具体步骤:(1)初始化操作过程:1)将数组的每个元素置0;2)读取每一个受保护的内存块数据加上地址信息;3)进行k次散列函数计算;4)将得到的k个值作为数组的序号,将数组的相应位加1;(2)更新操作过程:1)读取原来的数据块及其地址信息;2)进行k次散列函数计算;3)将得到的k个值作为数组的序号,将数组的相应位减1;4)更新该数据块;5)将更新后数据块内容加上地址信息再进行k次散列函数计算;6)将得到的k个值作为数组的序号,将数组的相应位加1;(3)校验操作过程:1)读取的数据块内容及其地址信息;2)进行k次散列函数计算;3)依次检验k个值映射到数组中相应位的值是否为0;4)有一个数组中相应位的值为0,则认为遭到篡改;5)所有数组中相应位的值都为1,则认为数据正常。 |
地址 |
150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室 |