一种基于纠删码的数据安全删除方法和系统的制作方法

文档序号:6634013阅读:267来源:国知局
一种基于纠删码的数据安全删除方法和系统的制作方法
【专利摘要】本发明公开了一种基于纠删码的数据安全删除方法,包括:将源数据均分为k个相同大小的数据块,标识为D0、D1、…、Dk-1,选择一个随机数或伪随机数nonce,使用密钥Key对其进行加密,以得到一个与数据块D0相同大小的块,利用得到的块对D0、D1、…、Dk-1进行按位异或,以得到新的数据块C0、C1、…、Ck-1,将随机数或伪随机数nonce均分为k份,并将其分别附加到数据块C0、C1、…、Ck-1末尾,以得到数据块C0’、C1’、…、Ck-1’,采用系统纠删码算法对k个数据块C0’、C1’、…、Ck-1’进行编码计算,以得到r个校验块P0、P1、…、Pr-1。本发明能够解决现有方法中由于重复覆盖写引起的高写开销和对磁盘造成的损伤,以及采用数据副本方式以增强数据可用性时增加覆盖写开销的技术问题。
【专利说明】一种基于纠删码的数据安全删除方法和系统

【技术领域】
[0001]本发明属于数据存储领域,更具体地,涉及一种基于纠删码的数据安全删除方法和系统。

【背景技术】
[0002]由于磁盘的存储空间有限,为了存储新数据,需要将无用的数据删除。但是,用户删除数据时其实并没有真正的将数据从磁盘上删除,只是将文件的索引删除而已,此类删除的数据容易被恢复。如果所删除数据是机密数据,那么这种删除方法就无法保障数据的安全性,因此进行数据安全删除是必要的。数据安全删除通常利用覆盖原理来实现的一一使用预先定义的格式(如无意义、无规律的信息)去覆盖磁盘上原先存储的数据。由于硬盘上的数据都是以二进制的“ 1 ”和“0”形式存储的,进行覆盖后也就无法知道原本的数据是“ 1 ”还是“0” 了。鉴于磁记录介质的磁化翻转工作原理,只成功覆盖一次是无法确保数据是不可恢复的,要达到较高的安全性,必须将全部要删除的数据成功地覆盖多次,重复的覆盖写不仅会引起很大的写开销,而且也将对磁盘造成一定的损伤。此外,由于数据蕴含重要经济价值,除了数据机密性外,还需要保障其可用性,通常采用数据副本方式来增强可用性,然而,在三副本情况下,由于存储开销变为之前的三倍,上述数据安全删除方案所需覆盖写开销也相应会翻三倍。


【发明内容】

[0003]针对现有技术的以上缺陷或改进需求,本发明提供了一种基于纠删码的数据安全删除方法,其目的在于,解决现有方法中存在的由于重复覆盖写引起的高写开销和对磁盘造成的一定损伤,以及采用数据副本方式以增强数据可用性时进一步增加覆盖写开销的技术问题。
[0004]为实现上述目的,按照本发明的一个方面,提供了一种基于纠删码的数据安全删除方法,包括以下步骤:
[0005](1)将源数据均分为匕个相同大小的数据块,标识为队為、…、,其中匕为大于1的正整数;
[0006](2)选择一个随机数或伪随机数1101106,使用密钥1(67对其进行加密,以得到一个与数据块0。相同大小的块;
[0007](3)利用步骤⑵得到的块对队為、…、行按位异或,以得到新的数据块(^。、。…、“
[0008](4)将随机数或伪随机数11011⑶均分为&份,并将其分别附加到数据块0^1、…、 末尾,以得到数据块0。’、¢:/、…、;
[0009](5)采用系统纠删码算法对乂个数据块0/、(:/、…、进行编码计算,以得到I'个校验块?。、?丨、…、已-丨,其中I'为大于0的正整数,系统纠删码算法采用066(1-3010111011编码;
[0010](6)将步骤⑷得到的&个数据块0/4’、…、和I'个校验块?。、?:、^分别存储在磁盘的匕!"个存储节点上;
[0011](7)在删除数据时,从&+1'个存储节点中选择任意1+1个节点,删除&+1'个块10。’、0/,…、0^’、?。、?:、…、?』中与!'+1个节点对应的任意!'+1个块。
[0012]按照本发明的另一方面,提供了一种基于纠删码的数据安全删除系统,包括:
[0013]第一模块,用于将源数据均分为匕个相同大小的数据块,标识为0。』”…、,其中匕为大于1的正整数;
[0014]第二模块,用于选择一个随机数或伪随机数!
以得到一个与数据块0。相同大小的块;
[0015]第三模块,用于利用第二模块得到的块对0。、!^、…、行按位异或,以得到新的数据块(^、(^、…、0^;
[0016]第四模块,用于将随机数或伪随机数!10!!⑶均分为&份,并将其分别附加到数据块“、…、(^末尾,以得到数据块0。’、(:/、…、、’;
[0017]第五模块,用于采用系统纠删码算法对匕个数据块0/4’、…、进行编码计算,以得到I个校验块?。、?”…、?~,其中I为大于0的正整数;
[0018]第六模块,用于将第四模块得到的&个数据块0/ 乂’、…、和『个校验块?。、IV…、分别存储在磁盘的匕!"个存储节点上;
[0019]第七模块,用于在删除数据时,从匕1~个存储节点中选择任意1+1个节点,删除个块100,、。,、…、0^’、?。、?。…、?』中与!'+1个节点对应的任意!'+1个块。
[0020]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0021]1、本发明解决了现有方法中存在的高覆盖写开销的问题,由于采用了系统纠删码对数据块进行编码以保障数据的可用性,如步骤(5),与数据副本方式相比,有效减小了数据的存储开销,从而减少了删除数据时的覆盖写开销,另一方面,利用纠删码的特性,数据的安全删除不再需要对整个数据进行覆盖,只需彻底删除部分数据块,如步骤(7),有效地减小了覆盖的数据量,进一步减少了覆盖写开销,同时也降低了频繁写磁盘对磁盘造成的损伤;
[0022]2、本发明解决了现有方法中为保障数据可用性引起的高存储开销的问题,步骤(5)中采用系统纠删码对数据块进行编码,当存储节点发生故障时,根据纠删码的特性,只要磁盘中还存在足够量的编码块,便可恢复原始数据,与数据副本的方式相比,有效减小了存储开销,同时保证了数据的高可用性;
[0023]3、本发明保障了数据的高安全性,步骤⑶和步骤⑷中对原始数据进行运算和拼接,以及步骤(5)中采用系统纠删码对数据块进行编码,删除部分编码块,就能保证数据是无法被恢复的,还能防止数据被窃密。又由于采用了步骤(2),即使在密钥匕7被窃取的情况下,也能保证数据的安全性;
[0024]4、在本发明中,对数据进行读丨写时所需的开销较低,对原始数据块正常读写时,只需要进行基本的异或运算,即使需要读写的原始数据块为失效状态时,除了基本的异或运算之外,只需要采用系统纠删码对未失效的编码块进行解码。

【专利附图】

【附图说明】
[0025]图1为系统码的编码过程。
[0026]图2为本发明基于纠删码的数据安全删除方法的流程图。
[0027]图3为本发明基于纠删码的数据安全删除方法的示意图。
[0028]图4为存储节点中信息块的分布示意图。

【具体实施方式】
[0029]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0030]以下首先就本发明的技术术语进行解释和说明:
[0031]加密、解密:把直接的文字或可直接理解的信息按某种算法进行处理,使其成为不可直接理解的信息,从而保护我们的信息,这过程就叫加密,该过程的逆过程为解密;
[0032]密钥:一种参数,是在加密或者解密过程中输入的数据。
[0033]按位异或:异或是一个数学运算符,数学符号为“0”,计算机符号为“乂01?”,其运算法则相当于不带进位的二进制加法,二进制下用1表示真,0表示假,异或的运算法则为:0 0 0 = 0,100=1,001 = 1,101 = 0(同为0,异为1)。按位异或则是两个二进制数对应的二进位异或,举实例说明:若X是二进制数0101,7是二进制数1011,则X 0 7 =11100
[0034]系统纠删码算法:把原始数据分为&个数据块并进行编码,得到=(010个数据块的数据,若拥有任意&个数据块,则运用适当的译码方法就可恢复原始数据,称这种码为01,10纠删码。当II个数据块中前&个数据块与原始数据块相同时,纠删码可称为系统纠删码,简称为系统码。图1为系统码运用矩阵进行的编码过程,其中分布矩阵的前亍可形成单位矩阵,0/4/、…、¢:,-/为源数据均分得到的&个数据块,把&个数据块组成有匕个元素的列向量I利用% = ?得到有个元素的列向量?,?的前&个元素可组成0,后V = 11)个元素对应为I'个校验块?。、?丨、…、卩广广
[0035]图2为基于纠删码的数据安全删除方法的流程图,如图2所示,包括以下步骤:
[0036](1)将源数据均分为&个相同大小的数据块,标识为0。、!^、…、,其中&为大于1的正整数。例如,如图3所示,0。、0^ 02、03为原始数据被均分得到的4个相同大小数据块;
[0037](2)选择一个随机数或伪随机数1101106,使用密钥1(67对其进行加密,以得到一个与数据块0。相同大小的块。例如,如图3所示,使用密钥1(67对1101^6进行加密,得到一个与数据块0。相同大小的块;
[0038](3)利用步骤⑵得到的块对队為、…、行按位异或,以得到新的数据块(^。、
1、…、0^0例如,如图3所示,步骤⑵得到的块对0。、0^ 02、03进行按位异或,得到(^。、
[0039](4)将随机数或伪随机数11011⑶均分为&份,并将其分别附加到数据块0^1、…、0^末尾,以得到数据块〇。’、¢:/、…、0,-/0例如,如图3所示,将1101106分为4份,在此标识为已、6、。、山将已、6、。、(1分别添加到0。、0^02? 4的末尾,得到0。’、0/, 02\03?;
[0040](5)采用系统纠删码算法对乂个数据块0/ ,0/,…、进行编码计算,以得到I'个校验块?。、已、…、,其中I为大于0的正整数。例如,如图3所示,对、02’、〇3’进行系统码计算,得到校验块,在图3中,只生成2个校验块?。、?工。另外,具体而言,本发明中系统纠删码算法可米用066(1-3010111011编码;
[0041](6)将步骤⑷得到的&个数据块0/4’、…、和I'个校验块?。、?:、^分别存储在磁盘的个存储节点上。如图4所示,其中0/乂’、’为&个数据块,
…、匕-工为I个检验块,这匕!'个编码块存储在磁盘的&+1'个存储节点上;
[0042](7)在删除数据时,从&+1'个存储节点中选择任意1+1个节点,删除&+1'个块10。’、0/,…、0^’、?。、?”中与1+1个节点对应的任意1+1个块。例如,如图3所示,删除6个编码块10。’、(:/、02’、、?。、?」中的3个块,这3个块为03、?0、?10
[0043]当完成数据删除操作时,幸存块个数为卜1。根据纠删码的编码特性,1^-1个块不足以恢复出编码前的&个数据块0/、(^’、…、,这意味着无法获得正确的110%6,那么即使密钥1(67被窃取,也无法解密得到原始数据块0。、IV…、IV”由此达到了数据安全删除的目的。例如,如图3所示,删除块03、?。、?工后,幸存块的个数为3,根据纠删码的特性,
3个编码块无法恢复出数据块0/、(:/、(:/、(:/,那么也就无法解密得到原始数据0。、0” 02、03,此夕卜,由于无法获得正确的11011(36,即使1(67被窃取,也无法解密出
[0044]本发明还公开了一种基于纠删码的数据安全删除系统,包括:
[0045]第一模块,用于将源数据均分为匕个相同大小的数据块,标识为0。』”…、,其中匕为大于1的正整数;
[0046]第二模块,用于选择一个随机数或伪随机数!
以得到一个与数据块0。相同大小的块;
[0047]第三模块,用于利用第二模块得到的块对0。、!^、…、行按位异或,以得到新的数据块(^、(^、…、0^;
[0048]第四模块,用于将随机数或伪随机数!10!!⑶均分为&份,并将其分别附加到数据块“、…、(^末尾,以得到数据块0。’、(:/、…、、’;
[0049]第五模块,用于采用系统纠删码算法对匕个数据块0/4’、…、进行编码计算,以得到I个校验块?。、?”…、?~,其中I为大于0的正整数;
[0050]第六模块,用于将第四模块得到的&个数据块0/ 乂’、…、和『个校验块?。、IV…、分别存储在磁盘的匕!"个存储节点上;
[0051〕 第七模块,用于在删除数据时,从匕1~个存储节点中选择任意1^+1个节点,删除个块100,、。,、…、0^’、?。、?。…、?』中与!'+1个节点对应的任意!'+1个块。
[0052]总而言之,本发明具有以下优点:
[0053]1、本发明解决了现有方法中存在的高覆盖写开销的问题,由于采用了系统纠删码对数据块进行编码以保障数据的可用性,如步骤(5),与数据副本方式相比,有效减小了数据的存储开销,从而减少了删除数据时的覆盖写开销,另一方面,利用纠删码的特性,数据的安全删除不再需要对整个数据进行覆盖,只需彻底删除部分数据块,如步骤(7),有效地减小了覆盖的数据量,进一步减少了覆盖写开销,同时也降低了频繁写磁盘对磁盘造成的损伤;
[0054]2、本发明解决了现有方法中为保障数据可用性引起的高存储开销的问题,步骤
(5)中采用系统纠删码对数据块进行编码,当存储节点发生故障时,根据纠删码的特性,只要磁盘中还存在足够量的编码块,便可恢复原始数据,与数据副本的方式相比,有效减小了存储开销,同时保证了数据的高可用性;
[0055]3、本发明保障了数据的高安全性,步骤(3)和步骤(4)中对原始数据进行运算和拼接,以及步骤(5)中采用系统纠删码对数据块进行编码,删除部分编码块,就能保证数据是无法被恢复的,还能防止数据被窃密。又由于采用了步骤(2),即使在密钥匕7被窃取的情况下,也能保证数据的安全性;
[0056]4、在本发明中,对数据进行读丨写时所需的开销较低,对原始数据块正常读写时,只需要进行基本的异或运算,即使需要读写的原始数据块为失效状态时,除了基本的异或运算之外,只需要采用系统纠删码对未失效的编码块进行解码。
[0057]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于纠删码的数据安全删除方法,其特征在于,包括以下步骤: (1)将源数据均分为k个相同大小的数据块,标识为DpDp…、Dlri,其中k为大于I的正整数; (2)选择一个随机数或伪随机数nonce,使用密钥Key对其进行加密,以得到一个与数据块Dtl相同大小的块; (3)利用步骤(2)得到的块对%、D1,…、0,_1进行按位异或,以得到新的数据块CrC1'...、Ck_1; (4)将随机数或伪随机数nonce均分为k份,并将其分别附加到数据块Q、C1,…、Clrl末尾,以得到数据块(V、C/、...、(;_/; (5)采用系统纠删码算法对k个数据块(V、C/、…、Clri’进行编码计算,以得到r个校验块Ρο'Ρρ…、Pu。其中,r为大于O的正整数,其中系统纠删码算法采用Reed-Solomon编码; (6)将步骤(4)得到的k个数据块C。’、C/、...、(;_/和r个校验块P。、P1,…、Pr_^别存储在磁盘的k+r个存储节点上; (7)在删除数据时,从k+r个存储节点中选择任意r+Ι个节点,删除k+r个块{C。’、C/、…、CkV、P。、Pp…、U中与r+Ι个节点对应的任意r+Ι个块。
2.一种基于纠删码的数据安全删除系统,其特征在于,包括: 第一模块,用于将源数据均分为k个相同大小的数据块,标识为DpDp…、Dlri,其中k为大于I的正整数; 第二模块,用于选择一个随机数或伪随机数nonce,使用密钥Key对其进行加密,以得到一个与数据块Dtl相同大小的块; 第三模块,用于利用第二模块得到的块对DrDp…、0,_1进行按位异或,以得到新的数据块 C。、Q、…、Ck_1; 第四模块,用于将随机数或伪随机数nonce均分为k份,并将其分别附加到数据块Q、C1,…、Clri末尾,以得到数据块C。’、C/、…、Ck-/; 第五模块,用于采用系统纠删码算法对k个数据块(V、c/、…、CkV进行编码计算,以得到r个校验块Pc^ Pp…、Prt,其中r为大于O的正整数; 第六模块,用于将第四模块得到的k个数据块Q/、C/、...、(;_/和r个校验块匕、Po…、Prt分别存储在磁盘的k+r个存储节点上; 第七模块,用于在删除数据时,从k+r个存储节点中选择任意r+Ι个节点,删除k+r个ik {C0\C1\…、Clri’、P。、Pp -,PrtI中与r+Ι个节点对应的任意r+Ι个块。
【文档编号】G06F3/06GK104484126SQ201410640456
【公开日】2015年4月1日 申请日期:2014年11月13日 优先权日:2014年11月13日
【发明者】黄建忠, 曹强, 谢长生, 王艳群, 蔡颖 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1