(57)【要約】【課題】リーダライタとの間における通信方式をＩＣカードの主導により最適なものに切り換えることの可能なＩＣカード通信方式切換方法及びＩＣカードの提供。【解決手段】ＩＣカードαにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、リーダライタとの間で相互に利用可能な２以上の通信方式を一時的に記憶するＲＡＭ６と、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式をＲＡＭ６に記憶された２以上の通信方式の中から選択し、その最適な通信方式が受信コマンドの通信方式と異なる場合に、自己の現在の通信方式をその最適な通信方式に切り換えた後に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせる機能手段（ＣＰＵ４）を具備する特徴。【選択図】図１
2004185242.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信方式を利用可能に構成されたＩＣカードと、当該ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、前記ＩＣカードの主導により最適なものに切り換えるためのＩＣカード通信方式切換方法であって、
前記ＩＣカードにおいて、
前記リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記２以上の通信方式を認識し、
前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した前記２以上の通信方式の中から選択し、
その選択した前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える、
ことを特徴とするＩＣカード通信方式切換方法。
【請求項２】
前記最適な通信方式の選択は、
前記ＩＣカードにおける前記複数の通信方式に関する、前記受信コマンドの特質に応じた選択優先順位を規定する通信方式選択優先順位テーブルに基づいて行う、
ことを特徴とする請求項１に記載のＩＣカード通信方式切換方法。
【請求項３】
前記最適な通信方式の選択は、
前記受信コマンドの種類に応じて行う、
ことを特徴とする請求項１又は２に記載のＩＣカード通信方式切換方法。
【請求項４】
前記最適な通信方式の選択は、
前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて行う、
ことを特徴とする請求項１、２又は３に記載のＩＣカード通信方式切換方法。
【請求項５】
前記最適な通信方式の選択は、
前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行う、
ことを特徴とする請求項１、２、３又は４に記載のＩＣカード通信方式切換方法。
【請求項６】
前記最適な通信方式の選択は、
前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて行う、
ことを特徴とする請求項１、２、３、４又は５に記載のＩＣカード通信方式切換方法。
【請求項７】
前記駆動電力は、
前記ＩＣカードが非接触型として機能する場合に、当該ＩＣカードが前記リーダライタの有効電磁界内に進入したときに当該ＩＣカードに生じる誘導起電力から得られる受信電力である、
ことを特徴とする請求項６に記載のＩＣカード通信方式切換方法。
【請求項８】
前記駆動電力は、
前記ＩＣカードが接触型として機能する場合に、当該ＩＣカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、
ことを特徴とする請求項６に記載のＩＣカード通信方式切換方法。
【請求項９】
複数の通信方式を利用可能に構成されたＩＣカードであって、
当該ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記２以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、
前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、前記利用可能通信方式記憶手段に記憶された前記２以上の通信方式の中から選択する最適通信方式選択手段と、
この最適通信方式選択手段により選択された前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える最適通信方式切換手段と、を有する、
ことを特徴とするＩＣカード。
【請求項１０】
前記最適通信方式選択手段は、
前記ＩＣカードにおける前記複数の通信方式の選択優先順位を規定する通信方式選択優先順位テーブルと、
当該通信方式選択優先順位テーブルに基づいて前記最適な通信方式の選択を行う機能手段と、を具備する、
ことを特徴とする請求項９に記載のＩＣカード。
【請求項１１】
前記最適通信方式選択手段は、
前記受信コマンドの種類に応じて前記最適な通信方式の選択を行う機能手段を具備する、
ことを特徴とする請求項９又は１０に記載のＩＣカード。
【請求項１２】
前記最適通信方式選択手段は、
前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて前記最適な通信方式の選択を行う機能手段を具備する、
ことを特徴とする請求項９、１０又は１１に記載のＩＣカード。
【請求項１３】
前記最適通信方式選択手段は、
前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて前記最適な通信方式の選択を行う機能手段を具備する、
ことを特徴とする請求項９、１０、１１又は１２に記載のＩＣカード。
【請求項１４】
前記最適通信方式選択手段は、
前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて前記最適な通信方式の選択を行う機能手段を具備する、
ことを特徴とする請求項９、１０、１１、１２又は１３に記載のＩＣカード。
【請求項１５】
前記駆動電力は、
前記ＩＣカードが非接触型として機能する場合に、当該ＩＣカードが前記リーダライタの有効電磁界内に進入したときに当該ＩＣカードに生じる誘導起電力から得られる受信電力である、
ことを特徴とする請求項１４に記載のＩＣカード。
【請求項１６】
前記駆動電力は、
前記ＩＣカードが接触型として機能する場合に、当該ＩＣカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、
ことを特徴とする請求項１４に記載のＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカード通信方式切換方法及びＩＣカードに関し（ＩＣ：集積回路）、詳しくは、複数の通信方式を利用可能に構成されたＩＣカードと、当該ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、ＩＣカードの主導により最適なものに切り換えるためのＩＣカード通信方式切換方法、及びその実施に直接使用するＩＣカードに係わる。
【０００２】
【従来の技術】
従来、ＩＣカードは、非接触型及び接触型の双方とも、その機種毎に単一の通信方式のみをサポートし、対応するリーダライタとの通信に際しては、その限定された唯一の通信方式による通信のみが可能とされていた。
【０００３】
なお、本発明に関連し、その技術的思想の理解を助ける文献公知発明が、以下に示す２つの非特許文献に記載されている。
【非特許文献１】
“Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｃａｒｄｓ  −  Ｃｏｎｔａｃｔｌｅｓｓ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（ｓ）  ｃａｒｄｓ  −  Ｐｒｏｘｉｍｉｔｙ  ｃａｒｄｓ  −  Ｐａｒｔ  ３：  Ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ａｎｄ  ａｎｔｉｃｏｌｌｉｓｉｏｎ”，  ＩｎｔｅｒｎａｔｉｏｎａｌＳｔａｎｄａｒｄ，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  （ＩＳＯ），  ２００１．０２．０１，  ＩＳＯ／ＩＥＣ  １４４４３−３：２００１（Ｅ），  ｐｐ．２０−３７
【非特許文献２】
“Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｃａｒｄｓ  −  Ｃｏｎｔａｃｔｌｅｓｓ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ（ｓ）  ｃａｒｄｓ  −  Ｐｒｏｘｉｍｉｔｙ  ｃａｒｄｓ  −  Ｐａｒｔ  ４：  Ｔｒａｎｓｍｉｓｓｉｏｎ  ｐｒｏｔｏｃｏｌ”，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  （ＩＳＯ），  ２００１．０２．０１，  ＩＳＯ／ＩＥＣ  １４４４３−４：２００１（Ｅ），  ｐｐ．４−１３
【０００４】
【発明が解決しようとする課題】
しかしながら、複数の通信方式をサポートするＩＣカード及びこれに対応するリーダライタを構成すること自体は、既に、技術的に可能な段階に達しており、昨今では、共に複数の通信方式をサポートするＩＣカードとリーダライタとの間における通信方式切換技術の標準化が望まれている。
【０００５】
ここにおいて、本発明の解決すべき主要な目的は、次のとおりである。
【０００６】
即ち、本発明の第１の目的は、ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、同ＩＣカードの主導により最適なものに切り換えることの可能なＩＣカード通信方式切換方法及びＩＣカードを提供せんとするものである。
【０００７】
本発明の第２の目的は、所要の通信方式の切換えを、ＩＣカードが受信したコマンドの特質に応じて自在に行うことの可能なＩＣカード通信方式切換方法及びＩＣカードを提供せんとするものである。
【０００８】
本発明の他の目的は、明細書、図面、特に特許請求の範囲の各請求項の記載から、自ずと明らかとなろう。
【０００９】
【課題を解決するための手段】
まず、本発明方法においては、ＩＣカードにおいて、リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な２以上の通信方式を認識し、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した２以上の通信方式の中から選択し、その選択した最適な通信方式が受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式を最適な通信方式に切り換える、という特徴的構成手法を講じる。
【００１０】
一方、本発明装置においては、ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、リーダライタとの間で相互に利用可能な２以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、記憶された２以上の通信方式の中から選択する最適通信方式選択手段と、選択された最適な通信方式が受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式を最適な通信方式に切り換える最適通信方式切換手段とを具備させる、という特徴的構成手段を講じる。
【００１１】
さらに、具体的詳細に述べると、当該課題の解決では、本発明が次に列挙する上位概念から下位概念に亙る新規な特徴的構成手法又は手段を採用することにより、前記目的を達成するよう為される。
【００１２】
即ち、本発明方法の第１の特徴は、複数の通信方式を利用可能に構成されたＩＣカードと、当該ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、前記ＩＣカードの主導により最適なものに切り換えるためのＩＣカード通信方式切換方法であって、前記ＩＣカードにおいて、前記リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記２以上の通信方式を認識し、前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した前記２以上の通信方式の中から選択し、その選択した前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換えてなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１３】
本発明方法の第２の特徴は、上記本発明方法の第１の特徴における前記最適な通信方式の選択を、前記ＩＣカードにおける前記複数の通信方式に関する、前記受信コマンドの特質に応じた選択優先順位を規定する通信方式選択優先順位テーブルに基づいて行ってなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１４】
本発明方法の第３の特徴は、上記本発明方法の第１又は第２の特徴における前記最適な通信方式の選択を、前記受信コマンドの種類に応じて行ってなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１５】
本発明方法の第４の特徴は、上記本発明方法の第１、第２又は第３の特徴における前記最適な通信方式の選択を、前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて行ってなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１６】
本発明方法の第５の特徴は、上記本発明方法の第１、第２、第３又は第４の特徴における前記最適な通信方式の選択を、前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行ってなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１７】
本発明方法の第６の特徴は、上記本発明方法の第１、第２、第３、第４又は第５の特徴における前記最適な通信方式の選択を、前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて行ってなる、ＩＣカード通信方式切換方法の構成採用にある。
【００１８】
本発明方法の第７の特徴は、上記本発明方法の第６の特徴における前記駆動電力が、前記ＩＣカードが非接触型として機能する場合に、当該ＩＣカードが前記リーダライタの有効電磁界内に進入したときに当該ＩＣカードに生じる誘導起電力から得られる受信電力である、ＩＣカード通信方式切換方法の構成採用にある。
【００１９】
本発明方法の第８の特徴は、上記本発明方法の第６の特徴における前記駆動電力が、前記ＩＣカードが接触型として機能する場合に、当該ＩＣカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、ＩＣカード通信方式切換方法の構成採用にある。
【００２０】
一方、本発明装置の第１の特徴は、複数の通信方式を利用可能に構成されたＩＣカードであって、当該ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記２以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、前記利用可能通信方式記憶手段に記憶された前記２以上の通信方式の中から選択する最適通信方式選択手段と、この最適通信方式選択手段により選択された前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える最適通信方式切換手段とを有してなる、ＩＣカードの構成採用にある。
【００２１】
本発明装置の第２の特徴は、上記本発明装置の第１の特徴における前記最適通信方式選択手段が、前記ＩＣカードにおける前記複数の通信方式の選択優先順位を規定する通信方式選択優先順位テーブルと、当該通信方式選択優先順位テーブルに基づいて前記最適な通信方式の選択を行う機能手段とを具備してなる、ＩＣカードの構成採用にある。
【００２２】
本発明装置の第３の特徴は、上記本発明装置の第１又は第２の特徴における前記最適通信方式選択手段が、前記受信コマンドの種類に応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ＩＣカードの構成採用にある。
【００２３】
本発明装置の第４の特徴は、上記本発明装置の第１、第２又は第３の特徴における前記最適通信方式選択手段が、前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ＩＣカードの構成採用にある。
【００２４】
本発明装置の第５の特徴は、上記本発明装置の第１、第２、第３又は第４の特徴における前記最適通信方式選択手段が、前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ＩＣカードの構成採用にある。
【００２５】
本発明装置の第６の特徴は、上記本発明装置の第１、第２、第３、第４又は第５の特徴における前記最適通信方式選択手段が、前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ＩＣカードの構成採用にある。
【００２６】
本発明装置の第７の特徴は、上記本発明装置の第６の特徴における前記駆動電力が、前記ＩＣカードが非接触型として機能する場合に、当該ＩＣカードが前記リーダライタの有効電磁界内に進入したときに当該ＩＣカードに生じる誘導起電力から得られる受信電力である、ＩＣカードの構成採用にある。
【００２７】
本発明装置の第８の特徴は、上記本発明装置の第６の特徴における前記駆動電力が、前記ＩＣカードが接触型として機能する場合に、当該ＩＣカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、ＩＣカードの構成採用にある。
【００２８】
【発明の実施の形態】
以下、本発明の実施の形態につき、添付図面を参照しつつ、まず、装置例に係る基本ハードウェア構成を説明し、次いで、同基本ハードウェア構成に基づき具現化される第１〜第５装置例及びこれらにそれぞれ対応する第１〜第５方法例を順に挙げて説明する。
【００２９】
（装置例：基本ハードウェア構成）
まず、図１（ａ）〜（ｃ）は、それぞれ、本発明の装置例に係るＩＣカードの内部構成図及び外観構成図、並びに同ＩＣカードに内蔵されるＩＣチップの機能構成図である。
【００３０】
同図（ａ）及び（ｂ）に示すように、本装置例に係るＩＣカードαは、その内部に、当該ＩＣカードαの機能構成を得るためのＩＣチップ１と、同ＩＣカードαが非接触型として機能する場合に、外部のリーダライタ（図示せず）との間で無線による通信を行うためのアンテナ２とを具備する一方、その外部に、同ＩＣカードαが接触型として機能する場合に、上記リーダライタとの間で有線（オンライン）による通信を行うための金属端子面３を具備して構成される。
【００３１】
一方、同図（ｃ）に示すように、上記ＩＣチップ１は、本ＩＣカードαの機能構成を得るための各種処理プログラム及び所要の通信方式を得るための各種通信プログラムの実行、並びにそれらプログラムの実行に伴って各種データの入出力を行うＣＰＵ（中央処理装置）４と、上記通信プログラム及び書換不要なデータを記憶するＲＯＭ（読出専用メモリ）５と、上記通信プログラムの実行に伴って生成されるデータを一時的に記憶するＲＡＭ（揮発性メモリ）６と、上記通信プログラムの実行に伴って生成されるデータを追記可能に記憶するＮＶＲＡＭ（不揮発性メモリ）７と、本ＩＣカードαが非接触型として機能する場合において、同ＩＣカードαがリーダライタの有効電磁界内に進入したときに、これに伴いアンテナ２に生じる誘導起電力から当該ＩＣカードαの駆動電力（受信電力）を得ると共に、そのリーダライタとの間で送受される信号の変復調を行うＲＦ部（ＲＦ：高周波）８とを具備して構成される。
【００３２】
また、特に図示はしていないが、ＩＣチップ１内には、本ＩＣカードαが接触型として機能する場合において、同ＩＣカードαがリーダライタにセットされたときに、金属端子面３を通じ同リーダライタから当該ＩＣカードαの駆動電力（供給電力）を得ると共に、そのリーダライタとの間で授受される信号の入出力を行うインタフェース部が併せて具備される。
【００３３】
なお、本発明にいう利用可能通信方式記憶手段、最適通信方式選択手段、及び最適通信方式切換手段は、上記ＣＰＵ４により実行される各種処理プログラム（各種通信プログラムを含む）及び各メモリの内容によって具現化されるものであり、その詳細は、後述の機能説明において明らかとなる。
【００３４】
次に、図２（ａ）は、図１に示したＲＯＭ５に設定されるＩＣカードサポート通信方式リストを示す図であり、同図（ｂ）及び（ｃ）は、それぞれ、図１に示したＲＡＭ６に設定されるセキュリティ状態テーブル及び相互利用可能通信方式リストを示す図である。
【００３５】
同図（ａ）に示すように、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１には、本ＩＣカードαにおいて利用可能な（ＩＣカードαに設定された複数の通信プログラムによりサポートされる）複数の通信方式が、それらの出現順を示す通信方式番号「１」，「２」，…，「ＣＭＡＸ」（ＣＭＡＸ：通信方式番号最大値．１≦ｉ≦ＣＭＡＸ）毎に、正の整数を示す１バイトデータによりそれぞれ表現された複数の通信方式識別子ｃ１，ｃ２，…，ｃＣＭＡＸにより設定される（以下、「通信方式識別子」を単に「識別子」ともいう）。
【００３６】
一方、同図（ｂ）に示すように、ＲＡＭ６内におけるセキュリティ状態テーブル６１には、リーダライタが本ＩＣカードαに対し各種コマンドを実行する場合において、該当するコマンドについての認証処理が必要なときに使用され、前１バイト及び後１バイトをそれぞれ読出コマンド及び書込コマンドの認証結果に割り当ててなる全体で２バイトのデータが設定される。
【００３７】
この２バイトデータは、初期状態において「００００ｈ」（「ｈ」は１６進表記を表す。以下同じ）なる値をとり、読出コマンドに伴う認証コマンド（詳細は後述）が正常に実行されたときには「０１００ｈ」なる値を、また、書込コマンドに伴う認証コマンドが正常に実行されたときには「０００１ｈ」なる値をとる（認証：未（００ｈ）・済（０１ｈ））。
【００３８】
また、同図（ｃ）に示すように、ＲＡＭ６内における相互利用可能通信方式リスト６２には、本ＩＣカードαにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能と判定された２以上の通信方式が、それらの出現順を示す通信方式番号「１」，「２」，…，「ＤＭＡＸ」（ＤＭＡＸ：通信方式番号最大値．１≦ｊ≦ＤＭＡＸ）毎に、正の整数を示す１バイトデータによりそれぞれ表現された２以上の通信方式識別子ｄ１，ｄ２，…，ｄＤＭＡＸにより設定される。
【００３９】
なお、この相互利用可能通信方式リスト６２は、上記通信初期化処理を経たときに初めて、その内容（通信方式識別子）が設定され、本ＩＣカードαの活性化直後（通信初期化処理前）の段階では「空」の状態である。
【００４０】
（第１装置例）
続いて、複数の通信方式の切換えが受信コマンドの種類に応じて行われるよう構成された、本発明の第１装置例に係るＩＣカードαについて説明する。
【００４１】
図３は、本発明の第１装置例に係る構成を得るため図１に示したＲＯＭ５に設定される通信方式選択優先順位テーブルを示す図である。
【００４２】
同図に示すように、本ＩＣカードαのＲＯＭ５内における通信方式選択優先順位テーブル５２には、リーダライタから送信される各種コマンド（受信コマンド）の種類毎（「コマンド１」，「コマンド２」，…，「コマンドｒ」（ｒ：コマンドの最大存在数）．ｋ：コマンド番号）に、前述のＩＣカードサポート通信方式リスト５１に規定される各通信方式（識別子ｃ１，ｃ２，…，ｃＣＭＡＸにより表現。以下，各装置例において同じ）の選択優先順位が、それら各通信方式の出現順に数値（正の整数）により設定される（選択優先順位を示す数値は、図示の「コマンド１」（ｋ＝１）の場合、ｘ１１，ｘ１２，…，ｘ１ＣＭＡＸの部分に割り当てられる。他のコマンドについても同じ）。
【００４３】
なお、以上の選択優先順位の数値は、最も適さない通信方式に関するものを「１」で表し、以下昇順に、最も適した通信方式に関するものを前述の「ＣＭＡＸ」と表すものとする（以下、各装置例において同じ）。
【００４４】
次に、図４（ａ）〜（ｄ）は、それぞれ、本発明の第１装置例に係る構成を得るため図１に示したＮＶＲＡＭ７に設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【００４５】
同図（ａ）に示すように、ＮＶＲＡＭ７には、ディレクトリｄ１〜ｄ３（ルートディレクトリｄ１）を幹とし、ファイル（群）ｆ１〜ｆ３及び鍵（群）ｋ１〜ｋ３を葉としたツリー構造からなるファイル構造が設定される。
【００４６】
一方、同図（ｂ）〜（ｄ）に示すように、ＮＶＲＡＭ７内におけるディレクトリ属性形式テーブル７１には、上記各ディレクトリｄ１〜ｄ３に関し、本ＩＣカードα全体でそれぞれ固有の値をとる２バイトのディレクトリＩＤ（ＩＤ：認証識別子）が設定されると共に（ルートディレクトリｄ１のディレクトリＩＤは「００００ｈ」）、同ＮＶＲＡＭ７内のファイル属性形式テーブル７２には、上記各ファイルｆ１〜ｆ３に関し、管理されるディレクトリｄ１〜ｄ３内でそれぞれ固有の値をとる２バイトのファイルＩＤが、また、同ＮＶＲＡＭ７内の鍵属性形式テーブル７３には、上記各鍵ｋ１〜ｋ３に関し、管理されるディレクトリｄ１〜ｄ３内でそれぞれ固有の値をとる２バイトの鍵ＩＤが設定される。
【００４７】
ここで、ファイル属性形式テーブル７２は、存在する各ファイルを個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記ファイルＩＤの他、データを蓄積可能な最大バイト数を示すデータサイズと、該当するファイルの読出し又は書込みを行う際の認証処理の要否（認証要否）を示す情報（以下、「セキュリティ属性」ともいう）と、実際に蓄積されるデータの内容とが含まれる。
【００４８】
なお、上記認証要否を示す情報は、図２（ｂ）で示したセキュリティ状態テーブル６１における場合と同様、前１バイト及び後１バイトをそれぞれ読出し時及び書込み時における認証要否に割り当ててなる全体で２バイトのデータであり、具体的には、認証処理がファイルの読出し時にのみ必要な場合には「０１００ｈ」なる値を、書込み時にのみ必要な場合には「０００１ｈ」なる値を、読み書き双方で必要な場合には「０１０１ｈ」なる値をとる（認証：要（０１ｈ）・不要（００ｈ））。
【００４９】
また、鍵属性形式テーブル７３は、存在する各鍵を個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記鍵ＩＤの他、該当する鍵が読出コマンド用又は書込コマンド用の何れであるかを示す鍵の種類と、該当する鍵のバイト数（長さ）を示す鍵長と、実際に蓄積される鍵の内容とが含まれる。
【００５０】
次に、図５（ａ）〜（ｆ）は、それぞれ、本発明の第１装置例に係るＩＣカードαに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【００５１】
まず、同図（ａ）に示すように、リーダライタが本ＩＣカードαからファイルの内容を読み出す際に使用される読出コマンド９１は、当該コマンドの種類を１バイトデータで表現したコマンド番号（読出コマンド：「０１ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、読出しを行おうとするファイルを２バイトデータで表現したファイルＩＤ（図４（ｃ）参照）と、そのファイル中におけるデータの読出開始位置を２バイトデータで表現した先頭アドレスと、そのファイル中におけるデータの長さを２バイトデータで表現した読出データ長と、上記コマンド番号から読出データ長までの５要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェック（ＥＤＣ：誤り検出コード．以下同じ）とから構成される。
【００５２】
上記読出コマンド９１に対応して、本ＩＣカードαからリーダライタに向け発せられる読出コマンドレスポンス９２は、同図（ｂ）に示すように、当該コマンド（レスポンス）の種類を１バイトデータで表現したコマンド番号（読出コマンドレスポンス：「０２ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、実際に読み出されたデータの長さを２バイトデータで表現した読出データ長と、その読出しに係る実際のデータの内容である読出データ内容と、所要の読出処理が正常に終了したときに２バイトの「００００ｈ」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの５要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５３】
一方、同図（ｃ）に示すように、リーダライタが本ＩＣカードαにファイルの内容を書き込む際に使用される書込コマンド９３は、当該コマンドの種類を１バイトデータで表現したコマンド番号（書込コマンド：「０３ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、書込みを行おうとするファイルを２バイトデータで表現したファイルＩＤ（図４（ｃ）参照）と、そのファイル中におけるデータの書込開始位置を２バイトデータで表現した先頭アドレスと、そのファイル中におけるデータの長さを２バイトデータで表現した書込データ長と、その書込みに係る実際のデータの内容である書込データ内容と、上記コマンド番号から書込データ内容までの６要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５４】
上記書込コマンド９３に対応して、本ＩＣカードαからリーダライタに向け発せられる書込コマンドレスポンス９４は、同図（ｄ）に示すように、当該コマンド（レスポンス）の種類を１バイトデータで表現したコマンド番号（書込コマンドレスポンス：「０４ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、所要の書込処理が正常に終了したときに２バイトの「００００ｈ」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの３要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５５】
また、同図（ｅ）に示すように、リーダライタが本ＩＣカードαに対するファイルの内容の読出し又は書込みを認証処理を伴って行う際に使用される認証コマンド９５は、当該コマンドの種類を１バイトデータで表現したコマンド番号（認証コマンド：「０７ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、認証を行う際に用いる鍵の種類を２バイトデータで表現した鍵ＩＤ（図４（ｄ）参照）と、その認証を行う際にリーダライタによって生成される乱数のバイト数を２バイトデータで表現した乱数長と、その乱数の実際の内容である乱数データと、当該乱数データを上記鍵ＩＤにより示される鍵で実際に暗号化したときの内容である暗号化データと、上記コマンド番号から暗号化データまでの６要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５６】
上記認証コマンド９５に対応して、本ＩＣカードαからリーダライタに向け発せられる認証コマンドレスポンス９６は、同図（ｆ）に示すように、当該コマンド（レスポンス）の種類を１バイトデータで表現したコマンド番号（認証コマンドレスポンス：「０８ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、所要の認証処理が正常に終了したときに２バイトの「００００ｈ」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの３要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５７】
次に、図６（ａ）及び（ｂ）は、それぞれ、本発明の第１装置例に係るＩＣカードαに適用される通信方式切換メッセージ及び再送要求メッセージの各データ形式を示す図である。
【００５８】
まず、同図（ａ）に示すように、本ＩＣカードαが通信方式を最適なものへと切り換えようとする際に当該ＩＣカードαからリーダライタに通知される通信方式切換メッセージ９８は、同メッセージの種類を１バイトデータで表現したコマンド番号（通信方式切換メッセージ：「１０ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、切り換えようとする通信方式の種類を１バイトデータで表現した通信方式識別子と、上記コマンド番号から通信方式識別子までの３要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００５９】
一方、同図（ｂ）に示すように、本ＩＣカードα及びリーダライタがコマンド及びレスポンスの受信に失敗したときに相手方へ向け送信されると共に、リーダライタが本ＩＣカードαから上記通信方式切換メッセージ９８を受信したときに当該ＩＣカードαに向け送信される再送要求メッセージ９９は、同メッセージの種類を１バイトデータで表現したコマンド番号（再送要求メッセージ：「１１ｈ」）と、後続のデータのバイト数を２バイトデータで表現したメッセージ長と、上記コマンド番号及びメッセージ長の２要素分の連続データとの間で排他的論理和を計算したときの値が「００ｈ」となるよう設定された、１バイトデータで表現されるエラーチェックとから構成される。
【００６０】
以上の構成を採用することにより、この第１装置例に係るＩＣカードαには、基本的に、以下に示すような種々の機能（▲１▼〜▲６▼）が具備されるようになる。
【００６１】
▲１▼ＲＦ部８において、非接触による通信方式を任意のタイミングで切り換えると共に、インタフェース部において、接触による通信方式を任意のタイミングで切り換える機能．
【００６２】
▲２▼リーダライタから任意のコマンドを受け取ったときに、そのコマンドの種類に応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能．
【００６３】
▲３▼リーダライタから読出コマンド９１を受け取った場合において、ＩＤ指定に係るファイルにつきファイル属性形式テーブル７２に設定された読出時認証に関する情報（セキュリティ属性）が要（０１ｈ）のときに、セキュリティ状態テーブル６１の読出コマンド部が済（０１ｈ）であれば以降の処理を行い、それ以外は、異常終了をレスポンスとして返す機能（読出時認証が不要（００ｈ）のとき又はセキュリティ状態テーブル６１の読出コマンド部が未（００ｈ）のときは、指定された先頭アドレスから始まるデータを、指定された長さだけレスポンスとして返す）．
【００６４】
▲４▼リーダライタから書込コマンド９３を受け取った場合において、ＩＤ指定に係るファイルにつきファイル属性形式テーブル７２に設定された書込時認証に関する情報（セキュリティ属性）が要（０１ｈ）のときに、セキュリティ状態テーブル６１の書込コマンド部が済（０１ｈ）であれば以降の処理を行い、それ以外は、異常終了をレスポンスとして返す機能（書込時認証が不要（００ｈ）のとき又はセキュリティ状態テーブル６１の書込コマンド部が未（００ｈ）のときは、指定されたデータを、指定された先頭アドレスから指定された長さだけ書き換えて、正常終了をレスポンスとして返す）．
【００６５】
▲５▼リーダライタから認証コマンド９５を受け取った場合において、ＩＤ指定に係る鍵につき鍵属性形式テーブル７３に設定された鍵の内容により、指定された乱数データを暗号化し、この暗号化データと指定された暗号化データとが一致したときに、鍵属性形式テーブル７３内の鍵の種類に指定されたコマンドに対応するセキュリティ状態テーブル６１の該当部（読出し又は書込コマンド部）を済（０１ｈ）に変更し、正常終了をレスポンスとして返す機能（一致しないときは異常終了をレスポンスとして返す）．
【００６６】
▲６▼通信方式の切換処理終了後に、所定時間が経過してもコマンドが来ない場合に、先に切り換えた通信方式を元に戻して待機する機能．
【００６７】
（第１方法例）
続いて、以上のように構成された第１装置例により実施されるＩＣカード通信方式切換方法の具体例を説明する。
【００６８】
まず、図７（ａ）及び（ｂ）は、それぞれ、本発明の第１方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【００６９】
同図（ａ）に示すように、本方法例では、ＩＣカードαにおいて利用可能な複数の通信方式として、３つの通信方式、即ち、識別子「０２ｈ」により示される「方式Ｂ」，識別子「０３ｈ」により示される「方式Ｃ」，及び識別子「０４ｈ」により示される「方式Ｄ」がサポートされ、これら３つの通信方式が、その出現順に各通信方式番号「１」，「２」，及び「３」に割り当てられてなるＩＣカードサポート通信方式リスト５１ａが、ＲＯＭ５内に予め設定されているものとする。
【００７０】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、５つの通信方式、即ち、「方式Ａ（識別子：０１ｈ）」，「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，「方式Ｄ（識別子：０４ｈ）」，及び「方式Ｅ（識別子：０５ｈ）」がサポートされているものとする。
【００７１】
また、同図（ｂ）に示すように、本方法例においては、ＩＣカードαがリーダライタから受信したコマンドの種類が読出コマンド９１（ｋ＝１）である場合の通信方式の選択優先順位を、「方式Ｃ」→「方式Ｄ」→「方式Ｂ」（即ち、数値「３」→「２」→「１」）の順とし、その種類が書込コマンド９３（ｋ＝３）である場合の通信方式の選択優先順位を「方式Ｄ」→「方式Ｃ」→「方式Ｂ」の順とし、さらに、その種類が認証コマンド９５（ｋ＝７）である場合の通信方式の選択優先順位を「方式Ｂ」→「方式Ｃ」→「方式Ｄ」の順とした通信方式選択優先順位テーブル５２ａが、同ＲＯＭ５内に予め設定されているものとする。
【００７２】
次に、図８（ａ）〜（ｅ）は、それぞれ、本発明の第１方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル（２種）、及び鍵属性形式テーブル（１種）の各例を示す図である。
【００７３】
同図に示すように、本方法例においては、ファイルＩＤとして「０００１ｈ」（ＩＤ＝１）を付与されたファイルｆ１ａと、同ファイルＩＤとして「０００２ｈ」（ＩＤ＝２）を付与されたファイルｆ１ｂと、鍵ＩＤとして「０００３ｈ」（ＩＤ＝３）を付与された鍵ｋ１ａとが、ルートディレクトリｄ１（ディレクトリＩＤ：「００００ｈ」）の直下に保持され、同状態のファイル構造がＮＶＲＡＭ７内に設定されているものとする（同図（ａ）及び（ｂ）にそれぞれ示すファイル構造及びディレクトリ属性形式テーブル７１ａを参照）。
【００７４】
ここで、ＩＤ＝１のファイルｆ１ａは、そのデータサイズが１０２４バイトであって、読み書きとも認証なしで行えるものとし（同図（ｃ）に示すファイル属性形式テーブル７２ａを参照）、また、ＩＤ＝２のファイルｆ１ｂは、データサイズが２０４８バイトであって、読出しは認証なしで行えるが書込みについては認証を要するものとする（同図（ｄ）に示すファイル属性形式テーブル７２ｂを参照）。
【００７５】
さらに、ＩＤ＝３の鍵ｋ１ａは、その種類が書込コマンド用のものであって、鍵長が１６バイトの鍵の内容を保持しているものとする（同図（ｅ）に示す鍵属性形式テーブル７３ａを参照）。
【００７６】
以上の前提において、本発明の第１方法例に適用されるＩＣカードαは、以下に示す一連の通信方式切換処理を実行する。
【００７７】
まず、ＩＣカードαは、所要の通信方式切換処理に際し、リーダライタとの間で通信初期化処理を実行し、当該リーダライタとの間で相互に利用可能な通信方式を認識する。
【００７８】
このとき、ＩＣカードαは、リーダライタから、同リーダライタが利用可能な５つの通信方式として「方式Ａ」，「方式Ｂ」，「方式Ｃ」，「方式Ｄ」，及び「方式Ｅ」（各識別子「０１ｈ」，「０２ｈ」，「０３ｈ」，「０４ｈ」，及び「０５ｈ」）を取得し、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａに自身が利用可能な３つの通信方式として設定された「方式Ｂ」，「方式Ｃ」，及び「方式Ｄ」（各識別子「０２ｈ」，「０３ｈ」，及び「０４ｈ」）との比較において、同リーダライタとの間で相互に利用可能な通信方式が「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，及び「方式Ｄ（識別子：０４ｈ）」である旨を認識する。
【００７９】
そして、ＩＣカードαは、ＲＡＭ６内における相互利用可能通信方式リスト６２に、リーダライタとの間で相互に利用可能な通信方式として、認識した「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，及び「方式Ｄ（識別子：０４ｈ）」を、各通信方式番号「１」，「２」，及び「３」にそれぞれ割り当てて設定すると共に、同ＲＡＭ６内におけるセキュリティ状態テーブル６１の値に初期値の「００００ｈ」を設定し、さらに、リーダライタとの間の初期の通信方式を、識別子「０２ｈ」により示される「方式Ｂ」に仮設定する（ここでは、相互利用可能通信方式リスト６２の先頭（通信方式番号「１」）に位置する通信方式を仮設定したに過ぎない。以下、各方法例において同じ）。
【００８０】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ＩＤ＝１のファイルｆ１ａに関してアドレス００００ｈから１２８バイトのデータを読み出すために、ＩＣカードαに対し「読出コマンド」を送信した場合、当該ＩＣカードαは、まず、受信したコマンドの種類が読出コマンド９１であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル７２ａの読出コマンド９１に関するセキュリティ属性が「不要（００ｈ）」であることを確認する（従って、上記鍵ｋ１ａに関する鍵の内容は、ここでは使用されない）。
【００８１】
次に、ＩＣカードαは、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａ及び通信方式選択優先順位テーブル５２ａ、並びにＲＡＭ６内における相互利用可能通信方式リスト６２を参照することにより、受信した読出コマンド９１を実行するのに最適な通信方式として、識別子「０３ｈ」により示される「方式Ｃ」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【００８２】
次に、ＩＣカードαは、選択した「方式Ｃ」の通信方式が現在の「方式Ｂ」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式Ｃ」の通信方式識別子「０３ｈ」を内容に含んだ通信方式切換メッセージ９８をリーダライタに送信し、その後、自己の通信方式を「方式Ｃ」に切り換える処理を行って、同リーダライタからの再送要求メッセージ９９を待つ。
【００８３】
これに対し、リーダライタは、ＩＣカードαから通信方式切換メッセージ９８を受信すると、その通信方式切換メッセージ９８により通知された「方式Ｃ（識別子：０３ｈ）」の通信方式が利用可能なものである（「方式Ａ」〜「方式Ｅ」に含まれている）ことを認識し、自己の通信方式を現在の「方式Ｂ」から「方式Ｃ」に切り換える処理を行って、所要の再送要求メッセージ９９をＩＣカードαに送信する。
【００８４】
次に、ＩＣカードαは、リーダライタから再送要求メッセージ９９を受信すると、先に受信した読出コマンド９１を実際に実行し、そのレスポンス（データの内容「０１０２０３０４０５０６０７…」）をリーダライタへ送信する。
【００８５】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ９９を受信できなかった場合、ＩＣカードαは、所定の時間待機した後に、ＲＡＭ６内における相互利用可能通信方式リスト６２から「方式Ｃ」の通信方式の項目を削除して、通信方式を元の「方式Ｂ」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【００８６】
そして、リーダライタは、ＩＣカードαから所要の読出コマンドレスポンス９２を受信し、以下、ＩＣカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【００８７】
次に、図９は、本発明の第１方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【００８８】
同図に示すように、ＩＣカードα内のＣＰＵ４は、通信方式選択処理の実行に際し、まず、ＲＯＭ５内の通信方式選択優先順位テーブル５２ａを参照することにより、通信方式の選択優先順位の最大値を得るための変数ｐｍａｘに、コマンド番号ｋ（読出コマンド：ｋ＝１）に関して１番目（ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａにおける通信方式番号の順番を示す変数：ｉ＝１．図２（ａ）参照）に設定された通信方式である「方式Ｂ」の選択優先順位ｘｋ１（ｘ１１＝１）を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数ｃｍａｘに、上記１番目の通信方式番号「１」を代入し、さらに、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊ（図２（ｃ）参照）に、２番目の通信方式番号「２」を代入する（ＳＴ１１）。
【００８９】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝２，ｄ２＝０３ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する（ＳＴ１２）。
【００９０】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５２ａを参照することにより、コマンド番号ｋの値が「１」で通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘｋｉ（ｘ１２＝３）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが（ＳＴ１３）、取得した選択優先順位ｘ１２は現在の変数ｐｍａｘの値「１」よりも大きいため（ＳＴ１３；＞）、その変数ｐｍａｘに同選択優先順位ｘ１２（＝３）を代入すると共に、前述したＳＴ１２の処理で得た２番目の通信方式番号に関する変数ｉの値「２」を上記変数ｃｍａｘに代入する（ＳＴ１４）。
【００９１】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ１５）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ１５；＜）、その変数ｊをインクリメントして「３」とし（ＳＴ１６）、さらに、前述したＳＴ１２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【００９２】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ１３の処理において、コマンド番号ｋの値が「１」で通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘｋｉ（ｘ１３＝２）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが、取得した選択優先順位ｘ１３は現在の変数ｐｍａｘの値「３」よりも小さいため（ＳＴ１３；≦）、同変数ｐｍａｘ及び上記変数ｃｍａｘの書換えを行うことなく、前述したＳＴ１５の処理において、現在の変数ｊの値（通信方式番号：ｊ＝３）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較する。
【００９３】
そして、以上の比較の結果、変数ｊの値が通信方式番号最大値ＤＭＡＸに至って「ｊ＝ＤＭＡＸ」となったため（ＳＴ１５；≧）、ＩＣカードα内のＣＰＵ４は、このときの変数ｃｍａｘの値により示される２番目の通信方式番号の値「２」を変数Ｉｎｔｆに代入する（ＳＴ１７）。
【００９４】
そして最後に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａを参照することにより、上記変数Ｉｎｔｆの値により示される２番目の通信方式番号の値「２」から、これに対応する「方式Ｃ」の通信方式が最も適したもの（最も優先順位の高いもの）であることを認識し、その通信方式を示す識別子「０３ｈ」を、前述した通信方式切換処理へと受け渡す。
【００９５】
以上に説明した「読出コマンド」に関する処理に対し、リーダライタが、前述した通信初期化処理を経た状態において、例えば、ＩＤ＝２のファイルｆ１ｂに関してアドレス００００ｈから１５００バイトのデータを書き込むために、ＩＣカードαに対し「書込コマンド」を送信しようとする場合、同リーダライタは、上記ファイルｆ１ｂに対するデータの書込み時に認証処理が必要であることを通信プログラム上で認識する。
【００９６】
そして、リーダライタは、書込コマンド９３の送信に先立ち、まず、自ら生成した乱数データと、自身が保持している書込コマンド用の鍵の内容で上記乱数データを暗号化して得た暗号化データとを含む「認証コマンド」をＩＣカードαに送信して、ＩＤ＝２のファイルｆ１ｂに関する認証処理を行う。
【００９７】
この認証処理に伴い、ＩＣカードαは、まず、受信したコマンドの種類が認証コマンド９５であることを確認し、さらに、その認証コマンド９５から得た乱数データを、同認証コマンド９５内の鍵ＩＤにより示される鍵属性形式テーブル７３ａ内の鍵の内容で暗号化することにより、この暗号化により生成した暗号化データと認証コマンド９５から得た暗号化データとを比較する。
【００９８】
次に、ＩＣカードαは、自ら生成した暗号化データと認証コマンド９５から得た暗号化データとが一致した場合は、ＲＡＭ６内におけるセキュリティ状態テーブル６１に設定される書込コマンド９３の状態を、未（００ｈ）から済（０１ｈ）に変更して（セキュリティ状態テーブル６１の値を初期値の「００００ｈ」から「０００１ｈ」に変更して）、リーダライタに正常終了のレスポンスを返す（暗号化データが一致せずに認証が失敗した場合には、異常終了のレスポンスを返す）。
【００９９】
これに対し、リーダライタは、ＩＣカードαから正常終了のレスポンスを受け取ると、ここで初めて、所要の書込コマンド９３をＩＣカードαに送信する。そして、ＩＣカードαは、まず、受信したコマンドの種類が書込コマンド９３であることを確認し、さらに、ＲＡＭ６内におけるセキュリティ状態テーブル６１に設定された書込コマンド９３の状態が、済（０１ｈ）であることを確認する。
【０１００】
次に、ＩＣカードαは、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａ及び通信方式選択優先順位テーブル５２ａ、並びにＲＡＭ６内における相互利用可能通信方式リスト６２を参照することにより、前述した通信方式選択処理（書込コマンド：ｋ＝３）を実行し、受信した書込コマンド９３を実行するのに最適な通信方式として「方式Ｄ」を選択する。
【０１０１】
次に、ＩＣカードαは、選択した「方式Ｄ」の通信方式が現在の「方式Ｂ」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式Ｄ」の通信方式識別子「０４ｈ」を内容に含んだ通信方式切換メッセージ９８をリーダライタに送信し、その後、自己の通信方式を「方式Ｄ」に切り換える処理を行って、同リーダライタからの再送要求メッセージ９９を待つ。
【０１０２】
これに対し、リーダライタは、ＩＣカードαから通信方式切換メッセージ９８を受信すると、その通信方式切換メッセージ９８により通知された「方式Ｄ（識別子：０４ｈ）」の通信方式が利用可能なものである（「方式Ａ」〜「方式Ｅ」に含まれている）ことを認識し、自己の通信方式を現在の「方式Ｂ」から「方式Ｄ」に切り換える処理を行って、所要の再送要求メッセージ９９をＩＣカードαに送信する。
【０１０３】
次に、ＩＣカードαは、リーダライタから再送要求メッセージ９９を受信すると、先に受信した書込コマンド９３を実際に実行し、そのレスポンスをリーダライタへ送信する。
【０１０４】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ９９を受信できなかった場合、ＩＣカードαは、所定の時間待機した後に、ＲＡＭ６内における相互利用可能通信方式リスト６２から「方式Ｄ」の通信方式の項目を削除して、通信方式を元の「方式Ｂ」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【０１０５】
そして、リーダライタは、ＩＣカードαから所要の書込コマンドレスポンス９４を受信し、以下、ＩＣカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【０１０６】
（第２装置例）
続いて、複数の通信方式の切換えが受信コマンドの内容を暗号化する際に適用される暗号方式の種類に応じて行われるよう構成された、本発明の第２装置例に係るＩＣカードαについて説明する。
【０１０７】
図１０は、本発明の第２装置例に係る構成を得るため図１に示したＲＯＭ５に設定される通信方式選択優先順位テーブルを示す図である。
【０１０８】
同図に示すように、本ＩＣカードαのＲＯＭ５内における通信方式選択優先順位テーブル５３には、リーダライタから送信される各種コマンド（受信コマンド）の内容を暗号化する際に適用される暗号方式の種類毎（「暗号化無し」，「暗号方式１」，「暗号方式２」，…，「暗号方式ｓ」（ｓ：暗号方式の最大存在数）．ｌ：暗号方式番号）に、前述のＩＣカードサポート通信方式リスト５１に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される（選択優先順位を示す数値は、図示の「暗号化無し」（ｌ＝０）の場合、ｘ０１，ｘ０２，…，ｘ０ＣＭＡＸの部分に割り当てられる。他の暗号方式についても同じ）。
【０１０９】
次に、図１１（ａ）〜（ｄ）は、それぞれ、本発明の第２装置例に係る構成を得るため図１に示したＮＶＲＡＭ７に設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【０１１０】
同図（ａ）に示すように、ＮＶＲＡＭ７には、第１装置例におけるそれと同様に、ディレクトリｄ１〜ｄ３（ルートディレクトリｄ１）を幹とし、ファイル（群）ｆ１〜ｆ３及び鍵（群）ｋ１〜ｋ３を葉としたツリー構造からなるファイル構造が設定される。
【０１１１】
一方、同図（ｂ）〜（ｄ）に示すように、ＮＶＲＡＭ７内におけるディレクトリ属性形式テーブル７１には、上記各ディレクトリｄ１〜ｄ３に関し、本ＩＣカードα全体でそれぞれ固有の値をとる２バイトのディレクトリＩＤ（ＩＤ：認証識別子）が設定されると共に（ルートディレクトリｄ１のディレクトリＩＤは「００００ｈ」）、同ＮＶＲＡＭ７内のファイル属性形式テーブル７４には、上記各ファイルｆ１〜ｆ３に関し、管理されるディレクトリｄ１〜ｄ３内でそれぞれ固有の値をとる２バイトのファイルＩＤが、また、同ＮＶＲＡＭ７内の鍵属性形式テーブル７５には、上記各鍵ｋ１〜ｋ３に関し、管理されるディレクトリｄ１〜ｄ３内でそれぞれ固有の値をとる２バイトの鍵ＩＤが設定される。
【０１１２】
ここで、ファイル属性形式テーブル７４は、存在する各ファイルを個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記ファイルＩＤの他、データを蓄積可能な最大バイト数を示すデータサイズと、該当するファイルの読出し又は書込みを行う際の認証処理の要否（認証要否）を示す情報（第１装置例におけるものと同じ形態）と、そのファイルの読出し又は書込みを行う際の暗号化処理の要否（暗号化要否）を示す情報（認証処理の要否を示す情報と併せ、以下、「セキュリティ属性」ともいう）と、実際に蓄積されるデータの内容とが含まれる。
【０１１３】
なお、上記暗号化要否を示す情報は、前１バイト及び後１バイトをそれぞれ読出し時及び書込み時における暗号化要否に割り当ててなる全体で２バイトのデータであり、具体的には、暗号化処理がファイルの読出し時にのみ必要な場合には「ＸＸ００ｈ」なる値を、書込み時にのみ必要な場合には「００ＸＸｈ」なる値を、読み書き双方で必要な場合には「ＸＸＸＸｈ」なる値をとる（暗号化：要（ＸＸｈ）・不要（００ｈ）．但し、「ＸＸｈ」は、各暗号方式の種類を示す識別子を表す）。
【０１１４】
また、鍵属性形式テーブル７５は、存在する各鍵を個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記鍵ＩＤの他、該当する鍵が読出コマンド用、書込コマンド用又は暗号通信用の何れであるかを示す鍵の種類と、該当する鍵のバイト数（長さ）を示す鍵長と、実際に蓄積される鍵の内容とが含まれる。
【０１１５】
次に、図１２（ａ）〜（ｆ）は、それぞれ、本発明の第２装置例に係るＩＣカードαに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【０１１６】
同図に示すように、本装置例では、第１装置例で説明したそれらと基本構成がほぼ同等な読出コマンド９１ａ、読出コマンドレスポンス９２ａ、書込コマンド９３ａ、書込コマンドレスポンス９４ａ、認証コマンド９５ａ、及び認証コマンドレスポンス９６ａが適用される。
【０１１７】
即ち、本装置例で適用される各コマンド（レスポンス）９１ａ〜９６ａには、コマンド番号の直後に、該当するコマンド（レスポンス）の内容を暗号化する際に適用すべき暗号方式の種類を１バイトデータで表現した暗号方式（００ｈ：平文（暗号化無し）・ＸＸｈ：種類（「暗号方式１」〜「暗号方式ｓ」））が付加される。ここで、実際に暗号化の対象とされる各コマンド（レスポンス）の内容は、上記暗号方式以降に位置するメッセージ長及びエラーチェックを除いた連続データの部分（書込コマンドレスポンス９４ａ及び認証コマンドレスポンス９６ａについては、エラーステータスの部分のみ）である。
【０１１８】
なお、第１装置例で適用した通信方式切換メッセージ９８及び再送要求メッセージ９９は本装置例でも同様に適用されるが、これら各メッセージ９８及び９９の内容に上記暗号方式を付加するか否かは任意である。
【０１１９】
以上の構成を採用することにより、この第２装置例に係るＩＣカードαには、第１装置例における種々の機能（▲２▼を除く）の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの内容を暗号化する際に適用される暗号方式の種類に応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【０１２０】
（第２方法例）
続いて、以上のように構成された第２装置例により実施されるＩＣカード通信方式切換方法の具体例を説明する。
【０１２１】
まず、図１３（ａ）及び（ｂ）は、それぞれ、本発明の第２方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【０１２２】
同図（ａ）に示すように、本方法例では、第１方法例におけるそれと同様、ＩＣカードαにおいて利用可能な複数の通信方式として、３つの通信方式、即ち、識別子「０２ｈ」により示される「方式Ｂ」，識別子「０３ｈ」により示される「方式Ｃ」，及び識別子「０４ｈ」により示される「方式Ｄ」がサポートされ、これら３つの通信方式が、その出現順に各通信方式番号「１」，「２」，及び「３」に割り当てられてなるＩＣカードサポート通信方式リスト５１ａが、ＲＯＭ５内に予め設定されているものとする。
【０１２３】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、５つの通信方式、即ち、「方式Ａ（識別子：０１ｈ）」，「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，「方式Ｄ（識別子：０４ｈ）」，及び「方式Ｅ（識別子：０５ｈ）」がサポートされているものとする。
【０１２４】
また、同図（ｂ）に示すように、本方法例においては、ＩＣカードαがリーダライタから受信したコマンドの内容を暗号化する際に適用される暗号方式の種類が「暗号化無し」である場合の通信方式の選択優先順位を、「方式Ｂ」→「方式Ｃ」→「方式Ｄ」（即ち、数値「３」→「２」→「１」）の順とし、その種類が「暗号方式１」である場合の選択優先順位を「方式Ｄ」→「方式Ｃ」→「方式Ｂ」の順とし、さらに、その種類が「暗号方式２」である場合の選択優先順位を「方式Ｄ」→「方式Ｂ」→「方式Ｃ」の順とした通信方式選択優先順位テーブル５３ａが、同ＲＯＭ５内に予め設定されているものとする。
【０１２５】
次に、図１４（ａ）〜（ｆ）は、それぞれ、本発明の第２方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル（２種）及び鍵属性形式テーブル（２種）の各例を示す図である。
【０１２６】
同図に示すように、本方法例においては、ファイルＩＤとして「０００１ｈ」（ＩＤ＝１）を付与されたファイルｆ１ａと、同ファイルＩＤとして「０００２ｈ」（ＩＤ＝２）を付与されたファイルｆ１ｂと、鍵ＩＤとして「０００３ｈ」（ＩＤ＝３）を付与された鍵ｋ１ａと、同鍵ＩＤとして「０００４ｈ」（ＩＤ＝４）を付与された鍵ｋ１ｂが、ルートディレクトリｄ１（ディレクトリＩＤ：「００００ｈ」）の直下に保持され、同状態のファイル構造がＮＶＲＡＭ７内に設定されているものとする（同図（ａ）及び（ｂ）にそれぞれ示すファイル構造及びディレクトリ属性形式テーブル７１ａを参照）。
【０１２７】
ここで、ＩＤ＝１のファイルｆ１ａは、そのデータサイズが１０２４バイトであって、読み書きとも認証なしで行え、かつ、読み書きとも暗号化が不要（即ち、「平文」）であるものとし（同図（ｃ）に示すファイル属性形式テーブル７４ａを参照）、また、ＩＤ＝２のファイルｆ１ｂは、データサイズが２０４８バイトであって、読出しは認証なしで行えるが書込みについては認証を要し、かつ、読み書きとも「暗号方式１（識別子：０１ｈ）」による暗号化が必要であるものとする（同図（ｄ）に示すファイル属性形式テーブル７４ｂを参照）。
【０１２８】
さらに、ＩＤ＝３の鍵ｋ１ａは、その種類が書込コマンド用のものであって、鍵長が１６バイトの鍵の内容を保持しているものとし（同図（ｅ）に示す鍵属性形式テーブル７３ａを参照）、また、ＩＤ＝４の鍵ｋ１ｂは、種類が「暗号方式１」通信用のものであって、鍵長が１６バイトの鍵の内容を保持しているものとする（同図（ｆ）に示す鍵属性形式テーブル７５ａを参照）。
【０１２９】
以上の前提において、本発明の第２方法例に適用されるＩＣカードαは、以下に示す一連の通信方式切換処理を実行する。
【０１３０】
まず、ＩＣカードαは、所要の通信方式切換処理に際し、第１方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，及び「方式Ｄ（識別子：０４ｈ）」である旨を認識し、ＲＡＭ６内における相互利用可能通信方式リスト６２に、上記各通信方式を各通信方式番号「１」，「２」，及び「３」にそれぞれ割り当てて設定すると共に、同ＲＡＭ６内におけるセキュリティ状態テーブル６１の値に初期値の「００００ｈ」を設定し、さらに、リーダライタとの間の通信方式を「方式Ｂ」に仮設定する。
【０１３１】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ＩＤ＝２のファイルｆ１ｂに関してアドレス００００ｈから１５００バイトのデータを書き込むために、ＩＣカードαに対し「書込コマンド」を送信しようとする場合、同リーダライタは、上記ファイルｆ１ｂに対するデータの書込み時に認証処理が必要であり、かつ、同ファイルｆ１ｂに対するデータの読出し時及び書込み時に暗号化処理が必要であることを通信プログラム上で認識する。
【０１３２】
そして、リーダライタは、書込コマンド９３ａの送信に先立ち、まず、自ら生成した乱数データと、自身が保持している書込コマンド用の鍵の内容で上記乱数データを暗号化して得た暗号化データとを含む「認証コマンド」をＩＣカードαに送信して、ＩＤ＝２のファイルｆ１ｂに関する認証処理を行う。
【０１３３】
この認証処理に伴い、ＩＣカードαは、まず、受信したコマンドの種類が認証コマンド９５ａであることを確認し、さらに、その認証コマンド９５ａから得た乱数データを、同認証コマンド９５ａ内の鍵ＩＤにより示される鍵属性形式テーブル７３ａ内の書込コマンド用の鍵の内容で暗号化することにより、この暗号化により生成した暗号化データと認証コマンド９５ａから得た暗号化データとを比較する。
【０１３４】
次に、ＩＣカードαは、自ら生成した暗号化データと認証コマンド９５ａから得た暗号化データとが一致した場合は、ＲＡＭ６内におけるセキュリティ状態テーブル６１に設定される書込コマンド９３ａの状態を、未（００ｈ）から済（０１ｈ）に変更して（セキュリティ状態テーブル６１の値を初期値の「００００ｈ」から「０００１ｈ」に変更して）、リーダライタに正常終了のレスポンスを返す（暗号化データが一致せずに認証が失敗した場合には、異常終了のレスポンスを返す）。
【０１３５】
これに対し、リーダライタは、ＩＣカードαから正常終了のレスポンスを受け取ると、所要の書込コマンド９３ａの内容（ファイルＩＤ〜書込データ内容の連続データ）を、「暗号方式１」通信用の鍵の内容で暗号化すると共に、当該書込コマンド９３ａの上記内容が「暗号方式１」により暗号化されていることを示す識別子「０１ｈ」を暗号方式の項目に設定し、この暗号化後の書込コマンド９３ａをＩＣカードαに送信する。
【０１３６】
そして、ＩＣカードαは、まず、受信したコマンドの種類が書込コマンド９３ａであることを確認し、さらに、ＲＡＭ６内におけるセキュリティ状態テーブル６１に設定された書込コマンド９３ａの状態が、済（０１ｈ）であることを確認する。
【０１３７】
次に、ＩＣカードαは、受信した暗号化後の書込コマンド９３ａの内容（ファイルＩＤ〜書込データ内容の連続データ）を鍵属性形式テーブル７５ａ内の「暗号方式１」通信用の鍵の内容で復号化することにより、その書込コマンド９３ａ全体を復元し、以下、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａ及び通信方式選択優先順位テーブル５３ａ、並びにＲＡＭ６内における相互利用可能通信方式リスト６２を参照することにより、復元した書込コマンド９３ａを実行するのに最適な通信方式として、識別子「０４ｈ」により示される「方式Ｄ」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【０１３８】
次に、ＩＣカードαは、選択した「方式Ｄ」の通信方式が現在の「方式Ｂ」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式Ｄ」の通信方式識別子「０４ｈ」を内容に含んだ通信方式切換メッセージ９８（図６（ａ）参照）をリーダライタに送信し、その後、自己の通信方式を「方式Ｄ」に切り換える処理を行って、同リーダライタからの再送要求メッセージ９９（図６（ｂ）参照）を待つ。
【０１３９】
これに対し、リーダライタは、ＩＣカードαから通信方式切換メッセージ９８を受信すると、その通信方式切換メッセージ９８により通知された「方式Ｄ（識別子：０４ｈ）」の通信方式が利用可能なものである（「方式Ａ」〜「方式Ｅ」に含まれている）ことを認識し、自己の通信方式を現在の「方式Ｂ」から「方式Ｄ」に切り換える処理を行って、所要の再送要求メッセージ９９をＩＣカードαに送信する。
【０１４０】
次に、ＩＣカードαは、リーダライタから再送要求メッセージ９９を受信すると、先に受信した書込コマンド９３ａを実際に実行し、そのレスポンスをリーダライタへ送信する。
【０１４１】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ９９を受信できなかった場合、ＩＣカードαは、所定の時間待機した後に、ＲＡＭ６内における相互利用可能通信方式リスト６２から「方式Ｄ」の通信方式の項目を削除して、通信方式を元の「方式Ｂ」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【０１４２】
そして、リーダライタは、ＩＣカードαから所要の書込コマンドレスポンス９４ａを受信し、以下、ＩＣカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【０１４３】
次に、図１５は、本発明の第２方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【０１４４】
同図に示すように、ＩＣカードα内のＣＰＵ４は、通信方式選択処理の実行に際し、まず、ＲＯＭ５内の通信方式選択優先順位テーブル５３ａを参照することにより、通信方式の選択優先順位の最大値を得るための変数ｐｍａｘに、暗号方式番号ｌ（暗号方式１：ｌ＝１）に関して１番目に設定された通信方式である「方式Ｂ」の選択優先順位ｘｌ１（ｘ１１＝１）を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数ｃｍａｘに、上記１番目の通信方式番号「１」を代入し、さらに、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、２番目の通信方式番号「２」を代入する（ＳＴ２１）。
【０１４５】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝２，ｄ２＝０３ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する（ＳＴ２２）。
【０１４６】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５３ａを参照することにより、暗号方式番号ｌの値が「１」で通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘｌｉ（ｘ１２＝２）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが（ＳＴ２３）、取得した選択優先順位ｘ１２は現在の変数ｐｍａｘの値「１」よりも大きいため（ＳＴ２３；＞）、その変数ｐｍａｘに同選択優先順位ｘ１２（＝２）を代入すると共に、前述したＳＴ２２の処理で得た２番目の通信方式番号「２」を上記変数ｃｍａｘに代入する（ＳＴ２４）。
【０１４７】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ２５）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ２５；＜）、その変数ｊをインクリメントして「３」とし（ＳＴ２６）、さらに、前述したＳＴ２２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０１４８】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ２３の処理において、暗号方式番号ｌの値が「１」で通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘｌｉ（ｘ１３＝３）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが、取得した選択優先順位ｘ１３は現在の変数ｐｍａｘの値「２」よりも大きいため、前述したＳＴ２４の処理において、その変数ｐｍａｘに同選択優先順位ｘ１３（＝３）を代入すると共に、前述したＳＴ２２の処理で得た３番目の通信方式番号に関する変数ｉの値「３」を上記変数ｃｍａｘに代入する。
【０１４９】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ２５の処理において、現在の変数ｊの値（通信方式番号：ｊ＝３）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、この比較の結果、変数ｊの値が通信方式番号最大値ＤＭＡＸに至って「ｊ＝ＤＭＡＸ」となったため（ＳＴ２５；≧）、ＩＣカードα内のＣＰＵ４は、このときの変数ｃｍａｘの値により示される３番目の通信方式番号の値「３」を変数Ｉｎｔｆに代入する（ＳＴ２７）。
【０１５０】
そして最後に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａを参照することにより、上記変数Ｉｎｔｆの値により示される３番目の通信方式番号の値「３」から、これに対応する「方式Ｄ」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「０４ｈ」を、前述した通信方式切換処理へと受け渡す。
【０１５１】
（第３装置例）
続いて、複数の通信方式の切換えが受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行われるよう構成された、本発明の第３装置例に係るＩＣカードαについて説明する。
【０１５２】
図１６（ａ）〜（ｃ）は、それぞれ、本発明の第３装置例に係る構成を得るため図１に示したＲＯＭ５に設定される通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルを示す図である。
【０１５３】
まず、同図（ａ）に示すように、本ＩＣカードαのＲＯＭ５内における通信方式選択優先順位テーブル５４には、リーダライタから送信される各種コマンド（受信コマンド）の種類により特定される送受対象データのアクセスサイズの分類毎（「サイズ分類１」，「サイズ分類２」，…，「サイズ分類ｔ」（ｔ：サイズ分類の最大存在数）．ｍ：アクセスサイズ分類番号）に、前述のＩＣカードサポート通信方式リスト５１に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される（選択優先順位を示す数値は、図示の「サイズ分類１」（ｍ＝１）の場合、ｘ１１，ｘ１２，…，ｘ１ＣＭＡＸの部分に割り当てられる。他のサイズ分類についても同じ）。
【０１５４】
なお、ここにいう送受対象データとは、例えば、第１装置例で説明した読出コマンドレスポンス９２中に含まれる読出データ内容や、書込コマンド９３中に含まれる書込データ内容、或いは認証コマンド９５中に含まれる乱数データ及び暗号化データなど、リーダライタと本ＩＣカードαとの間で送受されるデータ全般を指す（以下、第１装置例で説明した各コマンド（レスポンス）９１〜９６の適用を前提とする）。
【０１５５】
一方、同図（ｂ）に示すように、ＲＯＭ５内におけるアクセスサイズ閾値分類テーブル５５には、上記送受対象データのアクセスサイズに関する各サイズ分類毎の複数のサイズ閾値（ｇ１，ｇ２，…，ｇｔ−１，−）が、それぞれ範囲（０〜ｇ１，ｇ１＋１〜ｇ２，…，ｇｔ−２＋１〜ｇｔ−１，ｇｔ−１＋１〜）を指定して１バイトデータの数値（バイト）により設定される。
【０１５６】
さらに、同図（ｃ）に示すように、ＲＯＭ５内におけるアクセスサイズ検査対象コマンドテーブル５６には、受信コマンドの種類毎（「コマンド１」，「コマンド２」，…，「コマンドｒ」）に、同受信コマンドの種類により特定される送受対象データが含まれるコマンド又はコマンドレスポンスを示す１バイトデータ（００ｈ：コマンド，０１ｈ：レスポンス）が定義される。
【０１５７】
以上の構成を採用することにより、この第３装置例に係るＩＣカードαには、第１装置例における種々の機能（▲２▼を除く）の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの種類により特定される送受対象データのアクセスサイズに応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【０１５８】
（第３方法例）
続いて、以上のように構成された第３装置例により実施されるＩＣカード通信方式切換方法の具体例を説明する。
【０１５９】
図１７（ａ）〜（ｄ）は、それぞれ、本発明の第３方法例に適用されるＩＣカードサポート通信方式リスト、通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルの各例を示す図である。
【０１６０】
同図（ａ）に示すように、本方法例では、第１及び第２方法例におけるそれと同様、ＩＣカードαにおいて利用可能な複数の通信方式として、３つの通信方式、即ち、識別子「０２ｈ」により示される「方式Ｂ」，識別子「０３ｈ」により示される「方式Ｃ」，識別子「０４ｈ」により示される「方式Ｄ」がサポートされ、これら３つの通信方式が、その出現順に各通信方式番号「１」，「２」，及び「３」に割り当てられてなるＩＣカードサポート通信方式リスト５１ａが、ＲＯＭ５内に予め設定されているものとする。
【０１６１】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、５つの通信方式、即ち、「方式Ａ（識別子：０１ｈ）」，「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，「方式Ｄ（識別子：０４ｈ）」，及び「方式Ｅ（識別子：０５ｈ）」がサポートされているものとする。
【０１６２】
また、同図（ｂ）に示すように、本方法例においては、ＩＣカードαがリーダライタから受信したコマンドの種類により特定される送受対象データのアクセスサイズの分類が「サイズ分類１」である場合の通信方式の選択優先順位を、「方式Ｄ」→「方式Ｃ」→「方式Ｂ」（即ち、数値「３」→「２」→「１」）の順とし、その分類が「サイズ分類２」である場合の選択優先順位を「方式Ｃ」→「方式Ｂ」→「方式Ｄ」の順とし、さらに、その分類が「サイズ分類３」である場合の選択優先順位を「方式Ｂ」→「方式Ｃ」→「方式Ｄ」の順とした通信方式選択優先順位テーブル５４ａが、同ＲＯＭ５内に予め設定されているものとする。
【０１６３】
さらに、同図（ｃ）に示すように、本方法例では、送受対象データのアクセスサイズに関する複数のサイズ閾値を３つに分類するものとし、それら３つの「サイズ分類１」，「サイズ分類２」，及び「サイズ分類３」に関するサイズ閾値（及び範囲）を、それぞれ「１２８バイト（０〜１２８バイト）」，「２５６バイト（１２９〜２５６バイト）」，及び「−（２５７バイト〜）」に設定してなるアクセスサイズ閾値分類テーブル５５ａが、同ＲＯＭ５内に予め設定されているものとする。
【０１６４】
そして、同図（ｄ）に示すように、本方法例におけるＲＯＭ５内のアクセスサイズ検査対象コマンドテーブル５６ａには、例えば、受信コマンドがコマンド番号「１」の読出コマンド９１である場合、送受対象データをなす読出データ内容が含まれるのは、対応する読出コマンドレスポンス９２であるため、該当項目には、そのコマンドレスポンスを示す「０１ｈ」なる１バイトデータが定義され、また、受信コマンドがコマンド番号「３」の書込コマンド９３である場合、送受対象データをなす書込データ内容が含まれるのは、同書込コマンド９３自身であるため、該当項目には、そのコマンドを示す「００ｈ」なる１バイトデータが定義される（コマンド番号「７」の認証コマンド９５についても同様）。
【０１６５】
なお、本方法例においては、第１方法例に適用したファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル及び鍵属性形式テーブル（図８参照）がそのまま適用されるものとする。
【０１６６】
以上の前提において、本発明の第３方法例に適用されるＩＣカードαは、以下に示す一連の通信方式切換処理を実行する。
【０１６７】
まず、ＩＣカードαは、所要の通信方式切換処理に際し、第１及び第２方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，及び「方式Ｄ（識別子：０４ｈ）」である旨を認識し、ＲＡＭ６内における相互利用可能通信方式リスト６２に、上記各通信方式を各通信方式番号「１」，「２」，及び「３」にそれぞれ割り当てて設定すると共に、同ＲＡＭ６内におけるセキュリティ状態テーブル６１の値に初期値の「００００ｈ」を設定し、さらに、リーダライタとの間の通信方式を「方式Ｂ」に仮設定する。
【０１６８】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ＩＤ＝１のファイルｆ１ａに関してアドレス００００ｈから２５０バイトのデータを読み出すために、ＩＣカードαに対し「読出コマンド」を送信した場合、当該ＩＣカードαは、まず、受信したコマンドの種類が読出コマンド９１であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル７２ａの読出コマンド９１に関するセキュリティ属性が「不要（００ｈ）」であることを確認する（従って、上記鍵ｋ１ａに関する鍵の内容は使用されない）。
【０１６９】
次に、ＩＣカードαは、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａ、通信方式選択優先順位テーブル５４ａ、アクセスサイズ閾値分類テーブル５５ａ、及びアクセスサイズ検査対象コマンドテーブル５６ａ、並びにＲＡＭ６内における相互利用可能通信方式リスト６２を参照することにより、受信した読出コマンド９１を実行するのに最適な通信方式として、識別子「０３ｈ」により示される「方式Ｃ」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【０１７０】
次に、ＩＣカードαは、選択した「方式Ｃ」の通信方式が現在の「方式Ｂ」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式Ｃ」の通信方式識別子「０３ｈ」を内容に含んだ通信方式切換メッセージ９８をリーダライタに送信し、その後、自己の通信方式を「方式Ｃ」に切り換える処理を行って、同リーダライタからの再送要求メッセージ９９を待つ。
【０１７１】
これに対し、リーダライタは、ＩＣカードαから通信方式切換メッセージ９８を受信すると、その通信方式切換メッセージ９８により通知された「方式Ｃ（識別子：０３ｈ）」の通信方式が利用可能なものである（「方式Ａ」〜「方式Ｅ」に含まれている）ことを認識し、自己の通信方式を現在の「方式Ｂ」から「方式Ｃ」に切り換える処理を行って、所要の再送要求メッセージ９９をＩＣカードαに送信する。
【０１７２】
次に、ＩＣカードαは、リーダライタから再送要求メッセージ９９を受信すると、先に受信した読出コマンド９１を実際に実行し、そのレスポンス（データの内容「０１０２０３０４０５０６０７…」）をリーダライタへ送信する。
【０１７３】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ９９を受信できなかった場合、ＩＣカードαは、所定の時間待機した後に、ＲＡＭ６内における相互利用可能通信方式リスト６２から「方式Ｃ」の通信方式の項目を削除して、通信方式を元の「方式Ｂ」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【０１７４】
そして、リーダライタは、ＩＣカードαから所要の読出コマンドレスポンス９２を受信し、以下、ＩＣカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【０１７５】
次に、図１８は、本発明の第３方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【０１７６】
同図に示すように、ＩＣカードα内のＣＰＵ４は、通信方式選択処理の実行に際し、まず、ＲＯＭ５内のアクセスサイズ閾値分類テーブル５５ａ及びアクセスサイズ検査対象コマンドテーブル５６ａを参照することにより、アクセスサイズ分類処理を実行し（ＳＴ３１）、送受対象データのアクセスサイズ（２５０バイト）が「サイズ分類２」に含まれることを認識する。なお、このアクセスサイズ分類処理の詳細については後述する。
【０１７７】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５４ａを参照することにより、通信方式の選択優先順位の最大値を得るための変数ｐｍａｘに、アクセスサイズ分類番号ｍ（サイズ分類２：ｍ＝２）に関して１番目に設定された通信方式である「方式Ｂ」の選択優先順位ｘｍ１（ｘ２１＝２）を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数ｃｍａｘに、上記１番目の通信方式番号「１」を代入し、さらに、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、２番目の通信方式番号「２」を代入する（ＳＴ３２）。
【０１７８】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝２，ｄ２＝０３ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する（ＳＴ３３）。
【０１７９】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５４ａを参照することにより、アクセスサイズ分類番号ｍの値が「２」で通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘｍｉ（ｘ２２＝３）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが（ＳＴ３４）、取得した選択優先順位ｘ２２は現在の変数ｐｍａｘの値「２」よりも大きいため（ＳＴ３４；＞）、その変数ｐｍａｘに同選択優先順位ｘ２２（＝３）を代入すると共に、前述したＳＴ３３の処理で得た２番目の通信方式番号に関する変数ｉの値「２」を上記変数ｃｍａｘに代入する（ＳＴ３５）。
【０１８０】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ３６）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ３６；＜）、その変数ｊをインクリメントして「３」とし（ＳＴ３７）、さらに、前述したＳＴ３３の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０１８１】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ３４の処理において、アクセスサイズ分類番号ｍの値が「２」で通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘｍｉ（ｘ２３＝１）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが、取得した選択優先順位ｘ２３は現在の変数ｐｍａｘの値「３」よりも小さいため（ＳＴ３４；≦）、同変数ｐｍａｘ及び上記変数ｃｍａｘの書換えを行うことなく、前述したＳＴ３６の処理において、現在の変数ｊの値（通信方式番号：ｊ＝３）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較する。
【０１８２】
そして、以上の比較の結果、変数ｊの値が通信方式番号最大値ＤＭＡＸに至って「ｊ＝ＤＭＡＸ」となったため（ＳＴ３６；≧）、ＩＣカードα内のＣＰＵ４は、このときの変数ｃｍａｘの値により示される２番目の通信方式番号の値「２」を変数Ｉｎｔｆに代入する（ＳＴ３８）。
【０１８３】
そして最後に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａを参照することにより、上記変数Ｉｎｔｆの値により示される２番目の通信方式番号の値「２」から、これに対応する「方式Ｃ」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「０３ｈ」を、前述した通信方式切換処理へと受け渡す。
【０１８４】
次に、図１９は、図１８に示した通信方式選択処理の過程で実行されるアクセスサイズ分類処理ＳＴ３１を説明するためのフローチャートである。
【０１８５】
同図に示すように、ＩＣカードα内のＣＰＵ４は、アクセスサイズ分類処理の実行に際し、まず、所要のアクセスサイズ分類番号ｍを得るための変数ｊに「１」を代入すると共に、アクセスサイズ閾値分類テーブル５５ａを参照することにより、上記アクセスサイズ分類番号ｍにアクセスサイズ分類の最大値を示す定数ＭＡＸ＿ＲＬを代入する（ＳＴ３１１）。ここで、上記定数ＭＡＸ＿ＲＬの値は、アクセスサイズ閾値分類テーブル５５ａから明らかなように「３」である。
【０１８６】
次に、ＩＣカードα内のＣＰＵ４は、同ＩＣカードαが今回受信した読出コマンド９１から目的の送受対象データを特定するために、まず、ＲＯＭ５内のアクセスサイズ検査対象コマンドテーブル５６ａを参照することにより、その送受対象データが読出コマンドレスポンス９２に含まれ（０１ｈ：レスポンス）、当該送受対象データが、同読出コマンドレスポンス９２中の読出データ内容であることを認識すると共に、その読出データ内容の読出データ長が２５０バイトであることを認識する。
【０１８７】
そして、ＩＣカードα内のＣＰＵ４は、その認識した２５０バイトの読出データ長を、アクセスサイズ（データ長）を示す引数Ｌとして設定すると共に、アクセスサイズ閾値分類テーブル５５ａを再び参照することにより、ｊ番目のサイズ閾値ＲＬｊ（ｊ＝１，ＲＬ１＝１２８バイト）を取得する。
【０１８８】
次に、ＩＣカードα内のＣＰＵ４は、以上のようにして得た引数Ｌの値（２５０バイト）とサイズ閾値ＲＬｊの値（ｊ＝１，ＲＬ１＝１２８バイト）とを比較するが（ＳＴ３１２）、引数Ｌの値は現在のサイズ閾値ＲＬ１よりも大きいため（ＳＴ３１２；＞）、さらに、現在の変数ｊの値（ｊ＝１）と定数ＭＡＸ＿ＲＬの値（ＭＡＸ＿ＲＬ＝３）とを比較する（ＳＴ３１３）。
【０１８９】
次に、ＩＣカードα内のＣＰＵ４は、以上の比較の結果、変数ｊの値が定数ＭＡＸ＿ＲＬの値よりも小さいため（ＳＴ３１３；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ３１４）、再びＳＴ３１２の処理において、引数Ｌの値（２５０バイト）とサイズ閾値ＲＬｊの値（ｊ＝２，ＲＬ２＝２５６バイト）とを比較する。
【０１９０】
そして、以上の比較の結果、引数Ｌの値がサイズ閾値ＲＬｊの値よりも大きくなったため（ＳＴ３１２；≦）、ＩＣカードα内のＣＰＵ４は、このときの変数ｊの値「２」をアクセスサイズ分類番号ｍに代入して（ＳＴ３１５）、求める送受対象データのアクセスサイズが「サイズ分類２」に含まれることを認識する。
【０１９１】
（第４装置例）
続いて、複数の通信方式の切換えが受信コマンドの搬送時に得られる駆動電力の大きさに応じて行われるよう構成された、本発明の第４装置例に係るＩＣカードαについて説明する。
【０１９２】
なお、上記駆動電力とは、ＩＣカードαを非接触型として機能させた場合に、同ＩＣカードαがリーダライタの有効電磁界内に進入したときにアンテナ２に生じる誘導起電力から得られる受信電力（ＲＦ部８による検出）を意味すると同時に、当該ＩＣカードαを接触型として機能させた場合に、同ＩＣカードαがリーダライタにセットされたときに当該リーダライタから金属端子面３を通じて与えられる供給電力（インタフェース部による検出）をも意味する。
【０１９３】
ここでは、上記２種類の駆動電力のうち、ＩＣカードαを非接触型として機能させた場合の受信電力の大きさに応じて通信方式の切換えを行うための構成及び動作を中心に説明し、同ＩＣカードαを接触型として機能させた場合の供給電力の大きさに応じて通信方式の切換えを行うための構成及び動作については、前者との重複を避けるため、専ら付加的な説明にとどめるものとする。
【０１９４】
図２０（ａ）及び（ｂ）は、それぞれ、本発明の第４装置例に係る構成を得るため図１に示したＲＯＭ５に設定される通信方式選択優先順位テーブル及び受信電力閾値分類テーブルを示す図である。
【０１９５】
まず、同図（ａ）に示すように、本ＩＣカードαのＲＯＭ５内における通信方式選択優先順位テーブル５７には、リーダライタから送信される各種コマンド（受信コマンド）の搬送時に得られる受信電力の大きさの分類毎（「電力分類１」，「電力分類２」，…，「電力分類ｕ」（ｕ：電力分類の最大存在数）．ｎ：受信電力分類番号）に、前述のＩＣカードサポート通信方式リスト５１に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される（選択優先順位を示す数値は、図示の「電力分類１」（ｎ＝１）の場合、ｘ１１，ｘ１２，…，ｘ１ＣＭＡＸの部分に割り当てられる。他の電力分類についても同じ）。
【０１９６】
ここで、本ＩＣカードαを接触型として機能させる場合には、上記受信電力の大きさの分類に代えて、各種コマンドの搬送時に与えられる供給電力の大きさの分類毎に各通信方式の選択優先順位を設定してなる通信方式選択優先順位テーブル（図示せず）を、採用すればよい。
【０１９７】
一方、同図（ｂ）に示すように、ＲＯＭ５内における受信電力閾値分類テーブル５８には、上記受信電力に関する各電力分類毎の複数の受信電力閾値（ｈ１，ｈ２，…，ｈｕ−１，−）が、それぞれ範囲（０〜ｈ１，ｈ１＋〜ｈ２，…，ｈｕ−２＋〜ｈｕ−１，ｈｕ−１＋〜）を指定して１バイトデータの数値（ｍＷ：ミリワット）により設定される（範囲の下限値に付される符号「＋」は、その下限値自身を含まないことを表し、例えば、「ｈ１＋〜ｈ２」は、「ｈ１を超えｈ２以下」であることを意味する。以下同じ）。
【０１９８】
ここで、本ＩＣカードαを接触型として機能させる場合には、上記受信電力に関する受信電力閾値に代えて、各種コマンドの搬送時に与えられる供給電力に関する複数の供給電力閾値（上限値）を各分類毎に設定してなる供給電力閾値分類テーブル（図示せず）を、採用すればよい。
【０１９９】
以上の構成を採用することにより、この第４装置例に係るＩＣカードαには、第１装置例における種々の機能（▲２▼を除く）の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの搬送時に得られる受信電力（又は供給電力）の大きさに応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【０２００】
（第４方法例）
続いて、以上のように構成された第４装置例により実施されるＩＣカード通信方式切換方法の具体例を説明する。
【０２０１】
図２１（ａ）〜（ｃ）は、それぞれ、本発明の第４方法例に適用されるＩＣカードサポート通信方式リスト、通信方式選択優先順位テーブル、及び受信電力閾値分類テーブルの各例を示す図である。
【０２０２】
同図（ａ）に示すように、本方法例では、第１〜第３方法例におけるそれと同様、ＩＣカードαにおいて利用可能な複数の通信方式として、３つの通信方式、即ち、識別子「０２ｈ」により示される「方式Ｂ」，識別子「０３ｈ」により示される「方式Ｃ」，識別子「０４ｈ」により示される「方式Ｄ」がサポートされ、これら３つの通信方式が、その出現順に各通信方式番号「１」，「２」，及び「３」に割り当てられてなるＩＣカードサポート通信方式リスト５１ａが、ＲＯＭ５内に予め設定されているものとする。
【０２０３】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、５つの通信方式、即ち、「方式Ａ（識別子：０１ｈ）」，「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，「方式Ｄ（識別子：０４ｈ）」，及び「方式Ｅ（識別子：０５ｈ）」がサポートされているものとする。
【０２０４】
また、同図（ｂ）に示すように、本方法例においては、ＩＣカードαがリーダライタから受信したコマンドの搬送時に得られる受信電力の分類が「電力分類１」である場合の通信方式の選択優先順位を、「方式Ｄ」→「方式Ｃ」→「方式Ｂ」（即ち、数値「３」→「２」→「１」）の順とし、その分類が「電力分類２」である場合の選択優先順位を「方式Ｃ」→「方式Ｂ」→「方式Ｄ」の順とし、さらに、その分類が「電力分類３」である場合の選択優先順位を「方式Ｂ」→「方式Ｃ」→「方式Ｄ」の順とした通信方式選択優先順位テーブル５４ａが、同ＲＯＭ５内に予め設定されているものとする（供給電力により分類を行う場合においても同様に設定される）。
【０２０５】
さらに、同図（ｃ）に示すように、本方法例では、受信電力に関する複数の受信電力閾値を３つに分類するものとし、それら３つの「電力分類１」，「電力分類２」，及び「電力分類３」に関する受信電力閾値（及び範囲）を、それぞれ「４ｍＷ（０〜４ｍＷ）」，「８ｍＷ（４＋〜８ｍＷ）」，及び「−（８＋ｍＷ〜）」に設定してなる受信電力閾値分類テーブル５８ａが、同ＲＯＭ５内に予め設定されているものとする（供給電力により分類を行う場合においても同様に設定される）。
【０２０６】
なお、本方法例においては、第１方法例に適用したファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル及び鍵属性形式テーブル（図８参照）がそのまま適用されるものとする。
【０２０７】
以上の前提において、本発明の第４方法例に適用されるＩＣカードαは、以下に示す一連の通信方式切換処理を実行する。
【０２０８】
まず、ＩＣカードαは、所要の通信方式切換処理に際し、第１〜第３方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，及び「方式Ｄ（識別子：０４ｈ）」である旨を認識し、ＲＡＭ６内における相互利用可能通信方式リスト６２に、上記各通信方式を各通信方式番号「１」，「２」，及び「３」にそれぞれ割り当てて設定すると共に、同ＲＡＭ６内におけるセキュリティ状態テーブル６１の値に初期値の「００００ｈ」を設定し、さらに、リーダライタとの間の通信方式を「方式Ｂ」に仮設定する。
【０２０９】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ＩＤ＝１のファイルｆ１ａに関してアドレス００００ｈから１５００バイトのデータを読み出すために、ＩＣカードαに対し「読出コマンド」を送信した場合、当該ＩＣカードαは、まず、受信したコマンドの搬送時、即ち、同ＩＣカードαがリーダライタの有効電磁界内に進入したときにアンテナ２に誘起する誘導起電力から得られる受信電力をＲＦ部８において検出し、その検出した受信電力の値を、アナログ・デジタル変換を行うなどして任意の一時記憶手段（ＲＡＭ６やＮＶＲＡＭ７など）に保持する。ここでは、ＲＦ部８において検出され一時記憶手段に保持された受信電力の値が「５ｍＷ」であったと想定する。
【０２１０】
これに対し、本ＩＣカードαを接触型として機能させる場合には、受信したコマンドの搬送時、即ち、同ＩＣカードαがリーダライタにセットされたときに金属端子面３を通じて得られる供給電力をインタフェース部において検出し、その検出した供給電力の値を、アナログ・デジタル変換を行うなどして任意の一時記憶手段（ＲＡＭ６やＮＶＲＡＭ７など）に保持する。
【０２１１】
次に、ＩＣカードαは、受信電力（又は供給電力）を保持すると、受信したコマンドの種類が読出コマンド９１であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル７２ａの読出コマンド９１に関するセキュリティ属性が「不要（００ｈ）」であることを確認する（従って、上記鍵ｋ１ａに関する鍵の内容は使用されない）。
【０２１２】
次に、ＩＣカードαは、ＲＯＭ５内におけるＩＣカードサポート通信方式リスト５１ａ、通信方式選択優先順位テーブル５７ａ、及び受信電力閾値分類テーブル５８ａ（供給電力閾値分類テーブル）、並びにＲＡＭ６内における相互利用可能通信方式リスト６２を参照することにより、受信した読出コマンド９１を実行するのに最適な通信方式として、識別子「０３ｈ」により示される「方式Ｃ」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【０２１３】
次に、ＩＣカードαは、選択した「方式Ｃ」の通信方式が現在の「方式Ｂ」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式Ｃ」の通信方式識別子「０３ｈ」を内容に含んだ通信方式切換メッセージ９８をリーダライタに送信し、その後、自己の通信方式を「方式Ｃ」に切り換える処理を行って、同リーダライタからの再送要求メッセージ９９を待つ。
【０２１４】
これに対し、リーダライタは、ＩＣカードαから通信方式切換メッセージ９８を受信すると、その通信方式切換メッセージ９８により通知された「方式Ｃ（識別子：０３ｈ）」の通信方式が利用可能なものである（「方式Ａ」〜「方式Ｅ」に含まれている）ことを認識し、自己の通信方式を現在の「方式Ｂ」から「方式Ｃ」に切り換える処理を行って、所要の再送要求メッセージ９９をＩＣカードαに送信する。
【０２１５】
次に、ＩＣカードαは、リーダライタから再送要求メッセージ９９を受信すると、先に受信した読出コマンド９１を実際に実行し、そのレスポンス（データの内容「０１０２０３０４０５０６０７…」）をリーダライタへ送信する。
【０２１６】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ９９を受信できなかった場合、ＩＣカードαは、所定の時間待機した後に、ＲＡＭ６内における相互利用可能通信方式リスト６２から「方式Ｃ」の通信方式の項目を削除して、通信方式を元の「方式Ｂ」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【０２１７】
そして、リーダライタは、ＩＣカードαから所要の読出コマンドレスポンス９２を受信し、以下、ＩＣカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【０２１８】
次に、図２２は、本発明の第４方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである（以下、ＩＣカードαを非接触型として機能させる場合に説明を限定する）。
【０２１９】
同図に示すように、ＩＣカードα内のＣＰＵ４は、通信方式選択処理の実行に際し、まず、ＲＯＭ５内の受信電力閾値分類テーブル５８ａを参照することにより、受信電力分類処理を実行し（ＳＴ４１）、受信電力の大きさ（５ｍＷ）が「電力分類２」に含まれることを認識する。なお、この受信電力分類処理の詳細については後述する。
【０２２０】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５７ａを参照することにより、通信方式の選択優先順位の最大値を得るための変数ｐｍａｘに、受信電力分類番号ｎ（電力分類２：ｎ＝２）に関して１番目に設定された通信方式である「方式Ｂ」の選択優先順位ｘｎ１（ｘ２１＝２）を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数ｃｍａｘに、上記１番目の通信方式番号「１」を代入し、さらに、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、２番目の通信方式番号「２」を代入する（ＳＴ４２）。
【０２２１】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝２，ｄ２＝０３ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する（ＳＴ４３）。
【０２２２】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５７ａを参照することにより、受信電力分類番号ｎの値が「２」で通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘｎｉ（ｘ２２＝３）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが（ＳＴ４４）、取得した選択優先順位ｘ２２は現在の変数ｐｍａｘの値「２」よりも大きいため（ＳＴ４４；＞）、その変数ｐｍａｘに同選択優先順位ｘ２２（＝３）を代入すると共に、前述したＳＴ４３の処理で得た２番目の通信方式番号に関する変数ｉの値「２」を上記変数ｃｍａｘに代入する（ＳＴ４５）。
【０２２３】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ４６）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ４６；＜）、その変数ｊをインクリメントして「３」とし（ＳＴ４７）、さらに、前述したＳＴ４３の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２２４】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ４４の処理において、受信電力分類番号ｎの値が「２」で通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘｎｉ（ｘ２３＝１）を取得し、この選択優先順位を上記変数ｐｍａｘの値と比較するが、取得した選択優先順位ｘ２３は現在の変数ｐｍａｘの値「３」よりも小さいため（ＳＴ４４；≦）、同変数ｐｍａｘ及び上記変数ｃｍａｘの書換えを行うことなく、前述したＳＴ４６の処理において、現在の変数ｊの値（通信方式番号：ｊ＝３）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較する。
【０２２５】
そして、以上の比較の結果、変数ｊの値が通信方式番号最大値ＤＭＡＸに至って「ｊ＝ＤＭＡＸ」となったため（ＳＴ４６；≧）、ＩＣカードα内のＣＰＵ４は、このときの変数ｃｍａｘの値により示される２番目の通信方式番号の値「２」を変数Ｉｎｔｆに代入する（ＳＴ４８）。
【０２２６】
そして最後に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａを参照することにより、上記変数Ｉｎｔｆの値により示される２番目の通信方式番号の値「２」から、これに対応する「方式Ｃ」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「０３ｈ」を、前述した通信方式切換処理へと受け渡す。
【０２２７】
次に、図２３は、図２２に示した通信方式選択処理の過程で実行される受信電力分類処理ＳＴ４１を説明するためのフローチャートである。
【０２２８】
同図に示すように、ＩＣカードα内のＣＰＵ４は、受信電力分類処理の実行に際し、まず、所要の受信電力分類番号ｎを得るために設定した変数ｊに「１」を代入すると共に、受信電力閾値分類テーブル５８ａを参照することにより、上記受信電力分類番号ｎに受信電力分類の最大値を示す定数ＭＡＸ＿ＲＰを代入する（ＳＴ４１１）。ここで、上記定数ＭＡＸ＿ＲＰの値は、受信電力閾値分類テーブル５８ａから明らかなように「３」である。
【０２２９】
次に、ＩＣカードα内のＣＰＵ４は、一時記憶手段に保持してある５ｍＷなる受信電力の値を、その受信電力を示す引数Ｐとして設定すると共に、受信電力閾値分類テーブル５８ａを再び参照することにより、ｊ番目の受信電力閾値ＲＰｊ（ｊ＝１，ＲＰ１＝４ｍＷ）を取得する。
【０２３０】
次に、ＩＣカードα内のＣＰＵ４は、以上の引数Ｐの値（５ｍＷ）と受信電力閾値ＲＰｊの値（ｊ＝１，ＲＰ１＝４ｍＷ）とを比較するが（ＳＴ４１２）、引数Ｐの値は現在の受信電力閾値ＲＰ１よりも大きいため（ＳＴ４１２；＞）、さらに、現在の変数ｊの値（ｊ＝１）と定数ＭＡＸ＿ＲＰの値（ＭＡＸ＿ＲＰ＝３）とを比較する（ＳＴ４１３）。
【０２３１】
次に、ＩＣカードα内のＣＰＵ４は、以上の比較の結果、変数ｊの値が定数ＭＡＸ＿ＲＰの値よりも小さいため（ＳＴ４１３；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ４１４）、再びＳＴ４１２の処理において、引数Ｐの値（５ｍＷ）と受信電力閾値ＲＰｊの値（ｊ＝２，ＲＰ２＝８ｍＷ）とを比較する。
【０２３２】
そして、以上の比較の結果、引数Ｐの値が受信電力閾値ＲＰｊの値よりも大きくなったため（ＳＴ４１２；≦）、ＩＣカードα内のＣＰＵ４は、このときの変数ｊの値「２」を受信電力分類番号ｎに代入して（ＳＴ４１５）、求める受信電力の大きさが「電力分類２」に含まれることを認識する。
【０２３３】
（第５装置例）
最後に、複数の通信方式の切換えが第１〜第４装置例の組み合せにより自在に行われるよう構成された、本発明の第５装置例に係るＩＣカードαについて説明する（ＩＣカードαを非接触型として機能させる場合に説明を限定する）。
【０２３４】
図２４は、本発明の第５装置例に係る構成を得るため図１に示したＲＯＭ５に設定される通信方式選択優先順位テーブルを示す図である。
【０２３５】
同図（ａ）に示すように、本ＩＣカードαのＲＯＭ５内における通信方式選択優先順位テーブル５９には、リーダライタから送信される各種コマンド（受信コマンド）の種類毎、その内容を暗号化する際に適用すべき暗号方式の種類毎、その種類により特定される送受対象データのアクセスサイズの分類毎、及びその搬送時に得られる受信電力の大きさの分類毎に、前述のＩＣカードサポート通信方式リスト５１に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される（選択優先順位を示す数値は、図示のコマンド種類における「コマンド１」（ｋ＝１）の場合にはｘ１１１，ｘ１１２，…，ｘ１１ＣＭＡＸの部分に、暗号方式種類における「暗号化無し」（ｌ＝０）の場合にはｘ２０１，ｘ２０２，…，ｘ２０ＣＭＡＸの部分に、アクセスサイズ分類における「サイズ分類１」（ｍ＝１）の場合にはｘ３１１，ｘ３１２，ｘ３１ＣＭＡＸ，…の部分に、受信電力分類における「電力分類１」（ｎ＝１）の場合にはｘ４１１，ｘ４１２，ｘ４１ＣＭＡＸ，…の部分にそれぞれ割り当てられる）。
【０２３６】
以上の構成を採用することにより、この第５装置例に係るＩＣカードαには、第１〜第４装置例における種々の機能が全て具備されるようになる。
【０２３７】
（第５方法例）
続いて、以上のように構成された第５装置例により実施されるＩＣカード通信方式切換方法の具体例を説明する。
【０２３８】
図２５（ａ）及び（ｂ）は、それぞれ、本発明の第５方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【０２３９】
同図（ａ）に示すように、本方法例では、第１〜第４方法例におけるそれと同様、ＩＣカードαにおいて利用可能な複数の通信方式として、３つの通信方式、即ち、識別子「０２ｈ」により示される「方式Ｂ」，識別子「０３ｈ」により示される「方式Ｃ」，識別子「０４ｈ」により示される「方式Ｄ」がサポートされ、これら３つの通信方式が、その出現順に各通信方式番号「１」，「２」，及び「３」に割り当てられてなるＩＣカードサポート通信方式リスト５１ａが、ＲＯＭ５内に予め設定されているものとする。
【０２４０】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、５つの通信方式、即ち、「方式Ａ（識別子：０１ｈ）」，「方式Ｂ（識別子：０２ｈ）」，「方式Ｃ（識別子：０３ｈ）」，「方式Ｄ（識別子：０４ｈ）」，及び「方式Ｅ（識別子：０５ｈ）」がサポートされているものとする。
【０２４１】
また、同図（ｂ）に示すように、本方法例においては、第１〜第４方法例においてそれぞれ示した通信方式の選択優先順位を複合化してなる通信方式選択優先順位テーブル５９ａが、同ＲＯＭ５内に予め設定されているものとする（更なる詳細は、対応する各方法例を参照）。
【０２４２】
なお、以降の説明では、通信方式切換処理の過程で実行される本方法例に特徴的な通信方式選択処理のみを説明するものとし、その前提として、ＩＣカードαがリーダライタから受信した受信コマンドに関するコマンド種類が「書込コマンド」で、暗号方式種類が「暗号方式１」で、アクセスサイズ分類が「サイズ分類１」で、受信電力分類が「電力分類１」であるものとする（第１〜第４方法例で説明した各手法を用いることにより、各項目の認識が事前に行われるものとする）。また、リーダライタとの間の現在の通信方式は、通信方式番号「２」により示される「方式Ｃ」であるものとする。
【０２４３】
次に、図２６は、本発明の第５方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【０２４４】
同図に示すように、ＩＣカードα内のＣＰＵ４は、通信方式選択処理の実行に際し、まず、ＲＯＭ５内の通信方式選択優先順位テーブル５９ａを参照することにより、コマンド種類による重み計算処理（ＳＴ５１）、暗号方式種類による重み計算処理（ＳＴ５２）、アクセスサイズ分類による重み計算処理（ＳＴ５３）、及び受信電力分類による重み計算処理（ＳＴ５４）のうち少なくとも１以上の処理を実行する。なお、これら重み計算処理の詳細については後述するものとし、ここでは、全ての重み計算処理を実行するものとする。
【０２４５】
そして、以上の各重み計算処理を実行した結果、上記受信コマンドの各項目に関する前提から、通信方式番号「１」により示される「方式Ｂ」の通信方式に関する選択優先順位重み累積値（詳細は後述）として、「４」なる値が取得され、通信方式番号「２」により示される「方式Ｃ」の通信方式に関する選択優先順位重み累積値として、「８」なる値が取得され、通信方式番号「３」により示される「方式Ｄ」の通信方式に関する選択優先順位重み累積値として、「１２」なる値が取得されたものとする。
【０２４６】
次に、ＩＣカードα内のＣＰＵ４は、現在の通信方式番号ｚ（＝２）に関する選択優先順位重み累積値ｙｚの値（ｚ＝２，ｙ２＝８）を、その現在の選択優先順位重み累積値を示す定数ＰＮＯＷに代入すると共に、上記選択優先順位重み累積値の最大値を得るための変数ＰＭＡＸに、１番目の通信方式番号に関する選択優先順位重み累積値ｙ１（＝４）を代入し、さらに、通信方式番号ｉに関する選択優先順位重み累積値が最大となる通信方式番号を得るための変数ｑｍａｘに、上記１番目の通信方式番号「１」を代入すると共に、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、２番目の通信方式番号「２」を代入する（ＳＴ５５）。
【０２４７】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝２，ｄ２＝０３ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する（ＳＴ５６）。
【０２４８】
次に、ＩＣカードα内のＣＰＵ４は、通信方式番号ｉの値が「２」のときの選択優先順位重み累積値ｙｉ（ｙ２＝８）を取得し、この選択優先順位重み累積値を変数ＰＭＡＸの値と比較するが（ＳＴ５７）、取得した選択優先順位重み累積値ｙ２は現在の変数ＰＭＡＸの値「４」よりも大きいため（ＳＴ５７；＞）、その変数ＰＭＡＸに同選択優先順位重み累積値ｙ２（＝８）を代入すると共に、前述したＳＴ５６の処理で得た２番目の通信方式番号に関する変数ｉの値「２」を上記変数ｑｍａｘに代入する（ＳＴ５８）。
【０２４９】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ５９）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ５９；＜）、その変数ｊをインクリメントして「３」とし（ＳＴ６０）、さらに、前述したＳＴ５６の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２５０】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５７の処理において、通信方式番号ｉの値が「３」のときの選択優先順位重み累積値ｙｉ（ｙ３＝１２）を取得し、この選択優先順位重み累積値を変数ＰＭＡＸの値と比較するが、取得した選択優先順位重み累積値ｙ３は現在の変数ＰＭＡＸの値「８」よりも大きいため、前述したＳＴ５８の処理において、その変数ＰＭＡＸに同選択優先順位重み累積値ｙ２（＝１２）を代入すると共に、前述したＳＴ５６の処理で得た３番目の通信方式番号に関する変数ｉの値「３」を上記変数ｑｍａｘに代入する。
【０２５１】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５９の処理において、現在の変数ｊの値（通信方式番号：ｊ＝３）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、この比較の結果、変数ｊの値が通信方式番号最大値ＤＭＡＸに至って「ｊ＝ＤＭＡＸ」となったため（ＳＴ５９；≧）、ＩＣカードα内のＣＰＵ４は、変数ＰＭＡＸの値（＝１２）から定数ＰＮＯＷの値（＝８）を除した値（１２−８＝４）を、事前に設定された差分値ＤＩＦと比較する（ＳＴ６１）。
【０２５２】
なお、上記差分値ＤＩＦを適用するのは、変数ＰＭＡＸが現在の選択優先順位重み累積値ＰＮＯＷと殆ど差がない場合（例えば、差が「１」の場合など）、敢えて通信方式の切換えを行ってもその最適化があまり見込めず、かえって処理の遅延を招くなどの逆効果が生じるのを防止するためである。
【０２５３】
ここで、上記差分値ＤＩＦとして、例えば、「５」なる値が事前に設定され、「ＰＭＡＸ−ＰＮＯＷ（＝４）≦ＤＩＦ（＝５）」となった場合（ＳＴ６１；≦）、ＩＣカードα内のＣＰＵ４は、通信方式の切換えを敢えて行う必要がないとして、変数ｑｍａｘに現在の通信方式番号ｚ（＝２）をそのまま代入し（ＳＴ６２）、そのｑｍａｘの値により示される２番目の通信方式番号の値「２」を変数Ｉｎｔｆに代入する（ＳＴ６３）。
【０２５４】
これに対し、上記差分値ＤＩＦとして、例えば、「３」なる値が事前に設定され、「ＰＭＡＸ−ＰＮＯＷ（＝４）＞ＤＩＦ（＝３）」となった場合（ＳＴ６１；＞）、ＩＣカードα内のＣＰＵ４は、通信方式の切換えを行うべきであるとして、ＳＴ６２の処理において変数ｑｍａｘの書換えを行うことなく、上述したＳＴ６３の処理において、最終的に得た変数ｑｍａｘの値により示される３番目の通信方式番号の値「３」を変数Ｉｎｔｆに代入する。
【０２５５】
そして最後に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａを参照することにより、「ＰＭＡＸ−ＰＮＯＷ≦ＤＩＦ」の場合には、上記変数Ｉｎｔｆの値により示される２番目の通信方式番号の値「２」から、これに対応する「方式Ｃ」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「０３ｈ」を、前述した通信方式切換処理へと受け渡し、「ＰＭＡＸ−ＰＮＯＷ＞ＤＩＦ」の場合には、上記変数Ｉｎｔｆの値により示される３番目の通信方式番号の値「３」から、これに対応する「方式Ｄ」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「０４ｈ」を、前述した通信方式切換処理へと受け渡す。
【０２５６】
次に、図２７は、図２６に示した通信方式選択処理の過程で実行されるコマンド種類による重み計算処理ＳＴ５１を説明するためのフローチャートである。
【０２５７】
同図に示すように、ＩＣカードα内のＣＰＵ４は、まず、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、１番目の通信方式番号「１」を代入すると共に（ＳＴ５１１）、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝１，ｄ１＝０２ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「１」を変数ｉに代入する（ＳＴ５１２）。
【０２５８】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５９ａを参照することにより、コマンド番号ｋの値が「書込コマンド」を示す「２」で、通信方式番号ｉの値が「１」のときの通信方式である「方式Ｂ」の選択優先順位ｘ１ｋｉ（ｘ１２１＝１）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝１，ｙ１＝０：初期値）に加算し（ＳＴ５１３）、この結果、通信方式番号「１」に関する選択優先順位重み累積値ｙ１（＝１）を得る。
【０２５９】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝１）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ５１４）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ５１４；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ５１５）、さらに、前述したＳＴ５１２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する。
【０２６０】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５１３の処理において、コマンド番号ｋの値が「書込コマンド」を示す「２」で、通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘ１ｋｉ（ｘ１２２＝２）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝２，ｙ２＝０：初期値）に加算し、この結果、通信方式番号「２」に関する選択優先順位重み累積値ｙ２（＝２）を得る。
【０２６１】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５１４の処理において、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため、前述したＳＴ５１５の処理において、その変数ｊをインクリメントして「３」とし、さらに、前述したＳＴ５１２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２６２】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５１３の処理において、コマンド番号ｋの値が「書込コマンド」を示す「２」で、通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘ１ｋｉ（ｘ１２３＝３）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝３，ｙ３＝０：初期値）に加算し、この結果、通信方式番号「３」に関する選択優先順位重み累積値ｙ３（＝３）を得る。
【０２６３】
そして、以上の重み計算処理の結果、コマンド種類が「書込コマンド」の場合の各通信方式番号「１」，「２」，及び「３」の選択優先順位重み累積値ｙｉが、それぞれ「１」，「２」，及び「３」として取得され、ＩＣカードα内のＣＰＵ４は、これらの値を、暗号方式種類による重み計算処理ＳＴ５２へ受け渡す。
【０２６４】
次に、図２８は、図２６に示した通信方式選択処理の過程で実行される暗号方式種類による重み計算処理ＳＴ５２を説明するためのフローチャートである。
【０２６５】
同図に示すように、ＩＣカードα内のＣＰＵ４は、まず、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、１番目の通信方式番号「１」を代入すると共に（ＳＴ５２１）、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝１，ｄ１＝０２ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「１」を変数ｉに代入する（ＳＴ５２２）。
【０２６６】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５９ａを参照することにより、暗号方式番号ｌの値が「暗号方式１」を示す「１」で、通信方式番号ｉの値が「１」のときの通信方式である「方式Ｂ」の選択優先順位ｘ２ｌｉ（ｘ２１１＝１）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝１，ｙ１＝１：既得値）に加算し（ＳＴ５２３）、この結果、通信方式番号「１」に関する選択優先順位重み累積値ｙ１（＝２）を得る。
【０２６７】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝１）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ５２４）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ５２４；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ５２５）、さらに、前述したＳＴ５２２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する。
【０２６８】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５２３の処理において、暗号方式番号ｌの値が「暗号方式１」を示す「１」で、通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」選択優先順位ｘ２ｌｉ（ｘ２１２＝２）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝２，ｙ２＝２：既得値）に加算し、この結果、通信方式番号「２」に関する選択優先順位重み累積値ｙ２（＝４）を得る。
【０２６９】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５２４の処理において、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため、前述したＳＴ５２５の処理において、その変数ｊをインクリメントして「３」とし、さらに、前述したＳＴ５２２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２７０】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５２３の処理において、暗号方式番号ｌの値が「暗号方式１」を示す「１」で、通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘ２ｋｉ（ｘ２１３＝３）を取得し、この選択優先順位を、現在の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝３，ｙ３＝３：既得値）に加算し、この結果、通信方式番号「３」に関する選択優先順位重み累積値ｙ３（＝６）を得る。
【０２７１】
そして、以上の重み計算処理の結果、暗号方式番号が「暗号方式１」の場合の各通信方式番号「１」，「２」，及び「３」の選択優先順位重み累積値ｙｉが、それぞれ「２」，「４」，及び「６」として取得され、ＩＣカードα内のＣＰＵ４は、これらの値を、アクセスサイズ分類による重み計算処理ＳＴ５３へ受け渡す。
【０２７２】
次に、図２９は、図２６に示した通信方式選択処理の過程で実行されるアクセスサイズ分類による重み計算処理ＳＴ５３を説明するためのフローチャートである。
【０２７３】
同図に示すように、ＩＣカードα内のＣＰＵ４は、まず、前述したＳＴ３１のアクセスサイズ分類処理を経た後に、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、１番目の通信方式番号「１」を代入すると共に（ＳＴ５３１）、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝１，ｄ１＝０２ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「１」を変数ｉに代入する（ＳＴ５３２）。
【０２７４】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５９ａを参照することにより、アクセスサイズ分類番号ｍの値が「サイズ分類１」を示す「１」で、通信方式番号ｉの値が「１」のときの通信方式である「方式Ｂ」の選択優先順位ｘ３ｍｉ（ｘ３１１＝１）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝１，ｙ１＝２：既得値）に加算し（ＳＴ５３３）、この結果、通信方式番号「１」に関する選択優先順位重み累積値ｙ１（＝３）を得る。
【０２７５】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝１）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ５３４）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ５３４；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ５３５）、さらに、前述したＳＴ５３２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する。
【０２７６】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５３３の処理において、アクセスサイズ分類番号ｍの値が「サイズ分類１」を示す「１」で、通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘ３ｍｉ（ｘ３１２＝２）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝２，ｙ２＝４：既得値）に加算し、この結果、通信方式番号「２」に関する選択優先順位重み累積値ｙ２（＝６）を得る。
【０２７７】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５３４の処理において、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため、前述したＳＴ５３５の処理において、その変数ｊをインクリメントして「３」とし、さらに、前述したＳＴ５３２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２７８】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５３３の処理において、アクセスサイズ分類番号ｍの値が「サイズ分類１」を示す「１」で、通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘ３ｍｉ（ｘ３１３＝３）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝３，ｙ３＝６：既得値）に加算し、この結果、通信方式番号「３」に関する選択優先順位重み累積値ｙ３（＝９）を得る。
【０２７９】
そして、以上の重み計算処理の結果、アクセスサイズ分類が「サイズ分類１」の場合の各通信方式番号「１」，「２」，及び「３」の選択優先順位重み累積値ｙｉが、それぞれ「３」，「６」，及び「９」として取得され、ＩＣカードα内のＣＰＵ４は、これらの値を、受信電力分類による重み計算処理ＳＴ５４へ受け渡す。
【０２８０】
次に、図３０は、図２６に示した通信方式選択処理の過程で実行される受信電力分類による重み計算処理ＳＴ５４を説明するためのフローチャートである。
【０２８１】
同図に示すように、ＩＣカードα内のＣＰＵ４は、まず、前述したＳＴ４１の受信電力分類処理を経た後に、ＲＡＭ６内の相互利用可能通信方式リスト６２における通信方式番号の順番を示す変数ｊに、１番目の通信方式番号「１」を代入すると共に（ＳＴ５４１）、ＲＯＭ５内のＩＣカードサポート通信方式リスト５１ａ（通信方式識別子の集合：Ｃ＝｛０２ｈ，０３ｈ，０４ｈ｝）の中から、ＲＡＭ６内の相互利用可能通信方式リスト６２（通信方式識別子の集合：Ｄ＝｛０２ｈ，０３ｈ，０４ｈ｝）におけるｊ番目の通信方式識別子ｄｊ（ｊ＝１，ｄ１＝０２ｈ）と等しいものを探して、その識別子がＩＣカードサポート通信方式リスト５１ａにおいて出現する順番（即ち、通信方式番号ｉ）を求めるための関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「１」を変数ｉに代入する（ＳＴ５４２）。
【０２８２】
次に、ＩＣカードα内のＣＰＵ４は、ＲＯＭ５内の通信方式選択優先順位テーブル５９ａを参照することにより、受信電力分類番号ｎの値が「電力分類１」を示す「１」で、通信方式番号ｉの値が「１」のときの通信方式である「方式Ｂ」の選択優先順位ｘ４ｎｉ（ｘ４１１＝１）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝１，ｙ１＝３：既得値）に加算し（ＳＴ５４３）、この結果、通信方式番号「１」に関する選択優先順位重み累積値ｙ１（＝４）を得る。
【０２８３】
次に、ＩＣカードα内のＣＰＵ４は、ＲＡＭ６内の相互利用可能通信方式リスト６２を参照することにより、現在の変数ｊの値（通信方式番号：ｊ＝１）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが（ＳＴ５４４）、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため（ＳＴ５４４；＜）、その変数ｊをインクリメントして「２」とし（ＳＴ５４５）、さらに、前述したＳＴ５４２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「２」を変数ｉに代入する。
【０２８４】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５４３の処理において、受信電力分類番号ｎの値が「電力分類１」を示す「１」で、通信方式番号ｉの値が「２」のときの通信方式である「方式Ｃ」の選択優先順位ｘ４ｎｉ（ｘ４１２＝２）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝２，ｙ２＝６：既得値）に加算し、この結果、通信方式番号「２」に関する選択優先順位重み累積値ｙ２（＝８）を得る。
【０２８５】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５４４の処理において、現在の変数ｊの値（通信方式番号：ｊ＝２）と、通信方式番号最大値ＤＭＡＸ（＝３）とを比較するが、上記変数ｊの値の方が通信方式番号最大値ＤＭＡＸよりも小さいため、前述したＳＴ５４５の処理において、その変数ｊをインクリメントして「３」とし、さらに、前述したＳＴ５４２の処理を再び実行して関数ｉｎｄｅｘ（Ｃ，ｄｊ）を計算し、その計算結果である通信方式番号「３」を変数ｉに代入する。
【０２８６】
次に、ＩＣカードα内のＣＰＵ４は、前述したＳＴ５４３の処理において、受信電力分類番号ｎの値が「電力分類１」を示す「１」で、通信方式番号ｉの値が「３」のときの通信方式である「方式Ｄ」の選択優先順位ｘ４ｎｉ（ｘ４１３＝３）を取得し、この選択優先順位を、現在の通信方式の通信方式番号ｉにおける選択優先順位重み累積値ｙｉの値（ｉ＝３，ｙ３＝９：既得値）に加算し、この結果、通信方式番号「３」に関する選択優先順位重み累積値ｙ３（＝１２）を得る。
【０２８７】
そして、以上の重み計算処理の結果、受信電力分類が「電力分類１」の場合の各通信方式番号「１」，「２」，及び「３」の選択優先順位重み累積値ｙｉが、それぞれ「４」，「８」，及び「１２」として取得され、ＩＣカードα内のＣＰＵ４は、これらの値を通信方式選択処理へ受け渡す。
【０２８８】
以上、本発明の実施の形態につき、第１〜第５装置例及びこれらにそれぞれ対応する第１〜第５方法例を挙げて説明したが、本発明は、必ずしも上述した手段及び手法にのみ限定されるものではなく、後述の効果を有する範囲内において、適宜、変更実施することが可能なものである。
【０２８９】
【発明の効果】
以上、詳細説明したように、本発明によれば、ＩＣカードにおける２以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、ＩＣカードの主導により、同ＩＣカードが受信したコマンドの種々の特質に応じた最適なものに、自在に切り換えることが可能となる。
【図面の簡単な説明】
【図１】（ａ）〜（ｃ）は、それぞれ、本発明の装置例に係るＩＣカードの内部構成図及び外観構成図、並びに同ＩＣカードに内蔵されるＩＣチップの機能構成図である。
【図２】（ａ）は、図１に示したＲＯＭ５に設定されるＩＣカードサポート通信方式リストを示す図であり、（ｂ）及び（ｃ）は、それぞれ、図１に示したＲＡＭに設定されるセキュリティ状態テーブル及び相互利用可能通信方式リストを示す図である。
【図３】本発明の第１装置例に係る構成を得るため図１に示したＲＯＭに設定される通信方式選択優先順位テーブルを示す図である。
【図４】（ａ）〜（ｄ）は、それぞれ、本発明の第１装置例に係る構成を得るため図１に示したＮＶＲＡＭに設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【図５】（ａ）〜（ｆ）は、それぞれ、本発明の第１装置例に係るＩＣカードに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【図６】（ａ）及び（ｂ）は、それぞれ、本発明の第１装置例に係るＩＣカードに適用される通信方式切換メッセージ及び再送要求メッセージの各データ形式を示す図である。
【図７】（ａ）及び（ｂ）は、それぞれ、本発明の第１方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図８】（ａ）〜（ｅ）は、それぞれ、本発明の第１方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル（２種）、及び鍵属性形式テーブル（１種）の各例を示す図である。
【図９】本発明の第１方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図１０】本発明の第２装置例に係る構成を得るため図１に示したＲＯＭに設定される通信方式選択優先順位テーブルを示す図である。
【図１１】（ａ）〜（ｄ）は、それぞれ、本発明の第２装置例に係る構成を得るため図１に示したＮＶＲＡＭに設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【図１２】（ａ）〜（ｆ）は、それぞれ、本発明の第２装置例に係るＩＣカードに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【図１３】（ａ）及び（ｂ）は、それぞれ、本発明の第２方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図１４】（ａ）〜（ｆ）は、それぞれ、本発明の第２方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル（２種）及び鍵属性形式テーブル（２種）の各例を示す図である。
【図１５】本発明の第２方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図１６】（ａ）〜（ｃ）は、それぞれ、本発明の第３装置例に係る構成を得るため図１に示したＲＯＭに設定される通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルを示す図である。
【図１７】（ａ）〜（ｄ）は、それぞれ、本発明の第３方法例に適用されるＩＣカードサポート通信方式リスト、通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルの各例を示す図である。
【図１８】本発明の第３方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図１９】図１８に示した通信方式選択処理の過程で実行されるアクセスサイズ分類処理を説明するためのフローチャートである。
【図２０】（ａ）及び（ｂ）は、それぞれ、本発明の第４装置例に係る構成を得るため図１に示したＲＯＭに設定される通信方式選択優先順位テーブル及び受信電力閾値分類テーブルを示す図である。
【図２１】（ａ）〜（ｃ）は、それぞれ、本発明の第４方法例に適用されるＩＣカードサポート通信方式リスト、通信方式選択優先順位テーブル、及び受信電力閾値分類テーブルの各例を示す図である。
【図２２】本発明の第４方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図２３】図２２に示した通信方式選択処理の過程で実行される受信電力分類処理を説明するためのフローチャートである。
【図２４】本発明の第５装置例に係る構成を得るため図１に示したＲＯＭに設定される通信方式選択優先順位テーブルを示す図である。
【図２５】（ａ）及び（ｂ）は、それぞれ、本発明の第５方法例に適用されるＩＣカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図２６】本発明の第５方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図２７】図２６に示した通信方式選択処理の過程で実行されるコマンド種類による重み計算処理を説明するためのフローチャートである。
【図２８】図２６に示した通信方式選択処理の過程で実行される暗号方式種類による重み計算処理を説明するためのフローチャートである。
【図２９】図２６に示した通信方式選択処理の過程で実行されるアクセスサイズ分類による重み計算処理を説明するためのフローチャートである。
【図３０】図２６に示した通信方式選択処理の過程で実行される受信電力分類による重み計算処理を説明するためのフローチャートである。
【符号の説明】
α…ＩＣカード
ｄ１〜ｄ３…ディレクトリ
ｆ１〜ｆ３，ｆ１ａ，ｆ１ｂ…ファイル
ｋ１〜ｋ３、ｋ１ａ，ｋ１ｂ…鍵
１…ＩＣチップ
２…アンテナ
３…金属端子面
４…ＣＰＵ
５…ＲＯＭ
５１，５１ａ…ＩＣカードサポート通信方式リスト
５２〜５４，５２ａ〜５４ａ，５７，５７ａ，５９，５９ａ…通信方式選択優先順位テーブル
５５，５５ａ…アクセスサイズ閾値分類テーブル
５６，５６ａ…アクセスサイズ検査対象コマンドテーブル
５８，５８ａ…受信電力閾値分類テーブル
６…ＲＡＭ
６１…セキュリティ状態テーブル
６２…相互利用可能通信方式リスト
７…ＮＶＲＡＭ
７１，７１ａ…ディレクトリ属性形式テーブル
７２，７２ａ，７２ｂ，７４，７４ａ，７４ｂ…ファイル属性形式テーブル
７３，７３ａ，７５，７５ａ…鍵属性形式テーブル
８…ＲＦ部
９１，９１ａ…読出コマンド
９２，９２ａ…読出コマンドレスポンス
９３，９３ａ…書込コマンド
９４，９４ａ…書込コマンドレスポンス
９５，９５ａ…認証コマンド
９６，９６ａ…認証コマンドレスポンス
９８…通信方式切換メッセージ
９９…再送要求メッセージ
【図１】
2004185242.tif 000003
【図２】
2004185242.tif 000004
【図３】
2004185242.tif 000005
【図４】
2004185242.tif 000006
【図５】
2004185242.tif 000007
【図６】
2004185242.tif 000008
【図７】
2004185242.tif 000009
【図８】
2004185242.tif 000010
【図９】
2004185242.tif 000011
【図１０】
2004185242.tif 000012
【図１１】
2004185242.tif 000013
【図１２】
2004185242.tif 000014
【図１３】
2004185242.tif 000015
【図１４】
2004185242.tif 000016
【図１５】
2004185242.tif 000017
【図１６】
2004185242.tif 000018
【図１７】
2004185242.tif 000019
【図１８】
2004185242.tif 000020
【図１９】
2004185242.tif 000021
【図２０】
2004185242.tif 000022
【図２１】
2004185242.tif 000023
【図２２】
2004185242.tif 000024
【図２３】
2004185242.tif 000025
【図２４】
2004185242.tif 000026
【図２５】
2004185242.tif 000027
【図２６】
2004185242.tif 000028
【図２７】
2004185242.tif 000029
【図２８】
2004185242.tif 000030
【図２９】
2004185242.tif 000031
【図３０】
2004185242.tif 000032