一种基于云计算的高效数据处理方法与流程

文档序号:11180651阅读:481来源:国知局
一种基于云计算的高效数据处理方法与流程

本发明涉及云计算领域,具体涉及一种基于云计算的高效数据处理方法。



背景技术:

随着互联网技术的快速发展,互联网的业务范围也在不断扩大,互联网己经成为人们日常生活中不可或缺的重要组成部分。用户对互联网的使用需求已经从传统的门户网站逐渐转向了高业务量的互联网服务。与此同时,数据呈现出爆炸性的增长,对于互联网服务方来说,新扩展的业务中所需要的存储资源和计算机硬件的成本在不断地提高,数据中心的建设和维护成本在逐年升高,人员管理和资源的消耗也在不断增加。要解决这一系列的问题,必须要建立一个新的平台和处理机制来协调和调度有限的资源,使数据的收集、处理和计算变得更为高效、快捷。

正是在这种的情况下,云计算技术应运而生。云计算将计算任务分布在大量廉价计算机所构成的资源池上,并使各种应用系统能够根据需要获取资源池中的计算力、存储空间和各种软件服务的一种新兴的商业计算模型。云计算拥有超大规模、虚拟化、高可靠性、高通用性、高可扩展性、按需服务和极其廉价的特点。云计算的基本原理是使计算从本地或者远程服务器分布在大量的分布式计算机上,而并非本地或者远程服务器上,企业数据中心的运行将与互联网更加相似,这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算不断研究与发展的同时,其核心的技术云存储也被越来越多地被人们所关注。云存储是集群应用、网格技术和分布式文件系统等将网络中大量不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能,它为用户节省了大量成本,因此得到了广泛的支持和应用。用户可以通过服务的方式,按需计量随时随地的使用云存储中丰富的存储资源,从而实现让存储像水和电一样变成一种公用基础设施让用户按需使用,同时还可以为用户提供可靠的安全保证。随着云存储的进一步发展,这一技术的重要性也日趋显现出来,吸引了越来越多的企业和个人,也使得越来越多的应用转而迁移到云存储之上,从而进一步对云存储的安全提出了更加严格的要求。

然而,使用云存储的服务意味着用户需要将数据存储到他们所掌控不到的存储设备中去,这些数据甚至可能不在提供云存储的服务方手中,而是在所有用户共同使用的云存储系统中完成,其中必然存在着极大的安全风险。由于数据处于用户的不可控之中,使得用户对云存储的不信任度再度增加。一般认为数据只有在用户自己手里才会觉得是最安全的,所以如何使用户自主的保护敏感数据的机密性和完整性,成为当前云存储环境下用户最为关注的问题。所以在云存储系统的设计中,首先要保证的是数据的安全和可靠,这样才能够吸引更多的互联网用户。否则,一旦发生安全问题可能将导致不可预料的后果。所以,云存储系统设计首先需要解决的问题是用户数据安全的问题,这也是云存储模式能否顺利推广的前提条件。

针对用户对数据安全保护的迫切需求,目前主要的研究有:1、针对用户秘密信息的机密性保护。文献提出了一个安全文件存储服务的文件系统框架,利用目前安全的客户端跨域(clientcross-domain)通信机制的研究成果,给web服务提供一个独立的文件系统服务,将用户数据的控制权返还给用户,提高了数据的可控性,降低了应用服务器管理用户数据的访问控制策略的压力。2、针对用户秘密信息的完整性保护。有人提出了一个远程完整性检测协议,协议存在服务器端计算量随着文件长度的增加而呈指数增长的问题,而在云存储中,文件种类繁多,数据量大,因此该协议在云存储中适用性差。有人提出了一个提出使用基于rsa的同态哈希函数,实现服务器对于数据持有的完整性证明,协议存在服务器(alice)的计算量随着密钥的长度的增加成指数增长的问题。以上研究说明:如何有效提高数据块保密性和完整性,保护用户数据的安全是云存储数据安全研究的重点。

现有的云计算的安全处理方式存在效率不高、占用存储空间大等问题。



技术实现要素:

至少部分的解决现有技术中存在的问题,本发明提出一种基于云计算的高效数据处理方法,采用带权二叉树实现对用户文件的验证,所述带权二叉树具体为:所有的叶子结点都是一个文件块的哈希值,同时包含一个权值,所有的叶子结点中,深度小的叶子结点的权值必须不小于比它深度大的叶子结点的权值;而对于非叶子结点,都只包含一个哈希值,这个哈希值是对它的两个子结点的哈希值再次运算求得的哈希值;所述方法包括:

(1)存储数据:用户在向云存储服务器存储数据的时候,同时生成验证工作所需的信息,将必要的信息分别存储在第三方和云存储服务器上;

首先,用户经由第三方为文件生成数字签名,同时为每一个文件块生成一个文件校验值,然后将文件协同数字签名和校验值一起存储在云存储服务器上,具体过程包括:

每个用户为自己生成一对密朗,存储在第三方可信任验证机构,密钥由一个私钥和一个公钥组成;

生成随机数x作为私钥,其中x∈zp,zp表示元素个数为素数p的有限域{0,1,…,p-1};

同时生成随机数u,计算v=gx,o=ux,其中,g是有限域zp的生成元,以pk=(v,o,g,u)作为公钥;

对于每个用户k,根据每个文件块的哈希值h(mi),以及每个文件块赋予的初始权值vi,作为一个叶子结点生成一棵所述带权二叉树,然后再根据两个子结点的哈希值,两两求得其父结点的哈希值,迭代求下去,得到所述带权二叉树的根结点的哈希值,然后用用户k的私钥对根结点进行数字签名,生成一个根签名文件sig(root),生成了根签名文件以后,将根签名文件、文件块、文件块的签名、每个文件块的权值以及所述带权二叉树的结构信息一起发送到云存储服务器上,可以表示为{(mi,vi,σi),sig(root),struc},其中struc表示所述带权二叉树结构相关的信息,可以根据该信息得到所述带权二叉树的结构;同时用户将自己的私钥存储在可信任的第三方验证平台上,云存储服务器根据收到的{(mi,vi,σi),sig(root),struc},在云存储服务器端生成一棵所述带权二叉树;

(2)发起验证请求:在用户的要求下,或者定期任务下,第三方可信任验证机构向云存储服务器发起验证请求,将验证请求信息发送给云存储服务器;

(3)生成验证消息:云存储服务器收到第三方可信任验证机构的验证请求后,根据收到的验证信息,计算出相应的证明信息,然后将证明信息发送给第三方可信任验证机构接受验证;

(4)验证:第三方可信任验证机构收到云存储服务器发来的反馈内容以后,结合第(2)步发给云存储服务器的验证请求信息,以及存储在第三方可信任验证机构的用户信息,根据定义的规则验证用户的文件是否正确存储。

优选的,步骤(2)包括:

第三方可信任验证机构向云存储服务器发送验证请求信息,验证请求信息为一串文件块的序列,同时还要为每个文件块生成一个随机数,用chal表示,chal={i,qi},其中i表示文件块的序列号,qi表示生成的随机数。

优选的,步骤(3)包括:

根据所述带权二叉树的结构struc,把哈希值集合{h(mi)}连同计算根结点哈希值时struc上其他需要的结点的哈希值集合{{ωj}j∈struc},以及结构struc,一起返回给第三方可信任验证机构,返回的数据表示为{{μk},σ,{ωj}j∈struc,sig(root),struc}。

优选的,步骤(4)包括:

根据结构struc,用结点的哈希值{{h(mi)},{ωj}j∈struc}还原所述带权二叉树,进而得到新的根结点的哈希值h(root),之后,与收到的根结点签名对下述公式进行验证:

e(sig(root),g)=e(h(root),gsk)

sig(root):收到的根结点哈希值的数字签名,h(root):根结点的哈希值,e():双线性函数,g:有限域的生成元,sk:用户的私钥;

若根据云存储服务器反馈的数据以及存储在第三方可信任验证机构的数据能够满足公式,则说明云存储服务器存储的数据没有问题。

本发明提出了基于云计算的高效数据处理方法,提高了数据处理的效率、减少了占用的存储空间。

附图说明

图1为本发明一种基于云计算的高效数据处理方法的流程图;

具体实施方式

下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

参见图1,本发明提出了一种基于云计算的高效数据处理方法,包括:

(1)存储数据:用户在向云存储服务器存储数据的时候,同时生成验证工作所需的信息,将必要的信息分别存储在第三方和云存储服务器上。

首先,用户经由第三方为文件生成数字签名,同时为每一个文件块生成一个文件校验值,然后将文件协同数字签名和校验值一起存储在云存储服务器上,具体过程包括:

每个用户为自己生成一对密朗,存储在第三方可信任验证机构,密钥由一个私钥和一个公钥组成;

生成随机数x作为私钥,其中x∈zp,zp表示元素个数为素数p的有限域{0,1,…,p-1};

同时生成随机数u,计算v=gx,o=ux,其中,g是有限域zp的生成元,以pk=(v,o,g,u)作为公钥;

用户在上传文件时,用自己的私钥为每个文件块签名,生成一个文件签名,同时用特定的文件校验方法为每个文件块生成一个校验值,例如md5校验、sha-1校验。

具体签名方法包括:

对由n个文件块组成的文件f=(m1,m2,…,mi,…,mn),为每个文件块生成一个文件签名h(mi)是哈希函数;

同时为每个文件块生成校验值wi,然后将mi,σi,wi一起存放到云存储服务器上,将mi,σi,wi从本地删除,然后将文件的序列信息,即每个用户有几个文件,分别是什么,存放到第三方可信任验证机构。

(2)发起验证请求:在用户的要求下,或者定期任务下,第三方可信任验证机构向云存储服务器发起验证请求,将验证请求信息发送给云存储服务器,具体包括:

第三方可信任验证机构向云存储服务器发送验证请求信息,验证请求信息为一串文件块的序列,同时还要为每个文件块生成一个随机数,用chal表示,chal={i,qi},其中i表示文件块的序列号,qi表示生成的随机数;

(3)生成验证消息:云存储服务器收到第三方可信任验证机构的验证请求后,根据收到的验证信息,计算出相应的证明信息,然后将证明信息发送给第三方可信任验证机构接受验证,具体包括:

设需要验证的文件块分别是k个用户的,对每个用户k,k∈{1,…,k},k个用户的文件块、数字签名及校验值分别是mk,1,…,mk,i,…,mk,n、σk,1,…,σk,i,…,σk,n、wk,1,…,wk,i,…,wk,n,同时为每个用户k生成一个随机数μrk;

云存储服务器需要计算以下两部分内容:

一是要计算每个用户文件的线性组合:

其中,μrk是云存储服务器每次验证的过程中为每个用户生成的随机数,用于避免第三方可信任验证机构获得用户的数据;

如果不用μrk,则验证者可能会通过线性攻击得到服务器上的文件,例如,如果第三方可信任验证机构两次验证的过程中,第二次验证比第一次验证少一个文件,其他文件都相同,那么只需要用第二次的μrk值减去第一次的μrk值,就可以获取到第二次验证少的那个文件的信息了。如果加上随机数,那么每次还参杂的有随机数在里边,通过简单的线性攻击就无法获取到文件的信息。

二是要计算聚合签名σ:

其中

将计算结果反馈给第三方可信任验证机构,反馈的内容如下:

{σ,{μk}1≤k≤k}

(4)验证:第三方可信任验证机构收到云存储服务器发来的反馈内容以后,结合第(2)步发给云存储服务器的验证请求信息,以及存储在第三方可信任验证机构的用户信息,根据定义的规则验证用户的文件是否正确存储。

在云存储的数据验证模型中,由于需要对用户存储在云存储服务器上的数据进行验证,如果这个验证工作由用户自己来做,有很多不合适的地方。

首先,用户的计算能力有限,如果验证的工作比较复杂,那么用户本地的资源可能无法胜任这项任务,例如cpu运算速度不够、带宽不够。其次,验证工作需要验证方保存有一些特定的信息,例如用户的密铜,如果将验证工作交给用户来做,那么用户可能会将这些特定的信息丢失,这些信息一旦丢失,就无法再做验证工作。第三,验证工作可能会定期执行或者需要一定的时间才能执行完毕,在这个过程中,验证方必须在线完成验证工作,而用户在验证过程中并不一定能够保证在线,因此对于验证工作也无法胜任。

因此,针对用户无法完成验证工作的事实,必须要有一个第三方可信任的机构来代替用户作为验证方完成验证工作。用户与云存储服务器之间仍旧直接上传和下载文件,而对于用户文件的验证工作则交给第三方来处理。

在使用同态认证标签对用户的数据进行验证的方法中,由于每个用户的密钥不一样,而验证方法中需要使用用户的密钥对服务器返回的验证证据进行加密运算,因此在每次验证的计算过程只能针对单个用户的数据进行。在实际的数据验证中,由于有数量巨大的用户存在,如果每次验证过程只针对一个用户的文件进行处理,每次传输过程只传输一个用户的验证信息,这个效率是比较低下的,将所有用户的数据都验证完需要太多次认证。

通过研究,发现由于同态认证标签本来就己经通过密钥签名存储在服务器上,而服务器端计算聚合签名的过程是与用户密钥无关的,只是将各个文件的标签进行结合得到一个聚合签名,因此可以同时进行多个用户计算聚合签名的步骤,减少得到的聚合签名的数量,进而减少传输的数量,做到多个用户的数据共同验证。

而在多用户文件共同验证的过程中,会带来一些其他的问题。每一次验证过程,由验证方向存储方发起验证请求,由存储方返回证据,证据证明这些批量验证的文件是否有异常。然而如果在一次验证过程中,某一个用户的某个文件有异常,那么返回的证据只能表明该次验证过程失败,即说明该次验证的这些文件的某些部分有问题,却无法确定具体是哪一个文件有问题。遇到这种情况,需要对多用户共同验证工作进行修改,重新分配需要验证的文件数量并重新进行验证,直到多次验证后定位到出现错误的文件。针对这个问题,本发明在云存储服务器开始验证前,先由云存储服务器用一种基本的方法对用户数据进行自检,将错误文件提取出来,再将自检结果发送给验证方,由验证方用更加确切的方法来验证云存储服务器的自检结果。

早期的关于云存储数据验证的方法,都是建立在静态文件的验证基础之上的,这些方法的前提是文件不能变化,如果文件发生了变化,那么这些方法就会全部失效。而在实际的存储环境中,文件不可能不发生变化,因此,必须把文件变化作为一个必要的因素考虑进数据验证的方法。

本发明采用一种带权二叉树实现对用户文件的验证,所述带权二叉树具体为:

所有的叶子结点都是一个文件块的哈希值,同时包含一个权值,所有的叶子结点中,深度小的叶子结点的权值必须不小于比它深度大的叶子结点的权值;而对于非叶子结点,都只包含一个哈希值,这个哈希值是对它的两个子结点的哈希值再次运算求得的哈希值。

在上述步骤(1)中,对于每个用户k,根据每个文件块的哈希值h(mi),以及每个文件块赋予的初始权值vi,作为一个叶子结点生成一棵所述带权二叉树,然后再根据两个子结点的哈希值,两两求得其父结点的哈希值,迭代求下去,得到所述带权二叉树的根结点的哈希值,然后用用户k的私钥对根结点进行数字签名,生成一个根签名文件sig(root),生成了根签名文件以后,将根签名文件、文件块、文件块的签名、每个文件块的权值以及所述带权二叉树的结构信息一起发送到云存储服务器上,可以表示为{(mi,vi,σi),sig(root),struc},其中struc表示所述带权二叉树结构相关的信息,可以根据该信息得到所述带权二叉树的结构;同时用户将自己的私钥存储在可信任的第三方验证平台上,云存储服务器根据收到的{(mi,vi,σi),sig(root),struc},在云存储服务器端生成一棵所述带权二叉树。

在上述步骤(3)中,根据所述带权二叉树的结构struc,把哈希值集合{h(mi)}连同计算根结点哈希值时struc上其他需要的结点的哈希值集合{{ωj}j∈struc},以及结构struc,一起返回给第三方可信任验证机构,返回的数据表示为{{μk},σ,{ωj}j∈struc,sig(root),struc}。

在上述步骤(4)中,根据结构struc,用结点的哈希值{{h(mi)},{ωj}j∈struc}还原所述带权二叉树,进而得到新的根结点的哈希值h(root),之后,与收到的根结点签名对下述公式进行验证:

e(sig(root),g)=e(h(root),gsk)

sig(root):收到的根结点哈希值的数字签名,h(root):根结点的哈希值,e():双线性函数,g:有限域的生成元,sk:用户的私钥;

若根据云存储服务器反馈的数据以及存储在第三方可信任验证机构的数据能够满足公式,则说明云存储服务器存储的数据没有问题。

现有的基于云计算的数据验证方法所采用的数据结构在存储数据时,都是将数据存储在叶子结点之中,在这种结构中,其他上层结点并不存储实际数据,而只是存储一些用以验证的摘要值信息,这无疑增加了服务器上的存储空间开销。

为了优化这一问题,本发明又提出一种完全存储树,即树中的所有结点都可以用来存储实际数据,这样不但减少了服务器上的空间开销,而且可以降低树的高度,从而降低了数据插入删除等基本操作的时间复杂度。

本发明采用一种完全存储树实现对用户文件的验证,所述完全存储树具体为:

以平衡二叉搜索树为基础结构建立完全存储树,所述完全存储树中每个结点都存储以下内容:

1)存储在该结点的文件块mi;

2)本结点文件块的哈希值hi=h(mi);

3)联合哈希值hsum(i),如果i是叶子结点,则hsum(i)=h(i),否则,根据结点i子结点的哈希值,求得其父结点的哈希值,迭代求下去,得到所述完全存储树的根结点的哈希值,即整个完全存储树的哈希值h(root)。

在上述步骤(3)中,云存储服务器收到第三方可信任验证机构的验证请求后,云存储服务器在完全存储树中查找到存储着目标数据的相应目标结点target,并记录了从根结点root到目标结点t的查找路径,此时,云存储服务器向用户返回相应证据proof={η,π1,π2,…,πn},其中

1)若t是叶子结点,则η={mt},其中,mt表示结点t存储的文件块;

2)若t不是叶子结点,则η={mt,hsum(t→leftchild),hsum(t→rightchild)},其中,hsum(t→leftchild)表示结点t的左结点的联合哈希值,hsum(t→rightchild)表示结点t的右结点的联合哈希值。

πi的定义如下:

1)若i-1为左结点,则πi={hi,hsum(i-1),hsum(i→rightchild)};

2)若i-1为右结点,则πi={hi,hsum(i→leftchild),hsum(i-1)};

在上述步骤(4)中,具体验证过程如下:

1)首先计算a=h(mt),如果t是叶子结点,则验证a=hsum(t)是否成立,否则,验证h(a,hsum(t→leftchild),hsum(t→rightchild))=hsum(t)是否成立;

2)对于πi(i<n),若i-1为左结点,计算h(hi,hsum(i-1),hsum(i→rightchild)),若i-1为右结点,则计算h(hi,hsum(i→leftchild),hsum(i-1)),并验证h(hi,hsum(i-1),hsum(i-1→brother))=hsum(i)是否成立;

3)对于πn,若n-1为左结点,则计算h(hn,hsum(n-1),hsum(n→rightchild)),若其为右结点,则计算h(hn,hsum(n→leftchild),hsum(n-1)),并与用户之前所存储的数据集的摘要值h(root)相对比;

如果以上所有验证过程全部成立,则证明云存储服务器所返回的答案为正确的,即认为所验证的数据是完整的,反之,用户则认为该数据已被篡改或伪造。

本发明提出了基于云计算的高效数据处理方法,提高了数据处理的效率、减少了占用的存储空间。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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