專利名稱:非易失性存儲器的安全保密架構(gòu)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種非易失性存儲器的安全保密架構(gòu)及方法,尤其涉及一種針對非易失性存儲器(Non-VolatileMemory),特別是指只讀存儲器來做具 有高延伸性和具有實用價值的防護機制,此機制包含一組對地址(Address) 加密的編碼選擇器,以及一組對數(shù)據(jù)(Data)解碼的解碼選擇器,再將只讀 存儲器的地址加以編碼和數(shù)據(jù)做解碼選擇,來加強只讀存儲器的安全保密能 力,使得程序竊取者即使盜取只讀存儲器的地址和數(shù)據(jù)后,無法還原出程序 原始碼,致使集成電路無法正常工作,以達到非易失性存儲器的安全保密的 目的。
背景技術(shù):
如今,電子產(chǎn)業(yè)的突飛猛進,將許多的電子元件都設(shè)計在集成電路(IC) 中,使得電子產(chǎn)品的體積得以縮減,但是對于集成電路內(nèi)部的非易失性存儲 器(其代表為只讀存儲器(ROM))而言,目前并沒有任何廠商針對其制作 安全保密機制,只讀存儲器內(nèi)的程序為程序設(shè)計者苦心研發(fā),若被竊取時將 造成無法補救的商業(yè)損失,竊取者(仿冒者)可用下列方式來取得只讀存儲 器的地址與數(shù)據(jù)使用芯片去除封裝(Chip Decap)的技術(shù),直接在只讀存儲器數(shù)據(jù)特定 引腳(pin)利用探針來取得其內(nèi)部程序;破解集成電路的測試模式,并進入轉(zhuǎn)存只讀存儲器地址與數(shù)據(jù)(Dump ROM Code),使得只讀存儲器程序由集成電路輸入輸出端口 (I/OPort)被 轉(zhuǎn)存,達到破解的目的。發(fā)明內(nèi)容為了解決以上所述已知技術(shù)的缺失,本發(fā)明為一種非易失性存儲器的安 全保密架構(gòu)及方法,主要目的為針對非易失性存儲器(Non-VolatileMemory),特別是指只讀存儲器來做具有高延伸性和具有實用價值的防護 機制,此機制包含有一組對地址(Address)加密的編碼選擇器,以及一組對 數(shù)據(jù)(Data)解碼的解碼選擇器,再將只讀存儲器的地址加以編碼和數(shù)據(jù)做 解碼選擇,來加強只讀存儲器的安全保密能力,使得程序竊取者即使盜取只 讀存儲器的地址和數(shù)據(jù)后,無法還原出程序原始碼,致使集成電路無法正常 工作,以達到非易失性存儲器的安全保密的目的。為達上述目的,本發(fā)明提供一種非易失性存儲器的安全保密架構(gòu),其包 括地址編碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選 定一種編碼電路,讓地址信號產(chǎn)生器送來的地址可以被編成另一個地址,并 存儲已經(jīng)過編碼的地址至該非易失性存儲器;數(shù)據(jù)解碼選擇器,與非易失性 存儲器電性連接,而利用選擇的方式來選定一種解碼電路,讓非易失性存儲 器經(jīng)由數(shù)據(jù)編碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼,而恢復(fù)成正確的指令; 以及非易失性存儲器,存儲已經(jīng)由該地址信號產(chǎn)生器編碼的地址和該數(shù)據(jù)編 碼器所產(chǎn)生的數(shù)據(jù)。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該非易失性存儲器 種類包括掩模型只讀存儲器、電可擦只讀存儲器、可擦只讀存儲器、快速 存儲器。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該編碼電路可以有 1至N種選擇,且N是大于等于1的整數(shù)。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該解碼電路可以有 1至M種選擇,M是大于等于l的整數(shù)。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該地址信號產(chǎn)生器 為軟件。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該地址信號產(chǎn)生器的密碼文件格式包括有報頭、只讀存儲器的地址和數(shù)據(jù)、屏蔽選項三塊區(qū)域。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編碼器為軟件。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編碼器的齊碼文件格式包括有報頭、只讀存儲器的地址和數(shù)據(jù)、屏蔽選項三塊區(qū)域。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該地址編碼選擇器 還包括地址編碼多路分用器和地址編碼多路復(fù)用器。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)解碼選擇器 還包括數(shù)據(jù)解碼多路分用器和數(shù)據(jù)解碼多路復(fù)用器。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該地址編碼器還包 括若干個正確編碼器和若干個錯誤編碼器。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)解碼器包括 若干個正確解碼器和若干個錯誤解碼器。根據(jù)本發(fā)明的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編碼器編碼 所產(chǎn)生數(shù)據(jù)可被正確的解碼為通過指令解碼器來執(zhí)行。為達上述目的,本發(fā)明還提供一種非易失性存儲器的安全保密架構(gòu),其 包括地址編碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來 選定一種編碼電路,讓地址信號產(chǎn)生器送來的地址可以被編成另一個地址, 該編碼電路可以有1至N種選擇,且N是大于等于1的整數(shù);數(shù)據(jù)解碼選 擇器,與非易失性存儲器電性連接,而利用選擇的方式來選定一種解碼電路, 讓非易失性存儲器經(jīng)由數(shù)據(jù)編碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼,而恢復(fù) 成正確的指令,該解碼電路可以有1至M種選擇,M是大于等于1的整數(shù); 以及非易失性存儲器,存儲已經(jīng)由該地址信號產(chǎn)生器編碼的地址和該數(shù)據(jù)編 碼器所產(chǎn)生的數(shù)據(jù),尤指只讀存儲器。為達上述的目的,本發(fā)明還提供一種非易失性存儲器的安全保密方法, 其由地址編碼選擇器、數(shù)據(jù)解碼選擇器與非易失性存儲器所構(gòu)成,利用編碼 對該非易失性存儲器的地址和數(shù)據(jù)作加密的操作,并配合該地址編碼選擇器 和該數(shù)據(jù)解碼選擇器的操作,令程序竊取者即使擁有非法取得的只讀存儲器 的地址和數(shù)據(jù),卻因無法得知地址編碼和數(shù)據(jù)解碼的選擇為何,而無法使集 成電路正常工作,達到防止只讀存儲器內(nèi)的程序被竊取的目的。根據(jù)本發(fā)明的非易失性存儲器的安全保密方法,其中地址編碼選擇器的 編碼種類可以分為正確編碼和錯誤編碼兩種。根據(jù)本發(fā)明的非易失性存儲器的安全保密方法,其中數(shù)據(jù)解碼選擇器的 解碼種類可以分為正確編碼和錯誤編碼兩種。為進一步對本發(fā)明有更深入的說明,通過以下附圖、附圖標記說明和本發(fā)明的詳細說明,希望能對貴審查員的審査工作有所幫助。
圖1為本發(fā)明安全保密架構(gòu)的功能方塊示意圖; 圖2為本發(fā)明地址編碼選擇器的較為詳細架構(gòu)的功能方塊示意圖; 圖3為本發(fā)明數(shù)據(jù)解碼選擇器的較為詳細架構(gòu)的功能方塊示意圖; 圖4為本發(fā)明地址編碼選擇器利用混合編碼器的功能方塊示意圖; 圖5為本發(fā)明數(shù)據(jù)解碼選擇器利用混合解碼器的功能方塊示意圖; 圖6為本發(fā)明只讀存儲器在未經(jīng)編碼前的數(shù)據(jù)示意圖; 圖7為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由地址編碼的調(diào)整示意圖; 圖8為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由地址編碼的調(diào)整后示意圖; 圖9為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由數(shù)據(jù)編碼的調(diào)整示意圖; 圖IO為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由數(shù)據(jù)編碼的調(diào)整后示意圖; 圖11為本發(fā)明地址編碼選擇器包括有一正確編碼器和若干錯誤編碼器 架構(gòu)的功能方塊示意圖12為本發(fā)明錯誤編碼器的地址編碼方式示意圖13A為本發(fā)明數(shù)據(jù)解碼選擇器包括有一正確解碼器和若干錯誤解碼 器架構(gòu)的功能方塊示意圖13B為本發(fā)明第一數(shù)據(jù)錯誤解碼選擇器的數(shù)據(jù)示意圖13C為本發(fā)明第二數(shù)據(jù)錯誤解碼選擇器的數(shù)據(jù)示意圖13D為本發(fā)明第三數(shù)據(jù)錯誤解碼選擇器的數(shù)據(jù)示意圖14為本發(fā)明只讀存儲器的地址和數(shù)據(jù)的編碼密碼文件的格式示意圖。
其中,附圖標記說明如下
1 地址編碼選擇器 11 地址編碼多路分用器
12 若干編碼器 13 地址編碼多路復(fù)用器 14 混合編碼器 15 混合編碼器 2 只讀存儲器3 數(shù)據(jù)解碼選擇器
31 數(shù)據(jù)解碼多路分用器
32 若干解碼器
33 數(shù)據(jù)解碼多路復(fù)用器
34 混合解碼器
35 混合解碼器 4 密碼文件
41 報頭
42 只讀存儲器的位置和數(shù)據(jù) 43 屏蔽選項
具體實施例方式
現(xiàn)在,配合下列
本發(fā)明的詳細結(jié)構(gòu),及其連接關(guān)系。 本發(fā)明是利用編碼的方式對非易失性存儲器(或稱只讀存儲器的地址和 數(shù)據(jù)作加密操作,并配合地址編碼選擇器和數(shù)據(jù)解碼選擇器的操作,令程序 竊取者即使擁有非法取得的只讀存儲器的地址和數(shù)據(jù)(ROM code),卻因 不知地址編碼和數(shù)據(jù)解碼的選擇為何,而無法使集成電路(IC)正常工作, 進而可達到防止只讀存儲器內(nèi)的程序被竊取的目的。
本發(fā)明提出的架構(gòu)包含三個主要的單元,分別為地址編碼選擇器 (Address Encoding Selector)、只讀存儲器、數(shù)據(jù)解碼選擇器(Data Decoding Selector)。
地址編碼選擇器是指利用選擇的方式來選定一種編碼電路(Encoder), 讓地址信號產(chǎn)生器(如Program counter)送來的地址可以被編成另一個地 址。編碼電路可以有1至N種選擇,且N是大于等于l的整數(shù)。
非易失性存儲器存儲已經(jīng)由地址信號產(chǎn)生器編碼的地址和數(shù)據(jù)編碼器 所產(chǎn)生的數(shù)據(jù),尤指只讀存儲器,而下述所公開的都以只讀存儲器做說明, 其種類包括掩模型只讀存儲器(Mask Programmable Read-Only Memory , Mask ROM(MROM))、電可擦只讀存儲器(Electrically Erasable Programmable Read-Only Memory , EEPROM)、可擦只讀存儲器(Erasable Programmable Read-Only Memory , EPROM)、快速存儲器(Flash Programmable Read-OnlyMemory, Flash ROM)。
數(shù)據(jù)解碼選擇器是指利用選擇的方式來選定一種解碼電路(Decoder),
讓只讀存儲器的編碼數(shù)據(jù)可被正確的解碼,而恢復(fù)成正確的指令。解碼電路 可以有1至M種選擇,M是大于等于1的整數(shù)。
請參閱圖l所示,為本發(fā)明安全保密架構(gòu)的功能方塊示意圖,以現(xiàn)有的 集成電路(IC)只有只讀存儲器2的部分。因此,加入兩個可實施保密機制 的電路,是和目前相比最大的不同處。此兩個可實施保密機制的功能方塊, 分別為地址編碼選擇器1和數(shù)據(jù)解碼選擇器3,目的都是為了增加正確解回 只讀存儲器內(nèi)的地址和數(shù)據(jù)(ROM code)的復(fù)雜度。只讀存儲器2內(nèi)的地 址和數(shù)據(jù)經(jīng)由軟件運算(包括地址信號產(chǎn)生器和數(shù)據(jù)編碼器)而得的,因此 要事先選定編碼地址和編碼數(shù)據(jù)的方法,才能得到經(jīng)過編碼的只讀存儲器內(nèi) 的地址和數(shù)據(jù)。
請參閱圖2所示,為本發(fā)明地址編碼選擇器的較為詳細架構(gòu)的功能方塊 示意圖,其包括地址編碼多路分用器11、若干編碼器12和地址編碼多路復(fù) 用器13,地址編碼選擇器1提供N種編碼地址的方法,并通過地址編碼多 路分用器11的Addr—optionl和地址編碼多路復(fù)用器13的Addr—option2的選 擇,使編碼方式能和已編碼的只讀存儲器地址相同,由此,讓集成電路運作 時,能到正確的地址獲得只讀存儲器的數(shù)據(jù)。地址編碼多路分用器 (Demultiplexer" 1,是為了讓地址能經(jīng)由Addr_optionl的選擇,而送至特定 的編碼器中編碼;地址編碼多路復(fù)用器(MuWplexer)13經(jīng)由Addr—option2的 選擇,讓經(jīng)過編碼的地址送至只讀存儲器。
請參閱圖3所示,為本發(fā)明數(shù)據(jù)編碼選擇器的較為詳細架構(gòu)的功能方塊 示意圖,其包括有數(shù)據(jù)解碼多路分用器11、若干解碼器12和數(shù)據(jù)解碼多路 復(fù)用器13,由于只讀存儲器里的數(shù)據(jù)都已經(jīng)過編碼,所以必須經(jīng)過解碼才能 被集成電路中的指令解碼器(Instruction decoder)認得。整個架構(gòu)和地址編碼 選擇器類似,但編碼器改為解碼器,且個數(shù)為M種。
若進一步假設(shè)地址編碼多路分用器11的Addr—optionl和地址編碼多路 復(fù)用器13的Addr—option2彼此間沒有相關(guān)性的話,地址會有N 種可能的路 徑;同理可得,數(shù)據(jù)也有]V^種可能的路徑。所以,當仿冒者只有只讀存儲 器的地址和數(shù)據(jù),卻沒有N和M的信息時,其解密成功的機會將是N Xivf的l,若N或M的數(shù)目增加愈多,越能增加只讀存儲器內(nèi)數(shù)據(jù)的安全性。 綜合上述圖2、 3的公開,其電子元件的構(gòu)成尚可以下列原則來實施
(1) 為了減低硬件方面的負擔,地址編碼選擇器和數(shù)據(jù)解碼選擇器可選 擇省略一個;因此可以選擇地址編碼選擇器和非易失性存儲器或數(shù)據(jù)解碼選
擇器和非易失性存儲器的組合,只對地址或數(shù)據(jù)做加密,即原本定義的地址 編碼選擇器或數(shù)據(jù)解碼選擇器只有1種路徑(N4 or M=l)。且多路復(fù)用器的 使用也可省略,例如使用OR或AND的邏輯元件;
(2) 地址編碼器的編碼種類可以分為正確編碼和錯誤編碼兩種,正確編 碼是指該編碼器確實有編碼的效用,同時也是可被程序設(shè)計者選擇,用以加 密地址;而錯誤編碼是指該編碼器的輸出地址永遠無法和只讀存儲器的數(shù)據(jù) 結(jié)合,目的只是為了增加地址編碼選擇Addr—optionl和Addr—option2的數(shù)量。 請參閱圖4所示,為本發(fā)明地址編碼選擇器利用混合編碼器的功能方塊示意 圖,假設(shè)有K種正確編碼器和L個錯誤編碼器所組成混合編碼器14,則 Addr—optionl可為K+L,而Addr—option2也是K+L,如果Addr—optionl和 Addr_option2沒有相關(guān)性的話,則地址有(K+L)2種選擇。
(3)數(shù)據(jù)解碼器的解碼種類也可如上述圖4一般,分為正確解碼和錯誤 解碼兩種,請參閱圖5所示,為本發(fā)明數(shù)據(jù)解碼選擇器利用混合解碼器的功 能方塊示意圖,與圖4相似,混合解碼器34也包括有若干正確解碼器和若 干錯誤解碼器,正確解碼是指該解碼器確實有解碼的效用,同時也是可被程 序設(shè)計者選擇,以解密數(shù)據(jù);而錯誤解碼是指該解碼器的輸出數(shù)據(jù)永遠無法 解回全部正確的數(shù)據(jù),目的只是為了增加數(shù)據(jù)解碼選擇Data—叩tionl和 Data—option2的數(shù)量。假設(shè)有K種正確解碼器和L個錯誤解碼器,則 Data—optionl可為K+L,而Data—option2也是K+L,如果Data—optionl和 Data—option2沒有相關(guān)性的話,則數(shù)據(jù)有(K+Lf種選擇。
關(guān)于前述地址信號產(chǎn)生器和數(shù)據(jù)編碼器的軟件實施方式如下 為了要在硬件上實現(xiàn)只讀存儲器的保護機制,在軟件上也要做配合。當 程序設(shè)計者寫好對地址編碼和數(shù)據(jù)編碼的軟件,并完成只讀存儲器的地址和 數(shù)據(jù)時,便能利用該軟件來做編碼,但實際放入集成電路中的只讀存儲器的 地址和數(shù)據(jù),也是地址編碼且數(shù)據(jù)也經(jīng)過編碼的密碼。我們舉一個簡單的例 子,假設(shè)現(xiàn)在只讀存儲器的大小為4x4位(bit),地址的范圍從0到3,數(shù)據(jù)從O到15。
請參閱圖6所示,為本發(fā)明只讀存儲器數(shù)據(jù)在未經(jīng)編碼前示意圖,其中 地址利用十進位法做表示,數(shù)據(jù)利用二進位法做表示,只讀存儲器的地址和 數(shù)據(jù)彼此間是獨立的,所以可以先對地址編碼,再對數(shù)據(jù)編碼,也可相反這 個順序。我們先對地址編碼。
請參閱圖7所示,為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由地址編碼的調(diào)整示意圖, 原本的地址順位為{0、 1、 2、 3},編碼調(diào)整后即成為{2、 3、 1、 0},如此便 達到對地址編碼的目的。
請參閱圖8所示,為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由地址編碼的調(diào)整后示意 圖,也就是地址0的數(shù)據(jù)放到地址2,地址1的數(shù)據(jù)放到地址3。
請參閱圖9所示,為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由數(shù)據(jù)編碼的調(diào)整示意圖, 接下來,對數(shù)據(jù)做編碼的操作,數(shù)據(jù)編碼的方式為全部的位反相(即為二進 位中的1的補數(shù))。
所以,請參閱圖10所示,為本發(fā)明只讀存儲器數(shù)據(jù)經(jīng)由數(shù)據(jù)編碼的調(diào) 整后示意圖,其數(shù)據(jù)編碼后的只讀存儲器內(nèi)的地址和數(shù)據(jù)即如附圖所示,再 將此位置與數(shù)據(jù)直接燒錄在集成電路內(nèi)。
而且在控制軟件上,地址和數(shù)據(jù)的解碼可做也可不做,視實際使用的需 求,如為了方便驗證集成電路的功能,可在軟件上增加解碼器(Decoder)的 選項,方便調(diào)試(Debug)的工作。
而且,集成電路里的只讀存儲器密碼是使用地址和數(shù)據(jù)都經(jīng)編碼器 (Encoder)編碼過的,例如當集成電路要取出(Fetch)指令時,第一步 會送出地址信號address[l:O],以便從只讀存儲器中取到address[l:0]所對應(yīng) 的data[3:0]。所以,在我們的架構(gòu)中(假設(shè)現(xiàn)在地址編碼選擇器只提供一個編 碼器),當集成電路送出address[l:O"l時,我們要先對其編碼以便能對應(yīng)到 實際只讀存儲器里的地址,所以編碼地址encoded—addr[l:0] = 3,而先抓出該 對應(yīng)的編碼數(shù)據(jù)為encoded—data[3:0] = 1110b,前述b表示使用二進位制。接 著,數(shù)據(jù)解碼器再作反相(再做一次l的補數(shù))的操作,即為正確還原數(shù)值 的操作,才能抓到正確的數(shù)據(jù)為0001b。
我們使用在地址1中編碼和數(shù)據(jù)編碼做詳細說明 (1)地址編碼選擇器請參閱圖11所示,為本發(fā)明地址編碼選擇器包括有正確編碼器和若干 錯誤編碼器架構(gòu)的功能方塊示意圖,其也包括有正確編碼器和若干錯誤編碼器所組成的混合編碼器15,地址編碼選擇器內(nèi)共有四個編碼器,包括一個正 確編碼器和三個錯誤編碼器。而正確編碼器是使用前述圖8的對應(yīng)方式,圖 12為本發(fā)明錯誤編碼器的地址編碼方式示意圖,其中錯誤編碼器可以只是無 意義的電路,也可拿來當作正確編碼器,如錯誤編碼器3。而錯誤編碼器0、 1、 2也可作為該三者的正確編碼器,如果有地址擺放相同的數(shù)據(jù)時,我們可 以利用這種編碼方式。例如錯誤編碼器0假設(shè)地址0和地址2的數(shù)據(jù)都是相 同,我們就可將他們的地址都編成1。更進一步說,只有集成電路的地址編 碼器跟軟件使用相同的編碼方式時,該編碼器才能稱為正確編碼器,其余不 被軟件支持的編碼器都稱錯誤編碼器。所以,因為錯誤編碼器0、 1、 2不被 軟件支持,所以他們稱為錯誤編碼器。在圖11中,另一個值得注意的地方是,多路復(fù)用器和多路分用器的選 擇信號addr一opl[l:0]和addr—op2[ 1:0],唯有選擇到addr_opl[l:0] = 0且 addr—op2[L0] = 3時,當此二條件同時成立時,此編碼地址才是正確可用的 地址。(2) 只讀存儲器在集成電路內(nèi)的只讀存儲器的地址和數(shù)據(jù)經(jīng)過軟件編碼,即如前述 圖IO所述。(3) 地址編碼選擇器請參閱圖13A所示,為本發(fā)明數(shù)據(jù)解碼選擇器包括有正確解碼器和若干 錯誤解碼器架構(gòu)的功能方塊示意圖,其也包括有正確解碼器和若干錯誤解碼 器所組成的混合編碼器35,假設(shè)數(shù)據(jù)解碼器內(nèi)有四個解碼器,注意解碼器數(shù) 量和地址編碼器并無任何關(guān)聯(lián)性。此四個解碼器內(nèi)有一個是正確解碼器和三 個錯誤解碼器,請再參閱圖13B、圖13C、圖13D所示,表內(nèi)列出解碼器的 輸出decoded—x[3:0](x: 1 to 3)和輸入encoded—data[3:0]的關(guān)系,并列出解碼后 的decoded—x[3:0]。數(shù)據(jù)解碼選擇器和地址編碼選擇器相同的地方都是除非 知道軟件的編碼數(shù)據(jù)方式,否則其余的解碼器都是錯誤解碼器。正確解碼器 能和軟件上的編碼器配合,是為了解回數(shù)據(jù)所設(shè)計。唯有當data—opl[l:0] = 1且data—op2[l:0] = 1才能解出正確的數(shù)據(jù),使集成電路如預(yù)期工作。通過以上的說明,我們可以知道若沒有多路分用器和多路復(fù)用器的正確 信息,將要花許多精力才能在諸多排列組合中找到正確的地址編碼器和數(shù)據(jù) 解碼器。我們雖無法完全防止只讀存儲器的地址和數(shù)據(jù)不被盜取,但仍希望通過編碼和多路復(fù)用器、多路分用器的選擇,造成解出ROM code的困難度。以上的例子是使用編碼后的地址和數(shù)據(jù)都跟原本他們的位數(shù)相同的編 碼器,即未經(jīng)編碼的位數(shù)和經(jīng)過編碼過后的位數(shù)一樣。但編碼的方法并不局 限于這個例子,通過圖l、 4、 5所公開的功能方塊架構(gòu)來實施,并通過和軟 件的配合,使得只讀存儲器的所存儲的地址和數(shù)據(jù)得以受到保護。請參閱圖14所示,為本發(fā)明只讀存儲器的地址和數(shù)據(jù)的編碼密碼文件 的格式示意圖,其中只讀存儲器的地址和數(shù)據(jù)的編碼,將置于轉(zhuǎn)出密碼文件 4的軟件內(nèi),使用者通過該軟件所轉(zhuǎn)出的密碼文件4中將看不到原始的只讀 存儲器的地址和數(shù)據(jù)。密碼文件4主要包含的內(nèi)容有報頭(Header) 41、只 讀存儲器的地址和數(shù)據(jù)(ROM code) 42、屏蔽選項(Mask options) 43三塊 區(qū)域,報頭41注明該軟件型號、地址編碼方式、數(shù)據(jù)編碼方式等等;只讀 存儲器的地址和數(shù)據(jù)42區(qū)擺放已經(jīng)編碼完畢的只讀存儲器的地址和數(shù)據(jù); 屏蔽選項43包含的信息有地址編碼多路分用器addr—opl、地址編碼多路復(fù) 用器addr—op2、數(shù)據(jù)解碼多路分用器data—opl 、數(shù)據(jù)解碼多路復(fù)用器 data—op2。這些屏蔽選項的產(chǎn)生,也是經(jīng)由軟件生成,當軟件選定某種地址 編碼方式后,就自動產(chǎn)生addr—opl和addr—op2,同理可得數(shù)據(jù)解碼選擇信號 data—opl、 data一op2。這是通過硬件設(shè)計人員所提供的對照表,才能得到正確 編解碼的選擇信號addr—opl 、 addr—op2、 data—opl、 data—op2。假設(shè)地址編碼器和數(shù)據(jù)解碼器各有數(shù)個,只讀存儲器的地址先經(jīng)由軟件 的地址編碼程序編碼,軟件方面將自動記錄地址編碼方式于密碼文件4的報 頭41,并同時對應(yīng)出addr—opl、 addr—op2,再對只讀存儲器數(shù)據(jù)編碼,并記 錄數(shù)據(jù)編碼方式于密碼文件4的報頭41,同時對應(yīng)出data—opl、 data一op2, 再將此信息寫在密碼文件4的屏蔽選項43中。所以,報頭41和屏蔽選項43 都會有地址編碼和數(shù)據(jù)編碼的數(shù)據(jù),方便使用者可作解碼的操作。屏蔽選項在集成電路內(nèi)是一個類似開關(guān)的晶體管,所以可以擺在配置與 繞線(Place & Route , P&R)區(qū)的任何位置,而配置與繞線步驟包含了平面規(guī)劃(Floorplanning)、配置(Placement)和繞線(Routing),如果我們在平面規(guī)劃 階段將屏蔽選項的晶體管混散在P&R區(qū)各處,仿冒者雖用集成電路開封技 術(shù)(IC decap)可以測得只讀存儲器的地址和數(shù)據(jù),但要在布局與繞線區(qū)找 到屏蔽選項的位置卻相當困難?,F(xiàn)在,我們以分析仿冒者的行為來說明本發(fā)明所公開技術(shù)是不容易被破、成功取得只讀存儲器的地址和數(shù)據(jù)由于只讀存儲器的地址和數(shù)據(jù)是已 經(jīng)經(jīng)過編碼的,他無法直接知道只讀存儲器的地址和數(shù)據(jù)是做什么用,如果 拿此只讀存儲器的地址和數(shù)據(jù)去產(chǎn)生密碼文件的話,因為產(chǎn)生.cod文件的軟 件會再對地址和數(shù)據(jù)作編碼,所以其所產(chǎn)生的只讀存儲器的地址和數(shù)據(jù)是無 法使用的。成功取得只讀存儲器的地址和數(shù)據(jù),再手工產(chǎn)生密碼文件仿冒者知道 軟件所產(chǎn)生的密碼文件無法使IC正常工作,因此想自己寫密碼文件,并將 編碼的只讀存儲器的地址和數(shù)據(jù)直接貼在只讀存儲器的地址和數(shù)據(jù)區(qū)。此 時,他還需要正確填寫屏蔽選項的addr—opl、 addr—op2、 data—opl、 data_op2, 才能正確復(fù)制被仿者集成電路。當然,他可以去找被仿者集成電路的屏蔽選 項是填什么,但因屏蔽選項散布在P&R區(qū),這要花很大的成本和時間才能 找到。仿冒者可能因此卻步而尋求第三種方法。知道產(chǎn)生.cod文件的軟件會產(chǎn)生屏蔽選項仿冒者要先知道addr_0pl、 addr—op2、 data—opl、 data_op2的所有可能組合,如果地址編碼器有八種, 數(shù)據(jù)編碼器有八種,總共有64種組合,仿冒者可能要產(chǎn)出64次密碼文件, 才能讓集成電路正常工作。綜上所述,本發(fā)明的結(jié)構(gòu)特征和各實施例都已經(jīng)詳細揭示,而可充分顯 示出本發(fā)明在目的和功效上均深富實施的進步性,極具產(chǎn)業(yè)的利用價值,且 為目前市面上前所未見的運用,依專利法的精神所述,本發(fā)明完全符合發(fā)明 專利的要件。但是,以上所述,僅為本發(fā)明的優(yōu)選實施例而已,不能用以限定本發(fā)明 所實施的范圍,即大凡依本發(fā)明權(quán)利要求所作的均等變化與修改,都應(yīng)屬于 本發(fā)明專利涵蓋的范圍。
權(quán)利要求
1. 一種非易失性存儲器的安全保密架構(gòu),其包括地址編碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選定一種編碼電路,讓地址信號產(chǎn)生器送來的地址可以被編成另一個地址,并存儲經(jīng)過編碼的地址至該非易失性存儲器;數(shù)據(jù)解碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選定一種解碼電路,讓非易失性存儲器經(jīng)由數(shù)據(jù)編碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼,而恢復(fù)成正確的指令;以及非易失性存儲器,存儲已經(jīng)由該地址信號產(chǎn)生器編碼的地址和該數(shù)據(jù)編碼器所產(chǎn)生的數(shù)據(jù)。
2. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該非易失 性存儲器種類包括掩模型只讀存儲器、電可擦只讀存儲器、可擦只讀存儲 器、快速存儲器。
3. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該編碼電 路可以有1至N種選擇,且N是大于等于1的整數(shù)。
4. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該解碼電 路可以有1至M種選擇,M是大于等于1的整數(shù)。
5. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該地址信 號產(chǎn)生器為軟件。
6. 如權(quán)利要求5所述的非易失性存儲器的安全保密架構(gòu),其中該地址信 號產(chǎn)生器的密碼文件格式包括有報頭、只讀存儲器的地址和數(shù)據(jù)、屏蔽選項三塊區(qū)域。
7. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編 碼器為軟件。
8. 如權(quán)利要求7所述的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編 碼器的密碼文件格式包括有報頭、只讀存儲器的地址和數(shù)據(jù)、屏蔽選項三 塊區(qū)域。
9. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該地址編 碼選擇器還包括地址編碼多路分用器和地址編碼多路復(fù)用器。
10. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)解碼選擇器還包括數(shù)據(jù)解碼多路分用器和數(shù)據(jù)解碼多路復(fù)用器。
11. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該地址編 碼器還包括若干個正確編碼器和若干個錯誤編碼器。
12. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)解 碼器包括若干個正確解碼器和若干個錯誤解碼器。
13. 如權(quán)利要求1所述的非易失性存儲器的安全保密架構(gòu),其中該數(shù)據(jù)編 碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼為通過指令解碼器來執(zhí)行。
14. 一種非易失性存儲器的安全保密架構(gòu),其包括地址編碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選 定一種編碼電路,讓地址信號產(chǎn)生器送來的地址可以被編成另一個地址,該編碼電路可以有1至N種選擇,且N是大于等于1的整數(shù);數(shù)據(jù)解碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選 定一種解碼電路,讓非易失性存儲器經(jīng)由數(shù)據(jù)編碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼,而恢復(fù)成正確的指令,該解碼電路可以有1至M種選擇,M是 大于等于l的整數(shù);以及非易失性存儲器,存儲已經(jīng)由該地址信號產(chǎn)生器編碼的地址和該數(shù)據(jù)編 碼器所產(chǎn)生的數(shù)據(jù),尤指只讀存儲器。
15. —種非易失性存儲器的安全保密方法,其由地址編碼選擇器、數(shù)據(jù)解 碼選擇器與非易失性存儲器所構(gòu)成,利用編碼對該非易失性存儲器的地址和 數(shù)據(jù)作加密的操作,并配合該地址編碼選擇器和該數(shù)據(jù)解碼選擇器的操作, 令程序竊取者即使擁有非法取得的只讀存儲器的地址和數(shù)據(jù),卻因無法得知 地址編碼和數(shù)據(jù)解碼的選擇為何,而無法使集成電路正常工作,達到防止只 讀存儲器內(nèi)的程序被竊取的目的。
16. 如權(quán)利要求15所述的非易失性存儲器的安全保密方法,其中地址編 碼選擇器的編碼種類可以分為正確編碼和錯誤編碼兩種。
17. 如權(quán)利要求15所述的非易失性存儲器的安全保密方法,其中數(shù)據(jù)解 碼選擇器的解碼種類可以分為正確編碼和錯誤編碼兩種。
全文摘要
本發(fā)明涉及一種非易失性存儲器的安全保密架構(gòu)及方法,其包括地址編碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選定一種編碼電路,讓地址信號產(chǎn)生器送來的地址可以被編成另一個地址,并存儲經(jīng)過編碼的地址至該非易失性存儲器;數(shù)據(jù)解碼選擇器,與非易失性存儲器電性連接,而利用選擇的方式來選定一種解碼電路,讓非易失性存儲器經(jīng)由數(shù)據(jù)編碼器編碼所產(chǎn)生數(shù)據(jù)可被正確的解碼,而恢復(fù)成正確的指令;非易失性存儲器,存儲已經(jīng)由該地址信號產(chǎn)生器編碼的地址和該數(shù)據(jù)編碼器所產(chǎn)生的數(shù)據(jù)。根據(jù)本發(fā)明,可以達到非易失性存儲器的安全保密的目的。
文檔編號G11C16/22GK101231620SQ20071000818
公開日2008年7月30日 申請日期2007年1月26日 優(yōu)先權(quán)日2007年1月26日
發(fā)明者林春安, 董景中 申請人:盛群半導(dǎo)體股份有限公司