專利名稱:半導體裝置和電子裝置的制作方法
技術領域:
本發(fā)明涉及包含可編程電路的半導體裝置和具有該半導體裝置的電子裝置。
背景技術:
近年來,用戶能夠在現(xiàn)場編程期望的電路的可編程電路引起人們的注目。
例如,提出了一種通過將門陣列的一部分設為FPGA(Field ProgrammableGate Array,現(xiàn)場可編程門陣列),有效利用了掩膜GA(Gatc Array,門陣列)的高速性高集成性,并能夠用戶改變處理的結構(參照專利文獻1日本特開平6-275718號公報(
公開日1994年9月30日))。
作為使用這樣的可編程電路的一例,提出了一種在PLD(ProgrammableLogic Device,可編程邏輯設備)中具有譯碼部件和密鑰保持部件,通過僅按照用預先設定的密鑰加密后的程序進行工作,來防止程序的非法復制的結構(參照專利文獻2日本特開平6-187246號公報(
公開日1994年7月8日))。
此外,也提出了一種用于阻止從FPGA元件復制FPGA程序的結構(參照專利文獻3日本特開2003-84853號公報(
公開日2003年3月19日))。
但是,在現(xiàn)有結構的半導體裝置中,有不能可靠地隱蔽寫入到可編程電路中的內(nèi)部算法的問題。
例如,在專利文獻1的結構中,有通過讀存儲了程序的ROM來解析算法和邏輯的危險。此外,在專利文獻2的結構中,雖然ROM的程序已被加密,但有通過解析PLD自身的工作來推測算法和邏輯的危險。
發(fā)明內(nèi)容
本發(fā)明為了解決上述課題,其目的在于提供一種能夠?qū)㈦娐返奶幚砗谙浠?,隱蔽內(nèi)部算法使得難以解析的半導體裝置和電子裝置。
本發(fā)明涉及的半導體裝置為了解決上述課題,包含可編程電路和固定邏輯電路,具有向上述可編程電路和上述固定邏輯電路輸入輸出數(shù)據(jù)的輸入輸出部,上述輸入輸出部對半導體裝置本體的外部隱蔽對于上述可編程電路的數(shù)據(jù)輸入輸出。
可編程電路是能夠利用寫入進行編程的電路。作為可編程電路,使用例如易失性的可編程電路??删幊屉娐芬部梢允欠且资?。固定邏輯電路是不能重寫的電路。固定邏輯電路是非易失性的。
在上述結構中,輸入輸出部對半導體裝置本體的外部隱蔽對于上述可編程電路的數(shù)據(jù)輸入輸出。
例如,輸入輸出部使從可編程電路的輸出延遲定時后再輸出。此外,例如,輸入輸出部使取得輸入到可編程電路中的程序數(shù)據(jù)的工作延遲通常期待的定時之后再進行。
這樣,即使在半導體裝置的外部進行解析,也隱蔽了對于可編程電路的數(shù)據(jù)輸入輸出,推斷可編程電路中的處理就困難。從而,就難以對在可編程電路中處理的算法進行非法的解析。
此外,能夠隱蔽來自半導體裝置的可編程電路的輸出,防止對于來自可編程電路的輸出的非法冒充(なりすまし)。這樣,就能夠防止半導體電路的非法利用。
此外,也可以利用FPGA(Field Programmable Gate Array)來實現(xiàn)上述可編程的電路。根據(jù)該結構,能夠容易地實現(xiàn)。
本發(fā)明的其他目的、特征和優(yōu)點可以從以下示出的記載充分地了解。此外,本發(fā)明的利益從參照附圖的下面的說明中就清楚了。
圖1是具有本發(fā)明涉及的半導體裝置的一例的圖像形成裝置的概略方框圖。
圖2是用于說明制造上述半導體裝置的過程的方框圖。
圖3是示出制造上述半導體裝置的過程的流程圖。
圖4(a)是示出上述半導體裝置的一例的一部分的方框圖,圖4(b)是示出上述半導體裝置的工作的流程圖。
圖5(a)是示出上述半導體裝置的其他的一例的一部分的方框圖,圖5(b)是示出上述半導體裝置的工作的流程圖。
圖6(a)是示出上述半導體裝置的另外的一例的一部分的方框圖,圖6(b)是示出上述半導體裝置的工作的流程圖。
圖7是具有本發(fā)明涉及的半導體裝置的其他的一例的圖像形成裝置的概略方框圖。
圖8是示出上述半導體裝置的工作的流程圖。
圖9是示出上述半導體裝置的工作的流程圖。
圖10是具有本發(fā)明涉及的半導體裝置的另外的一例的圖像形成裝置的概略方框圖。
圖11是示出現(xiàn)有的半導體裝置的一部分的概略方框圖。
具體實施例方式
基于圖1至圖10,關于本發(fā)明的一個實施方式如下進行說明。
本實施方式的半導體裝置如圖1所示,在圖像形成裝置(電子裝置)1中具有ASIC(Application Specific Integrated Circuit,專用集成電路)8。
圖像形成裝置1在圖紙上形成圖像。圖像形成裝置1也能夠通過無圖示的輸入輸出接口,與裝置外部進行信息傳遞。
圖像形成裝置1具有控制部2、操作部3、存儲部4、圖像讀取部5、圖像處理部(半導體裝置)6和圖像形成部7。
控制部2控制圖像形成裝置1的工作。本實施方式的控制部2利用硬件來實現(xiàn),但不限于此。也可以通過圖像形成裝置1的CPU(Central ProcessingUnit,中央處理器)讀入并執(zhí)行存儲在存儲部4中的程序來實現(xiàn)控制部2。
操作部3檢測用戶的操作指示,向控制部2輸出。操作部3包括用于顯示工作狀況的無圖示的顯示部。
存儲部4是用于存儲數(shù)據(jù)的存儲器。也可以在該存儲部4中存儲用于使CPU作為控制部2的功能的程序。
圖像讀取部5用于讀取形成在圖紙上的圖像。按照由操作部3檢測到的用戶的指示,從控制部2一輸出開始信號,圖像讀取部5就開始讀取載置在無圖示的臺子上的原稿的圖像的工作。圖像讀取部5將讀取到的圖像數(shù)據(jù)向圖像處理部6輸出。
圖像處理部6對輸入的圖像數(shù)據(jù)施行規(guī)定的圖像處理。圖像處理部6一從圖像讀取部5輸入圖像數(shù)據(jù),就施行圖像處理,通過控制部2,將圖像數(shù)據(jù)向圖像形成部7輸出。本實施方式的圖像處理部6是一體地封裝了ASIC 8和非易失性存儲器(存儲裝置)9的半導體裝置。關于圖像處理部6以后敘述。
圖像形成部7基于圖像數(shù)據(jù)在圖紙上形成圖像。圖像形成部7通過控制部2一輸入來自圖像處理部6的圖像數(shù)據(jù),就基于該圖像數(shù)據(jù),在圖紙上形成圖像。
上述結構的圖像形成裝置1為了防止復制如紙幣這樣的規(guī)定的原稿(以下稱作特定原稿),具有識別特定原稿后禁止其印刷的特定原稿提取功能。以下關于特定原稿提取功能進行說明。
在圖像形成裝置1中,使用由圖像讀取部5讀取的原稿的圖像數(shù)據(jù),由圖像處理部6判別原稿是否是特定原稿。圖像處理部6對如上所述輸入的圖像數(shù)據(jù)進行判別,向控制部2輸出示出是否是特定原稿的檢測信號。關于圖像處理部6的詳細說明如下。
圖像處理部6包括ASIC(半導體裝置)8和非易失性存儲器9。
ASIC 8是用于實現(xiàn)圖像形成裝置1的圖像處理功能的半導體裝置。ASIC8為了將特定原稿提取功能的詳細內(nèi)容設為絕密,作為固定配置的固定邏輯電路,不是實現(xiàn)電路全體,而是通過向至少可重寫一部分且可編程的電路讀入程序(程序數(shù)據(jù))來實現(xiàn)。這樣就防止了從布局推斷邏輯。
非易失性存儲器9是用于使ASIC 8的絕密電路(可編程電路)12a工作的加密后的程序的存儲區(qū)域。本實施方式的非易失性存儲器9由ROM來實現(xiàn)。非易失性存儲器9最初與ASIC 8另外設置,之后與ASIC 8共同封裝成為一個半導體裝置,就成為圖像處理部6。
ASIC 8具有輸入輸出電路(輸入輸出部)10、圖像處理電路11、絕密電路12a、易失性存儲器12b、譯碼部13和散列函數(shù)電路(單向性散列函數(shù)部)14。
輸入輸出電路10是ASIC 8的輸入輸出接口。輸入輸出電路10一旦接收從控制部2輸入到ASIC 8中的給圖像處理電路11、絕密電路12a、譯碼電路13a等的數(shù)據(jù),就向各個電路輸出。此外,一旦接收來自ASIC 8內(nèi)部的各電路的數(shù)據(jù),就向控制部2輸出。輸入輸出電路10具有用于隱蔽對絕密電路12a的輸入輸出的輸入輸出部的功能。關于這點以后敘述。
圖像處理電路11對輸入的圖像數(shù)據(jù)施行規(guī)定的圖像處理。作為一例,關于圖像形成裝置1利用操作部3檢測了用戶的放大縮小指示的情況進行說明,圖像處理電路11對從圖像讀取部5通過輸入輸出電路10輸入的圖像數(shù)據(jù)施行放大縮小處理,通過輸入輸出電路10向控制部2輸出得到的數(shù)據(jù)。
絕密電路12a和易失性存儲器12b是易失性的可編程的電路。在該絕密電路12a中進行對外部隱匿的絕密處理。
本實施方式的絕密電路12a進行特定原稿的判別。絕密電路12a從輸入的圖像數(shù)據(jù)判別是否是特定原稿,將表示判別結果的檢測信號通過輸入輸出電路10向圖像處理部6的外部輸出。絕密電路12a基于由圖像讀取部5讀取后通過輸入輸出電路10輸入的圖像數(shù)據(jù)和通過輸入輸出電路10和圖像處理電路11輸入的圖像數(shù)據(jù)進行判別。本實施方式的絕密電路12a利用易失性的可編程的FPGA(Field Programmable Gate Array)來實現(xiàn)。利用FPGA的絕密電路12a按照存儲在易失性存儲器12b中的程序,改變AND門、OR門等的連接方式,實現(xiàn)期望的功能。以后關于絕密電路12a詳細敘述。
易失性存儲器12b是用于實現(xiàn)絕密電路12a的功能的程序的存儲區(qū)域。易失性存儲器12b利用RAM(Random Access Memory,隨機存取存儲器)來實現(xiàn)。本實施方式的易失性存儲器12b利用易失性的可重寫的SRAM(StaticRandom Access Memory,靜態(tài)隨機存取存儲器)來實現(xiàn)。這樣地,由于將程序存儲在易失性存儲器12b中,因此,就不能利用逆向工程非法地取得程序的內(nèi)容。
譯碼部13包括譯碼電路13a和OTP(One Time Programmable ROM,一次編程只讀存儲器)(可編程ROM、一次編程ROM、密鑰數(shù)據(jù)寫入?yún)^(qū)域)13b。譯碼部13的譯碼電路13a和OTP 13b成為一體,進行存儲在非易失性存儲器9中的程序的譯碼。
其中,譯碼電路13a設置在向ASIC8中的FPGA區(qū)域(絕密電路12a)的下載部分中。
OTP 13b將譯碼部13的一部分設為可從后面寫入不能讀出的PROM(Programmable Read Only Memory,可編程只讀存儲器)。作為這樣的一次編程PROM的一例,例舉有燒斷保險絲的形式的PROM。圖像形成裝置1的制造者使用OTPROM寫入電路20向OTP 13b中寫入電路數(shù)據(jù)(密鑰數(shù)據(jù)),這樣就成為期望的譯碼部13。
散列函數(shù)電路14具有從已供給到ASIC 8中的程序數(shù)據(jù)制成檢驗用數(shù)據(jù)的檢驗部的功能。更詳細地說,散列函數(shù)電路14是單向性散列函數(shù)電路,生成校驗和。所述校驗和是例如錯誤校正的CRC等。再有,散列函數(shù)電路14生成并輸出的僅是校驗和,不是輸出程序本身的翻譯,因此,就不能利用來自散列函數(shù)14的輸出來推測內(nèi)部算法(程序)。在確認從輸入數(shù)據(jù)生成的校驗和的值與預先計算好的校驗和的值一致后,就能夠確認原來的輸入數(shù)據(jù)沒被改變。
在本實施方式的ASIC 8中,輸入輸出電路10、圖像處理電路11、譯碼電路13a和散列函數(shù)電路14是非易失性的固定邏輯電路。在這些固定邏輯電路中進行不特殊保密的處理。再有,在本實施方式中,各電路的布局成為混合配置的狀態(tài),使得對于ASIC 8的固定邏輯電路中哪個部分相當于哪個電路的判別很困難。
在以上說明的圖像處理部6中,關于向控制部2輸出使用輸入的圖像數(shù)據(jù)示出是否是特定原稿的檢測信號的工作進行如下說明。
首先,由操作部3一檢測電源接通操作,就按照來自控制部2的指示,輸入輸出電路10對譯碼部13進行非易失性存儲器9的數(shù)據(jù)調(diào)用指示。譯碼部13讀出非易失性存儲器9的數(shù)據(jù)并譯碼,存儲在易失性存儲器12b中。
在此,譯碼部13向散列函數(shù)電路14輸出譯碼后的程序。散列函數(shù)電路14從輸入的程序生成校驗和。將來自散列函數(shù)電路14的輸出向控制部2輸出,由控制部2比較生成的值與預先計算并存儲在存儲部4中的值。在比較結果一致的情況下,將存儲在非易失性存儲器9中的程序作為正規(guī)的程序,繼續(xù)進行處理。另一方面,在比較結果不一致的情況下,將非易失性存儲器9、譯碼電路13a、OTP 13b的至少一個作為不正規(guī),中止處理。
之后,由使用者進行原稿的復印。在圖像形成裝置1中,由圖像讀取部5讀取原稿圖像,按照由操作部3檢測到的指示,由圖像處理部6進行圖像處理,由圖像形成部7在圖紙上形成復印圖像。
這時,首先從輸入輸出電路10向ASIC 8輸入由圖像讀取部5讀取的圖像數(shù)據(jù)。在ASIC 8中,分別從輸入輸出電路10向圖像處理電路11和絕密電路12a輸出圖像數(shù)據(jù)。在圖像處理電路11中,按照控制部2基于由操作部3讀取的指示所發(fā)出的控制命令,進行放大縮小倒轉(zhuǎn)等的圖像處理。將圖像處理后的數(shù)據(jù)向控制部2輸出。控制部2就成為等待來自圖像處理部6的檢測信號的狀態(tài)。
另一方面,在絕密電路12a中,通過圖像處理,判別圖像數(shù)據(jù)是否包含特定原稿的圖像。例如,利用圖形匹配來判別是否包含紙幣中特有的特征圖形。絕密電路12a將判別結果作為檢測信號,輸出到輸入輸出電路10中。
輸入輸出電路10錯開來自絕密電路12a的檢測信號的輸出定時,向ASIC8的外部輸出。例如,輸入輸出電路10等待經(jīng)過了隨機的時間之后,向控制部2輸出所輸入的檢測信號。例如,在比圖像處理電路11中的平均處理延遲時間長的范圍內(nèi)使輸出的定時隨機地延遲?;蛘撸部梢栽诶缙骄幚硌舆t時間的2倍以上的范圍內(nèi)隨機地延遲。這樣做,就能夠隱藏使用于制成輸出的輸入是哪個數(shù)據(jù)?;蛘?,輸入輸出電路10也可以使檢測信號延遲到規(guī)定的定時后再輸出。
控制部2一接收不含特定圖像的否定的檢測信號,就向圖像形成部7輸出圖像處理后的圖像數(shù)據(jù),讓圖像形成部7執(zhí)行印刷。另一方面,控制部2一接收包含著特定圖像的肯定的檢測信號,就在操作部3的無圖示的顯示面板上顯示該意思,中止處理。
這樣地,在控制部2中,與來自圖像處理部6的檢測信號的輸入定時無關,僅按照檢測信號的值來判別圖像數(shù)據(jù)是否包含特定原稿。因此,即使輸入輸出電路10錯開了檢測信號的輸出定時,圖像形成裝置1也將不錯開定時的情況作為結果,進行相同的工作。從而,在圖像處理部6與控制部2之間就正常地進行數(shù)據(jù)傳送,圖像形成裝置1正常地工作。
如上所述地,輸入輸出電路10能夠?qū)τ贏SIC 8的外部隱蔽輸入輸出的數(shù)據(jù)是對于絕密電路12a的,還是對于圖像處理電路11等的其他電路的。即,能夠關于輸入到控制部2中的許多信號中的關于哪個信號是否是來自ASIC 8的檢測信號這點難以進行非法的檢測。因此,能夠防止例如從外部向控制部2發(fā)送非法的檢測信號,防止利用冒充(假裝成是正當?shù)臋z測信號似的,即,裝成正當?shù)臋z測信號)的非法利用。此外,由于對于絕密電路12a的輸入輸出的解析很困難,因此,能夠難以進行對于絕密電路12a中的內(nèi)部邏輯的非法解析。
此外,將用于存儲在易失性存儲器12b中的程序存儲在與ASIC 8另外設置的存儲裝置中。例如,將加密后的程序存儲在與ASIC 8另外設置的由ROM(Read Only Memory)等構成的非易失性存儲器9中。這樣,能夠?qū)SIC 8的生產(chǎn)者保密程序,防止泄漏用于實現(xiàn)功能的信息。此外,若這樣地使ASIC8與非易失性存儲器9另外設置,即使在例如將ASIC 8的制作依賴于某個制造業(yè)者(ASIC賣方)B,此外,將非易失性存儲器9的制作依賴于某個制造者(ROM制造者)C的情況中,也能夠防止對于ASIC8中的處理的算法的非法解讀。
此外,用于解讀加密后的程序的譯碼電路的結構需要從后面寫入密鑰數(shù)據(jù)。因此,僅看譯碼電路不能推測譯碼的算法,因而能夠保密。
此外,將密鑰設為OTP。即,設為僅能寫入一次的形式的密鑰。如果使該密鑰由例如圖像形成裝置1的制造者(制造方)來寫入,就能夠防止譯碼電路的非法利用。
再有,這樣地,為了對外部隱蔽內(nèi)部的處理,不限于使用延遲定時的輸入輸出電路10的結構。例如,作為輸入輸出部,若使其介于進行某種處理的電路,就很難推斷內(nèi)部算法,能夠黑箱化。即,根據(jù)象檢測信號這樣的輸入了如圖像數(shù)據(jù)這樣的數(shù)據(jù)而取得的輸出,就很難推斷內(nèi)部秘密電路中的詳細處理。該情況下,若內(nèi)部的處理的級數(shù)深,就更難從輸出來推斷內(nèi)部算法。另一方面,現(xiàn)有技術不設置這樣的輸入輸出部,有非法地計測控制部與內(nèi)部的絕密電路之間來推斷內(nèi)部算法的危險。
在此,例如輸入輸出電路10也可以是加密檢測信號(塊加密)的結構。這樣地,若加密檢測信號后向控制部2輸出,就能夠隱蔽絕密電路12a中的處理。但是,該情況下,控制部2的一側需要有破譯密碼的功能。此外,例如輸入輸出電路10也可以是在檢測信號中混入偽數(shù)據(jù)后輸出的結構。
下面,基于圖2、圖3,關于上述的圖像處理部6的制造工序進行說明。
如圖2所示,設計制造者A委托ASIC賣方B制造ASIC 8(T1出圖一般電路)。這時,將ASIC 8中的絕密電路12a設計為可編程的FPGA區(qū)域,用該設計進行委托。此外,在用于絕密電路12a的譯碼電路13a中設置了從后面寫入的OTP 13b。
ASIC賣方B制造ASIC 8后交納給設計制造者A(T2交納ASIC(FPGA+OTP))。
另一方面,設計制造者A委托ROM制造者C制造存儲了加密了ASIC 8的FPGA區(qū)域的程序后的內(nèi)容的ROM(非易失性存儲器9)(T3出圖加密后的FPGA程序)。ROM制造者C制造加密后的程序作為ROM,交納給設計制造者A(T4交納ROM)。
此外,參照圖3進行說明,設計制造者A為了在S1中使用圖像處理部6,進行了ASIC 8和非易失性存儲器9的電路設計。設計制造者A將設計后的ASIC 8的電路圖提供給ASIC賣方B(T1),將設計后的非易失性存儲器9的電路圖提供給ROM制造者C(T3)。
ASIC賣方B基于領到的電路圖設計ASIC 8(S2),交納給設計制造者A(T2)。此外,ROM制造者C基于領到的電路圖,制作ROM(非易失性存儲器9)(S4),交納給設計制造者A(T4)。
在設計制造者A中,向從ASIC賣方B領到的ASIC 8的OTP 13b中寫入密鑰數(shù)據(jù)(S3),然后將該ASIC 8和ROM 9封裝成一個裝置,就成為圖像處理部6的產(chǎn)品(S5)。
這樣地,由于不向ASIC賣方B出圖絕密電路12a的內(nèi)容物(用于程序的布局),因此確保秘密。此外,作為在譯碼電路13a中設置了OTP 13b的結構,委托給ASIC賣方B進行生產(chǎn),因此,就不被ASIC賣方B知道譯碼電路13a的內(nèi)容物。
此外,寫入到ROM(非易失性存儲器9)中的用于絕密電路12a(FPGA區(qū)域)的程序,在加密后委托給ROM制造者C進行生產(chǎn),因此,不被ROM制造者C知道程序,保證了安全。此外,能夠難以判別哪個部分的數(shù)據(jù)是FPGA區(qū)域電路數(shù)據(jù)。
此外,由于由設計制造者A進行OTP 13b的寫入,因此,關于譯碼電路13a和OTP 13b成為一體的譯碼部13的詳細結構,不被ASIC賣方B和ROM制造者C不知道。再有,如果不是這樣地利用從后面寫入的OTP 13b來完成譯碼部13的話,就向ASIC賣方B出圖譯碼部13的全部,因此,就有被ASIC賣方B知道譯碼部13中的算法的危險。
再有,作為半導體裝置的ASIC 8,不限于上述結構。關于在ASIC 8中設置了譯碼電路13a作為固定邏輯電路的結構進行了說明,但不限于此。例如,譯碼電路13a也可以設置成能寫入的結構。即,例如不僅OTP 13b,也可以設置譯碼電路13a作為FPGA。這樣地,不僅作為密鑰的OTP 13b,關于譯碼電路13a也是,若在制造者側進行寫入,就不會泄漏譯碼部13的結構給ASIC 8的委托制造者。再有,在設譯碼電路13a可寫入的情況下,不使用EEPROM這樣的可重寫的裝置。
此外,ASIC 8和非易失性存儲器9也可以是如下的結構。
首先,基于圖4(a)、圖4(b),關于使用ROM 9a作為圖1中的非易失性存儲器9的一例,難以解析絕密電路12a的結構的例子進行說明。
本變形例將存儲在ROM 9a中的程序地址重排。如圖4(a)所示,ROM9a的地址hXX_XX到hYY_YY是存儲了用于絕密電路12a的FPGA程序的FPGA程序區(qū)域。
將存儲在ROM 9a中的程序讀入到ASIC 8中時的工作的說明如下。
首先,如圖4(b)的S6所示,按照來自作為控制部2的功能的CPU的下載程序命令,輸入輸出電路10取得ROM 9a的地址hXX_XX到hYY_YY送給譯碼部13。
在S7中,譯碼電路13a和OTP 13b作為譯碼部13,按照規(guī)定的順序譯碼下載來的程序。在此,按照存儲在OTP 13b中的函數(shù)來重排地址,作為結果,重排數(shù)據(jù)。作為函數(shù),也可以使用在ROM 9a中使用的函數(shù)的反函數(shù)。這樣,程序就被譯碼。之后,將譯碼后的程序下載到作為圖1中示出的易失性存儲器12b的一例的RAM中。
在S8中,從易失性存儲器12b向是FPGA的絕密電路12a下載程序。這樣,就在絕密電路12a中安裝功能,按照FPGA程序進行工作。
再有,作為地址重排函數(shù)的一例,考慮例如調(diào)換地址的最上位和最下位。按照該函數(shù),預先在ROM 9a中存儲調(diào)換了地址順序的程序數(shù)據(jù)。
在以上說明的一例中,由于存儲在非易失性存儲器9中的程序不是原來的程序本身,成為重排后的程序,因此,能夠防止通過讀取程序來特定絕密電路12a的功能。此外,由于由包括從后面寫入的OTP 13b的譯碼部13來進行程序的譯碼,因此,也能夠防止解析譯碼的算法。
下面,基于圖5(a)、圖5(b),關于使用ROM 9b作為圖1中的非易失性存儲器9的一例,難以解析絕密電路12a的結構的例子進行說明。本變形例在比下載到FPGA中的總數(shù)據(jù)量大的ROM 9b中,將一部分作為有效數(shù)據(jù)區(qū)域,將其他部分設為偽數(shù)據(jù)區(qū)域。在從ASIC 8中的輸入輸出電路10輸入的數(shù)據(jù)中,譯碼部13選擇原有電路中設定的有效數(shù)據(jù)區(qū)域進行下載。
如圖5(a)所示,將用于絕密電路12a的FPGA程序存儲在ROM 9b的地址hXX_XX到hYY_YY中。此外,將偽數(shù)據(jù)存儲在ROM 9b的地址hPP_PP到hXX_XX和從hYY_YY到hQQ_QQ中(偽數(shù)據(jù)區(qū)域)。
將存儲在ROM 9b中的程序讀入到ASIC 8中時的工作的說明如下。
首先,從作為控制部2的功能的CPU,對輸入輸出電路10發(fā)出程序的下載命令。輸入輸出電路10如圖5(b)的S9所示,按照該命令,向譯碼部13下載ROM 9b的地址hPP_PP到hQQ_QQ。輸入輸出部10進行包含了偽數(shù)據(jù)區(qū)域的有效數(shù)據(jù)的下載命令。
在S10中,譯碼電路13a和OTP 13b作為譯碼部13,按照規(guī)定的順序譯碼下載來的程序。在此,按照存儲在OTP 13b中的內(nèi)容,提取規(guī)定的地址范圍(從地址hXX_XX到hYY_YY)的數(shù)據(jù)。這樣,程序就被譯碼。之后,將譯碼后的程序下載到圖1中示出的作為易失性存儲器12b的一例的RAM中,另外,從易失性存儲器12b向是FPGA的絕密電路12a下載。這樣,就在絕密電路12a中安裝功能,按照FPGA程序進行工作。
這樣地,通過在非易失性存儲器9中存儲的程序中包含著偽數(shù)據(jù),就難以通過非法地讀取程序來特定絕密電路12a的功能。此外,由于由包含從后面寫入的OTP 13b的譯碼部13來進行程序的譯碼,因此,能夠防止解析譯碼的算法。
下面,基于圖6(a)、圖6(b),關于使用ROM 9c作為圖1中的非易失性存儲器9的一例,難以解析絕密電路12a的結構的例子進行說明。
本變形例壓縮編碼了程序后存儲在ROM 9c中。作為壓縮編碼,使用例如打亂數(shù)據(jù)的位排列的JBIG壓縮。由于壓縮編碼從程序的原來數(shù)據(jù)生成其他數(shù)據(jù),因此,可以看作是一種加密。
如圖6(a)所示,壓縮編碼了用于絕密電路12a的FPGA程序后,存儲在ROM 9c的地址hXX_XX到hYY_YY中。
將存儲在ROM 9c中的程序讀入到ASIC 8中時的工作的說明如下。
首先,從作為控制部2的功能的CPU,對輸入輸出電路10發(fā)出程序的下載命令。如圖6(b)的S11所示,輸入輸出電路10按照該命令,向譯碼部13下載ROM 9c的地址hXX_XX到hYY_YY。
在S12中,譯碼電路13a和OTP 13b作為譯碼部13,使用壓縮編碼的反函數(shù),按照規(guī)定的順序譯碼下載來的程序。之后,將譯碼后的程序下載到作為圖1中示出的易失性存儲器12b的一例的RAM中。另外,在S13中,進一步從易失性存儲器12b向是FPGA的絕密電路12a下載。這樣,就在絕密電路12a中安裝功能,按照FPGA程序進行工作。
這樣地,若將存儲在非易失性存儲器9中的程序加密,就能夠防止通過讀取程序來特定絕密電路12a的功能。此外,由于由包含從后面寫入的OTP13b的譯碼部13來進行程序的譯碼,因此,能夠防止解析譯碼的算法。
再有,作為加密的一例,例舉了壓縮編碼,但不限于此,作為進行加密的函數(shù)的算法,也可以使用例如DES等的通常的所謂密碼算法。此外,也可以通過數(shù)據(jù)位的重排來進行加密。
此外,也可以組合關于上述的輸入輸出的變形例。即,也可以分別組合(A)通過地址重排的加密、(B)利用包含偽數(shù)據(jù)的加密、(C)通常的加密(塊加密)、(D)通過數(shù)據(jù)位的重排的加密、(E)壓縮編碼。利用這樣的組合,就能夠難以進行程序的非法解讀。
該情況下,可以在譯碼電路13a和OTP 13b的譯碼部13中分別設置用于進行對于(A)地址重排、(B)偽數(shù)據(jù)、(C)通常的加密、(D)數(shù)據(jù)位重排、(E)壓縮編碼的譯碼的譯碼器,并設置為可以切換。根據(jù)輸入輸出電路(切換器)10的指示來切換各譯碼器。
作為譯碼器13中的譯碼方法的轉(zhuǎn)換方法,例如,在OTP 13b中裝入按照關于ASIC 8的固有信息來切換譯碼方法的電路,所述的固有信息如機器編號的末尾。然后,將組合加密后得到的程序存儲在非易失性存儲器9中,在譯碼部13中,按照加密的組合,進行利用反過程的譯碼。
加密的過程不特殊限定。例如,可以按照(A)(B)(C)(D)(E)的順序加密,或者也可以是(A)(C)(B)…順序,或(B)(A)(C)…。此外,次數(shù)也可以不限于各1次,可以進行幾次,例如,也可以是(A)(B)(C)(D)(E)(A)(B)…這樣的順序。
此外,在上述的程序輸入輸出的變形例中,關于加密的組合等進行了說明,但本發(fā)明不限于此。例如,通過錯開對于ASIC 8的程序輸入的定時來對ASIC 8的外部隱蔽程序輸入輸出的狀況,也能夠使絕密電路12a的算法的非法解析難以進行。
以下,關于圖像形成裝置1在除了電源接通時以外的定時下載非易失性存儲器9中存儲的程序的結構進行說明。
本變形例的圖像形成裝置(電子裝置)21如圖7所示,具有控制部22、操作部23、存儲部24、圖像讀取部25、圖像處理部(半導體裝置)26和圖像形成部27。
此外,圖像處理部26包括ASIC(半導體裝置)28和非易失性存儲器(存儲裝置)29。ASIC 28具有輸入輸出電路(輸入輸出部)30、圖像處理電路31、絕密電路(可編程電路)32a、易失性存儲器32b、譯碼部33和散列函數(shù)電路(單向性散列函數(shù)部)34。
圖像形成裝置21用總線形式連接了內(nèi)部所具有的各部。關于控制部22、ASIC 28和非易失性存儲器29,也相互用總線形式連接。因此,用與控制部22所使用的總線相同的接口進行從非易失性存儲器29向ASIC 28的下載。該點與圖1中示出的圖像形成裝置1不同。再有,圖7中示出的各部件22~34是與圖1中示出的圖像形成裝置1中所包含的2~14的部件發(fā)揮大致相同功能的部件,因此,除了特殊說明的情況以外省略說明。
在圖像形成裝置21中,不是在圖像形成裝置21的電源接通時,而是在之后的復制請求檢測時,進行非易失性存儲器9中存儲的程序的讀入。更詳細地說,控制部22對ASIC 28的輸入輸出電路30進行程序的讀入指示。在ASIC 28中,輸入輸出電路30取得數(shù)據(jù)后進行輸入數(shù)據(jù)的分配。輸入輸出電路30通過總線35讀入非易失性存儲器29中存儲的程序。輸入輸出電路30向譯碼部33輸出得到的程序。譯碼部33譯碼程序后存儲在易失性存儲器32b中。
這樣地,程序的讀入不是在電源接通時進行,而是在之后的定時進行,因此,能夠使從非易失性存儲器29向ASIC 28的下載,從控制部22混入到對其他部件的數(shù)據(jù)中。這樣就難以進行非法的解析,能夠?qū)SIC 28的外部隱蔽對ASIC 28的絕密電路32a的輸入輸出。在使用絕密電路32a之前進行程序的讀入。也可以在開始了向圖像處理電路33的輸入輸出之后進行程序的讀入?;蛘撸部梢栽陔娫唇油ê蠼?jīng)過了規(guī)定時間后進行程序的讀入。
基于圖8,關于圖像形成裝置21中的圖像處理部26的程序讀入工作的一例進行說明。
在S15中,檢測對于圖像形成裝置21的操作部23的電源接通指示后,控制部22接通圖像形成裝置21的電源。在S16中,控制部22判別有無對于操作部23的復制請求。
在S16中有復制請求的情況下前進到S19,通過總線35,從非易失性存儲器29向ASIC 28讀入程序,然后結束處理。由于在不是電源接通時進行下載,因此,能夠混入到其他的數(shù)據(jù)傳送中,在S16中沒有復制請求的情況下前進到S17。
在S17中,控制部22用通過了總線35的數(shù)據(jù)的收發(fā)等來判別對內(nèi)部或外部的存取是否頻繁。具體地說,例如,在通過總線35用分組形式收發(fā)數(shù)據(jù)的情況下,判別分組的沖突概率是否在規(guī)定值以上。在S17中存取頻繁的情況下,前進到S19,接受了來自控制部22的指示的輸入輸出電路30進行程序的下載,然后結束處理。這樣地,若在存取頻繁的情況下就進行下載,就能夠混入到其他的數(shù)據(jù)傳送中,使非法的解析更困難。在S17中存取不頻繁的情況下,前進到S18后成為等待下載狀態(tài),返回到S16。
如上所述地,象例如復制時使用于特定原稿判別的絕密電路32a那樣地,在使用絕密電路32a的圖像特定功能的定時比電源接通更往后的情況下,將用于絕密電路32a的程序的下載設為后面的定時。然后,利用與控制部22共用的總線35,混入到從控制部22向ASIC 28的存取中下載程序。這樣做,即使在對總線35關于ASIC 28的數(shù)據(jù)輸入輸出非法地解析了基板波形的情況下,也不能特定程序的內(nèi)容。對此,在通常的一般結構中,由于在接通裝置的電源時進行絕密電路這樣的FPGA的程序的下載,因此,就有在非法解析了基板波形的情況下特定了程序內(nèi)容的危險。
下面,基于圖9,關于在圖像形成裝置21中錯開程序輸入輸出的定時的其他變形例進行說明。在該變形例中,將應讀入的程序分割成分組,通過按隨機定時下載各分組,就將程序的讀入混入到其他的數(shù)據(jù)傳送中。
在S20中,檢測對于圖像形成裝置21的操作部23的電源接通指示后,控制部22接通圖像形成裝置21的電源。在S21中,輸入輸出電路30等待經(jīng)過隨機設定的時間,之后,前進到S22。
在S22中,輸入輸出電路30通過總線35,讀入分割了非易失性存儲器29中存儲的程序的數(shù)據(jù)作為分組。在S23中,輸入輸出電路30判別是否下載了全部的分割后的數(shù)據(jù)。在有還未下載的數(shù)據(jù)的情況下,返回到S21,等待了隨機時間后,在S22中下載接下來的數(shù)據(jù)作為分組。在S23中判別為下載了全部數(shù)據(jù)的情況下,結束處理。
根據(jù)以上的處理,由于按照隨機定時依次下載了分割后的數(shù)據(jù)作為分組,因此,就將數(shù)據(jù)的下載混入到其他的數(shù)據(jù)傳送中,使得難以進行程序的非法解讀。
這樣地,將應下載的數(shù)據(jù)分割成規(guī)定單位的分組等,混入到從控制部22向ASIC 28的存取中進行下載。將譯碼后的數(shù)據(jù)存儲在ASIC 28的易失性存儲器32b中。在此,若下載數(shù)據(jù)的時間間隔隨機,就能夠使利用非法讀取的程序判別更困難。此外,也可以使進行下載的數(shù)據(jù)的分割分組的大小隨機。再有,在象通常的一般結構那樣地,通過連續(xù)收發(fā)分組來進行程序的下載的情況下,有在非法解析了基板波形的情況下就特定了程序內(nèi)容的危險。
此外,圖像形成裝置21中的圖像處理部26的程序讀入工作不限于上述結構。例如,為了將程序讀入工作混入到從控制部22向ASIC 28的存取中,控制部22也可以按照來自輸入輸出電路30的指示,對ASIC28進行偽寫或偽存取。這樣地,即使混入到來自控制部22的偽存取中進行程序的下載,也難以混入數(shù)據(jù)進行非法解析。
再有,關于基于圖7中示出的圖像形成裝置21和圖像處理部26,共用控制部22所使用的總線35,通過輸入輸出電路30讀入程序的工作進行了說明,但不限于該結構。
例如,如圖1所示,也可以是直接連接ASIC 8和非易失性存儲器9后進行數(shù)據(jù)傳送的圖像處理部6和圖像形成裝置1。此外,該情況下,控制非易失性存儲器9與ASIC 8的數(shù)據(jù)傳送的傳送控制部也可以包含在ASIC 8中。但是,根據(jù)該結構,由于一對一直接連接ASIC 8與非易失性存儲器9,因此,很難混入到其他的數(shù)據(jù)傳送中。因此,有非法檢測程序傳送的定時的可能性。
此外,圖1中示出的圖像形成裝置1和圖7中示出的圖像形成裝置21分別各具有一個譯碼電路,但不限于此。也可以是具有多個譯碼電路的圖像形成裝置。
本變形例的圖像形成裝置(電子裝置)41如圖10所示,具有控制部42、操作部43、存儲部44、圖像讀取部45、圖像處理部(半導體裝置)46和圖像形成部47。
此外,圖像處理部46包括ASIC(半導體裝置)48和非易失性存儲器(存儲裝置)49a、49b。ASIC48具有輸入輸出電路(輸入輸出部、切換器)50、圖像處理電路51、絕密電路(可編程電路)52a、易失性存儲器52b、譯碼部53a、53b和散列函數(shù)電路(單向性散列函數(shù)部)54。譯碼部53a由譯碼電路53c和OTP(可編程ROM、一次編程ROM、密鑰數(shù)據(jù)寫入?yún)^(qū)域)53d構成,譯碼部53b由譯碼電路53e和OTP(可編程ROM、一次編程ROM、密鑰數(shù)據(jù)寫入?yún)^(qū)域)53f構成。
本實施方式的圖像處理部46與上述實施方式的不同點在于包括多個譯碼部53a、53b和非易失性存儲器49a、49b。再有,圖10中示出的各部件42~54是與包含在圖1中示出的圖像形成裝置1中的2~14的部件發(fā)揮大致相同功能的部件,因此,除了特殊說明的情況以外省略說明。
在上述結構的圖像處理部46中,輸入輸出電路50進行從非易失性存儲器49a、49b的程序讀入,分別向獨立具備的譯碼部53a、53b輸出??梢匀我庠O定輸入輸出電路50對非易失性存儲器49a、49b的存取定時,例如,可以如上所述地錯開定時進行讀入,或者,也可以按隨機時間間隔進行讀入。各譯碼部53a、53b向易失性存儲器52b下載譯碼后的程序。從易失性存儲器52b向絕密電路52a下載程序,然后就成為絕密電路52a的功能。
這樣地,在ASIC48中具有多個接口的情況下,若通過各自的接口讀入程序,就能夠很難進行非法的解析。
如以上所述地,本發(fā)明與內(nèi)裝FPGA這樣的可編程的電路的ASIC有關,更詳細地說,與存儲在FPGA部中的程序的隱蔽有關。上述的半導體裝置是內(nèi)裝FPGA(可編程的電路)的ASIC,作為固定電路,具有對于對象處理的外部的接口和加密后的FPGA用程序的譯碼部。這樣,就提供了一種能黑箱化可編程的電路的處理的ASIC。此外,提供一種ASIC,在ASIC內(nèi)部,使不想讓包括ASIC賣方的外部知道的絕密電路(紙幣追蹤、識別電路等)FPGA化,另外,即使用產(chǎn)品的基板進行波形解析,也難以解析FPGA區(qū)域的絕密電路內(nèi)容。
在此,現(xiàn)有技術如圖11所示,圖像處理部的圖像處理電路61、絕密電路62a、RAM62b、ROM63全都成為露出的狀態(tài),就能夠容易地檢測各電路的輸入輸出。因此,就有下述這樣的問題,通過在該狀態(tài)下輸入圖像數(shù)據(jù),檢測對此的響應,就推測出了是否判別了圖像數(shù)據(jù)中的什么樣的特征。
在此,作為現(xiàn)有技術,有如下結構(1)在ASIC中內(nèi)裝絕密電路的結構、(2)將絕密電路放入到外接的FPGA中,設置了防復制部的結構、(3)包括絕密電路,F(xiàn)PGA化全部電路的結構、(4)僅將絕密電路設為FPGA,將其他設為ASIC進行單片化的結構。
在此,在上述(1)的結構中,還具有如下問題。首先,要ASIC化絕密電路,就需要至少向ASIC賣方出圖門電平電路。若有這樣的門電平電路,理論上就能用反編譯推斷電路源。此外,需要向ASIC賣方出圖包括了絕密電路部分的出廠檢查用的測試圖形,就給予了對于電路推斷的信息。再有,若不出圖測試圖形,就不能提高故障檢測率,有可能ASIC批量產(chǎn)品的不合格率上升。
此外,上述(2)的結構在一般電路的ASIC中,在基板系統(tǒng)上將絕密電路部分設為外接的FPGA。在該結構中,例如專利文獻2、3中記載地,即使利用對響應序列取得匹配的密鑰數(shù)據(jù)匹配來防止了FPGA的復制,在產(chǎn)品基板上實際工作時,也完全看得見FPGA的外部端子,因此,就有可能通過解析該端子來推測電路的工作和內(nèi)容。此外,一般是在電源上升時進行FPGA的下載,但有解析該下載時的數(shù)據(jù)的危險。
此外,上述(3)的結構對于現(xiàn)狀的大規(guī)模和可高速工作的FPGA非常高價,因此,在按FPGA批量生產(chǎn)象系統(tǒng)芯片這樣的大規(guī)模電路時就不現(xiàn)實。
此外,如上述(4)所述,也考慮了僅單純地將絕密電路作為FPGA,將其他部分作為ASIC進行單片化的情況。但是,賣方就能根據(jù)顧客出圖門(出圖ゲ一ト)來推斷FPGA周邊的電路結構。此外,由于是賣方設計的FPGA,因此,通過利用產(chǎn)品基板的波形觀測等解析向FPGA下載的數(shù)據(jù),就能解析絕密部分的電路。此外,由于也對除了在某個賣方中設計的其他顧客散發(fā)對于同一FPGA設計的資料,因此,就有能利用ROM數(shù)據(jù)來推斷電路的可能性。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部通過錯開來自上述可編程電路的輸出的定時,從半導體裝置本體輸出數(shù)據(jù),來對半導體裝置本體的外部隱蔽數(shù)據(jù)輸入輸出。
輸入輸出部通過延遲例如輸出定時來錯開數(shù)據(jù)輸出的定時。這樣地,若輸入輸出部錯開定時,就能夠隱蔽數(shù)據(jù)輸出。
此外,在上述結構中,上述輸入輸出部也可以是在向半導體裝置輸入了其他數(shù)據(jù)后,從上述可編程電路進行輸出的結構。這樣做,就能夠利用是否對其他數(shù)據(jù)進行輸出時進行動作,隱蔽數(shù)據(jù)輸出。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部隨機地錯開來自上述可編程電路的輸出數(shù)據(jù)的定時。
這樣地,若隨機地錯開數(shù)據(jù)輸出的定時,就能夠隱蔽用于制成輸出的輸入是哪個。
此外,在上述結構中,最好在比平均處理延遲時間長的范圍內(nèi)使輸出的定時隨機地延遲?;蛘撸部梢栽诶缙骄幚硌舆t時間的2倍以上的范圍內(nèi)隨機地延遲。這樣做,就能夠隱蔽用于制成輸出的輸入是哪個。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部通過加密來自上述可編程電路的輸出后從半導體裝置本體輸出,來對半導體裝置本體的外部隱蔽數(shù)據(jù)輸入輸出。
由于輸入輸出部進行加密,就能夠隱蔽數(shù)據(jù)輸出。該情況下,在接收來自輸入輸出部的輸出的一側進行譯碼。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述可編程電路是易失性的可編程電路,上述輸入輸出部通過在具有半導體裝置本體的電子裝置的電源上升時以外的定時,從半導體裝置本體的外部取得上述可編程電路的程序數(shù)據(jù),來對半導體裝置本體隱蔽數(shù)據(jù)輸入輸出。
所述易失性的可編程電路,例如是SRAM(Static Random AccessMemory,靜態(tài)隨機存取存儲器)型的可重寫電路。
半導體裝置的輸入輸出部對例如半導體裝置外部的存儲裝置進行存取,取得存儲在存儲裝置中的程序數(shù)據(jù)。由于隱蔽程序數(shù)據(jù)的輸入,因此,就難以對在可編程電路中處理的算法進行非法的解析。
在此,通常期望在電源上升時取得程序數(shù)據(jù)。
因此,若如上述結構這樣的在電源上升以外的時間取得,在試著在半導體裝置與存儲了程序數(shù)據(jù)的存儲裝置之間非法取得的情況中,也難以進行非法取得。
此外,在上述結構中,輸入輸出部也可以是在使用可編程電路之前取得程序數(shù)據(jù)的結構。此外,在上述結構中,輸入輸出部也可以是在開始了來自固定邏輯電路的輸入輸出之后取得程序數(shù)據(jù)的結構。此外,在上述結構中,輸入輸出部也可以是在電源上升后一經(jīng)過規(guī)定時間就取得程序數(shù)據(jù)的結構。
此外,也可以將上述的半導體裝置表現(xiàn)為這樣的結構,作為程序供給定時,在不是電源上升的定時時進行。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部取得被分割成多個的上述程序數(shù)據(jù)。
這樣地,由于分割程序數(shù)據(jù)后取得,因此,即使在試著非法取得的情況中,也難以特定程序數(shù)據(jù),能夠防止非法取得。
此外,也可以將上述的半導體裝置表現(xiàn)為程序供給時分割了通信后進行的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部取得已分割成隨機大小的上述程序數(shù)據(jù)。
由于分割后的程序數(shù)據(jù)的大小隨機,因此,能夠進一步使程序數(shù)據(jù)的特定難以進行。
此外,也可以將上述的半導體裝置表現(xiàn)為通信分割使數(shù)據(jù)包的大小隨機的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部按照隨機的時間間隔取得已被分割成多個的上述程序數(shù)據(jù)。
由于按隨機的時間間隔進行取得,因此,能夠進一步使程序數(shù)據(jù)的特定難以進行。
此外,也可以將上述的半導體裝置表現(xiàn)為通信分割使通信的間隔隨機的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述輸入輸出部具有用于取得上述程序數(shù)據(jù)的多個接口。
由于能夠分開使用多個接口,取得分割后的程序數(shù)據(jù),因此,能夠進一步使程序數(shù)據(jù)的特定難以進行。
此外,也可以將上述的半導體裝置表現(xiàn)為從多個IF分割后供給程序的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好具有根據(jù)上述可編程電路的程序數(shù)據(jù)制作檢驗用數(shù)據(jù)的單向性散列函數(shù)部。
若利用單向性散列函數(shù)部從程序數(shù)據(jù)制作檢驗用數(shù)據(jù),通過與預先制成的檢驗用數(shù)據(jù)進行比較,就能夠簡單地確認程序數(shù)據(jù)是否是預先制成的正規(guī)的數(shù)據(jù)。此外,由于不比較程序用數(shù)據(jù)自身,因此,能夠在半導體裝置的外部,不損害機密性而進行確認。
本發(fā)明涉及的半導體裝置在上述結構中,最好半導體裝置本體是進行圖像處理的圖像處理部,在上述可編程電路中進行特定原稿的識別處理。
所述特定原稿是成為識別對象的原稿。例如,在圖像形成裝置中具有的圖像處理電路中,將紙幣作為特定原稿。由圖像處理電路判別復印的原稿是否是紙幣,在是紙幣的情況下就禁止復印。
根據(jù)上述結構,能夠隱蔽圖像處理電路中的特定原稿的識別處理的算法。
本發(fā)明涉及的半導體裝置在上述結構中,最好具有用于譯碼已被加密的上述可編程電路的程序數(shù)據(jù)的譯碼部。
由于可編程電路的程序數(shù)據(jù)已被加密,因此,就能使利用解析程序數(shù)據(jù)的算法和邏輯的解析難以進行。
此外,也可以將上述的半導體裝置表現(xiàn)為下述結構,是在同一集成電路內(nèi)至少設置了SRAM型的可編程的第一電路和即使切斷電源邏輯也固定的第二電路的ASIC,第二電路具有預先加密了從外部供給到第一電路中的程序的譯碼部和從ASIC外部隱蔽第一電路基于程序所進行的處理的輸入輸出部。根據(jù)該結構,根據(jù)從外部下載的程序和ASIC的工作,都難以解析第一電路的算法和邏輯。此外,上述的半導體裝置也可以是第二電路具有根據(jù)譯碼后供給到第一電路中的程序數(shù)據(jù)制成檢驗用數(shù)據(jù)的單向性散列函數(shù)部的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好用能從半導體裝置本體的外部寫入不能讀出的可編程ROM來構成上述譯碼部的至少一部分。
在此,所述半導體裝置不能讀出是指,不設置用于向外部輸出的緩沖器,緩沖器僅從外部向內(nèi)部單方通行。
這樣地,若將譯碼部的至少一部分設置為可編程ROM,就能夠使該可編程ROM從后面寫入。
從而,例如在半導體裝置的制作依賴于外部生產(chǎn)者時,能夠不使其知道寫入到可編程ROM中的內(nèi)容,不需要讓外部生產(chǎn)者知道譯碼部的全體。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述可編程ROM是一次可編程ROM。
由于可編程ROM僅能寫入一次,因此,就不擔心試著從后面重寫可編程ROM來推測可編程ROM的內(nèi)容。
此外,也可以將上述的半導體裝置表現(xiàn)為譯碼部的PROM是一次PROM的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好在上述可編程ROM中設置了密鑰數(shù)據(jù)寫入?yún)^(qū)域,該區(qū)域具有一寫入密鑰數(shù)據(jù),上述譯碼部就譯碼上述程序數(shù)據(jù)的功能。
如果不向密鑰數(shù)據(jù)區(qū)域?qū)懭朊荑€數(shù)據(jù),半導體裝置的譯碼部就不工作,因此,通過適當?shù)毓芾砻荑€數(shù)據(jù),就能夠防止半導體裝置的非法利用。
此外,也可以將上述的半導體裝置表現(xiàn)為用至少一部分能寫入不能讀出的PROM來構成譯碼部,寫入到PROM中的(密鑰)數(shù)據(jù)定制譯碼部的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部譯碼利用地址操作加密后的上述程序數(shù)據(jù)。
這樣地,若是通過地址操作加密后的數(shù)據(jù),就能夠用簡單的處理進行譯碼。
此外,也可以將上述的半導體裝置表現(xiàn)為程序的加密是地址的操作的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部譯碼已混合了偽數(shù)據(jù)的上述程序數(shù)據(jù)。
這樣地,若混合偽數(shù)據(jù),就難以進行程序數(shù)據(jù)的特定。
此外,也可以將上述的半導體裝置表現(xiàn)為在程序供給時與偽數(shù)據(jù)共同進行數(shù)據(jù)供給的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部譯碼已塊加密后的上述程序數(shù)據(jù)。
能夠使用DES(Data EncryPtion Standard,數(shù)據(jù)加密標準)和AES(Advanced Encryption Standard,高級加密標準)可靠地加密。此外,也容易硬件化。
此外,也可以將上述的半導體裝置表現(xiàn)為程序的加密是塊密碼的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部譯碼通過數(shù)據(jù)位的重排加密后的上述程序數(shù)據(jù)。
這樣地,若是通過數(shù)據(jù)位的重排加密后的數(shù)據(jù),就能夠用簡單的處理進行譯碼。
此外,也可以將上述的半導體裝置表現(xiàn)為程序的加密是數(shù)據(jù)位的重排的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部譯碼通過壓縮編碼加密后的上述程序數(shù)據(jù)。
在此,所述壓縮編碼是JBIG、運行長度等的壓縮。
這樣地,若是通過壓縮編碼加密后的數(shù)據(jù),就能夠用簡單的處理進行譯碼。
此外,也可以將上述的半導體裝置表現(xiàn)為程序的加密是JBIG、運行長度等的壓縮的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部具有第一譯碼器,譯碼通過地址操作加密后的上述程序數(shù)據(jù);第二譯碼器,譯碼混合了偽數(shù)據(jù)的上述程序數(shù)據(jù);第三譯碼器,譯碼已塊加密后的上述程序數(shù)據(jù);第四譯碼器,譯碼通過數(shù)據(jù)位的重排加密后的上述程序數(shù)據(jù);第五譯碼器,譯碼通過壓縮編碼加密后的上述程序數(shù)據(jù),上述輸入輸出部按期望的順序切換使用第一譯碼器、第二譯碼器、第三譯碼器、第四譯碼器和第五譯碼器,作為切換器進行工作。
這樣地,若組合密碼切換使用,就能夠可靠地加密。
此外,也可以將上述的半導體裝置表現(xiàn)為同時具有上述譯碼部,進行密碼組合的結構。此外,也可以將上述的半導體裝置表現(xiàn)為同時具有上述譯碼部,進行密碼組合和順序組合的結構。
本發(fā)明涉及的半導體裝置在上述結構中,最好上述譯碼部在取得了上述程序數(shù)據(jù)時,設定上述切換器的上述期望的順序。
若在后面設定切換器的順序,就能夠可靠地加密。
此外,也可以將上述的半導體裝置表現(xiàn)為同時具有上述譯碼部,在程序供給時選擇組合和順序的結構。
本發(fā)明涉及的半導體裝置為了解決上述課題,最好一體地封裝了上述半導體裝置和存儲了上述可編程電路的程序數(shù)據(jù)的存儲裝置。
利用一體封裝后的半導體裝置,就能夠?qū)崿F(xiàn)難以解析內(nèi)部算法的半導體裝置。
本發(fā)明涉及的電子裝置為了解決上述課題,最好具有上述半導體裝置和存儲了上述可編程電路的程序數(shù)據(jù)的存儲裝置。
在電子裝置中利用上述半導體裝置和存儲裝置來實現(xiàn)想絕密的處理,就能夠隱蔽算法。
上述的具體的實施方式或?qū)嵤├皇鞘贡景l(fā)明的技術內(nèi)容明確,本發(fā)明不限定于這樣的具體例,不應該狹義地理解,可以在權利要求范圍內(nèi)做各種各樣的變形,在變形后的方式和不同的實施方式中適當組合了各個已公開的技術手段之后所得到的實施方式,也包括在本發(fā)明的技術范圍內(nèi)。
權利要求
1.一種半導體裝置(8、28、48),其特征在于,包括可編程電路(12a、32a、52a)和固定邏輯電路,具有向上述可編程電路(12a、32a、52a)和上述固定邏輯電路輸入輸出數(shù)據(jù)的輸入輸出部(10、30、50),上述輸入輸出部(10、30、50)對半導體裝置本體的外部隱蔽對于上述可編程電路(12a、32a、52a)的數(shù)據(jù)輸入輸出。
2.如權利要求1所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)通過錯開來自上述可編程電路(12a、32a、52a)的輸出的定時,從半導體裝置本體輸出數(shù)據(jù),來對半導體裝置本體的外部隱蔽數(shù)據(jù)輸入輸出。
3.如權利要求2所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)隨機地錯開來自上述可編程電路(12a、32a、52a)的數(shù)據(jù)輸出的定時。
4.如權利要求1所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)通過加密來自上述可編程電路(12a、32a、52a)的輸出后從半導體裝置本體輸出,來對半導體裝置本體的外部隱蔽數(shù)據(jù)輸入輸出。
5.如權利要求1所述的半導體裝置(8、28、48),其特征在于,上述可編程電路(12a、32a、52a)是易失性的可編程電路,上述輸入輸出部(10、30、50)通過在具有半導體裝置本體的電子裝置(1、21、41)的電源上升時以外的定時,從半導體裝置本體的外部取得上述可編程電路(12a、32a、52a)的程序數(shù)據(jù),來對半導體裝置本體的外部隱蔽數(shù)據(jù)輸入輸出。
6.如權利要求5所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)取得被分割成多個的上述程序數(shù)據(jù)。
7.如權利要求6所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)取得已分割成隨機大小的上述程序數(shù)據(jù)。
8.如權利要求6所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)按照隨機的時間間隔取得已被分割成多個的上述程序數(shù)據(jù)。
9.如權利要求5所述的半導體裝置(8、28、48),其特征在于,上述輸入輸出部(10、30、50)具有用于取得上述程序數(shù)據(jù)的多個接口。
10.如權利要求1所述的半導體裝置(8、28、48),其特征在于,具有根據(jù)上述可編程電路(12a、32a、52a)的程序數(shù)據(jù)制作檢驗用數(shù)據(jù)的單向性散列函數(shù)部(14、34、54)。
11.如權利要求1所述的半導體裝置(6、26、46),其特征在于,半導體裝置本體是進行圖像處理的圖像處理部(6、26、46),在上述可編程電路(12a、32a、52a)中進行特定原稿的識別處理。
12.如權利要求1至11的任一項所述的半導體裝置(6、8、26、28、46、48),其特征在于,具有用于譯碼已被加密的上述可編程電路(12a、32a、52a)的程序數(shù)據(jù)的譯碼部(13、33、53a、53b)。
13.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,用能從半導體裝置本體的外部寫入而不能讀出的可編程ROM(13b、33b、53d、53f)來構成上述譯碼部(13、33、53a、53b)的至少一部分。
14.如權利要求13所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述可編程ROM(13b、33b、53d、53f)是一次編程ROM。
15.如權利要求13所述的半導體裝置(6、8、26、28、46、48),其特征在于,在上述可編程ROM(13b、33b、53d、53f)中設置了功能密鑰數(shù)據(jù)寫入?yún)^(qū)域,一旦寫入密鑰數(shù)據(jù),就使上述譯碼部(13、33、53a、53b)有譯碼上述程序數(shù)據(jù)的功能。
16.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)譯碼通過地址操作加密后的上述程序數(shù)據(jù)。
17.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)譯碼已混合了偽數(shù)據(jù)的上述程序數(shù)據(jù)。
18.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)譯碼已塊加密后的上述程序數(shù)據(jù)。
19.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)譯碼通過數(shù)據(jù)位的重排加密后的上述程序數(shù)據(jù)。
20.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)譯碼通過壓縮編碼加密后的上述程序數(shù)據(jù)。
21.如權利要求12所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)具有第一譯碼器,譯碼通過地址操作加密后的上述程序數(shù)據(jù);第二譯碼器,譯碼混合了偽數(shù)據(jù)的上述程序數(shù)據(jù);第三譯碼器,譯碼已塊加密后的上述程序數(shù)據(jù);第四譯碼器,譯碼通過數(shù)據(jù)位的重排加密后的上述程序數(shù)據(jù);第五譯碼器,譯碼通過壓縮編碼加密后的上述程序數(shù)據(jù),上述輸入輸出部(10、30、50)作為切換器(10、30、50)進行工作,按期望的順序切換使用第一譯碼器、第二譯碼器、第三譯碼器、第四譯碼器和第五譯碼器。
22.如權利要求21所述的半導體裝置(6、8、26、28、46、48),其特征在于,上述譯碼部(13、33、53a、53b)在取得了上述程序數(shù)據(jù)時,設定上述切換器(10、30、50)的上述期望的順序。
23.一種半導體裝置(6、26、46),其特征在于,一體地封裝了權利要求1所述的半導體裝置(8、28、48)和存儲了上述可編程電路的程序數(shù)據(jù)的存儲裝置(9、29、49a、49b)。
24.一種電子裝置(1、21、41),其特征在于,具有半導體裝置(6、26、46),所述半導體裝置(6、26、46)包括可編程電路(12a、32a、52a)和固定邏輯電路,具有向上述可編程電路(12a、32a、52a)和上述固定邏輯電路輸入輸出數(shù)據(jù)的輸入輸出部(10、30、50),上述輸入輸出部(10、30、50)對半導體裝置本體的外部掩蔽對于上述可編程電路的數(shù)據(jù)輸入輸出;存儲裝置(9、29、49a、49b),存儲了上述可編程電路(12a、32a、52a)的程序數(shù)據(jù)。
全文摘要
本發(fā)明的圖像處理部的ASIC(半導體裝置)具有對圖像處理電路和絕密電路進行輸入輸出的輸入輸出電路。輸入輸出電路錯開定時,從ASIC輸出來自例如絕密電路的輸出,使得隱蔽絕密電路所進行的處理。這樣,就能夠隱蔽絕密電路中的算法。另外,ASIC具有譯碼電路,用于譯碼存儲在與ASIC另外地構成的非易失性存儲器中的加密后的程序。譯碼電路通過從后面寫入的OTP發(fā)揮譯碼部的功能。
文檔編號G06F21/06GK1684050SQ20051007831
公開日2005年10月19日 申請日期2005年3月4日 優(yōu)先權日2004年3月5日
發(fā)明者川上隆宏, 龜井直幸, 吉村創(chuàng)一, 山根木一司 申請人:夏普株式會社