1.一種用于大容量非易失性存儲器的數(shù)據(jù)快速擦除方法,其特征是,步驟如下:
步驟S1中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進行解析,將解析后的寫入命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進行文件的正常寫入操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L,下一步將進行步驟S2;
步驟S2中,快速擦除模塊的控制單元將記錄初始地址A與數(shù)據(jù)長度L,便于后續(xù)隨機地址的計算,下一步進入步驟S3;
步驟S3中,快速擦除模塊的控制單元將依據(jù)記錄的數(shù)據(jù)長度L,按照該數(shù)據(jù)長度L占存儲器總存儲量N的百分比乘以短時可銷毀的數(shù)據(jù)頁總數(shù)P,計算得出該文件在快速擦除時需要進行的頁覆寫數(shù)目M,即M=[L/N*P],其中運算“[]”表示向上取整,下一步進入步驟S4;
步驟S4中,計數(shù)器復位,然后裝載計數(shù)初值M,此時計數(shù)值i=M,下一步進入步驟S5;
步驟S5中,控制單元將利用隨機數(shù)發(fā)生器1生成一個小于L的隨機數(shù)S,該隨機數(shù)與本次文件寫入過程中生成的隨機數(shù)不能重復。下一步進入步驟S6;
步驟S6中,將這個隨機數(shù)作為地址偏移量,與起始地址疊加,得到一個隨機地址值(A+S),將該地址值寫入特殊存儲器地址D對應的存儲空間;其中,D為特殊存儲器有效數(shù)據(jù)字存儲的數(shù)據(jù),下一步進入步驟S7;
步驟S7中,計數(shù)器計數(shù)值自減1,即i=i-1,特殊存儲器有效數(shù)據(jù)字存儲數(shù)據(jù)值自加1,即D=D+1。進入步驟S8;
步驟S8中,需要判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S5,繼續(xù)生成隨機地址,若為0,則代表隨機地址生成完成,進入步驟S9;
步驟S9中,等待文件寫入完成,然后進入步驟S10;
步驟S10中,此次正常寫入操作結(jié)束;
步驟S11中,非易失性存儲器的命令接收模塊接收芯片輸入信息,命令解析模塊對接收到的輸入信息進行解析,將解析后的擦除命令、起始地址A以及數(shù)據(jù)長度L發(fā)送給存儲器邏輯控制模塊,在其控制下開始進行文件的正常擦除操作,同時,向快速擦除模塊發(fā)送起始地址A以及數(shù)據(jù)長度L,下一步將進行步驟S12;
步驟S12中,快速擦除模塊的控制單元將記錄起始地址A與數(shù)據(jù)長度L,便于后續(xù)刪除特殊存儲器中的相應數(shù)據(jù),下一步進入步驟S13;
步驟S13中,快速擦除模塊的控制單元將依次讀取特殊存儲器所有地址空間的存儲數(shù)據(jù),找出存儲數(shù)據(jù)值大于A且小于(A+L)的數(shù)據(jù),下一步進入步驟S14;
步驟S14中,將刪除步驟S13中找到的數(shù)據(jù),并記錄刪除的數(shù)據(jù)個數(shù)E,下一步進入步驟S15;
步驟S15中,需要修改特殊存儲器有效數(shù)據(jù)字,將其存儲值修改為(D-E),其中,D為有效數(shù)據(jù)字原有值,下一步進入步驟S16;
步驟S16中,將整理特殊存儲器,由于刪除了部分數(shù)據(jù),特殊存儲器中間某些地址空間存儲數(shù)據(jù)將為空,需要將后續(xù)高地址數(shù)據(jù)依次向存儲空數(shù)據(jù)的低地址移動,填補刪除數(shù)據(jù)的地址空間,下一步進入步驟S17;
步驟S17中,等待文件擦除完成,然后進入步驟S18,
步驟S18中,此次正常擦除操作結(jié)束;
步驟S19中,非易失性存儲器受到攻擊,存儲芯片安全模塊發(fā)出快速擦除命令,快速擦除模塊接收到該命令,進入快速擦除狀態(tài)。下一步將進行步驟S20;
步驟S20中,快速擦除模塊的控制單元讀取特殊存儲器有效數(shù)據(jù)字存儲值D,下一步進入步驟S21;
步驟S21中,判斷一下D是否等于0,若等于0,則證明存儲器內(nèi)不含有效數(shù)據(jù),無需擦除,下一步進入步驟S30,若不等于0,則證明存儲器內(nèi)含有效數(shù)據(jù),需要對其進行快速擦除,進入步驟S22;同時,需要啟動隨機數(shù)發(fā)生器2,進入步驟S26;
步驟S26中,隨機數(shù)發(fā)生器2將產(chǎn)生隨機數(shù)據(jù),用于頁覆寫過程中,將隨機數(shù)據(jù)覆蓋原有頁中的數(shù)據(jù),起到銷毀原有數(shù)據(jù)的目的,下一步進入步驟S25;
步驟S22中,計數(shù)器復位,然后裝載計數(shù)初值D,此時計數(shù)值i=D,下一步進入步驟S23;
步驟S23中,計數(shù)器計數(shù)值自減1,即i=i-1,進入步驟S24;
步驟S24中,讀取特殊存儲器中地址i存儲的數(shù)據(jù)F,進入步驟S25;
步驟S25中,以F作為頁覆寫地址,以隨機數(shù)發(fā)生器2產(chǎn)生的隨機數(shù)作為覆寫數(shù)據(jù),對存儲單元陣列中地址為F的頁進行隨機數(shù)據(jù)的覆寫,下一步進入步驟S27;
步驟S27中,判斷計數(shù)器計數(shù)值i是否為0,若不為0,則返回步驟S23,繼續(xù)進行頁覆寫操作。若為0,則代表頁覆寫過程完成,進入步驟S28;
步驟S28中,擦除特殊存儲器中所有數(shù)據(jù),下一步進入步驟S29;
步驟S29中,順序進行所有塊的擦除操作,下一步進入步驟S30;
步驟S30中,快速擦除操作結(jié)束。
2.如權利要求1所述的用于大容量非易失性存儲器的數(shù)據(jù)快速擦除方法,其特征是,正常擦除操作與快速擦除操作為兩個并列的子流程,需根據(jù)實際情況進行選擇;正常擦除子流程適用于用戶正常擦除非易失性存儲器的情況,即所有未受到攻擊情況下的擦除操作都采用正常擦除步驟;快速擦除子流程適用于存儲器遭受攻擊的情況,當存儲器受到攻擊時,所有擦除操作都采用快速擦除步驟。