CN103530201B - 一种适用于备份系统的安全数据去重方法和系统 - Google Patents

一种适用于备份系统的安全数据去重方法和系统 Download PDF

Info

Publication number
CN103530201B
CN103530201B CN201310301670.2A CN201310301670A CN103530201B CN 103530201 B CN103530201 B CN 103530201B CN 201310301670 A CN201310301670 A CN 201310301670A CN 103530201 B CN103530201 B CN 103530201B
Authority
CN
China
Prior art keywords
data block
data
cryptographic hash
file
storage server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310301670.2A
Other languages
English (en)
Other versions
CN103530201A (zh
Inventor
冯丹
周玉坤
夏文
付忞
黄方亭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310301670.2A priority Critical patent/CN103530201B/zh
Publication of CN103530201A publication Critical patent/CN103530201A/zh
Application granted granted Critical
Publication of CN103530201B publication Critical patent/CN103530201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种适用于备份系统的安全数据去重方法,包括:接收用户提交的备份请求,对需要备份的每个文件进行分块,以得到多个不同大小的数据块,使用哈希算法计算每个数据块的哈希值F1来作为数据块的加密密钥,再次使用哈希算法计算每个数据块哈希值F1的哈希值F2作为该数据块的指纹来识别重复数据块,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1)来保护数据块的加密密钥。将所有数据块指纹F2等顺序打包成指纹段发送传输到存储服务器。本发明中所有通信过程采用安全套接层协议。本发明通过采用该安全数据去重方法,能够保证在数据去重率不变的基础上,防止数据丢失、篡改等存储安全问题。

Description

一种适用于备份系统的安全数据去重方法和系统
技术领域
本发明属于计算机存储领域,更具体地,涉及一种适用于备份系统的安全数据去重方法和系统。
背景技术
近年来,随着计算机技术和网络的发展普及,全球的数据信息存储量呈爆炸式增长的趋势。全球范围内个人电脑、智能手机等设备的普及,和新兴市场内不断增长的互联网访问量,以及监控摄像机或智能电表等设备产生的数据爆增,使数字宇宙的规模在最近两年翻了一番,达到惊人的2.8ZB。IDC预计,到2020年,数字宇宙规模将超出预期,达到40ZB。在线数字内容的增长导致了硬件、人力维护在内的存储系统成本的增加,减少传输、存储管理过程中的数据量变得极其重要。在海量的数据中存在大量的重复数据和相似数据,如同样的文件为确保安全存储了多份,在计算机系统通常存储和操作同一数据的若干副本,这些冗余数据占用了大量的存储空间。数据去重技术是一种通过大规模消除冗余数据,降低存储成本的重要技术。简单举例说明:若有一个10MB大小的文件,将其拷贝给100个用户,需要使用1GB的存储空间;若每周对100个用户的数据进行备份,则每周需要额外增加1GB的存储空间;一年之后,总共需要浪费52GB的存储空间;而进行数据去重之后,仅需要10MB大小的空间即可存储。
随着容灾备份系统和数据去重技术的发展,隐私数据的丢失与篡改等存储安全问题日渐突出,例如:对于现有的备份系统,在存储服务过程中,存储系统错误配置、管理员操作失误、敌手通过抓包获取等有可能将用户的明文数据直接暴露给他人;即使敌手无法获取明文,也可能通过破坏传输文件,篡改数据、暴力攻击等方式获取和破坏用户和企业的重要数据。因此,如何在数据备份过程中建立一个安全的数据去重系统成为了工业界和学术界研究的热点。
数据安全在现在存储系统中逐渐引起企业和学术界的重视,在很大程度上,数据去重和加密在逻辑上是完全相反和矛盾的。数据去重利用了数据的相似性,相反密码学的目标是使得密文分布更接近于理论上的随机性。假如按照经典数据去重算法,不同用户对于共享的数据块加密,由于密文的随机性将得到不同的密文,产生不同的指纹,导致数据去重的效率大大降低。假如采用不同的用户对共享的数据块明文计算处理得到相同的指纹,再使用不同的密钥加密数据块得到不同的密文,导致其他用户无法解密。同时在数据去重技术中增加加密、身份认证等安全技术势必会增加备份系统的负担,降低备份系统的性能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种适用于备份系统的安全数据去重方法和系统,其目的在于保证在数据去重率不变的基础上,防止数据丢失、篡改等存储安全问题。
为实现上述目的,按照本发明的一个方面,提供了一种适用于备份系统的安全数据去重方法,包括:
一、备份阶段,其包括以下步骤:
(1)接收用户提交的备份请求;
(2)对需要备份的每个文件进行分块,以得到多个不同大小的数据块;
(3)使用哈希算法计算每个数据块的哈希值F1来作为数据块加密密钥。
(4)再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1);
(5)将文件的数据块个数nChunkNum,所有数据块指纹F2等打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;
(6)在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
(7)根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;
(8)在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转步骤(12),否则转步骤(9);
(9)对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩,并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;
(10)将加密后的密文数据块和数据块哈希值F1的密文E(F1)以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;
(11)根据第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回步骤(8);
(12)将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文E(F1)写入到存储服务器的文件谱中;
(13)释放内存中单链表的数据结构,备份过程结束;
二、恢复阶段,其包括以下步骤:
(14)接收用户提交的恢复请求;具体而言,该等信息,由备份服务器根据文件这些信息等查找到该文件指定的存储服务器。
(15)从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文E(F1)、文件名、文件路径等信息读出,并以指纹流的形式发送回客户端;
(16)通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文(E(F1))使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
(17)对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到数据块指纹F2,并将其发送回存储服务器;具体而言,本发明采用的是SHA-1算法计算哈希值;
(18)根据数据块指纹F2找到数据块,并将数据块发送回客户端;
(19)对接收到的数据块进行解密和解压缩处理,并写入文件;
(20)释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
优选地,备份请求包括需要备份的文件名、文件的路径、文件的大小、文件的备份时间,恢复请求包括恢复文件对象、恢复文件名、恢复路径。
优选地,其特征在于,哈希算法采用的是SHA-1方法,经典加密算法采用的是AES算法,用户的私有密钥是通过Lockbox机制进行保护。
优选地,步骤(7)包括以下子步骤:
(7-1)设置计数器i=1,判断i是否大于nChunkNum。如果是则转入步骤(8),否则转入步骤(7-2);
(7-2)对需要备份的文件的指纹段中的内容进行解析,以得到第i个数据块的数据块指纹F2、数据哈希值F1的密文E(F1)、数据块长度等信息;
(7-3)在存储服务器的指纹库中判断是否可查找到数据块指纹F2,如果可查找到,则表明第i个数据块为重复块,以指纹F2为索引条件直接指向已存在的数据块;反之,则表明第i个数据块是新数据块,根据指纹F2为索引条件设置该新数据块在存储服务器中的存储位置
(7-4)设置计数器i=i+1,建立新结点,将第i个数据块是否重复的信息写入该结点,并将单链表的尾指针指向该结点,并且尾指针后移一位,然后返回步骤(7-1)。
优选地,步骤(9)中数据块哈希值F1作为加密密钥采用PBE的加密策略对安全性进行处理,并对密钥长度进行调整。
优选地,步骤(18)具体为,根据数据块指纹F2读取恢复文件对应的相似性容器,遍历文件谱中的指纹链表,以找到所有数据块对应的容器的ID,读出容器中相应的密文数据块,并将密文数据块和数据块个数nChunkNum以数据流的形式传输回客户端,并发送校验流到客户端,
优选地,步骤(19)包括以下子步骤:
(19-1)设置计数器k=0,判断k是否大于nChunkNum,如果是转步骤(20),否则转步骤(19-2);
(19-2)根据文件谱中包含的文件名、文件路径等信息找到本地磁盘位置创建新文件;
(19-3)调用在内存中保存的数据块哈希值F1,以数据块哈希值F1为数据块解密密钥对第k个数据块进行解密,采用文件压缩算法压缩(GNUzip,简称gzip),并将该明文数据块内容写入到文件中,置k=k+1,转步骤(19-1)。
按照本发明的另一方面,提供了一种适用于备份系统的安全数据去重系统,包括:
第一模块,用于接收用户提交的备份请求;
第二模块,用于对需要备份的每个文件进行分块,以得到多个不同大小的数据块;
第三模块,用于使用哈希算法计算每个数据块的哈希值F1
第四模块,用于再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1);
第五模块,用于将文件的数据块个数nChunkNum,所有数据块指纹F2等打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;
第六模块,用于在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
第七模块,用于根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;
第八模块,用于在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转步骤(12),否则转步骤(9);
第九模块,用于对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩,并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;
第十模块,用于将加密后的密文数据块和数据块哈希值F1的密文E(F1)以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;
第十一模块,用于根据第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回步骤(8);
第十二模块,用于将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文E(F1)写入到存储服务器的文件谱中;
第十三模块,用于释放内存中单链表的数据结构,备份过程结束;
第十四模块,用于接收用户提交的恢复请求;具体而言,该等信息,由备份服务器根据文件这些信息等查找到该文件指定的存储服务器。
第十五模块,用于从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文E(F1)、文件名、文件路径等信息读出,并以指纹流的形式发送回客户端;
第十六模块,用于通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文(E(F1))使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
第十七模块,用于对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到数据块指纹F2,并将其发送回存储服务器;具体而言,本发明采用的是SHA-1算法计算哈希值;
第十八模块,用于根据数据块指纹F2找到数据块,并将数据块发送回客户端;
第十九模块,用于对接收到的数据块进行解密和解压缩处理,并写入文件;
第二十模块,用于释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、本发明采用适用于备份系统的安全数据去重方法,所有的加密解密过程全部在客户端执行,由此,能够有效地减轻备份服务器和存储服务器的负担,提高多用户并发环境下的性能。
2、本发明中数据块和密钥在传输和存储过程中都以密文的形式存在,确保即使敌手获取了传输内容也无法获取加密密钥和数据块明文,传输过程中通信双方需要身份验证,有效保障了数据和密钥的传输和存储安全性,降低了数据丢失和被篡改的概率。
3、相对于先加密再去重的方式必须将所有数据块先加密、然后发送到存储服务器进行去重处理而言,本发明通过先进行数据去重再对新数据块加密的方式,只需要对非重复的数据块加密,减少了大量的加密工作,有效降低了客户端的开销和时间延迟。
4、本发明将数据块加密密钥放在存储服务器端,即使客户端的数据和密钥丢失,都能保证数据正常恢复正常解密;因此,通过减少交互次数,如以文件为单位,一次或几次完成所有的交互信息,减少链表的访问次数,记录上次访问地址,性能会得到很大的提升。
附图说明
图1是本发明应用的备份系统的架构图。
图2是本发明适用于备份系统的安全数据去重方法的备份过程原理图。
图3是本发明适用于备份系统的安全数据去重方法的恢复过程原理图。
图4是本发明适用于备份系统的安全数据去重方法的备份流程图。
图5是本发明适用于备份系统的安全数据去重方法的恢复流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明主要涉及到3个重要的变量:数据块哈希值F1、数据块指纹F2、数据块哈希值F1的密文E(F1)。使用哈希算法计算每个数据块的哈希值F1来作为数据块的加密密钥,再次使用哈希算法计算每个数据块哈希值F1的哈希值F2作为该数据块的指纹来识别重复数据块,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1)来保护数据块的加密密钥。
本发明适用于备份系统的安全数据去重方法的基本思路在于,在客户端将待备份数据流分块、求取数据块哈希值F1之后,对数据块哈希值F1再次求取哈希值得到F2,并且将哈希值F2作为该数据块的指纹进行数据去重操作过程。该方法采用的是先去重后加密的策略,客户端将所有数据块指纹F2发送到存储服务器的指纹库中进行查找比对,如果存在说明是重复数据块;如果不存在说明是新数据块,将指纹写入到数据库中。所有数据块指纹对比完毕后,将是否重复的信息记录并发回客户端。客户端根据该信息,对于重复数据块不予发送;对于新的数据块,使用数据块本身的哈希值F1经过处理之后作为密钥,采用高级加密标准(AdvancedEncryptionStandard,简称AES)算法等经典加密算法对数据块加密,将密文块发送到存储服务器储存。
为了进行密钥保护,客户端将数据块的哈希值F1(即数据块加密密钥)使用用户私有的对称密钥加密得到E(F1),将E(F1)发送到存储服务器的文件谱中存储,而用户的私有密钥通过Lockbox机制进行保护,确保密钥的安全性。
在进行文件恢复时,客户端首先会请求由存储服务器将文件谱从磁盘中读出发送回客户端,客户端接收文件谱,从LockBox中取出用户的私有密钥,对文件谱中的E(F1)解密得到数据块加密密钥F1暂时保存在内存中;同时对解密得到的数据块哈希值F1再次求取哈希值得到数据块指纹F2,将数据块指纹F2发送到存储服务器根据索引查找数据块,将数据块发送到客户端,客户端使用密钥F1对密文块解密,将数据块明文写入文件中,整理后恢复过程结束。
如图1所示,使用本发明方法的备份系统,主要包含三个部分,即客户端、备份服务器和存储服务器。
备份服务器主要负责资源调度和元数据管理。资源调度主要是监听备份代理和存储服务器的各项请求,并对收到的请求完成对应的功能,主要包括验证备份代理身份,响应备份代理的服务请求,对备份和恢复文件进行调度,协调存储服务器与备份代理完成文件任务,存储空间分配;元数据管理主要对用户和存储服务器提供的元数据进行组织和管理,如用户名,登录时间,用户备份的索引信息等。
存储服务器主要完成数据存储和组织。主要是接收客户端传送的指纹,进行指纹匹配完成去重功能并返回查找信息,接收并存储数据块密文和文件谱信息等。如图1所示,存储服务器完成了密钥的存储和管理。
客户端主要完成备份和恢复申请,备份数据的分块、求哈希、求指纹和数据块加密解密等功能。如图1所示,客户端与存储服务器之间的数据通信采用安全套接层协议(SecureSocketLayer/TransportLayerSecurity,简称SSL/TLS)。
本发明适用于备份系统的安全数据去重方法包括:
一、备份阶段,如图2和图4所示,其包括以下步骤:
(1)接收用户提交的备份请求,该备份请求包括需要备份的文件名、文件的路径、文件的大小、文件的备份时间等;
(2)对需要备份的每个文件进行分块,以得到多个不同大小的数据块;在本实施方式中,分块采用的是基于Rabin指纹的滑动窗口分块算法;
(3)使用哈希算法计算每个数据块的哈希值F1;具体而言,本发明采用的是SHA-1算法计算哈希值,该哈希值用来作为数据块的加密密钥;
(4)再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹来识别重复数据块,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1),从而保护数据块加密密钥F1;具体而言,哈希算法采用的是SHA-1方法,经典加密算法采用的是高级加密标准(AdvancedEncryptionStandard,简称AES)算法,用户的私有密钥是通过Lockbox机制进行保护;
本步骤的优点在于,经过两次哈希计算,能快速地获取数据块指纹,加快了数据去重的速度。并且通过Lockbox机制有效地保护用户的私有密钥。
(5)将文件的数据块个数nChunkNum,所有数据块指纹F2等打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;具体而言,在传输过程中采用安全套接层协议(SecureSocketLayer/TransportLayerSecurity,简称SSL/TLS),客户端与服务器数据通信包含3种流类型:指纹流,数据流和校验流。
(6)在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
(7)根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;本步骤包括以下子步骤:
(7-1)设置计数器i=1,判断i是否大于nChunkNum。如果是则转入步骤(8),否则转入步骤(7-2);
(7-2)对需要备份的文件的指纹段中的内容进行解析,以得到第i个数据块的数据块指纹F2、数据哈希值F1的密文E(F1)、数据块长度等信息;
(7-3)在存储服务器的指纹库中判断是否可查找到数据块指纹F2,如果可查找到,则表明第i个数据块为重复块,以指纹F2为索引条件直接指向已存在的数据块;反之,则表明第i个数据块是新数据块,根据指纹F2为索引条件设置该新数据块在存储服务器中的存储位置;具体而言,本发明中提到的索引用于数据块的存储和查找。
(7-4)设置计数器i=i+1,建立新结点,将第i个数据块是否重复的信息写入该结点,并将单链表的尾指针指向该结点,并且尾指针后移一位,然后返回步骤(7-1);
(8)在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转步骤(12),否则转步骤(9);
(9)对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩(GNUzip,简称gzip),并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;具体而言,数据块哈希值F1作为加密密钥需要采用基于口令加密(Passwordbasedencryption,简称PBE)的加密策略对安全性进行处理,并对密钥长度进行调整。
本步骤的优点在于,所有的加密解密过程全部在客户端执行,由此,能够有效地减轻备份服务器和存储服务器的负担。并且只对新的数据块加密,减少了重复加密的负担。
(10)将加密后的密文数据块和数据块哈希值F1的密文E(F1)以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;具体而言,在传输过程中采用安全套接层协议(SecureSocketLayer/TransportLayerSecurity,简称SSL/TLS)。
本步骤的优点在于数据和密钥在传输和存储过程中都以密文的形式存在,确保即使敌手获取了传输内容也无法获取加密密钥和数据块明文,传输过程中通信双方需要身份验证,有效保障了数据和密钥的传输和存储安全性,降低了数据丢失和被篡改的概率。
(11)根据步骤(7-3)中指纹F2设置的第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回步骤(8);
(12)将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文E(F1)写入到存储服务器的文件谱中;具体而言,文件谱是用于数据恢复时的文件。
(13)释放内存中单链表的数据结构,备份过程结束;
二、恢复阶段,如图3和图5所示,其包括以下步骤:
(14)接收用户提交的恢复请求;具体而言,该恢复请求包括恢复文件对象、恢复文件名、以及恢复路径等信息,由备份服务器根据文件这些信息等查找到该文件指定的存储服务器。
(15)从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文E(F1)、文件名、文件路径等信息读出,并以指纹流的形式发送回客户端;
(16)通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文(E(F1))使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
(17)对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到数据块指纹F2,并将其发送回存储服务器;具体而言,本发明采用的是SHA-1算法计算哈希值;
(18)根据数据块指纹F2找到数据块,并将数据块发送回客户端;具体而言,根据数据块指纹F2读取恢复文件对应的相似性容器,遍历文件谱中的指纹链表,以找到所有数据块对应的容器的ID,读出容器中相应的密文数据块,并将密文数据块和数据块个数nChunkNum以数据流的形式传输回客户端,并发送校验流到客户端,本发明传输过程采用安全套接层协议(SecureSocketLayer/TransportLayerSecurity,简称SSL/TLS),相似性容器设置于存储服务器,用于快速查找数据块;
(19)对接收到的数据块进行解密和解压缩处理,并写入文件;本步骤具体包括以下子步骤:
(19-1)设置计数器k=0,判断k是否大于nChunkNum,如果是转步骤(20),否则转步骤(19-2)
(19-2)根据文件谱中包含的文件名、文件路径等信息找到本地磁盘位置创建新文件;
(19-3)调用在内存中保存的数据块哈希值F1,以数据块哈希值F1为数据块解密密钥对第k个数据块进行解密,采用文件压缩算法压缩(GNUzip,简称gzip),并将该明文数据块内容写入到文件中,置k=k+1,转步骤(19-1);具体而言,数据块哈希值F1作为加密密钥需要采用基于口令加密(PasswordBasedEncryption,简称PBE)的加密策略对安全性进行处理,并对密钥长度进行调整。
(20)释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
本发明适用于备份系统的安全数据去重系统,是应用在一种备份系统中,该备份系统包括客户端、备份服务器和存储服务器,该安全数据去重系统包括:
第一模块,其设置于备份服务器中,用于接收用户提交的备份请求;
第二模块,其设置于客户端中,用于对需要备份的每个文件进行分块,以得到多个不同大小的数据块;
第三模块,其设置于客户端中,用于使用哈希算法计算每个数据块的哈希值F1来作为数据块的加密密钥;
第四模块,其设置于客户端中,用于再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文E(F1),从而保护数据块加密密钥F1
第五模块,其设置于客户端中,用于将文件的数据块个数nChunkNum,所有数据块指纹F2等打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;
第六模块,其设置于存储服务器中,用于在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
第七模块,其设置于存储服务器中,用于根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;
第八模块,其设置于存储服务器中,用于在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转第十二模块,否则转第九模块;
第九模块,其设置于存储服务器中,用于对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩,并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;
第十模块,其设置于客户端中,用于将加密后的密文数据块和数据块哈希值F1的密文E(F1)以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;
第十一模块,其设置于存储服务器中,用于根据第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回第八模块;
第十二模块,其设置于存储服务器中,用于将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文E(F1)写入到存储服务器的文件谱中;
第十三模块,其设置于存储服务器中,用于释放内存中单链表的数据结构,备份过程结束;
第十四模块,其设置于备份服务器中,用于接收用户提交的恢复请求;具体而言,该等信息,由备份服务器根据文件这些信息等查找到该文件指定的存储服务器。
第十五模块,其设置于存储服务器中,用于从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文E(F1)、文件名、文件路径等信息读出,并以指纹流的形式发送回客户端;
第十六模块,其设置于客户端中,用于通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文(E(F1))使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
第十七模块,其设置于客户端中,用于对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到数据块指纹F2,并将其发送回存储服务器;具体而言,本发明采用的是SHA-1算法计算哈希值;
第十八模块,其设置于存储服务器中,用于根据数据块指纹F2找到数据块,并将数据块发送回客户端;
第十九模块,其设置于客户端中,用于对接收到的数据块进行解密和解压缩处理,并写入文件;
第二十模块,其设置于客户端中,用于释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种适用于备份系统的安全数据去重方法,其特征在于,包括:
一、备份阶段,其包括以下步骤:
(1)接收用户提交的备份请求;
(2)对需要备份的每个文件进行分块,以得到多个不同大小的数据块;
(3)使用哈希算法计算每个数据块的哈希值F1来作为数据块加密密钥;
(4)再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹来识别重复数据块,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文,从而保护数据块加密密钥F1
(5)将文件的数据块个数nChunkNum,所有哈希值F2打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;
(6)在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
(7)根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;
(8)在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转步骤(12),否则转步骤(9);
(9)对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩,并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;
(10)将加密后的密文数据块和数据块哈希值F1的密文以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;
(11)根据第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回步骤(8);
(12)将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文写入到存储服务器的文件谱中;
(13)释放内存中单链表的数据结构,备份过程结束;
二、恢复阶段,其包括以下步骤:
(14)接收用户提交的恢复请求;具体而言,该恢复请求是由备份服务器根据文件这些信息查找到该文件指定的存储服务器;
(15)从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文、文件名、文件路径信息读出,并以指纹流的形式发送回客户端;
(16)通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
(17)对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到哈希值F2,并将其发送回存储服务器;具体而言,本步骤采用的是SHA-1算法计算哈希值;
(18)根据哈希值F2找到数据块,并将数据块发送回客户端;
(19)对接收到的数据块进行解密和解压缩处理,并写入文件;
(20)释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
2.根据权利要求1所述的安全数据去重方法,其特征在于,备份请求包括需要备份的文件名、文件的路径、文件的大小、文件的备份时间,恢复请求包括恢复文件对象、恢复文件名、恢复路径。
3.根据权利要求1所述的安全数据去重方法,其特征在于,
哈希算法采用的是SHA-1方法;
经典加密算法采用的是AES算法;
用户的私有密钥是通过Lockbox机制进行保护。
4.根据权利要求1所述的安全数据去重方法,其特征在于,步骤(7)包括以下子步骤:
(7-1)设置计数器i=1,判断i是否大于nChunkNum;如果是则转入步骤(8),否则转入步骤(7-2);
(7-2)对需要备份的文件的指纹段中的内容进行解析,以得到第i个数据块的哈希值F2、数据块长度信息;
(7-3)在存储服务器的指纹库中判断是否可查找到哈希值F2,如果可查找到,则表明第i个数据块为重复块,以哈希值F2为索引条件直接指向已存在的数据块;反之,则表明第i个数据块是新数据块,根据哈希值F2为索引条件设置该新数据块在存储服务器中的存储位置
(7-4)设置计数器i=i+1,建立新结点,将第i个数据块是否重复的信息写入该结点,并将单链表的尾指针指向该结点,并且尾指针后移一位,然后返回步骤(7-1)。
5.根据权利要求1所述的安全数据去重方法,其特征在于,步骤(9)中数据块哈希值F1作为加密密钥采用PBE的加密策略对安全性进行处理,并对密钥长度进行调整。
6.根据权利要求1所述的安全数据去重方法,其特征在于,步骤(18)具体为,根据哈希值F2读取恢复文件对应的相似性容器,遍历文件谱中的指纹链表,以找到所有数据块对应的容器的ID,读出容器中相应的密文数据块,并将密文数据块和数据块个数nChunkNum以数据流的形式传输回客户端,并发送校验流到客户端。
7.根据权利要求1所述的安全数据去重方法,其特征在于,步骤(19)包括以下子步骤:
(19-1)设置计数器k=0,判断k是否大于nChunkNum,如果是转步骤(20),否则转步骤(19-2);
(19-2)根据文件谱中包含的文件名、文件路径信息找到本地磁盘位置创建新文件;
(19-3)调用在内存中保存的数据块哈希值F1,以数据块哈希值F1为数据块解密密钥对第k个数据块进行解密,采用文件压缩算法压缩,并将解密后的数据块内容写入到文件中,置k=k+1,转步骤(19-1)。
8.一种适用于备份系统的安全数据去重系统,其特征在于,包括:
第一模块,用于接收用户提交的备份请求;
第二模块,用于对需要备份的每个文件进行分块,以得到多个不同大小的数据块;
第三模块,用于使用哈希算法计算每个数据块的哈希值F1
第四模块,用于再次使用哈希算法计算每个数据块哈希值F1的哈希值F2,并将哈希值F2作为该数据块的指纹,并采用经典加密算法使用用户的私钥对数据块的哈希值F1进行加密以得到数据哈希值F1的密文;
第五模块,用于将文件的数据块个数nChunkNum,所有哈希值F2打包成指纹段并记录,顺序将所有指纹段以指纹流的形式发送传输到存储服务器,并发送校验流到存储服务器;
第六模块,用于在存储服务器的内存中建立用于记录该文件的数据块是否重复的单链表;
第七模块,用于根据指纹段和文件数据块个数nChunkNum在存储服务器端进行数据去重的操作过程;
第八模块,用于在客户端准备备份非重复的数据块,设置计数器j=1,并判断j是否大于nChunkNum,如果是则转第十二模块,否则转第九模块;
第九模块,用于对于第j个数据块,如果其是重复的数据块,则不予发送;如果其是新的数据块,采用文件压缩算法压缩,并以数据块哈希值F1作为第j个数据块的数据块加密密钥,并使用该数据块加密密钥和经典加密算法对第j个数据块加密,得到的密文数据块;
第十模块,用于将加密后的密文数据块和数据块哈希值F1的密文以数据流的形式发送至存储服务器,并发送校验流到存储服务器,设置j=j+1;
第十一模块,用于根据第j个数据块在存储服务器中的存储位置,保存数据块密文,然后返回第八模块;
第十二模块,用于将该单链表发送回客户端,并将所有数据块的数据哈希值F1的密文写入到存储服务器的文件谱中;
第十三模块,用于释放内存中单链表的数据结构,备份过程结束;
第十四模块,用于接收用户提交的恢复请求;具体而言,该恢复请求是由备份服务器根据文件这些信息查找到该文件指定的存储服务器;
第十五模块,用于从存储服务器中查找该恢复文件对应的文件谱,将文件谱中的所有内容包括所有数据块哈希值F1的密文、文件名、文件路径信息读出,并以指纹流的形式发送回客户端;
第十六模块,用于通过使用LockBox机制取出用户的私有密钥,并对接收到的数据块哈希值F1的密文使用用户的私有密钥进行解密,并将解密得到的数据块哈希值F1以单链表结构保存在内存中;
第十七模块,用于对数据块哈希值F1使用备份过程中相同的哈希算法再次求取哈希值,以得到哈希值F2,并将其发送回存储服务器;具体而言,本步骤采用的是SHA-1算法计算哈希值;
第十八模块,用于根据哈希值F2找到数据块,并将数据块发送回客户端;
第十九模块,用于对接收到的数据块进行解密和解压缩处理,并写入文件;
第二十模块,用于释放内存中保存的数据块哈希值F1的单链表数据结构,恢复过程结束。
CN201310301670.2A 2013-07-17 2013-07-17 一种适用于备份系统的安全数据去重方法和系统 Active CN103530201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310301670.2A CN103530201B (zh) 2013-07-17 2013-07-17 一种适用于备份系统的安全数据去重方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310301670.2A CN103530201B (zh) 2013-07-17 2013-07-17 一种适用于备份系统的安全数据去重方法和系统

Publications (2)

Publication Number Publication Date
CN103530201A CN103530201A (zh) 2014-01-22
CN103530201B true CN103530201B (zh) 2016-03-02

Family

ID=49932234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310301670.2A Active CN103530201B (zh) 2013-07-17 2013-07-17 一种适用于备份系统的安全数据去重方法和系统

Country Status (1)

Country Link
CN (1) CN103530201B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866738B (zh) * 2014-02-25 2019-04-26 北京娜迦信息科技发展有限公司 一种程序代码保护方法及装置
CN103885859B (zh) * 2014-03-12 2017-09-26 华中科技大学 一种基于全局统计的去碎片方法及系统
CN103944988A (zh) * 2014-04-22 2014-07-23 南京邮电大学 一种适用于云存储的重复数据删除系统和方法
CN104902010A (zh) * 2015-04-30 2015-09-09 浙江工商大学 一种云端存储文件的方法和系统
CN104917609B (zh) * 2015-05-19 2017-11-10 华中科技大学 一种基于用户感知的高效安全数据去重方法及系统
CN104899118B (zh) * 2015-06-26 2018-04-27 上海斐讯数据通信技术有限公司 一种对删除的隐私数据的恢复方法及系统
CN105868305B (zh) * 2016-03-25 2019-03-26 西安电子科技大学 一种支持模糊匹配的云存储数据去重复方法
CN107463588A (zh) * 2016-06-03 2017-12-12 北京京东尚科信息技术有限公司 数据提交判重方法
CN105959106B (zh) * 2016-06-13 2019-04-02 四川特伦特科技股份有限公司 一种低复杂度数字加密方法
CN108156110A (zh) * 2016-12-02 2018-06-12 航天星图科技(北京)有限公司 一种日志文件的上传方法
CN108153612A (zh) * 2016-12-02 2018-06-12 航天星图科技(北京)有限公司 一种数据库文件的备份方法
CN107590026A (zh) * 2017-08-23 2018-01-16 深圳市优品壹电子有限公司 一种数据备份方法及装置
CN107659401B (zh) * 2017-10-09 2019-08-30 华中科技大学 一种相似性感知的安全数据去重加密方法
CN107979613A (zh) * 2017-12-28 2018-05-01 明博教育科技股份有限公司 一种保障jms消息安全认证的实现方法和系统
CN108197270B (zh) * 2018-01-04 2021-05-28 中科边缘智慧信息科技(苏州)有限公司 分布式文件系统数据回收方法
CN112088376A (zh) * 2018-06-30 2020-12-15 华为技术有限公司 一种文件存储方法、装置及存储介质
CN109324998A (zh) * 2018-09-18 2019-02-12 郑州云海信息技术有限公司 一种文件处理方法、装置及系统
CN111045856A (zh) * 2018-10-12 2020-04-21 伊姆西Ip控股有限责任公司 用于管理应用系统的方法、设备和计算机程序产品
CN111104249A (zh) * 2018-10-26 2020-05-05 伊姆西Ip控股有限责任公司 用于数据备份的方法、设备和计算机程序产品
CN110046281B (zh) * 2019-01-31 2023-06-06 创新先进技术有限公司 一种数据添加方法、装置及设备
CN111522502B (zh) * 2019-02-01 2022-04-29 阿里巴巴集团控股有限公司 数据去重方法、装置、电子设备及计算机可读存储介质
CN109922049B (zh) * 2019-02-02 2021-09-28 立旃(上海)科技有限公司 基于区块链的验证装置及方法
CN110008719B (zh) * 2019-03-11 2021-02-12 新华三信息安全技术有限公司 一种文件处理、文件检测方法及装置
CN110099114A (zh) * 2019-04-30 2019-08-06 普华云创科技(北京)有限公司 区块链和ipfs协议的文件存储方法、系统、终端及存储介质
CN112131041A (zh) * 2019-06-24 2020-12-25 伊姆西Ip控股有限责任公司 用于管理数据放置的方法、设备和计算机程序产品
CN110427347A (zh) * 2019-07-08 2019-11-08 新华三技术有限公司成都分公司 重复数据删除的方法、装置、存储节点及存储介质
CN112889021B (zh) * 2019-07-23 2023-11-28 华为技术有限公司 重复数据删除的设备、系统和方法
CN112685225B (zh) * 2019-10-18 2024-06-18 伊姆西Ip控股有限责任公司 用于传输数据的方法、设备和计算机程序产品
CN111522791B (zh) * 2020-04-30 2023-05-30 电子科技大学 一种分布式文件重复数据删除系统及方法
CN112380196B (zh) * 2020-10-28 2023-03-21 安擎(天津)计算机有限公司 一种用于数据压缩传输的服务器
CN112416879B (zh) * 2020-12-09 2023-08-04 成都傲梅科技有限公司 一种基于ntfs文件系统的块级数据去重方法
CN112637153B (zh) * 2020-12-14 2024-02-20 航天壹进制(江苏)信息科技有限公司 一种存储加密去重的方法和系统
CN112650628A (zh) * 2020-12-30 2021-04-13 浪潮云信息技术股份公司 一种高可用可拓展的数据去重方法
CN113037732B (zh) * 2021-02-26 2022-09-23 南京大学 一种基于广域网场景下的多用户的安全的加密去重方法
CN113297137B (zh) * 2021-05-28 2023-03-21 深圳丹皓电子科技有限公司 一种erp系统中智能数据快速拷贝的管理方法
CN114650285B (zh) * 2022-03-21 2024-04-26 重庆市规划和自然资源信息中心 关于对不动产登记业务进行多维度全要素监控的方法
CN114726543B (zh) * 2022-04-12 2023-07-18 北京信息科技大学 基于报文链的密钥链生成、报文发送及接收方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814045A (zh) * 2010-04-22 2010-08-25 华中科技大学 一种用于备份服务的数据组织方法
CN102968595A (zh) * 2012-12-20 2013-03-13 曙光云计算技术有限公司 虚拟机系统的保护方法和装置
CN103095843A (zh) * 2013-01-28 2013-05-08 刘海峰 一种基于版本矢量的数据备份方法及客户端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814045A (zh) * 2010-04-22 2010-08-25 华中科技大学 一种用于备份服务的数据组织方法
CN102968595A (zh) * 2012-12-20 2013-03-13 曙光云计算技术有限公司 虚拟机系统的保护方法和装置
CN103095843A (zh) * 2013-01-28 2013-05-08 刘海峰 一种基于版本矢量的数据备份方法及客户端

Also Published As

Publication number Publication date
CN103530201A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN103530201B (zh) 一种适用于备份系统的安全数据去重方法和系统
Li et al. A hybrid cloud approach for secure authorized deduplication
CN103039057B (zh) 对移动中数据进行保护的系统和方法
CN102685148B (zh) 一种云存储环境下的安全网盘系统的实现方法
US9264224B2 (en) Systems and methods for secure data sharing
EP2603873B1 (en) System and method for secure remote storage of data
US8225109B1 (en) Method and apparatus for generating a compressed and encrypted baseline backup
EP2260425B1 (en) Distribution of storage area network encryption keys across data centers
CN104917609A (zh) 一种基于用户感知的高效安全数据去重方法及系统
US8832040B2 (en) Method and apparatus of securely processing data for file backup, de-duplication, and restoration
CN103118089A (zh) 一种基于多个云存储系统的安全存储方法及其系统
US10685141B2 (en) Method for storing data blocks from client devices to a cloud storage system
CN102882923A (zh) 移动终端安全存储系统及方法
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
US9071589B1 (en) Encryption key management for storage area network devices
Virvilis et al. A cloud provider-agnostic secure storage protocol
AU2015203172B2 (en) Systems and methods for secure data sharing
CN115134087A (zh) 一种面向去中心化云存储的客户端安全数据去重方法
CN113568568A (zh) 一种基于分布式存储的硬件加密方法、系统及装置
CN108494552B (zh) 支持高效收敛密钥管理的云存储数据去重方法
CN110958211A (zh) 一种基于区块链的数据处理系统及方法
CN110958285A (zh) 一种基于区块链的数据存储系统
AU2021105507A4 (en) Platform independent backup and restore for mobile devices using blockchain technology
CN117852076A (zh) 一种基于哈希共识机制的云计算存储方法及系统
Thomas et al. Image De-Duplication by using Tin Eye Match Service Engine in Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant