亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

密碼處理裝置、密碼處理方法以及計算機程序的制作方法

文檔序號:7598874閱讀:307來源:國知局
專利名稱:密碼處理裝置、密碼處理方法以及計算機程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種密碼處理裝置、一種密碼處理方法以及一種計算機程序。更具體的是,本發(fā)明涉及一種密碼處理裝置、一種密碼處理方法以及一種計算機程序,其中通過控制處理過程定時(例如基于隨機數(shù)生成的調(diào)制時鐘信號而存儲由密碼處理所生成的中間數(shù)據(jù)的定時)來增加對密碼分析形成的阻力。
背景技術(shù)
隨著近來網(wǎng)絡(luò)通信和電子商務(wù)的發(fā)展,保密性維護正變成重要問題。一種用于維護保密性的方法是密碼技術(shù)。實際上當(dāng)前執(zhí)行的通信運用了多種加密方案。
實際上在使用這樣一種系統(tǒng),其中在諸如IC卡那樣的小裝置中嵌入了密碼處理模塊,并在IC卡與用作數(shù)據(jù)閱讀器/記錄器的閱讀器/記錄器之間執(zhí)行數(shù)據(jù)發(fā)送/接收。該系統(tǒng)執(zhí)行驗證處理或加密,并對發(fā)送/接收的數(shù)據(jù)解密。
例如,該密碼處理模塊執(zhí)行輸入明碼文及輸出密碼文的數(shù)據(jù)加密處理,或輸入密碼文及輸出明碼文的數(shù)據(jù)解密處理。這些密碼處理包括由例如組成密碼處理模塊的半導(dǎo)體模塊之類的硬件來執(zhí)行的電處理。因此,當(dāng)半導(dǎo)體模塊執(zhí)行密碼處理時,存在對通過分析耗損功率來分析應(yīng)用于該密碼處理的密鑰和算法的擔(dān)心。
例如,在諸如IC卡那樣的算法處理單元上進行的攻擊(即密碼分析攻擊)包括通過分析處理時間而估計保密信息的定時攻擊(TATiming Attack)、通過監(jiān)控密碼處理期間的功率耗損而估計保密信息的簡單功率分析(SPASimple Power Analysis)、通過測量密碼處理期間用于大量數(shù)據(jù)的耗損功率以及統(tǒng)計地分析所測量的數(shù)據(jù)的差動功率分析(DPADifferential PowerAnalysis)、以及其他攻擊。
通常的密碼處理裝置由數(shù)據(jù)輸入單元、存儲單元、密碼處理單元以及數(shù)據(jù)輸出單元所構(gòu)成。例如,當(dāng)將要加密輸入數(shù)據(jù)時,該裝置以下述方式運行。即,從數(shù)據(jù)輸入單元輸入明碼文到密碼處理單元。在密碼處理單元中用于執(zhí)行諸如DES(Data Encryption Standard,數(shù)據(jù)加密標準)那樣密碼處理算法的處理單元根據(jù)預(yù)定密碼算法處理數(shù)據(jù)。
在密碼處理算法每個執(zhí)行階段生成的中間數(shù)據(jù)連續(xù)存儲在存儲單元中,而且獲得存儲單元中所存儲的中間數(shù)據(jù)來根據(jù)預(yù)定處理順序執(zhí)行密碼處理。由于密碼處理單元完成了系列預(yù)定的密碼處理算法,所以從輸出單元輸出所生成的密碼文。
在密碼處理裝置中,在加密處理開始之后開始特定加密中間處理過程所花費的時間通常是常數(shù)。在以下所提及的非專利文獻1中詳細地描述一種密碼算法的執(zhí)行方法。
密碼處理裝置與對通過運用如上所述的稱為簡單功率分析和差動功率分析的加密方法來分析施加到密碼處理的密鑰信息和算法的擔(dān)心有關(guān)。
簡單功率分析和差動功率分析是這樣的密碼分析方法,該密碼分析方法通過密碼處理裝置測量在密碼處理期間的各種時刻的功率耗損,以及通過利用在當(dāng)保存在諸如當(dāng)前存儲器和寄存器那樣的半導(dǎo)體器件中的值產(chǎn)生變化時以及在當(dāng)該保存值不產(chǎn)生變化時二者之間存在耗損功率差值的特性來識別由密碼處理裝置保持的、諸如密碼密鑰那樣的保密信息。
可以例舉兩點作為有效地滿足簡單功率分析和差動功率分析的功能,其中第一點是可以識別在每個測量耗損功率的時刻執(zhí)行的密碼處理過程,第二點是在每個時刻測量的耗損功率值明確地反映在加密裝置中執(zhí)行的加密處理的計算結(jié)果。
諸如加密裝置、解密裝置和加密/解密裝置那樣傳統(tǒng)密碼處理裝置滿足上述兩點條件以致簡單功率分析和差動功率分析有效地運行,導(dǎo)致密碼文能夠被分析的問題的存在。
為了解決這個問題,已經(jīng)建議了幾種方法。例如,專利文獻1描述了一種旨在防止差動分析和線性分析的數(shù)據(jù)加密方法和裝置。根據(jù)專利文獻1,在將數(shù)據(jù)劃分為多個塊并順序加密所劃分塊的結(jié)構(gòu)中,該結(jié)構(gòu)具體為從在先處理塊的中間結(jié)果中提取被應(yīng)用于將要經(jīng)受密碼處理的塊的密鑰,從而來執(zhí)行為每個塊運用不同密鑰的處理。結(jié)果,使統(tǒng)計上的密鑰估計變得困難。
專利文獻2顯示的是防止泄漏應(yīng)用于密碼處理的密鑰信息的結(jié)構(gòu)。根據(jù)專利文獻2中所描述的結(jié)構(gòu),在非易失性存儲器中存儲加密的密鑰信息,當(dāng)接通電源時解碼存儲在非易失性存儲器中加密的密鑰信息,并在易失性存儲器中存儲該解密結(jié)果密鑰信息。這些操作被應(yīng)用于密碼處理。當(dāng)關(guān)斷電源時,從該易失性存儲器中主動擦除該密鑰信息以防止密鑰信息的泄漏。
以下提及的專利文獻3顯示的是一種具有對通過諸如簡單功率分析和差動功率分析那樣的耗損功率測量進行的密碼分析形成阻力的加密裝置。根據(jù)專利文獻3所描述的結(jié)構(gòu),中間數(shù)據(jù)控制裝置根據(jù)隨機數(shù)來改變由密碼處理所生成的中間數(shù)據(jù),并根據(jù)該由隨機數(shù)所改變的中間數(shù)據(jù)來執(zhí)行密碼處理。它還使最終輸出(密碼文)不依賴于隨機數(shù)成為可能。由于這種結(jié)構(gòu),密碼處理設(shè)備中的狀態(tài)改變成為基于由隨機數(shù)所改變的中間數(shù)據(jù)的改變。結(jié)果,通過諸如單功率分析和差動功率分析那樣的耗損功率測量的密碼分析變得更加困難。
此外,以下提及的非專利文獻2顯示的是一種通過在連續(xù)執(zhí)行密碼處理的過程中插入隨機定時偏移(shift)來防止使定時匹配波形變得困難的方法。
如上所述,給出了多種關(guān)于泄漏密碼密鑰或算法的對策。然而,在專利文獻1中所描述的結(jié)構(gòu)需要執(zhí)行從已處理過的塊中提取中間數(shù)據(jù)并產(chǎn)生新密鑰的復(fù)雜處理,從而存在有關(guān)降低算法處理效率和產(chǎn)生處理延遲的的擔(dān)心。在專利文獻2中所描述的結(jié)構(gòu)在執(zhí)行密碼處理期間不提供關(guān)于通過諸如簡單功率分析和差動功率分析那樣的耗損功率測量進行密碼分析的對策,盡管它具有防止泄漏密鑰數(shù)據(jù)本身的效果。Messerges已經(jīng)指出,可以由稱為高階差動功率分析的密碼分析方法來攻擊專利文獻3中所描述的運用隨機數(shù)的方法。例如,在[“Using Second-Order Power Analysis to Attack DPA ResistantSoftware”,T.S.Messerges,CHES2000]中所描述的。
盡管上述非專利文獻2描述了通過在連續(xù)執(zhí)行密碼處理的過程中插入隨機定時偏移可以使定時匹配波形變得困難,但是它并未揭示特定插入隨機定時偏移的具體方法。其也未揭示用于通過定時偏移插入來解決性能下降的裝置,并不能應(yīng)用于在預(yù)定時段內(nèi)需要執(zhí)行高速處理的系統(tǒng)中。
例如,對于在諸如車站檢票口、購物中心等各種不同的入口處廣泛使用的用于執(zhí)行密碼處理的IC模塊,需要其實現(xiàn)壓縮和高速處理。因而非常有必要具有能夠提供高速處理而不使處理算法復(fù)雜化、并具有對差動功率分析和高階差動功率分析形成阻力的結(jié)構(gòu)。
專利文獻1日本未審專利公開號HEI-9-230786專利文獻2日本未審專利公開號HEI-8-504067專利文獻3日本未審專利公開號2000-305453非專利文獻1“Applied Cryptography”(Bruce Shneier所著)JohnWieley&Sons,Inc.1996,ISBN 0-471-11709-9,pp.623-673非專利文獻2“DES and Differential Power Analysis”,Louis Goubin,Jacques Patarin,CHES99發(fā)明內(nèi)容本發(fā)明考慮到上述問題并旨在提供一種密碼處理裝置、一種密碼處理方法以及一種計算機程序,其能夠不使處理算法變得復(fù)雜而對通過以由密碼處理序列所進行的規(guī)則處理導(dǎo)致該耗損功率變化的檢測等為基礎(chǔ)的簡單功率分析、差動功率分析和高階差動功率進行的密碼分析增加難度。
本發(fā)明的第一個方面提供一種密碼處理裝置,其特征在于包含調(diào)制時鐘信號產(chǎn)生單元,用于生成用作數(shù)據(jù)處理定時控制信號的調(diào)制時鐘信號;以及數(shù)據(jù)處理單元,用于接收調(diào)制時鐘信號并根據(jù)輸入的調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理,其中該調(diào)制時鐘信號產(chǎn)生單元具有這樣一種結(jié)構(gòu)調(diào)制時鐘信號產(chǎn)生單元生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)信號相對應(yīng)的調(diào)制時鐘信號并輸出該調(diào)制時鐘信號到數(shù)據(jù)處理單元。
本發(fā)明的第二個方面提供一種密碼處理方法,其特征在于包含調(diào)制時鐘信號產(chǎn)生步驟,生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)相對應(yīng)的調(diào)制時鐘信號,該調(diào)制時鐘信號用作數(shù)據(jù)處理定時控制信號;以及數(shù)據(jù)處理步驟,接收調(diào)制時鐘信號并根據(jù)該輸入調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理。
本發(fā)明的第三個方面提供一種用于在計算機系統(tǒng)上執(zhí)行密碼處理的計算機程序,該計算機程序的特征在于包括調(diào)制時鐘信號產(chǎn)生步驟,生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)相對應(yīng)的調(diào)制時鐘信號,該調(diào)制時鐘信號用作數(shù)據(jù)處理定時控制信號;以及數(shù)據(jù)處理步驟,接收調(diào)制時鐘信號并根據(jù)該輸入調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理。
本發(fā)明的第四個方面提供一種密碼處理設(shè)備,其特征在于包括數(shù)據(jù)處理單元,用于執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生設(shè)備,用于生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及多個數(shù)據(jù)存儲單元,每一個數(shù)據(jù)存儲單元用于存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
本發(fā)明的第五個方面提供一種密碼處理方法,其特征在于包括數(shù)據(jù)處理步驟,執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生步驟,生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及數(shù)據(jù)存儲步驟,在多個數(shù)據(jù)存儲單元的每一個中存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
本發(fā)明的第六個方面提供一種用于在計算機系統(tǒng)上執(zhí)行密碼處理的計算機程序,其特征在于包括數(shù)據(jù)處理步驟,執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生步驟,生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及數(shù)據(jù)存儲步驟,在多個數(shù)據(jù)存儲單元的每一個中存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
根據(jù)本發(fā)明所述的結(jié)構(gòu),調(diào)制時鐘信號是根據(jù)以隨機數(shù)為基礎(chǔ)的信號生成,而且根據(jù)該調(diào)制時鐘信號確定數(shù)據(jù)處理定時以執(zhí)行數(shù)據(jù)處理。因此,使隨著加密和解密數(shù)據(jù)的密碼處理裝置的運行時間、通過測量耗損功率而進行的加密密鑰、解密密鑰等的保密信息分析(即基于功率分析的密碼分析)變得困難,因此實現(xiàn)具有高保密性水平的密碼處理裝置和方法根據(jù)本發(fā)明的裝置,如果延遲量短于預(yù)設(shè)可允許最大延遲時間,根據(jù)與隨機數(shù)信號相對應(yīng)的調(diào)制時鐘信號來執(zhí)行控制,反之如果延遲時間達到預(yù)設(shè)可允許最大延遲時間,則根據(jù)與正常時鐘信號相對應(yīng)的時鐘信號來執(zhí)行控制。因此,能防止產(chǎn)生過度的處理延遲,而且可以保證在預(yù)定期間內(nèi)完成處理。
根據(jù)本發(fā)明的結(jié)構(gòu),例如在用于執(zhí)行由具有多級循環(huán)函數(shù)單元所組成的公共密鑰密碼處理的密碼處理設(shè)備中,由隨機數(shù)確定在每一級存儲F函數(shù)輸出的定時(即存儲來自S框并經(jīng)由置換單元的中間數(shù)據(jù)輸出值的定時)、以及讀取來自寄存器用于下一級處理的數(shù)據(jù)的定時。并在預(yù)定可允許最大延遲時間之后,根據(jù)正常時鐘信號執(zhí)行數(shù)據(jù)讀寫。因此,在可允許最大延遲時間之前以隨機數(shù)為基礎(chǔ)以不規(guī)則定時執(zhí)行數(shù)據(jù)處理,從而能夠?qū)γ艽a分析方法增加阻力,該加密方法諸如通過隨時間流逝所進行的耗損功率的測量獲得加密密鑰和解密密鑰那樣的保密信息。在預(yù)定可允許最大延遲時間之后,根據(jù)普通的時鐘信號執(zhí)行寫數(shù)據(jù)和讀數(shù)據(jù)以便能防止生成過度的處理延遲并可以保證在預(yù)定期間內(nèi)完成處理。
根據(jù)本發(fā)明的結(jié)構(gòu),可以實現(xiàn)對各種分析攻擊具有高阻力的一種密碼處理裝置和密碼處理方法而不使處理算法變得復(fù)雜。
根據(jù)本發(fā)明的結(jié)構(gòu),可以使一種通過測量在數(shù)據(jù)加密或解密期間的裝置的耗損功率來獲得諸如加密密鑰和解密密鑰那樣的保密信息的密碼分析方法(即,通過諸如功率分析和差動功率分析那樣的耗損功率測量的密碼分析)變得困難,而且另外使高階差動功率分析應(yīng)用也變得困難。


圖1顯示的是DES密碼處理的基本配置圖;圖2顯示的是構(gòu)成循環(huán)(round)函數(shù)單元的每個循環(huán)的轉(zhuǎn)換單元的結(jié)構(gòu)圖;圖3顯示的是F函數(shù)的結(jié)構(gòu)圖;圖4顯示的是三重DES密碼處理的配置圖;圖5A和5B是舉例說明具有S框的F函數(shù)結(jié)構(gòu)以及包含寄存器作為中間數(shù)據(jù)存儲單元的密碼處理設(shè)備結(jié)構(gòu)的實例的框圖;圖6顯示的是作為密碼處理執(zhí)行設(shè)備的IC模塊結(jié)構(gòu)的實例的框圖;圖7是舉例說明以時鐘信號為基礎(chǔ)控制處理過程定時的框圖;圖8顯示的是時鐘信號的實例并舉例說明由該時鐘信號控制處理過程定時的框圖;圖9顯示的是根據(jù)本發(fā)明的配置的作為密碼處理執(zhí)行設(shè)備的IC模塊結(jié)構(gòu)的實例(第一實施例)的框圖;圖10A到10E顯示的是產(chǎn)生調(diào)制時鐘信號的實例并舉例說明由該調(diào)制時鐘信號控制處理過程定時的框圖;圖11是舉例說明由調(diào)制時鐘信號控制處理過程定時的框圖;圖12是舉例說明調(diào)制時鐘信號產(chǎn)生單元的處理過程的流程圖;圖13顯示的是根據(jù)本發(fā)明的密碼處理裝置的轉(zhuǎn)換處理單元特定結(jié)構(gòu)的以及帶有寄存器的數(shù)據(jù)存儲結(jié)構(gòu)的實例(第二實施例)的框圖;圖14顯示的是根據(jù)本發(fā)明所述的密碼處理裝置的轉(zhuǎn)換處理單元的特定結(jié)構(gòu)的以及帶有寄存器的數(shù)據(jù)存儲結(jié)構(gòu)的實例(第三實施例)的框圖;圖15顯示的是AES密碼處理的配置的框圖;以及圖16顯示的是作為密碼處理執(zhí)行設(shè)備的IC設(shè)備結(jié)構(gòu)的實例的框圖,其中本發(fā)明的配置適用于該設(shè)備。
具體實施例方式
在下文中,將詳細描述根據(jù)本發(fā)明所述的密碼處理裝置、密碼處理方法以及計算機程序。
盡管存在各種密碼處理算法,但大致將這些密碼處理算法分為公開密鑰密碼方案和公共密鑰密碼方案,公開密鑰密碼方案將不同的密鑰設(shè)置為加密密鑰和解密密鑰,例如公開密鑰和私有密鑰;公共密鑰密碼方案將公共密鑰設(shè)置為加密密鑰和解密密鑰。
在一種公共密鑰密碼方案中,在公共密鑰的基礎(chǔ)上生成多個密鑰,并且通過使用所生成的多個密鑰來分別執(zhí)行密碼處理。公共密鑰塊密碼方案是典型的運用該密鑰產(chǎn)生方案的算法。
可以將公共密鑰塊密碼算法劃分為循環(huán)函數(shù)單元和密鑰次序表單元,循環(huán)函數(shù)單元主要執(zhí)行輸入數(shù)據(jù)的置換,而密鑰次序表單元生成應(yīng)用于循環(huán)函數(shù)單元相應(yīng)循環(huán)的密鑰。將主密鑰輸入到密鑰次序表單元來生成應(yīng)用于循環(huán)函數(shù)單元每個循環(huán)的每個密鑰(子密鑰),將生成的密鑰應(yīng)用到每個循環(huán)函數(shù)單元。用作U.S.A標準密碼方案的DES(數(shù)據(jù)加密標準)是公共密鑰密碼方案的典型方案。
將參照附圖來描述DES密碼處理的基本結(jié)構(gòu)。DES密碼處理具有通過轉(zhuǎn)換函數(shù)的簡單重復(fù)將明碼文轉(zhuǎn)換成密碼文的結(jié)構(gòu)。圖1顯示了DES密碼處理的基本結(jié)構(gòu)。DES密碼處理由用于執(zhí)行輸入數(shù)據(jù)轉(zhuǎn)換的循環(huán)函數(shù)單元110和用于產(chǎn)生密鑰的密鑰次序表單元120構(gòu)成,所產(chǎn)生的密鑰應(yīng)用于循環(huán)函數(shù)單元的每個循環(huán)。
在循環(huán)函數(shù)單元110中,首先在初始置換單元111將明碼文(64比特)劃分成分別具有32比特的L和R。從而將劃分的32比特L和R輸入到第一級轉(zhuǎn)換單元112并使其經(jīng)受一次以從密鑰次序表單元120的第一級密鑰產(chǎn)生單元122輸入的密鑰K(1)為基礎(chǔ)的轉(zhuǎn)換處理。將轉(zhuǎn)換處理結(jié)果輸入到下面的第二級轉(zhuǎn)換單元113。
在密鑰次序表單元120中,首先,選擇置換單元121從輸入主密鑰(64比特)中去掉8個奇偶校驗比特并對剩余的56比特執(zhí)行置換處理,將經(jīng)過置換的56比特輸入到第一級密鑰產(chǎn)生單元122。在第一密鑰產(chǎn)生單元122中,執(zhí)行用于輸入比特列的、去除奇偶校驗比特等的偏移處理來產(chǎn)生48比特的子密鑰K(1),該子密鑰K(1)被輸出到循環(huán)函數(shù)單元110的第一級轉(zhuǎn)換單元112。在第一級密鑰產(chǎn)生單元122中,將通過偏移處理所獲得的高比特列(28比特)和低比特列(28比特)輸出到較低級的第二級密鑰產(chǎn)生單元123。
循環(huán)函數(shù)單元具有十六級的轉(zhuǎn)換單元。每轉(zhuǎn)換單元接收來自前級轉(zhuǎn)換單元的輸出,運用從密鑰次序表單元120輸入的密鑰執(zhí)行轉(zhuǎn)換處理,并輸出轉(zhuǎn)換結(jié)果到后續(xù)級的轉(zhuǎn)換單元。十六級的轉(zhuǎn)換單元所轉(zhuǎn)換的輸出被輸入到逆置換單元114,在這里執(zhí)行與初始置換單元111相反的置換處理來輸出密碼文。
圖2顯示了構(gòu)成循環(huán)函數(shù)單元110每個循環(huán)的轉(zhuǎn)換單元的結(jié)構(gòu)。如圖2中所示,轉(zhuǎn)換單元在前級(n-1級)接收來自轉(zhuǎn)換單元的兩個輸入L(n-1)和R(n-1),并接收來自密鑰次序表單元的密鑰(k(n))。在F函數(shù)單元151中,通過使用從密鑰次序表單元輸入的密鑰(k(n)),使從前面的轉(zhuǎn)換單元輸入的比特列(R(n-1))經(jīng)受轉(zhuǎn)換處理,并在轉(zhuǎn)換結(jié)果和從前面的轉(zhuǎn)換單元輸入的剩余比特列(L(n-1))之間執(zhí)行異或操作,由此產(chǎn)生輸出R(n)到后續(xù)級轉(zhuǎn)換單元。把從R(n-1)處獲得的比特列L(n)以及由上述F函數(shù)和異或運算所產(chǎn)生的比特列R(n)輸入到下一級轉(zhuǎn)換單元來重復(fù)類似的運算。
在圖3中顯示了F函數(shù)的結(jié)構(gòu)。F函數(shù)具有多個用于執(zhí)行非線性處理的S框。置換單元171將來自前級循環(huán)函數(shù)單元的輸入值R(n-1)擴展為48比特,并在48比特的比特列和從密鑰次序表單元輸入的密鑰(48比特)之間執(zhí)行異或操作。每次6比特地將異或輸出輸入到多個用于執(zhí)行非線性轉(zhuǎn)換處理的S框181-1到181-8中的每個S框。例如,每個S框通過使用例如轉(zhuǎn)換表來執(zhí)行將6比特轉(zhuǎn)換成4比特的非線性轉(zhuǎn)換處理。
把從S框181-1到181-8輸出的比特4×8=32輸入到置換單元172,在這里執(zhí)行比特位置交換處理來生成并輸出32比特的F函數(shù)輸出。
如參照圖1到3所描述的,由多級(16級)轉(zhuǎn)換處理執(zhí)行DES密碼處理。在例如用于經(jīng)由因特網(wǎng)的數(shù)據(jù)通信裝置的相互驗證處理以及應(yīng)用于對IC卡和閱讀器/記錄器的相互驗證處理的密碼處理之類的各種應(yīng)用中廣泛采用為了增強密碼強度而多次執(zhí)行DES密碼處理的、諸如三次執(zhí)行DES密碼處理的三重密碼處理的這樣一種配置。為了將要執(zhí)行一次的單次DES密碼處理與三重DES密碼處理區(qū)別開來,而將此方式稱為單次DES密碼處理。
如圖4所示,該三重DES密碼處理的配置,重復(fù)三次執(zhí)行參照圖1到3所描述的DES密碼處理來生成源自于明碼文的密碼文。每個單次DES密碼處理單元185、186和187都具有上述16級循環(huán)函數(shù),并由具有S框的F函數(shù)16次重復(fù)該處理。
通常,在三重DES密碼處理中,在第一個單次DES密碼處理單元185和最后DES密碼處理單元187使用相同的主密鑰(K1),在中間DES密碼處理單元186使用不同的主密鑰(K2)??梢酝ㄟ^多次重復(fù)執(zhí)行DES密碼處理來增強密碼安全性。
然而,此類公共密鑰密碼方案與涉及通過密碼分析使密鑰或密碼算法泄漏的問題相關(guān)。首先,將描述簡單功率分析(SPASimple Power Analysis)。大部分諸如智能卡那樣的防止篡改設(shè)備由晶體管構(gòu)成的邏輯電路組成。對門電路施加電壓時,耗損電流和功率。電路的耗損功率通常與處于執(zhí)行狀態(tài)下的算法運算和數(shù)據(jù)值有關(guān)。例如,當(dāng)相對于寫入0而寫入1的時候,乘法運算需要耗損較大的功率,而且該乘法運算和開方運算耗損不同的功率。
既然功率耗損量隨算法運算和數(shù)據(jù)值而變化,那么可以通過監(jiān)視設(shè)備的耗損功率中的變化來獲得諸如漢明權(quán)那樣的保密信息,該設(shè)備通過使用該保密信息來執(zhí)行算法運算,從而熵能夠變小。把直接將耗損功率中的變化用于分析的方法稱為簡單功率分析。
可以通過在設(shè)備與電源或接地之間插入串聯(lián)電阻,并測量通過該電阻的電流值來獲得設(shè)備的耗損功率??梢酝ㄟ^測量執(zhí)行公共密鑰密碼實際算法運算的智能卡的耗損功率的波形,來清楚地檢查在每級公共密鑰密碼的算法運算。通過詳細地分析該耗損功率波形,可以獲得諸如密鑰寄存器交換那樣的信息。
接下來,將描述差動功率分析(DPADifferential Power Analysis)。防止篡改設(shè)備的耗損功率通常依賴于算法運算的內(nèi)容和連同該算法運算一同使用的保密信息。然而,在依賴于這些內(nèi)容的耗損功率中的變化太小而通常難以同測量誤差,噪音等變化區(qū)別開來。
Kocher等已經(jīng)提出了一種方法(差動功率分析),該方法使用大量測量值的平均值來抑制測量誤差、噪音等的影響,并且用所有數(shù)據(jù)的平均值的差值來消除算法運算的功率耗損的影響,從而僅僅獲得由所使用的保密信息導(dǎo)致的耗損功率中的變化。
Kocher等給出了一些應(yīng)用DES的實例。首先,估計輸入到第一級或第十六級循環(huán)函數(shù)單元的一些比特,留意所估計的最終將要在從第一級或第十六級寫入存儲器的1比特數(shù)據(jù)的值。根據(jù)該值,把耗損功率的監(jiān)視器數(shù)據(jù)分組。接下來,計算每一組的平均測量值并計算測量值與該平均值的差值。如果估計正確并將所考慮的比特用于一種算法運算,則耗損功率的差值變大。如果估計不正確,則不能確定差值。
特定地根據(jù)以下過程執(zhí)行差動功率分析(步驟1到步驟7)。
步驟1m次監(jiān)視加密處理來獲得在第十六級的耗損功率中的變化T1,...,Tm。然后,記錄密碼文C1,...,Cm。當(dāng)在第十六級的功率耗損中的變化用于分析時,不需要明碼文信息。如果m大約為1000就足夠了。
步驟2選擇依賴于密鑰的分布函數(shù)D(Ks,C),其中Ks是某種密鑰信息而C是密碼文。例如,考慮留意在最后一級的S框1的輸出的第一比特的值,并估計施加到S框的6比特部分密鑰。假如這樣,則通過以下公式提供函數(shù)D。
D(C1,C6,K16)=C1SBOX1(C6K16)K16是在第十六級應(yīng)用于S框1的6比特部分密鑰的估計值;C6是經(jīng)受與K16進行異或操作(XOR)的6比特密碼文;SBOX1(x)是在把6比特x應(yīng)用于S框1時,輸出結(jié)果的第一比特;C1是經(jīng)受與SBOX1的輸出結(jié)果進行異或操作的1比特密碼文。
步驟3通過使用以下D函數(shù)將T1,...,Tm分為兩個組S0={Ti|D(.,.,.)=0}S1={Ti|D(.,.,.)=0}接下來,計算每組耗損功率的平均值。
A0=1|S0|ΣTi∈S0]]>T1=1|S1|ΣT∈S1Ti]]>其中|S0|+|S1|=m步驟4如下計算A0-A1的差值來獲得功率差值信號D。
D=A0-A1步驟5如果部分密鑰的估計密鑰Ks不正確,D(.,.,.)幾乎隨機地輸出與密碼文相關(guān)的“0”和“1”。因此,如果提取足夠大量的樣本,D的值近似于0。然而實際上由于與正確估計值Ks的相互作用,所以D的波形并不完全變平。如果Ks是正確的,D(.,.,.)使用與所留意的比特的實際值相同的值,從而通過將m設(shè)置為無限大,D近似于當(dāng)使用所留意的比特時的耗損值。
與D(.,.,.)無關(guān)的其他數(shù)據(jù)值、測量誤差等近似為0。由于耗損功率依賴于數(shù)據(jù)的比特值,則D(.,.,.)的波形在使用所留意的比特的區(qū)域中是脈沖,在其他區(qū)域中是平直的。
步驟6重復(fù)上述運算來估計將要應(yīng)用于S框1的部分密鑰。該迭代最大值是26=64次。
步驟7對剩余的7個S框執(zhí)行類似操作來獲得48比特私有密鑰的信息。通過完全檢索來獲得剩余8比特的密鑰信息。盡管該實例用于DES,但是還可以以類似的方式將它應(yīng)用于Camellia等所使用的8×8的S框。
接下來,將描述高階差動功率分析。盡管上述差動功率分析了與一個事件有關(guān)的樣本的信息,但是高階差動功率分析了與多個事件有關(guān)的信息。分布函數(shù)D可以對各自樣本使用不同的加權(quán),并且能夠?qū)⒃摌颖痉譃閮蓚€或更多的組。此類函數(shù)可以放棄多個預(yù)防性對策并且可以在明碼文和密碼文信息不完整的時候也能分析該保密信息。對于用它取代簡單平均值是行而有效的,另一種處理用于具有典型統(tǒng)計性質(zhì)的樣本。
當(dāng)通過參照圖1到4所描述的在多級(16級)的轉(zhuǎn)換處理執(zhí)行密碼處理時,每級的處理結(jié)果(即中間數(shù)據(jù))只在存儲器中存儲一次,然后在下一級處理開始時從該寄存器中導(dǎo)出該處理結(jié)果。也就是說,重復(fù)執(zhí)行向寄存器中存儲中間數(shù)據(jù)和從寄存器中導(dǎo)出中間數(shù)據(jù)的操作。
參看圖5,將描述具體處理。圖5顯示具有S框204的F函數(shù)的實例以及具有寄存器207和208作為中間數(shù)據(jù)存儲單元的密碼處理設(shè)備的結(jié)構(gòu)的實例。
當(dāng)參考圖1到4所描述的在多級(16級)執(zhí)行轉(zhuǎn)換處理的時候,在寄存器207和208中存儲在每個處理級生成的中間數(shù)據(jù),并在下一處理級時,從寄存器207和208中導(dǎo)出這些中間數(shù)據(jù)來執(zhí)行處理。
圖5(a)相對應(yīng)于圖2中所顯示的轉(zhuǎn)換處理單元,圖5(b)顯示了轉(zhuǎn)換處理單元和作為中間數(shù)據(jù)存儲單元的寄存器的細節(jié)。在L寄存器211和R寄存器212中存儲前級處理結(jié)果,即L(n-1)和R(n-1),然后將R寄存器中的32比特數(shù)據(jù)輸入到F函數(shù)單元200。在置換單元201中,對32比特數(shù)據(jù)進行擴展/置換來獲得48比特數(shù)據(jù)。置換單元201對應(yīng)于圖3中所顯示的置換單元171。
對于置換單元201的輸出,從密鑰次序表單元提供密鑰(k(n))202,在異或(XOR)單元203執(zhí)行異或處理,并將處理結(jié)果輸入到S框204。S框執(zhí)行非線性轉(zhuǎn)換,并且對于S框204的輸出,置換單元205執(zhí)行諸如比特交換那樣的置換處理。其后在異或(XOR)單元206,使置換結(jié)果與L寄存器211中存儲的值進行一次異或處理。在R存儲器212和L存儲器211中存儲異或處理的結(jié)果。在下一級處理時導(dǎo)出該存儲數(shù)據(jù)來重復(fù)類似處理。
在諸如圖5中所示的不考慮有關(guān)簡單功率分析、差動功率分析和高階差動功率分析的對策的實施中,在寄存器中直接存儲F函數(shù)單元200的輸出,并且通過從寄存器導(dǎo)出數(shù)據(jù)并根據(jù)所導(dǎo)出的數(shù)據(jù)來執(zhí)行在后續(xù)級的處理。
執(zhí)行這些處理的設(shè)備是一種由晶體管構(gòu)成的邏輯電路,如前面所描述的,它假定功率與執(zhí)行算法運算和所使用的數(shù)據(jù)值相關(guān)。例如,在寄存器中寫入數(shù)據(jù)0和在寄存器中寫入數(shù)據(jù)1時使用差動耗損功率。因而有可能通過監(jiān)視該設(shè)備的耗損功率中的變化來分析保密信息,該設(shè)備重復(fù)執(zhí)行與寄存器相關(guān)的中間數(shù)據(jù)讀寫操作。
圖6顯示將被用作執(zhí)行密碼處理的設(shè)備的IC模塊300的結(jié)構(gòu)的實例。例如,可以由PC、IC卡、閱讀器/記錄器或其他各種信息處理裝置來執(zhí)行上述密碼處理??梢栽谶@些不同的裝置中裝配圖6中所示的IC模塊300。
圖6中所顯示的CPU(中央處理單元)301是用于開始和結(jié)束密碼處理、根據(jù)密碼處理程序執(zhí)行每個處理、控制數(shù)據(jù)發(fā)送/接收、控制在各自的組成單元之間的數(shù)據(jù)傳遞、在存儲器(寄存器)302中存儲數(shù)據(jù)、從存儲器(寄存器)302中讀取數(shù)據(jù)并執(zhí)行其他多種處理的處理器。由時鐘信號產(chǎn)生單元310生成的時鐘信號來控制處理器將執(zhí)行的多種處理的執(zhí)行定時。
存儲器(寄存器)302由ROM(只讀存儲器)和RAM(隨機存取存儲器)構(gòu)成,ROM用于存儲將要由CPU 301執(zhí)行的程序或作為算法運算參數(shù)的固定數(shù)據(jù),RAM將用作存儲對于CPU 301要進行的處理而執(zhí)行的程序的存儲區(qū)域或工作區(qū)域等。存儲器(寄存器)302還包括用于存儲上述中間數(shù)據(jù)的存儲區(qū)域。存儲器302可以用作對密碼處理而言所必需的密鑰數(shù)據(jù)等的存儲區(qū)域。
隨機數(shù)產(chǎn)生單元303執(zhí)行生成必需隨機數(shù)(例如,對于生成密碼處理必需的密鑰而言是必需的)的處理。
發(fā)送/接收單元304是用于執(zhí)行與外部進行數(shù)據(jù)通信的數(shù)據(jù)通信處理單元(例如,執(zhí)行與諸如閱讀器/記錄器那樣IC模塊的數(shù)據(jù)通信),輸出在IC模塊內(nèi)生成的密碼文或從諸如閱讀器/記錄器那樣外部裝置輸入數(shù)據(jù)。
如前面參照圖5所描述的,在寄存器內(nèi)存儲密碼處理期間所生成的中間數(shù)據(jù),并從寄存器中讀取這些數(shù)據(jù)用于接下來的處理。由具有一恒定周期的時鐘信號來控制這些數(shù)據(jù)讀寫的處理定時。
即如圖7所示,時鐘信號產(chǎn)生單元310生成具有一恒定周期的時鐘信號,并將其提供到作為處理器的CPU 301。CPU 301執(zhí)行與存儲器(寄存器)302相關(guān)的數(shù)據(jù)寫和數(shù)據(jù)讀處理。
如圖8所示,由時鐘信號產(chǎn)生單元310生成的時鐘信號是具有一恒定周期的時鐘周期的數(shù)字波形信號。例如,CPU 301執(zhí)行與存儲器(寄存器)302相關(guān)的寫數(shù)據(jù)處理以及與存儲器(寄存器)302相關(guān)的讀數(shù)據(jù)處理。
由于時鐘信號產(chǎn)生單元310生成的時鐘信號的時間間隔是常數(shù),所以通過測量耗損功率、獲取諸如加密密鑰和解密密鑰那樣的保密信息的密碼分析方法可以有效地執(zhí)行。即通過監(jiān)控隨時間流逝的耗損功率中的變化,可以分析與寄存器相關(guān)的數(shù)據(jù)存儲定時以及多種處理定時。
本發(fā)明消除了與根據(jù)上述規(guī)則處理定時執(zhí)行的處理所導(dǎo)致的攻擊相關(guān)的缺點。在本發(fā)明配置中,不直接把時鐘信號本身用作處理執(zhí)行定時,而以隨機數(shù)為基礎(chǔ)生成調(diào)制時鐘信號作為隨機處理執(zhí)行定時控制信號。
圖9顯示作為密碼處理執(zhí)行設(shè)備的IC模塊500結(jié)構(gòu)的實例。圖9中所顯示的CPU(中央處理單元)501用作數(shù)據(jù)處理單元,而且它是用于開始和結(jié)果密碼處理、根據(jù)密碼處理程序執(zhí)行每個處理、控制數(shù)據(jù)發(fā)送/接收、控制在各自的組成單元之間的數(shù)據(jù)傳送、在存儲器(寄存器)502中存儲數(shù)據(jù)、從存儲器(寄存器)502中讀取數(shù)據(jù)并執(zhí)行各種處理的處理器。由調(diào)制時鐘信號產(chǎn)生單元530生成的調(diào)制時鐘信號來控制將要由處理器執(zhí)行的多種處理的執(zhí)行定時。
調(diào)制時鐘信號產(chǎn)生單元530接收來自時鐘信號產(chǎn)生單元510的具有恒定周期的正常時鐘信號以及由隨機數(shù)信號產(chǎn)生單元520生成的隨機數(shù)信號,并從這兩個信號生成調(diào)制時鐘信號。調(diào)制時鐘信號產(chǎn)生單元530具有計數(shù)器540,并根據(jù)該計數(shù)器測量處理延遲時間是否比預(yù)定可允許延遲時間短。如果處理延遲時間比可允許延遲時間短,則把以隨機數(shù)信號為基礎(chǔ)的調(diào)制時鐘信號輸出到CPU 501,并且在該延遲變成可允許延遲時間的上限時,把具有恒定周期的正常時鐘信號輸出到CPU 501。利用這些處理過程來控制處理執(zhí)行定時。以后將詳細描述這些處理的細節(jié)。
存儲器(寄存器)502由ROM(只讀存儲器)和RAM(隨機存取存儲器)構(gòu)成,ROM用于存儲將要由CPU 501執(zhí)行的程序或作為算法運算參數(shù)的固定數(shù)據(jù),RAM將用作存儲對于CPU 501要進行的處理而執(zhí)行的程序的存儲區(qū)域或工作區(qū)域等。存儲器(寄存器)502還包括用于存儲上述中間數(shù)據(jù)的存儲區(qū)域。存儲器502可以用作對密鑰數(shù)據(jù)等對密碼處理而言所必需的數(shù)據(jù)的存儲區(qū)域。該用于保密數(shù)據(jù)等的存儲區(qū)域優(yōu)先由具有防止篡改結(jié)構(gòu)的存儲器組成。
隨機數(shù)產(chǎn)生單元503執(zhí)行生成必需隨機數(shù)(例如,對于生成密碼處理必需的密鑰而言是必需的)的處理。
發(fā)送/接收單元504是用于執(zhí)行與外部進行數(shù)據(jù)通信的數(shù)據(jù)通信處理單元(例如,執(zhí)行與諸如閱讀器/記錄器那樣IC模塊的數(shù)據(jù)通信),輸出在IC模塊內(nèi)生成的密碼文或從諸如閱讀器/記錄器那樣外部裝置輸入數(shù)據(jù)。
在該實施例的結(jié)構(gòu)中,根據(jù)調(diào)制時鐘信號產(chǎn)生單元530生成的調(diào)制時鐘信號來確定將要由作為數(shù)據(jù)處理單元的CPU 501執(zhí)行的諸如與存儲器(寄存器)502相關(guān)的數(shù)據(jù)存儲處理和與存儲器(寄存器)502相關(guān)的數(shù)據(jù)讀取處理那樣的各種處理的定時。
參看圖10A到10E,將描述將要由調(diào)制時鐘信號產(chǎn)生單元530生成的調(diào)制時鐘信號。調(diào)制時鐘信號產(chǎn)生單元530接收來自時鐘信號產(chǎn)生單元510的具有恒定周期的正常時鐘信號以及由隨機數(shù)信號產(chǎn)生單元520生成的隨機數(shù)信號,并且從這兩個信號生成調(diào)制時鐘信號。
圖10A顯示從時鐘信號產(chǎn)生單元510輸入的具有恒定周期的正常時鐘信號。在圖10B中顯示了由隨機數(shù)信號產(chǎn)生單元520生成的隨機數(shù)的實例,并且在圖10C中顯示了以該隨機數(shù)為基礎(chǔ)生成的隨機數(shù)信號。
在圖10B中顯示了隨機數(shù)[110011101101]的實例。在圖10C中的隨機數(shù)信號是在隨機數(shù)[1]處取[高]并在隨機數(shù)
處取[低]的信號。由隨機數(shù)產(chǎn)生單元520隨機生成這種隨機數(shù),而且在圖10C中的隨機數(shù)信號是以隨機生成的隨機數(shù)為基礎(chǔ)的信號集合。
調(diào)制時鐘信號產(chǎn)生單元530接收圖10A中所示來自時鐘信號產(chǎn)生單元510的具有恒定周期的正常時鐘信號和圖10C中所示來自隨機數(shù)信號產(chǎn)生單元520的隨機數(shù)信號,并生成圖10E中所示來自這兩個信號的調(diào)制時鐘信號,并輸出該調(diào)制時鐘信號作為用于處理定時的控制信號。把各種處理定時設(shè)置為圖10E中所示的調(diào)制時鐘信號上升沿(1)到(5)。
圖10E中所示的前一半調(diào)制時鐘信號是在圖10C中的隨機數(shù)信號,它的后一半調(diào)制時鐘信號是與圖10A中的時鐘信號相對應(yīng)的信號。調(diào)制時鐘信號產(chǎn)生單元530具有計數(shù)器540,計數(shù)器540測量根據(jù)圖10C中的隨機數(shù)信號執(zhí)行處理時的延遲。即,相對于在圖10A中基于正常時鐘信號的處理,計算由基于圖10C中的隨機數(shù)信號的處理生成的該延遲。如果該延遲比預(yù)設(shè)可允許延遲時間短,輸出圖10C中的隨機數(shù)信號作為調(diào)制時鐘信號,并且在延遲到達預(yù)設(shè)可允許延遲時間的上限時,輸出圖10A中的正常時鐘信號作為調(diào)制時間信號。通過這些處理,可以防止過度的處理延遲并可以保證在預(yù)定周期內(nèi)完成處理。
在圖10A到10E所示的實例中,設(shè)置最大可允許延遲時間為計數(shù)器的值=4。即,輸出圖10C中的隨機數(shù)信號作為調(diào)制時鐘信號直到相對于圖10A中的正常時鐘信號圖10C中隨機數(shù)信號的定時所生成的延遲數(shù)變成4為止,并且在延遲達到4時,輸出圖10A中的正常時鐘信號作為調(diào)制時鐘信號。
將圖10D計數(shù)器的初始狀態(tài)設(shè)置為
,并且當(dāng)在圖10A中正常時鐘信號的上升沿或下降沿的數(shù)量與圖10C中隨機數(shù)信號的上升沿或下降沿的數(shù)量之間生成差值時,對計數(shù)器進行遞增計數(shù)。在該圖所示的實例中,在每一個點(a)、(c)、(e)和(f)處,圖10A中的正常時鐘信號生成上升沿或下降沿,反之在圖10C中的隨機數(shù)信號并不生成上升沿或下降沿,而且計數(shù)器540在每個點進行遞增計數(shù)。
在圖10A到10E所示的實例中,設(shè)置最大可允許延遲時間為計數(shù)器的值=4。如圖10E中所示,由于在點(f)處計數(shù)器的計數(shù)值是4,則輸出圖10C中的隨機數(shù)信號作為截止到點(f)的調(diào)制時鐘信號,并且在延遲達到預(yù)設(shè)可允許延遲時間的上限時,即在計數(shù)值=4時,輸出圖10A中的正常時鐘信號作為調(diào)制時鐘信號。通過這些處理,可以將處理延遲抑制到時鐘數(shù)=4(當(dāng)把處理延遲轉(zhuǎn)換成正常時鐘數(shù)量的時侯)。因此,可以防止過度的處理延遲并且可以保證在預(yù)定期間內(nèi)完成處理。
參看圖11,來描述根據(jù)調(diào)制時鐘信號在寄存器中寫數(shù)據(jù)和從寄存器中讀數(shù)據(jù)的處理。
在參照圖1到5所描述的具有多級循環(huán)函數(shù)單元的每個級以及在下一級處理開始時間時,以S框輸出為基礎(chǔ)在數(shù)據(jù)存儲處理中重復(fù)執(zhí)行在存儲器(寄存器)502中寫數(shù)據(jù)或從存儲器(寄存器)502中讀數(shù)據(jù)的處理。
根據(jù)調(diào)制時鐘信號產(chǎn)生單元530生成的調(diào)制時鐘信號來確定對這些處理的定時。CPU 501獲得由調(diào)制時鐘信號產(chǎn)生單元530生成的調(diào)制時鐘信號,并在由輸入調(diào)制時鐘信號所確定的處理定時中(即在圖10E中所示的點(1)到(5))執(zhí)行與存儲器(寄存器)502相關(guān)的讀數(shù)據(jù)處理或與存儲器(寄存器)502相關(guān)的寫數(shù)據(jù)處理。
調(diào)制時鐘信號產(chǎn)生單元530接收圖10A中所示由時鐘信號產(chǎn)生單元510提供的具有恒定周期的正常時鐘信號以及圖10C中所示的隨機數(shù)信號,并根據(jù)這兩個信號生成圖10E中所示的調(diào)制時鐘信號。
調(diào)制時鐘信號產(chǎn)生單元530具有計數(shù)器540,并通過使用計數(shù)器540來測量在根據(jù)圖10C的隨機數(shù)信號執(zhí)行處理時的延遲。如果延遲比預(yù)設(shè)可允許延遲時間短,則輸出圖10C的隨機數(shù)信號作為調(diào)制時鐘信號,并在該延遲達到預(yù)設(shè)可允許延遲時間的上限時,將圖10A的正常時鐘信號作為調(diào)制時鐘信號提供給CPU 501,CPU 501用作數(shù)據(jù)處理單元。CPU 501基于從調(diào)制時鐘信號產(chǎn)生單元530輸入的調(diào)制時鐘信號,在定時控制的情況下執(zhí)行處理。該延遲時間計數(shù)處理防止過度的處理延遲并保證在預(yù)定期間內(nèi)完成處理。
圖12是舉例說明將由調(diào)制時鐘信號產(chǎn)生單元530執(zhí)行的生成并輸出調(diào)制時鐘信號的處理的流程圖。參看流程圖,來描述調(diào)制時鐘信號產(chǎn)生單元530的處理過程。
在步驟S101,調(diào)制時鐘信號產(chǎn)生單元接收具有恒定周期的正常時鐘信號(參看圖10A)和隨機數(shù)信號(參看圖10C)。
在步驟S102,以隨機數(shù)信號(參看圖10C)為基礎(chǔ)生成調(diào)制時鐘信號,而且調(diào)制時鐘信號產(chǎn)生單元中的計數(shù)器開始計數(shù)相對于正常時鐘信號的隨機數(shù)信號的延遲(參看圖10D)。
在步驟S103,判斷由計數(shù)器的計數(shù)所確定的延遲量是否比預(yù)設(shè)可允許最大延遲時間短。在圖10A到10E中所示的實例中,設(shè)置可允許最大延遲時間為計數(shù)值=4。
如果延遲量比預(yù)設(shè)可允許最大延遲時間短(在步驟S103判斷為是),則流程前進到步驟S104,在這里輸出隨機數(shù)信號作為調(diào)制時鐘信號。如果延遲量到達預(yù)設(shè)可允許最大延遲時間(在步驟S103判斷為否),則流程前進到步驟S105,在這里輸出正常時鐘信號作為調(diào)制時鐘信號。
如上所述,根據(jù)本發(fā)明的結(jié)構(gòu),例如,通過采用以隨機數(shù)為基礎(chǔ)生成的調(diào)制時鐘信號來設(shè)置處理定時,使得根據(jù)調(diào)制時鐘信號控制在寄存器中存儲中間數(shù)據(jù)或從寄存器中讀出數(shù)據(jù)的處理。因此,不執(zhí)行由規(guī)則時鐘所進行的處理,從而有可能對以沿時間軸的耗損功率為基礎(chǔ)的密碼分析增加阻力,并提供具有高保密性水平的密碼處理。
此外,根據(jù)本發(fā)明的結(jié)構(gòu),在隨機數(shù)信號的控制下通過計數(shù)器計算延遲量,然后在延遲時間到達可允許最大延遲時間之后,輸出正常時鐘信號來執(zhí)行由正常時鐘信號設(shè)置的定時處理。因此,可以使系統(tǒng)實現(xiàn)能夠防止過度延遲,保證在預(yù)定期間內(nèi)完成處理,并且甚至在需要具有高速處理的系統(tǒng)中也不生成處理錯誤。
圖13顯示了根據(jù)本發(fā)明的各個密碼處理裝置的另一個作為數(shù)據(jù)處理單元的轉(zhuǎn)換處理單元的數(shù)據(jù)存儲器結(jié)構(gòu)的特定配置以及作為數(shù)據(jù)存儲單元的寄存器的實例。在圖13中所示本發(fā)明的密碼處理裝置中,為了對付上述簡單功率分析、差動功率分析以及高階差動功率分析,用金屬線把以S框604的輸出為基礎(chǔ)的F函數(shù)單元600的輸出分支為兩個輸出。不改變其值的一個輸出被輸入到第一存儲單元610,并在R寄存器612和L寄存器611中存儲該輸出。另一個輸出被輸入到第二數(shù)據(jù)存儲單元620,然后由反向器621和622對該輸出值進行反向之后,在R′寄存器622和L′寄存器632中存儲該反向的輸出值。
在寄存器中存儲比特值時耗損的功率與S框604的輸出的漢明權(quán)成正比(更嚴格地說是具有高相關(guān)性)。由于通過分支到第一數(shù)據(jù)存儲單元610的R寄存器612和L寄存器611來存儲數(shù)據(jù),而且與此同時不改變輸出值,以及通過分支到第二數(shù)據(jù)存儲單元620的R′寄存器622和L′寄存器632來存儲數(shù)據(jù),而且與此同時對輸出值進行反向,所以可以使兩個漢明權(quán)的和總是為常數(shù)。這變得難于通過監(jiān)視上述設(shè)備的耗損功率中的變化來獲得與保密信息相關(guān)的漢明權(quán)信息,而且對以耗損功率變化為基礎(chǔ)的分析增加了難度。
優(yōu)選的是在沒有偏移的存儲時刻并行地在各個寄存器中存儲非反向數(shù)據(jù)和反向數(shù)據(jù)。通過該定時控制,變得難于獲得與沿時間軸的設(shè)備耗損功率中的變化相關(guān)的漢明權(quán)信息。
將以圖13中所示的結(jié)構(gòu)為基礎(chǔ)對該處理進行描述。圖13中的結(jié)構(gòu)顯示作為中間數(shù)據(jù)存儲單元的寄存器以及包括F函數(shù)的轉(zhuǎn)換處理單元,該F函數(shù)用于在密碼處理的多個級上重復(fù)執(zhí)行轉(zhuǎn)換處理。
在第一數(shù)據(jù)存儲單元610的L寄存器611和R寄存器612中存儲在前級(n-1級)的處理結(jié)果,即L(n-1)和R(n-1),將R寄存器的32比特數(shù)據(jù)輸入到F函數(shù)單元600,并在置換單元601中將32比特擴展/轉(zhuǎn)換成48比特。該置換單元601對應(yīng)于圖3中所示的置換單元171。
把來自密鑰次序表單元的密鑰(k(n))602應(yīng)用到置換單元601的輸出,而且異或(XOR)單元603執(zhí)行異或算法運算來輸入該處理結(jié)果到S框604。S框604執(zhí)行非線性轉(zhuǎn)換,使S框604的輸出在置換單元605中經(jīng)受諸如比特交換那樣的置換處理。此后,在異或(XOR)單元606,使該置換結(jié)果與第一數(shù)據(jù)存儲單元610的L寄存器611中所存儲的值進行異或算法運算。
在第一數(shù)據(jù)存儲單元610的R寄存器612和L寄存器611中存儲該結(jié)果。在下一級處理提取這些存儲的數(shù)據(jù)來重復(fù)類似的處理。同樣在該實施例的配置中,反向器621對來自S框604并經(jīng)由置換單元605的輸出值進行反向,并在第二數(shù)據(jù)存儲單元620的R′寄存器622中存儲該反向的輸出值。R′寄存器622中所存儲的比特數(shù)據(jù)的值是從R寄存器612中存儲的32比特數(shù)據(jù)反向得到的32比特數(shù)據(jù)。
而且,與第一數(shù)據(jù)存儲單元610的L存儲器611中所存儲的32比特數(shù)據(jù)相一致,反向器631對該比特數(shù)據(jù)進行反向并在第二數(shù)據(jù)存儲單元620的L′寄存器632中存儲該反向的比特數(shù)據(jù)。L′寄存器632中所存儲的比特數(shù)據(jù)的值是從L寄存器611中所存儲的32比特數(shù)據(jù)反向得到的32比特數(shù)據(jù)。
在下一級處理不使用第二數(shù)據(jù)存儲單元620的R′寄存器622和L′寄存器632中所存儲的比特數(shù)據(jù)。
如上所述,根據(jù)本實施例的結(jié)構(gòu),在第一數(shù)據(jù)存儲單元610的R寄存器612和L存儲器611中直接存儲來自S框604并經(jīng)由置換單元605的輸出值,在第二數(shù)據(jù)存儲單元620的R′寄存器622和L′寄存器632中存儲該輸出值的反向數(shù)據(jù)。因此,有可能在寄存器存儲處理期間保持兩個漢明權(quán)的和總是為常數(shù)。這變得難于獲得與保密信息相關(guān)的漢明權(quán)信息,而且增加了對以耗損功率變化為基礎(chǔ)的分析難度。
接下來,將描述本發(fā)明第三實施例的結(jié)構(gòu)。圖14顯示了根據(jù)實施例所述的轉(zhuǎn)換處理單元的特定結(jié)構(gòu)以及密碼處理裝置的寄存器的數(shù)據(jù)存儲結(jié)構(gòu)的實例。在圖14中所示的本發(fā)明的密碼處理裝置的結(jié)構(gòu)中,為了對付上述簡單功率分析、差動功率分析以及高階差動功率分析,用金屬線把以S框704的輸出為基礎(chǔ)的F函數(shù)單元700的輸出分支為兩個輸出。類似于第二實施例,兩個輸出被輸入到第一數(shù)據(jù)存儲單元710和第二數(shù)據(jù)存儲單元720。
在第三實施例中,可以有選擇地把反向數(shù)據(jù)或非反向數(shù)據(jù)輸入到第一數(shù)據(jù)存儲單元7 10和第二數(shù)據(jù)存儲單元720。如果輸入到第一數(shù)據(jù)存儲單元710的值是非反向數(shù)據(jù),那么輸入到第二數(shù)據(jù)存儲單元720的值是反向數(shù)據(jù)。如果輸入到第一數(shù)據(jù)存儲單元710的值是反向數(shù)據(jù),那么輸入到第二數(shù)據(jù)存儲單元720的值是非反向數(shù)據(jù)。
在第一數(shù)據(jù)存儲單元710和第二數(shù)據(jù)存儲單元720的每一個寄存器輸入級上提供開關(guān)751、752、762和772,使得經(jīng)由反向器721、731、761和771能夠設(shè)置在寄存器中存儲反向數(shù)據(jù)、或設(shè)置在寄存器中存儲非反向數(shù)據(jù)而與反向器沒有牽連。
輸入到第一數(shù)據(jù)存儲單元710和第二數(shù)據(jù)存儲單元720的每個寄存器中的比特數(shù)據(jù)是32比特數(shù)據(jù)??梢杂眠@兩種配置把所有比特的反向比特數(shù)據(jù)或非反向比特數(shù)據(jù)輸入到寄存器;或者可以生成在32比特數(shù)據(jù)的每一個第二比特進行反向和非反向的比特數(shù)據(jù)并輸入該比特數(shù)據(jù)到寄存器。
也就是說,例如,如果以來自F函數(shù)裝置700的輸出為基礎(chǔ)從異或(XOR)單元706輸出的比特列是
,如果把所有比特的非反向數(shù)據(jù)輸入到第一數(shù)據(jù)存儲單元710的R寄存器712中,并且如果在第二數(shù)據(jù)寄存單元720的R′寄存器722中存儲該反向數(shù)據(jù),那么輸入到第一數(shù)據(jù)存儲單元710的R寄存器712的值與輸出比特列
的值相同,而且輸入到第二數(shù)據(jù)寄存單元720的R′寄存器722的值是反向比特列[10110100...]。
如果以來自F函數(shù)裝置700的輸出為基礎(chǔ)從異或(XOR)單元706輸出的比特列是
,如果把在32比特的每一個第二比特進行反向和非反向的數(shù)據(jù)輸入到第一數(shù)據(jù)存儲單元710的R寄存器712中,而且如果在第二數(shù)據(jù)寄存單元720的R′寄存器722中存儲具有從輸入到R寄存器712的比特數(shù)據(jù)反向的模式的比特數(shù)據(jù),那么輸入到第一數(shù)據(jù)存儲單元710的R寄存器712的值與輸入到第二數(shù)據(jù)寄存單元720的R′寄存器722的值如下所示輸出比特列
R寄存器存儲值
R′寄存器存儲值[11100001...]在以上描述中,帶有下橫線的數(shù)據(jù)是輸出值的反向比特數(shù)據(jù)。
在第一數(shù)據(jù)存儲單元和第二數(shù)據(jù)存儲單元中存儲所有比特數(shù)據(jù)的反向數(shù)據(jù)和非反向數(shù)據(jù)的組合的情況下,或者在第一數(shù)據(jù)存儲單元和第二數(shù)據(jù)存儲單元中存儲在每一個第二比特進行反向和非反向的比特數(shù)據(jù)的組合的情況中,在第一數(shù)據(jù)存儲單元和第二數(shù)據(jù)存儲單元中存儲在每一個32比特的比特對0和1、或1和0。
在第一數(shù)據(jù)存儲單元710的L寄存器711中和第二數(shù)據(jù)存儲單元720的L′寄存器732中還存儲在每一個32比特的比特對0和1、或1和0。
如前面所描述的,在寄存器中存儲比特值時耗損的功率與S框的輸出的漢明權(quán)成正比。由于數(shù)對0和1、或1和0通過第一數(shù)據(jù)存儲單元710的R寄存器712和L寄存器711以及第二存儲單元720的R′寄存器722和L′寄存器732的分支進行存儲,則可以使?jié)h明權(quán)的和總是為常數(shù)。這變得難于通過監(jiān)視設(shè)備的耗損功率中的變化來獲得漢明權(quán)信息,而且增加了對于以耗損功率變化為基礎(chǔ)上的分析難度。
在該實施例中,第一數(shù)據(jù)存儲單元710的寄存器711和712中所存儲的數(shù)據(jù)用于下一級處理。因而,如果在這些寄存器中存儲反向比特數(shù)據(jù),那么在為了下一級處理而輸出該數(shù)據(jù)時再一次執(zhí)行反向處理是必需的。所以,在第一數(shù)據(jù)存儲單元710的R寄存器712和L寄存器711的輸出級提供反向器781和791以及開關(guān)782和792。
如果存儲在第一數(shù)據(jù)存儲單元710的R寄存器711和L寄存器712中的數(shù)據(jù)是反向數(shù)據(jù),那么輸出經(jīng)由反向器781和791再一次進行反向的比特數(shù)據(jù)作為將要應(yīng)用于下一級處理的值。通過該處理,能夠獲得與不執(zhí)行比特數(shù)據(jù)反向處理的情況完全相同的輸出結(jié)果。
將描述以圖14中所示的結(jié)構(gòu)為基礎(chǔ)的處理。類似于圖13,圖14中的結(jié)構(gòu)顯示作為中間數(shù)據(jù)存儲單元的寄存器以及包括F函數(shù)的轉(zhuǎn)換處理單元,該F函數(shù)用于在密碼處理的多個級重復(fù)執(zhí)行轉(zhuǎn)換處理。
在第一數(shù)據(jù)存儲單元710的L寄存器711和R寄存器712中存儲在前級(n-1級)基于處理結(jié)果的比特數(shù)據(jù)。由預(yù)設(shè)控制程序存儲該值為反向或非反向的比特。
如果該32比特數(shù)據(jù)是反向數(shù)據(jù),在開關(guān)782的控制下經(jīng)由反向器781將R寄存器712的32比特數(shù)據(jù)輸入到F函數(shù)單元700,反之如果該存儲器比特是非反向數(shù)據(jù),將該數(shù)據(jù)輸入到F函數(shù)單元700而與反向器781沒有牽連。
在F函數(shù)單元700的置換單元701中,把32比特擴展/轉(zhuǎn)換成48比特。置換單元701對應(yīng)于圖3中所示的置換單元171。把來自密鑰次序表單元的密鑰(k(n))702應(yīng)用到置換單元701的輸出,而且異或(XOR)單元703執(zhí)行異或算法運算來把處理結(jié)果輸入到S框704。S框704執(zhí)行非線性轉(zhuǎn)換,使S框704的輸出在置換單元705經(jīng)受諸如比特交換那樣置換處理。此后,在異或(XOR)單元706,使該置換結(jié)果與第一數(shù)據(jù)存儲單元710的L寄存器711中所存儲的值進行異或算法運算。如果該存儲數(shù)據(jù)是反向比特,在反向器791的控制下經(jīng)由反向器791將L寄存器711中的32比特數(shù)據(jù)輸入異或(XOR)單元706,反之如果該存儲數(shù)據(jù)是非反向比特,將該比特數(shù)據(jù)輸入到異或(XOR)單元706而不牽連反向器791。
在第一數(shù)據(jù)存儲單元710的R寄存器712和L寄存器711中存儲該結(jié)果作為反向比特或非反向比特。在第二數(shù)據(jù)存儲單元720的R′寄存器722和L′寄存器732中存儲具有該存儲比特的反向模式的比特數(shù)據(jù)。在下一級處理不使用第二數(shù)據(jù)存儲單元720的R′寄存器722和L′寄存器732中所存儲的比特數(shù)據(jù)。
在上述實施例中已經(jīng)描述了將應(yīng)用于DES密碼方案算法的實例。本發(fā)明還適用于將要取代DES的以下一代公共密鑰密碼而著稱的AES(高級加密標準)。AES是運用具有比DES的64比特還要長的、比特長度為128、192和256比特的密鑰的密碼處理,而且AES提供了強大的保密性。
AES可以通過使用獨立不同于128、192和256比特的密鑰長度和塊長度來執(zhí)行處理,而且重復(fù)執(zhí)行多個類似于上述DES的循環(huán)處理。
如圖15所示,在AES密碼處理的結(jié)構(gòu)中,對輸入明碼文801執(zhí)行運用前期密鑰(K-pre)802的初始置換(前白化(Pre-whitening))之后,由多個循環(huán)所構(gòu)成的AES密碼處理單元803執(zhí)行AES密碼處理,而且最后執(zhí)行最終置換(后白化(Post-whitening))來輸出密碼文,該最終置換運用了后期密鑰(K-post)804。AES加密處理是具有對分析增加難度(即高保密性)的密碼處理。
同樣在該AES密碼處理中,類似于上述結(jié)構(gòu)的生成反向數(shù)據(jù)并在寄存器中存儲反向數(shù)據(jù)的結(jié)構(gòu)用于在AES密碼處理的執(zhí)行級上生成的中間數(shù)據(jù)的存儲。因而,能夠在寄存器存儲處理中總是保持漢明權(quán)的和為常數(shù)。因此,這變得更難于通過監(jiān)視在設(shè)備的耗損功率中的變化來獲得漢明權(quán)信息,以致可以增加以耗損功率變化為基礎(chǔ)進行分析的難度。
最后,在圖16中顯示作為用于執(zhí)行上述密碼處理的設(shè)備的IC模塊900的結(jié)構(gòu)的實例。例如,可以由PC、IC卡、閱讀器/記錄器或其他各種信息處理裝置來執(zhí)行上述密碼處理??梢栽谶@些不同的機器中實現(xiàn)如圖16中所示的IC模塊900。
圖16中所顯示的CPU(中央處理單元)901是用于開始和結(jié)束密碼處理、控制數(shù)據(jù)發(fā)送/接收、控制在各自的組成單元之間的數(shù)據(jù)傳遞、并且執(zhí)行其他各種程序的處理器。存儲器902由ROM(只讀存儲器)和RAM(隨機存取存儲器)構(gòu)成,ROM用于存儲由CPU 901執(zhí)行的程序或作為計算運算參數(shù)的固定數(shù)據(jù),RAM將用作存儲對于CPU 901要進行的處理而執(zhí)行的程序的存儲區(qū)域或工作區(qū)域。存儲器902還包括用于存儲上述中間數(shù)據(jù)的存儲區(qū)域。存儲器902可用作密碼處理所必需的密鑰數(shù)據(jù)等的存儲區(qū)域。該用于數(shù)據(jù)等的存儲區(qū)域優(yōu)選地由具有防止篡改結(jié)構(gòu)的存儲器組成。
例如,密碼處理單元903根據(jù)上述DES和AES執(zhí)行加密處理、解密處理等。盡管舉例來說,把離散模塊用作密碼處理組件,而沒有提供獨立的加密模塊,但是例如可以采用這種結(jié)構(gòu)其中在ROM中存儲密碼處理程序,而且CPU 901讀取并執(zhí)行在ROM中所存儲的每一個程序。
隨機數(shù)產(chǎn)生單元904執(zhí)行生成隨機數(shù)的處理,所述隨機數(shù)對于生成密碼處理必需的密鑰來說是必需的。
發(fā)送/接收單元905是用于執(zhí)行與外部進行數(shù)據(jù)通信的數(shù)據(jù)通信處理單元(例如,執(zhí)行與諸如閱讀器/記錄器那樣IC模塊的數(shù)據(jù)通信),執(zhí)行輸出該IC模塊內(nèi)所產(chǎn)生的密碼文或從諸如記錄器/閱讀器那樣外部機器輸入數(shù)據(jù)的處理。
在上述實施例中,盡管將計數(shù)器用作必備單元,但是如果無需考慮延遲量和性能下降的話,沒有必要用計數(shù)器來測量延遲量。因而,可以使用這樣一種結(jié)構(gòu),其中不提供計數(shù)器,而且總是根據(jù)以隨機數(shù)為基礎(chǔ)生成的調(diào)制時鐘信號來輸出以隨機數(shù)信號為基礎(chǔ)生成的調(diào)制時鐘信號來執(zhí)行處理。
已經(jīng)參照特定實施例詳細地描述了本發(fā)明。然而,很明顯本領(lǐng)域的技術(shù)人員能夠不脫離本發(fā)明的主旨而進行修改和替換。即,通過使用舉例說明的實例公開了本發(fā)明,但是本發(fā)明并不受到這些公開的實施例的限制。為了判斷本發(fā)明的主旨,應(yīng)該考慮在本說明書的開頭所描述的權(quán)利要求書。
可以由硬件、軟件或兩者的組合結(jié)構(gòu)來執(zhí)行本說明書中所描述的一系列處理過程。如果由軟件執(zhí)行處理過程,則在專用硬件中內(nèi)置的計算機存儲器中安裝記錄處理步驟的程序并執(zhí)行該程序,或者在能夠執(zhí)行不同處理的通用計算機存儲器中安裝該程序并執(zhí)行該程序。
例如,可以預(yù)先在作為記錄介質(zhì)的硬盤或ROM(只讀存儲器)中存儲該程序。另外,可以在可移動記錄介質(zhì)中暫時或永久地存儲該程序,例如軟盤、CD-ROM(光盤只讀存儲器)、MO(磁光)磁盤、DVD(數(shù)字化視頻光盤)、磁盤和半導(dǎo)體存儲器??梢蕴峁┻@類可移動記錄介質(zhì)作為所謂的封裝軟件。
可以在計算機中從上述可移動記錄介質(zhì)安裝該程序,從下載網(wǎng)點無線傳輸該程序到計算機,或經(jīng)由諸如LAN(局域網(wǎng))和因特網(wǎng)那樣的網(wǎng)絡(luò)來有線傳輸該程序到計算機。計算機接收以這種方式傳輸?shù)某绦虿⒃谥T如硬盤那樣的內(nèi)置記錄介質(zhì)中安裝該程序。
除了能不僅僅根據(jù)該描述而連續(xù)定時執(zhí)行說明書中所描述的各種處理外,還可以并行執(zhí)行或根據(jù)執(zhí)行處理的裝置的處理能力而單獨執(zhí)行或在必要的時侯執(zhí)行上述各種處理。說明書中的系統(tǒng)意指多個裝置的邏輯組合結(jié)構(gòu),且不受系統(tǒng)的限制,在該系統(tǒng)中每一個裝置具有適應(yīng)于相同外殼的一種結(jié)構(gòu)。
本發(fā)明適用于一種用于執(zhí)行驗證處理和密碼處理的設(shè)備,例如,具有密碼處理模塊的IC卡或其他密碼處理裝置。通過采用本發(fā)明的配置,通過功率分析將變得難于在IC模塊中篡改密碼處理密鑰和算法,防止過度的處理延遲。本發(fā)明的配置可以提供具有高保密性水平的密碼處理執(zhí)行函數(shù)的設(shè)備或裝置。
權(quán)利要求
1.一種密碼處理裝置,包括調(diào)制時鐘信號產(chǎn)生單元,用于生成將要用作數(shù)據(jù)處理定時控制信號的調(diào)制時鐘信號;以及數(shù)據(jù)處理單元,用于接收調(diào)制時鐘信號并根據(jù)輸入的調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理,其中;所述調(diào)制時鐘信號產(chǎn)生單元生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)信號相對應(yīng)的調(diào)制時鐘信號,并輸出調(diào)制時鐘信號到所述數(shù)據(jù)處理單元。
2.根據(jù)權(quán)利要求1所述的密碼處理裝置,進一步包括時鐘信號產(chǎn)生單元,用于生成具有恒定周期的正常時鐘信號;以及計數(shù)器,用于測量相對于正常時鐘信號的隨機數(shù)信號的延遲量,其中當(dāng)所述計數(shù)器測量的延遲小于預(yù)設(shè)可允許延遲時間時,所述調(diào)制時鐘信號產(chǎn)生單元輸出所述與隨機數(shù)信號相對應(yīng)的所述調(diào)制時鐘信號到所述的數(shù)據(jù)處理單元,當(dāng)所述延遲達到預(yù)設(shè)可允許延遲時間的上限時,輸出與所述正常時鐘信號相對應(yīng)的所述調(diào)制時鐘信號到所述數(shù)據(jù)處理單元。
3.根據(jù)權(quán)利要求1所述的密碼處理裝置,其中所述數(shù)據(jù)處理單元確定關(guān)于將在密碼處理中生成的中間數(shù)據(jù)存儲到寄存器的處理的定時,或關(guān)于根據(jù)調(diào)制時鐘信號從寄存器讀取在執(zhí)行密碼處理中將要應(yīng)用的中間數(shù)據(jù)的讀取處理的定時。
4.根據(jù)權(quán)利要求1所述的密碼處理裝置,其中所述密碼處理裝置是用于根據(jù)公共密鑰密碼系統(tǒng)來執(zhí)行密碼處理的密碼處理裝置,該公共密鑰密碼系統(tǒng)使用多級循環(huán)函數(shù)單元;以及所述數(shù)據(jù)處理單元確定關(guān)于將在多級循環(huán)函數(shù)單元生成的中間數(shù)據(jù)存儲到寄存器的處理的定時,或關(guān)于根據(jù)調(diào)制時鐘信號從寄存器讀取在多級循環(huán)函數(shù)單元上的處理中將要應(yīng)用的中間數(shù)據(jù)的讀取處理的定時。
5.一種密碼處理方法,包括調(diào)制時鐘信號產(chǎn)生步驟,生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)相對應(yīng)的調(diào)制時鐘信號,該調(diào)制時鐘信號用作數(shù)據(jù)處理定時控制信號;以及數(shù)據(jù)處理步驟,接收調(diào)制時鐘信號并根據(jù)該輸入調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理。
6.根據(jù)權(quán)利要求5所述的密碼處理方法,進一步包括時鐘信號產(chǎn)生步驟,生成具有恒定周期的正常時鐘信號;以及延遲量測量步驟,測量相對于正常時鐘信號的隨機數(shù)信號的延遲量,其中;當(dāng)所述計數(shù)器測量的延遲小于預(yù)設(shè)可允許延遲時間時,所述調(diào)制時鐘信號產(chǎn)生步驟將所述與隨機似乎信號相對應(yīng)的調(diào)制時鐘信號設(shè)置為將被輸出到所述數(shù)據(jù)處理單元的時鐘信號,當(dāng)延遲達到預(yù)設(shè)可允許延遲時間的上限時,輸出與所述正常時鐘信號相對應(yīng)的所述調(diào)制時鐘信號到所述數(shù)據(jù)處理單元。
7.根據(jù)權(quán)利要求5所述的密碼處理方法,其中所述數(shù)據(jù)處理步驟確定關(guān)于將在密碼處理上生成的中間數(shù)據(jù)存儲到寄存器的處理的定時,或關(guān)于根據(jù)調(diào)制時鐘信號從寄存器讀取在執(zhí)行密碼處理上將要應(yīng)用的中間數(shù)據(jù)的讀取處理的定時。
8.根據(jù)權(quán)利要求5所述的密碼處理方法,其中所述密碼處理步驟是用于根據(jù)公共密鑰密碼系統(tǒng)來執(zhí)行密碼處理的密碼處理步驟,該公共密鑰密碼系統(tǒng)使用多級循環(huán)函數(shù)單元;以及所述數(shù)據(jù)處理步驟確定關(guān)于將在多級循環(huán)函數(shù)單元生成的中間數(shù)據(jù)存儲到寄存器的處理的定時,或關(guān)于根據(jù)調(diào)制時鐘信號從寄存器讀取在多級循環(huán)函數(shù)單元上將要應(yīng)用的中間數(shù)據(jù)的讀取處理的定時。
9.一種用于在計算機系統(tǒng)上執(zhí)行密碼處理的計算機程序,所述計算機程序包括調(diào)制時鐘信號產(chǎn)生步驟,生成與以隨機數(shù)為基礎(chǔ)的隨機數(shù)相對應(yīng)的調(diào)制時鐘信號,該調(diào)制時鐘信號用作數(shù)據(jù)處理定時控制信號;以及數(shù)據(jù)處理步驟,接收調(diào)制時鐘信號并根據(jù)該輸入的調(diào)制時鐘信號確定處理定時以執(zhí)行數(shù)據(jù)處理。
10.一種密碼處理裝置,包括數(shù)據(jù)處理單元,用于執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生組件,用于生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及多個數(shù)據(jù)存儲單元,每一個數(shù)據(jù)存儲單元用于存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的密碼處理裝置,其中所述密碼處理裝置是用于根據(jù)公共密鑰密碼系統(tǒng)來執(zhí)行密碼處理的密碼處理裝置,該公共密鑰密碼系統(tǒng)使用多級循環(huán)函數(shù)單元;以及所述數(shù)據(jù)處理單元包括多級數(shù)據(jù)轉(zhuǎn)換單元;以及所述中間數(shù)據(jù)是在每一級所述數(shù)據(jù)轉(zhuǎn)換單元的輸出數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的密碼處理裝置,其中所述多個數(shù)據(jù)存儲單元包括第一數(shù)據(jù)存儲單元,用于存儲沒有反向的構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù);以及第二數(shù)據(jù)存儲單元,用于存儲經(jīng)過反向的構(gòu)成所述中間數(shù)據(jù)的所有比特數(shù)據(jù)。
13.根據(jù)權(quán)利要求10所述的密碼處理裝置,其中所述多個數(shù)據(jù)存儲單元包括第一數(shù)據(jù)存儲單元,用于逐位存儲有關(guān)構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù)的反向或非反向數(shù)據(jù);以及第二數(shù)據(jù)存儲單元,用于存儲有關(guān)構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù)的在第一數(shù)據(jù)存儲單元中所存儲的比特數(shù)據(jù)的逐位反向的數(shù)據(jù)。
14.根據(jù)權(quán)利要求10所述的密碼處理裝置,其中所述反向數(shù)據(jù)產(chǎn)生組件是反向器;以及其中所述多個數(shù)據(jù)存儲單元之一存儲通過反向器的反向數(shù)據(jù)。
15.根據(jù)權(quán)利要求10所述的密碼處理裝置,進一步包括在其中所述多個數(shù)據(jù)存儲單元之一的輸出級的輸出數(shù)據(jù)反向處理組件,作為用于輸出數(shù)據(jù)到所述數(shù)據(jù)處理單元的中間數(shù)據(jù)存儲組件。
16.根據(jù)權(quán)利要求10所述的密碼處理裝置,其中設(shè)置所述密碼處理裝置為具有一種用于對中間數(shù)據(jù)的非反向數(shù)據(jù)和反向數(shù)據(jù)執(zhí)行存儲處理的結(jié)構(gòu),從而使在與所述多個數(shù)據(jù)存儲單元有關(guān)的數(shù)據(jù)存儲處理時的漢明權(quán)的總和保持恒定。
17.一種密碼處理方法,包括數(shù)據(jù)處理步驟,執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生步驟,生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及數(shù)據(jù)存儲步驟,在多個數(shù)據(jù)存儲單元的每一個中存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
18.如權(quán)利要求17所述的密碼處理方法,其中所述密碼處理方法是用于根據(jù)公共密鑰密碼系統(tǒng)來執(zhí)行密碼處理的密碼處理方法,該公共密鑰密碼系統(tǒng)使用多級循環(huán)函數(shù)單元;以及所述數(shù)據(jù)處理步驟包括多級數(shù)據(jù)轉(zhuǎn)換步驟;以及所述中間數(shù)據(jù)是在每一級所述數(shù)據(jù)轉(zhuǎn)換步驟的輸出數(shù)據(jù)。
19.如權(quán)利要求17所述的密碼處理方法,其中所述多個數(shù)據(jù)存儲步驟包括第一數(shù)據(jù)存儲步驟,用于存儲沒有反向的構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù);以及第二數(shù)據(jù)存儲步驟,用于存儲經(jīng)過反向的構(gòu)成所述中間數(shù)據(jù)的所有比特數(shù)據(jù)。
20.如權(quán)利要求17所述的密碼處理方法,其中所述數(shù)據(jù)存儲步驟包括;第一數(shù)據(jù)存儲步驟,用于逐位存儲有關(guān)構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù)的反向或非反向數(shù)據(jù);以及第二數(shù)據(jù)存儲步驟,用于存儲有關(guān)構(gòu)成所述中間數(shù)據(jù)的比特數(shù)據(jù)的在第一數(shù)據(jù)存儲步驟中所存儲的比特數(shù)據(jù)的逐位反向的數(shù)據(jù)。
21.如權(quán)利要求17所述的密碼處理方法,其中當(dāng)數(shù)據(jù)存儲單元中所存儲的數(shù)據(jù)是反向數(shù)據(jù)而且還采用該數(shù)據(jù)進行數(shù)據(jù)處理時,設(shè)置所述密碼處理方法來執(zhí)行對所存儲數(shù)據(jù)的再反向處理;以及所述數(shù)據(jù)處理步驟執(zhí)行對所述再反向數(shù)據(jù)的數(shù)據(jù)處理。
22.如權(quán)利要求17所述的密碼處理方法,其中設(shè)置所述密碼處理方法來對中間數(shù)據(jù)的非反向數(shù)據(jù)和反向數(shù)據(jù)執(zhí)行存儲處理,從而使在與所述多個數(shù)據(jù)存儲單元有關(guān)的數(shù)據(jù)存儲處理時的漢明權(quán)的總和保持恒定。
23.一種用于在計算機系統(tǒng)上執(zhí)行密碼處理的計算機程序,所述計算機程序包括數(shù)據(jù)處理步驟,執(zhí)行輸入數(shù)據(jù)的數(shù)據(jù)處理;反向數(shù)據(jù)產(chǎn)生步驟,生成比特數(shù)據(jù)的反向數(shù)據(jù),該比特數(shù)據(jù)構(gòu)成由數(shù)據(jù)處理單元通過數(shù)據(jù)處理生成的中間數(shù)據(jù);以及數(shù)據(jù)存儲步驟,在多個數(shù)據(jù)存儲單元的每一個中存儲與中間數(shù)據(jù)相對應(yīng)的非反向比特數(shù)據(jù)和反向比特數(shù)據(jù)。
全文摘要
提供一種密碼處理裝置、密碼處理方法以及計算機程序。根據(jù)本發(fā)明所述的結(jié)構(gòu),調(diào)制時鐘信號是根據(jù)以隨機數(shù)為基礎(chǔ)的信號生成,而且根據(jù)該調(diào)制時鐘信號確定數(shù)據(jù)處理定時以執(zhí)行數(shù)據(jù)處理。因此,使隨著加密和解密數(shù)據(jù)的密碼處理裝置的運行時間、通過測量耗損功率而進行的加密密鑰、解密密鑰等的保密信息分析(即基于功率分析的密碼分析)變得困難,因此實現(xiàn)具有高保密性水平的密碼處理裝置和方法。
文檔編號H04L9/06GK1601578SQ20041008746
公開日2005年3月30日 申請日期2004年7月7日 優(yōu)先權(quán)日2003年7月7日
發(fā)明者阿部讓司, 金丸昌司 申請人:索尼株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1