(57)【特許請求の範囲】
【請求項１】
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信する通信インタフェースと、
前記フラグを格納するメモリと、
前記メモリに格納された前記フラグを解釈し、前記リーダライタに前記所定のコマンドに対応する応答をする演算装置と、
を有することを特徴とする可搬記録媒体。
【請求項２】
所定のコマンド及び該所定のコマンドに対応する応答を指定するフラグをリーダライタから受信する通信インタフェースと、
前記フラグを格納するメモリと、
前記メモリに格納された前記フラグを解釈し、前記リーダライタに前記所定のコマンドに対応する応答をする演算装置と、
を有し、
前記メモリは、前記所定のコマンドを実行した結果に関する複数の情報を格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記演算装置は、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする可搬記録媒体。
【請求項３】
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を含む可搬記録媒体の制御方法。
【請求項４】
所定のコマンド及び該所定のコマンドへの応答を指定するフラグをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を含み、
前記メモリに格納するステップは、前記所定のコマンドを実行した結果に関する複数の情報を前記メモリに格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記応答をするステップは、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする可搬記録媒体の制御方法。
【請求項５】
可搬記録媒体として動作するコンピュータに、
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を実行させるための可搬記録媒体の制御プログラム。
【請求項６】
可搬記録媒体として動作するコンピュータに、
所定のコマンド及び該所定のコマンドへの応答を指定するフラグをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を実行させ、
前記メモリに格納するステップは、前記所定のコマンドを実行した結果に関する複数の情報を前記メモリに格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記応答をするステップは、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする可搬記録媒体の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可搬記録媒体、可搬記録媒体の制御方法、及び可搬記録媒体の制御プログラムに関する。
【背景技術】
【０００２】
近年普及しているＩＣカード等の可搬記録媒体に関しては、可搬記録媒体に格納されたデータの読み書きするためのコマンドが、国際標準規格及び業界標準規格で規定されている（例えば非特許文献１、非特許文献２及び非特許文献３）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＩＣカードシステム利用促進協議会、「日本工業規格準拠ＪＩＣＳＡＰ  外部端子付きＩＣカード仕様」、ＩＣカードシステム利用促進協議会、平成１０年７月
【非特許文献２】日本規格協会、「ＪＩＳ Ｘ６３１９−３ ＩＣカード実装仕様−第３部：共通コマンド」、平成２３年５月
【非特許文献３】ISO/IEC、"Identification cards-Integrated circuit cards-Part 4: Organization, security and commands for interchange"、２００５年１月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来、可搬記録媒体において、国際標準規格及び業界標準規格の記述だけでは、実装時にメーカ間によって解釈が分かれる実装依存の仕様がある。このため、異なるメーカ間の製品を混在させて運用するシステムにおいて、一方のメーカの製品の挙動が、他方のメーカの製品が期待した挙動とならない事象が発生する可能性がある。
【０００５】
例えば、Ｕｐｄａｔｅ Ｒｅｃｏｒｄなど書込みコマンドでは、不揮発性メモリにレコード構造のファイルを書き込んでいき、レコード構造のファイルを格納する領域（以下、ブロックという。）の空きが無くなった場合のリーダライタへの応答動作について２通りの実装方法がある。ある実装では、レコード構造のファイルの書込みが正常に終了したので、正常終了と判断して、ステータスワード（以下ＳＷという。）として９０００ｈをカードリーダライタに応答する。もう一方の実装では、書込みは正常終了したが、ブロックの空きが無くなったことの警告を発するため、ＳＷとして６３８１ｈをリーダライタに応答する。なおここでＳＷ中の末尾のｈは、当該数値が１６進数であることを意味する。
【０００６】
また例えば、ＰＵＴ ＤＡＴＡコマンド実行時の挙動も実装により異なる。ＰＵＴ ＤＡＴＡコマンドとは、Ｔａｇ／Ｌｅｎｇｔｈ／Ｖａｌｕｅの３つのフィールドからなる構造をもつ形式のデータオブジェクトを更新するためのコマンドである。可搬記録媒体がＰＵＴ ＤＡＴＡコマンドを受信した場合、一度書き込まれたデータオブジェクトを更新するか否かで、実装方法が２通りある。ある実装では、一度書き込まれたデータオブジェクトを更新することを許容し、ＳＷとして９０００ｈをリーダライタに応答する。もう一方の実装では、一度書き込まれたデータオブジェクトを更新することを許容せず、ＳＷを６９８５ｈとして応答する。
【０００７】
このため、同一規格に準拠する機能でありながら、コマンド体系や挙動が互いに異なる可搬記録媒体を混在させて運用する場合、リーダライタ等の可搬記録媒体の上位装置は、当該可搬記録媒体の各挙動に合わせて複数の処理機能を実装しなければならず、システム構築の点でコスト高になる。
【０００８】
したがって、上記のような問題点に鑑みてなされた本発明の目的は、所定のコマンドに対する可搬記録媒体の挙動を同一にし、リーダライタ等の上位装置が可搬記録媒体の挙動に合わせて複数の処理機能を実装する必要が無く、互換性の高い可搬記録媒体、可搬記録媒体の制御方法、及び可搬記録媒体の制御プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明に係る可搬記録媒体は、
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信する通信インタフェースと、
前記フラグを格納するメモリと、
前記メモリに格納された前記フラグを解釈し、前記リーダライタに前記所定のコマンドに対応する応答をする演算装置と、
を有することを特徴とする。
また本発明に係る可搬記録媒体の制御方法は、
所定のコマンド及び該所定のコマンドに対応する応答を指定するフラグをリーダライタから受信する通信インタフェースと、
前記フラグを格納するメモリと、
前記メモリに格納された前記フラグを解釈し、前記リーダライタに前記所定のコマンドに対応する応答をする演算装置と、
を有し、
前記メモリは、前記所定のコマンドを実行した結果に関する複数の情報を格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記演算装置は、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする。
【００１０】
また本発明に係る可搬記録媒体の制御方法は、
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を含むことを特徴とする。
また本発明に係る可搬記録媒体の制御方法は、
所定のコマンド及び該所定のコマンドへの応答を指定するフラグをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を含み、
前記メモリに格納するステップは、前記所定のコマンドを実行した結果に関する複数の情報を前記メモリに格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記応答をするステップは、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする。
【００１１】
また本発明に係る可搬記録媒体の制御プログラムは、
可搬記録媒体として動作するコンピュータに、
所定のコマンドに対応する応答を指定するフラグをデータ構造に含む該所定のコマンドをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を実行させることを特徴とする。
また本発明に係る可搬記録媒体の制御プログラムは、
可搬記録媒体として動作するコンピュータに、
所定のコマンド及び該所定のコマンドへの応答を指定するフラグをリーダライタから受信するステップと、
前記フラグをメモリに格納するステップと、
前記メモリに格納された前記フラグを解釈し、前記所定のコマンドに対する応答をするステップと、
を実行させ、
前記メモリに格納するステップは、前記所定のコマンドを実行した結果に関する複数の情報を前記メモリに格納し、
前記フラグは、前記所定のコマンドを実行した結果に関する前記複数の情報に各々対応する複数の応答の優先順位を指定し、
前記応答をするステップは、前記フラグにより指定された前記優先順位に基づき、前記リーダライタに前記所定のコマンドを実行した結果に関する情報に対応する応答をすることを特徴とする。
【発明の効果】
【００１２】
本発明における可搬記録媒体、可搬記録媒体の制御方法、及び可搬記録媒体の制御プログラムによれば、所定のコマンドに対する可搬記録媒体の挙動を同一にし、リーダライタ等の上位装置が可搬記録媒体の挙動に合わせて複数の処理機能を実装する必要が無く、高い互換性を確保することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１に係る可搬記録媒体１の構成図である。
【図２】本発明の実施の形態１に係る可搬記録媒体１のソフトウェア、データ、及びハードウェアの概念図である。
【図３】本発明の実施の形態１に係る可搬記録媒体１が、リーダライタから受信するＣＲＥＡＴＥコマンドのデータ構造を示す図である。
【図４】ＣＲＥＡＴＥコマンドのデータ構造のうち、Ｐ１の内容を詳細に示す図である。
【図５】Ｐ１に基づきファイル構造を決定する動作を示すフローチャートである。
【図６】ＣＲＥＡＴＥコマンドのデータ構造のうち、データ部の内容を詳細に示す図である。
【図７】本発明の実施の形態１に係るフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。
【図８】フラグ及びプログラムが格納された不揮発性メモリ１６の概念図である。
【図９Ａ】メモリ管理情報の例である。
【図９Ｂ】更新後のメモリ管理情報の例である。
【図１０】本発明の実施の形態１に係る可搬記録媒体１の動作を示すフローチャートである。
【図１１】本発明の実施の形態２に係るフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。
【図１２】本発明の実施の形態２に係る可搬記録媒体１の動作を示すフローチャートである。
【図１３】本発明の実施の形態３に係る可搬記録媒体１が、リーダライタから受信するＫＥＹ ＲＥＰＬＡＣＥコマンドのデータ構造を示す図である。
【図１４】鍵置き換えに係る複数のエラー事象が発生した場合の該複数のエラー事象の優先順位とフラグとの関係を示すテーブルである。
【図１５】本発明の実施の形態３に係るフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。
【図１６】本発明の実施の形態３に係る可搬記録媒体１の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について説明する。
【００１５】
（実施の形態１）
図１は本発明の実施の形態１に係る可搬記録媒体１のブロック図である。本発明の実施の形態に係る可搬記録媒体１は、非接触通信インタフェース１１と、接触通信インタフェース１２と、ＣＰＵ１３と、ＲＡＭ１４と、ＲＯＭ１５と、不揮発性メモリ１６と、電源回路（図示せず）とを備える。可搬記録媒体１は好ましくはＩＣカードであるがこれに限られない。可搬記録媒体１は、好ましくは非接触通信インタフェース１１と、接触通信インタフェース１２との両方を備えるが、どちらか一方のみを備える構成でもよい。
【００１６】
非接触通信インタフェース１１は、無線によりリーダライタとの通信を行う通信インタフェースである。非接触通信インタフェース１１は、リーダライタから所定のコマンド及び該所定のコマンドに対応する応答を指定するフラグを受信する。本実施の形態においては所定のコマンドはＣＲＥＡＴＥコマンド及び書込みコマンドである。ＣＲＥＡＴＥコマンドとは、可搬記録媒体１上でファイルを生成するためのコマンドである。書込みコマンドとは、不揮発性メモリ１６に、レコード構造のファイル等を書き込むためのコマンドであり、例えばＵｐｄａｔｅ Ｒｅｃｏｒｄ等であるがこれに限られない。
【００１７】
接触通信インタフェース１２は、リーダライタと電気的接点を介して通信を行う通信インタフェースである。接触通信インタフェース１２は、カードリーダライタから所定のコマンド及び該所定のコマンドに対応する応答を指定するフラグを受信する。
【００１８】
ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２が受信した所定のコマンドに対応する応答を指定するフラグを、後述する不揮発性メモリ１６に格納する。また、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２が受信した所定のコマンドを解釈し、該コマンドに対応するプログラムを実行する。そしてＣＰＵ１３は、不揮発性メモリ１６に格納されたフラグを解釈し、該所定のコマンドに対応する応答、すなわち所定のＳＷをリーダライタに応答する。また、ＣＰＵ１３は演算結果をメモリに格納する機能を有する。なおここではＣＰＵ１３は、中央演算処理装置（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｏｒ Ｕｎｉｔ）として説明するがこれに限られず、如何なる演算装置であってもよい。
【００１９】
ＲＡＭ１４は、ランダムアクセスメモリであり、ＣＰＵ１３が実行する各種プログラムを格納したり、演算結果を一時的に保持したりする機能を有する。
【００２０】
ＲＯＭ１５は、ＣＰＵ１３が可搬記録媒体１の制御をするためのＯＳ（オペレーティングシステム）を格納する。
【００２１】
不揮発性メモリ１６は、非接触通信インタフェース１１又は接触通信インタフェース１２が受信したフラグを、ＣＰＵ１３の処理に基づき格納するメモリである。また、ＣＰＵ１３が所定のコマンドに対して処理を行うためのプログラム及び、データファイルが格納される。
【００２２】
図２は、本発明の実施の形態１に係る可搬記録媒体１のハードウェア２４並びにＲＯＭ１５及び不揮発性メモリ１６に備えられるプログラム及びデータの格納領域を示す概念図である。図２に示すように、ＲＯＭ１５には、ＯＳが格納されるＯＳ格納領域２１が備えられる。該ＯＳ格納領域２１に格納されたＯＳは、リーダライタから送信されるコマンドの処理機能、ファイル管理機能、カードアプリケーション及びライブラリの管理機能、アプリケーションのダウンロード機能、暗号処理機能等の、可搬記録媒体１において必要な各種基本的なソフトウェアを備える。一方、不揮発性メモリ１６には、プログラム格納領域２２及びデータファイル格納領域２３が備えられ、各種プログラム及びデータファイルが格納される。コマンドインタフェースの下層には、ＩＣチップ、暗号コプロセッサ２５を備えるハードウェア２４が備えられる。
【００２３】
図３は、可搬記録媒体１が、リーダライタから受信するコマンドのひとつであるＣＲＥＡＴＥコマンドのデータ構造を示す図である。図３に示すように、ＣＲＥＡＴＥコマンドは、ＣＬＡと、ＩＮＳと、Ｐ１と、Ｐ２と、Ｌｃと、Ｔａｇと、Ｌｅｎと、データ部とを備える。
【００２４】
ＣＬＡとは、セキュアメッセージングの有無等を示すクラスバイトであり、例えば９Ｘｈである。データ長は１バイトである。ＩＮＳとは、可搬記録媒体１の機能を指示するための１バイトの情報であり、値がＥ０ｈである場合は、ＣＲＥＡＴＥコマンドを示し、可搬記録媒体１内に格納するファイルの情報を生成する。
【００２５】
Ｐ１は、１バイトの第一パラメータであり、ファイル記述バイトを示す。Ｐ１の値を基に、ファイル形式やファイル構造を決定する。Ｐ２は、１バイトの第二パラメータであるが、ＣＲＥＡＴＥコマンドでは使用せず、固定値００ｈである。Ｌｃは、後続のＴａｇ、Ｌｅｎ及びデータ部の長さを示す。Ｌｅｎは１バイト又は３バイトである。Ｔａｇは、ＦＣＰテンプレートを示す。なおＦＣＰとは、ファイル制御パラメータ（Ｆｉｌｅ Ｃｏｎｔｒｏｌ Ｐａｒａｍｅｔｅｒ）であり、論理的属性、構造的属性、及びセキュリティ属性などのファイル制御用パラメータの集合である。Ｔａｇは１バイトであり、例えば“６２”である。Ｌｅｎは、ＢＥＲ（Ｂａｓｉｃ Ｅｎｃｏｄｉｎｇ Ｒｕｌｅｓ）−ＴＬＶ（Ｔａｇ・Ｌｅｎｇｔｈ・Ｖａｌｕｅ）形式で記述される。Ｌｅｎは１バイト又は３バイトである。データ部は、ＦＣＰ情報に相当する部分であり、データ長は可変である。
【００２６】
図４は、ＣＲＥＡＴＥコマンドのデータ構造のうち、Ｐ１の内容を詳細に示すテーブルである。Ｐ１は、１バイト（８ビット）から構成され、図４に示すように右側のビットから左側のビットまで順番に、ｂ１〜ｂ８として定義されている。可搬記録媒体１のＣＰＵ１３は、Ｐ１を解釈して、生成するファイル構造を決定する。
【００２７】
図５は、可搬記録媒体１のＣＰＵ１３が、Ｐ１を解釈して、生成するファイルの種類（形式）であるファイル構造を決定する処理フローを示す。ＣＰＵ１３は、当該処理フローにより決定したファイル構造のファイルを可搬記録媒体１の不揮発性メモリ１６上に格納する。以下、当該フローを詳細に説明する。
【００２８】
まず可搬記録媒体１は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタからコマンドを受信する（ステップＳ１）。続いて可搬記録媒体１のＣＰＵ１３は、受信したコマンドの各部の内容を解釈し、ＩＮＳの値がＥ０であるか否かを判定する（ステップＳ２）。ＩＮＳの値がＥ０ｈでなければステップＳ３に進む。ＩＮＳの値がＥ０ｈであればステップＳ４に進む。
【００２９】
ＩＮＳの値がＥ０ｈでない場合、ＣＰＵ１３は、当該コマンドはＣＲＥＡＴＥコマンドでないと判定し、他の機能を実行する（ステップＳ３）。
【００３０】
一方ＩＮＳの値がＥ０ｈである場合、ＣＰＵ１３は、当該コマンドはＣＲＥＡＴＥコマンドであると判定し、コマンドからＰ１を読み出す（ステップＳ４）。
【００３１】
続いてＣＰＵ１３は、読み出したＰ１のうち、ｂ８の値が０ｂか否かを判定する（ステップＳ５）。ｂ８の値が０ｂでない場合ステップＳ６に進む。ｂ８の値が０ｂであればステップＳ７に進む。
【００３２】
ｂ８の値が０ｂでない場合、ＣＰＵ１３は、生成するファイル構造は、独自ファイルであると判断し、当該独自ファイルを生成する（ステップＳ６）。その後、処理が終了する。
【００３３】
一方、ｂ８の値が０ｂである場合、ＣＰＵ１３は、生成するファイル構造を、他のビットｂ１〜ｂ６に基づいて決定する。この場合ＣＰＵ１３は、ｂ６、ｂ５、及びｂ４の値が何であるかを判定する（ステップＳ７）。ここでは、ｂ６、ｂ５、及びｂ４のビットを３つ並べた３桁の２進数をｂ６ｂ５ｂ４と表記する。
【００３４】
ｂ６ｂ５ｂ４の値が０００ｂである場合、ＣＰＵ１３は、生成するファイル構造がＷＥＦであると判断する（ステップＳ８）。なおここで０００ｂにおける末尾のｂは、２進数を意味する。
【００３５】
他方、ｂ６ｂ５ｂ４の値が００１ｂである場合、ＣＰＵ１３は、生成するファイル構造がＩＥＦであると判断する（ステップＳ９）。またｂ６ｂ５ｂ４の値が０１０ｂである場合、ＣＰＵ１３は、生成するファイル構造がデータオブジェクトＷＥＦ（Ｓｉｍｐｌｅ−ＴＬＶ）であると判断する（ステップＳ１０）。またｂ６ｂ５ｂ４の値が０１１ｂである場合、ＣＰＵ１３は、生成するファイル構造がデータオブジェクトＷＥＦ（ＢＥＲ−ＴＬＶ）であると判断する（ステップＳ１１）。またｂ６ｂ５ｂ４の値が１１１ｂである場合、ＣＰＵ１３は、生成するファイル構造がＤＦであると判断する（ステップＳ１２）。ｂ６ｂ５ｂ４の値がこれら以外の場合、Ｐ１の値が異常であるとして、ＣＰＵ１３はエラーと判断し（ステップＳ１３）、ＳＷとしてエラーをリーダライタに応答する（ステップＳ１４）。すなわちＣＰＵ１３は、規定されていないファイル形式、ファイル構造を示す値を読み出した場合は、Ｐ１に係るエラーと判断する。
【００３６】
ｂ６ｂ５ｂ４の値が０００ｂ、００１ｂ、０１０ｂ、又は０１１ｂの場合は、続いてステップＳ１４に進む。該ステップにおいてＣＰＵ１３は、ｂ３ｂ２ｂ１の値が何であるかを判定する（ステップＳ１５）。
【００３７】
ｂ３ｂ２ｂ１の値が０００ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、透過構造であると判断し、当該透過構造ファイルを生成する（ステップＳ１６）。また、ｂ３ｂ２ｂ１の値が００１ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、固定長順編成（ＢＥＲ−ＴＬＶ）であると判断し、当該固定長順編成ファイルを生成する（ステップＳ１７）。また、ｂ３ｂ２ｂ１の値が０１１ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、固定長順編成（Ｓｉｍｐｌｅ−ＴＬＶ）であると判断し、当該固定長順編成ファイルを生成する（ステップＳ１８）。また、ｂ３ｂ２ｂ１の値が１００ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、可変長順編成（ＢＥＲ）であると判断し、当該可変長順編成ファイルを生成する（ステップＳ１９）。また、ｂ３ｂ２ｂ１の値が１０１ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、可変長順編成（Ｓｉｍｐｌｅ−ＴＬＶ）であると判断し、当該可変長順編成ファイルを生成する（ステップＳ２０）。また、ｂ３ｂ２ｂ１の値が１１０ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、固定長循環順編成（ＢＥＲ−ＴＬＶ）であると判断し、当該固定長循環順編成ファイルを生成する（ステップＳ２１）。また、ｂ３ｂ２ｂ１の値が１１１ｂである場合、ＣＰＵ１３は、ファイル構造の詳細として、固定長循環順編成（Ｓｉｍｐｌｅ−ＴＬＶ）であると判断し、当該固定長循環順編成ファイルを生成する（ステップＳ２２）。ｂ３ｂ２ｂ１の値がこれら以外の場合、Ｐ１の値が異常であるとして、ＣＰＵ１３はエラーと判断し（ステップＳ２３）、当該エラーを示すＳＷを、リーダライタに応答する（ステップＳ２４）。
【００３８】
なお、ファイル構造がデータオブジェクトＷＥＦ（Ｓｉｍｐｌｅ−ＴＬＶ）である場合には、ファイル構造の詳細として、透過構造、固定長順編成（Ｓｉｍｐｌｅ−ＴＬＶ）、可変長順編成（Ｓｉｍｐｌｅ−ＴＬＶ）、又は固定長循環順編成（Ｓｉｍｐｌｅ−ＴＬＶ）の４パターンのみをとる。また、ファイル構造がデータオブジェクトＷＥＦ（ＢＥＲ−ＴＬＶ）である場合には、ファイル構造の詳細として、透過構造、固定長順編成（ＢＥＲ）、可変長順編成（ＢＥＲ−ＴＬＶ）、又は固定長循環順編成（ＢＥＲ−ＴＬＶ）の４パターンのみをとる。
【００３９】
図６は、可搬記録媒体１が、リーダライタから受信するＣＲＥＡＴＥコマンドのデータ構造のうち、データ部の内容を詳細に示す図である。図６に示すように、データ部は、ＥＦＩＤと、セキュリティ属性と、セキュアメッセージング属性と、レコード構造又はデータオブジェクト構造と、フラグとを備える。ＥＦＩＤには、ファイルＩＤが格納され、データ長は２バイトである。セキュリティ属性には、セキュリティの属性を示すデータを設定する情報が格納され、データ長は１２バイトである。セキュアメッセージング属性には、セキュアメッセージングの属性を示すデータを設定する情報が格納され、データ長は１バイトである。形式指定情報には、レコード構造又はデータオブジェクト構造の形式を指定する情報が格納され、データ長は４バイトである。フラグには、書込みによりブロックの空きが無くなった場合、警告をするか否かを示すデータが格納され、データ長は１バイトである。
【００４０】
ここでフラグとは、可搬記録媒体１が、リーダライタから受信したコマンドに対し、カードリーダライタに応答するＳＷを指定するデータである。フラグの値は、カードリーダライタ及びその上位装置に係るアプリケーションにより一意に定められる。図６におけるフラグは、書込みコマンドを受信した場合でかつ書込みによりブロックの空きが無くなった場合に警告するか否かを示すフラグである。フラグが００ｂの場合、可搬記録媒体１は、ＳＷを９０００ｈとして応答する。すなわちフラグが００ｂの場合には、可搬記録媒体１は、リーダライタに警告しない。一方、フラグが０１ｂの場合、可搬記録媒体１は、ＳＷと６３８１ｈとして応答する。すなわちフラグが０１ｂの場合には可搬記録媒体１はリーダライタに警告する。
【００４１】
図７は、ＣＰＵ１３が、ＣＲＥＡＴＥコマンドにおけるフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。以下詳細に当該フローチャートを説明する。
【００４２】
まず可搬記録媒体１のＣＰＵ１３は、ＣＲＥＡＴＥコマンドにおけるデータ部のうち、“形式指定情報”の値を読み出す（ステップＳ１０１）。続いて可搬記録媒体１のＣＰＵ１３は、ＣＲＥＡＴＥコマンドにおけるデータ部のうち、フラグの値を読み出す（ステップＳ１０２）。
【００４３】
続いてＣＰＵ１３は、読み出したフラグの値が何であるかを判定する（ステップＳ１０３）。ＣＰＵ１３は、当該フラグの値に基づき、書込みの際にブロックの空きが無くなった場合、リーダライタに警告するか否かを決定する。
【００４４】
フラグが００ｂであった場合、ＣＰＵ１３は、ＳＷとして９０００ｈをカードリーダライタに応答するフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ１０４）。続いて、ＣＰＵ１３は、ステップＳ１０１で読み出したレコード構造に基づき、所定のレコード構造のファイルを不揮発性メモリ１６の所定のエリアに書き込む（ステップＳ１０５）。続いてＣＰＵ１３は、ステップＳ１０２で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ１０６）、処理が終了する。
【００４５】
フラグが０１ｂであった場合、ＣＰＵ１３は、ＳＷとして６３８１ｈをリーダライタに応答するフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ１０７）。続いてＣＰＵ１３は、ステップＳ１０１で読み出したレコード構造に基づき、所定のレコード構造のファイルを不揮発性メモリ１６の所定のエリアに書き込む（ステップＳ１０８）。続いてＣＰＵ１３は、ステップＳ１０２で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ１０９）、処理が終了する。
【００４６】
フラグが００ｂ、０１ｂのいずれでもない場合、ＣＰＵ１３はエラーと判断する（ステップＳ１１０）。そしてＣＰＵ１３は、ＣＲＥＡＴＥコマンドのエラーを示すＳＷをリーダライタに応答し（ステップＳ１１１）、処理が終了する。
【００４７】
図８は、このようにして可搬記録媒体１のＣＰＵ１３によりフラグ及びプログラムが格納された不揮発性メモリ１６の概念図を示す。
【００４８】
不揮発性メモリ１６の先頭のメモリアドレス０００００００１には、メモリ管理情報が格納される。当該領域をメモリ管理情報格納領域という。メモリ管理情報は、ブロックの空き状況に係る情報を含む。ブロックの空き状況に係る情報は、各ブロックに割り当てられたレコード番号及び空き状況に係るステータスにより構成される。レコード番号は一意にレコードを識別する番号である。空き状況に係るステータスは、“未書込”又は“書込済”である。“未書込”とは、当該ブロックにレコード構造のファイルが格納されていないことを意味する。“書込済”とは、当該ブロックにレコード構造のファイルが格納されていることを意味する。レコード構造のファイルが格納されていないブロックを空きブロックという。
【００４９】
図８のメモリアドレス０００００００２には、可搬記録媒体１が受信したＣＲＥＡＴＥコマンドに基づくレコード構造のファイルが格納される。
【００５０】
メモリアドレス０００００００３〜メモリアドレス１０００ＦＦＦＣには、該レコード構造のファイルを格納できるアドレス空間が備えられる。該アドレス空間が、ブロックに対応する。
【００５１】
メモリアドレス１０００ＦＦＦＤ〜メモリアドレス１０００ＦＦＦＥには、プログラム格納領域２２が備えられる。ＣＰＵ１３は、システム動作時に、予め書込み時のブロックの空き状況に応じて所定のＳＷをリーダライタに応答するプログラムを格納している。なお、不揮発性メモリ１６の代わりにＲＯＭ１５にプログラム格納領域２２を設け、当該ＲＯＭ１５に設けられたプログラム格納領域２２に、書込み後のブロックの空き状況に応じて所定のＳＷをリーダライタに応答するプログラムを格納してもよい。
【００５２】
メモリアドレス１０００ＦＦＦＦには、プログラム格納領域２２に格納されたプログラムに関するフラグ設定エリアが備えられている。ＣＰＵ１３は、当該フラグ設定エリアに、ＣＲＥＡＴＥコマンドから読み出したフラグを格納する。
【００５３】
図９Ａは、メモリ管理情報の一例を示す。図９Ａに示すメモリ管理情報では、レコード番号００１〜００３に係るブロックのステータスがいずれも書込済であり、レコード番号００４に係るブロックのステータスは未書込である。
【００５４】
次に、本発明の実施の形態１に係る可搬記録媒体１について、図１０に示すフローチャートによりその動作を説明する。なお、図７の動作フローにより、可搬記録媒体１の不揮発性メモリ１６には所定のフラグが格納されているものとする。
【００５５】
はじめに、可搬記録媒体１は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタから書込みコマンドを受信する（ステップＳ１２０）。
【００５６】
続いて、可搬記録媒体１のＣＰＵ１３は、不揮発性メモリ１６から、書込みコマンド用のプログラム及びフラグ設定エリアに格納されたフラグを取得する（ステップＳ１２１）。当該フラグを解釈し、ＣＰＵ１３は、不揮発性メモリ１６の空きブロックが無くなった場合の処理方法を確定する。
【００５７】
続いてＣＰＵ１３は、不揮発性メモリ１６に格納されたメモリ管理情報を取得する（ステップＳ１２２）。そしてＣＰＵ１３は、メモリ管理情報に基づき、不揮発性メモリ１６に空きブロックがあるか否かを判定する（ステップＳ１２３）。不揮発性メモリ１６に空きブロックが無い場合、ステップＳ１２４に進む。不揮発性メモリ１６に空きブロックがある場合、ステップＳ１２５に進む。
【００５８】
不揮発性メモリ１６に空きブロックが無い場合、書込みができないため、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、エラーをリーダライタに応答する（ステップＳ１２４）。そして処理が終了する。
【００５９】
一方、不揮発性メモリ１６に空きブロックがある場合、ＣＰＵ１３は、書込みコマンド用のプログラムを用いて、所望のレコード構造のファイルを不揮発性メモリ１６に書き込む（ステップＳ１２５）。続いて、ＣＰＵ１３は、不揮発性メモリ１６に格納されているメモリ管理情報を更新する（ステップＳ１２６）。具体的にはＣＰＵ１３は、所望のレコード構造のファイルを書き込んだレコード番号に係るステータスを、“未書込”から“書込済”に変更する。例えばメモリ管理情報格納領域に、図９Ａに示すメモリ管理情報が格納されている場合、レコード番号００４が空きブロックであるため、ＣＰＵ１３は、当該ブロックに所望のレコード構造のファイルを書き込む。そして書き込んだ後に、ＣＰＵ１３は、レコード番号００４のステータスを、“書込済”に変更し、メモリ管理情報を更新する。図９Ｂは、更新後のメモリ管理情報を示す。
【００６０】
続いてＣＰＵ１３は、不揮発性メモリ１６に空きブロックがあるか否かを判定する（ステップＳ１２７）。不揮発性メモリ１６に空きブロックがある場合、ステップＳ１２８に進む。不揮発性メモリ１６に空きブロックが無い場合、ステップＳ１２９に進む。例えば図９Ｂに示す更新後のメモリ管理情報に基づき本ステップＳ１２７における判定をした場合、不揮発性メモリ１６に空きブロックが無いため、ステップＳ１２９に進む。
【００６１】
不揮発性メモリ１６に空きブロックがある場合、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタに正常終了として応答、すなわちＳＷとして９０００ｈを応答し（ステップＳ１２８）、処理が終了する。
【００６２】
一方、不揮発性メモリ１６に空きブロックが無い場合、ＣＰＵ１３は、ステップＳ１１１において取得したフラグが、ＳＷとして９０００ｈをリーダライタに応答するフラグであるか否かを判定する（ステップＳ１２９）。
【００６３】
判定の結果、取得したフラグがＳＷとして９０００ｈをカードリーダライタに応答するフラグの場合、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタに正常終了として応答、すなわちＳＷとして９０００ｈをリーダライタに応答する（ステップＳ１３０）。一方、ＳＷとして９０００ｈをリーダライタに応答するフラグでない場合、すなわちＳＷとして６３８１ｈをリーダライタに応答するフラグである場合、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタに警告終了として応答、すなわちＳＷとして６３８１ｈを応答し（ステップＳ１３１）、処理が終了する。
【００６４】
このように本発明によれば、リーダライタ及びその上位機種に係るアプリケーションにより一意に定められるフラグによって所定のコマンドである書込みコマンドに対する可搬記録媒体１の挙動を同一にしているため、リーダライタ等の上位装置が可搬記録媒体１の挙動に合わせて複数の処理機能を実装する必要が無く、高い互換性を確保することができる。
【００６５】
（実施の形態２）
以下に、本発明の実施の形態２について説明をする。実施の形態２に係る可搬記録媒体１の構成は実施の形態１と同一であるが、実施の形態２に係る可搬記録媒体１は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、所定のコマンドとして受信するコマンドがＣＲＥＡＴＥコマンド及びＰＵＴ ＤＡＴＡコマンドである点が相違する。
【００６６】
図１１は、ＣＰＵ１３が、ＣＲＥＡＴＥコマンドにおけるフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。以下詳細に当該フローチャートを説明する。実施の形態１と同一の動作については同一の符号を付し、説明は省略する。
【００６７】
ステップＳ１０２の後に、ＣＰＵ１３は、読み出したフラグの値が何であるかを判定する（ステップＳ２０３）。ＣＰＵ１３は、当該フラグの値に基づき、ＰＵＴ ＤＡＴＡコマンドがリーダライタから送信された場合に、不揮発性メモリ１６に一度書き込まれたデータオブジェクトを更新することを許容するか否かを確定する。
【００６８】
ＣＲＥＡＴＥコマンドにおけるフラグが００ｂであった場合、ＣＰＵ１３は、ＳＷとして９０００ｈをリーダライタに応答するフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ２０４）。続いて、ＣＰＵ１３は、ステップＳ１０１で読み出したデータオブジェクト構造に基づき、所定のデータオブジェクト構造のファイルを不揮発性メモリ１６の所定のエリアに書き込む（ステップＳ２０５）。続いてＣＰＵ１３は、ステップＳ１０２で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ２０６）、処理が終了する。
【００６９】
フラグが０１ｂであった場合、ＣＰＵ１３は、ＳＷとして６９８５ｈをリーダライタに応答するフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ２０７）。続いてＣＰＵ１３は、ステップＳ１０１で読み出したレコード構造に基づき、所定のデータオブジェクト構造のファイルを不揮発性メモリ１６の所定のエリアに書き込む（ステップＳ２０８）。続いてＣＰＵ１３は、ステップＳ１０２で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ２０９）、処理が終了する。
【００７０】
フラグが００ｂ、０１ｂのいずれでもない場合、ＣＰＵ１３はエラーと判断する（ステップＳ２１０）。そしてＣＰＵ１３は、ＣＲＥＡＴＥコマンドのエラーを示すＳＷをリーダライタに応答し（ステップＳ２１１）、処理が終了する。
【００７１】
次に、本発明の実施の形態２に係る可搬記録媒体１について、図１２に示すフローチャートによりその動作を説明する。なお、図１１の動作フローにより、可搬記録媒体１の不揮発性メモリ１６には所定のフラグが格納されているものとする。
【００７２】
はじめに、可搬記録媒体１は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタから所定のコマンドとして、ＰＵＴ ＤＡＴＡコマンドを受信する（ステップＳ２２０）。
【００７３】
続いて、可搬記録媒体１のＣＰＵ１３は、不揮発性メモリ１６から、ＰＵＴ ＤＡＴＡコマンド用のプログラム及びフラグ設定エリアに格納されたフラグを取得する（ステップＳ２２１）。当該フラグを解釈し、ＣＰＵ１３は、ＰＵＴ ＤＡＴＡコマンドがリーダライタから送信された場合に、不揮発性メモリ１６に一度書き込まれたデータオブジェクトを更新することを許容するか否かを確定する。
【００７４】
続いて、ＣＰＵ１３は、ステップＳ２２１において取得したフラグが、ＰＵＴ ＤＡＴＡコマンド実行時のＳＷとして９０００ｈをリーダライタに応答するフラグであるか否かを判定する（ステップＳ２２２）。
【００７５】
判定の結果、取得したフラグが、ＰＵＴ ＤＡＴＡ実行時におけるデータオブジェクト更新時のＳＷとして９０００ｈをカードリーダライタに応答するフラグの場合、ＣＰＵ１３は、データオブジェクトを更新する（ステップＳ２２３）。そしてＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタに正常終了として応答、すなわちＳＷとして９０００ｈをリーダライタに応答する（ステップＳ２２４）。
【００７６】
一方、ＰＵＴ ＤＡＴＡ実行時におけるデータオブジェクト更新時のＳＷとして９０００ｈをリーダライタに応答するフラグでない場合、すなわちＳＷとして６９８５ｈをカードリーダライタに応答するフラグである場合、ＣＰＵ１３は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、リーダライタに異常終了として応答、すなわちＳＷとして６９８５ｈをリーダライタに応答し（ステップＳ２２５）、処理が終了する。
【００７７】
このように本発明によれば、リーダライタ及びその上位機種に係るアプリケーションにより一意に定められるフラグによって所定のコマンドであるＰＵＴ ＤＡＴＡコマンドに対する可搬記録媒体１の挙動を同一にしているため、リーダライタ等の上位装置が可搬記録媒体１の挙動に合わせて複数の処理機能を実装する必要が無く、高い互換性を確保することができる。
【００７８】
（実施の形態３）
以下に、本発明の実施の形態３について説明をする。実施の形態３に係る可搬記録媒体１の構成は実施の形態１と同一であるが、実施の形態３に係る可搬記録媒体１は、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、所定のコマンドとして受信するコマンドがＫＥＹ ＲＥＰＬＡＣＥコマンドである点が相違する。
【００７９】
図１３は、可搬記録媒体１が、リーダライタから受信するコマンドのひとつであるＫＥＹ ＲＥＰＬＡＣＥコマンドのデータ構造及びデータ構造の各項目の説明を示す図である。ＫＥＹ ＲＥＰＬＡＣＥコマンドとは、可搬記録媒体１内においてデータの暗号化及び復号に用いられる鍵を、新規の鍵に置き換えるためのコマンドである。図１３に示すように、ＫＥＹ ＲＥＰＬＡＣＥコマンドは、ＣＬＡと、ＩＮＳと、Ｐ１と、Ｐ２と、Ｌｃと、データと、Ｌｅとを備える。
【００８０】
ＣＬＡは、ＫＥＹ ＲＥＰＬＡＣＥコマンドの場合００ｈである。ＩＮＳは、ＫＥＹ ＲＥＰＬＡＣＥコマンドの場合、Ｆ１ｈである。
【００８１】
Ｐ１は、２バイトの第一パラメータであり、現在の鍵のバージョンを示す。例えばＰ１は、０００２ｈである。Ｐ２は、２バイトの第二パラメータであり、鍵ＩＤを示す。例えばＰ２は、０１０Ａｈである。Ｌｃは後続のデータ部及びＬｅのデータ長を示す。データ部は、先頭の２バイト長のフラグと、フラグに後続する２バイト長の新規鍵のバージョン番号と、新規鍵のバージョン番号に後続する１６バイト長の鍵データ本体とを備える。例えば、フラグが０００２ｈ、新規鍵のバージョン番号が０００３ｈ、鍵データ本体が８７３Ａ０４７ＡＦ５８６２ＢＢ１６４２２１０１Ｃ８５９Ｄ８６７Ｆ３４ｈの場合、データ部は、０００２｜０００３｜８７３Ａ０４７ＡＦ５８６２ＢＢ１６４２２１０１Ｃ８５９Ｄ８６７Ｆ３４ｈである。Ｌｅは１バイトのデータであり、例えば００ｈである。
【００８２】
図１４は、可搬記録媒体１が、リーダライタからＫＥＹ ＲＥＰＬＡＣＥコマンドを受信した後に、鍵置き換えに係る複数のエラー事象が発生した場合の該複数のエラー事象の優先順位とフラグとの関係を示すテーブルである。ここで、可搬記録媒体１において、鍵置き換えに係るエラー事象が複数生じた場合、可搬記録媒体１のＣＰＵ１３は、該複数のエラー事象のうち、最も優先順位の高いエラー事象に係る応答をカードリーダライタに対して送信する。すなわち、ＫＥＹ ＲＥＰＬＡＣＥコマンドに対応する応答としては複数の応答があり、ＣＰＵ１３は、複数の応答のうち最も優先順位の高い応答をリーダライタに対して送信する。
【００８３】
しかしながら実装によってこの優先順位は異なる。そこで実施の形態３においては、フラグにより、可搬記録媒体１におけるエラー事象の優先順位を指定し、所定の優先順位に統一する。なおフラグの値は、リーダライタ及びその上位機種に係るアプリケーションにより一意に定められる。
【００８４】
例えばフラグが０００１ｈの場合、該エラー事象のうち、“新規鍵のデータ長が正しくない”というエラー事象及びその応答の優先順位を、最高の優先順位である１番に指定する。なお図１４中、優先順位が１番であることを（1）として表記している。また、エラー事象のうち、“Ｌｃの値が正しくない”というエラー事象及びその応答の優先順位を２番に指定する。同様に当該優先順位は（2）として表記している。他のエラー事象についても同様に図１４に示す通り、それぞれ３番目の優先順位から９番目の優先順位まで、（3）〜（9）として表記し、各エラー事象及びその応答に付与している。ここで、フラグが０００１ｈの場合の優先順位を、第１の優先順位と呼ぶ。同様にフラグが０００２ｈ、０００３ｈ、０００４ｈ、及び０００５ｈの場合も、各エラー事象及びその応答に優先順位を付与し、当該優先順位を、それぞれ第２の優先順位、第３の優先順位、第４の優先順位、及び第５の優先順位と呼ぶ。
【００８５】
図１５は、ＣＰＵ１３が、ＫＥＹ ＲＥＰＬＡＣＥコマンドにおけるフラグを不揮発性メモリ１６に格納する際の動作を示すフローチャートである。以下詳細に当該フローチャートを説明する。
【００８６】
まず可搬記録媒体１のＣＰＵ１３は、ＫＥＹ ＲＥＰＬＡＣＥコマンドにおけるデータ部のうち、フラグの値を読み出す（ステップＳ３０１）。
【００８７】
続いてＣＰＵ１３は、読み出したフラグの値が何であるかを判定する（ステップＳ３０２）。ＣＰＵ１３は、当該フラグの値に基づき、エラー事象及び応答の優先順位を確定する。
【００８８】
フラグが０００１ｈであった場合、ＣＰＵ１３は、第１の優先順位に係るフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ３０３）。続いてＣＰＵ１３は、ステップＳ３０１で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ３０４）、処理が終了する。
【００８９】
フラグが０００２ｈであった場合、ＣＰＵ１３は、第２の優先順位に係るフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ３０５）。続いてＣＰＵ１３は、ステップＳ３０１で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ３０６）、処理が終了する。
【００９０】
フラグが０００３ｈであった場合、ＣＰＵ１３は、第３の優先順位に係るフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ３０７）。続いてＣＰＵ１３は、ステップＳ３０１で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ３０８）、処理が終了する。
【００９１】
フラグが０００４ｈであった場合、ＣＰＵ１３は、第４の優先順位に係るフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ３０９）。続いてＣＰＵ１３は、ステップＳ３０１で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ３０１０）、処理が終了する。
【００９２】
フラグが０００５ｈであった場合、ＣＰＵ１３は、第５の優先順位に係るフラグを不揮発性メモリ１６に書き込むものと判断する（ステップＳ３１１）。続いてＣＰＵ１３は、ステップＳ３０１で読み出したフラグを、不揮発性メモリ１６に書込み（ステップＳ３１２）、処理が終了する。
【００９３】
フラグが０００１ｈ、０００２ｈ、０００３ｈ、０００４ｈ、及び０００５ｈのいずれでもない場合、ＣＰＵ１３はエラーと判断する（ステップＳ３１３）。そしてＣＰＵ１３は、ＫＥＹ ＲＥＰＬＡＣＥコマンドのエラーを示すＳＷをリーダライタに応答し（ステップＳ３１４）、処理が終了する。
【００９４】
次に、本発明の実施の形態３に係る可搬記録媒体１について、図１６に示すフローチャートによりその動作を説明する。なお、図１５の動作フローにより、可搬記録媒体１の不揮発性メモリ１６には所定のフラグが格納されているものとする。
【００９５】
はじめに、可搬記録媒体１において、鍵置き換えに係るエラー事象が複数発生する（ステップＳ３２０）。このとき、可搬記録媒体１のＣＰＵ１３は、当該複数エラー事象を示す情報を、メモリ内に保持する（ステップＳ３２１）。すなわちＣＰＵ１３は、所定のコマンドを実行した結果に関する複数の情報をメモリに格納する。
【００９６】
次に、可搬記録媒体１のＣＰＵ１３は、不揮発性メモリ１６に格納されたフラグを取得する（ステップＳ３２２）。当該フラグを解釈し、ＣＰＵ１３は、エラー事象及びその応答の優先順位を確定する。
【００９７】
続いて、ＣＰＵ１３は、ステップＳ３２２において取得したフラグが何であるかを判定する（ステップＳ３２３）。
【００９８】
判定の結果、取得したフラグが０００１ｈである場合、ＣＰＵ１３は、エラー事象が複数発生した場合に、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、第１の優先順位に基づき、発生した複数のエラー事象のうち最も優先順位の高いエラー事象を、メモリ内に保持されている当該複数エラー事象を示すデータの中から選択し、当該最も優先順位の高いエラー事象に対応するＳＷをリーダライタに応答する（ステップＳ３２４）。
【００９９】
判定の結果、取得したフラグが０００２ｈである場合、ＣＰＵ１３は、エラー事象が複数発生した場合に、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、第２の優先順位に基づき、発生した複数のエラー事象のうち最も優先順位の高いエラー事象を、メモリ内に保持されている当該複数エラー事象を示すデータの中から選択し、当該最も優先順位の高いエラー事象に対応するＳＷをリーダライタに応答する（ステップＳ３２５）。
【０１００】
判定の結果、取得したフラグが０００３ｈである場合、ＣＰＵ１３は、エラー事象が複数発生した場合に、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、第３の優先順位に基づき、発生した複数のエラー事象のうち最も優先順位の高いエラー事象を、メモリ内に保持されている当該複数エラー事象を示すデータの中から選択し、当該最も優先順位の高いエラー事象に対応するＳＷをリーダライタに応答する（ステップＳ３２６）。
【０１０１】
判定の結果、取得したフラグが０００４ｈである場合、ＣＰＵ１３は、エラー事象が複数発生した場合に、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、第４の優先順位に基づき、発生した複数のエラー事象のうち最も優先順位の高いエラー事象を、メモリ内に保持されている当該複数エラー事象を示すデータの中から選択し、当該最も優先順位の高いエラー事象に対応するＳＷをリーダライタに応答する（ステップＳ３２７）。
【０１０２】
判定の結果、取得したフラグが０００５ｈである場合、ＣＰＵ１３は、エラー事象が複数発生した場合に、非接触通信インタフェース１１又は接触通信インタフェース１２を介して、第５の優先順位に基づき、発生した複数のエラー事象のうち最も優先順位の高いエラー事象を、メモリ内に保持されている当該複数エラー事象を示すデータの中から選択し、当該最も優先順位の高いエラー事象に対応するＳＷをリーダライタに応答する（ステップＳ３２８）。
【０１０３】
ＳＷをリーダライタに応答した後、ＣＰＵ１３は、当該複数エラー事象を示す情報を、メモリから削除する。（ステップＳ３２９）
【０１０４】
このように本発明によれば、リーダライタ及びその上位機種に係るアプリケーションにより一意に定められるフラグによって所定のコマンドであるＫＥＹ ＲＥＰＬＡＣＥコマンドに関する可搬記録媒体１の挙動を同一にしているため、リーダライタ等の上位装置が可搬記録媒体１の挙動に合わせて複数の処理機能を実装する必要が無く、高い互換性を確保することができる。
【０１０５】
ここで、可搬記録媒体１として機能させるために、コンピュータを好適に用いることができ、そのようなコンピュータは、可搬記録媒体１の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータの中央演算処理装置によってこのプログラムを読み出して実行させることで実現することができる。
【０１０６】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。したがって、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【０１０７】
１  可搬記録媒体
１１  非接触通信インタフェース
１２  接触通信インタフェース
１３  ＣＰＵ
１４  ＲＡＭ
１５  ＲＯＭ
１６  不揮発性メモリ
２１  ＯＳ格納領域
２２  プログラム格納領域
２３  データファイル格納領域
２４  ハードウェア
２５  暗号コプロセッサ
【図１】
0005689050.tif 000002
【図２】
0005689050.tif 000003
【図３】
0005689050.tif 000004
【図４】
0005689050.tif 000005
【図５】
0005689050.tif 000006
【図６】
0005689050.tif 000007
【図７】
0005689050.tif 000008
【図８】
0005689050.tif 000009
【図９Ａ】
0005689050.tif 000010
【図９Ｂ】
0005689050.tif 000011
【図１０】
0005689050.tif 000012
【図１１】
0005689050.tif 000013
【図１２】
0005689050.tif 000014
【図１３】
0005689050.tif 000015
【図１４】
0005689050.tif 000016
【図１５】
0005689050.tif 000017
【図１６】
0005689050.tif 000018