主权项 |
一种云存储数据完整性验证方法,其步骤为:1)用户客户端生成密钥,并根据该密钥和待存储到云端服务器的数据M,生成该数据M的标识X和元数据;2)该用户客户端本地保存该元数据,并根据标识X生成该数据M的莫科尔树IMT,将该标识X和IMT作为数据M的标签φ,然后将标签φ、数据M保存到云端服务器;其中,IMT中的每一个节点v<sub>i</sub>对应一三元组A<sub>i</sub>=(p(v<sub>i</sub>),rank(v<sub>i</sub>),h(v<sub>i</sub>));p(v<sub>i</sub>)表示节点v<sub>i</sub>相对于父节点的位置信息,rank(v<sub>i</sub>)的值表示每一个节点控制的叶子节点的数量,h(v<sub>i</sub>)表示节点的哈希值;任意一个叶子节点v<sub>i</sub>的完整性路径为从v<sub>i</sub>到根节点v的路径中所有k个兄弟节点三元组信息所组成的集合Ω<sub>i</sub>,Ω<sub>i</sub>={A<sub>i1</sub>,A<sub>i2</sub>....A<sub>ik</sub>};其中A<sub>i1</sub>,A<sub>i2</sub>,…A<sub>ik</sub>是节点v<sub>i</sub>的完整性路径上第1,2,…,k个节点v<sub>i1</sub>,v<sub>i2</sub>,…,v<sub>ik</sub>对应的三元组信息;3)用户向云端服务器发送完整性验证请求,云端服务器根据该完整性验证请求、该用户的公钥、该数据M及其标签φ生成持有性证据P发送给该用户客户端;4)该用户客户端根据该数据M的元数据对P进行验证,如果验证通过,则判定云端服务器完整地持有该数据M,否则判定为未完整的持有该数据M。 |