一种基于多公共云的分布式数据上传和下载方法技术

技术编号:14270140 阅读:77 留言:0更新日期:2016-12-23 15:04
本发明专利技术公开了一种基于多公共云的分布式数据上传方法,包括步骤文件的上传、密钥的上传和存储目录树的上传。本发明专利技术还公开了一种基于多公共云的分布式数据下载方法,包括步骤存储目录树的下载、文件的下载、密钥的下载和解密密文文件。与现有技术相比,本发明专利技术更安全且用户只需要把秘密值x文件从PC端拷贝到移动端,即可进行上传、下载、删除、查询文件的操作。

【技术实现步骤摘要】

本专利技术涉及数据上传和下载方法,尤其涉及基于多公共云的分布式数据上传和下载方法
技术介绍
公共云平台是指现在多个云服务供应商所提供的多个云平台。云服务提供商有百度云,阿里云,新浪云,谷歌云,亚马逊云等。公共云平台由云引擎、云盘、云数据库以及应用程序组成。云引擎是公共云平台所提供的一种应用托管平台,支持托管多种语言开发的应用程序,云引擎代表有BAE,SAE。云盘是公共云平台所提供的云存储服务,可存储海量数据,在该技术中主要存储密文文件块、存储目录树字节文件、密钥字节文件。云数据库是客户端在线数据库服务,开发人员可以把数据库部署到云数据库,即可通过应用程序进行数据操作,在该技术中云数据库对该存储技术所需要用到的数据库表进行存储,例如用户文件块路径信息表。该技术的应用程序运行在多个公共云平台上的云引擎上,负责根据客户端的指令,对密文文件块、存储目录树字节文件、密钥字节文件进行相应的存储和检索操作。公共云数据存储的方式具有便捷、节约空间、按需分配、省钱等优点,因此公共云存储服务也越来越受欢迎。目前用户所使用的传统的公共云存储方式是用户把数据以明文的形式,上传到一个公共云提供商的一个公共云平台,用户通过公共云提供商所提供的方式,进行上传、删除下载和查看文件的操作。在云服务越来越广泛被接受的同时,数据的安全性也接受着越来越多的考验。现有的公共云存储方式暴露了许多缺点和威胁。数据若以明文的形式存储,如果被窃取即可获取信息;数据若以密文的形式存储,即使用加密存储的云盘存储,仍存在公共云端获取数据的威胁。如果数据存储在一个公共云平台上,如果该公共云平台系统出故障或数据丢失,用户将无法获取上传的数据。用户把数据存储到一个云提供商的行为是基于对公共云存储提供商的信任,但云存储提供商可能是不可信的,提供商可能会泄露用户数据,侵犯用户隐私以牟取利益。此外,当公共云服务商把数据存储到国外的服务器时,其数据的安全性还受到服务器所在国的政策的影响,若存在政策要求,公共云服务商可能会把用户的数据提供给相关机构。
技术实现思路
为增强公共云存储的安全性,本专利技术提出一种基于多公共云的分布式数据上传和下载方法。本专利技术提出一种基于多公共云的分布式数据上传方法包括步骤S11:客户端生成一个密钥、并用所述密钥对需要上传的文件加密;S12:客户端将加密后的密文文件切块;S13:客户端将每一块密文文件上传到对应一个的公共云平台;S14:客户端将所述密钥按字节分解为多个字节B1,B2,B3,...;S15:客户端为每个字节B1,B2,B3,...构造一个多项式f(x)=B+a1x+a2x2+...+an-1xn-1,其中,多项式中的B表示B1,B2,B3,...中的每一个,作为多项式的常数项存在;S16:客户端为每一个多项式随机生成一组a1,a2,...,an-1,代入所述多项式f(x)=B+a1x+a2x2+...+an-1xn-1;S17:客户端为所有多项式f(x)=B+a1x+a2x2+...+an-1xn-1随机生成一组x1,x2,...,xm,作为密钥的所有多项式的m个x值,且随机生成的x1,x2,...,xm作为密钥的秘密值保存到客户端本地;S18:把B1,B2,B3...,按照其顺序将所有的f(x1)写入密钥文件F1,所有的f(x2)写入密钥文件F2,依此类推,一直到f(xm)写入密钥文件Fm,并将这m个密钥文件F1,F2,...,Fm分别上传到m个公共云平台;S19:将密钥替换为存储目录树,重复步骤S14至S18完成存储目录树的上传。进一步地,步骤S12中所述客户端将加密后的密文文件切块为等大切块。进一步地,如非第一次上传文件,步骤S11前还包括步骤:客户端下载存储目录树文件,并恢复存储目录树。进一步地,步骤S18后还包括步骤:所有密钥文件上传后,客户端对密钥进行哈希运算,算出其哈希值,并把密钥的哈希值上传到某个固定的存储哈希值文件的公共云平台。进一步地,步骤S19后还包括步骤:所有存储目录树文件上传后,客户端对存储目录树进行哈希运算,算出其哈希值,并把存储目录树的哈希值上传到某个固定的存储哈希值文件的公共云平台。本专利技术还提出一种基于多公共云的分布式数据下载方法包括步骤:S21:将公共云平台中的存储目录树子文件下载到客户端,每个目录树文件都逐个字节地读取,所有读取顺序相同的字节属于同一组多项式方程组的f(x1),f(x2),...,f(xn);S22:从客户端本地读取存储目录树x1,x2,...,xm文件构造多项式,求解,得到多个字节B1,B2,B3,...;S23:把所有多项式组求解出来的B1,B2,B3,...按顺序合并,恢复存储目录树;S24:根据存储目录树,从多个公共云平台下载密文文件块;S25:将存储目录树替换为密钥重复步骤S21至S23,恢复密钥;S26:将密文文件块排序后恢复为密文文件;S27:使用密钥解密密文文件,得到原文件。进一步地,步骤S23后还包括步骤:将恢复出来的存储目录树进行哈希运算,并和下载到客户端本地的存储目录树最新哈希值进行比较,若值不相同,则重复步骤S21至S23,重新恢复存储目录树。进一步地,步骤S24后还包括步骤:将恢复出来的密钥进行哈希运算,并和下载到客户端本地的密钥最新哈希值进行比较,若值不相同,则重复步骤S24,重新恢复密钥。本专利技术的有益效果在于,与现有技术相比,本专利技术更安全且用户只需要把秘密值x文件从PC端拷贝到移动端,即可进行上传、下载、删除、查询文件的操作。附图说明图1是本专利技术基于多公共云的分布式数据上传方法流程图。图2是本专利技术基于多公共云的分布式数据下载方法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参见图1,本专利技术基于多公共云的分布式数据上传方法包括步骤:文件的上传:S11:客户端生成一个密钥、并用所述密钥对需要上传的文件加密;S12:客户端将加密后的密文文件切块,一般为等大切块;S13:客户端将每一块密文文件上传到对应一个的公共云平台;密钥的上传:S14:客户端将所述密钥按字节分解为多个字节B1,B2,B3,...;S15:客户端为每个字节B1,B2,B3,...构造一个多项式f(x)=B+a1x+a2x2+...+an-1xn-1,其中,多项式中的B表示B1,B2,B3,...中的每一个,作为多项式的常数项存在;S16:客户端为每一个多项式随机生成一组a1,a2,...,an-1,代入所述多项式f(x)=B+a1x+a2x2+...+an-1xn-1;S17:客户端为所有多项式f(x)=B+a1x+a2x2+...+an-1xn-1随机生成一组x1,x2,...,xm,作为密钥的所有多项式的m个x值,且随机生成的x1,x2,...,xm作为密钥的秘密值保存到客户端本地;S18:把B1,B2,B3...,按照其顺序将所有的f(x1)写入密钥文件F1,所有的f(x2)写入密钥文件F2,依此类推,一直到f(xm)写入密钥文件Fm,并将这m个本文档来自技高网
...
一种基于多公共云的分布式数据上传和下载方法

【技术保护点】
一种基于多公共云的分布式数据上传方法,其特征在于,包括步骤S11:客户端生成一个密钥、并用所述密钥对需要上传的文件加密;S12:客户端将加密后的密文文件切块;S13:客户端将每一块密文文件上传到对应一个的公共云平台;S14:客户端将所述密钥按字节分解为多个字节B1,B2,B3,...;S15:客户端为每个字节B1,B2,B3,...构造一个多项式f(x)=B+a1x+a2x2+...+an‑1xn‑1,其中,多项式中的B表示B1,B2,B3,...中的每一个,作为多项式的常数项存在;S16:客户端为每一个多项式随机生成一组a1,a2,...,an‑1,代入所述多项式f(x)=B+a1x+a2x2+...+an‑1xn‑1;S17:客户端为所有多项式f(x)=B+a1x+a2x2+...+an‑1xn‑1随机生成一组x1,x2,...,xm,作为密钥的所有多项式的m个x值,且随机生成的x1,x2,...,xm作为密钥的秘密值保存到客户端本地;S18:把B1,B2,B3.,按照其顺序将所有的f(x1)写入密钥文件F1,所有的f(x2)写入密钥文件F2,依此类推,一直到f(xm)写入密钥文件Fm,并将这m个密钥文件F1,F2,...,Fm分别上传到m个公共云平台;S19:将密钥替换为存储目录树,重复步骤S14至S18完成存储目录树的上传。...

【技术特征摘要】
1.一种基于多公共云的分布式数据上传方法,其特征在于,包括步骤S11:客户端生成一个密钥、并用所述密钥对需要上传的文件加密;S12:客户端将加密后的密文文件切块;S13:客户端将每一块密文文件上传到对应一个的公共云平台;S14:客户端将所述密钥按字节分解为多个字节B1,B2,B3,...;S15:客户端为每个字节B1,B2,B3,...构造一个多项式f(x)=B+a1x+a2x2+...+an-1xn-1,其中,多项式中的B表示B1,B2,B3,...中的每一个,作为多项式的常数项存在;S16:客户端为每一个多项式随机生成一组a1,a2,...,an-1,代入所述多项式f(x)=B+a1x+a2x2+...+an-1xn-1;S17:客户端为所有多项式f(x)=B+a1x+a2x2+...+an-1xn-1随机生成一组x1,x2,...,xm,作为密钥的所有多项式的m个x值,且随机生成的x1,x2,...,xm作为密钥的秘密值保存到客户端本地;S18:把B1,B2,B3.,按照其顺序将所有的f(x1)写入密钥文件F1,所有的f(x2)写入密钥文件F2,依此类推,一直到f(xm)写入密钥文件Fm,并将这m个密钥文件F1,F2,...,Fm分别上传到m个公共云平台;S19:将密钥替换为存储目录树,重复步骤S14至S18完成存储目录树的上传。2.如权利要求1所述的基于多公共云的分布式数据上传方法,其特征在于,步骤S12中所述客户端将加密后的密文文件切块为等大切块。3.如权利要求1所述的基于多公共云的分布式数据上传方法,其特征在于,如非第一次上传文件,步骤S11前还包括步骤:客户端下载存储目录树文件,并恢复存储目录树。4.如权利要求1所述的基于多公共云的分布式数据上传方...

【专利技术属性】
技术研发人员:李西明张森洋郭玉彬
申请(专利权)人:华南农业大学
类型:发明
国别省市:广东;44

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

1