專利名稱:集成電路外掛軟件的加密方法
技術(shù)領(lǐng)域:
本發(fā)明系關(guān)于一種集成電路外掛軟件的加密方法,尤指一種以函數(shù)/反函數(shù)還原原理用于CPU/MCU與其外掛控制軟件間的加密/解密措施的方法。
由上述可知,將控制軟件以固件形式直接封存于集成電路中系存在成本高、存貨種類多等種種問題。因而,將CPU/MCU的控制軟件外掛為可以考慮的另一個方向。以電腦內(nèi)部的儲存單元中實際存放的程式指令為例,用于數(shù)據(jù)運算處理的電腦,由于程式指令龐大,所以多儲存于其硬盤上,而以程式控制為主要功能的電腦,大多將程式固化為固件(Firmware),直接燒錄在CPU/MCU內(nèi)置的儲存單元或其周邊具有斷電保護的外掛儲存芯片內(nèi)。然而,任何一種儲存芯片的輸出入方式都是標(biāo)準(zhǔn)的,其讀取數(shù)據(jù)時,系依一定的時序?qū)⒛骋坏刂反a以適當(dāng)?shù)母叩碗娢环謩e加于地址總線之上,使該地址所對應(yīng)的儲存單體(Cell)內(nèi)容依一定的時序出現(xiàn)在數(shù)據(jù)總線上。由于這是一種通用標(biāo)準(zhǔn)過程,所以儲存芯片的內(nèi)容無法依賴現(xiàn)有的通用結(jié)構(gòu)加以保密。
由此可見,盡管外掛方式可以增加軟件開發(fā)的彈性,并減少CPU/MCU供應(yīng)廠的產(chǎn)品各類,但保密問題仍然影響軟件開發(fā)者采用外掛軟件的意愿。因為外掛軟件業(yè)者的權(quán)益通常會受到兩種方式的侵犯。第一種是直接仿冒。由于電子產(chǎn)品多采用通用的CPU/MCU,所以仿冒者只需在公開市場采購到相同的CPU/MCU,然后將想要仿冒的產(chǎn)品中外掛的儲存芯片的內(nèi)容加以拷貝,再燒入自備的通用型的儲存芯片之中,即可自行生產(chǎn)仿冒的產(chǎn)品。第二種是盜取功能碼(通常是匯編形式)。因為目前外掛的軟件都是為通用CPU/MCU編寫,只要將其讀出,經(jīng)過反匯編軟件的解讀,就能輕易的將CPU/MCU用的機器碼(以0和1的方式存在)翻譯成編程人員能了解的匯編碼(依IBM的定義俗稱Assembly)而達到竊取功能秘密的目的。
本發(fā)明的技術(shù)方案是這樣的,一種集成電路外掛軟件的加密解密方法,令具執(zhí)行控制軟件功能之集成電路以外掛方式儲存其控制軟件,其特征在于外掛的控制軟件,先經(jīng)過一個加密函數(shù)的處理,再被燒錄于通用的儲存芯片之上,又在集成電路內(nèi)部設(shè)一以前述函數(shù)的反函數(shù)為基礎(chǔ)的解密單元,專司對自外掛外儲存芯片上讀取的已加密的控制軟件進行解密的功能。
這種加密保護方法的理論基礎(chǔ)如下。
由前述可知,開發(fā)廠商所需保護的是其設(shè)計的軟件。這種軟件在開發(fā)完畢時通常是以16進制的可執(zhí)行文件或類似的形式存在,等待被燒錄于儲存芯片之上。其內(nèi)容依目前的習(xí)慣,不外是以byte或word的型式組成,每個byte含8個bit,每個word則依所用的CPU/MCU不同,可含8,12,13,14,15,16個或甚至更多個bit不等。此外,因為這些byte或word在文件內(nèi)各占有一定的排序位置,這些位置就對應(yīng)于他們被燒錄在儲存芯片中的硬件地址。所以在文件中某一位置An(其數(shù)值=n),就存有Dn的內(nèi)容。
由于D是開發(fā)完成后的最終可執(zhí)行文件內(nèi)容,并且是以通用型式存在,便利抄襲,所以開發(fā)商都想將其改變?yōu)椴煌ㄓ玫男螒B(tài)。但是CPU/MCU的執(zhí)行單元只認(rèn)識這種通用標(biāo)準(zhǔn)的內(nèi)容,不容改變。所以本發(fā)明就是要提出一個主要的技術(shù)手段,能同時滿足兩者的需求。
從數(shù)學(xué)函數(shù)的理論,當(dāng)一個函數(shù)滿足了某些特殊條件時,它就有反函數(shù)存在。假設(shè)F是一個這樣的函數(shù),則它的反函數(shù)G就具有以下的特性。
G=F-1G·F=F-1·F=I在此I是Identity函數(shù),不管作用在任何數(shù)據(jù)上,其輸出永遠和輸入相同。
對一個通用的可執(zhí)行文件D,只要將它做為輸入數(shù)據(jù)(在此隱含了引用其內(nèi)容Dn及所對應(yīng)的地址An),經(jīng)加密函數(shù)的操作,就可得到一個經(jīng)過加密的可執(zhí)行文件D′。這個文件已經(jīng)不是標(biāo)準(zhǔn)型式,而且也不能被標(biāo)準(zhǔn)的CPU/MCU核心執(zhí)行。這個過程的數(shù)學(xué)模式如下D′=F(D)在此當(dāng)開發(fā)商以D′文件燒錄于外掛儲存芯片之上,就不會被輕易的抄襲了。但是這也衍生了一個新問題,就是如何讓CPU/MCU核心來執(zhí)行此一文件。
為了執(zhí)行加密文件D′,在CPU/MCU芯片上于運算處理及執(zhí)行單元之前必須以硬件方式實現(xiàn)反函數(shù)G。在執(zhí)行過程中,當(dāng)D′文件的內(nèi)容D′n(隱含其地址An)被送至G作為輸入數(shù)據(jù)時,函數(shù)G的操作可使它還原成可執(zhí)行文件D,再被送入運算處理及執(zhí)行單元,按照標(biāo)準(zhǔn)程式執(zhí)行。這個過程的數(shù)學(xué)模式如下G(D′)=F-1(F(D))=I(D)=D這整個過程一方面使曝露在外掛儲存芯片上的程式以非標(biāo)準(zhǔn)的方式D′存在,而受到了保護。另一方面對CPU/MCU的執(zhí)行單元而言,它能實時而準(zhǔn)確的讀到執(zhí)行文件D,而完成任務(wù),維護了設(shè)計功能。
又由于不同的廠商可選用不同加密(F)/解密(G)函數(shù)對,所以加密執(zhí)行文件D′是以多變化的非標(biāo)準(zhǔn)型式出現(xiàn),更強化了保密(護)功能。而每一個F/G函數(shù)組,在實踐時也可以依輸入數(shù)據(jù)中的地址An做動態(tài)加密,使得被破解的可能性更大幅度降低。如果CPU/MCU廠家愿意進一步的努力,更可以為開發(fā)商提供在生產(chǎn)線上即時動態(tài)加密的能力,又更進一步的保障了知識產(chǎn)權(quán)。
圖2為本發(fā)明產(chǎn)生加密可執(zhí)行文件之流程圖。
圖3為本發(fā)明以“類”C語言形式表示以異或(XOR)函數(shù)加密的一種后處理軟件內(nèi)容(配合實施例一)。
圖4為本發(fā)明以異或(XOR)構(gòu)成解密函數(shù)“G”(“F”函數(shù)的反函數(shù))的一種硬件架構(gòu)示意圖(配合實施例一)。
圖5為本發(fā)明以“類”C語言形式表示以bit位移函數(shù)加密的又一種后處理軟件內(nèi)容(配合實施例二)。
圖6為本發(fā)明以數(shù)據(jù)總線bit位移構(gòu)成解密函數(shù)“G”(“F”函數(shù)的反函數(shù))的又一種硬件架構(gòu)示意圖(配合實施例二)。
圖7為本發(fā)明以組合方式設(shè)定解密函數(shù)的再一種硬件結(jié)構(gòu)示意圖,此圖僅為可能的組合方式之一。
圖8為圖7所示硬件之一種解密函數(shù)參數(shù)設(shè)定方式示意圖。
圖9為圖7所示硬件之另種解密函數(shù)參數(shù)設(shè)定方式示意圖。
圖10為圖7所示硬件之另種解密函數(shù)參數(shù)設(shè)定方式示意圖。
圖號部分(10)集成電路(12)解碼器(11)運算處理暨程式執(zhí)行單元(13)地址產(chǎn)生器 (14)數(shù)據(jù)總線 (15)地址總線(16)接點切換單元(17)邏輯閘(31)(32)參數(shù)設(shè)定單元(310)(320)控制線在實際應(yīng)用時,固件(Firmware)的開發(fā)者,面對一種CPU/MCU的開發(fā)平臺進行程式化,經(jīng)過種種軟件工程步驟以后完成一個經(jīng)過嚴(yán)密測試的版本,亦即可以燒錄進芯片的程式文件,這個程式文件是以二進位機器碼組成的可執(zhí)行組合語言指令,然而對于儲存芯片而言,前述的組合語言指令也是一種廣義的數(shù)據(jù),當(dāng)其燒錄進芯片后,在儲存芯片中的每一個地址位置,就存有一份相對應(yīng)的指令(或廣義的數(shù)據(jù))。如果這些數(shù)據(jù)是以通用的標(biāo)準(zhǔn)型式存在,任何人依照一定的程序均可由儲存芯片中將其讀出并予復(fù)制,然后和標(biāo)準(zhǔn)的CPU/MCU合用制成仿冒產(chǎn)品,所以對開發(fā)者毫無保障。因而本發(fā)明利用數(shù)學(xué)方法將這些標(biāo)準(zhǔn)指令(數(shù)據(jù))進行加密,然后在執(zhí)行前加以解密,即為本發(fā)明的主要技術(shù)特徵所在。
如圖1所示(本發(fā)明之系統(tǒng)示意圖),其是由一個具有執(zhí)行程式功能的集成電路(10)(如CPU/MCU)以外掛方式連結(jié)一個儲存控制軟件的通用儲存芯片(20);其中,該集成電路(10)至少包括有一運算處理暨程式執(zhí)行單元(11)、一解碼器(12)及一地址產(chǎn)生器(13);該運算處理暨程式執(zhí)行單元(11)除透過解碼器(12)、數(shù)據(jù)總線(14)與儲存芯片(20)連接,又透過地址產(chǎn)生器(13)、地址總線(15)與儲存芯片(20)連接。藉此,該運算處理暨程式執(zhí)行單元(11)可透過地址產(chǎn)生器(13)產(chǎn)生欲讀取數(shù)據(jù)的儲存芯片地址,經(jīng)由地址總線(15)送至儲存芯片(20),儲存芯片(20)將對應(yīng)地址的控制軟件數(shù)據(jù)經(jīng)由數(shù)據(jù)總線送回集成電路(10),經(jīng)解碼器(12)作解碼處理后送至運算處理暨程式執(zhí)行單元(11)執(zhí)行。
由于儲存芯片(20)中的控制軟件燒錄前由加密函數(shù)作加密處理,即使透過一般程序讀出,亦無法了解其實際內(nèi)容,故可達保護軟件創(chuàng)作之目的。又此項經(jīng)加密的控制軟件在送至集成電路(10)的運算處理暨程式執(zhí)行單元(11)執(zhí)行前,先經(jīng)解碼器(12)進行解密,故不影響控制軟件之執(zhí)行。由于解密函數(shù)是直接置入集成電路(10)中,外人亦無從取得或破解。
有關(guān)前述的加密/解密方法,謹(jǐn)進一步詳述如依軟件及儲存儲存芯片的特性,軟件的內(nèi)容可以下列的二進位方式表示Dn=dk-1,ndk-2,n…d1,nd0,nAn=aj-1,naj-2,n…a1,na0n前式中的dk-1,n,aj-1,n等代表一個word之中個別的bit,n代表地址,其范圍自0至2j-1,其中j是整數(shù)。
Dn是位于地址An的軟件內(nèi)容,對一個K-bit寬的系統(tǒng)而言(即每個word含有K bits),可用二進位方式表示,如d(k-1),nd(k-2),n…d1,nd0,nd(k-1),n代表最高bit,d0.n代表最低bitAn是Dn所在的地址,如果地址起點為0,則An=n,其亦可用二進位方式表示,如a(j-1),na(j-2),n…a1,na0,1a(j-1),n表示最高bit,a0,n表示最低bit為進行加密,故選用一能對二進位系統(tǒng)進行操作的函數(shù)“F”,其滿足了具有反函數(shù)“G”的特性,其數(shù)學(xué)表示如下G[F(D)]=F-1[F(D)]=I(D)=D對可執(zhí)行軟件進行加密的過程系如圖2所示,用戶可將已完成測試的標(biāo)準(zhǔn)軟件D,經(jīng)由函數(shù)處理而得到加密函數(shù)如下D′=F(D)這個新的加密可執(zhí)行程式D′,就可以被燒錄于外掛儲存芯片之上,等候應(yīng)用。在此,最合理的方法是將加密函數(shù)嵌在PC機上可執(zhí)行的包裝軟件中。當(dāng)然還有其它可用的方法,不過成本可能較高。由于這個軟件由開發(fā)商自己監(jiān)控,并可自行擬訂內(nèi)部參數(shù),所以加密/解密函數(shù)組被盜用或破解的機會極低。在不知加密/解密函數(shù)的情況下,因為即使從外掛儲存芯片上讀出D′文件的內(nèi)容,還是無法破解原碼的內(nèi)容。
在執(zhí)行時,即如前述圖1所示,集成電路(10)中加入一反函數(shù)的解碼器(12),由外掛儲存芯片(20)讀入之D′加密文件,通過設(shè)有解密G函數(shù)的解碼器(12)時發(fā)生下列的還原作用G(D′)=G[F(D)]=F-1[F(D)]=I(D)=D因而送至運算處理暨程式執(zhí)行單元(11)執(zhí)行的仍是原始可執(zhí)行軟件D。
為便于了解,以下將透過兩個簡化的具體實施例作進一步的說明實施例一(邏輯運算函數(shù)加密)首先,在第一個應(yīng)用實施例中,系以一個8bit的系統(tǒng)為例,選用對地址總線和數(shù)據(jù)總線進行配對的異或(XOR)運算作為加密函數(shù),亦即D′=F(D)=XOR(A,D)在此,D是欲保護的密可執(zhí)行程式,A是可執(zhí)行程式D個別內(nèi)容的對應(yīng)地址集合。F是一個以a0對d0,a1對d1,……a7對d7,bit配對方式進行異或(XOR)邏輯運算函數(shù),其反函數(shù)G則為G(D′)=XOR(A,D′)=D適與F函數(shù)相同假設(shè)一份已經(jīng)開發(fā)完成的可執(zhí)行軟件D,其中某一內(nèi)容的地址碼為16進制中3C,其數(shù)據(jù)為16進制的6C,故未經(jīng)加密的數(shù)據(jù)如以二進位表示系為Dn=01101100其地址則為An=00111100經(jīng)加密函數(shù)異或(XOR)運算后則已經(jīng)加密的數(shù)據(jù)為D′n=01010000這份數(shù)據(jù)被燒錄于儲存芯片(20)之上,地址為An=00111100的單元中。
又集成電路(10)之解碼器(12)中使用異或(XOR)為解密反函數(shù)G對前述數(shù)據(jù)解密,則經(jīng)加密的數(shù)據(jù)為D′n=01010000對應(yīng)地址仍為An=00111100經(jīng)過異或(XOR)運算后,運算處理暨程式執(zhí)行單元(11)所收到的內(nèi)容為Dn=01101100其與原始的可執(zhí)行軟件內(nèi)容相同,故可供正常執(zhí)行。
前述加密/解密方法的具體技術(shù)內(nèi)容請參閱圖3,4所示,其中圖3系以“類”C語言形式表示加密用的后處理軟件。圖4則為解密函數(shù)“G”(“F”函數(shù)的反函數(shù))的硬件架構(gòu)。
在此必須指出,在實際應(yīng)用時,F(xiàn)/G函數(shù)組不局限于異或(XOR)一種,可依用戶需要選擇開發(fā)。即使是異或(XOR)函數(shù)也不局限于a0與d0,a1與d1……a7與d7一種配對方式。其它配對方式可依用戶所選的參數(shù)設(shè)置。
實施例二(移位函數(shù)加密)在此一實施例中,系以一個4bit的系統(tǒng)為例,選擇一種數(shù)據(jù)內(nèi)容bit位移方式作為加密函數(shù)F,其方法如下d0→d1′d1→d2′d2→d3′d3→d0′其解密反函數(shù)G為d0′→d3d1′→d0d2′→d1d3′→d2假設(shè)在一已完成測試的可執(zhí)行軟件D中某一位置內(nèi)容為二進位的0101(依d3d2d1d0順序排列)。即Dn=dn,3dn,2dn,1dn,0=0101在經(jīng)過嵌入F函數(shù)的加密軟件處理后,獲得Dn′=F(Dn)=d′n,3d′n,2d′n,1d′n,0=1010并被燒錄于儲存芯片(20)之上。
當(dāng)此一內(nèi)容被集成電路(10)讀入后,經(jīng)過硬件(12)解密反函數(shù)G的處理而發(fā)生以下變化。
G(D′n)=0101=Dn當(dāng)運算處理及程式執(zhí)行單元(11)收到這份指令,因其和原始內(nèi)容完全一致,故得以順利執(zhí)行。
前述加密/解密方法的具體技術(shù)內(nèi)容請參閱圖5、圖6所示,其中圖5系以“類”C語言形式表示以移位函數(shù)加密的后處理軟件。圖6則為以移位法為解密函數(shù)“G”(“F”函數(shù)的反函數(shù))的硬件結(jié)構(gòu)。
由上述數(shù)學(xué)模式及具體實施例均可證明此一加密方法簡易可行。對CPU/MCU制造廠而言,可向客戶提供一份后處理軟件(PostProcessor)以供產(chǎn)生于外掛控制軟件的儲存芯片中的加密程式,然后在集成電路(10)的運算處理暨程式執(zhí)行單元(11)的前端加入一解密硬件結(jié)構(gòu),如前述嵌入解密反函數(shù)的解碼器(12)。該加密用軟件及解密用硬件必須配套,而它們供選擇用的控制參數(shù)也必須配套。至于控制參數(shù)的輸入與儲存,對加密而言,十分方便。因為加密過程是完全由軟件在PC等類型的硬件上執(zhí)行。所以只要留下參數(shù)輸入的窗口,即可達到目的。但對解密而言,則相對困難,因解密是在CPU/MCU芯片的前端的解碼器(12)進行,所以參數(shù)必須以一有效方法輸入并儲存于芯片上。又因為加/解密必須具有一定的復(fù)雜性以防被人破解,所以更進一步增加困難度。典型的解密硬件控制參數(shù)輸入方法如下(其相應(yīng)的加密軟件結(jié)構(gòu)可由此推斷出)。
如圖7所示,提示一種硬件形式的解密反函數(shù)參數(shù)設(shè)定方式,主要系令數(shù)據(jù)總線(14)及地址總線(15)共同連接至一接點切換單元(Crosspoint)(16),該接點切換單元(Crosspoint)(16)輸出端又連接一邏輯閘(17),邏輯閘(17)輸出端系連接至運算處理暨程式執(zhí)行單元(11)的數(shù)據(jù)總線;其中,該接點切換單元(Crosspoint)(16)與邏輯閘(17)系分別由一參數(shù)設(shè)定單元(31)(32)經(jīng)由控制線(310)(320)所控制。這兩個參數(shù)設(shè)定單元(31)(32)可用來設(shè)定并記存反函數(shù)的控制參數(shù)。目前可用的方法有三種。
第一種方法系如圖8所示,系以暫存器方式作為兩參數(shù)設(shè)定單元(31)(32)。另有寫入控制電路便利用戶自行燒錄所選的參數(shù)于兩參數(shù)設(shè)定單元(31)(32)之中。實施時由廠方提供含有多個加密函數(shù)的后處理軟件,在硬件方面則提供由EEPROM等技術(shù)構(gòu)成的參數(shù)設(shè)定單元(31)(32),可由用戶在最終產(chǎn)品出廠前寫入以選擇不同的解密函數(shù)和加密函數(shù)。藉此,客戶可掌握到最大的加密彈性與保密性,當(dāng)然其生產(chǎn)成本也相對較高。
第二種方法如圖9所示,系先令前述兩參數(shù)設(shè)定單元(31)(32)的個別儲存單體(Cell)分別與接地端GND、電源VCC構(gòu)成接點,俟設(shè)定反函數(shù)時則以激光修整法(Laser trim)在出廠前選擇性的燒掉接地端接點或電源接點,如此即可方便針對不同客戶在解碼器(12)上設(shè)定不同的解密反函數(shù)參數(shù);前述方法的優(yōu)點在成本低,但客戶不能隨時自由選擇加密函數(shù)參數(shù)。
第三種方法如圖10所示,系先令前述兩參數(shù)設(shè)定單元(31)(32)的個別儲存單體(Cell)經(jīng)由熔絲和地端GND及電源VCC連接。如一般可編程邏輯元件(PLD)的結(jié)構(gòu)。這種方法可允許用戶在最終產(chǎn)品出廠前,以寫碼器將熔絲選擇性的燒斷,以達到選擇不同解密函數(shù)參數(shù)的目的。
由上述說明可知,以往有軟件開發(fā)業(yè)者將軟件制成固件(Firmware),根據(jù)CPU/MCU制造廠提供的條件,封存于集成電路中,因其生產(chǎn)成本高,存貨種類復(fù)雜及用戶彈性空間較小等問題,不得不朝向外掛方式考慮。然而將控制軟件等軟件儲存在外掛于CPU/MCU之外的儲存芯片中(ROM,EEPROM,F(xiàn)lash等),雖可改善前列缺點,但儲存芯片中的軟件創(chuàng)作透過一般程序即可輕易讀出并予復(fù)制,對于軟件開發(fā)業(yè)者而言毫無保障,故極少業(yè)者采用。經(jīng)本發(fā)明利用數(shù)學(xué)上的函數(shù)與反函數(shù)還原的操作原理,以函數(shù)對控制軟件進行加密,在CPU/MCU內(nèi)則設(shè)占用空間較小的反函數(shù)硬件予以解密。由于函數(shù)及反函數(shù)可由用戶以自行選定的邏輯運算實現(xiàn),故為一容易達到、可讓業(yè)者放心將控制軟件外掛而可有效降低成本之方法。
權(quán)利要求
1.一種集成電路外掛軟件的加密解密方法,令具執(zhí)行控制軟件功能之集成電路以外掛方式儲存其控制軟件,其特征在于外掛的控制軟件,先經(jīng)過一個加密函數(shù)的處理,再被燒錄于通用的儲存芯片之上,又在集成電路內(nèi)部設(shè)一以前述函數(shù)的反函數(shù)為基礎(chǔ)的解密單元,專司對自外掛外儲存芯片上讀取的已加密的控制軟件進行解密的功能。
2.根據(jù)權(quán)利要求1所述的集成電路外掛軟件的加密解密方法,其特征在于所述的加密函數(shù)為一具有反函數(shù)的邏輯函數(shù);輸入為原控制軟件(隱含其個別內(nèi)容所占地址),輸出為已加密的控制軟件,其解密函數(shù)為前述加密函數(shù)的反函數(shù)。輸入為前述的已加密控制軟件(隱含其個別內(nèi)容所對應(yīng)的地址),輸出為已還原的控制軟件。
3.根據(jù)權(quán)利要求1所述的集成電路外掛軟件的加密解密方法,其特征在于所述的加密函數(shù)為一具有反函數(shù)的bit位移函數(shù)。輸入為原控制軟件(隱含其個別內(nèi)容所占地址),輸出為已加密的控制軟件,其解密函數(shù)為前述加密函數(shù)的反函數(shù)。輸入為前述的已加密控制軟件(隱含其個別內(nèi)容所對應(yīng)的地址),輸出為已還原的控制軟件。
4.根據(jù)權(quán)利要求1或2或3,所述集成電路外掛軟件的加密解密方法,其特征在于所述加密的裝置以通用計算機的軟件實施,將選定的加密函數(shù)轉(zhuǎn)換為通用計算機,如PC機等的可執(zhí)行軟件,這個可執(zhí)行軟件以所需加密的控制軟件數(shù)據(jù)為輸入,并且可能允許用戶自行輸入或選定一些加密參數(shù),經(jīng)過運行之后,其輸出即為加密控制軟件,可以燒錄于外掛儲存芯片之上。
5.根據(jù)權(quán)利要求1或2或3,所述集成電路外掛軟件的加密解密方法,其特征在于所述加密的裝置以專用的軟、硬件實施,為將選定的加密函數(shù)轉(zhuǎn)換為專用的軟、硬件結(jié)構(gòu),這個結(jié)構(gòu)以所需加密的控制軟件數(shù)據(jù)為輸入,并且具有按鍵、顯示屏,或計算機通訊界面,或兩者兼有做為人機界面,經(jīng)過運行后,其輸出即為加密控制軟件,可以燒錄于外掛儲存芯片之上。
6.根據(jù)權(quán)利要求1或2或3,所述集成電路外掛軟件的加密解密方法。其特征在于所述解密裝置以結(jié)合于集成電路上的專用硬件單元實施,一集成電路,其至少由一運算處理暨程式執(zhí)行單元、一解碼器及一地址產(chǎn)生器所組成;一外部儲存芯片,其上儲存有控制軟件,其中解碼器是以專用電路構(gòu)成,其可能的組成可包含有接收切換單元(Crosspoint),邏輯閘電路或其它的數(shù)學(xué)函數(shù)電路等;其執(zhí)行時的參數(shù)可在生產(chǎn)時決定,也可以由控制單元依用戶編列的參數(shù)在執(zhí)行時決定;但不論如何組合,它的總體功能必須是所對應(yīng)的加密函數(shù)的反函數(shù),該運算處理暨程式執(zhí)行單元系透過解碼器,數(shù)據(jù)總線與儲存芯片連接,又經(jīng)地址產(chǎn)生器,地址總線與儲存芯片連接。
7.根據(jù)權(quán)利要求6所述集成電路外掛軟件的加密解密方法,其特征在于所述解密裝置其組成可由一可執(zhí)行微碼(Micro code)的單元來取代專用硬件單元;所有可能非專用硬件執(zhí)行的功能,如接收切換單元(Crosspoint),邏輯閘運算,或其它數(shù)學(xué)函數(shù)的運算,或它們的組合功能,都可由執(zhí)行微碼(Micro code)來代替,這個單元也可以允許用戶以設(shè)定參數(shù)的方式來影響微碼的執(zhí)行。
8.根據(jù)權(quán)利要求6或7所述集成電路外掛軟件的加密解密方法,其特征在于所述解密裝置的組成可由部份專用硬件,部份微碼(Micro code)執(zhí)行單元聯(lián)合構(gòu)成,并且也可能允許用戶以設(shè)定參數(shù)方式來影響執(zhí)行的方式。
9.根據(jù)權(quán)利要求6或7或8所述集成電路外掛軟件的加密解密方法,其特征在于所述解密裝置如允許用戶以參數(shù)方式影響其執(zhí)行,這些參數(shù)系利用軟件方式寫入不受斷電影響的寄存器之中,得以長期保存,而這些不受斷電影響的寄存器(non-volatile)嵌入于集成電路內(nèi)部。
10.根據(jù)權(quán)利要求9所述集成電路外掛軟件的加密解密方法,其特征在于所述不受斷電影響(non-volatile)寄存器的每一個bit在芯片上都各由一個上拉至電源VCC的電阻元件及一個下拉至接地端GND的電阻元件所取代,選定參數(shù)的方法是由CPU/MCU廠商在封裝前,可以激光修整法(Laser Trim)將每一個bit的其中一個連接燒斷,使其成為固定的“0”或者“1”。對不同的客戶可以用不同的組合來區(qū)分。
11.根據(jù)權(quán)利要求10所述集成電路外掛軟件的加密解密方法,其特征在于所述中上下拉電阻元件的連接線上增加熔絲單元結(jié)構(gòu),并在芯片上增加選擇性燒斷熔絲的編程控制電路。這樣安排可以讓軟件開發(fā)商在燒錄完加密軟件后,再利用寫碼器依設(shè)計、燒斷CPU/MCU上的選定的熔絲,而達到設(shè)定應(yīng)參數(shù)的目的。
12.根據(jù)權(quán)利要求1或2或3或4或5或6或7或8或9或10或11所述集成電路外掛軟件的加密解密方法。其中加/解密函數(shù)/反函數(shù)的最終選擇是由設(shè)定后處理軟件或硬件的參數(shù),和設(shè)定CPU/MCU上的解碼器參數(shù)而決定,這種參數(shù)的選擇必須能夠保證加密過程與解密過程之間函數(shù)與反函數(shù)的不可分割關(guān)系,這種保證可由一預(yù)設(shè)的表格或依數(shù)學(xué)公式發(fā)展的程式加以實現(xiàn)。
全文摘要
本發(fā)明系關(guān)于一種集成電路外掛的加密方法,主要系令中央處理單元(CPU)或微控制器(MCU)等集成電路的控制軟件以外掛方式構(gòu)成,該外掛的控制軟件系以一函數(shù)進行加密,并在集成電路中內(nèi)建一對應(yīng)的反函數(shù)進行解密。藉此,集成電路可因控制軟件系為外掛,達成簡化存貨種類、降低生產(chǎn)成本之目的外,且外掛的控制軟件亦因前述加密/解密措施可獲得周延的保護。
文檔編號G06F11/36GK1405678SQ0213499
公開日2003年3月26日 申請日期2002年10月22日 優(yōu)先權(quán)日2002年10月22日
發(fā)明者吳坦 申請人:陳少鵬