首页> 中国专利> 基于云服务的数据存储方法、完整性检测方法及装置、终端设备

基于云服务的数据存储方法、完整性检测方法及装置、终端设备

摘要

在计算机技术领域,提供一种基于云服务的数据存储方法、完整性检测方法及装置、终端设备,所述方法包括:接收将一文件上传到提供云服务的云存储服务器的请求(S101),根据云服务的开销参数确定文件划分为文件分块的数量,确定的该数量使得文件的存储开销最小(S102),将文件划分为确定数量的数据分块,并计算每个数据分块的HMAC(S103),将每个数据分块和对应的HMAC上传到云存储服务器存储(S104),从而最大程度地减少云存储服务需要的软、硬件开销,降低了云存储服务的成本。

著录项

  • 公开/公告号CN107251523A

    专利类型发明专利

  • 公开/公告日2017-10-13

    原文格式PDF

  • 申请/专利权人 深圳大学;

    申请/专利号CN201580060151.9

  • 发明设计人 陈飞;张涛一;陈剑勇;

    申请日2015-12-29

  • 分类号

  • 代理机构深圳青年人专利商标代理有限公司;

  • 代理人吴桂华

  • 地址 518000 广东省深圳市南山区南海大道3688号

  • 入库时间 2023-06-19 03:30:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-27

    授权

    授权

  • 2017-11-10

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20151229

    实质审查的生效

  • 2017-10-13

    公开

    公开

说明书

技术领域

本发明属于计算机技术领域,尤其涉及基于云服务的数据存储方法、完整性检测方法及装置、终端设备。

背景技术

近些年来,以云服务为基础的数据存储服务蓬勃发展,大型的互联网公司都提出了各自的云存储服务,在这些云存储服务中,面对普通消费者的云存储服务大多是免费的,而面向开发者的云存储服务基本是收费的。在收费的云存储服务(例如,阿里云OSS、百度开放云BOS、亚马逊S3、Windows Azure)中,存储在云端的数据常会遇到数据安全方面的问题(如数据完整性问题),而这也是用户使用云存储服务考虑的重要因素之一。为了降低或消除用户对云端数据的安全性担忧,许多针对云端数据的完整性检测方案被提出,但由于当前的云存储服务在验证云端数据完整性方面所提供的计算能力有限,使得大部分现有的完整性检测方案无法在实际云存储环境下正常运行。

因此,在用户端或云存储客户端进行数据完整性检测的方案被提出。当用户下载其存储在云端的数据时,若需要对数据完整性进行验证,首先将待检测数据从云端下载到本地,然后通过哈希(Hash)函数或者消息认证码(MAC)对下载下来的数据进行完整性验证。在这种方式中,当待检测的数据较小时,可以把这些数据直接从云端下载下来进行检测。但是,当所要验证的数据较大时,直接下载的方式就不适用了。

现在对较大文件进行完整性检测的主流做法是采用随机方式进行分块,进行抽样检测,同样本地检测也需要考虑到云存储服务器的负载问题,例如,带宽、请求响应等方面的系统开销,对于一些重要用户,例如,银行用户等,在 数据存储期间可能需要多次进行完整性检测或在每次下载时都需要进行完整性检测,这对云存储服务器的软、硬件提出了更高的要求,对应地需要支付更高的云存储服务费。因此,现有技术缺少一种有效的用于云服务的数据存储方法,以最大程度地减少云存储服务(包括数据存储、检测等)需要的软、硬件开销,从而降低云存储服务的成本。

发明内容

本发明实施例的目的在于提供一种基于云服务的数据存储方法、完整性检测方法及装置,旨在解决由于现有技术无法提供一种有效的用于云服务的数据存储方法,以最大程度地减少云存储服务需要的软、硬件开销,从而降低云存储服务的成本。

一方面,本发明提供了一种基于云服务的数据存储方法,所述方法包括下述步骤:

接收将一文件上传到提供所述云服务的云存储服务器的请求;

根据所述云服务的开销参数确定将所述文件划分为文件分块的数量,所述数量使得所述文件的存储开销最小;

将所述文件划分为所述数量的数据分块,并计算每个数据分块的基于Hash函数的消息认证码(Hash-based Message Authentication Code,缩写为HMAC);

将每个数据分块和对应的HMAC上传到所述云存储服务器存储。

另一方面,本发明还提供了一种基于云服务的数据存储装置,所述装置包括:

请求接收单元,用于接收将一文件上传到提供所述云服务的云存储服务器的请求;

分块数量确定单元,用于根据所述云服务的开销参数确定将所述文件划分为文件分块的数量,所述数量使得所述文件的存储开销最小;

文件处理单元,用于将所述文件划分为所述数量的数据分块,并计算每个 数据分块的HMAC;以及

数据上传单元,用于将每个数据分块和对应的HMAC上传到所述云存储服务器存储。

另一方面,本发明还提供了一种终端设备,所述终端设备包括:

数据接收器,用于接收将一文件上传到提供所述云服务的云存储服务器的请求;

中央处理单元,用于根据所述云服务的开销参数确定将所述文件划分为文件分块的数量,所述数量使得所述文件的存储开销最小,将所述文件划分为所述数量的数据分块,并计算每个数据分块的HMAC;以及

数据发送器,用于将每个数据分块和对应的HMAC上传到所述云存储服务器存储。

另一方面,本发明还提供了一种基于云服务的完整性检测方法,所述完整性检测方法用于对前述数据存储方法存储的文件进行完整性检测,所述完整性检测方法包括步骤:

从所述云存储服务器随机选择所述文件的文件分块,抽取的数量为所述样本数量;

将选择的文件分块和所述选择的文件分块对应的HMAC下载到本地终端,将所述选择的文件分块对应的HMAC记为第一HMAC;

计算所述选择的文件分块对应HMAC,将计算得到的HMAC计为第二HMAC;

判断所述第一HMAC和第二HMAC是否相同,是则输出数据完整的结果,否则输出数据已损坏的结果。

在本发明实施例中,在接收到将一文件上传到提供云服务的云存储服务器的请求后,根据云服务的开销参数确定将文件划分为文件分块的数量,该数量可使得文件的存储开销最小,根据确定的该数量将文件划分数据分块,并计算每个数据分块的HMAC,最后将每个数据分块和对应的HMAC上传到所述云 存储服务器存储,从而最大程度地减少云存储服务需要的软、硬件开销,降低了云存储服务的成本。

附图说明

图1是本发明实施例提供的基于云服务的数据存储方法的实现流程图;

图2是本发明实施例提供的基于云服务的数据存储方法中确定将文件划分为文件分块的数量的实现流程图;

图3是本发明实施例提供的基于云服务的数据存储装置的结构图;

图4是本发明实施例提供的基于云服务的数据存储装置的结构图;

图5是本发明实施例提供的基于云服务的数据存储装置中参数获取单元的结构图;

图6是本发明实施例提供的终端设备的结构图;以及

图7是本发明实施例提供的基于云服务的完整性检测方法的实现流程图。

具体实施方式

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

以下结合具体实施例对本发明的具体实现进行详细描述:

图1示出了本发明实施例提供的基于云服务的数据存储方法的实现流程,详述如下:

在步骤S101中,接收将一文件上传到提供云服务的云存储服务器的请求。

在本发明实施例中,当用户请求将文件上传到云存储服务器进行存储时,可通过云存储服务器的专用客户端或浏览器进行上传,云存储服务器用于对接收的文件数据进行存储,并处理文件数据存储期间用户对其存储的数据进行完整性验证或检测的请求。

在步骤S102中,根据云服务的开销参数确定将文件划分为文件分块的数量,确定的该数量使得文件的存储开销最小。

在本发明实施例中,用户云存储服务的开销主要来自保存(Storage)、数据外流(Data Transfer)、请求(Request)三个方面,因此,当前国内外主流云存储服务提供商在这三个方面都采取收费方式,以用于补偿云存储服务器在这些方面的软、硬件开销。本发明实施例根据云服务的开销参数确定将文件划分为文件分块的数量,确定的该数量使得文件的存储开销最小,从而最大程度地降低云存储服务器在这些方面的软、硬件开销,减少用户使用云存储服务的成本。

在步骤S103中,将文件划分为确定数量的数据分块,并计算每个数据分块的HMAC。

在本发明实施例中,根据步骤S102中确定的划分数量对用户上传的文件进行划分,得到对应的数据分块,并计算每个数据分块的HMAC。

在步骤S104中,将每个数据分块和对应的HMAC上传到云存储服务器存储。

在本发明实施例中,在接收到将一文件上传到提供云服务的云存储服务器的请求后,根据云服务的开销参数确定将文件划分为文件分块的数量,该数量可使得文件的存储开销最小,根据确定的该数量将文件划分数据分块,并计算每个数据分块的HMAC,最后将每个数据分块和对应的HMAC上传到所述云存储服务器存储,从而最大程度地减少云存储服务需要的软、硬件开销,降低了云存储服务的成本。

图2示出了本发明实施例提供的基于云服务的数据存储方法中确定将文件划分为文件分块的数量的实现流程,详述如下:

在步骤S201中,获取文件的存储时间、在存储时间内请求对文件进行完整性检测的次数、文件的大小、对文件进行完整性检测时抽取的样本数量、云服务的存储开销、数据传送开销、请求开销、每个HMAC所占的字节。

在本发明实施例中,为了使用户在使用云存储服务时占用最小的存储开销,付出最低的成本,需要预先确定将文件划分为文件分块的数量。其中,云存储服务器的存储开销包括保存(Storage)、数据外流(Data Transfer)、请求(Request)三个方面的开销,涉及到文件的存储、下载、完整性检测事务。因此,在确定将文件划分为文件分块的数量时,需要获取的开销参数包括:文件的存储时间、在存储时间内请求对文件进行完整性检测的次数、文件的大小、对文件进行完整性检测时抽取的样本数量、云服务的存储开销、数据传送开销、请求开销、每个HMAC所占的字节。

在步骤S202中,根据获取的存储时间、完整性检测的次数、文件的大小、样本数量、云服务的存储开销、数据传送开销、请求开销、每个HMAC所占的字节计算文件的存储开销。

在本发明实施例中,云存储服务器的存储开销为保存(Storage)、数据外流(Data Transfer)、请求(Request)三个方面的开销之和,最终可使用公式(1)计算文件的存储开销:

其中,p1表示所述存储开销、p2表示所述数据传送开销、p3表示所述请求开销、n表示所述文件的大小、c表示所述样本数量、s表示所述文件的大小、s’表示所述每个所述HMAC所占的字节、i表示所述存储时间、j表示所述完整性检测的次数、g表示一常数。

在具体实施过程中,p1、p2、p3可由具体数值来表示,例如,存储所需的空间、传送的数据量、请求处理的次数(包括下载、检测等),可选地,也可以由对应需支付的费用来表示。

在具体实施过程中,获取对抽取的样本数量参数时,可首先获取云服务存储文件的损坏率以及检测准确率,之后根据损坏率、检测准确率确定对文件进行完整性检测时抽取的样本数量。其中,检测准确率是指当存在文件损坏时, 检测到文件损坏的几率,用户可自行设定,也可以由系统默认设置。优选地,在获取云服务存储文件的损坏率以及检测准确率后,可通过等式p=1-(1-k)c确定抽取的样本数量,其中,p表示检测准确率,k表示损坏率,从而确定最佳的抽取样本数量,在保证检测准确率的同时,减少完整性检测方面的开销。

在步骤S203中,确定存储开销为最小存储开销时文件的文件分块的数量。

在本发明实施例中,通过对公式(1)进行化简,文件的存储开销可由公式(2)表示:

其中:

可以得到,当M取得最小值时,存在一个唯一的n值,即可确定存储开销为最小存储开销时文件的文件分块的数量。

本发明实施例根据云服务的开销参数根据预设的公式确定将文件划分为文件分块的数量,确定的该数量使得文件的存储开销最小,从而最大程度地降低云存储服务器在这些方面的软、硬件开销,减少了用户使用云存储服务的成本。

图3示出了本发明实施例提供的基于云服务的数据存储装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

请求接收单元31,用于接收将一文件上传到提供所述云服务的云存储服务器的请求;

分块数量确定单元32,用于根据所述云服务的开销参数确定将所述文件划分为文件分块的数量,所述数量使得所述文件的存储开销最小;

文件处理单元33,用于将所述文件划分为所述数量的数据分块,并计算每 个数据分块的HMAC;以及

数据上传单元34,用于将每个数据分块和对应的HMAC上传到所述云存储服务器存储。

本发明实施例中,基于云服务的数据存储装置的请求接收单元31具体可以为一数据接收器,分块数量确定单元32和文件处理单元33可以由一中央处理器(CPU)来实现,数据上传单元34可以为一数据发送器,各单元的具体实施可参考图1对应实施例的实施方式,在此不再赘述。

图4示出了本发明实施例提供的基于云服务的数据存储装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。

在本发明实施例中,基于云服务的数据存储装置包括请求接收单元31、分块数量确定单元32、文件处理单元33以及数据上传单元34,其中:

请求接收单元31,用于接收将一文件上传到提供所述云服务的云存储服务器的请求;

分块数量确定单元32,用于根据所述云服务的开销参数确定将所述文件划分为文件分块的数量,所述数量使得所述文件的存储开销最小;

文件处理单元33,用于将所述文件划分为所述数量的数据分块,并计算每个数据分块的HMAC;以及

数据上传单元34,用于将每个数据分块和对应的HMAC上传到所述云存储服务器存储。

在本发明实施例中,分块数量确定单元32可包括参数获取单元321、开销计算单元322以及分块数量确定子单元323,其中:

参数获取单元321,用于获取所述文件的存储时间、在所述存储时间内请求对所述文件进行完整性检测的次数、所述文件的大小、对所述文件进行完整性检测时抽取的样本数量、所述云服务的存储开销、数据传送开销、请求开销、每个所述HMAC所占的字节;

开销计算单元322,用于根据获取的所述存储时间、所述完整性检测的次 数、所述文件的大小、所述样本数量、所述云服务的存储开销、数据传送开销、请求开销、每个所述HMAC所占的字节计算所述文件的存储开销;以及

分块数量确定子单元323,用于确定所述存储开销为最小存储开销时所述文件的文件分块的数量。

在本发明实施例中,云存储服务器的存储开销为保存(Storage)、数据外流(Data Transfer)、请求(Request)三个方面的开销之和,最终可使用公式(1)计算文件的存储开销。通过对公式(1)进行化简,文件的存储开销可由公式(2)表示,从而可知当M取得最小值时,存在一个唯一的n值,即可确定存储开销为最小存储开销时文件的文件分块的数量。

在具体实施过程中,如图5所示,参数获取单元321可包括:

参数获取子单元3211,用于获取所述云服务存储文件的损坏率、检测准确率;以及

样本数量确定子单元3212,用于根据所述损坏率、检测准确率确定对所述文件进行完整性检测时抽取的样本数量。

在具体实施过程中,获取对抽取的样本数量参数时,可首先获取云服务存储文件的损坏率以及检测准确率,之后根据损坏率、检测准确率确定对文件进行完整性检测时抽取的样本数量。其中,检测准确率是指当存在文件损坏时,检测到文件损坏的几率,可由用户设定。优选地,在获取云服务存储文件的损坏率以及检测准确率后,可通过等式p=1-(1-k)c确定抽取的样本数量。

作为示例地,本发明实施例中基于云服务的数据存储装置各单元的具体实施可参考图2对应实施例的实施方式,在此不再赘述。

图6示出了本发明实施例提供的终端设备的结构,为了便于说明,仅示出了与本发明实施例相关的部分。

在本发明实施例中,终端设备6包括数据接收器61、中央处理单元62以及数据发送器63,其中:

数据接收器61,用于接收将一文件上传到提供云服务的云存储服务器的请 求;

中央处理单元62,用于根据云服务的开销参数确定将文件划分为文件分块的数量,确定的该数量使得文件的存储开销最小,将文件划分为确定数量的数据分块,并计算每个数据分块的HMAC;以及

数据发送器63,用于将每个数据分块和对应的HMAC上传到云存储服务器存储。

在本发明实施例,中央处理单元62具体用于获取文件的存储时间、在存储时间内请求对文件进行完整性检测的次数、文件的大小、对文件进行完整性检测时抽取的样本数量、云服务的存储开销、数据传送开销、请求开销、每个HMAC所占的字节,根据获取的存储时间、完整性检测的次数、文件的大小、样本数量、云服务的存储开销、数据传送开销、请求开销、每个HMAC所占的字节计算文件的存储开销,确定存储开销为最小存储开销时文件的文件分块的数量。

在具体实施例中,中央处理单元62用于获取云服务存储文件的损坏率、检测准确率,并根据损坏率、检测准确率确定对文件进行完整性检测时抽取的样本数量。

在本发明实施例中,使用下述公式(1)计算文件的存储开销。进一步终端设备6还可以包括存储设备,以用于存储前述的参数、文件数据、HMAC等。

图7示出了本发明实施例提供的基于云服务的完整性检测方法的实现流程,详述如下:

在步骤S701中,从云存储服务器随机选择文件的预设数量的文件分块。

本发明实施例提供的完整性检测方法用于对存储在云存储服务器上的文件完整性进行检测,其中,检测的文件为使用前述图1、图2对应实施例中基于云服务的数据存储方法存储的文件。

在步骤S702中,将选择的文件分块和选择的文件分块对应的HMAC下载到本地终端,将选择的文件分块对应的HMAC记为第一HMAC。

在步骤S703中,计算选择的文件分块对应HMAC,将计算得到的HMAC计为第二HMAC。

在步骤S704中,判断第一HMAC和第二HMAC是否相同,是则输出数据完整的结果,否则输出数据已损坏的结果。

在本发明实施例中,结合前述实施例中基于云服务的数据存储方法,对使用该方法存储的数据进行检测,可最大程度地减少云存储服务中完整性检测需要的软、硬件开销,降低了云存储服务的成本。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号