一种基于闪存的固态盘的数据安全删除方法转让专利

申请号 : CN201510988245.4

文献号 : CN105608394B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾令仿涂盛霞冯丹

申请人 : 华中科技大学

摘要 :

本发明公开了一种基于闪存的固态盘的数据安全删除方法,利用固态盘中多个数据通道可并行操作的特点,采用改进的秘密共享方案,对数据进行转换处理,将编码后的数据分发到各个数据通道,一方面,编码保证数据冗余,且转换后的数据为密文,提高数据可靠性与安全性;另一方面,利用容错编码的特性,对数据的删除不再需要对整个数据进行覆盖写,而是删除部分数据,破坏数据完整性,使数据无法恢复。即使攻击者得到部分编码数据,也不能获取明文,达到数据安全删除的目的。本发明解决了固态盘的存储不可靠、文件无法安全删除等数据存储安全问题。

权利要求 :

1.一种基于闪存的固态盘的数据安全删除方法,其特征在于,所述方法包括:(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,X=D⊕E(h,C);

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

2.根据权利要求1所述的方法,其特征在于,所述步骤(2)包括:(2-1)将封装转换后数据(X,t)均分为k等份,标识为S0,S1,…Sk-1;

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

3.根据权利要求1或2任一项所述的方法,其特征在于,所述固态盘包括:多个相互独立的NAND闪存;

固态盘控制器,用于在各个通道内进行总线调度,对各NAND闪存进行直接控制。

4.根据权利要求1或2任一项所述的方法,其特征在于,当所述固态盘中单个或多个通道的部分数据丢失时,只要剩下通道的数据冗余能力n-r没被破坏,可选择执行数据重构程序,对丢失的数据进行重构恢复。

5.根据权利要求1或2任一项所述的方法,其特征在于,对数据通道上数据的删除可采取全零覆写物理页的方式进行。

6.根据权利要求1所述的方法,其特征在于,所述达到破坏冗余能力n-r的数据通道数目上的数据删除具体为:从物理介质上删除或覆盖属于同一源数据编码分发到n-r个通道上的数据,且通过剩余通道上的数据无法对丢失的数据进行重构恢复。

说明书 :

一种基于闪存的固态盘的数据安全删除方法

技术领域

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

背景技术

[0002] 固态盘(SSD)的可靠性面临着考验,有调查显示,固态盘虽然提高了性能,但其可靠性并不强于传统硬盘。调查主要最针对的是英特尔的固态盘。许多用户担心固态盘的写入次数限制,在实际情况下通常是其它故障引发问题。
[0003] 固态盘在内部都采用异地更新的操作方式,当用户使用安全软件对固态盘中的文件进行安全删除时,对目标数据的覆盖操作全部都被转移到新的空闲物理页。因此,敏感的目标数据不会被物理覆盖或擦除,而仅仅是在固态盘内被标记为无效数据。也就是说,文件内容依然会存在于闪存之中。所有的改变仅仅是,从原来的逻辑地址无法读取到目标文件的数据而已,此类被删除的数据很容易被恢复,数据的安全性无法保障。
[0004] 基于闪存芯片的固态盘中数据安全删除问题研究,现有的主要手段是通过主机对设备目标数据进行数据填充的方式来实现数据的销毁或清除。这种方法对于闪存型存储器存在两方面问题:①该方法需要通过写操作来完成,而在闪存中写操作过程繁琐,耗时较长,时间开销很大;②出于对闪存寿命及磨损平衡的考虑,存储器保留有用于备份的冗余块,该方法在使用过程中会导致数据残留在备份块中。
[0005] 秘密共享算法(secret sharing)将输入数据秘密(secret)转换成编码后的输出数据份额(shares),目的在于保障秘密的容错性和保密性。秘密共享算法通过三个参数(n,k,r)进行定义:该算法将秘密编码为n个份额(n>k>r≥0)(i)秘密可以通过任何k个份额进行重构,(ii)秘密不能通过任何r个份额推断出来。参数(n,k,r)决定了秘密共享算法的保护强度。特别的,n和k决定了秘密的容错能力,只要任何k个份额存在,秘密就可以被访问。也就是说,它允许丢失n-k个份额。参数r决定秘密的机密度,只要少于r个份额被攻击者获取,那么秘密就是安全的。

发明内容

[0006] 针对现有技术的以上缺陷或改进需求,本发明提出一种基于闪存的固态盘的数据安全删除方法,将秘密共享机制的基本原理引入其中,通过破坏固态盘上各通道数据的冗余能力,结合数据转换处理操作,在破坏数据完整性后,剩余数据均已加密,即使攻击者得到部分编码数据,也不能获取明文,从而达到安全删除数据的目的,相应地可有效解决现有技术中由于固态盘的异地更新特性导致数据无法安全删除,固态盘的数据存储安全问题,以及大量覆盖写影响闪存寿命及磨损平衡等问题。
[0007] 为实现上述目的,本发明提供一种基于闪存的固态盘的数据安全删除方法,其特征在于,所述方法包括:
[0008] (1)对源数据D进行封装转换,得到封装转换后数据(X,t),其中X为头部,t为尾部;
[0009] (2)通过秘密共享算法(n,k,r)对步骤(1)得到的封装转换后数据(X,t)进行冗余编码,得到n个编码后数据,其中n为秘密共享算法编码后输出数据的份额数量,k为秘密可进行重构的份额数量,r为秘密不能进行重构的份额数量,n>k>r≥0。
[0010] (3)将步骤(2)得到的n个编码后数据分别存放到固态盘上的n个通道中;
[0011] (4)根据所述秘密共享算法的冗余能力n-r,将达到破坏冗余能力n-r的通道数目上的数据删除,即可完成数据的安全删除。
[0012] 作为进一步优选的,所述步骤(1)包括:
[0013] (1-1)利用哈希函数H对源数据进行处理,得到源数据D的哈希值h=H(D);
[0014] (1-2)将h作为密钥,对与D相同大小的恒定值块C利用加密函数E()进行加密,得到E(h,C);
[0015] (1-3)将源数据D与E(h,C)进行异或运算,得到封装数据的头部X,X=D⊕E(h,C);
[0016] (1-4)利用哈希函数H对封装数据的头部X进行处理,得到H(X),将源数据D的哈希值h与H(X)进行异或运算,得到封装数据的尾部t,t=h⊕H(X),进一步得到源数据D的封装转换后数据(X,t)。
[0017] 作为进一步优选的,所述步骤(2)包括:
[0018] (2-1)将封装转换后数据(X,t)均分为k等份,标识为S0,S1,…Sk-1;
[0019] (2-2)采用冗余编码算法对S0,S1,…Sk-1进行编码,生成n个冗余编码后数据。
[0020] 作为进一步优选的,所述固态盘包括:
[0021] 多个相互独立的NAND闪存;
[0022] 固态盘控制器,用于在各个通道内进行总线调度,对各NAND闪存进行直接控制。
[0023] 作为进一步优选的,当所述固态盘中单个或多个通道的部分数据丢失时,只要剩下通道的数据冗余能力n-r没被破坏,可选择执行数据重构程序,对丢失的数据进行重构恢复。
[0024] 作为进一步优选的,对数据通道上数据的删除可采取全零覆写物理页的方式进行。
[0025] 作为进一步优选的,所述达到破坏冗余能力n-r的数据通道数目上的数据删除具体为:从物理介质上删除或覆盖属于同一源数据编码分发到n-r个通道上的数据,且通过剩余通道上的数据无法对丢失的数据进行重构恢复。
[0026] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0027] 1、本发明解决了现有技术中由于固态盘的异地更新特性导致数据无法安全删除的问题,一方面,采用了秘密共享算法来保障数据的可靠性和安全性,大大提升了存储空间利用率;另一方面,利用冗余编码的特性,对数据的删除不再需要对整个数据进行覆盖写,而是删除部分数据块来保证数据无法恢复,破坏了数据的完整性,删除过程减小了擦除开销以及对固态盘的磨损;
[0028] 2、本发明对数据进行冗余编码,通过在编码前采取特殊的数据转换处理,增强数据隐私保护,利用冗余编码的特性,破坏数据完整性,残余数据被加密保护,即使攻击者得到数据,也不能获取明文,达到数据安全删除的目的;
[0029] 3、本发明利用固态盘中多个通道可并行操作的特点,采用秘密共享算法对数据编码,当固态盘中单个或多个通道上的部分数据丢失时,通过执行数据重构程序,对丢失的数据进行重构恢复,提升了固态盘中数据的可靠性;
[0030] 4、打破常规思维。传统方案中冗余技术是用来保障数据可靠性,在本发明中利用其数据冗余能力被破坏后数据不可获取的特性,实现了数据安全删除;

附图说明

[0031] 图1为本发明的基于闪存的固态盘的硬件结构图;
[0032] 图2为本发明的基于闪存的固态盘的数据安全删除方法流程图;
[0033] 图3为本发明实施例的基于闪存的固态盘的数据安全删除方法流程图;
[0034] 图4为本发明实施例的数据转换及编码过程示意图;

具体实施方式

[0035] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0036] 图1为本发明的固态盘的硬件结构图。其中主机接口控制器实现协议转换,与主机接口通讯;处理器对闪存芯片进行地址分配与映射和任务调度;缓冲区管理器则负责将写入的数据缓冲,进行排序、合并后在合适的时间将数据发送到闪存控制器;内存用来存放处理器运行需要的元数据和缓存数据;闪存控制器在各个通道内进行总线调度,对NAND闪存芯片进行直接控制,同时使用ECC控制器对所有的写数据生成ECC(Error Correcting Code,错误纠正码),并对所有读数据进行ECC检测与纠错。从硬件结构上看,固态盘可以通过多个数据通道并行操作,来达到极高的数据吞吐率,并且在各数据通道内部可以通过对多个闪存芯片进行并行操作,使数据传输率接近通道的最大传输速度。
[0037] 图2为本发明的基于闪存的固态盘的数据安全删除方法流程图,所述方法包括以下步骤:
[0038] (1)对源数据D进行封装转换,包括哈希(hash)操作和加密操作;
[0039] 步骤(1)中所述封装转换,具体包括以下步骤:
[0040] (1-1)利用哈希函数H对源数据进行处理,得到源数据D的哈希值h=H(D);
[0041] (1-2)将h作为密钥,对与D相同大小的恒定值块C利用加密函数E()进行加密,得到E(h,C);
[0042] (1-3)将源数据D与E(h,C)进行异或运算,得到封装数据的头部X,X=D⊕E(h,C);
[0043] (1-4)利用哈希函数H对封装数据的头部X进行处理,得到H(X),将源数据D的哈希值h与H(X)进行异或运算,得到封装数据的尾部t,t=h⊕H(X),进一步得到源数据D的封装转换后数据(X,t)。
[0044] (2)对步骤(1)中所得到的封装转换后的数据,采用秘密共享算法进行冗余编码;
[0045] 所述步骤(2)具体包括:
[0046] (2-1)将封装转换后数据(X,t)均分为k等份,标识为S0,S1,…Sk-1;
[0047] (2-2)采用冗余编码算法对S0,S1,…Sk-1进行编码,生成n个冗余编码后数据。
[0048] 采用秘密共享算法进行冗余编码,如Shamir的门限密匙分享机制SSSS、Rabin的信息分散机制IDA、Ramp秘密分享机制RSSS、秘密缩短共享SSMS、AONT-RS组合、CAONT-RS组合。
[0049] (3)将冗余编码后的数据分别存放到固态盘上的多个数据通道中;
[0050] 当所述固态盘中单个或多个通道的部分数据丢失时,只要剩下通道的数据冗余能力没被破坏,可选择执行数据重构程序,对丢失的数据进行重构恢复。
[0051] (4)当执行数据的安全删除时根据所述秘密共享算法的冗余能力,将达到破坏冗余能力的通道数目上的数据进行删除。
[0052] 这里,对数据通道上数据的删除可采取全零覆写物理页的方式进行。
[0053] 图3为本发明实施例的基于闪存的固态盘的数据安全删除方法流程图,具体包括以下步骤:
[0054] (10)将源数据标记为D,即为数据初始状态;
[0055] (20)对步骤(10)中所述数据进行封装,将D作为哈希函数H的输入值,产生一个哈希值h,即h=H(D),标记为(D,h);
[0056] (30)将源数据D与E(h,C)进行异或运算,得到数据封装的头部X,X=D⊕E(h,C),其中,⊕为异或操作,C为与D相同大小的恒定值块,E是将h作为密钥加密C的一种加密函数;
[0057] (40)数据封装的尾部为t,t=h⊕H(X),数据最终封装为(X,t);
[0058] (50)将步骤(40)中的(X,t)均分为k等份,标识为S0,S1,…Sk-1,k=1,2,...,K;
[0059] (60)采用冗余编码算法对S0,S1,…Sk-1进行编码计算,产生n个等份F0,F1,…Fn-1,分别存放到固态盘的n个通道上,n=1,2,...,N,本实施例中采用系统纠删码;
[0060] (70)当执行数据的安全删除时根据所述冗余编码的冗余能力,将达到破坏冗余能力的(n-r)个通道数目上的数据进行删除,其中r=k-1。
[0061] 图4为本发明实施例的数据转换及编码过程示意图。该实施例中,以n=4,k=3,r=2为例。将源数据D作为哈希函数H(如SHA-256)的输入,得到一个哈希值h,h=H(D);为了得到高安全性,我们将(D,h)转换成(X,t),其中X=D⊕E(h,C),C为与D相同大小的恒定值块,E为加密函数(如,AES-256),h作为密钥对C进行加密,t=h⊕h’,h’=H(X);最后将(X,t)均分成3等份,使用Reed-Solomon码对数据编码,产生4个份额。根据该编码的特性,通过2个份额是无法推断出源数据的,故当执行数据安全删除时,破坏其中两个份额即可,剩下的份额已被加密保护,达到数据安全删除的目的。
[0062] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。