專利名稱:數(shù)據(jù)變換裝置以及數(shù)據(jù)變換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)變換裝置以及數(shù)據(jù)變換方法。
背景技術(shù):
專利文獻(xiàn)1(特開(kāi)2000-66585號(hào)公報(bào)(第7-13頁(yè)、第4圖))的加密裝置以及解密裝置,通過(guò)掩碼a和掩碼b對(duì)數(shù)據(jù)進(jìn)行保密,并且在加密或者解密的運(yùn)算后除去這些掩碼的影響,由此得到不使用掩碼的數(shù)據(jù)。這樣通過(guò)使用掩碼a和掩碼b,就可防止預(yù)測(cè)內(nèi)部數(shù)據(jù),使利用電力分析的解讀難以進(jìn)行。
在如上述那樣的現(xiàn)有的加密裝置以及解密裝置中,必須新發(fā)生掩碼,需要使掩碼發(fā)生的電路,所以招致電路的增大。另外,運(yùn)算通過(guò)塊單位的并列處理來(lái)進(jìn)行,所以若塊長(zhǎng)變長(zhǎng),則同時(shí)使用的運(yùn)算元件的數(shù)目就變多,電力就需要較多,其結(jié)果就有電力分析變得容易之類的課題。進(jìn)而,在塊長(zhǎng)較長(zhǎng)的情況下,各塊內(nèi)的每個(gè)位的運(yùn)算延遲不同,由于該延遲而存在電力分析變得容易之類的課題。
圖21是表示每個(gè)位的運(yùn)算遲延的差異給電力消耗量帶來(lái)的影響的例子的圖。在圖21中,輸入位A、B的遲延之差對(duì)AND門的輸出位帶來(lái)影響。如該圖那樣,輸入的遲延之差越大,電力變化就變得越易于表現(xiàn),單位時(shí)間的電力消耗量就變得越大。
發(fā)明內(nèi)容
本發(fā)明以例如使涉及數(shù)據(jù)的加密或者解密的運(yùn)算的電力消耗量減小,使電力分析變得困難為其目的。
本發(fā)明的數(shù)據(jù)變換裝置是一種通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置,其特征在于
將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小。
其特征在于,上述數(shù)據(jù)變換裝置具備存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出的第1存儲(chǔ)部;存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出的第2存儲(chǔ)部;以及對(duì)上述第1存儲(chǔ)部輸出的位和上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并使運(yùn)算后的結(jié)果存儲(chǔ)在上述第1存儲(chǔ)部中的運(yùn)算部。
其特征在于,上述數(shù)據(jù)變換裝置還具備選擇由上述運(yùn)算部進(jìn)行的運(yùn)算種類的選擇部。
其特征在于,上述第1存儲(chǔ)部和上述第2存儲(chǔ)部是移位寄存器。
其特征在于,上述數(shù)據(jù)變換裝置將可進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理。
另外,本發(fā)明的數(shù)據(jù)變換裝置是一種通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置,其特征在于將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小。
其特征在于上述存儲(chǔ)部在將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算。
其特征在于上述數(shù)據(jù)變換裝置具備具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口,并且通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算的運(yùn)算部,上述存儲(chǔ)部被設(shè)置在上述運(yùn)算部的各輸入端口之前。
本發(fā)明的數(shù)據(jù)變換方法是一種使用通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法,其特征在于將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小。
其特征在于上述數(shù)據(jù)變換方法,
在第1存儲(chǔ)部中存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出,在第2存儲(chǔ)部中存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出,對(duì)從上述第1存儲(chǔ)部輸出的位和從上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并將運(yùn)算后的結(jié)果存儲(chǔ)在上述第1存儲(chǔ)部中。
其特征在于上述數(shù)據(jù)變換方法進(jìn)一步,選擇對(duì)從上述第1存儲(chǔ)部輸出的位和從上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算的運(yùn)算種類。
其特征在于上述數(shù)據(jù)變換方法,將可進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理。
另外,本發(fā)明的數(shù)據(jù)變換方法是一種使用通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法,其特征在于將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小。
其特征在于在上述存儲(chǔ)部中將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算。
其特征在于上述數(shù)據(jù)變換方法,使用具有將前一運(yùn)算的結(jié)果輸入的多個(gè)輸入端口的運(yùn)算部,通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,將上述存儲(chǔ)部設(shè)置在上述運(yùn)算部的各輸入端口之前。
根據(jù)本發(fā)明,在數(shù)據(jù)變換裝置中,將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此就可以使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,第1存儲(chǔ)部存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出,第2存儲(chǔ)部存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出,運(yùn)算部將對(duì)第1存儲(chǔ)部輸出的位和第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算后的結(jié)果存儲(chǔ)在第1存儲(chǔ)部中,由此就可以高效率地利用第1存儲(chǔ)部。
另外,在數(shù)據(jù)變換裝置中,選擇部選擇由運(yùn)算部進(jìn)行的運(yùn)算種類,由此就可以高效率地利用第1存儲(chǔ)部和第2存儲(chǔ)部。
另外,在數(shù)據(jù)變換裝置中,第1存儲(chǔ)部和第2存儲(chǔ)部是移位寄存器,由此就可以使電力消耗的特異狀態(tài)難以發(fā)生。
另外,在數(shù)據(jù)變換裝置中,將可進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,由此就可以對(duì)n位輸出的各位的輸出定時(shí)進(jìn)行調(diào)整。
根據(jù)本發(fā)明,在數(shù)據(jù)變換裝置中,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此就可以使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,存儲(chǔ)部在將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算,由此就可以對(duì)存儲(chǔ)部的輸出定時(shí)進(jìn)行調(diào)整。
另外,在數(shù)據(jù)變換裝置中,運(yùn)算部具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口,并且通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,存儲(chǔ)部被設(shè)置在運(yùn)算部的各輸入端口之前,由此就可以使向后一運(yùn)算的多個(gè)輸入的定時(shí)一致。
根據(jù)本發(fā)明,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此就可以使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,在數(shù)據(jù)變換裝置具備的第1存儲(chǔ)部中存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出,在第2存儲(chǔ)部中存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出,對(duì)從第1存儲(chǔ)部輸出的位與從第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并將運(yùn)算后的結(jié)果存儲(chǔ)在第1存儲(chǔ)部中,由此就可以高效率地利用第1存儲(chǔ)部。
另外,在數(shù)據(jù)變換方法中,選擇對(duì)從第1存儲(chǔ)部輸出的位與從第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算的運(yùn)算種類,由此就可以高效率的利用第1存儲(chǔ)部與第2存儲(chǔ)部。
另外,在數(shù)據(jù)變換方法中,將可進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,由此就可以對(duì)n位輸出的各位的輸出定時(shí)進(jìn)行調(diào)整。
根據(jù)本發(fā)明,在利用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此就可以使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,在存儲(chǔ)部中將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算,由此就可以對(duì)存儲(chǔ)部的輸出定時(shí)進(jìn)行調(diào)整。
另外,在數(shù)據(jù)變換方法中,使用具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口的運(yùn)算部,通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,將存儲(chǔ)部設(shè)置在運(yùn)算部的各輸入端口之前,由此就可以使向后一運(yùn)算的多個(gè)輸入的定時(shí)一致。
圖1是表示從實(shí)施方式1到5中的數(shù)據(jù)變換裝置的外觀的一個(gè)例子的圖。
圖2是表示從實(shí)施方式1到5中的數(shù)據(jù)變換裝置的硬件構(gòu)成的一個(gè)例子的圖。
圖3是表示成為DES運(yùn)算之基本的圈的構(gòu)造的圖。
圖4是表示混和函數(shù)(MF)的運(yùn)算處理之細(xì)節(jié)的圖。
圖5是表示圈的密鑰的生成處理的圖。
圖6是表示與實(shí)施方式1相關(guān)的數(shù)據(jù)變換算法的基本形式的圖。
圖7是表示與實(shí)施方式1相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖8是表示與實(shí)施方式1相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。
圖9是表示與實(shí)施方式2相關(guān)的數(shù)據(jù)變換算法的基本形式的圖。
圖10是表示與實(shí)施方式2相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖11是表示與實(shí)施方式2相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。
圖12是表示與實(shí)施方式3相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖13是表示與實(shí)施方式3相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。
圖14是表示與實(shí)施方式4相關(guān)的數(shù)據(jù)變換算法的基本形式的圖。
圖15是表示與實(shí)施方式4相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖16是表示與實(shí)施方式4相關(guān)的數(shù)據(jù)變換算法的基本形式的具體例的圖。
圖17是表示與實(shí)施方式4相關(guān)的數(shù)據(jù)變換算法的具體例的圖。
圖18是表示與實(shí)施方式4相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。
圖19是表示與實(shí)施方式5相關(guān)的數(shù)據(jù)變換算法的基本形式的圖。
圖20是表示與實(shí)施方式5相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖21是表示每位的運(yùn)算遲延的差異給電力消耗量帶來(lái)影響的例子的圖。
附圖標(biāo)記說(shuō)明100數(shù)據(jù)變換裝置、101,108輸入寄存器、102密鑰寄存器、103并行運(yùn)算器、104,113輸出寄存器、105,115輸入移位寄存器、106密鑰移位寄存器、107串行運(yùn)算器、109第1密鑰寄存器、110第1并行運(yùn)算器、111第2密鑰寄存器、112第2并行運(yùn)算器、114暫時(shí)寄存器、116第1密鑰移位寄存器、117第1串行運(yùn)算器、118第2密鑰移位寄存器、119第2串行運(yùn)算器、120第1選擇器、121第2選擇器、122m×n查找表、123m×1查找表、124OR門、125AND門、126XOR門、127觸發(fā)器、201混和函數(shù)、202,203異或運(yùn)算、204S-Box、901CRT顯示裝置、902K/B、903鼠標(biāo)、904FDD、905CDD、906打印機(jī)裝置、907掃描儀裝置、910系統(tǒng)單元、911CPU、912總線、913ROM、914RAM、915通信板、920磁盤裝置、921OS、922窗口系統(tǒng)、923程序組、924文件組、931電話機(jī)、932FAX機(jī)、940因特網(wǎng)、941網(wǎng)關(guān)、942LAN。
具體實(shí)施例方式
以下,利用附圖就本發(fā)明的實(shí)施方式進(jìn)行說(shuō)明。
圖1是表示下述實(shí)施方式中的數(shù)據(jù)變換裝置的外觀的一個(gè)例子的圖。
在圖1中,數(shù)據(jù)變換裝置100具備系統(tǒng)單元910、CRT(CathodeRay Tube)顯示裝置901、鍵盤(K/B)902、鼠標(biāo)903、致密盤裝置(CDD)905、打印機(jī)裝置906、掃描儀裝置907,它們用電纜連接起來(lái)。進(jìn)而,數(shù)據(jù)變換裝置100與FAX機(jī)932、電話機(jī)931用電纜進(jìn)行連接,另外,還經(jīng)由局域網(wǎng)(LAN)942、網(wǎng)關(guān)941連接到因特網(wǎng)940。
圖2是表示下述實(shí)施方式中的數(shù)據(jù)變換裝置的硬件構(gòu)成的一個(gè)例子的圖。
在圖2中,數(shù)據(jù)變換裝置100具有執(zhí)行程序的CPU(CentralProcessing Unit)911。CPU911經(jīng)由總線912與ROM913、RAM914、通信板915、CRT顯示裝置901、K/B902、鼠標(biāo)903、FDD(FlexibleDisk Drive)904、磁盤裝置920、CDD905、打印機(jī)裝置906、掃描儀裝置907連接起來(lái)。
RAM914是易失性存儲(chǔ)器的一例。ROM913、FDD904、CDD905、磁盤裝置920是非易失性存儲(chǔ)器的一個(gè)例子。它們是存儲(chǔ)裝置或者存儲(chǔ)部的一例。
通信板915被連接到FAX機(jī)932、電話機(jī)931、LAN942等。
例如,通信板915、K/B902、掃描儀裝置907、FDD904等是輸入部的一個(gè)例子。另外,例如,通信板915、CRT顯示裝置901等是輸出部的一個(gè)例子。
這里,通信板915并不限于連接到LAN942,還可以直接連接到因特網(wǎng)940或者ISDN(Integrated Services Digital Network)等WAN(廣域網(wǎng))。在直接連接到因特網(wǎng)940或者ISDN等WAN的情況下,數(shù)據(jù)變換裝置100被連接到因特網(wǎng)940或者ISDN等WAN,就不用網(wǎng)關(guān)941。
在磁盤裝置920中存儲(chǔ)著操作系統(tǒng)(OS)921、窗口系統(tǒng)922、程序組923、文件組924。程序組923通過(guò)CPU911、OS921、窗口系統(tǒng)922而得以執(zhí)行。
在上述程序組923中存儲(chǔ)著執(zhí)行在以下將敘述的實(shí)施方式的說(shuō)明中作為「~部」來(lái)說(shuō)明的機(jī)能的程序。程序由CPU911讀出執(zhí)行。
在以下將敘述的實(shí)施方式的說(shuō)明中,作為「~的判定結(jié)果」、「~的計(jì)算結(jié)果」、「~的處理結(jié)果」來(lái)說(shuō)明的內(nèi)容作為「~文件」被存儲(chǔ)在文件組924中。
另外,在以下將敘述的實(shí)施方式的說(shuō)明中進(jìn)行說(shuō)明的流程圖的箭頭部分主要表示數(shù)據(jù)的輸入輸出,為了該數(shù)據(jù)的輸入輸出,數(shù)據(jù)被記錄在磁盤裝置920、FD(Flexible Disk)、光盤、CD(致密盤)、MD(袖珍盤)、DVD(Digital Versatile Disk)等其他的記錄介質(zhì)中?;蛘?,通過(guò)信號(hào)線和其他的傳送介質(zhì)來(lái)進(jìn)行傳送。
另外,在以下將敘述的實(shí)施方式的說(shuō)明中作為「~部」來(lái)說(shuō)明的部件也可以用ROM913中所存儲(chǔ)的固件來(lái)實(shí)現(xiàn)?;蛘?,還可以僅用軟件、或者僅用硬件、或者軟件與硬件的組合、進(jìn)而與固件的組合來(lái)實(shí)施。
另外,實(shí)施以下將敘述的實(shí)施方式的程序也可以使用借助于磁盤裝置920、FD(Flexible Disk)、光盤、CD(致密盤)、MD(袖珍盤)、DVD(Digital Versatile Disk)等其他的記錄介質(zhì)的記錄裝置來(lái)存儲(chǔ)。
以下將敘述的實(shí)施方式能夠應(yīng)用于例如安裝了塊加密算法的裝置、方法、程序。
這里,就作為塊加密算法的一個(gè)例子的DES(Data EncryptionStandard)簡(jiǎn)單地進(jìn)行說(shuō)明。
圖3是表示作為DES運(yùn)算之基本的圈的構(gòu)造的圖。
DES將此圈反復(fù)16次,對(duì)64位的數(shù)據(jù)進(jìn)行加密或者解密。圈的輸入是64位的數(shù)據(jù)。此輸入數(shù)據(jù)被分成高位32位和低位32位,分別被稱之為L(zhǎng)和R的塊。圖中,n是計(jì)數(shù)編號(hào)。
Rn-1是被稱之為混和函數(shù)(MF)201的函數(shù)的輸入。在混和函數(shù)201上還輸入n圈的密鑰(Kn)。若進(jìn)行混和函數(shù)201的運(yùn)算處理,就輸出32位的數(shù)據(jù)。
接著,進(jìn)行混和函數(shù)201的32位輸出與Ln-1的異或運(yùn)算202。其結(jié)果為32位的Rn。32位的Ln與32位的Rn-1相同。將這些Ln和Rn合起來(lái)的64位的數(shù)據(jù)作為n圈的輸出得以輸出。
圈的輸出成為下一圈的輸入,再次進(jìn)行圈的運(yùn)算。通過(guò)將此操作反復(fù)16次,DES的運(yùn)算結(jié)束(準(zhǔn)確地講包含被稱之為轉(zhuǎn)置的運(yùn)算處理,但省略說(shuō)明)。
圖4是表示混和函數(shù)(MF)的運(yùn)算處理之細(xì)節(jié)的圖。
在混和函數(shù)上輸入32位的R。對(duì)該塊的位允許重復(fù)每6位分成8個(gè)塊。進(jìn)行其與48位圈的密鑰的異或運(yùn)算203。通過(guò)此操作得到8個(gè)6位的塊。對(duì)于此各塊,用所規(guī)定的被稱為S-Box204的6位輸入4位輸出的表來(lái)進(jìn)行換字處理,由此得到8個(gè)4位的塊。此32位的數(shù)據(jù)被改排(關(guān)于改排處理的細(xì)節(jié)省略說(shuō)明),而成為混和函數(shù)的輸出。
另外,圈的密鑰(Kn)如圖5那樣得以生成。
在DES的64位的密鑰之中,對(duì)除去奇偶校驗(yàn)的8位后的56位,進(jìn)行所規(guī)定的改排,分成2個(gè)28位的R和L。將其中一方的塊在圖5中表示為「28-bitKey」。此「28-bitKey」的寄存器通過(guò)圈向左回轉(zhuǎn)1位或者2位。將回轉(zhuǎn)后的「28-bitKey」之中24位按照規(guī)則進(jìn)行改排(P),而得到Kn一方的24位。Kn的另一方的24位也通過(guò)同樣的處理而得到。在下一圈中,通過(guò)再次將「28-bitKey」左回轉(zhuǎn),進(jìn)行改排,就能夠求得Kn+1。
這樣,塊加密算法將異或、表處理、改排之類的單純的運(yùn)算元件組合起來(lái)而構(gòu)成。
接著,就電力分析簡(jiǎn)單地進(jìn)行說(shuō)明。
塊加密以HW(硬件)或SW(軟件)的形式安裝來(lái)使用。能夠使用安裝了塊加密的裝置、方法、程序來(lái)進(jìn)行數(shù)據(jù)的保密。在作為HW或SW而安裝的加密算法中,測(cè)定HW或SW動(dòng)作中的瞬間的電力比較容易。例如,能夠?qū)?duì)半導(dǎo)體芯片供給電力的模式切斷,并在此插入適當(dāng)?shù)碾娮?,用示波器等測(cè)定該電阻兩端的電位差。可知根據(jù)此測(cè)定出的電力能夠抽取出各種各樣的信息(關(guān)于細(xì)節(jié)參照因特網(wǎng)<http://www.cryptography.com/resources/whitepapers/DPA-technical.html>)。在僅安裝了先前所述的DES的HW或SW中,通過(guò)預(yù)測(cè)MF內(nèi)的S-Box的輸出值,就可以通過(guò)上述文獻(xiàn)的方法求出Kn。
實(shí)施方式1.
如前述那樣,異或、表處理、改排之類的單純的運(yùn)算元件組合起來(lái),構(gòu)成塊加密算法。在本實(shí)施方式中,用1位輸出的元件構(gòu)成這種運(yùn)算進(jìn)行安裝。但是,本實(shí)施方式不僅可應(yīng)用于塊加密算法,還可以應(yīng)用于其他加密算法等。
圖6是表示涉及本實(shí)施方式的數(shù)據(jù)變換算法的基本形式的圖,圖7是表示涉及本實(shí)施方式的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖6以及圖7表示加密算法的一部分,圖6的算法為基本形式。即,對(duì)32位的密鑰與32位的輸入數(shù)據(jù)的異或進(jìn)行并行運(yùn)算,而得到32位的輸出數(shù)據(jù)。在此圖中,32位的密鑰被存儲(chǔ)在密鑰寄存器102中,32位的輸入數(shù)據(jù)被存儲(chǔ)在輸入寄存器101中。32位的密鑰與32位的輸入數(shù)據(jù)的異或,由并行運(yùn)算器103進(jìn)行運(yùn)算,運(yùn)算結(jié)果被存儲(chǔ)在輸出寄存器104中。在本實(shí)施方式中,將此基本形式的算法如圖7的算法那樣安裝并進(jìn)行計(jì)算。將密鑰保持于32位的密鑰移位寄存器(第2存儲(chǔ)部)106,將輸入數(shù)據(jù)保持于32位的輸入移位寄存器(第1存儲(chǔ)部)105,將密鑰與輸入數(shù)據(jù)各自的1位作為對(duì)串行運(yùn)算器(運(yùn)算部)107的輸入,并取異或1位,使之移位到輸入移位寄存器105的左端。密鑰移位寄存器106進(jìn)行循環(huán)右移位。通過(guò)將其進(jìn)行32次,32位的運(yùn)算結(jié)束,最終結(jié)果被保持在輸入移位寄存器105中。
圖8是表示涉及本實(shí)施方式的數(shù)據(jù)變換裝置的動(dòng)作一例的流程圖。圖中、「+」是表示異或運(yùn)算。
涉及本實(shí)施方式的數(shù)據(jù)變換裝置,首先,對(duì)輸入移位寄存器105輸入32位的數(shù)據(jù)(步驟S101),對(duì)密鑰移位寄存器106輸入32位的密鑰(步驟S102)。接著,將輸入移位寄存器105向右移動(dòng)1位(步驟S103),從輸入移位寄存器105輸出1位(步驟S104)。將從輸入移位寄存器105輸出的位設(shè)為i。接著,將密鑰移位寄存器106向右移動(dòng)1位(步驟S105),從密鑰移位寄存器106輸出1位(步驟S106)。將從密鑰移位寄存器106輸出的位設(shè)為k。然后,用串行運(yùn)算器107進(jìn)行i與k的異或運(yùn)算(步驟S107),將運(yùn)算結(jié)果輸入到輸入移位寄存器105(步驟S108)。在密鑰移位寄存器106中輸入k(步驟S109)。按32位相應(yīng)地反復(fù)從步驟S103到步驟S109。
圖8所示的數(shù)據(jù)變換裝置的動(dòng)作,一部分處理的順序既可以替換,也可以將一部分處理與其他的處理并行執(zhí)行。
這樣,在本實(shí)施方式中,通過(guò)按順序(順次或者串行)地執(zhí)行2位輸入1位輸出的異或,而完結(jié)32位的密鑰與32位的輸入數(shù)據(jù)的異或運(yùn)算。
在本實(shí)施方式中,表示了“異或”(XOR)的例子,但利用“或”(OR)、“與”(AND)也能夠同樣地構(gòu)成。另外,在算術(shù)加法運(yùn)算、算術(shù)減法運(yùn)算、算術(shù)乘積的情況下,以最小的運(yùn)算單位來(lái)進(jìn)行運(yùn)算。具體而言,在算術(shù)加法運(yùn)算中,對(duì)1位+1位以2位輸出來(lái)處理,在算術(shù)減法運(yùn)算中對(duì)2位-1位以1位輸出來(lái)處理,在算術(shù)乘法運(yùn)算中,對(duì)1位×1位以1位輸出來(lái)處理。
若如這種構(gòu)成那樣,安裝算法,則反復(fù)進(jìn)行最小單位的運(yùn)算,而具有能夠減小瞬時(shí)電力之類的效果。另外,由于運(yùn)算結(jié)果一邊逐個(gè)位進(jìn)行移位一邊進(jìn)行確定,所以就具有以下效果造出特征性的電力消耗狀態(tài)的可能性變低,而不會(huì)使許多位一次發(fā)生狀態(tài)變化。這種效果就使電力分析變得困難。
在本實(shí)施方式中,串行運(yùn)算器107進(jìn)行每1位的串行運(yùn)算,但即便是每2位或3位的運(yùn)算,也可以取得如上述那樣的效果。
另外,在本實(shí)施方式中,借助于HW的構(gòu)成來(lái)實(shí)現(xiàn)串行運(yùn)算,但也可以例如創(chuàng)建進(jìn)行每1位的串行運(yùn)算的函數(shù),并反復(fù)執(zhí)行此函數(shù),由此借助于SW的構(gòu)成來(lái)實(shí)現(xiàn)串行運(yùn)算。
另外,在本實(shí)施方式中,使用移位寄存器,使串行運(yùn)算器107的運(yùn)算結(jié)果存儲(chǔ)在輸入移位寄存器105中,但也可以使其存儲(chǔ)在其他的寄存器中。在此情況下,輸入移位寄存器105以及密鑰移位寄存器106也可以是移位寄存器以外種類的寄存器。
另外,在本實(shí)施方式中,使用了32位的數(shù)據(jù),還可以使用64位的數(shù)據(jù)等其他位數(shù)的數(shù)據(jù)。
如以上那樣,利用本實(shí)施方式,在數(shù)據(jù)變換裝置中,通過(guò)將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,就可以使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,第1存儲(chǔ)部存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出,第2存儲(chǔ)部存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出,運(yùn)算部使對(duì)第1存儲(chǔ)部輸出的位和第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算后的結(jié)果存儲(chǔ)在第1存儲(chǔ)部中,從而就可以高效率地利用第1存儲(chǔ)部。
另外,在數(shù)據(jù)變換裝置中,第1存儲(chǔ)部和第2存儲(chǔ)部是移位寄存器,由此就可以使其難以發(fā)生電力消耗的特異狀態(tài)。
在本實(shí)施方式中,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此就可以使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,在數(shù)據(jù)變換裝置具備的第1存儲(chǔ)部中存儲(chǔ)多個(gè)位并逐個(gè)位進(jìn)行輸出,在第2存儲(chǔ)部中存儲(chǔ)其他的多個(gè)位并逐個(gè)位進(jìn)行輸出,對(duì)從第1存儲(chǔ)部輸出的位與從第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并將運(yùn)算后的結(jié)果存儲(chǔ)在第1存儲(chǔ)部中,由此就可以高效率地利用第1存儲(chǔ)部。
如以上那樣,與本實(shí)施方式相關(guān)的裝置,是一種安裝加密算法并對(duì)輸入數(shù)據(jù)進(jìn)行加密、解密的裝置,其中,在安裝加密算法之際,將加密算法細(xì)分化,分解至1位輸出的單位運(yùn)算元件,設(shè)置保持這些元件的結(jié)果的機(jī)構(gòu),并按順序使其動(dòng)作而使運(yùn)算完結(jié)。
實(shí)施方式2.
圖9是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換算法的基本形式的圖,圖10是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖9以及圖10表示了加密算法的一部分,圖9的算法為基本形式。即,對(duì)32位的輸入數(shù)據(jù)與32位的密鑰的“異或”進(jìn)行并行運(yùn)算,接著,對(duì)此運(yùn)算所得到的數(shù)據(jù)與其他32位的密鑰的“或”進(jìn)行并行運(yùn)算,輸出32位的數(shù)據(jù)。在該圖中,32位的輸入數(shù)據(jù)被存儲(chǔ)在輸入寄存器108中,32位的密鑰被存儲(chǔ)在第1密鑰寄存器109中,其他32位的密鑰被存儲(chǔ)在第2密鑰寄存器111中。32位的輸入數(shù)據(jù)與32位的密鑰的“異或”通過(guò)第1并行運(yùn)算器110來(lái)運(yùn)算,其運(yùn)算結(jié)果與其他32位的密鑰的“或”通過(guò)第2并行運(yùn)算器112來(lái)運(yùn)算。此“或”運(yùn)算結(jié)果被存儲(chǔ)在輸出寄存器113中。在這種算法的情況下,由于“異或”和“或”運(yùn)算負(fù)荷較低,所以大多連續(xù)進(jìn)行運(yùn)算(前后連結(jié)的運(yùn)算),但在本實(shí)施方式中如圖10所示,在“異或”和“或”之間設(shè)置暫時(shí)寄存器114,一旦保持?jǐn)?shù)據(jù)后,從前一運(yùn)算轉(zhuǎn)移到后一運(yùn)算。
圖11是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。圖中,「+」表示異或運(yùn)算,「|」表示或運(yùn)算。
與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置,首先,在輸入寄存器108上輸入32位的數(shù)據(jù)(步驟S201)。將輸入寄存器108上所輸入的數(shù)據(jù)設(shè)為I。然后,在第1密鑰寄存器109上輸入32位的密鑰(步驟S202)。將第1密鑰寄存器109上所輸入的密鑰設(shè)為K。接著,從輸入寄存器108輸出I(步驟S203)。接著,從第1密鑰寄存器109輸出K(步驟S204)。然后,用第1并行運(yùn)算器110進(jìn)行I與K的“異或”運(yùn)算(步驟S205),將運(yùn)算結(jié)果輸入到暫時(shí)寄存器114(步驟S206)。將被輸入到暫時(shí)寄存器114的數(shù)據(jù)設(shè)為I′。
在第2密鑰寄存器111上輸入其他32位的密鑰(步驟S207)。將第2密鑰寄存器111上所輸入的密鑰設(shè)為K′。在暫時(shí)寄存器114將32位的運(yùn)算結(jié)果I′全部的位存儲(chǔ)起來(lái)以后,從暫時(shí)寄存器114輸出I′(步驟S208)。接著,從第2密鑰寄存器111輸出K′(步驟S209)。然后,用第2并行運(yùn)算器112進(jìn)行I′與K′的或運(yùn)算(步驟S210),將運(yùn)算結(jié)果輸入到輸出寄存器113(步驟S211)。
圖11所示的數(shù)據(jù)變換裝置的動(dòng)作,一部分處理的順序既可以替換,也可以將一部分處理與其他的處理并行執(zhí)行。另外,第1密鑰寄存器與第2密鑰寄存器上所輸入的密鑰還可以是同一密鑰。
本實(shí)施方式中,表示了“異或”(XOR)和“或”(OR)的組合的例子,但包含“與”(AND)等其他運(yùn)算的組合也能夠同樣地構(gòu)成。
過(guò)進(jìn)行這種安裝,針對(duì)每個(gè)運(yùn)算不同的處理時(shí)間的偏差就一次用寄存器接受,使定時(shí)恒定化。由此就具有防止定時(shí)的延遲向后級(jí)傳播的效果。如果定時(shí)恒定化,就能夠減小伴隨運(yùn)算的過(guò)渡狀態(tài)(直到最終結(jié)果確定為止發(fā)生的不穩(wěn)定的運(yùn)算結(jié)果的狀態(tài)),進(jìn)一步,還具有減小電力的效果。這種效果就使電力分析變得困難。
在本實(shí)施方式中,使用了32位的數(shù)據(jù),但也可以使用64位的數(shù)據(jù)等其他位數(shù)的數(shù)據(jù)。
如以上那樣,利用本實(shí)施方式,在數(shù)據(jù)變換裝置中,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,從而就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,存儲(chǔ)部在將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將全部位提供給后一運(yùn)算,由此就可以對(duì)存儲(chǔ)部的輸出定時(shí)進(jìn)行調(diào)整。
在本實(shí)施方式中,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,從而就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,在存儲(chǔ)部中將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算,由此就可以對(duì)存儲(chǔ)部的輸出定時(shí)進(jìn)行調(diào)整。
如以上那樣,與本實(shí)施方式相關(guān)的裝置是一種安裝加密算法,并對(duì)輸入數(shù)據(jù)進(jìn)行加密、解密的裝置,其中,在加密算法的一部分,基本運(yùn)算連續(xù)進(jìn)行的情況下,在連續(xù)進(jìn)行的基本運(yùn)算之間,設(shè)置保持運(yùn)算結(jié)果的機(jī)構(gòu)。
實(shí)施方式3.
在實(shí)施方式1的安裝方式中,能夠設(shè)置如在實(shí)施方式2中已說(shuō)明的圖10的暫時(shí)寄存器114那樣的臨時(shí)的寄存器。
圖12是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成一例的圖。
在圖12中,輸入數(shù)據(jù)被存儲(chǔ)在32位的輸入移位寄存器(第1存儲(chǔ)部)115中,密鑰被存儲(chǔ)在32位的第1密鑰移位寄存器(第2存儲(chǔ)部)116和第2密鑰移位寄存器(第2存儲(chǔ)部)118中。第1串行運(yùn)算器(運(yùn)算部)117對(duì)密鑰與輸入數(shù)據(jù)各自的1位進(jìn)行異或運(yùn)算,第2串行運(yùn)算器(運(yùn)算部)119對(duì)密鑰與輸入數(shù)據(jù)各自的1位進(jìn)行或運(yùn)算。第1選擇器(選擇部)120選擇第1串行運(yùn)算器117與第2串行運(yùn)算器119中的某一個(gè),第2選擇器(選擇部)121選擇第1密鑰移位寄存器116與第2密鑰移位寄存器118中的某一個(gè)。這樣,在本實(shí)施方式中,按定時(shí)切換“異或”和“或”的輸出,并輸入到輸入數(shù)據(jù)用的32位的移位寄存器。密鑰則準(zhǔn)備正與副的移位寄存器,并按定時(shí)進(jìn)行切換,輸入到密鑰的正移位寄存器。
圖13是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。圖中,「+」表示異或運(yùn)算,「|」表示或運(yùn)算。
與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置,首先,在輸入移位寄存器115上輸入32位的數(shù)據(jù)(步驟S301),在第1密鑰移位寄存器116上輸入32位的密鑰(步驟S302)。接著,用第1選擇器120選擇串行運(yùn)算器(步驟S303)。在這里,設(shè)第1串行運(yùn)算器117被選擇。然后,用第2選擇器121選擇密鑰移位寄存器(步驟S304)。在這里,設(shè)第1密鑰移位寄存器116被選擇。
接著,將輸入移位寄存器115向右移動(dòng)1位(步驟S305),從輸入移位寄存器115輸入1位(步驟S306)。將從輸入移位寄存器115輸出的位設(shè)為i。接著,將第1密鑰移位寄存器116向右移動(dòng)1位(步驟S307),從第1密鑰移位寄存器116輸出1位(步驟S308)。將從第1密鑰移位寄存器116輸出的位設(shè)為k。然后,用在步驟S303中所選擇的在第1串行運(yùn)算器117進(jìn)行i與k的異或運(yùn)算(步驟S309),將運(yùn)算結(jié)果輸入到輸入移位寄存器115(步驟S310)。由于在步驟S304中第1密鑰移位寄存器116被選擇,所以在第1密鑰移位寄存器116中輸入k(步驟S313)。按32位相應(yīng)地反復(fù)從步驟S305到步驟S313。當(dāng)32位的異或的串行運(yùn)算結(jié)束時(shí),返回到步驟S303。
接著,再次用第1選擇器120選擇串行運(yùn)算器(步驟S303)。在這里,設(shè)第2串行運(yùn)算器119被選擇。然后,用第2選擇器121對(duì)密鑰移位寄存器進(jìn)行選擇(步驟S304)。在這里,設(shè)第2密鑰移位寄存器118被選擇。
接著,將輸入移位寄存器115向右移動(dòng)1位(步驟S305),從輸入移位寄存器115輸出1位(步驟S306)。將從輸入移位寄存器115輸出的位設(shè)為i。接著,將第1密鑰移位寄存器116向右移動(dòng)1位(步驟S307),從第1密鑰移位寄存器116輸出1位(步驟S308)。將從第1密鑰移位寄存器116輸出的位設(shè)為k。然后,用在步驟S303中所選擇的第2串行運(yùn)算器119進(jìn)行i與k的或運(yùn)算(步驟S311),將運(yùn)算結(jié)果輸入到輸入移位寄存器115(步驟S312)。由于在步驟S304中第2密鑰移位寄存器118被選擇,所以從第2密鑰移位寄存器118輸出1位(步驟S314)。將從第2密鑰移位寄存器118輸出的位設(shè)為k′。在第1密鑰移位寄存器116中輸入k′(步驟S315)。按32位相應(yīng)地反復(fù)從步驟S305到步驟S315。
圖13所示的數(shù)據(jù)變換裝置的動(dòng)作,一部分處理的順序既可以替換,也可以將一部分處理與其他的處理并行執(zhí)行。另外,在利用圖12所示的構(gòu)成的情況下,由于用第1選擇器120選擇來(lái)自串行運(yùn)算器的「輸出」,所以實(shí)際上步驟S309和步驟S311兩方得以執(zhí)行。另外,在利用圖12所示的構(gòu)成的情況下,在步驟S304中第2選擇器121所選擇的密鑰移位寄存器保持的密鑰并不是在緊跟其之后的運(yùn)算中使用,而使首先被輸入到第1密鑰移位寄存器116,在下一32位的運(yùn)算中使用。為取得與本實(shí)施方式同樣的效果,也可以以第2選擇器121選擇從密鑰移位寄存器向串行運(yùn)算器的輸出的方式來(lái)構(gòu)成數(shù)據(jù)變換裝置。
在本實(shí)施方式中,使用了32位的數(shù)據(jù),但也可以使用64位的數(shù)據(jù)等其他位數(shù)的數(shù)據(jù)。
如以上那樣,利用本實(shí)施方式,在數(shù)據(jù)變換裝置中,選擇部選擇由運(yùn)算部進(jìn)行的運(yùn)算種類,由此就可以高效率地利用第1存儲(chǔ)部與第2存儲(chǔ)部。
在本實(shí)施方式中,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,通過(guò)選擇對(duì)從第1存儲(chǔ)部輸出的位與從第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算的運(yùn)算種類,就可以高效率地利用第1存儲(chǔ)部與第2存儲(chǔ)部。
實(shí)施方式4.
圖14是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換算法的基本形式的圖,圖15是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成一例的圖。
圖14以及圖15表示了加密算法的一部分,圖14的算法為基本形式。圖14的算法表示m位輸入、n位輸出的表處理。在該圖中,m位的輸入數(shù)據(jù)被輸入到m×n查找表(m位輸入n位輸出并行運(yùn)算器)122,并變換成n位的輸出數(shù)據(jù)后一次輸出。圖中,LUT表示查找表。在本實(shí)施方式中,將此基本形式的算法如圖15的算法那樣進(jìn)行安裝。即,準(zhǔn)備n個(gè)m位輸入、1位輸出的m×1查找表(m位輸入1位輸出串行運(yùn)算器)123,使定時(shí)相互不同來(lái)進(jìn)行n個(gè)表處理,并用未圖示的寄存器保持其輸出。
在圖16以及圖17的概念圖中示出m=2、n=2時(shí)的例子。圖16對(duì)應(yīng)上述的圖14,圖17對(duì)應(yīng)上述的圖15。
在圖16中,在m×n查找表122的輸入為「00」的情況下,輸出為「01」。同樣,在輸入為「01」、「10」、「11」的情況下,與各自的輸入相對(duì)的輸出順次為「00」、「10」、「11」。與此相對(duì),在圖17中,在一方的m×1查找表123中,與輸入「00」、「01」、「10」、「11」相對(duì)的輸出順次為「0」、「0」、「1」、「1」。而且,在另一方的m×1查找表123中,與輸入「00」、「01」、「10」、「11」相對(duì)的輸出順次為「1」、「0」、「0」、「1」。這樣,各自的m×1查找表123輸出m×n查找表122輸出的n位之中的某一位。
圖18是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的動(dòng)作的一個(gè)例子的流程圖。
與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置,在m×1查找表123上輸入m位的數(shù)據(jù)(步驟S401),輸出1位(步驟S402)。將其反復(fù)n次,最后將全部的輸出存儲(chǔ)在n位的寄存器等中。
通過(guò)進(jìn)行這種安裝,在單位定時(shí)m位輸入、1位輸出的表處理就僅進(jìn)行一次。由此,就具有防止n位輸出的情況下的各位的定時(shí)偏差,使定時(shí)恒定化的效果。另外,由于為1位輸出,所以能夠抑制每單位時(shí)間的電力消耗,就具有造出特征性的電力消耗狀態(tài)的可能性變低之類的效果。這種效果使電力分析變得困難。
在本實(shí)施方式中,既可以用存儲(chǔ)器來(lái)進(jìn)行表處理,也可以不使用存儲(chǔ)器,而用以1位輸出的方式構(gòu)成的邏輯元件來(lái)進(jìn)行。
如以上那樣,利用本實(shí)施方式,在數(shù)據(jù)變換裝置中,將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,從而就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,將可以進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,由此就可以對(duì)n位輸出的各位的輸出定時(shí)進(jìn)行調(diào)整。
在本實(shí)施方式中,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法中,將可進(jìn)行多個(gè)位的并行運(yùn)算的處理,用串行運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小,從而就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,將可以進(jìn)行m(m>1)位輸入n(n>1)位輸出的并行運(yùn)算的處理,用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,由此就可以對(duì)n位輸出的各位的輸出定時(shí)進(jìn)行調(diào)整。
如以上那樣,與本實(shí)施方式相關(guān)的裝置是一種安裝加密算法,對(duì)輸入數(shù)據(jù)進(jìn)行加密、解密的裝置,其中,在加密算法的一部分用表處理來(lái)進(jìn)行的情況下,將表分成1位輸出的多個(gè)小表,通過(guò)使定時(shí)相互不同進(jìn)行多次與其相關(guān)的小表處理的安裝方式,使表處理完結(jié)。
實(shí)施方式5.
圖19是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換算法的基本形式的圖,圖20是表示與本實(shí)施方式相關(guān)的數(shù)據(jù)變換裝置的構(gòu)成的一個(gè)例子的圖。
圖19以及圖20表示安裝了加密算法的一部分的電路,圖19的算法為基本形式。如圖19以及圖20那樣的電路是表處理等邏輯變復(fù)雜時(shí)的電路。在圖19中,在6位的輸入同時(shí)進(jìn)入的情況下,在AND門(運(yùn)算部)125a的輸入中,向2個(gè)輸入端口輸入的定時(shí)錯(cuò)開(kāi)。另外,AND門(運(yùn)算部)125a的輸出定時(shí)與OR門(運(yùn)算部)124b的輸出定時(shí)錯(cuò)開(kāi)。因而,在圖20中,在XOR門(運(yùn)算部)126a的各輸入端口之前設(shè)置觸發(fā)器(存儲(chǔ)部)127,對(duì)向XOR門(運(yùn)算部)126a的各輸入端口的輸入定時(shí)進(jìn)行調(diào)整。
圖20所示的電路例如能夠用作在實(shí)施方式4中所說(shuō)明的圖15的m×1查找表。在此情況下,還可以如圖20那樣,設(shè)置接受XOR門(運(yùn)算部)126a的1位輸出的觸發(fā)器127c。
另外,為了調(diào)整向AND門125a的2個(gè)輸入端口的輸入定時(shí),還可以將未圖示的觸發(fā)器設(shè)置在AND門125a的各輸入端口之前。進(jìn)而,還可以在全部的邏輯元件的各輸入端口之前設(shè)置觸發(fā)器。
通過(guò)進(jìn)行這種安裝,就可防止電路元件中的定時(shí)偏差,具有使定時(shí)恒定化的效果。另外,由于定時(shí)恒定化,所以能夠減小伴隨運(yùn)算的過(guò)渡狀態(tài)(直到最終結(jié)果確定為止發(fā)生的不穩(wěn)定的運(yùn)算結(jié)果的狀態(tài)),進(jìn)一步,還具有減小電力的效果。這種效果就使電力分析變得困難。
如以上那樣,利用本實(shí)施方式,在數(shù)據(jù)變換裝置中,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換裝置中,運(yùn)算部具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口,并且通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,存儲(chǔ)部被設(shè)置在運(yùn)算部的各輸入端口之前,由此就可以使向后一運(yùn)算的多個(gè)輸入的定時(shí)一致。
在本實(shí)施方式中,在使用數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法,將可進(jìn)行前后連結(jié)的運(yùn)算的處理,用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,由此使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小,就可以使電力分析變得困難。
另外,在數(shù)據(jù)變換方法中,使用具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口的運(yùn)算部,通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,將存儲(chǔ)部設(shè)置在運(yùn)算部的各輸入端口之前,由此就可以使向后一運(yùn)算的多個(gè)輸入的定時(shí)一致。
如以上那樣,與本實(shí)施方式相關(guān)的裝置是一種安裝加密算法,對(duì)輸入數(shù)據(jù)進(jìn)行加密、解密的裝置,其中,在加密算法用一系列的邏輯元件構(gòu)成的情況下,在所輸入的信號(hào)的定時(shí)錯(cuò)開(kāi)的邏輯元件的輸出級(jí)設(shè)置保持輸出的機(jī)構(gòu),并且,在與上述邏輯元件相同的定時(shí)相當(dāng)?shù)倪壿嬙妮敵黾?jí)也設(shè)置保持輸出的機(jī)構(gòu),進(jìn)而,設(shè)置接受最終輸出的1位輸出的保持機(jī)構(gòu)。
權(quán)利要求
1.一種通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置,其特征在于通過(guò)將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小。
2.按照權(quán)利要求1所述的數(shù)據(jù)變換裝置,其特征在于上述數(shù)據(jù)變換裝置具備第1存儲(chǔ)部,存儲(chǔ)多個(gè)位并逐位進(jìn)行輸出;第2存儲(chǔ)部,存儲(chǔ)其他的多個(gè)位并逐位進(jìn)行輸出;以及運(yùn)算部,對(duì)上述第1存儲(chǔ)部輸出的位和上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并使運(yùn)算后的結(jié)果存儲(chǔ)在上述第1存儲(chǔ)部中。
3.按照權(quán)利要求2所述的數(shù)據(jù)變換裝置,其特征在于上述數(shù)據(jù)變換裝置還具備選擇部,選擇由上述運(yùn)算部進(jìn)行的運(yùn)算種類。
4.按照權(quán)利要求2所述的數(shù)據(jù)變換裝置,其特征在于上述第1存儲(chǔ)部和上述第2存儲(chǔ)部是移位寄存器。
5.按照權(quán)利要求1所述的數(shù)據(jù)變換裝置,其特征在于上述數(shù)據(jù)變換裝置將可進(jìn)行m位輸入n位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,其中m>1,n>1。
6.一種通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置,其特征在于將可進(jìn)行前后連結(jié)的運(yùn)算的處理,通過(guò)用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小。
7.按照權(quán)利要求6所述的數(shù)據(jù)變換裝置,其特征在于上述存儲(chǔ)部在將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算。
8.按照權(quán)利要求6所述的數(shù)據(jù)變換裝置,其特征在于上述數(shù)據(jù)變換裝置具備運(yùn)算部,具有輸入前一運(yùn)算的結(jié)果的多個(gè)輸入端口,并且通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,上述存儲(chǔ)部被設(shè)置在上述運(yùn)算部的各輸入端口之前。
9.一種使用通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法,其特征在于通過(guò)將可進(jìn)行多個(gè)位的并行運(yùn)算的處理用串行運(yùn)算來(lái)進(jìn)行處理,使每單位時(shí)間的電力消耗量比并行運(yùn)算時(shí)的電力消耗量減小。
10.按照權(quán)利要求9所述的數(shù)據(jù)變換方法,其特征在于上述數(shù)據(jù)變換方法,在第1存儲(chǔ)部中存儲(chǔ)多個(gè)位并逐位進(jìn)行輸出,在第2存儲(chǔ)部中存儲(chǔ)其他的多個(gè)位并逐位進(jìn)行輸出,對(duì)從上述第1存儲(chǔ)部輸出的位和從上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算,并將運(yùn)算后的結(jié)果存儲(chǔ)在上述第1存儲(chǔ)部中。
11.按照權(quán)利要求10所述的數(shù)據(jù)變換方法,其特征在于上述數(shù)據(jù)變換方法進(jìn)一步,選擇對(duì)從上述第1存儲(chǔ)部輸出的位和從上述第2存儲(chǔ)部輸出的位進(jìn)行運(yùn)算的運(yùn)算種類。
12.按照權(quán)利要求9所述的數(shù)據(jù)變換方法,其特征在于上述數(shù)據(jù)變換方法,將可進(jìn)行m位輸入n位輸出的并行運(yùn)算的處理用m位輸入1位輸出的串行運(yùn)算來(lái)進(jìn)行處理,其中m>1,n>1。
13.一種使用通過(guò)多個(gè)位的運(yùn)算組合對(duì)數(shù)據(jù)進(jìn)行變換的數(shù)據(jù)變換裝置的數(shù)據(jù)變換方法,其特征在于將可進(jìn)行前后連結(jié)的運(yùn)算的處理,通過(guò)用在前一運(yùn)算與后一運(yùn)算之間設(shè)置存儲(chǔ)部并經(jīng)過(guò)分離后的運(yùn)算來(lái)進(jìn)行處理,使每單位時(shí)間的電力消耗量比前后連結(jié)的運(yùn)算時(shí)的電力消耗量減小。
14.按照權(quán)利要求13所述的數(shù)據(jù)變換方法,其特征在于在上述存儲(chǔ)部中將前一運(yùn)算的結(jié)果中所包含的全部位存儲(chǔ)起來(lái)以后,將該全部位提供給后一運(yùn)算。
15.按照權(quán)利要求13所述的數(shù)據(jù)變換方法,其特征在于上述數(shù)據(jù)變換方法,使用具有將前一運(yùn)算的結(jié)果輸入的多個(gè)輸入端口的運(yùn)算部,通過(guò)該多個(gè)輸入端口的輸入來(lái)進(jìn)行后一運(yùn)算,將上述存儲(chǔ)部設(shè)置在上述運(yùn)算部的各輸入端口之前。
全文摘要
本發(fā)明的目的例如是將與數(shù)據(jù)的加密或者解密有關(guān)的運(yùn)算的電力消耗量減小,以使電力分析變得困難。在進(jìn)行32位的輸入數(shù)據(jù)與32位的密鑰的異或運(yùn)算,并得到32位的輸出數(shù)據(jù)的情況下,分別將輸入數(shù)據(jù)保持在32位的輸入移位寄存器(105)中,將密鑰保持在32位的密鑰移位寄存器(106)中,并將輸入數(shù)據(jù)與密鑰各自的1位作為對(duì)串行運(yùn)算器(107)的輸入,取異或1位并使之移位到輸入移位寄存器(105)的左端。密鑰移位寄存器(106)進(jìn)行循環(huán)右移位。通過(guò)將其進(jìn)行32次,32位的運(yùn)算結(jié)束,最終結(jié)果被保持在輸入移位寄存器(105)中。
文檔編號(hào)G06F7/00GK101044535SQ20058003622
公開(kāi)日2007年9月26日 申請(qǐng)日期2005年3月16日 優(yōu)先權(quán)日2005年3月16日
發(fā)明者佐藤恒夫, 山田敬喜 申請(qǐng)人:三菱電機(jī)株式會(huì)社