一种面向去中心化云存储的客户端安全数据去重方法技术

技术编号:35097283 阅读:10 留言:0更新日期:2022-10-01 17:01
本发明专利技术公开了一种面向去中心化云存储的客户端安全数据去重方法,首先对用户进行本地文件加密,然后去重服务器查询存储在区块链上的系统元数据,并返回不同的消息;根据返回的不同消息分别执行不同的步骤,完成“用户初次上传文件”、“用户生成文件元数据”、“去重服务器验证文件一致性并更新系统元数据”和“后续用户上传文件”;最后用户后续恢复文件。本发明专利技术能够实现近乎精确的客户端去重,且后续上传文件的而用户不需要传输文件从而可以节省用户带宽。带宽。带宽。

【技术实现步骤摘要】
一种面向去中心化云存储的客户端安全数据去重方法


[0001]本专利技术属于数据安全
,具体涉及一种客户端安全数据去重方法。

技术介绍

[0002]近年来,随着区块链技术的蓬勃发展,各种分布式应用(Distributed Application,DApp)层出不穷,其中去中心化云存储(Decentralized Cloud Storage,DCS)作为一种新的存储方案正在走入市场,其核心思想是激励用户去分享他们的闲置存储资源来构建一个更经济和可靠的分布式存储网络。和中心化云存储类似,在去中心化云存储中,用户的数据可能会被重复的存储在网络上的不同节点,因此数据去重和隐私保护变得尤为重要。
[0003]当今较为流行的去中心化云存储如Storj,Sia,Filecoin和IPFS,并不能同时很好地达到最大化空间利用和加密数据保护的需求。其中如Storj,Sia运用标准加密方法如AES以及纠删码(Erasure Code)将文件冗余并分发到存储网络中以保证数据可靠性,但这样会固定的倍化文件存储并且没有考虑跨用户文件去重。该类问题可以通过使用全局统一的密钥缓解,但是却会面临信息泄露和安全攻击的威胁。再如Filecoin和IPFS,通过默克尔有向无环图(Merkle DAG)检查相同文件并实现文件级别的去重,但是在其原始的设计中并没有考虑数据安全问题,数据只会在传输过程中加密而最终以明文的形式存储在网络中。
[0004]为实现上述两种需求,智能合约(Smart Contract)可以提供解决的思路。作为一种兴起的基于区块链的计算程序,智能合约包含唯一的认证地址、合约状态、存储和函数等。所有对区块链的操作均通过发送交易(Transaction)实现,并且会被记录在区块链上,这保证了智能合约的安全性、公开性和可靠性。但这也带来了一个问题,任何人都可以下载整个区块链并分析其数据,最终绕过系统非法的获得系统数据。为了解决这一威胁,数据在保存到智能合约前应当加密,并且要防止持有短信息的用户解密文件地址。
[0005]对此,需要设计一个能够在去中心化云存储场景下同时保障用户数据隐私安全,以及实现数据去重的同时防止针对系统的各种攻击。此外,用户在上传相同文件时应当不需要再次上传以达到节省流量的目的,同时利用区块链的特性给系统和用户提供了一种刚开可靠的收费依据。

技术实现思路

[0006]为了克服现有技术的不足,本专利技术提供了一种面向去中心化云存储的客户端安全数据去重方法,首先对用户进行本地文件加密,然后去重服务器查询存储在区块链上的系统元数据,并返回不同的消息;根据返回的不同消息分别执行不同的步骤,完成“用户初次上传文件”、“用户生成文件元数据”、“去重服务器验证文件一致性并更新系统元数据”和“后续用户上传文件”;最后用户后续恢复文件。本专利技术能够实现近乎精确的客户端去重,且后续上传文件的而用户不需要传输文件从而可以节省用户带宽。
[0007]本专利技术解决其技术问题所采用的技术方案包括如下步骤:
[0008]步骤1:用户进行本地文件加密;
[0009]记文件内容为f,用户采用哈希函数Hash和对称加密解密函数Enc/Dec,利用文件生成文件密钥fK=Hash(f)、密文fC=Enc(fK,f)和标签fT=Hash(fC),并将文件标签fT发送给去重服务器;
[0010]步骤2:去重服务器查询存储在区块链上的系统元数据;
[0011]系统元数据的存储形式为从文件标签到数据的映射:fT

{r,[fid]},其中r为系统生成的随机数,[fid]为加密后的文件访问地址;
[0012]去重服务器调用函数查询系统元数据,如果文件标签存在则返回对应的元数据,否则返回空值;
[0013]当文件标签不存在时,执行步骤3、步骤4和步骤5,执行完步骤5后直接执行步骤7;当文件标签存在时,执行步骤6,执行完步骤6后执行步骤7;
[0014]步骤3:用户初次上传文件;
[0015]该情况下用户接收到来自去重服务器的“不存在”信息,用户调用函数将文件上传到后端存储服务器,上传成功后会返回文件访问地址fid;
[0016]步骤4:用户生成文件元数据;
[0017]用户先生成固定长度的随机数再利用随机数生成地址密钥aK=Hash(r,fC),然后利用地址密钥生成文件地址密文[fid]=Enc(aK,fid);用户随后保存文件密钥fK和文件访问地址fid并将(fT,r,[fid],fid)上传到去重服务器用于更新系统元数据;
[0018]步骤5:去重服务器验证文件一致性并更新系统元数据;
[0019]接收到来自用户的数据后,去重服务器通过文件访问地址恢复被存储的文件fs,生成被存储的文件标签fT
s
=Hash(f
s
);去重服务器会将文件标签和存储的文件标签对比,如果两者相同,则说明用户上传的文件和标签对应,去重服务器会更新元数据并返回“成功”信息;如果两者不同,则说明用户上传的文件与标签不对应,去重服务器会向用户返回“失败”信息;
[0020]步骤6:后续用户上传文件;
[0021]该情况下用户接收到来自去重服务器的“存在”信息,说明在此之前已有用户上传过文件,则去重服务器会返回fT对应的元数据(r,[fid]);用户利用随机数r和之前生成的密文fC生成地址密钥aK=Hash(r,fC),利用地址密钥解密文件地址密文得到文件访问地址fid=Dec(aK,[fid]);随后用户保存文件密钥fK和文件访问地址fid完成上传;
[0022]步骤7:用户后续恢复文件;
[0023]用户不需要与去重服务器交互,直接通过文件访问地址fid从后端存储服务器获取存储的文件密文fC
s
,并利用文件密钥fK解密得到原本的文件内容f
s
=Dec(fK,fC
s
)。
[0024]优选地,所述哈希函数Hash为密码学哈希函数SHA256;所述对称加密解密函数Enc/Dec为高级加密标准AES中带有固定初始向量的CTR加解密模式。
[0025]优选地,所述去重服务器使用以太坊Ethereum中的智能合约Smart Contract实现。
[0026]优选地,所述步骤4在生成地址密文[fid]时引入了文件密文fC,要求解密每个地址密文需要其对应的文件密文,防止文件所有权骗取、冗余毒化攻击;每个上传成功的用户
都会保存文件密钥和文件访问地址,当用户再次恢复文件时能够直接访问后端存储服务器。
[0027]本专利技术的有益效果如下:
[0028]本专利技术是一种面向去中心化云存储的客户端安全数据去重方法,利用信息锁加密使得文件内容和文件标签绑定而不需要引入额外的全局密钥,去重服务器通过比对文件标签进行文件去重,实现近乎精确的客户端去重,且后续上传文件的而用户不需要传输文件从而可以节省用户带宽。由于系统中的关键步骤引入了文件密文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向去中心化云存储的客户端安全数据去重方法,其特征在于,包括如下步骤:步骤1:用户进行本地文件加密;记文件内容为f,用户采用哈希函数Hash和对称加密解密函数Enc/Dec,利用文件生成文件密钥fK=Hash(f)、密文fC=Enc(fK,f)和标签fT=Hash(fC),并将文件标签fT发送给去重服务器;步骤2:去重服务器查询存储在区块链上的系统元数据;系统元数据的存储形式为从文件标签到数据的映射:fT

{r,[fid]},其中r为系统生成的随机数,[fid]为加密后的文件访问地址;去重服务器调用函数查询系统元数据,如果文件标签存在则返回对应的元数据,否则返回空值;当文件标签不存在时,执行步骤3、步骤4和步骤5,执行完步骤5后直接执行步骤7;当文件标签存在时,执行步骤6,执行完步骤6后执行步骤7;步骤3:用户初次上传文件;该情况下用户接收到来自去重服务器的“不存在”信息,用户调用函数将文件上传到后端存储服务器,上传成功后会返回文件访问地址fid;步骤4:用户生成文件元数据;用户先生成固定长度的随机数再利用随机数生成地址密钥aK=Hash(r,fC),然后利用地址密钥生成文件地址密文[fid]=Enc(aK,fid);用户随后保存文件密钥fK和文件访问地址fid并将(fT,r,[fid],fid)上传到去重服务器用于更新系统元数据;步骤5:去重服务器验证文件一致性并更新系统元数据;接收到来自用户的数据后,去重服务器通过文件访问地址恢复被存储的文件f
s
,生成被存储的文件标签fT
s
=Hash(f
s
);去重服务器会将文件标签和存储的文件标签对比,如果两者相同,则说明用户上传的文件和...

【专利技术属性】
技术研发人员:崔禾磊张博陈亚兴於志文郭斌
申请(专利权)人:西北工业大学
类型:发明
国别省市:

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

1