CN108664223B - 一种分布式存储方法、装置、计算机设备及存储介质 - Google Patents

一种分布式存储方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN108664223B
CN108664223B CN201810479464.3A CN201810479464A CN108664223B CN 108664223 B CN108664223 B CN 108664223B CN 201810479464 A CN201810479464 A CN 201810479464A CN 108664223 B CN108664223 B CN 108664223B
Authority
CN
China
Prior art keywords
data
data packet
storage
stored
fragments
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
CN201810479464.3A
Other languages
English (en)
Other versions
CN108664223A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810479464.3A priority Critical patent/CN108664223B/zh
Publication of CN108664223A publication Critical patent/CN108664223A/zh
Priority to PCT/CN2019/072337 priority patent/WO2019218717A1/zh
Priority to JP2020530626A priority patent/JP7044881B2/ja
Priority to US16/766,151 priority patent/US11842072B2/en
Application granted granted Critical
Publication of CN108664223B publication Critical patent/CN108664223B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明实施例公开了一种分布式存储方法、装置、计算机设备及存储介质所述方法包括:将待存储文件进行分组,形成多个数据分组;将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;将各数据分片在分布式存储节点中进行分布式存储;记录数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系;删除本地的待存储文件。本发明实施例的技术方案便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。

Description

一种分布式存储方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种分布式存储方法、装置、计算机设备及存储介质。
背景技术
现有技术中的云存储技术,一般是通过中心化的服务器来进行存储的。随着存储数据越来越多,对服务器存储空间和带宽资源的占用严重,云存储成本持续增高。并且,现有的云存储技术保存在云端的数据是不加密的,数据的私密性由大型的云存储服务商的信用来背书。
若采用分布式存储技术,由于数据的去中心化存储,导致了信用的去中心化,进而引发存储节点不稳定导致易丢失、易受到攻击而造成的数据存储不安全的问题。
发明内容
本发明实施例提供一种分布式存储方法、装置、计算机设备及存储介质,便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
第一方面,本发明实施例提供了一种分布式存储方法,包括:
将待存储文件进行分组,形成多个数据分组;
将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;
将各数据分片在分布式存储节点中进行分布式存储;
记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
删除本地的待存储文件。
第二方面,本发明实施例还提供了一种分布式存储装置,包括:
数据分组模块,用于将待存储文件进行分组,形成多个数据分组;
数据分片模块,用于将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;
数据存储模块,用于将各数据分片在分布式存储节点中进行分布式存储;
关系记录模块,用于记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
文件删除模块,用于删除本地的待存储文件。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的分布式存储方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的分布式存储方法。
本发明实施例通过将待存储文件分组形成多个数据分组,将全部数据分组形成至少三个数据分片,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中,再将各数据分片在分布式存储节点中进行分布式存储,从而实现了数据的分布式存储。分布式存储能够解决中心化存储的瓶颈问题,降低带宽成本和存储成本,且采用数据分组的多副本存储,避免由于部分存储节点的故障而导致数据整体的不可恢复。并且,由于每个存储节点中所存储的数据分片都没有包括所有的数据组分,所以不可能通过攻破一个存储节点就能恢复原始存储文件。上述技术方案解决了现有云存储技术产生的存储成本持续增高以及分布式存储技术引发的数据存储不安全的问题,便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
附图说明
图1是本发明实施例一提供的一种分布式存储方法的流程图;
图2a是本发明实施例二提供的一种分布式存储方法的流程图;
图2b是本发明实施例二中所涉及的原始梅克尔树的结构示意图;
图3a是本发明实施例三提供的一种分布式存储方法的流程图;
图3b是本发明实施例三提供的一种分布式存储方法中恢复存储文件方法的流程图;
图4是本发明实施例四提供的一种分布式存储方法的流程图;
图5是本发明实施例五提供的一种分布式存储装置的示意图;
图6为本发明实施例六提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种分布式存储方法的流程图,本实施例可适用于在分布式网络中存储文件的情况,该方法可以由分布式存储装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在任何需要发起数据存储的计算机设备中,如图1所示,该方法包括如下操作:
S110、将待存储文件进行分组,形成多个数据分组。
其中,待存储文件可以是文本、图片、视频、音频以及其他类型(如zip格式的压缩文件等)的可存储的文件,本发明实施例并不对待存储文件的类型进行限定。数据分组可以是待存储文件的其中一部分文件数据。
在本发明实施例中,在对待存储文件进行分布式存储之前,首先需要将待存储文件进行分组,将其划分为多个数据分组。需要说明的是,对待存储文件进行分组可以采用平均划分为N个数据分组的方式,使得每个数据分组包括相同数据量的文件数据。也可以采用随机划分的方式对待存储文件进行分组,使得每个数据分组包括不同数据量的文件数据。当然,本领域技术人员还可以根据实际需求,在本技术方案的技术背景下,建立其他的文件分组的方式,本发明实施例对此并不进行限制。
S120、将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。
在本发明实施例中,数据分片由部分数据分组组成,即每个数据分片并不需要包括所有的数据分组。其中,各个数据分片中所包括的数据分组的数量可以相同,也可以不同,例如,数据分片包括的数据分组数量可以是2个、5个、8个或者更多,本发明实施例并不对数据分片包括的数据分组的数量进行限定。
需要说明的是,为了提高数据存储的安全性,可以将全部的数据分组形成至少三个数据分片,并且能够保证每个数据分组都可以添加到至少两个数据分片中,即保证每个数据分组至少形成了两个存储副本。在分组成片的处理过程中,数据分组会进行冗余存储,对于M副本存储来说,一个数据分组会在M个数据分片中出现。副本的数量M大于或等于2,可以预先设定,也可以根据实际情况,例如存储文件的重要性等级、存储节点的稳定性情况进行动态调整。
S130、将各数据分片在分布式存储节点中进行分布式存储。
其中,分布式网络的存储节点是各自独立工作的节点,能够基于分布式存储算法进行调度安排。
在本发明实施例中,可以将根据数据分组形成的数据分片在分布式存储节点中进行分布式存储,而非直接存储待存储文件形成的数据分组。可选的,每个分布式存储节点可以只存储一个数据分片。
相应的,在将各数据分片在各分布式存储节点中进行分布式存储时,可以采用里德-所罗门冗余算法(Reed-Solomon Redundancy)。这种算法通过多项式运算/纠错码(Erasure Code)来纠正错误数据。因此,即使有部分节点掉线或者数据损坏,数据文件仍然可以被成功恢复和访问。示例性的,一份待存储文件被分割为多个数据分组,形成数据分片后散布且M副本冗余存储在N个分布式存储节点上(例如30个节点,3副本存储),每个分布式存储节点存储一部分数据分组。只要有N/M个正常分布式存储节点存活,就可以恢复原始的待存储文件。
在一个具体的例子中,可以采取3副本冗余存储。在使用30个分布式存储节点的情况下,只要同时有10个正常分布式存储节点存活,就可以提供可用的存储服务。假设每个分布式存储节点的可靠性仅为50%,则经过简单的计算,可以得出分布式网络的服务稳定性是f=1-(1-70%)21,即99.99995%。
S140、记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系。
其中,数据分片与数据分组的对应关系可以实现通过数据分组查找对应的数据分片,存储节点与所存储数据分片的对应关系可以实现通过所存储的数据分片查找对应的存储节点,以便从存储节点中下载对应的所存储数据分片。同时,两组对应关系还可以实现对数据分组的验证。
在本发明实施例中,根据数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,可以实现对数据分组和数据分片的隐私保护。
在一个具体的例子中,数据分片与数据分组的对应关系可以是:数据分片1包括编号分别为1、2和3对应的数据分组。存储节点与所存储数据分片的对应关系可以是存储节点5存储的编号为1的数据分片。
S150、删除本地的待存储文件。
相应的,在完成各数据分片的存储以及各对应关系的记录后,即可以删除本地的待存储文件,以防止待存储文件被不法攻击者所获取。
本发明实施例通过将待存储文件分组形成多个数据分组,将全部数据分组形成至少三个数据分片,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中,再将各数据分片在分布式存储节点中进行分布式存储,从而实现了数据的分布式存储。分布式存储能够解决中心化存储的瓶颈问题,降低带宽成本和存储成本,且采用数据分组的多副本存储,避免由于部分存储节点的故障而导致数据整体的不可恢复。并且,由于每个存储节点中所存储的数据分片都没有包括所有的数据组分,所以不可能通过攻破一个存储节点就能恢复原始存储文件。上述技术方案解决了现有云存储技术产生的存储成本持续增高以及分布式存储技术引发的数据存储不安全的问题,便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
实施例二
图2a是本发明实施例二提供的一种分布式存储方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了对数据分组进行加密的实现方式。同时,将记录数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系具体为:采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树;记录各分片梅克尔树与各所述数据分片所在存储节点的对应关系。相应的,如图2a所示,本实施例的方法可以包括:
S210、将待存储文件进行分组,形成多个数据分组。
S220、采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生;记录所述各数据分组的加密顺序。
在本发明实施例中,为了提高数据分组的安全性,对待存储文件进行分组后,需要对各数据分组进行加密。可选的,数据分组的加密方式可以是顺序加密。具体是:对各数据分组采用对称加密算法及分组加密机制进行加密,每次可以对128个比特的数据进行对称加密,加密的密钥最多可以达到256个比特。其中,第一个数据分组可以单独加密并产生对应的密文,后续在对其他的数据分组加密时,需要以前一个数据分组的密文作为一部分输入来对下一个数据分组的输出进行混淆。具体是采用前一个数据分组的密文来计算确定下一个数据分组的密钥。下一个数据分组的密钥可以包括一部分固定密钥,另一部分是通过密文计算确定的。由于传统CPU(中央处理器,Central Processing Unit/Processor)未针对分组加密算法进行过指令集优化,因此,对上述依赖前一个数据分组的顺序加密方式进行暴力破解需要付出巨大的攻击代价。此外,即使密钥泄漏也不会导致存储文件内容的泄漏,因为攻击者还需要获取全部数据分组并了解其加密顺序,才有可能破解出存储文件的内容。在采用密钥对各数据分组进行顺序加密后,为了便于后期恢复原始待存储文件,还需要对各数据分组的加密顺序进行记录。
在本发明的一个可选实施例中,记录各数据分组的加密顺序包括:按照数据分组的加密顺序,计算各数据分组的哈希值,形成原始梅克尔树(Merkle trees)。
其中,原始梅克尔树是依据数据分组计算所得各个哈希值为基础建立的梅克尔树。示例性的,图2b是本发明实施例二中所涉及的原始梅克尔树的结构示意图。如图2b所示,包括四个数据分组(DATA BLOCK),分别计算各数据分组的哈希值,按照从左至右的顺序形成原始梅克尔树的叶节点(Hash-LEAF),而后两两叶节点组合再计算哈希值作为上层分支(Hash-BRANCH),直至计算出原始梅克尔树的根节点(Hash-ROOT)。原始梅克尔树不仅记录了数据分组的哈希值,还以树状结构记录了数据分组的顺序。在该原始梅克尔树中,以第二个数据分组(DATA BLOCK2)为例,还记录了其存储于三个数据分片(DATA SHARD1、DATASHARD2和DATA SHARD3)中。
相应的,可以采用梅克尔树的方式对各数据分组的加密顺序进行记录,进而利用梅克尔树的优势提升分布式网络的运行效率和可扩展性,并可以作为后期恢复数据的校验凭据。
S230、将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。
S240、将各数据分片在分布式存储节点中进行分布式存储。
S250、采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树。
其中,分片梅克尔树是依据数据分片中所包括的数据分组计算所得各个哈希值为基础建立的梅克尔树。
在本发明实施例中,可以使用梅克尔树来进行记录每个数据分片的结构。由于在获取原始梅克尔树时为每个数据分组设置了对应的顺序编号ID和对应内容的hash值,所以每个数据分片可以依据其包括的数据分组的哈希值最终计算获取一个对应的分片梅克尔树。在分片梅克尔树中,数据分组的顺序不必与原始加密顺序相同,可以将数据分组任意的两两组合计算梅克尔树的哈希分支。
S260、记录各分片梅克尔树与各所述数据分片所在存储节点的对应关系。
相应的,在获取到各数据分片对应的分片梅克尔树后,可以将各分片梅克尔树与各数据分片所在的存储节点之间的对应关系进行记录。每个数据分片对应一个分片梅克尔树。
在本发明实施例中,通过对数据分组按顺序加密后依据各数据分组的哈希值形成原始梅克尔树,以及通过数据分片中所包括的数据分组的哈希值形成分片梅克尔树,能够实现对数据分组以及数据分片的数据查找和校验,提高存储文件的私密性和安全性,从而有效避免攻击者恢复原始文件。
S270、删除本地的待存储文件。
采用本实施例的技术方案,通过对数据分组进行顺序加密,极大增加了攻击存储节点来恢复原始存储文件的难度。能够有效提高分布式存储的私密性。
实施例三
图3a是本发明实施例三提供的一种分布式存储方法的流程图,图3b是本发明实施例三提供的一种分布式存储方法中恢复存储文件方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了根据各数据分组恢复形成存储文件的具体实现方式,相应的,如图3a所示,本发明实施例的方法可以包括:
S310、将待存储文件进行分组,形成多个数据分组。
S320、将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。
S330、将各数据分片在分布式存储节点中进行分布式存储。
S340、记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系。
S350、删除本地的待存储文件。
S360、在产生存储文件查询请求时,根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组。
其中,存储文件查询请求可以是用户发送的用于获取存储文件的请求,如下载存储文件或在线预览存储文件等。
在本发明实施例中,在恢复数据的过程中,可以根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,按照顺序依次获取存储文件对应的所有数据分组,最终将获取的各数据分组再按照顺序进行拼接和解密,从而得到完整的存储文件。
相应的,如图3b所示,恢复存储文件的过程具体可以包括:
S361、根据本地记录的各数据分组的加密顺序,确定第一个数据分组作为当前数据分组。
具体可以是根据本地记录的原始梅克尔树,查找第一个哈希叶节点对应的数据分组。
S362、根据数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,确定当前数据分组所在的存储节点,作为当前分组节点。
根据第一个数据分组的哈希值,可以在分片梅克尔树中查找对应的哈希值。进而再根据查找到的数据分片确定对应的存储节点。
S363、从所述当前分组节点下载数据分片,并从所述数据分片中提取当前数据分组。
具体的,考虑到每个数据分组在加密的过程中其密钥的产生都与前一个数据分组对应的密文相关。因此,在恢复数据的过程中,可以直接获取数据分组的加密顺序中的第一个数据分组,该数据分组即为第一个数据分组,然后再依据第一个数据分组依次获取其他的数据分组。
具体的,在确定第一个数据分组后,将第一个数据分组作为当前数据分组。根据数据分片与数据分组的对应关系查找当前数据分组所在的数据分片,同时根据存储节点与所存储数据分片的对应关系确定当前数据分组所在的存储节点作为当前分组节点,并从当前分组节点下载数据分片。因为当前分组节点存储的数据分片中包括了当前数据分组,因此可以依据当前分组节点对应存储的分片梅克尔树的哈希位置从数据分片中提取当前数据分组。
示例性的,参考图2b所示,虚线框内由各个哈希值组成的树即为原始梅克尔树。其中,原始梅克尔树的LEAF节点,即Hash 1-LEAF、Hash 2-LEAF、Hash 3-LEAF以及Hash 4-LEAF,为根据每个数据分组顺序形成的哈希值。BRANCH节点,即Hash 5-BRANCH和Hash 6-BRANCH,为根据各个LEAF节点按照Hash算法计算得出的哈希值,ROOT节点,即Hash 7-ROOT为原始梅克尔树的根节点,也是根据Hash 5-BRANCH和Hash 6-BRANCH对应的哈希值按照Hash算法计算得出。DATA BLOCK 1、DATA BLOCK 2、DATA BLOCK3和DATA BLOCK4为待存储文件形成的数据分组,DATA SHARD 1、DATA SHARD 2和DATA SHARD 3为根据数据分组形成的部分数据分片(即图2b中没有示出所有的数据分片),该部分数据分片中都包括第二个数据分组。相应的,第一个数据分组(DATA BLOCK 1)对应的哈希位置为Hash 1-LEAF节点,以此类推,所有的数据分组都在对应的哈希位置处存储其哈希值。
需要说明的是,图2b中没有示出分片梅克尔树的结构,分片梅克尔树是根据数据分片所包括的部分数据分组的哈希值形成的。因此,分片梅克尔树的LEAF节点则对应其包括的数据分组形成的哈希值,其他节点的形成过程则与原始梅克尔树相同。
相应的,如果将第二个数据分组(DATA BLOCK 2)作为当前数据分组,则在原始梅克尔树中当前数据分组对应的哈希位置为Hash 2-LEAF,其存储的哈希值(如H)可以用于分片梅克尔树存储的哈希值进行校验。确定当前数据分组后,可以依据所有的分片梅克尔树以及各分片梅克尔树与存储节点的对应关系确定当前数据分组所在的存储节点作为当前分组节点。需要说明的是,当前数据分组所在的存储节点可能会有多个,可以选择其中一个作为当前分组节点。在当前分组节点对应存储的分片梅克尔树中查找哈希值为H对应的数据分组即为所需的第二个数据分组。
由此可见,攻击者若想获取到原始文件,必须根据数据分片对应的分片梅克尔树的数据结构,来完成所有数据分片的下载,同时还需掌握所有数据分组的加密顺序,而这是很难办到的。因此,本发明实施例的分布式存储方法能够有效避免攻击者获取原始文件。
S364、计算提取出的当前数据分组的哈希值,与本地存储当前数据分组的哈希值,进行匹配,以验证所述当前数据分组的有效性。
在本发明实施例中,在获取到当前数据分组后,需要对当前数据分组的有效性进行校验。因为每个数据分组对应的哈希值并不同,所以可以采用数据分组的哈希值作为校验依据,将当前数据分组的哈希值与本地存储当前数据分组的哈希值进行匹配验证。如果一致,说明验证通过,则当前数据分组有效;否则,根据数据分片与数据分组的对应关系(如利用分片梅克尔树)重新选择另一个数据分片并提取当前数据分组,直到确定提取的当前数据分组是有效的。
S365、采用对应密钥对所述当前数据分组进行解密,采用当前数据分组的密文确定下一个数据分组的对应密钥。
S366、将下一个数据分组更新为当前数据分组。
相应的,在确定当数据分组的有效性以后,可以采用当前数据对应的密钥对其进行解密。由于第一个数据分组的密钥与其他的数据分组无关,因此可以直接用对应密钥对第一个数据分组进行解密。在解密时,可以对获取的数据分组采用加密时得到的128bit或256bit的密钥进行解密。在当前数据分组解密完成后,以当前数据分组的密文为依据确定下一个数据分组的对应密钥。可选的,可以将第一个数据分组的密文与设定数量的固定字符进行组合形成下一个数据分组的对应密钥。然后,再将下一个数据分组更新为当前数据分组,并按照上述下载和校验当前数据分组的方式对下一个数据分组进行处理。
S367、判断是否所有数据分组下载完成,若是,则执行S370;否则,执行S368。
在本发明实施例中,存储文件是由多个数据分组进行拼接恢复形成的。因此,必须获取到所有的数据分组后才能得到对应的存文件。如果确定所有数据分组下载完成,则直接根据各数据分组恢复形成存储文件;否则,需要执行S368以继续获取缺少的数据分组。
S368、判断当前数据分组是否存储于已下载数据分片,若是,则执行S364;否则,执行S362。
需要说明的是,由于每个数据分片均包括了部分数据分组,所以一个数据分片被下载时,除了包括当前数据分组,还包括其他的经哈希值校验处理或未经哈希值校验处理的数据分组。如果在之前已下载的数据分片中包括当前数据分组,则无需再根据数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系确定当前数据分组所在的存储节点并下载对应的数据分片,可以直接对当前数据分组进行哈希值校验,并依据上一个数据分组的密文所形成的密钥对当前数据分组进行解密。
示例性的,假设当前数据分组为第二个数据分组,在当前分组节点下载的数据分片包括的部分数据分组为:第一个数据分组、第二个数据分组、第四个数据分组以及第五个数据分组。其中,第一个数据分组已经哈希值校验处理,而第四个数据分组以及第五个数据分组还未经哈希值校验处理。则在将第四个数据分组或第五个数据分组作为当前数据分组进行处理时,无需再下载对应的数据分片,直接将第二个数据分组对应下载的数据分片中包括的第四个数据分组或第五个数据分组作为当前数据分组。
S370、根据各数据分组恢复形成存储文件。
本发明实施例通过根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组;根据各数据分组恢复形成存储文件,能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
实施例四
本发明实施例所提供的分布式存储方法,可以适用于各种分布式网络进行数据存储,本实施例中,优选是采用区块链网络对待存储文件进行分布式存储。区块链系统一般都包括多个节点,可独立工作,一方面是可独立作为有存储需求的节点来进行存储前准备,另一方面也可以作为一个存储节点接受其他节点请求的存储任务。区块链系统是一个去中心化的网络,可以基于共识机制等协议进行协同工作。
图4为本发明实施例四所提供的分布式存储方法的流程图,该方法包括:
S410、将待存储文件进行分组,形成多个数据分组。
S420、将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。
S430、将各数据分片在区块链网络中的各存储节点分别进行存储。
作为产生了存储需求的节点,或者任意电子设备,可以成为租赁节点,即需要向其他节点请求租赁存储空间的节点。租赁节点在存储文件之前,先对文件进行分片处理的准备。
同时,租赁节点还在区块链网络中确定各存储节点为其服务,各存储节点可以称为承租节点。确定存储节点的过程可以是线下协商过程,也可以是在区块链网络中发布体现存储空间租赁过程的智能合约,应约的节点即称为承租节点。确定存储节点后,租赁节点将数据分片传输给存储节点进行存储。
S440、将数据分片在存储节点中的存储关系作为智能合约,提供至区块链网络中的区块生成节点,以将智能合约添加至区块中进行存储。
上述所确定的体现租赁存储空间过程的智能合约,在区块链网络中传输。当前竞争到区块处理权限的区块生成节点将对当前产生的智能合约进行处理,打包形成区块。区块生成节点可以基于多种共识机制获得区块生成权限,在该区块生成节点的权限时段内,可能由不同的租赁节点产生不同的智能合约。区块生成节点可以对智能合约进行处理,处理的方式包括但不限于:对智能合约的内容进行验证、转换、加密、和存储等。例如,租赁其他节点的存储空间,可能需要支付一定的费用,相应的支付金额会体现在智能合约中,由租赁节点签名确认。区块生成节点可以根据智能合约中的规定,将支付金额从租赁节点的账户转移至承租节点的账户。区块生成节点后续将生成的区块,广播发给区块链网络的其他节点进行验证,而后使得区块生效添加至区块链尾部。由区块链的自身特点保证智能合约的不可篡改性。
S450、记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
租赁节点可以在本地记录上述对应关系,以方便后续恢复存储的数据。
S460、删除本地的待存储文件。
在本应用场景中,分布式的区块链网络中的节点之间可以进行互相通信。每一个节点都有可能随时成为租赁节点或承租节点。其中,租赁节点用于上传待存储文件,即为有文件存储需求的节点;承租节点用于存储文件对应的数据分片,也可以被称为存储节点。
具体的,当一个节点(示例性的,代表百度网盘的节点)有租赁需求时,也就是需要区块链网络上的其它节点来共同存储文件时,开始发布租赁需求的准备过程。然后,待存储文件可以首先在有租赁需求的节点处进行分组形成多个数据分组,并采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生。数据分组加密完成后,需要按照数据分组的加密顺序,计算各数据分组的哈希值,形成原始梅克尔树。接下来,有租赁需求的节点在对个数据分组进行两两随机组合形成至少三个数据分片。每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。同时,有租赁需求的节点采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树;并记录各分片梅克尔树与各数据分片所在存储节点的对应关系。最后,有租赁需求的节点向存储节点分别传输数据分片,实现将数据分片传送到分布式的区块链网络当中。各数据分片存储完成后,则可以将数据分片在存储节点中的存储关系作为智能合约,提供至区块链网络中的区块生成节点,以将智能合约添加至区块中进行存储。
由此可见,本发明实施例所提供的分布式存储方法应用在区块链技术领域,能够便于用户在分布式的区块链网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
实施例五
图5是本发明实施例五提供的一种分布式存储装置的示意图,如图5所示,所述装置包括:数据分组模块510、数据分片模块520、数据存储模块530、关系记录模块540以及文件删除模块550,其中:
数据分组模块510,用于将待存储文件进行分组,形成多个数据分组;
数据分片模块520,用于将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;
数据存储模块530,用于将各数据分片在分布式存储节点中进行分布式存储;
关系记录模块540,用于记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
文件删除模块550,用于删除本地的待存储文件。
本发明实施例通过将待存储文件分组形成多个数据分组,将全部数据分组形成至少三个数据分片,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中,再将各数据分片在分布式存储节点中进行分布式存储,从而实现了数据的分布式存储。分布式存储能够解决中心化存储的瓶颈问题,降低带宽成本和存储成本,且采用数据分组的多副本存储,避免由于部分存储节点的故障而导致数据整体的不可恢复。并且,由于每个存储节点中所存储的数据分片都没有包括所有的数据组分,所以不可能通过攻破一个存储节点就能恢复原始存储文件。上述技术方案解决了现有云存储技术产生的存储成本持续增高以及分布式存储技术引发的数据存储不安全的问题,便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
可选的,所述装置还包括:数据加密模块,用于采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生;记录所述各数据分组的加密顺序。
可选的,关系记录模块540,还用于采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树;记录各分片梅克尔树与各所述数据分片所在存储节点的对应关系。
可选的,数据加密模块,还用于按照数据分组的加密顺序,计算各数据分组的哈希值,形成原始梅克尔树。
可选的,所述装置还包括:文件恢复模块,用于在产生存储文件查询请求时,根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组;根据各数据分组恢复形成存储文件。
可选的,文件恢复模块,还用于根据本地记录的各数据分组的加密顺序,确定第一个数据分组作为当前数据分组;根据数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,确定当前数据分组所在的存储节点,作为当前分组节点;从所述当前分组节点下载数据分片,并从所述数据分片中提取当前数据分组;采用对应密钥对所述当前数据分组进行解密,采用当前数据分组的密文确定下一个数据分组的对应密钥;将下一个数据分组更新为当前数据分组;如果当前数据分组存储于已下载数据分片,则返回执行解密操作;如果当前数据分组未存储于已下载数据分片,则返回执行确定当前分组节点的操作,直至所有数据分组下载完成。
可选的,文件恢复模块,还用于计算提取出的当前数据分组的哈希值,与本地存储当前数据分组的哈希值,进行匹配,以验证所述当前数据分组的有效性。
可选的,数据存储模块530,还用于将各数据分片在区块链网络中的各存储节点分别进行存储;将数据分片在存储节点中的存储关系作为智能合约,提供至区块链网络中的区块生成节点,以将智能合约添加至区块中进行存储。
上述分布式存储装置可执行本发明任意实施例所提供的分布式存储方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的分布式存储方法。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的计算机设备612的框图。图6显示的计算机设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备612以通用计算设备的形式表现。计算机设备612的组件可以包括但不限于:一个或者多个处理器616,存储装置628,连接不同系统组件(包括存储装置628和处理器616)的总线618。
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备612典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)630和/或高速缓存存储器632。计算机设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储装置628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块626的程序636,可以存储在例如存储装置628中,这样的程序模块626包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块626通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备612也可以与一个或多个外部设备614(例如键盘、指向设备、摄像头、显示器624等)通信,还可与一个或者多个使得用户能与该计算机设备612交互的设备通信,和/或与使得该计算机设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口622进行。并且,计算机设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器620通过总线618与计算机设备612的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of IndependentDisks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器616通过运行存储在存储装置628中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的分布式存储方法。
也即,所述处理单元执行所述程序时实现:将待存储文件进行分组,形成多个数据分组;将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;将各数据分片在分布式存储节点中进行分布式存储;记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;删除本地的待存储文件。
通过所述计算机设备将待存储文件分组形成多个数据分组,将全部数据分组形成至少三个数据分片,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中,再将各数据分片在分布式存储节点中进行分布式存储,从而实现了数据的分布式存储。分布式存储能够解决中心化存储的瓶颈问题,降低带宽成本和存储成本,且采用数据分组的多副本存储,避免由于部分存储节点的故障而导致数据整体的不可恢复。并且,由于每个存储节点中所存储的数据分片都没有包括所有的数据组分,所以不可能通过攻破一个存储节点就能恢复原始存储文件。上述技术方案解决了现有云存储技术产生的存储成本持续增高以及分布式存储技术引发的数据存储不安全的问题,便于用户在分布式网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。
实施例七
本发明实施例七还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的分布式存储方法:将待存储文件进行分组,形成多个数据分组;将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;将各数据分片在分布式存储节点中进行分布式存储;记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;删除本地的待存储文件。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable ReadOnly Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种分布式存储方法,其特征在于,包括:
将待存储文件进行分组,形成多个数据分组;
采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生;所述除第一个数据分组外的其他每个数据分组的密钥由固定密钥和前一个数据分组的密文组合产生;
记录所述各数据分组的加密顺序;
将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;
将各数据分片在分布式存储节点中进行分布式存储;
记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
删除本地的待存储文件;
在产生存储文件查询请求时,根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组;
根据各数据分组恢复形成存储文件。
2.根据权利要求1所述的方法,其特征在于,记录数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系包括:
采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树;
记录各分片梅克尔树与各所述数据分片所在存储节点的对应关系。
3.根据权利要求2所述的方法,其特征在于,记录所述各数据分组的加密顺序包括:
按照数据分组的加密顺序,计算各数据分组的哈希值,形成原始梅克尔树。
4.根据权利要求1所述的方法,其特征在于,根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组包括:
根据本地记录的各数据分组的加密顺序,确定第一个数据分组作为当前数据分组;
根据数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,确定当前数据分组所在的存储节点,作为当前分组节点;
从所述当前分组节点下载数据分片,并从所述数据分片中提取当前数据分组;
采用对应密钥对所述当前数据分组进行解密,采用当前数据分组的密文确定下一个数据分组的对应密钥;
将下一个数据分组更新为当前数据分组;
如果当前数据分组存储于已下载数据分片,则返回执行解密操作;
如果当前数据分组未存储于已下载数据分片,则返回执行确定当前分组节点的操作,直至所有数据分组下载完成。
5.根据权利要求4所述的方法,其特征在于,采用对应密钥对所述当前数据分组进行解密之前,还包括:
计算提取出的当前数据分组的哈希值,与本地存储当前数据分组的哈希值,进行匹配,以验证所述当前数据分组的有效性。
6.根据权利要求1-5任一所述的方法,其特征在于,将各数据分片在分布式存储节点中进行分布式存储包括:
将各数据分片在区块链网络中的各存储节点分别进行存储;
将数据分片在存储节点中的存储关系作为智能合约,提供至区块链网络中的区块生成节点,以将智能合约添加至区块中进行存储。
7.一种分布式存储装置,其特征在于,包括:
数据分组模块,用于将待存储文件进行分组,形成多个数据分组;
数据加密模块,用于采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生;所述除第一个数据分组外的其他每个数据分组的密钥由固定密钥和前一个数据分组的密文组合产生;记录所述各数据分组的加密顺序;
数据分片模块,用于将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中;
数据存储模块,用于将各数据分片在分布式存储节点中进行分布式存储;
关系记录模块,用于记录数据分片与数据分组的对应关系,以及所述存储节点与所存储数据分片的对应关系;
文件删除模块,用于删除本地的待存储文件;
文件恢复模块,用于在产生存储文件查询请求时,根据本地记录的数据分片与数据分组的对应关系,以及存储节点与所存储数据分片的对应关系,分别从存储节点中下载各数据分组;
根据各数据分组恢复形成存储文件。
8.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的分布式存储方法。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的分布式存储方法。
CN201810479464.3A 2018-05-18 2018-05-18 一种分布式存储方法、装置、计算机设备及存储介质 Active CN108664223B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810479464.3A CN108664223B (zh) 2018-05-18 2018-05-18 一种分布式存储方法、装置、计算机设备及存储介质
PCT/CN2019/072337 WO2019218717A1 (zh) 2018-05-18 2019-01-18 一种分布式存储方法、装置、计算机设备及存储介质
JP2020530626A JP7044881B2 (ja) 2018-05-18 2019-01-18 分散型ストレージ方法及び装置、コンピュータ機器及び記憶媒体
US16/766,151 US11842072B2 (en) 2018-05-18 2019-01-18 Distributed storage method and apparatus, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810479464.3A CN108664223B (zh) 2018-05-18 2018-05-18 一种分布式存储方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN108664223A CN108664223A (zh) 2018-10-16
CN108664223B true CN108664223B (zh) 2021-07-02

Family

ID=63776722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810479464.3A Active CN108664223B (zh) 2018-05-18 2018-05-18 一种分布式存储方法、装置、计算机设备及存储介质

Country Status (4)

Country Link
US (1) US11842072B2 (zh)
JP (1) JP7044881B2 (zh)
CN (1) CN108664223B (zh)
WO (1) WO2019218717A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664223B (zh) * 2018-05-18 2021-07-02 百度在线网络技术(北京)有限公司 一种分布式存储方法、装置、计算机设备及存储介质
WO2019245924A1 (en) * 2018-06-19 2019-12-26 Docusign, Inc. File validation using a blockchain
CN111079193B (zh) * 2018-10-19 2023-03-28 华为云计算技术有限公司 数据存储方法、数据查询方法、装置及设备
US10949388B2 (en) * 2018-11-16 2021-03-16 Advanced Messaging Technologies, Inc. Systems and methods for distributed data storage and delivery using blockchain
CN109614037A (zh) * 2018-11-16 2019-04-12 新华三技术有限公司成都分公司 数据巡检方法、装置和分布式存储系统
CN109558081A (zh) * 2018-11-23 2019-04-02 深圳市威赫科技有限公司 一种数据存储机制及系统
CN109634932B (zh) * 2018-11-30 2021-03-23 北京瑞卓喜投科技发展有限公司 一种智能合约存储方法及存储系统
CN111338841A (zh) * 2018-12-19 2020-06-26 北京京东尚科信息技术有限公司 数据处理方法、装置、设备和存储介质
CN113689213A (zh) * 2018-12-26 2021-11-23 创新先进技术有限公司 区块链数据处理方法、装置及系统
CN109815258A (zh) * 2018-12-29 2019-05-28 深圳云天励飞技术有限公司 一种数据处理的方法及装置
CN109800599A (zh) * 2019-01-18 2019-05-24 深圳市威赫科技有限公司 一种区块链分布式存储方法及系统
CN109902494A (zh) * 2019-01-24 2019-06-18 北京融链科技有限公司 数据加密存储方法、装置,以及文件存储系统
CN111475538A (zh) * 2019-01-24 2020-07-31 北京京东尚科信息技术有限公司 一种数据处理方法、装置及存储介质
US11222099B2 (en) * 2019-02-08 2022-01-11 Synergex Group Methods, systems, and media for authenticating users using blockchains
CN111835801B (zh) * 2019-04-18 2023-11-14 北京度友信息技术有限公司 文件下载方法、装置、服务器、边缘设备、终端及介质
US11294875B2 (en) * 2019-05-31 2022-04-05 Advanced New Technologies Co., Ltd. Data storage on tree nodes
CN110288346A (zh) * 2019-06-28 2019-09-27 杭州复杂美科技有限公司 区块链分布式存储下载方法、设备和存储介质
CN110288445B (zh) * 2019-06-28 2024-03-05 杭州复杂美科技有限公司 去中心化存储方法、设备和存储介质
CN110300170A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 区块链分布式存储下载方法、设备和存储介质
CN110442644A (zh) * 2019-07-08 2019-11-12 深圳壹账通智能科技有限公司 区块链数据归档存储方法、装置、计算机设备和存储介质
CN110597824A (zh) * 2019-09-20 2019-12-20 腾讯科技(深圳)有限公司 一种基于区块链网络的数据存储方法以及装置
US11128440B2 (en) * 2019-10-29 2021-09-21 Samsung Sds Co., Ltd. Blockchain based file management system and method thereof
CN111030930B (zh) * 2019-12-02 2022-02-01 北京众享比特科技有限公司 基于去中心化网络数据分片传输方法、装置、设备及介质
US11368285B2 (en) * 2019-12-05 2022-06-21 International Business Machines Corporation Efficient threshold storage of data object
CN111176567B (zh) * 2019-12-25 2023-11-03 上海新沄信息科技有限公司 分布式云存储的存储供应量验证方法及装置
CN111193798A (zh) * 2019-12-31 2020-05-22 山东公链信息科技有限公司 一种打散后加密分散存储的图片分布式存储技术
CN111290883B (zh) * 2020-02-16 2021-03-26 西安奥卡云数据科技有限公司 一种基于重删的精简复制方法
CN111324305B (zh) * 2020-02-16 2021-02-02 西安奥卡云数据科技有限公司 一种分布式存储系统中数据写入/读取方法
CN111311283B (zh) * 2020-02-20 2021-02-05 宁波甜宝生物信息技术有限公司 基于区块链和云计算的化妆品溯源生产工艺方法
JP7158690B2 (ja) * 2020-02-28 2022-10-24 長瀬産業株式会社 情報処理システム、及びプログラム
CN111475839B (zh) * 2020-04-06 2023-04-18 华中科技大学 一种用于不可信环境的冗余数据编码方法、存储介质
CN111611317B (zh) * 2020-06-08 2023-05-30 杭州复杂美科技有限公司 区块链分布式存储分组方法、设备和存储介质
CN112231398A (zh) * 2020-09-25 2021-01-15 北京金山云网络技术有限公司 数据存储方法、装置、设备及存储介质
CN112130772A (zh) * 2020-09-29 2020-12-25 合肥城市云数据中心股份有限公司 一种基于稀疏随机纠删码技术的区块链安全存储方法
AU2021254561A1 (en) * 2021-10-19 2023-05-04 Neo Nebula Pty Ltd A device, method and system for the secure storage of data in a distributed manner
CN112328688B (zh) * 2020-11-09 2023-10-13 广州虎牙科技有限公司 数据存储方法、装置、计算机设备及存储介质
CN112667568B (zh) * 2020-12-21 2022-11-22 广州携旅信息科技有限公司 一种在酒店内网环境下实现分布式存储的方法
CN114006690A (zh) * 2021-01-04 2022-02-01 北京八分量信息科技有限公司 一种区块链的数据授权方法
CN112968864A (zh) * 2021-01-26 2021-06-15 太原理工大学 一种可信的IPv6网络服务过程机制
CN112905667A (zh) * 2021-03-08 2021-06-04 黑芝麻智能科技(上海)有限公司 无人驾驶信息存储和回放方法、装置及存储介质
CN116303753A (zh) * 2021-12-09 2023-06-23 中兴通讯股份有限公司 分布式数据库的分片方法、装置、电子设备和存储介质
CN115935090B (zh) * 2023-03-10 2023-06-16 北京锐服信科技有限公司 一种基于时间分片的数据查询方法及系统
CN116860180A (zh) * 2023-08-31 2023-10-10 中航金网(北京)电子商务有限公司 一种分布式存储方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808095A (zh) * 2010-03-22 2010-08-18 华中科技大学 一种分布式存储环境下的加密副本组织方法
CN103929467A (zh) * 2013-01-14 2014-07-16 埃森哲环球服务有限公司 安全在线分布式的数据存储服务

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000224158A (ja) 1999-02-01 2000-08-11 Toyo Commun Equip Co Ltd 暗号通信システム
US7203871B2 (en) * 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
CN102148798A (zh) * 2010-02-04 2011-08-10 上海果壳电子有限公司 大容量数据包的高效并行安全加解密方法
JP5647058B2 (ja) * 2011-04-19 2014-12-24 佐藤 美代子 情報処理システムおよびデータバックアップ方法
KR20130048594A (ko) * 2011-11-02 2013-05-10 삼성전자주식회사 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법
CN104123300B (zh) * 2013-04-26 2017-10-13 上海云人信息科技有限公司 数据分布式存储系统及方法
RU2527210C1 (ru) * 2013-06-14 2014-08-27 Общество с ограниченной ответственностью "Новые технологии презентаций" Способ и система для передачи данных от веб-сервера клиентским терминальным устройствам посредством локальной беспроводной коммуникационной сети
CN103559102A (zh) * 2013-10-22 2014-02-05 北京航空航天大学 数据冗余处理方法、装置和分布式存储系统
CN106302702B (zh) * 2016-08-10 2020-03-20 华为技术有限公司 数据的分片存储方法、装置及系统
US10547460B2 (en) * 2016-11-18 2020-01-28 Qualcomm Incorporated Message-based key generation using physical unclonable function (PUF)
EP3934203A1 (en) * 2016-12-30 2022-01-05 INTEL Corporation Decentralized data storage and processing for iot devices
CN106775494B (zh) * 2017-01-06 2023-05-12 南京普天通信股份有限公司 一种基于分布式软件定义存储的数据存储装置及存储方法
CN108628539B (zh) * 2017-03-17 2021-03-26 杭州海康威视数字技术股份有限公司 数据存储、分散、重构、回收方法、装置及数据处理系统
CN107273410B (zh) * 2017-05-03 2020-07-07 上海点融信息科技有限责任公司 基于区块链的分布式存储
CN107273759B (zh) * 2017-05-08 2020-07-14 上海点融信息科技有限责任公司 用于保护区块链数据的方法、设备以及计算机可读存储介质
CN107220559B (zh) * 2017-06-11 2023-07-07 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
US20190180272A1 (en) * 2017-12-12 2019-06-13 Janathon R. Douglas Distributed identity protection system and supporting network for providing personally identifiable financial information protection services
CN108664223B (zh) * 2018-05-18 2021-07-02 百度在线网络技术(北京)有限公司 一种分布式存储方法、装置、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101808095A (zh) * 2010-03-22 2010-08-18 华中科技大学 一种分布式存储环境下的加密副本组织方法
CN103929467A (zh) * 2013-01-14 2014-07-16 埃森哲环球服务有限公司 安全在线分布式的数据存储服务

Also Published As

Publication number Publication date
JP7044881B2 (ja) 2022-03-30
CN108664223A (zh) 2018-10-16
US20200363994A1 (en) 2020-11-19
WO2019218717A1 (zh) 2019-11-21
JP2021506004A (ja) 2021-02-18
US11842072B2 (en) 2023-12-12

Similar Documents

Publication Publication Date Title
CN108664223B (zh) 一种分布式存储方法、装置、计算机设备及存储介质
CN108648084B (zh) 一种区块链网络的数据处理方法、装置、设备及存储介质
US11082482B2 (en) Block chain encoding with fair delay for distributed network devices
CN108769171B (zh) 分布式存储的副本保持验证方法、装置、设备及存储介质
CN107612683B (zh) 一种加解密方法、装置、系统、设备和存储介质
CN109194669B (zh) 一种轻量级节点的数据传输方法、装置、设备和介质
CN109213901B (zh) 一种区块链的数据同步方法、装置、设备及介质
US10749670B2 (en) Block chain decoding with fair delay for distributed network devices
CN108431819B (zh) 保护客户端访问视频播放器的drm代理的服务的方法和系统
CN115225409B (zh) 基于多备份联合验证的云数据安全去重方法
CN109347803B (zh) 一种区块链的数据处理方法、装置、设备及介质
CN105637801A (zh) 多形态加密密钥矩阵
CN111062045A (zh) 信息加密、解密方法和装置、电子设备及存储介质
CN115499249A (zh) 一种基于区块链分布式加密的文件存储方法及系统
CN109345243B (zh) 一种区块链的数据处理和验证方法、装置、设备及介质
CN114615031A (zh) 文件存储方法、装置、电子设备及存储介质
CN109831405B (zh) 一种云平台上的文件保护方法及装置
CN111291398B (zh) 基于区块链的认证方法、装置、计算机设备及存储介质
US20120017086A1 (en) Information security transmission system
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
CN108563396B (zh) 一种安全的云端对象存储方法
CN116132041A (zh) 密钥处理方法、装置、存储介质及电子设备
CN111865891B (zh) 一种数据传输方法、用户端、电子设备及可读存储介质
CN110958211B (zh) 一种基于区块链的数据处理系统及方法
CN110781511A (zh) 交易信息存储方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant