(57)【要約】【課題】複数のクラス情報の仕様に対して互換性を維持することができる携帯可能電子装置を提供することである。【解決手段】実施形態の携帯可能電子装置は、通信部と、選択部と、処理部とを持つ。通信部は、複数のチャネルで外部装置と通信可能である。選択部は、コマンドの種別を示すクラス情報であって、前記チャネルの番号を示す情報を含むクラス情報の仕様を、自装置が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報に基づいて選択する。処理部は、複数の前記クラス情報の仕様に対応するコマンド処理を実行可能であって、前記通信部が前記クラス情報を有するコマンドを受信した場合に、前記選択部が選択した前記クラス情報の仕様に対応するコマンド処理を実行する。【選択図】図２
2015230505.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルで外部装置と通信可能な通信部と、
コマンドの種別を示すクラス情報であって、前記チャネルの番号を示す情報を含むクラス情報の仕様を、自装置が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報に基づいて選択する選択部と、
複数の前記クラス情報の仕様に対応するコマンド処理を実行可能であって、前記通信部が前記クラス情報を有するコマンドを受信した場合に、前記選択部が選択した前記クラス情報の仕様に対応するコマンド処理を実行する処理部と、
を備える携帯可能電子装置。
【請求項２】
前記所定の情報には、前記複数のチャネルのうち、現在開かれている前記チャネルの番号の最大値を示す情報が含まれ、
前記選択部は、前記チャネルの番号の最大値を示す情報に基づいて、前記クラス情報の仕様を選択する
請求項１に記載の携帯可能電子装置。
【請求項３】
電源電圧の供給が維持された状態で自装置にリセット信号が再供給されたか否かを判定するリセット判定部を備え、
前記所定の情報には、前記リセット判定部が判定した判定結果を示す情報が含まれ、
前記選択部は、前記判定結果を示す情報に基づいて、前記クラス情報の仕様を選択する
請求項１に記載の携帯可能電子装置。
【請求項４】
前記所定の情報には、前記チャネルが現在開かれているアプリケーションに対応する前記クラス情報の仕様を示す仕様情報が含まれ、
前記選択部は、前記仕様情報に基づいて、前記クラス情報の仕様を選択する
請求項１に記載の携帯可能電子装置。
【請求項５】
前記クラス情報の仕様には、第１の仕様と、前記第１の仕様と異なる第２の仕様とが含まれ、
前記処理部は、
受信した前記コマンドが有する前記クラス情報に対応するコマンド処理が、前記第１の仕様に対応するアプリケーション及び前記第２の仕様に対応するアプリケーションの両方に存在する場合、又は、前記第１の仕様に対応するアプリケーション及び前記第２の仕様に対応するアプリケーションのいずれにも存在しない場合に、前記選択部が選択した前記クラス情報の仕様に対応するコマンド処理を実行する
請求項１から請求項４のいずれか一項に記載の携帯可能電子装置。
【請求項６】
前記所定の情報には、前記クラス情報の仕様を指定する指定情報であって、前記外部装置から変更可能な指定情報が含まれ、
前記選択部は、前記指定情報に基づいて、前記クラス情報の仕様を選択し、
前記処理部は、
前記外部装置から前記通信部を介して受信した変更要求に応じて、前記指定情報を変更するとともに、前記通信部が前記コマンドを受信した場合に、前記選択部が選択した前記クラス情報の仕様に対応するコマンド処理を実行する
請求項１から請求項５のいずれか一項に記載の携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置に関する。
【背景技術】
【０００２】
近年、ＩＣ（Integrated Circuit）カードなどの携帯可能電子装置が普及している。従来の携帯可能電子装置は、外部装置から受信したコマンド内のClass Byte（クラス情報、以下、ＣＬＡバイトという）を判定し、判定結果に応じて適切な論理チャネル上で動作しているアプリケーションにコマンドを引き渡し、コマンド処理を実行する。このＣＬＡバイトは、標準化された仕様により規定されている。しかしながら、論理チャネルの上限数が拡張されるなど標準化された仕様が拡張されたことにより、従来の携帯可能電子装置は、一部のＣＬＡバイトの値について下位互換性が失われる場合があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９８６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、複数のクラス情報の仕様に対して互換性を維持することができる携帯可能電子装置を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の携帯可能電子装置は、通信部と、選択部と、処理部とを持つ。前記通信部は、複数のチャネルで外部装置と通信可能である。前記選択部は、コマンドの種別を示すクラス情報であって、前記チャネルの番号を示す情報を含むクラス情報の仕様を、自装置が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報に基づいて選択する。前記処理部は、複数の前記クラス情報の仕様に対応するコマンド処理を実行可能であって、前記通信部が前記クラス情報を有するコマンドを受信した場合に、前記選択部が選択した前記クラス情報の仕様に対応するコマンド処理を実行する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態のＩＣカードのハードウェア構成例を示す図。
【図２】第１の実施形態のＩＣカードの機能構成例を示すブロック図。
【図３】第１の実施形態のＣＬＡバイトの仕様例を示す図。
【図４】第１の実施形態の動作チャネル情報記憶部が記憶するデータ例を示す図。
【図５】第１の実施形態のＡＰデータ記憶部のファイル構成例を示す図。
【図６】第１の実施形態の管理情報記憶部が記憶するデータ例を示す図。
【図７】第１の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図８】第２の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図９】第２の実施形態のＩＣカードの動作の別の一例を示すフローチャート。
【図１０】第３の実施形態の動作チャネル情報記憶部が記憶するデータ例を示す図。
【図１１】第３の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図１２】第４の実施形態のコマンド情報記憶部の構成例を示す図。
【図１３】第４の実施形態の共通コマンド情報記憶部が記憶するデータ例を示す図。
【図１４】第４の実施形態の管理情報記憶部が記憶するＡＰ対応情報のデータ例を示す図。
【図１５】第４の実施形態のＩＣカードの動作の一例を示すフローチャート。
【図１６】第５の実施形態のＩＣカードの機能構成例を示すブロック図。
【図１７】第５の実施形態のＩＣカードの動作の一例を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施形態の携帯可能電子装置を、図面を参照して説明する。
なお、以下の実施形態において、携帯可能電子装置の一例として、ＩＣカードについて説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のＩＣカード１のハードウェア構成例を示す図である。
この図に示すように、ＩＣカード１は、コンタクト部３と、ＩＣチップ１００とを備えている。ＩＣカード１は、コンタクト部３を介して、外部装置２と通信可能である。
【０００９】
コンタクト部３は、ＩＣカード１が動作するために必要な各種信号の端子を有している。ここで、各種信号の端子は、電源電圧、クロック信号、リセット信号などを外部装置２から供給を受ける端子（電源端子、クロック端子、リセット端子）、及び、外部装置２と通信するための端子（シリアルデ―タ入出力端子（ＳＩＯ端子））を有する。
【００１０】
ＩＣチップ１００は、例えば、１チップのマイクロプロセッサなどのＬＳＩ（Large Scale Integration）である。ＩＣチップ１００は、通信Ｉ／Ｆ部４と、リセット判定部５と、ＣＰＵ（Central Processing Unit）６と、ＲＯＭ（Read Only Memory）７と、ＲＡＭ（Random Access Memory）８と、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）９とを備えている。
【００１１】
通信Ｉ／Ｆ（Interface）部４は、ＩＣカード１と外部装置２との間の通信（コマンド／レスポンスの送受信）を行う。ここで、外部装置２から出力されるコマンド通信は、例えば、コマンドの種別を示すＣＬＡバイト（クラス情報）、命令（Instruction）バイトであるＩＮＳバイト、パラメータバイト（Ｐ１、Ｐ２）を含む。また、受信したコマンドに応じて、ＩＣカード１から出力されるレスポンス応答は、ＳＷ１バイト及びＳＷ２バイトの状態バイト（ステータスバイト）を含む。
【００１２】
リセット判定部５は、電源電圧の供給が維持された状態で自装置にリセット信号が再供給されたか否かを判定する。リセット判定部５は、外部装置２から実行されたＩＣカード１リセット処理が、コールドリセット（Cold Reset）と、ウォームリセット（Warm Reset）とのうちのいずれのリセットであるかを判定する。ここで、コールドリセットとは、電源電圧がコンタクト部３から最初に供給された場合のリセットのことである。また、ウォームリセットとは、コールドリセット後に、電源電圧の供給が維持された状態でＩＣカード１（自装置）にリセット信号が再供給された場合のリセットのことである。
なお、リセット判定部５は、コールドリセットと、ウォームリセットとのうちのいずれのリセットであるかを判定した判定結果をリセット情報として保持しているものとする。
【００１３】
ＣＰＵ６は、ＲＯＭ７又はＥＥＰＲＯＭ９に記憶されているプログラムを実行して、ＩＣカード１の各種処理を行う。ＣＰＵ６は、例えば、コンタクト部３を介して、通信Ｉ／Ｆ（Interface）部４が受信したコマンドに応じたコマンド処理を実行する。
【００１４】
ＲＯＭ７は、例えば、マスクＲＯＭなどの不揮発性メモリであり、ＩＣカード１の各種処理を実行するためのプログラム、及びコマンドテーブルなどのデータを記憶する。
ＲＡＭ８は、例えば、ＳＲＡＭ（Static RAM）などの揮発性メモリであり、ＩＣカード１の各種処理を行う際に利用されるデータを一時記憶する。ＲＡＭ８は、現在利用されている（開かれている）論理チャネル番号と、各論理チャネルで動作しているアプリケーションを示す情報とを関連付けて記憶する。ここで、論理チャネルとは、外部装置２とＩＣカード１とのデータ通信を行う際に利用するチャネルのことであり、論理チャネルは、上述したＣＬＡバイトにより指定される。本実施形態のＩＣカード１では、複数の論理チャネルを同時に開くことが可能である。また、同時に開くことができる論理チャネルの数は、仕様により定められている。この論理チャネルに関する仕様の詳細については後述する。
また、ＲＡＭ８は、論理チャネルを指定する情報を含むＣＬＡバイトの複数の仕様のうちのいずれか１つ仕様が設定されているかを識別する識別フラグ情報を記憶する。ここで、識別フラグ情報は、ＣＬＡバイトの仕様を指定する指定情報である。なお、本実施形態では、後述する「仕様Ａ（旧仕様）」と「仕様Ｂ（新仕様）」との２つの異なる仕様のうちのいずれか１つの仕様が指定される場合の一例について説明する。
【００１５】
ＥＥＰＲＯＭ９は、例えば、電気的に書き換え可能な不揮発性メモリであり、ＩＣカード１の各種処理において保存しておく必要のあるデータ（例えば、アプリケーションデータなど）を記憶する。ＥＥＰＲＯＭ９は、例えば、コールドリセット、及びウォームリセットのそれぞれに対応して出力するＡＴＲ（Answer to Reset）データを記憶する。ここで、ＡＴＲデータとは、ＩＣカード１がリセットされた際に外部装置２に対して出力するデータであり、ＩＣカード１の通信プロトコルデータやヒストリカルバイトなどを含んでいる。また、ＥＥＰＲＯＭ９は、各アプリケーションを識別するアプリケーション識別子（ＡＩＤ）と、ＣＬＡバイトを上述した２つの仕様のうちのいずれかによって判定するかを示すＣＬＡ仕様情報とを関連付けて記憶する。
【００１６】
次に、図２を参照して、本実施形態によるＩＣカード１の機能構成例について説明する。
図２は、本実施形態のＩＣカード１の機能構成例を示すブロック図である。
この図に示すように、ＩＣカード１は、識別フラグ情報記憶部１１と、動作チャネル情報記憶部１２と、ＡＰデータ（アプリケーションデータ）記憶部１３と、管理情報記憶部１４と、コマンド情報記憶部１５と、リセット判定部５と、通信部２１と、ＡＴＲ処理部２２と、仕様選択部２３と、コマンド処理部２４とを備えている。
ここで、図２に示される各部は、図１に示されるハードウェアを用いて実現される。
【００１７】
なお、本実施形態では、論理チャネルを指定する情報を含むＣＬＡバイトの異なる仕様は、図３に示すように、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」である。「仕様Ａ（旧仕様）」は、論理チャネルの最大値が４つ以下（論理チャネル０〜論理チャネル３）である旧仕様である。また、「仕様Ｂ（新仕様）」は、論理チャネルの最大値が５つ以上である２０個（論理チャネル０〜論理チャネル１９）に拡張された新仕様である。
【００１８】
図３は、本実施形態のＣＬＡバイトの仕様例を示す図である。
この図に示す仕様では、「仕様Ａ（旧仕様）」は、論理チャネル０〜論理チャネル３までをＣＬＡバイトの下位２ビットで指定する。また、「仕様Ｂ（新仕様）」は、ＣＬＡバイトの上位４ビットが“Ｘ０ＸＸ”である場合に論理チャネル０〜論理チャネル３までをＣＬＡバイトの下位２ビットで指定する。ここで、“Ｘ”は、“０”と“１”とのうちのいずれかのビットを示す。また、「仕様Ｂ（新仕様）」は、ＣＬＡバイトの上位４ビットが“Ｘ１ＸＸ”である場合に論理チャネル４〜論理チャネル１９までをＣＬＡバイトの下位４ビットで指定する。
このように、ＣＬＡバイトは、論理チャネルを指定する情報（論理チャネルの番号を示す情報）を含んでいる。
【００１９】
図３に示す例では、「仕様Ａ（旧仕様）」は、「ＣＬＡ値」が、“００ｈ”（ここで“ｈ”は、１６進数（ヘキサデシマル）データを示す）である場合に、“共通コマンド”、且つ、“論理チャネル０”に対するコマンドを示す。また、「仕様Ａ（旧仕様）」は、「ＣＬＡ値」が、“８０ｈ”である場合に、“独自コマンド”、且つ、“論理チャネル０”に対するコマンドを示す。また、「仕様Ａ（旧仕様）」は、「ＣＬＡ値」が、“Ｃ０ｈ”である場合に、“独自コマンド”、且つ、“論理チャネル０”に対するコマンドを示す。
【００２０】
また、「仕様Ｂ（新仕様）」は、「ＣＬＡ値」が、“００ｈ”である場合に、“共通コマンド”、且つ、“論理チャネル０”に対するコマンドを示す。また、「仕様Ｂ（新仕様）」は、「ＣＬＡ値」が、“４０ｈ”である場合に、“共通コマンド”、且つ、“論理チャネル４”に対するコマンドを示す。また、「仕様Ｂ（新仕様）」は、「ＣＬＡ値」が、“８０ｈ”である場合に、“独自コマンド”、且つ、“論理チャネル０”に対するコマンドを示す。また、「仕様Ｂ（新仕様）」は、「ＣＬＡ値」が、“Ｃ０ｈ”である場合に、“独自コマンド”、且つ、“論理チャネル４”に対するコマンドを示す。
【００２１】
図２の説明に戻り、識別フラグ情報記憶部１１は、識別フラグ情報を記憶する記憶部であり、例えば、ＲＡＭ８により構成されている。識別フラグ情報は、例えば、２ビットの情報であり、「仕様Ａ（旧仕様）」である場合に“０１”を示し、「仕様Ｂ（新仕様）」である場合に“１０”を示す。
【００２２】
動作チャネル情報記憶部１２は、現在動作している（開かれている）論理チャネルと、アプリケーションを識別するＡＩＤとを関連付けて記憶する記憶部である。動作チャネル情報記憶部１２は、例えば、ＲＡＭ８により構成されている。
図４は、本実施形態の動作チャネル情報記憶部１２が記憶するデータ例を示す図である。
この図において、動作チャネル情報記憶部１２は、「チャネル番号」と、「ステータス」と、「アプリケーション名（ＡＤＦのＡＩＤ）」とを関連付けて記憶する。ここで、「チャネル番号」は、論理チャネルの番号を示し、「ステータス」は、論理チャネルの状態を示している。なお、論理チャネルの状態は、“オープン”（開いている）、及び“クローズ”（閉じている）のいずれかの状態を示している。また、「アプリケーション名（ＡＤＦのＡＩＤ）」は、論理チャネルに対応するアプリケーションＤＦ（ＡＤＦ：Application Dedicated File）を識別する識別情報（例えば、ＡＩＤ）である。
なお、本実施形態では、論理チャネルは、アプリケーションごとに開かれ、論理チャネル上ではＡＤＦが選択され、当該ＡＤＦに対応したアプリケーションが動作するものとして説明する。
【００２３】
図４に示す例では、「チャネル番号」の“０”〜“２”の「ステータス」が“オープン”であり、これらの論理チャネルが動作していることを示している。また、「チャネル番号」の“０”に対応する「アプリケーション名（ＡＤＦのＡＩＤ）」が“アプリケーション１”であることを示している。また、「チャネル番号」の“２”に対応する「アプリケーション名（ＡＤＦのＡＩＤ）」が“アプリケーション２”であることを示している。なお、「チャネル番号」の“１”に対応する「アプリケーション名（ＡＤＦのＡＩＤ）」が“なし”であり、全アプリケーション共通のファイル（例えば、ＡＴＲファイルのＥＦ（Elementary File）など）であることを示している。
【００２４】
再び、図２の説明に戻り、ＡＰデータ記憶部１３は、例えば、ＥＥＰＲＯＭ９により構成され、各種アプリケーションデータをファイルとして記憶する。
図５は、本実施形態のＡＰデータ記憶部１３のファイル構成例を示す図である。
この図において、ＡＰデータ記憶部１３は、ＭＦ（Master File）Ｆ０の下に、“アプリケーション１”、“アプリケーション２”、・・・“アプリケーション４”、・・・の各アプリケーションに対応するＡＤＦ（アプリケーションＤＦ）“ＡＤＦ１”（Ｆ１）、“ＡＤＦ２”（Ｆ２）、・・・“ＡＤＦ４”（Ｆ４）、・・・が存在する階層構成になっている。このように、ＡＰデータ記憶部１３は、各アプリケーションで利用するアプリケーションデータを階層構造のファイルとして記憶する。
【００２５】
再び、図２の説明に戻り、管理情報記憶部１４は、例えば、ＥＥＰＲＯＭ９により構成され、ＥＥＰＲＯＭ９に記憶される。管理情報記憶部１４は、ＭＦ、ＤＦ、ＥＦ、アプリケーションＤＦ（ＡＤＦ）などのファイルを管理する情報、ファイルへのアクセス権を管理する属性情報、及び各アプリケーションを管理する情報などを記憶する。管理情報記憶部１４は、例えば、図６に示すように、各アプリケーションを管理する情報として、各アプリケーションを識別する識別情報（ＡＩＤ）と、ＣＬＡバイトの仕様とを関連付けて記憶する。
【００２６】
図６は、本実施形態の管理情報記憶部１４が記憶するデータ例を示す図である。
この図において、管理情報記憶部１４は、アプリケーションを管理する情報として、「アプリケーション名（ＡＤＦのＡＩＤ）」と、「ＣＬＡ仕様」とを関連付けて記憶する。
図６に示す例では、例えば、“アプリケーション１”は、「ＣＬＡ仕様」が“仕様Ａ”であることを示している。また、“アプリケーション５”は、「ＣＬＡ仕様」が“仕様Ｂ”であることを示している。
【００２７】
再び、図２の説明に戻り、コマンド情報記憶部１５は、例えば、ＲＯＭ７又はＥＥＰＲＯＭ９により構成され、各コマンド処理に対応するＣＬＡバイト、ＩＮＳバイトなどを示すコマンドテーブル情報を記憶する。
【００２８】
通信部２１は、例えば、通信Ｉ／Ｆ部４、ＣＰＵ６、及びＲＯＭ７に記憶されているプログラムにより実現され、コンタクト部３を介して、外部装置２との間でコマンド及びレスポンスの送受信を行う。なお、通信部２１は、複数の論理チャネルで外部装置２と通信可能である。
【００２９】
ＡＴＲ処理部２２は、通信部２１にリセット応答を出力させる処理を実行する。ＡＴＲ処理部２２は、外部装置２からコンタクト部３のリセット端子に、リセット信号が供給された場合に、例えば、ＡＴＲデータを記憶するＡＴＲファイルのＥＦからＡＴＲデータを取得し、通信部２１から出力させる。
【００３０】
仕様選択部２３（選択部の一例）は、例えば、ＣＰＵ６、及びＲＯＭ７に記憶されているプログラムにより実現され、ＣＬＡバイトの仕様を選択する。仕様選択部２３は、論理チャネルを指定する情報を含むＣＬＡバイトの仕様（例えば、「仕様Ａ（旧仕様）」又は「仕様Ｂ（新仕様）」）を、ＩＣカード１（自装置）が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報に基づいて選択する。なお、本実施形態では、この所定の情報には、複数の論理チャネルのうち、現在開かれている論理チャネルの最大番号を示す情報が含まれる。すなわち、仕様選択部２３は、現在開かれている論理チャネルの最大番号を示す情報に基づいて、ＣＬＡバイトの仕様を選択する。ここで、論理チャネルの最大番号とは、論理チャネルの番号の最大値のことである。
【００３１】
例えば、仕様選択部２３は、動作チャネル情報記憶部１２が記憶する現在開かれている論理チャネルの最大番号を示す情報を取得する。仕様選択部２３は、取得した論理チャネルの最大番号を示す情報が、“３”以下である場合に、「仕様Ａ（旧仕様）」を示す“０１”（０１ｈ）を識別フラグ情報として識別フラグ情報記憶部１１に記憶させる。また、仕様選択部２３は、取得した論理チャネルの最大番号を示す情報が、“４”以上である（“３”より大きい）場合に、「仕様Ｂ（新仕様）」を示す“１０”（０２ｈ）を識別フラグ情報として識別フラグ情報記憶部１１に記憶させる。
【００３２】
具体的に、図４に示す例では、仕様選択部２３は、論理チャネルの最大番号を示す情報として、“２”を取得する。この場合、論理チャネルの最大番号を示す情報が“３”以下であるので、仕様選択部２３は、「仕様Ａ（旧仕様）」を示す“０１”（０１ｈ）を識別フラグ情報として識別フラグ情報記憶部１１に記憶させる。
【００３３】
コマンド処理部２４（処理部の一例）は、例えば、ＣＰＵ６、及びＲＯＭ７に記憶されているプログラムにより実現され、各種コマンド処理を実行する。コマンド処理部２４は、通信部２１がＣＬＡバイトを有するコマンドを受信した場合に、仕様選択部２３が選択したＣＬＡバイトの仕様に対応するコマンド処理を実行する。ここで、「ＣＬＡバイトの仕様に対応するコマンド処理」とは、ＣＬＡバイトの仕様により定められている、ＣＬＡバイトにより示されるコマンドの種別と、ＣＬＡバイトにより指定される論理チャネルの番号とに対応するコマンド処理のことである。
【００３４】
コマンド処理部２４は、例えば、「仕様Ａ（旧仕様）」によるＣＬＡバイトの判定機能と、「仕様Ｂ（新仕様）」によるＣＬＡバイトの判定機能とを有している。コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０１”である場合に、「仕様Ａ（旧仕様）」によるＣＬＡバイトの判定を行う。そして、コマンド処理部２４は、正常なＣＬＡバイトであると判定した場合に、コマンド情報記憶部１５が記憶するコマンドテーブル情報に基づいて、「仕様Ａ（旧仕様）」に対応するコマンド処理を実行する。また、コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０２”である場合に、「仕様Ｂ（新仕様）」によるＣＬＡバイトの判定を行う。そして、コマンド処理部２４は、正常なＣＬＡバイトであると判定した場合に、コマンド情報記憶部１５が記憶するコマンドテーブル情報に基づいて、「仕様Ｂ（新仕様）」に対応するコマンド処理を実行する。
【００３５】
コマンド処理部２４が実行するコマンド処理には、各種アプリケーション用のコマンド処理、管理用コマンド処理、論理チャネルを開く又は閉じるなどの制御を行うコマンド処理などが含まれ、各コマンド処理に応じて、動作チャネル情報記憶部１２、ＡＰデータ記憶部１３、管理情報記憶部１４、及びコマンド情報記憶部１５が記憶する情報の追加、変更及び削除など処理が実行される。
また、コマンド処理部２４は、各コマンド処理を実行した後に、状態バイトであるＳＷ１バイト及びＳＷ２バイトを、レスポンス応答として、通信部２１に出力させる。
【００３６】
次に、図７を参照して、本実施形態によるＩＣカード１の動作について説明する。
図７は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
この図に示すように、ＩＣカード１は、まず、コマンド受信したか否かを判定する（ステップＳ１０１）。すなわち、ＩＣカード１の通信部２１が、コンタクト部３及び通信Ｉ／Ｆ部４を介して、外部装置２からコマンドを受信したか否かを判定する。通信部２１は、コマンドを受信した場合（ステップＳ１０１：ＹＥＳ）に、処理をステップＳ１０２に進め、コマンドを受信していない場合（ステップＳ１０１：ＮＯ）に、ステップＳ１０１の処理に戻し、処理を繰り返す。
【００３７】
ステップＳ１０２において、ＩＣカード１の仕様選択部２３は、動作チャネル情報記憶部１２が記憶する現在開かれている論理チャネルの最大番号を示す情報（最大番号情報）を取得する。ここで、例えば、動作チャネル情報記憶部１２が、“論理チャネル０”と“論理チャネル４”とが開かれていることを示す情報を記憶している場合、仕様選択部２３は、最大番号情報として、“４”を取得する。
【００３８】
次に、仕様選択部２３は、最大番号が３より大きい（最大番号＞３）か否かを判定する（ステップＳ１０３）。すなわち、仕様選択部２３は、取得した最大番号情報が“３”より大きいか否かを判定する。仕様選択部２３は、最大番号情報が“３”より大きい場合（ステップＳ１０３：ＹＥＳ）に、識別フラグ情報記憶部１１に“１０”を記憶させて、処理をステップＳ１０４に進める。また、仕様選択部２３は、最大番号情報が“３”以下である場合（ステップＳ１０３：ＮＯ）に、識別フラグ情報記憶部１１に“０１”を記憶させて、処理をステップＳ１０５に進める。
【００３９】
ステップＳ１０４において、コマンド処理部２４は、「仕様Ｂ（新仕様）」にてコマンド処理を実行する。すなわち、コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０２”である場合に、「仕様Ｂ（新仕様）」に対応するコマンド処理を実行する。ステップＳ１０４の処理後に、コマンド処理部２４は、レスポンス応答を通信部２１に対して、外部装置２宛に出力させて、処理をステップＳ１０１に戻す。
【００４０】
また、ステップＳ１０５において、コマンド処理部２４は、「仕様Ａ（旧仕様）」にてコマンド処理を実行する。すなわち、コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０１”である場合に、「仕様Ａ（旧仕様）」に対応するコマンド処理を実行する。ステップＳ１０５の処理後に、コマンド処理部２４は、レスポンス応答を通信部２１に対して、外部装置２宛に出力させて、処理をステップＳ１０１に戻す。
【００４１】
以上説明したように、本実施形態によるＩＣカード１は、通信部２１と、仕様選択部２３と、コマンド処理部２４とを備えている。通信部２１は、複数の論理チャネルで外部装置２と通信可能である。仕様選択部２３は、コマンドの種別を示すＣＬＡバイト（クラス情報の一例）であって、論理チャネルの番号を示す情報を含むＣＬＡバイトの仕様を、自装置が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報（例えば、現在開かれている論理チャネルの最大番号）に基づいて選択する。コマンド処理部２４は、複数のＣＬＡバイトの仕様に対応するコマンド処理を実行可能であって、通信部２１がＣＬＡバイトを有するコマンドを受信した場合に、仕様選択部２３が選択したＣＬＡバイトの仕様に対応するコマンド処理を実行する。
これにより、本実施形態によるＩＣカード１は、複数のＣＬＡバイトの仕様を動的に切り替えて使用することができるため、複数のＣＬＡバイト（クラス情報）の仕様に対して互換性を維持することができる。
【００４２】
また、本実施形態では、上述した所定の情報には、複数の論理チャネルのうち、現在開かれている論理チャネルの番号の最大値を示す情報（論理チャネルの最大番号）が含まれる。仕様選択部２３は、チャネルの番号の最大値を示す情報に基づいて、ＣＬＡバイトの仕様を選択する。例えば、仕様選択部２３は、論理チャネルの最大番号が所定の番号（例えば、“３”）より大きい場合に、「仕様Ｂ（新仕様）」を選択し、論理チャネルの最大番号が所定の番号（例えば、“３”）以下である場合に、「仕様Ａ（旧仕様）」を選択する。
これにより、例えば、図３に示す「仕様Ａ（旧仕様）」に対応したＩＣカードシステム（外部装置２）に本実施形態のＩＣカード１が使用された場合であっても、ＩＣカード１は、「仕様Ａ（旧仕様）」に対応したコマンド処理を実行することができる。また、「仕様Ｂ（新仕様）」に対応したＩＣカードシステム（外部装置２）に本実施形態のＩＣカード１が使用された場合であっても、ＩＣカード１は、「仕様Ｂ（旧仕様）」に対応したコマンド処理を実行することができる。
【００４３】
ところで、上述した図３に示す「仕様Ａ（旧仕様）」と「仕様Ｂ（新仕様）」とが混在する場合に、次の問題が生じることが考えられる。例えば、「仕様Ａ（旧仕様）」に対応したＩＣカードシステムに、「仕様Ｂ（新仕様）」に対応したＩＣカードを使用し、ＩＣカードシステムが、ＣＬＡバイトが“Ｃ０ｈ”のコマンドを送信した場合を考える。この場合、ＩＣカードシステムは、「仕様Ａ（旧仕様）」の“独自コマンド”、且つ、“論理チャネル０”のコマンドを送信しているのに対して、「仕様Ｂ（新仕様）」に対応したＩＣカードは、ＣＬＡバイトが“Ｃ０ｈ”を“独自コマンド”、且つ、“論理チャネル４”と誤判定する問題が生じることがある。
【００４４】
また、例えば、「仕様Ｂ（新仕様）」に対応したＩＣカードシステムに、「仕様Ａ（旧仕様）」に対応したＩＣカードを使用し、ＩＣカードシステムが、ＣＬＡバイトが“Ｃ０ｈ”のコマンドを送信した場合を考える。この場合、ＩＣカードシステムは、「仕様Ｂ（新仕様）」の“独自コマンド”、且つ、“論理チャネル４”のコマンドを送信しているのに対して、「仕様Ａ（旧仕様）」に対応したＩＣカードは、ＣＬＡバイトが“Ｃ０ｈ”を“独自コマンド”、且つ、“論理チャネル０”と誤判定する問題が生じることがある。
【００４５】
これに対して、本実施形態のＩＣカード１は、現在開かれている論理チャネルの最大番号に基づいて、「仕様Ａ（旧仕様）」と「仕様Ｂ（新仕様）」とを切り替えて使用する。そのため、例えば、「仕様Ａ（旧仕様）」に対応したＩＣカードシステム（外部装置２）に、本実施形態のＩＣカード１が使用された場合には、ＩＣカード１は、「仕様Ａ（旧仕様）」に対応したコマンド処理を実行する。つまり、ＩＣカード１は、「仕様Ａ（旧仕様）」に対応したＩＣカードシステムから、ＣＬＡバイトが“Ｃ０ｈ”のコマンドを受信した場合に、“論理チャネル０”として正常にコマンド処理を実行することができる。このように、本実施形態のＩＣカード１は、一部のＣＬＡバイトの値について下位互換性が失われることを防ぐことができる。
【００４６】
また、例えば、図３に示す「仕様Ｂ（新仕様）」に対応したＩＣカードシステム（外部装置２）に本実施形態のＩＣカード１が使用された場合には、ＩＣカード１は、「仕様Ｂ（新仕様）」に対応したコマンド処理を実行する。つまり、ＩＣカード１は、「仕様Ｂ（新仕様）」に対応したＩＣカードシステムから、ＣＬＡバイトが“Ｃ０ｈ”のコマンドを受信した場合に、“論理チャネル４”として正常にコマンド処理を実行することができる。
このように、本実施形態のＩＣカード１は、「仕様Ａ（旧仕様）」に対応したシステムと、「仕様Ｂ（新仕様）」に対応したシステムとの両方に対応させることができる。
【００４７】
（第２の実施形態）
次に、図面を参照して、第２の実施形態によるＩＣカード１について説明する。
なお、本実施形態によるＩＣカード１の構成は、図１及び図２に示す第１の実施形態と同様であるので、ここではその説明を省略する。
本実施形態では、仕様選択部２３は、リセット判定部５が判定したウォームリセットであるか否かの判定結果に基づいて、ＣＬＡバイトの仕様を選択する場合の一例について説明する。
【００４８】
図８は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
この図に示すように、ＩＣカード１は、まず、図７に示すステップＳ１０１の処理と同様に、コマンド受信したか否かを判定する（ステップＳ２０１）。通信部２１は、コマンドを受信した場合（ステップＳ２０１：ＹＥＳ）に、処理をステップＳ２０２に進め、コマンドを受信していない場合（ステップＳ２０１：ＮＯ）に、ステップＳ２０１の処理に戻し、処理を繰り返す。
【００４９】
ステップＳ２０２において、仕様選択部２３は、リセット判定部５からリセット情報を取得する。すなわち、仕様選択部２３は、リセット判定部５から電源電圧の供給が維持された状態で自装置にリセット信号が再供給されたか否か（ウォームリセットであるか否か）の判定結果であるリセット情報を取得する。
【００５０】
次に、仕様選択部２３は、ウォームリセット後であるか否かを判定する（ステップＳ２０３）。すなわち、仕様選択部２３は、取得したリセット情報に基づいて、ウォームリセット後であるか否かを判定する。仕様選択部２３は、ウォームリセット後である場合（ステップＳ２０３：ＹＥＳ）に、識別フラグ情報記憶部１１に“０１”を記憶させて、処理をステップＳ２０５に進める。また、仕様選択部２３は、ウォームリセット後でない（コールドリセット後である）場合（ステップＳ２０３：ＮＯ）に、識別フラグ情報記憶部１１に“１０”を記憶させて、処理をステップＳ２０４に進める。
【００５１】
ステップＳ２０４において、コマンド処理部２４は、「仕様Ｂ（新仕様）」にてコマンド処理を実行する。すなわち、コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０２”である場合に、「仕様Ｂ（新仕様）」に対応するコマンド処理を実行する。ステップＳ２０４の処理後に、コマンド処理部２４は、レスポンス応答を通信部２１に対して、外部装置２宛に出力させて、処理をステップＳ２０１に戻す。
【００５２】
また、ステップＳ２０５において、コマンド処理部２４は、「仕様Ａ（旧仕様）」にてコマンド処理を実行する。すなわち、コマンド処理部２４は、識別フラグ情報記憶部１１が記憶する識別フラグ情報が、“０１”である場合に、「仕様Ａ（旧仕様）」に対応するコマンド処理を実行する。ステップＳ２０５の処理後に、コマンド処理部２４は、レスポンス応答を通信部２１に対して、外部装置２宛に出力させて、処理をステップＳ２０１に戻す。
【００５３】
なお、図８に示す例では、仕様選択部２３は、リセット判定部５からリセット情報を取得して、ウォームリセット後であるか否かを判定する例を説明したが、これに限定されるものではない。例えば、仕様選択部２３は、識別フラグ情報記憶部１１が記憶する識別フラグ情報に基づいて、ウォームリセット後であるか否かを判定してもよい。また、この場合には、ＡＴＲ処理部２２が、ＡＴＲ処理において、ウォームリセット後であるか否かに応じて、識別フラグ情報を識別フラグ情報記憶部１１に記憶させる。また、ＡＴＲ処理部２２は、論理チャネルの最大数を示す情報（最大論理チャネル数）を含むＡＴＲを出力させて、コールドリセットとウォームリセットとのいずれかであるかに応じて、この論理チャネルの最大数を示す情報を変更してもよい。
次に、図９を参照して、仕様選択部２３は、識別フラグ情報記憶部１１が記憶する識別フラグ情報に基づいて、ウォームリセット後であるか否かを判定する場合の一例について説明する。
【００５４】
図９は、本実施形態のＩＣカード１の動作の別の一例を示すフローチャートである。
この図において、ＩＣカード１は、リセット信号が供給されると、まず、リセット判定部５からリセット情報を取得する（ステップＳ３０１）。すなわち、ＩＣカード１のＡＴＲ処理部２２は、リセット判定部５からリセット情報を取得する。
【００５５】
次に、ＡＴＲ処理部２２は、供給されたリセット信号がウォームリセットであるか否かを判定する（ステップＳ３０２）。ＡＴＲ処理部２２は、取得したリセット情報に基づいて、ウォームリセットであるか否かを判定し、ウォームリセットである場合（ステップＳ３０２：ＹＥＳ）に、処理をステップＳ３０３に進める。また、ＡＴＲ処理部２２は、ウォームリセットでない（コールドリセットである）場合（ステップＳ３０２：ＮＯ）に、処理をステップＳ３０５に進める。
【００５６】
ステップＳ３０３において、ＡＴＲ処理部２２は、最大論理チャネル数を４以下として、ＡＴＲを出力する。すなわち、ＡＴＲ処理部２２は、ＡＴＲのヒストリカルバイトに、最大論理チャネル数を４以下とする情報を付加し、ＡＴＲを通信部２１に出力させる。
次に、ＡＴＲ処理部２２は、識別フラグ情報を“０１”にする（ステップＳ３０４）。すなわち、ＡＴＲ処理部２２は、識別フラグ情報記憶部１１に、「仕様Ａ（旧仕様）」に対応する“０１”を記憶させ、処理をステップＳ３０７に進める。
【００５７】
また、ステップＳ３０５において、ＡＴＲ処理部２２は、最大論理チャネル数を５以上として、ＡＴＲを出力する。すなわち、ＡＴＲ処理部２２は、ＡＴＲのヒストリカルバイトに、最大論理チャネル数を５以上とする情報を付加し、ＡＴＲを通信部２１に出力させる。
次に、ＡＴＲ処理部２２は、識別フラグ情報を“１０”にする（ステップＳ３０６）。すなわち、ＡＴＲ処理部２２は、識別フラグ情報記憶部１１に、「仕様Ｂ（新仕様）」に対応する“１０”を記憶させる。
【００５８】
ステップＳ３０７において、通信部２１は、コマンド受信したか否かを判定する（。通信部２１は、コマンドを受信した場合（ステップＳ３０７：ＹＥＳ）に、処理をステップＳ３０８に進め、コマンドを受信していない場合（ステップＳ３０７：ＮＯ）に、ステップＳ３０７の処理に戻し、処理を繰り返す。
【００５９】
ステップＳ３０８において、仕様選択部２３は、識別フラグ情報記憶部１１から識別フラグ情報を取得する。
次に、仕様選択部２３は、取得した識別フラグ情報に基づいて、ウォームリセット後であるか否かを判定する（ステップＳ３０９）。すなわち、仕様選択部２３は、取得した識別フラグ情報が“０１”である場合に、ウォームリセット後であると判定し、取得した識別フラグ情報が“１０”である場合に、ウォームリセット後でない（コールドリセット後である）と判定する。仕様選択部２３は、ウォームリセット後である場合（ステップＳ３０９：ＹＥＳ）に、処理をステップＳ３１１に進める。また、仕様選択部２３は、ウォームリセット後でない（コールドリセット後である）場合（ステップＳ３０９：ＮＯ）に、処理をステップＳ３１０に進める。
【００６０】
続く、ステップＳ３１０及びステップＳ３１１の処理は、図８に示すステップＳ２０４及びステップＳ２０５の処理と同様であるので、ここではその説明を省略する。ステップＳ３１０及びステップＳ３１１の処理後に、コマンド処理部２４は、処理をステップＳ３０７に戻す。
【００６１】
以上説明したように、本実施形態によるＩＣカード１は、電源電圧の供給が維持された状態で自装置にリセット信号が再供給されたか否かを判定するリセット判定部５を備えている。また、上述した所定の情報には、リセット判定部５が判定した判定結果を示す情報が含まれる。仕様選択部２３は、リセット判定部５が判定した判定結果を示す情報に基づいて、ＣＬＡバイトの仕様を選択する。
これにより、本実施形態によるＩＣカード１は、第１の実施形態と同様に、複数のＣＬＡバイトの仕様を動的に切り替えて使用することができるため、複数のＣＬＡバイト（クラス情報）の仕様に対して互換性を維持することができる。
【００６２】
また、本実施形態では、ＡＴＲ処理部２２が、論理チャネルを指定する情報を含むＣＬＡバイトの複数の仕様のうちのいずれかを示す情報（例えば、最大論理チャネル数）を含むＡＴＲを外部装置２宛に出力させる。
これにより、外部装置２は、複数のＣＬＡバイトの仕様のうちのいずれかに、現在設定されているのかを確認することができる。
【００６３】
なお、本実施形態では、仕様選択部２３は、コールドリセット後に「仕様Ｂ（新仕様）」を選択し、ウォームリセット後に「仕様Ａ（旧仕様）」を選択する例を説明したが、これに限定されるものではない。例えば、仕様選択部２３は、コールドリセット後に「仕様Ａ（旧仕様）」を選択し、ウォームリセット後に「仕様Ｂ（新仕様）」を選択してもよい。また、仕様選択部２３は、ウォームリセットを繰り返し行うことにより、「仕様Ａ（旧仕様）」と、「仕様Ｂ（新仕様）」とを交互に選択する（トグルに選択する）ように構成してもよい。
【００６４】
（第３の実施形態）
次に、図面を参照して、第３の実施形態によるＩＣカード１について説明する。
なお、本実施形態によるＩＣカード１の構成は、図１及び図２に示す第１の実施形態と同様であるので、ここではその説明を省略する。
本実施形態では、仕様選択部２３が、論理チャネルが現在開かれているアプリケーションに対応するＣＬＡバイトの仕様を示す仕様情報に基づいて、ＣＬＡバイトの仕様を選択する場合の一例について説明する。
【００６５】
図１０は、第３の実施形態の動作チャネル情報記憶部１２が記憶するデータ例を示す図である。
この図に示すように、本実施形態による動作チャネル情報記憶部１２は、「チャネル番号」と、「ステータス」と、「アプリケーション名（ＡＤＦのＡＩＤ）」と、「ＣＬＡ仕様」とを関連付けて記憶する。ここで、「ＣＬＡ仕様」は、上述した図６に示すような管理情報記憶部１４が記憶する情報に基づいて、「アプリケーション名（ＡＤＦのＡＩＤ）」関連付けて記憶されている。「ＣＬＡ仕様」は、論理チャネルが現在開かれているアプリケーション（現在動作しているアプリケーション）に対応するＣＬＡバイトの仕様を示す仕様情報である。
【００６６】
また、本実施形態の仕様選択部２３は、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）に基づいて、ＣＬＡバイトの仕様を選択する。仕様選択部２３は、例えば、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）が全て“仕様Ａ”である場合に、「仕様Ａ（旧仕様）」を選択する。また、仕様選択部２３は、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）が全て“仕様Ａ”でない場合（１つでも“仕様Ｂ”がある場合）に、「仕様Ｂ（新仕様）」を選択する。
【００６７】
図１１は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
この図に示すように、ＩＣカード１は、まず、図７に示すステップＳ１０１の処理と同様に、コマンド受信したか否かを判定する（ステップＳ４０１）。通信部２１は、コマンドを受信した場合（ステップＳ４０１：ＹＥＳ）に、処理をステップＳ４０２に進め、コマンドを受信していない場合（ステップＳ４０１：ＮＯ）に、ステップＳ４０１の処理に戻し、処理を繰り返す。
【００６８】
ステップＳ４０２において、仕様選択部２３は、論理チャネルが現在開かれているアプリケーション（現在動作しているアプリケーション）に対応する仕様情報を取得する。すなわち、仕様選択部２３は、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）を取得する。
【００６９】
次に、仕様選択部２３は、現在動作しているアプリケーションが全て「仕様Ａ（旧仕様）」であるか否かを判定する（ステップＳ４０３）。すなわち、仕様選択部２３は、取得した仕様情報に基づいて、現在動作しているアプリケーションが全て「仕様Ａ（旧仕様）」であるか否かを判定する。仕様選択部２３は、現在動作しているアプリケーションが全て「仕様Ａ（旧仕様）」である場合（ステップＳ４０３：ＹＥＳ）に、識別フラグ情報記憶部１１に“０１”を記憶させて、処理をステップＳ４０５に進める。また、仕様選択部２３は、ウォームリセット後でない（コールドリセット後である）場合（ステップＳ４０３：ＮＯ）に、識別フラグ情報記憶部１１に“１０”を記憶させて、処理をステップＳ４０４に進める。
【００７０】
続く、ステップＳ４０４及びステップＳ４０５の処理は、図８に示すステップＳ２０４及びステップＳ２０５の処理と同様であるので、ここではその説明を省略する。ステップＳ４０４及びステップＳ４０５の処理後に、コマンド処理部２４は、処理をステップＳ４０１に戻す。
【００７１】
以上説明したように、本実施形態では、所定の情報には、チャネルが現在開かれているアプリケーションに対応するＣＬＡバイトの仕様を示す仕様情報が含まれる。仕様選択部２３は、この仕様情報に基づいて、ＣＬＡバイトの仕様を選択する。仕様選択部２３は、例えば、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）が全て“仕様Ａ”である場合に、「仕様Ａ（旧仕様）」を選択する。また、仕様選択部２３は、動作チャネル情報記憶部１２が記憶する「ＣＬＡ仕様」（仕様情報）が全て“仕様Ａ”でない場合（１つでも“仕様Ｂ”がある場合）に、「仕様Ｂ（新仕様）」を選択する。
これにより、本実施形態によるＩＣカード１は、第１及び第２の実施形態と同様に、複数のＣＬＡバイトの仕様を動的に切り替えて使用することができるため、複数のＣＬＡバイト（クラス情報）の仕様に対して互換性を維持することができる。
【００７２】
（第４の実施形態）
次に、図面を参照して、第４の実施形態によるＩＣカード１について説明する。
なお、本実施形態によるＩＣカード１の構成は、図１及び図２に示す第１の実施形態と同様であるので、ここではその説明を省略する。
本実施形態では、コマンド処理部２４が、各アプリケーションにおけるコマンド処理の対応状態に基づいて、コマンド処理を実行する場合の一例について説明する。
【００７３】
図１２は、第４の実施形態のコマンド情報記憶部１５の構成例を示す図である。
この図に示すように、本実施形態のコマンド情報記憶部１５は、ＡＰ１コマンド情報１５１、ＡＰ２コマンド情報１５２、・・・を記憶している。
ＡＰ１コマンド情報１５１は、“アプリケーション１”がサポートするコマンドテーブル情報であり、例えば、図１３に示すような情報である。ここで、コマンド情報記憶部１５は、ＡＰ１コマンド情報１５１として、図１３に示すように、サポートする「ＣＬＡ値」と、「ＩＮＳ値」とを関連付けて記憶する。
【００７４】
また、ＡＰ２コマンド情報１５２は、“アプリケーション２”がサポートするコマンドテーブル情報である。なお、ＡＰ２コマンド情報１５２は、ＡＰ１コマンド情報１５１と同様に、図１３に示すような情報である。
このように、コマンド情報記憶部１５は、各アプリケーションがサポートするコマンド情報を記憶する。なお、コマンド情報記憶部１５は、各アプリケーションがＩＣカード１に追加された際に、各アプリケーションがサポートするコマンドテーブル情報を追加して記憶する。
【００７５】
また、本実施形態の管理情報記憶部１４は、図１４に示すように、ＣＬＡバイトの仕様と、ＣＬＡバイトの値と、対象アプリケーションとを関連付けたＡＰ対応情報を記憶している。
図１４は、本実施形態の管理情報記憶部１４が記憶するＡＰ対応情報のデータ例を示す図である。
この図に示すように、管理情報記憶部１４は、「ＣＬＡ仕様」と、「ＣＬＡ値」と、「アプリケーション名（ＡＤＦのＡＩＤ）」とを関連付けたＡＰ対応情報を記憶している。
【００７６】
また、本実施形態のコマンド処理部２４は、管理情報記憶部１４が記憶するＡＰ対応情報に基づいて、「仕様Ａ（旧仕様）」によるＣＬＡバイトに判定を行い、対応する対象アプリケーションを取得する。また、コマンド処理部２４は、管理情報記憶部１４が記憶するＡＰ対応情報に基づいて、「仕様Ｂ（新仕様）」によるＣＬＡバイトに判定を行い、対応する対象アプリケーションを取得する。なお、コマンド処理部２４は、対応する対象アプリケーションが複数ある場合には、動作チャネル情報記憶部１２が記憶する情報に基づいて、複数の対象アプリケーションのうち、ＣＬＡバイトで指定された論理チャネルに対応する対象アプリケーションを取得する。また、コマンド処理部２４は、対応する対象アプリケーションが存在しない場合には、対象アプリケーションを取得しない。
このように、コマンド処理部２４は、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」の両方の方式により、ＣＬＡバイトを判定して、各々のＣＬＡバイトの仕様について、対象アプリケーションを取得する。
【００７７】
また、コマンド処理部２４は、取得した対象アプリケーションが１つである場合に、対象アプリケーションにてコマンド処理を実行する。ここで、取得した対象アプリケーションが１つである場合には、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」の両方において、コマンド処理部２４が同一の対象アプリケーションを取得した場合と、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」のうちのいずれか一方において、コマンド処理部２４が対象アプリケーションを取得した場合が含まれる。
【００７８】
また、コマンド処理部２４は、取得した対象アプリケーションが複数ある場合に、コマンド情報記憶部１５が記憶する各対象アプリケーションのコマンドテーブル情報に基づいて、各対象アプリケーションにおいて、受信したコマンドがサポートされているか否かを判定する。ここで、取得した対象アプリケーションが複数ある場合とは、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」のそれぞれにおいて、コマンド処理部２４が異なる対象アプリケーションを取得された場合である。
また、コマンド処理部２４は、複数の対象アプリケーションのうちの１つにおいて、受信したコマンドがサポートされている場合に、当該対象アプリケーションにてコマンド処理を実行する。また、コマンド処理部２４は、複数の対象アプリケーションにおいて、受信したコマンドがサポートされている場合、又は、複数の対象アプリケーションのうちの全てにおいて受信したコマンドがサポートされていない場合に、上述した仕様選択部２３が選択した仕様に対応するコマンド処理を実行する。この場合、コマンド処理部２４は、例えば、上述した第１〜第３の実施形態による仕様選択部２３の選択方法により選択されたＣＬＡバイトの仕様に対応するコマンド処理を実行する。
【００７９】
次に、図１５を参照して、本実施形態によるＩＣカード１の動作について説明する。
図１５は、本実施形態のＩＣカード１の動作の一例を示すフローチャートである。
この図に示すように、ＩＣカード１は、まず、図７に示すステップＳ１０１の処理と同様に、コマンド受信したか否かを判定する（ステップＳ５０１）。通信部２１は、コマンドを受信した場合（ステップＳ５０１：ＹＥＳ）に、処理をステップＳ５０２に進め、コマンドを受信していない場合（ステップＳ５０１：ＮＯ）に、ステップＳ５０１の処理に戻し、処理を繰り返す。
【００８０】
ステップＳ５０２において、コマンド処理部２４は、「仕様Ａ（旧仕様）」にてＣＬＡバイトを判定し、対象アプリケーションを取得する。すなわち、コマンド処理部２４は、管理情報記憶部１４が記憶するＡＰ対応情報に基づいて、「仕様Ａ（旧仕様）」によるＣＬＡバイトに判定を行い、対応する対象アプリケーションを取得する。
【００８１】
次に、コマンド処理部２４は、「仕様Ｂ（新仕様）」にてＣＬＡバイトを判定し、対象アプリケーションを取得する（ステップＳ５０３）。すなわち、コマンド処理部２４は、管理情報記憶部１４が記憶するＡＰ対応情報に基づいて、「仕様Ｂ（新仕様）」によるＣＬＡバイトに判定を行い、対応する対象アプリケーションを取得する。
【００８２】
次に、コマンド処理部２４は、取得した対象アプリケーションが１つであるか否かを判定する（ステップＳ５０４）。コマンド処理部２４は、取得した対象アプリケーションが１つである場合（ステップＳ５０４：ＹＥＳ）に、処理をステップＳ５０５に進め、対象アプリケーションにてコマンド処理を実行する。
また、コマンド処理部２４は、取得した対象アプリケーションが１つでない（「仕様Ａ（旧仕様）」と「仕様Ｂ（新仕様）」とで異なる対象アプリケーションを取得した）場合（ステップＳ５０４：ＮＯ）に、処理をステップＳ５０６に進める。
【００８３】
ステップＳ５０６において、コマンド処理部２４は、各対象アプリケーションのコマンドサポート状態を確認する。すなわち、コマンド処理部２４は、コマンド情報記憶部１５が記憶する対象アプリケーションがサポートするコマンド情報に、受信したコマンドに一致する「ＣＬＡ値」と「ＩＮＳ値」との組があるか否かを確認する。
【００８４】
次に、コマンド処理部２４は、コマンドのサポートが確認された対象アプリケーションが１つであるか否かを判定する（ステップＳ５０７）。すなわち、コマンド処理部２４は、「仕様Ａ（旧仕様）」に対応する対象アプリケーションと「仕様Ｂ（新仕様）」に対応する対象アプリケーションとのうちの一方で、受信したコマンドがサポートされているか否かを判定する。コマンド処理部２４は、コマンドのサポートが確認された対象アプリケーションが１つである場合（ステップＳ５０７：ＹＥＳ）に、処理をステップＳ５０９に進め、対象アプリケーションにてコマンド処理を実行する。
また、コマンド処理部２４は、コマンドのサポートが確認された対象アプリケーションが１つでない場合（ステップＳ５０７：ＮＯ）に、処理をステップＳ５０８に進める。ここで、コマンドのサポートが確認された対象アプリケーションが１つでない場合には、２つの対象アプリケーションでコマンドのサポートが確認された場合と、コマンドのサポートが確認された対象アプリケーションが１つもない（０（ゼロ）である）場合とが含まれる。
【００８５】
ステップＳ５０８において、コマンド処理部２４は、仕様選択部２３にＣＬＡバイトの仕様を選択させ、仕様選択部２３が選択したＣＬＡバイトの仕様に対応するコマンド処理を実行する。なお、仕様選択部２３によるＣＬＡバイトの仕様の選択処理は、第１〜第3の実施形態における処理のうちの１つ又は複数の組合せが適用できる。
ステップＳ５０５、ステップＳ５０８、及びステップＳ５０９の処理後に、コマンド処理部２４は、処理をステップＳ５０１に戻す。
【００８６】
以上説明したように、本実施形態では、ＣＬＡバイトの仕様には、「仕様Ａ（旧仕様）」（第１の仕様の一例）と、「仕様Ａ（旧仕様）」と異なる「仕様Ｂ（新仕様）」（第２の仕様の一例）とが含まれる。コマンド処理部２４は、受信したコマンドが有するＣＬＡバイトに対応するコマンド処理が、「仕様Ａ（旧仕様）」に対応する対象アプリケーション及び「仕様Ｂ」に対応する対象アプリケーションの両方に存在する場合、又は、「仕様Ａ（旧仕様）」に対応する対象アプリケーション及び「仕様Ｂ（新仕様）」に対応する対象アプリケーションのいずれにも存在しない場合に、仕様選択部２３が選択したＣＬＡバイトの仕様に対応するコマンド処理を実行する。また、コマンド処理部２４は、コマンド処理が、「仕様Ａ（旧仕様）」に対応する対象アプリケーション及び「仕様Ｂ（新仕様）」に対応する対象アプリケーションのいずれか１つに存在する場合、又は対象アプリケーションが１つである場合に、対象アプリケーションに対応するコマンド処理を実行する。
【００８７】
これにより、本実施形態によるＩＣカード１は、対象アプリケーションにおいて、受信したコマンドのサポート状態を確認した上で、コマンド処理を実行するので、効率よくコマンド処理を実行することができる。例えば、本実施形態によるＩＣカード１では、受信したコマンドが１つの対象アプリケーションにおいてサポートされている場合には、仕様選択部２３を利用せずにＣＬＡバイトの異なる仕様に対して互換性を維持して、コマンド処理を実行することができる。
【００８８】
（第５の実施形態）
次に、図面を参照して、第５の実施形態によるＩＣカード１ａについて説明する。
本実施形態では、上述した識別フラグ情報（指定情報の一例）を変更する仕様変更コマンド処理を設けて、仕様選択部２３が、外部装置２によって変更された識別フラグ情報に基づいて、ＣＬＡバイトの仕様を選択する場合の一例について説明する。
なお、本実施形態によるＩＣカード１ａのハードウェア構成は、図１に示す第１の実施形態と同様であるので、ここではその説明を省略する。
【００８９】
図１６は、第５の実施形態のＩＣカード１ａの機能構成例を示すブロック図である。
この図において、ＩＣカード１ａは、識別フラグ情報記憶部１１と、動作チャネル情報記憶部１２と、ＡＰデータ記憶部１３と、管理情報記憶部１４と、コマンド情報記憶部１５と、リセット判定部５と、通信部２１と、ＡＴＲ処理部２２と、仕様選択部２３と、コマンド処理部２４ａとを備えている。
ここで、図１６に示される各部は、図１に示されるハードウェアを用いて実現される。
また、図１６において、図２に示す機能構成と同一の構成については同一の符号を付し、その説明を省略する。
【００９０】
本実施形態では、所定の情報には、ＣＬＡバイトの仕様を指定する指定情報であって、外部装置２から変更可能な識別フラグ情報が含まれる。
また、本実施形態の仕様選択部２３は、識別フラグ情報記憶部１１が記憶する識別フラグ情報に基づいて、ＣＬＡバイトの仕様を選択する。例えば、仕様選択部２３は、識別フラグ情報が“０１”である場合に、ＣＬＡバイトの仕様を「仕様Ａ（旧仕様）」であると判定する。また、仕様選択部２３は、識別フラグ情報が“１０”である場合に、ＣＬＡバイトの仕様を「仕様Ｂ（新仕様）」であると判定する。また、仕様選択部２３は、識別フラグ情報が“００”である場合に、ＣＬＡバイトの仕様が指定されていないと判定する。
【００９１】
また、コマンド処理部２４ａは、少なくとも仕様変更コマンド処理部２４１を備え、外部装置２から通信部２１を介して受信した仕様変更コマンド（変更要求の一例）に応じて、識別フラグ情報を変更する。また、コマンド処理部２４ａは、仕様選択部２３がＣＬＡバイトの仕様を「仕様Ａ（旧仕様）」であると判定した場合に、「仕様Ａ（旧仕様）」に対応するコマンド処理を実行する。また、コマンド処理部２４ａは、仕様選択部２３がＣＬＡバイトの仕様を「仕様Ｂ（新仕様）」であると判定した場合に、「仕様Ｂ（新仕様）」に対応するコマンド処理を実行する。また、コマンド処理部２４ａは、仕様選択部２３がＣＬＡバイトの仕様が指定されていないと判定した場合に、ＲＯＭ７又はＥＥＰＲＯＭ９が記憶するプログラムにより予め定められた仕様（「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」のうちのいずれか一方）に対応するコマンド処理を実行する。
【００９２】
仕様変更コマンド処理部２４１は、識別フラグ情報記憶部１１が記憶する識別フラグ情報を変更する仕様変更コマンドのコマンド処理を実行する。ここで、仕様変更コマンドは、例えば、ＣＬＡバイトが“８０ｈ”、ＩＮＳバイトが“０２ｈ”、パラメータバイト（Ｐ１）が“００ｈ”、及びパラメータバイト（Ｐ２）が“０１ｈ”又は“０２ｈ”により構成される。なお、仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ２）が“０１ｈ”である仕様変更コマンドをＩＣカード１ａが受信した場合に、識別フラグ情報記憶部１１が記憶する識別フラグ情報に“０１”を記憶させる。また、仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ２）が“０２ｈ”である仕様変更コマンドをＩＣカード１ａが受信した場合に、識別フラグ情報記憶部１１が記憶する識別フラグ情報に“１０”を記憶させる。
【００９３】
次に、図１７を参照して、本実施形態によるＩＣカード１ａの動作について説明する。
図１７は、本実施形態のＩＣカード１ａの動作の一例を示すフローチャートである。
この図に示すように、ＩＣカード１ａは、まず、図７に示すステップＳ１０１の処理と同様に、コマンド受信したか否かを判定する（ステップＳ６０１）。通信部２１は、コマンドを受信した場合（ステップＳ６０１：ＹＥＳ）に、処理をステップＳ６０２に進め、コマンドを受信していない場合（ステップＳ６０１：ＮＯ）に、ステップＳ６０１の処理に戻し、処理を繰り返す。
【００９４】
ステップＳ６０２において、コマンド処理部２４ａは、受信したコマンドが仕様変更コマンドであるか否かを判定する。コマンド処理部２４ａは、受信したコマンドが仕様変更コマンドである場合（ステップＳ６０２：ＹＥＳ）に、処理をステップＳ６０３に進める。また、コマンド処理部２４ａは、受信したコマンドが仕様変更コマンドでない場合（ステップＳ６０２：ＮＯ）に、処理をステップＳ６０６に進める。
【００９５】
ステップＳ６０３において、コマンド処理部２４ａの仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ１、Ｐ２）を判定する。すなわち、仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ１）が“００ｈ”であり、パラメータバイト（Ｐ１）が“０１ｈ”又は“０２ｈ”であることを確認する。
【００９６】
次に、仕様変更コマンド処理部２４１は、識別フラグ情報を変更する（ステップＳ６０４）。すなわち、仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ２）が“０１ｈ”である場合に、識別フラグ情報記憶部１１が記憶する識別フラグ情報に“０１”を記憶させる。また、仕様変更コマンド処理部２４１は、パラメータバイト（Ｐ２）が“０２ｈ”である場合に、識別フラグ情報記憶部１１が記憶する識別フラグ情報に“１０”を記憶させる。
【００９７】
次に、仕様変更コマンド処理部２４１は、仕様変更コマンドに対するレスポンス応答を外部装置２宛に送信する（ステップＳ６０５）。ここで、仕様変更コマンド処理部２４１は、受信した仕様変更コマンドに応じて、状態バイト（ＳＷ１バイト及びＳＷ２バイト）を含むレスポンス応答を出力する。ステップＳ６０５の処理後に、仕様変更コマンド処理部２４１は、処理をステップＳ６０１に戻す。
【００９８】
また、ステップＳ６０６において、仕様選択部２３は、識別フラグ情報が設定されているか否かを判定する。すなわち、仕様選択部２３は、識別フラグ情報が“０１”又は“１０”である場合に、識別フラグ情報が設定されていると判定する。また、仕様選択部２３は、識別フラグ情報が“００”である場合に、識別フラグ情報が設定されていないと判定する。仕様選択部２３は、識別フラグ情報が設定されているかと判定した場合（ステップＳ６０６：ＹＥＳ）に、処理をステップＳ６０７に進める。また、仕様選択部２３は、識別フラグ情報が設定されていないと判定した場合（ステップＳ６０６：ＮＯ）に、処理をステップＳ６０８に進める。
【００９９】
ステップＳ６０７において、コマンド処理部２４ａは、識別フラグ情報により指定される仕様にてＣＬＡバイトを判定する。すなわち、仕様選択部２３が、識別フラグ情報に基づいて、「仕様Ａ（旧仕様）」及び「仕様Ｂ（新仕様）」のうちのいずれかであるかを選択し、コマンド処理部２４ａは、仕様選択部２３が選択したＣＬＡバイトの仕様により、受信したコマンドのＣＬＡバイトを判定する。ステップＳ６０７の処理後に、コマンド処理部２４ａは、処理をステップＳ６０９に進める。
【０１００】
また、ステップＳ６０８において、コマンド処理部２４ａは、標準の方式にてＣＬＡバイトを判定する。すなわち、コマンド処理部２４ａは、ＲＯＭ７又はＥＥＰＲＯＭ９が記憶するプログラムにより予め定められた仕様により受信したコマンドのＣＬＡバイトを判定する。
【０１０１】
ステップＳ６０９において、コマンド処理部２４ａは、指定された論理チャネルで対象アプリケーションが選択されているか否かを判定する。コマンド処理部２４ａは、動作チャネル情報記憶部１２が記憶する情報に基づいて、受信したコマンドが指定する論理チャネルに関連付けられている「ステータス」が“オープン”であるか否かを判定する。また、コマンド処理部２４ａは、動作チャネル情報記憶部１２が記憶する情報に基づいて、受信したコマンドが指定する論理チャネルに関連付けられている対象アプリケーション（ＡＩＤ）が存在するか否かを判定する。コマンド処理部２４ａは、この論理チャネルに関連付けられている「ステータス」が“オープン”であるか否か及び対象アプリケーション（ＡＩＤ）が存在するか否かによって、指定された論理チャネルで対象アプリケーションが選択されているか否かを判定する。例えば、コマンド処理部２４ａは、論理チャネルに関連付けられている「ステータス」が“オープン”であり、対象アプリケーション（ＡＩＤ）が存在する場合に、指定された論理チャネルで対象アプリケーションが選択されていると判定する。また、コマンド処理部２４ａは、論理チャネルに関連付けられている「ステータス」が“オープン”でない、又は対象アプリケーション（ＡＩＤ）が存在しない場合に、指定された論理チャネルで対象アプリケーションが選択されていないと判定する。
【０１０２】
コマンド処理部２４ａは、論理チャネルで対象アプリケーションが選択されている場合（ステップＳ６０９：ＹＥＳ）に、処理をステップＳ６１０に進め、対象アプリケーションによりコマンド処理を実行する。なお、コマンド処理部２４ａは、コマンド処理を実行した後、状態バイト（ＳＷ１バイト及びＳＷ２バイト）を含むレスポンス応答を送信する処理を実行する。
また、コマンド処理部２４ａは、論理チャネルで対象アプリケーションが選択されていない場合（ステップＳ６０９：ＮＯ）に、処理をステップＳ６１１に進め、エラー応答の送信処理を実行する。
なお、ステップＳ６１０及びステップＳ６１１の処理後に、コマンド処理部２４ａは、処理をステップＳ６０１に戻す。
【０１０３】
以上説明したように、本実施形態では、所定の情報には、ＣＬＡバイトの仕様を指定する識別フラグ情報（指定情報）であって、外部装置２から変更可能な識別フラグ情報が含まれる。仕様選択部２３は、識別フラグ情報に基づいて、ＣＬＡバイトの仕様を選択する。そして、コマンド処理部２４ａは、外部装置２から通信部２１を介して受信した変更要求（例えば、仕様変更コマンド）に応じて、識別フラグ情報を変更するとともに、通信部２１がコマンドを受信した場合に、仕様選択部２３が選択したＣＬＡバイトの仕様に対応するコマンド処理を実行する。
【０１０４】
これにより、本実施形態によるＩＣカード１ａは、外部装置２からの変更要求（例えば、仕様変更コマンド）によりＣＬＡバイトの仕様を動的に変更することができる。よって、本実施形態によるＩＣカード１ａは、第１〜第３の実施形態と同様に、複数のＣＬＡバイトの仕様を動的に切り替えて使用することができるため、複数のＣＬＡバイト（クラス情報）の仕様に対して互換性を維持することができる。
また、専用のコマンドである仕様変更コマンドによって、ＣＬＡバイトの仕様を切り替えるので、本実施形態によるＩＣカード１ａは、任意のタイミングで異なるＣＬＡバイトの仕様を動的に切り替えることができる。
【０１０５】
なお、上述した実施形態では、変更要求の一例として、仕様変更コマンドによりＣＬＡバイトの仕様を変更する例を説明したが、これに限定されるものではない。例えば、変更要求は、ＡＴＲの出力後に実行されるＰＰＳ（Protocol and Parameters Selection）交換を利用してもよい。
【０１０６】
また、上記の各実施形態において、各実施形態を単独で実施する場合の例を説明したが、各実施形態を組み合わせて実施してもよい。
また、上記の各実施形態において、ＩＣカード１（１ａ）は、アプリケーションごとに論理チャネルを開き、論理チャネル上ではＡＤＦが選択され、当該ＡＤＦに対応したアプリケーションが動作する形態としたが、これに限定されるものではない。例えば、論理チャネル上で選択されるファイルは、ＡＤＦに限定されず、ＭＦ、ＤＦ、及びＥＦなどであってもよい。また、この場合には、各ファイルに関連付けられた機能単位において動作するコマンド群（コマンドテーブル）が存在し、コマンド処理部２４（２４ａ）は、受信したコマンドがコマンド群の中に存在する場合にコマンド処理を実行し、存在しない場合にエラー終了をする。
【０１０７】
また、上記の各実施形態において、携帯可能電子装置の一例として、ＩＣカード１（１ａ）である場合の例を説明したが、携帯可能電子装置は、ＩＣタグ、携帯電話などに使用されるＳＩＭ（Subscriber Identity Module）カードなどの他の携帯可能な電子装置であってもよい。
また、上記の各実施形態において、ＩＣカード１（１ａ）は、ＥＥＰＲＯＭ９を備える構成としたが、これに限定されるものではない。例えば、ＩＣカード１（１ａ）は、ＥＥＰＲＯＭ９の代わりに、フラッシュＥＥＰＲＯＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory：強誘電体メモリ）などを備えてもよい。
【０１０８】
また、上記の各実施形態において、ＩＣチップ１００は、１チップで構成される例を説明したが、これに限定されるものではなく、複数のＬＳＩチップ（半導体装置）によって構成されてもよい。
また、上記の各実施形態において、ＣＬＡバイトの仕様は、「仕様Ａ（旧仕様）」と「仕様Ｂ（新仕様）」との２つの仕様が共存する場合に適用する例を説明したが、２つ以上の仕様が共存する場合に適用してもよい。
【０１０９】
以上説明した少なくともひとつの実施形態によれば、論理チャネルを指定する情報を含むＣＬＡバイトの仕様を、自装置が保持する所定の情報であって、電源が供給された後に変更可能な所定の情報に基づいて選択する仕様選択部２３を持つことにより、複数のＣＬＡバイト（クラス情報）の仕様に対して互換性を維持することができる。
【０１１０】
なお、実施形態におけるＩＣカード１（１ａ）が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したＩＣカード１（１ａ）が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１１１】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にＩＣカード１（１ａ）が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１１２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１１３】
１，１ａ…ＩＣカード、２…外部装置、３‥コンタクト部、４…通信Ｉ／Ｆ部、５…リセット判定部、６…ＣＰＵ、７…ＲＯＭ、８…ＲＡＭ、９…ＥＥＰＲＯＭ、１１…識別フラグ情報記憶部、１２…動作チャネル情報記憶部、１３…ＡＰデータ記憶部、１４…管理情報記憶部、１５…コマンド情報記憶部、２１…通信部、２２…ＡＴＲ処理部、２３…仕様選択部、２４，２４ａ…コマンド処理部、１００…ＩＣチップ、２４１…仕様変更コマンド処理部
【図１】
2015230505.tif 000003
【図２】
2015230505.tif 000004
【図３】
2015230505.tif 000005
【図４】
2015230505.tif 000006
【図５】
2015230505.tif 000007
【図６】
2015230505.tif 000008
【図７】
2015230505.tif 000009
【図８】
2015230505.tif 000010
【図９】
2015230505.tif 000011
【図１０】
2015230505.tif 000012
【図１１】
2015230505.tif 000013
【図１２】
2015230505.tif 000014
【図１３】
2015230505.tif 000015
【図１４】
2015230505.tif 000016
【図１５】
2015230505.tif 000017
【図１６】
2015230505.tif 000018
【図１７】
2015230505.tif 000019