一種基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,更具體地,涉及一種基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法。
【背景技術(shù)】
[0002]固態(tài)盤(pán)(SSD)的可靠性面臨著考驗(yàn),有調(diào)查顯示,固態(tài)盤(pán)雖然提高了性能,但其可靠性并不強(qiáng)于傳統(tǒng)硬盤(pán)。調(diào)查主要最針對(duì)的是英特爾的固態(tài)盤(pán)。許多用戶擔(dān)心固態(tài)盤(pán)的寫(xiě)入次數(shù)限制,在實(shí)際情況下通常是其它故障引發(fā)問(wèn)題。
[0003]固態(tài)盤(pán)在內(nèi)部都采用異地更新的操作方式,當(dāng)用戶使用安全軟件對(duì)固態(tài)盤(pán)中的文件進(jìn)行安全刪除時(shí),對(duì)目標(biāo)數(shù)據(jù)的覆蓋操作全部都被轉(zhuǎn)移到新的空閑物理頁(yè)。因此,敏感的目標(biāo)數(shù)據(jù)不會(huì)被物理覆蓋或擦除,而僅僅是在固態(tài)盤(pán)內(nèi)被標(biāo)記為無(wú)效數(shù)據(jù)。也就是說(shuō),文件內(nèi)容依然會(huì)存在于閃存之中。所有的改變僅僅是,從原來(lái)的邏輯地址無(wú)法讀取到目標(biāo)文件的數(shù)據(jù)而已,此類被刪除的數(shù)據(jù)很容易被恢復(fù),數(shù)據(jù)的安全性無(wú)法保障。
[0004]基于閃存芯片的固態(tài)盤(pán)中數(shù)據(jù)安全刪除問(wèn)題研究,現(xiàn)有的主要手段是通過(guò)主機(jī)對(duì)設(shè)備目標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù)填充的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)的銷(xiāo)毀或清除。這種方法對(duì)于閃存型存儲(chǔ)器存在兩方面問(wèn)題:①該方法需要通過(guò)寫(xiě)操作來(lái)完成,而在閃存中寫(xiě)操作過(guò)程繁瑣,耗時(shí)較長(zhǎng),時(shí)間開(kāi)銷(xiāo)很大;②出于對(duì)閃存壽命及磨損平衡的考慮,存儲(chǔ)器保留有用于備份的冗余塊,該方法在使用過(guò)程中會(huì)導(dǎo)致數(shù)據(jù)殘留在備份塊中。
[0005]秘密共享算法(secret sharing)將輸入數(shù)據(jù)秘密(secret)轉(zhuǎn)換成編碼后的輸出數(shù)據(jù)份額(shares),目的在于保障秘密的容錯(cuò)性和保密性。秘密共享算法通過(guò)三個(gè)參數(shù)(η,k,r)進(jìn)行定義:該算法將秘密編碼為η個(gè)份額(n>k>r > O) (i)秘密可以通過(guò)任何k個(gè)份額進(jìn)行重構(gòu),(ii)秘密不能通過(guò)任何r個(gè)份額推斷出來(lái)。參數(shù)(n,k,r)決定了秘密共享算法的保護(hù)強(qiáng)度。特別的,η和k決定了秘密的容錯(cuò)能力,只要任何k個(gè)份額存在,秘密就可以被訪問(wèn)。也就是說(shuō),它允許丟失n-k個(gè)份額。參數(shù)r決定秘密的機(jī)密度,只要少于r個(gè)份額被攻擊者獲取,那么秘密就是安全的。
【發(fā)明內(nèi)容】
[0006]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提出一種基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法,將秘密共享機(jī)制的基本原理引入其中,通過(guò)破壞固態(tài)盤(pán)上各通道數(shù)據(jù)的冗余能力,結(jié)合數(shù)據(jù)轉(zhuǎn)換處理操作,在破壞數(shù)據(jù)完整性后,剩余數(shù)據(jù)均已加密,即使攻擊者得到部分編碼數(shù)據(jù),也不能獲取明文,從而達(dá)到安全刪除數(shù)據(jù)的目的,相應(yīng)地可有效解決現(xiàn)有技術(shù)中由于固態(tài)盤(pán)的異地更新特性導(dǎo)致數(shù)據(jù)無(wú)法安全刪除,固態(tài)盤(pán)的數(shù)據(jù)存儲(chǔ)安全問(wèn)題,以及大量覆蓋寫(xiě)影響閃存壽命及磨損平衡等問(wèn)題。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法,其特征在于,所述方法包括:
[0008](I)對(duì)源數(shù)據(jù)D進(jìn)行封裝轉(zhuǎn)換,得到封裝轉(zhuǎn)換后數(shù)據(jù)(X,t),其中X為頭部,t為尾部;
[0009](2)通過(guò)秘密共享算法(n,k,r)對(duì)步驟(I)得到的封裝轉(zhuǎn)換后數(shù)據(jù)(X,t)進(jìn)行冗余編碼,得到η個(gè)編碼后數(shù)據(jù),其中η為秘密共享算法編碼后輸出數(shù)據(jù)的份額數(shù)量,k為秘密可進(jìn)行重構(gòu)的份額數(shù)量,r為秘密不能進(jìn)行重構(gòu)的份額數(shù)量,n>k>r 20。
[0010](3)將步驟(2)得到的η個(gè)編碼后數(shù)據(jù)分別存放到固態(tài)盤(pán)上的η個(gè)通道中;
[0011](4)根據(jù)所述秘密共享算法的冗余能力n-r,將達(dá)到破壞冗余能力n-r的通道數(shù)目上的數(shù)據(jù)刪除,即可完成數(shù)據(jù)的安全刪除。
[0012]作為進(jìn)一步優(yōu)選的,所述步驟(I)包括:
[0013](1-1)利用哈希函數(shù)H對(duì)源數(shù)據(jù)進(jìn)行處理,得到源數(shù)據(jù)D的哈希值h = H(D);
[0014](1-2)將h作為密鑰,對(duì)與D相同大小的恒定值塊C利用加密函數(shù)E()進(jìn)行加密,得到E(h,C);
[0015](l-3)將源數(shù)據(jù)D與E(h,C)進(jìn)行異或運(yùn)算,得到封裝數(shù)據(jù)的頭部X,X = DθE(h,C);
[0016](1-4)利用哈希函數(shù)H對(duì)封裝數(shù)據(jù)的頭部X進(jìn)行處理,得到H(X),將源數(shù)據(jù)D的哈希值h與H(X)進(jìn)行異或運(yùn)算,得到封裝數(shù)據(jù)的尾部t,t = he H(X),進(jìn)一步得到源數(shù)據(jù)D的封裝轉(zhuǎn)換后數(shù)據(jù)(X,t)。
[0017]作為進(jìn)一步優(yōu)選的,所述步驟(2)包括:
[0018](2-1)將封裝轉(zhuǎn)換后數(shù)據(jù)(X,t)均分為k等份,標(biāo)識(shí)為So,S1,..-Sk-1 ;
[0019](2-2)采用冗余編碼算法對(duì)S^S1,…31{-1進(jìn)行編碼,生成η個(gè)冗余編碼后數(shù)據(jù)。
[0020]作為進(jìn)一步優(yōu)選的,所述固態(tài)盤(pán)包括:
[0021 ] 多個(gè)相互獨(dú)立的NAND閃存;
[0022]固態(tài)盤(pán)控制器,用于在各個(gè)通道內(nèi)進(jìn)行總線調(diào)度,對(duì)各NAND閃存進(jìn)行直接控制。
[0023]作為進(jìn)一步優(yōu)選的,當(dāng)所述固態(tài)盤(pán)中單個(gè)或多個(gè)通道的部分?jǐn)?shù)據(jù)丟失時(shí),只要剩下通道的數(shù)據(jù)冗余能力n-r沒(méi)被破壞,可選擇執(zhí)行數(shù)據(jù)重構(gòu)程序,對(duì)丟失的數(shù)據(jù)進(jìn)行重構(gòu)恢復(fù)。
[0024]作為進(jìn)一步優(yōu)選的,對(duì)數(shù)據(jù)通道上數(shù)據(jù)的刪除可采取全零覆寫(xiě)物理頁(yè)的方式進(jìn)行。
[0025]作為進(jìn)一步優(yōu)選的,所述達(dá)到破壞冗余能力n-r的數(shù)據(jù)通道數(shù)目上的數(shù)據(jù)刪除具體為:從物理介質(zhì)上刪除或覆蓋屬于同一源數(shù)據(jù)編碼分發(fā)到n-r個(gè)通道上的數(shù)據(jù),且通過(guò)剩余通道上的數(shù)據(jù)無(wú)法對(duì)丟失的數(shù)據(jù)進(jìn)行重構(gòu)恢復(fù)。
[0026]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
[0027]1、本發(fā)明解決了現(xiàn)有技術(shù)中由于固態(tài)盤(pán)的異地更新特性導(dǎo)致數(shù)據(jù)無(wú)法安全刪除的問(wèn)題,一方面,采用了秘密共享算法來(lái)保障數(shù)據(jù)的可靠性和安全性,大大提升了存儲(chǔ)空間利用率;另一方面,利用冗余編碼的特性,對(duì)數(shù)據(jù)的刪除不再需要對(duì)整個(gè)數(shù)據(jù)進(jìn)行覆蓋寫(xiě),而是刪除部分?jǐn)?shù)據(jù)塊來(lái)保證數(shù)據(jù)無(wú)法恢復(fù),破壞了數(shù)據(jù)的完整性,刪除過(guò)程減小了擦除開(kāi)銷(xiāo)以及對(duì)固態(tài)盤(pán)的磨損;
[0028]2、本發(fā)明對(duì)數(shù)據(jù)進(jìn)行冗余編碼,通過(guò)在編碼前采取特殊的數(shù)據(jù)轉(zhuǎn)換處理,增強(qiáng)數(shù)據(jù)隱私保護(hù),利用冗余編碼的特性,破壞數(shù)據(jù)完整性,殘余數(shù)據(jù)被加密保護(hù),即使攻擊者得到數(shù)據(jù),也不能獲取明文,達(dá)到數(shù)據(jù)安全刪除的目的;
[0029]3、本發(fā)明利用固態(tài)盤(pán)中多個(gè)通道可并行操作的特點(diǎn),采用秘密共享算法對(duì)數(shù)據(jù)編碼,當(dāng)固態(tài)盤(pán)中單個(gè)或多個(gè)通道上的部分?jǐn)?shù)據(jù)丟失時(shí),通過(guò)執(zhí)行數(shù)據(jù)重構(gòu)程序,對(duì)丟失的數(shù)據(jù)進(jìn)行重構(gòu)恢復(fù),提升了固態(tài)盤(pán)中數(shù)據(jù)的可靠性;
[0030]4、打破常規(guī)思維。傳統(tǒng)方案中冗余技術(shù)是用來(lái)保障數(shù)據(jù)可靠性,在本發(fā)明中利用其數(shù)據(jù)冗余能力被破壞后數(shù)據(jù)不可獲取的特性,實(shí)現(xiàn)了數(shù)據(jù)安全刪除;
【附圖說(shuō)明】
[0031]圖1為本發(fā)明的基于閃存的固態(tài)盤(pán)的硬件結(jié)構(gòu)圖;
[0032]圖2為本發(fā)明的基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法流程圖;
[0033]圖3為本發(fā)明實(shí)施例的基于閃存的固態(tài)盤(pán)的數(shù)據(jù)安全刪除方法流程圖;
[0034]圖4為本發(fā)明實(shí)施例的數(shù)據(jù)轉(zhuǎn)換及編碼過(guò)程示意圖;
【具體實(shí)施方式】
[0035]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0036]圖1為本發(fā)明的固態(tài)盤(pán)的硬件結(jié)構(gòu)圖。其中主機(jī)接口控制器實(shí)現(xiàn)協(xié)議轉(zhuǎn)換,與主機(jī)接口通訊;處理器對(duì)閃存芯片進(jìn)行地址分配與映射和任務(wù)調(diào)度;緩沖區(qū)管理器則負(fù)責(zé)將寫(xiě)入的數(shù)據(jù)緩沖,進(jìn)行排序、合并后在合適的時(shí)間將數(shù)據(jù)發(fā)送到閃存控制器;內(nèi)存用來(lái)存放處理器運(yùn)行需要的元數(shù)據(jù)和緩存數(shù)據(jù);閃存控制器在各個(gè)通道內(nèi)進(jìn)行總線調(diào)度,對(duì)NAND閃存芯片進(jìn)行直接控制,同時(shí)使用ECC控制器對(duì)所有的寫(xiě)數(shù)據(jù)生成ECC(Error CorrectingCode,錯(cuò)誤糾正碼),并對(duì)所有讀數(shù)據(jù)進(jìn)行ECC檢測(cè)與糾錯(cuò)。從硬件結(jié)構(gòu)上看,固態(tài)盤(pán)可以通過(guò)多個(gè)數(shù)據(jù)通道并行操作,來(lái)達(dá)到極高的數(shù)據(jù)吞吐