主权项 |
一种云存储中数据完整性保护方法,其特征在于:(1)生成数据文件的MAC将数据文件分成n个数据块,以用户密钥k为参数的MAC函数对每个数据块进行摘要计算,得到每个数据块的摘要信息M;(2)利用摘要信息M计算得到M的存储位置对摘要信息M利用hash函数计算得到摘要信息M在云存储服务器中的存放位置(a,p);a表示存储摘要的文件位置,p表示在此文件中的偏移位置;同时为每个摘要信息添加标识位S,标识位S表明此摘要信息是否占用了某存储位置,或者存储位置是否存储了某摘要信息,并且每个数据块都有一个描述信息E,描述信息包括数据块所属的文件名和该数据块在该文件中的位置等,使用以用户密钥k为参数的任意加密算法对描述信息进行加密处理;预先建立多个空白摘要文件或随着存储数据的增多动态建立和增加空白摘要文件;每个新建立的空白摘要文件中所有的标示位S都为未占用状态;(3)不同时将数据文件和M存放到预定的位置将数据文件存放到预定的位置,并将附加标识信息S、加密后的描述信息E以及摘要信息M存放到位置(a,p)处;同时为了不被敌手发现数据块与其摘要信息的存储地址之间的对应关系,不同步写数据块与其摘要信息,延迟或批量写摘要信息或者打乱写摘要信息的顺序;(4)数据验证在验证阶段,用户从云存储服务器中读取数据块Block,并对数据块进行和存储时同样的处理操作,重新计算得到该数据块的摘要信息M以及存储在云存储服务器中的验证信息的存放位置,从云服务器中读取该数据块的摘要信息M<sub>c</sub>,并和重新计算得到的摘要信息M进行比较,如果相同,则完整性验证通过,否则,确认数据已被篡改;数据块与其摘要信息不是同时读取。 |