(57)【要約】【課題】  暗号の解読困難性を一段と向上し得る暗号化装置を実現する。【解決手段】  本ＤＥＳ演算の途中にダミーＤＥＳ演算を挿入することにより、本ＤＥＳ演算の実行タイミングを特定しにくくすることができると共に、ＤＥＳのｆ関数の出力データｆｎを用いてＸＯＲ演算を実行する第１ＸＯＲ部３１と、この出力データｆｎをビット反転させるインバータ３３と、ビット反転した出力データｆｎを用いてＸＯＲ演算を実行する第２ＸＯＲ部３４とを設けたことにより出力データｆｎの値に依らず暗号化装置内のハミング重みを一定にして暗号演算時の消費電力をほぼ一定にすることができる。この結果、電力解析攻撃に対する耐性を向上することができ、かくして暗号の解読困難性を一段と向上し得る。【選択図】          図２
2006025366.tif 000002
【特許請求の範囲】
【請求項１】
入力データをもとに秘密鍵となる第１の鍵データを用いた暗号演算処理を繰り返し実行して暗号データを生成する暗号化手段と、
上記第１の鍵データとは異なる第２の鍵データを用いた暗号演算処理を上記第１の鍵データを用いた暗号演算処理の繰り返し途中にランダムに挿入して上記暗号化手段に実行させる挿入手段と
を具えることを特徴とする暗号化装置。
【請求項２】
上記挿入手段は、
上記第２の鍵データを用いた暗号演算処理を繰り返し連続で挿入しないように当該第２の鍵データを用いた暗号演算処理の挿入を制御する
ことを特徴とする請求項１に記載の暗号化装置。
【請求項３】
上記挿入手段は、
上記暗号化手段が実行する暗号演算処理の結果で上記第２の鍵データを更新する
ことを特徴とする請求項１に記載の暗号化装置。
【請求項４】
上記第２の鍵データは、固定値である
ことを特徴とする請求項１に記載の暗号化装置。
【請求項５】
上記挿入手段は、
上記第１の鍵を用いた暗号演算処理が上記暗号化手段により繰り返し実行される前、及び繰り返し実行された後に上記第２の鍵データを用いた暗号演算処理をランダムに挿入して実行させる
ことを特徴とする請求項１に記載の暗号化装置。
【請求項６】
上記暗号演算手段は、
上記第１の鍵データを用いた第１の暗号演算を実行する第１の暗号演算手段と、
上記第１の暗号演算手段による第１の暗号演算の結果として出力される出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、
上記第１の暗号演算手段による第１の暗号演算の結果として出力される出力データをビット反転するビット反転手段と、
ビット反転した上記出力データを用いて上記第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段とを有する
ことを特徴とする請求項１に記載の暗号化装置。
【請求項７】
上記第２の暗号演算手段による第２の暗号演算の結果を保持する第１の保持手段と、
上記第３の暗号演算手段による第３の暗号演算の結果を保持する第２の保持手段と
を具えることを特徴とする請求項１に記載の暗号化装置。
【請求項８】
入力データをもとに秘密鍵となる第１の鍵データを用いた第１の暗号演算を実行する第１の暗号演算手段と、
上記第１の暗号演算手段による第１の暗号演算の結果として出力される出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、
上記第１の暗号演算手段から出力される上記出力データをビット反転するビット反転手段と、
ビット反転した上記出力データを用いて上記第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段と
を具えることを特徴とする暗号化装置。
【請求項９】
上記第２の暗号演算手段による第２の暗号演算の結果を保持する第１の保持手段と、
上記第３の暗号演算手段による第３の暗号演算の結果を保持する第２の保持手段と
を具えることを特徴とする請求項８に記載の暗号化装置。
【請求項１０】
上記第１の暗号演算手段と上記第２の暗号演算手段と上記第３の暗号演算手段とにより上記第１の鍵データを用いた第１の暗号演算と上記第２の暗号演算と上記第３の暗号演算とからなる暗号演算処理を繰り返し実行している途中に、上記第１の鍵データとは異なる第２の鍵データを用いた第１の暗号演算と上記第２の暗号演算と上記第３の暗号演算とからなる暗号演算処理をランダムに挿入して上記第１の暗号演算手段と上記第２の暗号演算手段と上記第３の暗号演算手段とに実行させる挿入手段を具える
ことを特徴とする請求項８に記載の暗号化装置。
【請求項１１】
上記挿入手段は、
上記第２の鍵データを用いた第１の暗号演算と上記第２の暗号演算と上記第３の暗号演算とからなる暗号演算処理を繰り返し連続で挿入しないように当該暗号演算処理の挿入を制御する
ことを特徴とする請求項８に記載の暗号化装置。
【請求項１２】
上記挿入手段は、
上記第１の暗号演算手段と上記第２の暗号演算手段と上記第３の暗号演算手段とが実行する暗号演算処理の結果で上記第２の鍵データを更新する
ことを特徴とする請求項８に記載の暗号化装置。
【請求項１３】
上記第２の鍵データは、固定値である
ことを特徴とする請求項８に記載の暗号化装置。
【請求項１４】
上記挿入手段は、
上記第１の暗号演算手段と上記第２の暗号演算手段と上記第３の暗号演算手段とにより上記第１の鍵データを用いた第１の暗号演算と上記第２の暗号演算と上記第３の暗号演算とからなる暗号演算処理が繰り返し実行される前、及び繰り返し実行された後に上記第２の鍵データを用いた第１の暗号演算と上記第２の暗号演算と上記第３の暗号演算とからなる暗号演算処理をランダムに挿入して実行させる
ことを特徴とする請求項８に記載の暗号化装置。
【請求項１５】
入力データをもとに秘密鍵となる第１の鍵データを用いた暗号演算処理を繰り返し実行して暗号データを生成する暗号化手段と、
上記第１の鍵データとは異なる第２の鍵データを用いた暗号演算処理を上記第１の鍵データを用いた暗号演算処理の繰り返し途中にランダムに挿入して上記暗号化手段に実行させる挿入手段と
を具えることを特徴とする半導体集積回路。
【請求項１６】
入力データをもとに秘密鍵となる第１の鍵データを用いた第１の暗号演算を実行する第１の暗号演算手段と、
上記第１の暗号演算手段による第１の暗号演算の結果として出力される出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、
上記第１の暗号演算手段から出力される上記出力データをビット反転するビット反転手段と、
ビット反転した上記出力データを用いて上記第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段と
を具えることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化装置及び半導体集積回路に関し、例えば秘密鍵で暗号化又は復号化を行う暗号回路に適用して好適なものである。
【背景技術】
【０００２】
近年、ＩＣ（Integrated Circuit）カードを利用した電子マネーシステムや、交通システム等が広く普及している。このようなシステムにおいては、ＩＣカード内に記憶されている個人情報や電子マネーの残高情報等が漏洩したり改竄されたりしないよう安全性を確保することが重要である。
【０００３】
そこでかかるシステムでは、ＩＣカード及びリーダライタ間での相互認証やデータの送受時に、秘密鍵を用いた種々の暗号化を利用することにより安全性を確保するようになされている。
【０００４】
ところが、このような暗号化を解読する方法として、暗号回路の動作時の消費電力（消費電流）変動を解析することにより、秘密鍵を取り出そうとする電力解析攻撃が存在する。
【０００５】
この電力解析攻撃には、暗号演算時に暗号回路の消費電力が増加することに着目して暗号演算の実行タイミングを特定し、そのときの消費電力の変動を解析して秘密鍵を取り出そうとする単純電力解析（SPA：Simple Power Analysis）や、暗号回路内で生成されるデータを繰り返し測定して統計的に解析し、この解析結果をもとに暗号回路内の秘密鍵に依存する箇所の状態を特定することにより、秘密鍵を取り出そうとする差分電力解析（DPA：Differential Power Analysis）等がある。
【０００６】
ここで、例えば暗号化方式の１つであるＤＥＳ（Data Encryption Standard）の秘密鍵を電力解析攻撃で取り出す場合について説明する。ＤＥＳのアルゴリズムは、図１２に示すように、初期転置（Initial Permutation）、１６ラウンドの変換処理、逆転置（Inverse Initial Permutation）の順で実行される。実際上ＤＥＳでは、まず入力される６４ビットのデータ（Input）を、初期転置により左３２ビットのブロックデータＬ０と右３２ビットのブロックデータＲ０とに分割する。
【０００７】
次に第１ラウンドの変換処理として、ブロックデータＲ０と、６４ビットの秘密鍵から生成される４８ビットの副鍵Ｋ１とを用いてｆ関数と呼ばれる非線形の転置及び置換処理を実行し、このｆ関数の出力とブロックデータＬ０とのＸＯＲ（排他的論理和）をとる。
【０００８】
そしてｆ関数の出力とブロックデータＬ０とのＸＯＲの結果がブロックデータＲ１として第２ラウンドの変換処理に与えられると共に、ブロックデータＲ０がブロックデータＬ１として第２ラウンドの変換処理に与えられる。
【０００９】
第２ラウンドの変換処理では、第１ラウンドの場合と同様に、ブロックデータＲ１と、６４ビットの秘密鍵から生成される４８ビットの副鍵Ｋ２とを用いてｆ関数を実行し、このｆ関数の出力とブロックデータＬ１とのＸＯＲをとる。
【００１０】
そしてｆ関数の出力とブロックデータＬ１とのＸＯＲの結果がブロックデータＲ２として第３ラウンドの変換処理に与えられると共に、ブロックデータＲ１がブロックデータＬ２として第３ラウンドの変換処理に与えられる。
【００１１】
以下、同様の変換処理が第１６ラウンドまで実行され、この結果得られるブロックデータＲ１６及びブロックデータＬ１６が最後に逆転置されることで暗号文が出力される。
【００１２】
このＤＥＳのアルゴリズムは公知であるので、例えば単純電力解析では、このアルゴリズムで暗号化を行う暗号回路の消費電力の変動を観測することにより容易にＤＥＳの１６ラウンドの変換処理を実行しているタイミングを特定することができる。
【００１３】
すなわち図１３に示すように、消費電力の増加する時間が１６ラウンド分続く箇所が、ＤＥＳ演算を実行している箇所であると推定できる。特に第１ラウンド又は第１６ラウンドが波形の立ち上がり又は立ち下がり部分であるので、発見し易い。
【００１４】
一方、差分電力解析では、初めに例えば第１ラウンド（又は第１６ラウンド）に使われる副鍵Ｋ１（又はＫ１６）のビットについて予想する。次に第１ラウンドの変換処理の結果として出力されるデータ（Ｌ１やＲ１等）の例えば１ビット目の値（「０」か「１」）について注目し、その値をもとに消費電力の測定データを分類（値が「０」のグループと「１」のグループとに分類）する。さらにそれぞれの分類において測定データの平均をとり、それらの差分をとる。そして予想した副鍵Ｋ１のビットが正しい場合には暗号演算時の消費電力の差分が大きくなること、そのビットが正しくない場合には差分が小さく目立たなくなることに注目して、副鍵Ｋ１を特定する。そしてこの副鍵Ｋ１をもとにＤＥＳの秘密鍵を特定する。
【００１５】
このようにＤＥＳの差分電力解析では、暗号回路の消費電力が暗号演算の結果として出力されるデータのハミング重みに比例することに着目して、その消費電力の差分を統計解析することにより、秘密鍵を特定するようになされている（例えば非特許文献１参照）。
【非特許文献１】P. Kocher, J. Jaffe, B. Jun, "Differential Power Analysis," Advances in Cryptology - Crypto 99 Proceedings, Lecture Notes In Computer Science Vol. 1666, M. Wiener ed., Springer-Verlag, 1999.
【発明の開示】
【発明が解決しようとする課題】
【００１６】
上述のように従来の暗号回路では、電力解析攻撃により暗号の解読が困難ではなくなりつつあり、電力解析攻撃に対する耐性の向上が求められている。すなわち一段と解読が困難な暗号化処理を行う暗号回路の実現が求められている（以下、解読が困難である性質を解読困難性と呼ぶ）。
【００１７】
本発明は以上の点を考慮してなされたもので、暗号の解読困難性を一段と向上し得る暗号化装置及び半導体集積回路を提案しようとするものである。
【課題を解決するための手段】
【００１８】
かかる課題を解決するため本発明の暗号化装置及び半導体集積回路においては、入力データをもとに秘密鍵となる第１の鍵データを用いた暗号演算処理を繰り返し実行して暗号データを生成する暗号化手段と、第１の鍵データとは異なる第２の鍵データを用いた暗号演算処理を第１の鍵データを用いた暗号演算処理の繰り返し途中にランダムに挿入して暗号化手段に実行させる挿入手段とを設けるようにした。
【００１９】
このように、秘密鍵となる第１の鍵データを用いた暗号演算処理の途中に当該第１の鍵データとは異なる第２の鍵データを用いた暗号演算処理をランダムに挿入して実行させることにより、第１の鍵データを用いた本来の暗号演算処理の実行タイミングを特定しにくくすることができるので、電力解析攻撃に対する耐性を向上することができる。
【００２０】
また本発明の暗号化装置及び半導体集積回路においては、入力データをもとに秘密鍵となる第１の鍵データを用いた第１の暗号演算を実行する第１の暗号演算手段と、第１の暗号演算手段による第１の暗号演算の結果として出力される出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、第１の暗号演算手段から出力される出力データをビット反転するビット反転手段と、ビット反転した出力データを用いて第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段とを設けるようにした。
【００２１】
このように、秘密鍵となる第１の鍵データに相関のある出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、この出力データをビット反転させたデータを用いて第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段とを設けたことにより、常に第２の暗号演算手段と第３の暗号演算手段とで互いにビットが反転したデータを用いて暗号演算を実行させることができるので、出力データの値に依らず暗号化装置内のハミング重みを一定にして暗号演算時の消費電力をほぼ一定にすることができる。
【発明の効果】
【００２２】
本発明によれば、秘密鍵となる第１の鍵データを用いた暗号演算処理の途中に当該第１の鍵データとは異なる第２の鍵データを用いた暗号演算処理をランダムに挿入して実行させることにより、第１の鍵データを用いた本来の暗号演算処理の実行タイミングを特定しにくくすることができると共に、秘密鍵となる第１の鍵データに相関のある出力データを用いて第２の暗号演算を実行する第２の暗号演算手段と、この出力データをビット反転させたデータを用いて第２の暗号演算と同様の第３の暗号演算を実行する第３の暗号演算手段とを設けたことにより、常に第２の暗号演算手段と第３の暗号演算手段とで互いにビットを反転させたデータを用いて暗号演算を実行させることができるので、出力データの値に依らず暗号化装置内のハミング重みを一定にして暗号演算時の消費電力をほぼ一定にすることができる。この結果、電力解析攻撃に対する耐性を向上することができ、かくして暗号の解読困難性を一段と向上し得る暗号化装置及び半導体集積回路を実現できる。
【発明を実施するための最良の形態】
【００２３】
以下図面について、本発明の実施の形態を詳述する。
【００２４】
（１）第１の実施の形態
（１−１）ＩＣカードの回路構成
図１において、１は全体として本実施の形態における非接触型のＩＣカードを示し、図示しないリーダライタと通信し得るようになされている。このＩＣカード１は、全体を統括的に制御するＣＰＵ（Central Processing Unit）２、外部（リーダライタ）と非接触で通信するインタフェース部３、プログラムを格納するＲＯＭ（Read Only Memory）４、一時作業領域となるＲＡＭ（Random Access Memory）５、各種データの暗号化を行う暗号回路６、各種データを記憶するＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）７が、バス８を介して接続されている。
【００２５】
このＩＣカード１は、リーダライタから供給される電磁波をもとにインタフェース部３で電力を発生させて動作し、例えばリーダライタからＥＥＰＲＯＭ７に記憶しているデータを送信するよう要求されると、このデータを暗号回路６で暗号化して、リーダライタに送信するようになされている。
【００２６】
（１−２）暗号回路の構成
次に、ＩＣカード１の内部に設けられた暗号回路６の構成について図２を用いて説明する。本実施の形態における暗号回路６は、ＤＥＳのアルゴリズムを用いた暗号演算処理を実行する回路であり、ＤＥＳのラウンドにおけるｆ関数及びＸＯＲの演算（以下、これをＤＥＳ演算とも呼ぶ）を実行するＤＥＳ演算部１０と、各ラウンドのブロックデータＬｎ及びＲｎ（ｎ＝０、１、２、…、１６）をそれぞれ保持するＬレジスタ及びＲレジスタ（図示せず）でなるデータレジスタ１１と、ＤＥＳの秘密鍵（副鍵）を保持する鍵レジスタ１２と、ＤＥＳの副鍵とは異なる鍵（以下、これをダミー鍵とも呼ぶ）を保持するダミー鍵レジスタ１３と、第１及び第２セレクタ１４及び１５とで構成される。
【００２７】
なお、ここではＤＥＳの初期転置及び逆転置を実行する回路部分については省略している。つまり実際には、暗号化の対象となる入力データが図示しない初期転置部で初期転置されてブロックデータＬ０及びＲ０となり、このブロックデータＬ０及びＲ０がデータレジスタ１１にラッチされる。そしてＤＥＳの１６ラウンド終了後にラッチされるブロックデータＬ１６及びＲ１６がデータレジスタ１１から図示しない逆転置部に送出されて逆転置され、最終的に暗号化データとなる。
【００２８】
本実施の形態の暗号回路６では、外部（例えばＣＰＵ２）から供給される１ビットの乱数の値（「０」か「１」）に応じて、ＤＥＳの副鍵を用いたＤＥＳ演算処理（以下、これを本ＤＥＳ演算と呼ぶ）、又はこの副鍵とは無関係のダミー鍵を用いたＤＥＳ演算処理（以下、これをダミーＤＥＳ演算と呼ぶ）のどちらか一方を選択して実行するようになされている。つまりこの暗号回路６では、暗号演算処理の途中にダミーＤＥＳ演算を挿入するようになされており、以下この暗号回路６における暗号演算処理の流れについて説明する。
【００２９】
暗号回路６は、ＣＰＵ２からの命令に応じて暗号演算処理を開始すると、ＣＰＵ２から供給される１ビットの乱数を第１セレクタ１４及び第２セレクタ１５に入力する。第１セレクタ１４は、この乱数の値が「１」の場合、鍵レジスタ１２に保持されているＤＥＳの副鍵を取得してこれをＤＥＳ演算部１０に送出し、乱数の値が「０」の場合、ダミー鍵レジスタ１３に保持されているダミー鍵を取得してこれをＤＥＳ演算部１０に送出する。
【００３０】
ＤＥＳ演算部１０は、データレジスタ１１から供給されるブロックデータＬ０及びＲ０をもとに、第１セレクタ１４から供給される鍵（副鍵又はダミー鍵）を用いてＤＥＳ演算（本ＤＥＳ演算又はダミーＤＥＳ演算）を実行する。そしてＤＥＳ演算部１０は、ＤＥＳ演算の結果を第２セレクタ１５及びダミー鍵レジスタ１３に送出する。
【００３１】
第２セレクタ１５は、入力される乱数の値が「１」の場合、ＤＥＳ演算部１０から供給されるＤＥＳ演算の結果を第１ラウンドのブロックデータＬ１及びＲ１としてデータレジスタ１１にラッチさせ、この乱数の値が「０」の場合、データレジスタ１１のブロックデータＬ０及びＲ０を再度このデータレジスタ１１にラッチさせる。
【００３２】
すなわちデータレジスタ１１には、ダミーＤＥＳ演算の演算結果はラッチされずに、本ＤＥＳ演算の演算結果のみがラッチされるようになされている。またダミー鍵レジスタ１３に保持されるダミー鍵は、ＤＥＳ演算部１０によるＤＥＳ演算毎に、当該ＤＥＳ演算部１０から供給される演算結果で更新するようになされている。
【００３３】
このようにしてＤＥＳ演算部１０によるＤＥＳ演算が終了すると、暗号回路６は再び乱数を取得して、この乱数の値に応じて本ＤＥＳ演算又はダミーＤＥＳ演算を実行する。そしてこの暗号回路６は、データレジスタ１１に出力データＬ１６及びＲ１６がラッチされるまで、すなわち本ＤＥＳ演算が１６ラウンド実行されるまで上述の処理を繰り返す。
【００３４】
ここで実際の例を用いて説明すると、例えば図３に示すように、暗号演算処理における１回目のＤＥＳ演算では、入力される乱数の値が「０」であることによりダミーＤＥＳ演算が実行され、２回目のＤＥＳ演算では、乱数の値が「１」であることにより本ＤＥＳ演算の第１ラウンドが実行されてブロックデータＬ１及びＲ１がデータレジスタ１１にラッチされ、３回目及び４回目のＤＥＳ演算では、共に乱数の値が「０」であることによりダミーＤＥＳ演算が実行され、５回目のＤＥＳ演算では、乱数の値が「１」であることにより本ＤＥＳ演算の第２ラウンドが実行されてブロックデータＬ２及びＲ２がデータレジスタ１１にラッチされるというように、本ＤＥＳ演算の１６ラウンドの途中にランダムにダミーＤＥＳ演算が挿入される。
【００３５】
また本ＤＥＳ演算及びダミーＤＥＳ演算は、用いる鍵が異なるだけで実際の演算方法は同一であるので、図３に示すように、どちらのＤＥＳ演算を実行しても暗号回路６の消費電力はほぼ等しくなる。
【００３６】
このように、この暗号回路６では、本ＤＥＳ演算の１６ラウンドの途中にランダムにダミーＤＥＳ演算を挿入することにより、消費電力とＤＥＳの１６ラウンドの実行タイミングとの関連性を従来と比して格段と小さくすることができる。
【００３７】
（１−３）第１の実施の形態による動作及び効果
以上の構成において、暗号回路６は、ＤＥＳの暗号演算処理時、外部から供給される１ビットの乱数の値が「０」である場合には、ダミー鍵を用いたダミーＤＥＳ演算を実行し、この乱数の値が「１」である場合には、ＤＥＳの副鍵を用いた本ＤＥＳ演算を実行する。
【００３８】
そして、１回目のＤＥＳ演算（ダミーＤＥＳ演算又は本ＤＥＳ演算）終了後、再び乱数の値に応じてダミーＤＥＳ演算又は本ＤＥＳ演算を実行し、以下、この処理を本ＤＥＳ演算が１６ラウンド実行されるまで繰り返す。
【００３９】
このようにこの暗号回路６のＤＥＳ暗号化処理では、１６ラウンドの本ＤＥＳ演算の途中に当該本ＤＥＳ演算とは無関係のダミーＤＥＳ演算をランダムに挿入するようにした。しかも本ＤＥＳ演算及びダミーＤＥＳ演算の演算方法は同一であるので、暗号回路６における演算時の消費電力はどちらもほぼ同一であり、当該消費電力が観測されても、本ＤＥＳ演算を実行しているタイミングの特定が困難である。
【００４０】
かくして暗号回路６では、消費電力とＤＥＳの１６ラウンドの実行タイミングとの関連性を従来よりも格段と小さくすることができるので、消費電力の観測からＤＥＳの１６ラウンドの実行タイミングが特定されるのを防止することができる。
【００４１】
以上の構成によれば、暗号回路６は、外部から供給される１ビットの乱数の値に応じて、１６ラウンドの本ＤＥＳ演算の途中にダミーＤＥＳ演算を実行することにより、消費電力とＤＥＳの１６ラウンドの実行タイミングとの関連性を従来よりも格段と小さくして、消費電力の観測からＤＥＳの１６ラウンドの実行タイミングが特定されるのを防止することができるので、電力解析攻撃（特に単純電力解析）への耐性を向上し得、暗号の解読困難性を一段と向上することができる。
【００４２】
（２）第２の実施の形態
次に、第２の実施の形態について説明する。この第２の実施の形態では、上述の第１の実施の形態と暗号回路６（本実施では６Ａ）の構成以外は同様であり、同様部分の説明については省略する。
【００４３】
この第２の実施の形態における暗号回路６Ａは、図１との対応部分に同一符号を付して示す図４のように、外部から供給される１ビットの乱数の値に応じてダミーＤＥＳ演算の実行を制御するダミー制御部２０が追加されている。
【００４４】
このダミー制御部２０は、乱数が入力されると、その乱数の値が「１」である場合、この乱数と同じ値「１」の１ビットの出力データを後段の第１及び第２セレクタ１４及び１５に送出する。これに対して、入力される乱数の値が「０」である場合、前回第１及び第２セレクタ１４及び１５に送出した出力データの値が「１」であれば、この入力された乱数と同じ値「０」の出力データを第１及び第２セレクタ１４及び１５に送出し、前回第１及び第２セレクタ１４及び１５に送出した出力データの値が「０」であれば、この入力された乱数の値「０」と逆の値「１」の出力データを第１及び第２セレクタ１４及び１５に送出するようになされている。
【００４５】
ここで実際の例を用いて説明すると、例えば図５に示すように、１回目のＤＥＳ演算時に乱数「０」が入力されると、ダミー制御部２０は、今回が初回のＤＥＳ演算であり例えば前回第１及び第２セレクタ１４及び１５に送出した乱数が存在しないことから、入力された乱数と同じ値「０」の出力データを第１及び第２セレクタ１４及び１５に送出すると共に、この送出した出力データ「０」をラッチする。この結果ＤＥＳ演算部１０では、第１の実施の形態と同様にダミーＤＥＳ演算が実行される。
【００４６】
続く２回目のＤＥＳ演算時に乱数「１」が入力されると、ダミー制御部２０は、乱数の値が「１」であるので、この乱数と同じ値「１」の出力データを第１及び第２セレクタ１４及び１５に送出すると共に、この送出した出力データ「１」をラッチする。この結果ＤＥＳ演算部１０では、第１の実施の形態と同様に本ＤＥＳ演算が実行される。
【００４７】
さらに続く３回目のＤＥＳ演算時に乱数「０」が入力されると、ダミー制御部２０は、ラッチしている出力データの値（すなわち前回第１及び第２セレクタ１４及び１５に送出した出力データの値）が「１」であるので、入力された乱数と同じ値「０」の出力データを第１及び第２セレクタ１４及び１５に送出すると共に、この送出した出力データ「０」をラッチする。この結果ＤＥＳ演算部１０では、ダミーＤＥＳ演算が実行される。
【００４８】
さらに続く４回目のＤＥＳ演算時に乱数「０」が入力されると、ダミー制御部２０は、ラッチしている出力データの値が「０」であるので、入力された乱数の値「０」と逆の値「１」の出力データを第１及び第２セレクタ１４及び１５に送出すると共に、この送出した出力データ「１」をラッチする。この結果ＤＥＳ演算部１０では、ダミーＤＥＳ演算が実行される。以下、同様にして５回目、６回目、…のＤＥＳ演算が実行される。
【００４９】
このようにダミー制御部２０では、入力される乱数の値に「０」が連続した場合に、ダミーＤＥＳ演算が連続して実行されないように、入力される乱数の値「０」をビット反転した値「１」の出力データを第１及び第２セレクタ１４及び１５に送出するようになされている。
【００５０】
これによりこの暗号回路６Ａにおいては、最長でもダミーＤＥＳ演算と本ＤＥＳ演算とを交互に実行する３２回のＤＥＳ演算でＤＥＳ演算処理を終了させることができる。かくしてこの暗号回路６Ａによれば、本ＤＥＳ演算の実行タイミングが特定されるのを防止することができると共に、ダミーＤＥＳ演算が連続して繰り返し実行されるのを防止することができ、ＤＥＳ演算の処理時間を最長でも１６ラウンド×２の演算時間で終了することを保証できる。
【００５１】
このことは、処理時間に対して厳しい制約が求められる装置（例えば非接触型のＩＣカード１やそのリーダライタ）に内蔵される暗号回路６Ａにおいては特に重要である。
【００５２】
（３）第３の実施の形態
次に、第３の実施の形態について説明する。この第３の実施の形態では、上述の第１の実施の形態と暗号回路６（本実施では６Ｂ）の構成以外は同様であり、同様部分の説明については省略する。
【００５３】
この第３の実施の形態における暗号回路６Ｂは、図１との対応部分に同一符号を付して示す図６のように、ＤＥＳ演算回路１０の演算結果が第２セレクタ１５にだけ送出されるようになされており、ダミー鍵レジスタ１３のダミー鍵がこの演算結果で更新されないようになされている。すなわちこの暗号回路６Ｂでは、ダミー鍵レジスタ１３に固定値のダミー鍵が保持され、このダミー鍵でダミーＤＥＳ演算を実行するようになされている。
【００５４】
実際上、第１の実施の形態のようにダミー鍵をＤＥＳ演算毎にランダムに変えると、暗号回路６の出力データを例えば何万件と集めて統計解析された場合、このダミー鍵が平均化されてノイズのようになりダミーの効果が薄くなることも考えられる。
【００５５】
そこで、本実施の形態では、ダミー鍵にＤＥＳの副鍵とは無関係でかつ所定の偏りを持たせ続けるために、当該ダミー鍵を固定値にした。このほうが、出力データを例えば何万件と集めて統計解析された場合でも、ダミーの効果が持続し、電力差分攻撃の対策として効果的である場合も有り得る。
【００５６】
なお、この固定値のダミー鍵は、外部から供給されるようにしてもよい。この場合ある一定の期間毎（例えば１ヶ月毎）にダミー鍵を更新するようにすれば、電力差分攻撃の対策としてより効果的である場合も有り得る。
【００５７】
（４）第４の実施の形態
次に、第４の実施の形態について説明する。この第４の実施の形態では、上述の第２の実施の形態と暗号回路６Ａ（本実施では６Ｃ）の構成以外は同様であり、同様部分の説明については省略する。
【００５８】
この第４の実施の形態における暗号回路６Ｃは、図４との対応部分に同一符号を付して示す図７のように、ダミー制御部２０Ａが設けられており、外部から供給されるｎビットの乱数がダミー制御部２０Ａに入力され、このダミー制御部２０Ａが入力されるｎビットの乱数の値に応じてダミーＤＥＳ演算の実行を制御するようになされている。
【００５９】
ここでは、一例として「０」〜「１５」までの値をランダムにとる４ビットの乱数が外部から供給されてダミー制御部２０Ａに入力される場合について説明する。
【００６０】
この暗号回路６Ｃでは、第１ラウンドの本ＤＥＳ演算の前、及び第１６ラウンドの本ＤＥＳ演算の後に、入力される４ビットの乱数の値に応じてダミーＤＥＳ演算を繰り返し実行するようになされている。
【００６１】
つまり図８に示すように、暗号回路６Ｃのダミー制御部２０Ａは、１回目のＤＥＳ演算時に、例えば値が「６」である乱数が入力されると、この乱数の値「６」に応じて、値が「０」である１ビットの出力データを６回連続で後段の第１及び第２セレクタ１４及び１５に送出する。この結果ＤＥＳ演算部１０では、ダミーＤＥＳ演算が６回連続で実行される。
【００６２】
このようにして乱数の値に応じて値「０」の出力データを送出した後、ダミー制御部２０Ａは、続いて値「１」の出力データを１６回連続で第１及び第２セレクタ１４及び１５に送出する。この結果ＤＥＳ演算部１０では、本ＤＥＳ演算が１６ラウンドまで実行される。
【００６３】
次いで再度４ビットの乱数が入力されると、ダミー制御部２０Ａは、この入力された乱数の値（例えば「２」）に応じて、値が「０」である出力データを２回連続で第１及び第２セレクタ１４及び１５に送出する。この結果ＤＥＳ演算部１０では、ダミーＤＥＳ演算が２回連続で実行される。
【００６４】
このように、この暗号回路６Ｃでは、ダミーＤＥＳ演算を６回実行した後、続けて１６ラウンドの本ＤＥＳ演算を実行し、さらに続けてダミーＤＥＳ演算を２回実行する。これにより暗号回路６Ｃでは、消費電力と本ＤＥＳ演算の１６ラウンドの実行タイミングとの関連性を従来よりも格段と小さくすることができ、この結果消費電力の観測からＤＥＳの１６ラウンドの実行タイミングが特定されるのを防止することができる。
【００６５】
因に、実際上攻撃者は本ＤＥＳ演算の第１ラウンド又は第１６ラウンドのどちらかを攻撃対象とする場合が多い。その理由は、一般的に消費電力の立ち上がり部分又は立ち下がり部分と、第１ラウンド又は第１６ラウンドの実行タイミングとが一致するからである。ゆえに攻撃者は、図９（Ａ）に示すように、例えば消費電力の立ち上がりに注目し、このタイミングで第１ラウンドの本ＤＥＳ演算が実行されると予測して解析を行う。
【００６６】
そこで上述の第２の実施の形態の暗号回路６Ａにおいては、図９（Ａ）及び（Ｂ）に示すように、本ＤＥＳ演算の途中にランダムでダミーＤＥＳ演算を挿入した。実際には、入力される１ビットの乱数の値が「０」である場合にだけダミーＤＥＳ演算を実行し、さらにダミーＤＥＳ演算が連続して実行されないように制御した。
【００６７】
この場合消費電力の立ち上がり部分で第１ラウンドの本ＤＥＳ演算が実行される確率は５０％となり、必ずしも消費電力の立ち上がり部分で第１ラウンドの本ＤＥＳ演算が実行されるとは限らない。しかしながら、このようにしても例えば攻撃者により消費電力の立ち上がり部分のサンプル数をダミーＤＥＳ演算が全く挿入されない場合の２倍にして統計解析されると、ダミーＤＥＳ演算が挿入されない場合と同様の結果が得られ、比較的短時間で暗号が解読されてしまう恐れがある。
【００６８】
そこで本実施の形態の暗号回路６Ｃのように、「０」〜「１５」までの値をランダムにとる４ビットの乱数に応じてダミーＤＥＳ演算を挿入するようにすれば、消費電力の立ち上がり部分で第１ラウンドの本ＤＥＳ演算が実行される確率は１／１６となり、攻撃者は、消費電力の立ち上がり部分のサンプル数をダミーＤＥＳ演算が挿入されない場合の１６倍にして統計解析しなければならなくなり、ダミーＤＥＳ演算挿入の効果が大きくなる。
【００６９】
さらにこの暗号回路６Ｃでは、攻撃対象となる第１ラウンドの前及び第１６ラウンドの後にだけダミーＤＥＳ演算を挿入するようにしたことにより、第１ラウンド及び第１６ラウンドの実行タイミングを特定させにくくすると共に、ＤＥＳ演算の処理時間が最長でも１５ラウンド（ダミー）＋１６ラウンド（本）＋１５ラウンド（ダミー）の演算時間で終了することを保証できる。
【００７０】
かくしてこの暗号回路６Ｃによれば、攻撃対象となる第１ラウンド及び第１６ラウンドの実行タイミングの特定を一段と困難にすることができるので暗号の解読困難性を一段と向上することができ、加えて暗号化処理が所定時間内で終了することを保証できる。
【００７１】
（５）第５の実施の形態
次に、第５の実施の形態について説明する。この第５の実施の形態では、上述の第１の実施の形態と暗号回路６（本実施では６Ｄ）の構成以外は同様であり、同様部分の説明については省略する。
【００７２】
本実施の形態の暗号回路６Ｄは、図２との対応部分に同一符号を付して示す図１０のように、ＤＰＡ対策が施されたＤＥＳ演算部１０Ａを有している。このＤＥＳ演算部１０Ａは、データレジスタ１１のＲレジスタ１１Ｒから供給される３２ビットのブロックデータＲｎと鍵レジスタ１２から供給される４８ビットの副鍵とを用いてＤＥＳのｆ関数に基づく演算を行うｆ関数部３０と、このｆ関数部３０から出力される３２ビットの出力データｆｎとデータレジスタ１１のＬレジスタ１１Ｌから供給される３２ビットのブロックデータＲｎとのＸＯＲ演算を行う第１ＸＯＲ部３１と、後述するＤＰＡ対策回路３２とで構成される。
【００７３】
そして、かかる構成のＤＥＳ演算部１０Ａは、Ｒレジスタ１１Ｒから供給されるブロックデータＲｎを、次ラウンドのブロックデータＬｎ＋１としてＬレジスタ１１Ｌに送出すると共に、第１ＸＯＲ演算部３１から出力される３２ビットの出力データＸ１ｎを次ラウンドのブロックデータＲｎ＋１としてＲレジスタ１１Ｒに送出するようになされている。
【００７４】
なお、本実施の形態においては説明の便宜上、第１の実施の形態で述べたダミーＤＥＳ演算の挿入に関する説明については省略するが、実際には、ＤＥＳ演算時にランダムでダミーＤＥＳ演算を挿入するようにしてもよい。この場合、図１０の暗号回路６Ｄに、第１及び第２セレクタ１４及び１５と、ダミー鍵レジスタ１３とを追加すればよい。
【００７５】
ＤＰＡ対策回路３２は、ｆ関数部３０の出力データｆｎをビット反転するインバータ３３と、このビット反転された出力データｆｎ（以下、これをビット反転データｒｆｎとも呼ぶ）とＬレジスタ１１Ｌから供給されるブロックデータＬｎとのＸＯＲ演算を行う第２ＸＯＲ部３４と、当該第２ＸＯＲ部３４から出力される３２ビットの出力データＸ２ｎを４ビットずつに分けて終端処理する８個のＮＡＮＤ回路（否定論理和回路）でなる終端処理部３５とで構成される。
【００７６】
つまりｆ関数部３０から出力される３２ビットの出力データｆｎは、第１ＸＯＲ部３１とＤＰＡ対策回路３２のインバータ３３とに送出され、このうちインバータ３３に供給された出力データｆｎは、当該インバータ３３でビット反転されることによりビット反転データｒｆｎとなり、第２ＸＯＲ部３４に送出される。
【００７７】
そして第１ＸＯＲ部３１において、ｆ関数部３０の出力データｆｎとブロックデータＬｎとを用いたＸＯＲ演算が行れ、ほぼ同時にＤＰＡ対策回路３２の第２ＸＯＲ部３４において、ｆ関数部３０の出力データｆｎをビット反転したビット反転データｒｆｎとブロックデータＬｎとを用いたＸＯＲ演算が行れる。
【００７８】
ところで、攻撃者は先に述べたように、回路の消費電力が、鍵を用いた暗号演算の結果として出力されるデータのハミング重みに比例することに着目して、そのデータのあるビット値が「０」のときと「１」のときとで消費電力の測定データを分類し、その差分を統計解析することによりＤＥＳの鍵を特定しようとする。
【００７９】
そこでかかる暗号回路６Ｄにおいては、例えばｆ関数部３０の出力データｆｎのあるビット値が「０」である場合には、ＤＰＡ対策回路３２のインバータ３３によりこのビット値を「１」に反転させ、ｆ関数部３０の出力データｆｎのあるビット値が「１」である場合には、当該インバータ３３によりこのビット値を「０」に反転させ、後段の第１ＸＯＲ部３１と第２ＸＯＲ部３４とで、互いにビット値（「０」か「１」）が反転したデータに対して演算を行うようにした。
【００８０】
すなわちこのＤＥＳ演算部１０Ａ内には、互いにビット値が反転したデータを処理する回路部分が対に設けられていることにより回路内のハミング重みを常に一定にすることができ、この結果、ＤＥＳ暗号演算時の消費電力をほぼ一定（すなわちｆ関数部３０の出力データｆｎのあるビット値が「１」である場合も「０」である場合も暗号回路６Ｄにおける消費電力をほぼ一定）にすることができる。
【００８１】
これによりこの暗号回路６Ｄにおいては、ＤＥＳの鍵に依存する出力データｆｎの値に依らずハミング重みを一定にすることができるので、鍵と消費電力との相関を従来と比して格段と小さくすることができる。
【００８２】
ゆえに攻撃者がいくら暗号回路６Ｄにおける消費電力の差分を統計解析しても、この差分が常にほぼ０であるために、秘密鍵を特定することができない。
【００８３】
かくしてこの暗号回路６Ｄによれば、第１ＸＯＲ部３１でｆ関数部３０の出力データｆｎを用いたＸＯＲ演算を実行すると共に、この出力データｆｎをインバータ３３でビット反転してビット反転データｒｆｎとし、第２ＸＯＲ部３４でこのビット反転データｒｆｎを用いてＸＯＲ演算を実行するようにしたことにより、出力データｆｎの値に依らず暗号化装置内のハミング重みを一定にして暗号演算時の消費電力をほぼ一定にすることができる。この結果、この暗号回路６Ｄにおいては、電力解析攻撃（特に差分電力解析）に対する耐性を向上することができ、かくして暗号の解読困難性を一段と向上することができる。
【００８４】
（６）第６の実施の形態
次に、第６の実施の形態について説明する。この第６の実施の形態では、上述の第５の実施の形態と暗号回路６Ｄ（本実施では６Ｅ）の構成以外は同様であり、同様部分の説明については省略する。
【００８５】
この第６の実施の形態における暗号回路６Ｅは、図１０との対応部分に同一符号を付して示す図１１のように、ＤＰＡ対策回路３２Ａを実装したＤＥＳ演算部１０Ｂを有している。このＤＰＡ対策回路３２Ａには、データレジスタ１１（Ｒレジスタ１１Ｒ及びＬレジスタ１１Ｌ）と対になるＤＰＡ対策用データレジスタ４０（Ｒ’レジスタ４０Ｒ及びＬ’レジスタ４０Ｌ）とインバータ４１とが新たに設けられ、このうちＤＰＡ対策用データレジスタ４０のＲ’レジスタ４０Ｒが、第５の実施の形態における終端処理部３５の代わりとなる。
【００８６】
そしてこの暗号回路６Ｅでは、Ｒレジスタ１１Ｒから供給されるブロックデータＲｎをＬレジスタ１１Ｌに送出して次ラウンドのブロックデータＬｎ＋１としてラッチさせると共に、このブロックデータＲｎをＤＰＡ対策回路３２Ａのインバータ４１にも送出してビット反転させてからＬ’レジスタ４０Ｌにラッチさせる。
【００８７】
またこの暗号回路６Ｅでは、第１ＸＯＲ演算部３１の出力データＸ１ｎを次ラウンドのブロックデータＲｎ＋１としてＲレジスタ１１Ｒにラッチさせると共に、第２ＸＯＲ部３４の出力データＸ２ｎをＲ’レジスタ４０Ｒにラッチさせるようになされている。
【００８８】
すなわちＤＰＡ対策回路３２Ａ内にＲレジスタ１１Ｒ及びＬレジスタ１１Ｌと同様の役割をするＲ’レジスタ４０Ｒ及びＬ’レジスタ４０Ｌを設けて、このＲ’レジスタ４０Ｒ及びＬ’レジスタ４０ＬとＲレジスタ１１Ｒ及びＬレジスタ１１Ｌとに互いにビット値が反転したデータをラッチさせるようにした。
【００８９】
このようにこの暗号回路６Ｅでは、ビット値が反転したデータを処理する対の回路部分の構成を同一にすることで、暗号回路６Ｅにおけるビット値に関連する消費電力の差分を一段と小さくすることができ、この結果電力解析攻撃（特に差分電力解析）に対する耐性を向上することができるので、暗号の解読困難性を一段と向上することができる。
【００９０】
（７）他の実施の形態
なお上述の実施の形態においては、暗号回路６、６Ａ、６Ｂ、６Ｃ、６Ｄ、及び６Ｅに用いる暗号化技術として、ＤＥＳを用いるようにした場合について述べたが、本発明はこれに限らず、トリプルＤＥＳや、ＡＥＳ（Advanced Encryption Standard）、ＩＤＥＡ（International Data Encryption Algorithm）、ＲＣ（Ron's Code）２、ＲＣ４、ＲＣ５等、この他種々の暗号化技術を用いるようにしてもよい。
【００９１】
また上述の実施の形態においては、暗号回路６、６Ａ、６Ｂ、６Ｃ、６Ｄ、及び６Ｅの構成として、図２、図４、図６、図７、図１０、及び図１１に示す構成を開示したが、本発明はこれに限らず、実際上これら暗号回路６、６Ａ、６Ｂ、６Ｃ、６Ｄ、及び６Ｅと同様の機能を実現できる構成であれば、ソフトウェア、あるいはハードウェア（例えばＩＣ（integrated circuit）チップ）、さらにこれらの組合せ等により実現してもよい。
【００９２】
さらに上述の実施の形態においては、ＩＣカード１に搭載された暗号回路６に本発明を適用するようにした場合について述べたが、本発明はこれに限らず、暗号演算を行う種々の装置（例えばＩＣカード１のリーダライタや、携帯電話機、ノートブック型パーソナルコンピュータ等）や回路、半導体集積回路としてのＩＣチップ等に適用するようにしてもよい。
【００９３】
さらに上述の第１乃至第４の実施の形態においては、外部から供給される乱数の値に応じて、ＤＥＳ演算（本ＤＥＳ演算又はダミーＤＥＳ演算）を実行するようにした場合について述べたが、本発明はこれに限らず、例えば暗号回路内に乱数生成部を設け、この乱数生成部で生成した乱数の値に応じて、ＤＥＳ演算を実行するようにしてもよい。このように暗号回路内で乱数を生成するようにすれば、外部から供給される場合よりも乱数の改竄等の危険性を低減することもできる。
【００９４】
さらに上述の第６の実施の形態においては、ＤＰＡ対策回路３２Ａ内に第１の保持手段としてのデータレジスタ１１と対になる第２の保持手段としてのＤＰＡ対策用データレジスタ４０を設けた場合について述べたが、本発明はこれに限らず、例えばＤＰＡ対策用データレジスタ４０のＬ’レジスタ４０Ｌ及びインバータ４１を省略する構成にしてもよい。
【００９５】
さらに上述の第１乃至第４の実施の形態においては、第１の鍵データとしてのＤＥＳの副鍵や第２の鍵データとしてのダミー鍵を用いてＤＥＳアルゴリズムに基づく暗号演算処理を実行する暗号演算手段としてのＤＥＳ演算部１０、１０Ａ及び１０Ｂや、挿入手段としてのダミー鍵レジスタ１３及び第１セレクタ１４とにより暗号化装置及び半導体集積回路としての暗号回路６、６Ａ、６Ｂ、６Ｃを構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【００９６】
さらに上述の第５及び第６の実施の形態においては、第１の暗号演算としてのｆ関数に基づく演算を実行する第１の暗号演算手段としてのｆ関数部３０や、このｆ関数部３０の出力データｆｎを用いて第２の暗号演算としてのＸＯＲ演算を実行する第２の暗号演算手段としての第１ＸＯＲ部３１や、ｆ関数部３０の出力データｆｎをビット反転するインバータ３３や、ビット反転データｒｆｎを用いて第３の暗号演算としてのＸＯＲ演算を実行する第３の暗号演算手段としての第２ＸＯＲ部３４により暗号化装置及び半導体集積回路としての暗号回路６Ｄ及び６Ｅを構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【産業上の利用可能性】
【００９７】
本発明は、暗号演算を実行する装置、回路及びＩＣチップ等において広く利用できる。
【図面の簡単な説明】
【００９８】
【図１】第１の実施の形態におけるＩＣカードの構成を示す略線図である。
【図２】第１の実施の形態における暗号回路の構成を示す略線図である。
【図３】第１の実施の形態におけるＤＥＳ演算の実行タイミングを示すタイミングチャートである。
【図４】第２の実施の形態における暗号回路の構成を示す略線図である。
【図５】第２の実施の形態におけるＤＥＳ演算の実行タイミングを示すタイミングチャートである。
【図６】第３の実施の形態における暗号回路の構成を示す略線図である。
【図７】第４の実施の形態における暗号回路の構成を示す略線図である。
【図８】第４の実施の形態におけるＤＥＳ演算の実行タイミングを示すタイミングチャートである。
【図９】ＤＰＡ解析のタイミングを示すタイミングチャートである。
【図１０】第５の実施の形態における暗号回路の構成を示す略線図である。
【図１１】第６の実施の形態における暗号回路の構成を示す略線図である。
【図１２】ＤＥＳ暗号化アルゴリズムを示す略線図である。
【図１３】消費電力変動とＤＥＳ演算との関係を示すタイミングチャートである。
【符号の説明】
【００９９】
１……ＩＣカード、２……ＣＰＵ、３……インタフェース部、４……ＲＯＭ、６、６Ａ、６Ｂ、６Ｃ、６Ｄ、６Ｅ……暗号回路、７……ＥＥＰＲＯＭ、１１……データレジスタ、１１Ｌ、４０Ｌ……Ｌレジスタ、１１Ｒ、４０Ｒ……Ｒレジスタ、１２……鍵レジスタ、１３……ダミー鍵レジスタ、１４……第１セレクタ、１５……第２セレクタ、２０、２０Ａ……ダミー制御部、生成部、３０……ｆ関数部、３１……第１ＸＯＲ部、３２、３２Ａ……ＤＰＡ対策回路、３３、４１……インバータ、３４……第２ＸＯＲ部、４０……ＤＰＡ対策用データレジスタ。
【図１】
2006025366.tif 000003
【図２】
2006025366.tif 000004
【図３】
2006025366.tif 000005
【図４】
2006025366.tif 000006
【図５】
2006025366.tif 000007
【図６】
2006025366.tif 000008
【図７】
2006025366.tif 000009
【図８】
2006025366.tif 000010
【図９】
2006025366.tif 000011
【図１０】
2006025366.tif 000012
【図１１】
2006025366.tif 000013
【図１２】
2006025366.tif 000014
【図１３】
2006025366.tif 000015