CN105338035B - 基于rs纠删码的安全存储方法和装置 - Google Patents

基于rs纠删码的安全存储方法和装置 Download PDF

Info

Publication number
CN105338035B
CN105338035B CN201410385773.6A CN201410385773A CN105338035B CN 105338035 B CN105338035 B CN 105338035B CN 201410385773 A CN201410385773 A CN 201410385773A CN 105338035 B CN105338035 B CN 105338035B
Authority
CN
China
Prior art keywords
data
file
coding
decruption key
local client
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
CN201410385773.6A
Other languages
English (en)
Other versions
CN105338035A (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.)
Suningcom Group Co Ltd
Original Assignee
Suningcom Group 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 Suningcom Group Co Ltd filed Critical Suningcom Group Co Ltd
Priority to CN201410385773.6A priority Critical patent/CN105338035B/zh
Publication of CN105338035A publication Critical patent/CN105338035A/zh
Application granted granted Critical
Publication of CN105338035B publication Critical patent/CN105338035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种在移动终端上基于RS纠删码的安全储存方法和装置,属于计算机存储和安全技术领域。该方法包括:步骤S1、在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存;步骤S2、本地存放文件元数据信息中通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据本发明的技术方案通过使用RS纠删码,确保用户数据上传、存储、下载时,即使数据被窃听窃取,也无法解码获得原有数据信息,从而保证用户的隐私。

Description

基于RS纠删码的安全存储方法和装置
技术领域
本发明涉及计算机存储和安全技术领域,特别涉及一种基于RS纠删码的安全存储方法和装置。
背景技术
IT技术的迅猛发展,导致全球数据量猛增,带动了整个存储市场的快速发展,使得云存储技术正在大规模应用。云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。在云计算环境中,文件一般被分片保存在多个存储服务器中,个别存储节点或者磁盘损坏,不会影响数据的完整性。
最近几年,各类智能移动终端如智能手机、平板电脑、智能家电等得到了长足的发展。但此类移动介质由于体积有限,不可能无限制增加存储设备,存储总容量必然受限。为了在移动介质中保存更多的图片、视频、短彩信、通讯录等资料或者为数据做备份,它们都普遍支持云上传功能,将这些数据上传到云端保存。
对于移动终端个人用户,使用云上传功能的一个主要担心就是数据安全性和隐私性。前者主要担心存放的数据可能由于各种原因被丢失、损坏;后者主要是担心用户数据被非法窃取、复制从而泄露秘密或隐私。云存储平台采用多副本或者纠删码(Erasure Codes,简称EC)技术,可以解决数据安全性问题。但对于隐私性,则面临各种不同类型的威胁,如:数据上传到云存储系统或者从云存储系统下载时,在网络上被窃听;不怀好意的管理员偷窥、复制云空间上的用户数据;其它用户或者黑客入侵系统非法访问用户数据;存储服务器或者磁盘 等硬件被盗,或者由于云服务商的误用或过失,导致用户数据泄露。因此,为了在移动终端上更加安全的使用云,解决用户隐私泄露的后顾之忧,必须提供一种安全存储机制,从源头上解决这些问题。
1960年,里德(I.S.Reed)和所罗门(G.Solomon)提出一种构造纠删码的方法,使用该方法的纠删码被称作Reed-Solomon码,简称RS码。基于RS编码技术构造的纠删码则称作RS纠删码。一个(n,k)纠删码是把k个源数据编码为n(n>k)个数据,使得用这n个数据中任意k个数据均可重构原来的k个源数据。采用m个数据分片和n个校验分片的纠删码体制就是(m+n,m)纠删码。RS纠删码的实现技术关键是寻找一个生成矩阵G,该矩阵中任意k列均线性无关。RS编码技术中,比较常用的生成矩阵是范德蒙德矩阵和柯西矩阵。使用范德蒙德矩阵生成的编码叫范德蒙德码(Vandermond Code),使用柯西矩阵生成的编码叫柯西码(CauchyCode)。
编码原理是:原始数据D[D1,D2,..Dm]乘以生成矩阵G,产生m个原始数据D[D1,D2,..Dm]和n个校验数据P[P1,P2,…,Pn]。
解码原理是:在m+n个原始数据和校验数据中任意获得m个数据,组成待解码数据D’,例如[D1,…Di,P1..Pj]。在生成矩阵中去掉n个未出现数据对应的那一列,组成一个新的生成矩阵G,然后计算G的逆矩阵G’,最后D’*G’=D。为了使矩阵运算的结果保持在实数域,运算改为限定在伽罗瓦(Galois)域G(2^8)或者G(2^16)进行。RS和伽罗瓦域运算、矩阵求逆等的具体运算流程和特性,早已被研究透彻,在相关数学书籍和公开刊物上可以查到,因此本发明不再赘述。
目前的云存储系统,为了解决可靠性的问题,一般采用多副本或者EC技术。其中EC技术,将文件编码后,分为大小相同的m个数据分片和n个校验分片,分别存储到m+n个独立的节点或者磁盘上。读取文件时,只要获得其中任意m个分片,即可通过解码恢复原文件或者数据,因此可以抗n个分片损坏或者丢失,因此纠删码通过计算能力换取存储能力,显著降低了存储成本和运维成本。
发明内容
针对现有技术的上述缺陷,本发明所要解决的技术问题是如何实现在用户使用云存储时通过使用RS纠删码,确保用户数据在上传、存储、下载时,即使数据被窃听窃取,也无法解码获取原有数据信息,从而保证用户的数据隐私。
为实现上述目的,一方面,本发明提供一种基于RS纠删码的安全存储方法,所述方法包括步骤:
步骤S1、在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存;
步骤S2、本地存放文件元数据信息中通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据。
优选地,所述方法还包括步骤S3、将编码后的文件和/或数据下载到本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的所述解密密钥和文件元数据信息中的通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据,获取原文件和/或数据。
优选地,所述方法中步骤S1具体包括:
本地客户端执行编码完成后,选取编码文件和/或数据中的一片文件和/或数据作为解密密钥存放在本地客户端,将编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,所述方法中步骤S1还包括:
当编码文件和/或数据数量多时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;
将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,所述方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照倒序进行多次解码;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
优选地,所述方法中步骤S1具体包括:
在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥保存在本地客户端,将编码文件中的剩余文件和/或数据上传至云存储空间保存。
优选地,所述方法中步骤S1还包括:
当编码文件和/或数据长度大于解密密钥长度时,则循环使用解密密钥,从头至尾使用随机字符串的内容作为解密密钥参与编码。
优选地,所述方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为编码数据;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
另一方面,本发明还同时提供一种基于RS纠删码的安全存储装置,所述装置包括:
编码单元,用于在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存;
解码单元,用于将编码后的文件和/或数据下载到本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的所述解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
优选地,所述编码单元具体包括:
第一编码子单元,用于当编码文件和/或数据较大时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;
第一保存单元,用于将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,所述解码单元具体包括:
第一解码子单元,用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照倒序进行多次解码;
第一获取单元,用于通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
优选地,所述编码单元具体包括:
第二编码子单元,在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥;
第二保存单元,用于将解密密钥保存在本地客户端,将编码文件中的剩余文件和/或数据上传至云存储空间保存。
优选地,所述解码单元具体包括:
第二解码子单元,用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为编码数据;
第二获取单元,用于通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
本发明提供的基于RS纠删码的安全存储方法和装置中,通过采用里德-所罗门机制进行加密,且每个文件使用的密钥都不相同,达到了一次一密的效果,整个系统具有理论上不可破解的最高安全性。
附图说明
图1是本发明的一个实施例中的基于RS纠删码的安全存储方法的流程示意图;
图2是本发明的一个实施例中的基于RS纠删码的安全存储装置的结构示意图;
图3是本发明一个实施例中的基于RS纠删码的安全存储的方法中编码过程的示意图;
图4是本发明一个实施例中的基于RS纠删码的安全存储的方法中解码过程的示意图;
图5是本发明一个实施例中的基于RS纠删码的安全存储的方法中的使用随机字符串作为密钥的方法的编码过程示意图;
图6是本发明一个实施例中的基于RS纠删码的安全存储的方法中的使用随机字符串作为密钥的方法的解码过程示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
现有技术中的在进行解码读取文件时,需要获得全部数据分片,通过解码方可恢复原文件或者数据,显著降低了存储成本和运维成本。而本发明通过采用在客户端执行将文件分片,其中一片分片存储在本地作为解密密钥,其余m-1个文件分片存储在云存储中,在客户端需要保存的数据量很少,仅有原来的1/m,通过多级编码方式需要保存的数据更少,因此尤其适合智能手机和移动终端使用云上传功能,用户在数据上传、保存、下载时,其数据都是经过里德-所罗门机制编码的(m-1)/m份数据,且这些数据不是原数据的一部分。相同数据编码后也不相同,抗频率分析攻击。根据里德-所罗门编码机制,只有m-1份编码后的数据和生成矩阵,在数学上是无法解码成功的,从而解决了用户使用云存储保存文件和数据时,对隐私泄露的顾虑。
图1是本发明的一个实施例中的基于RS纠删码的安全存储方法的流程示意图,如图1所示,该方法包括步骤:
步骤S1、在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存;
步骤S2、本地存放文件元数据信息中通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据。
优选地,该方法还包括步骤S3、将编码后的文件和/或数据下载到 本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的所述解密密钥和文件元数据信息中的通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据,获取原文件和/或数据。
优选地,该方法中步骤S1具体包括:
本地客户端执行编码完成后,选取编码文件和/或数据中的一片文件和/或数据作为解密密钥存放在本地客户端,将编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,该方法中步骤S1还包括:
当编码文件和/或数据较大时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;
将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,该方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照倒序进行多次解码;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
优选地,该方法中步骤S1具体包括:
在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥保存在本地客户端,将编码文件中的剩余文件和/或数据上传至云存储空间保存。
优选地,该方法中步骤S1还包括:
当编码文件和/或数据长度大于解密密钥长度时,则循环使用解密密钥,从头至尾使用随机字符串的内容作为解密密钥参与编码。
优选地,该方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为编码数据;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
本领域相关技术人员应能理解,与本发明的方法相对应的,本发明还同时包括一种基于RS纠删码的安全存储装置,与上述方法步骤一一对应地,如图2所示,该装置包括:编码单元201和解码单元202。其中,编码单元201用于在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存;解码单元202用于将编码后的文件和/或数据下载到本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的逆矩阵数据、解密密钥和文件元数据信息,获取原文件和/或数据。
优选地,编码单元201具体包括:第一编码子单元2011和第一保存单元2012,其中,第一编码子单元2011用于当编码文件和/或数据较大时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;第一保存单元2012用于将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
优选地,解码单元202具体包括:第一解码子单元2021和第一获取单元2022。其中,第一解码子单元2021用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照倒序进行多次解码;第一获取单元2022用于通过RS纠删码机制计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
优选地,编码单元201具体包括:第二编码子单元2013和第二保存单元2014。其中,第二编码子单元2013用于在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥;第二保存单元2014用于将解密密钥保存在本地客户端,将编码文件中的剩余文件和/或数据上传至云存储空间保存。
优选地,解码单元202具体包括:第二解码子单元2023和第二获 取单元2024。其中,第二解码子单元2023用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为编码数据;第二获取单元2024用于通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
本发明可以在基于RS纠删码的情况下,通过在客户端执行将文件分片,其中一片分片存储在本地作为解密密钥,其余m-1个文件分片存储在云存储中,极大地增强了云存储的隐私的安全性,同时节约了本地存储空间,具有较大的实用价值,适用于云存储体系中的客户端和各种移动终端。
为使本领域技术人员更好地而理解本发明的内容,下面结合附图3~附图6详尽描述本发明的工作原理。为说明清楚起见,使用如下参数:
m:数据或者文件分为m个原分片保存。对于数据,使用D=[D1,D2,D3,…,Dm]表示。例如m=100表示原来文件分为100份。
n:根据m个原分片使用RS纠删码体制,计算n个校验分片。使用P[P1,P2,…Pn]表示校验分片。在本发明的方法中,n不小于m,可以为n=m,即计算m个校验分片,使用P[P1,P2,…Pm]表示校验分片。
在RS纠删码体制中,将文件或者数据分为m个原分片,n个校验分片。解码时,如果有k(0<k<=n)个原分片丢失,则使用k个校验分片和原来m-k个原分片组成m个数据进行解码。在本发明提供的方法中,校验分片数量n不小于m,优选的,n=m,即总是编码为m个校验分片。m可为任何大于0的自然数。考虑到系统的性能和本地存储空间大小,m可以设置在10~1000之间。下面假定m=10,阐述本发明的原理。
设10个原数据分片为D=[D1,D2,D3,D4,D5,D6,D7,D8,D9,D10],10个校验分片为P[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10]。生成矩阵为G。本发明对生成矩阵没有限制,既可以使用范德蒙德矩阵,也可使用柯西矩阵,以及其它任何符合里德-所罗门纠删码的生成矩阵。
校验分片的生成公式为:
即:
本方明通过使用文件一部分作为解密密钥的具体操作步骤如下:
当本地客户端执行编码完成后,将其中的一片数据(原数据如D1或者校验数据如P1)存放在本地存储介质(本地硬盘、手机或平版电脑自有存储等),或者移动存储介质(移动硬盘、U盘等)中,作为解密密钥。文件的元数据信息如文件名称,文件长度,文件的分片信息,使用的矩阵信息和对应的逆矩阵信息等,都和解密密钥存放在一起。如果文件较大,可采用多级编码方式,即对第一次编码产生的密钥数据D1或者P1,再次进行编码,然后采用同样的规则,将其中的一份数据保存在本地或者移动介质,将产生的9份校验码数据,打包后保存在云存储中。一次编码,本地需要保存的密钥数据量为原来的10%。两次编码,本地保存的密钥数据量为原来的1%,三次编码,本地保存的密钥数据量为原来的0.1%。下表为使用不同参数时,本地需要保存的密钥数据量。
一次编码 两次编码 三次编码 四次编码
m=10 10% 1% 0.1% 0.01%
m=20 5% 0.25% 0.0125% 0.000625%
可以看出,经过四次编码,对于m=10,本地只需要保存0.01%的数 据。如果原文件为1GB,则经过四次编码后,本地只需要保存105KB的密钥文件。对于m=20,经过四次编码后,本地只需要保存6.55KB的密钥文件。解码时,则从网络下载多次编码后的文件,然后按编码的倒序进行解码。解码需要的逆矩阵数据和文件元数据信息已经保存在本地,最终可以解码出原文件。
通过使用文件一部分作为解密密钥,每个文件的密钥都不相同,且密钥长度和编码长度相同,因此具有很强的安全性,且这种加密体制理论上不可破解。但对于大文件,要么设置较大的m值如100,1000,编解码性能降低;要么进行多次的编码和解码。在移动终端中,编码、解码操作可以在后台进行,系统空闲时完成,即上传前后台完成编码操作,下载后后台完成解码操作即可。采用本文件一部分作为解密密钥中,对于生成矩阵,可以是不保密的,即使攻击者获得了生成矩阵,根据里德-所罗门编码机制的数学原理,数据被分成了m份,攻击者只获得其中m-1份,是无法解码的,或者说,解码结果可以为任意数据。但如果使用动态生成矩阵,即每次根据文件构造单独的生成矩阵,会具有更高的安全性。
本发明通过使用随机字符串作为解密密钥的具体操作步骤如下:
为了降低本地保存的密钥文件大小,并减少本地解码的次数,可以采用如下改进方法。首先,在编码文件时,客户端为每个文件产生一个固定长度的随机字符串,如256B,作为密钥保存在本地。编码时将该文件中数据,作为原数据的第一位D1参与编码,待编码文件数据作为D2到D10,然后进行编码。待编码文件组成的序列长度大于密钥长度时,可循环使用编码密钥。随后将编码后的校验码P2到P10组成的文件,打包或压缩成同一个文件,通过网络发送到云存储空间中保存。对应的文件元数据和逆矩阵数据保存在本地磁盘或者移动终端自身的存储介质中。解码时,通过网络将编码后的文件下载到本地,然后通过保存在本地的逆矩阵数据和文件元数据信息,将原文件解码出来。采用每个编码文件对应的随机字符串作为解密密钥,可以简化客户端的管理,但重复使用了密钥。虽然每个文件的密钥都不一样,但对于单一文件,密钥重复了多次,有可能被攻击者通过频率分析或者特殊数据分析的方法攻击。因此实际使用时,密钥 长度越长越好,m越大越好。
图3是本发明一个实施例中的基于RS纠删码的安全存储的方法中编码过程的示意图,如图3所示,该方法的具体操作步骤如下:
当客户端需要对文件或数据进行编码时,在本地客户端执行完编码后,将其中一片数据作为存放在本地存储介质或者移动存储介质中,作为解密密钥。首先,根据文件分片的数量m,以及保存在本地存储的数据是原数据D1还是校验码P1,确定生成矩阵G的内容。根据里德-所罗门纠删码机制,生成矩阵可以使用范德蒙德矩阵或者柯西矩阵等。如图1所示,如果在本地存储保存的数据是校验码P1,且分片数量m=10,则生成矩阵如图1右边所示,包含10*10的元素,矩阵每个元素用gij表示,i,j位于1~10之间。随后使用里德-所罗门纠删码机制计算10个校验码,方法是D*G。产生的10个校验码用P1,P2,…,P10表示。同时计算出生成矩阵G的逆矩阵G’。由于生成矩阵和具体的编码数据无关,因此系统可以预先计算出来,和编码、解码程序一起,保存在本地客户端。
然后,将P1和逆矩阵G’,以及文件的元数据信息,如文件名称、长度、分块情况等保存在本地存储,包括移动存储介质中,如U盘、移动硬盘,或者智能手机终端,平板电脑中。再将P2,P3,….,P10等剩余数据压缩或者打包为一个文件,上传至云空间存储中保存。压缩或打包为一个文件,仅仅是为了管理上的方便,也可不打包、压缩成一个文件,而将所有m-1个文件或数据均上传到云存储。由于上传和保存的数据都是校验码,它不是原文件或者原数据的一部分,即使被窃听或者截取,也不会泄露原有信息。里德-所罗门纠删码机制可以保证,只有m-1份数据和生成矩阵,是无法通过任何方式解码出原数据的,或者说解码结果可以为任意数据。通过将(m-1)/m的数据保存在云存储中,可以充分利用云存储的海量、廉价、可用性强的特点。同时,使用每个文件的1/m份数据作为加密和解密密钥,每个文件的密钥均不相同,真正做到了一次一密。
优选的,本地存储数据可以使用原数据,如D1。这样生成矩阵只需要修改第一列即可,该生成矩阵就是图5中的生成矩阵。可参考图5。
优选的,如果待加密的文件或者数据过大,可以将m设置较大,或者多次重复上面的过程。多次重复过程中,第一次编码,本地需要保存的数 据为P1。随后再对P1进行编码,产生P(1,1),P(1,2),P(1,3)….P(1,10)。将P(1,1)保存在本地,将后9份数据压缩或者打包为一个文件,上传至云存储。对m=10,两次编码后,本地只需要保存1%的数据量,且所有上传到云存储数据仍然是加密的。如果两次编码后产生的本地保存数据量仍然过大,还可以同样进行三次,四次编码。
本技术领域的技术人员应该理解,上文中本地需要保存的P1,D1数据,仅仅是一个可以修改配置的参数。在不脱离本发明原理的基础上,可以保存Pi或Di,1<=i<=m,相应的,只需要修改一下生成矩阵,和/或剩余数据压缩、打包时的组合方式。
本发明通过在移动客户端执行编码完成后,将原文件或者原数据分为m份,编码为m份原数据和m份校验数据。然后在移动终端的本地存储上保存文件原数据和1份数据,将m-1份校验数据合并或压缩成一个文件,上传到云空间保存。由于上传文件是经过转换的校验数据,其中不含有任何原来的数据信息,因此即使上传、存储、下载时被泄露,也不会泄露用户真正的数据信息。RS纠删码的数学性质,决定了这m-1份数据无论采用何种解密方式,经过任意多长时间的计算,都不可能得到原数据,或者换句话说,解码结果不确定,可以是任意数据。这就保证了用户数据的隐私安全。这m-1份校验数据的文件保存在云空间的存储中,同样可以利用云存储自身的存储安全机制保证数据的存储安全,大大节约了本地的存储空间。
图4是本发明一个实施例中的基于RS纠删码的安全存储的方法中解码过程的示意图,如图4所示,该方法的具体操作步骤如下:
解码过程中,首先从云存储中下载以前保存的文件,然后将它解开成m-1份文件或者数据。随后在本地存储或者移动存储介质中,获得1份数据,以及相应的逆矩阵数据。本例中,本地存储的数据为校验码P1。随后通过里德-所罗门机制的解码算法进行解码。
D=[P1,P2,…,P10]*G’
计算出所有原数据D1~D10后,再根据保存在客户端的文件元数据信息,合并为原文件。本地保存了文件的元数据信息。如果编码时经过了多次编 码,则解码时按照相反次序同样可进行多次解码,最终可获得原文件。
图5是本发明一个实施例中的基于RS纠删码的安全存储的方法中的使用随机字符串作为密钥的方法的编码过程示意图,如图5所示,该方法的具体操作步骤如下:
为了使整个系统管理简单,提高效率,仅使用一次编码和解码过程。为此,可以为每个待编码文件产生一个固定长度的随机字符串,如256B或1KB。从头至尾循环使用该字符串内容作为加密和解密密钥,参与编码。将待编码文件作为其余m-1份数据,参与编码。例如m=10时,可将待编码数据顺序作为D1,D2,D3….直到最后Dx,放入待解码数据后9份中。循环使用随机字符串key内容参与编码。生成矩阵中,第一列使用单位阵I中的第一列,即只有第一行为1,其余各行均为0,其余9列使用符合里德-所罗门生成矩阵的列数据。
编码结果,第一列key依然保持不变,待编码数据Di则被编码成为Pi。随后计算出生成矩阵的逆矩阵,然后和key一起保存在本地存储或者移动介质中。Pi系列的校验码数据,则打包或压缩成一个文件,上传至云存储中保存。由于生成矩阵和具体的待编码数据无关,因此系统可以预先计算出来,随编码、解码程序一起保存在客户端本地。
优选的,也可以将key进行编码,生成校验数据。本地存储数据保存key编码后的数据。这样生成矩阵只需要修改第一列元素即可,该生成矩阵就是图1中的生成矩阵。
随机字符串key的生成,应和本人帐号、信息等无关,是客户端计算机生成的一个固定长度的随机字符串。每个待编码文件生成的key之间也无关。key应在本地存储可容纳的存储空间范围内,具有足够的长度,且m也足够大,以便对抗频率分析和固定数据编码分析。
图6是本发明一个实施例中的基于RS纠删码的安全存储的方法中的使用随机字符串作为密钥的方法的解码过程示意图,如图6所示,该方法的具体操作步骤如下:
在解码时,首先从云存储中下载以前保存的文件,然后将它解开成m-1份文件或者数据。随后在本地存储或者移动存储介质中,获得1份解密密钥数据,以及相应的逆矩阵数据。本例中,本地存储的数据为随机字 符串key。随后通过里德-所罗门机制的解码算法进行解码。解码算法如图4公式所示。当解码文件较长时,从头到尾循环使用key中内容作为第一列待解码数据,计算出所有原数据D1,D2,…Dx后,再合并为原文件。
需要说明的是,为了提供更高等级的安全性,本发明中的方法,可以和其它方法共同使用。例如首先采用经典的加密方式对原数据D进行处理,然后对处理结果采用本发明的方法。解码时则相反,首先采用本发明的方法进行解码,再采用对应的解密方式获得真正的数据。
本发明提供的基于RS纠删码的安全存储方法和装置中,通过采用里德-所罗门机制进行加密,且每个文件使用的密钥都不相同,达到了一次一密的效果,整个系统具有理论上不可破解的最高安全性。同时在客户端需要保存的数据量很少,仅有原来的1/m,通过多级编码方式需要保存的数据更少,因此尤其适合智能手机和移动终端使用云上传功能,用户在数据上传、保存、下载时,其数据都是经过里德-所罗门机制编码的(m-1)/m份数据,且这些数据不是原数据的一部分。相同数据编码后也不相同,抗频率分析攻击。根据里德-所罗门编码机制,只有m-1份编码后的数据和生成矩阵,在数学上是无法解码成功的,从而解决了用户使用云存储保存文件和数据时,对隐私泄露的顾虑。
以上所述仅是本发明的基于RS纠删码的安全云存储的编码和解码方法的原理。本技术领域的技术人员,在不脱离本发明原理的前提下,还可做出若干改进或修饰,或者采用硬件实现本发明的编解码方法。不论采用何种实现本发明的方法,这些改进和修饰均应视为本发明的保护范围。

Claims (12)

1.一种基于RS纠删码的安全存储方法,其特征在于,所述方法包括步骤:
步骤S1、在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存,所述第二文件为编码文件和/或数据中除第一文件外的剩余部分;
步骤S2、将文件元数据信息中的通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据存放至本地;
步骤S3、将编码后的文件和/或数据下载到本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的所述解密密钥和文件元数据信息中的通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据,获取原文件和/或数据。
2.根据权利要求1所述的方法,其特征在于,所述方法中步骤S1具体包括:
本地客户端执行编码完成后,选取编码文件和/或数据中的一片文件和/或数据作为解密密钥存放在本地客户端,将编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
3.根据权利要求2所述的方法,其特征在于,所述方法中步骤S1还包括:
当编码文件和/或数据数量多时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;
将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
4.根据权利要求3所述的方法,其特征在于,所述方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照编码倒序进行多次解码;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息的逆矩阵数据,获取原文件和/或数据。
5.根据权利要求1所述的方法,其特征在于,所述方法中步骤S1具体包括:
在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥保存在本地客户端,将编码文件中的除随机字符串外剩余文件和/或数据上传至云存储空间保存。
6.根据权利要求5所述的方法,其特征在于,所述方法中步骤S1还包括:
当编码文件和/或数据长度大于解密密钥长度时,则循环使用解密密钥,从头至尾使用随机字符串的内容作为解密密钥参与编码。
7.根据权利要求6所述的方法,其特征在于,所述方法中步骤S2具体包括:
从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为解码数据;
通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
8.一种基于RS纠删码的安全存储装置,其特征在于,包括:
编码单元,用于在本地客户端执行编码时,根据编码文件和/或数据选取第一文件和/或数据作为解密密钥存放在本地,将编码文件和/或数据中的第二文件和/或数据上传至云存储空间保存,所述第二文件为编码文件和/或数据中除第一文件外的剩余部分;
解码单元,用于将编码后的文件和/或数据下载到本地客户端,按照编码的倒序进行解码,通过保存在本地客户端的所述解密密钥和文件元数据信息中的通过采用范德蒙德矩阵或柯西矩阵获得的第一生成矩阵对应的逆矩阵数据,获取原文件和/或数据。
9.根据权利要求8所述的装置,其特征在于,所述编码单元具体包括:
第一编码子单元,用于当编码文件和/或数据较大时,则采用多级编码方式,对第一次编码产生的解密密钥再次进行编码;
第一保存单元,用于将再次编码后的编码文件和/或数据中的一片文件和/或数据保存在本地客户端,将再次编码后的编码文件和/或数据中的剩余文件和/或数据上传至云存储空间保存。
10.根据权利要求9所述的装置,其特征在于,所述解码单元具体包括:
第一解码子单元,用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当采用多级编码方式编码时,则按照编码倒序进行多次解码;
第一获取单元,用于通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
11.根据权利要求8所述的装置,其特征在于,所述编码单元具体包括:
第二编码子单元,在本地客户端编码文件和/或数据时,对每个编码文件和/或数据生成一个固定长度的随机字符串作为解密密钥;
第二保存单元,用于将解密密钥保存在本地客户端,将编码文件中除随机字符串外的剩余文件和/或数据上传至云存储空间保存。
12.根据权利要求11所述的装置,其特征在于,所述解码单元具体包括:
第二解码子单元,用于从云存储空间中下载保存的剩余文件和/或数据,在本地客户端中获得解密密钥和逆矩阵数据,当解码文件和/或数据较长时,从头至尾循环使用解密密钥中的内容作为解码数据;
第二获取单元,用于通过RS纠删码计算出所有的原数据,根据保存在本地客户端的解密密钥和文件元数据信息中的逆矩阵数据,获取原文件和/或数据。
CN201410385773.6A 2014-08-07 2014-08-07 基于rs纠删码的安全存储方法和装置 Active CN105338035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410385773.6A CN105338035B (zh) 2014-08-07 2014-08-07 基于rs纠删码的安全存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410385773.6A CN105338035B (zh) 2014-08-07 2014-08-07 基于rs纠删码的安全存储方法和装置

Publications (2)

Publication Number Publication Date
CN105338035A CN105338035A (zh) 2016-02-17
CN105338035B true CN105338035B (zh) 2018-12-28

Family

ID=55288313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410385773.6A Active CN105338035B (zh) 2014-08-07 2014-08-07 基于rs纠删码的安全存储方法和装置

Country Status (1)

Country Link
CN (1) CN105338035B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768403B (zh) * 2018-05-30 2021-08-20 中国人民解放军战略支援部队信息工程大学 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
CN110874283B (zh) * 2018-08-31 2021-07-20 杭州海康威视系统技术有限公司 一种基于纠删码的数据存储方法、装置及电子设备
CN110674175A (zh) * 2019-09-26 2020-01-10 浪潮商用机器有限公司 一种对象存储方法、装置、设备及可读存储介质
CN111697976B (zh) * 2020-05-28 2023-01-06 苏州浪潮智能科技有限公司 一种基于分布式存储的rs纠删快速解码方法及系统
CN111682874B (zh) * 2020-06-11 2022-06-17 山东云海国创云计算装备产业创新中心有限公司 一种数据恢复的方法、系统、设备及可读存储介质
CN111858169B (zh) * 2020-07-10 2023-07-25 山东云海国创云计算装备产业创新中心有限公司 一种数据恢复方法、系统及相关组件
CN113259689A (zh) * 2021-05-10 2021-08-13 杭州叙简科技股份有限公司 一种分布式视频存储方法、装置及电子设备
CN113489645B (zh) * 2021-07-08 2022-08-19 北京中交通信科技有限公司 一种基于卫星通信的数据链路聚合方法和路由器、服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200637168A (en) * 2005-04-14 2006-10-16 Ind Tech Res Inst Digital communications system utilizing a modified reed-solomon code and decoder thereof
CN101854180A (zh) * 2010-06-01 2010-10-06 福建新大陆电脑股份有限公司 一种条码纠错译码装置
CN102833040A (zh) * 2012-08-03 2012-12-19 中兴通讯股份有限公司 解码处理方法、装置及编解码系统
CN102843212A (zh) * 2012-08-03 2012-12-26 中兴通讯股份有限公司 编解码处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200637168A (en) * 2005-04-14 2006-10-16 Ind Tech Res Inst Digital communications system utilizing a modified reed-solomon code and decoder thereof
CN101854180A (zh) * 2010-06-01 2010-10-06 福建新大陆电脑股份有限公司 一种条码纠错译码装置
CN102833040A (zh) * 2012-08-03 2012-12-19 中兴通讯股份有限公司 解码处理方法、装置及编解码系统
CN102843212A (zh) * 2012-08-03 2012-12-26 中兴通讯股份有限公司 编解码处理方法及装置

Also Published As

Publication number Publication date
CN105338035A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN105338035B (zh) 基于rs纠删码的安全存储方法和装置
Bowers et al. Proofs of retrievability: Theory and implementation
US9842217B2 (en) Method and system for securing data
AU2015243877B2 (en) Secure storage and accelerated transmission of information over communication networks
Li et al. Secure distributed deduplication systems with improved reliability
US9245148B2 (en) Secure storage and accelerated transmission of information over communication networks
CN108701197A (zh) 高效的秘密密钥加密的安全切片
CN103929467B (zh) 安全在线分布式的数据存储服务
US9092439B2 (en) Virtualized data storage vaults on a dispersed data storage network
CN105024803B (zh) 白箱实现中的行为指纹
US9419796B2 (en) Method for storing and recovering data, utilization of the method in a storage cloud, storage server and computer program product
Tierney et al. Cryptagram: Photo privacy for online social media
EP2779522B1 (en) Configurable key-based data shuffling and encryption
US9521128B2 (en) Using a hash of a filename to control encoding/decoding of a digital file
CN107634832A (zh) 字符串加密、验证方法、装置、计算机可读存储介质
CN103139149A (zh) 一种云存储的数据存取方法及系统
US20220253287A1 (en) Data set including a secure key
Chen et al. Message‐locked proof of ownership and retrievability with remote repairing in cloud
CN104978542A (zh) 安全存储数据和访问数据的方法及系统
CN103886272A (zh) 一种基于喷泉码的安全存储技术
Chen et al. Towards server-side repair for erasure coding-based distributed storage systems
CN103986718A (zh) 一种提高hdfs文件传输安全性和读取效率的方法
CN112764677B (zh) 一种在云存储中增强数据迁移安全性的方法
CN114282922A (zh) 一种基于冷钱包的区块链交易处理方法及装置
Rashid et al. Proof of retrieval and ownership protocols for images through spiht compression

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu.

Applicant after: SUNING.COM Co.,Ltd.

Address before: 210042 15, 1 Suning Road, Xuanwu District, Nanjing, Jiangsu.

Applicant before: SUNING COMMERCE GROUP Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A secure storage method and device based on RS erasure code

Effective date of registration: 20231220

Granted publication date: 20181228

Pledgee: Bank of China Limited Nanjing Gulou Branch

Pledgor: SUNING.COM Co.,Ltd.

Registration number: Y2023980071946

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20181228

Pledgee: Bank of China Limited Nanjing Gulou Branch

Pledgor: SUNING.COM Co.,Ltd.

Registration number: Y2023980071946

PC01 Cancellation of the registration of the contract for pledge of patent right