CN104573557B - 云端数据储存方法及装置和云端数据还原方法 - Google Patents
云端数据储存方法及装置和云端数据还原方法 Download PDFInfo
- Publication number
- CN104573557B CN104573557B CN201510029007.0A CN201510029007A CN104573557B CN 104573557 B CN104573557 B CN 104573557B CN 201510029007 A CN201510029007 A CN 201510029007A CN 104573557 B CN104573557 B CN 104573557B
- Authority
- CN
- China
- Prior art keywords
- data
- reconstruct
- cloud
- subdata
- storage
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了云端数据储存方法及装置和云端数据还原方法,涉及数据安全领域。本发明实施例提供的云端数据储存方法,采用两次重构的方式替代了只由云端执行加密的方式,通过先由终端使用第一重构规则进行了一次重构,生成第一重构数据后,再将第一重构数据发送至云端进行第二次重构,以保证了即使云端将第二会重构规则泄露出去,单纯使用第二重构规则也无法还原出最基本的数据,从而保证了将第二重构存储在任意网络端均是安全的。
Description
技术领域
本发明涉及数据安全领域,具体而言,涉及云端数据储存方法及装置和云端数据还原方法。
背景技术
随着互联网技术的不断发展,目前基于各种云架构的产品层出不穷,云计算和云储存便是近年来新兴起来的技术类型。其中,云存储就是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连接网络的装置连接到云端,以方便地存取数据。云存储技术的载体是云端系统,具体的,云端系统包括公有云和私有云。私有云安全但不便于大规模调用,公有云的安全性从实际上和心理上都感觉会弱一些,但各种运算资源、存储资源和带宽资源都相对好的多。因此,很多用户都面临要将自己的数据存入公共网络而又面临安全问题的窘境。
但,由于数据储存在云端时,以储存数据的读取有时是难以受到使用者约束的(如黑客恶意盗取、云端管理者使用等)。因此,使用者为了保证其数据的安全性,通常采用对存储的数据进行加密的方式来保证其数据的安全性,也就是通过对需要存储的数据进行加密,即使盗取数据的人获得了数据,由于其不知道解密秘钥,也无法知悉数据的内容(通常解密秘钥和加密秘钥是储存在本地,由数据的储存者所掌握的,其他人难以知晓),也就保证了储存数据的安全性。
即使通过对待储存的数据进行加密,通常也难以保证数据的绝对安全。如密码无意中的泄露、密码的反破解,随着时间的推移,密码的安全性是越来越低的,因此,为了保证云端数据的安全,数据的储存者通常需要根据需要定时,或者在某些情况下对已经储存到云端的数据进行密码的更换。
目前业界普遍采用的云端密码修改方法是终端加密的处理方式。数据上传至云端并进行储存后,在需要更换加密方式时,首先终端从云端下载需要更换密码的数据,终端使用原规则解密后再用新的加密规则对数据进行加密,然后重新上传至云端,云端则再次对重新加密后的数据进行储存。但,可以预想的,此种密码修改方式必然会极大地浪费了带宽和操作者时间(当数据量过大的时候,云端将待修改密码的数据进行汇总和传输的工作量已经是相当巨大,占用云端系统空间严重,同样也会加大网络负载和终端系统的负载);可以,如果在云端变更数据密码,又很容易泄漏数据变更规则,从而失去数据保密的意义。
发明内容
有鉴于此,本发明实施例的目的在于提供云端数据储存方法,以提高存储数据的安全性。
第一方面,本发明实施例提供了云端数据重构方法,包括:
获取第一重构数据,所述第一重构数据是终端将待重构数据使用第一重构规则重构后生成的;
根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据;
将所述第二重构数据储存到指定的网络端。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述将所述第二重构数据储存到指定的网络端包括:
按照预设的存储规则,将所述第二重构数据分别存储到多个云端。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述按照预设的存储规则,将所述第二重构数据分别存储到多个云端包括:
按照预设的分割比例,将所述第二重构数据分割为多个第一子数据段;
按照预设的储存比例,将多个所述第一子数据段分别储存到公有云和私有云中。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述第二重构规则包括多个重构算法;
所述根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据包括:
分别在多个云端使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述分别在多个云端使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据包括:
分别由不同的云端依次使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述分别在多个云端使用不同的重构算法,对所述第一重构数据进行重构,以生成第二重构数据包括:
分别由不同的云端按照不同的重构算法,对所述第二子数据段进行重构,所述第二子数据段是由所述第一重构数据分割后得到的;
将经过重构的多个第二子数据段组成所述第二重构数据。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据包括:
将所述第一重构数据分割为多个第三子数据段;
按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据包括:
确定全部第三子数据段的存储位置顺序;
分别将每个第三子数据段移动预定个数的储存位置后储存;
在指定数量的第三子数据段移动位置并储存之后,将全部的第三子数据段合并为第二重构数据。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,在所述分别将每个第三子数据段移动预定个数的储存位置后储存之前还包括:
将指定的一个或多个无效数据段作为第三子数据段。
结合第一方面,本发明实施例提供了第一方面的第九种可能的实施方式,其中,所述分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,移动每个第三子数据段,并在将指定的所述第三子数据段累计移动预定个数的储存位置之后储存,且累计移动预定个数的储存位置时,跳过已经存储有移动后的第三子数据段的存储位置。
结合第一方面,本发明实施例提供了第一方面的第十种可能的实施方式,其中,所述分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,将每个第三子数据段向后或向前移动至第X个储存位置后储存,X=(第三子数据段当前位置+Y)/Z求余,其中,Y为预设的移动位移,Z为需要移动的第三子数据段的总数,且若任一待存储第三子数据段向后或向前移动后的储存位置已经存储有移动后的第三子数据段,则将所述带存储第三子数据段储存至下一个存储位置。
结合第一方面,本发明实施例提供了第一方面的第十一种可能的实施方式,其中,多次执行步骤所述分别将每个第三子数据段移动预定个数的储存位置后储存。
结合第一方面,本发明实施例提供了第一方面的第十二种可能的实施方式,其中,所述将所述第一重构数据分割为多个第三子数据段包括:
将所述第一重构数据分割为质数个第三子数据段。
结合第一方面,本发明实施例提供了第一方面的第十三种可能的实施方式,其中,还包括对预先获取的源数据中的基础字段进行拆分,以生成主数据和拆分数据,所述基础字段是原数据表达含义的基本单位;
将主数据和拆分数据按照预设的排列顺序以组成待重构数据。
第二方面,本发明实施例还提供了云端数据重构装置,包括:
获取模块,用于获取第一重构数据,所述第一重构数据是终端将待重构数据使用第一重构规则重构后生成的;
重构模块,用于根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据;
储存模块,用于将所述第二重构数据储存到指定的网络端。
第三方面,本发明实施例提供了云端数据还原方法,基于云端数据重构方法,包括:
获取存储于云端的第二重构数据;
根据所述第二重构规则将所述第二重构数据还原为第一重构数据;
根据所述第一重构规则将所述第一重构数据解密为源数据。
本发明实施例提供的云端数据储存方法,采用两次重构的方式替代了只由云端执行加密的方式,与现有技术中的只由单一云端执行加密,从而容易造成执行加密动作的云端会造成泄密,从而造成数据的安全性较低相比,其通过先由终端使用第一重构规则进行了一次重构,生成第一重构数据后,再将第一重构数据发送至云端进行第二次重构,以保证了即使云端将第二会重构规则泄露出去,单纯使用第二重构规则也无法还原出最基本的数据,从而保证了将第二重构存储在任意网络端均是安全的。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的云端数据储存方法的基本流程图;
图2示出了本发明实施例所提供的云端数据储存方法的第三子数据块位置示意图;
图3示出了本发明实施例所提供的云端数据储存装置的基本模块图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了云端数据储存方法,如图1所示,包括如下步骤:
S101,获取第一重构数据,第一重构数据是终端将待重构数据使用第一重构规则重构后生成的;
S102,根据预先获取的第二重构规则对第一重构数据进行重构,以确定第二重构数据;
S103,将第二重构数据储存到指定的网络端。
在云计算技术蓬勃发展的同时,伴随云计算技术应运而生的关联技术也在飞速发展,其中之一便是云存储。云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。云存储通常是需要用户使用终端(如PC)将需要存储到云端的数据发送到指定的云端,并由云端根据该用户的标识码和用户提供的信息将数据储存到指定的位置。当用户在其他位置(主要是其他终端)登录的时候,通过查找标识码和验证信息之后,便将已经存储到云端的指定数据发送给用户,从而完成云存储和云数据读取。
但随着网络技术的发展,网络泄密问题愈发严重,不只是存在于个人终端(PC)上的木马或者病毒,还有存在于网络上的木马和病毒,并且由于云存储的数据量过大,对这些大量的数据进行监管是很困的问题,尤其是保证用户数据的私密性方面,一直不尽人意。
有鉴于此,本发明提供了云端数据储存方法来克服该问题。首先,步骤S101中,先由终端使用第一重构规则对待重构数据进行第一次的重构。需要说明的是,终端指的可以是需要将数据存储到云端的用户所使用的网络终端(如PC)。重构是指将数据的存储顺序进行打乱,以保证打乱之后的数据不再表达原始数据的含义,或者打乱之后的数据根本无法再被正确的解读出来。如现有数据代码0-9,在打乱之后,就变为了2380567149,这样在打乱之后,即使有他人盗用了该数据,盗用数据的人也无法知悉该数据所代表的含义。进一步,重构还可以理解为:将用户需要储存的数据代码的基本单位进行分解,基本单位是指能够在字面上表达一个完整的含义,如中文中的“我”,在某种编码语言中被理解为103142,那么在进行重构的时候,可以将103142这一串编码中每个数字的顺序进行调整,如每位数字均前后推一位,就形成了031421,这样即使其他人读取了这个数据也无法知悉这个数据所表达的含义。当进行过第一次重构之后,如果读取该数据的人无法知悉该数据的重构方式则难以了解如何还原该数据,也就跟谈不上知悉该数据所表达的含义了。具体终端在执行第一次重构的时候,可以在断网的时候进行操作,或者说进行该次重构的时候不与网络服务器(如云端)发生数据交互,以避免云端知悉第一重构规则。
而后,步骤S102中,在云端获取到第一重构数据之后,根据预先获取到的第二重构规则,对第一重构数据在已经进行过一次重构的基础上再进行第二次重构,以生成第二重构数据。第二重构规则与第一重构规则的方式可以是相同,也可以是不同的(如都是采用对表达含义的最小单位的代码进行重构,或者是都可以是将表达含义的最小单位的储存位置进行调整,上述这两种方式都适用于第一重构规则和第二重构规则),需要说明的是,优选,第一重构规则和第二重构规则是不同的,不同指的是即使选择同一种重构方式,二者重构的规律也最好是不相同的(如:第一重构规则是将1-9这9个数字均向前移动两个位置,第二重构规则是将1-9这9个数字均向后移动三个位置)。这样能够保证即使知悉了第一重构规则或第二重构规则中的一个,也不能将第二重构数据还原为待重构的数据,从而保证了数据的安全性。通过使用了双重重构的方式,将待重构数据分别在终端和云端进行了两次重构,使得即使窃取方知悉了任何一端的加密方式也无法将第二重构数据还原成能够读取的程度,从而保证了数据的严密性。
具体的,第二重构规则可以是终端提供的(使用第一重构规则对待重构数据进行重构的终端),也可以是终端和云端(使用第二重构规则对第一重构数据进行重构的网络端)预先约定好的,还可以是由除终端(使用第一重构规则对待重构数据进行重构的终端)外,其他的网络终端所提供的,由此,可以进一步提高保密性。即使盗取数据者知悉了第一重构规则和第二重构规则,由于储存在云端的第二重构数据较多,难以辨别第一重构规则和第二重构规则对应的是哪个第二重构数据,从而使得保密性进一步加强了。
步骤S103中,在已经获得了第二重构数据之后,便可以按照预定的储存地址将第二重构数据储存起来,基于云存储的方式,可以将第二重构数据储存在私有云或者是公有云上,具体而言,公有云的方便大规模的调用,接入速度快,但安全性从心理和实际操作角度上来看要弱一些,私有云则不适合大规模的调用,但安全性相对公有云高一些。因此可以根据用户的要求,或者公有云和私有云的具体储存状况来确定将第二重构数据储存到哪个位置。
具体的,步骤S103,将第二重构数据储存到指定的网络端可以是:
按照预设的存储规则,将第二重构数据分别存储到多个云端。
也就是在进行云存储步骤的时候,为了防止某一个云端系统出现错误(如宕机),从而导致在网络终端需要读取存储与云端的数据时,却无法读取,因此,通过将第二重构数据分别存储到多个云端的时候则可以解决该问题,即使某一个云存储数据库(云端)宕机,用户仍然可以通过其他云存储数据库中得到需要的数据。
进一步,在进行存储的时候,步骤按照预设的存储规则,将第二重构数据分别存储到多个云端可以包括:
按照预设的分割比例,将第二重构数据分割为多个第一子数据段;
按照预设的储存比例,将多个第一子数据段分别储存到公有云和私有云中。
也就是可以将第二重构数据进行一次分割,将第二重构数据分成多个部分,如可以将0-9这10个代码(代码可以理解为分割后所形成的第一子数据段)分割为0-3,4-7,8-10这三个部分,在存储的时候,这三个部分分别存储到不同的云端上,从而保证了即使存储的云端中某一个系统被攻破了,由于其他云端依旧是安全的,并且第二重构数据是经过两次重构的,如果缺少某一部分则难以知悉其原有的含义,从而保证了第二重构数据所表达的含义难以被他人知悉。也就是保证了数据的安全性。
其中,在将第二重构数据分割为多个第一子数据段的时候,每个第一子数据段的长度可以是不相同的(也可以是一部分长度相同,一部分长度不同),从而使得,即使存储在不同云端中的第一子数据段的个数是相同的,而由于第一子数据段的长度不同,从而保证了实际存储与不同云端的数据总量是不同的,可以在安全性好的云端多存储一些数据。相类似的,如果每个第一子数据段的长度均是相同的,也可以通过调整存储与不同云端中第一子数据段的数量来调整存储的侧重点。当然,调整不同第一子数据段的长度和调整存储与不同云端的第一子数据段数量的方式可以择一使用,也可以组合使用。
还可以是根据用户的需求,调整存储于公有云和私有云中的比例。
进一步,第二重构规则包括多个重构算法;
步骤S102,根据预先获取的第二重构规则对第一重构数据进行重构,以确定第二重构数据包括:
分别在多个云端使用不同的重构算法对第一重构数据进行重构,以生成第二重构数据。
在执行步骤S102的时候,可以使用多种不同的重构方式(重构方式指:以表达含义的最小单位作为重构的最小单位,如0-9中,的每个数字都是表达含义的最小单位,那么只是将0-9的排列顺序进行调整;或者是以表达含义的最小单位作为重构的最小单位的代码作为重构的最小单位,如最小表达含义的单位是A,A的代码是5891,那么进行重构的时候就将5891排列的顺序进行调整)和调整规则(指的是,将0-9这10个数字的排列位置进行调换)进行。也就是可以多次进行重构,以加强第二重构数据的保密性。其中重构算法包括了重构方式和调整规则。
具体的,步骤,分别在多个云端使用不同的重构算法对第一重构数据进行重构,以生成第二重构数据可以包括:
分别由不同的云端依次使用不同的重构算法对第一重构数据进行重构,以生成第二重构数据。
也就是在使用不同的重构算法进行重构的时候,可以由不同的云端使用不同的重构算法来进行重构,以保证单一的云端无法知悉全部的重构方式,从而进一步保证了第二重构数据的保密性。
为了进一步加强保密性,可以在执行重构之前,先将第一重构数据进行分割(如将0-9这个由10个字符组成的数据分割成0-3,4-7,8-9这三个第二子数据段),再将分割后的第二子数据段分别进行重构,分别在多个云端使用不同的重构算法,对第一重构数据进行重构,以生成第二重构数据包括:
分别由不同的云端按照不同的重构算法,对第二子数据段进行重构,第二子数据段是由第一重构数据分割后得到的;
将经过重构的多个第二子数据段组成第二重构数据。
对第二子数据段进行重构的时候,可以是采用不同的重构算法进行,不同的重构算法可以是指定的一个终端分别发送给不同的云端的,也可以是终端与云端事前约定好的,也可以是通过不同的终端发送给不同的云端的。
具体的,步骤S102,根据预先获取的第二重构规则对第一重构数据进行重构,以确定第二重构数据可以包括:
将第一重构数据分割为多个第三子数据段;
按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据。
在将第一重构数据分割为多个第三子数据段后,可以通过移动储存位置的方式将每个,或者指定的第三子数据段的储存位置进行移动。此处的储存位置可以是相对储存位置,如0-9这10个数字代表了由0开始,以9结束的10个数字,其储存的相对位置决定了是否能够正确读取到这段数字所真实表达的信息。如,“我去上学”,如果改为“上去我学”,则根本无法知道其原本所需要表达的含义,尤其当字数增加到几百上千甚至更多的时候,则更不可能在重构后知悉其原本的含义。也就是通过调换字、词,或者说表达含义最小单位的储存位置便能够隐藏该数据(句子、段落、文章、代码群)所要表达的含义。当然,通常修改第三子数据段的相对储存位置是核心,如果只是将原本储存于第二数据分区的数据整体移动到了第一数据分区,则读取的人依然能够知道多个第三子数据段的相对储存位置,通过相对储存位置依然能够知道第二重构数据所表达的含义。
具体的,为了调换第三子数据段的相对储存位置,步骤,按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据包括:
确定全部第三子数据段的存储位置顺序;
分别将每个第三子数据段移动预定个数的储存位置后储存;
在指定数量的第三子数据段移动位置并储存之后,将全部的第三子数据段合并为第二重构数据。
其中,在进行位置调换之前首选需要确定储存到的相对位置,也就是获取全部第三子数据段的存储位置顺序。当然,在移动的时候可以只是移动部分第三子数据段的储存位置,也就是此处所说的“全部第三子数据段的存储位置”意为需要移动的第三子数据段的全部位置。
步骤“分别将每个第三子数据段移动预定个数的储存位置后储存”,在移动每个第三子数据段的时候,主要是指移动后,来调整了第三子数据段的相对位置。在将需要移动的第三子数据段进行移动之后便可以确定多个(或者说全部)第三子数据段之间新的相对位置,之后便可以根据新相对位置,来将多个第三子数据段组成第二重构数据了。
为了保证重构的复杂性,可以在形成第三子数据段的时候,或者说在步骤,分别将每个第三子数据段移动预定个数的储存位置后储存之前还包括:
将指定的一个或多个无效数据段作为第三子数据段。
也就是,如,现有的第三子数据段是1,2,3,这三个第三子数据段分别均能够表达指定的含义,在此基础上,还可以增加一个第三子数据段“0”,0这个数据段中可以均填写空值,也可以是填写有无用的代码,将“0”这个无效,或者说是无实际意义的数据段作为一个第三子数据段,参加第三子数据段相对位置的调换。如在加入无效数据段“0”之后,第三子数据段的存储位置就可以变为1230,或者0123,无效数据段可以任意加入某一个指定的位置。在进行位置调换之后,就可以变为如2013,或者其他种类的储存方式。
具体的,分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,移动每个第三子数据段,并在将指定的第三子数据段累计移动预定个数的储存位置之后储存,且累计移动预定个数的储存位置时,跳过已经存储有移动后的第三子数据段的存储位置。
也就是,在指定的第三子数据段移动之后,如果该位置上已经存储有已经移动过的第三子数据段,则可以存储到下一个顺位上。如0-6这6个储存位置,这6个储存位置上一次存储有A-F这几个数据,那么第一步,移动A,A在进行移动后,移动到5这个位置上,并出储存,之后,移动B,将B移动到5的位置上,发现已经存储有移动后的A,则可以将B储存到6的位置上。
具体的,步骤,分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,将每个第三子数据段向后或向前移动至第X个储存位置后储存,X=(第三子数据段当前位置+Y)/Z求余,其中,Y为预设的移动位移,Z为需要移动的第三子数据段的总数,且若任一待存储第三子数据段向后或向前移动后的储存位置已经存储有移动后的第三子数据段,则将带存储第三子数据段储存至下一个存储位置。
在确定存储位置的先后关系后,如图2所示,可以分成18个存储空间,在由1-18这样的顺序,依次移动每个存储位置上的数据的时候,当移动的位置超过18个的时候,就说明已经移动了一整圈了,那么实际上,其移动的有效位置个数就是:实际移动位置数(第三子数据段当前位置+Y)通过减去一个或多个18后,距离0最近的正数。如第三子数据段的当前位置是5,需要移动的位移是30,那么其实际移动的位置个数是5+30=35,但其应向后移动至第17个位置后储存(35/18=1余17)。当然,在移动之后如果遇到当前位置已经存储有移动后的第三子数据段的时候,则可以存储到下个位置上。具体的,可以采用如下方式移动多个第三子数据段,在移动第三子数据段的时候,可以在移动某一个第三子数据段的时候,将该第三子数据段后面的数据段均进行移动,但只移动而不储存,也就是在移动首个第三子数据段的时候(如移动至后面的第二个位置,那么首个第三子数据段移动到了第三个位置),2-18个第三子数据段也是向后移动了相同的位置(指均向后移动了两个位置),那么第2个第三子数据段在移动的时候就是从第四个位置开始移动了,向后移动两个位置便到了第六个位置,其他的以此类推。如果是需要多次重构的话,则可以是X=(第三子数据段当前位置+Y)*A/Z,其中A是重构的次数(此种算法通常需要先计算位置靠前的第三子数据段的重构位置,后计算靠后的,以保证不会遇到因移动后的位置上储存有已经进行过移动的第三子数据段,而储存到下个位置上的情况)。
进一步,可以多次执行步骤分别将每个第三子数据段移动预定个数的储存位置后储存。
当多次进行移动之后,在需要还原的时候,大部分情况只能是一步一步的逆向推导,这样的还原效率是十分低下的,因此可以限定:将第一重构数据分割为多个第三子数据段包括:
将第一重构数据分割为质数个第三子数据段。
当第三子数据段的数量为质数个的时候,不论进行多少次移动的行为,在已知移动次数(此处的移动次数是每个顺序储存位置上的第三子数据段均顺序进行了多次移动,顺序移动是指当确定顺序储存位置之后,这顺序储存位置上的第三子数据段的顺序标号就已经确定了,以后在进行移动的时候,按照该顺序标号进行,而不是按照移动后的位置顺序进行,如以移动位置为2进行移动,第一次移动之后,第一个第三子数据段移动到了第三个位置,第二个第三子数据段移动到了第六个位置,那么在此移动的时候,当前第三个储存位置上的第一个第三子数据段仍然是首个移动的)和第三子数据段个数的情况下能够直接还原出原始的储存位置。需要说明的是,在一次完整的移动过程中,每个第三子数据段移动的距离均是相等(如都是向后移动两个位置),但每次完整的移动过程中,第三子数据段移动的距离并不一定的是相等的。此时,如移动的第三子数据段的个数为质数个,且一直每次移动的距离,和移动的次数,则可以直接还原出最原始的储存位置。
并且当共有质数个第三子数据段进行移动的时候,不管移动多少次,移动后的位置上必然不会有已经储存有了移动后的第三子数据段的情况,其原因是因为任何质数只能被1和它自己整除,所以不管步长(每次移动的位置个数)是几都不会重复。而非质数可能被很多数整除,也可能不能被整除,就会有余数,有余数就可能在后续的绕圈循环中出现替换。
具体的,当进行重构的第三子数据段的数量为质数个的时候,当已经获知重构的次数、单次重构的移动距离和首次重构的起始位置就能够将多次重构的结果快速的还原。如需要重构的第三子数据段的数量为7个,首次重构的起始位置是1,每次重构均移动3个位置,且重构进行4次,则能够直接计算出首个储存位置上的第三子数据段被移动到了X=(1+3)*4/7=2余2,也就是移动到第二个位置上即可,其余的第三子数据段的位置通过相同的算法同样能够计算得出,由于质数的特性,一定不会发生:在某一次重构中,将某个第三子数据段进行移动后的位置上已经存在有进行过移动的第三子数据段的情况。因此,通过求余算法的逆向计算能够直接推算出未重构的位置,相对于非质数重构来看,是较为简便的。除了该种单纯是用求余算法的逆向计算方式,还可以利用间距相同的特性进行还原,也就是未重构时,任意两对间距相等的第三子数据段,在移动之后,每对第三子数据段的间距仍然是相等的。也就是未重构时,第一个和第三个之间的间距与第四个和第六个的间距是相等的,如果进行移动之后,第一个和第三个之间的间距变为10,那么第四个和第六个之间的间距也是10,由此可以利用改特性,在获知首个第三子数据段之后,根据间距相等这一特性,通过推算间距,能够直接找出第二个、第三个、直至最后一个第三子数据段的位置。这样便能够加快第三子数据段的还原效率。
进一步,本发明所提供的云端数据储存方法,还包括对预先获取的源数据中的基础字段进行拆分,以生成主数据和拆分数据,基础字段是原数据表达含义的基本单位;
将主数据和拆分数据按照预设的排列顺序以组成待重构数据。
如果待重构数据本身便具有一定的保密性,那么第二重构数据的保密性便会得到进一步的提升。
如可以通过对基础字段进行拆分的方式来实现该目的。基础字段是表达基本含义的必要单位,实质上如以一句话为例“我去读书”,那么这句话中的每个字便是基础字段所表达出来的含义,而不是某个字的偏旁部首。通过对基础字段进行拆分(如我的字段是100110,那么平均拆分后可以得到100和110两部分,分别将这两部分命名为主数据的基本数据和拆分数据的基本数据,只要将每个字均进行拆分后,再分别将主数据的基本数据结合起来和将拆分数据的基本数据结合起来,便能够得到完整的主数据和完整的拆分数据)便能够实现数据的基础拆分,基础拆分的意义是拆分之后任何一个基本数据和拆分数据均不能表达实际含义。在确定主数据和拆分数据之后将主数据和拆分数据按照排列顺序组合起来便能够形成待重构数据。如此,便能够完整待重构数据的建立。当然,在进行基础拆分的时候,可以调整拆分的比例,如100110可以拆分为10和0110,以起到拆分后的保密性。
同样的,本发明基础字段所指代的可以不只是字符型的数据,数值型、文本型、逻辑型和日期型的数据均可以进行类似的拆分。实质上,任何类型的数据、代码、编码在储存到计算机内部的时候,其最基本的储存单位均是计算机能够识别的最基础代码,也就是二进制代码,只是不同类型的数据受到其编码规则的影响,以不同的展现形式体现了出来,不同类型数据的根本仍然是最原始的计算机基础代码(二进制代码),不同类型的数据在二进制代码这个层面进行拆分都是可以进行拆分。当然也可以在高于二进制代码的层面进行拆分,这时,不同类型的数据的拆分方式受到其表达规则的限制,从而可以有不同的拆分方式,但其目的仍然是将某一段编码(能够表达最基本含义的编码)进行拆分,以使拆分后的部分编码无法再表达原本的含义。
整理来看本发明所提供的云端数据储存方法,通过使用了符合重构和多次重构的方式,提高了储存到云端数据的安全性,保证了在只破解某一个重构方式的情况下无法将第二重构数据还原为原始数据,保证了存储在云端的数据的安全性。
本发明实施例还提供了云端数据储存装置,如图3所示包括:
获取模块,用于获取第一重构数据,第一重构数据是终端将待重构数据使用第一重构规则重构后生成的;
重构模块,用于根据预先获取的第二重构规则对第一重构数据进行重构,以确定第二重构数据;
储存模块,用于将第二重构数据储存到指定的网络端。
云端数据储存装置中还设置有其他与云端数据储存方法相对应的系统、模块或单元,系统、模块或单元的功能与方法是相对应的。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供了云端数据还原方法,基于云端数据重构方法,还包括:
获取存储于云端的第二重构数据;
根据第二重构规则将第二重构数据还原为第一重构数据;
根据第一重构规则将第一重构数据解密为源数据。
也就是,依次在使用云端数据储存方法将数据储存之后,通过逆向的方法便能够还原出相应的原始数据,使用者便能够读取到这些数据。如在云端进行重构的时候是先将第一重构数据分解后在进行重构的话,那么终端可以只获取分解后的一部分数据进行还原即可。如某一篇文章可以分为5个段落,云端重构之前将这5个段落分别分成了独立的子块,重构的时候是分别对这5个字块进行的重构,那么在终端需要读取该文章第二段的时候,则只需要云端逆重构(还原)第二个子块即可,而不需要还原全部的子块,这样提高了读取的灵活性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.云端数据储存方法,其特征在于,包括:
获取第一重构数据,所述第一重构数据是终端在断网的条件下将待重构数据使用第一重构规则重构后生成的;
根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据,其中,所述第二重构数据为云端通过所述第二重构规则重构得到的,所述第二重构规则的提供方式是动态变化的,所述第二重构规则包括多个重构算法;
将所述第二重构数据储存到指定的网络端,其中,所述指定的网络端至少包括以下之一:公有云、私有云;
所述根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据包括:
分别在多个云端使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据;
还包括对预先获取的源数据中的基础字段进行拆分,以生成主数据和拆分数据,所述基础字段是原数据表达含义的基本单位;
将主数据和拆分数据按照预设的排列顺序以组成待重构数据。
2.根据权利要求1所述的云端数据储存方法,其特征在于,所述将所述第二重构数据储存到指定的网络端包括:
按照预设的存储规则,将所述第二重构数据分别存储到多个云端。
3.根据权利要求2所述的云端数据储存方法,其特征在于,所述按照预设的存储规则,将所述第二重构数据分别存储到多个云端包括:
按照预设的分割比例,将所述第二重构数据分割为多个第一子数据段;
按照预设的储存比例,将多个所述第一子数据段分别储存到公有云和私有云中。
4.根据权利要求1所述的云端数据储存方法,其特征在于,所述分别在多个云端使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据包括:
分别由不同的云端依次使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据。
5.根据权利要求1所述的云端数据储存方法,其特征在于,所述分别在多个云端使用不同的重构算法,对所述第一重构数据进行重构,以生成第二重构数据包括:
分别由不同的云端按照不同的重构算法,对第二子数据段进行重构,所述第二子数据段是由所述第一重构数据分割后得到的;
将经过重构的多个第二子数据段组成所述第二重构数据。
6.根据权利要求1所述的云端数据储存方法,其特征在于,所述根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据包括:
将所述第一重构数据分割为多个第三子数据段;
按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据。
7.根据权利要求6所述的云端数据储存方法,其特征在于,所述按照预设的移动规则将多个第三子数据段的储存位置进行调换,以确定第二重构数据包括:
确定全部第三子数据段的存储位置顺序;
分别将每个第三子数据段移动预定个数的储存位置后储存;
在指定数量的第三子数据段移动位置并储存之后,将全部的第三子数据段合并为第二重构数据。
8.根据权利要求7所述的云端数据储存方法,其特征在于,在所述分别将每个第三子数据段移动预定个数的储存位置后储存之前还包括:
将指定的一个或多个无效数据段作为第三子数据段。
9.根据权利要求7所述的云端数据储存方法,其特征在于,所述分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,移动每个第三子数据段,并在将指定的所述第三子数据段累计移动预定个数的储存位置之后储存,且累计移动预定个数的储存位置时,跳过已经存储有移动后的第三子数据段的存储位置。
10.根据权利要求7所述的云端数据储存方法,其特征在于,所述分别将每个第三子数据段移动预定个数的储存位置后储存包括:
按照储存位置的先后顺序,将每个第三子数据段向后或向前移动至第X个储存位置后储存,X=(第三子数据段当前位置+Y)/Z求余,其中,Y为预设的移动位移,Z为需要移动的第三子数据段的总数,且若任一待存储第三子数据段向后或向前移动后的储存位置已经存储有移动后的第三子数据段,则将所述待存储第三子数据段储存至下一个存储位置。
11.根据权利要求7所述的云端数据储存方法,其特征在于,多次执行所述分别将每个第三子数据段移动预定个数的储存位置后储存的步骤。
12.根据权利要求6所述的云端数据储存方法,其特征在于,所述将所述第一重构数据分割为多个第三子数据段包括:
将所述第一重构数据分割为质数个第三子数据段。
13.云端数据储存装置,其特征在于,包括:
获取模块,用于对预先获取的源数据中的基础字段进行拆分,以生成主数据和拆分数据,所述基础字段是原数据表达含义的基本单位;将主数据和拆分数据按照预设的排列顺序以组成待重构数据;用于获取第一重构数据,所述第一重构数据是终端在断网的条件下将待重构数据使用第一重构规则重构后生成的;
重构模块,用于根据预先获取的第二重构规则对所述第一重构数据进行重构,以确定第二重构数据,其中,所述第二重构数据为云端通过所述第二重构规则重构得到的,所述第二重构规则的提供方式是动态变化的,所述第二重构规则包括多个重构算法;
所述重构模块,具体用于分别在多个云端使用不同的重构算法对所述第一重构数据进行重构,以生成第二重构数据;
储存模块,用于将所述第二重构数据储存到指定的网络端,其中,所述指定的网络端至少包括以下之一:公有云、私有云。
14.云端数据还原方法,基于权利要求1-12任一项所述的云端数据重构方法,其特征在于,还包括:
获取存储于云端的第二重构数据;
根据所述第二重构规则将所述第二重构数据还原为第一重构数据;
根据所述第一重构规则将所述第一重构数据解密为源数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510029007.0A CN104573557B (zh) | 2015-01-20 | 2015-01-20 | 云端数据储存方法及装置和云端数据还原方法 |
PCT/CN2015/099201 WO2016115959A1 (zh) | 2015-01-20 | 2015-12-28 | 云端数据储存方法及装置和云端数据还原方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510029007.0A CN104573557B (zh) | 2015-01-20 | 2015-01-20 | 云端数据储存方法及装置和云端数据还原方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104573557A CN104573557A (zh) | 2015-04-29 |
CN104573557B true CN104573557B (zh) | 2019-04-16 |
Family
ID=53089590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510029007.0A Active CN104573557B (zh) | 2015-01-20 | 2015-01-20 | 云端数据储存方法及装置和云端数据还原方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104573557B (zh) |
WO (1) | WO2016115959A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573557B (zh) * | 2015-01-20 | 2019-04-16 | 北京古盘创世科技发展有限公司 | 云端数据储存方法及装置和云端数据还原方法 |
CN109033367A (zh) * | 2018-07-26 | 2018-12-18 | 电子科技大学 | 一种面向二维表文件的属性竖切多云存储方法 |
CN111125645B (zh) * | 2019-11-15 | 2023-05-16 | 至本医疗科技(上海)有限公司 | 执行程序处理方法、系统、装置、计算机设备和介质 |
CN112153045B (zh) * | 2020-09-24 | 2023-03-28 | 中国人民解放军战略支援部队信息工程大学 | 一种私有协议的加密字段的识别方法及系统 |
CN114765616B (zh) * | 2021-01-14 | 2023-09-05 | 新奥新智科技有限公司 | 基于云储存关联的联合学习框架 |
CN113918541B (zh) * | 2021-12-13 | 2022-04-26 | 广州市玄武无线科技股份有限公司 | 预热数据处理方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063587A (zh) * | 2010-11-29 | 2011-05-18 | 北京卓微天成科技咨询有限公司 | 一种云存储的数据存储与取回的方法、装置及系统 |
CN102281314A (zh) * | 2011-01-30 | 2011-12-14 | 程旭 | 高效安全的数据云存储系统实现方法及装置 |
CN103457995A (zh) * | 2013-06-07 | 2013-12-18 | 北京百纳威尔科技有限公司 | 终端设备数据信息的存储方法、终端设备和云端服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761410A (zh) * | 2011-04-25 | 2012-10-31 | 中国移动通信集团安徽有限公司 | 计费话单采集处理方法和装置 |
US8925075B2 (en) * | 2011-11-07 | 2014-12-30 | Parallels IP Holdings GmbH | Method for protecting data used in cloud computing with homomorphic encryption |
CN104573557B (zh) * | 2015-01-20 | 2019-04-16 | 北京古盘创世科技发展有限公司 | 云端数据储存方法及装置和云端数据还原方法 |
-
2015
- 2015-01-20 CN CN201510029007.0A patent/CN104573557B/zh active Active
- 2015-12-28 WO PCT/CN2015/099201 patent/WO2016115959A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063587A (zh) * | 2010-11-29 | 2011-05-18 | 北京卓微天成科技咨询有限公司 | 一种云存储的数据存储与取回的方法、装置及系统 |
CN102281314A (zh) * | 2011-01-30 | 2011-12-14 | 程旭 | 高效安全的数据云存储系统实现方法及装置 |
CN103457995A (zh) * | 2013-06-07 | 2013-12-18 | 北京百纳威尔科技有限公司 | 终端设备数据信息的存储方法、终端设备和云端服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN104573557A (zh) | 2015-04-29 |
WO2016115959A1 (zh) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573557B (zh) | 云端数据储存方法及装置和云端数据还原方法 | |
Goodrich et al. | Privacy-preserving group data access via stateless oblivious RAM simulation | |
EP2701337B1 (en) | Secret sharing method and system | |
US8638926B2 (en) | Sharing a secret with modular inverses | |
Mayberry et al. | Efficient private file retrieval by combining ORAM and PIR | |
CN102006300B (zh) | 一种云存储数据加密方法、装置及系统 | |
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
CN108182367B (zh) | 一种支持数据更新的加密数据块客户端去重方法 | |
CN105279198B (zh) | 数据表储存、修改、查询和统计方法 | |
CN110602147A (zh) | 一种基于云平台的数据加密安全存储方法、系统和存储介质 | |
CN110930145A (zh) | 冷钱包生成方法、交易信息处理方法、设备及存储介质 | |
Hoang et al. | A multi-server oram framework with constant client bandwidth blowup | |
CN111798236B (zh) | 交易数据加、解密方法、装置及设备 | |
CN107070634B (zh) | 基于非交换单群的私钥无噪声全同态数据处理方法及装置 | |
CN111191253B (zh) | 一种数据加密组合方法 | |
KR102424856B1 (ko) | Rlwe 암호문들의 압축 및 불확정적 확장 | |
Cincilla et al. | Light blind: Why encrypt if you can share? | |
Avoine et al. | Interleaving cryptanalytic time-memory trade-offs on non-uniform distributions | |
Falk et al. | GigaDORAM: breaking the billion address barrier | |
CN117278325B (zh) | 一种计算机网络大数据安全防护方法及系统 | |
Priya et al. | Comparative Analysis of Homomorphic Encryption in Cloud Computing | |
CN114444108A (zh) | 同态加密处理方法及相关设备 | |
CN116743338A (zh) | 水下传感器网络加解密方法、装置、水下设备及存储介质 | |
Malakooti et al. | A new orthogonal cryptographic system for database security based on Cellular automata and Hash Algorithm | |
Mithaiwala et al. | A Study on Cloud Computing and its Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Haiying Inventor before: Zhang Haiying Inventor before: Zhou Haiyan |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |