移动云计算中支持第三方的数据安全性验证和更新方法与流程

文档序号:11064693阅读:643来源:国知局

本发明涉及移动云计算、信息安全、数据完整性验证和更新领域。



背景技术:

现如今,云计算已经成为目前信息发展的主要趋势。而移动通信的飞速发展和移动终端的智能化、多元化,使越来越多的用户选择使用智能移动终端实现信息的获取和使用。云服务平台的终端也从个人计算机、服务器、便携式计算机扩展到了各类移动设备,用户通过移动终端就可以实现对云端数据随时随地的共享、管理和获取。伴随着移动通信与云计算的有机结合,公共安全、智能交通、智慧家庭、环境监测、位置服务、移动支付等移动互联网新的服务模型和业务不断涌现。

移动云计算中面向数据的应用服务要求云端拥有完备的数据保密机制,以免用户重要的私有数据丢失或者被盗,然而,云服务供应商的可信度是难以确定的,以云端数据完整性为例,一些遭受拜占庭失效的云存储服务供应商可能会选择向用户隐藏数据错误,或者为节约成本故意删除用户不常用的数据。因此,将数据安全机制完全交由云端负责是不可取的,用户必须能够按照意愿对云端数据完整性进行验证。

考虑到移动云计算环境中的移动端计算和存储能力的局限性,将复杂的数据完整性验证处理放在移动端也是不合适的。需提供一种解决方案,既能有效减轻移动端的计算压力和减少验证时的数据通信量,又能保障安全性。



技术实现要素:

针对现有技术的上述不足,本发明提出了一种移动云计算中支持第三方的数据安全性验证和更新方法。

针对上述问题,本发明提出了以下技术方案:

该方案依托BLS短签名算法和Merkle哈希树针对移动云计算环境中的移动设备计算能力较低和通信传输能力较弱的情况进行设计,能以相对较少的计算量和较低的数据通信量完成可信度较高的数据完整性验证。验证过程有支持验证外包、无需源文件块直接参与验证、验证中无状态信息保存、以及支持对云端数据的动态操作等特性,适合于移动云计算环境中面向数据的应用。具体的计算步骤如下:

步骤1:移动云中密钥生成算法生成密钥。

步骤2:移动云中签名产生算法生成签名。

步骤3:建立挑战信息。

步骤4:验证信息生成计算。

步骤5:数据验证算法。

步骤6:数据更新。

本发明的有益效果是:

1、支持验证过程外包,可减轻移动端的计算和存储负担;

2、验证过程无状态信息保存,云服务商只需根据验证者发来的挑战请求构造相应的验证数据并返回即可;

3、验证无需源文件块参与,验证端在整个验证流程中操作的是经映射函数处理过的文件块,可保证文件信息不暴露给TPA。

具体实施方式

移动云计算中支持第三方的数据安全性验证和更新方法,在本方法中,移动云计算验证分为数据持有者、可信任第三方、云服务提供商、存储服务供应商,我们将云服务商和存储服务提供方看做一个整体,叫服务方,其中可信第三方是提供数据外包验证服务的机构,用户可把数据完整性验证外包给可信任第三方,以减轻自身的计算和存储负担。本文的方案依托基于Merkle哈希树的文件完整性检验方法,将文件块标签的哈希值按从左至右的顺序依次对应哈希树的叶子节点,再按顺序两两级联哈希,最终计算出根节点的哈希值,对于一个拥有n个块(n为2的整数次幂)的文件,需要进行2n-1次哈希计算才能算出根节点的值。本方案中,哈希树的价值体现在对文件块完整性的验证上。验证任意一文件块mi,只需知道该文件块的块标签所对应的叶子节点到哈希树根节点路径上的所有兄弟节点的值就可以了。想要验证块标签所对应的文件块是否完整,则需要知道块标签对应的叶子节点的值以及到根节点路径上的所有兄弟节点的值。

步骤1:移动云中密钥生成算法生成密

在椭圆曲线上双线性对映射:e:G1×G2→GT,其中群G1和G2是两个GapDiffie-Hellman群,GT是一个具有素数阶p的乘法群,g为G1的生成元。数据拥有者选择一个公钥密码体系密钥对(SPK,SSK),选择一随机数α∈Zp计算μ=gα,然后令密钥SK=(α,SSK),公钥PK=(μ,SPK)。

步骤2:移动云中签名产生算法生成签名

数据所有者将源文件F分块,F=(m1,m2,...,mn),mi为F的文件子块,1≤i≤n;随机选择u∈G,令:

t=(name||n||u)||Sigssk(h(name||n||u)

其中h(*)表示哈希函数,求对应量的哈希值,name代表文件名;n代表文件的块数。将t作为文件F的标签,然后计算mi的签名σi

令Φ={σi},1≤i≤n;然后根据h(H(mi)),构造一棵哈希树。构造哈希树时需要注意,由于哈希树初构建时是一棵满二叉树,其叶子节点数目必须是2的整数次幂,那么构建时往往需要填充叶子节点使之满足条件。建树完成后,记其根节点为R,用私钥α对R签名:sigsk(R)=(R)α。数据属主构造{F,t,Φ,sigsk(R)}并将其上传给云服务商,并删除本地的{F,t,Φ,sigsk(R)}。

步骤3:建立挑战信息

移动云端数据属主为既可以在本地验证,也可以将验证服务外包给第三方(TPA)以减轻本地的计算和存储负担,TPA先要求云服务商将t发送过来,通过数据属主的公钥验证标签t(用SPK对t包含的签名验证即可)。文件标签验证通过后TPA着手构造挑战信息chal。TPA随机选择有c个元素的集合[1,n]的子集I={s1,...,sc},假定s1≤…≤sc。对于每个i∈I,TPA选择一个随机数vi=gα,构造chal{(i,vi)},s1≤…≤sc,将其发送给CSP。关于chal的意义:有c个元素的集合{i}即表示想要挑战的c个文件块的位置索引,随机数集合{vi}供CSP生成验证信息。

步骤4:验证信息生成计算

在收到chal{(i,vi)},s1≤…≤sc时,CSP进行如下计算:

其中:mi是文件的第i个文件块,δi是第i个文件块对应的签名。除此之外,CSP还需提供TPA重构哈希树的根节点R。之后CSP返回P={μ,σ,{H(mi)},sigsk(R)}给TPA供其验证。

步骤5:数据验证算法

在收到CSP返回的验证信息P后,TPA利用{H(mi)},sigsk(R)},s1≤…≤sc,重构哈希树根节点R。因为e(sigsk(R),g)=e((R)α,g)=e(R,gα)所以进行下验证:

e(sigsk(R),g)=e(R,gα),

若该验证失败,则返回FALSE。若验证通过则说明在CSP给定根节点签名sigsk(R)的前提下,根节点R与签名sigsk(R)是匹配的,即是文件块标签{H(mi)}s1≤…≤sc是完好的,因为根据它可以重构出匹配签名的根节点。然后验证:

若该验证失败说明文件块损坏,返回FALSE。反之,说明文件块完整,验证通过。一旦通过了以上两个验证,则算法返回TRUE,验证成功。

步骤6:数据更新

数据属主不定时对数据更新,为了减少计算,不选择重新上传文件,值在源文件中进行更新操作:

(1)构造更新信息

假设数据属主要将第i个数据块mi更新为mi、,数据属主先将mi、产生的签名

然后构造更新信息update=(i,mi、,σi、)发送给CSP。

(2)CSP进行数据更新

收到update信息后,CSP替换块mi、和块签名σi、,更新哈希树,生成新的根节点R、。随后CSP产生更新验证信息:

Pupdate=(σi、,H(mi、),sigsk(R),R),并发送给TPA。TPA重构根节点R,并验证e(sigsk(R),g)=e(R,gα),并将该值同R、进行对比,若一致,则说明CSP完成了数据更新工作,已算出新的根节点值。这时由数据属主用自己的私钥SK对新的根节点R、签名得到sigsk(R、),将其发送给CSP更新。

在本方法中,采用第三方进行验证,节省了移动端的计算和存储负担,验证过程无需源文件参与,整个验证流程中操作的是经映射函数处理过的文件块,可保证文件信息不暴露给TPA。

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