(57)【特許請求の範囲】
【請求項１】
耐タンパ性の機能を有する耐タンパ性機能部と、
前記耐タンパ性機能部の作動レベルを規定するレベル情報を記憶する書き換え可能な不揮発性記憶部と、
前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる管理部と
を備え、
前記不揮発性記憶部は、複数の処理のそれぞれに対応する前記レベル情報を記憶し、
前記管理部は、前記レベル情報に基づいて、処理ごとに規定された作動レベルにより前記耐タンパ性機能部を動作させる
ＩＣモジュール。
【請求項２】
耐タンパ性の機能の異なる前記耐タンパ性機能部を複数備え、
前記不揮発性記憶部は、前記複数の耐タンパ性機能部のそれぞれに対応する前記レベル情報を記憶し、
前記管理部は、前記レベル情報に基づいて、前記複数の耐タンパ性機能部のそれぞれを動作させる
請求項１に記載のＩＣモジュール。
【請求項３】
前記管理部は、
前記複数の処理のうちの１つの処理を実行する場合に、当該処理に対応する前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる作動レベルを変更し、
当該処理が完了した場合に、前記耐タンパ性機能部を動作させる作動レベルを、当該処理の開始前の状態に戻す
請求項１又は請求項２に記載のＩＣモジュール。
【請求項４】
前記不揮発性記憶部は、前記レベル情報の変更を禁止する変更禁止情報を記憶し、
前記管理部は、前記変更禁止情報に基づいて、前記レベル情報の変更を禁止する
請求項１から請求項３のいずれか一項に記載のＩＣモジュール。
【請求項５】
耐タンパ性の機能を有する耐タンパ性機能部と、
前記耐タンパ性機能部の作動レベルを規定するレベル情報を記憶する書き換え可能な不揮発性記憶部と、
前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる管理部と
を備え、
前記不揮発性記憶部は、同一の前記レベル情報を複数の記憶領域に記憶し、
前記管理部は、前記複数の記憶領域に記憶された複数の前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる
ＩＣモジュール。
【請求項６】
耐タンパ性の機能の異なる前記耐タンパ性機能部を複数備え、
前記不揮発性記憶部は、前記複数の耐タンパ性機能部のそれぞれに対応する前記レベル情報を記憶し、
前記管理部は、前記レベル情報に基づいて、前記複数の耐タンパ性機能部のそれぞれを動作させる
請求項５に記載のＩＣモジュール。
【請求項７】
前記不揮発性記憶部は、同一の前記レベル情報を複数の記憶領域に記憶し、
前記管理部は、前記複数の記憶領域に記憶された複数の前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる
請求項１から請求項４のいずれか一項に記載のＩＣモジュール。
【請求項８】
前記レベル情報は、前記不揮発性記憶部の消去状態を示すビットの状態である第１のビット状態と、前記不揮発性記憶部の書き込む状態を示すビットの状態である第２のビット状態とを含む複数のビットにより前記作動レベルを規定する
請求項１から請求項７のいずれか一項に記載のＩＣモジュール。
【請求項９】
請求項１から請求項８のいずれか一項に記載のＩＣモジュールと、
前記ＩＣモジュールが埋め込まれた本体と
を備えるＩＣカード。
【請求項１０】
耐タンパ性の機能を有する耐タンパ性機能部の作動レベルを規定するレベル情報に基づいて、前記レベル情報に基づいて、処理ごとに規定された作動レベルにより前記耐タンパ性機能部を動作させる管理部を備えるＩＣカードの製造方法であって、
書き換え可能な不揮発性記憶部に、複数の処理のそれぞれに対応する前記レベル情報を記憶させる工程と、
前記レベル情報の変更を禁止する変更禁止情報を前記不揮発性記憶部に記憶させる工程と
を含むＩＣカードの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣモジュール、ＩＣカード、及びＩＣカードの製造方法に関する。
【背景技術】
【０００２】
近年、ＩＣ（Integrated Circuit）チップを搭載したＩＣカードが、様々な分野で使用されるようになってきている。ＩＣカードには、内部解析（リバースエンジニアリング）や改変に対する防護を行う耐タンパ性の機能を備えるものがある。従来のＩＣカードは、耐タンパ性の機能を備えることでセキュリティが向上する一方で、処理時間が増加するなど性能が低下し、セキュリティと性能とを両立させることが困難な場合があった。そのため、従来のＩＣカードは、セキュリティ面又は性能面から用途によって使用することができない可能性があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１９６１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、様々な用途に使用することができるＩＣモジュール、ＩＣカード、及びＩＣカードの製造方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態のＩＣモジュールは、耐タンパ性機能部と、不揮発性記憶部と、管理部とを持つ。耐タンパ性機能部は、耐タンパ性の機能を有する。書き換え可能な不揮発性記憶部は、前記耐タンパ性機能部の作動レベルを規定するレベル情報を記憶する。管理部は、前記レベル情報に基づいて、前記耐タンパ性機能部を動作させる。前記不揮発性記憶部は、複数の処理のそれぞれに対応する前記レベル情報を記憶し、前記管理部は、前記レベル情報に基づいて、処理ごとに規定された作動レベルにより前記耐タンパ性機能部を動作させる。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態のＩＣカードの一例を示す外観図。
【図２】第１の実施形態のＩＣカードのハードウェア構成例を示す図。
【図３】第１の実施形態のＩＣカードの機能構成例を示すブロック図。
【図４】第１の実施形態のレベル情報記憶部のデータ例を示す図。
【図５】第１の実施形態のレベル情報と作動レベルとの対応を示す図。
【図６】第１の実施形態のＩＣカードのレベル情報の設定手順の一例を示すフローチャート。
【図７】第１の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図８】第２の実施形態のレベル情報記憶部のデータ例を示す図。
【図９】第２の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図１０】第３の実施形態のレベル情報記憶部のデータ例を示す図。
【図１１】第３の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図１２】第３の実施形態のＩＣカードの動作の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、実施形態のＩＣモジュール、ＩＣカード、及びＩＣカードの製造方法を、図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のＩＣカード１の一例を示す外観図である。
この図に示すように、ＩＣカード１は、ＩＣモジュール１０を備えており、ＩＣモジュール１０は、コンタクト部３と、内部にＩＣチップ１００とを備えている。ＩＣカード１は、例えば、プラスチックのカード基材４（カード本体の一例）に、ＩＣモジュール１０を実装して形成されている。すなわち、ＩＣカード１は、ＩＣモジュール１０と、ＩＣモジュール１０が埋め込まれたカード基材４とを備えている。また、ＩＣカード１は、コンタクト部３を介して外部装置２と通信可能である。
【０００９】
ＩＣカード１は、例えば、外部装置２が送信したコマンド（処理要求）を、コンタクト部３を介して受信し、受信したコマンドに応じた処理（コマンド処理）を実行する。そして、ＩＣカード１は、コマンド処理の実行結果であるレスポンス（処理応答）を外部装置２にコンタクト部３を介して送信する。
ここで、外部装置２は、ＩＣカード１と通信する上位装置であり、例えば、リーダ／ライタ装置などである。
【００１０】
ＩＣモジュール１０は、コンタクト部３と、ＩＣチップ１００とを備え、例えば、テープ上にＩＣモジュール１００が複数配置されたＣＯＴ（Chip On Tape）などの形態で取引されるモジュールである。
コンタクト部３は、ＩＣカード１が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などを外部装置２から供給を受ける端子、及び、外部装置２と通信するためのシリアルデ―タ入出力端子（ＳＩＯ端子）を有する。外部装置２から供給を受ける端子には、電源端子（ＶＤＤ端子、ＧＮＤ端子）、クロック信号端子（ＣＬＫ端子）、及びリセット信号端子（ＲＳＴ端子）が含まれる。
ＩＣチップ１００は、例えば、１チップのマイクロプロセッサなどのＬＳＩ（Large Scale Integration）である。
【００１１】
図２は、本実施形態のＩＣカード１のハードウェア構成例を示す図である。
この図に示すように、ＩＣチップ１００は、ＣＰＵ（Central Processing Unit）１１と、ＲＡＭ（Random Access Memory）１２と、ＲＯＭ（Read Only Memory）１３と、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）１４と、通信Ｉ／Ｆ（Interface）部１５と、コプロセッサ１６と、複数の耐タンパ性機能部２０とを備えている。なお、本実施形態では、ＩＣチップ１００は、耐タンパ性機能部２０として、ランダムＭＣ（マシンサイクル）部２１と、グリッチ検出部２２と、ランダムウェイト部２３と、ノイズジェネレータ部２４とを備えている。また、各構成は、内部バス１７を介して接続されている。
【００１２】
ＣＰＵ１１は、ＲＯＭ１３又はＥＥＰＲＯＭ１４に記憶されているプログラムを実行して、ＩＣカード１の各種処理を行う。ＣＰＵ１１は、例えば、コンタクト部３を介して、通信Ｉ／Ｆ部１５が受信したコマンドに応じたコマンド処理を実行する。
ＲＡＭ１２は、例えば、ＳＲＡＭ（Static RAM）などの揮発性メモリであり、ＩＣカード１の各種処理を行う際に利用されるデータを一時記憶する。
【００１３】
ＲＯＭ１３は、例えば、マスクＲＯＭなどの不揮発性メモリであり、ＩＣカード１の各種処理を実行するためのプログラム、及びコマンドテーブルなどのデータを記憶する。
ＥＥＰＲＯＭ１４（書き換え可能な不揮発性記憶部の一例）は、例えば、電気的に書き換え可能な不揮発性メモリである。ＥＥＰＲＯＭ１４は、後述するレベル情報、及びレベル情報の変更を禁止する変更禁止情報などを記憶する。
【００１４】
通信Ｉ／Ｆ部１５は、外部装置２との間で通信される情報を入力および出力する。通信Ｉ／Ｆ部１５は、外部装置２からＩＣカード１に送信されたコマンドの情報を受信して受け取る。また、通信Ｉ／Ｆ部１５は、受け取ったコマンドの処理をＣＰＵ１１により実行した結果の情報をレスポンスの情報として出力し、これにより、当該情報がＩＣカード１から外部装置２に送信される。なお、通信Ｉ／Ｆ部１５が受信したコマンドの情報が、ＲＡＭ１２に設けられた専用領域に一旦記憶された後に、当該専用領域を監視するＣＰＵ１１により読み出される。なお、通信Ｉ／Ｆ部１５には、コンタクト部３を介して、電源電圧、クロック信号、リセット信号が供給され、これらの信号は、通信Ｉ／Ｆ部１５を介して各部に供給される。
【００１５】
コプロセッサ１６は、暗号処理や復号処理を高速に行うための補助的な回路であり、例えば、ＡＥＳ（Advanced Encryption Standard）暗号やＲＳＡ暗号などの処理、又は当該処理の一部を実行する。コプロセッサ１６は、例えば、ＣＰＵ１１により指示されて、暗号処理や復号処理に関する処理を実行する。
内部バス１７は、例えば、内部バス１７に接続された各部の間におけるデータ転送を行うバスである。
【００１６】
耐タンパ性機能部２０は、例えば、セキュリティを高める機能の１つであり、耐タンパ性の機能を有する機能部である。ここで、耐タンパ性とは、例えば、内部解析（リバースエンジニアリング）や改変に対する防護力のことであり、外部からの非正規な手段による機密データの読み取りや解析を防ぐ能力のことである。ＩＣカード１を攻撃する手法としては、例えば、電力解析攻撃などのサイドチャネル攻撃や故障利用解析攻撃などがあり、耐タンパ性機能部２０は、これらの攻撃を防護する機能を有する。
【００１７】
上述したように、本実施形態では、ＩＣモジュール１０は、例えば、ランダムＭＣ部２１と、グリッチ検出部２２と、ランダムウェイト部２３と、ノイズジェネレータ部２４とを、耐タンパ性の機能の異なる耐タンパ性機能部２０として備えているものとして説明する。また、各耐タンパ性機能部２０は、ＣＰＵ１１からの設定により、耐タンパ性機能の作動レベルを設定できるものとする。
なお、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４は、ＩＣカード１が備える任意の耐タンパ性機能部を示す場合、又は特に区別しない場合には、耐タンパ性機能部２０と称して説明する。
【００１８】
ランダムＭＣ部２１は、ＣＰＵ１１の処理において、ランダムにダミーサイクルを挿入し、ＣＰＵ１１の実行クロック数（マシンサイクル数）を特定の範囲内でランダムに変更するＣＰＵ１１用のランダムウェイト部である。ランダムＭＣ部２１は、作動レベルの設定に応じて、ランダムＭＣ部２１の動作停止（ＯＦＦ）を含む、実行クロック数を変更する頻度を変更する。
【００１９】
グリッチ検出部２２は、コンタクト部３を介して通信Ｉ／Ｆ部１５に供給される信号にグリッチが載せられたことを検出する。なお、例えば、故障利用解析攻撃では、誤動作を誘発させるノイズをＩＣカード１に供給される信号に重畳させることがある。ここで、グリッチとは、例えば、この誤動作を誘発させるノイズのことである。グリッチ検出部２２は、例えば、電源電圧に所定の電圧以上のグリッチが入力されたことを検出する。すなわち、グリッチ検出部２２は、例えば、電源電圧が所定の電圧範囲を超えたことを検出する。この場合、グリッチ検出部２２は、電源電圧のグリッチ検出機能の動作停止（ＯＦＦ）の作動レベル設定を含み、作動レベルの設定に応じて、グリッチを検出する感度（例えば、閾値電圧）を変更する。
【００２０】
また、グリッチ検出部２２は、例えば、ＣＬＫ端子に供給されるＣＬＫ信号の周波数が所定の範囲を超えたことを検出する。この場合、グリッチ検出部２２は、ＣＬＫ信号の周波数のグリッチ検出機能の動作停止（ＯＦＦ）の作動レベル設定を含み、作動レベルの設定に応じて、グリッチを検出する感度（例えば、周波数範囲）を変更する。
また、グリッチ検出部２２は、例えば、ＣＬＫ端子に供給されるＣＬＫ信号の電圧、及びＲＳＴ端子に供給されるＲＳＴ信号の電圧が所定の範囲を超えたことを検出する。この場合、グリッチ検出部２２は、ＣＬＫ信号の電圧又はＲＳＴ信号の電圧におけるグリッチ検出機能の動作停止（ＯＦＦ）の作動レベル設定を含み、作動レベルの設定に応じて、グリッチを検出する感度（例えば、閾値電圧）を変更する。
【００２１】
ランダムウェイト部２３は、例えば、コプロセッサ１６の処理において、ランダムにダミーサイクルを挿入する。ランダムウェイト部２３は、作動レベルの設定に応じて、ランダムウェイト部２３の動作停止（ＯＦＦ）を含む、ダミーサイクルの挿入頻度を変更する。
【００２２】
ノイズジェネレータ部２４は、例えば、ＩＣカード１が消費する消費電力を特定の範囲内でランダムに変更する。ノイズジェネレータ部２４は、作動レベルの設定に応じて、ノイズジェネレータ部２４の動作停止（ＯＦＦ）を含む、消費電力の範囲を変更する。
【００２３】
次に、図３を参照して、本実施形態によるＩＣカード１の機能構成例について説明する。
図３は、本実施形態のＩＣカード１の機能構成例を示すブロック図である。
この図に示すように、ＩＣカード１は、通信部１０１と、コマンド実行部１０２と、セキュリティ管理部１０３と、レベル情報記憶部１４１と、変更禁止情報記憶部１４２と、ランダムＭＣ部２１と、グリッチ検出部２２と、ランダムウェイト部２３と、ノイズジェネレータ部２４とを備えている。
ここで、図３に示される各部は、図２に示されるハードウェアを用いて実現される。
【００２４】
通信部１０１は、例えば、通信Ｉ／Ｆ部１５と、ＣＰＵ１１と、ＲＯＭ１３に記憶されているプログラムとにより実現され、コンタクト部３を介して、外部装置２との間でコマンド及びレスポンスの送受信を行う。
【００２５】
コマンド実行部１０２は、ＣＰＵ１１の制御により、コマンドの処理を実行する機能を有する。なお、暗号処理や復号処理などの所定の処理については、コマンド実行部１０２は、ＣＰＵ１１の制御により、コプロセッサ１６に、例えば、処理の一部を実行させる。
【００２６】
レベル情報記憶部１４１は、例えば、ＥＥＰＲＯＭ１４を用いて実現され、耐タンパ性機能部２０の作動レベルを規定するレベル情報を記憶する。レベル情報記憶部１４１は、例えば、図４に示すように、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４のそれぞれに対応するレベル情報を記憶する。すなわち、レベル情報記憶部１４１は、複数の耐タンパ性機能部２０のそれぞれに対応するレベル情報を記憶する。
【００２７】
図４は、本実施形態のレベル情報記憶部１４１のデータ例を示す図である。この図に示す例では、レベル情報記憶部１４１は、「ランダムＭＣ用のレベル情報」と、「グリッチ検出用のレベル情報」と、「ランダムウェイト用のレベル情報」と、「ノイズジェネレータ用のレベル情報」とを記憶している。
なお、レベル情報記憶部１４１が記憶するレベル情報は、ＩＣカード１又はＩＣモジュール１０が出荷される前に、外部装置２によって記憶される（書き込まれる）。
【００２８】
また、図５は、本実施形態のレベル情報と作動レベルとの対応を示す図である。
図５に示すように、本実施形態では、レベル情報として、“５５ｈ”、“５Ａｈ”、“Ａ５ｈ”、“ＡＡｈ”の４つの作動レベルを設定する。ここで“ｈ”は、１６進数（ヘキサデシマル）データを示す。レベル情報が“５５ｈ”の場合には、耐タンパ作動レベルが、“レベル０”（耐タンパ性機能停止（ＯＦＦ））の設定を示し、レベル情報が“５Ａｈ”の場合には、耐タンパ作動レベルが、“レベル１”の設定を示している。また、レベル情報が“Ａ５ｈ”の場合には、耐タンパ作動レベルが、“レベル２”の設定を示し、レベル情報が“ＡＡｈ”の場合には、耐タンパ作動レベルが、“レベル３”の設定を示している。なお、“レベル０”が、耐タンパ性が最も低い設定であり、“レベル３”が、耐タンパ性が最も高い設定である。
このように、レベル情報は、複数のビット（例えば、８ビット）により作動レベルを規定する。そして、レベル情報は、ＥＥＰＲＯＭ１４の消去状態を示すビットの状態である第１のビット状態（例えば、“１”状態）と、書き込む状態を示すビットの状態である第２のビット状態（例えば、“０”状態）とを含むデータで作動レベルを規定する。
【００２９】
変更禁止情報記憶部１４２は、例えば、ＥＥＰＲＯＭ１４を用いて実現され、レベル情報の変更を禁止する変更禁止情報を記憶する。なお、変更禁止情報記憶部１４２が記憶する変更禁止情報は、レベル情報が設定された後に、ＩＣカード１又はＩＣモジュール１０が出荷される前に、外部装置２によって記憶される（書き込まれる）。
なお、ＥＥＰＲＯＭ１４は、上述したレベル情報記憶部１４１と、変更禁止情報記憶部１４２とを備えている。
【００３０】
セキュリティ管理部１０３（管理部の一例）は、レベル情報記憶部１４１が記憶するレベル情報に基づいて、耐タンパ性機能部２０を動作させる。セキュリティ管理部１０３は、例えば、レベル情報に基づいて、複数の耐タンパ性機能部２０のそれぞれを動作させる。すなわち、セキュリティ管理部１０３は、図４に示すような各耐タンパ性機能部２０用のレベル情報に基づいて、各耐タンパ性機能部２０のそれぞれを動作させる。
また、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶するレベル情報を変更（設定）する変更要求（設定要求）を、通信部１０１が外部装置２から受信した場合に、変更要求に含まれるレベル情報の値に、レベル情報を変更する。なお、セキュリティ管理部１０３は、変更禁止情報記憶部１４２に変更禁止情報が記憶されている場合に、レベル情報の変更を実行しない。
【００３１】
また、セキュリティ管理部１０３は、変更禁止情報を変更禁止情報記憶部１４２に書き込む要求（設定要求）を、通信部１０１が外部装置２から受信した場合に、変更禁止情報記憶部１４２に変更禁止情報を記憶させる。
【００３２】
次に、図面を参照して、本実施形態によるＩＣカード１及びＩＣモジュール１０の動作について説明する。
ここでは、まず、図６を参照して、ＩＣカード１（又はＩＣモジュール１０）にレベル情報を設定する手順について説明する。なお、このレベル情報の設定は、例えば、ＩＣカード１又はＩＣモジュール１０を出荷する前、且つ、発行処理を実行する前に外部装置２によって実行される。
【００３３】
図６は、本実施形態によるＩＣカード１のレベル情報の設定手順の一例を示すフローチャートである。
ここでは、ＩＣカード１が発行業者に出荷される前に、ＩＣカード１が外部装置２に接続され、レベル情報が設定される場合の一例について説明する。
【００３４】
図６に示すように、外部装置２は、ＩＣカード１のシステム領域を書き込む（ステップＳ１０１）。すなわち、外部装置２は、ＩＣカード１のＥＥＰＲＯＭ１４に、カードＯＳ（オペレーティングシステム）の設定情報や初期値情報などを記憶させる。この書き込みにより、ＩＣカード１のカードＯＳが使用可能になり、ＩＣカード１は、アプリケーション情報や個人情報などをＥＥＰＲＯＭ１４に書き込む発行フェーズに移行することが可能になる。
【００３５】
次に、外部装置２は、用途（例えば、アプリケーション）に応じたレベル情報を書き込む（ステップＳ１０２）。すなわち、外部装置２は、ＥＥＰＲＯＭ１４に、レベル情報を記憶させる。例えば、外部装置２は、用途に応じたレベル情報を書き込むコマンドをＩＣカード１に送信し、コマンド実行部１０２が、対応するコマンド処理を実行することにより、用途に応じたレベル情報をＥＥＰＲＯＭ１４のレベル情報記憶部１４１に記憶させる。なお、本実施形態のＩＣカード１は、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４などの複数の耐タンパ性機能部２０を備えている。そのため、外部装置２は、各耐タンパ性機能部２０に対応するレベル情報をレベル情報記憶部１４１に記憶させるコマンドをＩＣカード１に送信する。
【００３６】
例えば、ＩＣカード１の用途が、銀行のキャッシュカードやクレジットカードなど、高いセキュリティレベルを必要とする場合には、ＩＣカード１は、外部装置２を介して、例えば、耐タンパ性機能部２０を全て最高作動レベルの“レベル３”に設定される。これにより、要求される高いセキュリティレベルを確保することができる。
また、ＩＣカード１の用途が、例えば、長時間動作する可能性が高いＥＴＣ（Electronic Toll Collection System：電子料金収受システム）などである場合には、ＩＣカード１は、外部装置２を介して、例えば、グリッチ検出部２２が低い作動レベルである“レベル１”に設定される。これにより、ＥＴＣの用途において、グリッチ検出部２２がノイズを誤検出して、ＩＣカード１の動作が停止することを防ぐことができる。
【００３７】
次に、外部装置２は、ＩＣカード１を発行フェーズに移行させる（ステップＳ１０３）。すなわち、外部装置２は、ＩＣカード１を発行フェーズに移行させるコマンドをＩＣカード１に送信し、コマンド実行部１０２が、対応するコマンド処理を実行することにより、ＩＣカード１を発行フェーズに移行させる。なお、ＩＣカード１が発行フェーズに移行する際に、変更禁止情報をＥＥＰＲＯＭ１４に記憶させる。ここで、発行フェーズに移行させるコマンドは、変更禁止情報を変更禁止情報記憶部１４２に書き込む要求（設定要求）を兼ねる。そのため、ＩＣカード１を発行フェーズに移行させるコマンドに応じて、ＩＣカード１のセキュリティ管理部１０３は、変更禁止情報記憶部１４２に変更禁止情報を記憶させる。これにより、以降の処理において、レベル情報記憶部１４１が記憶するレベル情報の変更が禁止される。ステップＳ１０３の処理後に、外部装置２は、処理を終了する。
【００３８】
次に、図７を参照して、本実施形態のＩＣカード１の動作について説明する。
図７は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。なお、図７に示す例は、図６に示す設定手順により、用途に応じたレベル情報が設定された後のＩＣカード１の動作を示している。
【００３９】
ＩＣカード１が外部装置２に接続されて、活性化されると、図７に示すように、ＩＣカード１のセキュリティ管理部１０３は、まず、各耐タンパ性機能部２０のレベル情報を取得する（ステップＳ２０１）。セキュリティ管理部１０３は、ＥＥＰＲＯＭ１４のレベル情報記憶部１４１から各耐タンパ性機能部２０に対応するレベル情報を取得する。すなわち、セキュリティ管理部１０３は、例えば、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４のそれぞれのレベル情報をレベル情報記憶部１４１から読み出す。
【００４０】
次に、セキュリティ管理部１０３は、取得したレベル情報に基づいて、各耐タンパ性機能部２０の作動レベルを変更する（ステップＳ２０２）。すなわち、セキュリティ管理部１０３は、各耐タンパ性機能部２０に対して、取得したレベル情報に基づいて、作動レベルの設定を行う。セキュリティ管理部１０３は、例えば、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４のそれぞれの作動レベルを、レベル情報に基づいて設定する。
なお、本実施形態では、用途に応じたレベル情報がレベル情報記憶部１４１に設定されており、各耐タンパ性機能部２０には、セキュリティ管理部１０３は、用途に応じた設定を行うことになる。これにより、各耐タンパ性機能部２０は、用途に応じた作動レベルにより動作する。
【００４１】
次に、ＩＣカード１は、コマンドが受信されたが否かを判定する（ステップＳ２０３）。すなわち、ＩＣカード１の通信部１０１が、コンタクト部３及び通信Ｉ／Ｆ部１５を介して、外部装置２からコマンドを受信したか否かを判定する。通信部１０１は、コマンドを受信した場合（ステップＳ２０３：ＹＥＳ）に、処理をステップＳ２０４に進める。また、通信部１０１は、コマンドを受信していない場合（ステップＳ２０３：ＮＯ）に、ステップＳ２０３の処理に戻し、処理を繰り返す。
【００４２】
ステップＳ２０４において、ＩＣカード１のコマンド実行部１０２は、受信したコマンドに応じたコマンド処理を実行する。コマンド実行部１０２は、コマンド処理が終了すると、レスポンスを通信部１０１にレスポンスを送信させて、処理をステップＳ２０５に戻す。
【００４３】
以上説明したように、本実施形態によるＩＣモジュール１０は、耐タンパ性の機能を有する耐タンパ性機能部２０と、ＥＥＰＲＯＭ１４（書き換え可能な不揮発性記憶部の一例）と、セキュリティ管理部１０３（管理部の一例）とを備えている。ＥＥＰＲＯＭ１４は、耐タンパ性機能部２０の作動レベルを規定するレベル情報を記憶する。セキュリティ管理部１０３は、ＥＥＰＲＯＭ１４が記憶するレベル情報に基づいて、耐タンパ性機能部２０を動作させる。
これにより、本実施形態によるＩＣモジュール１０は、ＥＥＰＲＯＭ１４にレベル情報を設定することにより、例えば、用途に応じて、耐タンパ性機能部２０の作動レベルを柔軟に変更することができる。よって、本実施形態によるＩＣモジュール１０は、セキュリティレベル又は性能の異なる様々な用途に使用することが可能になる。
【００４４】
また、本実施形態によるＩＣモジュール１０は、ＥＥＰＲＯＭ１４にレベル情報を設定することにより、様々なセキュリティ設定を行うことができる。そのため、本実施形態によるＩＣモジュール１０は、例えば、セキュリティ認定を受ける際に、ＲＯＭ１３のプログラムを変更せずに、複数種類の認定を受けることができる。よって、本実施形態によるＩＣモジュール１０は、適切なセキュリティレベルを設定した認定を取得することができるとともに、認定のための期間及びコストを低減することができる。
【００４５】
また、本実施形態では、ＩＣモジュール１０は、耐タンパ性の機能の異なる耐タンパ性機能部２０を複数備える。複数の耐タンパ性機能部２０は、例えば、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４などである。ＥＥＰＲＯＭ１４は、複数の耐タンパ性機能部２０のそれぞれに対応するレベル情報を記憶する。そして、セキュリティ管理部１０３は、レベル情報に基づいて、複数の耐タンパ性機能部２０のそれぞれを動作させる。
これにより、本実施形態によるＩＣモジュール１０は、用途に応じて、より複雑なセキュリティレベルを設定することができる。よって、本実施形態によるＩＣモジュール１０は、さらに様々な用途に使用することができる。
【００４６】
また、本実施形態では、ＥＥＰＲＯＭ１４は、レベル情報の変更を禁止する変更禁止情報を記憶する。セキュリティ管理部１０３は、ＥＥＰＲＯＭ１４が記憶する変更禁止情報に基づいて、レベル情報の変更を禁止する。
これにより、本実施形態によるＩＣモジュール１０は、レベル情報の設定後に、変更を禁止することができる。よって、本実施形態によるＩＣモジュール１０は、発行処理後に、第三者にレベル情報の設定を変更されて、耐タンパ性機能部２０の作動レベルを変更する機能を悪用される可能性を低減することができる。
【００４７】
また、本実施形態では、レベル情報は、ＥＥＰＲＯＭ１４の消去状態を示すビットの状態である第１のビット状態（例えば、ビット“１”）と、ＥＥＰＲＯＭ１４の書き込む状態を示すビットの状態である第２のビット状態（例えば、ビット“０”）とを含む複数のビットにより作動レベルを規定する。レベル情報は、例えば、“５５ｈ”、“５Ａｈ”、“Ａ５ｈ”、及び“ＡＡｈ”など、ビット“１”とビット“０”とを同数含むデータにより設定される。
これにより、本実施形態によるＩＣモジュール１０は、例えば、ＥＥＰＲＯＭ１４に局所的に紫外線を照射するなどにより、レベル情報を改竄しようとした場合でも、レベル情報の改竄を検知することができるので、セキュリティを確保することができる。すなわち、本実施形態によるＩＣモジュール１０は、レベル情報が、上述のようなパターンデータにより設定されているので、例えば、紫外線を照射するなどにより、例えば、“ＡＡｈ”から“５５ｈ”に変更するなどの適切な設定に変更することは困難であり、レベル情報の不正な改竄を防ぐことができる。
【００４８】
また、本実施形態によるＩＣカード１は、耐タンパ性の機能を有する耐タンパ性機能部２０と、ＥＥＰＲＯＭ１４（書き換え可能な不揮発性記憶部の一例）と、セキュリティ管理部１０３（管理部の一例）とを備えている。ＥＥＰＲＯＭ１４は、耐タンパ性機能部２０の作動レベルを規定するレベル情報を記憶する。セキュリティ管理部１０３は、ＥＥＰＲＯＭ１４が記憶するレベル情報に基づいて、耐タンパ性機能部２０を動作させる。
これにより、本実施形態によるＩＣカード１は、ＩＣモジュール１０と同様に、セキュリティレベル又は性能の異なる様々な用途に使用することが可能になる。
【００４９】
また、本実施形態によるＩＣカード１の製造方法は、ＥＥＰＲＯＭ１４に、レベル情報を記憶させる工程と、レベル情報の変更を禁止する変更禁止情報を不揮発性記憶部に記憶させる工程とを含んでいる。なお、ＩＣカード１は、耐タンパ性の機能を有する耐タンパ性機能部２０の作動レベルを規定するレベル情報に基づいて、耐タンパ性機能部２０を動作させるセキュリティ管理部１０３を備える。
これにより、本実施形態による製造方法は、ＩＣカード１をセキュリティレベル又は性能の異なる様々な用途に使用させることができる。
【００５０】
（第２の実施形態）
次に、図面を参照して、第２の実施形態によるＩＣモジュール１０及びＩＣカード１について説明する。
本実施形態では、レベル情報が、複数の記憶領域に記憶されている場合の一例について説明する。
なお、本実施形態によるＩＣカード１のハードウェア構成及び機能構成は、図２及び図３に示す第１の実施形態と同様であるので、ここではその説明を省略する。
【００５１】
図８は、本実施形態のレベル情報記憶部１４１のデータ例を示す図である。
この図に示すように、本実施形態のレベル情報記憶部１４１は、同一のレベル情報を複数の記憶領域（例えば、２箇所の記憶領域）に記憶している。すなわち、レベル情報記憶部１４１は、例えば、「レベル情報１」（Ｄ１）と、「レベル情報２」（Ｄ２）との２つのレベル情報を記憶している。ここで、「レベル情報１」（Ｄ１）と、「レベル情報２」（Ｄ２）とは、同一の情報であり、同一の情報をアドレスの異なる２つの記憶領域にミラーリングして記憶している。
【００５２】
また、セキュリティ管理部１０３は、複数の記憶領域に記憶された複数のレベル情報に基づいて、耐タンパ性機能部２０を動作させる。すなわち、セキュリティ管理部１０３は、例えば、複数のレベル情報が全て一致する場合に、当該レベル情報が改竄されていないと判定して、当該レベル情報に基づいて耐タンパ性機能部２０の設定を行う。また、セキュリティ管理部１０３は、例えば、複数のレベル情報のうちいずれか１つでも一致しない場合に、当該レベル情報が改竄されている判定して、エラー処理を行う。ここで、エラー処理とは、ＩＣカード１の動作を停止させる処理であってもよいし、耐タンパ性機能部２０の作動レベルを最も高い設定にする処理であってもよい。
【００５３】
次に、本実施形態によるＩＣカード１の動作について説明する。
まず、ＩＣカード１のレベル情報の設定手順についての基本動作は、図６に示す第１の実施形態のレベル情報の設定手順と同様である。ただし、本実施形態では、ＩＣカード１は、２つの記憶領域に、同一のレベル情報を記憶させる。
【００５４】
次に、図９を参照して、本実施形態によるＩＣカード１の動作について説明する。
図９は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
図９に示す例は、用途に応じたレベル情報（例えば、「レベル情報１」（Ｄ１）及び「レベル情報２」（Ｄ２））が設定された後のＩＣカード１の動作を示している。
【００５５】
ＩＣカード１が外部装置２に接続されて、活性化されると、図９に示すように、ＩＣカード１のセキュリティ管理部１０３は、まず、各耐タンパ性機能部２０の「レベル情報１」（Ｄ１）及び「レベル情報２」（Ｄ２）を取得する（ステップＳ３０１）。
【００５６】
次に、セキュリティ管理部１０３は、「レベル情報１」（Ｄ１）と「レベル情報２」（Ｄ２）とが一致するか否かを判定する（ステップＳ３０２）。セキュリティ管理部１０３は、「レベル情報１」（Ｄ１）と「レベル情報２」（Ｄ２）とが一致する場合（ステップＳ３０２：ＹＥＳ）に、処理をステップＳ３０３に進める。また、セキュリティ管理部１０３は、「レベル情報１」（Ｄ１）と「レベル情報２」（Ｄ２）とが一致しない場合（ステップＳ３０２：ＮＯ）に、処理をステップＳ３０６に進める。
【００５７】
ステップＳ３０３からステップＳ３０５までの処理は、図７に示すステップＳ２０２からステップＳ２０４までの処理と同様であるので、ここではその説明を省略する。
また、ステップＳ３０６において、セキュリティ管理部１０３は、エラー処理を実行して、処理を終了する。なお、ここでのエラー処理は、例えば、ＩＣカード１の動作を停止させる処理である。
【００５８】
以上説明したように、本実施形態では、ＥＥＰＲＯＭ１４は、同一のレベル情報を複数の記憶領域（例えば、２つの記憶領域）に記憶する。そして、セキュリティ管理部１０３は、複数の記憶領域に記憶された複数のレベル情報に基づいて、耐タンパ性機能部２０を動作させる。
これにより、第三者がレベル情報を改竄する場合には、複数の記憶領域に記憶されたレベル情報を改竄する必要があるため、本実施形態のＩＣモジュール１０及びＩＣカード１は、より高いセキュリティを保持しつつ、様々な用途に使用することが可能になる。
【００５９】
（第３の実施形態）
次に、図面を参照して、第３の実施形態によるＩＣモジュール１０及びＩＣカード１について説明する。
上述した第１の実施形態では、用途に応じて、耐タンパ性機能部２０を動作させる異なるレベル情報を設定する例を説明したが、本実施形態では、ＩＣカード１が実行する特定の処理に対応付けてレベル情報が設定される場合の一例について説明する。
なお、本実施形態によるＩＣカード１のハードウェア構成及び機能構成は、図２及び図３に示す第１の実施形態と同様であるので、ここではその説明を省略する。
【００６０】
図１０は、本実施形態のレベル情報記憶部１４１のデータ例を示す図である。
この図に示すように、本実施形態のレベル情報記憶部１４１は、複数の処理のそれぞれに対応するレベル情報を記憶する。この図に示す例では、レベル情報記憶部１４１は、例えば、「処理１」に対応する「ランダムＭＣ用のレベル情報」と、「グリッチ検出用のレベル情報」と、「ランダムウェイト用のレベル情報」と、「ノイズジェネレータ用のレベル情報」とを記憶する。また、レベル情報記憶部１４１は、例えば、「処理２」に対応する「ランダムＭＣ用のレベル情報」と、「グリッチ検出用のレベル情報」と、「ランダムウェイト用のレベル情報」と、「ノイズジェネレータ用のレベル情報」とを記憶する。このように、レベル情報記憶部１４１は、各処理に対応するレベル情報のテーブルとして、レベル情報を記憶する。
【００６１】
なお、レベル情報を設定する処理（特定の処理）は、例えば、暗号処理、復号処理、及び認証処理などのセキュリティに関する処理でもよいし、各種コマンド処理であってもよい。すなわち、レベル情報は、例えば、セキュリティに関する処理に対応して設定されてもよいし、各種コマンド処理に対応付けて設定されてもよい。
【００６２】
また、本実施形態のセキュリティ管理部１０３は、レベル情報に基づいて、処理ごとに規定された作動レベルにより耐タンパ性機能部２０を動作させる。例えば、セキュリティ管理部１０３は、複数の処理のうちの１つの処理を実行する場合に、当該処理に対応するレベル情報に基づいて、耐タンパ性機能部２０を動作させる作動レベルを変更する。また、セキュリティ管理部１０３は、当該処理が完了した場合に、耐タンパ性機能部２０を動作させる作動レベルを、当該処理の開始前の状態に戻す。
【００６３】
なお、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶するレベル情報を取得した場合に、取得したレベル情報を、現在の作動レベルの設定値を示すカレントレベル情報として、一旦、ＲＡＭ１２に記憶させる。セキュリティ管理部１０３は、カレントレベル情報に基づいて、耐タンパ性機能部２０を動作させる作動レベルを変更する。また、異なる処理に対応する作動レベル設定を行う場合には、セキュリティ管理部１０３は、カレントレベル情報をＲＡＭ１２の別の記憶領域に一旦退避させた後に、レベル情報記憶部１４１が記憶するレベル情報をカレントレベル情報としてＲＡＭ１２に記憶させる。また、当該処理が終了した場合には、セキュリティ管理部１０３は、退避した１つ前のカレントレベル情報をカレントレベル情報として戻し、戻した当該カレントレベル情報に基づいて、耐タンパ性機能部２０を動作させる作動レベルを当該処理の開始前の状態に戻す。
【００６４】
次に、本実施形態によるＩＣカード１の動作について説明する。
まず、ＩＣカード１のレベル情報の設定手順についての基本動作は、図６に示す第１の実施形態のレベル情報の設定手順と同様である。ただし、本実施形態では、ＩＣカード１では、複数の処理のそれぞれに対応するレベル情報が記憶される。
【００６５】
次に、図１１を参照して、本実施形態によるＩＣカード１の動作について説明する。
図１１は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
図１１に示す例は、複数の処理それぞれに応じたレベル情報が設定された後のＩＣカード１の動作を示している。なお、本実施形態では、レベル情報を設定する処理が、コマンド処理のうちの一部の機密性の高いセキュリティに関連する処理（以下、セキュリティ処理という）である場合の一例について説明する。
【００６６】
ＩＣカード１が外部装置２に接続されて活性化された状態において各種処理を実行する際に、図１１に示すように、ＩＣカード１のセキュリティ管理部１０３は、まず、実行する処理が、レベル情報が設定されているセキュリティ処理であるか否かを判定する（ステップＳ４０１）。セキュリティ管理部１０３は、セキュリティ処理である場合（ステップＳ４０１：ＹＥＳ）に、処理をステップＳ４０２に進める。また、セキュリティ管理部１０３は、セキュリティ処理でない場合（ステップＳ４０１：ＮＯ）に、処理をステップＳ４０６に進める。
【００６７】
ステップＳ４０２において、当該処理に対応する各耐タンパ性機能部２０のレベル情報を取得する。すなわち、セキュリティ管理部１０３は、例えば、当該処理に対応するランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４のそれぞれのレベル情報をレベル情報記憶部１４１から読み出す。また、セキュリティ管理部１０３は、上述したＲＡＭ１２のカレントレベル情報をＲＡＭ１２の別の記憶領域に退避した後に、レベル情報記憶部１４１から読み出したレベル情報を新しいカレントレベル情報としてＲＡＭ１２に記憶させる。
【００６８】
次に、セキュリティ管理部１０３は、取得したレベル情報に基づいて、各耐タンパ性機能部２０の作動レベルを変更する（ステップＳ４０３）。すなわち、セキュリティ管理部１０３は、ＲＡＭ１２のカレントレベル情報に基づいて、各耐タンパ性機能部２０に対して、作動レベルの設定を行う。これにより、当該処理に対応した各耐タンパ性機能部２０の作動レベルが設定される。
【００６９】
次に、コマンド実行部１０２は、当該処理を実行する（ステップＳ４０４）。
次に、当該処理を実行が終了したら、セキュリティ管理部１０３は、耐タンパ性機能部２０の作動レベルを戻す（ステップＳ４０５）。すなわち、セキュリティ管理部１０３は、退避した１つ前のカレントレベル情報を戻し、当該カレントレベル情報に基づいて、各耐タンパ性機能部２０に対して作動レベルの設定を行う。
【００７０】
また、ステップＳ４０６において、コマンド実行部１０２は、所定の処理を実行する。ここでは、コマンド実行部１０２は、各耐タンパ性機能部２０の作動レベルを変更せずに、所定の処理を実行する。
【００７１】
次に、図１２を参照して、処理に応じて、耐タンパ性機能部２０の作動レベルを変更するＩＣカード１の動作の一例を説明する。
図１２は、本実施形態のＩＣカード１の動作の一例を示す図である。
この図は、ＩＣカード１が、要求されるセキュリティレベル及び性能の異なる「アプリケーションＡ」、「アプリケーションＢ」、及び「アプリケーションＣ」用にレベル情報が設定された場合の各ＩＣカード１の動作の比較を示している。
【００７２】
「アプリケーションＡ」は、例えば、３つのアプリケーションうちで、要求されるセキュリティレベルが最も高く、処理時間に制限のない用途で使用される。また、「アプリケーションＣ」は、例えば、３つのアプリケーションうちで、処理時間に制限があり、要求されるセキュリティレベルが最も低い用途で使用される。また、「アプリケーションＢ」は、例えば、「アプリケーションＡ」と「アプリケーションＣ」との中間のセキュリティ
レベルが要求される用途で使用される。
【００７３】
ここで、「アプリケーションＡ」、「アプリケーションＢ」、及び「アプリケーションＣ」は、いずれも所定のコマンド処理（例えば、「コマンド処理Ｘ」において、「処理Ａ」と「ＡＥＳ暗号処理」とが実行されるものとして説明する。
また、図１２では、耐タンパ性機能部２０は、ランダムＭＣ部２１と、ランダムウェイト部２３とが使用される一例について説明する。
【００７４】
図１２に示す例では、「アプリケーションＡ」の「コマンド処理Ｘ」において、まず、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「コマンド処理Ｘ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル３”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。そして、「処理Ａ」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「処理Ａ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル３”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。なお、ここでは、「コマンド処理Ｘ」のレベル情報と「処理Ａ」のレベル情報とが同一の設定であるので、作動レベルは、変更されない。
【００７５】
次に、「ＡＥＳ暗号処理」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「ＡＥＳ暗号処理」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル３”に、ランダムウェイト部２３の作動レベルを“レベル３”に設定する。これにより、「ＡＥＳ暗号処理」の間に、ランダムＭＣ部２１及びランダムウェイト部２３が、“レベル３”で作動することになる。
また、「ＡＥＳ暗号処理」が終了する際に、セキュリティ管理部１０３は、ランダムＭＣ部２１の作動レベルを“レベル３”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に戻す。
このように、「アプリケーションＡ」では、他のアプリケーションに比べて高いセキュリティレベルが要求されるため、セキュリティ管理部１０３は、「ＡＥＳ暗号処理」の間に、ランダムＭＣ部２１及びランダムウェイト部２３を“レベル３”で動作させる。そして、セキュリティ管理部１０３は、その他の処理の間には、ランダムＭＣ部２１を“レベル３”で動作させ、ランダムウェイト部２３を動作させない。この場合、「アプリケーションＡ」では、「アプリケーションＢ」、及び「アプリケーションＣ」に比べて高いセキュリティレベルを確保することができる。
【００７６】
これに対して、「アプリケーションＢ」の「コマンド処理Ｘ」では、まず、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「コマンド処理Ｘ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。そして、「処理Ａ」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「処理Ａ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル２”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。そして、「処理Ａ」が終了する際に、セキュリティ管理部１０３は、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に戻す。
【００７７】
次に、「ＡＥＳ暗号処理」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「ＡＥＳ暗号処理」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル３”に、ランダムウェイト部２３の作動レベルを“レベル３”に設定する。そして、「ＡＥＳ暗号処理」が終了する際に、セキュリティ管理部１０３は、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に戻す。
このように、「アプリケーションＢ」では、３つのアプリケーションの中で中間のセキュリティレベルが要求されるため、セキュリティ管理部１０３は、「ＡＥＳ暗号処理」の間に、ランダムＭＣ部２１及びランダムウェイト部２３を“レベル３”で動作させる。また、セキュリティ管理部１０３は、「処理Ａ」の間に、ランダムＭＣ部２１を“レベル２”で動作させ、ランダムウェイト部２３を動作させない。そして、セキュリティ管理部１０３は、その他の処理の間には、ランダムＭＣ部２１及びランダムウェイト部２３を動作させない。
【００７８】
また、「アプリケーションＣ」の「コマンド処理Ｘ」では、まず、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「コマンド処理Ｘ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。そして、「処理Ａ」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「処理Ａ」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に設定する。なお、ここでは、「コマンド処理Ｘ」のレベル情報と「処理Ａ」のレベル情報とが同一の設定であるので、作動レベルは、変更されない。
【００７９】
次に、「ＡＥＳ暗号処理」が実行される際に、セキュリティ管理部１０３は、レベル情報記憶部１４１が記憶する「ＡＥＳ暗号処理」に対応するレベル情報に基づいて、ランダムＭＣ部２１の作動レベルを“レベル２”に、ランダムウェイト部２３の作動レベルを“レベル２”に設定する。これにより、「ＡＥＳ暗号処理」の間に、ランダムＭＣ部２１及びランダムウェイト部２３が、“レベル３”で作動することになる。
そして、「ＡＥＳ暗号処理」が終了する際に、セキュリティ管理部１０３は、ランダムＭＣ部２１の作動レベルを“レベル０（ＯＦＦ）”に、ランダムウェイト部２３の作動レベルを“レベル０（ＯＦＦ）”に戻す。
【００８０】
このように、「アプリケーションＣ」では、処理時間に制限があるため、セキュリティ管理部１０３は、「ＡＥＳ暗号処理」の間に、ランダムＭＣ部２１及びランダムウェイト部２３を“レベル２”で動作させて、その他の処理の間には、ランダムＭＣ部２１及びランダムウェイト部２３を動作させない。なお、ランダムＭＣ部２１及びランダムウェイト部２３は、作動レベルが高い程、処理時間が長くなる。しかしながら、「アプリケーションＣ」では、「ＡＥＳ暗号処理」の間以外、ランダムＭＣ部２１及びランダムウェイト部２３を動作させないので、「アプリケーションＡ」、及び「アプリケーションＢ」に比べて処理時間を短くすることができる。
【００８１】
なお、上述した例では、「コマンド処理Ｘ」、「処理Ａ」、及び「ＡＥＳ暗号処理」についてレベル情報を設定する例を説明したが、他の機密性の高いセキュリティ処理において、同様に実施してもよい。また、上述した例では、ランダムＭＣ部２１及びランダムウェイト部２３の作動レベルを設定する例を説明したが、ランダムＭＣ部２１及びランダムウェイト部２３の他の耐タンパ性機能部２０を用いて実施してもよい。
【００８２】
以上説明したように、本実施形態では、ＥＥＰＲＯＭ１４は、複数の処理のそれぞれに対応するレベル情報を記憶する。そして、セキュリティ管理部１０３は、レベル情報に基づいて、処理ごとに規定された作動レベルにより耐タンパ性機能部２０を動作させる。
これにより、本実施形態のＩＣモジュール１０及びＩＣカード１は、図１２に示したように、セキュリティレベル及び性能（例えば、処理時間）の要求に応じて、処理ごとに耐タンパ性機能部２０の作動レベルを設定するので、より複雑な耐タンパ性機能部２０の作動レベルの制御が可能になる。よって、本実施形態のＩＣモジュール１０及びＩＣカード１は、セキュリティレベル及び性能（例えば、処理時間）の要求に応じて、さらに様々な用途に使用することが可能になる。
【００８３】
また、本実施形態では、セキュリティ管理部１０３は、複数の処理のうちの１つの処理を実行する場合に、当該処理に対応するレベル情報に基づいて、耐タンパ性機能部２０を動作させる作動レベルを変更する。そして、セキュリティ管理部１０３は、当該処理が完了した場合に、耐タンパ性機能部２０を動作させる作動レベルを、当該処理の開始前の状態に戻す。
これにより、本実施形態のＩＣモジュール１０及びＩＣカード１は、耐タンパ性機能部２０を動作させる作動レベルを処理ごとに適切に変更することができる。
【００８４】
上記の各実施形態において、各実施形態を単独で実施する場合の例を説明したが、各実施形態を組み合わせて実施してもよい。例えば、第２の実施形態と、第３の実施形態とを組み合わせて実施してもよい。
【００８５】
また、上記の各実施形態において、ＩＣカード１は、書き換え可能な不揮発性メモリとして、ＥＥＰＲＯＭ１４を備える構成としたが、これに限定されるものではない。例えば、ＩＣカード１は、ＥＥＰＲＯＭ１４の代わりに、フラッシュＥＥＰＲＯＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory：強誘電体メモリ）などを備えてもよい。
また、上記の各実施形態において、ＩＣカード１は、コンタクト部３を介して外部装置２と通信する例を説明したが、コイルなどを用いたコンタクトレスインターフェースを介して外部装置２と通信するように構成してもよい。
【００８６】
また、上記の各実施形態において、ＩＣカード１は、耐タンパ性機能部２０として、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４を備える例を説明したが、これに限定されるものではない。ＩＣカード１は、他の耐タンパ性の機能を有する耐タンパ性機能部２０を備えていてもよいし、ランダムＭＣ部２１、グリッチ検出部２２、ランダムウェイト部２３、及びノイズジェネレータ部２４のうちの一部を備えていてもよい。
【００８７】
また、上記の各実施形態において、コプロセッサ１６が、ＡＥＳ暗号処理を行う例を説明したが、ＣＰＵ１１のプログラム処理によりＡＥＳ暗号処理が実行されてもよい。
また、上記の各実施形態において、ＩＣカード１が、レベル情報の変更を禁止する機能を備える例を説明したが、備えない構成であってもよい。また、ＩＣカード１又はＩＣモジュール１０が出荷される前に、レベル情報の変更を禁止する処理が実行される例を説明したが、これに限定されるものではなく、レベル情報の変更を禁止する処理が実行されない形態であってもよい。
【００８８】
また、上記の第２の実施形態において、レベル情報記憶部１４１が、同一のレベル情報を２つの記憶領域に記憶する例を説明したが、これに限定されるものではなく、３つ以上の記憶領域に記憶してもよい。
また、上記の第３の実施形態において、レベル情報記憶部１４１が、各処理に対応するレベル情報を記憶する例を説明したが、例えば、ＩＣカード１が複数のアプリケーションを有する場合などには、アプリケーションに対応したレベル情報を記憶するようにしてもよい。この場合、ＩＣモジュール１０及びＩＣカード１は、アプリケーションに対応して、セキュリティレベル及び性能（例えば、処理時間）を柔軟に変更することができる。
【００８９】
以上説明した少なくともひとつの実施形態によれば、耐タンパ性の機能を有する耐タンパ性機能部２０と、耐タンパ性機能部２０の作動レベルを規定するレベル情報を記憶するＥＥＰＲＯＭ１４と、レベル情報に基づいて、耐タンパ性機能部２０を動作させるセキュリティ管理部１０３とを持つことにより、様々な用途に使用することができる。
【００９０】
なお、実施形態におけるＩＣカード１が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したＩＣカード１が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【００９１】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にＩＣカード１が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９３】
１…ＩＣカード、２…外部装置、３…コンタクト部、４…カード基材、１０‥ＩＣモジュール、１１…ＣＰＵ、１２…ＲＡＭ、１３…ＲＯＭ、１４…ＥＥＰＲＯＭ、１５…通信Ｉ／Ｆ部、１６…コプロセッサ、１７…内部バス、２０…耐タンパ性機能部、２１…ランダムＭＣ部、２２…グリッチ検出部、２３…ランダムウェイト部、２４…ノイズジェネレータ部、１００…ＩＣチップ、１０１…通信部、１０２…コマンド実行部、１０３…セキュリティ管理部、１４１…レベル情報記憶部、１４２…変更禁止情報記憶部
【図１】
0006396119.tif 000002
【図２】
0006396119.tif 000003
【図３】
0006396119.tif 000004
【図４】
0006396119.tif 000005
【図５】
0006396119.tif 000006
【図６】
0006396119.tif 000007
【図７】
0006396119.tif 000008
【図８】
0006396119.tif 000009
【図９】
0006396119.tif 000010
【図１０】
0006396119.tif 000011
【図１１】
0006396119.tif 000012
【図１２】
0006396119.tif 000013