高复用性的云存储数据存储验证方法及系统技术方案

技术编号:10261604 阅读:193 留言:0更新日期:2014-07-26 19:49
本发明专利技术公开了一种高复用性的云存储数据存储验证方法及系统,该方法包括:接收用户的数据存储验证查询请求;对当前验证次数进行混淆,获取挑战密钥序号;用挑战密钥序号替换当前验证次数,获取当前挑战密钥和验证标签;从伪随机数组中选择P-1个伪随机数,并与当前挑战密钥混合生成查询数组;服务器生成校验标签序列,并返回给客户端;客户端对校验标签序列进行过滤及将过滤后得到的校验标签与验证标签进行比较,以判断文件是否被破坏。实施本发明专利技术的有益效果是,能以较小的计算代价获得相对高的验证可信度,文件验证标签的挑战每次均包含真实挑战参数和一系列伪随机数,使得可能的伪随机标签数量大增,避免服务器利用保存的正确签名实现重放攻击。

【技术实现步骤摘要】
高复用性的云存储数据存储验证方法及系统
本专利技术涉及计算机领域,更具体地说,涉及一种高复用性的云存储数据存储验证方法及系统。
技术介绍
由于云存储系统能够以低廉的价格为企业和个人用户提供按需弹性扩展的海量数据存储管理服务,节省了用户对文件存储系统进行专门维护和管理的代价,因而受到市场的欢迎。但是,云存储在给用户带来便利的同时,也给数据保护带来了新的挑战和威胁。由于数据存储在云端,脱离用户掌控范围,用户无法对数据进行实时监测和管理。如果云存储中的数据和文件由于黑客攻击、管理员误操作、恶意行为等被篡改或损坏,用户只能依赖于云存储系统来发现这些变化。由于云存储系统需要检验的数据量巨大,难以及时发现数据的变化,因此,云存储系统并不完全可信。且在一些情况下,出于其他方面考虑,云服务提供商并不会通知用户这些变化。因此,用户需要有一种可信手段对保存在云存储上的数据状态进行验证,从而及时应对数据故障。目前,云存储系统的数据存储验证方法大多基于元数据校验。用户在文件上传时为每一个文件块生成对应的元数据,在发起校验元数据和文件块内容的对应关系来检测文件是否完好。但是,此类方法实现大多基于复杂的签名算法,对客户端的计算能力要求较高,而且在上传时的元数据计算时间随文件的增长而增长。另外一种方法是通过提前为用户准备一定次数的完整性验证标签,当用户需要验证时,将挑战参数发送到服务器,服务器重新生成一个对应的验证标签,客户端通过比较标签是否一致来判断文件是否完整。这类方法通常计算难度低,简单的hash算法即可满足需求,上传准备时间短。但是,由于客户端只准备了确定数量的验证标签,一旦标签用尽,就有可能遭遇服务器的重放攻击,而无法继续验证文件状态。云存储系统缺乏一种适用于轻量级客户端的数据存储验证方法。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述数据存储验证方法一旦标签用尽,可能遭遇服务器的重放攻击,而无法继续验证文件状态的缺陷,提供一种高复用性的云存储数据存储验证方法及系统,实现验证过程中验证标签的复用,增大验证标签的可用性。本专利技术解决其技术问题所采用的技术方案是:构造一种高复用性的云存储数据存储验证方法,包括以下步骤:S1、为每个上传到服务器的文件设定验证参数和混淆参数,并根据单次验证可信度C和文件大小确定需要读取的文件块数;其中,验证参数包括:文件的文件名、文件大小、验证次数N、单次验证可信度C;混淆参数包括:伪随机数组S、伪随机数组生成密钥Y、混淆度P;S2、接收用户的数据存储验证查询请求,并发起查询请求;S3、对当前验证次数进行混淆,获取挑战密钥序号;S4、用挑战密钥序号替换当前验证次数,获取当前挑战密钥和验证标签;S5、从伪随机数组S中选择P-1个伪随机数,并与当前挑战密钥混合,以生成查询数组,并记录当前挑战密钥在查询数组中的位置;S6、将查询数组、文件名和文件块数发送给服务器;S7、服务器根据查询数组、文件名和文件块数生成校验标签序列,并返回给客户端;S8、客户端对返回的校验标签序列进行过滤;S9、客户端将过滤后得到的校验标签与验证标签进行比较,以判断文件是否被破坏。在一个实施例中,步骤S2具体包括:根据式(1)计算挑战密钥序号:i=j*curmodN(1)式(1)中,i为挑战密钥序号,j为从伪随机数组S中随机挑选的数值,cur为当前验证次数,N为验证次数。在一个实施例中,所述方法还包括:根据系统当前时间生成随机密钥种子K,根据随机密钥种子K生成N个随机密钥{K1、K2、K3……KN}。在一个实施例中,步骤S4中获取当前挑战密钥具体为:根据挑战密钥序号从N个随机密钥{K1、K2、K3……KN}中获取的。在一个实施例中,步骤S1中根据单次验证可信度C和文件大小确定需要读取的文件块数的计算方法为:1-(1-1%)num=C,其中num为生成验证标签所需要的文件块数,C为单次验证可信度。在一个实施例中,步骤S4中获取验证标签包括以下步骤:在文件大小范围内选择num个随机位置;从每一个随机位置开始读取长度为y字节的内容{t1、t2、t3、……tnum},不足则补零;将所读取的内容顺序连接,成为样本文档T={t1||t2||……||tnum};以Ki为密钥,计算样本文档验证标签Ri,Ri=HMAC(T,Ki),其中i为挑战密钥序号;y为预设的每个文件块的大小。在一个实施例中,步骤S9中,过滤后得到的校验标签为在校验标签序列中的位置与记录的当前挑战密钥在查询数组中的位置相同的校验标签。一种高复用性的云存储数据存储验证系统,包括:客户端和服务器;其中客户端包括:验证准备模块、验证发起模块、混淆模块、过滤模块、验证校验模块;混淆模块包括挑战密钥序号获取模块、替换模块、查询数组生成模块和发送模块;服务器包括校验生成模块;验证准备模块,用于为每个上传到服务器的文件设定验证参数和混淆参数,以及用于根据单次验证可信度C和文件大小确定需要读取的文件块数;其中,验证参数包括:文件的文件名、文件大小、验证次数N、单次验证可信度C;混淆参数包括:伪随机数组S、伪随机数组生成密钥Y、混淆度P;验证发起模块,用于接收用户的数据存储验证查询请求,并发起查询请求;挑战密钥序号获取模块,用于在验证发起模块发起查询请求时,对当前验证次数进行混淆,获取挑战密钥序号;替换模块,用于用挑战密钥序号替换当前验证次数,获取当前挑战密钥和验证标签;查询数组生成模块,用于从伪随机数组S中选择P-1个伪随机数,并与当前挑战密钥混合,以生成查询数组,并记录当前挑战密钥在查询数组中的位置;发送模块,用于将查询数组、文件名和文件块数发送给服务器;校验生成模块,用于根据查询数组、文件名和文件块数生成校验标签序列,并返回给客户端;过滤模块,用于对校验生成模块返回的校验标签序列进行过滤;验证校验模块,用于将过滤后得到的校验标签与验证标签进行比较,以判断文件是否被破坏。在一个实施例中,所述客户端还包括验证维护模块,用于存储验证参数和混淆参数,以及用于更新当前验证次数。在一个实施例中,挑战密钥序号获取模块根据式(1)计算挑战密钥序号:i=j*curmodN(1)式(1)中,i为挑战密钥序号,j为从伪随机数组S中随机挑选的数值,cur为当前验证次数,N为验证次数。实施本专利技术的高复用性的云存储数据存储验证方法及系统,具有以下有益效果:由于真实挑战参数混合于伪随机数组中,服务器无法确定真实挑战参数;当伪随机数组S足够大时,服务器无法确定所有可能的标签集,因此标签可持续重用,直到所有可能的标签均出现过,可验证次数由N次扩大到次;能以较小的计算代价获得相对高的验证可信度,文件验证标签的挑战每次均包含真实挑战参数和一系列伪随机数,使得可能的伪随机标签数量大增,避免服务器利用保存的正确签名实现重放攻击。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术实施例的高复用性的云存储数据存储验证方法的流程图;图2是本专利技术实施例的高复用性的云存储数据存储验证系统的结构框图;图3是本专利技术实施例的高复用性的云存储数据存储验证系统的客户端和服务器的交互示意图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。参见图1为本专利技术本文档来自技高网
...
高复用性的云存储数据存储验证方法及系统

【技术保护点】
一种高复用性的云存储数据存储验证方法,其特征在于,包括以下步骤:S1、为每个上传到服务器的文件设定验证参数和混淆参数,并根据单次验证可信度C和文件大小确定需要读取的文件块数;其中,验证参数包括:文件的文件名、文件大小、验证次数N、单次验证可信度C;混淆参数包括:伪随机数组S、伪随机数组生成密钥Y、混淆度P;S2、接收用户的数据存储验证查询请求,并发起查询请求;S3、对当前验证次数进行混淆,获取挑战密钥序号;S4、用挑战密钥序号替换当前验证次数,获取当前挑战密钥和验证标签;S5、从伪随机数组S中选择P‑1个伪随机数,并与当前挑战密钥混合,以生成查询数组,并记录当前挑战密钥在查询数组中的位置;S6、将查询数组、文件名和文件块数发送给服务器;S7、服务器根据查询数组、文件名和文件块数生成校验标签序列,并返回给客户端;S8、客户端对返回的校验标签序列进行过滤;S9、客户端将过滤后得到的校验标签与验证标签进行比较,以判断文件是否被破坏。

【技术特征摘要】
1.一种高复用性的云存储数据存储验证方法,其特征在于,包括以下步骤:S1、为每个上传到服务器的文件设定验证参数和混淆参数,并根据单次验证可信度C和文件大小确定需要读取的文件块数;其中,验证参数包括:文件的文件名、文件大小、验证次数N、单次验证可信度C;混淆参数包括:伪随机数组S、伪随机数组生成密钥Y、混淆度P;S2、接收用户的数据存储验证查询请求,并发起查询请求;S3、对当前验证次数进行混淆,获取挑战密钥序号;S4、用挑战密钥序号替换当前验证次数,获取当前挑战密钥和验证标签;S5、从伪随机数组S中选择P-1个伪随机数,并与当前挑战密钥混合,以生成查询数组,并记录当前挑战密钥在查询数组中的位置;S6、将查询数组、文件名和文件块数发送给服务器;S7、服务器根据查询数组、文件名和文件块数生成校验标签序列,并返回给客户端;S8、客户端对返回的校验标签序列进行过滤;S9、客户端将过滤后得到的校验标签与验证标签进行比较,以判断文件是否被破坏。2.根据权利要求1所述的高复用性的云存储数据存储验证方法,其特征在于,步骤S2具体包括:根据式(1)计算挑战密钥序号:i=j*curmodN(1)式(1)中,i为挑战密钥序号,j为从伪随机数组S中随机挑选的数值,cur为当前验证次数,N为验证次数。3.根据权利要求1-2任一项所述的高复用性的云存储数据存储验证方法,其特征在于,所述方法还包括:根据系统当前时间生成随机密钥种子K,根据随机密钥种子K生成N个随机密钥{K1、K2、K3……KN}。4.根据权利要求3所述的高复用性的云存储数据存储验证方法,其特征在于,步骤S4中获取当前挑战密钥具体为:根据挑战密钥序号从N个随机密钥{K1、K2、K3……KN}中获取的。5.根据权利要求3所述的高复用性的云存储数据存储验证方法,其特征在于,步骤S1中根据单次验证可信度C和文件大小确定需要读取的文件块数的计算方法为:1-(1-1%)num=C,其中num为生成验证标签所需要的文件块数,C为单次验证可信度。6.根据权利要求5所述的高复用性的云存储数据存储验证方法,其特征在于,步骤S4中获取验证标签包括以下步骤:在文件大小范围内选择num个随机位置;从每一个随机位置开始读取长度为y字节的内容{t1、t2、t3、……tnum},不足则补零;将所读取的内容顺序连接,成为样本文档T={t1||t2||……||tnum};以Ki为密钥,计算样本文档验证标签Ri,Ri=HMA...

【专利技术属性】
技术研发人员:陈开渠付艳艳张敏李昊洪澄冯登国王蓉庞妍
申请(专利权)人:国家超级计算深圳中心中国科学院软件研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1