本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種用于大容量非易失性存儲器的數(shù)據(jù)短時高效擦除方法。
背景技術(shù):
隨著微電子技術(shù)的快速發(fā)展,存儲器芯片以其容量大、體積小、傳輸速率快等優(yōu)點,在社會各個領(lǐng)域都得到了廣泛的應(yīng)用。但是大容量存儲器的數(shù)據(jù)安全卻常常得不到保證。對一些存儲程序或文件的存儲系統(tǒng),例如FPGA配置存儲器芯片,其存儲數(shù)據(jù)量較大,采用普通的擦除方式需要耗費較長的時間。以EPCS4存儲芯片為例,對于Erase Bulk操作,將整個Flash芯片進(jìn)行整體塊擦除最長需要10s時間,若采用Erase Sector依次進(jìn)行區(qū)域擦除,最長需24s時間,而一般的快速攻擊方式可以在2~3秒內(nèi)解除封裝,取出電池,從而使防護系統(tǒng)癱瘓。因此,對于大容量存儲器,需要研究耗時更短的有效數(shù)據(jù)銷毀方式。
仍以EPCS4存儲芯片為例,從其數(shù)據(jù)手冊可知,該芯片中共有4194304個數(shù)據(jù)位(bit),256字節(jié)(Bytes)構(gòu)成一個頁(Page),256頁構(gòu)成一個區(qū)(Sector),總共有8個區(qū)。因此EPCS4共有2048個頁。對于頁寫(Write Bytes)操作,對一個頁進(jìn)行覆蓋寫操作僅需要5ms時間。因此,可以利用頁寫操作,通過一定的算法,對于一個完整程序或文件的關(guān)鍵部分,進(jìn)行隨機數(shù)的寫入,以破壞程序或文件的完整性,從而實現(xiàn)保護。假如攻擊者拆除封裝的時間為2s,在此時間內(nèi),采取頁寫操作,共可以擦除400個頁,占總數(shù)據(jù)位的20%,達(dá)819200個數(shù)據(jù)位,因此,提升了數(shù)據(jù)恢復(fù)的難度。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,本發(fā)明旨在提出一種針對大容量非易失性存儲器的數(shù)據(jù)快速擦除方法,該方法通過短時間內(nèi)破壞文件的完整性,使得大容量存儲器在受到攻擊時,能夠快速銷毀有效數(shù)據(jù),確保原有文件不被惡意讀出,保障了存儲器芯片的數(shù)據(jù)安全。本發(fā)明采用的技術(shù)方案是,用于大容量非易失性存儲器的數(shù)據(jù)快速擦除方法,步驟如下;
步驟S1中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進(jìn)行解析,將解析后的寫入命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進(jìn)行文件的正常寫入操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L,下一步將進(jìn)行步驟S2;
步驟S2中,快速擦除模塊的控制單元將記錄初始地址A與數(shù)據(jù)長度L,便于后續(xù)隨機地址的計算,下一步進(jìn)入步驟S3;
步驟S3中,快速擦除模塊的控制單元將依據(jù)記錄的數(shù)據(jù)長度L,按照該數(shù)據(jù)長度L占存儲器總存儲量N的百分比乘以短時可銷毀的數(shù)據(jù)頁總數(shù)P,計算得出該文件在快速擦除時需要進(jìn)行的頁覆寫數(shù)目M,即M=[L/N*P],其中運算“[]”表示向上取整,下一步進(jìn)入步驟S4;
步驟S4中,計數(shù)器復(fù)位,然后裝載計數(shù)初值M,此時計數(shù)值i=M,下一步進(jìn)入步驟S5;
步驟S5中,控制單元將利用隨機數(shù)發(fā)生器1生成一個小于L的隨機數(shù)S,該隨機數(shù)與本次文件寫入過程中生成的隨機數(shù)不能重復(fù)。下一步進(jìn)入步驟S6;
步驟S6中,將這個隨機數(shù)作為地址偏移量,與起始地址疊加,得到一個隨機地址值(A+S),將該地址值寫入特殊存儲器地址D對應(yīng)的存儲空間;其中,D為特殊存儲器有效數(shù)據(jù)字存儲的數(shù)據(jù),下一步進(jìn)入步驟S7;
步驟S7中,計數(shù)器計數(shù)值自減1,即i=i-1,特殊存儲器有效數(shù)據(jù)字存儲數(shù)據(jù)值自加1,即D=D+1。進(jìn)入步驟S8;
步驟S8中,需要判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S5,繼續(xù)生成隨機地址,若為0,則代表隨機地址生成完成,進(jìn)入步驟S9;
步驟S9中,等待文件寫入完成,然后進(jìn)入步驟S10;
步驟S10中,此次正常寫入操作結(jié)束;
步驟S11中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進(jìn)行解析,將解析后的擦除命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進(jìn)行文件的正常擦除操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L,下一步將進(jìn)行步驟S12;
步驟S12中,快速擦除模塊的控制單元將記錄起始地址A與數(shù)據(jù)長度L,便于后續(xù)刪除特殊存儲器中的相應(yīng)數(shù)據(jù),下一步進(jìn)入步驟S13;
步驟S13中,快速擦除模塊的控制單元將依次讀取特殊存儲器所有地址空間的存儲數(shù)據(jù),找出存儲數(shù)據(jù)值大于A且小于(A+L)的數(shù)據(jù),下一步進(jìn)入步驟S14;
步驟S14中,將刪除步驟S13中找到的數(shù)據(jù),并記錄刪除的數(shù)據(jù)個數(shù)E,下一步進(jìn)入步驟S15;
步驟S15中,需要修改特殊存儲器有效數(shù)據(jù)字,將其存儲值修改為(D-E),其中,D為有效數(shù)據(jù)字原有值,下一步進(jìn)入步驟S16;
步驟S16中,將整理特殊存儲器,由于刪除了部分?jǐn)?shù)據(jù),特殊存儲器中間某些地址空間存儲數(shù)據(jù)將為空,需要將后續(xù)高地址數(shù)據(jù)依次向存儲空數(shù)據(jù)的低地址移動,填補刪除數(shù)據(jù)的地址空間,下一步進(jìn)入步驟S17;
步驟S17中,等待文件擦除完成,然后進(jìn)入步驟S18,
步驟S18中,此次正常擦除操作結(jié)束;
步驟S19中,非易失性存儲器受到攻擊,存儲芯片安全模塊發(fā)出快速擦除命令,快速擦除模塊接收到該命令,進(jìn)入快速擦除狀態(tài)。下一步將進(jìn)行步驟S20;
步驟S20中,快速擦除模塊的控制單元讀取特殊存儲器有效數(shù)據(jù)字存儲值D,下一步進(jìn)入步驟S21;
步驟S21中,判斷一下D是否等于0,若等于0,則證明存儲器內(nèi)不含有效數(shù)據(jù),無需擦除,下一步進(jìn)入步驟S30,若不等于0,則證明存儲器內(nèi)含有效數(shù)據(jù),需要對其進(jìn)行快速擦除,進(jìn)入步驟S22;同時,需要啟動隨機數(shù)發(fā)生器2,進(jìn)入步驟S26;
步驟S26中,隨機數(shù)發(fā)生器2將產(chǎn)生隨機數(shù)據(jù),用于頁覆寫過程中,將隨機數(shù)據(jù)覆蓋原有頁中的數(shù)據(jù),起到銷毀原有數(shù)據(jù)的目的,下一步進(jìn)入步驟S25;
步驟S22中,計數(shù)器復(fù)位,然后裝載計數(shù)初值D,此時計數(shù)值i=D,下一步進(jìn)入步驟S23;
步驟S23中,計數(shù)器計數(shù)值自減1,即i=i-1,進(jìn)入步驟S24;
步驟S24中,讀取特殊存儲器中地址i存儲的數(shù)據(jù)F,進(jìn)入步驟S25;
步驟S25中,以F作為頁覆寫地址,以隨機數(shù)發(fā)生器2產(chǎn)生的隨機數(shù)作為覆寫數(shù)據(jù),對存儲單元陣列中地址為F的頁進(jìn)行隨機數(shù)據(jù)的覆寫,下一步進(jìn)入步驟S27;
步驟S27中,判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S23,繼續(xù)進(jìn)行頁覆寫操作。若為0,則代表頁覆寫過程完成,進(jìn)入步驟S28;
步驟S28中,擦除特殊存儲器中所有數(shù)據(jù),下一步進(jìn)入步驟S29;
步驟S29中,順序進(jìn)行所有塊的擦除操作,下一步進(jìn)入步驟S30;
步驟S30中,快速擦除操作結(jié)束。
正常擦除操作與快速擦除操作為兩個并列的子流程,需根據(jù)實際情況進(jìn)行選擇;正常擦除子流程適用于用戶正常擦除非易失性存儲器的情況,即所有未受到攻擊情況下的擦除操作都采用正常擦除步驟;快速擦除子流程適用于存儲器遭受攻擊的情況,當(dāng)存儲器受到攻擊時,所有擦除操作都采用快速擦除步驟。
本發(fā)明的特點及有益效果是:
本發(fā)明適用于大容量非易失性存儲器受到攻擊時的數(shù)據(jù)快速擦除過程,相比于現(xiàn)有擦除方法,能夠以更短的時間隨機破壞文件的完整性,防止文件被有效恢復(fù),達(dá)到等同于擦除文件的效果,從而保障了非易失性存儲器的數(shù)據(jù)安全。
附圖說明:
圖1正常寫入文件時子流程圖。
圖2正常擦除文件時子流程圖。
圖3快速擦除文件時子流程圖。
具體實施方式
本發(fā)明提出一種適用于大容量非易失性存儲器的數(shù)據(jù)快速擦除方法,該方法在用戶寫入文件時計算得出需要進(jìn)行頁覆寫的數(shù)據(jù)頁個數(shù),并選取該文件存儲區(qū)域內(nèi)相應(yīng)數(shù)量的隨機地址寫入特殊存儲器中;當(dāng)受到攻擊時,依次讀取特殊存儲器內(nèi)的地址,進(jìn)行頁覆寫隨機數(shù)操作,在短時間內(nèi)破壞了文件數(shù)據(jù)的完整性,從而使得攻擊者無法恢復(fù)全部數(shù)據(jù),達(dá)到擦除文件的目的。
本發(fā)明針對大容量非易失性存儲器塊擦除及整體擦除方法擦除時間過長的問題,提出一種基于頁覆寫的短時高效擦除方法,該方法共包含三個子流程:正常寫入、正常擦除、快速擦除。正常寫入子流程適用于所有情形下,用戶正常將數(shù)據(jù)寫入非易失性存儲器的情況。正常擦除子流程與快速擦除子流程為兩個并列的子流程,需根據(jù)實際情況進(jìn)行選擇。正常擦除子流程適用于用戶正常擦除非易失性存儲器的情況,即所有未受到攻擊情況下的擦除操作都采用正常擦除子流程??焖俨脸恿鞒踢m用于存儲器遭受攻擊的情況,當(dāng)存儲器受到攻擊時,所有擦除操作都采用快速擦除子流程。
本發(fā)明提出的快速擦除方法需要快速擦除模塊實施完成,快速擦除模塊包括控制單元、計數(shù)器、隨機數(shù)發(fā)生器1、隨機數(shù)發(fā)生器2、特殊存儲器、特殊存儲器有效數(shù)據(jù)字??刂茊卧糜跀?shù)據(jù)運算以及其它三部分的邏輯控制。計數(shù)器為二進(jìn)制減法計數(shù)器,用于配合控制單元完成數(shù)據(jù)的寫入與刪除。隨機數(shù)發(fā)生器1用于產(chǎn)生隨機地址。隨機數(shù)發(fā)生器2用于產(chǎn)生頁覆寫時的隨機數(shù)據(jù)。特殊存儲器為N個字節(jié)的存儲器,用于存儲隨機地址。特殊存儲器有效數(shù)據(jù)字存儲了特殊存儲器中隨機地址的個數(shù),初始值為0。特殊存儲器有效數(shù)據(jù)字為B個字節(jié)的寄存器。B為整數(shù),且B的大小由特殊存儲器總存儲字節(jié)數(shù)C決定,即28*B≥C。例如,若特殊存儲器總存儲字節(jié)為1024字節(jié),則B至少為2,從而保證28*2≥1024。
為使本發(fā)明的目的、技術(shù)方案更加清楚,以下將結(jié)合圖1、圖2、圖3所示,分別對發(fā)明提出的快速擦除方法的三個子流程進(jìn)行詳細(xì)說明:
如圖1所示,為用戶正常寫入存儲器的子流程圖。
步驟S1中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進(jìn)行解析,將解析后的寫入命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進(jìn)行文件的正常寫入操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L。下一步將進(jìn)行步驟S2。
步驟S2中,快速擦除模塊的控制單元將記錄初始地址A與數(shù)據(jù)長度L,便于后續(xù)隨機地址的計算,下一步進(jìn)入步驟S3。
步驟S3中,快速擦除模塊的控制單元將依據(jù)記錄的數(shù)據(jù)長度L,按照該數(shù)據(jù)長度L占存儲器總存儲量N的百分比乘以短時可銷毀的數(shù)據(jù)頁總數(shù)P,計算得出該文件在快速擦除時需要進(jìn)行的頁覆寫數(shù)目M(向上取整),即M=[L/N*P],其中運算“[]”表示向上取整。下一步進(jìn)入步驟S4。
步驟S4中,計數(shù)器復(fù)位,然后裝載計數(shù)初值M,此時計數(shù)值i=M。下一步進(jìn)入步驟S5。
步驟S5中,控制單元將利用隨機數(shù)發(fā)生器1生成一個小于L的隨機數(shù)S,該隨機數(shù)與本次文件寫入過程中生成的隨機數(shù)不能重復(fù)。下一步進(jìn)入步驟S6。
步驟S6中,將這個隨機數(shù)作為地址偏移量,與起始地址疊加,得到一個隨機地址值(A+S),將該地址值寫入特殊存儲器地址D對應(yīng)的存儲空間。其中,D為特殊存儲器有效數(shù)據(jù)字存儲的數(shù)據(jù)。下一步進(jìn)入步驟S7。
步驟S7中,計數(shù)器計數(shù)值自減1,即i=i-1。特殊存儲器有效數(shù)據(jù)字存儲數(shù)據(jù)值自加1,即D=D+1。進(jìn)入步驟S8。
步驟S8中,需要判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S5,繼續(xù)生成隨機地址。若為0,則代表隨機地址生成完成,進(jìn)入步驟S9。
步驟S9中,等待文件寫入完成,然后進(jìn)入步驟S10。
步驟S10中,此次正常寫入操作結(jié)束。
正常寫入過程中,快速擦除模塊已經(jīng)計算出當(dāng)受到攻擊時需要進(jìn)行的頁覆寫地址,并存儲下來,以便快速擦除時能夠直接調(diào)用這些頁覆寫地址。
如圖2所示,為用戶正常擦除存儲器的子流程圖。
步驟S11中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進(jìn)行解析,將解析后的擦除命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進(jìn)行文件的正常擦除操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L。下一步將進(jìn)行步驟S12。
步驟S12中,快速擦除模塊的控制單元將記錄起始地址A與數(shù)據(jù)長度L,便于后續(xù)刪除特殊存儲器中的相應(yīng)數(shù)據(jù),下一步進(jìn)入步驟S13。
步驟S13中,快速擦除模塊的控制單元將依次讀取特殊存儲器所有地址空間的存儲數(shù)據(jù),找出存儲數(shù)據(jù)值大于A且小于(A+L)的數(shù)據(jù)。下一步進(jìn)入步驟S14。
步驟S14中,將刪除步驟S13中找到的數(shù)據(jù),并記錄刪除的數(shù)據(jù)個數(shù)E。下一步進(jìn)入步驟S15。
步驟S15中,需要修改特殊存儲器有效數(shù)據(jù)字,將其存儲值修改為(D-E),其中,D為有效數(shù)據(jù)字原有值。下一步進(jìn)入步驟S16。
步驟S16中,將整理特殊存儲器。由于刪除了部分?jǐn)?shù)據(jù),特殊存儲器中間某些地址空間存儲數(shù)據(jù)將為空。需要將后續(xù)高地址數(shù)據(jù)依次向存儲空數(shù)據(jù)的低地址移動,填補刪除數(shù)據(jù)的地址空間。下一步進(jìn)入步驟S17。
步驟S17中,等待文件擦除完成,然后進(jìn)入步驟S18。
步驟S18中,此次正常擦除操作結(jié)束。
正常擦除過程中,快速擦除模塊將刪除特殊存儲器中與刪除文件相關(guān)的隨機地址值,并整理刪除后的特殊存儲器,使得頁覆寫地址隨文件刪除的同時進(jìn)行更新。
如圖3所示,為用戶快速擦除存儲器的子流程圖。
步驟S19中,非易失性存儲器受到攻擊,存儲芯片安全模塊發(fā)出快速擦除命令,快速擦除模塊接收到該命令,進(jìn)入快速擦除狀態(tài)。下一步將進(jìn)行步驟S20。
步驟S20中,快速擦除模塊的控制單元讀取特殊存儲器有效數(shù)據(jù)字存儲值D,下一步進(jìn)入步驟S21。
步驟S21中,判斷一下D是否等于0。若等于0,則證明存儲器內(nèi)不含有效數(shù)據(jù),無需擦除,下一步進(jìn)入步驟S30。若不等于0,則證明存儲器內(nèi)含有效數(shù)據(jù),需要對其進(jìn)行快速擦除,進(jìn)入步驟S22;同時,需要啟動隨機數(shù)發(fā)生器2,進(jìn)入步驟S26。
步驟S26中,隨機數(shù)發(fā)生器2將產(chǎn)生隨機數(shù)據(jù),用于頁覆寫過程中,將隨機數(shù)據(jù)覆蓋原有頁中的數(shù)據(jù),起到銷毀原有數(shù)據(jù)的目的。下一步進(jìn)入步驟S25。
步驟S22中,計數(shù)器復(fù)位,然后裝載計數(shù)初值D,此時計數(shù)值i=D。下一步進(jìn)入步驟S23。
步驟S23中,計數(shù)器計數(shù)值自減1,即i=i-1。進(jìn)入步驟S24。
步驟S24中,讀取特殊存儲器中地址i存儲的數(shù)據(jù)F,進(jìn)入步驟S25。
步驟S25中,以F作為頁覆寫地址,以隨機數(shù)發(fā)生器2產(chǎn)生的隨機數(shù)作為覆寫數(shù)據(jù),對存儲單元陣列中地址為F的頁進(jìn)行隨機數(shù)據(jù)的覆寫,下一步進(jìn)入步驟S27。
步驟S27中,判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S23,繼續(xù)進(jìn)行頁覆寫操作。若為0,則代表頁覆寫過程完成,進(jìn)入步驟S28。
步驟S28中,擦除特殊存儲器中所有數(shù)據(jù)。下一步進(jìn)入步驟S29。
步驟S29中,順序進(jìn)行所有塊的擦除操作。下一步進(jìn)入步驟S30。
步驟S30中,快速擦除操作結(jié)束。
快速擦除過程中,通過對隨機地址頁進(jìn)行隨機數(shù)據(jù)的覆寫,使該頁數(shù)據(jù)無法恢復(fù),同時破壞該文件的完整性,使得整個文件無法完整恢復(fù)。由步驟S19到完成步驟S28,已完全可以實現(xiàn)無法恢復(fù)文件的目的。若此時電池還未被拆除,步驟S29將對存儲器所有數(shù)據(jù)塊進(jìn)行順序擦除操作,以達(dá)到更全面擦除的目的。如若執(zhí)行步驟S29時電池被拆除,則擦除操作無法繼續(xù),但是由于已完成步驟S28,每個文件的完整性已被破壞,即便攻擊者嘗試讀取殘余數(shù)據(jù),也無法恢復(fù)原有文件,從而到達(dá)保護存儲器數(shù)據(jù)安全的目的。
正常寫入數(shù)據(jù)時需按照子流程圖1依次進(jìn)行所有步驟,正常擦除數(shù)據(jù)時需按照子流程圖2依次進(jìn)行所有步驟,快速擦除時需按照子流程圖3依次進(jìn)行所有步驟。本發(fā)明的保護范圍并不以上述實施方式為限,本領(lǐng)域普通技術(shù)人員根據(jù)本發(fā)明所揭示內(nèi)容所作的等效修飾或變化,皆應(yīng)納入保護范圍。