35]圖10為電子設(shè)備的結(jié)構(gòu)例。
【具體實(shí)施方式】
[0036]以下,對適合本發(fā)明的實(shí)施的方式進(jìn)行詳細(xì)的說明。另外,以下所說明的本實(shí)施方式不是對權(quán)利要求書中所記載的本發(fā)明的內(nèi)容進(jìn)行不當(dāng)?shù)南薅ǖ姆绞?,在本?shí)施方式中所說明的結(jié)構(gòu)并非全是作為本發(fā)明的解決方法所必須的結(jié)構(gòu)。
[0037]1.比較例
[0038]圖1為表示本實(shí)施方式的比較例的工作說明圖。
[0039]微型計(jì)算機(jī)由對命令進(jìn)行處理的CPU (Central Processing Unit:中央處理單元)和包含存儲裝置或接口等在內(nèi)的外部設(shè)備而構(gòu)成。CPU以被供給時(shí)鐘信號CK_CPU并且與該時(shí)鐘信號CK_CPU的上升沿同步的方式而工作。
[0040]S卩,根據(jù)時(shí)鐘信號CK_CPU的上升而實(shí)施取命令,并根據(jù)下一次的上升而對該命令進(jìn)行解碼從而實(shí)施地址計(jì)算。在地址計(jì)算中,在例如存儲有用于執(zhí)行的數(shù)據(jù)的主存儲裝置的地址進(jìn)行計(jì)算。然后,根據(jù)下一次的時(shí)鐘信號CK_CPU的上升而執(zhí)行命令并將執(zhí)行結(jié)果寫入寄存器。在命令的執(zhí)行中,從根據(jù)例如地址計(jì)算而得出的地址中讀出數(shù)據(jù),并由計(jì)算裝置針對該數(shù)據(jù)實(shí)施處理。
[0041]在實(shí)管道傳送處理時(shí),針對每I個時(shí)鐘的方式開始進(jìn)行第一命令、第2命令,……的處理并對多個的命令進(jìn)行并行處理。在該情況下,針對每I個時(shí)鐘而得出命令的執(zhí)行結(jié)果O
[0042]在此種工作中,微型計(jì)算機(jī)的消耗電流(IDD)根據(jù)命令的內(nèi)容而不同。例如,在計(jì)算的內(nèi)容不同的命令中,根據(jù)計(jì)算裝置而使用的邏輯電路的個數(shù)或種類不同,并且根據(jù)該邏輯電路而消耗的電流不同。或者,在使用或不使用計(jì)算裝置的命令和訪問或不訪問主存儲裝置的命令中,由于工作的電路不同因此消耗電流不同。
[0043]如上所述,由于與時(shí)鐘信號CK_CPU的上升同步而對命令進(jìn)行處理,因此會由于各個時(shí)鐘的上升而產(chǎn)生消耗電流,該消耗電流對應(yīng)于該時(shí)刻的執(zhí)行中的命令。因此,通過對該消耗電流(例如,該時(shí)間變化的模式)進(jìn)行解析,從而能夠?qū)ξ⑿陀?jì)算機(jī)正在執(zhí)行中的命令或者由該指命令而被構(gòu)成的算法進(jìn)行推測。
[0044]2.微型計(jì)算機(jī)
[0045]圖2表示了能夠解決此種問題的本實(shí)施方式的微型計(jì)算機(jī)的結(jié)構(gòu)示例。
[0046]微型計(jì)算機(jī)包括:時(shí)鐘供給部10 (時(shí)鐘發(fā)生器)、控制數(shù)據(jù)生成部20、CPU30(處理部)、R0M40、RAM50 (主存儲裝置)、總線60、第一?第s的外部設(shè)備PHl?PHs (s為自然數(shù))。
[0047]CPU30為實(shí)施指令處理的處理部。指令處理指的是,如上所述的取命令、解碼、地址計(jì)算、執(zhí)行、寄存器寫入這一系列的處理。CPU30被構(gòu)成為,例如命令解碼器或寄存器、計(jì)算裝置(ALU:Arithmetic Logic Unit:計(jì)算邏輯單元)等。CPU30通過總線60而將RAM50或外部設(shè)備PHl?PHS等的各個部分連接并該通過總線60而實(shí)施各個部分間的通信。
[0048]R0M40和RAM50為微型計(jì)算機(jī)的內(nèi)部存儲器。RAM50作為對CPU30所處理的程序或數(shù)據(jù)進(jìn)行存儲主存儲裝置(一次存儲裝置)而被使用。
[0049]外部設(shè)備PHl?PHs為實(shí)現(xiàn)微型計(jì)算機(jī)的周邊功能的裝置,例如計(jì)數(shù)器或計(jì)時(shí)器、插入控制器、串行接口(例如 UART:Universal Asynchronous Receiver Transmitter:通用異步收發(fā)報(bào)機(jī))、AD轉(zhuǎn)換器、DA轉(zhuǎn)換器、振蕩電路等。
[0050]時(shí)鐘供給部10接收從時(shí)鐘源被供給的時(shí)鐘信號CKSl?CKSt (t為自然數(shù))并生成多個時(shí)鐘信號。時(shí)鐘源為,例如微型計(jì)算機(jī)外部的時(shí)鐘生成電路或微型計(jì)算機(jī)內(nèi)部的振蕩電路等。時(shí)鐘供給部10分別向外部設(shè)備PHl?PHs、控制數(shù)據(jù)生成部20、CPU30 (以及R0M40、RAM50)供給所生成的時(shí)鐘信號 CK_PH1 ?CK_PHs、CK_SYS、CK_CPU。
[0051]控制數(shù)據(jù)生成部20生成使指令處理的工作時(shí)機(jī)變化的控制數(shù)據(jù)CTL。CPU30實(shí)施根據(jù)該控制數(shù)據(jù)CTL而使工作時(shí)機(jī)變化的指令處理。
[0052]具體而言,控制數(shù)據(jù)生成部20包括產(chǎn)生隨機(jī)數(shù)數(shù)據(jù)的隨機(jī)數(shù)產(chǎn)生部21,控制數(shù)據(jù)生成部20根據(jù)該隨機(jī)數(shù)數(shù)據(jù)而輸出控制數(shù)據(jù)CTL。時(shí)鐘供給部10根據(jù)該控制數(shù)據(jù)CTL而使時(shí)鐘信號CK_CPU的周期發(fā)生變化。而且,CPU30根據(jù)該周期發(fā)生變化的時(shí)鐘信號CK_CPU而實(shí)施指令處理從而使指令處理的工作時(shí)機(jī)發(fā)生變化。
[0053]圖3為表示本實(shí)施方式的工作時(shí)序圖。
[0054]控制數(shù)據(jù)生成部20從MSB (最高有效位)側(cè)(或LSB (最低有效位)側(cè))逐位地將隨機(jī)數(shù)的位列作為控制數(shù)據(jù)CTL而輸出。例如當(dāng)隨機(jī)數(shù)為16進(jìn)制的“4”時(shí),由于其在二進(jìn)制的位列的情況下為“0100”,因此控制數(shù)據(jù)CTL以“0”、“1”、“0”、“0”的順序而被輸出。例如,在圖3的例中的時(shí)鐘信號CK_SYS以每2個時(shí)鐘的方式逐位地輸出。
[0055]時(shí)鐘供給部10在控制數(shù)據(jù)CTL為“O”時(shí),將時(shí)鐘信號CK_CPU以基準(zhǔn)的周期而輸出。在圖3的示例中,其與時(shí)鐘信號CK_SYS為相同的周期。另一方面,在控制數(shù)據(jù)CTL為“I”時(shí),以與基準(zhǔn)的周期相比而延遲的周期輸出時(shí)鐘信號CK_CPU。在圖3的例中,為基準(zhǔn)的周期的一半的周期,并使時(shí)鐘信號CK_SYS的兩個脈沖中的第二個的脈沖缺失。由于控制數(shù)據(jù)CTL是根據(jù)隨機(jī)數(shù)數(shù)據(jù)而被生成的,因此周期發(fā)生延遲的時(shí)機(jī)是隨機(jī)的。
[0056]由于CPU30根據(jù)以該隨機(jī)的方式使周期發(fā)生變化的時(shí)鐘信號CK_CPU而進(jìn)行工作,因此微型計(jì)算機(jī)的消耗電流(IDD)的產(chǎn)生時(shí)機(jī)也是隨機(jī)的。具體而言,由于在時(shí)鐘信號CK_CPU的脈沖缺失時(shí),指令處理不進(jìn)入下一步驟而成為等待狀態(tài),因此消耗電流變小,并且由于該時(shí)機(jī)為隨機(jī),因此能夠降低指令與消耗電流之間的關(guān)聯(lián)。
[0057]但是,由于使用隨機(jī)數(shù)而會有以下的問題。如圖4所示,在產(chǎn)生例如16進(jìn)制的“0000”?“FFFF”的隨機(jī)數(shù)的數(shù)據(jù)時(shí),其成為二進(jìn)制中的16位的位列。當(dāng)直接將該位列作為控制數(shù)據(jù)CTL而使用時(shí),由于在隨機(jī)數(shù)的數(shù)據(jù)中含有“0000”或“FFFF”,因此“O”或“I”的位最多會連續(xù)16回以上。
[0058]在位“O”連續(xù)時(shí),此期間由于CPU30在正常的時(shí)機(jī)而工作,因此指令與消耗電流之間的關(guān)聯(lián)將變大。因此,存在通過消耗電流的解析而能夠破解算法或密碼的可能性。另一方面,在位“I”連續(xù)時(shí),此期間由于CPU30的工作頻率延遲,因此微型計(jì)算機(jī)的性能(處理速度)會降低(或者產(chǎn)生性能的不穩(wěn)定)。
[0059]在此,在本實(shí)施方式中,控制數(shù)據(jù)生成部20包括代碼轉(zhuǎn)換部22,該代碼轉(zhuǎn)換部22對隨機(jī)數(shù)的數(shù)據(jù)進(jìn)行加工,并以相同邏輯的位不會連續(xù)產(chǎn)生規(guī)定數(shù)值的方式而生成控制數(shù)據(jù) CTL。
[0060]圖5為表示代碼轉(zhuǎn)換的示例圖。在該示例中,以將隨機(jī)數(shù)的數(shù)據(jù)轉(zhuǎn)換為20位的位列并且以“O”或“I”的同一邏輯的位不會產(chǎn)生連續(xù)5回以上的方式而生成控制數(shù)據(jù)CTL。例如,在隨機(jī)數(shù)的數(shù)據(jù)為“ 0000 ”時(shí),位“ O ”最多只連續(xù)3回,隨機(jī)數(shù)的數(shù)據(jù)為“FFFF”時(shí)位“I”最多只連續(xù)3回。
[0061]以此方式,通過以同一邏輯的位不會較長地連續(xù)的方式而對隨機(jī)數(shù)的數(shù)據(jù)進(jìn)行加工,從而能夠防止由“O”的連續(xù)而導(dǎo)致的入侵的可能性和由“I”的連續(xù)而導(dǎo)致的性能的降低。
[0062]更具體而言,代碼轉(zhuǎn)換部22根據(jù)SblOb方式而對隨機(jī)數(shù)的數(shù)據(jù)進(jìn)行轉(zhuǎn)換。SblOb方式為將8位位列轉(zhuǎn)換為10位位列的代碼轉(zhuǎn)換法。在本實(shí)施方式中,分別將隨機(jī)數(shù)的數(shù)據(jù)的MSB (最高有效位)側(cè)(上位)8位和LSB (最低有效位)側(cè)(下位)8位轉(zhuǎn)換為10位,并生成共計(jì)20位的位列。
[0063]在SblOb