(57)【要約】【課題】低電力化を図るとともに、電力変動を測定することによる暗号解読を防止する電力平準化制御方法及び暗号処理装置を提供するようにする。【解決手段】複数のハードウェアを備えた暗号処理装置において、前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知する電力検知手段と、前記電力検知手段により検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整する電力調整手段とを備える。【選択図】　　　　図１
2004056363.tif 000002
【特許請求の範囲】
【請求項１】
複数のハードウェアを備えた暗号処理装置において、
前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知する電力検知手段と、
前記電力検知手段により検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整する電力調整手段
とを備えること特徴とする暗号処理装置。
【請求項２】
前記複数のハードウェアとして、プロセッサ、キャッシュ、主記憶、周辺回路を備えると共に、
前記電力検知手段は、前記所定の複数の動作期間として、キャッシュミスの期間、キャッシュヒットの期間、周辺回路動作の期間に分ける
ことを特徴とする請求項１記載の暗号処理装置。
【請求項３】
前記複数のハードウェアとして、プロセッサ、暗号回路を備えると共に、
前記電力検知手段は、前記所定の複数の動作期間として、暗号回路の動作期間、暗号回路の非動作期間に分ける
ことを特徴そする請求項１記載の暗号処理装置。
【請求項４】
前記電力調整手段は、クロック周波数を増減することにより前記ハードウェアの電力を調整する
ことを特徴とする請求項１記載の暗号処理装置。
【請求項５】
前記電力調整手段は、クロックのパルスを間引くことによりクロック周波数を増減する
ことを特徴とする請求項４記載の暗号処理装置。
【請求項６】
前記電力調整手段は、クロックのパルスを間引く際、高電位と低電位とを均衡して間引く
ことを特徴とする請求項５記載の暗号処理装置。
【請求項７】
前記電力調整手段は、電源電圧を増減することにより前記ハードウェアの電力を調整する
ことを特徴とする請求項１記載の暗号処理装置。
【請求項８】
前記電力調整手段は、閾値電圧を増減することにより前記ハードウェアの電力を調整する
ことを特徴とする請求項１記載の暗号処理装置。
【請求項９】
前記電力調整手段は、クロック周波数を増減することにより前記ハードウェアの電力を調整する際に用いる所定のクロック周波数値を、前記プロセッサにより調整する調整用レジスタを備える
ことを特徴とする請求項２または３のいずれかに記載の暗号処理装置。
【請求項１０】
前記電力調整手段は、電源電圧を増減することにより前記ハードウェアの電力を調整する際に用いる所定の電圧値を、前記プロセッサにより調整する調整用レジスタを備える
ことを特徴とする請求項２または３のいずれかに記載の暗号処理装置。
【請求項１１】
前記電力検知手段は、電流値に基づいて、前記それぞれの動作期間において前記それぞれのハードウェアが必要とする電力を検知する
ことを特徴とする請求項１記載の暗号処理装置。
【請求項１２】
前記電力検知手段は、電圧値に基づいて、前記それぞれの動作期間において前記それぞれのハードウェアが必要とする電力を検知する
ことを特徴とする請求項１記載の暗号処理装置。
【請求項１３】
複数のハードウェアを備えた暗号処理装置における電力平準化制御方法であって、
前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知し、
前記検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整する
ことを特徴とする電力平準化制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、暗号処理装置において問題となる外部からの処理解読を防止する技術に関するものである。
【０００２】
【従来の技術】
暗号処理を含む処理装置に電力変動が存在すると、装置電源線の電流変動を測定することにより、内部動作状況が判断できる。これにより、暗号処理アルゴリズムを解読でき、重要な情報を盗み取られることになる。従来、これを防止するためには、例えば、特開２００１−５７３１号公報に記載されているように、電力消費回路を備え、ノイズを発生することによって処理パターンを解読できないようにしていた。
【０００３】
【発明が解決しようとする課題】
従来の方法では、ノイズのために電力を発生させることから、全体の消費電力は増大する方向にあり、低電力装置への適用が困難であるという問題があった。また、ノイズの発生方法にパターンがあると、ノイズパターンをフィルタリングすることにより、暗号処理の電力パターンを取り出すことができるといった問題があった。
【０００４】
この発明は上記のような問題点を解決するためになされたものであり、常時消費電力の変動を抑えることで余計な電力発生手段を排除し、低電力化を図るとともに、電力変動を測定することによる暗号解読を防止する電力平準化制御方法及び暗号処理装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
この発明に係る暗号装置は、複数のハードウェアを備えた暗号処理装置において、前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知する電力検知手段と、前記電力検知手段により検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整する電力調整手段とを備えるものである。
【０００６】
また、前記複数のハードウェアとして、プロセッサ、キャッシュ、主記憶、周辺回路を備えると共に、前記電力検知手段は、前記所定の複数の動作期間として、キャッシュミスの期間、キャッシュヒットの期間、周辺回路動作の期間に分けるものである。
【０００７】
また、前記複数のハードウェアとして、プロセッサ、暗号回路を備えると共に、前記電力検知手段は、前記所定の複数の動作期間として、暗号回路の動作期間、暗号回路の非動作期間に分けるものである。
【０００８】
また、前記電力調整手段は、クロック周波数を増減することにより前記ハードウェアの電力を調整するものである。
【０００９】
また、前記電力調整手段は、クロックのパルスを間引くことによりクロック周波数を増減するものである。
【００１０】
また、前記電力調整手段は、クロックのパルスを間引く際、高電位と低電位とを均衡して間引くものである。
【００１１】
また、前記電力調整手段は、電源電圧を増減することにより前記ハードウェアの電力を調整するものである。
【００１２】
また、前記電力調整手段は、閾値電圧を増減することにより前記ハードウェアの電力を調整するものである。
【００１３】
また、前記電力調整手段は、クロック周波数を増減することにより前記ハードウェアの電力を調整する際に用いる所定のクロック周波数値を、前記プロセッサにより調整する調整用レジスタを備えるものである。
【００１４】
また、前記電力調整手段は、電源電圧を増減することにより前記ハードウェアの電力を調整する際に用いる所定の電圧値を、前記プロセッサにより調整する調整用レジスタを備えるものである。
【００１５】
また、前記電力検知手段は、電流値に基づいて、前記それぞれの動作期間において前記それぞれのハードウェアが必要とする電力を検知するものである。
【００１６】
また、前記電力検知手段は、電圧値に基づいて、前記それぞれの動作期間において前記それぞれのハードウェアが必要とする電力を検知するものである。
【００１７】
本発明に係る電力平準化制御方法は、複数のハードウェアを備えた暗号処理装置における電力平準化制御方法であって、前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知し、前記検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整するものである。
【００１８】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１における暗号処理装置の構成を示す説明図である。図１において、１はＣＰＵコア、２は主記憶、３は周辺回路、４は電力変動検知手段、５は制御手段、６はバスである。また、ＣＰＵコア１はプロセッサ１１、キャッシュコントローラ１２、キャッシュメモリ１３を備え、制御手段５は電圧変換手段５１、クロック変換手段５２を備える。本実施の形態１では、プログラムとして暗号処理を行う場合について説明する。
なお、電力変動検知手段４が電力検知手段に相当し、電力変動検知手段４と制御手段５が電力調整手段に相当する。
【００１９】
プロセッサ１１は主記憶２に格納されている命令およびデータに従い、演算および周辺回路３の起動制御を行う。プロセッサ１１が必要とするコードは、一旦キャッシュコントローラ１２で受け、キャッシュメモリ１３に含まれているか否かを確認する。キャッシュメモリ１３に含まれていればキャッシュヒットと判断し、キャッシュメモリ１３からデータを取り出し、プロセッサ１１へ返す。そうでなければ主記憶２から取り出し、プロセッサ１１へ返すとともに次のアクセスに備えてキャッシュメモリ１３にも格納する。一般に、キャッシュメモリ１３のアクセス性能は高く、キャッシュメモリ１３にプロセッサ１１が要求するコードが入っていれば、プロセッサ１１は高速に処理できる。
【００２０】
一方、プロセッサ１１は周辺回路３の動作を管理している。プロセッサ１１は周辺回路３の動作に必要な前設定を行い、起動する。周辺回路３は設定に従って動作し、動作完了時は、レジスタに動作状態を残してプロセッサ１１が処理終了を認識できるようにするか、もしくは割込み信号を発生しプロセッサ１１へ通知する。
【００２１】
図２は、一般的な暗号処理装置の電力推移を示す説明図であり、上記のような装置動作において、電力的には図２のように推移する。すなわち、プロセッサ１１が新しいプログラムを実行するとき、最初はキャッシュメモリ１３には該当するコードは入っていないため、キャッシュコントローラ１２はキャッシュミスと判断し、主記憶２へデータを取りに行く。この間プロセッサ１１は処理を中断しているため、内部演算回路は動作せず、またキャッシュメモリ１３のアクセスも停止している。クロックと一部のステートマシンが動作しているだけなのでプロセッサ１１、キャッシュコントローラ１２、キャッシュメモリ１３を含めたＣＰＵコア１の消費電力は低い。一方、主記憶２は頻繁にアクセスされるため、消費電力は高い状態にある。（図２におけるキャッシュミスの期間）
【００２２】
しばらくすると、プロセッサ１１は前に読み出したコードを再実行することになる。この時、キャッシュメモリ１３にコードが残っていれば、キャッシュヒットとして高速動作する。プロセッサ１１およびキャッシュメモリ１３は高速動作となるため、ＣＰＵコアの消費電力は高くなる。一方、主記憶２はアクセス頻度が減少するため、電力は減少する。（図２におけるキャッシュヒットの期間）
【００２３】
次に、プロセッサ１１は周辺回路の起動処理に入る。ここまで動作していなかった周辺回路３の消費電力は低い状態であったが、プロセッサ１１からのアクセスにより、処理開始され、消費電力が高くなる。プロセッサ１１は、他に処理がなければ周辺回路３のレジスタを周期的にアクセスして動作状況をモニタする、あるいは周辺回路３自身の完了割込み発生を受けるまでは動作停止する。この時のＣＰＵコア１および主記憶２の消費電力は低い。（図２における周辺回路動作の期間）
【００２４】
一般に、ＣＰＵコア１の電力、主記憶２の電力、周辺回路３の消費電力はそれぞれ独立しているため、前述動作の各フェーズでチップの消費電力合計は変化する。すなわち、キャッシュミスの電力変動により、コードのサイズやループの回数がわかり、周辺回路動作中の電力変動により、例えばプログラムとして暗号処理を行う場合、暗号回路の動作頻度がわかるといった危険があり、セキュリティ面が弱くなる。
【００２５】
そこで、本実施の形態１では、キャッシュコントローラ１２のキャッシュヒット／ミス判定情報およびバス情報を電力変動検知手段４に取り入れる。
図３は、電力変動検知手段４の内部回路の構成を示す説明図である。上記各情報は、周辺回路電力レジスタ４２、ＣＰＵ電力レジスタ４３、主記憶電力レジスタ４４に格納される。また、４１はアドレスデコーダである。
図４は、本実施の形態１における暗号処理装置の電力推移を示す説明図であり、キャッシュミス、キャッシュヒット、周辺回路動作の全ての状態において、電力値が図２におけるキャッシュヒットのＣＰＵコア電力値と主記憶電力値とを加えた値となるように調整する場合を示している。
【００２６】
図３及び図４を用いて、動作について説明する。
上記初期のキャッシュミスの際には、ＣＰＵ電力レジスタ４３は１にセットされたままで、主記憶電力レジスタ４４は１にセット、周辺回路電力レジスタ４２は０にセットされる。これは、ＣＰＵ電力は中間、主記憶電力は大、周辺回路の電力は小の状態を示す。各レジスタの内容は、制御手段５に通知される。主記憶電力レジスタ４４のセット情報は、主記憶電力大を示す電圧変更通知として電圧変換手段５１に通知される。電圧変換手段５１は、主記憶電力大を示す電圧変更通知を受けると、主記憶電力大に対応する電圧値を主記憶２に通知し、主記憶２の電源電圧を上昇させる。また、周辺回路電力レジスタ４２のセット情報は、周辺回路電力小を示す周辺クロック変更通知としてクロック変換手段５２に通知される。クロック変換手段５２は、周辺回路電力小を示す周辺クロック変更通知を受けると、周辺回路電力小に対応する周辺クロック周波数を周辺回路３に通知し、周辺回路３の周辺クロックを停止あるいは周波数を下げる。以上により、チップ電力は、主記憶２の消費電力が増大し、周辺回路３の消費電力が減少する。電圧変換手段５１より通知する電圧値およびクロック変換手段５２より通知する周辺クロック周波数は予め、チップ総電力が所定の電力値になるように調整し、電圧変換手段５１、クロック変換手段５２に設定しておく。（図４におけるキャッシュミスの期間）
【００２７】
次に、キャッシュヒットの際には、ＣＰＵ電力レジスタ４３は２にセット、主記憶電力レジスタ４４は０にセットされ、周辺回路電力レジスタ４２は０にセットされたままである。これは、ＣＰＵ電力は大、主記憶電力は小、周辺回路電力は小の状態を示す。各レジスタの内容は、同様に制御手段５に通知される。ＣＰＵ電力レジスタ４３のセット情報は、ＣＰＵ電力大を示すＣＰＵクロック変更通知としてクロック変換手段５２に通知される。クロック変換手段５２は、ＣＰＵ電力大を示すＣＰＵクロック変更通知を受けると、ＣＰＵ電力大に対応するＣＰＵクロック周波数をＣＰＵコア１に通知し、ＣＰＵコア１のＣＰＵクロックの周波数を上げる。また、主記憶電力レジスタ４４のセット情報は上記の場合と同様に電圧変換手段５１に通知され、電力変換手段５１は主記憶電力小に対応する電圧値を主記憶２に通知し、クロック変換主記憶２の電圧を減少させる。以上により、チップ電力は、ＣＰＵコア１の消費電力が増大し、主記憶２の消費電力が減少する。電圧変換手段５１の電圧値およびクロック変換手段５２のＣＰＵクロック周波数は予め、チップ総電力が所定の電力値になるように、すなわち上記キャッシュミスの期間と同一の電力値になるように調整し、電圧変換手段５１、クロック変換手段５２に設定しておく。（図４におけるキャッシュヒットの期間）
【００２８】
そして、周辺回路動作の際には、ＣＰＵ電力レジスタ４３は０にセット、周辺回路電力レジスタ４２は１にセットされ、主記憶電力レジスタ４４は０にセットされたままである。これは、ＣＰＵ電力は小、主記憶電力は小、周辺回路電力は大の状態を示す。各レジスタの内容は、同様に制御手段５に通知される。ＣＰＵ電力レジスタ４３のセット情報は上記の場合と同様にクロック変換手段５２に通知され、クロック変換手段５２はＣＰＵ電力小に対応するＣＰＵクロック周波数をＣＰＵコア１に通知し、ＣＰＵコア１のＣＰＵクロックを停止あるいは周波数を下げる。また、周辺回路電力レジスタ４２のセット情報は上記の場合と同様にクロック変換手段５２に通知され、クロック変換手段５２は周辺回路電力大に対応する周辺クロック周波数を周辺回路３に通知し、周辺回路３の周辺クロックの周波数を上げる。以上により、チップ電力は、ＣＰＵコア１の消費電力が減少し、周辺回路３の消費電力が増大する。クロック変換手段５２のＣＰＵクロック周波数および周辺クロック周波数は予め、チップ総電力が所定の電力値になるように、すなわち上記キャッシュミスの期間と同一の電力値になるように調整し、クロック変換手段５２に設定しておく。（図４における周辺回路動作の期間）
【００２９】
以上説明したように、キャッシュミスの期間、キャッシュヒットの期間、周辺回路動作期間、それぞれの期間において、ＣＰＵコア１、主記憶２、周辺回路３、それぞれが必要とする電力を検知し、チップ総電力が所定の電力値になるようにすることにより、低電力で、かつ電力変動を測定することによる暗号解読を防止することができる。
【００３０】
なお、本実施の形態１では、ＣＰＵクロック変更通知として３値、周辺クロック変更通知として２値、電圧変更通知として２値を用いているが、これに限られず、他の値を用いても同様の効果を得ることができる。
【００３１】
実施の形態２．
上記実施の形態１では、電圧変換手段５１あるいはクロック変換手段５２が、周辺回路電力レジスタ４２等のレジスタからの通知を受け、その通知に対応するクロック周波数あるいは電圧値を、ＣＰＵコア１や主記憶２や周辺回路３に通知する場合について説明したが、本実施の形態２では、ＣＰＵコア１等に通知するクロック周波数あるいは電圧値を微調整する場合について説明する。
【００３２】
図３で説明したように、例えば周辺回路３の場合では、チップ総電力が所定の電力値になるように、予め周辺回路電力大、小それぞれに対応する周辺クロック周波数をクロック変換手段５２に調整、設定しておき、クロック変換手段５２が周辺回路電力レジスタ４２からの通知に基づいて適切な周辺クロック周波数を周辺回路３に通知する。しかし、この場合周辺回路電力大、小それぞれに対応する周辺クロック周波数は、クロック変換手段５２にある値で設定済みのため、動作環境の変動等により、チップ総電力が所定の電力値からずれた場合には再調整が困難という問題があった。
【００３３】
そこで、本実施の形態２では、調整用レジスタを設けることにより、チップ製造後でもクロック周波数や電圧値の微調整を可能とする場合について説明する。図５は、本実施の形態２における電力変動検知手段４の内部回路の構成を示す説明図である。図５において、４５は周辺回路変更周波数レジスタ４５ａ、ＣＰＵ変更周波数レジスタ４５ｂ、主記憶変更電力４５ｃからなる調整用レジスタ、４６は４６ａ〜４６ｃからなるセレクタである。各セレクタ４６ａ〜４６ｃに入力される標準周波数や標準電圧値は、実施の形態１の図１における電圧変換手段５１やクロック変換手段５２に予め設定しておく値と同一である。その他同じ符号を付したものは図３と同様のため、説明は省略する。
【００３４】
図５を用いて動作について説明する。例えば、周辺回路動作の期間においてチップ総電力が所定の電力値より高くなったため、周辺回路電力大のときの周辺クロックを低くして微調整を行なう場合について説明する。なお、チップ総電力が所定の電力値よりずれたか否かはＣＰＵコア１が監視しているものとする。
チップ総電力が所定の電力値より高くなったため、周辺回路電力大のときの周辺クロックを低くするという情報は、ＣＰＵコア１より周辺回路変更周波数レジスタ４５ａに通知される。周辺回路変更周波数レジスタ４５ａは、このＣＰＵコア１からの通知に基づいて変更周波数をセレクタ４６ａに出力する。例えば、周辺回路変更周波数レジスタ４５ａは、αＨｚの周波数幅でプラスとマイナス２段階ずつの周波数を保持、つまり、−２αＨｚ、−αＨｚ、＋αＨｚ、＋２αＨｚの周波数を保持し、ＣＰＵコア１からの通知に基づいて、変更周波数を選択し、セレクタ４６ａに出力する。
【００３５】
一方、周辺回路電力レジスタ４２のセット情報は、周辺回路電力大を示す周辺クロック変更通知としてセレクタ４６ａに通知される。セレクタ４６ａには、変更前の標準周波数も入力され、さらに上記周辺回路変更周波数レジスタ４５ａからの変更周波数も入力される。セレクタ４６ａは、周辺回路電力レジスタ４２、周辺回路変更周波数レジスタ４５ａからの入力と標準周波数とから、周辺回路電力大に対応する標準周波数に対して変更周波数の変更を含めた変更後の周波数を、周辺クロック変更通知としてクロック変換手段５２に通知する。クロック変換手段５２は、通知された変更後の周波数を周辺回路３に通知し、周辺回路３の周辺クロックを変更後の周波数に上げる。その他の動作については、上記実施の形態１と同様のため、説明は省略する。
【００３６】
以上説明したように、微調整用の電圧値を複数保持したレジスタを備え、チップ総電力が所定の電力値よりずれた場合、前記レジスタのうち適切なレジスタを選択することにより、チップ総電力が所定の電力値からずれた場合にも容易に再調整を行なうことができる。
【００３７】
なお、本実施の形態２では、周辺回路動作の期間においてチップ総電力が所定の電力値より高くなったため、周辺回路電力大のときの周辺クロックを低くして微調整を行なう場合について説明したが、高く微調整する場合や周辺回路電力小の場合も同様であり、また、ＣＰＵコア１や主記憶２のクロックや電圧値を微調整する場合も、同様の効果を得ることができる。
【００３８】
また、主記憶の電力制御には、電源電圧のほかに閾値電圧を変更することで制御することもできる。この場合、電力変動検知手段４における主記憶電力レジスタ４４が１にセットされた場合、閾値電圧を下降させることによって活性化および電力増大し、閾値電圧を上昇させることによって非活性化および電力低減することができる。
【００３９】
また、本実施の形態２では、電力変動検知手段４内に調整用レジスタ４５を備える場合について説明したが、図６に示すように電力変動検知手段４と別に設けてもよく、これに限られない。
【００４０】
実施の形態３．
上記実施の形態１では、プログラムとして暗号処理を行なう暗号処理装置の場合について説明したが、本実施の形態３では、暗号回路を備えた暗号処理装置の場合について説明する。
【００４１】
図７は、本実施の形態３における暗号処理装置の構成を示す説明図である。図７において、１１はバス、７はＣＰＵコア、８はクロック発振器、９は制御手段、１０は暗号回路である。また、制御手段９は、シーケンス制御回路９１、間引き制御回路９２、間引きパターンレジスタ９３、遅延レジスタ９４を備える。
なお、制御手段９が電力検知手段及び電力調整手段に相当する。
【００４２】
クロック発振器８は基本クロックを制御手段９へ供給し、制御手段９はＣＰＵコア７へクロックを供給する。ＣＰＵコア７はバス６経由で制御手段９および暗号回路１０の制御を行う。
上記実施の形態１と同様に、チップ総電力が常に所定の電力値になるように動作する。
【００４３】
ＣＰＵコア７によりバス６を介して暗号回路１０の動作開始が指示されると、暗号回路１０はシーケンス制御回路９１に対する暗号処理動作起動の要求信号を有効にする。暗号処理動作起動の要求を受けたシーケンス制御回路９１は、暗号回路１０に許可信号を出力すると同時に、ＣＰＵコア７の電力を低減させるため、間引き制御回路９２にクロックの低下を指示、例えばクロックの間引き処理を指示する。間引き指示を受けた間引き制御回路９２は、所定の値に間引きしたクロックをＣＰＵコア７に出力する。これによりＣＰＵコア７の電力が所定の値に低減される。暗号回路１０は、暗号処理動作を終了する場合、要求信号を無効にする。シーケンス制御回路９１は、この暗号回路１０の動作に基づいて間引き制御回路９２に対して間引き終了の指示を行ない、間引き制御回路９２は間引きのないクロックへ復帰する。
なお、間引き指示を受けた間引き制御回路９２は所定の値に間引きしたクロックをＣＰＵコア７に出力するが、所定の値の間引きクロックは予め、チップ総電力が所定の電力値になるように調整し、間引き制御回路９２に設定しておく。
【００４４】
以上説明したように、暗号回路からの暗号処理動作起動の要求に基づいてＣＰＵコアのクロックを間引きすることにより、低電力で、かつ電力変動を測定することによる暗号解読を防止することができる。
【００４５】
なお、本実施の形態３では、所定の値の間引きクロックは予め、チップ総電力が所定の電力値になるように調整し、間引き制御回路９２に設定しておく場合について説明したが、実施の形態２の場合と同様に、間引きパターンレジスタ９３を設けて、間引きクロックの値を微調整するようにしてもよい。
例えば、図８のような複数の間引きクロックの値を間引きパターンレジスタ９３に保持しておき、間引きクロックの値を微調整する。これにより、精度のよい電力制御を実現することができる。
【００４６】
また、本実施の形態３では、シーケンス制御回路９１が暗号回路１０からの暗号処理動作の起動要求に基づいて、暗号回路１０に許可信号を出力すると同時に、間引き制御回路９２にクロックの間引き処理を指示する場合について説明したが、ＣＰＵコア７の立ち下がり（立ち上がり）と暗号回路１０の立ち上がり（立ち下がり）とを考慮して、遅延レジスタ９４を設けてもよい。上記間引きクロックの値の微調整と同様に、暗号回路１０に許可信号を出力するタイミングと間引き制御回路９２にクロックの間引き処理を指示するタイミングとの組み合わせを複数遅延レジスタ９４に保持しておき、ＣＰＵコア７の立ち下がり（立ち上がり）と暗号回路１０の立ち上がり（立ち下がり）のときのチップ総電力が所定の電圧値に近付くよう、処理の指示タイミングを微調整する。これにより、精度のよい電力制御を実現することができる。
なお、チップ総電力を所定の電力値に近付けるためにどのタイミングを選択すべきかは、ＣＰＵコア１が監視しているものとする。
【００４７】
また、図８のＷ−５はＷ−４と同じ比率でクロックパルスを抜いた例であるが、クロックパルスを抜いた期間は高電位側を維持している。Ｗ−４はクロックパルスを抜いた期間は低電位側を維持しているが、Ｗ−４形式とＷ−５形式を交互に使用して高電位の期間と低電位の期間とを均一にすることにより、クロックの直流成分をなくすことができる効果がある。
【００４８】
また、本実施の形態３では、ＣＰＵコア７の電力を所定の値に低減するのに、ＣＰＵコア７に出力するクロックを所定の値に間引きする場合について説明したが、ＣＰＵコア７の電力を所定の値に低減できればこれに限られず、周波数を下げたり、クロックを停止する等の処理を行なっても同様の効果を得ることができる。
【００４９】
実施の形態４．
上記実施の形態３では、暗号回路１０からの暗号処理動作起動の要求に基づいてＣＰＵコア７のクロックを間引きする場合について説明したが、本実施の形態４では、電流値に基づいてＣＰＵコア７のクロックを間引きする場合について説明する。
図９は、本実施の形態４における暗号処理装置の構成を示す説明図である。図９において、２１は電源端子、２２は電流監視回路である。その他同じ符号を付したものは図７と同様のため、説明は省略する。
なお、電流監視回路２２が電力検知手段に相当し、制御手段９が電力調整手段に相当する。
【００５０】
上記実施の形態３と同様に、チップ総電力が常に所定の電力値になるように動作する。
暗号回路１０により暗号処理が開始されると、暗号回路１０が動作する前と比較して、電流値が高くなる。このため、電流監視回路２２により電流値を監視し、超過電流を検知すると、電流監視回路２２は、間引き制御回路９２にクロックの間引き処理を指示する。間引き指示を受けた間引き制御回路９２は、所定の値に間引きしたクロックをＣＰＵコア７に出力する。これによりＣＰＵコア７の電力が所定の値に低減される。
また、暗号回路１０による暗号処理が終了すると、暗号回路１０の動作中と比較して、電流値が低くなる。このため、電流監視回路２２により電流値を監視し、所定電流値を下回る電流値を検知すると、電流監視回路２２は、間引き制御回路９２に間引きのないクロックへの復帰を指示する。これにより、ＣＰＵコア７の電力値は、暗号回路１０による暗号処理開始前に戻り、チップ総電力が常に所定の電力値に保たれる。
【００５１】
また、上記電流監視回路２２の代わりに電圧監視回路を設け、電流が大きくなると電源回路の遅れにより一時的に電圧が低下することを検出し、ＣＰＵクロックパルスの間引きを実施することによって、チップ総電力を常に所定の電力値に保つことができる。
【００５２】
以上説明したように、電流値あるいは電圧値の変化に基づいてＣＰＵコアのクロックを間引きすることにより、低電力で、かつ電力変動を測定することによる暗号解読を防止することができる。
【００５３】
なお、上記実施の形態３の場合と同様に、間引きパターンレジスタ９３を設け、間引きクロックの値を微調整することにより、精度のよい電力制御を実現することができる。
【００５４】
また、本実施の形態４では、ＣＰＵコア７の電力を所定の値に低減するのに、ＣＰＵコア７に出力するクロックを所定の値に間引きする場合について説明したが、ＣＰＵコア７の電力を所定の値に低減できればこれに限られず、周波数を下げたり、クロックを停止する等の処理を行なっても同様の効果を得ることができる。
【００５５】
なお、上記実施の形態１〜４では、電力変動を測定することによる暗号解読を防止することのできる暗号処理装置について説明したが、電力変動を測定することによる解読を防止する場合であれば暗号処理装置に限られず、他の装置であっても同様の効果を得ることができる。
【００５６】
【発明の効果】
以上のように、複数のハードウェアを備えた暗号処理装置において、前記複数のハードウェアの動作に基づいて所定の複数の動作期間に分け、それぞれの動作期間においてそれぞれのハードウェアが必要とする電力を検知する電力検知手段と、前記電力検知手段により検知したそれぞれのハードウェアの電力に基づき、かつそれぞれのハードウェアの総電力が前記所定の複数の動作期間において同一となるように、前記それぞれのハードウェアの電力を調整する電力調整手段とを備えることにより、低電力で、かつ電力変動を測定することによる暗号解読を防止することができるという効果がある。
【図面の簡単な説明】
【図１】実施の形態１における暗号処理装置の構成を示す説明図
【図２】一般的な暗号処理装置の電力推移を示す説明図
【図３】電力変動検知手段４の内部回路の構成を示す説明図
【図４】実施の形態１における暗号処理装置の電力推移を示す説明図
【図５】実施の形態２における電力変動検知手段４の内部回路の構成を示す説明図
【図６】実施の形態２における暗号処理装置の構成を示す説明図
【図７】実施の形態３における暗号処理装置の構成を示す説明図
【図８】ＣＰＵクロックの間引きパターンの例を示す説明図
【図９】実施の形態４における暗号処理装置の構成を示す説明図
【符号の説明】
１　ＣＰＵコア
２　主記憶
３　周辺回路
４　電力変動検知手段
５　制御手段
６　バス
７　ＣＰＵコア
８　クロック発振器
９　制御手段
１０　暗号回路
１１　プロセッサ
１２　キャッシュコントローラ
１３　キャッシュメモリ
２１　電源端子
２２　電流監視回路
４１　アドレスデコーダ
４２　周辺回路電力レジスタ
４３　ＣＰＵ電力レジスタ
４４　主記憶電力レジスタ
４５　調整用レジスタ
４６　セレクタ
５１　電圧変換手段
５２　クロック変換手段
９１　シーケンス制御回路
９２　間引き制御回路
９３　間引きパターンレジスタ
９４　遅延レジスタ
【図１】
2004056363.tif 000003
【図２】
2004056363.tif 000004
【図３】
2004056363.tif 000005
【図４】
2004056363.tif 000006
【図５】
2004056363.tif 000007
【図６】
2004056363.tif 000008
【図７】
2004056363.tif 000009
【図８】
2004056363.tif 000010
【図９】
2004056363.tif 000011