CN113661490B - 用于安全地存储数据的方法和系统 - Google Patents

用于安全地存储数据的方法和系统 Download PDF

Info

Publication number
CN113661490B
CN113661490B CN202080027940.3A CN202080027940A CN113661490B CN 113661490 B CN113661490 B CN 113661490B CN 202080027940 A CN202080027940 A CN 202080027940A CN 113661490 B CN113661490 B CN 113661490B
Authority
CN
China
Prior art keywords
data
elements
encoded data
value
program instructions
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
CN202080027940.3A
Other languages
English (en)
Other versions
CN113661490A (zh
Inventor
G.H.莫尔
O.奥多特
P.卡普兰
X.诺德特
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN113661490A publication Critical patent/CN113661490A/zh
Application granted granted Critical
Publication of CN113661490B publication Critical patent/CN113661490B/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
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明的各个方面公开了一种用于安全地存储数据的方法。该方法包括一个或多个计算机处理器,由一个或多个计算机处理接收存储数据的请求,其中该数据包括多个元素。该方法还包括通过对数据应用一个或多个编码算法来生成编码数据的多个元素,其中编码数据的多个元素的数量等于数据的多个元素的数量。该方法进一步包括将该编码数据的该多个元素分配到该编码数据的两个或更多个子集中而不重复。该方法还包括将编码数据的两个或更多子集传输到对应数量的两个或更多存储系统。

Description

用于安全地存储数据的方法和系统
背景技术
本发明总体上涉及数据安全领域,更具体地涉及通过对编码数据的部分进行编码并将其分发到不同的云存储位置来混淆数据。
云计算是一种信息技术范例,该信息技术范例使得能够通过互联网普遍访问可配置计算系统资源的共享池。云计算服务的一些消费者(例如,企业、组织、政府实体)可拥有不同数据处理系统,但利用云计算服务来提供附加计算资源(例如,弹性可扩展性)来降低成本。云计算服务的其他消费者利用云作为用户和企业之间的接口,以通过将应用和功能分布得更靠近用户来提供改进的响应时间,从而减少在单个数据处理位置可能发生的网络拥塞,并且改进消费者体验。除了处理不同商业功能之外,云计算提供者还可经由基础设施即服务(IaaS)模型来提供个人、基于互联网的服务提供者和公司的高容量云存储解决方案。例如,公司可以在内部托管网站,但将存储外包给IaaS提供者。
云存储是计算机数据存储的模型,其中数字数据存储在逻辑池中。物理存储可以跨越多个服务器(有时在多个位置中),并且物理环境通常由托管公司(即,服务提供者)拥有和管理。此外,云计算提供者利用各种安全措施来安全防护所存储的信息和数据,诸如认证和访问监视、防火墙、用户分离、入侵检测和防止、以及安全信息和事件日志记录系统。因此,云存储提供者为寻求数据存储的地理和提供者多样性的数据所有者提供对数据的大量存储容量、容量、安全性和耐久性的即时管理以及“随时随地”访问数据。
发明内容
本发明的各个方面公开了一种用于安全地存储数据的方法、计算机程序产品和系统。该方法包括至少一个计算机处理器接收存储数据的请求,其中该数据包括多个元素。该方法还包括至少一个计算机处理器通过对数据应用一个或多个编码算法来生成编码数据的多个元素,其中编码数据的多个元素的数量等于数据的多个元素的数量。该方法进一步包括至少一个计算机处理器将该编码数据的该多个元素分发到该编码数据的两个或更多个子集中而不重复。该方法还包括至少一个计算机处理器将编码的数据的两个或更多子集传输到相应数量的两个或更多存储系统。
附图说明
图1是根据本发明的实施例的云计算环境的一部分的功能框图。
图2是示出根据本发明实施例的安全数据分发程序的操作步骤的流程图。
图3是示出根据本发明实施例的安全数据重构程序的操作步骤的流程图。
图4是根据本发明至少一个实施例的利用数据密钥对数据进行编码、在存储编码的数据之前将编码的数据分配到块(chunk)中、以及利用元数据来将信息与编码数据的块相关联的说明性示例。
图5是根据本发明实施例的计算机的组件的框图。
图6描绘了根据本发明实施例的云计算环境。
图7描绘了根据本发明实施例的云计算环境的一组功能抽象层。
具体实施方式
本发明的实施例认识到云计算允许公司避免或最小化前期信息技术(IT)基础设施成本。此外,本发明的实施例认识到更多公司正在向云迁移应用,并且各个公司正在利用多云平台和多个服务提供者用于数据和应用。然而,数据的所有者可能不希望被绑定到特定服务提供者。数据的所有者希望能够灵活地切换到另一个提供者,而不会丢失数据或在数据转换方面做出重大努力。为了应对所存储数据日益增长的重要性,数据所有者的期望正在演化,需要更可靠的机制来确保所存储数据的可用性和持久性。本发明的实施例认识到云服务提供者已经在云上存储公共数据,诸如发布的政府统计、绘图信息、社交共享信息、天气数据、新闻等。然而,本发明的实施例还认识到,由于安全问题、信任问题、隐私担忧、法规等,私有数据通常不被存储在公共云上。在此上下文中,数据所有者寻找跨多个云平台存储数据以确保更多安全性、冗余性并减少数据损害的潜在威胁,而不是将数据存储在单个云内。
本发明的实施例提供了一种用于在多个云平台(如云存储系统、公共云和/或混合云系统)之间基于安全、分布式格式以可信形式安全地存储数据的解决方案。本文中描述的数据的安全、分布式格式被称为块,或更具体地,编码的数据块。每个编码的数据块是来自数据的编码的元素的较大集合中唯一地分布的数据的元素的子集(例如,较小的组)。本发明的实施例在将编码数据的元素分配到两个或更多个编码的数据块中之前对用于安全分布式存储的数据进行编码。本发明的实施例利用原始数据的至少一个元素和/或编码数据的至少一个先前元素的一个或多个数据内依赖性、递归动作、和/或增量(即,索引)利用来编码数据的元素。本发明的一些实施例还利用由一个或多个编码算法利用的由其他信息组成的数据密钥以进一步混淆原始数据。本发明的实施例利用可逆函数来编码和解码数据。
本发明的实施例可以通过将编码数据分配到编码数据块中来进一步保护数据,从而使得如果编码数据的单个数据块丢失、损坏或未被检索,则不能重构(例如,再现、再生)和解码整个原始数据。在附加实施例中,不能独立地解码编码数据的各个块。本发明的各个实施例利用一个或多个数据元素内依赖性和递归操作(例如,动作、计算)而不是全局操作来使得重构整个原始数据是不可能的,除非检索了所有编码数据块,并且除了编码和解码算法之外,编码数据分配算法也是已知的。
因此,本发明的一些实施例使得不可能响应于即使编码数据的单个字节或元素的丢失或损坏来重构整个原始数据。数据元素内依赖性的示例是当前数据元素的编码值基于数据元素的当前值和至少一个先前编码数据元素值。每一额外依赖性(例如,包括至少一个先前原始数据值以编码当前数据值)进一步加强与编码原始数据且将原始数据分发到编码数据块中相关联的本发明的安全方面。解码编码数据还包含数据元素内依赖性,例如编码数据的元素的当前值和至少一个先前编码数据元素值。每个附加的依赖性(诸如利用至少一个先前解码的数据元素值来解码编码的数据的当前元素的值)进一步增强解码算法的安全性。
本发明的各种实施例通过将一个编码数据块分发到被选择以存储对应于原始数据的编码数据块的不同地理位置和/或云存储提供者中的每一个来进一步提高与私有数据相关的安全性。在示例中,如果至少两个云存储提供者具有在该城市内可用的存储容量,则两个编码数据块可被存储在同一城市中。
本发明的一些实施例利用对编码数据块的复制以用于灾难恢复,例如如果一个或多个云存储提供者不提供数据备份,或者确保如果一个地理位置受问题(例如,自然灾害、断电、网络中断等)影响,原始数据仍可基于访问辅助存储位置以及时的方式恢复。本发明的实施例利用本领域中已知的一个或多个数据验证(诸如校验和或散列函数)来确保所检索的编码数据块和/或解码的数据的完整性。
本发明的实施例的实现方式可以采取多种形式,并且随后参照附图讨论示例性实现方式细节。
现在将参照附图详细描述本发明。图1是示出根据本发明的一个实施例的云计算环境(一般表示为环境100)的一部分的功能框图,云计算环境诸如云计算节点10(参见图6进一步详细讨论的)。环境100的实施例包括:系统102和全部通过网络130互连的多个云存储位置(例如,存储装置120A至存储装置120N)。图1仅提供了一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
在其他实施例中,图1是功能框图,示出了联网计算环境或与云计算环境(通常被指定为环境100)不同的存储架构的一部分。在示例中,存储装置120A至存储装置120N中的一个或多个可以表示不同类型的存储系统,诸如网络附接存储(NAS)系统或设备、存储区域网络(SAN)和/或其他存储设备。
系统102和存储装置120A至存储装置120N可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话、可穿戴设备(例如,智能眼镜、智能手表等)或本领域已知的任何可编程计算机系统。在某些实施例中,如在数据中心中常见的并且与云计算应用一样,系统102和存储装置120A至存储装置120N表示利用集群式计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算机系统,这些集群式计算机和组件在通过网络130访问时充当单个无缝资源池。根据本发明的实施例,系统102和存储装置120A至存储装置120N可以包括如关于图5进一步详细描绘和描述的组件。通常,存储装置120A至存储装置120N表示能够执行机器可读程序指令并且与系统102并且经由网络130通信的任何可编程电子设备或可编程电子设备的组合。
系统102包括:存储装置103、安全数据分发程序200和安全数据重构程序300。系统102还包括不同程序,诸如网站界面;一个或多个web守护进程;数据库管理系统;网络映射程序;网络通信程序;执行各种数学、统计、转换等的各种功能和/或程序。在一个实施例中,系统102表示云计算系统内的一个或多个计算系统。在另一实施例中,系统102表示组织(诸如企业、大学、企业等)的一个或多个计算系统。在一些实施例中,系统102利用网络130和一个或多个通信程序和/或协议通过存储装置120N轮询或查询存储装置120A,并且获得与存储位置的可用性相关的信息,诸如物理位置、存储提供者信息、存储成本、服务水平协议(SLA)、数据备份能力等。系统102可将信息存储在存储信息107内以供安全数据分发程序200随后访问。
在一个实施例中,存储装置103包括数据104、数据密钥105、安全算法106和存储信息107。存储装置103还可包含不同表、列表、关联阵列、数据库和/或其他程序(未示出)。数据104包括与一个或多个实体(例如,用户、程序、企业、组织等)相关联的多个数据,该一个或多个实体利用系统102通过对用于分布式存储的数据进行编码和将编码的数据分配到编码的数据块中来基于混淆对数据进行安全分布式存储。在不同实施例中,数据104内的数据由不同实体和/或执行程序(未示出)经由网络130上传或传送到系统102。在另一实施例中,数据104内的数据在系统102内由一个或多个执行程序(未示出)生成。
数据密钥105包括多个密钥,这些密钥被一个安全算法用于编码和解码分布式存储的数据。在实施例中,数据密钥105包括数据密钥,该数据密钥包括不同结构和/或格式的数据密钥。在示例中,数据密钥105内的数据密钥可以基于随机数值、字母字符、符号或其组合。在另一示例中,数据密钥可以是由用户或程序访问系统102输入的密码或通行短语。在一些实施例中,数据密钥105内的数据密钥基于规则,如π的前十位、√2或分数。在一些实施例中,分发程序200执行一个或多个程序(例如,函数)以将数据密钥105的数据密钥内的信息转换成索引数值。在一个场景中,经转换的数据密钥被存储在数据密钥105内并且分别与原始数据密钥相关联。在另一场景中,经转换的数据密钥被存储在存储信息107内并且与涉及分布式存储的数据的其他信息相关联,诸如存储位置ID、块ID、与多个编码数据块相关联的序列数据。
安全算法106包括用于为安全分布式存储准备数据的多个算法。安全算法106包括用于以下操作的算法:对数据进行编码,将编码的数据分发到多个编码的数据块中,从多个所检索的编码的数据块重构(即,重构)编码的数据,以及对编码的数据进行解码。下面给出用于实施本发明的算法集的实例,并且关于图4进一步详细论述。安全算法106内的安全算法可以由系统102的管理员开发和/或由系统102的用户开发,并且与关联于用户的数据相关联地使用。
在不同实施例中,安全算法106内的数据编码算法是利用源数据的组成来执行不同变换(例如,编码)的可逆函数(即,算法)。在一个实施例中,安全算法106内的一个或多个算法利用数据密钥105内的数据密钥在数据的编码期间进一步模糊化数据元素。在实施例中,安全算法106还包括用于将数据密钥内的信息转换成索引数值和/或创建数据密钥的一个或多个程序(例如,函数)。
在一些实施例中,算法包括一个或多个约束。在一个场景中,数据编码算法包括约束,诸如必须至少比要存储的数据内的任何数据元素的最大值大1的值的变量(例如,max_val)。在示例中,关于存储二进制数据,如果数据元素的值可以在从0至255的范围内,则max_val=256。在另一场景中,如果数据编码算法递归地编码数据并且使当前编码值基于对应于一个或多个先前编码的数据元素的值(例如,数据元素内依赖性),则数据分布算法被约束为存储在不同的编码数据块中交互的编码数据的元素。在实施例中,安全算法106包括影响数据元素是否被编码以及如何被编码的一个或多个其他标准(例如,规则)。在示例中,包括在编码算法中的标准可以声明如果K[i]=0,则E[i]=D[i]。
仍参照安全算法106,以下呈现的是用于以下各项的安全算法集合的示例实施例:对包括在用于分布式存储的数据中的多个数据元素进行编码;将编码的数据元素分发到编码的数据块中;以及响应于需要访问所述分布式存储的数据,从多个存储的编码数据块中检索和重构所述编码数据,并且随后解码所述重构的编码数据以再现所述数据。
在以下示例算法中,“%”符号表示模运算(即,模数)。例如,一对编码算法包括:E[0]=(D[0]+K[0])%max_val(在此称为算法ED1)。其中E[0]表示数据的第一元素的编码值(索引值[i]=0)。如在此所使用的,索引位置和索引值是可互换的。K[0]是分配给用于安全分布式存储的数据的数据密钥105的数据密钥的第一值(索引值[i]=0)。关于在此利用的模运算(即,%),对应于%符号的左边的元素(即,(D[0]+K[0]))的值是被除数。与%符号的右边的元素(即,max_val)对应的值是除数,并且E[0]等于通过数据的第一元素的模运算生成的余数。在实施例中,编码算法生成等于(例如,等同于)用于安全分布式存储的数据的数据元素的数量的编码数据元素的数量。
对于与在第一数据值之后的数据元素相对应的数据值(例如,索引值i>0):E[i]=(E[i-1]+D[i-1]+D[i]+K[i%key_size])%max_val(在此被称为算法ED2)。算法ED2包括编码约束(例如,数据元素内依赖性)和/或至少一个递归动作。当前元素的编码值,数据值D[i]的对应元素的E[i]由数据密钥的元素(例如,K[i%key_size])修改;并且由先前编码值E[i-1]和先前数据值D[i-1]两者进一步修改。在算法ED2内,项K[i%key_size]基于响应于key_size<data_size生成从0至(key_size–1)的索引值范围而从数据密钥中产生元素循环选择以应用于有待编码的数据元素。Data_size是与用于安全分布式存储的数据元素数(即数量)相对应的值。
仍参考安全算法106并且基于与示例编码算法相关联的约束,以下讨论相关数据“分块”算法。在实施例中,基于被选择来接收用于分布式存储的编码数据的位置的数(即,数量),所生成的块的数量(nb_chunk)》=2并且小于或等于数据的可用存储位置的数量。在示例中,数据分块和数据元素分布算法的集合包括与“块”(即,C)内所包括的元素数量相对应的大小值,该块由编码数据的一部分组成,如由:size[c]=(data_size+nb_chunk-1-c)div nb_chunk(在此被称为算法CD1)所表示的。其中,c=块对应的索引值。在所讨论的算法内,函数“div”表示被除数的值(即,(data_size+nb_chunk-1-c))和除数的值(即,nb_chunk)的整数除法。
在实施例中,将编码的数据元素分发到块中是基于循环生成与每个块和相应块内的数据元素相对应的索引值的算法。作为响应,对应于所生成的索引值的数据的编码元素被分发或指派到块中。在示例中,C[c][j]=E[c+j*nb_chunk](在此被称为算法CD2)在chunk之间分配编码信息,其中,0<=c<nb_chunks并且0<=j<size[c];并且其中“c”表示编码数据块的索引值并且“j”表示对应于编码数据块内的编码数据元素的索引值。在一些实施例中,块的索引值“c”分别与对应于块的标识符(ID)相关联。此外,在一些场景中,块ID对应于与将编码数据分配到块中有关的序列(例如,1、2、3、…)。在其他情形中,编码数据的块序列可间接地与块ID相关联,诸如经由关联阵列。
继续当前安全算法集,在实施例中,用于重构(例如,再现、反转分布算法)来自分发到块中的多个数据元素的编码的数据的相应算法表示为:E[i]=C[i%nb_chunks][idiv nb_chunks](在此被称为算法RE1),其中0<=i<datasize。其中,算法3的项[i%nb_chunk]对应于块索引和/或相关块ID,并且[i div nb_chunks]对应于块内的元素的集合索引值(之前关于“j”所讨论的,其中,0<=j<size[c]。)
完成数据安全算法示例集的是一对应用于重构编码数据的相应解码算法。其中,max_val的值是用于对数据进行编码的max_val的相同值,并且其中,索引值对应于重构的编码数据的元素。例如,D[0]=(E[0]–K[0]+max_val)%max_val(在此被称为算法DE1)用于对重构的编码数据的初始(即,第一)元素进行解码。进一步地,为了对重构的编码数据的后续元素进行解码,对于0<i<data_size,D[i]=(E[i]–E[i-1]–D[i-1]–K[i%key_size]+nb_chunk*max_val)%max_val(在此被称为算法DE2)。如先前关于保护数据所讨论的,算法DE2包括至少一个递归动作或数据内依赖性,因此如果编码的数据块缺失或损坏,则致使整个原始数据不可恢复。
存储信息107包括与准备用于分布式存储和/或已经存储为存储装置120A至存储装置120N中的编码数据块的多个数据有关的信息。在一个实施例中,存储信息107包括与用于分布式存储的数据有关的信息,诸如存储数据和/或能够访问分布式存储的数据的一个或多个实体,存储位置ID、块ID、与多个编码数据块相关联的序列(例如,基于分布算法的块ID序列),在编码数据时使用的数据密钥、数据完整性验证/信息等。在一些实施例中,存储信息107内的信息存储在诸如一个或多个表和/或数据库的数据结构内。在不同实施例中,与已编码数据块相关的元数据(关于图4进一步详细描述)也包括在存储信息107内,并且还与原始数据或与用于分布式存储的原始数据相关联的引用相关联。
在另一实施例中,通过系统102经由网络130查询多个存储提供者以获得与存储装置120A至120N相关的信息(诸如物理位置、存储提供者信息、存储成本等)来获得存储信息107内的一些信息。在实施例中,存储位置ID进一步与存储提供者和/或存储系统的对应物理(例如,地理)位置相关联。在一些场景中,存储ID由系统102分配。在其他场景中,存储ID对应于由分别与存储装置120A至存储装置120N相关联的存储提供者提供给系统102的信息。
在一些实施例中,安全数据分发程序200和安全数据重构程序300是应用的所有者和/或开发者订阅的服务,以便启用对应用的多版本支持。安全数据分发程序200和安全数据重构程序300可经由云计算环境50的管理层80的功能之一(诸如安全86(参见图6和图7更详细地描述))来实现。作为替换或补充,安全数据分发程序200和安全数据重构程序300可经由云计算环境50的工作负荷层90的虚拟化方面之一(诸如数据安全96(关于图6和图7更详细地描述))来实现。在另一实施例中,安全数据分发程序200和安全数据重构程序300被实现在不同于和/或除了公共云存储环境在另一架构内操作的存储环境之外的存储环境内,诸如大型机、联网计算环境和/或分布式计算环境,用于在与系统102相关联的其他内部存储位置中存储编码数据块。
安全数据分发程序200是准备用于云内的安全存储的数据的程序,诸如公共云存储环境。安全数据分发程序200的各个方面可被实现为在其他存储环境内操作。在一个实施例中,安全数据分发程序200利用一个或多个编码算法以数字格式对数据元素进行编码以用于分布式存储。安全数据分发程序200可利用数据密钥来进一步模糊数据元素的编码。在不同实施例中,安全数据分发程序200利用一个或多个分发算法来将数据的编码元素分发到编码数据块。在示例实施例中,通过将编码数据分发到编码数据块中,安全数据分发程序200可使整个原始数据不可恢复,除非检索与原始数据相关联的编码数据块中的所有编码数据块,且编码数据元素到编码数据块中的分发次序也是已知的。
在另一个实施例中,如果安全数据分发程序200确定用于分布式存储的数据先前已经被存储并且该数据的当前版本被改变,然后基于缺少备份规定,安全数据分发程序200在存储对应于数据的当前版本的编码数据块之前删除分布式存储内的编码数据块。安全数据分发程序200可重用一个或多个存储位置来存储对应于当前版本的数据的编码数据块,或者安全数据分发程序200可选择不同的存储集合来存储对应于当前版本的数据的编码数据块。在实施例中,安全数据分发程序200将用于分布式存储的数据迁移到系统102的RAM(未示出)中,以在将编码的数据块传输到存储位置集合之前改进一个或多个安全算法的性能。
安全数据重构程序300是识别分布式存储的数据、检索包括分布式存储的数据的多个编码数据块、并且在从多个检索的编码数据块重构编码数据之后解码编码数据的程序。在一个实施例中,安全数据重构程序300操作用于从分布在两个或更多个云存储位置中的多个编码数据块重构数据。在一些实施例中,响应于用户和/或指示访问分布式存储的数据的程序,安全数据重构程序300由安全程序、功能和/或API自动执行。
在各个实施例中,安全数据重构程序300利用复制的或备份的编码数据块来重构编码数据。安全数据重构程序300可利用一个或多个数据完整性验证方法来确保已编码数据的复制块是已编码数据的缺失或损坏块的确切副本。在实施例中,安全数据重构程序300将检索的编码数据块和/或重构的编码数据存储在系统102的RAM(未示出)内以改进一个或多个安全算法的性能。
在一个实施例中,系统102通过网络130通过存储装置120N与存储装置120A通信。在另一实施例中,网络130还可将系统102连接到云计算环境50的包括一个或多个服务(诸如监视软件协议(参见图7进一步详细讨论的))的一个或多个节点(参见图6进一步详细讨论的)。在示例中,网络130可以包括联网代理/守护进程,该联网代理/守护进程将与被许可利用本发明的一个或多个实施例的应用相关联的网络流量路由到系统102。可替代地,网络130可以将与未被许可使用本发明的实施例的应用相关联的网络流量路由到云计算环境50内的另一节点。
网络130可以是(例如)局域网(LAN)、电信网络、无线局域网(WLAN)(如内联网)、广域网(WAN)(如互联网)、或前述各项的任何组合,并且可以包括有线、无线或光纤连接。通常,根据本发明的实施例,网络130可以是将支持系统102与存储装置120A通过存储装置120N之间的通信的连接和协议的任何组合。在不同实施例中,网络130经由有线、无线或光学连接在本地操作,并且可以是连接和协议的任何组合(例如,个域网(PAN)、近场通信(NFC)、激光、红外线、超声波等)。在一些实施例中,网络130的实例是连接云计算环境50的两个或更多个虚拟化实体(未示出)的虚拟LAN(VLAN)。在其他实施例中,网络130表示环境100的实例内的一个或多个LAN和/或VLAN,环境100是使系统102与存储装置120A之间通过存储装置120N能够进行通信的联网计算环境。
在一个实施例中,存储装置120A至存储装置120N表示相应不同地理位置的多个存储系统。在不同实施例中,存储装置120A至存储装置120N中的一个或多个被包括在云存储系统和/或云计算环境内。在一些实施例中,托管存储装置120的相应实例的云存储系统和/或云计算环境对应于两个或更多个不同的供应商或云服务提供者。在另一实施例中,存储装置120A至存储装置120N表示与系统102相关联的联网计算环境、分布式计算环境等的多个存储系统和/或存储设备。
图2是描绘根据本发明的实施例的安全数据分发程序200的操作步骤的流程图,安全数据分发程序200是通过编码数据、将编码的数据分发成较小的数据集、以及将较小的数据集传送到多个存储位置来安全地存储数据的程序。在不同实施例中,由安全数据分发程序200识别和/或更新的一些信息随后由安全数据重构程序300的各方面利用以检索和重构分布式存储的数据。
在步骤202中,安全数据分发程序200识别用于分布式存储的数据。在一个实施例中,安全数据分发程序200基于从用户、程序、安全功能获得的信息和/或基于与数据相关联的安全规则来识别数据104内的用于分布式存储的数据。在一些实施例中,安全数据分发程序200确定与用于安全分布式存储的数据相关联的其他信息,例如,与在其中分发数据的存储位置的数量对应的值或值的范围,与数据密钥相关联的规定(例如,密钥长度、密钥ID、与数据密钥相关的规则等),在包括要存储的数据的元素之间识别的最大值等。在另一实施例中,安全数据分发程序200确定与数据密钥105内的用于安全分布式存储的数据相关联的信息、安全算法106和/或存储信息107。安全数据分发程序200可以识别与用于安全分布式存储的数据相关联的约束,诸如成本或政府规定。
在一个实施例中,安全数据分发程序200可以利用安装在系统102上的各种功能和/或程序(未示出)来执行各种数学,统计、转换等,获取分布式存储数据的相关信息,如对应于数据的大小,与数据相关的max_val、密钥(key)元素和数据的索引值,以及生成链接与用于分布式存储的数据相关联的信息的表/关联阵列。在不同实施例中,安全数据分发程序200还识别与用于分布式存储的数据相关联地利用的一组算法,诸如数据编码、数据分块和数据分发算法。
在步骤204中,安全数据分发程序200确定用于数据的分布式存储的位置集合。在一个实施例中,安全数据分发程序200基于存储信息107中可用的信息来确定用于数据的分布式存储的位置和/或存储ID的集合。随后,安全数据分发程序200可包括和/或更新与存储信息107内的数据的分布式存储相关的其他信息。在不同实施例中,安全数据分发程序200利用网络130轮询一个或多个云存储提供者以识别可用于存储包括用于分布式存储的数据的编码数据块的位置,诸如存储装置120A至存储装置120N。在一个实施例中,安全数据分发程序200基于与用于分发存储的数据相关联的存储位置的数量相关的信息来确定位置集合(在步骤202中)。
在另一个实施例中,安全数据分发程序200基于响应于轮询该一个或多个云存储提供者而识别的可用位置的数量来确定用于数据的分布式存储的位置集合。在一些实施例中,除了由与用于分布式存储的数据相关联的信息规定的存储位置的数量之外,安全数据分发程序200还识别一个或多个存储位置。随后,安全数据分发程序200利用一个或多个约束或规则来确定用于该数据的分布式存储的该位置集合。在其他实施例中,安全数据分发程序200基于不同于云存储环境的一个或多个存储架构确定用于数据的分布式存储的存储位置集合。
在步骤206中,安全数据分发程序200对用于分布式存储的数据进行编码。安全数据分发程序200利用一个或多个编码算法来生成编码数据的多个元素,其分别与用于分布式存储的原始数据的多个元素相关联。在一个实施例中,安全数据分发程序200利用由与用于安全分布式存储的数据相关联的信息规定的安全算法106内的一个或多个编码算法对用于分布式存储的数据进行编码。在另一实施例中,安全数据分发程序200利用选自安全算法106的一个或多个编码算法对用于分布式存储的数据进行编码。
在一些实施例中,安全数据分发程序200利用一个或多个编码算法,其通过应用来自数据密钥的一个或多个数值来进一步模糊编码的数据(关于图4进一步详细讨论)。如果安全数据分发程序200确定数据密钥基于一个或多个规则和/或包括非数字字符,则安全数据分发程序200利用一个或多个转换和/或规则来生成包括数值的数据密钥的版本。在不同实施例中,安全数据分发程序200基于所识别的与对安全分布式存储的数据进行编码相关的信息来更新与安全分布式存储的数据相关联的信息,诸如max_val变量、来自数据密钥105的数据密钥、标识一个或多个所利用的编码算法的信息,数据密钥的数字版本、对应于编码的数据的校验和/或散列值,等等。
在步骤208中,安全数据分发程序200在多个编码数据块之间分发编码数据。在一实施例中,安全数据分发程序200将编码数据分发到对应于所确定的存储位置集合内的存储位置的数量的编码数据块(例如,nb_chunk)的数量中。安全数据分发程序200还可确定和/或关联信息,诸如对应于已编码数据块的ID、序列信息和大小值(将参考图4进一步详细讨论)、每个编码数据块的校验和/或散列值等。
在一些实施例中,安全数据分发程序200利用安全算法106内的一个或多个数据分块和数据分发算法,并根据与用于分布式存储的数据相关联的信息(先前关于安全算法106所讨论的)所规定,分发编码的数据。在另一实施例中,安全数据分发程序200利用从安全算法106中选择的一个或多个数据分块和数据分发算法来分发编码的数据。在不同实施例中,如果安全数据分发程序200确定所利用的编码算法包括数据元素内依赖性,则安全数据分发程序200利用与数据元素内依赖性兼容的数据分发算法(将参考图4进一步详细讨论)。
在步骤210中,安全数据分发程序200发送多个编码数据块以存储在位置集合中。在不同实施例中,安全数据分发程序200执行一个或多个通信协议以建立通信并经由网络130认证(例如,建立访问)存储编码数据块的所确定的基于云的存储位置集合(例如,在存储装置120A至存储装置120N之间)。在一个实施例中,响应于安全数据分发程序200接收到每个所传输的编码数据块被成功存储的确认,安全数据分发程序200从数据104中删除原始数据。在一些实施例中,如果安全数据分发程序200不能将编码数据块存储在所确定的存储位置集合中的存储位置(例如,认证失败、超时、连接问题、问题、另一可用性问题等)内,然后,安全数据分发程序200从所确定的一个或多个附加的(例如,替代的)存储位置中选择用于编码数据块的另一存储位置。
在一实施例中,响应于安全数据分发程序200接收到所传输的编码数据块中的每一个被成功存储的确认,安全数据分发程序200更新标识与编码数据块对应的位置的存储信息107。安全数据分发程序200基于与数据的分布式存储相关的信息来更新存储信息107,诸如更新元数据信息和/或存储与数据的分布式存储相关的信息的其他数据结构(例如,数据库、表、关联阵列等)。
图3是描绘根据本发明的实施例的安全数据重构程序300的操作步骤的流程图,该安全数据重构程序是通过检索、重组和解码被分发用于在多个位置之间进行安全存储的多个编码数据块来恢复被分发用于安全存储的数据的程序。
在步骤302中,安全数据重构程序300识别与分布式存储的数据有关的信息。安全数据重构程序300可以基于从利用系统102的一个或多个实体(诸如用户、软件应用程序和/或系统功能)接收请求而对检索分布式存储的数据并将其恢复到系统102的请求作出响应。在一个实施例中,安全数据重构程序300基于存储信息107内的信息来识别与分布式存储的数据有关的信息。在示例中,安全数据重构程序300标识与分布式存储的数据有关的存储信息107内的信息,诸如块ID、与编码的数据块相关的序列(例如,块ID序列),与编码数据块对应的存储位置、用于为分布式存储准备数据的一组安全算法,对数据进行编码时应用的数据密钥等。安全数据重构程序300还可识别用于存储重构数据的指定位置。在一些实施例中,安全数据重构程序300还识别分布式数据的其他信息,诸如安全数据分发程序200是否利用备份(例如,复制)策略来分发编码数据块的额外副本,数据完整性验证信息,以及与编码数据块的额外副本的存储相关的信息。
在步骤304中,安全数据重构程序300检索对应于分布式存储的数据的编码数据块。安全数据重构程序300利用与存储信息107内的分布式存储数据相关的所识别信息来识别与对应于分布式存储数据的编码数据块对应的存储位置。在一些实施例中,安全数据重构程序300执行一个或多个通信协议以建立通信并经由网络130认证(例如,建立访问)存储要检索的编码数据块的存储装置120的实例。在各种实施例中,安全数据重构程序300从存储装置120A至存储装置120N中的识别的云存储位置(例如,不同的地理位置)检索编码数据块。
在另一实施例中,响应于安全数据重构程序300成功地检索对应于分布式存储数据的编码数据块,安全数据重构程序300从相应存储位置删除编码数据块。或者,基于与分布式存储的数据有关的信息,安全数据重构程序300可将编码的数据块留在相应的存储位置内。
在实施例中,如果安全数据重构程序300确定存储对应于分布式存储数据的编码数据块的一个或多个位置是不可访问的(例如,网络问题、服务器问题等),然后,安全数据重构程序300确定安全数据分发程序200是否利用复制策略来分发对应于分布式存储数据的编码数据块。响应于确定安全数据分发程序200利用复制策略,安全数据重构程序300从存储装置120A到存储装置120N中识别存储不能从主存储位置检索的编码数据块的一个或多个其他(例如,辅助、备选)位置。
在其他实施例中,仍参考步骤304,安全数据重构程序300利用各种通信方法来建立访问存储不同于或除了云存储位置的编码数据块的存储装置120A至存储装置120N的一个或多个其他实例,例如不同的存储节点、服务器、SAN系统和/或NAS系统。在实施例中,存储装置120A至存储装置120N的其他实例中的一个或多个可以在相同的地理和/或物理位置处。
在步骤306中,安全数据重构程序300从所检索的编码数据块重构编码数据。在实施例中,安全数据重构程序300利用一个或多个算法来重构包括在安全算法106中的数据和与分布式存储的数据有关的信息,以从分布到编码数据块中的多个编码数据元素重构编码数据。在一个实施例中,安全数据重构程序300利用块ID和/或块序列信息来重构(例如,重组、重建、再现)与分布式存储的数据对应的编码数据。在另一实施例中,安全数据重构程序300利用与编码数据块相关联的元数据来重构对应于分布式存储数据的编码数据。在不同实施例中,安全数据重构程序300利用一个或多个重构算法,其反转被应用到对应于分布式存储数据的原始编码数据的数据分块和数据分发算法的过程。
在步骤308中,安全数据重构程序300对重构的编码数据进行解码。安全数据重构程序300对与分布式存储的数据对应的重构的编码数据进行解码。在不同实施例中,安全数据重构程序300识别在步骤302中获得的与解码对应于分布式存储数据的编码数据相关的其他信息。在示例中,安全数据重构程序300识别用于对分布式存储的数据进行编码的数据密钥、与数据密钥相关的信息(例如,密钥大小、数据密钥生成规则等)、以及与用于对分布式存储的数据进行编码的编码算法相对应的解码算法。在一个实施例中,安全数据重构程序300通过利用存储在数据密钥105内的识别的数据密钥和包括在安全算法106内的相应的解码算法来解码重构的编码数据。在另一实施例中,安全数据重构程序300通过利用在存储信息107中包括的且与分布式存储的数据相关联的所识别的数据密钥和/或数据密钥生成规则来解码重构的编码数据。
图4是根据本发明的实施例的基于利用一组安全算法(例如,算法ED1、ED2、CD1、CD2、RE1、DE1和DE2)来对多个数据元素进行编码并随后分发编码数据的块的编码元素来准备包括多个数据元素的数据以用于安全分布式存储的说明性示例。图4还描绘了应用于安全分布式存储的数据的一些安全算法的各个方面的输出。
数据401是用于安全分布式存储的数据的示例。在实施例中,数据401具有与名称或其他标识符(例如,数据ID)相关的相关联元数据(未示出),如“A”。与数据401相关联的元数据可以被包括在存储信息107中。在说明性示例中,数据401由15个数据元素组成。在说明性示例中,行402描绘范围从0至14且对应于数据401的数据元素的索引位置(例如,索引值)。在所描绘的示例中,在索引位置i=0处,数据401内的对应数据元素的值为14,且在i=10处,对应数据元素的值为1。在实施例中,安全数据分发程序200确定(在步骤202中)max_val=24,以便对数据401的数据进行编码(例如,23+1)。另外,安全数据分发程序200决定与数据401内的数据的要素数对应的值(data_size=15)。
此外,安全数据分发程序200还基于与数据401相关联的信息,诸如与数据密钥相关联的规定的信息,确定分配给数据401的编码算法规定key_size=3的密钥。在所描绘的示例中,密钥403由三个元素组成:3、1和9,具有各自的索引位置0、1和2。在一实施例中,由于密钥403的三个元素是数值,安全数据分发程序200确定不需要密钥403内的信息的附加转换或操作。
在实施例中,安全数据分发程序200确定(在步骤202中)利用算法ED1和算法ED2(先前关于安全算法106所述),E[0]=(D[0]+K[0])%max_val并且E[i]=(E[i-1]+D[i-1]+D[i]+K[i%key_size])%max_val,对数据401进行编码以用于安全分布式存储。
在一个实例中,安全数据分发程序200对数据401进行编码(在步骤206中)。在实施例中,示例编码函数的项K[i%key_size]循环地应用来自数据401的元素当中的数据密钥403的值以进行编码。在说明性示例中,字符串404是应用于密钥403的项K[i%key_size]的输出。基于示例编码算法对内的项K[0]和K[i],分别将字符串404的每个元素应用于具有相应索引值的数据401的元素的数据值。例如,对于i=6,K[6]=3,并且响应于数据401的数据D[6]的编码元素(即,17)而被利用。
在说明性示例中,编码数据410描绘了输出安全数据分发程序200利用密钥403和算法ED1和算法ED2对数据401进行编码。在实施例中,数据401的数据的元素的索引值还对应于编码数据410的数据的元素的索引值。在一些实施例中,安全数据分发程序200还确定(在步骤206中)至少一个规定的编码算法包括数据内元素依赖性。例如,以上编码算法包括与先前编码值(即,E[i-1])和数据元素的对应先前值(即,D[i-1])相关联的数据内元素依赖性。
在实施例中,安全数据分发程序200确定(在步骤204中)与用于接收要存储的分发数据(即,数据401)的站点的数量相对应的值是四;因此,要创建的数据或块的子集的数量是四(例如,nb_chunk=4)。进一步,响应于安全数据分发程序200确定用于编码数据401的算法(即,算法ED2)包括一个或多个数据内元素依赖性,安全数据分发程序200确定编码的数据410被分发成四个块,并且限制每个数据块包括具有连续的对应索引值的数据元素,诸如编码数据410的E[5]和E[6]。在一些实施例中,块的索引值“c”分别与对应于分布式存储的数据块的标识符(ID)(如元素420的块ID)相关联。
在说明性示例中,块ID1与块430A相关联,块ID2与块430B相关联,块ID3与块430C相关联,块ID4与块430D相关联。在一些实施例中,安全数据分发程序200识别与数据401的分布式存储相关联的一组安全算法包括一个或多个数据分块算法。数据分块算法的一个方面基于对应于该块的索引值来确定对应于包括在“块ID”内的元素数量的大小值。在示例实施例中,通过算法CD1确定与块相对应的大小。在示例中,与块430B相关联的块ID2具有块索引值=1和相应的大小值=4,指示编码数据410的四个元素将被分配给块430B。
在实施例中,安全数据分发程序200将编码数据410循环地分发到四个编码数据块中。在所描绘的示例中,安全数据分发程序200利用数据分块算法来循环地确定对应于编码数据410内的编码数据的元素的索引值用于分发到四个数据块中。作为响应,安全数据分发程序200将对应于所确定的索引值的编码数据的元素分发(在步骤208中)到对应于块ID的块中。在说明性示例中,安全数据分发程序200利用算法CD2来将编码数据410分发成具有对应ID 1、2、3和4的块;其中,“c”对应于块的索引值,“j”表示对应于块内的元素的索引值。例如,将数据的第三块(即,块430C)的最后元素的索引值输入到算法CD2中产生C[2][3]=E[2+3*4]=E[14],其等于编码数据410内的值21。
在说明性示例中,通过对应于与元素420相关联的块ID的阴影描绘循环分布数据编码数据410。在一些实施例中,安全数据分发程序200利用指示与数据401相关联的编码数据的块的顺序的块ID。在示例中,在没有阴影的情况下描绘的编码数据410的元素对应于块ID1(即,编码值17、15、20和2),用斑点阴影描绘的对应于块ID2(即,编码值10、7、22和19),用交叉阴影线阴影描绘的对应于块ID3(即,编码值22、12、0和21),并且用高密度斑点阴影描绘的对应于块ID3(即,编码值9、9和14)。
在说明性示例中,块430A表示块ID1的编码数据的元素的集合和编码数据410的元素的对应次序。类似地,块430B表示块ID2的编码数据的元素的集合和编码数据410的元素的对应次序,块430C表示块ID3的编码数据的元素的集合和编码数据410的元素的对应次序,并且块430D表示块ID4的编码数据的元素的集合和编码数据410的元素的对应次序。
在不同实施例中,安全数据分发程序200生成与数据401相关联的元数据,该数据401涉及编码数据410的分布式存储。在说明性示例中,元数据431A表示与块430A相关的元数据。类似地,元数据431B表示与块430B相关的元数据,元数据431C表示与块430C相关的元数据,元数据431D表示与块430D相关的元数据。在实施例中,安全数据分发程序200生成指示对应于原始数据(例如,数据401)的数据ID、块ID标识符和位置标识符的元数据。元数据431描绘了元数据方案的示例。在所描绘的示例中,元数据431B是“A2+25”,其指示块430B与数据ID“A”和块ID“2”相关联;并且“+”是数据定界符的示例,定界符右侧的信息指示与存储相应的编码数据块相关联的存储标识符“25”。在不同实施例中,存储标识符对应于存储信息107内被标识为存储编码数据块的存储ID和/或存储位置(在图2中的步骤204和/或步骤208)。在实施例中,与编码数据块相关的元数据被包括在存储信息107内并且进一步与用于安全分布式存储的原始数据相关联。
应当理解,尽管本公开包括关于云计算的详细描述,但本文所述教导内容的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的、按需的网络访问的服务递送模型,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务的提供者的人类交互。
宽泛的网络访问:能力在网络上可用并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。
快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速向外扩展,并快速释放以快速向内扩展。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。
测量的服务:云系统通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象层次的计量能力来自动控制和优化资源使用。可监视、控制和报告资源使用,从而为所利用的服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,这些应用是使用由提供者支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供消费者能够部署和运行可包括操作系统和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础结构仅为组织操作。它可由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由若干组织共享并且支持具有共享的关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
公共云:使云基础架构对公众或大型产业组可用并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有云、社区云或公共云)的组成,这些云保持唯一实体但通过实现数据和应用便携性的标准化或专有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,关注于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
图5表示不同计算设备云计算节点10(所讨论的仅是合适的云计算节点的一个示例,并且不旨在对在此描述的本发明的实施例的使用范围或功能提出任何限制)。无论如何,云计算节点10能够被实现和/或执行本文描述的本发明的实施例的任何功能。
无论如何,云计算节点10能够被实现和/或执行上文阐述的任何功能。在示例性实施例中,云计算节点10代表系统102。在不同实施例中,云计算节点10可表示参见图7进一步讨论的硬件元件和/或计算设备(例如,基于RISC的服务器62、服务器63等)的硬件物理实例和/或硬件元件、计算设备(例如,虚拟服务器71、虚拟存储72、虚拟网络73等)的虚拟化实例。
如图5中所示,在一些实施例中,云计算节点10中的计算机系统500以通用计算设备(诸如系统102)的形式示出。在其他实施例中,计算机系统500表示连接到云计算环境50的一个或多个计算设备,诸如存储装置120A至存储装置120N。计算机系统500是包括软件和数据510的系统的示例。计算机系统500包括(多个)处理器501、存储器502、高速缓存503、永久性存储器505、通信单元507、(多个)输入/输出(I/O)接口506、以及通信结构504。
通信结构504提供存储器502、高速缓存503、持久性存储装置505、通信单元507和(多个)输入/输出(I/O)接口506之间的通信。通信结构504可以利用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构504可用一个或多个总线(诸如外围组件互连(PCI)总线或纵横开关)来实现。
存储器502和永久性存储器505是计算机可读存储介质。在该实施例中,存储器502包括随机存取存储器(RAM)。通常,存储器502可包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存503是通过保存来自存储器502的最近访问的数据以及最近访问的数据附近的数据来增强处理器501的性能的快速存储器。
用于实施本发明的实施例的程序指令和数据可存储在永久性存储器505和存储器502中,以便由各个处理器501中的一个或多个经由高速缓存503执行。在实施例中,永久性存储器505包括磁性硬盘驱动器。可替代地,或除了磁性硬盘驱动器之外,永久性存储器505可包括固态硬盘驱动器、半导体存储设备、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存或能够存储程序指令或数字信息的任何其他计算机可读存储介质。在实施例中,存储装置103被包括在持久性存储505中。
永久性存储器505所使用的介质也可以是可移除的。例如,可移除硬盘驱动器可用于永久性存储器505。其他示例包括光盘和磁盘、拇指驱动器和智能卡,其被插入到驱动器中以便转移到也是永久性存储器505的一部分的另一计算机可读存储介质上。软件和数据510存储在永久存储器505中,以便由各个处理器501中的一个或多个经由高速缓存503和存储器502的一个或多个存储器访问和/或执行。关于系统102,软件和数据510包括数据104、数据密钥105、安全算法106、存储信息107、安全数据分发程序200、安全数据重构程序300和不同程序(未示出)。关于存储装置120A至存储装置120N,软件和数据510分别包括不同程序和数据(未示出)。
在这些实例中,通信单元507提供与其他数据处理系统或设备(包括系统102和存储装置120A至存储装置120N的资源)的通信。在这些实例中,通信单元507包括一个或多个网络接口卡。通信单元507可以通过使用物理和无线通信链路之一或两者来提供通信。用于实施本发明的实施例的程序指令和数据可通过通信单元507下载到永久性存储器505。
(一个或多个)I/O接口506允许与可以连接到每个计算系统的其他设备(诸如节点10的实例)的数据输入和输出。例如,(一个或多个)I/O接口506可以提供到(一个或多个)外部设备508的连接,诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备。(一个或多个)外部设备508还可包括便携式计算机可读存储介质,例如诸如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据510可存储在此类便携式计算机可读存储介质上,并且可经由I/O接口506加载到永久性存储器505上。I/O接口506还连接到显示器509。
(一个或多个)I/O接口506还允许一个或多个设备与计算机系统/服务器500交互;和/或使计算机系统/服务器500能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可经由I/O接口506发生。此外,计算机系统/服务器500可以经由通信单元507与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器500结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
显示器509提供用于向用户显示数据的机制,并且可以是例如计算机监视器。显示器509还可充当触摸屏,例如平板计算机或智能电话的显示器。
图6描绘了云计算环境50的说明性示例。如图所示,云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或移动电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N)可与云计算节点10通信。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应当理解,图6中示出的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。此外,根据本发明的实施例,云计算节点10和计算设备54A-N的实例可包括先前参见图5进一步详细描绘和描述的组件。
图7示出由云计算环境50(图6)提供的功能抽象层的说明性集合。应预先理解,图7中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个实例中,管理层80可提供下文所描述的功能。资源供应81提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或发票。在一个示例中,这些资源可以包括应用软件许可证。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行85提供云计算资源的预安排和采购,根据SLA预期该云计算资源的未来要求。安全86为云消费者和任务提供身份验证,以及对数据和其他资源的保护。在各种实施例中,安全86包括一个或多个基于系统的功能和/或订阅的服务(例如,安全数据分发程序200和安全数据重构程序300),其通过在不同的物理位置处的硬件和软件层60的多个服务器或存储系统之间分发编码和组块的数据来保护用户或企业的数据。在一些实施例中,安全86利用管理层80的其他方面来获得对不同供应商或云存储提供者的硬件和软件层60内的资源的访问以存储用户或企业的编码和块的数据。
工作负载层90提供可利用云计算环境的功能性的实例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;交易处理95;以及数据安全96。在不同实施例中,作为安全86的替代或补充,数据安全96包括一个或多个软件应用程序,诸如安全数据分发程序200和安全数据重构程序300,用户调用该安全数据重构程序300以通过在不同物理位置处的硬件和软件层60的多个服务器或存储系统之间分发编码和分块的数据来保护云内的数据。
本文中所描述的程序是基于其在本发明的特定实施例中实施的应用来识别的。然而,应当理解,本文中的任何特定程序命名法仅为了方便而使用,因此本发明不应限于仅在由这种命名法识别和/或暗示的任何特定应用中使用。
本发明可以是系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及常规的过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供者的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可加载到计算机、其他可编程数据处理设备上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,在框中标注的功能可以不以图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
出于说明的目的已经呈现了本发明的不同实施例的描述,但并非旨在是穷尽性的或局限于所披露的实施例。在不脱离本发明的范围和精神的情况下,许多修改和变化对本领域的普通技术人员将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场中发现的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。

Claims (14)

1.一种用于安全地存储数据的方法,所述方法包括:
由一个或多个计算机处理器接收存储数据的请求,其中所述数据包括多个元素;
由一个或多个计算机处理器将所述数据的所述多个元素转换为多个相应的数值,其中所述多个相应的数值分别与索引值相关联,并且其中索引值[i]开始于零索引值;
由一个或多个计算机处理器基于一个或多个规定通过将一个或多个编码算法应用于所述数据的所述多个元素的转换的多个对应数值来生成编码数据值的多个元素,其中
(i)所述编码数据值的多个元素的数量等于所述数据的元素的数量;
(ii) 所述编码数据值的多个元素被表示为数值;
(iii)所述一个或多个编码算法中的第一编码算法排除来自所述一个或多个规定中的第一规定的与[i]=0的索引值相关联的编码数据值的多个元素中的第一元素;以及
(iv)所述第一规定指示所述第一编码算法利用与索引值[i-1]相关联的编码数据值的数值和来自与索引值[i-1]相关联的所述数据的所述多个元素的数据的转换的元素的数值,生成与索引值[i]相关联的所述数据的所述多个元素中的数据的转换的元素相对应的编码的数据值;以及
由一个或多个计算机处理器将所述编码数据值的所述多个元素分发到所述编码数据值的两个或更多个子集中而不重复;以及
由一个或多个计算机处理器将所述编码数据值的所述两个或更多个子集传输至相应数量的两个或更多个存储系统。
2.如权利要求1所述的方法,进一步包括:
由一个或多个计算机处理器基于安全性规定来确定进一步模糊所述数据的所述多个元素的编码;
由一个或多个计算机处理器在对所述数据的所述多个元素进行编码时,选择要应用的数据密钥,其中所述数据密钥包括两个或更多个数值,并且其中包括在数据密钥中的数值的数量小于包含在所述数据的所述多个元素中的元素的数量;以及
由一个或多个计算机处理器与应用所述第一编码算法相关联地应用从所述数据密钥循环选择的数值到所述数据的转换的多个元素,其中所述从所述数据密钥循环选择数值还包括:由一个或多个计算机处理器利用第一模运算生成余数值,其中分别与所述数据转换的多个元素中的元素的数值相关联的所述索引值是所述第一模运算的被除数,并且包含在所述数据密钥中的数值的数量是所述第一模运算的除数。
3.如权利要求1所述的方法,其中,将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复进一步包括:
由一个或多个计算机处理器以循环方式将所述编码数据值的所述多个元素中的后续元素分发到所述编码数据值的所述两个或更多个子集中。
4.如权利要求1所述的方法,其中,将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复进一步包括:
由一个或多个计算机处理器基于至少所述第一编码算法的结构来确定对应于所述编码数据值的先前元素的值被用于对所述数据的后续元素的值进行编码;以及
由一个或多个计算机处理器将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中,使得所述编码数据值的所述后续元素被分配到所述编码数据值的子集,所述子集不同于所述编码数据值的另一子集,所述子集包括用于对所述编码数据值的所述后续元素进行编码的所述编码数据值的所述先前元素的值。
5.如权利要求1所述的方法,其中,所述两个或更多个存储系统是在不同地理位置的存储系统。
6.一种用于安全地存储数据的计算机可读存储介质,所述计算机可读存储介质包括程序指令,所述程序指令可由一个或多个计算机处理器读取/执行,所述程序指令包括:
用于接收存储数据的请求的程序指令,其中所述数据包括多个元素;
用于将所述数据的所述多个元素转换为多个相应的数值的程序指令,其中所述多个相应的数值分别与索引值相关联,并且其中索引值[i]开始于零索引值;
用于基于一个或多个规定通过将一个或多个编码算法应用于所述数据的所述多个元素的转换的多个对应数值来生成编码数据值的多个元素的程序指令,其中,所述编码数据值的所述多个元素的数量等于所述数据的所述多个元素的数量,所述编码数据值的多个元素被表示为数值,所述一个或多个编码算法中的第一编码算法排除来自所述一个或多个规定中的第一规定的与[i]=0的索引值相关联的编码数据值的多个元素中的第一元素,并且所述第一规定指示所述第一编码算法利用与索引值[i-1]相关联的编码数据值的数值和来自与索引值[i-1]相关联的所述数据的所述多个元素的数据的转换的元素的数值,生成与索引值[i]相关联的所述数据的所述多个元素中的数据的转换的元素相对应的编码的数据值;
用于将所述编码数据的所述多个元素分发到所述编码数据的两个或更多个子集中而不重复的程序指令;以及
用于将所述编码数据的所述两个或更多个子集传输至相应数量的两个或更多个存储系统的程序指令。
7.如权利要求6所述的计算机可读存储介质,进一步包括:
用于基于安全性规定来确定进一步模糊所述数据的所述多个元素的编码的程序指令;
用于在对所述数据的所述多个元素进行编码时,选择要应用的数据密钥的程序指令,其中所述数据密钥包括两个或更多个数值,并且其中包括在数据密钥中的数值的数量小于包含在所述数据的所述多个元素中的元素的数量;以及
与应用所述第一编码算法相关联地应用从所述数据密钥循环选择的数值到所述数据转换的多个元素的程序指令,其中所述从所述数据密钥循环选择数值还包括:用于利用第一模运算生成余数值,其中分别与所述数据转换的多个元素中的元素的数值相关联的所述索引值是所述第一模运算的被除数,并且包含在所述数据密钥中的数值的数量是所述第一模运算的除数。
8.如权利要求6所述的计算机可读存储介质,其中,用于将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复的程序指令进一步包括:
用于以循环方式在编码数据值的所述两个或两个以上子集中分发编码数据值的所述多个元素中的后续元素的程序指令。
9.如权利要求6所述的计算机可读存储介质,其中,用于将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复的程序指令进一步包括:
用于基于至少所述第一编码算法的结构来确定对应于所述编码数据值的先前元素的值被用于对所述数据的后续元素的值进行编码的程序指令;以及
用以将编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中的程序指令,使得所述编码数据值的所述后续元素被分配到所述编码数据值的子集,所述子集不同于所述编码数据值的另一子集,所述子集包括用于对所述编码数据值的所述后续元素进行编码的所述编码数据值的所述先前元素的值。
10.如权利要求6所述的计算机可读存储介质,其中,所述两个或更多个存储系统是在不同地理位置的存储系统。
11.一种用于安全地存储数据的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质;以及
存储在所述计算机可读存储介质上的用于由所述一个或多个计算机处理器中的至少一个执行的程序指令,所述程序指令包括:
用于接收存储数据的请求的程序指令,其中所述数据包括多个元素;
用于将所述数据的所述多个元素转换为多个相应的数值的程序指令,其中所述多个相应的数值分别与索引值相关联,并且其中索引值[i]开始于零索引值;
用于基于一个或多个规定通过将一个或多个编码算法应用于所述数据的所述多个元素的转换的多个对应数值,其中来生成编码数据值的多个元素的程序指令,其中所述编码数据值的所述多个元素的数量等于所述数据的所述多个元素的数量,所述编码数据值的多个元素被表示为数值,所述一个或多个编码算法中的第一编码算法排除来自所述一个或多个规定中的第一规定的与[i]=0的索引值相关联的编码数据值的多个元素中的第一元素;以及所述第一规定指示所述第一编码算法利用与索引值[i-1]相关联的编码数据值的数值和来自与索引值[i-1]相关联的所述数据的所述多个元素的数据的转换的元素的数值,生成与索引值[i]相关联的所述数据的所述多个元素中的数据的转换的元素相对应的编码的数据值;以及
用于将所述编码数据值的所述多个元素分发到所述编码数据值的两个或更多个子集中而不重复的程序指令;并且
用于将所述编码数据值的所述两个或更多个子集传输至相应数量的两个或更多个存储系统的程序指令。
12.如权利要求11所述的计算机系统,进一步包括:
用于基于安全性规定来确定进一步模糊所述数据的所述多个元素的编码的程序指令;
用于在对所述数据的所述多个元素进行编码时,选择要应用的数据密钥的程序指令,其中所述数据密钥包括两个或更多个数值,并且其中包括在数据密钥中的数值的数量小于包含在所述数据的所述多个元素中的元素的数量;以及
与应用所述第一编码算法相关联地应用从所述数据密钥循环选择的数值到所述数据转换的多个元素的程序指令,其中所述从所述数据密钥循环选择数值还包括:由一个或多个计算机处理器利用第一模运算生成余数值,其中分别与所述数据转换的多个元素中的元素的数值相关联的所述索引值是所述第一模运算的被除数,并且包含在所述数据密钥中的数值的数量是所述第一模运算的除数。
13.如权利要求11所述的计算机系统,其中,用于将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复的程序指令进一步包括:
用于以循环方式将所述编码数据值的所述多个元素中的后续元素分布到所述编码数据值的所述两个或更多个子集中的程序指令。
14.如权利要求11所述的计算机系统,其中,用于将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中而不重复的程序指令进一步包括:
用于基于至少所述第一编码算法的结构来确定对应于所述编码数据值的先前元素的值被用于对所述数据的后续元素的值进行编码的程序指令;以及
用于将所述编码数据值的所述多个元素分发到所述编码数据值的所述两个或更多个子集中的程序指令,使得所述编码数据值的所述后续元素被分配到所述编码数据值的子集,所述子集不同于所述编码数据值的另一子集,所述子集包括用于对所述编码数据值的所述后续元素进行编码的所述编码数据值的所述先前元素的值。
CN202080027940.3A 2019-04-29 2020-03-23 用于安全地存储数据的方法和系统 Active CN113661490B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/397,392 US11151265B2 (en) 2019-04-29 2019-04-29 Secure data storage based on obfuscation by distribution
US16/397,392 2019-04-29
PCT/IB2020/052695 WO2020222049A1 (en) 2019-04-29 2020-03-23 Secure data storage based on obfuscation by distribution

Publications (2)

Publication Number Publication Date
CN113661490A CN113661490A (zh) 2021-11-16
CN113661490B true CN113661490B (zh) 2022-11-22

Family

ID=72917203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080027940.3A Active CN113661490B (zh) 2019-04-29 2020-03-23 用于安全地存储数据的方法和系统

Country Status (6)

Country Link
US (1) US11151265B2 (zh)
JP (1) JP7429086B2 (zh)
CN (1) CN113661490B (zh)
DE (1) DE112020002164T5 (zh)
GB (1) GB2598685B (zh)
WO (1) WO2020222049A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314874B2 (en) * 2020-01-08 2022-04-26 Bank Of America Corporation Big data distributed processing and secure data transferring with resource allocation and rebate
US11363029B2 (en) * 2020-01-08 2022-06-14 Bank Of America Corporation Big data distributed processing and secure data transferring with hyper fencing
US11321430B2 (en) * 2020-01-08 2022-05-03 Bank Of America Corporation Big data distributed processing and secure data transferring with obfuscation
US11334408B2 (en) * 2020-01-08 2022-05-17 Bank Of America Corporation Big data distributed processing and secure data transferring with fault handling
US11379603B2 (en) * 2020-01-08 2022-07-05 Bank Of America Corporation Big data distributed processing and secure data transferring with fallback control
US11580671B2 (en) * 2020-08-17 2023-02-14 Tencent America LLC Hash-based attribute prediction for point cloud coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109154880A (zh) * 2016-04-29 2019-01-04 国际商业机器公司 在分散存储网络中一致的存储数据

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3481470B2 (ja) 1998-10-19 2003-12-22 日本電気株式会社 データ等の不正改竄防止システム及びそれと併用される暗号化装置
JPWO2002029811A1 (ja) * 2000-10-02 2004-02-19 松下電器産業株式会社 記録媒体、その記録装置、その記録方法、その再生装置及びその再生方法
US20020080888A1 (en) * 2000-12-22 2002-06-27 Li Shu Message splitting and spatially diversified message routing for increasing transmission assurance and data security over distributed networks
US7636724B2 (en) * 2001-08-31 2009-12-22 Peerify Technologies LLC Data storage system and method by shredding and deshredding
JP4167476B2 (ja) 2002-11-19 2008-10-15 Necビッグローブ株式会社 データ保護・保管方法/サーバ
JP2004265194A (ja) 2003-03-03 2004-09-24 Matsushita Electric Ind Co Ltd 情報処理装置、および情報処理方法
US7953937B2 (en) * 2005-09-30 2011-05-31 Cleversafe, Inc. Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid
US20100091986A1 (en) 2006-11-10 2010-04-15 Laputa, Inc. Information Management System and Encryption System
US8412926B1 (en) 2007-04-11 2013-04-02 Juniper Networks, Inc. Using file metadata for data obfuscation
GB0711711D0 (en) 2007-06-15 2007-07-25 Ibm Method and system for encryption of blocks of data
JP2009122731A (ja) 2007-11-12 2009-06-04 Osamu Kameda 安全にファイルを送信し及び/又は管理するシステム
US10565065B2 (en) 2009-04-28 2020-02-18 Getac Technology Corporation Data backup and transfer across multiple cloud computing providers
JP2011119985A (ja) 2009-12-03 2011-06-16 Hitachi Ltd 暗号復号方法
US11301592B2 (en) 2010-01-28 2022-04-12 Pure Storage, Inc. Distributed storage with data obfuscation and method for use therewith
US8607122B2 (en) * 2011-11-01 2013-12-10 Cleversafe, Inc. Accessing a large data object in a dispersed storage network
US9986236B1 (en) 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
US9280678B2 (en) 2013-12-02 2016-03-08 Fortinet, Inc. Secure cloud storage distribution and aggregation
US10270590B2 (en) 2013-12-16 2019-04-23 Mcafee, Llc Process efficient preprocessing for any encryption standard
US9665429B2 (en) * 2014-02-26 2017-05-30 International Business Machines Corporation Storage of data with verification in a dispersed storage network
US8997248B1 (en) 2014-04-04 2015-03-31 United Services Automobile Association (Usaa) Securing data
US9565253B2 (en) 2014-07-21 2017-02-07 International Business Machines Corporation Scalable approach to manage storage volumes across heterogenous cloud systems
CN106059748B (zh) 2016-05-10 2019-07-12 东南大学 一种基于块安全再生码的轻量级数据安全存储方法
US10613935B2 (en) 2017-01-31 2020-04-07 Acronis International Gmbh System and method for supporting integrity of data storage with erasure coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109154880A (zh) * 2016-04-29 2019-01-04 国际商业机器公司 在分散存储网络中一致的存储数据

Also Published As

Publication number Publication date
GB2598685A (en) 2022-03-09
US20200342128A1 (en) 2020-10-29
JP7429086B2 (ja) 2024-02-07
GB2598685B (en) 2022-07-27
JP2022530947A (ja) 2022-07-05
CN113661490A (zh) 2021-11-16
GB202117023D0 (en) 2022-01-12
US11151265B2 (en) 2021-10-19
WO2020222049A1 (en) 2020-11-05
DE112020002164T5 (de) 2022-01-20

Similar Documents

Publication Publication Date Title
CN113661490B (zh) 用于安全地存储数据的方法和系统
US10754954B2 (en) Securely exchanging information during application startup
US10601580B2 (en) Secure order preserving string compression
US11182097B2 (en) Logical deletions in append only storage devices
US10976953B2 (en) Optimized data replication in multi-tier storage environment
US11157645B2 (en) Data masking with isomorphic functions
US11556659B1 (en) Partially encrypted snapshots
US11036705B2 (en) Traversal of dispersed lockless concurrent index nodes
US11436009B2 (en) Performing composable transactions in a dispersed storage network
US11262934B2 (en) Deletion of stored data
CN115485677A (zh) 在分布式数据存储环境中的安全数据复制
US10585750B2 (en) Slice-embedded object metadata
US11526534B2 (en) Replicating data changes through distributed invalidation
US11283869B2 (en) Data governance in a dispersed storage network using bucket templates
US20230289079A1 (en) Rapid data replication and data storage
US11122120B2 (en) Object notification wherein compare and swap is performed
US20230091577A1 (en) Heterogenous replication in a hybrid cloud database
US20220179557A1 (en) Multi-dimensional data recovery
US20230418961A1 (en) Fine granularity read access to generational safeguarded copy data

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