專利名稱:一種產(chǎn)生閃存標(biāo)識碼的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù),具體涉及一種產(chǎn)生由不可控物理缺陷形 成的閃存標(biāo)識碼的方法。
背景技術(shù):
現(xiàn)今的網(wǎng)絡(luò)社會,信息傳播迅速,各種需要合法授權(quán)才能使用的 軟件和數(shù)據(jù),無不被加入各種防止復(fù)制的技術(shù),以防止軟件和數(shù)據(jù)被 非法復(fù)制傳播及使用。以往常見的防止軟件和數(shù)據(jù)被復(fù)制的方法,通 常是以純軟件程序來實(shí)現(xiàn),亦即在軟件中加入必須認(rèn)證(例如輸入密 碼)才能啟動(dòng)軟件的機(jī)制等,但純軟件程序往往存有其不可預(yù)知以及 有跡可循的漏洞,容易被有心人士加以研究而被破解,或使用硬件復(fù) 制設(shè)備將存儲媒體內(nèi)的軟件進(jìn)行完整復(fù)制而使得該軟件仍逃不脫被 復(fù)制盜用的命運(yùn)。
同時(shí),在這個(gè)信息爆炸時(shí)代,大量的電子信息、應(yīng)用軟件等數(shù)字
內(nèi)容通過閃存(FLASH)裝置在一般的臺式機(jī)、筆記本計(jì)算機(jī)、手機(jī)、 個(gè)人數(shù)字助理(PDA)、數(shù)字相機(jī)、DVD播放機(jī)等電子裝置上執(zhí)行與使 用,而且呈使用越來越廣的趨勢。所謂的閃存裝置,其泛指一般不具 運(yùn)算功能,但可儲存大量數(shù)據(jù)的小型的采用半導(dǎo)體為存儲媒介的移動(dòng)存儲器,例如,其表現(xiàn)形式可以是記憶卡、存儲棒、u盤等等。
由于電子裝置中存放軟件程序代碼的閃存裝置或存放各種數(shù)字內(nèi) 容的存儲器媒體,其存放的數(shù)據(jù)可通過特定的設(shè)備進(jìn)行讀取、寫入及 復(fù)制,于是產(chǎn)生了數(shù)據(jù)保護(hù)的問題?,F(xiàn)有的對閃存裝置為代表的移動(dòng) 存儲裝置的安全保護(hù)多半是外部協(xié)議及密碼方式實(shí)現(xiàn),對物理復(fù)制缺 少有效的安全措施,因?yàn)楝F(xiàn)有技術(shù)無法找到一個(gè)與具體的每一個(gè)閃存 產(chǎn)生唯一關(guān)聯(lián)的方式,雖然可通過設(shè)置用戶指紋數(shù)據(jù)比對,但這并不 能解決同一客戶將合法數(shù)據(jù)閃存裝置非法地復(fù)制到多個(gè)閃存裝置中 去的復(fù)制問題,同時(shí),閃存裝置設(shè)置指紋數(shù)據(jù)也會占用大量資源。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種可在閃存裝置中產(chǎn)生唯一 識別碼的方法,利用該方法對不同的閃存進(jìn)行標(biāo)識,保證每個(gè)閃存單 元標(biāo)識的唯一性,同時(shí)通過判斷該標(biāo)識碼來判定閃存裝置內(nèi)的數(shù)據(jù)是 否合法,以達(dá)保護(hù)數(shù)據(jù)目的。
本發(fā)明上述技術(shù)問題這樣解決,構(gòu)造一種產(chǎn)生閃存標(biāo)識碼的方法, 包括以下步驟Al)對閃存進(jìn)行物理可用位置檢測,將可用物理位置
轉(zhuǎn)換成可用邏輯位置,對不可用物理位置進(jìn)行壞塊標(biāo)識,形成FLASH 資料表;A2)根據(jù)物理位置與邏輯位置的對應(yīng)關(guān)系,依據(jù)FLASH資料 表產(chǎn)生壞塊索引記錄表;A3)將包含有壞塊標(biāo)識的索引記錄作為閃存 的唯一識別碼。
在上述方法中,還包括以下步驟將閃存物理上邏輯空間大小和 實(shí)際可用邏輯空間大小之差,與壞塊標(biāo)識的索引記錄一起作為閃存的唯一識別碼。
在上述方法中,所述壞塊標(biāo)識的索引記錄是全部壞塊標(biāo)識的索引 記錄中偶數(shù)序或奇數(shù)序的部分。
按照本發(fā)明提供的一種產(chǎn)生閃存標(biāo)識碼的方法,包括以下步驟 Bl)確定閃存中的實(shí)際壞塊;B2)在閃存中形成人工壞塊;B3)產(chǎn)生 覆蓋實(shí)際壞塊與人工壞塊的壞塊索引;B4)將壞塊索引或?qū)膲K索引 與閃存物理上邏輯空間大小和實(shí)際可用邏輯空間大小之差一起,作為 閃存的唯一識別碼。
在上述方法中,所述步驟B2包括以下步驟在鄰接一個(gè)預(yù)定壞塊 的塊上,在寫入預(yù)定內(nèi)容的同時(shí)將其標(biāo)識為壞塊,使之與所述預(yù)定壞 塊形成連續(xù)壞塊。
在上述方法中,將從所述人工壞塊讀出的所述預(yù)定內(nèi)容作為閃存 的唯一識別碼的一部分。
在上述方法中,將從所述人工壞塊是否與所述預(yù)定壞塊形成連續(xù) 壞塊作為閃存的唯一識別碼的 一部分。
在上述方法中,寫入所述人工壞塊的所述預(yù)定內(nèi)容是包括廠商、 品牌、可用物理空間大小的硬件信息、或包括標(biāo)稱物理空間容量、格 式參數(shù)的軟件信息之一或其組合,或按照預(yù)定算法對已有一個(gè)或一個(gè) 以上塊內(nèi)數(shù)據(jù)的計(jì)算結(jié)果。
實(shí)施本發(fā)明提供的一種產(chǎn)生閃存標(biāo)識碼的方法,可以對每個(gè)閃存 產(chǎn)生唯一識別碼,這種標(biāo)識碼由于來源于半導(dǎo)體制造過程中形成的缺 陷,因此具有不可預(yù)知和不可改變的特點(diǎn),通過判斷該唯一識別碼而判定該閃存內(nèi)的數(shù)據(jù)是否可被讀取或該硬件是否為合法生產(chǎn)制造,從 而為軟件防復(fù)制和讀取提供基礎(chǔ)的無法預(yù)制和改變的標(biāo)識碼,從而真 正杜絕非法讀取和非法物理或邏輯的復(fù)制行為,大大提高閃存裝置存 儲數(shù)據(jù)的安全性。
圖1是用于說明應(yīng)用本發(fā)明方法進(jìn)行標(biāo)識的閃存壞塊空間的第一 個(gè)示例的原理示意圖2是用于說明應(yīng)用本發(fā)明方法進(jìn)行標(biāo)識的閃存壞塊空間的第二 個(gè)示例的原理示意圖3是用于說明應(yīng)用本發(fā)明方法采用人工壞塊進(jìn)行標(biāo)識的原理示 意圖4是實(shí)施本發(fā)明方法的程序流程示意圖;
具體實(shí)施例方式
無論是單層SLC或多層MLC的半導(dǎo)體存儲器,在制造過程中,一 定會產(chǎn)生先天性壞塊,在對一個(gè)新出廠的閃存進(jìn)行格式化時(shí),就會發(fā) 現(xiàn),其有效容量與其標(biāo)稱容量總是有一個(gè)小小的誤差,這個(gè)誤差就是 壞塊的容量。
利用本發(fā)明提供的方法對閃存進(jìn)行唯一性標(biāo)識,其核心是把閃存 壞塊信息加以利用,使之成為標(biāo)識數(shù)據(jù),而壞塊的個(gè)數(shù)和分布情況直 接決定了這個(gè)閃存的標(biāo)識,由于任何兩個(gè)閃存之間,形成相同的壞塊 個(gè)數(shù)和相同的分布的可能性幾乎為0,因此可保證這種標(biāo)識結(jié)果的唯 一性。在如圖l示出的一個(gè)說明性的實(shí)施例中,在0-79個(gè)邏輯塊里,制
造工藝造成塊2、 17和67是壞塊。應(yīng)用本發(fā)明方法對三個(gè)壞塊的標(biāo) 識索引為2、 17、 67。如果其空間為80,那么可用空間為77。以下 兩種均可對其進(jìn)行唯一性標(biāo)識。
1) 80-77, 2, 17, 67;其中,第一個(gè)數(shù)據(jù)是物理上邏輯空間大小與 實(shí)際可用邏輯空間大小之差,后三個(gè)數(shù)據(jù)是壞塊索引記錄。
2) 80-3, 2, 17, 67;其中,第一個(gè)數(shù)據(jù)是物理上邏輯空間大小與壞 塊邏輯空間大小之差,顯然與上述表述是等價(jià)的,而后三個(gè)數(shù)據(jù)是壞 塊索引記錄。
在如圖2示出的另一個(gè)說明性的實(shí)施例中,在0-79個(gè)邏輯塊里, 制造工藝造成塊2、 17和67是壞塊。這3個(gè)屬于實(shí)際壞塊。預(yù)定在 第1個(gè)實(shí)際壞塊的后面,設(shè)置一個(gè)人工壞塊,即人工壞塊的位置在塊 3,圖2中標(biāo)號為21,該人工壞塊的示意性結(jié)構(gòu)如圖3所示,其中,該 人工壞塊的第一個(gè)Page標(biāo)示有0xff,該標(biāo)示即為壞塊標(biāo)識,也可有 其他標(biāo)示方式。實(shí)際上,人工壞塊里面的其它Page內(nèi)是有放數(shù)據(jù) 的,例如前1個(gè)或若千個(gè)壞塊的數(shù)字和。在實(shí)際壞塊索引2、 17和 67基礎(chǔ)上,增加了與塊2相鄰的人工壞塊即塊3,這樣,經(jīng)過人工壞 塊標(biāo)識后,所產(chǎn)生的覆蓋實(shí)際壞塊與人工壞塊的壞塊索引為2、 3、 17和67。
在此基礎(chǔ)上形成唯一標(biāo)識碼為80-76, 2, 3, 17, 67;其中,第
一個(gè)數(shù)據(jù)是物理上邏輯空間大小與實(shí)際可用邏輯空間大小之差,后四 個(gè)數(shù)據(jù)是壞塊索引記錄。在寫入人工壞塊的壞塊標(biāo)識的同時(shí),如圖3,可以在人工壞塊寫
入"ST101SIZE8M2008"之類的信息,也可作為人工標(biāo)識數(shù)據(jù)的一 部分,增加其判斷的唯一性。除此,還可以將是否有2個(gè)連續(xù)壞塊作 為標(biāo)識碼的一部分。
結(jié)合圖4,具體為一個(gè)閃存,以三種方式形成唯一性標(biāo)識數(shù)據(jù)的 過程舉例說明如下
1) 對閃存進(jìn)行標(biāo)稱空間和標(biāo)稱空間內(nèi)物理可用位置檢測(如圖 4中框1和2所指,假定標(biāo)稱物理空間為X,有效可用空間 為Y),將可用的物理位置集合以邏輯位置或邏輯地址方式 表達(dá)成好的區(qū),將不可用的物理位置集合以邏輯位置或邏輯 地址方式表達(dá)成壞的區(qū),按物理位置或地址的順序,將全部 空間按物理位置順序組成該閃存資料表;
2) 根據(jù)物理位置與邏輯位置的對應(yīng)關(guān)系,依據(jù)閃存資料表產(chǎn)生 索引記錄表;所述索引實(shí)際上是從閃存資料表入口開始的位 移,例如,如第100個(gè)邏輯塊為壞塊,則壞塊索引記錄含有
"99";將(X-Y)個(gè)壞塊記錄為壞塊索引S (X-Y)(如框3 所示);
3) 框4指出第一種標(biāo)識碼,即以X-Y、 S (X-Y)為標(biāo)識碼,其 中,X-Y是物理空間大小與可用空間大小之差;S (X-Y)表 示X-Y個(gè)壞快索引;
4) 框5指出第二種標(biāo)識碼,即以X-Y、 S (X-Y)的子集為標(biāo)識 碼,其中,S (X-Y)的子集可以是偶數(shù)序或奇數(shù)序或其他預(yù)定順序的壞塊索引; 5 ) 框6和框7指出了利用人工壞快產(chǎn)生標(biāo)識數(shù)據(jù)的過程,其中, 用于形成人工壞快的框6內(nèi)含三個(gè)部分,在框61中,選擇 在鄰接預(yù)定壞塊的塊上,寫入壞塊標(biāo)志(如0XFF,也可以 是其它形式的壞快標(biāo)志)成人造壞塊;在框62中,在人造 壞塊寫入預(yù)定內(nèi)容的數(shù)據(jù),例如,包括廠商、品牌、可用物 理空間大小的硬件信息、或包括標(biāo)稱物理空間容量、格式參 數(shù)的軟件信息之一或其組合,或按照預(yù)定算法對已有一個(gè)或 一個(gè)以上塊內(nèi)數(shù)據(jù)的計(jì)算結(jié)果,例如前1個(gè)或若干個(gè)壞塊的 數(shù)字和。在框63中,將人造壞塊與哪一實(shí)際壞塊形成鄰接、 寫入人造壞快的內(nèi)容等;在框63中,將人造壞塊是否與 壞快連續(xù)、人造壞快的位置索引、寫入內(nèi)容作為補(bǔ)充的索 引S (M),最后在框7中,以X-Y、 S (X-Y)、 S (M)為 該閃存的標(biāo)識數(shù)據(jù)。 雖然說,任何兩個(gè)閃存的壞塊個(gè)數(shù)及其分布相同的可能性很低, 但由于我們增加了人工壞i央,將其與壞快索引一起作為閃存的標(biāo)識數(shù) 據(jù),但在初始化時(shí)預(yù)先將預(yù)定個(gè)數(shù)N的內(nèi)容數(shù)據(jù)組依次寫入人造壞塊 的邏輯位置空間,所形成的補(bǔ)充索引S (M)與壞塊索引S (X-Y) — 起作為標(biāo)識數(shù)據(jù),將比直接采用原始壞塊數(shù)據(jù)來標(biāo)識更易區(qū)別。
最后將框3寫入過程形成的不可寫壞塊對應(yīng)的索引與有壞塊標(biāo) 識的索引以及閃存物理和邏輯空間一起作為FLASH存儲器的唯一識 別碼。利用這些標(biāo)識數(shù)據(jù),可以配合閃存驅(qū)動(dòng)程序?qū)崿F(xiàn)防數(shù)據(jù)被讀取和 復(fù)制,提高閃存數(shù)據(jù)的安全性。 實(shí)施例1
以閃存總空間與可用空間之差和全部壞塊索引為標(biāo)識數(shù)據(jù) ,
總空間128*1024*1024=134218728字節(jié)
1024字節(jié)為l個(gè)邏輯塊
總邏輯空間為128*1024=131072塊
可用空間的邏輯塊數(shù)為130667塊
全部壞塊索引131072-130867二205個(gè),列出如下 12, 201, 1923, 2300......1310303。
該閃存的標(biāo)識數(shù)據(jù)為131072-130667, 12, 201, 1923, 2300, ......1310303。
這樣,該閃存在初始使用時(shí),就產(chǎn)生了這些標(biāo)識數(shù)據(jù),每次進(jìn)行 數(shù)據(jù)讀寫,都要通過讀寫程序進(jìn)行驗(yàn)證,判斷當(dāng)前讀寫的閃存與要讀 寫的對象是否具有相同的標(biāo)識數(shù)據(jù),如果一致,讀寫合法,否則拒絕 讀寫。 實(shí)施例2
以閃存總空間、壞塊空間和全部壞塊索引為標(biāo)識數(shù)據(jù); 以上面的閃存為例,標(biāo)識數(shù)據(jù)為131072, 205, 12, 201, 1923, 2300, ......1310303。
以閃存總空間、可用空間和部分壞塊索弓I為標(biāo)識數(shù)據(jù);部分壞塊可選擇奇數(shù)或偶數(shù)塊的索引作為壞塊數(shù)據(jù)。 以上面的閃存為例,采用奇數(shù)序的壞塊索引作為壞塊數(shù)據(jù),則標(biāo)識數(shù)
據(jù)為131072, 130667, 12, 923, ......1310303。
實(shí)施例4
以閃存總空間與壞塊空間之差和部分壞塊索弓I為標(biāo)識數(shù)據(jù); 以上面的閃存為例,采用奇數(shù)個(gè)壞塊索引作為壞塊數(shù)據(jù),則標(biāo)識
數(shù)據(jù)為131072-205, 12, 923, ......1310303。
應(yīng)用上述產(chǎn)生標(biāo)識碼的方法,可以在對閃存格式化時(shí)產(chǎn)生,將產(chǎn) 生的標(biāo)識碼數(shù)據(jù)保存在閃存不可讀的空間,配合控制器的驅(qū)動(dòng)程序, 每次上電使用都要比對這些數(shù)據(jù),不一致時(shí)則終止使用;由于標(biāo)識數(shù) 據(jù)是唯一的,因此,即使將合法A盤的讀寫程序復(fù)制到非法B盤上, 也無法讀取B盤的數(shù)據(jù),因?yàn)锳盤的驅(qū)動(dòng)程序無法得到B盤標(biāo)識數(shù)據(jù)。
權(quán)利要求
1、一種產(chǎn)生閃存標(biāo)識碼的方法,其特征在于,包括以下步驟A1)對閃存進(jìn)行物理可用位置檢測,將可用物理位置轉(zhuǎn)換成可用邏輯位置,對不可用物理位置進(jìn)行壞塊標(biāo)識,形成FLASH資料表;A2)根據(jù)物理位置與邏輯位置的對應(yīng)關(guān)系,依據(jù)FLASH資料表產(chǎn)生壞塊索引記錄表;A3)將包含有壞塊標(biāo)識的索引記錄作為閃存的唯一識別碼。
2、 根據(jù)權(quán)利要求l所述方法,其特征在于,還包括以下步驟將閃存物理 上邏輯空間大小和實(shí)際可用邏輯空間大小之差,與壞塊標(biāo)識的索引記錄 一起作為閃存的唯一識別碼。
3、 根據(jù)權(quán)利要求1或2所述方法,其特征在于,所述壞塊標(biāo)識的索引記錄 是全部壞塊標(biāo)識的索引記錄中偶數(shù)序或奇數(shù)序的部分。
4、 一種產(chǎn)生閃存標(biāo)識碼的方法,其特征在于,包括以下步驟 Bl)確定實(shí)際壞塊;B2)形成人工壞塊;B3)產(chǎn)生覆蓋實(shí)際壞塊與人工壞塊的壞塊索引;B4)將壞塊索引或?qū)膲K索引與閃存物理上邏輯空間大小和實(shí)際可用邏輯空間大小之差一起,作為閃存的唯一識別碼。
5、 根據(jù)權(quán)利要求4所述方法,其特征在于,所述步驟B2包括以下步驟 在鄰接一個(gè)預(yù)定壞塊的塊上,在寫入預(yù)定內(nèi)容的同時(shí)將其標(biāo)識為壞塊, 使之與所述預(yù)定壞塊形成連續(xù)壞塊。
6、 根據(jù)權(quán)利要求5所述方法,其特征在于,將從所述人工壞塊讀出的所述預(yù)定內(nèi)容作為閃存的唯一識別碼的一部分。
7、 根據(jù)權(quán)利要求5所述方法,其特征在于,將從所述人工壞塊是否與所述 預(yù)定壞塊形成連續(xù)壞塊作為閃存的唯一識別碼的一部分。
8、 根據(jù)權(quán)利要求5所述方法,其特征在于,寫入所述人工壞塊的所述預(yù)定 內(nèi)容是包括廠商、品牌、可用物理空間大小的硬件信息、或包括標(biāo)稱物 理空間容量、格式參數(shù)的軟件信息之一或其組合,或按照預(yù)定算法對已 有一個(gè)或一個(gè)以上塊內(nèi)數(shù)據(jù)的計(jì)算結(jié)果。
全文摘要
一種產(chǎn)生閃存標(biāo)識碼的方法,包括以下步驟A1)對閃存進(jìn)行物理可用位置檢測,將可用物理位置轉(zhuǎn)換成可用邏輯位置,對不可用物理位置進(jìn)行壞塊標(biāo)識,形成FLASH資料表;A2)根據(jù)物理位置與邏輯位置的對應(yīng)關(guān)系,依據(jù)FLASH資料表產(chǎn)生壞塊索引記錄表;A3)將包含有壞塊標(biāo)識的索引記錄作為閃存的唯一識別碼。利用本發(fā)明方法為閃存產(chǎn)生的唯一識別碼,由于來源于半導(dǎo)體制造過程中由不可控因素形成的塊缺陷,具有不可預(yù)知和不可改變的特點(diǎn),從而為閃存裝置應(yīng)用程序提供基礎(chǔ)的無法預(yù)制和改變的標(biāo)識碼,進(jìn)而實(shí)現(xiàn)杜絕閃存內(nèi)容的非法讀取和非法復(fù)制。
文檔編號G11C16/06GK101567218SQ20081021634
公開日2009年10月28日 申請日期2008年9月22日 優(yōu)先權(quán)日2008年9月22日
發(fā)明者方澤南 申請人:深圳桑達(dá)電子集團(tuán)有限公司