1.一种存储数据完整性验证及恢复方法,其特征是,包括如下步骤:
步骤1:再生码(RC)对文件进行分块
步骤2:数据加密,生成数据指纹标签
步骤3:两次随机映射保存指纹标签
步骤4:数据验证
(1)获取每个数据块存储的两个指纹标签,并生成挑战块的位置
(2)重新计算指纹标签值
(3)对两次计算的指纹标签进行对比
步骤5:数据恢复。
2.根据权利要求1中所述的一种存储数据完整性验证及恢复方法,其特征是,以上所述步骤2的具体内容如下:
步骤2:数据加密,生成数据指纹标签
对数据块对称加密,生成密钥对称k,然后保存在服务器节点上;同时对数据块进行哈希,生成,并对进行加密,生成指纹密钥,然后计算:
输出。
3.根据权利要求1中所述的一种存储数据完整性验证及恢复方法,其特征是,以上所述步骤3中的具体阐述如下:
步骤3:两次伪随机映射保存指纹标签
用伪随机函数将标签数据映射到服务器节点上,并保存在文件的数据块上;标签生成算法得到标签后,每一个随机映射到两个存储加密文件块的节点上,这样的话,可以防止标签数据被破坏,同时抵制了服务器相互欺骗的风险,在保存之前,还需要向将数据进行处理:
数据指纹生成并存储完毕,将整个数据分片存储元数据发送给元数据服务器,而用户只需要保存k和等加密参数,方便后期的数据验证。
4.根据权利要求1中所述的一种存储数据完整性验证及恢复方法,其特征是,以上所述步骤4中具体计算过程如下:
步骤4:数据验证
用户服务器发送要验证的文件和数据块索引的挑战信息s(f,Ref),云服务器接收到s后,首先验证用户的权限,通过权限验证后,
(1)获取每个数据块存储的两个指纹标签,并生成挑战块的位置
(2)重新计算指纹标签值
(3)对两次计算的指纹标签进行对比。
5.根据权利要求1中所述的一种存储数据完整性验证及恢复方法,其特征是,以上所述步骤5中具体计算过程如下:
步骤5:数据恢复
当检测到系统中有节点失效或出错时,系统返回出错节点的位置,需要连接d个帮助节点,其中,每个节点上存储的编码向量,与数据矩阵R中的向量相关,修复失效节点f时,利用数据矩阵秩的特性对数据块f进行精确修复,过程为:
(1)从剩余完整节点中任取d个节点,每个节点的编码向量为
(2)节点f对应的数据矩阵为,将每个节点的编码向量与在节点内运算后,将结果上传给需要修复的数据节点Q,Q为定义的数据节点
(3)新节点,接收到d个节点上传的修复信息,将他们组成的矩阵W:
由于
所以有:
即
可知矩阵R中任意行线性无关,即可逆,所以:
X,Y为对称矩阵,所以有:
至此,新节点对损坏节点f修复完成。