国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      密碼電路的制作方法

      文檔序號:7618651閱讀:164來源:國知局
      專利名稱:密碼電路的制作方法
      技術領域
      本發(fā)明涉及安裝在IC卡或介質卡等卡或信息處理終端裝置等(以下稱為機密處理裝置)內(nèi)部的、謀求保護記錄在該機密處理裝置內(nèi)部的機密信息的電路,特別涉及具有與近年來成為威脅的故障利用分析相對抗的對抗單元的密碼電路。
      背景技術
      近年來,機密處理裝置在所謂信用卡或電子貨幣的金融·流通領域等各業(yè)界被廣泛利用,為支撐信息化社會而發(fā)揮了重要的作用。可是,為避免讓有惡意的攻擊者將存儲在機密處理裝置內(nèi)部的秘密信息泄露到外部,必須利用該設備。
      但是,非法取得這些機密處理裝置內(nèi)的秘密情報的方法已經(jīng)被多次報告,這些方法被稱為探索分析、電力分析和時序分析。為此,確立對這些分析方法的對抗單元,就成為在考慮利用機密處理裝置時必不可少的課題。
      特別是在這些分析手法中被稱為故障利用分析的分析方法就成為了問題在安裝在機密處理裝置內(nèi)的實現(xiàn)密碼處理的密碼電路內(nèi),故意地使其發(fā)生物理故障,利用無故障狀態(tài)的密碼電路內(nèi)的信號線的值和發(fā)生故障時密碼電路內(nèi)的信號線的值的差,推定作為安裝在機密處理裝置中的機密信息即密鑰(“平成11年度關于智能卡的安全性的調(diào)查調(diào)查報告書”、[online]、[平成15年10月27日檢索]、因特網(wǎng)URLhttp:∥www.ipa.go.jp/security/fyll/report/contents/crypto/crypto/report/SmartCard/sc.html參照)。
      在該故障利用分析中,有被稱為故障非差分攻擊和故障差分攻擊的兩種攻擊方法。故障非差分攻擊是在實現(xiàn)密碼處理的密碼電路中,在為了存儲密碼處理過程的值而運用的寄存器內(nèi)的觸發(fā)器內(nèi)故意使其發(fā)生值一直為0(或是1)的0退化故障(1的情況為1退化故障),利用無故障狀態(tài)電路的值和發(fā)生故障時電路的值,可以破譯密鑰。另一方面,故障差分攻擊不是值一直為0或1故障,而是使值暫時固定為0或1的故障在電路內(nèi)發(fā)生,進而使該故障在密碼電路的寄存器內(nèi)的觸發(fā)器和為進行密碼處理而需要的運算的組合電路發(fā)生,由此進行分析。
      可是,對于故障差分攻擊,其攻擊必須使暫時的退化故障只在攻擊者的意圖期間內(nèi)在密碼電路內(nèi)的觸發(fā)器和組合電路里發(fā)生。此外,對于故障利用分析為了取得密鑰信息,需要對50~200個左右的數(shù)據(jù)作密碼處理。
      作為對于故障利用分析的以往的對應策略,有將檢測熱或電壓作為故障發(fā)生原因的電路,安裝在機密處理裝置上的密碼電路和包含密鑰信息的芯片內(nèi)的方法。這種方法,應用在熱或電壓作為故障發(fā)生原因的密碼電路和包含密鑰信息的芯片時,由檢測電路檢測到這些故障發(fā)生的原因,停止芯片內(nèi)部電路的工作,或是禁止其使用。
      此外,作為不使用檢測電路的方法,有或是如圖20所示在密碼電路利用相同的兩個密碼處理,或是如圖21所示在密碼處理外利用解密處理的方法(參照特開平10-154976號公報)。圖20的方法,對于做密碼處理的對象即明碼電文20A,運用做相同處理的密碼處理20C和密碼處理20D,通過從明碼電文生成密碼電文的密鑰20B,得到兩個密碼處理輸出即密碼電文20E和密碼電文20F。并且,這兩個密碼電文通過比較20G相比較。如果比較結果20H不相同時,因為知道由于故障的影響若干密碼電文變成了具有與無故障狀態(tài)不同的值的密碼電文,所以可以判定在實現(xiàn)密碼處理20C和密碼處理20D的密碼電路的某處存在故障。此外,圖21的方法,對于做密碼處理的對象即明碼電文21A,通過從明碼電文生成密碼電文的密鑰21B,進行密碼處理21C,得到密碼電文21D。而且,對于密碼電文21D由密鑰21B再次進行解密處理21E,得到明碼電文21F。此明碼電文21F與密碼處理前的明碼電文21A通過比較21G相比較,比較結果21H不相同的情況下,因為知道由于故障的影響或是密碼處理21C沒有被正確執(zhí)行,或是解密處理21E沒有被正確執(zhí)行,所以可以判定在實現(xiàn)這些處理的電路內(nèi)某處存在故障。
      但是,在使用檢測為使退化故障發(fā)生而施加的熱或電壓的電路時,在利用了成為電壓或熱以外的故障發(fā)生原因的新因素的情況下,就有無法檢測這些因素的問題。
      此外,特開平10-154976號的發(fā)明中,如圖20所示對相同明碼電文用相同的密鑰進行加密,為了確認是否輸出了相同的密碼電文,就必須使用兩個密碼電路,由此導致的硬件成本增大和在兩個密碼電路的相同地方發(fā)生退化故障的情況下,就有無法對應的問題。
      在上述特開平10-154976號的發(fā)明中,雖然也存在如圖21所示的被加密的密碼電文再次由相同的密鑰解密,確認是否生成了相同明碼電文的方法,但是此時對于相同的明碼電文在密碼處理后因為解密處理的進行也是必要的,所以就存在密碼處理所需時間增大的問題。

      發(fā)明內(nèi)容
      因此,本發(fā)明的目的在于提供一種密碼電路,其能夠不依賴于故障發(fā)生原因地來進行故障檢測,可以實現(xiàn)與使用兩個相同的密碼電路的情況相比抑制了硬件的增大,或是可以實現(xiàn)抑制因故障檢查導致的處理時間的增大。
      為此,本發(fā)明將通過利用密碼電路的信號線的值來判定有無故障的故障檢查電路設置在密碼電路內(nèi)部,由此就能夠不依賴于故障發(fā)生原因地來進行故障檢測。此外這些故障檢查電路實現(xiàn)了與使用兩個相同的密碼電路的情況相比抑制了硬件的增大,或是實現(xiàn)了抑制因故障檢查導致的處理時間的增大。
      為了解決上述問題,本發(fā)明將檢查電路設置在密碼電路內(nèi),該檢查電路通過利用在密碼電路中用于存儲密碼處理階段的值的寄存器的值從而進行故障檢測。在這里,作為被存儲的值考慮是下述這樣的循環(huán)(round)運算中各循環(huán)運算后的值在通過對明碼電文加密或是解密的密鑰將明碼電文加密成為密碼電文的密鑰加密方式的密碼算法中,輸入通過對密鑰執(zhí)行R次部分鍵運算得到的R個部分鍵,為給明碼電文加密而對明碼電文進行R次重復循環(huán)運算。設置在密碼電路內(nèi)的故障檢查電路,由于運用存儲循環(huán)運算后的值的寄存器的值進行檢查,所以與使用兩個密碼電路并比較它們的輸出的情況相比,以抑制硬件成本的形式使檢查成為可能,或是與密碼處理后進行解密處理的情況相比較,以抑制密碼處理時間的增大的形式使檢查成為可能。并且根據(jù)從故障檢查電路輸出的判定結果,當知道存在故障的情況,向使密鑰信息無效的電路通知存在故障,使密鑰信息無效,或是向控制密碼電路工作的電路通知存在故障,停止密碼電路的處理,由此防止密鑰信息的泄漏。
      本發(fā)明的密碼電路是密鑰密碼方式的密碼電路,其中輸入加密對象和密鑰,對上述密鑰執(zhí)行R次部分鍵運算從而取得R個部分鍵,輸入上述R個部分鍵并對上述加密對象執(zhí)行R次重復循環(huán)運算,由此將上述加密對象加密,該密碼電路具備存儲上述加密對象的上述循環(huán)運算后的值的寄存器;根據(jù)該寄存器的值判定有無退化故障的故障檢查電路;以及當輸入上述故障檢查電路的檢查結果并在上述檢查結果中存在上述退化故障的情況下使上述密鑰無效的電路。
      例如,其特征在于具備寄存器,在密碼電路中保持密鑰;故障檢查電路,使用存儲循環(huán)運算后的值的寄存器的值,在用于判定有無故障的判定處理期間中判定在存儲循環(huán)運算后的值的寄存器中是否存在0退化故障或1退化故障;以及一電路,根據(jù)故障檢查電路輸出的檢查結果確認了在存儲循環(huán)運算后的值的寄存器中存在退化故障的情況下,使保持密鑰的寄存器的值無效。
      本發(fā)明的其他密碼電路是密鑰密碼方式的密碼電路,其中輸入加密對象和密鑰,對上述密鑰執(zhí)行R次部分鍵運算從而取得R個部分鍵,輸入上述R個部分鍵并對上述加密對象執(zhí)行R次重復循環(huán)運算,由此將上述加密對象加密,上述密碼電路具備存儲上述加密對象的上述循環(huán)運算后的值的寄存器;根據(jù)該寄存器的值判定有無退化故障的故障檢查電路;以及當輸入上述故障檢查電路的檢查結果并在上述檢查結果中存在上述退化故障的情況下通過控制上述密碼電路工作的電路停止上述密碼電路處理的電路。
      例如,其特征在于具備寄存器,在密碼電路中保持密鑰;故障檢查電路,使用存儲循環(huán)運算后的值的寄存器的值,在用于判定有無故障的判定處理期間中判定在存儲循環(huán)運算后的值的寄存器中是否存在0或1退化故障;以及一電路,根據(jù)故障檢查電路輸出的檢查結果確認了在存儲循環(huán)運算后的值的寄存器中存在退化故障的情況下,通過控制密碼電路工作的電路,停止密碼電路處理。
      上述構成中,故障檢查電路根據(jù)存儲循環(huán)運算后的值的寄存器的存儲前的值和存儲后的值來判定上述寄存器有無退化故障。例如構成了下述這樣的故障檢查電路通過運用存儲循環(huán)運算后的值的寄存器的存儲前的值和存儲后的值兩者,從而使用于判定有無故障的判定處理期間與循環(huán)運算并行執(zhí)行,可以判定是否存在存儲循環(huán)運算后的值的寄存器的0或1退化故障。
      上述構成中,故障檢查電路根據(jù)對于預先準備好的檢查用圖形執(zhí)行的循環(huán)運算結束后寄存器的值來判定故障有無。例如構成了下述這樣的故障檢查電路通過使用為判定有無故障而預先準備好的檢查用圖形,從而在用于判定故障有無的判定處理期間,除了存儲循環(huán)運算后的值的寄存器的0或1退化故障之外,還可以判定對數(shù)據(jù)進行循環(huán)運算的組合電路中有無0或1退化故障。
      上述構成中,故障檢查電路在對所有數(shù)據(jù)進行的密碼處理中判定有無故障。例如,設置用于在對所有數(shù)據(jù)進行的密碼處理中判定有無故障的判定處理期間,當根據(jù)在該期間內(nèi)執(zhí)行的故障檢查的判定結果知道存在退化故障的情況下使密鑰無效,或是停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路在對連續(xù)的N個數(shù)據(jù)進行的密碼處理中對于M個(M<N)的數(shù)據(jù)判定有無故障。例如預先設定規(guī)定數(shù)N,在對連續(xù)的N個數(shù)據(jù)進行的密碼處理當中的對于M個(M<N)的數(shù)據(jù)進行的密碼處理中,設置用于判定故障有無的判定處理期間,當根據(jù)在該期間內(nèi)執(zhí)行的故障檢查的判定結果知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路在R次循環(huán)運算開始前和R次循環(huán)運算結束后判定有無故障。例如對于實施檢查的各個數(shù)據(jù),設置用于在密碼處理規(guī)定的R次循環(huán)運算開始前和R次循環(huán)運算結束后判定有無故障的判定處理期間,當根據(jù)在該期間內(nèi)執(zhí)行的故障檢查的判定結果知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路在R次所有循環(huán)運算中,判定有無故障。例如,對于實施檢查的各個數(shù)據(jù),設置用于在密碼處理規(guī)定的R次所有循環(huán)運算當中判定故障有無的判定處理期間,當根據(jù)在該期間內(nèi)執(zhí)行的故障檢查的判定結果知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路在R次循環(huán)運算當中在N(N<R)次上述循環(huán)運算中判定有無故障。例如對于實施檢查的各個數(shù)據(jù)設置判定處理期間,在該期間中,在持有規(guī)定的循環(huán)數(shù)R的密碼處理下設定標準數(shù)N(N<R),在R次循環(huán)運算當中,在N次循環(huán)運算中判定故障有無,當根據(jù)在該期間內(nèi)執(zhí)行的故障檢查的判定結果知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路將對檢查用圖形執(zhí)行的循環(huán)運算的循環(huán)運算數(shù)執(zhí)行密碼處理規(guī)定的上述循環(huán)運算數(shù)R減少n次的R-n次,根據(jù)獲得的值判定有無故障。例如對于實施檢查的各個數(shù)據(jù),在用于判定故障有無的判定處理期間,對用來判定有無故障的檢查用圖形執(zhí)行的循環(huán)數(shù),執(zhí)行比密碼處理規(guī)定的循環(huán)數(shù)R減少n次的R-n次,在知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      上述構成中,故障檢查電路將對檢查用圖形執(zhí)行的循環(huán)運算的循環(huán)運算數(shù)執(zhí)行密碼處理規(guī)定的上述循環(huán)運算數(shù)R增加n次的R+n次,根據(jù)獲得的值判定有無故障。例如對于實施檢查的各個數(shù)據(jù),在用于判定有無故障的判定處理期間,對用于判定有無故障的檢查用圖形執(zhí)行的循環(huán)數(shù),執(zhí)行比密碼處理規(guī)定的循環(huán)數(shù)R增加n次的R+n次,在知道存在退化故障的情況下使密鑰無效,或停止密碼電路的處理,由此來預防故障利用分析。
      根據(jù)上述本發(fā)明的密碼電路,將利用存儲循環(huán)運算后的值的寄存器的值進行退化故障的檢查的檢查電路設置在密碼電路內(nèi)部,根據(jù)該電路的檢查結果使鍵信息無效,或停止密碼電路的處理,由此可以對應利用了成為電壓或熱以外的故障發(fā)生原因的新因素的情況,此外以抑制硬件的增大的形式,或通過與密碼處理并行判定有無故障以抑制處理時間的增大的形式,使應對故障利用分析的對策成為可能。


      圖1是表示具有本發(fā)明的第1實施方式中故障檢測和密鑰無效化功能的密碼電路的概略的方框圖。
      圖2是表示在本發(fā)明中安裝了作為對象的密鑰密碼方式的算法的密碼電路的說明圖。
      圖3是表示DES算法的內(nèi)容的說明圖。
      圖4是表示不進行寄存器的共有而進行DES算法的循環(huán)運算的電路的內(nèi)容的方框圖。
      圖5是表示通過寄存器的共有進行DES算法的循環(huán)運算的電路的內(nèi)容的方框圖。
      圖6是表示通過將寄存器的所有位(bit)設定為1具有故障檢測和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖7是表示通過串行輸出寄存器的值具有故障檢測和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖8是表示本發(fā)明的第2實施方式中密鑰無效化電路內(nèi)容的說明圖。
      圖9是表示本發(fā)明的第3實施方式中具有故障檢測和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖10是表示本發(fā)明的第4實施方式中通過運用檢查用圖形和期待值具有故障檢測和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖11是表示通過運用寄存器的所有位的值為1的檢查用圖形具有故障檢查和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖12是表示通過運用兩個寄存器的值相等的檢查用圖形具有故障檢測和密鑰無效化功能的密碼電路內(nèi)容的方框圖。
      圖13是表示本發(fā)明的第5實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖14是表示本發(fā)明的第6實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖15是表示本發(fā)明的第7實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖16是表示本發(fā)明的第8實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖17是表示本發(fā)明的第9實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖18是表示本發(fā)明的第10實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖19是表示本發(fā)明的第11實施方式中密碼電路2A的故障檢查的執(zhí)行期間的說明圖。
      圖20是表示具有兩個密碼電路的以往方法的概略的說明圖。
      圖21是表示具有密碼電路和解密電路的以往方法的概略的說明圖。
      具體實施例方式
      圖2是表示本發(fā)明中作為對象的密鑰密碼方式算法的圖。圖2的密碼電路2A,輸入作為加密對象的明碼電文2B和作為用于加密明碼電文2B的鍵即密鑰2C,進行用加密算法規(guī)定的預定運算,輸出密碼電文2D。
      圖3作為用密碼電路2A實現(xiàn)的密鑰密碼方式的算法的一個例子,圖示了被稱為DES(Data Encryption Standard數(shù)據(jù)加密標準)的算法。在圖3中與圖2相同的構成要素運用了相同的符號,省略其說明。對密鑰密碼方式的算法DES,在對明碼電文2B做初始轉置3A后,將數(shù)據(jù)分割為高32位和低32位,對于各個被分割的數(shù)據(jù)重復16級循環(huán)運算。此外在各循環(huán)運算中利用從密鑰2C通過部分鍵運算3B生成的部分鍵。另外由部分鍵運算n生成的部分鍵n以后表示為Kn。并且16級的循環(huán)運算結束后,進行最終轉置3C,得到了密碼電文2D。
      圖4是算法DES中進行循環(huán)運算的電路的圖示,根據(jù)該圖,通過從密鑰4A運用部分鍵運算電路4B生成的部分鍵Kn,可以從第n-1次的循環(huán)運算后的數(shù)據(jù)Ln-1和Rn-1得到第n次的循環(huán)運算后的數(shù)據(jù)Ln和Rn。在算法DES中,Ln和Rn可以運用以Rn-1、Kn為輸入的被稱為F函數(shù)的函數(shù)并用下式得到。
      Ln=Rn-1Rn=Ln-1×OR F(Rn-1、Kn)在這里,圖4電路中的F函數(shù)即F(Rn-1、Kn)是作為F函數(shù)4C被構成,×OR(“異或”)是由×OR4D構成。此外第n-1次的循環(huán)運算后的數(shù)據(jù)Ln-1存儲在寄存器4E,Rn-1存儲在寄存器4F,第n次的循環(huán)運算后的數(shù)據(jù)Ln存儲在寄存器4G,Rn存儲在寄存器4H。但是,如圖5所示,存儲第n-1次循環(huán)運算后的數(shù)據(jù)Ln-1的寄存器4E、和存儲Rn-1的寄存器4F可以作為存儲第n次循環(huán)運算后數(shù)據(jù)Ln和Rn的寄存器而共用。關于F函數(shù)4C、初始轉置3A、部分鍵運算3B、和最終轉置3C的詳細情況,因為算法DES本身是已經(jīng)被公開而為大家所周知的算法,故在這里就不再贅述了。
      下面,在本發(fā)明的實施方式,說明密碼電路2A是改良了算法DES并具有對故障利用分析的對抗單元而安裝的。
      (實施方式1)圖1是表示具有本發(fā)明的第1實施方式中故障檢測和密鑰無效化功能的循環(huán)運算概略的圖。圖1中對與圖2、圖3和圖4中相同構成要素運用了相同的符號,省略其說明。圖1中的電路是在圖4所示實現(xiàn)算法DES循環(huán)運算的電路基礎上,追加了故障檢查電路1A和密鑰無效化電路1B而構成的,該故障檢查電路1A中,在用于判定有無故障的判定處理期間以存儲循環(huán)運算后的值的寄存器4G、4H的值為輸入,并根據(jù)它們的值判定有無退化故障;該密鑰無效化電路1B中,根據(jù)從故障檢查電路1A輸出的檢查結果,在構成寄存器4G、4H的觸發(fā)器內(nèi)存在退化故障的情況下,由密鑰無效化信號使密碼電路內(nèi)的密鑰4A無效。另外圖1中,在存儲第n次循環(huán)運算后數(shù)據(jù)Ln的寄存器4G、和存儲Rn的寄存器4H中檢測觸發(fā)器的退化故障,對于這種情況下在故障檢查電路1A的輸入中輸出寄存器4G的值和寄存器4H的值。并且,在知道寄存器4G和寄存器4H中存在退化故障的情況下,使密鑰4A無效化。作為無效化的一個例子,有將存儲密鑰4A的寄存器的值重置的方法。此外,只要構成這樣的電路即可當對寄存器4G和寄存器4H以外的寄存器中調(diào)查是否存在退化故障時,輸入這些寄存器的值到故障檢查電路1A,運用該值進行故障檢查。此外如圖5所示,與將存儲第n-1次循環(huán)運算后的數(shù)據(jù)Ln-1的寄存器4E和存儲Rn-1的寄存器4F作為存儲第n次循環(huán)運算后數(shù)據(jù)Ln和Rn的寄存器共用的情況相同,只要構成為能夠有運用共用的寄存器4E和寄存器4F的值做故障檢查并使密鑰4A無效即可。
      圖1中的進行循環(huán)運算的電路可以如圖6那樣構成。在該電路,在向寄存器4G和寄存器4H的輸入中插入選擇器6A,可以選擇或是存儲循環(huán)運算后的值Ln和Rn到寄存器4G和寄存器4H,或是設定檢查用的輸入。此外,寄存器4G和寄存器4H的輸出與所有位的AND6B連接,進而使所有位的AND6B的輸出連接密鑰無效化電路1B上。對此電路,在檢測出寄存器4G和寄存器4H的值固定為0的故障即0退化故障時,在判定有無故障的判定期間內(nèi)運用選擇器6A,設定寄存器4G和寄存器4H的所有位為1。在這樣的設定中,在寄存器4G和寄存器4H不存在0退化故障時,雖然所有位的AND6B的輸出成為1,但是在某些發(fā)器中存在0退化故障時,就通過該觸發(fā)器的值使輸出變?yōu)?。因此,與所有位的AND6B的輸出相連接的密鑰無效化電路1B,可以在遵循此輸入在存在退化故障的情況下使密鑰無效。在檢測出寄存器4G和寄存器4H的值固定為1的1退化故障時,運用選擇器6A設定寄存器4G和寄存器4H的所有位為0,只要使用所有位的0R代替所有位的AND6B即可。這種情況下,雖然如果寄存器4G和寄存器4H不存在1退化故障,所有位的0R輸出為0,但是在某位存在1退化故障的情況下就變?yōu)?。因此通過使用該輸出,可以與0退化故障情況相同地使密鑰無效。此外,在檢測出存儲Ln的寄存器4G和存儲Rn的寄存器4H以外的寄存器中存在退化故障時,將與選擇器6A相同的選擇器設置成其輸入,這些寄存器的所有位可能設定為1或是0,進而通過將寄存器的值連接到所有位的AND或是所有位的0R上,從而可以檢測出退化故障并使密鑰無效。
      此外圖1中的進行循環(huán)運算的電路,如圖7所示,可以通過運用由移位動作可串行輸出寄存器4G的值的寄存器7A,可復制寄存器4G的值的寄存器7B以及比較電路7C來檢測故障。如果存儲Ln的寄存器4G中存在退化故障,比方說設想1退化故障,從寄存器4G串行輸出的數(shù)據(jù)從某位以后全部被固定為1。此時因為寄存器7A和寄存器7B的值不同,故可以通過比較電路7C進行比較,檢測出故障。在寄存器4G中存在0退化故障時也是同樣的。此外,當寄存器4G以外的寄存器作為檢查對象的時候也是通過運用使值串行輸出的寄存器和復制值的寄存器,同樣地可以檢測出故障。
      綜上所述,通過利用存儲循環(huán)運算后的值的寄存器的值,也可以對應利用了成為電壓或熱以外的故障發(fā)生原因的新因素的情況。此外,與使用兩個密碼電路的情況相比以抑制硬件量的形式,可以檢測出故障。
      (實施方式2)圖8是表示第2實施方式的密鑰無效化電路的構成圖。第1實施方式中在密碼電路中使用的密鑰無效化電路1B如圖1、圖6和圖7所示輸出密鑰無效化信號使密鑰4A無效化,而第2實施方式的密碼電路中,以如圖8(b)所示輸出密碼電路停止信號替代了如圖8(a)所示輸出密鑰無效化信號,在存在故障時通知控制密碼電路工作的電路存在故障,停止密碼電路工作。
      (實施方式3)圖9是表示本發(fā)明第3實施方式具有故障檢測和密鑰無效化功能的循環(huán)運算內(nèi)容的圖。圖9中,對于與圖1、圖2、圖3和圖4相同的構成要素運用了相同的符號,省略其說明。此電路中使用了兩個算出漢明權(Hamming weight)的漢明權算出電路9A,各自相應地向Rn的寄存器4H輸入設定前的值、向寄存器4H輸入設定后的值。在這里漢明權是表示當用二進制數(shù)表示某值時,在二進制數(shù)中成為1的位的個數(shù)。并且,兩個漢明權算出電路9A的輸出通過比較電路9B作比較,其輸出輸入到密鑰無效化電路1B,由此進行密鑰4A的無效化。另外此電路中,以存在于存儲第n次循環(huán)運算后的數(shù)據(jù)Rn的寄存器4H中的退化故障為檢查對象。
      使用這樣的電路結構時,如果寄存器4H中的某位存在0或是1退化故障,則因為該故障的影響有時設定在寄存器的值的漢明權在向寄存器4H設定前后發(fā)生變化。例如,存在引起0退化故障的位并且想將該位為設定為1的情況下,在向寄存器4H的設定前和設定后,由于該位的0退化故障的影響,漢明權將減少1。因此,通過用比較電路9B比較向Rn的寄存器4H設定前后的漢明權,可以判定退化故障的有無。但是,在存在引起0退化故障的位并且想將該位設定為0的情況下,在向寄存器4H的設定前后漢明權不發(fā)生變化,所以會看漏了故障。但是,雖然這種情況下的看漏概率是1/2,但是因為為了做故障利用分析就必須對50~200的數(shù)據(jù)做運算,所以可以認為對于全部的數(shù)據(jù)看漏故障的概率是比較低的。
      使用以上結構的情況下,因為向寄存器4H的設定前的漢明權和設定后的漢明權不停止循環(huán)運算就可以計算出來,所以可以一邊做循環(huán)運算一邊做故障檢查。此外檢查存儲Rn的寄存器4H以外的寄存器的退化故障的情況也是同樣的,只要構成電路以便在向這些寄存器的設定前后算出漢明權即可。
      還有,對于圖9的電路,替代從密鑰無效化電路1B輸出密鑰無效化信號使密鑰4A無效,而用從密鑰無效化電路1B輸出密碼電路停止信號,在存在故障的情況下通知控制密碼電路工作的電路存在故障,可以通過停止密碼電路的工作來防止密鑰泄漏。
      如上所述,存儲循環(huán)運算后的值的寄存器中,除了向寄存器的設定后的值以外,還可以通過利用向寄存器的設定前的值,使在循環(huán)運算執(zhí)行過程中可檢測退化故障,并可以以抑制密碼處理時間增大的形式作為對應故障利用分析的對策。
      (實施方式4)圖10是表示第4實施方式中具有故障檢測和密鑰無效化功能的循環(huán)運算內(nèi)容的圖。圖10中,對于與圖1、圖2、圖3和圖4相同的構成要素運用了相同的符號,省略其說明。此電路中在存儲循環(huán)運算開始前的值L0和R0的寄存器10C和寄存器10D中,準備選擇器10B選擇或是存儲循環(huán)運算開始前的數(shù)據(jù)或是設定在內(nèi)存10A中存儲的檢查用圖形,此外用于存儲所有的循環(huán)運算結束后的值L16和R16的寄存器10E和寄存器10F的值,與存儲在內(nèi)存10G的期待值通過比較電路10H進行比較。并且通過這種結構,在為判定有無故障的判定處理期間內(nèi),運用選擇器10B將存儲在內(nèi)存10A的檢查用圖形設定在存儲循環(huán)運算開始前的值L0和R0的寄存器10C和寄存器10D中,設定后與對通常的明碼電文的循環(huán)運算同樣的,對檢查用圖形執(zhí)行循環(huán)運算。所有的循環(huán)運算結束后,運用比較電路10H比較存儲在寄存器10E和寄存器10F的值和預先存儲在內(nèi)存10G的期待值。如果存儲循環(huán)運算后的值的寄存器和做循環(huán)運算的組合電路中存在退化故障的情況下,有時由于該故障的影響,存儲在寄存器10E和寄存器10F的值與期待值不相同。因此,通過將比較電路10H的輸出連接到密鑰無效化電路1B上,可以輸出密鑰無效化信號。另外,用此方法做循環(huán)運算時使用的部分鍵Ki,不是從密鑰4A生成的,而可以為檢查用使用預先準備的數(shù)據(jù)。
      此外對該方法,如圖11所示如果預先做好全部循環(huán)運算結束后的數(shù)據(jù)的值全部變?yōu)?的檢查用圖形,則期待值不是如圖10那樣的存儲在內(nèi)存10G中,而是通過對所有的循環(huán)運算結束后的值運用所有位的AND11A從而可以檢測退化故障。此時,寄存器和組合電路中不存在退化故障時,寄存器10E和寄存器10F的值都變?yōu)?,但是存在故障時,寄存器10E或是2存器10F的某些位就不為1。
      進而,如圖12所示如果預先做好使存儲所有循環(huán)運算結束后的值的寄存器10E和寄存器10F的值相同的檢查用圖形,則期待值不是如圖10那樣的存儲在內(nèi)存10G,而是通過比較電路12A比較所有循環(huán)運算結束后的寄存器10E和寄存器10F的值,可以檢測退化故障。
      另外,對于圖10、圖11和圖12的電路,替代從密鑰無效化電路1B輸出密鑰無效化信號使密鑰4A無效,而用從密鑰無效化電路1B輸出密碼電路停止信號,在存在故障的情況下通知控制密碼電路工作的電路存在故障,可以通過停止密碼電路的工作來防止密鑰泄漏。
      如上所述,預先準備好故障檢查用圖形,通過對此圖形實施循環(huán)運算,除了在存儲循環(huán)運算后的值的寄存器中存在退化故障以外,還同時可以檢測出進行循環(huán)運算的組合電路的退化故障。
      (實施方式5)圖13是表示本發(fā)明的第5實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第1實施方式到第4實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在通過密鑰2C將明碼電文2B加密得到密碼電文2D的密碼處理13A執(zhí)行的時候,如圖13所示在對于所有明碼電文2B的密碼處理13A中設置用于判定故障有無的判定處理期間,執(zhí)行故障檢查。并且,輸出對應于各自檢查的檢查結果13B,在判明存在故障時,使密鑰無效,或停止密碼電路的處理。如圖13所示,在所有的數(shù)據(jù)的密碼處理中,通過實施故障檢查,可以提高故障檢測頻率并防止密鑰的泄漏。
      (實施方式6)圖14是表示本發(fā)明的第6實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第1實施方式到第4實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在通過密鑰2C將明碼電文2B加密得到密碼電文2D的密碼處理執(zhí)行的時候,預先確定規(guī)定的數(shù)據(jù)數(shù)N,在對連續(xù)的N個數(shù)據(jù)中的M個(M<N)數(shù)據(jù)的密碼處理中,設置用于判定有無故障的判定處理期間,執(zhí)行故障檢查。進行檢查的數(shù)據(jù)的個數(shù)M在M<N的范圍內(nèi)可以設定為任意的數(shù)。例如在連續(xù)的N個數(shù)據(jù)中M=2時,如圖14所示,對第i個和第j個數(shù)據(jù)進行伴隨著故障檢查的密碼處理14B,而對于其他的數(shù)據(jù)進行不伴隨故障檢查處理的密碼處理14A。在此,i和j在滿足i≠j且1≤i≤N,1≤j≤N的范圍內(nèi)可以設定為任意的數(shù)。當是M=2以外時也是同樣。此外,規(guī)定的數(shù)據(jù)數(shù)N也可以設定為任意的數(shù)。并且,在伴隨著故障檢查的密碼處理14B中,輸出檢查結果14C,當判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。如此設定規(guī)定數(shù)N,在連續(xù)的N個數(shù)據(jù)中對M個數(shù)據(jù)的密碼處理中,通過實施故障檢查,與在所有的數(shù)據(jù)密碼處理中實施的故障檢查相比較,可以抑制故障檢查花費的時間并防止密鑰的泄漏。
      (實施方式7)圖15是表示本發(fā)明的第7實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第1實施方式到第3實施方式以及第5實施方式到第6實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在使用密鑰2C從明碼電文2B生成密碼電文2D時,設置用于在密碼處理規(guī)定的R次循環(huán)運算開始前和所有的循環(huán)運算結束后判定故障有無的判定處理期間,執(zhí)行故障檢查15A。并且,在各自的故障檢查15A中輸出檢查結果15B,在判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。此外,故障檢查15A可以只在循環(huán)運算開始前執(zhí)行,或是只在循環(huán)運算結束后執(zhí)行。如此通過只在循環(huán)運算執(zhí)行前后施故障檢查,可以抑制故障檢查花費的時間并防止密鑰的泄漏。
      (實施方式8)圖16是表示本發(fā)明的第8實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第1實施方式到第3實施方式以及第5實施方式到第6實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在使用密鑰2C從明碼電文2B生成密碼電文2D時,設置用于在密碼處理規(guī)定的R次所有循環(huán)運算中判定有無故障的判定處理期間,執(zhí)行故障檢查16A。并且,在各自的故障檢查16A中輸出檢查結果16B,在判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。如此通過在所有的循環(huán)運算中實施故障檢查16A,可以提高故障檢測頻率并防止密鑰的泄漏。
      (實施方式9)圖17是表示本發(fā)明的第9實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第1實施方式到第3實施方式以及第5實施方式到第6實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在使用密鑰2C從明碼電文2B生成密碼電文2D時,設置用于預先設定規(guī)定的循環(huán)數(shù)N并在16次循環(huán)運算的N次循環(huán)運算中判定有無故障的判定處理期間,執(zhí)行故障檢查17A。并且,在各自的故障檢查17A中輸出檢查結果17B,在判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。其中,作為故障檢查執(zhí)行次數(shù)N可以設定為任意的數(shù),進而可以任意選擇在哪個循環(huán)運算執(zhí)行N次故障檢查。這樣通過在規(guī)定的N次循環(huán)運算中實施密碼處理17A,可以選擇是抑制故障檢查花費的時間還是提高可檢測故障的頻率從而防止密鑰的泄漏。
      (實施方式10)圖18是表示本發(fā)明的第10實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第4實施方式到第6實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在用于判定有無故障的判定處理期間中,對為故障有無判定用的檢查用圖形18A,通過密鑰2C執(zhí)行比算法DES規(guī)定的16循環(huán)少n次(1≤n≤15)的16-n次循環(huán)運算。并且,16-n次循環(huán)運算執(zhí)行后,得到的輸出18B與預先準備好的期待值18C通過比較18D相比較,得到檢查結果18E。通過檢查結果18E,在判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。在這樣的故障檢查中,通過進行比算法DES規(guī)定的循環(huán)數(shù)少n次的次循環(huán)運算,可以抑制故障檢查花費的時間。
      (實施方式11)圖19是表示本發(fā)明的第11實施方式中密碼電路2A的故障檢查的執(zhí)行期間的圖。本發(fā)明的第4實施方式到第6實施方式的任意一種中,實現(xiàn)算法DES且具有對故障利用解析的對抗單元的密碼電路2A,在用于判定有無故障的判定處理期間,對為故障有無判定用的檢查用圖形19A,通過密鑰2C執(zhí)行比算法DES規(guī)定的16循環(huán)多n次(n≥1)的16+n次循環(huán)運算。并且,16+n次循環(huán)運算執(zhí)行后,得到的輸出19B與預先準備好的期待值19C通過比較19D相比較,得到檢查結果19E。通過檢查結果19E,在判明存在故障時,使密鑰無效化,或是停止密碼電路的處理。在這樣的故障檢查中,通過進行比算法DES規(guī)定的循環(huán)數(shù)多n次的次循環(huán)運算,可以提高發(fā)現(xiàn)故障的可能性。
      本發(fā)明在電路內(nèi)部具有對故障利用分析的對抗單元,對于機密處理裝置的實現(xiàn)是有效的。通過該電路,與設置檢測熱或電壓為故障發(fā)生原因的電路的方法相比,有可以對應利用了成為電壓或熱以外的故障發(fā)生原因的新因素的情況的優(yōu)點,此外通過使用存儲循環(huán)運算后的值的寄存器的值,與有兩個密碼電路的情況相比有可以抑制所需的硬件成本的優(yōu)點,或是抑制了處理時間增大的優(yōu)點。因此,作為具有對故障利用分析的對抗單元的密碼電路是非常有用的。
      權利要求
      1.一種密碼電路,是密鑰密碼方式的密碼電路,其中輸入加密對象和密鑰,對上述密鑰執(zhí)行R次部分鍵運算從而取得R個部分鍵,輸入上述R個部分鍵并對上述加密對象執(zhí)行R次重復循環(huán)運算,由此將上述加密對象加密,其特征在于具備存儲上述加密對象的上述循環(huán)運算后的值的寄存器;根據(jù)該寄存器的值判定有無退化故障的故障檢查電路;以及當輸入上述故障檢查電路的檢查結果并在上述檢查結果中存在上述退化故障的情況下使上述密鑰無效的電路。
      2.一種密碼電路,是密鑰密碼方式的密碼電路,其中輸入加密對象和密鑰,對上述密鑰執(zhí)行R次部分鍵運算從而取得R個部分鍵,輸入上述R個部分鍵并對上述加密對象執(zhí)行R次重復循環(huán)運算,由此將上述加密對象加密,其特征在于具備存儲上述加密對象的上述循環(huán)運算后的值的寄存器;根據(jù)該寄存器的值判定有無退化故障的故障檢查電路;以及當輸入上述故障檢查電路的檢查結果并在上述檢查結果中存在上述退化故障的情況下通過控制上述密碼電路工作的電路來停止上述密碼電路的處理的電路。
      3.權利要求1或2記載的密碼電路,其特征在于故障檢查電路根據(jù)存儲循環(huán)運算后的值的寄存器的存儲前的值和存儲后的值來判定上述寄存器有無退化故障。
      4.權利要求1或2記載的密碼電路,其特征在于故障檢查電路根據(jù)對于預先準備好的檢查用圖形執(zhí)行的循環(huán)運算結束后寄存器的值來判定有無故障。
      5.權利要求1或2記載的密碼電路,其特征在于故障檢查電路在對所有數(shù)據(jù)進行的密碼處理中判定有無故障。
      6.權利要求1或2記載的密碼電路,其特征在于故障檢查電路在對連續(xù)的N個數(shù)據(jù)進行的密碼處理中對于M個數(shù)據(jù)判定有無故障,其中M<N。
      7.權利要求1或2記載的密碼電路,其特征在于故障檢查電路在R次循環(huán)運算開始前和R次循環(huán)運算結束后判定有無故障。
      8.權利要求1或2記載的密碼電路,其特征在于故障檢查電路在R次所有循環(huán)運算中判定有無故障。
      9.權利要求1或2記載的密碼電路,其特征在于故障檢查電路在R次循環(huán)運算中的N次上述循環(huán)運算中判定有無故障,其中N<R。
      10.權利要求4記載的密碼電路,其特征在于故障檢查電路將對檢查用圖形執(zhí)行的循環(huán)運算的循環(huán)運算數(shù)執(zhí)行比密碼處理規(guī)定的上述循環(huán)運算數(shù)R減少n次的R-n次,根據(jù)獲得的值判定有無故障。
      11.權利要求4記載的密碼電路,其特征在于故障檢查電路將對檢查用圖形執(zhí)行的循環(huán)運算的循環(huán)運算數(shù)執(zhí)行密碼處理規(guī)定的上述循環(huán)運算數(shù)R增加n次的R+n次,根據(jù)獲得的值判定有無故障。
      全文摘要
      本發(fā)明的密碼電路是密鑰密碼方式的密碼電路,其中輸入明碼電文和密鑰(4A),輸入從密鑰(4A)獲得的R個部分鍵Kn并對明碼電文執(zhí)行R次重復循環(huán)運算,由此將明碼電文加密,該電路具有存儲明碼電文循環(huán)運算后的值的寄存器(4G、4H);根據(jù)寄存器(4G、4H)的值判定有無退化故障的故障檢查電路(1A);以及在其檢查結果存在退化故障的情況下使密鑰(4A)無效化的電路(1B)。本發(fā)明提供一種密碼電路,其能夠對應成為退化故障發(fā)生的新原因的因素,控制硬件成本,此外具有控制密碼處理時間增大的故障利用分析的對策。
      文檔編號H04K1/00GK1702690SQ20051007291
      公開日2005年11月30日 申請日期2005年5月24日 優(yōu)先權日2004年5月24日
      發(fā)明者清水和也, 佐藤友哉, 鹽見謙太郎, 根本祐輔, 鳥崎唯之, 藤原睦 申請人:松下電器產(chǎn)業(yè)株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1