一种云端数据完整性验证方法与流程

文档序号:11063656阅读:2136来源:国知局

数据安全、数据完整,云计算数据存储领域

技术背景

云技术发展,企业和个人愈来愈倾向于将数据存储在云端,以便节省移动存储空间和方便随时随地访问,极大的方便了用户;同时,数据也可以在云端实现共享、方便他人下载。但是,由此也引起了数据的安全问题,数据存储在云端,脱离了数据所有者的控制,或因云服务商系统不稳定、云空间被恶意攻击,造成数据丢失和损坏。用户在不知情的情形下,或将因为数据不完整而造成各种损失;那么如何确定云端数据是否完整呢?如果定期将数据下载到本地进行完整性检查,或者直接替换;那么将消耗大量的通讯,也造成了极大的麻烦。所以本发明公开了一种可用于远程数据完整性验证的方法,能够定时或者不定时的检查存储于云端的数据,验证其完整性,并且支持数据属主随时更新数据。



技术实现要素:

针对云端数据是否安全、数据是否完整问题,本发明提出了一种云端数据完整性验证方法。

本发明所采用的技术方案:本方法使用双线性配对算法,首先构造出数据的原始信息表,然后利用算法随机抽取样品生成验证请求,然后根据请求所发送的验证参数数据,生成完整性验证参数,最后根据所构造的验证函数进行计算,输出验证结果。在数据属主对数据进行更新后,在原始信息表中同样进行数据版本更新,修改各项数据索引的值;所以本算法除了能远程验证数据完整性外,还能支持数据的动态更新。

本发明的有益效果是:能够不定时抽查存储于云端的数据,验证数据包是否完整,同时,数据属主可以随时对数据包进行新增、修改、删除等操作,而不会影响验证过程。

具体实施方式

为解决云端数据安全性以及云端数据完整性问题,本发明作出了详细地说明,其具体实施步骤如下:

步骤1:建立算法索引需要的私钥和公钥

步骤2:生成数据块的验证标签集合及初始更新信息表

步骤3:验证所需抽样数据块生成

步骤4:验证参数生成

步骤5:通过验证函数验证数据完整性

步骤6:数据变更时候数据信息表更新

以上步骤所涉及到的参数及定义,具体描述如下:

一、上述所述步骤1建立算法索引需要的私钥和公钥的具体计算过程如下:

步骤1.1双线性映射算法

在椭圆曲线上,设具有相同阶的乘法循环群G1,G2和GT,g1、g2分别是G1,G2的生成元,在双线性映射e:G1×G2→GT中,任意u∈G1、v∈G2和所有的a、b∈Zp有:

e(ua,vb)=e(u,v)ab

也就是说:

u1、u2∈G1,v∈G2时,(u1u2,v)=e(u1,v)·e(u2,v)

步骤1.2建立算法索引需要的私钥和公钥

任意选取x∈Zp以及u∈G1计算:

w=ux∈G1

令私钥SK=(x),公钥PK=(v,u,g2,w)

由此,数据属主可以随时随地浏览下载到上传到云端的数据F,接下来设计算法实现数据的完整性验证。

二、上述所述步骤2生成数据块的验证标签集合及初始更新信息表的具体计算过程如下:

步骤2.1数据初始状态的更新信息表

初始状态信息表包括第一行的空表头和4列,分别定义为:Id(i)表示数据块的实际物理索引,是算法的唯一标识符、BID为逻辑索引,数据在有插入操作时,值会有重复、V为版本号,初始值为0,主要记录数据属主的更新操作、E记录数据更新操作,初始值为0;拥有相同实时逻辑索引BID的数据块如果没有被修改,将通过值E来区分。数据拥有者为每个文件维护一张初始状态信息表以追踪数据当前的状态并且检查外包数据的完整性。

步骤2.2生成数据块的验证标签集合及初始更新信息表

将用户数据F分成mn个数据块,其中,mi∈Zp,i=1,...,n,即:

F=(m1,m2,...,mn),mi∈Zp,i=1,...,n。

令δ表示数据块的标签,则:

将函数H(·)与G1中的点进行一一映射:H(·):{0,1}*→G1

wi=name||BIDi||Vi||Ei

name是数据属主随机选取,作为数据F的标识符并且:name∈Zp;BIDi为数据块mi在文件F长得位置索引,Vi是数据块mi的更新计数器,初始值为0,Ei是插入操作,若数据块mi没有插入操作,则值为0,当有插入操作时候,按照步长为1单调递增。此时计算出所有数据块的标签,将他们放入集合中:

此时,运算完毕后,得到标签集的同时,还生成了F的原始的数据更新信息表;数据属主将标签集1≤i≤n连同数据F发送给云存储服务商。

三、上述所述步骤3验证所需抽样数据块生成的具体计算过程如下:

当数据属主需要验证数据完整性时,从初始更新信息表中随机抽取j个非空值si

S={s1,s2,...,sj}

其中s1<…<sj,再为每一个si选择一个随机值vi,并且vi∈Zp;设验证请求为YZ,则:

YZ={(si,vi)}

YZ指定了在本次验证中被要求抽样检测的数据块。

四、上述所述步骤4验证参数生成算法的具体计算过程如下:

在本方法中有三个验证参数,分别为R,δ,μ;在指定数据块后,将YZ发送到云服务商,抽取所需要的样本,然后随机选取r∈Zp,执行计算:

R=wr=(ux)r∈G1

云服务商在收到YZ时,能够得到抽样数据块的一个线性组合:

由此计算:

μ=rh(R)+μ‘∈Zp

将μ‘与r关联起来,哈希函数H(·):G1→Zp,将G1中的点与Zp中的元素一一映射;然后在计算参数δ:

通过上述几次计算得到验证参数{R,μ,δ}

五、上述所述步骤5通过验证函数验证数据完整性具体计算过程如下:

执行以下计算:

P=e(δ·Rh(R),g2),

判断:

如果P=Q则数据时完整的,如果P≠Q则表示数据已经不完整。

六、上述所述步骤6数据变更时候数据信息表更新的具体计算过程如下:

数据初始更新信息表中的V表示数据修改操作记录,每次数据属主进行数据块mi修改时,版本号V单调递增,步长为1,;执行更新操作:

V‘i=Vi+1

mi’的哈希值H(w‘i)=H(name||BIDi||v′i||Ei

当有删除操作时:

数据属主删除数据块mi,则Id值置为0,版本号Vi置为-1,从i开始,i=i+1,也就是mi后面的序号一次加1。

新增数据时候,在数据mi之前插入新的数据块,i=i+1,Id(i),BID,V,E依次更新,同时更新:

H(w‘i)=H(name||BID‘i||V′i||E’i

在数据属主发生以上三个更新操作后,将更新后的数据信息表及(H(w‘i),σ’i发送到云服务商,作为下次验证的属性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1