一种云存储中群组数据的完整性验证方法与流程

文档序号:17070351发布日期:2019-03-08 23:15阅读:196来源:国知局
一种云存储中群组数据的完整性验证方法与流程

本发明涉及信息安全技术,尤其涉及一种云存储中群组数据的完整性验证方法。



背景技术:

作为云计算的重要组成部分,云存储专注于向用户提供以互联网为基础的在线存储服务。在云存储模式下,存储即服务(storageasaservice),用户无需考虑物理设备的存储类型、存储方式以及数据的可用性、可靠性等具体的技术细节,就能按需从云服务提供商(cloudserviceprovider,csp)处获得相应的服务,随时随地访问自己的数据。云存储系统在为用户提供无限存储空间的同时,还提供了易于使用的服务接口和极强的可扩展性,在提高it(informationtechnology)效率、成本节省以及绿色计算等方面带来了机遇。

但是,用户数据存储于云平台上时,也会面临着一些安全挑战,数据完整性即是其中之一。在云存储模式下,数据外包存储于云服务器中,脱离了数据属主(dataowner)的物理控制。考虑到云服务提供商csp不完全可信,csp有可能会恶意丢失或删除部分用户极少访问的数据,以节省存储空间;而且,为了维护商业信誉,csp极有可能向用户隐瞒由于外部攻击或内部故障等引起的数据丢失或损坏的事实,使得用户数据的完整性被破坏。解决该问题的一个简单直接的方法就是定期地将所有数据下载到本地,检查其完整性,但该方法需要消耗大量的通信带宽和本地存储空间,会导致云存储的优势不复存在。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种云存储中群组数据的完整性验证方法与装置。

本发明解决其技术问题所采用的技术方案是:一种云存储中群组数据的完整性验证方法,所述群组包括以下成员:多个普通成员和至少一个群管理员,普通成员为地位对等的普通成员;包括以下步骤:

1)密钥生成

群管理员将公共参数和群公钥广播给所有群成员,并将公共参数和群公钥作为公开参数;

所述公共参数由群管理员生成;

所述群公钥由群管理员根据接收来自每个群成员的公钥计算得到,具体如下:所有群成员按照预定的方式生成各自的公私钥对,将公钥通过公共信道发送给群管理员,将身份标识通过安全信道发送给群管理员;群管理员收到每个群成员的公钥后,计算群公钥;

2)认证标签生成

群成员中的数据属主将匿名处理后的身份信息广播给其他群成员,以获得其他群成员对其身份信息的签名;

数据属主对数据进行分块处理,并利用聚合的广播加密算法的数据签名算法为每个数据块生成对应的认证标签;

数据属主将数据块及其认证标签一起外包存储于csp处;

3)质询生成

群中的某个成员(即验证者,一般为非数据属主成员)在访问使用群组数据时,需要先向csp发起数据完整性质询。该过程需要与下文的示证生成过程进行交互,并且是分两个子阶段来完成的。

首先,验证者通过简单随机抽样的方式选取要验证的数据块样本,并生成相应的验证参数,并将该验证参数发送给csp;

其次,在收到csp返回的抽样数据块的信息后,验证者生成第二阶段的验证参数,并发送给csp;

4)示证生成

csp收到验证者发来的数据完整性质询后,即根据质询信息生成对应的示证。

csp首先访问质询中指定的抽样数据块,并将抽样数据块的信息返回给验证者;

然后,csp根据质询信息、抽样数据块及其认证标签的信息计算对应的示证参数,并将示证参数作为示证响应返回给验证者。

5)示证验证

验证者收到csp返回的抽样数据块的示证信息后,对该示证信息进行验证,以确认抽样数据块的完整性。若验证通过,即表明抽样数据块是完整的,并且可以高置信率来判断整体数据是完整的。若验证未通过,则表明数据的完整性被破坏了,此时,验证者可通过二分查找的方式定位到损坏的数据位置,并将验证结果通过群管理员,由群管理员做进一步处理。

按上述方案,所述步骤1)的具体步骤如下:

s1.1)群管理员um生成公共参数。um选取两个具有相同素数阶p的乘法循环群g和gt、一个可计算的双线性映射e:g×g→gt、安全哈希函数h(·):{0,1}*→g。其中,g的生成元为g,即g=<g>,哈希函数h(·)将字符串与g中的元素一一映射。um将上述参数广播给每个群成员;

s1.2)群成员生成公私钥。假定群的规模为l,每个成员uj,1≤j≤l,的身份标识为idj,群成员uj生成公私钥的方式为:随机选择两个元素和xj∈g\{1}作为其私钥,即skj=(rj,xj),并计算将rj和aj作为其公钥,即pkj=(rj,aj),每个群成员均将其身份标识通过安全信道发送给群管理员um,通过公共信道将其公钥发送给群管理员um;

s1.3)群管理员um生成群公钥。um根据所有群成员的公钥计算并将(r,a)作为群公钥,群的公开参数为(g,h,p,g,gt,e,r,a)。

按上述方案,所述步骤2)中认证标签生成的具体步骤如下:

s2.1)数据属主uk将其身份信息idk匿名化。uk计算hk=h(idk),并将hk广播给其他群成员;

s2.2)数据属主uk获得其他群成员对其身份的签名。群成员uj计算对uk的身份签名并将λj,k返回给uk;

s2.3)uk对数据进行分块处理。给定一个数据文件fk,uk为fk生成一个标识符(符号表示集合{0,1,…,p-1}),并将fk等分为n个数据块,也即fk=(mk,1,mk,2,…,mk,n),并且(i∈[1,n],符号表示集合{1,2,…,p-1});

s2.4)数据属主uk为数据块生成认证标签。对于每一个数据块mk,i(1≤i≤n),uk为mk,i计算认证标签将所有数据块的标签集合表示为φk={σk,i}(1≤i≤n)。

按上述方案,所述步骤3)中数据完整性质询生成的具体步骤如下:

s3.1)群成员(验证者)ua选取数据样本。在每次验证中,ua从集合{1,…,n}中随机选取c个元素i={sa,1,…,sa,c}。为保证一般性,ua可通过一个伪随机排列算法保证sa,1≤…≤sa,c;

s3.2)ua生成数据样本的盲化因子。对于i中的每个sa,i,ua选取一个随机数

s3.3)ua生成第一阶段的质询参数。ua随机选取一个元素并计算

s3.4)ua完成第一阶段的质询。ua将质询chala,1={(i,va,i)i∈i,ca,1,ca,3}发送给csp,该质询指定了在该次验证过程中待验证的数据块以及质询参数;

s3.5)根据步骤4.1)中的μk,ua生成第二阶段的质询参数。ua在收到csp发送的抽样数据块信息μk后,计算并选取一个随机元素ma∈gt,计算

s3.6)ua完成第二阶段的质询。ua将质询chala,2={ωa}发送给csp,从而完成整个质询过程。

按上述方案,所述步骤4)中示证生成的具体步骤如下:

s4.1)csp访问数据样本。csp根据验证者ua发送的chal1计算抽样数据块的线性组合值μk=∑i∈ivimk,i,并将μk返回给ua。

s4.2)csp生成样本数据的认证标签。csp计算抽样数据块标签的聚合值

s4.3)csp生成示证信息。csp根据验证者ua发送的chal2计算

s4.4)csp完成示证生成。csp将作为示证响应返回给验证者ua。

按上述方案,所述步骤5)中示证验证的具体步骤如下:

s5.1)ua验证示证信息。ua验证等式是否成立。若成立,输出1,表示所抽样的数据块是完整的,并以高置信率判断数据是完整的,整个验证过程结束。否则,输出0,表示数据不完整,并继续进行下述步骤的处理;

s5.2)ua定位受损数据。ua进一步地通过二分查找的方法,定位到损坏的数据块的索引号,并将验证结果通知群管理员um;

s5.3)um识别数据来源。um根据群成员的身份标识生成一张群成员的匿名化身份信息表,也即hid={(h1,…,hl)|hj(1≤j≤l)=h(idj)},并将hk与hid中的记录进行对比,从而确定数据属主的身份idk。然后,um将验证结果及受损数据块的位置通知数据属主uk,由uk对数据进行最终的处理,如更新或者修复数据块。

本发明产生的有益效果是:

1、本发明群签名的方法简洁,生成的签名参数少,且具备聚合性,大大降低了标签生成和示证生成过程中的计算和存储开销;

2、本发明示证信息简短,示证验证简单易行,大大降低了示证验证过程中的通信和计算开销。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例的云存储中群组数据的完整性验证框架图;

图2是本发明实施例的群组外包数据完整性验证流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明的应用场景为:多个用户之间通过云存储来共享数据(如一个单位通过租赁云服务器以云计算的方式来开展业务,其数据存储于云服务器中,员工通过云服务器共享数据),这些用户可以形成一个群(如一个部门、一个小组都可以形成群),并且有一个群管理员(如部门主任、小组长),其他用户则作为群的普通成员。群管理员拥有较高的权限,能够获知所有群成员的身份,普通成员之间处于对等地位,在共享数据时彼此之间不知道互相的身份,以保证群的匿名性(如在开展评比、投票等业务时需要保持匿名性)。当群中的某个成员将其数据上传到云服务器上后,其他群成员均能够访问该数据,但并不知道该数据是由哪个成员发布的;而且,为了保证数据的一致性,除了数据属主,其他群成员只有数据的读权限,没有写权限。不属于该群的用户则由于权限不够而不能访问该数据。群成员访问数据时,需要首先确认该数据是由群成员发布的而且是完整的,然后才访问数据。当验证发现数据的完整性被破坏了时,可以通知群管理员,由群管理员确认数据属主的身份,并通知其数据被破坏了。数据属主再对数据作进一步处理。

本发明提出的云存储群组数据的完整性验证方法,如图1和图2所示,其具体实施步骤为:

s1:密钥生成阶段。密钥生成阶段主要完成公共参数、群成员的公私钥、群公钥的生成,其具体实施步骤包括:

s1.1:群管理员um生成公共参数。um选取两个具有相同素数阶p的乘法循环群g和gt,一个可计算的双线性映射e:g×g→gt,以及安全哈希函数h(·):{0,1}*→g,将字符串与g中的元素一一映射,其中g的生成元为g,即g=<g>。um将上述参数广播给每个群成员;

s1.2:群成员生成公私钥。假定群的规模为l,每个成员uj(1≤j≤l)的身份标识为idj。群成员uj生成公私钥的方式为:随机选择两个元素和xj∈g\{1}作为其私钥,即skj=(rj,xj),并计算将rj和aj作为其公钥,即pkj=(rj,aj)。每个群成员均将其身份标识通过安全信道发送给群管理员um,通过公共信道将其公钥发送给um。

s1.3:um生成群公钥。um根据所有群成员的公钥计算并将(r,a)作为群公钥,群的公开参数为(g,h,p,g,gt,e,r,a)。

s2:标签生成阶段。标签生成阶段主要由数据属主完成其身份信息的匿名化和签名、对数据的分块处理和为数据块生成认证标签,其具体的实施步骤包括:

s2.1:群成员(数据属主)uk将其身份信息匿名化。uk计算hk=h(idk),并将hk广播给其他群成员;

s2.2:uk获得其他群成员对其身份的签名。群成员uj计算对uk的身份签名并将λj,k返回给uk;

s2.3:uk对数据进行分块处理。给定一个数据文件fk,uk为fk生成一个标识符并将fk等分为n个数据块,也即fk=(mk,1,mk,2,…,mk,n),并且

s2.4:uk为数据块生成认证标签。对于每一个数据块mk,i(1≤i≤n),uk为mk,i计算认证标签将所有数据块的标签集合表示为φk={σk,i}(1≤i≤n);

s2.5:uk将数据文件fk、标签集合φk一起外包存储于csp处。

s3:质询生成阶段。质询生成阶段由验证者(非数据属主的群成员)通过简单抽样的方式对群组的外包数据发起完整性质询,并生成相应的质询参数。质询生成阶段需要与示证生成阶段进行交互,分为两个子阶段,如图2所示,其具体实施步骤包括:

s3.1:群成员(验证者)ua选取数据样本。在每次验证中,ua从集合{1,…,n}中随机选取c个元素i={sa,1,…,sa,c}。为保证一般性,ua可通过一个伪随机排列算法保证sa,1≤…≤sa,c;

s3.2)ua生成数据样本的盲化因子。对于i中的每个sa,i,ua选取一个随机数

s3.3:ua生成第一阶段的质询参数。ua随机选取一个元素并计算

s3.4:ua完成第一阶段的质询。ua将质询chala,1={(i,va,i)i∈i,ca,1,ca,3}发送给csp,该质询指定了在该次验证过程中待验证的数据块以及质询参数;

s3.5:ua生成第二阶段的质询参数。ua在收到csp发送的抽样数据块信息μk后,计算并选取一个随机元素ma∈gt,计算

s3.6:ua完成第二阶段的质询。ua将质询chala,2={ωa}发送给csp,从而完成整个质询过程。

s4:示证生成阶段。示证生成阶段由csp根据质询信息访问抽样数据块及其认证标签,并将数据块信息返回给验证者,然后根据质询信息计算对应的示证,将示证返回给验证者。示证生成阶段需要与质询生成阶段进行交互,如图2所示,其具体实施步骤包括:

s4.1:csp访问数据样本。csp根据验证者ua发送的chal1计算抽样数据块的线性组合值μk=∑i∈ivimk,i,并将μk返回给ua;

s4.2:csp生成样本数据的认证标签。csp计算抽样数据块标签的聚合值

s4.3:csp生成示证信息。csp根据验证者ua发送的chal2计算

s4.4:csp完成示证生成。csp将作为示证响应返回给验证者ua。

s5:示证验证阶段。示证验证阶段主要由验证者验证csp返回的示证信息,以概率的方式判断群组外包数据的完整性,当验证发现数据不完整时,可采取进一步的处理措施,如通过二分查找的方法定位损坏数据的位置,并将结果通知群管理员,由群管理员通知数据属主,再由数据属主对数据做进一步处理,如更新或修复数据。示证验证阶段的具体实施步骤包括:

s5.1:ua验证示证信息。ua验证等式是否成立。若成立,输出1,表示所抽样的数据块是完整的,并以高置信率判断数据是完整的,整个验证过程结束。否则,输出0,表示数据不完整,并继续进行下述步骤的处理;

s5.2:ua定位受损数据。ua进一步地通过二分查找的方法,定位到损坏的数据块的索引号,并将验证结果通知群管理员um;

s5.3:um识别数据来源。um根据群成员的身份标识生成一张群成员的匿名化身份信息表,也即hid={(h1,…,hl)|hj(1≤j≤l)=h(idj)},并将hk与hid中的记录进行对比,从而确定数据属主的身份idk。然后,um将验证结果及受损数据块的位置通知数据属主uk,由uk对数据进行最终的处理,如更新或者修复数据块。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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