(57)【特許請求の範囲】
【請求項１】
データに対して、暗号化に関連する処理を施すデータ処理回路において、
前記データに対して、暗号化に関連する処理を施す処理手段と、
複数の独立したノイズを加算することにより、その加算結果である重畳用のノイズを生成するノイズ生成手段と、
前記処理手段で消費される消費電流に対して前記重畳用のノイズを重畳する重畳手段と、
前記暗号化のセキュリティレベルに応じて、前記ノイズ生成手段が重畳用のノイズを生成するときに加算するノイズの数を制御する制御手段と
を備えるデータ処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理回路に関し、特に、例えば、DES(Data Encryption Standard)等の暗号化方式による暗号化に用いられる暗号鍵の盗み出しを防止してセキュリティを確保することができるようにするデータ処理回路に関する。
【背景技術】
【０００２】
例えば、IC(Integrated Circuit)カードやリーダ／ライタにおいては、データの改竄や盗聴を防止するために、ICカードとリーダ／ライタとの間でやりとりするデータを暗号鍵で暗号化することが行われる。
【０００３】
暗号化の方式（暗号化方式）としては、大きく分けて、共通鍵方式と公開鍵方式とがある。共通鍵方式は、データの暗号化と復号とが、共通鍵と呼ばれる同一の暗号鍵を用いて行われる方式で、例えば、DESと呼ばれるものがある。公開鍵方式は、データの暗号化と復号とが、公開鍵と秘密鍵と呼ばれる別の暗号鍵を用いて行われる方式で、例えば、RSA(Rivest, Shamir, Adeleman)と呼ばれるものがある。
【０００４】
暗号化は、その処理過程を観測することができると、その暗号化方式や暗号鍵を容易に解読（認識）することが可能となってしまうため、一般には、１つのICなどのハードウェアとしての暗号化回路で行われる。この場合、ICである暗号化回路の外部からは、例えば、暗号化が行われる前のデータ（平文）と、そのデータの暗号化結果としての暗号化データ（暗号文）を観測することができるが、これらの平文と暗号文とから、暗号化回路で行われている暗号化の暗号化方式や暗号鍵を解読することは困難である。
【０００５】
ところで、最近、暗号化回路の消費電力（消費電流）を解析することにより、その暗号化回路で用いられている暗号鍵を解読するDPA(Differential Power Analysis)と呼ばれる技術が提案されている（例えば、非特許文献１参照）。なお、非特許文献１と同一内容の情報が、http://www.cryptography.com/resources/whitepapers/DPA.pdfにも掲載されている（2004年2月23日現在）。
【０００６】
DPAは、暗号化回路で行われる処理における論理（レベル）１と０とで生じる微小な消費電力の違いを利用した技術である。即ち、暗号化回路は、例えば、MOS(Metal Oxide Semiconductor)-ICで構成されるが、MOS-ICにおいては、理想的には、電流は流れない。
【０００７】
しかしながら、実際には、リーク電流等が流れ、このリーク電流等が、論理１と０とで異なる。このため、暗号化回路で行われる処理における論理（レベル）１と０とで、消費電力に違いが生じる。さらに、データが遷移するときに暗号化回路における消費電力が大になる。DPAでは、この消費電力の違いを利用して、暗号化回路で用いられている暗号鍵を解読する。
【０００８】
【非特許文献１】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.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
暗号化回路が、例えば、DESによる暗号化を行うものである場合、その暗号化回路では、暗号鍵（共通鍵）から中間鍵が生成され、その中間鍵を用いて、データの暗号化が行われる。
【００１０】
DPAによれば、暗号化回路の消費電力を分析することで、暗号化回路の内部で用いられている中間鍵を、比較的容易に盗み出す（解読する）ことができるため、DPAは、暗号化回路による暗号化のセキュリティを確保する上で大きな問題となっている。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、消費電力の分析による暗号鍵の盗み出しを防止してセキュリティを確保することができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面のデータ処理回路は、データに対して、暗号化に関連する処理を施すデータ処理回路において、前記データに対して、暗号化に関連する処理を施す処理手段と、複数の独立したノイズを加算することにより、その加算結果である重畳用のノイズを生成するノイズ生成手段と、前記処理手段で消費される消費電流に対して前記重畳用のノイズを重畳する重畳手段と、前記暗号化のセキュリティレベルに応じて、前記ノイズ生成手段が重畳用のノイズを生成するときに加算するノイズの数を制御する制御手段とを備えるデータ処理回路である。
【００１８】
本発明の一側面においては、複数の独立したノイズを加算することにより、その加算結果である重畳用のノイズが生成され、前記処理手段で消費される消費電流に対して前記重畳用のノイズが重畳される。重畳用のノイズを生成するときに加算するノイズの数は、暗号化のセキュリティレベルに応じて制御される。
【発明の効果】
【００１９】
本発明によれば、セキュリティを確保することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２９】
図１は、本発明を適用したICチップの第１実施の形態の構成例を示している。
【００３０】
図１のICチップにおいては、外部から供給されるデータ（平文）が暗号化され、その結果得られる暗号化データが、外部に出力されるようになっている。
【００３１】
即ち、図１においては、暗号化処理回路１には、暗号化に用いられる暗号鍵、暗号化の対象となるデータ（平文）、およびマスタクロックMCLKが供給されるようになっている。
【００３２】
暗号化処理回路１は、そこに供給される暗号化の対象となるデータに対して、そこに供給される暗号鍵を用い、例えば、DESによる暗号化処理を、そこに供給されるマスタクロックMCLKに同期して行う。即ち、暗号化処理回路１は、そこに供給される暗号鍵から中間鍵を生成し、その中間鍵を用いて、データをDESで暗号化する。そして、暗号化処理回路１は、暗号化の結果得られる暗号化データを、ICチップの外部に出力する。
【００３３】
ここで、暗号化処理回路１には、電源ラインＬを介して、電源ＶDDが供給されるようになっている。暗号化処理回路１は、この電源ＶDDの供給を受けて、暗号化処理を行う。
【００３４】
なお、電源ＶDDは、ICチップの外部から供給される。
【００３５】
また、図１では（後述する図５および図７においても同様）、暗号化処理回路１が消費する消費電流を、Ｉdesで表してある。暗号化処理回路１は、ICチップのアース端子に接続されており、消費電流Ｉdesは、最終的には、ICチップのアース端子に流れる。
【００３６】
遅延回路２には、暗号化処理回路１に供給されるのと同一のマスタクロックMCLKが供給される。遅延回路２は、暗号化処理回路１における暗号化処理においてデータが遷移するタイミング（期間）に応じた時間だけ、そこに供給されるマスタクロックMCLKを遅延し、ゲート回路３に供給する。
【００３７】
ゲート回路３は、暗号化処理回路１で消費される消費電流Ｉdesに対して、後述するノイズ生成回路５が生成するノイズ電流Ｉnを重畳するタイミングを表すタイミング信号ＩTを、遅延回路２から供給されるマスタクロックMCLKに基づいて生成し、スイッチ４に供給する。
【００３８】
スイッチ４は、その一端が電源ラインＬに接続されており、その他端がノイズ生成回路５に接続されている。そして、ゲート回路３から供給されるタイミング信号ＩTに応じてオン／オフし、これにより、電源ラインＬに流れる、暗号化処理回路１の消費電流Ｉdesに対して、ノイズ生成回路５が生成するノイズ電流Ｉnを重畳する。
【００３９】
ノイズ生成回路５は、複数であるＮ個のオシレータ１０1，１０2，・・・，１０N、Ｎ個のノイズ発生器１１1，１１2，・・・，１１N、Ｎ個のスイッチ１２1，１２2，・・・，１２N、Ｎ個の電流源１３1，１３2，・・・，１３N、および制御回路１４から構成され、複数の独立した信号（電流）を加算することにより、ガウス分布となるノイズ電流（正確には、ガウス分布に近い分布となる、ノイズとみなすことができる電流）を生成する。
【００４０】
即ち、オシレータ１０n（ｎ＝１，２，・・・，Ｎ）は、制御回路１４からの制御信号にしたがい、ノイズ発生器１１nを駆動する。ノイズ発生器１１nは、オシレータ１０nによって駆動され、例えば、疑似ランダムノイズを発生し、その疑似ランダムノイズを、出力信号として、スイッチ１２nに供給する。
【００４１】
スイッチ１２nは、ノイズ発生器１１nの出力信号にしたがってオン／オフされる。ここで、スイッチ１２nの一端は、電流源１３nに接続されており、その他端は、ICチップのアース端子に接続されている。従って、スイッチ１２nがオン状態となることにより、電流源１３nが出力する電流は、スイッチ１２nを介して、ICチップのアース端子に流れる。
【００４２】
電流源１３nは、その一端が、スイッチ１２nの一端に接続されており、スイッチ１２nを介して、所定の大きさ（レベル）の電流を流す。また、電流源１３1乃至１３Nそれぞれの他端は接続されており、その接続点は、スイッチ４の他端に接続されている。
【００４３】
制御回路１４には、暗号化処理回路１での暗号化のセキュリティレベルが供給されるようになっている。
【００４４】
ここで、セキュリティレベルは、暗号化回路１での暗号化の対象となるデータの重要性、あるいは秘匿性などに応じたレベルで、ICチップの外部から与えるようにすることも可能であるし、ICチップ内にあらかじめ設定しておくようにすることも可能である。
【００４５】
制御回路１４は、そこに供給されるセキュリティレベルに応じて、オシレータ１０1乃至１０Nを制御する。
【００４６】
ここで、ノイズ生成回路５では、電流源１３1乃至１３Nそれぞれが流す電流が、電流源１３1乃至１３Nそれぞれの他端が接続されている接続点で加算され、その加算結果が、ノイズ電流Ｉnとして、スイッチ４を流れることになる。
【００４７】
一方、電流源１３nの一端に接続されているスイッチ１２nは、オシレータ１０nにより駆動されるノイズ発生器１１nの出力信号にしたがってオン／オフする。従って、電流源１３nは、ノイズ発生器１１nの出力信号にしたがった電流を流す。
【００４８】
ここで、中心極限定理によれば、複数の独立した信号を加算することにより得られる加算信号は、その加算する信号の数が多いほど、ガウス分布に近づくことが知られている。
【００４９】
そこで、ノイズ生成回路５においては、ノイズ発生器１１1乃至１１Nの出力信号である疑似ランダムノイズそれぞれは、独立（直交）した信号になっており、これにより、電流源１３1乃至１３Nそれぞれがスイッチ１２1乃至１２Nそれぞれを介して流す電流も、独立した信号になっている。
【００５０】
ノイズ生成回路５では、電流源１３1乃至１３Nそれぞれが流す、独立した電流が、電流源１３1乃至１３Nそれぞれの他端が接続されている接続点で加算されることにより、ガウス分布により近い分布となる電流、即ち、真にランダムなノイズ（に極めて近いノイズ）となるノイズ電流が生成される。
【００５１】
図１のICチップでは、原理的には、暗号化処理回路１で消費される消費電流Ｉdesに対して、ノイズ生成回路５で生成されるノイズ電流Ｉnを重畳することにより、電源ラインＬに流れる電流Ｉを、Ｉdes＋Ｉnとする。この場合、電源ラインＬに流れる電流Ｉは、暗号化処理回路１で消費される消費電流Ｉdesではなく、その消費電流Ｉdesに、ノイズ電流Ｉnを重畳したものであるため、即ち、ICチップの外部から観測することができる電流Ｉは、暗号化処理回路１で消費される消費電流Ｉdesそのものではなく、その消費電流Ｉdesに、ノイズ電流Ｉnを重畳したものであるため、DPAでの消費電流Ｉdesの解析による中間鍵の盗み出しを防止して、セキュリティの確保を図ることができる。
【００５２】
従って、ノイズ電流Ｉnは、暗号化処理回路１で消費される消費電流Ｉdesに重畳することで、その消費電流Ｉdesを、ICチップの外部から、いわば隠蔽するものであるから、ランダムであること（ランダム性が高いこと）が望ましい。
【００５３】
一方、中心極限定理によれば、独立した電流を流す電流源１３1乃至１３Nの数Ｎが多い方が、よりガウス分布に近いノイズ電流（ランダム性の高いノイズ電流）を生成することができる。従って、電源ラインＬに流れる電流ＩのDPAによる解析を防止するには、独立した電流を流す電流源１３1乃至１３Nの数Ｎは、多い方が望ましい。
【００５４】
しかしながら、独立した電流を流す電流源１３1乃至１３Nの数Ｎが多くなると、ICチップ全体の消費電流が大きくなる。
【００５５】
ところで、DPAによる解析を防止の要請は、セキュリティレベル（暗号化回路１での暗号化の対象となるデータの重要性、あるいは秘匿性など）が高いほど、高い。
【００５６】
そこで、制御回路１４は、セキュリティレベルに応じて、ノイズ電流を生成するときに加算する、独立した電流の数を制御するようになっている。
【００５７】
即ち、制御回路１４は、セキュリティレベルが低い場合（暗号化回路１での暗号化の対象となるデータの重要性、あるいは秘匿性などが低い場合）、オシレータ１０1乃至１０Nを制御することにより、ノイズ発生器１１1乃至１１Nを駆動するオシレータの数を、セキュリティレベルに応じて少なくする。スイッチ１２nは、ノイズ発生器１１nがオシレータ１０nによって駆動されていない場合はオフ状態となるようになっており、従って、この場合、電流源１３nからは、電流が流れなくなる。
【００５８】
以上から、ノイズ発生器１１1乃至１１Nを駆動するオシレータの数が少なくなると、電流源１３1乃至１３Nそれぞれの他端が接続されている接続点で加算される、独立した電流の数も少なくなる。
【００５９】
その結果、ノイズ生成回路５で生成されるノイズ電流のランダム性は多少低くなるが、ICチップ全体の消費電流を低減することができる。
【００６０】
一方、制御回路１４は、セキュリティレベルが高い場合（暗号化回路１での暗号化の対象となるデータの重要性、あるいは秘匿性などが高い場合）、オシレータ１０1乃至１０Nを制御することにより、ノイズ発生器１１1乃至１１Nを駆動するオシレータの数を、セキュリティレベルに応じて多くする。電流源１３nに接続しているスイッチ１２nは、ノイズ発生器１１nがオシレータ１０nによって駆動され、疑似ランダムノイズである出力信号にしたがってオン／オフするため、ノイズ発生器１１1乃至１１Nを駆動するオシレータの数が多くなると、電流源１３1乃至１３Nそれぞれの他端が接続されている接続点で加算される、独立した電流の数も多くなる。
【００６１】
その結果、ICチップ全体の消費電流は多少増加するものの、ノイズ生成回路５で生成されるノイズ電流のランダム性は高くなり、DPAによる解析を、より強固に防止することができる。
【００６２】
次に、図２のフローチャートを参照して、図１のICチップの動作について説明する。
【００６３】
ICチップでは、ステップＳ１において、ゲート回路３が、タイミング信号ＩTの生成を開始する。即ち、マスタクロックMCLKが、遅延回路２を介して、ゲート回路３に供給される。ゲート回路３は、遅延回路２を介して供給されるマスタクロックMCLKに基づいて、タイミング信号ＩTを生成し、スイッチ４に供給する。
【００６４】
その後、ステップＳ１からＳ２に進み、スイッチ４が、ゲート回路３から供給されるタイミング信号ＩTにしたがってオン／オフを開始する。このスイッチ４のオン／オフにしたがい、ノイズ生成回路５が生成するノイズ電流Ｉnがオン／オフする。これにより、電源ラインＬにおいては、スイッチ４がオン状態のときのみ、ノイズ生成回路５が生成するノイズ電流Ｉnが、暗号化処理回路１の消費電流Ｉdesに対して重畳される。
【００６５】
ここで、スイッチ４のオン／オフにしたがってオン／オフするノイズ電流Ｉnを、Ｉn’で表す。
【００６６】
ステップＳ２からＳ３に進み、暗号化処理回路１が暗号化処理を開始し、これにより、暗号化処理回路１に供給されるデータが暗号化される。
【００６７】
図１のICチップにおいて、電源ラインＬから暗号化処理回路１には、消費電流Ｉdesが流れる。また、電源ラインＬからノイズ生成回路５には、ノイズ電流Ｉn’が流れる。従って、電源ラインＬを流れる電流Ｉは、消費電流Ｉdesとノイズ電流Ｉn’とを加算した値となる。
【００６８】
次に、図３のフローチャートを参照して、図１のノイズ生成回路５の動作について説明する。
【００６９】
ノイズ生成回路５では、ステップＳ１１において、制御回路１４が、そこに供給されるセキュリティレベルに応じて、動作させるオシレータ（ノイズ発生器を駆動させるオシレータ）の数を設定し、その数を表す制御信号を生成して、オシレータ１０1乃至１０Nに供給する。
【００７０】
オシレータ１０1乃至１０Nは、制御回路１４からの制御信号を受信し、ステップＳ１２において、オシレータ１０1乃至１０Nのうちの、制御回路１４からの制御信号が表す数だけのオシレータが動作し、ノイズ発生器１１1乃至１１Nのうちの、対応するノイズ発生器の駆動を開始する。即ち、制御回路１４からの制御信号が表す数を、Ｎ’（Ｎ’は、１以上Ｎ以下の値）と表すとすると、例えば、オシレータ１０1乃至１０N'が、ノイズ発生器１１1乃至１１N'を駆動し、これにより、ノイズ発生器１１1乃至１１N'からスイッチ１２1乃至１２N'それぞれへの出力信号の供給が開始される。
【００７１】
そして、ステップＳ１３において、スイッチ１２1乃至１２N'は、それぞれ、ノイズ発生器１１1乃至１１N'の出力信号にしたがってオン／オフを開始する。これにより、電流源１３1乃至１３N'それぞれが流す、独立した電流が、電流源１３1乃至１３Nそれぞれの他端が接続されている接続点で加算され、その加算結果であるノイズ電流Ｉnが生成される。
【００７２】
次に、図４のタイミングチャートを参照して、図１のICチップの各部の信号について説明する。
【００７３】
図４上から１番目は、マスタクロックMCLKを示している。図１の暗号化処理回路１は、マスタクロックMCLKの、例えば立ち上がりエッジのタイミングで動作する。
【００７４】
図４上から２番目は、ゲート回路３が生成するタイミング信号ＩTを示している。図４では、タイミング信号ＩTは、マスタクロックMCLKの立ち上がりエッジ付近で論理１となり、他で論理０となる信号となっている。
【００７５】
図４上から３番目は、ノイズ生成回路５で生成されるノイズ電流Ｉnを示している。図１のICチップにおいて、スイッチ４がオン状態のままである場合、電源ラインＬからノイズ生成回路５には（スイッチ４には）、ノイズ電流Ｉnが流れる。
【００７６】
なお、図４においては、ノイズ生成回路５で生成されるノイズ電流Ｉnが、マスタクロックMCLKに同期して変化するように図示してあるが、ノイズ電流Ｉnは、マスタクロックMCLKに同期して変化するものである必要はない。即ち、ノイズ電流Ｉnを生成するためのノイズ発生器１１1乃至１１Nの出力信号それぞれは、互いに同期している必要はないし、マスタクロックMCLKに同期している必要もない。
【００７７】
図４上から４番目は、スイッチ４が、タイミング信号ＩTにしたがってオン／オフする場合に、電源ラインＬからノイズ生成回路５に流れるノイズ電流Ｉn’を示している。ノイズ電流Ｉn’は、タイミング信号ＩTが論理１になっている区間の、ノイズ生成回路５が生成するノイズ電流Ｉnに等しくなっている。
【００７８】
図４上から５番目は、暗号化処理回路１の消費電流Ｉdesを示している。
【００７９】
図４上から６番目（下から１番目）は、電源ラインＬに流れる電流Ｉを示している。電流Ｉは、暗号化処理回路１の消費電流Ｉdesに対して、ノイズ電流Ｉn’を重畳したものとなっている。
【００８０】
図４によれば、電流Ｉにおいて、暗号化処理回路１の消費電流Ｉdesが隠蔽されていることが分かる。
【００８１】
ところで、暗号化処理回路１の消費電流Ｉdesに対して、ノイズ電流Ｉn’ではなく、ノイズ生成回路５で生成されるノイズ電流Ｉnを重畳しても、消費電流Ｉdesを隠蔽することができる。
【００８２】
しかしながら、暗号化処理回路１の消費電流Ｉdesに対して、ノイズ生成回路５で生成されるノイズ電流Ｉnを重畳する場合、ノイズ電流Ｉnが常時流れることとなり、ICチップ全体の消費電流が大になる。
【００８３】
一方、例えば、暗号化処理回路１の暗号化処理における論理０と１による消費電流Ｉdesの違いが生じないタイミングで、ノイズ電流を重畳しても、暗号化処理回路１の消費電流Ｉdesを隠蔽することが困難なことがある。
【００８４】
そこで、図１のICチップでは、暗号化処理回路１の暗号化処理における論理０と１による消費電流Ｉdesの違いが生じるタイミング、具体的には、図１の暗号化処理回路１が動作するマスタクロックMCLKの立ち上がりエッジのタイミングを含む所定の区間（タイミング信号ＩTが論理１になっている区間）において、ノイズ電流を重畳するようになっている。
【００８５】
これにより、暗号化処理回路１の消費電流Ｉdes（暗号化処理回路１の暗号化処理における論理０と１による消費電流Ｉdesの違い）を隠蔽するとともに、ICチップ全体の消費電力の増加を低減することができる。
【００８６】
次に、図５は、本発明を適用したICチップの第２実施の形態の構成例を示している。なお、図中、図１における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図５のICチップは、ノイズ生成回路２１が新たに設けられている他は、図１のICチップと同様に構成されている。
【００８７】
ノイズ生成回路２１は、図１に示したノイズ生成回路５と同様に構成されている。但し、ノイズ生成回路５と２１とは、異なる系列のノイズ電流を生成する。
【００８８】
ここで、図５では、ノイズ生成回路２１が生成するノイズ電流を、Ｉn’’で表してある。
【００８９】
図５のICチップでは、ノイズ生成回路２１が生成するノイズ電流Ｉn’’が、電源ラインＬからノイズ生成回路２１に流れる。従って、電源ラインＬに流れる電流Ｉは、暗号化処理回路１における消費電流Ｉdesに対して、スイッチ４を介して流れるノイズ電流Ｉn’を重畳し、さらに、（他の）ノイズ電流Ｉn’’を重畳したものとなる。
【００９０】
なお、ノイズ生成回路２１も、ノイズ生成回路５と同様に、セキュリティレベルに応じて、ノイズ電流Ｉn’’を生成するときに加算する、独立した信号の数を制御するようになっている。
【００９１】
次に、図６のタイミングチャートを参照して、図５のICチップの各部の信号について説明する。
【００９２】
図６上から１番目、２番目、３番目、４番目は、図４の上から１番目、２番目、３番目、４番目と同一のマスタクロックMCLK、タイミング信号ＩT、ノイズ電流Ｉn、ノイズ電流Ｉn’を、それぞれ示している。
【００９３】
なお、図６においても、図４と同様に、ノイズ電流Ｉnが、マスタクロックMCLKに同期して変化するように図示してあるが、ノイズ電流Ｉnは、マスタクロックMCLKに同期して変化するものである必要はない。次に説明するノイズ電流Ｉn’’についても同様である。
【００９４】
図６上から５番目は、ノイズ生成回路２１で生成されるノイズ電流Ｉn’’を示している。
【００９５】
図６上から６番目は、図４上から５番目と同一の、暗号化処理回路１の消費電流Ｉdesを示している。
【００９６】
図６上から７番目（下から１番目）は、電源ラインＬに流れる電流Ｉを示している。電流Ｉは、暗号化処理回路１の消費電流Ｉdesに対して、ノイズ電流Ｉn’、さらには、ノイズ電流Ｉn’’を重畳したものとなっている。
【００９７】
図６によれば、電流Ｉにおいて、暗号化処理回路１の消費電流Ｉdesが隠蔽されていることが分かる。
【００９８】
ここで、図６上から４番目（図４上から４番目）のノイズ電流Ｉn’は、スイッチ４が、タイミング信号ＩTにしたがってオンした区間（時間）においてのみ流れるから、タイミング信号ＩTにしたがった、いわば動的なノイズ電流ということができる。
【００９９】
一方、図６上から５番目のノイズ電流Ｉn’’は、電源ラインＬからノイズ生成回路２１に、常時に流れるから、いわば静的なノイズ電流ということができる。
【０１００】
図５のICチップでは、暗号化処理回路１の消費電流Ｉdesが、動的なノイズ電流Ｉn’のみならず、静的なノイズ電流Ｉn’’によっても隠蔽されるので、図１のICチップに比較して、DPAによる解析を、より強固に防止することができる。
【０１０１】
次に、図７は、本発明を適用したICチップの第３実施の形態の構成例を示している。なお、図中、図１における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図７のICチップは、ゲート回路３１、スイッチ３２、およびノイズ生成回路３３が新たに設けられている他は、図１のICチップと同様に構成されている。
【０１０２】
ゲート回路３１は、ゲート回路３と同様に、遅延回路２が出力するマスタクロックMCLKに基づいて、タイミング信号を生成し、スイッチ３２に供給する。但し、ゲート回路３１は、ゲート回路３が出力するタイミング信号ＩTとは異なるタイミング（区間）で論理１となるタイミング信号を生成する。
【０１０３】
スイッチ３２は、ゲート回路３１からのタイミング信号にしたがってオン／オフする。
【０１０４】
ここで、上述したように、ゲート回路３１は、ゲート回路３が出力するタイミング信号ＩTとは異なるタイミング信号を生成する。従って、スイッチ４と３２とは、異なるタイミングでオン／オフする。
【０１０５】
ノイズ生成回路３３は、図１に示したノイズ生成回路５と同様に構成されている。なお、ノイズ生成回路５と３３とは、上述した図５におけるノイズ生成回路５と２１と同様に、異なる系列のノイズ電流を生成するものであっても良いし、同一の系列のノイズ電流を生成するものであっても良い。
【０１０６】
図７のICチップでは、スイッチ３２がオン／オフすることによって、電源ラインＬからノイズ生成回路３３に、ノイズ電流Ｉn’’’が流れる。このノイズ電流Ｉn’’’は、スイッチ４がオン／オフすることによって電源ラインＬからノイズ生成回路５に流れるノイズ電流Ｉn’と同様に、動的なノイズ電流である。
【０１０７】
従って、図７のICチップでは、暗号化処理回路１の消費電流Ｉdesに対して、動的なノイズ電流Ｉn’と、そのノイズ電流Ｉn’とは異なる（他の）動的なノイズ電流Ｉn’’’とが重畳される。即ち、図７のICチップでは、暗号化処理回路１の消費電流Ｉdesが、２つの異なる動的なノイズ電流Ｉn’およびＩn’’’によって隠蔽される。従って、図７のICチップにおいても、図５のICチップと同様に、図１のICチップに比較して、DPAによる解析を、より強固に防止することができる。
【０１０８】
なお、図５と図７の実施の形態では、暗号化処理回路１の消費電流Ｉdesに対して、異なる２種類のノイズ電流を重畳するようにしたが、消費電流Ｉdesには、３種類以上のノイズ電流を重畳することも可能である。
【０１０９】
さらに、図５において、ICチップは、遅延回路２、ゲート回路３、およびノイズ生成回路５を設けずに構成することが可能である。この場合、暗号化処理回路１の消費電流Ｉdesに対しては、ノイズ生成回路２１で生成される静的なノイズ電流Ｉn’’だけが重畳される。なお、図５において、遅延回路２、ゲート回路３、およびノイズ生成回路５を設けないICチップと等価な構成は、図１において、スイッチ４をオンにしたままにすることによって実現することができる。
【０１１０】
ここで、図１のICチップは、スイッチ４を常時オン状態とするモードと、ゲート回路３が出力するタイミング信号ＩTに応じて、スイッチ４をオン／オフするモードとの選択を行うことができるように構成することが可能である。
【０１１１】
また、本実施の形態では、本発明を、DESによる暗号化を行うICチップに適用した場合について説明したが、本発明は、例えば、DES以外の暗号化方式による暗号化を行うICチップ、さらには、暗号化そのものではなく、暗号化データを復号する復号処理などの暗号化に関連する処理を行うICチップなどにも適用可能である。
【０１１２】
さらに、本発明は、ICチップの他、データの暗号化や復号などの暗号化に関連する処理を行うICカードや、リーダ／ライタ、ICカードの機能を備える携帯電話機その他のPDA(Personal Digital Assistant)などに適用可能である。
【図面の簡単な説明】
【０１１３】
【図１】本発明を適用したICチップの第１実施の形態の構成例を示すブロック図である。
【図２】ICチップの動作を説明するためのフローチャートである。
【図３】ノイズ生成回路５の動作を説明するためのフローチャートである。
【図４】ICチップの各部の信号を示すタイミングチャートである。
【図５】本発明を適用したICチップの第２実施の形態の構成例を示すブロック図である。
【図６】ICチップの各部の信号を示すタイミングチャートである。
【図７】本発明を適用したICチップの第３実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１１４】
１  暗号化処理回路，  ２  遅延回路，  ３  ゲート回路，  ４  スイッチ，  ５  ノイズ生成回路，  １０1乃至１０N  オシレータ，  １１1乃至１１N  ノイズ発生器，  １２1乃至１２N  スイッチ，  １３1乃至１３N  電流源，  １４  制御回路，  ２１  ノイズ生成回路２１，  ３１  ゲート回路，  ３２  スイッチ，  ３３  ノイズ生成回路
【図１】
0004674440.tif 000002
【図２】
0004674440.tif 000003
【図３】
0004674440.tif 000004
【図４】
0004674440.tif 000005
【図５】
0004674440.tif 000006
【図６】
0004674440.tif 000007
【図７】
0004674440.tif 000008