一种基于固态盘阵列的数据安全删除方法与流程

文档序号:16845478发布日期:2019-02-12 22:09阅读:321来源:国知局
一种基于固态盘阵列的数据安全删除方法与流程

本发明属于计算机数据存储技术领域,更具体地,涉及一种基于固态盘阵列的数据安全删除方法。



背景技术:

目前,基于闪存的固态盘(ssd)已成为磁盘的有力替代品,并且得到了学术界和工业界的广泛关注。固态盘除了应用于桌面机之外,也渐渐应用于服务器和企业级数据存储系统中。在企业级数据存储系统中,单个固态盘显然无法满足服务对存储系统容量、性能和可靠性的要求。因此,将磁盘阵列(raid)算法应用到固态盘存储系统中,构建大容量、高性能和高可靠的存储系统非常有必要,即固态盘阵列。类似于raid,固态盘阵列的性能也受到阵列中性能最差的成员盘的影响。因此,单个固态盘的不可靠将使得固态盘阵列表现出严重的性能波动。

固态盘阵列中的固态盘在内部都采用异地更新的操作方式,当用户使用安全软件对固态盘中的文件进行安全删除时,对目标数据的覆盖操作全部都被转移到新的空闲物理页。因此,敏感的目标数据不会被物理覆盖或擦除,而仅仅是在固态盘内被标记为无效数据。也就是说,文件内容依然会存在于闪存之中。所有的改变仅仅是,从原来的逻辑地址无法读取到目标文件的数据而已,此类被删除的数据很容易被恢复,数据的安全性无法保障。

基于闪存芯片的固态盘中数据安全删除问题研究,现有的主要手段是通过主机对设备目标数据进行数据填充的方式来实现数据的销毁或清除。这种方法对于闪存型存储器存在两方面问题:①该方法需要通过写操作来完成,而在闪存中写操作过程繁琐,耗时较长,时间开销很大;②出于对闪存寿命及磨损平衡的考虑,存储器保留有用于备份的冗余块,该方法在使用过程中会导致数据残留在备份块中。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提出一种基于固态盘阵列的数据安全删除方法,将秘密共享机制的基本原理引入其中,通过破坏固态盘阵列中各固态盘数据的冗余能力,结合数据转换处理操作,在破坏数据完整性后,剩余数据均已加密,即使攻击者得到部分编码数据,也不能获取明文,从而达到安全删除数据的目的,相应地可有效解决现有技术中由于固态盘的异地更新特性导致数据无法安全删除,固态盘阵列的数据存储安全问题,以及大量覆盖写影响闪存寿命及磨损平衡等问题。

为实现上述目的,本发明提供一种基于固态盘阵列的数据安全删除方法,所述方法包括:

(1)对源数据d进行封装转换,得到封装转换后数据(x,t),其中x为头部,t为尾部;

(2)通过秘密共享算法(n,k,r)对步骤(1)得到的封装转换后数据(x,t)进行冗余编码,得到n个编码后数据,其中n为秘密共享算法编码后输出数据的份额数量,k为秘密可进行重构的份额数量,r为秘密不能进行重构的份额数量,n>k>r≥0。

(3)将步骤(2)得到的n个编码后数据分别存放到固态盘阵列中的n个固态盘上;

(4)根据所述秘密共享算法的冗余能力n-r,将达到破坏冗余能力n-r的固态盘数目上的数据删除,即可完成数据的安全删除。

作为进一步优选的,所述步骤(1)包括:

(1-1)利用哈希函数h对源数据进行处理,得到源数据d的哈希值h=h(d);

(1-2)将h作为密钥,对与d相同大小的恒定值块c利用加密函数e()进行加密,得到e(h,c);

(1-3)将源数据d与e(h,c)进行异或运算,得到封装数据的头部x,

(1-4)利用哈希函数h对封装数据的头部x进行处理,得到h(x),将源数据d的哈希值h与h(x)进行异或运算,得到封装数据的尾部t,进一步得到源数据d的封装转换后数据(x,t)。

作为进一步优选的,所述步骤(2)包括:

(2-1)将封装转换后数据(x,t)均分为k等份,标识为s0,s1,…sk-1;

(2-2)采用冗余编码算法对s0,s1,…sk-1进行编码,生成n个冗余编码后数据。

作为进一步优选的,所述固态盘包括:多个相互独立的闪存固态盘;以及阵列控制器,用于在各个固态盘之间进行总线调度,对各个固态盘进行直接控制。

作为进一步优选的,当所述固态盘阵列中单个或多个固态盘的部分数据丢失时,只要剩下固态盘的数据冗余能力n-r没被破坏,可选择执行数据重构程序,对丢失的数据进行重构恢复。

作为进一步优选的,对固态盘上数据的删除可采取全零覆写物理页的方式进行。

作为进一步优选的,所述达到破坏冗余能力n-r的固态盘数目上的数据删除具体为:从物理介质上删除或覆盖属于同一源数据编码分发到n-r个固态盘上的数据,且通过剩余固态盘上的数据无法对丢失的数据进行重构恢复。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明解决了现有技术中由于固态盘的异地更新特性导致固态盘阵列中的数据无法安全删除的问题,一方面,采用了秘密共享算法来保障数据的可靠性和安全性,大大提升了存储空间利用率;另一方面,利用冗余编码的特性,对数据的删除不再需要对整个数据进行覆盖写,而是删除部分数据块来保证数据无法恢复,破坏了数据的完整性,删除过程减小了擦除开销以及对固态盘的磨损。

(2)本发明对数据进行冗余编码,通过在编码前采取特殊的数据转换处理,增强数据隐私保护,利用冗余编码的特性,破坏数据完整性,残余数据被加密保护,即使攻击者得到数据,也不能获取明文,达到数据安全删除的目的。

(3)本发明利用固态盘阵列中固态盘可并行操作的特点,采用秘密共享算法对数据编码,当固态盘阵列中单个或多个固态盘上的部分数据丢失时,通过执行数据重构程序,对丢失的数据进行重构恢复,提升了固态盘阵列中数据的可靠性。

(4)打破常规思维。传统方案中冗余技术是用来保障数据可靠性,在本发明中利用其数据冗余能力被破坏后数据不可获取的特性,实现了数据安全删除。

附图说明

图1为本发明的固态盘阵列的硬件结构图;

图2为本发明的基于固态盘阵列的数据安全删除方法流程图;

图3为本发明实施例的基于固态盘阵列的数据安全删除方法流程图;

图4为本发明实施例的数据转换及编码过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1为本发明的固态盘阵列的硬件结构图。其中阵列控制器在各个固态盘之间进行总线调度,对固态盘进行直接控制,各固态盘内部有自己的控制器,同时使用ecc控制器对所有的写数据生成ecc(errorcorrectingcode,错误纠正码),并对所有读数据进行ecc检测与纠错。从硬件结构上看,固态盘阵列可以通过多个固态盘并行操作,来达到极高的数据吞吐率,并且在各固态盘内部可以通过对多个数据通道进行并行操作,使数据传输率接近通道的最大传输速度。

图2为本发明的基于固态盘阵列的数据安全删除方法流程图,所述方法包括以下步骤:

(1)对源数据d进行封装转换,包括哈希(hash)操作和加密操作;

步骤(1)中所述封装转换,具体包括以下步骤:

(1-1)利用哈希函数h对源数据进行处理,得到源数据d的哈希值h=h(d);

(1-2)将h作为密钥,对与d相同大小的恒定值块c利用加密函数e()进行加密,得到e(h,c);

(1-3)将源数据d与e(h,c)进行异或运算,得到封装数据的头部x,

(1-4)利用哈希函数h对封装数据的头部x进行处理,得到h(x),将源数据d的哈希值h与h(x)进行异或运算,得到封装数据的尾部t,进一步得到源数据d的封装转换后数据(x,t)。

(2)对步骤(1)中所得到的封装转换后的数据,采用秘密共享算法进行冗余编码;

其中,秘密共享算法(secretsharing)将输入数据秘密(secret)转换成编码后的输出数据份额(shares),目的在于保障秘密的容错性和保密性。秘密共享算法通过三个参数(n,k,r)进行定义:该算法将秘密编码为n个份额(n>k>r≥0)(i)秘密可以通过任何k个份额进行重构,(ii)秘密不能通过任何r个份额推断出来。参数(n,k,r)决定了秘密共享算法的保护强度。特别的,n和k决定了秘密的容错能力,只要任何k个份额存在,秘密就可以被访问。也就是说,它允许丢失n-k个份额。参数r决定秘密的机密度,只要少于r个份额被攻击者获取,那么秘密就是安全的。

所述步骤(2)具体包括:

(2-1)将封装转换后数据(x,t)均分为k等份,标识为s0,s1,…sk-1;

(2-2)采用冗余编码算法对s0,s1,…sk-1进行编码,生成n个冗余编码后数据。

(3)将冗余编码后的数据分别存放到固态盘阵列中的多个固态盘上;

当所述固态盘阵列中单个或多个固态盘的部分数据丢失时,只要剩下固态盘的数据冗余能力没被破坏,可选择执行数据重构程序,对丢失的数据进行重构恢复。

(4)当执行数据的安全删除时根据所述秘密共享算法的冗余能力,将达到破坏冗余能力的固态盘数目上的数据进行删除。

这里,对固态盘上数据的删除可采取全零覆写物理页的方式进行。

图3为本发明实施例的基于固态盘阵列的数据安全删除方法流程图,具体包括以下步骤:

(10)将源数据标记为d,即为数据初始状态;

(20)对步骤(10)中所述数据进行封装,将d作为哈希函数h的输入值,产生一个哈希值h,即h=h(d),标记为(d,h);

(30)将源数据d与e(h,c)进行异或运算,得到数据封装的头部x,其中,为异或操作,c为与d相同大小的恒定值块,e是将h作为密钥加密c的一种加密函数;

(40)数据封装的尾部为t,数据最终封装为(x,t);

(50)将步骤(40)中的(x,t)均分为k等份,标识为s0,s1,…sk-1,k=1,2,...,k;

(60)采用冗余编码算法对s0,s1,…sk-1进行编码计算,产生n个等份f0,f1,…fn-1,分别存放到固态盘阵列的n个固态盘上,n=1,2,...,n,本实施例中采用系统纠删码;

(70)当执行数据的安全删除时根据所述冗余编码的冗余能力,将达到破坏冗余能力的(n-r)个固态盘数目上的数据进行删除,其中r=k-1。

图4为本发明实施例的数据转换及编码过程示意图。该实施例中,以n=4,k=3,r=2为例。将源数据d作为哈希函数h(如sha-256)的输入,得到一个哈希值h,h=h(d);为了得到高安全性,我们将(d,h)转换成(x,t),其中c为与d相同大小的恒定值块,e为加密函数(如,aes-256),h作为密钥对c进行加密,h’=h(x);最后将(x,t)均分成3等份,使用reed-solomon码对数据编码,产生4个份额。根据该编码的特性,通过2个份额是无法推断出源数据的,故当执行数据安全删除时,破坏其中两个份额即可,剩下的份额已被加密保护,达到数据安全删除的目的。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1