(57)【要約】【課題】情報処理装置の安全性を向上することができる技術を提供する。【解決手段】攻撃検出装置１は電源指紋認証部２０と電圧攻撃検出部３０と処理部１０とを備える。電圧攻撃検出部３０は、第１処理および第２処理をこの順に実行する情報処理装置６、および、電源回路５を互いに接続する電源ラインＬ１に印加される電源電圧に生じた、攻撃による電圧異常を検出する。電源指紋認証部２０は、電源ラインＬ１を流れる電源電流を、情報処理装置６による第１処理の実行中に検出し、電源電流の時系列変化を示す電流パターンが、第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行う。処理部１０は、電圧異常の検出という第１条件、または、第１類否判定の結果おいて、電流パターンが基準パターンと類似していないという第２条件が成立したときに、情報処理装置６による第２処理の実行を禁止する。【選択図】図１
2020187443.tif 000002
【特許請求の範囲】
【請求項１】
第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出する電圧攻撃検出部と、
前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行う電源指紋認証部と、
前記電圧攻撃検出部による前記電圧異常の検出という第１条件、または、前記第１類否判定の結果おいて、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置による前記第２処理の実行を禁止する処理部と
を備える、攻撃検出装置。
【請求項２】
第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出する電圧攻撃検出部と、
前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行う電源指紋認証部と、
前記電圧攻撃検出部による前記電圧異常の検出という第１条件、または、前記第１類否判定の結果おいて、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置が攻撃を受けていると判定する処理部と
を備える、攻撃検出装置。
【請求項３】
前記電圧攻撃検出部、前記電源指紋認証部および前記処理部は、前記情報処理装置とは異なるチップである、請求項１または請求項２に記載の攻撃検出装置。
【請求項４】
前記電源指紋認証部は、
前記情報処理装置が前記第１処理を実行しているときに、前記電源電流を検出し、
前記情報処理装置が前記第２処理を実行しているときに、前記電源電流を検出しない、請求項１から請求項３のいずれか一つに記載の攻撃検出装置。
【請求項５】
前記電圧攻撃検出部は、前記電源指紋認証部が前記電源電流を検出する期間において前記電源電圧を検出する、請求項１から請求項４のいずれか一つに記載の攻撃検出装置。
【請求項６】
前記第１処理は秘密情報を用いた処理であり、
前記第２処理は秘密情報を用いない処理である、請求項４または請求項５に記載の攻撃検出装置。
【請求項７】
前記情報処理装置と通信する通信部をさらに備え、
前記第１処理は、電源の投入に応答して実行される通信確立処理を含み、
前記電源指紋認証部は、前記電源の投入に応答して前記電源電流の検出を開始し、前記電流パターンを取得する、請求項１から請求項６のいずれか一つに記載の攻撃検出装置。
【請求項８】
前記情報処理装置と通信する通信部と、
暗号復号器と
をさらに備え、
前記情報処理装置は、前記第１処理の実行期間を示す期間信号に対して暗号化処理を実行して暗号期間信号を生成し、生成した前記暗号期間信号を前記通信部に送信し、
前記暗号復号器は、前記通信部を介して受信した前記暗号期間信号に対して復号処理を実行して前記期間信号を生成し、
前記電源指紋認証部は、復号した前記期間信号に基づいて、前記実行期間において前記電源電流を検出し、前記電流パターンを取得する、請求項１から請求項７のいずれか一つに記載の攻撃検出装置。
【請求項９】
前記情報処理装置は、前記期間信号とは異なるダミー信号に対して暗号化処理を実行して暗号ダミー信号を生成し、前記暗号ダミー信号を前記通信部に送信する、請求項８に記載の攻撃検出装置。
【請求項１０】
前記情報処理装置は、前記第１処理の実行期間以外の所定期間を示すダミー期間信号を暗号化して暗号ダミー期間信号を生成し、前記暗号ダミー期間信号を前記通信部に送信し、
前記暗号復号器は、前記通信部を介して受信した前記暗号ダミー期間信号を復号して前記ダミー期間信号を生成し、
前記電源指紋認証部は、前記ダミー期間信号によって示される前記所定期間において前記電源電流を検出し、前記所定期間における前記電流パターンがダミー基準パターンと類似するか否かの第２類否判定を行う、請求項８に記載の攻撃検出装置。
【請求項１１】
前記処理部は、前記第２類否判定の結果によらず、前記情報処理装置による前記第２処理の実行を禁止しない、請求項１０に記載の攻撃検出装置。
【請求項１２】
前記情報処理装置は、乱数を生成し、前記第１処理の開始タイミングを前記乱数に基づいて決定する、請求項８から請求項１１のいずれか一つに記載の攻撃検出装置。
【請求項１３】
前記暗号期間信号は、前記第１処理を開始する際に前記通信部に送信される暗号開始信号と、前記第１処理を終了する際に前記通信部に送信される暗号終了信号とを含み、
前記暗号開始信号の送信タイミングは、前記乱数に基づいて決定された前記開始タイミングに応じて変化し、
前記電源指紋認証部は、前記通信部を介して受信した前記暗号開始信号の受信に応答して前記電源電流の検出を開始して、前記電流パターンを取得する、請求項１２に記載の攻撃検出装置。
【請求項１４】
前記暗号期間信号は、前記第１処理を開始する際に前記通信部に送信される暗号開始信号と、前記第１処理を終了する際に前記通信部に送信される暗号終了信号とを含み、
前記情報処理装置は、
前記乱数に対して所定の関数を適用して遅延時間を算出し、
前記乱数に対して暗号化処理を実行して暗号乱数信号を生成し、前記第１処理を開始する際に、所定の送信タイミングで前記暗号開始信号および前記暗号乱数信号を前記通信部に送信し、
前記送信タイミングから前記遅延時間が経過したときに前記第１処理を開始し、
前記暗号復号器は、前記通信部を介して受信した前記暗号開始信号および前記暗号乱数信号に対して復号処理を実行して、開始信号および前記乱数を生成し、
前記処理部は、前記乱数に前記所定の関数を適用して前記遅延時間を算出し、
前記電源指紋認証部は、前記暗号開始信号および前記暗号乱数信号の受信から前記遅延時間が経過したときに、前記電源電流の検出を開始して前記電流パターンを取得する、請求項１２に記載の攻撃検出装置。
【請求項１５】
前記電圧攻撃検出部による前記電圧異常の検出の回数を記憶する不揮発性の記憶部をさらに備え、
前記第１条件は、前記記憶部に記憶された前記回数が回数基準値よりも大きいという条件を含む、請求項１から請求項１４のいずれか一つに記載の攻撃検出装置。
【請求項１６】
前記電圧異常は、前記電源電圧に生じるグリッチ、または、前記電源電圧が前記グリッチの期間よりも長い期間に亘って正常値以外の値を維持する異常電圧レベルを含む、請求項１から請求項１５のいずれか一つに記載の攻撃検出装置。
【請求項１７】
第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出し、
前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行い、
前記電圧異常の検出という第１条件、または、前記第１類否判定の結果において、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置による前記第２処理の実行を禁止する、攻撃検出方法。
【請求項１８】
第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出し、
前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行い、
前記電圧異常の検出という第１条件、または、前記第１類否判定の結果において、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置が攻撃を受けていると判定する、攻撃検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、攻撃検出装置および攻撃検出方法に関する。
【背景技術】
【０００２】
特許文献１には、半導体集積回路に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４８８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
回路等を含む情報処理装置については、その安全性の向上が望まれる。
【０００５】
そこで、本願は、情報処理装置の安全性を向上することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
攻撃検出装置の第１の態様は、第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出する電圧攻撃検出部と、前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行う電源指紋認証部と、前記電圧攻撃検出部による前記電圧異常の検出という第１条件、または、前記第１類否判定の結果おいて、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置による前記第２処理の実行を禁止する処理部とを備える。
【０００７】
攻撃検出装置の第２の態様は、第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出する電圧攻撃検出部と、前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行う電源指紋認証部と、前記電圧攻撃検出部による前記電圧異常の検出という第１条件、または、前記第１類否判定の結果おいて、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置が攻撃を受けていると判定する処理部とを備える。
【０００８】
攻撃検出方法の第１の態様は、第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出し、前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行い、前記電圧異常の検出という第１条件、または、前記第１類否判定の結果において、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置による前記第２処理の実行を禁止する。
【０００９】
攻撃検出方法の第２の態様は、第１処理および第２処理をこの順に実行する情報処理装置、および、電源回路を互いに接続する電源ラインに印加される電源電圧に生じた、攻撃による電圧異常を検出し、前記電源ラインを流れる電源電流を、前記情報処理装置による前記第１処理の実行中に検出し、前記電源電流の時系列変化を示す電流パターンが、前記第１処理に対応して予め設定された基準パターンと類似しているか否かを判定する第１類否判定を行い、前記電圧異常の検出という第１条件、または、前記第１類否判定の結果において、前記電流パターンが前記基準パターンと類似していないという第２条件が成立したときに、前記情報処理装置が攻撃を受けていると判定する。
【発明の効果】
【００１０】
情報処理装置の安全性を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】電子機器の構成の一例を概略的に示す図である。
【図２】情報処理装置の電気的な構成の一例を概略的に示す図である。
【図３】攻撃が行われた電子機器の構成の一例を概略的に示す図である。
【図４】攻撃が行われた電子機器の構成の他の一例を概略的に示す図である。
【図５】情報処理装置を流れる電源電流の電流パターン、および、不正負荷回路を流れる電源電流の電流パターンの一例を概略的に示すグラフである。
【図６】攻撃検出装置の内部構成の一例を概略的に示す図である。
【図７】電子機器の動作の一例を示すフローチャートである。
【図８】電流パターンおよび基準パターンの一例を概略的に示すグラフである。
【図９】電子機器の動作の他の一例を示すフローチャートである。
【図１０】電流パターンおよび基準パターンの他の一例を概略的に示すグラフである。
【図１１】電流パターンおよび基準パターンの一例を概略的に示すグラフである。
【図１２】電子機器の動作の他の一例を示すフローチャートである。
【図１３】電子機器の動作の他の一例を示すフローチャートである。
【図１４】電子機器の動作の他の一例を示すフローチャートである。
【図１５】攻撃が行われた電子機器の構成の他の一例を概略的に示す図である。
【図１６】電子機器および不正電源回路の動作のタイミングの一例を概略的に示す図である。
【図１７】電子機器の動作の他の一例を示すフローチャートである。
【図１８】電子機器および不正電源回路の動作のタイミングの一例を概略的に示す図である。
【図１９】攻撃検出装置の内部構成の一例を概略的に示す図である。
【図２０】電子機器の動作の他の一例を示すフローチャートである。
【図２１】電子機器および不正電源回路の動作のタイミングの一例を概略的に示す図である。
【図２２】攻撃検出装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
第１の実施の形態．
図１は、電子機器１００の構成の一例を概略的に示す図である。電子機器１００は、攻撃検出装置１と、電源回路５と、情報処理装置６とを含んでいる。
【００１３】
情報処理装置６は、例えば、スマートフォン等の携帯電話機、タブレット端末、パーソナルコンピュータ、ウェアラブル機器、ゲーム機器、プロジェクタ、カーナビゲーション装置等の車載機器、ドローン機器あるいはＩｏＴ（Internet of Things）端末などにおいて使用することが可能な回路である。この情報処理装置６は不正な第三者によって攻撃され得る。
【００１４】
情報処理装置６は電源ラインＬ１を介して電源回路５に接続されている。換言すれば、電源ラインＬ１は情報処理装置６および電源回路５を互いに接続する。電源回路５は不図示の電源（例えば商用電源またはバッテリ）に接続される。電源回路５には、当該電源から入力電圧が入力される。電源回路５はこの入力電圧を所定の電圧範囲の電源電圧に変換し、当該電源電圧を、電源ラインＬ１を介して情報処理装置６に出力する。情報処理装置６はこの電源電圧に基づいて動作する。情報処理装置６が動作することにより、電源ラインＬ１には電源電流が流れる。
【００１５】
攻撃検出装置１は電源ラインＬ１の電源電圧および電源電流をモニタすることにより、情報処理装置６への攻撃を検出する。攻撃の検出方法については、後に詳述する。
【００１６】
図１に例示するように、攻撃検出装置１は通信ラインＬ２を介して情報処理装置６に接続されていてもよい。この場合、攻撃検出装置１は通信ラインＬ２を介して情報処理装置６と通信する。例えば、攻撃検出装置１は情報処理装置６に対する攻撃を検出したときに、通信ラインＬ２を介して攻撃検出信号を情報処理装置６に送信する。攻撃検出信号は、情報処理装置６が攻撃を受けていることを示す信号である。情報処理装置６は攻撃検出信号の受信に応答して、例えば動作を停止してもよい。これにより、攻撃によって第三者が享受する不正な利益を低減することができる。
【００１７】
なお、図１の例では、攻撃検出装置１および情報処理装置６は有線（通信ラインＬ２）で互いに通信するものの、無線により互いに通信しても構わない。ここでは一例として、攻撃検出装置１および情報処理装置６は通信ラインＬ２を介して互いに通信する。
【００１８】
図１に例示するように、攻撃検出装置１はクロックラインＬ３を介して情報処理装置６に接続されていてもよい。この場合、攻撃検出装置１はクロックラインＬ３を介してクロック信号を情報処理装置６に出力する。情報処理装置６はこのクロック信号に基づいて動作する。攻撃検出装置１は情報処理装置６に対する攻撃を検出したときに、クロック信号の出力を停止してもよい。クロック信号の停止により、情報処理装置６は動作を停止する。これによっても、攻撃によって第三者が享受する不正な利益を低減することができる。
【００１９】
また、攻撃検出装置１は不図示のリセットラインを介して情報処理装置６に接続されていてもよい。この場合、攻撃検出装置１はリセットラインを介して情報処理装置６にリセット信号を出力することができる。攻撃検出装置１は情報処理装置６に対する攻撃を検出したときに、情報処理装置６にリセット信号を出力してもよい。リセット信号の入力に応答して、情報処理装置６は動作を初期化する。これによっても、攻撃によって第三者が享受する不正な利益を低減することができる。
【００２０】
次に、情報処理装置６の内部構成の詳細な一例について説明する。図２は、情報処理装置６の電気的な構成の一例を概略的に示す図である。情報処理装置６は、通信部６１と、制御部６２と、記憶部６３とを含んでいる。図２の例では、通信部６１、制御部６２および記憶部６３はバス６０を介して相互に接続されている。
【００２１】
通信部６１は通信回路または通信インターフェースとも呼ばれる。通信部６１は通信ラインＬ２を介して攻撃検出装置１に接続され、例えばＳＰＩ（Serial Peripheral Interface）またはＩ２Ｃ（Inter-Integrated Circuit）で、攻撃検出装置１と通信することができる。通信部６１は攻撃検出装置１に送信信号を送信することができ、また、攻撃検出装置１から受信信号を受信することができる。
【００２２】
記憶部６３は、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）などの、コンピュータが読み取り可能な記録媒体を含む。記憶部６３は、情報処理装置６を制御するための制御プログラムを記憶している。なお、記憶部６３は、ＲＯＭおよびＲＡＭ以外の、コンピュータが読み取り可能な非一時的な記録媒体を含んでいてもよい。記憶部６３は、例えば、小型のハードディスクドライブおよびＳＳＤ（Solid State Drive）などを含んでいてもよい。
【００２３】
制御部６２は、情報処理装置６の動作を統括的に管理することが可能である。制御部６２は制御回路であるとも言える。制御部６２は、例えば、ＣＰＵ（Central Processing Unit）と内部記憶部とを含んでいる。内部記憶部は、例えばＲＯＭおよびＲＡＭなどの記憶媒体を含んでおり、情報処理装置６を制御するためのプログラムを記憶している。制御部６２の各種機能は、当該ＣＰＵが内部記憶部および記憶部６３内のプログラムを実行することによって実現される。
【００２４】
なお、制御部６２は、複数のＣＰＵを含んでいてもよい。また制御部６２は、少なくとも一つのＤＳＰ（Digital Signal Processor）を含んでいてもよい。また制御部６２の全ての機能あるいは制御部６２の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【００２５】
制御部６２は複数の処理を行うことができる。これらの複数の処理には、攻撃対象処理および非攻撃対象処理が含まれる。攻撃対象処理とは、攻撃によって第三者が不正な利益を享受できる処理であり、非攻撃対象処理とは、攻撃によって得られる利益が少ない、あるいは、ほとんどない処理である。攻撃対象処理としては、秘匿性の高い秘密情報を用いた処理、具体的には、種々の認証処理、暗号化処理および復号処理を例示できる。これらの処理に対する攻撃の一例については後に述べる。非攻撃対象処理としては、秘密情報を用いない処理、例えば単なる画像処理などの処理を例示できる。以下、制御部６２が実行する複数の処理の例を簡単に説明し、その後、攻撃対象処理に対する攻撃の例を簡単に説明する。
【００２６】
例えば制御部６２は、記憶部６３に記憶された制御プログラムが正規なプログラムであるか否かを判定する認証処理を行うことができる。この認証処理は攻撃対象処理の一種であり、以下では、プログラム認証処理とも呼ぶ。プログラム認証処理のアルゴリズムとしては、任意のアルゴリズムを採用することができる。以下、その一例について概説する。
【００２７】
制御プログラムは署名情報を含んでいる。この署名情報には、予め、暗号化済みのハッシュ値が含まれている。このハッシュ値は、正規な制御プログラムに対して所定の第１ハッシュ関数を適用して算出された値である。よって、記憶部６３内の制御プログラムが不正なプログラムであれば、不正な制御プログラムに対して所定の第１ハッシュ関数を適用して算出されるハッシュ値と、署名情報に含まれるハッシュ値とは互いに相違する。そこで、制御部６２は両ハッシュ値を求め、両ハッシュ値を互いに比較することで、制御プログラムの当否を認証する。
【００２８】
具体的には、まず制御部６２は記憶部６３から制御プログラムを読み出し、その制御プログラムに対して所定の第１ハッシュ関数を適用して、ハッシュ値を算出する。以下では、このハッシュ値を第１ハッシュ値と呼ぶ。
【００２９】
情報処理装置６は、制御プログラムの署名情報を復号する機能を有している。具体的には、図２に例示するように、情報処理装置６は暗号復号器６４およびキーメモリ６５を含んでいる。図２の例では、暗号復号器６４およびキーメモリ６５はバス６０に接続されている。キーメモリ６５は、暗号化処理および復号処理において用いられる鍵を記憶する。キーメモリ６５は、記憶部６３よりも情報が漏れにくいセキュアなメモリであってもよい。
【００３０】
暗号復号器６４は、暗号化処理および復号処理を実行することができる。暗号復号器６４は、例えば制御部６２から入力された信号に対して、キーメモリ６５から読み出した鍵を用いて暗号化処理を実行して、暗号信号を生成する。暗号復号器６４は当該暗号信号を制御部６２に出力する。また暗号復号器６４は、例えば制御部６２から入力された暗号信号に対して、キーメモリ６５から読み出した鍵を用いて復号処理を実行して、平文の信号を生成する。暗号復号器６４は当該信号を制御部６２に出力する。暗号化処理および復号処理で用いるアルゴリズムとしては、任意のアルゴリズムを採用してもよいものの、例えばＡＥＳ（Advanced Encryption Standard）またはＲＳＡを採用できる。
【００３１】
暗号復号器６４は制御部６２から署名情報を受け取り、プログラム認証処理用の鍵をキーメモリ６５から読み出し、この鍵を用いて署名情報に対して復号処理を実行して、ハッシュ値を復号する。以下では、このハッシュ値を第２ハッシュ値と呼ぶ。暗号復号器６４は、当該第２ハッシュ値を制御部６２に出力する。
【００３２】
制御部６２は第１ハッシュ値が第２ハッシュ値と一致しているか否かを判定する。第１ハッシュ値が第２ハッシュ値と一致しているときには、制御部６２は制御プログラムが正規なプログラムであると判定する。つまり、制御部６２はプログラム認証が成功したと判定する。一方で、第１ハッシュ値が第２ハッシュ値と異なっているときには、制御部６２は制御プログラムが不正なプログラムであると判定する。つまり、制御部６２はプログラム認証が失敗したと判定する。このとき、制御部６２は動作を終了してもよい。
【００３３】
以上のようにして、制御部６２はプログラム認証処理を実行することができる。これによれば、制御プログラムが不正に改竄されても、その不正な制御プログラムが実行される可能性を低減することができる。したがって、情報処理装置６が不正に動作する可能性を低減することができる。
【００３４】
また、制御部６２は、攻撃検出装置１と通信するための通信確立処理を実行することができる。例えば、制御部６２は、通信を行ってもよいか否かを攻撃検出装置１との間で互いに確認して、通信を確立する。なお、制御部６２は通信確立処理において認証処理も実行するとよい。具体的には、制御部６２は、攻撃検出装置１が正規な装置であるか否かを認証し、攻撃検出装置１が正規な装置であると判定したときに、通信を確立するとよい。この認証処理を以下では相手認証処理と呼ぶ。通信確立処理は相手認証処理を含むので、攻撃対象処理の一種である。相手認証処理のアルゴリズムとしては、任意のアルゴリズムを採用することができる。例えば、鍵交換方式による相手認証処理を採用してもよい。以下、鍵交換方式の相手認証処理の簡単な一例について概説する。
【００３５】
図２に例示するように、情報処理装置６は乱数生成器６６を含んでいる。乱数生成器６６はバス６０に接続されている。乱数生成器６６は、相手認証処理で用いられる乱数を生成する。乱数生成器６６は例えば真正乱数を生成する。乱数生成器６６は乱数生成回路とも言える。なお、乱数生成器６６は、疑似乱数を生成してもよい。
【００３６】
制御部６２は、乱数生成器６６が生成した認証用の第１乱数に対して所定の第２ハッシュ関数を適用してハッシュ値を生成する。以下では、このハッシュ値を第３ハッシュ値と呼ぶ。暗号復号器６４は相手認証用の公開鍵を用いて第１乱数を暗号化して暗号第１乱数を生成し、通信部６１を介して暗号第１乱数を攻撃検出装置１に送信する。公開鍵は例えばキーメモリ６５に記憶されている。
【００３７】
攻撃検出装置１は、情報処理装置６の公開鍵に対応した秘密鍵を用いて暗号第１乱数に対して復号処理を実行し、第１乱数を生成する。復号処理で用いられる秘密鍵は攻撃検出装置１の記憶部に記憶されている。攻撃検出装置１は、復号した第１乱数に対して第２ハッシュ関数を適用してハッシュ値を算出する。以下では、このハッシュ値を第４ハッシュ値と呼ぶ。攻撃検出装置１は第４ハッシュ値を情報処理装置６に送信する。情報処理装置６の制御部６２は通信部６１を介して第４ハッシュ値を受信する。
【００３８】
攻撃検出装置１が正規な装置であれば、攻撃検出装置１は正しい秘密鍵および正しい第２ハッシュ関数を用いる。よってこの場合、第３ハッシュ値と第４ハッシュ値とは互いに一致する。
【００３９】
そこで、情報処理装置６の制御部６２は第３ハッシュ値が第４ハッシュ値と一致しているか否かを判定する。第３ハッシュ値が第４ハッシュ値と一致しているときには、制御部６２は攻撃検出装置１が正規の装置であると判定する。つまり、制御部６２は相手認証処理が成功したと判定する。一方で、第３ハッシュ値が第４ハッシュ値と異なっているときには、制御部６２は攻撃検出装置１が不正な装置であると判定する。つまり、制御部６２は相手認証が失敗したと判定する。相手認証が失敗したときには、制御部６２は動作を終了してもよい。
【００４０】
以上のようにして、制御部６２は相手認証処理を実行することができる。これによれば、攻撃検出装置１が不正な装置であったとしても、その不正な攻撃検出装置１が情報処理装置６と通信する可能性を低減することができる。
【００４１】
上述の相手認証処理においては、情報処理装置６が攻撃検出装置１の認証を実行しているものの、攻撃検出装置１が情報処理装置６の認証を実行してもよい。例えば、攻撃検出装置１が乱数を生成し、暗号化した乱数を情報処理装置６に送信する。情報処理装置６が乱数を復号し、当該乱数に基づいてハッシュ値を算出し、ハッシュ値を攻撃検出装置１へ送信する。攻撃検出装置１はこのハッシュ値が正しいハッシュ値と一致するか否かを判定して相手認証を行ってもよい。この場合、情報処理装置６には乱数生成器６６が設けられなくてもよい。
【００４２】
また、上述の相手認証処理においては、攻撃検出装置１および情報処理装置６の一方のみが他方の認証を実行しているものの、攻撃検出装置１および情報処理装置６の両方が相互に認証を実行してもよい。
【００４３】
情報処理装置６は通信確立後の通信として攻撃検出装置１と暗号通信を行ってもよい。この場合、情報処理装置６および攻撃検出装置１は、通信確立処理後の暗号通信で用いられる通信用の共通鍵を、通信確立処理において取り決めてもよい。通信用の共通鍵の決定には、例えば任意の鍵共有手法が採用されてもよい。例えば、Diffie-Hellman鍵共有を採用ことができる。
【００４４】
なお暗号化処理および復号処理において鍵が用いられるので、暗号化処理および復号処理も攻撃対象処理の一種である。
【００４５】
このような情報処理装置６は一つのダイで構成されてもよいし、複数のダイで構成されてもよい。ダイはウェハチップとも呼ばれる。また情報処理装置６は、樹脂等から成る一つのパッケージに収納されてもよい。図１を参照して、電源回路５も一つのダイで構成されてもよいし、複数のダイで構成されてもよい。また電源回路５は、樹脂等から成る一つのパッケージに収納されてもよい。
【００４６】
電源回路５および情報処理装置６はそれぞれ個別のパッケージに収納されて、所定の基板上に実装されてもよい。この場合、電源回路５および情報処理装置６は、例えば基板上に形成された電源ラインＬ１を介して相互に接続される。また攻撃検出装置１および情報処理装置６は、例えば基板上に形成された通信ラインＬ２およびクロックラインＬ３の各々を介して相互に接続される。なお、電源ラインＬ１、通信ラインＬ２およびクロックラインＬ３は、基板上に形成された配線パターンである必要はなく、例えば、ワイヤボンディング用のワイヤであってもよい。
【００４７】
このような電子機器１００において、不正な第三者が情報処理装置６に対して攻撃を行う場合がある。情報処理装置６に対する攻撃としては、電源ラインＬ１の電源電圧にグリッチを故意に発生させるグリッチ攻撃を例示できる。グリッチは、スパイク状の短時間の一時的なレベルの低下あるいは上昇である。また、情報処理装置６に対する攻撃としては、比較的長い時間に亘って電源電圧のレベルを正常値とは異なる値に維持する攻撃もある。これらの攻撃は、故障利用攻撃（fault injection attack）の一種である。故障利用攻撃は、故障攻撃（fault attack）あるいは故障利用解析（fault injection analysis）と呼ばれることがある。
【００４８】
不正な第三者はこの故障利用攻撃によって、情報処理装置６の認証処理を無効化したり、あるいは、情報処理装置６が保有する秘密情報（例えば鍵）を取得し得る。
【００４９】
まず、認証処理の無効化の一例について簡単に述べる。この認証処理は、プログラム認証処理および相手認証処理を含む。不正な第三者は、情報処理装置６の制御部６２による認証処理の実行期間において、適当なタイミングで電源電圧にグリッチを故意に発生させる。もし、この電源電圧のグリッチが、ハッシュ値の一致／相違を判定する判定処理の実行タイミングにおいて偶然に発生すると、制御部６２は瞬間的に誤動作してその判定処理をスキップし得る。この場合、制御部６２は判定処理の結果によらず、判定処理の次の処理を実行してしまう。つまり、ハッシュ値が一致しているときのみに実行されるべき次の処理が、判定処理の結果によらずに実行される。
【００５０】
そこで、不正な第三者は、情報処理装置６を繰り返し起動して認証処理を複数回実行させ、その都度、グリッチを適当なタイミングで発生させる。そして、たまたまグリッチが判定処理の実行タイミングにおいて生じると、不正な第三者は情報処理装置６の認証機能を突破することができ、不正に情報処理装置６を利用することができる。例えば不正な第三者は不正な制御プログラムを情報処理装置６の制御部６２に実行させることができる。
【００５１】
次に、秘密情報の不正取得の一例について簡単に述べる。不正な第三者は、情報処理装置６の暗号復号器６４による暗号化処理の実行期間において、故意に電源電圧の電圧異常を発生させる。ここでいう電圧異常は、長期間に亘ってレベルが正常値とは異なる値に維持される電圧異常、および、グリッチを含む。このような電圧異常により、暗号復号器６４は誤動作し、誤った暗号文（エラー暗号文と呼ぶ）を生成する。不正な第三者は、この処理を繰り返し実行して得られた複数のエラー暗号文と、正しい暗号文とを比較することにより、暗号化処理で用いられた鍵を推定することができる。
【００５２】
以上のように、不正な第三者は電源ラインＬ１の電源電圧に電圧異常を生じさせることにより、情報処理装置６に対して攻撃を行うことができる。このような攻撃は好ましくなく、当該攻撃を検出することが望まれている。
【００５３】
そこで、電子機器１００には、攻撃検出装置１が設けられている。攻撃検出装置１は、電源ラインＬ１の電源電圧および電源電流をモニタし、これらに基づいて、情報処理装置６への攻撃を検出することができる。図１の例では、攻撃検出装置１は、処理部１０と、電源指紋認証部２０と、電圧攻撃検出部３０とを含んでいる。
【００５４】
電圧攻撃検出部３０は電源ラインＬ１に接続されており、電源ラインＬ１に印加された電源電圧を検出することができる。電圧攻撃検出部３０は、電源電圧に生じた攻撃による電圧異常を検出することができ、その結果を処理部１０に出力することができる。図１の例では、電圧攻撃検出部３０は、電圧グリッチ検出部３１と、異常レベル検出部３２とを含んでいる。
【００５５】
電圧グリッチ検出部３１は電源ラインＬ１に接続されている。電圧グリッチ検出部３１は、電源ラインＬ１の電源電圧を検出することができ、その電源電圧の変化に基づいてグリッチの発生を検出することができる。グリッチはスパイク状の電圧変化であるので、グリッチが生じると電源電圧の時間に対する変化率の絶対値は増大する。そこで、例えば電圧グリッチ検出部３１は、入力された電源電圧の時間に対する変化率の絶対値を算出し、その絶対値が変化率基準値よりも高いか否かを判定する。変化率基準値は例えば予め設定されて、電圧グリッチ検出部３１の記憶部に記憶される。電圧グリッチ検出部３１は当該絶対値が変化率基準値よりも高いときに、グリッチが発生したと判定する。電圧グリッチ検出部３１は、その判定結果を示す信号を処理部１０に出力する。
【００５６】
異常レベル検出部３２も電源ラインＬ１に接続されている。異常レベル検出部３２は、電源ラインＬ１の電源電圧を検出することができ、その電源電圧に基づいて異常電圧レベルの発生を検出することができる。異常電圧レベルとは、電源電圧が比較的長い期間に亘って、正常値とは異なる値を維持することを言う。ここでいう比較的長い期間とは、例えばグリッチにおける電圧変化の期間よりも長い期間である。異常レベル検出部３２は、例えば、入力された電源電圧が基準期間を超えて正常値以外の値を維持しているか否かを判定する。基準期間は例えば予め設定されて、異常レベル検出部３２の記憶部に記憶される。異常レベル検出部３２は電源電圧が基準期間を超えて正常値以外の値を維持しているときに、電源電圧に異常電圧レベルが発生したと判定する。異常レベル検出部３２は、その判定結果を示す信号を処理部１０に出力する。
【００５７】
処理部１０は、電圧グリッチ検出部３１がグリッチを検出したとき、または、異常レベル検出部３２が異常電圧レベルを検出したときに、情報処理装置６が攻撃を受けていると判定する。言い換えれば、処理部１０は、電圧攻撃検出部３０による電圧異常の検出という条件が成立したときに、情報処理装置６が攻撃を受けていると判定する。
【００５８】
処理部１０はこの判定に応じて、情報処理装置６による次の処理の実行を禁止してもよい。例えば処理部１０は通信ラインＬ２を介して攻撃検出信号を情報処理装置６に送信する。情報処理装置６は攻撃検出信号の受信に応答して、次の処理の実行を中止する。例えば情報処理装置６が認証処理中に攻撃検出信号を受信したときには、認証処理を最初からやり直す。あるいは、情報処理装置６は攻撃検出信号の受信に応答して認証処理を途中で終了してもよい。
【００５９】
上述の例では、処理部１０は攻撃検出信号を送信することで、情報処理装置６における次の処理の実行を禁止しているものの、必ずしもこれに限らない。例えば処理部１０は、攻撃検出装置１から情報処理装置６へのクロック信号の出力を停止してもよい。情報処理装置６はクロック信号の入力が停止されることで動作を停止する。あるいは、処理部１０は攻撃検出装置１から情報処理装置６にリセット信号を出力してもよい。情報処理装置６はリセット信号の入力に応答して、動作を初期化する。
【００６０】
以上のように、電圧攻撃検出部３０は電源ラインＬ１の電源電圧をモニタすることにより、不正な第三者による攻撃を実質的に検出することができ、処理部１０はその攻撃の検出に応答して、情報処理装置６の動作を制限することができる。
【００６１】
しかしながら、不正な第三者は次に詳述するように、この電圧攻撃検出部３０による攻撃検出機能を無効化することができる。例えば不正な第三者は、電源ラインＬ１を切断箇所Ｐ２（図１参照）において切断する。この切断箇所Ｐ２は電源ラインＬ１上の接続点Ｐ１よりも情報処理装置６側に位置している。接続点Ｐ１は、電圧攻撃検出部３０と電源ラインＬ１とを接続する点である。
【００６２】
図３は、不正な第三者によって攻撃された電子機器１００の構成の一例を概略的に示す図である。図３の例では、電源ラインＬ１は切断箇所Ｐ２において切断されており、電源ラインＬ１ａと電源ラインＬ１ｂとに分割されている。電源ラインＬ１ａは正規の電源回路５に接続されたラインであり、電源ラインＬ１ｂは情報処理装置６に接続されたラインである。
【００６３】
図３に例示するように、不正な第三者は不正電源回路５’を電源ラインＬ１ｂに接続する。この不正電源回路５’は電源ラインＬ１ｂを介して情報処理装置６に電源電圧を出力する。不正な第三者は不正電源回路５’を制御して、電源電圧にグリッチまたは電圧異常レベルなどの電圧異常を発生させることにより、情報処理装置６に対して攻撃を行うことができる。
【００６４】
図３の例では、電圧攻撃検出部３０は、正規の電源回路５から出力される電源電圧を検出しており、不正電源回路５’から出力される電源電圧を検出できない。よって、電圧攻撃検出部３０による攻撃検出機能が無効化される。
【００６５】
その一方で、図３の例では、電源ラインＬ１ａは情報処理装置６には接続されておらず、また他の負荷にも接続されていない。つまり、電源ラインＬ１ａは開放されている。したがって、電源ラインＬ１ａを流れる電源電流は零である。つまり、電源ラインＬ１ａの電源電流を検出することで、不正電源回路５’を用いた不正な攻撃を検出することができる。
【００６６】
そこで、攻撃検出装置１には、電源指紋認証部２０が設けられている。電源指紋認証部２０は、接続点Ｐ１よりも電源回路５側において、電源ラインＬ１を流れる電源電流を検出する電流センサとしての機能を有している。図１および図３の例では、電源ラインＬ１上にはシャント抵抗Ｒ１が設けられている。このシャント抵抗Ｒ１は接続点Ｐ１と電源回路５との間において電源ラインＬ１上に設けられている。電源指紋認証部２０はシャント抵抗Ｒ１の両端に接続されており、シャント抵抗Ｒ１の両端電圧が電源指紋認証部２０に入力される。電源指紋認証部２０はシャント抵抗Ｒ１の両端電圧およびシャント抵抗Ｒ１の抵抗値に基づいて、シャント抵抗Ｒ１を流れる電流を算出することができる。
【００６７】
電源指紋認証部２０は、電源ラインＬ１が切断されていないとき（図１）には、電源ラインＬ１を介して情報処理装置６を流れる電源電流を検出することができる。一方で、電源ラインＬ１が切断箇所Ｐ２において切断されると、電源指紋認証部２０は、電源ラインＬ１ａの電源電流を検出するので、不正電源回路５’から電源ラインＬ１ｂを介して情報処理装置６を流れる電源電流を検出できない（図３）。よってこのとき、電源指紋認証部２０が検出する電源電流は零となる。
【００６８】
そこで、処理部１０は、検出された電源電流が電流基準値未満であるか否かを判定し、電源電流が電流基準値未満であるときに、情報処理装置６が攻撃を受けていると判定してもよい。
【００６９】
しかしながら、不正な第三者はこの攻撃検出機能も無効化することができる。図４は、不正な第三者によって攻撃された電子機器１００の構成の他の一例を概略的に示す図である。図４に例示するように、不正な第三者は不正負荷回路６’を電源ラインＬ１ａに接続する。不正負荷回路６’は特に制限されないものの、例えば抵抗であってもよく、あるいは、他の情報処理装置であってもよい。不正負荷回路６’が電源ラインＬ１ａに接続されることにより、電源ラインＬ１ａには、不正負荷回路６’に応じて電源電流が流れる。この場合、電源指紋認証部２０によって検出された電源電流は電流基準値以上となるので、処理部１０は情報処理装置６への攻撃を検出できない。このように、第三者はこの攻撃検出機能を無効化することができる。
【００７０】
さて、不正負荷回路６’の構成は情報処理装置６の構成と相違することが多い。この場合には、電源ラインＬ１ｂを介して情報処理装置６を流れる電源電流は、電源ラインＬ１ａを介して不正負荷回路６’を流れる電源電流と相違する。
【００７１】
図５は、情報処理装置６を流れる電源電流の時系列変化、および、不正負荷回路６’を流れる電源電流の時系列変化の一例を概略的に示すグラフである。図５は、情報処理装置６を流れる電源電流の時系列変化を実線で示し、不正負荷回路６’を流れる電源電流の時系列変化を破線で示す。ここでは、不正負荷回路６’は情報処理装置であるものの、その動作は情報処理装置６の動作と相違する。情報処理装置６の動作が不正負荷回路６’の動作と相違するので、図５に例示するように、情報処理装置６の動作に応じて流れる電源電流の時系列変化は、不正負荷回路６’の動作に応じて流れる電源電流の時系列変化と相違する。
【００７２】
そこで、情報処理装置６の動作に応じて流れる電源電流の時系列変化を示す電流パターンを予め測定し、その電流パターンを例えば電源指紋認証部２０の記憶部に予め記憶しておく。以下では、記憶部に記憶された電流パターンを基準パターンと呼ぶ。
【００７３】
電流パターンは情報処理装置６の処理の種類に応じて相違する。そこで、情報処理装置６の処理の種類に応じて複数の電流パターンを予め測定し、処理の種類と対応付けて基準パターンを記憶部に記憶してもよい。例えば、通信確立処理に対応する基準パターンと、プログラム認証処理に対応する基準パターンなどの複数の基準パターンが、その処理の種類に対応して記憶部に記憶される。情報処理装置６が実行する処理の種類は、例えば、情報処理装置６から攻撃検出装置１に通知される。
【００７４】
電源指紋認証部２０は、情報処理装置６による第１処理の実行中に電源電流を検出する。そして、電源指紋認証部２０は、この電源電流の時系列変化を示す電流パターンが、記憶部に記憶された、当該第１処理に対応した基準パターンと類似しているか否かを判定する。電源指紋認証部２０は、この類否判定（以下、第１類否判定と呼ぶ）の結果を示す信号を処理部１０に出力する。第１類否判定の具体的な一例については後に述べる。
【００７５】
処理部１０は、電流パターンが基準パターンと類似していないと電源指紋認証部２０が判定したときにも、情報処理装置６が攻撃を受けていると判定する。換言すれば、処理部１０は、第１類否判定の結果において電流パターンが基準パターンと類似していないという条件が成立したときにも、情報処理装置６が攻撃を受けていると判定する。処理部１０はこの判定に基づいて、情報処理装置６による次の第２処理の実行を禁止するとよい。具体的な動作は既述の通りである。
【００７６】
以上のように、不正な第三者が不正電源回路５’および不正負荷回路６’を用いて情報処理装置６に対して攻撃を行ったとしても、電源指紋認証部２０はその攻撃を実質的に検出することができる。そして、処理部１０はその攻撃の検出に応答して、情報処理装置６の動作を制限することができる。
【００７７】
次に、攻撃検出装置１の内部構成の詳細な一例について述べる。図６は、攻撃検出装置１の詳細な内部構成の一例を概略的に示す図である。図６の例では、攻撃検出装置１はクロック生成部４０をさらに備えている。クロック生成部４０はクロック信号を生成し、このクロック信号を攻撃検出装置１の各種構成に出力する。図６の例では、クロック生成部４０は、発振器としてのＭＥＭＳ（Micro Electro Mechanical Systems）振動子４１と、ＭＥＭＳコントローラ４２とを含んでいる。ＭＥＭＳコントローラ４２は、ＭＥＭＳ振動子４１の機械的な振動を制御する。ＭＥＭＳ振動子４１は機械的な振動に基づいて発振信号をＭＥＭＳコントローラ４２に出力する。ＭＥＭＳコントローラ４２はＰＬＬ（phase locked loop）回路および分周回路を含んでおり、発振信号に基づいてクロック信号を生成する。ＭＥＭＳコントローラ４２はこのクロック信号を攻撃検出装置１の各種構成に出力する。クロック生成部４０はクロックコントローラ４３も含んでおり、クロックコントローラ４３はＭＥＭＳコントローラ４２から入力されたクロック信号を、クロックラインＬ３を介して情報処理装置６に出力する。
【００７８】
なおクロック生成部４０は発振器として必ずしもＭＥＭＳ振動子４１を含んでいる必要はない。例えば発振器として、水晶発振器、ＬＣ発振器、ＲＣ発振器、リング発振器またはセラミック発振器を採用してもよい。
【００７９】
処理部１０は、処理回路１１と、制御部１２と、記憶部１３と、通信部１４とを含んでいる。またここでは、相手認証処理および暗号通信のために、処理部１０は暗号復号器１５およびキーメモリ１６も含んでいる。これらはバス１７を介して相互に接続されている。またバス１７には、クロックコントローラ４３も接続されている。
【００８０】
キーメモリ１６には、暗号化処理および復号処理で用いられる鍵を記憶している。キーメモリ１６は、記憶部１３よりも情報が漏れにくいセキュアなメモリであってもよい。
【００８１】
暗号復号器１５は、バス１７から入力された平文の信号に対して、キーメモリ１６から読み出した鍵に基づいて暗号化処理を実行して、暗号信号を生成し、その暗号信号をバス１７に出力することができる。また暗号復号器１５はバス１７から入力された暗号信号に対して、キーメモリ１６から読み出した鍵に基づいて復号処理を実行して、平文の信号を生成し、その信号をバス１７に出力することができる。
【００８２】
記憶部１３は、ＲＯＭおよびＲＡＭなどの、コンピュータが読み取り可能な記録媒体を含む。記憶部１３には、攻撃検出装置１を制御するための制御プログラムが記憶されている。なお記憶部１３は、ＲＯＭおよびＲＡＭ以外の、コンピュータが読み取り可能な非一時的な記録媒体を含んでいてもよい。記憶部１３は、例えば、小型のハードディスクドライブおよびＳＳＤなどを備えてもよい。
【００８３】
制御部１２は、攻撃検出装置１の動作を統括的に管理することが可能である。制御部１２は制御回路であるとも言える。制御部１２は、例えば、ＣＰＵを含んでいる。制御部１２の各種機能は、当該制御部１２が備えるＣＰＵが記憶部１３内の制御プログラムを実行することによって実現される。制御部１２は内部記憶部を含んでいてもよい。内部記憶部には、プログラムが記憶されていてもよい。制御部１２は内部記憶部および記憶部１３のプログラムを実行することで各種機能を実行してもよい。制御部１２は、複数のＣＰＵを含んでいてもよい。また制御部１２は、少なくとも一つのＤＳＰを含んでいてもよい。また、制御部１２の全ての機能あるいは制御部１２の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【００８４】
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ＡＳＩＣ（「特定用途向け集積回路」）、従来の回路構成及び／またはそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタおよび他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェアおよび／またはプロセッサである。
【００８５】
通信部１４は通信ラインＬ２を介して情報処理装置６の通信部６１に接続される。通信部１４は通信回路または通信インターフェースとも呼ばれる。通信部１４は情報処理装置６の通信部６１と通信を行うことができる。通信部１４は制御部１２から入力された送信信号を情報処理装置６の通信部６１に送信することができ、また、情報処理装置６から受信した受信信号を制御部１２および処理回路１１に出力することができる。
【００８６】
処理回路１１は、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２に接続されており、これらの動作の開始／停止を制御することができる。例えば処理回路１１は電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ起動信号を出力する。これにより、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２は動作を開始する。また処理回路１１は電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ停止信号を出力する。これにより、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２は動作を停止する。
【００８７】
処理回路１１が電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２を、必要な期間のみに動作させることにより、消費電力を低減することができる。必要な期間は、例えば、情報処理装置６が攻撃対象処理を実行している期間である。
【００８８】
また処理回路１１は、情報処理装置６が実行中の処理の種類または実行予定の処理の種類を示す情報を、通信部１４を介して情報処理装置６から受け取る。処理回路１１はこの情報を電源指紋認証部２０に出力する。電源指紋認証部２０はこの情報に応じた基準パターンを記憶部から読み出し、電流パターンと基準パターンとの第１類否判定を行う。
【００８９】
処理回路１１は、グリッチの検出、異常電圧レベルの検出または電流パターンと基準パターンとの非類似判定に応答して、情報処理装置６が攻撃を受けていると判定する。処理回路１１はこの判定に基づいて、情報処理装置６における次の処理の実行を禁止する。例えば、処理回路１１は攻撃検出信号を制御部１２に出力し、制御部１２は通信部１４を介して攻撃検出信号を情報処理装置６に送信する。
【００９０】
暗号通信を行う場合には、制御部１２は攻撃検出信号を暗号復号器１５に出力する。暗号復号器１５はキーメモリ１６から通信用の共通鍵を読み出し、当該共通鍵を用いて攻撃検出信号に対して暗号化処理を実行して、暗号攻撃検出信号を生成する。暗号復号器１５は、暗号攻撃検出信号を制御部１２に出力し、制御部１２はこの暗号攻撃検出信号を通信部１４を介して情報処理装置６に送信する。
【００９１】
情報処理装置６の制御部６２は攻撃検出信号の受信に応答して動作を終了する。攻撃検出信号が暗号化されている場合には、制御部６２は暗号復号器６４に暗号攻撃検出信号に対して復号処理を行わせさせればよい。
【００９２】
制御部１２は暗号攻撃検出信号の送信に替えて、あるいは、暗号攻撃検出信号の送信とともに、クロックコントローラ４３に対して、情報処理装置６へのクロック信号の出力の停止を指示してもよい。クロックコントローラ４３は当該指示に応答してクロック信号の出力を停止する。情報処理装置６はクロック信号の入力が停止すると、動作を停止する。
【００９３】
また、制御部１２はリセット信号を情報処理装置６に出力してもよい。情報処理装置６はリセット信号の入力に応答して、動作を初期化する。
【００９４】
図６の例では、処理部１０は乱数生成器１９を含んでいる。乱数生成器１９はバス１７に接続されている。乱数生成器１９は例えば相手認証処理で用いられる真正乱数を生成する。乱数生成器１９は乱数生成回路とも言える。なお、乱数生成器１９は、疑似乱数を生成してもよい。また、攻撃検出装置１から情報処理装置６へと乱数を送信する必要性がない場合には、乱数生成器１９は設けられなくてもよい。
【００９５】
なお、処理回路１１、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２は、制御部１２と同様に、ＣＰＵまたはＤＳＰ等の演算処理装置および内部記憶部を含んでいてもよい。各部の機能は演算処理装置が内部記憶部に含まれたプログラムを実行することで実現されてもよい。あるいは、各部の機能の一部または全部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【００９６】
次に、電子機器１００の動作の具体的な一例について述べる。図７は、電子機器１００の動作の一例を示すフローチャートである。図７には、情報処理装置６に対して攻撃が行われていない場合の動作のフローチャートの一例が示されている。
【００９７】
まずステップＳ１にて、電子機器１００に電源が投入される。例えばユーザが不図示の電源ボタンを押下することにより、電源回路５は攻撃検出装置１および情報処理装置６に電力を供給する。この電源の投入に応答して、ステップＳ２にて、処理回路１１は電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ起動信号を出力する。また処理回路１１は、通信確立処理を示す情報を電源指紋認証部２０に出力する。
【００９８】
ステップＳ３にて、電圧グリッチ検出部３１は起動信号の入力に応答して、電源ラインＬ１の電源電圧の検出を開始し、検出された電源電圧にグリッチが生じたか否かを判定するグリッチ判定処理を実行する。電圧グリッチ検出部３１は繰り返し電源電圧を検出し、その検出のたびにグリッチ判定処理を実行する。
【００９９】
ステップＳ４にて、異常レベル検出部３２は起動信号の入力に応答して、電源ラインＬ１の電源電圧の検出を開始し、検出された電源電圧に異常電圧レベルが生じたか否かを判定する異常レベル判定処理を実行する。異常レベル検出部３２は繰り返し電源電圧を検出し、その検出のたびに異常レベル判定処理を実行する。
【０１００】
ステップＳ５にて、電源指紋認証部２０は起動信号の入力に応答して、電源ラインＬ１の電源電流の検出を開始する。電源指紋認証部２０は繰り返し電源電流を検出し、その電流値を記憶部に記憶する。これにより、記憶部には、電源電流の時系列データ（つまり電流パターン）が記憶される。
【０１０１】
ステップＳ６およびステップＳ７にて、攻撃検出装置１および情報処理装置６は実質的に電源の投入に応答して通信確立処理を行う。通信確立処理においては、相手認証処理も行われる。上述したように、この相手認証処理に対して不正な第三者が攻撃することがある。
【０１０２】
ステップＳ６およびステップＳ７の通信確立処理、ステップＳ３のグリッチ判定処理、ステップＳ４の異常レベル判定処理およびステップＳ５の電源電流の検出は、実質的に電源の投入に応答して行われるので、これらはほぼ同時に開始される。よって、電子機器１００による通信確立処理の実行期間において、電源指紋認証部２０および電圧攻撃検出部３０の攻撃検出機能を有効化することができる。
【０１０３】
ここで、電源ラインＬ１が切断箇所Ｐ２において切断されていない非切断状態で、不正な第三者が攻撃を行う場合について考慮する。例えば不正な第三者が電源回路５を取り外し、この電源回路５の替わりに不正電源回路５’を電源ラインＬ１に接続する。
【０１０４】
不正な第三者が電源ラインＬ１の電源電圧に故意にグリッチを発生させると、ステップＳ３において、電圧グリッチ検出部３１はグリッチを検出する。また不正な第三者が電源ラインＬ１の電源電圧に故意に異常電圧レベルを発生させると、ステップＳ４において、異常レベル検出部３２は異常電圧レベルを検出する。
【０１０５】
処理回路１１はグリッチの検出および異常電圧レベルの検出の各々に応答して、攻撃検出信号を制御部１２に出力する。制御部１２は攻撃検出信号の入力に基づいて、情報処理装置６が攻撃を受けていると判定し、情報処理装置６における次の処理の実行を禁止する。具体的には、制御部１２は例えば、通信部１４を介して暗号攻撃信号を情報処理装置６に送信する。情報処理装置６の暗号復号器６４は暗号攻撃検出信号に対して復号処理を実行して攻撃検出信号を生成する。制御部１２はこの攻撃検出信号に応答して、通信確立処理を最初からやり直してもよく、あるいは、動作を終了してもよい。なお、制御部１２は例えば情報処理装置６へのクロック信号の出力を停止してもよく、あるいは、情報処理装置６にリセット信号を出力してもよい。
【０１０６】
以上のように、もし仮に、不正な第三者が通信確立処理において非切断状態での攻撃を行ったとしても、攻撃検出装置１はこの攻撃を検出することができ、情報処理装置６の動作を制限することができる。
【０１０７】
通信確立処理が終了すると、攻撃検出装置１の制御部１２は処理回路１１に通信確立処理が終了したことを通知する。ステップＳ８にて、処理回路１１はこの通知に応答して、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ停止信号を出力する。これにより、電源指紋認証部２０は電流検出を停止し、電圧グリッチ検出部３１および異常レベル検出部３２は電圧検出を停止して各判定処理を停止する。
【０１０８】
ステップＳ９にて、電源指紋認証部２０は、ステップＳ５において検出した電源電流によって構成される電流パターンが、通信確立処理に対応した基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部２０は通信確立処理の全期間における電流パターンと基準パターンとを互いに比較する。
【０１０９】
電源指紋認証部２０は、通信確立処理の開始と同様に、電源の投入に応答して電源電流の検出を開始するので、不正な攻撃が行われていない場合には、この電流検出によって、通信確立処理における電流パターンを取得することができる。
【０１１０】
図８は、電流パターンおよび基準パターンの一例を概略的に示すグラフである。図８は、電流パターンを実線で示し、基準パターンを一点鎖線で示している。また電流パターンを構成する電流値ｉ［ｎ］（０≦ｎ≦Ｎ）が黒丸で示され、基準パターンを構成する電流値ｉｒｅｆ［ｎ］（０≦ｎ≦Ｎ）が黒三角で示されている。
【０１１１】
電源指紋認証部２０による類否判定の具体的なアルゴリズムとしては任意のアルゴリズムを採用してよいものの、以下に、その一例について説明する。電源指紋認証部２０は、例えば、電流値ｉ［ｎ］と電流値ｉｒｅｆ［ｎ］との差Δｉ［ｎ］を算出し、その差Δｉ［ｎ］が差基準値よりも大きいか否かを、電流値ごとに判定する。差基準値は例えば予め設定されて、電源指紋認証部２０の記憶部に記憶されている。少なくとも一つの電流値ｉ［ｎ］について、差Δｉ［ｎ］が差基準値よりも大きいときに、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定する。なお、電源指紋認証部２０はノイズなどの影響を抑制すべく、連続して検出された複数の電流値ｉ［ｎ］について、差Δｉ［ｎ］が差基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。
【０１１２】
上述の例では、電源指紋認証部２０は電流値ｉ［ｎ］と電流値ｉｒｅｆ［ｎ］とを互いに比較しているものの、必ずしもこれに限らない。例えば電源指紋認証部２０は、電流パターンにおける電流の第１微分値と基準パターンにおける電流の第２微分値とを算出し、第１微分値と第２微分値とを互いに比較してもよい。第１微分値は、例えば、電流値ｉ［ｎ］と電流値ｉ［ｎ−１］の差に基づいて算出され、第２微分値は、例えば、電流値ｉｒｅｆ［ｎ］と電流値ｉｒｅｆ［ｎ−１］の差に基づいて算出される。
【０１１３】
電源指紋認証部２０は、第１微分値と第２微分値との差が微分基準値よりも大きいか否かを第１微分値ごとに判定する。微分基準値は例えば予め設定されて、電源指紋認証部２０の記憶部に記憶されている。少なくとも一つの第１微分値について、当該差が微分基準値よりも大きいときに、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定してもよい。なお、電源指紋認証部２０はノイズの影響を抑制すべく、連続する複数の第１微分値について、当該差が微分基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。
【０１１４】
ここで、不正な第三者が切断箇所Ｐ２において電源ラインＬ１を切断し、不正電源回路５’および不正負荷回路６’をそれぞれ電源ラインＬ１ａおよび電源ラインＬ１ｂに接続した場合（図４参照）を考慮する。この場合、電源指紋認証部２０は、ステップＳ５において、電源ラインＬ１ａを介して不正負荷回路６’を流れる電源電流を検出する。よって、検出された電源電流によって構成される電流パターンは、情報処理装置６の通信確立処理に対応した基準パターンと相違する。よって、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路１１に出力する。処理回路１１はこの判定結果を制御部１２に出力してもよい。
【０１１５】
図７の例では、情報処理装置６の制御部６２は通信確立処理が終了したときに、ステップＳ１０にて、電流パターンの判定結果を要求する要求信号を、通信部６１を介して攻撃検出装置１に送信する。ここでは暗号通信を行うので、暗号復号器６４は要求信号に対して暗号化処理を実行して暗号要求信号を生成し、制御部１２がこの暗号要求信号を通信部６１を介して攻撃検出装置１に送信する。
【０１１６】
攻撃検出装置１の制御部１２は通信部１４を介してこの暗号要求信号を受け取り、暗号復号器１５に出力する。暗号復号器１５はこの暗号要求信号に対して復号処理を実行して要求信号を生成する。ステップＳ１１にて、制御部１２は、この要求信号に対する応答としての結果信号を、通信部１４を介して情報処理装置６に送信する。結果信号は、電流パターンと基準パターンとの第１類否判定の結果を示す信号である。電流パターンが基準パターンと類似していないときには、制御部１２は結果信号として攻撃検出信号を送信する。ここでは暗号通信を行うので、暗号復号器１５が結果信号に対して暗号化処理を実行して暗号結果信号を生成し、制御部１２が通信部１４を介して暗号結果信号を情報処理装置６に送信する。
【０１１７】
ステップＳ１２にて、情報処理装置６の制御部６２は結果信号を確認する。具体的には、制御部６２は通信部６１を介して暗号結果信号を受信し、暗号結果信号を暗号復号器６４に出力する。暗号復号器６４は暗号結果信号に対して復号処理を実行して結果信号を生成する。結果信号が攻撃検出信号であるときには、制御部６２は次の処理（図７の例ではプログラム認証処理）の実行を中止する。このとき、制御部６２は通信確立処理を最初からやり直してもよく、あるいは、動作を終了してもよい。
【０１１８】
以上のように、もし仮に不正な第三者が不正電源回路５’および不正負荷回路６’を用いて通信確立処理中に攻撃を行ったとしても、攻撃検出装置１はこの攻撃を検出することができ、情報処理装置６の動作を制限することができる。よって、攻撃によって不正な第三者が享受する利益を低減することができる。
【０１１９】
図７の例では、情報処理装置６が攻撃を受けていない場合を想定しているので、制御部６２は処理を続行する。具体的には、ステップＳ１３にて、制御部６２はプログラム認証処理の開始を示す開始信号を、通信部６１を介して攻撃検出装置１に送信する。つまり、制御部６２はプログラム認証処理の開始を攻撃検出装置１に通知する。ここでは暗号通信を行うので、暗号復号器６４が開始信号に対して暗号化処理を実行して暗号開始信号を生成し、制御部６２がこの暗号開始信号を、通信部６１を介して攻撃検出装置１に送信する。次にステップＳ１４にて、制御部６２はプログラム認証処理を実行する。
【０１２０】
一方、ステップＳ１５にて、攻撃検出装置１の処理回路１１は、情報処理装置６からのプログラム認証処理の開始通知に応答して、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ起動信号を出力する。具体的には、処理回路１１は通信部１４を介して暗号開始信号を受信し、この暗号開始信号を暗号復号器１５に出力する。暗号復号器１５は暗号開始信号に対して復号処理を実行して開始信号を生成する。処理回路１１はこの開始信号に応答して、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ起動信号を出力する。さらに処理回路１１は情報処理装置６の処理内容を電源指紋認証部２０に通知する。具体的には、処理回路１１は、プログラム認証処理を示す情報を電源指紋認証部２０に出力する。
【０１２１】
ステップＳ１６にて、電圧グリッチ検出部３１は起動信号の入力に応答して、電源電圧の検出を開始し、グリッチ判定処理を行う。ステップＳ１７にて、異常レベル検出部３２は起動信号の入力に応答して、電源電圧の検出を開始し、異常レベル判定処理を行う。ステップＳ１８にて、電源指紋認証部２０は起動信号の入力に応答して電源電流の検出を開始する。ステップＳ１６からステップＳ１８はそれぞれステップＳ３からステップＳ５と同じ処理である。
【０１２２】
ステップＳ１４のプログラム認証処理、ステップＳ１６のグリッチ判定処理、ステップＳ１７の異常レベル判定処理およびステップＳ１８の電源電流の検出は、ステップＳ１３の開始信号に応答して行われるので、これらはほぼ同時に開始される。よって、情報処理装置６によるプログラム認証処理の実行期間において、電源指紋認証部２０および電圧攻撃検出部３０の攻撃検出機能を有効化することができる。
【０１２３】
ここでは、情報処理装置６の記憶部６３内の制御プログラムは正規なプログラムであるものとする。よって、制御部６２はプログラム認証処理において認証が成功したと判定する。情報処理装置６の制御部６２はプログラム認証処理を終了すると、ステップＳ１９にて、プログラム認証処理の終了を示す終了信号を、通信部６１を介して攻撃検出装置１に送信する。つまり、制御部６２はプログラム認証処理の終了を攻撃検出装置１に通知する。ここでは暗号通信が行われるので、暗号復号器６４は終了信号に対して暗号化処理を実行して暗号終了信号を生成する。制御部６２は通信部６１を介してこの暗号終了信号を攻撃検出装置１に送信する。
【０１２４】
ステップＳ２０にて、攻撃検出装置１の処理回路１１は、情報処理装置６からのプログラム認証処理の終了通知に応答して、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２にそれぞれ停止信号を出力する。具体的には、処理回路１１は通信部１４を介して暗号終了信号を受信し、これを暗号復号器１５に出力する。暗号復号器１５は暗号終了信号に対して復号処理を実行して終了信号を生成する。処理回路１１は終了信号に応答して、電源指紋認証部２０、電圧グリッチ検出部３１および異常レベル検出部３２に停止信号を出力する。これにより、電源指紋認証部２０は電流検出を停止し、電圧グリッチ検出部３１および異常レベル検出部３２は電圧検出を停止して各判定処理を停止する。
【０１２５】
次にステップＳ２１にて、電源指紋認証部２０は、ステップＳ１８において検出した電源電流によって構成される電流パターンが、プログラム認証処理に対応した基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部２０はプログラム認証処理の全期間における電流パターンと基準パターンとを互いに比較する。電源指紋認証部２０はその判定結果を処理回路１１に出力する。処理回路１１はその判定結果を制御部１２に出力してもよい。
【０１２６】
情報処理装置６の制御部６２はステップＳ２２にて、ステップＳ１０と同様に、通信部６１を介して暗号要求信号を攻撃検出装置１に送信する。ステップＳ２３にて、攻撃検出装置１の制御部１２は、ステップＳ１１と同様に、暗号要求信号に対する応答としての暗号結果信号を、通信部１４を介して情報処理装置６に送信する。暗号結果信号は、ステップＳ２１による電流パターンと基準パターンとの第１類否判定の結果を示す結果信号を暗号化して得られる信号である。
【０１２７】
ステップＳ２３にて、情報処理装置６の制御部６２は、ステップＳ１２と同様に、通信部６１を介して受信した暗号結果信号を確認する。結果信号が攻撃検出信号であるときには、制御部６２は次の処理の実行を中止する。例えば制御部６２はステップＳ１３を再び実行してプログラム認証処理をやり直してもよく、あるいは、動作を停止してもよい。結果信号が攻撃検出信号でないときには、制御部１２は次の処理を実行する。当該次の処理としては任意の処理を採用することができる。
【０１２８】
以上のように、電子機器１００によれば、不正な第三者が図１において電源回路５の替わりに不正電源回路５’を用いて攻撃を行った場合には、実質的に電圧攻撃検出部３０がその攻撃を検出することができる。電圧攻撃検出部３０が不正電源回路５’からの電源電圧を検出できるからである。また、不正な第三者が不正電源回路５’および不正負荷回路６’を用いて情報処理装置６に対して攻撃を行った場合には（図４）、実質的に電源指紋認証部２０がその攻撃を検出することができる。不正負荷回路６’を流れる電源電流の電流パターンが、正規な情報処理装置６を流れる電源電流の電流パターンと相違するからである。そして、攻撃検出装置１は攻撃の検出に応じて、情報処理装置６の動作を制限することができる。これにより、第三者が享受できる不正な利益を低減することができる。言い換えれば、情報処理装置６の安全性を向上することができる。
【０１２９】
なお、上述の例において、開始信号（ステップＳ１３）および終了信号（ステップＳ１９）は、プログラム認証処理の実行期間を示している。よって、開始信号および終了信号を纏めて、プログラム認証処理の実行期間を示す期間信号と呼ぶことができる。この期間信号を用いると、上述の動作を次のように説明することもできる。すなわち、情報処理装置６はこの期間信号に対して暗号化処理を実行して暗号期間信号（暗号開始信号および暗号終了信号）を生成し、この暗号期間信号を攻撃検出装置１に送信している。そして、攻撃検出装置１の暗号復号器１５は、受信した暗号期間信号に対して復号処理を実行して期間信号（開始信号および終了信号）を生成する。電源指紋認証部２０は、当該期間信号に基づいて、プログラム認証処理の実行期間において電源電流を検出して電流パターンを取得し、電圧攻撃検出部３０は、当該期間信号に基づいて、プログラム認証処理の実行期間において電源電圧を検出する。
【０１３０】
図７の例では、プログラム認証処理（ステップＳ１４）は１回のみ実行されているものの、必ずしもこれに限らない。制御部６２はプログラム認証処理を、例えば所定期間ごとに繰り返し実行してもよい。この場合、そのプログラム認証処理の各実行期間中の攻撃を検出すべく、電子機器１００はステップＳ１３からステップＳ２４までの一連の処理を、例えば所定期間ごとに繰り返し実行してもよい。なお、図２の例では、情報処理装置６は、バス６０に接続されるタイマ６９を含んでいる。制御部６２はタイマ６９によって所定期間の経過を認識することができる。
【０１３１】
図７の例では、電源指紋認証部２０は通信確立処理の終了後に、通信確立処理の全期間における電流パターンと基準パターンとの第１類否判定を行い（ステップＳ９）、プログラム認証処理の終了後に、プログラム認証処理の全期間における電流パターンと基準パターンとの第１類否判定を行っている（ステップＳ２１）。しかるに、必ずしもこれに限らない。電源指紋認証部２０は通信確立処理中またはプログラム認証処理中において、それまでに検出した電源電流によって構成される電流パターンと、対応する基準パターンとの第１類否判定を行ってもよい。
【０１３２】
図９は、電子機器１００の上記動作の一例を示すフローチャートである。図９の例では、図７のステップＳ５およびステップＳ１８の替わりに、それぞれステップＳ５’およびステップＳ１８’が実行され、また図７のステップＳ９からステップＳ１２までの一連の処理およびステップＳ２１からステップＳ２４までの一連の処理は実行されない。
【０１３３】
ステップＳ５’は、ステップＳ６およびステップＳ７の通信確立処理とほぼ同時に開始される。ステップＳ５’においては、電源指紋認証部２０は電源電流を繰り返し検出し、その電源電流の検出のたびに、それまでに検出した電流値によって構成される電流パターンが、対応する基準パターンと類似するか否かを判定する。処理部１０は、電流パターンが基準パターンと類似していないときには、通信部１４を介して攻撃検出信号を情報処理装置６に送信する。
【０１３４】
図１０は、電流パターンおよび基準パターンの一例を概略的に示す図である。図１０では、通信確立処理の途中までに検出された電流値によって構成される電流パターンが実線で示され、この電流パターンに対応する基準パターンが一点鎖線で示されている。また図１０では、この電流パターンの電流値ｉ［ｎ］（０≦ｎ≦Ｎ）が黒丸で示され、基準パターンの電流値ｉｒｅｆ［ｎ］（０≦ｎ≦Ｎ）が黒三角で示されている。
【０１３５】
例えば電源指紋認証部２０は電流値ｉ［ｎ］の検出のたびに、その電流値ｉ［ｎ］と電流値ｉｒｅｆ［ｎ］との差Δｉ［ｎ］が差基準値よりも大きいか否かを判定し、その判定結果を記憶部に記憶する。差Δｉ［ｎ］が差基準値よりも大きいときに、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定してもよい。ノイズの影響を低減すべく、電源指紋認証部２０は、直前の連続する複数の判定結果において、差Δｉ［ｎ］が差基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。また、電源指紋認証部２０は電流値自体ではなく、電流の微分値に基づいて電流パターンの第１類否判定を行ってもよい。
【０１３６】
これによれば、不正な第三者が不正電源回路５’および不正負荷回路６’を用いて攻撃を行っている場合、通信確立処理の途中であっても、電流パターンが基準パターンと類似していないと電源指紋認証部２０が判定できる。つまり、処理回路１１は通信確立処理の途中であっても情報処理装置６が攻撃を受けていると判定でき、制御部１２は情報処理装置６による次の処理の実行を禁止できる。したがって、より早期に情報処理装置６の動作を制限することができる。
【０１３７】
ステップＳ１８’は、ステップＳ１４のプログラム認証処理とほぼ同時に開始される。ステップＳ１８’の動作はステップＳ５’と同様である。ただし、ステップＳ１８’における基準パターンとしては、プログラム認証処理に対応した基準パターンが採用される。
【０１３８】
これによれば、処理回路１１はプログラム認証処理の途中であっても情報処理装置６が攻撃を受けていると判定でき、制御部１２は情報処理装置６による次の処理の実行を禁止できる。したがって、より早期に情報処理装置６の動作を制限できる。
【０１３９】
次に、電流パターンと基準パターンとの類否判定の他の具体例について述べる。この類否判定はステップＳ９，Ｓ２１において実行され得る。
【０１４０】
ここでは一例として、基準パターンとして攻撃対象処理の全期間の電流パターンを採用するのではなく、その一部を採用する。図１１は、基準パターンと電流パターンとの一例を概略的に示す図である。図１１においては、基準パターンが実線で示されている。この基準パターンは処理内容に応じて予め設定される。また、図１１の例では、電源指紋検出部２０によって検出された電流パターンが破線で示されている。電流パターンは電流値ｉ［ｎ］（０≦ｎ≦Ｎ）によって構成され、基準パターンは電流値ｉｒｅｆ［ｍ］（０≦ｍ≦Ｍ，Ｍ＜Ｎ）によって構成される。図１１の例では、電流値ｉ［ｎ］（０≦ｎ≦Ｎ）は黒丸で示され、電流値ｉｒｅｆ［ｍ］（０≦ｍ≦Ｍ）は黒三角で示されている。
【０１４１】
電源指紋認証部２０は、基準パターンの時間軸上の位置をずらしながら、各位置において、電流パターンのうち基準パターンに対応する部分電流パターンと、基準電流パターンとの部分類否判定を行う。換言すれば、電源指紋認証部２０は、電流値ｉ［ｋ］〜ｉ［ｋ＋Ｍ］からなる部分電流パターンと電流値ｉｒｅｆ［０］〜ｉｒｅｆ［Ｍ］からなる基準パターンとの部分類否判定を、ｋを０〜（Ｎ−Ｍ）まで１ずつ増やしながら行う。
【０１４２】
電源指紋認証部２０は当該部分類否判定において、電流値ｉ，ｉｒｅｆの差Δｉが差基準値以上であるか否かを、電流値ｉごとに判定する。電源指紋認証部２０は、少なくとも一つの電流値ｉについて、差Δｉが差基準値以上であるときに、部分電流パターンが基準パターンと類似していないと判定する。
【０１４３】
そして、電源指紋認証部２０は、ｋが０〜（Ｎ−Ｍ）までの全ての部分類否判定の結果が非類似であるときに、電流パターンが基準パターンと類似していないと判定する。つまり、基準パターンの時間軸上の位置をずらしたときに、そのいずれの位置においても部分電流パターンが基準パターンと類似していないときに、電源指紋認証部２０は、電流パターンが基準パターンに類似していないと判定する。一方で、電源指紋認証部２０は、いずれか１つの部分類否判定の結果が類似であるときに、電流パターンが基準パターンと類似していると判定する。つまり、基準パターンの時間軸上の位置をずらしたときに、そのいずれかの位置において部分電流パターンが基準パターンと類似しているときに、電源指紋認証部２０は、電流パターンが基準パターンに類似していると判定する。
【０１４４】
これによれば、攻撃対象処理の実行開始タイミングと電流検出の開始タイミングとの間にずれが生じていても、当該ずれを吸収して類否判定を行うことができる。
【０１４５】
図９のステップＳ５’，Ｓ１８’では、電源指紋認証部２０は電源電流の検出のたびに、その直前の（Ｍ＋１）個の電流値ｉからなる部分電流パターンと（Ｍ＋１）個の電流値ｉｒｅｆからなる基準パターンとの部分類否判定を行えばよい。電源指紋認証部２０は部分類否判定の結果が類似であるときに、電流パターンが基準パターンに類似すると判定する。また電源指紋認証部２０は攻撃対象処理の実行中に行われる部分類否判定の結果の全てが非類似であるときに、電流パターンが基準パターンと類似していないと判定する。これによっても、攻撃対象処理の実行開始タイミングと電流検出の開始タイミングとの間のずれを吸収して類否判定を行うことができる。
【０１４６】
なお、図１の例では、電圧攻撃検出部３０は電圧グリッチ検出部３１および異常レベル検出部３２の両方を含んでいる。しかしながら、必ずしもこれに限らない。電源電圧のグリッチを検出する必要性が低い場合には、電圧グリッチ検出部３１は設けられなくてもよい。同様に、電源電圧の異常電圧レベルを検出する必要性が低い場合には、異常レベル検出部３２は設けられなくてもよい。要するに、電圧攻撃検出部３０は電圧グリッチ検出部３１および異常レベル検出部３２の少なくともいずれか一方を含んでいればよい。
【０１４７】
また上述の例では、攻撃検出装置１の処理部１０は、通信確立処理およびプログラム認証処理において、電源指紋認証部２０および電圧攻撃検出部３０を動作させている。しかしながら、必ずしもこれに限らない。電源指紋認証部２０および電圧攻撃検出部３０を動作させる処理の種類は適宜に変更できる。例えば、情報処理装置６は通信確立処理またはプログラム認証処理とは別の処理において暗号化処理を実行することがある。攻撃検出装置１は情報処理装置６が暗号化処理を行う実行期間において、電源指紋認証部２０および電圧攻撃検出部３０を動作させてもよい。この暗号化処理の実行期間は、情報処理装置６から攻撃検出装置１に通知。これによれば、通信確立処理およびプログラム認証処理とは別の処理で暗号化処理が行われたとしても、攻撃検出装置１はその暗号化処理に対する攻撃を検出することができる。
【０１４８】
要するに、攻撃検出装置１は、攻撃によって第三者が不正な利益を享受できる攻撃対象処理に対して、電源指紋認証部２０および電圧攻撃検出部３０を動作させるとよい。攻撃対象処理は、例えば、秘密情報を用いた処理である。秘密情報とは、秘匿の必要性が高い情報であって、例えばプログラム認証処理においては、制御プログラムに適用されるハッシュ関数、署名情報に含まれるハッシュ値、および、当該ハッシュ値を復号する鍵である。また、例えば相手認証においては、秘密情報は、乱数値に適用されるハッシュ関数、および、乱数値を暗号化／復号する鍵である。また、例えば暗号化処理または復号処理においては、秘密情報は鍵である。
【０１４９】
その一方で、攻撃検出装置１は、攻撃によって第三者が得られる不正な利益が少ない、あるいは、ほとんどない非攻撃対象処理に対して、電源指紋認証部２０および電圧攻撃検出部３０を動作させなくてもよい。非攻撃対象処理は、例えば秘密処理を用いない処理である。
【０１５０】
要するに、電源指紋認証部２０は、情報処理装置６が攻撃対象処理を実行しているときに電源電流を検出し、情報処理装置６が非攻撃対象処理を実行しているときに電源電流を検出しなくてもよい。同様に、電圧攻撃検出部３０は、情報処理装置６が攻撃対象処理を実行しているときに電源電圧を検出し、情報処理装置６が非攻撃対象処理を実行しているときに電源電圧を検出しなくてもよい。
【０１５１】
これによれば、情報処理装置６が攻撃を受けやすい状況で電源指紋認証部２０および電圧攻撃検出部３０を動作させるとともに、情報処理装置６が攻撃を受けにくい状況で電源指紋認証部２０および電圧攻撃検出部３０の動作を停止できる。したがって、低い消費電力で効果的に攻撃を検出することができる。
【０１５２】
ただし、電源指紋認証部２０の機能は、情報処理装置６の処理における電流パターンがある程度決まっていることを前提とした機能である。よって、例えば以下で説明する情報処理装置６の処理は電源指紋認証部２０による攻撃検出機能にあまり適していない。
【０１５３】
例えば図２に示すように、情報処理装置６は入力部６７と表示部６８とを含んでいる場合がある。入力部６７および表示部６８はバス６０に接続されている。表示部６８は例えば液晶ディスプレイまたは有機ＥＬ（Electro Luminescence）ディスプレイ等のディスプレイである。表示部６８は制御部６２の制御によって、文字、記号、画像などを表示することができる。入力部６７は例えばキーボードまたはマウス等の入力デバイスである。入力部６７はユーザからの入力情報を制御部６２に出力することができる。
【０１５４】
制御部６２は、入力部６７に対するユーザの入力に応じて表示部６８の表示内容を変更する。例えば、ユーザは入力部６７を用いて文章または絵を入力し、制御部６２は入力部６７の入力に応じてその文章または絵を表示部６８に表示する。このような処理においては、表示部６８の表示内容がユーザの入力によって逐次変化するため、その処理中に流れる電源電流の電流パターンはユーザの入力に応じて逐次変化する。
【０１５５】
このような処理に対応した基準パターンを一意に決定することは困難であるので、この処理は電源指紋認証部２０の機能にはあまり適していない。
【０１５６】
そこで、例えば、攻撃検出装置１は、ユーザの入力部６７への入力を必要としない攻撃対象処理に対しては、電源指紋認証部２０および電圧攻撃検出部３０を動作させてもよい。これにより、電源指紋認証部２０の攻撃検出機能および電圧攻撃検出部３０の攻撃検出機能により、当該攻撃対象処理に対する攻撃をより適切に検出できる。
【０１５７】
一方で、攻撃検出装置１は、ユーザの入力部６７への入力を必要とする攻撃対象処理に対しては、電源指紋認証部２０を動作させずに電圧攻撃検出部３０を動作させてもよい。これにより、電圧攻撃検出部３０の攻撃検出機能により、当該攻撃対象処理に対する攻撃を検出できる。
【０１５８】
また、攻撃検出装置１は、既設の電源回路５および既設の情報処理装置６に対して外付けで追加可能であってもよい。言い換えれば、攻撃検出装置１は情報処理装置６とは異なるチップに形成されていることが望ましい。ここでいうチップとは、回路が形成された半導体基板の上に接続端子を実装した構成に対して、接続端子の先端部が露出するように、樹脂封止（パッケージング）して得られる態様をいう。攻撃検出装置１を外付けするためには、攻撃検出装置１を電源ラインＬ１に接続する必要があり、そのため、電源ラインＬ１（少なくとも端子）は例えば基板上において露出している。よって、不正な第三者はこの電源ラインＬ１に対して作業を行いやすく、攻撃検出装置１よりも後段の切断箇所Ｐ２で電源ラインＬ１を切断したり、不正電源回路５’および不正負荷回路６’を電源ラインＬ１ａおよび電源ラインＬ１ｂに接続させやすい。
【０１５９】
一方で、攻撃検出装置１が情報処理装置６の内部に実装されている場合には、不正な第三者は切断箇所Ｐ２で電源ラインＬ１を切断することが困難であり、また、不正電源回路５’を電源ラインＬ１ｂに接続することも困難となる。しかしなら、攻撃検出装置１を情報処理装置６の内部に実装する場合には、情報処理装置６の内部の設計をやり直す必要がある。例えば情報処理装置６として市販の汎用マイコンを使用している場合、その設計をやり直すことは容易ではない。仮に設計をやり直すと相当な費用が生じてしまう。
【０１６０】
攻撃検出装置１は、上述のように、不正電源回路５’および不正負荷回路６’を用いた情報処理装置６への攻撃を検出することができる。したがって、攻撃検出装置１を外付けで追加可能な構成を採用しても、情報処理装置６をより適切に攻撃から保護することができる。しかも、攻撃検出装置１が外付けで追加可能であれば、製造コストの増大を回避することができる。
【０１６１】
第２の実施の形態．
第１の実施の形態では、情報処理装置６は、プログラム認証処理を開始する際に暗号開始信号を攻撃検出装置１に送信している（ステップＳ１３）。そして、攻撃検出装置１はこの暗号開始信号の受信に応答して、電源指紋認証部２０および電圧攻撃検出部３０を動作させている（ステップＳ１６からステップＳ１８）。
【０１６２】
もし、不正な第三者が通信を傍受することにより、当該暗号開始信号を不正に取得することができれば、攻撃対象となるプログラム認証処理の開始タイミングを推察できるおそれがある。つまり、不正な第三者が暗号開始信号を解読できなくても、この暗号開始信号がなんらかの攻撃対象処理の開始タイミングを意味していると推察する恐れがある。このような開始タイミングの情報漏洩は好ましくない。
【０１６３】
そこで、第２の実施の形態では、攻撃対象処理の開始タイミングをより確実に秘匿することを企図する。
【０１６４】
第２の実施の形態にかかる電子機器１００の構成は第１の実施の形態と同様である。ただし、情報処理装置６は通信ラインＬ２を介してダミー信号を攻撃検出装置１に送信する。具体的な一例として、情報処理装置６は攻撃対象処理（例えばプログラム認証処理）の実行期間以外のタイミングで、ダミー信号を攻撃検出装置１に送信する。
【０１６５】
図１２は、電子機器１００の上記動作の一例を示すフローチャートである。電子機器１００は、第１の実施の形態と同様に、図７のステップＳ１からステップＳ１２を実行してもよいものの、図１２の例では、紙面の都合上、これらのステップを省略している。図１２に例示するように、電子機器１００は第１の実施の形態と同様にステップＳ１３からステップＳ２４を実行する。ここでは、攻撃が行われていない場合を想定しているので、ステップＳ２４において情報処理装置６は処理を続行する。
【０１６６】
ステップＳ２４の次のステップＳ２５にて、情報処理装置６の制御部６２は通信部６１を介してダミー信号を攻撃検出装置１に送信する。このダミー信号は攻撃検出装置１にとって意味のない信号であってよい。ここでは暗号通信を行うので、暗号復号器６４はダミー信号に対して暗号化処理を実行して、暗号ダミー信号を生成する。制御部１２はこの暗号ダミー信号を、通信部６１を介して攻撃検出装置１に送信する。
【０１６７】
ステップＳ２６にて、攻撃検出装置１の制御部１２は通信部１４を介して暗号ダミー信号を受信する。制御部１２は暗号ダミー信号を暗号復号器１５に出力し、暗号復号器１５は暗号ダミー信号に対して復号処理を実行して、ダミー信号を生成する。攻撃検出装置１はこのダミー信号に応じた処理を行う必要がない。ここでは、攻撃検出装置１はダミー信号に応じた処理を行わずに、ダミー信号を破棄する。
【０１６８】
図１２の例では、情報処理装置６は１回のみ暗号ダミー信号を送信しているものの、例えば所定時間ごとに暗号ダミー信号を送信してもよい。
【０１６９】
これによれば、不正な第三者が通信を傍受して種々の信号を取得しても、種々の信号には、暗号ダミー信号が含まれているので、どの信号が攻撃対象処理（例えばプログラム認証処理）の開始タイミングを示しているのか特定することが難しい。言い換えれば、攻撃対象処理の開始タイミング、ひいては対象処理信号の実行期間をより確実に秘匿することができる。
【０１７０】
なお、上述の例では、攻撃検出装置１はダミー信号に応じた処理を行っていないので、不正な第三者が攻撃検出装置１の電源電流をモニタすることにより、ダミー信号の受信後に攻撃検出装置１がなんら処理を行っていないことを特定できる可能性がある。つまり、第三者はダミー信号が攻撃検出装置１にとって意味のない信号であることを特定できる可能性がある。この場合、ダミー信号の送信が無駄となる。
【０１７１】
そこで、攻撃検出装置１は偽装のためにダミー信号に応じた処理を行ってもよい。図１３は、電子機器１００のこの動作の一例を示すフローチャートである。電子機器１００は第１の実施の形態と同様に図７のステップＳ１からステップＳ１２を実行してもよいものの、図１３では、紙面の都合上、これらのステップを省略している。図１３の例でも、電子機器１００は第１の実施の形態と同様にステップＳ１３からステップＳ２４を実行する。ここでは、攻撃が行われていない場合を想定しているので、ステップＳ２４において情報処理装置６は処理を続行する。
【０１７２】
ステップＳ２４の次のステップＳ２８にて、情報処理装置６の制御部６２は通信部６１を介してダミー開始信号を攻撃検出装置１に送信する。ダミー開始信号はダミー信号の一種であり、ダミー処理の開始を示す信号である。ここでいうダミー処理とは、偽装のために攻撃検出装置１が行う以下の動作を意味する。ここでは暗号通信を行うので、暗号復号器６４はダミー開始信号に対して暗号化処理を実行して、暗号ダミー開始信号を生成する。制御部１２はこの暗号ダミー開始信号を、通信部６１を介して攻撃検出装置１に送信する。
【０１７３】
情報処理装置６の制御部６２は暗号ダミー開始信号の送信後に、適宜に別の処理を実行する。例えば情報処理装置６は画像処理等の非攻撃対象処理を実行する。
【０１７４】
ステップＳ２９にて、攻撃検出装置１の処理回路１１は通信部１４を介したダミー開始信号の受信に応答して、電源指紋認証部２０および電圧攻撃検出部３０にそれぞれ起動信号を出力する。具体的には、処理回路１１は通信部１４を介して暗号ダミー開始信号を受信し、この暗号ダミー開始信号を暗号復号器１５に出力する。暗号復号器１５は暗号ダミー開始信号に対して復号処理を実行して、ダミー開始信号を生成する。処理回路１１はこのダミー開始信号に基づいて、電源指紋認証部２０および電圧攻撃検出部３０にそれぞれ起動信号を出力する。また処理回路１１は電源指紋認証部２０に、ダミー処理を示す情報も出力する。
【０１７５】
ステップＳ３０にて、電圧グリッチ検出部３１は起動信号の入力に応答して、電源電圧の検出を開始し、グリッチ判定処理を実行する。ステップＳ３１にて、異常レベル検出部３２は起動信号の入力に応答して、電源電圧の検出を開始し、異常レベル判定処理を実行する。ステップＳ３２にて、電源指紋認証部２０は起動信号の入力に応答して電源電流の検出を開始する。ステップＳ３０からステップＳ３２はステップＳ１６からステップＳ１８とそれぞれ同じ処理である。
【０１７６】
情報処理装置６の制御部６２は例えばダミー開始信号の送信から所定時間が経過した後に、ステップＳ３３にて、通信部６１を介してダミー終了信号を攻撃検出装置１に送信する。情報処理装置６はダミー終了信号を暗号化して送信してもよい。具体的には、暗号復号器６４はダミー終了信号に対して暗号化処理を実行して、暗号ダミー終了信号を生成する。制御部１２はこの暗号ダミー終了信号を、通信部６１を介して攻撃検出装置１に送信する。
【０１７７】
ステップＳ３４にて、攻撃検出装置１の処理回路１１は通信部１４を介したダミー終了信号の受信に応答して、電源指紋認証部２０および電圧攻撃検出部３０にそれぞれ停止信号を出力する。具体的には、処理回路１１は通信部１４を介して暗号ダミー終了信号を受信し、この暗号ダミー信号を暗号復号器１５に出力する。暗号復号器１５は暗号ダミー終了信号に対して復号処理を行って、ダミー終了信号を生成する。処理回路１１はダミー終了信号に基づいて、電源指紋認証部２０および電圧攻撃検出部３０にそれぞれ停止信号を出力する。電源指紋認証部２０は停止信号の入力に応答して電源電流の検出を停止し、電圧グリッチ検出部３１および異常レベル検出部３２は停止信号の入力に応答して電源電圧の検出を停止して各判定処理を停止する。
【０１７８】
次にステップＳ３５にて、電源指紋認証部２０は、ステップＳ３２において検出した電源電流によって構成される電流パターンが、ダミー基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部２０は、ダミー開始信号の送信からダミー終了信号の送信までの全期間における電流パターンとダミー基準パターンとを比較する。ダミー基準パターンとは、複数の値によって構成されるパターンであるものの、特定の処理における電流パターンである必要はない。ダミー基準パターンは任意のパターンであってもよい。
【０１７９】
電源指紋認証部２０は電流パターンとダミー基準パターンとの類否判定（以下、第２類否判定と呼ぶ）の結果を処理回路１１に出力する。通常、電流パターンはダミー基準パターンと相違するので、電源指紋認証部２０は電流パターンがダミー基準パターンと類似しないと判定する。この第２類否判定の結果は情報処理装置６への攻撃を意味しない。
【０１８０】
情報処理装置６の制御部６２はダミー終了信号を送信した後に、ステップＳ３６にて、ステップＳ２２と同様に、暗号要求信号を攻撃検出装置１に送信する。ステップＳ３７にて、攻撃検出装置１の制御部１２は、ステップＳ２３と同様に、暗号要求信号に対する応答としての暗号結果信号を、通信部１４を介して情報処理装置６に送信する。通常は、電流パターンはダミー基準パターンと相違するので、制御部１２は暗号結果信号として、攻撃検出信号を送信する。
【０１８１】
ステップＳ３８にて、情報処理装置６の制御部６２は通信部６１を介して暗号結果信号を受信する。暗号復号器６４は暗号結果信号に対して復号処理を実行して、結果信号を生成する。制御部６２はこの結果信号に応答した処理を行う必要はない。ここでは制御部６２は結果信号に応じた処理を行うことなく、結果信号を破棄する。つまり、制御部６２は次の処理の実行を禁止しない。なお、制御部６２が結果信号に応じた処理装置を行わないので、暗号結果信号に対する復号処理も不要である。つまり、制御部６２は暗号結果信号を破棄してもよい。
【０１８２】
以上のように、攻撃検出装置１の電源指紋認証部２０および電圧攻撃検出部３０は暗号ダミー開始信号の受信に応答して動作を開始する。これにより、暗号ダミー開始信号の送信後には、攻撃検出装置１を流れる電源電流は攻撃検出装置１の動作に応じて増大する。
【０１８３】
不正な第三者が通信を傍受しつつ、攻撃検出装置１を流れる電源電流をモニタしていた場合、不正な第三者は暗号ダミー開始信号に応答して攻撃検出装置１が動作を開始したことを確認できる。これによれば、不正な第三者は暗号ダミー開始信号が攻撃対象処理（例えばプログラム認証処理）の開始タイミングを示していると誤認しやすい。換言すれば、攻撃対象処理の開始タイミング、ひいては攻撃対象処理の実行期間をより確実に秘匿することができる。
【０１８４】
しかも、図１３の例では、情報処理装置６は暗号要求信号を攻撃検出装置１に送信し（ステップＳ３６）、攻撃検出装置１はこの暗号要求信号に応答して暗号結果信号を情報処理装置６に送信する（ステップＳ３７）。つまり、ステップＳ２２からステップＳ２４と同様の一連の処理が、ダミー処理でも行われる。よって、本来の処理（ステップＳ１３からステップＳ２４までの一連の処理）であっても、ダミー処理（ステップＳ２８からステップＳ３８までの一連の処理）であっても、通信ラインＬ２には、４つの信号（開始信号、終了信号、要求信号および結果信号）が流れる。
【０１８５】
したがって、たとえ不正な第三者が通信を傍受していたとしても、本来の処理とダミー処理とを区別することは難しい。よって、不正な第三者が攻撃対象処理の実行期間を特定することをより困難にすることができる。
【０１８６】
なお、上述の例において、ダミー開始信号（ステップＳ２８）およびダミー終了信号（ステップＳ３３）は、ダミー処理の実行期間を示している。よって、ダミー開始信号およびダミー終了信号を纏めて、ダミー処理の実行期間を示すダミー期間信号と呼ぶことができる。このダミー期間信号を用いると、上述の動作を次のように説明することもできる。すなわち、情報処理装置６はこのダミー期間信号に対して暗号化処理を実行して暗号ダミー期間信号（暗号ダミー開始信号および暗号ダミー終了信号）を生成し、この暗号ダミー期間信号を攻撃検出装置１に送信している。そして、攻撃検出装置１の暗号復号器１５は、受信した暗号ダミー期間信号に対して復号処理を実行してダミー期間信号（ダミー開始信号およびダミー終了信号）を生成する。電源指紋認証部２０は、当該ダミー期間信号に基づいて、ダミー処理の実行期間において電源電流を検出して電流パターンを取得し、電圧攻撃検出部３０は、当該ダミー期間信号に基づいて、ダミー処理の実行期間において電源電圧を検出する。
【０１８７】
ところで、ダミー処理における電流パターンの第２類否判定（ステップＳ３５）の結果は、上述したように、情報処理装置６の処理に影響を与えない。よって、第２類否判定の結果はどのような結果であろうと構わない。したがって、電源指紋認証部２０は必ずしもダミー基準パターンを用いる必要はない。電源指紋認証部２０は、記憶部に記憶された基準パターンのいずれを用いてもよい。
【０１８８】
さて、上述のように、電源指紋認証部２０は処理回路１１からの情報に応じた基準パターンを用いる。例えば処理回路１１は、情報処理装置６からプログラム認証処理についての暗号開始信号を受け取ったときには、プログラム認証処理の情報を電源指紋認証部２０に出力し、電源指紋認証部２０はこの情報に基づいて、プログラム認証処理に対応した基準パターンを用いる。また、処理回路１１は、情報処理装置６からダミー処理についての暗号ダミー開始信号を受け取ったときには、ダミー処理を示す情報を電源指紋認証部２０に出力し、電源指紋認証部２０はこの情報に基づいて、ダミー基準パターンを用いる。
【０１８９】
ダミー処理において用いられる基準パターンはダミー基準パターンである必要はないので、ダミー開始信号は、必ずしも、ダミー処理の開始を示す信号である必要はない。ダミー開始信号として、例えばプログラム認証処理の開始信号と同じ信号を採用してもよい。同様に、ダミー終了信号もプログラム認証処理の終了信号と同じ信号であってもよい。この場合、電源指紋認証部２０はダミー処理の第２類否判定（ステップＳ３５）において、プログラム認証処理に対応した基準パターンを用いる。
【０１９０】
これによっても、通信ラインＬ２には、本来の処理（ステップＳ１９からステップＳ２４までの一連の処理）と同様の信号が流れるので、たとえ第三者が通信を傍受していたとしても、本来の処理とダミー処理とを区別することは難しい。言い換えれば、攻撃対象処理の実行期間をより確実に秘匿することができる。
【０１９１】
なお、図１３の例では、電源指紋認証部２０はダミー終了信号の受信後に、ステップＳ３５にて電流パターンの第２類否判定を行っているものの、必ずしもこれに限らない。図１４は、電子機器１００の動作の一例を示すフローチャートである。図１４の例では、図１３のステップＳ２２からステップＳ２４までの一連の処理、および、ステップＳ３６からステップＳ３８までの一連の処理は実行されず、ステップＳ１８およびステップＳ３２に替えて、それぞれステップＳ１８’およびステップＳ３２’が実行される。
【０１９２】
ステップＳ３２’はステップＳ３０およびステップＳ３１と並行して実行される。ステップＳ３２’においては、電源指紋認証部２０は電源ラインＬ１の電源電流を例えば所定時間ごとに検出する。電源指紋認証部２０は電源電流の検出のたびに、それまでに検出した電流値によって検出される電流パターンが、ダミー基準パターンと類似するか否かを判定する。電源指紋認証部２０はその判定結果を処理回路１１に出力する。
【０１９３】
処理回路１１は、ダミー開始信号に応答して電源指紋認証部２０を起動した場合、電源指紋認証部２０による判定結果に応じた処理を行わず、その判定結果を破棄してもよい。つまり、処理部１０は、第２類否判定の結果によらず、情報処理装置６による次の処理の実行を禁止しない。なぜなら、第２類否判定の結果は情報処理装置６への攻撃を意味しないからである。
【０１９４】
以上のように、図１４の例であっても、電源指紋認証部２０および電圧攻撃検出部３０は暗号ダミー開始信号に応答して動作を行う。よって、不正な第三者が通信を傍受しつつ攻撃検出装置１の電源電流をモニタしていた場合、暗号ダミー開始信号が攻撃対象処理の開始タイミングを示していると誤認しやすい。換言すれば、攻撃対象処理の開始タイミング、ひいては攻撃対象処理の実行期間をより確実に秘匿できる。
【０１９５】
第３の実施の形態．
第１および第２の実施の形態においては、不正負荷回路６’を流れる電源電流は正規の情報処理装置６を流れる電源電流と相違していた（図５参照）。これにより、電源指紋認証部２０は、不正負荷回路６’を用いた攻撃を実質的に検出することができた。
【０１９６】
しかしながら、もし仮に、不正負荷回路６’を流れる電源電流が正規の情報処理装置６を流れる電源電流と一致すれば、電源指紋認証部２０は、この不正負荷回路６’を用いた攻撃を検出することができない。なぜなら、不正負荷回路６’を流れる電源電流によって構成される電流パターンが基準パターンとほぼ一致するからである。つまり、この場合には、電源指紋認証部２０による攻撃検出機能を無効化することができる。
【０１９７】
図１５は、電源指紋認証部２０の攻撃検出機能を無効化すべく、不正な第三者が攻撃を行っているときの電子機器１００の構成の一例を概略的に示す図である。図１５の例では、不正負荷回路６’は電子機器１００と同様の構成を有しており、具体的には、攻撃検出装置１と、情報処理装置６とを含んでいる。
【０１９８】
以下では、不正負荷回路６’に属する構成については、その符号の末尾に「Ａ」を追記して説明する。例えば情報処理装置６Ａは不正負荷回路６’に属する情報処理装置６を意味する。
【０１９９】
情報処理装置６Ａは電源ラインＬ１Ａに接続されている。また、情報処理装置６Ａは通信ラインＬ２ＡおよびクロックラインＬ３Ａの各々を介して攻撃検出装置１Ａに接続されている。情報処理装置６Ａの内部構成は情報処理装置６の内部構成と同一である。攻撃検出装置１Ａは電源ラインＬ１Ａの電源電圧および電源電流を検出する。攻撃検出装置１Ａの内部構成は攻撃検出装置１の内部構成と同一である。図１５の例では、シャント抵抗Ｒ１Ａが電源ラインＬ１Ａに設けられており、その両端電圧が攻撃検出装置１Ａに入力されている。これにより、攻撃検出装置１Ａは電源ラインＬ１Ａの電源電流を検出することができる。
【０２００】
図１５の例では、電源ラインＬ１は不正な第三者によって切断箇所Ｐ２において切断され、電源ラインＬ１ａおよび電源ラインＬ１ｂに分割されている。不正電源回路５’は電源ラインＬ１ｂに接続されており、電源ラインＬ１ｂを介して情報処理装置６に電源電圧を印加する。不正な第三者は不正電源回路５’を用いて、情報処理装置６の電源電圧に攻撃用の電圧異常を発生させることができる。
【０２０１】
電源ラインＬ１ａの一端は正規な電源回路５に接続されている。また、電源ラインＬ１ａは電源ラインＬ１Ａに接続されている。これにより、電源回路５は電源ラインＬ１ａおよび電源ラインＬ１Ａを介して情報処理装置６Ａに電源電圧を印加できる。よって、情報処理装置６Ａには、正規の電源電圧が印加される。
【０２０２】
また図１５の例では、シャント抵抗Ｒ１およびシャント抵抗Ｒ１Ａが相互に直列に接続されるように、電源ラインＬ１ａが電源ラインＬ１Ａに接続されている。これによれば、電源回路５からシャント抵抗Ｒ１およびシャント抵抗Ｒ１Ａを介して情報処理装置６Ａに電源電流が流れる。よって、攻撃検出装置１および攻撃検出装置１Ａは、情報処理装置６Ａを流れる電源電流を検出する。また、シャント抵抗Ｒ１およびシャント抵抗Ｒ１Ａの抵抗値は通常小さいので、攻撃検出装置１および攻撃検出装置１Ａは、情報処理装置６Ａに印加される電源電圧を検出する。
【０２０３】
不正な第三者は電子機器１００および不正負荷回路６’にほぼ同時に電源を投入する。不正負荷回路６’の攻撃検出装置１Ａおよび情報処理装置６Ａの内部構成は、それぞれ、電子機器１００の攻撃検出装置１および情報処理装置６と同一であるので、電源の同時投入により、電子機器１００および不正負荷回路６’はほぼ同期して、互いに同じ動作を行う。
【０２０４】
以下、一例として、電子機器１００および不正負荷回路６’が図７のフローチャートに沿って動作する場合について詳述する。ここでは、電源指紋認証部２０の攻撃検出機能の無効化を説明するので、以下では、電圧攻撃検出部３０の説明を省略する。図１６は、電子機器１００および不正負荷回路６’の動作タイミングの一例を概略的に示す図である。
【０２０５】
まず、電子機器１００および不正負荷回路６’の両方にほぼ同時に電源が投入される（ステップＳ１）。電子機器１００および不正負荷回路６’はこの電源の投入に応答してほぼ同時に通信確立処理を行う（ステップＳ６およびステップＳ７）。つまり、電子機器１００の攻撃検出装置１および情報処理装置６は相互に通信確立処理を行い、不正負荷回路６’の攻撃検出装置１Ａおよび情報処理装置６Ａも相互に通信確立処理を行う。これらの通信確立処理は互いに同じ処理であるので、情報処理装置６の電源電圧に電圧異常が発生していなければ、情報処理装置６を流れる電源電流は、情報処理装置６Ａを流れる電源電流とほぼ等しい。
【０２０６】
また、電源の投入に応答して、攻撃検出装置１の電源指紋認証部２０および攻撃検出装置１Ａの電源指紋認証部２０Ａは、ほぼ同時に電源電流の検出を開始する（ステップＳ５）。電源電流の検出および通信確立処理は電源の投入に応答して行われるので、これらはほぼ同時に開始される。図１５の態様では、電源指紋認証部２０および電源指紋認証部２０Ａは情報処理装置６Ａを流れる電源電流を検出するので、電源指紋認証部２０および電源指紋認証部２０Ａは、通信確立処理において情報処理装置６Ａを流れる電源電流の電流パターンを取得する。
【０２０７】
電子機器１００および不正負荷回路６’はほぼ同時に通信確立処理を終了し、この通信確立処理の終了に応答して、電源指紋認証部２０および電源指紋認証部２０Ａは電流検出を停止する（ステップＳ８）。そして、電子機器１００および不正負荷回路６’はステップＳ８からステップＳ１２までの一連の処理を実行する。
【０２０８】
さて、情報処理装置６Ａを流れる電源電流は、正規の情報処理装置６を流れる電源電流と等しいので、電源指紋認証部２０が通信確立処理において取得した電流パターンは、通信確立処理に対応した正規の電流パターンとほぼ一致する。
【０２０９】
したがって、電源指紋認証部２０および電源指紋認証部２０Ａの各々は、取得した電流パターンが、通信確立処理に対応した基準パターンに類似すると判定する（ステップＳ９）。
【０２１０】
よって、不正な第三者が電子機器１００の通信確立処理中に不正電源回路５’を用いて情報処理装置６へと攻撃を行っていたとしても、攻撃検出装置１の電源指紋認証部２０はその攻撃を検出することができない。
【０２１１】
次に、電子機器１００の情報処理装置６および不正負荷回路６’の情報処理装置６ＡはステップＳ１３からステップＳ２４までの一連の処理をほぼ同時に実行する。つまり、情報処理装置６および情報処理装置６Ａはほぼ同時に、暗号開始信号をそれぞれ攻撃検出装置１および攻撃検出装置１Ａに出力し（ステップＳ１３）、その暗号開始信号に応答して、ほぼ同時にプログラム認証処理（ステップＳ１４）を開始する（図１６も参照）。
【０２１２】
攻撃検出装置１および攻撃検出装置１Ａは、それぞれ、情報処理装置６および情報処理装置６Ａからほぼ同時に暗号開始信号を受信するので、攻撃検出装置１の電源指紋認証部２０および攻撃検出装置１Ａの電源指紋認証部２０Ａはほぼ同時に電源電流の検出（ステップＳ１８）を開始する（図１６も参照）。
【０２１３】
以上のように、情報処理装置６Ａは暗号開始信号に応答してプログラム認証処理を開始する。電源指紋認証部２０および電源指紋認証部２０Ａもそれぞれ暗号開始信号に応答して開始する。情報処理装置６および情報処理装置６Ａにおける暗号開始信号の送信タイミングはほぼ一致するので、電源指紋認証部２０および電源指紋認証部２０Ａの各々において、電源電流の検出の開始タイミングは情報処理装置６Ａのプログラム認証処理の開始タイミングとはほぼ一致する。よって、電源指紋認証部２０および電源指紋認証部２０Ａは情報処理装置６Ａのプログラム認証処理における電流パターンを取得できる。
【０２１４】
情報処理装置６Ａを流れる電源電流は、正規の情報処理装置６を流れる電源電流と等しいので、電源指紋認証部２０および電源指紋認証部２０Ａが取得した電流パターンは、正規の電流パターンとほぼ一致する。したがって、電源指紋認証部２０および電源指紋認証部２０Ａの各々は、取得した電流パターンが、プログラム認証処理に対応した基準パターンに類似すると判定する（ステップＳ２１）。
【０２１５】
よって、不正な第三者が情報処理装置６によるプログラム認証処理中に不正電源回路５’を用いて情報処理装置６へと攻撃を行っていたとしても、攻撃検出装置１の電源指紋認証部２０はこの攻撃を検出できない。
【０２１６】
そこで、第３の実施の形態では、このような攻撃を検出することを企図する。第３の実施の形態にかかる電子機器１００の構成の一例は図１と同様である。ただし、情報処理装置６の制御部６２はプログラム認証処理の開始タイミングを、乱数生成器６６によって生成された乱数に基づいて決定する。
【０２１７】
不正負荷回路６’の情報処理装置６Ａは情報処理装置６と同一の動作を行うので、情報処理装置６Ａの制御部６２Ａもプログラム認証処理の開始タイミングを、乱数生成器６６Ａによって生成された乱数に基づいて決定する。乱数生成器６６Ａは乱数生成器６６とは独立して動作するので、乱数生成器６６が生成した乱数とは異なる乱数を生成する。よって、情報処理装置６におけるプログラム認証処理の開始タイミングは情報処理装置６Ａにおけるプログラム認証処理の開始タイミングと相違する。
【０２１８】
図１７は、第３の実施の形態にかかる電子機器１００の動作の一例を示すフローチャートである。電子機器１００は第１の実施の形態と同様に、図７のステップＳ１からステップＳ１２までの一連の処理を実行するものの、図１７では、紙面の都合上、これらのステップを省略している。
【０２１９】
ここでは一例として、まず、電源指紋認証部２０および電源指紋認証部２０Ａが基準パターンを時間軸上でずらさずに電流パターンと基準パターンとの類否判定を行う場合について述べ、基準パターンを時間軸上でずらして類否判定を行う場合についてはその後に述べる。
【０２２０】
図１８は、電子機器１００および不正負荷回路６’の動作タイミングの一例を概略的に示す図である。ここでは、不正な第三者が電子機器１００および不正負荷回路６’に対してほぼ同時に電源を投入する（ステップＳ１）ので、電子機器１００および不正負荷回路６’がほぼ同時にステップＳ１からステップＳ２４までの一連の処理を実行する。図１８の例では、電源の投入（ステップＳ１）、通信確立処理（ステップＳ６およびステップＳ７）、および、電源電流の検出（ステップＳ５）のタイミングが示されている。
【０２２１】
図１８に例示するように、電子機器１００および不正負荷回路６’は通信確立処理（ステップＳ６およびステップＳ７）および電源電流（ステップＳ５）の検出をほぼ同時に行う。この場合には、上述したように、電源指紋認証部２０は通信確立処理中の攻撃を検出できない。なお、電子機器１００における通信確立処理の開始タイミングと、不正負荷回路６’における通信確立処理の開始タイミングをずらすことにより、電源指紋認証部２０による攻撃検出が可能となるものの、この点については後に述べる。
【０２２２】
図１７を参照して、例えば通信確立処理が終了した後に、ステップＳ４０にて、情報処理装置６の制御部６２は乱数生成器６６に乱数を生成させる。次にステップＳ４１にて、制御部６２は、乱数生成器６６が生成した乱数に基づいて、プログラム認証処理の開始タイミングを決定する。制御部６２は例えば乱数が大きいほど、プログラム認証処理の開始タイミングを遅いタイミングに決定する。
【０２２３】
不正負荷回路６’も電子機器１００と同様に動作するので、ステップＳ４０にて、制御部６２Ａは乱数生成器６６Ａに乱数を生成させる。ただし、乱数生成器６６Ａは乱数生成器６６と独立して動作しているので、乱数生成器６６の乱数とは異なる乱数を生成する。次にステップＳ４１にて、制御部６２Ａは、乱数生成器６６Ａが生成した乱数に基づいて、プログラム認証処理の開始タイミングを決定する。
【０２２４】
乱数生成器６６および乱数生成器６６Ａは互いに異なる乱数を生成するので、情報処理装置６および情報処理装置６Ａが実行するプログラム認証処理の開始タイミングは互いに相違する。
【０２２５】
次にステップＳ１３にて、制御部６２は、プログラム認証処理を開始する際に、暗号開始信号を攻撃検出装置１に送信する。その後、ステップＳ１４からステップＳ２４までの一連の処理が行われる。具体的には、情報処理装置６の制御部６２は暗号開始信号に応答して、プログラム認証処理を開始し（ステップＳ１４）、攻撃検出装置１の電源指紋認証部２０は暗号開始信号に応答して、電源電流の検出を開始する（ステップＳ１８）。よって、電源指紋認証部２０は情報処理装置６によるプログラム認証処理の開始とほぼ同時に電源電流の検出を開始する。図１８に例示するように、電子機器１００において、プログラム認証処理の期間と電源電流の検出の期間が互いに一致している。ただし、ここでは、図１５の態様で不正な第三者が攻撃を行っている場合を想定しているので、電源指紋認証部２０は情報処理装置６ではなく、情報処理装置６Ａの電源電流を検出する。
【０２２６】
情報処理装置６Ａの制御部６２Ａも、プログラム認証処理を開始する際に、暗号開始信号を攻撃検出装置１Ａに送信する（ステップＳ１３）。ただし、制御部６２Ａによるプログラム認証処理の開始タイミングは制御部６２によるプログラム認証処理に開始タイミングと相違するので、情報処理装置６Ａによる暗号開始信号の送信タイミングも、情報処理装置６による暗号開始信号の送信タイミングとは相違する。図１８の例では、不正負荷回路６’の情報処理装置６Ａは、電子機器１００の情報処理装置６による暗号開始信号の送信タイミングよりも遅いタイミングで、暗号開始信号を送信する。
【０２２７】
情報処理装置６Ａの制御部６２Ａは暗号開始信号に応答して、プログラム認証処理を開始し（ステップＳ１４）、攻撃検出装置１Ａの電源指紋認証部２０Ａは暗号開始信号に応答して、電源電流の検出を開始する（ステップＳ１８）。よって、電源指紋認証部２０Ａは情報処理装置６Ａによるプログラム認証処理の開始とほぼ同時に電源電流の検出を開始する。図１８に例示するように、不正負荷回路６’において、プログラム認証処理の期間と電源電流の検出の期間が互いに一致している。電源指紋認証部２０Ａは情報処理装置６Ａの電源電流を検出する（図１５）ので、プログラム認証処理に対応した電流パターンを取得する。よって、この場合には、電源指紋認証部２０Ａは電流パターンが基準パターンに類似すると判定する。
【０２２８】
一方、不正な第三者が図１５の態様で攻撃を行っている場合、攻撃検出装置１の電源指紋認証部２０も情報処理装置６Ａの電源電流を検出する。この電源指紋認証部２０は上述のように、情報処理装置６Ａではなく、情報処理装置６からの暗号開始信号の受信に応答して電源電流の検出を開始する。よって、電源指紋認証部２０の電源電流の開始タイミングは、情報処理装置６Ａのプログラム認証処理の開始タイミングと相違する。図１８の例では、電子機器１００の電源指紋認証部２０は、不正負荷回路６’の情報処理装置６Ａによるプログラム認証処理よりも前に、情報処理装置６Ａの電源電流の検出を開始する。
【０２２９】
したがって、電源指紋認証部２０が取得する電流パターンは、プログラム認証処理に対応した基準パターンと時間軸においてずれる。よって、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路１１に出力する。つまり、電源指紋認証部２０は図１５の態様での攻撃を実質的に検出することができる。
【０２３０】
処理回路１１は第１の実施の形態と同様に、電流パターンが基準パターンと類似していないときに、攻撃検出信号を制御部１２に出力し、制御部１２は攻撃検出信号の入力に応答して、情報処理装置６による次の処理の実行を禁止する。
【０２３１】
以上のように、不正な第三者が、攻撃検出装置１Ａおよび情報処理装置６Ａを含む不正負荷回路６’を用いて情報処理装置６に対して攻撃を行ったとしても、攻撃検出装置１はその攻撃を検出することができる。したがって、情報処理装置６の安全性をさらに向上することができる。
【０２３２】
なお上述の例では、通信確立処理のトリガとして電源の投入を採用している。よって、通信確立処理の開始タイミングは電源の投入タイミングを基準として予め決定され得る。しかしながら、電子機器１００は通信確立処理の開始タイミングを乱数に基づいて決定してもよい。例えば情報処理装置６の制御部６２は電源の投入に応答して、乱数生成器６６に乱数を生成させる。制御部６２はこの乱数に基づいて通信確立処理の開始タイミングを決定し、通信部６１を介して、その開始タイミングを攻撃検出装置１に通知してもよい。例えば制御部６２は、通信確立処理用の暗号開始信号を攻撃検出装置１に送信する。攻撃検出装置１はその暗号開始信号に応答して、通信確立処理および電源電流の検出を開始すればよい。
【０２３３】
これによれば、不正な第三者が、攻撃検出装置１Ａおよび情報処理装置６Ａを含む不正負荷回路６’を用いたとしても、情報処理装置６および情報処理装置６Ａにおける通信確立処理の開始タイミングは互いに相違する。したがって、攻撃検出装置１はその攻撃を検出することができる。
【０２３４】
また、上述の例では、暗号開始信号の送信タイミングは通信確立処理またはプログラム認証処理の開始タイミングそのものを示しており、当該開始タイミングに応じて変化する。よって、不正な第三者が通信を傍受することにより、暗号開始信号の送信タイミングに基づいて、通信確立処理またはプログラム認証処理の開始タイミングを推察できるおそれがある。
【０２３５】
そこで、ここでは、不正な第三者が通信ラインＬ２の信号を傍受した場合に、通信確立処理またはプログラム認証処理の開始タイミングをより確実に秘匿することを企図する。
【０２３６】
図１９は、攻撃検出装置１の内部構成の一例を概略的に示す図である。攻撃検出装置１の処理部１０はタイマ１８をさらに含んでいる。図１９の例では、タイマ１８はバス１７に接続されている。タイマ１８は時間を計測することができる。
【０２３７】
以下では、代表的にプログラム認証処理について述べる。
【０２３８】
情報処理装置６の制御部６２は、上述と同様に、プログラム認証処理の開始タイミングを乱数に基づいて決定する。ただし、制御部６２は、電源の投入タイミングを基準として予め決められた送信タイミングで暗号開始信号を攻撃検出装置１に送信する。以下、具体的に説明する。
【０２３９】
図２０は、電子機器１００の動作の一例を示すフローチャートである。ステップＳ５０にて、情報処理装置６の乱数生成器６６は乱数を生成し、当該乱数を制御部６２に出力する。次にステップＳ５１にて、制御部６２は当該乱数に基づいて遅延時間を算出する。ここでいう遅延時間は、暗号開始信号の送信タイミングからプログラム認証処理の開始タイミングまでの時間を示す。制御部６２は、例えば、当該乱数に対して所定の関数を適用して遅延時間を算出する。
【０２４０】
次にステップＳ１３’にて、制御部６２は通信部６１を介して、開始信号および乱数を攻撃検出装置１に送信する。ここでは暗号通信を行うので、暗号復号器６４は開始信号および乱数に対して暗号化処理を実行して、暗号開始信号および暗号乱数信号を生成し、これらを制御部６２に出力する。制御部６２は通信部６１を介して暗号開始信号および暗号乱数信号を攻撃検出装置１に送信する。
【０２４１】
次にステップＳ５２にて、制御部６２はステップＳ１３’の送信処理から遅延時間が経過したか否かを判定する。制御部６２はタイマ６９を用いてこの判定を行う。未だ遅延時間が経過していないときには、制御部６２は再びステップＳ５２の処理を実行する。遅延時間が経過しているときには、ステップＳ１４にて、制御部６２はプログラム認証処理を実行する。
【０２４２】
一方、ステップＳ５３にて、攻撃検出装置１の処理回路１１は通信部１４を介して開始信号および乱数を受信し、その乱数に基づいて遅延時間を算出する。ここでは暗号通信が行われているので、処理回路１１は通信部１４を介して暗号開始信号および暗号乱数信号を受信し、これらを暗号復号器１５に出力する。暗号復号器１５は暗号開始信号および暗号乱数信号に対して復号処理を実行して、開始信号および乱数を生成する。処理回路１１は当該乱数に対して、制御部６２が用いた上記所定の関数を適用して遅延時間を算出する。
【０２４３】
次にステップＳ５４にて、処理回路１１は暗号開始信号の受信から遅延時間が経過したか否かを判定する。処理回路１１はタイマ１８を用いてこの判定を行う。未だ遅延時間が経過していないときには、処理回路１１はステップＳ５４の処理を再び実行する。遅延時間が経過しているときには、ステップＳ１５にて、処理回路１１は電源指紋認証部２０に起動信号を出力する。
【０２４４】
これによれば、電源指紋認証部２０は情報処理装置６のプログラム認証処理の開始とほぼ同じタイミングで電源電流の検出を開始することができる。以後、電子機器１００はステップＳ１６からステップＳ２４までの一連の処理を実行する。
【０２４５】
不正な第三者が図１５の態様で攻撃を行った場合、不正負荷回路６’も図２０のフローチャートに沿って動作する。図２１は、電子機器１００および不正負荷回路６’の動作タイミングの一例を概略的に示す図である。
【０２４６】
情報処理装置６Ａの乱数生成器６６Ａおよび情報処理装置６の乱数生成器６６は互いに独立して動作するので、ステップＳ５０において乱数生成器６６および乱数生成器６６Ａが生成する乱数は互いに相違する。よって、情報処理装置６および情報処理装置６Ａにおけるプログラム認証処理の開始タイミングは互いに相違する。図２１の例では、不正負荷回路６’の情報処理装置６Ａは、電子機器１００の情報処理装置６におけるプログラム認証処理の開始タイミングよりも遅れて、プログラム認証処理を開始している。
【０２４７】
攻撃検出装置１の電源指紋認証部２０は情報処理装置６におけるプログラム認証処理とほぼ同時に開始するものの、図１５の態様では、情報処理装置６Ａを流れる電源電流を検出する。情報処理装置６Ａのプログラム認証処理の実行期間は情報処理装置６のプログラム認証処理の実行期間と相違するので、電源指紋認証部２０が検出した電源電流によって構成される電流パターンは、正規の電流パターン（つまり基準パターン）と時間軸においてずれる。よって、電源指紋認証部２０は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路１１に出力する。
【０２４８】
以上のように、図２０の動作によっても、攻撃検出装置１は図１５の態様での攻撃を検出することができる。
【０２４９】
しかも、ステップＳ１３’における送信タイミングは、電源の投入タイミングを基準として予め決まっている（図２１も参照）。よって、不正な第三者が暗号開始信号および暗号乱数信号を傍受したとしても、これらの信号を解読できない以上、不正な第三者はプログラム認証処理の開始タイミングをこれらの信号の送信タイミングに基づいて特定することは難しい。言い換えれば、プログラム認証処理の開始タイミングをより確実に秘匿することができる。
【０２５０】
次に、電源指紋認証部２０および電源指紋認証部２０Ａが基準パターンを時間軸上でずらして電流パターンと基準パターンとの類否判定を行う場合について述べる（図１１）。この場合、電源指紋認証部２０および電源指紋認証部２０Ａは開始タイミングの若干のずれを吸収して類否判定を行うことができる。そこで、この場合には、制御部６２および制御部６２Ａはプログラム認証処理の開始タイミングを乱数値に基づいて大幅に変動させるとよい。具体的には、乱数値に応じた開始タイミングの変動範囲を、攻撃対象処理（例えばプログラム認証処理）の実行期間よりも大きな値、例えば当該実行期間よりも数十倍（例えば１０倍、より好ましくは２０倍）以上の値に設定する。当該実行期間としては、例えば、暗号開始信号の受信から暗号終了信号の受信までの期間を採用してもよい。
【０２５１】
このように開始タイミングの変動範囲を大きく設定することにより、情報処理装置６におけるプログラム認証処理の開始タイミングと、情報処理装置６Ａにおけるプログラム認証処理の開始タイミングとの間のタイミング差が大きくなる可能性を高めることができる。言い換えれば、両プログラム認証処理が時間軸上において重なる確率が非常に小さくなるように、開始タイミングの変動範囲を設定することができる。
【０２５２】
さて、不正な第三者が図１５の態様で攻撃を行っている場合には、電源指紋認証部２０は、情報処理装置６によるプログラム認証処理の実行期間において、情報処理装置６Ａを流れる電流を検出する。よって、情報処理装置６Ａのプログラム認証処理が情報処理装置６のプログラム認証処理と時間軸上において重ならない場合には、電源指紋認証部２０はプログラム認証処理中の電流パターンを得ることができない。したがってこの場合、電源指紋認証部２０は基準パターンが電流パターンと類似していないと判定する。これにより、処理回路１１は情報処理装置６が攻撃を受けていると判定する。言い換えれば、攻撃検出装置１は図１５の態様での攻撃を検出することができる。
【０２５３】
第４の実施の形態．
第４の実施の形態にかかる電子機器１００の構成は図１と同様である。ただし、第４の実施の形態では、電源ラインＬ１の電源電圧または電源電流に生じるノイズに起因した攻撃の誤検出を抑制する。
【０２５４】
図２２は、攻撃検出装置１の動作の一例を示すフローチャートである。まず、ステップＳ６０にて、処理回路１１は、電圧攻撃検出部３０が電源ラインＬ１の電源電圧における攻撃用の電圧異常を検出したか否かを判定する。電圧異常を検出していないときには、再びステップＳ６０の処理を実行する。
【０２５５】
電圧異常を検出したときには、ステップＳ６１にて、処理回路１１は攻撃による電圧異常の検出回数を計数し、その検出回数を記憶部１３に記憶する。この記憶部１３は不揮発性の記憶媒体である。より具体的には、処理回路１１は、記憶部１３に記憶された検出回数をインクリメントして更新する。なお、電圧異常は、グリッチおよび電圧異常レベルなどの複数の異常を含む。処理回路１１は、電圧異常の種類ごとに検出回数を計数してもよく、種類に依存せずに検出回数を計数してもよい。
【０２５６】
次にステップＳ６２にて、処理回路１１は検出回数が所定の回数基準値よりも大きいか否かを判定する。電圧異常の種類ごとに検出回数を計数している場合には、処理回路１１は、その種類ごとに、検出回数が回数基準値よりも大きいか否かを判定してもよい。回数基準値は例えば予め設定され、例えば記憶部１３に記憶されている。
【０２５７】
いずれの種類においても、検出回数が回数基準値以下であるときには、情報処理装置６が攻撃を受けているかどうかは不明として、処理回路１１は再びステップＳ６０を実行する。
【０２５８】
一方で、いずれかの種類において、検出回数が回数基準値よりも大きいときには、処理回路１１は情報処理装置６が攻撃を受けていると判定して攻撃検出信号を制御部１２に出力し、制御部１２は情報処理装置６による次の処理の実行を禁止する。
【０２５９】
第４の実施の形態によれば、複数回の電圧異常を検出したときに、攻撃検出装置１は情報処理装置６が攻撃を受けたと判定する。よって、ノイズが電源電圧に生じたとしても、このノイズによる攻撃の誤検出を抑制することができる。
【０２６０】
しかも、処理回路１１は検出回数を不揮発性の記憶部１３に記憶する。よって、電子機器１００への電源が遮断された場合、あるいは、電子機器１００が再起動された場合でも、電源遮断前あるいは再起動前の電源異常の検出を検出回数に反映することができる。故障攻撃においては、不正な第三者が電子機器１００に対して何度も電源を投入し直したり、または、電子機器１００を何度も再起動する場合がある。このような場合でも、攻撃検出装置１は検出回数を適切に計数することができるので、より適切に攻撃を検出することができる。
【０２６１】
以上のように、電子機器１００は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種実施の形態は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この電子機器１００の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０２６２】
１  攻撃検出装置
５  電源回路
６  情報処理装置
１０  処理部
１４  通信部
１５  暗号復号器
２０  電源指紋認証部
３０  電圧攻撃検出部
Ｌ１  電源ライン
【図１】
2020187443.tif 000003
【図２】
2020187443.tif 000004
【図３】
2020187443.tif 000005
【図４】
2020187443.tif 000006
【図５】
2020187443.tif 000007
【図６】
2020187443.tif 000008
【図７】
2020187443.tif 000009
【図８】
2020187443.tif 000010
【図９】
2020187443.tif 000011
【図１０】
2020187443.tif 000012
【図１１】
2020187443.tif 000013
【図１２】
2020187443.tif 000014
【図１３】
2020187443.tif 000015
【図１４】
2020187443.tif 000016
【図１５】
2020187443.tif 000017
【図１６】
2020187443.tif 000018
【図１７】
2020187443.tif 000019
【図１８】
2020187443.tif 000020
【図１９】
2020187443.tif 000021
【図２０】
2020187443.tif 000022
【図２１】
2020187443.tif 000023
【図２２】
2020187443.tif 000024