CN104978239B - 一种实现多备份数据动态更新的方法、装置及系统 - Google Patents
一种实现多备份数据动态更新的方法、装置及系统 Download PDFInfo
- Publication number
- CN104978239B CN104978239B CN201410138007.XA CN201410138007A CN104978239B CN 104978239 B CN104978239 B CN 104978239B CN 201410138007 A CN201410138007 A CN 201410138007A CN 104978239 B CN104978239 B CN 104978239B
- Authority
- CN
- China
- Prior art keywords
- data file
- data
- dynamic
- log recording
- signature
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种实现多备份数据动态更新的方法、装置及系统,该方法包括:采用第一加密算法对第一数据文件加密,生成多份不同的第二数据文件,将第一数据文件及多份第二数据文件上传至多个不同的服务器;在利用动态认证结构对第一数据文件进行动态更新操作后,生成第一日志记录,包括日期、操作类型、操作针对的数据块序号及操作针对的数据块更新后的内容;采用第二加密算法对第一日志记录加密,生成对应于第二数据文件的多份不同的第二日志记录,第一加密算法与第二加密算法相同;将第二日志记录上传至对应的服务器,以使第二数据文件和对应的第二日志记录组成更新后的第二数据文件。从而实现多备份数据的动态更新,且数据具有可验证特性。
Description
技术领域
本发明涉及云数据存储技术领域,具体涉及一种实现多备份数据动态更新的方法、装置及系统。
背景技术
随着网络技术和磁盘技术的成熟,数据存储量急剧增长,用户对于数据信息依赖程度不断加剧,同时随着云存储技术的不断发展,越来越多的用户选择将数据迁移至云存储服务器中。而人为错误、病毒攻击、介质失效、软件故障甚至站点失效等原因都会引起数据的丢失,因此数据多备份技术已经引起广泛的关注,用户可以选择将数据采用流加密方式复制多份后存储在不同的云存储服务器中,以保证数据的安全。同时,云计算环境的服务外包模式导致用户无法像在本地一样直接对用户数据进行管理,而交由云服务商存储并管理,而服务方并非完全可信,因此存储在云存储服务器中的数据需要保证可验证特征。
但是,现有技术中由于多备份数据采用流加密方式加密后进行存储,无法支持用户数据的增加、删除和修改等动态更新。同时,现有技术的多备份数据方案没有考虑数据动态更新,进而也没有考虑支持动态更新后的数据可以进行数据完整性验证。
发明内容
有鉴于此,本发明提供一种实现多备份数据动态更新的方法、装置及系统,以解决现有技术中多备份数据无法支持用户数据的增加、删除和修改等动态更新,也无法支持动态更新后的数据可以进行数据完整性验证的技术问题。
为解决上述问题,本发明提供的技术方案如下:
一种实现多备份数据动态更新的方法,所述方法包括:
采用第一加密算法对第一数据文件进行加密,生成所述第一数据文件对应的多份不同的第二数据文件,将所述第一数据文件以及多份第二数据文件上传至多个不同的服务器;
在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
采用第二加密算法对所述第一日志记录进行加密,生成对应于所述第二数据文件的多份不同的第二日志记录,所述第一加密算法与所述第二加密算法相同;将所述第二日志记录上传至对应的服务器,以使所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
相应的,所述方法还包括:
在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,判断所述服务器的动态更新操作是否成功,如果是,根据所述动态更新操作生成第一日志记录。
相应的,所述动态认证结构为动态默克尔哈希树,所述方法还包括:
将所述第一数据文件分为多个子块并构建动态默克尔哈希树,计算所述动态默克尔哈希树的根节点签名,计算所述第一数据文件中每个子块的第一签名,将所述根节点签名、所述第一签名上传至所述服务器,以使所述服务器判断所述第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第一数据文件的数据完整性证明信息并发送给所述验证终端完成数据完整性验证。
相应的,所述方法还包括:
将每份所述第二数据文件分别分为多个子块,计算每份所述第二数据文件中每个子块的第二签名,所述第二签名上传至所述服务器,以使所述服务器判断所述第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第二数据文件的数据完整性证明信息并发送给所述验证终端。
相应的,所述方法还包括:
计算每份所述第二日志记录的第三签名,将所述第三签名上传至所述服务器,以使所述服务器根据所述第二日志记录以及所述第三签名判断所述第二日志记录是否完整。
相应的,所述方法还包括:
接收所述服务器发送的所述第一数据文件是否完整的第一判断结果,如果所述第一判断结果为是,则删除本地的所述第一数据文件以及所述第一签名;
接收所述服务器发送的所述第二数据文件是否完整的第二判断结果,如果所述第二判断结果为是,则删除本地的所述第二数据文件以及所述第二签名;
接收所述服务器发送的所述第二日志记录是否完整的第三判断结果,如果所述第三判断结果为是,则删除本地的所述第二日志记录以及所述第三签名。
相应的,所述方法还包括:
当所述第一数据文件损坏时,从所述服务器下载所述第二数据文件以及所述第二日志记录;
使用所述与所述第一加密算法或第二加密算法对应的解密算法对所述第二数据文件以及所述第二日志记录进行解密,恢复出所述第一数据文件以及所述第一日志记录;
根据所述第一日志记录中的日期按顺序读取每条第一日志记录,根据所述第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对所述第一数据文件进行所述第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
相应的,所述第一加密算法包括对称加密法以及流加密算法;所述第二加密算法包括对称加密法以及流加密算法。
一种实现多备份数据动态更新的方法,所述方法包括:
接收用户终端上传的第一数据文件以及第二数据文件,所述第二数据文件为采用第一加密算法对所述第一数据文件进行加密后生成的;
根据所述第一数据文件创建动态认证结构;
接收所述用户终端发送的动态更新请求后,利用所述动态认证结构对所述第一数据文件进行动态更新操作,以使所述用户终端根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
接收用户终端上传的第二日志记录,所述第二日志记录为采用第二加密算法对所述第一日志记录进行加密后生成的,所述第一加密算法与所述第二加密算法相同,保存所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
相应的,所述动态认证结构为动态默克尔哈希树,所述方法还包括:
接收用户终端上传的动态默克尔哈希树的根节点签名以及所述第一数据文件中每个子块的第一签名;
根据所述第一数据文件以及所述第一签名,判断所述第一数据文件是否完整,并将所述第一数据文件是否完整的第一判断结果发送给所述用户终端;
在接收到验证终端发送的质询信息时,根据所述质询信息、所述第一数据文件、所述第一签名以及所述根节点签名生成所述第一数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第一数据文件的数据完整性证明信息完成对所述第一数据文件的数据完整性验证。
相应的,所述方法还包括:
接收所述第二数据文件中每个子块的第二签名;
根据所述第二数据文件以及所述第二签名,判断所述第二数据文件是否完整,并将所述第二数据文件是否完整的第二判断结果发送给所述用户终端;
在接收到验证终端发送的质询信息时,根据所述质询信息、所述第二数据文件以及所述第二签名生成所述第二数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第二数据文件的数据完整性证明信息完成对所述第二数据文件的数据完整性验证。
相应的,所述方法还包括:
接收所述每份所述第二日志记录的第三签名;
根据所述第二日志记录以及所述第三签名,判断所述第二日志记录是否完整,并将所述第二日志记录是否完整的第三判断结果发送给所述用户终端。
相应的,所述装置包括:
备份数据生成单元,用于采用第一加密算法对第一数据文件进行加密,生成所述第一数据文件对应的多份不同的第二数据文件;
第一上传单元,用于将所述第一数据文件以及多份第二数据文件上传至多个不同的服务器;
日志生成单元,用于在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
备份日志生成单元,用于采用第二加密算法对所述第一日志记录进行加密,生成对应于所述第二数据文件的多份不同的第二日志记录,所述第一加密算法与所述第二加密算法相同;
第二上传单元,用于将所述第二日志记录上传至对应的服务器,以使所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
相应的,所述装置还包括:
判断单元,在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,判断所述服务器的动态更新操作是否成功,如果是,根据所述动态更新操作生成第一日志记录。
相应的,所述动态认证结构为动态默克尔哈希树,所述装置还包括:
第一签名计算单元,用于将所述第一数据文件分为多个子块并构建动态默克尔哈希树,计算所述动态默克尔哈希树的根节点签名,计算所述第一数据文件中每个子块的第一签名,将所述根节点签名、所述第一签名上传至所述服务器,以使所述服务器判断所述第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第一数据文件的数据完整性证明信息并发送给所述验证终端完成数据完整性验证。
相应的,所述装置还包括:
第二签名计算单元,用于将每份所述第二数据文件分别分为多个子块,计算每份所述第二数据文件中每个子块的第二签名,所述第二签名上传至所述服务器,以使所述服务器判断所述第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第二数据文件的数据完整性证明信息并发送给所述验证终端。
相应的,所述装置还包括:
第三签名计算单元,用于计算每份所述第二日志记录的第三签名,将所述第三签名上传至所述服务器,以使所述服务器根据所述第二日志记录以及所述第三签名判断所述第二日志记录是否完整。
相应的,所述装置还包括:
第一删除单元,用于接收所述服务器发送的所述第一数据文件是否完整的第一判断结果,如果所述第一判断结果为是,则删除本地的所述第一数据文件以及所述第一签名;
第二删除单元,用于接收所述服务器发送的所述第二数据文件是否完整的第二判断结果,如果所述第二判断结果为是,则删除本地的所述第二数据文件以及所述第二签名;
第三删除单元,用于接收所述服务器发送的所述第二日志记录是否完整的第三判断结果,如果所述第三判断结果为是,则删除本地的所述第二日志记录以及所述第三签名。
相应的,所述装置还包括:
下载单元,用于当所述第一数据文件损坏时,从所述服务器下载所述第二数据文件以及所述第二日志记录;
解密单元,用于使用所述与所述第一加密算法或第二加密算法对应的解密算法对所述第二数据文件以及所述第二日志记录进行解密,恢复出所述第一数据文件以及所述第一日志记录;
恢复单元,用于根据所述第一日志记录中的日期按顺序读取每条第一日志记录,根据所述第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对所述第一数据文件进行所述第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
相应的,所述第一加密算法包括对称加密法以及流加密算法;所述第二加密算法包括对称加密法以及流加密算法。
一种实现多备份数据动态更新的装置,所述装置包括:
第一接收单元,用于接收用户终端上传的第一数据文件以及第二数据文件,所述第二数据文件为采用第一加密算法对所述第一数据文件进行加密后生成的;
创建单元,用于根据所述第一数据文件创建动态认证结构;
动态更新单元,用于接收所述用户终端发送的动态更新请求后,利用所述动态认证结构对所述第一数据文件进行动态更新操作,以使所述用户终端根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
第二接收单元,用于接收用户终端上传的第二日志记录,所述第二日志记录为采用第二加密算法对所述第一日志记录进行加密后生成的,所述第一加密算法与所述第二加密算法相同,保存所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
相应的,所述动态认证结构为动态默克尔哈希树,所述装置还包括:
第三接收单元,用于接收用户终端上传的动态默克尔哈希树的根节点签名以及所述第一数据文件中每个子块的第一签名;
第一验证单元,用于根据所述第一数据文件以及所述第一签名,判断所述第一数据文件是否完整,并将所述第一数据文件是否完整的第一判断结果发送给所述用户终端;
第二验证单元,用于在接收到验证终端发送的质询信息时,根据所述质询信息、所述第一数据文件、所述第一签名以及所述根节点签名生成所述第一数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第一数据文件的数据完整性证明信息完成对所述第一数据文件的数据完整性验证。
相应的,所述装置还包括:
第四接收单元,用于接收所述第二数据文件中每个子块的第二签名;
第三验证单元,用于根据所述第二数据文件以及所述第二签名,判断所述第二数据文件是否完整,并将所述第二数据文件是否完整的第二判断结果发送给所述用户终端;
第四验证单元,用于在接收到验证终端发送的质询信息时,根据所述质询信息、所述第二数据文件以及所述第二签名生成所述第二数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第二数据文件的数据完整性证明信息完成对所述第二数据文件的数据完整性验证。
相应的,所述装置还包括:
第五接收单元,用于接收所述每份所述第二日志记录的第三签名;
第五验证单元,用于根据所述第二日志记录以及所述第三签名,判断所述第二日志记录是否完整,并将所述第二日志记录是否完整的第三判断结果发送给所述用户终端。
一种实现多备份数据动态更新的系统,所述系统包括:
用户终端、服务器以及验证终端;
所述用户终端是上述第一种实现多备份数据动态更新的装置;
所述服务器是上述第二种实现多备份数据动态更新的装置;
所述验证终端,用于向所述服务器发送质询信息,以使所述服务器生成第一数据文件和/或第二数据文件的数据完整性证明;接收所述第一数据文件和/或第二数据文件的数据完整性证明,完成对所述第一数据文件和/或第二数据文件的数据完整性验证。
由此可见,本发明实施例具有如下有益效果:
本发明实施例通过对第一数据文件加密得到多个不同的第二数据文件,将第一数据文件与第二数据文件上传至存储服务器;第一数据文件直接利用动态认证结构例如动态默克尔哈希树进行动态更新操作,第二数据文件基于日志记录的方式记录动态更新,第二数据文件与日志记录相结合,形成更新后的第二数据文件,使存储服务器中的各个备份数据均支持数据的动态更新,当第一数据文件损坏的情况下也可以利用第二数据文件及日志记录进行恢复。同时,本发明实施例中第一数据文件以及第二数据文件均可以进行数据完整性验证,从而实现了多备份数据支持动态更新,且可证明安全,保障了用户数据的安全强度。
附图说明
图1为本发明实施例中云存储网络架构的示意图;
图2为本发明实施例中多备份数据动态更新的方法实施例一的流程图;
图3为本发明实施例中日志记录内容的示意图;
图4为本发明实施例中文件分块的示意图;
图5为本发明实施例中动态默克尔哈希树的示意图;
图6为本发明实施例中完整性验证过程的流程图;
图7为本发明实施例中动态更新操作过程的流程图;
图8为本发明实施例中数据插入过程动态默克尔哈希树的示意图;
图9为本发明实施例中多备份数据动态更新的方法实施例二的流程图;
图10为本发明实施例中多备份数据动态更新的装置实施例一的示意图;
图11为本发明实施例中多备份数据动态更新的装置实施例二的示意图;
图12为本发明实施例中多备份数据动态更新的系统实施例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明实施例提供的实现多备份数据动态更新的方法、装置及系统,是针对现有技术中多备份数据方案没有考虑数据动态更新,进而也没有考虑支持动态更新后的数据可以进行数据完整性验证的技术问题,提出对用户第一数据文件加密得到多个不同的第二数据文件,将数据进行分块处理后上传至云存储服务器,第一数据文件直接动态更新,其他第二数据文件基于日志的方式记录数据变化之处动态更新。日志和第二数据文件相结合,采用追加方式,形成新的第二数据文件并保证其可验证特性,可以保证在第一数据文件损坏的情况下利用备份数据将数据恢复到最新状态。可验证特征主要是指可公开验证多备份数据在云端的正确性和完整性,正确性是指数据未被非法修改、增加和删除,用户查询的数据是原始值。完整性是指服务提供商返回的查询结果应该是所有满足查询要求的数据而不应漏掉。
本发明实施例可以应用于云存储网络架构,参见图1所示,云存储网络架构可以包括三个不同的网络实体,分别是代表用户的用户终端、云存储服务器以及代表第三方验证者的验证服务器。其中用户(User)为数据文件的拥有者,有大量的数据文件需要存储在云端,并将数据的维护、管理和计算等任务委托给云存储服务器;云存储服务器CSS(CloudStorage Server)存储用户的数据文件,拥有巨大的存储空间和计算资源以管理用户的数据文件,可以由云服务提供商CSP管理;第三方验证者TPA(Third Party Auditor)可以受到用户的请求后,代表用户验证云存储服务的安全性,主要可以进行数据完整性验证,在一些情况下,用户也可以作为验证者进行数据完整性验证。
本发明实现多备份数据动态更新的方法实施例一将从实现多备份数据动态更新的装置角度进行描述,该实现多备份数据动态更新的装置具体可以集成在客户端中,该客户端可以装载在用户终端中,该用户终端具体可以为智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、膝上型便携计算机和台式计算机等等。
参见图2所示,本发明实施例中实现多备份数据动态更新的方法实施例一可以包括以下步骤:
步骤201:用户终端采用第一加密算法对第一数据文件进行加密,生成第一数据文件对应的多份不同的第二数据文件,将第一数据文件以及多份第二数据文件上传至多个不同的服务器。
在实际应用中,第一加密算法可以采用对称加密法以及流加密法,
用户可以选定对称加密密钥Key采用对称加密法加密第一数据文件F,选择决定备份次数K,再使用流加密方案,利用K个不同的密钥初始化得到K个伪随机序列(数据流),使用异或方式加密利用Key加密后的第一数据文件,得到K个不同的第二数据文件Fk,k∈{1,2,3,…,K}。其中,第一数据文件可以理解为原数据文件,第二数据文件可以理解为备份数据文件。将第一数据文件和K个第二数据文件分别上传至云存储服务器,云端可以使用不同的存储服务器分别存储第一数据文件以及不同的第二数据文件。同时用户终端可以保存对称加密密钥Key和和K个不同第二数据文件的加密密钥,也可以建立并保存包括各份第二数据文件和相对应的加密密钥的密钥列表。
步骤202:在利用动态认证结构(例如,动态默克尔哈希树)对上传至服务器的第一数据文件进行动态更新操作后,根据动态更新操作生成第一日志记录,第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容。
每当一项动态更新操作完成后,生成一条日志记录记录该项动态更新操作,第一日志记录可以理解为原日志记录。日志记录数据块可以分为四个字段:时间,即动态更新操作执行具体日期及时间;操作类型,根据动态更新操作的不同分为三种:插入、删除和更新,对应的代号分别为:I(Insert)、D(Delete)和U(Update);操作针对的数据块序号,相对于动态更新的第一数据文件F,确定每次动态更新操作针对的数据块位置编号bi;操作针对的数据块更新后的内容,当执行插入操作时,记录新的数据块内容,当执行更新操作时,则记录更新的数据块内容,执行删除操作,则记录数据为全0的数据块。每种动态更新操作的日志记录长度相同,日志记录内容可以参见图3所示。
步骤203:采用第二加密算法对第一日志记录进行加密,生成对应于第二数据文件的多份不同的第二日志记录,其中第一加密算法与第二加密算法相同;将第二日志记录上传至对应的服务器,以使第二数据文件和对应的第二日志记录组成更新后的第二数据文件。
当动态更新操作成功后,可以按照日志记录格式生成一条日志记录(即第一日志记录),找到对称加密密钥Key和每个第二数据文件对应的加密密钥,采用第二加密算法对第一日志记录进行加密,即按照与加密第一数据文件相同的方式对第一日志记录进行加密生成多份不同的第二日志记录,第二日志记录可以理解为备份日志记录,这样每个第二数据文件均对应生成了一条第二日志记录。将第二日志记录上传到存储服务器中,即将第二日志记录追加到对应的第二数据文件中,生成新的第二数据文件。
日志记录可以批处理更新,即用户可以选择具体生成多少条日志记录后自动全部上传,也可以根据用户操作习惯,选择动态更新操作全部完成后,再将日志记录自动全部上传。这样就完成了日志记录的追加操作,同时第二数据文件具有可验证特性。
在本发明实施例中,动态认证结构可以为动态默克尔哈希树,第一数据文件可以利用动态默克尔哈希树直接进行动态更新,第二数据文件的动态更新采用基于追加加密日志记录的方式,即一个动态更新操作对应生成一条加密日志记录(第二日志记录),将第二日志记录直接追加到对应的第二数据文件中,形成新第二数据文件并保持可验证特性。
对于上传到存储服务器中的第一数据文件、第二数据文件、进行动态更新操作后的第一数据文件、第二日志记录均需要保持数据的可验证特性,即可以进行数据的完整性验证。一方面,存储服务器可以验证用户终端上传的数据是否完整,以防止用户可能是不诚实的,当服务器接受并存储了用户提供的错误数据文件,用户便向服务器索取文件丢失的赔偿;另一方面,存储服务器可以接受第三方验证者或者用户作为验证者发出的质询信息,向验证者发送数据完整性证明,使验证者完成数据完整性验证。以下分别对本发明实施例中第一数据文件的完整性验证、第一数据文件的动态更新及完整性验证、第二数据文件的完整性验证、日志记录的生成与追加以及数据恢复的具体实现进行详细的说明。
一、第一数据文件的完整性验证
在本发明的一些实施例中,动态认证结构可以为动态默克尔哈希树,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
将第一数据文件分为多个子块并构建动态默克尔哈希树,计算动态默克尔哈希树的根节点签名,计算第一数据文件中每个子块的第一签名,将根节点签名、第一签名上传至服务器,以使服务器判断第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成第一数据文件的数据完整性证明信息并发送给验证终端完成数据完整性验证;
接收服务器发送的第一数据文件是否完整的第一判断结果,如果第一判断结果为是,则删除本地的第一数据文件以及第一签名,如果第一判断结果为否,则重新上传第一数据文件。
为了最大限度的提高存储效率和验证效率,验证过程引入了数据分块结构。假设F表示用户要上传到存储服务器的数据文件,参见图4所示,可以将F分成n个子块{m1,m2,…,mn},每个子块mi分为分成r个基本块{mi,1,mi,2,…,mi,r},对每个子块进行签名。每个文件被分成了n×r个基本块,n个子块,每个子块对应一个签名,这样的结构能大大减小签名的数量。在本发明实施例中,可以将数据文件划分为用户所需的粒度,对基本块进行聚集,聚集后的子块作为默克尔哈希树的叶子节点,构造默克尔哈希树,节省存储和计算代价。
默克尔哈希树(MHT,Merkle Hash Tree)可以应用于数据完整性验证中,在无需访问整个文件的情况下可以验证任意比特的文件块。其基本原理是:将整个文件分成许多小的文件块,将文件块进行哈希运算,然后以树的结构连接文件块的哈希值,并重哈希连接后的值,反复连接和重哈希直到生成单独的“根哈希”。在默克尔哈希树的数据域部分,每个动态默克尔哈希树(DMHT)的节点可以包含两部分信息,即哈希值和相对序号,相对序号是用来表示将当前节点作为子树的根节点的叶子节点的个数,其中叶子节点的相对序号为1,用来表示它自身;哈希值是由左右孩子节点的数据域部分信息结合后哈希所得。在DMHT中,辅助认证信息(AAI)除了从叶子节点到根节点的所有兄弟节点的信息(该信息包含哈希值和相对序号信息)之外,还有该兄弟节点是从叶子节点到根节点这条路径上节点的左右相对关系。参见图5所示,示出了一个带相对序号的DMHT的例子。从图中可以得到第5个数据块的辅助认证信息(AAI)Ω5=<(h(x6),1,r),(h(x7),1,r),(hf,2,r),(ha,4,l)>,l表示路径的左兄弟节点,而r表示右兄弟节点。
而在本发明实施例中签名使用的是BLS短签名方案,BLS签名是数字签名的一种,BLS短签名方案的安全性是基于一种特殊椭圆曲线CDH(Computational Diffie-Hellman)假定的,对数据文件进行签名后采用双线性映射的性质来验证。与传统的DSA签名方案相比,签名长度缩短了一半,而安全级别相同。由于其签名长度较短,在本发明实施例完整性验证过程中,应用于对文件分块后的签名可以大大减小存储空间。
BLS签名的双线性映射定义为:令G、GT是两个p阶的循环群,其中p是素数,g是G的生成元,双线性映射e:G×G→GT,映射e具备以下特点:(1)双映射性:对任意的h1,h2∈G和a,b∈Zp,,有(2)非退化性:e(g,g)≠1,g为G的一个生成元;(3)可计算性:存在有效的算法来计算e。BLS签名方案由三个功能组成:产生、签名和验证。产生算法是在大素数[0,l-1]区间内随机产生一个整数α,将α作为私钥,并且由私钥的持有者生成相应的公钥。签名是计算信息m的哈希值,即h=H(m),利用私钥计算签名,然后输出签名信息σ=hα。验证则为计算好了签名σ和公钥gα,验证e(σ,g)=e(H(m),gα)。本发明实施例中根据签名判断数据是否完整均采用此种签名验证方法。
本发明实施例中对第一数据文件进行完整性验证过程如图6所示,具体的执行如下:
准备阶段:首先用户运行KeyGen算法:KeyGen(1k)→(pk,sk),输入给定安全参数k,产生公钥pk和私钥sk,公钥公开,私钥只有用户自己知道。具体的,用户选择一个随机数α←Zp和r个随机的元素uj←G,j∈J,J={1,2,3,…,r},i对应于数据块的位置编号,j为块内的基本块编号。计算v←gα和wj←(uj)α,产生的私钥sk=(α)和公钥pk=(g,v,{wj},{uj}j∈J)。给定文件F={m1,m2,…,mn},mi={mi,1,mi,2,…,mi,r}。令文件F的标签t=name||n||v||g||u1||…||uj||w1||…||wj||SSigsk(name||v||g||u1||u2||…||uj||w1||…||wj)。
然后用户运行SigGen算法:SigGen(sk,F)→(Φ,sigsk(H(R))),输入私钥sk和数据文件F,输出对文件分块后的签名集合Φ以及默克尔哈希树根签名元数据sigsk(H(R))。具体的,根据公式(1):来对每个子块mi计算签名σi,用Φ={σi},1≤i≤n表示签名集合。用户构造DMHT产生根值R,并用私钥α对根值R签名:sigsk(H(R))←(H(R))α。用户将{F,t,Φ,sigsk(H(R))}发送给服务器,从服务器那得到证明proof后,删除本地存储的信息{F,Φ,sigsk(H(R))}。
在不可信环境下,用户可能是不诚实的,其主要行为是用户提供错误的或文件内容跟签名不匹配的参数,当服务器接受并存储了用户的数据文件,用户便向服务器索取文件丢失的赔偿。为了解决这个不安全的因素,本发明实施例中增加了服务器验证用户提交数据文件、元数据和签名正确性的过程。当服务器收到用户的{F,t,Φ,sigsk(H(R))}信息后,服务器运行VerifyUser算法:VerifyUser(Φ,F)→(fileproof),输入签名集合和第一数据文件,输出文件真实性证明。具体的,对每个子块,服务器验证等式(2):如果验证失败,服务器拒绝用户的数据,否则,CSP返回文件证明file proof给用户,以确认用户提交数据的真实合法性。验证证明发出后,一旦文件丢失或损坏而没有通过完整性验证过程,用户此时就可以向存储服务提供商要求赔偿。也即存储服务器根据等式(2)判断第一数据文件是否完整,并向用户终端发送第一数据文件是否完整的第一判断结果,如果第一判断结果为是,即接收到file proof,则用户终端可以删除本地的第一数据文件以及第一签名。
验证阶段:在用户质询之前,TPA首先验证标签t,如果验证失败,拒绝质询,发出FALSE,如果验证成功,则TPA可恢复出{uj}j∈J。接下来TPA(验证者)产生质询“chal”信息,它在集合[1,n]中随机挑选子集I={s1,s2,…,sc},假设s1≤…≤sc。对于每个i∈I,TPA选择一个随机的元素质询信息“chal”指定了验证阶段将要被验证的数据块的位置。验证者发送质询信息“chal”{(i,νi)}i∈I给存储服务器。
存储服务器收到质询信息chal{(i,νi)}i∈I后,存储服务器运行GenProof算法:GenProof (F, Φ,chal)→(proof),输入文件F、签名集合Φ和质询值chal,输出质询块的聚集结果和数据证明。具体的,服务器选择一个随机元素o←Zp,计算Qj=(wj)o=(uj α)o∈G,j∈J={1,2,3,…,r}。μj'表示质询块的线性组合,μj'=Σiνimij,j∈J, i∈I。为了使μj'不被验证方捕捉,服务器将元素o用来对其进行掩饰,服务器计算μj=μ′j+oh(Qj)∈Zp。与此同时,服务器计算聚集签名服务器提供DMHT的少量辅助信息{Ωi}i∈I给验证方,然后将{σ,{μj}j∈J,{H(mi),Ωi}i∈I,sigsk(H(R))}作为存储正确性回应证明(即数据完整性证明信息)发送给TPA。
收到服务器的数据完整性证明信息后,TPA运行VerifyProof算法:VerifyProof
(pk, proof,chal)→(TRUE,FALSE),根据收到的数据完整性证明信息,验证质询块的完整
性,输出质询块验证结果,如果通过验证,则输出TRUE,否则输出FALSE。具体的,根据生成DMHT的根值R,通过等式来验证根值R的正确性。如
果验证失败,返回FALSE,否则验证等式(3):
等式验证通过,可以得到数据是完整的结论。
验证方程等式(3)的正确性详细说明如下:
如果用户不介意将自己的数据泄漏给第三方验证方,可使完整性验证过程不具有对用户数据隐私保护的特性,在发明实施例中将隐私保护作为一个可供用户选择的服务特性。验证者在GenProof算法中服务器仅仅将{σ,{μj'}j∈J,{H(mi),Ωi}i∈I,sigsk(H(R))}作为完整性证明回应发送给验证方TPA,然后在VerifyProof算法中验证等式(4):的正确性即可。
二、第一数据文件的动态更新
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
在利用动态认证结构(如默克尔哈希树)对上传至存储服务器的第一数据文件进行动态更新操作后,判断服务器的动态更新操作是否成功,如果是,根据动态更新操作生成第一日志记录。
本发明实施例中的第一数据文件在以动态默克尔哈希树作为存储结构的基础上可以高效的、明确的处理完全动态数据更新操作。支持数据动态操作,即在远程云存储环境中,不取回整个数据文件的基础上,远程的支持用户对数据文件的动态更新操作。动态更新操作包括数据插入、数据删除以及数据更新。
其中,数据插入假设用户想在第i个数据块mi后插入m*。数据动态更新操作的时序图如图7所示。首先,将m*分成r个基本块{m* 1,m* 2,…,m* r},并根据公式(1):产生m*的签名σ*。然后,用户构造一个更新请求信息“update=(I,i,m*,σ*)”,其中I表示插入操作请求,将更新请求发送给服务器。
当收到更新请求后,服务器运行ExecUpdate算法:ExecUpdate(F,Φ,update)→(F’,Φ’,Pupdate),输入更新请求,输出更新后的文件F’,更新后的签名集合Φ’和更新证明Pupdate。具体步骤是:(1)存储m*,σ*和叶子节点h(H(m*));(2)在DMHT中利用叶子节点搜索算法查找h(H(mi)),存储Ωi和插入叶子节点h(H(m*)),在修改前的DMHT上添加一个内部节点Q,其中hq=h(h(H(mi)||1)||h(H(m*))||1),节点Q的相对序号nq=2,并修改从这个内部节点到根节点这条路径上所有节点的所有信息,也就是说将相对序号加1和重新计算哈希值;(3)根据修改后的DMHT,产生新根值R’。最后,服务器对客户的操作进行相应的回应,将Pupdate={Ωi,H(mi),sigsk(H(R)),R’}发回用户,其中Ωi是DMHT更新前第i个节点辅助认证信息。
当用户终端从服务器端收到插入操作的证明后,用户终端首先利用叶子节点验证算法验证该数据块是否是用户想要插入的数据块。然后使用{Ωi,H(mi)}生成根值R,通过验证等式e(sigsk(H(R)),g)=e(H(R),v)来验证辅助认证信息AAI和根值R的真实性,如果等式验证不通过,输出FALSE,否则用户通过进一步使用{Ωi,H(mi),H(m*)}计算新根值,来验证服务器是否如实的执行了数据插入操作,计算出来的新根值与R’相比较,如果不相等,输出FALSE,否则,输出TRUE。然后,用户对新根值签名sigsk(H(R’)),将签名后的值发送给服务器。最后,用户终端执行完整性验证协议,通过了完整性验证协议后,也即存储服务器的动态更新操作成功,就可以从本地删除sigsk(H(R’)),Pupdate和m*,同时,可以根据动态更新操作生成日志记录。参见图8所示,示出了数据插入的一个实例,在图5的基础上,想要在x5后插入x*,其中被修改数据部分加粗并打上了下划线,黑实心圆表示被修改的节点,黑圆圈表示修改节点的辅助信息Ωi。
上述提到的叶子节点搜索算法:输入为DMHT第i个叶子节点;输出为TRUE或FALSE,辅助认证信息(AAI)Ωi;算法描述为如果i>n(n是根节点的相对序号),查找溢出,输出FALSE。否则令k=i。(1)从当前的根节点开始,得到节点的左孩子节点(ha,na)和右孩子节点(hb,nb)。若k≤na,则第k个叶子节点在左子树上,将当前根节点指针指向左孩子节点,重复步骤(1);否则,第k个叶子节点在右子树上,令k=k-na,将当前根节点指针指向右孩子节点,重复步骤(1)。(2)当k=1或者指针指向了叶子节点,返回TRUE。在搜索第i个叶子节点的过程中,服务器可以记录当前节点的兄弟节点及其左右相对关系作为第i个叶子节点的辅助认证信息(AAI)Ωi。
叶子节点验证算法:输入为第i个叶子节点,辅助认证信息(AAI)Ωi;输出为TRUE或FALSE;算法描述为在辅助认证信息(AAI)Ωi中,对第i个叶子节点到根节点的路径中,所有的左兄弟节点的叶子节点个数(即其相对序号)之和,记为k。如果k=i-1,则返回TRUE,确认该节点就是需要的叶子节点i。否则返回FALSE。
数据删除操作与数据插入的操作相反。假设用户想要删除第i个数据块mi。用户终端构造一个更新请求信息“update=(D,i)”,其中D表示删除操作请求,将更新请求发送给存储服务器。存储服务器收到更新请求,将删除数据块mi,在DMHT中将该节点的父节点修改成该节点的兄弟节点,删除该节点及其兄弟节点以及与之关联的数据块签名,更新签名集合。然后重新计算该结点的兄弟结点到树根路径上结点的哈希值,并更新根R'。然后对操作结果进行验证,验证过程与插入操作相同。
数据更新操作仅仅是对数据进行替换,树结构不变,叶结点到根结点路径上哈希值更新、签名更新和数据块完整性验证等与插入操作时的方法相同。
三、第二数据文件的完整性验证
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
将每份第二数据文件分别分为多个子块,计算每份第二数据文件中每个子块的第二签名,第二签名上传至服务器,以使服务器判断第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成第二数据文件的数据完整性证明信息并发送给验证终端;
接收服务器发送的第二数据文件是否完整的第二判断结果,如果第二判断结果为是,则删除本地的第二数据文件以及第二签名,如果第二判断结果为否,则重新上传第二数据文件。
本发明实施例中新第二数据文件可以保持可验证特性,完整性验证使用静态方案的验证方法,减小管理代价、验证时的通信代价。在得到了K个不同的第二数据文件Fk,k∈{1,2,3,…,K}后,为了达到高效验证的目标,存储服务器可以同时处理来自K个不同备份的验证请求,这需要将多个签名聚集成一个单独的签名一次性的验证。本发明实施例利用双线性签名聚集属性,在基于BLS方案中,可以信息聚集签名,从而大大降低了通信代价,同时提供高效的方式验证的所有信息的真实性,使用静态方案的验证方法的操作如下:
多备份数据文件(第二数据文件)为其
中k∈{1,2,3,…,K},k为备份副本编号。对于每份备份数据Fk,和第一数据文件一样进行分
块,在SigGen阶段根据公式(5):计算签名其中ωi=f(i),f为随
机函数,由用户选定,并告知存储服务方和第三方验证者。存储服务器根据签名判断第
二数据文件是否完整,以及接收到验证终端发送的质询信息时生成第二数据文件的数据完
整性证明信息并发送给验证终端的过程与第一数据文件类似。
在本发明的一些实施例中,在质询阶段,验证方发送请求“chal”给证明方
(服务器),可以同时批处理验证原数据和K个备份副本的完整性,以提高验证速度。在
GenProof阶段,当收到质询“chal”,对原数据和每个备份副本Fk(k∈{0,1,…,K}),其中F0代
表原数据,服务器随机选择o(k)∈Zp,并计算等式(6):服务器根据
公式(7):和公式(8):计算和σ,j=0,1,2,3,…,
r,i∈I。然后服务器发送给
TPA作为数据完整性证明信息。在VerifyProof阶段,验证方(用户或TPA)直接验证等式(9):是否成立以完成数据完整性验
证。
四、日志记录的生成与追加
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
计算每份第二日志记录的第三签名,将第三签名上传至服务器,以使服务器根据第二日志记录以及第三签名判断第二日志记录是否完整;
接收存储服务器发送的第二日志记录是否完整的第三判断结果,如果第三判断结果为是,则删除本地的第二日志记录以及第三签名,如果第三判断结果为否,则重新上传第二日志记录。
对于第二日志记录的K个副本,根据公式(10):计算加密后的第二日志记录的签名。i对应于数据块的位置编号,j为块内的基本块编号。此时日志记录的前三项内容可以组合作为当前块内的第0个基本块参与签名计算。向存储服务器上传日志记录和签名后,根据签名对追加的第二日志记录进行静态数据完整性验证,也即产生第三判断结果,验证通过则说明用户追加日志记录数据块和签名成功。用户端接收存储服务器发送的第二日志记录是否完整的第三判断结果,第二日志记录完整即通过了完整性验证协议后,就可以从本地删除第二日志记录以及第三签名。另外,可以利用第一数据文件对应的动态默克尔哈希树管理其他备份文件的长度信息,确认包括原文件在内的所有第二数据文件长度,他们分别用L0,L1,L2,...LK表示。更新操作每次也更新文件长度信息,并将原文件的根哈希值更新为:R'=h(R||L0||L1||L2||...||LK)。
五、数据恢复
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
当第一数据文件损坏时,从服务器下载第二数据文件以及第二日志记录;
使用与所述第一加密算法或第二加密算法对应的解密算法(对称加密法以及流加密法对应的加密密钥)对第二数据文件以及第二日志记录进行解密,恢复出第一数据文件以及第一日志记录;
根据第一日志记录中的日期按顺序读取每条第一日志记录,根据第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对第一数据文件进行第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
当云端的第一数据文件发生服务方不可恢复的损坏或丢失时,这时可以利用任何一份第二数据文件,将第一数据文件恢复到最新状态,保证数据的安全性。
恢复操作流程如下:验证云端备份数据的完整性。对通过完整性验证的第二数据文件以及对应的第二日志记录全部下载,根据保存的文件对称加密密钥Key和流加密密钥,将第二数据文件与第二日志记录进行两次解密,恢复为原始数据文件和日志记录。按顺序读取每条日志记录,按顺序执行完所有日志记录所记录的动态操作后,则原始数据恢复到最新状态。
如上所述,将最新数据,执行数据完整性验证的准备阶段后,上传到服务器,完成数据恢复。数据恢复后,由于服务器上的备份数据没有减少,数据的安全性可以保证。
备份数据的更新过程类似数据恢复过程,按日志将数据恢复到最新状态后,找到文件对称加密密钥Key和对应流加密密钥,加密处理后上传到服务器端后,删除原始备份数据即可。
这样,本发明实施例通过对第一数据文件加密得到多个不同的第二数据文件,将第一数据文件与第二数据文件上传至存储服务器;第一数据文件直接利用动态认证结构例如动态默克尔哈希树进行动态更新操作,第二数据文件基于日志记录的方式记录动态更新,第二数据文件与日志记录相结合,形成更新后的第二数据文件,使存储服务器中的各个备份数据均支持数据的动态更新,当第一数据文件损坏的情况下也可以利用第二数据文件及日志记录进行恢复。同时,本发明实施例中第一数据文件以及第二数据文件均可以进行数据完整性验证,从而实现了多备份数据支持动态更新,且可证明安全,保障了用户数据的安全强度。
本发明实现多备份数据动态更新的方法实施例二将从实现多备份数据动态更新的装置角度进行描述,该实现多备份数据动态更新的装置具体可以集成在云存储服务器中。参见图9所示,本发明实施例中实现多备份数据动态更新的方法实施例二可以包括以下步骤:
步骤901:存储服务器接收用户终端上传的第一数据文件以及第二数据文件,第二数据文件为采用第一加密算法对第一数据文件进行加密后生成的,第一加密算法可以为对称加密法以及流加密法。
步骤902:根据第一数据文件创建动态认证结构(如默克尔哈希树)。
步骤903:接收用户终端发送的动态更新请求后,利用动态默克尔哈希树对第一数据文件进行动态更新操作,以使用户终端根据动态更新操作生成第一日志记录,第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容。
步骤904:接收用户终端上传的第二日志记录,第二日志记录为第二日志记录为采用第二加密算法对第一日志记录进行加密后生成的,第一加密算法与第二加密算法相同,保存第二数据文件和对应的第二日志记录组成更新后的第二数据文件。第一加密算法也可以为对称加密法以及流加密法。
在本发明的一些实施例中,动态认证结构可以为动态默克尔哈希树,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
接收用户终端上传的动态默克尔哈希树的根节点签名以及第一数据文件中每个子块的第一签名;
根据第一数据文件以及第一签名,判断第一数据文件是否完整,并将第一数据文件是否完整的第一判断结果发送给用户终端;
在接收到验证终端发送的质询信息时,根据质询信息、第一数据文件、第一签名以及根节点签名生成第一数据文件的数据完整性证明信息,并发送给验证终端,以使验证终端根据第一数据文件的数据完整性证明信息完成对第一数据文件的数据完整性验证。
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
接收第二数据文件中每个子块的第二签名;
根据第二数据文件以及第二签名,判断第二数据文件是否完整,并将第二数据文件是否完整的第二判断结果发送给用户终端;
在接收到验证终端发送的质询信息时,根据质询信息、第二数据文件以及第二签名生成第二数据文件的数据完整性证明信息,并发送给验证终端,以使验证终端根据第二数据文件的数据完整性证明信息完成对第二数据文件的数据完整性验证。
在本发明的一些实施例中,本发明实施例提供的实现多备份数据动态更新的方法实施例还可以包括:
接收每份第二日志记录的第三签名;
根据第二日志记录以及第三签名,判断第二日志记录是否完整,并将第二日志记录是否完整的第三判断结果发送给用户终端。
这样,本发明实施例通过对第一数据文件加密得到多个不同的第二数据文件,将第一数据文件与第二数据文件上传至存储服务器;第一数据文件直接利用动态默克尔哈希树进行动态更新操作,第二数据文件基于日志记录的方式记录动态更新,第二数据文件与日志记录相结合,形成更新后的第二数据文件,使存储服务器中的各个备份数据均支持数据的动态更新,当第一数据文件损坏的情况下也可以利用第二数据文件及日志记录进行恢复。同时,本发明实施例中第一数据文件以及第二数据文件均可以进行数据完整性验证,从而实现了多备份数据支持动态更新,且可证明安全,保障了用户数据的安全强度。
相应的,参见图10所示,本发明实施例还提供一种实现多备份数据动态更新的装置实施例一,该装置可以包括:
备份数据生成单元1001,用于采用第一加密算法对第一数据文件进行加密,生成第一数据文件对应的多份不同的第二数据文件。
第一上传单元1002,用于将第一数据文件以及多份第二数据文件上传至多个不同的服务器。
日志生成单元1003,用于在利用动态认证结构对上传至服务器的第一数据文件进行动态更新操作后,根据动态更新操作生成第一日志记录,第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容。
备份日志生成单元1004,用于采用第二加密算法对第一日志记录进行加密,生成对应于第二数据文件的多份不同的第二日志记录,第一加密算法与第二加密算法相同。
第二上传单元1005,用于将第二日志记录上传至对应的服务器,以使第二数据文件和对应的第二日志记录组成更新后的第二数据文件。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例一还可以包括:
判断单元,在利用动态认证结构对上传至服务器的第一数据文件进行动态更新操作后,判断服务器的动态更新操作是否成功,如果是,根据动态更新操作生成第一日志记录。
在本发明的一些实施例中,动态认证结构可以为动态默克尔哈希树,本发明实施例的一种实现多备份数据动态更新的装置实施例一还可以包括:
第一签名计算单元,用于将第一数据文件分为多个子块并构建动态默克尔哈希树,计算动态默克尔哈希树的根节点签名,计算第一数据文件中每个子块的第一签名,将根节点签名、第一签名上传至服务器,以使服务器判断第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成第一数据文件的数据完整性证明信息并发送给验证终端完成数据完整性验证;
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例一还可以包括:
第二签名计算单元,用于将每份第二数据文件分别分为多个子块,计算每份第二数据文件中每个子块的第二签名,第二签名上传至服务器,以使服务器判断第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成第二数据文件的数据完整性证明信息并发送给验证终端。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例一还可以包括:
第三签名计算单元,用于计算每份第二日志记录的第三签名,将第三签名上传至服务器,以使服务器根据第二日志记录以及第三签名判断第二日志记录是否完整。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例一还可以包括:
第一删除单元,用于接收服务器发送的第一数据文件是否完整的第一判断结果,如果第一判断结果为是,则删除本地的第一数据文件以及第一签名;
第二删除单元,用于接收服务器发送的第二数据文件是否完整的第二判断结果,如果第二判断结果为是,则删除本地的第二数据文件以及第二签名;
第三删除单元,用于接收服务器发送的第二日志记录是否完整的第三判断结果,如果第三判断结果为是,则删除本地的第二日志记录以及第三签名。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例一还可以包括:
下载单元,用于当第一数据文件损坏时,从服务器下载第二数据文件以及第二日志记录;
解密单元,用于使用与第一加密算法或第二加密算法对应的解密算法对第二数据文件以及第二日志记录进行解密,恢复出第一数据文件以及第一日志记录;
恢复单元,用于根据第一日志记录中的日期按顺序读取每条第一日志记录,根据第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对第一数据文件进行第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
在本发明的一些实施例中,第一加密算法包括对称加密法以及流加密算法;第二加密算法包括对称加密法以及流加密算法。
参见图11所示,本发明实施例还提供一种实现多备份数据动态更新的装置实施例二,该装置包括:
第一接收单元1101,用于接收用户终端上传的第一数据文件以及第二数据文件,第二数据文件为采用第一加密算法对第一数据文件进行加密后生成的。
创建单元1102,用于根据第一数据文件创建动态认证结构。
动态更新单元1103,用于接收用户终端发送的动态更新请求后,利用动态认证结构对第一数据文件进行动态更新操作,以使用户终端根据动态更新操作生成第一日志记录,第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容。
第二接收单元1104,用于接收用户终端上传的第二日志记录,第二日志记录为采用第二加密算法对第一日志记录进行加密后生成的,第一加密算法与第二加密算法相同,保存第二数据文件和对应的第二日志记录组成更新后的第二数据文件。
在本发明的一些实施例中,动态认证结构可以为动态默克尔哈希树,本发明实施例的一种实现多备份数据动态更新的装置实施例二还可以包括:
第三接收单元,用于接收用户终端上传的动态默克尔哈希树的根节点签名以及所述第一数据文件中每个子块的第一签名;
第一验证单元,用于根据第一数据文件以及第一签名,判断第一数据文件是否完整,并将第一数据文件是否完整的第一判断结果发送给用户终端;
第二验证单元,用于在接收到验证终端发送的质询信息时,根据质询信息、第一数据文件、第一签名以及根节点签名生成第一数据文件的数据完整性证明信息,并发送给验证终端,以使验证终端根据第一数据文件的数据完整性证明信息完成对第一数据文件的数据完整性验证。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例二还可以包括:
第四接收单元,用于接收第二数据文件中每个子块的第二签名;
第三验证单元,用于根据第二数据文件以及第二签名,判断第二数据文件是否完整,并将第二数据文件是否完整的第二判断结果发送给用户终端;
第四验证单元,用于在接收到验证终端发送的质询信息时,根据质询信息、第二数据文件以及第二签名生成第二数据文件的数据完整性证明信息,并发送给验证终端,以使验证终端根据第二数据文件的数据完整性证明信息完成对第二数据文件的数据完整性验证。
在本发明的一些实施例中,本发明实施例提供的一种实现多备份数据动态更新的装置实施例二还可以包括:
第五接收单元,用于接收每份第二日志记录的第三签名;
第五验证单元,用于根据第二日志记录以及第三签名,判断第二日志记录是否完整,并将第二日志记录是否完整的第三判断结果发送给用户终端。
这样,本发明实施例通过对第一数据文件加密得到多个不同的第二数据文件,将第一数据文件与第二数据文件上传至存储服务器;第一数据文件直接利用动态默克尔哈希树进行动态更新操作,第二数据文件基于日志记录的方式记录动态更新,第二数据文件与日志记录相结合,形成更新后的第二数据文件,使存储服务器中的各个备份数据均支持数据的动态更新,当第一数据文件损坏的情况下也可以利用第二数据文件及日志记录进行恢复。同时,本发明实施例中第一数据文件以及第二数据文件均可以进行数据完整性验证,从而实现了多备份数据支持动态更新,且可证明安全,保障了用户数据的安全强度。
参见图12所示,本发明实施例中还提供一种实现多备份数据动态更新的系统实施例,该系统包括:
用户终端1201、存储服务器1202以及验证终端1203;
用户终端可以是本发明实施例中实现多备份数据动态更新的装置实施例一;
存储服务器可以是本发明实施例中实现多备份数据动态更新的装置实施例二;
验证终端,用于向存储服务器发送质询信息,以使存储服务器生成第一数据文件和/或第二数据文件的数据完整性证明;接收第一数据文件和/或第二数据文件的数据完整性证明,完成对第一数据文件和/或第二数据文件的数据完整性验证。
这样,本发明实施例通过对第一数据文件加密得到多个不同的第二数据文件,将第一数据文件与第二数据文件上传至存储服务器;第一数据文件直接利用动态默克尔哈希树进行动态更新操作,第二数据文件基于日志记录的方式记录动态更新,第二数据文件与日志记录相结合,形成更新后的第二数据文件,使存储服务器中的各个备份数据均支持数据的动态更新,当第一数据文件损坏的情况下也可以利用第二数据文件及日志记录进行恢复。同时,本发明实施例中第一数据文件以及第二数据文件均可以进行数据完整性验证,从而实现了多备份数据支持动态更新,且可证明安全,保障了用户数据的安全强度。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (29)
1.一种实现多备份数据动态更新的方法,其特征在于,所述方法包括:
采用第一加密算法对第一数据文件进行加密,生成所述第一数据文件对应的多份不同的第二数据文件,将所述第一数据文件以及多份第二数据文件上传至多个不同的服务器;
在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
采用第二加密算法对所述第一日志记录进行加密,生成对应于所述第二数据文件的多份不同的第二日志记录,所述第一加密算法与所述第二加密算法相同;将所述第二日志记录上传至对应的服务器,以使所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,判断所述服务器的动态更新操作是否成功,如果是,根据所述动态更新操作生成第一日志记录。
3.根据权利要求1或2所述的方法,其特征在于,所述动态认证结构为动态默克尔哈希树,所述方法还包括:
将所述第一数据文件分为多个子块并构建动态默克尔哈希树,计算所述动态默克尔哈希树的根节点签名,计算所述第一数据文件中每个子块的第一签名,将所述根节点签名、所述第一签名上传至所述服务器,以使所述服务器判断所述第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第一数据文件的数据完整性证明信息并发送给所述验证终端完成数据完整性验证。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将每份所述第二数据文件分别分为多个子块,计算每份所述第二数据文件中每个子块的第二签名,所述第二签名上传至所述服务器,以使所述服务器判断所述第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第二数据文件的数据完整性证明信息并发送给所述验证终端。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算每份所述第二日志记录的第三签名,将所述第三签名上传至所述服务器,以使所述服务器根据所述第二日志记录以及所述第三签名判断所述第二日志记录是否完整。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的所述第一数据文件是否完整的第一判断结果,如果所述第一判断结果为是,则删除本地的所述第一数据文件以及所述第一签名。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:接收所述服务器发送的所述第二数据文件是否完整的第二判断结果,如果所述第二判断结果为是,则删除本地的所述第二数据文件以及所述第二签名。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的所述第二日志记录是否完整的第三判断结果,如果所述第三判断结果为是,则删除本地的所述第二日志记录以及所述第三签名。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一数据文件损坏时,从所述服务器下载所述第二数据文件以及所述第二日志记录;
使用所述与所述第一加密算法或第二加密算法对应的解密算法对所述第二数据文件以及所述第二日志记录进行解密,恢复出所述第一数据文件以及所述第一日志记录;
根据所述第一日志记录中的日期按顺序读取每条第一日志记录,根据所述第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对所述第一数据文件进行所述第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
10.根据权利要求1或9所述的方法,其特征在于,所述第一加密算法包括对称加密法以及流加密算法;所述第二加密算法包括对称加密法以及流加密算法。
11.一种实现多备份数据动态更新的方法,其特征在于,所述方法包括:
接收用户终端上传的第一数据文件以及第二数据文件,所述第二数据文件为采用第一加密算法对所述第一数据文件进行加密后生成的;
根据所述第一数据文件创建动态认证结构;
接收所述用户终端发送的动态更新请求后,利用所述动态认证结构对所述第一数据文件进行动态更新操作,以使所述用户终端根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
接收用户终端上传的第二日志记录,所述第二日志记录为采用第二加密算法对所述第一日志记录进行加密后生成的,所述第一加密算法与所述第二加密算法相同,保存所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
12.根据权利要求11所述的方法,其特征在于,所述动态认证结构为动态默克尔哈希树,所述方法还包括:
接收用户终端上传的动态默克尔哈希树的根节点签名以及所述第一数据文件中每个子块的第一签名;
根据所述第一数据文件以及所述第一签名,判断所述第一数据文件是否完整,并将所述第一数据文件是否完整的第一判断结果发送给所述用户终端;
在接收到验证终端发送的质询信息时,根据所述质询信息、所述第一数据文件、所述第一签名以及所述根节点签名生成所述第一数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第一数据文件的数据完整性证明信息完成对所述第一数据文件的数据完整性验证。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收所述第二数据文件中每个子块的第二签名;
根据所述第二数据文件以及所述第二签名,判断所述第二数据文件是否完整,并将所述第二数据文件是否完整的第二判断结果发送给所述用户终端;
在接收到验证终端发送的质询信息时,根据所述质询信息、所述第二数据文件以及所述第二签名生成所述第二数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第二数据文件的数据完整性证明信息完成对所述第二数据文件的数据完整性验证。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收所述第二日志记录的第三签名;
根据所述第二日志记录以及所述第三签名,判断所述第二日志记录是否完整,并将所述第二日志记录是否完整的第三判断结果发送给所述用户终端。
15.一种实现多备份数据动态更新的装置,其特征在于,所述装置包括:
备份数据生成单元,用于采用第一加密算法对第一数据文件进行加密,生成所述第一数据文件对应的多份不同的第二数据文件;
第一上传单元,用于将所述第一数据文件以及多份第二数据文件上传至多个不同的服务器;
日志生成单元,用于在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
备份日志生成单元,用于采用第二加密算法对所述第一日志记录进行加密,生成对应于所述第二数据文件的多份不同的第二日志记录,所述第一加密算法与所述第二加密算法相同;
第二上传单元,用于将所述第二日志记录上传至对应的服务器,以使所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
判断单元,在利用动态认证结构对上传至服务器的所述第一数据文件进行动态更新操作后,判断所述服务器的动态更新操作是否成功,如果是,根据所述动态更新操作生成第一日志记录。
17.根据权利要求15或16所述的装置,其特征在于,所述动态认证结构为动态默克尔哈希树,所述装置还包括:
第一签名计算单元,用于将所述第一数据文件分为多个子块并构建动态默克尔哈希树,计算所述动态默克尔哈希树的根节点签名,计算所述第一数据文件中每个子块的第一签名,将所述根节点签名、所述第一签名上传至所述服务器,以使所述服务器判断所述第一数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第一数据文件的数据完整性证明信息并发送给所述验证终端完成数据完整性验证。
18.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第二签名计算单元,用于将每份所述第二数据文件分别分为多个子块,计算每份所述第二数据文件中每个子块的第二签名,所述第二签名上传至所述服务器,以使所述服务器判断所述第二数据文件是否完整,并在接收到验证终端发送的质询信息时生成所述第二数据文件的数据完整性证明信息并发送给所述验证终端。
19.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第三签名计算单元,用于计算每份所述第二日志记录的第三签名,将所述第三签名上传至所述服务器,以使所述服务器根据所述第二日志记录以及所述第三签名判断所述第二日志记录是否完整。
20.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第一删除单元,用于接收所述服务器发送的所述第一数据文件是否完整的第一判断结果,如果所述第一判断结果为是,则删除本地的所述第一数据文件以及所述第一签名。
21.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第二删除单元,用于接收所述服务器发送的所述第二数据文件是否完整的第二判断结果,如果所述第二判断结果为是,则删除本地的所述第二数据文件以及所述第二签名。
22.根据权利要求19所述的装置,其特征在于,所述装置还包括:
第三删除单元,用于接收所述服务器发送的所述第二日志记录是否完整的第三判断结果,如果所述第三判断结果为是,则删除本地的所述第二日志记录以及所述第三签名。
23.根据权利要求15所述的装置,其特征在于,所述装置还包括:
下载单元,用于当所述第一数据文件损坏时,从所述服务器下载所述第二数据文件以及所述第二日志记录;
解密单元,用于使用所述与所述第一加密算法或第二加密算法对应的解密算法对所述第二数据文件以及所述第二日志记录进行解密,恢复出所述第一数据文件以及所述第一日志记录;
恢复单元,用于根据所述第一日志记录中的日期按顺序读取每条第一日志记录,根据所述第一日志记录中的操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容,对所述第一数据文件进行所述第一日志记录中记录的动态更新操作,恢复得到最新状态的第一数据文件。
24.根据权利要求15或23所述的装置,其特征在于,所述第一加密算法包括对称加密法以及流加密算法;所述第二加密算法包括对称加密法以及流加密算法。
25.一种实现多备份数据动态更新的装置,其特征在于,所述装置包括:
第一接收单元,用于接收用户终端上传的第一数据文件以及第二数据文件,所述第二数据文件为采用第一加密算法对所述第一数据文件进行加密后生成的;
创建单元,用于根据所述第一数据文件创建动态认证结构;
动态更新单元,用于接收所述用户终端发送的动态更新请求后,利用所述动态认证结构对所述第一数据文件进行动态更新操作,以使所述用户终端根据所述动态更新操作生成第一日志记录,所述第一日志记录包括日期、操作类型、操作针对的数据块序号以及操作针对的数据块更新后的内容;
第二接收单元,用于接收用户终端上传的第二日志记录,所述第二日志记录为采用第二加密算法对所述第一日志记录进行加密后生成的,所述第一加密算法与所述第二加密算法相同,保存所述第二数据文件和对应的所述第二日志记录组成更新后的第二数据文件。
26.根据权利要求25所述的装置,其特征在于,所述动态认证结构为动态默克尔哈希树,所述装置还包括:
第三接收单元,用于接收用户终端上传的动态默克尔哈希树的根节点签名以及所述第一数据文件中每个子块的第一签名;
第一验证单元,用于根据所述第一数据文件以及所述第一签名,判断所述第一数据文件是否完整,并将所述第一数据文件是否完整的第一判断结果发送给所述用户终端;
第二验证单元,用于在接收到验证终端发送的质询信息时,根据所述质询信息、所述第一数据文件、所述第一签名以及所述根节点签名生成所述第一数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第一数据文件的数据完整性证明信息完成对所述第一数据文件的数据完整性验证。
27.根据权利要求25所述的装置,其特征在于,所述装置还包括:
第四接收单元,用于接收所述第二数据文件中每个子块的第二签名;
第三验证单元,用于根据所述第二数据文件以及所述第二签名,判断所述第二数据文件是否完整,并将所述第二数据文件是否完整的第二判断结果发送给所述用户终端;
第四验证单元,用于在接收到验证终端发送的质询信息时,根据所述质询信息、所述第二数据文件以及所述第二签名生成所述第二数据文件的数据完整性证明信息,并发送给所述验证终端,以使所述验证终端根据所述第二数据文件的数据完整性证明信息完成对所述第二数据文件的数据完整性验证。
28.根据权利要求25所述的装置,其特征在于,所述装置还包括:
第五接收单元,用于接收所述第二日志记录的第三签名;
第五验证单元,用于根据所述第二日志记录以及所述第三签名,判断所述第二日志记录是否完整,并将所述第二日志记录是否完整的第三判断结果发送给所述用户终端。
29.一种实现多备份数据动态更新的系统,其特征在于,所述系统包括:
用户终端、服务器以及验证终端;
所述用户终端是权利要求15-24任一项所述的实现多备份数据动态更新的装置;
所述服务器是权利要求25-28任一项所述的实现多备份数据动态更新的装置;
所述验证终端,用于向所述服务器发送质询信息,以使所述服务器生成第一数据文件和/或第二数据文件的数据完整性证明;接收所述第一数据文件和/或第二数据文件的数据完整性证明,完成对所述第一数据文件和/或第二数据文件的数据完整性验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410138007.XA CN104978239B (zh) | 2014-04-08 | 2014-04-08 | 一种实现多备份数据动态更新的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410138007.XA CN104978239B (zh) | 2014-04-08 | 2014-04-08 | 一种实现多备份数据动态更新的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978239A CN104978239A (zh) | 2015-10-14 |
CN104978239B true CN104978239B (zh) | 2019-02-19 |
Family
ID=54274770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410138007.XA Active CN104978239B (zh) | 2014-04-08 | 2014-04-08 | 一种实现多备份数据动态更新的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104978239B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254373B (zh) * | 2016-08-31 | 2019-12-27 | 北京信安世纪科技股份有限公司 | 数字证书同步方法、数字签名服务器及数字证书同步系统 |
CN106502840B (zh) * | 2016-10-25 | 2019-07-16 | Oppo广东移动通信有限公司 | 一种数据备份方法、装置及系统 |
CN106708442B (zh) * | 2016-12-30 | 2020-02-14 | 硬石科技(武汉)有限公司 | 同时适应磁盘与固态硬盘读写特性的海量数据存储方法 |
CN107483580A (zh) * | 2017-08-16 | 2017-12-15 | 广东工业大学 | 一种云存储系统的动态数据记录方法及云存储系统 |
CN107528917B (zh) * | 2017-09-13 | 2020-12-15 | 马上消费金融股份有限公司 | 一种文件存储方法及装置 |
CN107682379A (zh) * | 2017-11-22 | 2018-02-09 | 南京汽车集团有限公司 | 基于同态加密的信息安全传输装置、传输方法及存储方法 |
CN108304729B (zh) * | 2017-12-08 | 2021-10-29 | 深圳市丰巢科技有限公司 | 一种客户端上报日志的方法以及电子设备 |
CN108255644B (zh) * | 2017-12-29 | 2021-12-31 | 北京元心科技有限公司 | 文件系统恢复方法及装置 |
CN108710547B (zh) * | 2018-05-10 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 一种数据备份方法、装置、终端及存储介质 |
CN109033878B (zh) * | 2018-08-08 | 2021-04-16 | 莆田学院 | 一种文件存储验证方法及存储介质 |
CN109885552B (zh) * | 2019-02-18 | 2023-08-18 | 天固信息安全系统(深圳)有限责任公司 | 分布式文件系统的元数据动态管理方法及分布式文件系统 |
CN110334175B (zh) * | 2019-04-29 | 2021-06-04 | 山东冰链网络信息科技有限公司 | 医疗文档的零知识证明方法、系统及存储介质 |
CN111444044B (zh) * | 2020-03-27 | 2024-08-30 | 苏州链原信息科技有限公司 | 用于数据冗余备份校验的方法、电子设备及计算机存储介质 |
CN113055431B (zh) * | 2021-01-13 | 2022-08-09 | 湖南天河国云科技有限公司 | 一种基于区块链的工业大数据文件高效上链方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975683A (zh) * | 2006-09-21 | 2007-06-06 | 上海交通大学 | 计算机网络数据恢复的方法 |
CN101051285A (zh) * | 2006-09-21 | 2007-10-10 | 上海交通大学 | 计算机网络数据备份中文件匹配的方法 |
CN101400060A (zh) * | 2007-06-15 | 2009-04-01 | 捷讯研究有限公司 | 用于提供安全数据备份的方法和设备 |
CN102012789A (zh) * | 2009-09-07 | 2011-04-13 | 云端容灾有限公司 | 集中管理式备份容灾系统 |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
CN102473127A (zh) * | 2009-07-16 | 2012-05-23 | 国际商业机器公司 | 在包含源和目标的分布式环境中进行重复数据删除的集成方法 |
CN103229165A (zh) * | 2010-08-12 | 2013-07-31 | 安全第一公司 | 用于数据的安全远程存储的系统和方法 |
-
2014
- 2014-04-08 CN CN201410138007.XA patent/CN104978239B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975683A (zh) * | 2006-09-21 | 2007-06-06 | 上海交通大学 | 计算机网络数据恢复的方法 |
CN101051285A (zh) * | 2006-09-21 | 2007-10-10 | 上海交通大学 | 计算机网络数据备份中文件匹配的方法 |
CN101400060A (zh) * | 2007-06-15 | 2009-04-01 | 捷讯研究有限公司 | 用于提供安全数据备份的方法和设备 |
CN102473127A (zh) * | 2009-07-16 | 2012-05-23 | 国际商业机器公司 | 在包含源和目标的分布式环境中进行重复数据删除的集成方法 |
CN102012789A (zh) * | 2009-09-07 | 2011-04-13 | 云端容灾有限公司 | 集中管理式备份容灾系统 |
CN103229165A (zh) * | 2010-08-12 | 2013-07-31 | 安全第一公司 | 用于数据的安全远程存储的系统和方法 |
CN102354292A (zh) * | 2011-09-21 | 2012-02-15 | 国家计算机网络与信息安全管理中心 | 主、备数据库记录一致性校验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104978239A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978239B (zh) | 一种实现多备份数据动态更新的方法、装置及系统 | |
Yuan et al. | Blockchain-based public auditing and secure deduplication with fair arbitration | |
Armknecht et al. | Transparent data deduplication in the cloud | |
US10050968B2 (en) | Method, apparatus, and system for access control of shared data | |
Huang et al. | SeShare: Secure cloud data sharing based on blockchain and public auditing | |
JP2022507796A (ja) | ブロックチェーン上にデータを格納するコンピュータにより実施されるシステム及び方法 | |
Hwang et al. | Achieving dynamic data guarantee and data confidentiality of public auditing in cloud storage service | |
Thangavel et al. | Enabling ternary hash tree based integrity verification for secure cloud data storage | |
Sookhak et al. | Towards dynamic remote data auditing in computational clouds | |
Dowsley et al. | A survey on design and implementation of protected searchable data in the cloud | |
Li et al. | A Blockchain‐Based Public Auditing Scheme for Cloud Storage Environment without Trusted Auditors | |
Luo et al. | An effective integrity verification scheme of cloud data based on BLS signature | |
CN110392038A (zh) | 一种多用户场景下可验证的多密钥可搜索加密方法 | |
CN108123934A (zh) | 一种面向移动端的数据完整性校验方法 | |
CN106790311A (zh) | 云服务器存储完整性检测方法及系统 | |
Zhao et al. | User stateless privacy-preserving TPA auditing scheme for cloud storage | |
Ma et al. | CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud | |
Gudeme et al. | Review of remote data integrity auditing schemes in cloud computing: taxonomy, analysis, and open issues | |
Yuan et al. | Identity-based public data integrity verification scheme in cloud storage system via blockchain | |
Gritti et al. | Dynamic provable data possession protocols with public verifiability and data privacy | |
Jiang et al. | Towards efficient fully randomized message-locked encryption | |
Xu et al. | A generic integrity verification algorithm of version files for cloud deduplication data storage | |
CN117235342A (zh) | 基于同态哈希函数和虚拟索引的动态云审计方法 | |
KR102501004B1 (ko) | 블록체인 기반의 데이터 관리 방법 및 장치 | |
CN105553661A (zh) | 密钥管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |