專利名稱:非揮發(fā)性儲存裝置內容保密方法與架構的制作方法
技術領域:
本發(fā)明是有關一種非揮發(fā)性儲存裝置內容保密方法與架構,尤指一種利用信址搗亂使用資料混亂組合,使非透過還原程序的資料成為無用,藉以保護快閃記憶體內存資料不受竊取、修改變更者。
再舉例來說,行動電話的制作廠商通常將其自行開發(fā)的程式以DSP制作,這些程式都是關于行動電話功能、收訊能力等重要且不欲人知的資料,均享有智慧財產(chǎn)權的保護,但置存于快閃記憶體10時卻使這些重要資料形同公開。換言之,在提供系統(tǒng)保護的加/解密系統(tǒng)中,快閃記憶體無疑地成為安全上漏洞。
為解決此項問題,目前的解決方法(如圖2),即是將微控制器單元MCU與快閃記憶體10置入同一個IC20中,透過內建的資料線路存取,避免快閃記憶體內欲執(zhí)行的程式被竊取、修改及破解。然而,此方法雖幾乎無法被破解,但生產(chǎn)快閃記憶體10及微控制器單元MCU的邏輯元件分屬不同的制程,將造成制程費用的大幅增加。因此亦非一理想的解決方法。
緣此,本發(fā)明主要是鑒于快閃記憶體的讀取/寫入時機在一般開楊或是程式載入,而此兩種情況不經(jīng)常發(fā)生,因此能利用少許的邏輯設計及特殊設計的軟件達到對快閃記憶體的保護。
依據(jù)前述,本發(fā)明的主要目的即是提供一種非揮發(fā)性儲存裝置內容保密方法與架構,主要是將程式以適當大小作方塊化處理,利用位址搗亂(scrambling)與亂數(shù)(random)的觀念,使資料的排列隨著位址變化而產(chǎn)生新的組合,且不經(jīng)由還原方法無法重整回原始資料,藉以提供快閃記憶體保護的安全性,且無需花費大筆制程費用。
以下將對本發(fā)明的結構設計與技術原理,作一詳細的說明,并參閱附呈的圖式,將對本發(fā)明的特征作更進一步的了解,其中圖示說明
圖1是現(xiàn)有電腦架構示意圖;圖2是現(xiàn)有將微控制器單元與快閃記憶體置入同一個IC的結構示意圖;圖3是為本發(fā)明的系統(tǒng)架構示意圖;圖4是為圖3的記憶體資料保密晶片的內部架構圖;圖5是本發(fā)明資料旋轉前后的示意圖;圖6是本發(fā)明的寫入動作步驟流程圖;圖7是本發(fā)明的讀取動作步驟流程圖;圖8是本發(fā)明第二種實施例架構示意圖;圖9為圖8的資料旋轉前后的示意圖。圖號說明10快閃記憶體20IC30記憶體資料保密晶片31位址搗亂器32亂數(shù)產(chǎn)生器33解碼器34緩沖器35鑰匙40晶片41暫存器42可程式唯讀記憶體43亂數(shù)產(chǎn)生器如圖3所示,本發(fā)明中,微控制器單元MCU或DSP在對于閃記憶體10讀取或寫入資料前,是先經(jīng)過一記憶體資料保密晶片30進行資料的處理或還原。該記憶體資料保密晶片30內部架構如圖4所示;包括有一位址搗亂器31,是將方塊化的程式進行旋轉,將原始4的位址搗亂出一組新位址供原始資料儲存,并依新位址寫入快閃記憶體10;一亂數(shù)產(chǎn)生器32,是產(chǎn)生一組隨機順序,使快閃記憶體10內資料依此順序被讀出;一解碼器33,是將亂數(shù)順序讀取的位址資料過濾出多余的資料,并逆轉程式方塊獲得原始的資料與位址而供微控制器單元MCU(或DSP)執(zhí)行。
以下將就微控制器單元MCU對快閃記憶體10寫入(write)及讀出(read)兩部份作為說明[寫入程序]——可視為對資料的編碼動作軟件將欲執(zhí)行的程式進行方塊化(block based)處理,一般是以8×8作一方塊基礎,以這些方塊作為基礎進行旋轉(rotate),即透過位址搗亂器31將儲存的位址搗亂(scrambling),使原始位址內的資料儲存在旋轉后的新位址內。為簡化說明,以下以一4×4方塊作一說明。
圖5左側為一方塊化的原始資料,其位址80h所儲存為0011,位址81h所儲存為1011,82h所儲存為1100,83h所儲存為1010。旋轉(于本實施例是向右旋轉90度,不限定旋轉方向)后4×4程式方塊則如圖5右側,新位址80’h所儲存者轉變?yōu)?110,81’h所儲存轉變?yōu)?100,82’h所儲存者轉變?yōu)?011,83’h所儲存者轉變?yōu)?011。對照于兩4×4方塊,即可發(fā)現(xiàn)右側圖的最右邊縱向資料即為原始的80h資料,以此類推。因此很明顯的相同位址內的資料質已經(jīng)完全被搗亂,這些資料儲存在快閃記憶體10中,非法入侵并不知資料已搗亂,其直接自快閃記憶體10所讀取者,已完全不同于原始資料。
寫入動作可歸納出圖6的步驟流程圖步驟a.程式方塊化步驟;步驟b.旋轉方塊將原始資料的位址搗亂產(chǎn)生新位址步驟;步驟c.原始資料貯存在新的位址;步驟d.依據(jù)新的位址寫入快閃記憶體10?!梢暈閷Y料的解碼動作利用亂數(shù)產(chǎn)生器32(random number generator)隨機產(chǎn)生一組隨機順序,將快閃記憶體10內的資料依此亂數(shù)順序讀出,并暫存于一緩沖器34(可為SRMA)內,這些被讀取的資料中包含有前述寫入程序中寫入的資料及多余(dummy)資料,因此在資料還原時必需先將多余資料過濾出,找到所需的相關位址,透過解碼器33過濾出多余的位址資料,再逆向轉此方塊而獲得原始的資料與位址而供微控制器單元MCU或DSP利用。而由于快閃記憶體10是外掛于微控制器單元MCU或DSP,非法放侵者亦可讀取這些資料,但透過亂數(shù)產(chǎn)生器32提供的亂數(shù)讀取順序,其讀取的將是包含所需及多余資料,及無法了解的順序排列組合,因此極難破解出讀取的資料內容。
讀取動作可歸納出圖7的步驟流程圖步驟a.利用亂數(shù)產(chǎn)生器32產(chǎn)生一組亂數(shù)讀取順序步驟;步驟b.依步驟a的順序自快閃記憶體10中讀出并暫存于緩沖器34步驟;步驟c.將緩沖器34的暫存值過濾出多余資料;步驟d.逆旋轉方塊獲得原始的位址及資料。
另外,在讀取程序中,因每一個記憶體資料保密晶片30是使用一個單一鑰匙35(key),也就是說每一個系統(tǒng)有它單一的位址映射(mapping)順序,因此能夠過濾出什么位址的資料是多余的,什么位址的資料是有用的。而這個鑰匙35能夠被儲存在記憶體資料保密晶片內或是卡片(smart card)中。由于位址是線性增加,在這個簡易變化中,非法入侵者極為容易找到其所需的程式所在位址,因此在本實施例中是利用晶片40內原始的隨機碼對真實的位址作隨機對調,產(chǎn)生一組新的隨機位址儲存資料,作一簡易的變化。如圖8所示,微控制器單元MCU所載入的程式以位元組(BYTE)為單位讀入晶片40,儲存在晶片40內的暫存器41中,這個晶片40內亦設有一只能寫入一次的可程式唯讀記憶體42(PROM)或是較小容量的快閃記憶體。如前述,晶片40中要納入快閃記憶體10是困難且花費高,但制作一個可程式唯讀記憶體42卻是非常容易。亂數(shù)產(chǎn)生器43產(chǎn)生的隨機碼是燒入可程式唯讀記憶體42并架構出一轉換表(圖式未書),用以控制原始位址與旋轉后位址的對應關系,將原始位址內資料依隨機碼寫出,再對隨機位址旋轉寫出入快閃記憶體10。藉由位址的打散使資料直接讀取即成為無用的資料,使非法入侵者維以竊取、修改、便更資料,而對快閃記憶體10提供保護者。再者,由于是亂數(shù)產(chǎn)生器43隨機產(chǎn)生,因此在實際制作的晶片40所產(chǎn)生的轉換表均不相同,因此并不限定唯一方式去覆蓋快閃記憶體10內的原始資料。
另外,原始位址亦可先進行補數(shù)運算再進行隨機對調,以增加破解的困難性。
以下以一4位元位址作一說明(如圖9),A3~A0為原始位址,m3~m0為隨機碼位址,圖中所示的箭頭為兩者的隨機對調關系。舉例來說,A3是0011,A2是0010,A1中0001。A0中0000,對原始位址作補數(shù)運算,m3=A2,m2=A0,m1=A3,m0=A1,m3即為0110,m2即為0010,m1即為0111,m0即為0011,作為儲存快閃記憶體10的新位址,原始資料即因上述的運算更加難以擷取。
讀取時,則透過可程式唯讀記憶體42(PROM)所儲存的轉換表,回復為原始資料執(zhí)行。
另外,由于電腦開機后即對快閃記憶體10讀取第一筆資料,之后依照順序讀取,因此為增加破解的困難度,可利用一亂數(shù)產(chǎn)生器43在資料讀取期間,于所需的資料間隨機的插入不需要的資料,電腦同樣對這些手稿的資料讀取,形成假讀取的情況,如此非法入侵者將無法獲知正確的位址順序,而無從擷取正確的資料。
綜上所述,本發(fā)明所提供的非揮發(fā)性儲存裝置內容保密方法與架構,利用位址搗亂(scrambling)與亂數(shù)(random)的觀念,使方塊化處理的資料排列隨著位址變化而產(chǎn)生新的組全,且不經(jīng)同還原方法無法重整回原始資料,對于現(xiàn)有加/解密保護系統(tǒng)無法提供保護的快閃記憶體的缺失提出有效的解決辦法及對策,確實已符合創(chuàng)作專利的申請要件,悉請鈞局詳加審查,并惠賜準予專利,以嘉惠民生利國利民,實感德便。
唯以上所敘述的技術、圖說、程式或控制等方法,僅僅是本發(fā)明較佳實施例之一而已;舉凡依本發(fā)明權利要求范圍的技術所作的均等變化或修飾或擷取部分功能的雷同制作,皆應仍屬本發(fā)明專利權所涵蓋的范圍;當不能依此限定本發(fā)明實施的范圍。
權利要求
1.一種非揮發(fā)性儲存裝置內容保密方法,特別是提供快閃記憶體內存資料的保護方法,其特征在于主要是將儲存在快閃記憶體中程式進行方塊化,以這些方塊作為基礎進行旋轉,即將儲存的位址搗亂,將原始位址內的資料再寫入儲存以旋轉后的新位址內;讀取資料時,透過亂數(shù)產(chǎn)生器產(chǎn)生亂數(shù)的讀取順序,讀取資料包括了正確資料與一些多余資料,再過濾出多余的讀取資料、位址旋轉回復還原成原始的資料,藉由位址的搗亂將資料直接讀取成為無用且無法辨視的資料者。
2.如權利要求1所述的非揮發(fā)性儲存裝置內容保密方法,其特征在于其中該寫入程序包括有a.程式方塊化步驟;b.旋轉方塊將原始資料的位址搗亂產(chǎn)生新位址步驟;c.原始資料貯存在新的位址;d.依據(jù)新的位址寫入快閃記憶體;
3.如權利要求2所述的非揮發(fā)生儲存裝置內容保密方法,其特征在于其中該步驟a是以8(bit)×8(bit)為一方塊作旋轉基礎。
4.如權利要求1項所述的非揮性儲存裝置內容保密方法,其特征在于其中該讀取程序包括有a.利用亂數(shù)產(chǎn)生器產(chǎn)生一組亂數(shù)讀取順序步驟;b.依步驟a的順序自快閃記憶體中讀出并暫存于緩沖器步驟;c.將緩沖器的暫存值過濾出多余資料;d.逆旋轉方塊獲得原始的位址及資料;
5.一種非揮性儲存裝置內容保密架構,主其特征在于要是在微控制器單元(或DSP)與快閃記憶體間設有一記憶體資料保密晶片,用以對寫入及讀取快閃記憶體的資料加密,包括有一位址搗亂器,是將方塊化的程式進行旋轉,將原始的位址搗亂出一組新位址供原始資料儲存,并依新位址寫入快閃記憶體;一亂數(shù)產(chǎn)生器,是產(chǎn)生一組隨機順序,使快閃記憶體現(xiàn)內資料依此順序被讀出;一解碼器,是將亂數(shù)順序讀取的位址資料過濾出多余的資料,并逆轉程式方塊獲得原始的資料與位址而供微控制器單元(或DSP)執(zhí)行。
6.如權利要求4所述的非揮發(fā)性儲存裝置內容保密架構,其特征在于其中該記憶體資料保密晶片更包括有一單一鑰匙,是作單一的位址映射順序,而過濾出多余的資料。
7.一種非揮發(fā)性儲存裝置內容保密方法,特別是提供快閃記憶體內存資料的保護方法,該記憶體資料保密晶片制作一只能寫一次的可程式唯讀記憶體(PROM)或是較小空間的快閃記憶體,其特征在利用一亂數(shù)產(chǎn)生器產(chǎn)生隨機碼并燒入可程式唯讀記憶體架構出一轉換表,用以控制原始位址與旋轉后位址的對應關系,將原始位址內資料依隨機碼寫出,再對隨機位址旋轉寫入快閃記憶體。
8.如權利要求6項所述的非揮發(fā)性儲存裝置內容保密方法,其特征在于其中在位址隨機對調前更包括有對原始位址進行補數(shù)運算的步驟。
9.如權利要求6項所述的非揮發(fā)性儲存裝置內容保密方法,其特征在于其中讀取時,或利用亂數(shù)產(chǎn)生器在所需的資料間,隨機的的插入需要的資料,電腦同樣對這些插入的資料讀取,形成假讀取的情況,使非法入侵者將無法獲知正確的位址順序,而無從擷取正確的資料。
全文摘要
本發(fā)明是有關一種非揮發(fā)性儲存裝置內容保密方法與架構,尤指一種將儲存在快閃記憶體中程式進行方塊化,以這些方塊作為基礎進行旋轉,即將儲存的位址搗亂,使原始位址內的資料儲存在旋轉后的新位址內;讀取資料時,透過亂數(shù)產(chǎn)生器產(chǎn)生亂數(shù)的讀取順序,讀取的資料包括了正確資料與一些多余資料,再過濾出多余的讀取資料、位址旋轉回復還原成原始的資料,籍由位址的搗亂將資料直接讀取成為無用資料,便非法入侵者難以取、修改、變更,而對快閃記憶體提供保護者。
文檔編號G06F9/22GK1302013SQ9912715
公開日2001年7月4日 申請日期1999年12月28日 優(yōu)先權日1999年12月28日
發(fā)明者后健慈 申請人:后健慈