(57)【要約】【課題】ＩＣカードのセキュリティ対策の回路が消費する電力量を適正化する。【解決手段】ＩＣカードに用いるＩＣチップに、電源の電力レベルに応じて動作する複数のセキュリティ処理手段と、電源の電力レベルを測定する電力レベルセンサとセキュリティ対策レベル変更手段を備え、前記セキュリティ対策レベル変更手段が、前記電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることで消費電力を低減するＩＣチップを用いる。【選択図】図２
2020013249.tif 000002
【特許請求の範囲】
【請求項１】
予め記憶されたプログラムに基づいて演算を行うＩＣチップを備えたＩＣカードであって、
前記ＩＣチップが、電源の電力レベルに応じて動作する複数のセキュリティ処理手段と、電源の電力レベルを測定する電力レベルセンサとセキュリティ対策レベル変更手段を備え、
前記セキュリティ対策レベル変更手段が、前記電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることで前記ＩＣチップの消費電力を低減することを特徴とするＩＣカード。
【請求項２】
ＩＣカードに用いるＩＣチップであって、電源の電力レベルに応じて動作する複数のセキュリティ処理手段と、電源の電力レベルを測定する電力レベルセンサとセキュリティ対策レベル変更手段を備え、
前記セキュリティ対策レベル変更手段が、前記電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることで消費電力を低減することを特徴とするＩＣチップ。
【請求項３】
請求項２記載のＩＣチップであって、セキュリティ処理対応表データを記憶し、前記セキュリティ対策レベル変更手段が、前記セキュリティ処理対応表データに従って、電源の電力レベルに応じて前記各セキュリティ処理手段を動的に選択して動作させることを特徴とするＩＣチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップが実装されたＩＣカードに関し、ＩＣチップに対するセキュリティ攻撃を検知する手段を有するＩＣチップ及びＩＣカードに関する。
【背景技術】
【０００２】
従来、ＩＣカードは、クレジットカード、キャッシュカード、交通カード、パスポートおよび免許証などの広い分野で利用されている。ＩＣカードは、プラスチック板のカードに薄いＩＣ（Integrated Circuit：集積回路）チップや外部通信端子（接点端子またはアンテナコイル）を組み込んだカードである。ＩＣチップには、ＣＰＵやコプロセッサ（例えば、暗号処理回路）などのプロセッサや、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどメモリが集積されている。
【０００３】
ＩＣカードは、外部通信端子の種類に応じて接触型と非接触型に分類される。接触型ＩＣカードは外部通信端子が接点端子で構成され、非接触型ＩＣカードは外部通信端子がアンテナコイルで構成される。
【０００４】
ＩＣカードは、外部通信端子（接触端子、アンテナコイル）を介して、外部装置（例えば、リーダ／タイタ）との通信や、外部装置からの電力供給を受けることができる。例えば、ＩＣカードのＩＣチップは、外部装置から電力が供給されている間に、外部装置からの命令に応答して、所与の処理を実行して応答を返すことができる。
【０００５】
ＩＣカードは、ユーザによる保有およびアプリケーションの利用に伴い、ユーザ情報や利用履歴がＩＣチップのメモリに蓄積される。ＩＣチップのメモリに記憶されたユーザ情報や利用履歴は暗号化により保護されている。
【０００６】
一方、ＩＣチップは、メモリに蓄積された情報を不正に取得するための攻撃にさらされている。典型的な攻撃は、ＩＣチップの物理的な性質を利用しない攻撃としては、複数の消費電力波形を測定して統計処理により解析を行うことで秘密情報を解析する差分電力解析（ＤＰＡ：Differential Power Analysis）によるセキュリティ攻撃がある。また、プログラムを改変して、バッファオバーフローを生じさせてメモリに蓄積された情報を読み出すセキュリティ攻撃も知られている。
【０００７】
また、物理的に、ＩＣチップに入力するクロック周波数や電圧を一時的に変動させるなどして、故意的にＩＣカードに誤動作を生じさせ、正常時と誤動作時の出力の違いから、ＩＣカードに記憶された機密データを解読する攻撃を行うＤＦＡ攻撃（DFA: Differential Fault Analysis）があり。また、電子回路の改造（ラインの断線・変更）をしたり、誤動作（電圧変動、温度上昇（降下）、レーザ照射、周波数変更等による）を生じさせたりする攻撃がある。
【０００８】
特許文献１では、ＤＰＡ攻撃に対して、ランダム動作手段を設け、乱数を用いて回路の動作をランダムに切り替えることによって、セキュリティ攻撃を回避する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１６１４８２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１の技術では、ＩＣカードが外部装置から取得する電力の多少によらず回路の動作をランダムに切り替える。しかし、セキュリティ対策は冗長な処理であり、ＩＣチップに余分に電力を消費させる問題があり、処理時間を長くする問題がある。特に、ＩＣチップが外部装置から取得する電力量が少ない状況においては、ＩＣチップの取得した電力の多くをセキュリティ対策の回路が消費し、ＩＣチップの処理時間が遅くなるか、または、ＩＣチップが電力不足となり無応答になることもある問題があった。
【００１１】
そのため、本発明の課題は、かかる従来の問題を解決し、ＩＣチップのセキュリティ対策の回路が消費する電力量を適正化したＩＣチップ及びＩＣカードを得ることを課題とする。
【課題を解決するための手段】
【００１２】
本発明は、上記の課題を解決するために、予め記憶されたプログラムに基づいて演算を行うＩＣチップを備えたＩＣカードであって、
前記ＩＣチップが、電源の電力レベルに応じて動作する複数のセキュリティ処理手段と、電源の電力レベルを測定する電力レベルセンサとセキュリティ対策レベル変更手段を備え、
前記セキュリティ対策レベル変更手段が、前記電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることで前記ＩＣチップの消費電力を低減することを特徴とするＩＣカードである。
【００１３】
本発明は、この構成により、ＩＣチップのセキュリティ対策の回路が消費する電力量を適正化したＩＣカードが得られる効果がある。
【００１４】
また、本発明は、ＩＣカードに用いるＩＣチップであって、電源の電力レベルに応じて動作する複数のセキュリティ処理手段と、電源の電力レベルを測定する電力レベルセンサとセキュリティ対策レベル変更手段を備え、
前記セキュリティ対策レベル変更手段が、前記電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることで消費電力を低減することを特徴とするＩＣチップである。
【００１５】
また、本発明は、上記のＩＣチップであって、セキュリティ処理対応表データを記憶し、前記セキュリティ対策レベル変更手段が、前記セキュリティ処理対応表データに従って、電源の電力レベルに応じて前記各セキュリティ処理手段を動的に選択して動作させることを特徴とするＩＣチップである。
【発明の効果】
【００１６】
本発明によれば、セキュリティ対策レベル変更手段が電力レベルセンサが検出した電源の電力レベルに基づき、各セキュリティ処理手段を動的に選択して動作させることでＩＣチップの消費電力を低減する。
【００１７】
これにより、本発明は、ＩＣチップのセキュリティ対策の回路が消費する電力量を適正化できる効果がある。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態のＩＣカードの外観構成図である。
【図２】本発明の実施形態のＩＣカードの内部構成を示すブロック図である。
【図３】（ａ）本発明の実施形態の異常検知レジスタのデータ構造を示す図である。（ｂ）本発明の実施形態の起動管理情報のデータ構造を示す図である。
【図４】（ａ）本発明の実施形態の電源レベルデータを示す図である。（ｂ）本発明の実施形態のセキュリティ対応表データのデータ構造を示す図である。
【図５】本発明の実施形態の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について説明する。
＜第１の実施形態＞
図１は第１の実施形態のＩＣカード１００の外観構成図である。ＩＣカード１００は、当該カードの面上に、外部装置に備えられた端子と直接接続して通信する接触端子２、又は、アンテナコイル１による非接触で外部装置のリーダ／ライタ等と通信する手段を有する。ＩＣカード１００は、接触端子２とアンテナコイル１の両方を備えることもできる。
【００２０】
図２は、アンテナコイル１を有するＩＣカード１００の内部のハードウェア構成を示すブロック図である。ＩＣカード１００は、アンテナコイル１とＩＣチップ１０を有する。
【００２１】
ＩＣカード１００のＩＣチップ１０は、外部装置から接触端子２を通じて直接に給電を受けるか、又はアンテナコイル１から外部装置のリーダ／ライタの電磁界によって電力の供給を受け、その電力をＩＣチップ１０の電源１７に供給する。
【００２２】
ＩＣチップ１０は、ＩＣカード１００のアンテナコイル１から、外部装置のリーダ／ライタからの通信データと電力を受信する通信部１１と、制御手段１２と、記憶手段１３と、各種の耐タンパ用センサ１５と、ランダム動作手段等のセキュリティ処理手段１６と、電源１７を備える。
【００２３】
セキュリティ処理手段１６は、制御手段１２のハードロジック回路で構成する回路や、制御手段が実行するカードＯＳのカードマネージャ１４のプログラムで構成することができる。また、電源１７は、外部装置のリーダ／ライタからアンテナコイル１を介して、ＩＣチップ１０の通信部１１が受電した電力を一時的に蓄積する手段であり、ＩＣチップ１０の外に設けたコンデンサ等で構成できる。
【００２４】
（通信部１１）
ＩＣチップ１０の通信部１１は外部装置と信号のやりとりを行うものである。ここで、外部装置との通信は、例えば国際標準として規定されたＩＳＯ７８１６−３またはＩＳＯ１４４４３に準拠した手順で通信を行うこととしても良い。
【００２５】
（耐タンパ用センサ１５）
ＩＣチップ１０に耐タンパ用センサ１５として、電源１７の電圧を測定する電力レベルセンサ１５ａと、異常な周波数を検知する周波数センサ、異常な温度変動を検知する温度センサ、異常な光の照射を検知する光センサ、センサラインを監視するセンサライン監視センサを設ける。
【００２６】
（制御手段１２）
ＩＣチップ１０の演算処理を行う制御手段１２は、演算結果やプログラムの実行状態を保持するために制御レジスタを用いる。制御レジスタの１つに異常検知レジスタ１２ａを備える。
【００２７】
（異常検知レジスタ１２ａ）
制御手段１２に、図３（ａ）の様なデータ構成の異常検知レジスタ１２ａを設ける。異常検知レジスタ１２ａは、ＩＣチップ１０に対する攻撃が検知されたことを示す各種の検
知フラグの値を各ビットに記録する。異常検知レジスタ１２ａは、各種の耐タンパ用センサ１５と連動する。耐タンパ用センサ１５が異常を検知すると、制御手段１２のハードロジック回路が自動的に、異常検知レジスタ１２ａのその異常に対応する所定の検知フラグを設定する。
【００２８】
また、カードマネージャ１４のセキュリティ攻撃判定手段１４ａが異常を検知すると、セキュリティ攻撃判定手段１４ａが、異常検知レジスタ１２ａのその異常に対応する所定の検知フラグを設定する。
【００２９】
（変形例１）
異常検知レジスタ１２ａは、制御手段１２内の制御レジスタの１つとして構成する以外に、変形例１として、記憶手段１３の揮発性メモリ中の所定の記憶領域に情報を記憶させることで異常検知レジスタ１２ａを構成することもできる。
【００３０】
ＩＣチップ１０は、電源が切れた場合に、異常検知レジスタ１２ａの検知フラグの設定を消去し、ＩＣチップの電源がＯＮになった場合に検知フラグをリセットするように構成することができる。
【００３１】
異常検知レジスタ１２ａには、例えば、図３（ａ）の様に、その最下位ビットから順に、実行アドレスの異常（異常なＪｕｍｐ命令）の検知フラグ、所定領域外のメモリ領域へのアクセスの検知フラグを記録することができる。
【００３２】
そして、実行アドレスの異常（異常なＪｕｍｐ命令）の検知フラグには、実行命令を格納したメモリのアドレスが正規の順序で読みだされて実行されなかったことを記録する。
【００３３】
また、異常検知レジスタ１２ａの所定領域外のメモリ領域へのアクセスの検知フラグには、セキュリティ攻撃判定手段１４ａが、所定領域外のメモリ領域（禁止領域等）へのアクセスが実行されたことを検知した場合に記録する。
【００３４】
また、異常検知レジスタ１２ａには、セキュリティ攻撃判定手段１４ａが、外部装置からのＩＣチップ１０へのコマンドの受信からレスポンスを返すまでの時間が規定の時間を超過している異常を検知した場合に、セキュリティ攻撃判定手段１４ａが、異常検知レジスタ１２ａの所定の検知フラグに記録することができる。
【００３５】
また、異常検知レジスタ１２ａには、耐タンパ用センサ１５が異常を検知した場合に、制御手段１２のハードロジック回路が自動的に、その異常の検知の記録を、異常検知レジスタ１２ａの所定の検知フラグに記録することができる。例えば、センサラインの切断の検知フラグ、異常な周波数の検知フラグ、異常な電圧の検知フラグ、異常な温度の検知フラグ、または異常な光の照射の検知フラグを、ハードロジック回路が自動的に異常検知レジスタ１２ａに記録する。
【００３６】
例えば、異常な電圧の検知フラグについては、電力レベルセンサ１５ａが、異常に高い電力量を検出した場合に、セキュリティ攻撃があったと判定して、異常な電圧の検知フラグ異常検知状態に設定する（値を１に設定する）。
【００３７】
また、耐タンパ用センサ１５が異常を検知した場合は、制御手段１２のハードロジック回路により自動的に対応する検知フラグを設定するようにする以外に、先ず、セキュリティ攻撃判定手段１４ａが、耐タンパ用センサ１５の異常検知信号を受信し、次に、セキュリティ攻撃判定手段１４ａが、その異常に対応する、異常検知レジスタ１２ａの所定の検知フラグを設定するように構成することもできる。
【００３８】
異常検知レジスタ１２ａの１以上の検知フラグに異常検知が記録された場合は、割り込み処理でＩＣチップ閉塞処理手段１４ｄを動作させる。そして、ＩＣチップ閉塞処理手段１４ｄのプログラムに従って、ＨＡＬＴ命令を実行し、起動管理情報１４ｃのＨＡＬＴ（閉塞）モードフラグの値を選択状態に設定する（値を１に設定する）。そうして、ＩＣチップ閉塞処理手段１４ｄが、ＩＣチップ１０の閉塞（ロック）処理により、ＩＣチップ１０の以降のアプリケーションの実行や記憶手段１３へのアクセスの実行を停止する。
【００３９】
（変形例２）
変形例２として、異常検知レジスタ１２ａの１以上の検知フラグに異常検知が記録された場合は、異常検知レジスタ１２ａの検知フラグに直結する電子回路に自動的に異常対策処理動作を実行させることもできる。そうすることで、セキュリティ攻撃によって記憶手段１３に記憶されているＩＣチップ閉塞処理手段１４ｄのプログラムが破壊された場合も、セキュリティ処理手段１６を実行できる効果がある。
【００４０】
（セキュリティ処理手段１６）
セキュリティ処理手段１６は、電力レベルに応じて動作する複数の耐タンパ動作手段で構成し、制御手段１２のハードロジック回路で構成する回路や、制御手段が実行するカードＯＳのカードマネージャ１４のプログラムで構成することができる。セキュリティ処理手段１６の各耐タンパ動作手段は、電源１７に蓄積された電力レベルに応じて、セキュリティ対策レベル変更手段１４ｂにより動作を制御される。
【００４１】
ＩＣチップ１０のセキュリティ処理手段１６のうちの１つの耐タンパ動作手段として、複数の消費電力波形を測定して統計処理により解析を行うことで秘密情報を解析するセキュリティ攻撃である差分電力解析（ＤＰＡ：Differential Power Analysis）によるセキュリティ攻撃を回避する手段として、ランダム動作手段のＲＳＬ（Random Switching Logic）回路、又は、ＷＤＤＬ（Wave Dynamic Differential Logic）回路を設ける。
【００４２】
ＲＳＬ回路は、外部装置がＩＣチップ１０に送信したパスワードに対して、ＩＣチップ１０が暗号鍵を用いてパスワードを認証する等の、ＩＣチップ１０が暗号鍵を用いる処理の際に、乱数を用いて論理回路の動作モードを切り替えることによって状態遷移確率の偏りをなくし、それによって暗号鍵に依存しないよう消費電力をランダム化することでセキュリティ攻撃を回避する。
【００４３】
ＲＳＬ回路は、図４（ｂ）のセキュリティ処理対応表データ１４ｅのリストの１番目の処理に対応するセキュリティ処理手段１６である。
【００４４】
また、ＷＤＤＬ回路は、プリチャージ動作を行った後、演算時のビット値の違いに起因する消費電流の相違を相補回路によって低減することにより、消費電力を均一化することでセキュリティ攻撃を回避する。
【００４５】
セキュリティ処理手段１６のその他の耐タンパ動作手段を、ＩＣチップ１０のカードＯＳのカードマネージャ１４が実行するプログラムで構成することができる。図４（ｂ）のセキュリティ処理対応表データ１４ｅのリストの２番目以降の処理の、暗号強化処理や、暗号処理の２重化処理や、重要処理の２重化処理や３重化処理等の、カードＯＳのカードマネージャ１４が実行するセキュリティ処理手段１６を用いることができる。
【００４６】
（ＩＣチップ１０の記憶手段１３）
ＩＣチップ１０の記憶手段１３のブロック構成を図２のブロック図に示す。記憶手段１３には制御手段１２により読み取られて実行されるプログラムが記憶されている。記憶手段１３は、ＥＥＰＲＯＭ(Electrically Erasable and Programmable ROM)やＦｅＲＡＭのような不揮発性メモリ、および／またはＤＲＡＭやＳＲＡＭ等のような揮発性メモリを含むことができる。
【００４７】
記憶手段１３の記憶領域を、システム記憶領域１３ａとファイル記憶領域１３ｂに分ける。
【００４８】
（システム記憶領域１３ａ）
記憶手段１３のシステム記憶領域１３ａには、カードマネージャ１４を含むオペレーティングシステム（カードＯＳ）を書き込む。
【００４９】
オペレーティングシステムは命令の受信、応答の送信、メモリ管理（アプリケーションを行う。また、オペレーティングシステムは、アプリケーションの中の複数のファイル、ファイルの中の複数のデータへのアクセス管理）、暗号処理、不正な攻撃への対策処理、などのＩＣカードとしての基本処理を管理するカードマネージャ１４を含む。
【００５０】
ＩＣカード１００の各アプリケーションを、ＩＣチップ１０のオペレーティングシステムの上で動作させる。例えば、ＩＣチップ１０のオペレーティングシステムが読み出し命令を受信した場合、この命令を対応するアプリケーションに引き渡す。アプリケーションが読み出し命令で指定されたデータへアクセスする場合、アプリケーションから論理アドレス（又は論理レコード番号）をオペレーティングシステムに指示する。オペレーティングシステムはその論理情報を物理アドレスに変換し、所定のデータをアプリケーションに引き渡す。
【００５１】
（カードマネージャ１４）
ＩＣチップ１０のカードマネージャ１４は、記憶手段１３のシステム記憶領域１３ａに記憶させたソフトウェアのプログラムで構成し、起動管理情報１４ｃを記憶し、セキュリティ攻撃判定手段１４ａとセキュリティ対策レベル変更手段１４ｂとＩＣチップ閉塞処理手段１４ｄを有する。
【００５２】
また、カードマネージャ１４は、利用者認証鍵とセキュア通信用鍵とその他の認証用鍵等を用いて、外部装置からＩＣチップ１０の専用ファイルＤＦへのアクセス要求があった場合に、そのアクセスの可否を判定する処理を行う。
【００５３】
（起動管理情報１４ｃ）
カードマネージャ１４は、図３（ｂ）の様なデータ構成の起動管理情報１４ｃを記憶する。起動管理情報１４ｃは、ＩＣチップ１０が起動する際に制御手段１２により確認されるフラグの値が設定されており、制御手段１２はそのフラグの値が示す状態に応じてＩＣチップ１０の起動を管理する。図３（ｂ）に示す例において、起動管理情報１４ｃは、最下位ビットから順に、ＨＡＬＴ（閉塞）モードフラグ、およびタイマー監視フラグが設定される。
【００５４】
ＨＡＬＴモードフラグに１（選択状態）が設定されている場合には、以降の処理を実施せず、カード閉塞状態へ移行してその状態を維持する。通常は、ＨＡＬＴモードフラグが０（非選択状態）に設定されており、外部から受信したコマンドを実行してレスポンス電文を送信する。
【００５５】
また、タイマー監視フラグに１（選択状態）が設定されていた場合には、セキュリティ攻撃判定手段１４ａが、ＩＣチップ１０によるコマンドの受信からレスポンス電文の送信までの処理時間が規定時間を越えないように監視するように動作する。タイマー監視フラ
グに０（非選択状態）が設定されている場合には、セキュリティ攻撃判定手段１４ａには処理時間を監視させない。
【００５６】
（セキュリティ攻撃判定手段１４ａ）
カードマネージャ１４のセキュリティ攻撃判定手段１４ａは、外部装置からのセキュリティ攻撃を検出して異常検知レジスタ１２ａに記録する。
【００５７】
（ＤＦＡ攻撃検知動作）
セキュリティ攻撃の１つのＤＦＡ攻撃（DFA: Differential Fault Analysis）は、ＩＣチップに入力するクロック周波数や電圧を一時的に変動させるなどして、故意的にＩＣチップ１０に誤動作を生じさせ、正常時と誤動作時の出力の違いから、ＩＣカードに記憶された機密データを解読する攻撃を行う。
【００５８】
セキュリティ攻撃判定手段１４ａは、外部装置からのＤＦＡ攻撃によってＩＣチップ１０に加えられる電源電圧Ｖｃｃや、入力されるクロック周波数が一時的に変動させられる場合を、電力レベルセンサ１５ａや周波数センサ１５ｂ等の耐タンパ用センサ１５で検出して、ＤＦＡ攻撃の有無を判定して異常検知レジスタ１２ａに記録する。
【００５９】
（その他の攻撃検知動作）
また、セキュリティ攻撃判定手段１４ａは、所定のアクセス禁止領域へのアクセス要求があった場合にセキュリティ攻撃があったと判定し、異常検知レジスタ１２ａの、所定領域外のメモリ領域へのアクセスの検知フラグに記録する。
【００６０】
また、セキュリティ攻撃判定手段１４ａは、記憶手段１３への膨大なアクセス要求があった場合、また、コマンドＩＤが定義されていない未定義コマンドによるアクセス要求があった場合、及び、規定のコマンドシーケンス以外のシーケンスによるアクセス要求等を外部装置から受信した場合に、セキュリティ攻撃があったと判定し、異常検知レジスタ１２ａの所定の検知フラグに記録する。
【００６１】
また、セキュリティ攻撃判定手段１４ａは、起動管理情報１４ｃのタイマー監視フラグに１（選択状態）が設定されていた場合には、ＩＣチップ１０が受信したコマンドの受信時刻と実施時刻を記憶し、コマンドの受信時刻から、ＩＣチップ１０が送信するレスポンス電文の送信時刻までの処理時間が規定時間を越えないように監視する。タイマー監視フラグに０（非選択状態）が設定されている場合には、処理時間の監視は行われない。
【００６２】
（セキュリティ攻撃の疑いがある場合の処理）
セキュリティ攻撃判定手段１４ａは、セキュリティ攻撃があったと断定する判定では無いがセキュリティ攻撃の疑いがあると判定した場合は、セキュリティ攻撃疑い情報をセキュリティ対策レベル変更手段１４ｂに通知し、より高いセキュリティレベルでセキュリティ攻撃を監視する動作をする。
【００６３】
すなわち、セキュリティ攻撃判定手段１４ａは、以下の状況を検知して、セキュリティ攻撃疑い情報をセキュリティ対策レベル変更手段１４ｂに通知する。また、これらの状況検知情報に応じてカードマネージャ１４がＩＣチップ１０の外部装置への応答を制限する。
（１）パスワード照合回数の許容限度オーバー検知
（２）取引カウンターによる取引許容限度オーバー検知
（３）重要データのチェックコード検証エラーの検知
【００６４】
（ＩＣチップ閉塞処理手段１４ｄ）
セキュリティ攻撃判定手段１４ａがセキュリティ攻撃があったと判定したことで、異常検知レジスタ１２ａの所定の検知フラグに異常の検知が記録された場合や、耐タンパ用センサ１５が異常を検知して異常検知レジスタ１２ａの所定の検知フラグに異常の検知を記録した場合は、割り込み処理により、ＩＣチップ閉塞処理手段１４ｄが動作し、ＨＡＬＴ命令を実行し、起動管理情報１４ｃのＨＡＬＴ（閉塞）モードフラグに１（選択状態）を設定する。
【００６５】
ＩＣチップ閉塞処理手段１４ｄが起動管理情報１４ｃのＨＡＬＴモードフラグに１（選択状態）を設定した場合には、制御手段１２が以降の処理を実施せず、カード閉塞状態へ移行してその状態を維持する。それにより、ＩＣチップ１０のアプリケーションの実行やメモリへのアクセスの実行の継続を不可能にする。こうして、ＩＣチップ閉塞処理手段１４ｄが、ＩＣチップ１０の閉塞（ロック）処理を実行することで、ＩＣチップ１０の以降のアプリケーションの実行や記憶手段１３へのアクセスの実行も不可能な状態にする。
【００６６】
（セキュリティ対策レベル変更手段１４ｂ）
カードマネージャ１４のセキュリティ対策レベル変更手段１４ｂは、電力レベルセンサ１５ａが検出した電源１７の電源電圧Ｖｃｃを受信する。セキュリティ対策レベル変更手段１４ｂは、電力レベルセンサ１５ａが検出した電源電圧Ｖｃｃを、図４（ａ）の様なデータ構造の電源レベルデータＰｏｗｅｒ＿ＬＶとして記憶する。セキュリティ対策レベル変更手段１４ｂは、ＩＣカード１０の動作中に複数回、電力レベルセンサ１５ａが検出した電源１７の電源電圧Ｖｃｃを受信し電源レベルデータＰｏｗｅｒ＿ＬＶを更新する。
【００６７】
（変形例３）
変形例３として、セキュリティ対策レベル変更手段１４ｂは、磁界センサで構成する電力レベルセンサ１５ａを用いて、外部装置からアンテナコイル１に与えられる磁界強度を測定し、その磁界センサの測定値を電源レベルデータＰｏｗｅｒ＿ＬＶとして記憶することができる。
【００６８】
また、セキュリティ対策レベル変更手段１４ｂは、セキュリティ攻撃疑い情報をセキュリティ攻撃判定手段１４ａから受信する。そして、セキュリティ対策レベル変更手段１４ｂは、セキュリティ攻撃疑い情報と、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧レベルに応じて、動的にセキュリティ対策レベルを変化させる。
【００６９】
（セキュリティ処理対応表データ１４ｅ）
詳しくは、セキュリティ対策レベル変更手段１４ｂは、図４（ｂ）の様なデータ構造のセキュリティ処理対応表データ１４ｅを記憶する。そして、電源レベルデータＰｏｗｅｒ＿ＬＶの電源１７の電源電圧Ｖｃｃを、取得電力の低い場合から高い場合までの順に、レベル１からレベル４の何れかに分類する。
【００７０】
図４（ｂ）のセキュリティ処理対応表データ１４ｅに、セキュリティ処理手段１６を構成する各耐タンパ動作手段を「実施処理名」欄で記述し、その「セキュリティ対策レベル」欄に、その耐タンパ動作手段を実施するレベルを記述する。
【００７１】
耐タンパ動作手段を実施するレベルを、電源レベルデータＰｏｗｅｒ＿ＬＶの電源電圧Ｖｃｃのレベルにより定義する。すなわち、電源レベルデータＰｏｗｅｒ＿ＬＶの電源電圧Ｖｃｃがレベル１以上の場合に実施する耐タンパ動作手段の「セキュリティ対策レベル」欄にレベル１を記述し、電源電圧Ｖｃｃがレベル２以上の場合に実施する耐タンパ動作手段の「セキュリティ対策レベル」欄にレベル２を記述し、電源電圧Ｖｃｃがレベル３以上の場合に実施する耐タンパ動作手段の「セキュリティ対策レベル」欄にレベル３を記述し、電源電圧Ｖｃｃがレベル４以上の場合に実施する耐タンパ動作手段の「セキュリティ対策レベル」欄にレベル４を記述する。
【００７２】
セキュリティ対策レベル変更手段１４ｂは、電源レベルデータＰｏｗｅｒ＿ＬＶの電源電圧Ｖｃｃがレベル１以上の場合に、セキュリティ対策レベルをセキュリティ対策１に分類したセキュリティ処理手段１６の耐タンパ動作手段を実施し、レベル２以上の場合に、セキュリティ対策１から２に分類したセキュリティ処理手段１６の耐タンパ動作手段を実施し、レベル３以上の場合に、セキュリティ対策１から３に分類したセキュリティ処理手段１６の耐タンパ動作手段を実施し、レベル４以上の場合に、セキュリティ対策１から４に分類したセキュリティ処理手段１６の耐タンパ動作手段を実施する。
【００７３】
すなわち、事前に、電源１７の所定の電力レベル以上の場合に動作するセキュリティ処理手段１６の各耐タンパ動作手段を、セキュリティ処理対応表データ１４ｅにより分類して設定する。そして、セキュリティ対策レベル変更手段１４ｂが、セキュリティ処理対応表データ１４ｅの「実施処理名」欄で記述したセキュリティ処理手段１６の各耐タンパ動作手段を、電源レベルデータＰｏｗｅｒ＿ＬＶの電源電圧Ｖｃｃに応じて動的に選択して動作させる。
【００７４】
例えば、セキュリティ処理対応表データ１４ｅの１番目のランダム動作は、セキュリティ処理手段１６の以下の耐タンパ動作手段に対応する。すなわち、セキュリティ処理対応表データ１４ｅの１番目のランダム動作を行う耐タンパ動作手段は、外部装置が、ＩＣチップ１０にパスワードを送信してＩＣチップ１０の消費電力を解析することでパスワードを解析して盗み出す差分電力解析（ＤＰＡ：Differential Power Analysis）によるセキュリティ攻撃を回避するＲＳＬ回路やＷＤＤＬ回路の動作に対応する。
【００７５】
すなわち、外部装置がＩＣチップ１０に送信したパスワードに対して、ＩＣチップ１０が暗号鍵を用いてパスワードを認証する等の、ＩＣチップ１０が暗号鍵を用いる処理の際に、耐タンパ動作手段であるＲＳＬ回路やＷＤＤＬ回路が、乱数を用いて論理回路の動作モードをランダムに切り替えること等によって状態遷移確率の偏りをなくし、それによって暗号鍵に依存しないよう消費電力をランダム化することでセキュリティ攻撃を回避するランダム動作を行うことでセキュリティ攻撃を回避する。
【００７６】
セキュリティ対策レベル変更手段１４ｂは、そのランダム動作を行う耐タンパ動作手段については、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧がレベル２からレベル４までの場合に実施する。すなわち、その場合には、ランダム動作のＲＳＬ回路やＷＤＤＬ回路を動作させる高いレベルのセキュリティ処理手段１６を実行する。
【００７７】
それ以外の場合、すなわち、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧が、そのセキュリティ処理手段１６の実行レベル未満の場合には、セキュリティ攻撃疑い情報を受信していない場合は、そのランダム動作を停止してＩＣチップ１０の消費電力を低減する。
【００７８】
例えば、セキュリティ対策レベル変更手段１４ｂは、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧がレベル１の場合は、セキュリティ処理対応表データ１４ｅの１番目のセキュリティ処理手段１６であるランダム動作用のＲＳＬ回路やＷＤＤＬ回路の動作を停止させることでＩＣチップ１０の回路の消費電力を低減する。
【００７９】
セキュリティ処理手段１６のＲＳＬ回路又はＷＤＤＬ回路を停止することで、ＩＣチップ１０の消費電力を半分以下に低減できる効果がある。
【００８０】
（セキュリティ攻撃疑い情報がある場合の処理）
しかし、セキュリティ対策レベル変更手段１４ｂは、電源レベルデータＰｏｗｅｒ＿Ｌ
Ｖの電圧が、セキュリティ処理対応表データ１４ｅのセキュリティ処理手段１６の実行レベル未満の場合であっても、セキュリティ攻撃疑い情報を受信した場合は、セキュリティ対策をレベルアップ（強度化）し、セキュリティ処理手段１６の大部分を動作させ、高いセキュリティレベルでセキュリティ攻撃を監視する動作を実行する。
【００８１】
すなわち、セキュリティ対策レベル変更手段１４ｂは、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧がレベル１であっても、セキュリティ攻撃疑い情報を受信した場合は、セキュリティ処理対応表データ１４ｅの１番目のランダム動作用のＲＳＬ回路やＷＤＤＬ回路を動作させて、差分電力解析（ＤＰＡ：Differential Power Analysis）によるセキュリティ攻撃を回避する等の、高いレベルのセキュリティ処理手段１６を実行する。
【００８２】
（ファイル記憶領域１３ｂ）
記憶手段１３のファイル記憶領域１３ｂには、主ファイルＭＦ（Master File）の下に、ＩＣカード１００のアプリケーションプログラムに係わる専用ファイルＤＦ（Dedicated File）と基礎ファイルＥＦ（Elementary File）を階層構造で配置して記憶する。
【００８３】
専用ファイルＤＦは、ＩＣチップ１０にインストールされた、金融系カードや交通系カードや身分証明系カード等のアプリケーションプログラム毎に作成されている。
【００８４】
専用ファイルＤＦには、アプリケーション識別子であるファイル識別子が割り当てられる。専用ファイルＤＦの配下に、内部基礎ファイルＩＥＦと作業基礎ファイルＷＥＦを設ける。作業基礎ファイルＷＥＦには、ＩＣカード１００の個別データを記憶する。
【００８５】
（ＩＣチップ１０の動作手順）
以下で、図５のフローチャートを参照して、ＩＣチップ１０の動作手順を説明する。
【００８６】
（ステップＳ１）
ステップＳ１において、ＩＣチップ１０が給電されて起動した状態において、ＩＣチップ１０が動作をスタートする。なお、スタート時において、記憶手段１３内の起動管理情報１４ｃのＨＡＬＴモードフラグは非選択状態に設定され、異常検知レジスタ１２ａの各検知フラグは正常状態に設定されているものとする。
【００８７】
（ステップＳ２）
ステップＳ２において、セキュリティ攻撃判定手段１４ａ、および／または各種の耐タンパ用センサ１５が異常を検知する。異常の検知に応答して、セキュリティ攻撃判定手段１４ａ、および／または各種の耐タンパ用センサ１５（または制御手段１２のハードロジック回路）が、異常検知レジスタ１２ａの検知フラグを異常検知状態に設定する（値を１にする）。
【００８８】
（ステップＳ３）セキュリティ攻撃の疑いを検知
セキュリティ攻撃判定手段１４ａは、セキュリティ攻撃があったと断定する判定では無いがセキュリティ攻撃の疑いがあると判定した場合は、セキュリティ攻撃疑い情報をセキュリティ対策レベル変更手段１４ｂに通知する。
【００８９】
（ステップＳ４）
異常検知レジスタ１２ａの検知フラグが異常検知状態に設定されると、割り込みルーチンでＩＣチップ閉塞処理手段１４ｄのプログラムの、ステップＳ５とステップＳ６を実行する。異常検知レジスタ１２ａの検知フラグが設定されていない場合は、ステップＳ７に進む。
【００９０】
（ステップＳ５）
ＩＣチップ閉塞処理手段１４ｄが、起動管理情報１４ｃのＨＡＬＴモードフラグを選択状態に設定する（値を１に変更して設定する）。又は、異常検知レジスタ１２ａの検知フラグに直結する電子回路が直接に、記憶手段１３内の起動管理情報１４ｃのＨＡＬＴモードフラグを選択状態に設定する。
【００９１】
（ステップＳ６）
制御手段１２、又はＩＣチップ閉塞処理手段１４ｄは、起動管理情報１４ｃのＨＡＬＴモードフラグに１（選択状態）が設定されている場合には、カード閉塞状態へ移行し、電源供給が断たれるまで、制御手段１２が無限ループコマンドあるいはＨＡＬＴコマンドを実行することでＩＣチップ１０の閉塞状態を維持する。
【００９２】
したがって、以降の起動後は、ＩＣチップ１０は、外部装置からの命令を受け付けず、処理結果（レスポンス）の応答を返さなくなる。これにより、ＩＣチップ１０のアプリケーションの実行やメモリへのアクセスの実行の継続を不可能とする。
【００９３】
（ステップＳ７）
セキュリティ対策レベル変更手段１４ｂが、セキュリティ攻撃判定手段１４ａからのセキュリティ攻撃疑い情報の通知の有無を確認する。セキュリティ攻撃疑い情報の通知が無い場合はステップＳ８に進み、セキュリティ攻撃疑い情報の通知がある場合はステップＳ１１に進む。
【００９４】
（ステップＳ８）
セキュリティ対策レベル変更手段１４ｂは、セキュリティ攻撃判定手段１４ａがセキュリティ攻撃の疑いを検出していない場合は、電力レベルセンサ１５ａが検出した電源電圧Ｖｃｃを受信し電源レベルデータＰｏｗｅｒ＿ＬＶを更新する。
【００９５】
セキュリティ対策レベル変更手段１４ｂは、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧のレベルを、レベル１からレベル４の何れかに分類する。
【００９６】
（ステップＳ９）
次に、セキュリティ対策レベル変更手段１４ｂは、図４（ｂ）のセキュリティ処理対応表データ１４ｅの各セキュリティ処理手段１６毎の「現状の実施可否」欄のデータを更新する。すなわち、各セキュリティ処理手段１６の、「セキュリティ対策レベル」欄のレベルが電源レベルデータＰｏｗｅｒ＿ＬＶの電圧のレベル以下の場合に、「現状の実施可否」欄のデータを「可」に書き換える。また、「セキュリティ対策レベル」欄のレベルが電源レベルデータＰｏｗｅｒ＿ＬＶの電圧のレベルより高い場合は、「現状の実施可否」欄のデータを「否」に書き換える。
【００９７】
（ステップＳ１０）
次に、セキュリティ対策レベル変更手段１４ｂは、セキュリティ処理対応表データ１４ｅを読出し、「現状の実施可否」欄のデータが「可」と記載されているセキュリティ処理手段１６を実施し、「現状の実施可否」欄のデータが「否」と記載されているセキュリティ処理手段１６を停止する処理を行う。
【００９８】
例えば、電源レベルデータＰｏｗｅｒ＿ＬＶの電圧レベルがレベル１の場合には、図４（ｂ）のセキュリティ処理対応表データ１４ｅの１番目のセキュリティ処理手段１６の１つの耐タンパ動作手段であるランダム動作の「現状の実施可否」欄のデータが「否」と記載されている。その場合には、ランダム動作用のＲＳＬ回路やＷＤＤＬ回路の動作を停止させる。次にステップＳ１２に進む。
【００９９】
こうして、セキュリティ対策レベル変更手段１４ｂは、セキュリティ処理対応表データ１４ｅに従って、電源１７の電力レベルに応じて段階的にセキュリティ処理手段１６の耐タンパ動作手段を選択して実行する。
【０１００】
これにより、ＩＣチップ１０の回路の消費電力を低減することができ、耐タンパ動作手段のＲＳＬ回路又はＷＤＤＬ回路を停止する場合には、ＩＣチップ１０の消費電力を半分以下に低減できる効果がある。
【０１０１】
（ステップＳ１１）
セキュリティ攻撃判定手段１４ａがセキュリティ攻撃の疑いがあると判定した場合、又は、電力レベルセンサ１５ａが検出した電源１７の電圧レベルが一番高い場合は、セキュリティ対策レベル変更手段１４ｂが、セキュリティ対策をレベルアップ（強度化）し、高いセキュリティレベルでセキュリティ攻撃を監視する動作をする。次にステップＳ１２に進む。
【０１０２】
（ステップＳ１２）
ＩＣチップ１０のカードマネージャ１４は、外部装置から受信したコマンドを実行してレスポンス電文を送信する。
【０１０３】
（ステップＳ１３）
ステップＳ１３において、ＩＣチップ１０への電源供給を断ち処理を終了する。
【０１０４】
以上説明したように、本願発明によればＩＣカード１００のＩＣチップ１０のセキュリティ攻撃判定手段１４ａが、セキュリティ攻撃を検知したときに、割り込み処理として異常対策処理を実行することで、アプリケーションの実行を中止して閉塞状態を維持し、さらに以降の起動も閉塞状態とする。
【０１０５】
また、ＩＣチップ１０のセキュリティ攻撃判定手段１４ａが、セキュリティ攻撃があったと断定する判定では無いがセキュリティ攻撃の疑いがあると判定した場合は、セキュリティ攻撃疑い情報をセキュリティ対策レベル変更手段１４ｂに通知し、セキュリティ対策レベル変更手段１４ｂがセキュリティ対策をレベルアップ（強度化）し、高いセキュリティレベルでセキュリティ攻撃を監視する動作をする。
【０１０６】
特に、ＩＣチップ１０のセキュリティ攻撃判定手段１４ａがセキュリティ攻撃の疑いを検出していない場合は、セキュリティ対策レベル変更手段１４ｂが、セキュリティ処理手段１６の各耐タンパ動作手段を、電源１７の電力レベルに応じてセキュリティ処理対応表データ１４ｅに従って、動作、又は、停止させるように動的に選択して動作させることで、ＩＣチップ１０の消費電力を低減する。
【符号の説明】
【０１０７】
１・・・アンテナコイル
２・・・接触端子
１０・・・ＩＣチップ
１１・・・通信部
１２・・・制御手段
１３・・・記憶手段
１３ａ・・・システム記憶領域
１３ｂ・・・ファイル記憶領域
１４・・・カードマネージャ
１４ａ・・・セキュリティ攻撃判定手段
１４ｂ・・・セキュリティ対策レベル変更手段
１４ｃ・・・起動管理情報
１４ｄ・・・ＩＣチップ閉塞処理手段
１４ｅ・・・セキュリティ処理対応表データ
１５・・・耐タンパ用センサ
１５ａ・・・電力レベルセンサ
１６・・・セキュリティ処理手段
１７・・・電源
１００・・・ＩＣカード
ＤＦ・・・専用ファイル
ＭＦ・・・主ファイル
Ｐｏｗｅｒ＿ＬＶ・・・電源レベルデータ
【図１】
2020013249.tif 000003
【図２】
2020013249.tif 000004
【図３】
2020013249.tif 000005
【図４】
2020013249.tif 000006
【図５】
2020013249.tif 000007