信息安全毕业论文

基于可分在线/离线签名的云存储完整性验证方案

时间:2021-05-30 10:44:14 信息安全毕业论文 我要投稿

基于可分在线/离线签名的云存储完整性验证方案

  随着全球通信技术的不断发展以及信息化和网络化的不断推进,物联网、泛在网、云计算和云存储等分布式网络系统技术逐渐成为信息科学领域的重要发展方向。但是这也对当今的各种通信设备和网络设备的计算、存储及通信能力提出更高的要求。下面小编为大家献上基于可分在线/离线签名的云存储完整性验证方案的论文,希望对信息安全专业的同学有帮助哦!

基于可分在线/离线签名的云存储完整性验证方案

  摘 要:云存储的完整性验证是目前云计算研究的一个热点方向。论文的云存储完整性验证方案是基于可分在线/离线签名的研究,其适用于用户将数据文件存储于服务器后,在取回时需要验证其完整性的情况。该方案因为利用了可分在线/离线签名的思想,因而拥有较高的存储效率,并且适合用户一经确定后需要在极短时间内完成上传存储的即时存储情况。

  关键词:云存储;数据存储;完整性;验证方案

  1、 引言

  云计算是一种基于互联网和分布式计算的新的计算模式。它将原本各自独立的计算、存储及宽带等资源整合起来形成资源池,以按需付费的方式给用户提供服务。用户使用云计算服务时,无需自己构建和维护这些资源,只需通过远程资源访问即可实现与云计算服务商之间的信息交流。

  云存储是目前应用范围较广的云计算技术。云存储是指用户通过互联网服务或数据库的管理与备份等自助服务,将自身的海量数据外包给一个专业的云计算服务器,以此来减少自身本地存储的维修代价的一种技术。在云存储中,用户因为将本地存储的海量数据外包给云服务器存储,并可能为了降低自身的存储代价而将本地存储中的元数据删除,从而丧失对这些数据的物理管理权限。因此,用户必然会对云端数据的安全状况产生担忧,因为即使服务商对用户承诺保护用户的数据安全性,但这仅是道德和经济层面的约束,并无法因此确保用户数据的绝对安全。所以,从用户的角度考虑:一方面要防止云端个人或组织的隐私信息被不可信的服务商泄露、窃取或篡改;另一方面,如果用户存储于云端的数据已被损坏或丢失,则需要及时地验证这些数据的完整性,从而揭示服务商的不可靠性。

  2007年,Juels和Kaliski首次提出可恢复性证明(POR)的存储模型。可恢复性是指顾客可以从服务器中提取先前存储的数据文件。他们在POR协议中使用了纠错码编码,将数据文件划分成数据块,对每一个数据块进行加密,并在数据块之间插入“哨兵”。利用这些“哨兵”,用户端不仅可以验证存储于云端数据的完整性,而且可以在存储数据已被篡改和删除后,以一定的概率恢复这些数据。之后,Ateniese等人提出了另一个存储证明方案,即数据持有性证明(PDP)协议。该协议利用同态认证标签给出了一个有效的存储方案。云用户通过该协议可以验证存储于不诚实的云服务器中的数据的完整性。虽然该协议在构造中运用了同态性质使得通信量可以不随数据的增大而呈线性增加,但是其构造使用模幂运算来为数据块生成标签,因此需要耗费较大的计算资源。

  2、 云存储模型

  2.1 语法定义

  云存储的数据存储与数据验证模型通常由数据提供者、云端和用户三方构成的一个系统。数据的存储和数据的验证,都可以在数据提供者和云服务器之间完成,因此我们的验证方案包含数据的存储和数据的验证两个部分。我们定义数据的存储为准备阶段,即“Setup”阶段;数据的验证阶段为挑战阶段,即“Challenge”阶段。

  本文构建的云存储方案是一个标准的数据存储模型(Data Storage Model),以下简称这个存储模型为DSM。DSM是由四个概率多项式时间算法组成的四元组:

  DSM=(KeyGen,TagGen,GenProof,CheckProof)

  其完整的语法定义为:

  (1)(pk,sk)←KeyGen(1λ) :该算法由数据提供者运行。在输入安全参数λ后,该算法输出一对公私钥对(pk,sk)。

  (2)Ti← TagGen(pk,sk,f,i):该算法由数据持有者运行。输入公私钥对(pk,sk),文件f和文件对应的标志符i(i∈N*),输出一个标签Ti 。

  (3)V← GenProof(pk,F,Chal,T) :该算法由云服务器运行。输入公钥pk,数据全文件F=(f1,f2,…,fi,…,fn)(n∈N*),挑战Chal={i1,i2,…,ik}(1≤ik≤n)和全标签T=(T1,T2,…,Ti,…,Tn)输出一个验证证明V。

  (4) accept / reject←CheckProof(pk,FChal,Chal,V):该算法由数据持有者运行,输入公钥pk,挑战文件FChal={fi1,fi2,…,fik},挑战Chal和验证证明V,输出一个验证结果accept或者rejec。

  模型说明:

  顾客(Client)C与服务商(Server)S之间的数据存储协议可以用这个数据存储模型DSM实现,具体步骤分为Setup和Challenge两个阶段:

  -Setup:顾客C将待存储文件F划分成n个数据块F=(f1,…,fi,…,fn),其中i∈{1,2,…,n}。C随后运行(pk,sk)←KeyGen(1λ)算法,然后再运行标签生成算法Ti← TagGen(pk,sk,f,i)算法。C存储公私钥对(pk,sk)后,将pk,F和T=(T1,T2,…,Tn)发送给S存储于服务器并保证sk是保密的。待S存储完成后,C删除本地文件中的F和T。

  -Challenge:C生成验证挑战Chal,并发送给S。S随后运行V← GenProof(pk,F,Chal,T) 后,将生成的`验证证明V及与挑战Chal相对应的挑战文件FChal返回给C。最后,C通过运行CheckProof(pk,FChal,Chal,V) 得到验证结果accept或者rejec。

  2.2 安全定义

  我们设计一个攻击模型(Game)来证明这个存储验证方案的安全性并观察此数据验证方案的属性。这个攻击模型是一个PPT敌人A与一个挑战者C之间攻击博弈,具体有四个阶段:

  (1)准备(Setup):C选择安全参数λ后运行(pk,sk)←KeyGen(1λ)算法,将生成的公钥pk发送给敌人A,并保证私钥sk是保密的。 (2)查询(Query):这个阶段A进行适应性地标签查询:A首先选择文件f1并将之发送给C。C随后运行Ti← TagGen(pk,sk,f,1)并将生成的文件f1的标签T1返回给A。然后A继续选择文件f2,f3,…fn并陆续对C进行适应性查询。C将生成的对应文件的标签T2,T3,…Tn依次返回给A。在这个查询过程中,C通过计算Ti← TagGen(pk,sk,f,j)生成标签Tj,其中1≤j≤n。A按顺序存储文件F=(f1,f2,…,fn)和与之对应的标签T=(T1,T2,…,Tn)。