(57)【要約】【課題】セキュリティ性を向上できるＩＣカード、携帯可能電子装置、及びＩＣカード処理装置を提供することを目的とする。【解決手段】実施形態によれば、ＩＣカードは、不揮発性メモリと、処理手段と、消去手段とを有する。不揮発性メモリは、発行処理に使用する発行時データを記憶する。処理手段は、不揮発性メモリに記憶されている発行時データを用いて発行処理を実行する。消去手段は、処理手段が実行する発行処理によって不揮発性メモリに記憶した発行時データの使用が終了した後、不揮発性メモリから発行時データを消去する。【選択図】図１１
2014059806.tif 000002
【特許請求の範囲】
【請求項１】
発行処理に使用する発行時データを記憶する不揮発性メモリと、
前記不揮発性メモリに記憶されている発行時データを用いて発行処理を実行する処理手段と、
前記処理手段が実行する発行処理によって前記不揮発性メモリに記憶した前記発行時データの使用が終了した後、前記不揮発性メモリから前記発行時データを消去する消去手段と、
を有するＩＣカード。
【請求項２】
前記消去手段は、前記不揮発性メモリにおける前記発行時データが書き込まれた領域を、当該ＩＣカードの運用においてデータを格納するデータ領域として利用できるように前記発行処理に使用するデータを消去する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記消去手段は、外部装置から供給される消去コマンドに応じて前記発行時データを消去する処理を実行する、
前記請求項１又は２の何れかに記載のＩＣカード。
【請求項４】
前記不揮発性メモリは、システム領域、ファイル定義領域、および、ファイルデータ領域が設けられ、前記発行時データはファイルデータ領域に書き込まれ、
前記消去手段は、前記ファイルデータ領域における前記発行時データに消去する、
前記請求項１乃至３の何れか１項に記載のＩＣカード。
【請求項５】
前記発行時データは、前記発行処理における認証処理に用いる鍵情報を含む、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
発行処理に使用する発行時データを記憶する不揮発性メモリと、前記不揮発性メモリに記憶した発行時データを用いて前記発行処理を実行する処理手段と、前記処理手段が実行する発行処理によって前記不揮発性メモリに記憶した前記発行時データの使用が終了した後、前記不揮発性メモリから前記発行時データを消去する消去手段と、を備えるモジュールと、
前記モジュールを収納した本体と、
を有するＩＣカード。
【請求項７】
発行処理に使用する発行時データを記憶する不揮発性メモリと、
前記不揮発性メモリに記憶されている発行時データを用いて前記発行処理を実行する処理手段と、
前記処理手段が実行する発行処理によって前記不揮発性メモリに記憶した前記発行時データの使用が終了した後、前記不揮発性メモリから前記発行時データを消去する消去手段と、
を有する携帯可能電子装置。
【請求項８】
発行処理に使用する発行時データを記憶する不揮発性メモリを有するＩＣカードに対して前記発行時データを用いた処理を実行させるコマンドを送信する第１の送信手段と、
前記第１の送信手段により送信したコマンドに対する処理結果を示すレスポンスを受信する受信手段と、
前記受信手段により前記発行時データを用いた処理が正常終了したことを示すレスポンスを受信した場合、前記ＩＣカードに対して前記不揮発性メモリから前記発行時データを消去させる消去コマンドを送信する第２の送信手段と、
を有するＩＣカード処理装置。
【請求項９】
前記発行時データは、認証処理に用いる鍵情報であり、
前記第１の送信手段は、前記鍵情報を用いた認証処理を要求するコマンドを送信し、
前記第２の送信手段は、前記鍵情報を用いた認証処理が成功した場合、前記発行時データとしての鍵情報を消去させる消去コマンドを送信する、
前記請求項８に記載のＩＣカード処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、及びＩＣカード処理装置に関する。
【背景技術】
【０００２】
従来、ＩＣカードなどの携帯可能電子装置は、初期状態において、自身の発行時に必要なプログラム及びデータが書き込まれている。初期状態のＩＣカードは、発行時に必要なプログラム及びデータを用いて発行処理を実行する。発行処理が完了したＩＣカードは、発行時に必要なプログラム及びデータを保持した状態で運用される。しかしながら、発行時に必要な当該プログラム及びデータは、運用には必要のないデータであって運用時に不正にアクセスされる可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３９８６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この発明は、セキュリティ性を向上できるＩＣカード、携帯可能電子装置、及びＩＣカード処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、不揮発性メモリと、処理手段と、消去手段とを有する。不揮発性メモリは、発行処理に使用する発行時データを記憶する。処理手段は、不揮発性メモリに記憶されている発行時データを用いて発行処理を実行する。消去手段は、処理手段が実行する発行処理によって不揮発性メモリに記憶した発行時データの使用が終了した後、不揮発性メモリから発行時データを消去する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカードシステムの構成例を示す図である。
【図２】図２は、本実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、本実施形態に係るＩＣカードのライフサイクルの例を示すフローチャートである。
【図４】図４は、本実施形態に係るＩＣカードのフェーズと書き込み領域及び書き込みを行うコマンドとの対応例を示す図である。
【図５】図５は、本実施形態に係る初期化処理の例を説明するためのフローチャートである。
【図６】図６は、本実施形態に係るＩＣカードの初期化処理後におけるＮＶＭの構成例を示す図である。
【図７】図７は、本実施形態に係るＩＣカードのＮＶＭに格納されるプログラム管理テーブルの例を示す図である。
【図８】図８は、本実施形態に係るＩＣカードの一次発行処理の例を説明するためのフローチャートである。
【図９】図９は、本実施形態に係るＩＣカードの一次発行処理後におけるＮＶＭの構成例を示す図である。
【図１０】図１０は、本実施形態に係るＩＣカードのＮＶＭに格納されているファイル定義情報の構成例を示す図である。
【図１１】図１１は、本実施形態に係るＩＣカードの二次発行処理の例を説明するためのフローチャートである。
【図１２】図１２は、本実施形態に係るＩＣカードの二次発行処理後におけるＮＶＭの構成例を示す図である。
【図１３】図１３は、本実施形態に係るＩＣカードのＮＶＭに格納されているファイルデータの構成例を示す図である。
【発明を実施するための形態】
【０００７】
以下、本実施形態について、図面を参照しながら説明する。  
図１は、本実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１の構成について説明するためのブロック図である。
【０００８】
ＩＣカード処理装置１は、ＩＣカード２へコマンドを供給し、ＩＣカード２からのレスポンスを受け取る上位装置である。たとえば、ＩＣカード２は、初期化処理、一次発行処理、及び二次発行処理などの複数段階の発行フェーズによる発行処理が施されることより運用可能な状態となる。これらの発行処理において、ＩＣカード処理装置１は、ＩＣカード２に対して、初期化、一次発行及び二次発行などの発行処理を実行させる上位装置（発行装置）として機能する。また、各処理は、それぞれ別のＩＣカード処理装置で行われてもよい。たとえば、初期化処理及び一次発行処理は、ＩＣカード２の製造メーカのＩＣカード処理装置によって行われ、また、二次発行処理は、ＩＣカード２を用いてサービスを提供する事業所のＩＣカード処理装置によって行われるようにしてもよい。
【０００９】
図１に示す構成例において、ＩＣカード処理装置１は、基本的な構成として、制御部１１、ディスプレイ１２、操作部１３及びカードリーダライタ１４などを有する。なお、ＩＣカード処理装置１は、上述したような様々な発行処理での使用が想定されるものであり、図１に示すような構成の他に、発行処理に応じた構成を具備したり特定の構成を除外したりしてもよい。
【００１０】
制御部１１は、ＩＣカード処理装置１全体の動作を制御するものである。制御部１１は、ＣＰＵ、種々のメモリ及び各種インターフェーズなどにより構成される。たとえば、制御部１１は、パーソナルコンピュータ（ＰＣ）により構成されるようにしても良い。  
制御部１１は、カードリーダライタ１４によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、制御部１１は、カードリーダライタ１４を介して操作部１３で入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１１】
ディスプレイ１２は、制御部１１の制御により種々の情報を表示する表示装置である。ディスプレイ１２は、たとえば、液晶モニタなどである。  
操作部１３は、ＩＣカード処理装置１の使用者によって、種々の操作指示及びデータなどが入力される。操作部１３は、入力された操作指示及びデータなどを制御部１１へ送信する。操作部１３は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１２】
カードリーダライタ１４は、ＩＣカード２との通信を行うためのインターフェーズ装置である。カードリーダライタ１４は、ＩＣカード２の通信方式に応じたインターフェーズにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１３】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１４は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１４では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ１４は、制御部１１による制御に基づいてＩＣカード２の活性化（起動）、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１４】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェーズとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００１５】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェーズとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００１６】
次に、ＩＣカード２の構成例について説明する。  
図２は、第１実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信用の外部インターフェーズ（通信インターフェーズ）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。また、ＩＣカード２のモジュールＭは、図２に示すように、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、通信部２５を備えている。これらの各部は、データバスを介して互いに接続されている。
【００１７】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００１８】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００１９】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、受信用バッファ、計算用バッファ、送信用バッファなどを備える。受信用バッファとしては、通信部２５を通じてＩＣカード処理装置１から送信されたコマンドを保持する。計算用バッファとしては、ＣＰＵ２１が種々の計算をするため一時的な結果を保持する。送信用バッファとしては、通信部２５を通じてＩＣカード処理装置１に送信するデータを保持する。
【００２０】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２１】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４との通信を行うためのインターフェーズである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１４との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００２２】
次に、ＩＣカード２の初期化から破棄までのライフサイクルについて説明する。  
図３は、ＩＣカード２のライフサイクルについて説明するためのフローチャートである。  
まず、ＩＣカード２は、モジュールＭを筐体に埋設などの製造工程により製造される。製造直後の状態において、ＩＣカード２は、ＮＶＭ２４内に何もデータが書き込まれていない状態である。製造されたＩＣカード２には、発行処理における最初の発行フェーズとして初期化処理が実行される。すなわち、ＩＣカード処理装置１は、製造されたＩＣカード２に対して初期化処理を実行させる（ステップ１）。初期化処理は、ＩＣカード２のＮＶＭ２４内のシステム領域に、ＯＳなどの基本的なデータ、プログラム管理テーブル及びプログラムコードなどを書き込む処理である。
【００２３】
初期化処理が完了したＩＣカード２には、次の発行フェーズとして一次発行が行われる。すなわち、ＩＣカード処理装置１は、初期化処理が完了したＩＣカード２に対して一次発行処理を実行させる（ステップ２）。一次発行処理は、ＩＣカード２のＮＶＭ２４内にファイル定義情報領域にファイル定義情報などを書き込み、ファイル創生などを行う処理である。
【００２４】
一次発行処理が完了したＩＣカード２には、次の発行フェーズとして二次発行が行われる。すなわち、ＩＣカード処理装置１は、一次発行処理が完了したＩＣカード２に対して二次発行処理を実行させる（ステップ３）。二次発行処理は、ＩＣカード２のＮＶＭ内のファイルデータ領域に、ＩＣカードの運用に必要なファイルデータなどを書き込む処理である。たとえば、二次発行処理では、運用時に当該ＩＣカードを使用するユーザの情報などが書き込まれる。
【００２５】
二次発行処理が完了したＩＣカード２は、実際に運用が開始される（ステップ４）。たとえば、二次発行が完了したＩＣカード２は、ユーザに手渡され、ＩＣカード２が提供するサービスに沿った運用がなされる。運用を開始したＩＣカード２は、所定の運用条件に従って運用された後に破棄される（ステップ５）。たとえば、ＩＣカード２は、サービスの提供終了、所定の有効期間の経過、あるいは、動作の不具合などが発生した場合に破棄される。
【００２６】
次に、各発行フェーズにおけるＩＣカードに対する書込み処理について概略的に説明する。いてＩＣカード２の内の書き込み対象領域と書き込みを行うコマンドについて説明する。  
図４は、各発行フェーズと、ＩＣカード２内のＮＶＭ２４に対する書き込み領域と、ＩＣカードに対して書き込みを要求するコマンドと、を対応づけた対応テーブルの例を示す図である。
【００２７】
図４に示す例では、初期化フェーズにおいて、ＩＣカード処理装置１は、ＩＣカード２に対して書き込みコマンドを用いて、ＮＶＭ２４にシステム領域を設け、システム領域内にプログラム管理テーブルおよびプログラムコードを書込み、さらに、システム領域外のデータ及びプログラムコード領域に発行処理に必要となるデータ及びプログラムコードを書き込む。また、一次発行フェーズにおいて、ＩＣカード処理装置１は、ＩＣカード２に対してファイル創生コマンドを用いて、ＮＶＭ２４にファイル定義情報領域を設け、ファイル定義情報領域にファイル定義情報を書き込む。また、二次発行フェーズにおいて、ＩＣカード処理装置１は、ＩＣカード２に対して書き込みコマンドを用いて、ＮＶＭ２４にファイルデータ領域を設け、ファイルデータ領域にファイルのデータを書き込む。
【００２８】
以下、各発行フェーズについて詳細に説明する。  
まず、初期化処理について説明する。  
初期化処理は、ＩＣカード２が基本的な動作を実行するためのデータ（たとえば、ＯＳ、ＯＳが直接使用するデータなど）などをＮＶＭ２４に書き込む処理である。初期化処理は、ＩＣカード２を運用可能な状態にする発行処理において最初の段階で行われる処理である。たとえば、初期化処理は、予め定められている仕様に応じて実行され、製造直後のＩＣカード２に対して行われる。
【００２９】
図５は、初期化処理の例を説明するためのフローチャートである。  
まず、ＩＣカード処理装置１の制御部１１は、ＩＣカード２のＮＶＭ２４にシステム領域を書き込ませるための書込みコマンド（システム領域の書込みコマンド）を生成する。システム領域の書込みコマンドとしては、ＩＣカード２のＮＶＭ２４にシステム領域を定義し、定義したシステム領域にＩＣカード２の基本的な動作を実行するための基本データを書き込むませるコマンドとする。また、システム領域に書き込む基本データは、当該ＩＣカード２の仕様に応じて設定される情報であり、たとえば、フェーズ管理情報及びプロトコル通信で使用する設定情報などである。システム領域の書き込みコマンドを生成すると、制御部１１は、生成した書き込みコマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ１１）。
【００３０】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのシステム領域の書き込みコマンドを受信する（ステップ５１）。ＩＣカード２のＣＰＵ２１は、受信したシステム領域の書き込みコマンドを実行し、ＮＶＭ２４にシステム領域を定義し、定義したシステム領域に書込みコマンドで指定された基本データを書き込む書込処理を行う（ステップ５２）。書き込み処理を実行すると、ＣＰＵ２１は、実行結果を格納したレスポンスを生成する。即ち、ＣＰＵ２１は、書き込みコマンドの実行に成功した場合には、書き込み成功を示すレスポンスを生成し、書き込みコマンドの実行に失敗した場合には、書き込み失敗を示すレスポンスを生成する。書込みコマンドに対するレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ５３）。
【００３１】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ１２）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２がシステム領域の書き込みに成功したか判定する（ステップ１３）。システム領域の書き込みが成功したと判定した場合（ステップ１３、ＹＥＳ）、制御部１１は、ＩＣカード２のＮＶＭ２４に定義したシステム領域に運用プログラムコードを書き込むための書き込みコマンド（運用プログラムコードの書き込みコマンド）を生成する。運用プログラムコードの書き込みコマンドを生成すると、制御部１１は、生成した書き込みコマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ１４）。運用プログラムコードについては後述する。
【００３２】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの運用プログラムコードの書き込みコマンドを受信する（ステップ５４）。ＩＣカード２のＣＰＵ２１は、受信した書き込みコマンドを実行し、ＮＶＭ２４のシステム領域に運用プログラムコードを書き込む処理を実行する（ステップ５５）。運用プログラムコードの書き込み処理を実行すると、ＣＰＵ２１は、運用プログラムコードの書込み処理の実行結果を格納したレスポンスを生成し、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ５６）。
【００３３】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ１５）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２が運用プログラムコードの書き込みに成功したか判定する（ステップ１６）。運用プログラムコードの書き込みが成功したと判定した場合（ステップ１６、ＹＥＳ）、制御部１１は、ＩＣカード２に対してＮＶＭ２４に発行時データの書込みを要求する発行時データの書き込みコマンドを生成する。発行時データは、発行処理で必要であるが運用フェーズでは不要となるデータであり、システム領域外の領域に書き込まれる。発行時データは、たとえば、発行処理用の鍵（第１鍵）情報、発行処理用のプログラムコード及びデータなどである。発行時データの書込みコマンドを生成すると、制御部１１は、生成した書き込みコマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ１７）。
【００３４】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの発行時データの書き込みコマンドを受信する（ステップ５７）。発行時データの書込みコマンドを受信すると、ＩＣカード２のＣＰＵ２１は、受信した書き込みコマンドを実行し、
ＮＶＭ２４のシステム領域外の領域に発行時データを格納する領域（発行時データ領域）を定義し、発行時データ領域に鍵情報、プログラムコード及びデータなどの発行時データを書き込む処理を実行する（ステップ５８）。発行時データの書き込み処理を実行すると、ＣＰＵ２１は、書込み処理の実行結果を格納したレスポンスを生成し、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ５９）。
【００３５】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ１８）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２が発行時データの書き込みに成功したか判定する（ステップ１９）。発行時データの書き込みが成功したと判定した場合（ステップ１９、ＹＥＳ）、制御部１１は、ＩＣカード２に対してＮＶＭ２４のシステム領域へのプログラム管理テーブルの書き込みを要求する書き込みコマンド（プログラム管理テーブルの書き込みコマンド）を生成する。制御部１１は、生成した書き込みコマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ２０）。
【００３６】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのプログラム管理テーブルの書き込みコマンドを受信する（ステップ６０）。ＩＣカード２のＣＰＵ２１は、受信した書き込みコマンドを実行し、ＮＶＭ２４のシステム領域にプログラム管理テーブルを書き込む処理を実行する（ステップ６１）。書き込み処理を実行すると、ＣＰＵ２１は、プログラム管理テーブルの書き込み処理の実行結果を格納したレスポンスを生成し、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ６２）。
【００３７】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ２１）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２がプログラム管理テーブルの書き込みに成功したか否かを判定する（ステップ２２）。プログラム管理テーブルの書き込みが成功したと判定した場合（ステップ２２、ＹＥＳ）、制御部１１は、ＩＣカード２に対する初期化処理を正常終了する。
【００３８】
また、システム領域の書き込みが失敗したと判定した場合（ステップ１３、ＮＯ）、運用プログラムコードの書き込みが失敗したと判定した場合（ステップ１６、ＮＯ）、発行時データの書き込みが失敗した判定した場合（ステップ１９、ＮＯ）、あるいは、プログラム管理テーブルの書き込みが失敗した判定した場合（ステップ２２、ＮＯ）、制御部１１は、ＩＣカード２の初期化処理が失敗したことを示す情報を報知する（ステップ２３）。たとえば、制御部１１は、ディスプレイ１２にＩＣカード２の初期化処理が失敗したことを示す情報を表示する。また、ＩＣカード処理装置１の制御部１１は、他の機器に当該ＩＣカード２の初期化処理が失敗したことを示す情報を送信してもよい。  
なお、上述した初期化フェーズにおける各データの書き込みの順序は、図５に示す順序に限定されるものではなく、適宜書込み順序を入替えて実施するようにしても良い。
【００３９】
次に、初期化処理後のＩＣカードにおけるＮＶＭ２４の状態について説明する。  
図６は、初期化処理後のＩＣカード２のＮＶＭ２４内に格納されているデータの構成例を示す図である。  
図６に示すように、初期化処理後のＮＶＭ２４は、システム領域３１及び発行時データ領域３２などを有する。また、ＮＶＭ２４のシステム領域３１は、プログラム管理テーブルを格納する記憶領域３１ａ及び運用プログラムコードを格納する記憶領域３１ｂを有する。さらに、ＮＶＭ２４の発行時データ領域３２は、鍵情報を格納する記憶領域３２ａ、プログラムコード及びデータを格納する記憶領域３２ｂを有する。
【００４０】
次に、システム領域３１の記憶領域３１ａに格納されるプログラム管理テーブルについて説明する。  
図７は、システム領域３１の記憶領域３１ａに格納されるプログラム管理テーブルの例を示す図である。  
図７に示すように、記憶領域３１ａに格納されるプログラム管理テーブルは、コマンド識別情報と、プログラム先頭アドレスと、実行条件とが対応づけられている。コマンド識別情報は、外部装置（たとえば、ＩＣカード処理装置１）から送信されるコマンドを識別するための情報である。プログラム先頭アドレスは、対応するコマンド識別情報が示すコマンドを実行するためのプログラムコードが格納されている領域のＮＶＭ２４における先頭のアドレスである。実行条件は、対応するコマンドが示すコマンドの処理を実行するためのプログラムコードを実行するための条件である。
【００４１】
プログラム管理テーブルは、ＣＰＵ２１が外部から受信したコマンドを実行するために利用される。たとえば、ＣＰＵ２１は、受信したコマンドにおけるコマンド識別情報を抽出し、抽出したコマンド識別情報とプログラム管理テーブル内のコマンド識別情報とを比較することにより、受信したコマンドを識別する。受信したコマンドを識別すると、ＣＰＵ２１は、プログラム管理テーブルを参照することによって、送信されたコマンドに対応する実行条件を取得し、取得した実行条件が満たされているか判定する。実行条件が満たされていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することによって、当該コマンドを実行するためのプログラムコードの先頭アドレスを取得する。プログラムの先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスに基づいてＮＶＭ２４内から当該コマンドを実行するためのプログラムコードを取得し、取得したプログラムコードを実行する。取得したプログラムコードを実行すると、ＣＰＵ２１は、実行結果を格納したレスポンスを生成する。また、実行条件が満たされていないと判定すると、ＣＰＵ２１は、実行条件が満たされていないことを示すレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５により外部装置へ送信する。
【００４２】
たとえば、ＣＰＵ２１がコマンド識別情報として「００  Ｅ０」を格納するコマンド（即ち、ファイル創生コマンド）を外部装置から受信した場合、ＣＰＵ２１は、受信したコマンドからコマンド識別情報として「００  Ｅ０」を取得する。コマンド識別情報として「００  Ｅ０」を取得すると、ＣＰＵ２１は、プログラム管理テーブルを参照することにより、実行条件として「認証コマンド成功時」を取得する。実行条件として「認証コマンド成功時」を取得すると、ＣＰＵ２１は、「認証コマンド成功時」を満たしているか判定する。「認証コマンド成功時」を満たしていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することにより、「００  Ｅ０」が示すコマンドに対応するプログラム先頭アドレスとして「ＣＣＣＣ」を取得する。プログラム先頭アドレスとして「ＣＣＣＣ」を取得すると、ＣＰＵ２１は、取得したプログラム先頭アドレス「ＣＣＣＣ」に基づいてＮＶＭ２４内から「００  Ｅ０」が示すコマンドに対応するプログラムコードを取得し、取得したプログラムコードを実行する。取得したプログラムコードを実行すると、ＣＰＵ２１は、実行結果を格納したレスポンスを生成する。また、「認証コマンド成功時」を満たしていないと判定すると、ＣＰＵ２１は、実行条件を満たしていないことを示すレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５により外部装置へ送信する。
【００４３】
なお、運用コマンドＡ及びＢは、ＩＣカード２の通常運用時に使用されるコマンドである。ファイル創生コマンド、認証コマンド、認証用鍵変更コマンド及び消去コマンドは、ＩＣカード２の発行時に使用されるコマンドであり、ＩＣカード２の通常運用時には使用されないコマンドであるものとする。
【００４４】
次に、ＮＶＭ２４のシステム領域３１内の記憶領域３１ｂに格納される運用プログラムコードについて説明する。  
ＮＶＭ２４のシステム領域３１における記憶領域３１ｂに格納される運用プログラムコードは、ＩＣカード２の運用フェーズで使用される可能性があるコマンド（発行処理後も保持しておくコマンド）を実行するためのプログラムコードである。運用プログラムコードは、たとえば、書き込みコマンドを実行するためのプログラムコード及び取得コマンドを実行するためのプログラムコードなどである。システム領域３１の記憶領域３１ｂは、様々なコマンドを実行するため複数の運用プログラムコードを格納している。
【００４５】
本実施形態において、システム領域３１内の記憶領域３１ｂは、運用プログラムコードとして、図７に示される運用コマンドＡ及びＢを実行するための各プログラムコードなどを格納する。即ち、運用コマンドＡに対応するプログラム先頭アドレス（即ち、「ＡＡＡＡ」）及び運用コマンドＢに対応するプログラム先頭アドレス（即ち、「ＢＢＢＢ」）は、共にシステム領域３１の記憶領域３１ｂ内のアドレスである。
【００４６】
次に、ＮＶＭ２４の発行時データ領域３２における記憶領域３２ａに格納されている第１鍵について説明する。  
ＮＶＭ２４の発行時データ領域３２における記憶領域３２ａに格納されている鍵情報は、発行処理を行うための認証処理に利用される鍵である。初期化処理では、記憶領域３２ａに一次発行を行うための認証処理に利用される第１鍵が鍵情報として書き込まれる。即ち、第１鍵による認証処理が成功した場合、一次発行処理の実行が認められる。一次発行処理における認証処理については後述する。なお、記憶領域３２ａに記憶される鍵情報は、特定の種類に限定されるものではない。
【００４７】
次に、ＮＶＭ２４の発行時データ領域３２における記憶領域３２ｂに格納されているプログラムコードおよびデータについて説明する。  
ＮＶＭ２４の発行時データ領域３２における記憶領域３２ｂに格納されているプログラムコード及びデータは、ＩＣカード２の発行時に使用されるコマンドを実行するためのプログラムコード及びデータである。ここで、記憶領域３２ｂに格納されているプログラムコードを発行プログラムコードと称するものとする。発行プログラムコードは、たとえば、ファイル創生コマンド、認証コマンド、認証用鍵変更コマンド及び消去コマンドなどの発行処理時に使用されるプログラムコード（運用時には使用しないプログラムコード）である。また、発行時データ領域３２の記憶領域３２ｂは、発行プログラム以外にも、発行処理時に使用され、運用時に使用しないデータも格納される。
【００４８】
本実施形態において、発行時データ領域３２の記憶領域３２ｂは、発行プログラムコードとして、図７に示されるファイル創生コマンド、認証コマンド、認証用鍵変更コマンド及び消去コマンドを実行するための各プログラムコードなどを格納している。即ち、ファイル創生コマンドに対応するプログラム先頭アドレス（即ち、「ＣＣＣＣ」）、認証コマンドに対応するプログラム先頭アドレス（即ち、「ＤＤＤＤ」）、認証用鍵変更コマンドに対応するプログラム先頭アドレス（即ち、「ＥＥＥＥ」）及び消去コマンドに対応するプログラム先頭アドレス（即ち、「ＦＦＦＦ」）は、どれも発行時データ領域３２の記憶領域３２ｂ内のアドレスである。
【００４９】
次に、一次発行処理について説明する。  
一次発行処理は、ＩＣカード２の運用に合わせたファイル構造をＩＣカード２内のＮＶＭ２４内に創生する処理である。一次発行は、初期化の後に行われる。通常、一次発行は、ＩＣカード２の製造段階で行われる。
【００５０】
図８は、ＩＣカード２の一次発行の例を説明するためのフローチャートである。  
まず、ＩＣカード処理装置１の制御部１１は、カードリーダライタ１４により、一次発行処理を実行するための認証コマンド（即ち、コマンド識別情報が「００  ８２」であるコマンド）をＩＣカード２へ送信する（ステップ３１）。認証コマンドは、ＮＶＭ２４の発行時データ領域３２内にある記憶領域３２ａに格納されている鍵情報としての第１鍵と照合される認証情報を含むものである。当該認証コマンドに含まれる認証情報は、一次発行のための認証処理における認証方式に応じた情報であれば良い。
【００５１】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの認証コマンドを受信する（ステップ７１）。ＩＣカード２のＣＰＵ２１は、プログラム管理テーブルを参照することによって受信したコマンドが認証コマンドであることを認識し、プログラム管理テーブルにより認証コマンドを実行するためのプログラムコードが格納されているＮＶＭ２４上の先頭アドレスを取得する。たとえば、図７に示すプログラム管理テーブルの例によれば、ＣＰＵ２１は、認証コマンド（「００  ８２」）に対応する先頭アドレスとして「ＤＤＤＤ」を取得する。先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスに基づいて記憶領域３２ｂから認証コマンドを実行するためのプログラムコードを取得する。プログラムコードを取得すると、ＣＰＵ２１は、取得したプログラムコードを実行し、認証コマンドに含まれる認証情報と記憶領域３２ａに格納されている鍵情報（第１鍵）とを照合する認証処理（一次発行時の認証処理）を行う（ステップ７２）。認証処理を実行すると、ＣＰＵ２１は、認証結果を格納したレスポンスを生成する。即ち、ＣＰＵ２１は、認証が成功した場合、認証に成功したことを示すレスポンスを生成し、認証が失敗した場合、認証に失敗したことを示すレスポンスを生成する。認証結果を格納したレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ７３）。
【００５２】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ３２）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカードが一次発行時の認証に成功したと判定する（ステップ３３）。一次発行時の認証が成功したと判定した場合（ステップ３３、ＹＥＳ）、制御部１１は、ＩＣカード２内のファイル定義情報領域に所定のファイル定義情報を書き込むためのファイル創生コマンド（即ち、コマンド識別情報が「００  Ｅ０」であるコマンド）を生成する。制御部１１は、生成したファイル創生コマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ３４）。
【００５３】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのファイル創生コマンドを受信する（ステップ７４）。ＩＣカード２のＣＰＵ２１は、記憶領域３１ａに格納されているプログラム管理テーブルを参照することによって、ファイル創生コマンドの実行条件を取得する。たとえば、図７に示す例では、ファイル創生コマンドの実行条件が「認証コマンド成功時」であることを認識する。ファイル創生コマンドの実行条件が「認証コマンド成功時」であることを認識すると、ＣＰＵ２１は、「認証コマンド成功時」という条件が満たされているか判定する。たとえば、ＣＰＵ２１は、認証が成功した場合にＲＡＭ２３内に認証が成功したことを示すデータを格納しておき、当該データを参照することで「認証コマンド成功時」が満たされているか判定するようにしてもよい。
【００５４】
「認証コマンド成功時」という条件が満たされていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することにより、ファイル創生コマンドを実行するためのプログラムコードの先頭アドレスを取得する。図７に示す例では、先頭アドレスは「ＣＣＣＣ」である。ファイル創生コマンドを実行するためのプログラムコードの先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスからファイル創生コマンドを実行するためのプログラムコードを取得する。プログラムコードを取得すると、ＣＰＵ２１は、取得したプログラムコードを実行し、当該ファイル創生コマンドに従ったファイル定義情報をファイル定義情報領域に書き込むファイル創生処理を行う（ステップ７５）。
【００５５】
ファイル創生コマンドを実行するためのプログラムコードを実行すると、ＣＰＵ２１は、ファイル創生処理の実行結果を格納したレスポンスを生成する。即ち、ＣＰＵ２１は、ファイル創生コマンドの実行に成功した場合には、ファイル創生成功を示すレスポンスを生成し、ファイル創生コマンドの実行に失敗した場合には、ファイル創生失敗を示すレスポンスを生成する。また、「認証コマンド成功時」が満たされていないと判定すると、ＣＰＵ２１は、実行結果として実行条件が満たされていないことを示すレスポンスを生成する。ファイル創生コマンドに対するレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ７６）。
【００５６】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ３５）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２がファイル創生処理の実行に成功したか否かを判定する（ステップ３６）。ファイル創生処理の実行が成功したと判定した場合（ステップ３６、ＹＥＳ）、制御部１１は、認証用の鍵情報の変更を要求する認証用鍵変更コマンド（即ち、コマンド識別情報が「００  ２４」であるコマンド）を生成する。認証用鍵変更コマンドは、発行時データ領域における鍵情報を一次発行の認証に用いる第１鍵から二次発行の認証に用いる第２鍵に変更させるコマンドである。ＩＣカード処理装置１の制御部１１は、生成した認証用鍵変更コマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ３７）。認証用鍵変更コマンドで指定する第２鍵は、ＩＣカード処理装置１を操作するオペレータによって入力される鍵であってもよいし、制御部１１内のメモリなどに予め格納されていてもよいし、所定のアルゴリズムで制御部１１が生成するものであっても良い。なお、制御部１１が第２鍵を決定する方法は、特定の方法に限定されない。
【００５７】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの認証用鍵変更コマンドを受信する（ステップ７７）。ＩＣカード２のＣＰＵ２１は、プログラム管理テーブルを参照することによって、認証用鍵変更コマンドの実行条件が「認証コマンド成功時」であることを認識する。認証用鍵変更コマンドの実行条件を認識すると、ＣＰＵ２１は、認識した実行条件が満たされているか否かを判定する。「認証コマンド成功時」が満たされていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することによって、認証用鍵変更コマンドを実行するためのプログラムコードの先頭アドレスを取得する。図７に示す例では、認証用鍵変更コマンドのプログラムコードの先頭アドレスが「ＥＥＥＥ」となっている。先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスに基づいて記憶領域３２ｂから認証用鍵変更コマンドを実行するためのプログラムコードを取得する。プログラムコードを取得すると、ＣＰＵ２１は、取得したプログラムコードを実行し、発行時データ領域３２内の記憶領域３２ａに記憶されている鍵情報を第１鍵から第２鍵へ書き換える鍵変更処理を行う（ステップ７８）。鍵変更処理を実行すると、ＣＰＵ２１は、鍵変更処理の実行結果を格納したレスポンスを生成する。
【００５８】
また、「認証コマンド成功時」が満たされていないと判定すると、ＣＰＵ２１は、実行結果として実行条件が満たされていないことを示すレスポンスを生成する。この場合、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ７９）。なお、第２鍵は、認証用鍵変更コマンドを受信したＣＰＵ２１が生成するようにしても良い。
【００５９】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からレスポンスを受信する（ステップ３８）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスから認証用鍵変更コマンドの実行が成功したか判定する（ステップ３９）。  
認証用鍵変更コマンドの実行が成功したと判定した場合（ステップ３９、ＹＥＳ）、制御部１１は、ＩＣカード２に対する一次発行処理を終了する。
【００６０】
また、認証が失敗したと判定した場合（ステップ３３、ＮＯ）、ファイル創生コマンドの実行が成功しなかったと判定した場合（ステップ３６、ＮＯ）、或いは、認証用鍵変更コマンドの実行が成功しなかったと判定した場合（ステップ３９、ＮＯ）、制御部１１は、ＩＣカード２の一次発行処理が失敗したことを報知する（ステップ４０）。たとえば、制御部１１は、ディスプレイ１２にＩＣカード２の一次発行処理が失敗したことを示す情報を表示しても良いし、他の機器に当該ＩＣカード２における一次発行処理が失敗したことを示す情報を送信するようにしてもよい。
【００６１】
図９は、一次発行処理後のＩＣカード２のＮＶＭ２４内に格納されているデータの構成例を示す図である。  
一次発行処理が正常に終了すると、ＮＶＭ２４は、ファイル定義情報領域３３内にファイル定義情報が格納され、発行時データ領域３２内の記憶領域３２ａには鍵情報として第２鍵が格納される。また、ＮＶＭ２４は、ファイル定義情報によってファイルデータ領域３４が定義される。
【００６２】
ＮＶＭ２４内に格納されている各ファイルは、ファイル定義情報領域３３に記憶されるそれぞれのファイル定義情報とファイル定義情報で定義されるファイルデータ領域３４におけるデータエリアとにより構成される。たとえば、ＩＣカード２では、ＤＦ（フォルダ）およびＥＦ（データファイル）により階層構造でファイルを管理する。この場合、ＤＦは、ファイル定義情報領域３３に記憶されるＤＦ定義情報で定義され、ＥＦは、ファイル定義情報領域３３に記憶されるＥＦ定義情報とそのＥＦ定義情報で定義されるファイルデータ領域３４におけるデータエリアとにより構成される。
【００６３】
図１０は、ファイル定義情報領域３３に格納されるＥＦのファイル定義情報の構成例を示す図である。  
図１０に示すように、ＥＦのファイル定義情報は、データの階層構造、データの種別、ファイルＩＤ、データの先頭アドレス、データのサイズ、セキュリティ属性、データの個数及びチェックコードなどを備える。データの階層構造は、当該ＥＦが格納されているＤＦを示す。データの種別は、当該ファイルのデータ構造（たとえば、バイナリ構造、ＴＬＶ構造など）を示す。ファイルＩＤは、当該ＥＦを特定するためのユニークな識別情報である。データのサイズは、当該ＥＦのデータエリアのサイズを示す。セキュリティ属性は、認証状態などを示すセキュリティステータスを示す。データの個数は、当該ＥＦがデータエリアとして使用するデータブロックの数を示す。チェックコードは、当該ファイル定義情報の正当性をチェックするためのデータ（たとえば、ＣＲＣ、パリティなど）である。
【００６４】
次に、一次発行処理後にＮＶＭ２４の発行時データ領域３２における記憶領域３２ａに格納される第２鍵について説明する。  
一次発行処理後のＮＶＭ２４の発行時データ領域３２における記憶領域３２ａに格納される第２鍵は、二次発行処理を行うための認証処理に利用される。即ち、第２鍵による認証処理が成功した場合に、二次発行処理が実行される。
【００６５】
次に、二次発行処理について説明する。  
二次発行処理は、ＩＣカード２を運用するために必要なデータをＩＣカード２内のＮＶＭ２４に書き込む処理である。二次発行処理は、一次発行処理の後に行われる。たとえば、二次発行処理は、ＩＣカード２を用いてサービスを提供するサービス提供元としての個々の事業者などによって行われる。
【００６６】
図１１は、二次発行処理の例を説明するためのフローチャートである。  
まず、ＩＣカード処理装置１の制御部１１は、カードリーダライタ１４により二次発行処理に対応する認証情報を格納した認証コマンド（即ち、コマンド識別情報が「００  ８２」であるコマンド）をＩＣカード２へ送信する（ステップ４１）。当該認証コマンドは、二次発行処理を実行するための認証処理を要求するコマンドであり、ＩＣカード２のＮＶＭ２４の発行時データ領域３２における記憶領域３２ａに格納される鍵情報としての第２鍵と照合される認証情報を含む。認証コマンドに含まれる認証情報は、二次発行処理のための認証処理における認証方式に対応する情報であれば良い。
【００６７】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの認証コマンドを受信する（ステップ８１）。ＩＣカード２のＣＰＵ２１は、プログラム管理テーブルを参照することによって、受信したコマンドが認証コマンドであることを認識し、当該認証コマンドを実行するためのプログラムコードの先頭アドレスを取得する。図７に示す例では、認証コマンドの先頭アドレスとして「ＤＤＤＤ」を取得する。先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスに基づいてＮＶＭ２４の記憶領域３２ｂから認証コマンドを実行するためのプログラムコードを取得する。プログラムコードを取得すると、ＣＰＵ２１は、取得したプログラムコードを実行し、認証コマンドに格納されている認証情報と記憶領域３２ａに格納されている第２鍵とによる認証処理を実行する（ステップ８２）。認証処理を実行すると、ＣＰＵ２１は、実行した認証処理による認証結果を格納したレスポンスを生成する。即ち、ＣＰＵ２１は、認証が成功した場合、認証に成功したことを示すレスポンスを生成し、認証が失敗した場合、認証に失敗したことを示すレスポンスを生成する。認証結果を格納したレスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ８３）。
【００６８】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からのレスポンスを受信する（ステップ４２）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２における認証が成功したか否か判定する（ステップ４３）。認証が成功したと判定した場合（ステップ４３、ＹＥＳ）、制御部１１は、ＩＣカード２のＮＶＭ２４に格納されている発行時に必要なデータ（運用時には使用しないデータ）を消去させるための消去コマンド（即ち、コマンド識別情報が「００  ００」であるコマンド）をカードリーダライタ１４によりＩＣカード２へ送信する（ステップ４４）。
【００６９】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からの消去コマンドを受信する（ステップ８４）。ＩＣカード２のＣＰＵ２１は、ＮＶＭ２４の記憶領域３１ａに格納されているプログラム管理テーブルを参照することによって、受信したコマンドが消去コマンドであると認識し、当該消去コマンドの実行条件を取得する。消去コマンドの実行条件を取得すると、ＣＰＵ２１は、取得した実行条件が満たされているか否かを判定する。たとえば、図７に示す例では、消去コマンドの実行条件として「認証コマンド成功時」が格納されている。このため、ＣＰＵ２１は、消去コマンドの実行条件として「認証コマンド成功時」を取得し、「認証コマンド成功時」が満たされているか否かを判定する。
【００７０】
受信した消去コマンドの実行条件（「認証コマンド成功時」）が満たされていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することによって、消去コマンドを実行するためのプログラムコードの先頭アドレスを取得する。図７に示す例では、消去コマンドのプログラムコードの先頭アドレスは「ＦＦＦＦ」である。先頭アドレスを取得すると、ＣＰＵ２１は、取得した先頭アドレスに基づいて、ＮVM２４の記憶領域３２ｂから消去コマンドを実行するためのプログラムコードを取得する。プログラムコードを取得すると、ＣＰＵ２１は、取得した消去コマンドを実行するためのプログラムコードを実行することにより消去処理を行う（ステップ８５）。消去コマンドに対する消去処理は、発行処理時に使用され、運用時には使用されない発行時データを消去する処理である。また、消去処理では、発行時データに含まれる発行プログラムコードの管理情報も消去するものとする。
【００７１】
即ち、ＣＰＵ２１は、取得した消去コマンドを実行するためのプログラムコードに従って、システム領域３１内の記憶領域３１ａに格納されているプログラム管理テーブルから発行時に必要なコマンド識別情報と当該コマンド識別情報に対応するプログラム先頭アドレス及び実行条件を消去する。つまり、図７に示すプログラム管理テーブルにおいては、ＣＰＵ２１は、プログラム管理テーブルから、ファイル創生コマンド、認証コマンド、認証用鍵変更コマンド及び消去コマンドの各識別情報と各コマンドに対応するプログラム先頭アドレス及び実行条件を消去する。
【００７２】
また、ＣＰＵ２１は、取得した消去コマンドを実行するためのプログラムコードに従って、ファイルデータ領域３４内にある発行時データ領域３２に格納されている全てのデータを消去する。たとえば、ＣＰＵ２１は、発行時データ領域３２を全て「ＦＦ」（又は、「００」）で上書きする。発行時データ領域３２内にある記憶領域３２ａに格納されている第２鍵及び記憶領域３２ｂに格納されている発行プログラムコードなどの発行時に必要なデータは、全て消去される。
【００７３】
消去コマンドに対する消去処理を正常に終了した場合、ＣＰＵ２１は、消去コマンドの実行結果を格納したレスポンスを生成する。また、消去コマンドに対する消去処理が正常に終了しなかった場合、つまり、消去処理中にエラーが発生した場合、ＣＰＵ２１は、消去コマンドの実行結果として処理エラーが発生したことを示すレスポンスを作成する。また、消去コマンドの実行条件（「認証コマンド成功時」）が満たされていないと判定した場合、ＣＰＵ２１は、消去コマンドの実行結果として実行条件が満たされていないことを示すレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ８６）。
【００７４】
なお、消去コマンドに対する消去処理の内容は、予め決められた内容であれば良く、上述した処理内容に限定されるものではない。たとえば、消去コマンドに対応する消去処理によって削除するデータは、運用時に使用しないデータであれば良く、運用時に使用しない全てのデータを消去するようにしても良いし、運用時に使用しないデータのうち一部のデータを消去するものでも良い。また、消去コマンドに対応する消去処理は、発行時データ領域３２における一部のデータを削除するようにしてもよいし、記憶領域３１ｂに記憶した一部のプログラムコード（運用で使用しないプログラムコード）を削除するようにしてもよい。また、消去処理によりＣＰＵ２１が各データを削除する順序は、特定の順序に限定されるものでもない。
【００７５】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からの消去コマンドに対するレスポンスを受信する（ステップ４５）。ＩＣカード処理装置１の制御部１１は、受信したレスポンスによりＩＣカード２における消去処理が成功したか否かを判定する（ステップ４６）。消去処理が成功したと判定した場合（ステップ４６、ＹＥＳ）、制御部１１は、ファイルデータ領域内にファイルデータを書き込むための書き込みコマンドを生成し、生成した書き込みコマンドをカードリーダライタ１４によりＩＣカード２へ送信する（ステップ４７）。
【００７６】
ＩＣカード２は、通信部２５によりＩＣカード処理装置１からのファイルデータの書き込みコマンドを受信する（ステップ８７）。ＩＣカード２のＣＰＵ２１は、プログラム管理テーブルすることによって、受信したコマンドが書き込みコマンドであると認識し、当該書き込みコマンドの実行条件を取得する。当該書き込みコマンドの実行条件を取得すると、ＣＰＵ２１は、取得した実行条件が満たされているか否かを判定する。取得した実行条件が満たされていると判定すると、ＣＰＵ２１は、プログラム管理テーブルを参照することによって、書き込みコマンドを実行するためのプログラムコードの先頭アドレスを取得し、取得した先頭アドレスに基づいて記憶領域３１ｂから書き込みコマンドを実行するためのプログラムコードを取得する。
【００７７】
なお、本実施形態では、消去コマンドによる消去処理の後にファイルデータの書き込み処理を行う。このため、ファイルデータの書き込みコマンドは、プログラム管理テーブルにおける管理情報およびプログラムコードが、消去コマンドによる消去処理で消去されないものとする。たとえば、本実施形態において、ファイルデータの書き込みコマンドは、プログラム管理テーブルにおける管理情報が消去されないものとし、プログラムコードも消去処理で消去されないようにＮＶＭ２４のシステム領域３１における記憶領域３１ｂに格納すれば良い。
【００７８】
ただし、ファイルデータの書き込みコマンドによる書き込み処理は、消去コマンドによる消去処理の後に行うようにしても良い。この場合、ファイルデータの書き込みコマンドによる書き込み処理では、発行時データ領域を避けてデータを書き込む必要があるが、書込み処理後の消去コマンドによる消去処理では、記憶領域３２ｂに格納したファイルデータの書き込みコマンドに対応するプログラムコードおよび管理情報を消去するようにできる。
【００７９】
ファイルデータの書込みコマンドのプログラムコードを取得すると、ＣＰＵ２１は、取得したプログラムコードによりファイルデータの書込み処理を実行する（ステップ８８）。ファイルデータの書込み処理としては、ＮＶＭ２４のファイルデータ領域に個別データなどのファイルデータを書き込む。ファイルデータの書き込み処理を正常終了すると、ＣＰＵ２１は、ファイルデータの書込み処理が正常終了であることを示す実行結果を格納したレスポンスを生成する。また、ファイルデータの書き込み処理においてエラーが発生すると、ＣＰＵ２１は、ファイルデータの書込み処理がエラー終了となったことを示す実行結果を格納したレスポンスを生成する。また、書き込みコマンドの実行条件が満たされていないと判定すると、ＣＰＵ２１は、書込みコマンドの実行条件が満たされていないことを示すレスポンスを生成する。レスポンスを生成すると、ＣＰＵ２１は、生成したレスポンスを通信部２５によりＩＣカード処理装置１へ送信する（ステップ８９）。
【００８０】
ＩＣカード処理装置１は、カードリーダライタ１４によりＩＣカード２からの書き込みコマンドに対するレスポンスを受信する（ステップ４８）。ＩＣカード２の制御部１１は、受信したレスポンスによりＩＣカード２におけるファイルデータの書き込み処理が正常終了（成功）したか否かを判定する（ステップ４９）。  
ファイルデータの書き込み処理が正常終了したと判定した場合（ステップ４９、ＹＥＳ）、制御部１１は、当該ＩＣカード２に対する二次発行処理を正常終了する。
【００８１】
また、認証が失敗したと判定した場合（ステップ４３、ＮＯ）、消去コマンドによる消去処理が正常終了しなかったと判定した場合（ステップ４６、ＮＯ）、あるいは、ファイルデータの書き込み処理が正常終了しなかったと判定した場合（ステップ４９、ＮＯ）、制御部１１は、ＩＣカード２に対する二次発行処理が失敗したことを示す情報を報知する（ステップ５０）。たとえば、制御部１１は、ディスプレイ１２にＩＣカード２の二次発行処理が失敗したことを示す情報を提示する。また、制御部１１は、外部の機器にＩＣカード２の二次発行処理が失敗したことを示す情報を送信するようにしてもよい。
【００８２】
次に、二次発行処理後のＮＶＭ２４の状態について説明する。  
図１２は、二次発行フェーズ後のＩＣカード２のＮＶＭ２４に格納されているデータの構成例を示す図である。  
二次発行処理が終了すると、ＮＶＭ２４は、ファイルデータ領域３４内の発行時データ領域３２に格納されていた発行時データを消去され、ファイルデータ領域３４にはファイルデータが書き込まれている。
【００８３】
ファイルデータ領域３４に格納されているファイルデータは、各ファイル定義情報で定義されるデータエリアに書き込まれている。即ち、ＮVM２４内の各ファイルは、ファイル定義情報とファイルデータとを備え、ファイルとして成立する。
【００８４】
図１３は、ファイルデータ領域３４に格納されているＥＦのファイルデータの構成例を示す図である。  
図１３に示すように、ファイルデータは、データのサイズ、データ管理情報、データ本体及びチェックコードなどを備える。データのサイズは、ファイルデータのサイズを示す。データ管理情報は、何番目のレコードまでデータが書き込まれたかを示す。データ本体は、ファイルに格納されている実データである。チェックコードは、当該ファイル定義情報の正当性をチェックするためのデータ（たとえば、ＣＲＣ、パリティなど）である。
【００８５】
なお、ＩＣカード２のＣＰＵ２１が認証処理に成功したと判定した場合、ＩＣカード処理装置１からの消去コマンドを待つことなく、消去コマンドに対応するプログラムコードを実行してもよい。この場合、ＩＣカード処理装置１は、消去コマンドをＩＣカード２へ送信しなくともよい。
【００８６】
以上の処理によれば、ＩＣカードは、ＮＶＭから、運用時には使用されない発行時に使用するプログラムコード及びデータを消去することができる。これにより、本実施形態に係るＩＣカードは、発行後に当該プログラムコード及びデータに不正にアクセスされることがなく、セキュリティ性を向上できる。また、本実施形態に係るＩＣカードは、運用時に不要なデータをＮＶＭ内に保有することなく、発行時データを記憶した領域をファイルデータ領域として利用することができ、発行時データがＮＶＭのデータ容量を圧迫することなく、効率良くＮＶＭの記憶領域を利用できる。
【００８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
１…ＩＣカード処理装置（外部装置）、２…ＩＣカード（携帯可能電子装置）、１１…制御部、１２…ディスプレイ、１３…キーボード、１４…カードリーダライタ、Ｃ…本体、Ｃａ…ＩＣチップ、Ｍ…モジュール、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＮＶＭ、２５…通信部。
【図１】
2014059806.tif 000003
【図２】
2014059806.tif 000004
【図３】
2014059806.tif 000005
【図４】
2014059806.tif 000006
【図５】
2014059806.tif 000007
【図６】
2014059806.tif 000008
【図７】
2014059806.tif 000009
【図８】
2014059806.tif 000010
【図９】
2014059806.tif 000011
【図１０】
2014059806.tif 000012
【図１１】
2014059806.tif 000013
【図１２】
2014059806.tif 000014
【図１３】
2014059806.tif 000015