JP2004185242A - Icカード通信方式切換方法及びicカード - Google Patents

Icカード通信方式切換方法及びicカード Download PDF

Info

Publication number
JP2004185242A
JP2004185242A JP2002350531A JP2002350531A JP2004185242A JP 2004185242 A JP2004185242 A JP 2004185242A JP 2002350531 A JP2002350531 A JP 2002350531A JP 2002350531 A JP2002350531 A JP 2002350531A JP 2004185242 A JP2004185242 A JP 2004185242A
Authority
JP
Japan
Prior art keywords
card
communication
communication method
reader
writer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002350531A
Other languages
English (en)
Inventor
Yoshiyuki Okuma
喜之 大熊
Toshinori Fukunaga
利徳 福永
Masato Aranishi
誠人 新西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002350531A priority Critical patent/JP2004185242A/ja
Publication of JP2004185242A publication Critical patent/JP2004185242A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Near-Field Transmission Systems (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

【課題】リーダライタとの間における通信方式をICカードの主導により最適なものに切り換えることの可能なICカード通信方式切換方法及びICカードの提供。
【解決手段】ICカードαにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、リーダライタとの間で相互に利用可能な2以上の通信方式を一時的に記憶するRAM6と、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式をRAM6に記憶された2以上の通信方式の中から選択し、その最適な通信方式が受信コマンドの通信方式と異なる場合に、自己の現在の通信方式をその最適な通信方式に切り換えた後に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせる機能手段(CPU4)を具備する特徴。
【選択図】図1

Description

【0001】
【発明の属する技術分野】
本発明は、ICカード通信方式切換方法及びICカードに関し(IC:集積回路)、詳しくは、複数の通信方式を利用可能に構成されたICカードと、当該ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、ICカードの主導により最適なものに切り換えるためのICカード通信方式切換方法、及びその実施に直接使用するICカードに係わる。
【0002】
【従来の技術】
従来、ICカードは、非接触型及び接触型の双方とも、その機種毎に単一の通信方式のみをサポートし、対応するリーダライタとの通信に際しては、その限定された唯一の通信方式による通信のみが可能とされていた。
【0003】
なお、本発明に関連し、その技術的思想の理解を助ける文献公知発明が、以下に示す2つの非特許文献に記載されている。
【非特許文献1】
“Identification cards − Contactless integrated circuit(s) cards − Proximity cards − Part 3: Initialization and anticollision”, InternationalStandard, International Organization for Standardization (ISO), 2001.02.01, ISO/IEC 14443−3:2001(E), pp.20−37
【非特許文献2】
“Identification cards − Contactless integrated circuit(s) cards − Proximity cards − Part 4: Transmission protocol”, International Standard, International Organization for Standardization (ISO), 2001.02.01, ISO/IEC 14443−4:2001(E), pp.4−13
【0004】
【発明が解決しようとする課題】
しかしながら、複数の通信方式をサポートするICカード及びこれに対応するリーダライタを構成すること自体は、既に、技術的に可能な段階に達しており、昨今では、共に複数の通信方式をサポートするICカードとリーダライタとの間における通信方式切換技術の標準化が望まれている。
【0005】
ここにおいて、本発明の解決すべき主要な目的は、次のとおりである。
【0006】
即ち、本発明の第1の目的は、ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、同ICカードの主導により最適なものに切り換えることの可能なICカード通信方式切換方法及びICカードを提供せんとするものである。
【0007】
本発明の第2の目的は、所要の通信方式の切換えを、ICカードが受信したコマンドの特質に応じて自在に行うことの可能なICカード通信方式切換方法及びICカードを提供せんとするものである。
【0008】
本発明の他の目的は、明細書、図面、特に特許請求の範囲の各請求項の記載から、自ずと明らかとなろう。
【0009】
【課題を解決するための手段】
まず、本発明方法においては、ICカードにおいて、リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な2以上の通信方式を認識し、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した2以上の通信方式の中から選択し、その選択した最適な通信方式が受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式を最適な通信方式に切り換える、という特徴的構成手法を講じる。
【0010】
一方、本発明装置においては、ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、リーダライタとの間で相互に利用可能な2以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、通信初期化処理後にリーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、記憶された2以上の通信方式の中から選択する最適通信方式選択手段と、選択された最適な通信方式が受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類をリーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式を最適な通信方式に切り換える最適通信方式切換手段とを具備させる、という特徴的構成手段を講じる。
【0011】
さらに、具体的詳細に述べると、当該課題の解決では、本発明が次に列挙する上位概念から下位概念に亙る新規な特徴的構成手法又は手段を採用することにより、前記目的を達成するよう為される。
【0012】
即ち、本発明方法の第1の特徴は、複数の通信方式を利用可能に構成されたICカードと、当該ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、前記ICカードの主導により最適なものに切り換えるためのICカード通信方式切換方法であって、前記ICカードにおいて、前記リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記2以上の通信方式を認識し、前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した前記2以上の通信方式の中から選択し、その選択した前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換えてなる、ICカード通信方式切換方法の構成採用にある。
【0013】
本発明方法の第2の特徴は、上記本発明方法の第1の特徴における前記最適な通信方式の選択を、前記ICカードにおける前記複数の通信方式に関する、前記受信コマンドの特質に応じた選択優先順位を規定する通信方式選択優先順位テーブルに基づいて行ってなる、ICカード通信方式切換方法の構成採用にある。
【0014】
本発明方法の第3の特徴は、上記本発明方法の第1又は第2の特徴における前記最適な通信方式の選択を、前記受信コマンドの種類に応じて行ってなる、ICカード通信方式切換方法の構成採用にある。
【0015】
本発明方法の第4の特徴は、上記本発明方法の第1、第2又は第3の特徴における前記最適な通信方式の選択を、前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて行ってなる、ICカード通信方式切換方法の構成採用にある。
【0016】
本発明方法の第5の特徴は、上記本発明方法の第1、第2、第3又は第4の特徴における前記最適な通信方式の選択を、前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行ってなる、ICカード通信方式切換方法の構成採用にある。
【0017】
本発明方法の第6の特徴は、上記本発明方法の第1、第2、第3、第4又は第5の特徴における前記最適な通信方式の選択を、前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて行ってなる、ICカード通信方式切換方法の構成採用にある。
【0018】
本発明方法の第7の特徴は、上記本発明方法の第6の特徴における前記駆動電力が、前記ICカードが非接触型として機能する場合に、当該ICカードが前記リーダライタの有効電磁界内に進入したときに当該ICカードに生じる誘導起電力から得られる受信電力である、ICカード通信方式切換方法の構成採用にある。
【0019】
本発明方法の第8の特徴は、上記本発明方法の第6の特徴における前記駆動電力が、前記ICカードが接触型として機能する場合に、当該ICカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、ICカード通信方式切換方法の構成採用にある。
【0020】
一方、本発明装置の第1の特徴は、複数の通信方式を利用可能に構成されたICカードであって、当該ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記2以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、前記利用可能通信方式記憶手段に記憶された前記2以上の通信方式の中から選択する最適通信方式選択手段と、この最適通信方式選択手段により選択された前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える最適通信方式切換手段とを有してなる、ICカードの構成採用にある。
【0021】
本発明装置の第2の特徴は、上記本発明装置の第1の特徴における前記最適通信方式選択手段が、前記ICカードにおける前記複数の通信方式の選択優先順位を規定する通信方式選択優先順位テーブルと、当該通信方式選択優先順位テーブルに基づいて前記最適な通信方式の選択を行う機能手段とを具備してなる、ICカードの構成採用にある。
【0022】
本発明装置の第3の特徴は、上記本発明装置の第1又は第2の特徴における前記最適通信方式選択手段が、前記受信コマンドの種類に応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ICカードの構成採用にある。
【0023】
本発明装置の第4の特徴は、上記本発明装置の第1、第2又は第3の特徴における前記最適通信方式選択手段が、前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ICカードの構成採用にある。
【0024】
本発明装置の第5の特徴は、上記本発明装置の第1、第2、第3又は第4の特徴における前記最適通信方式選択手段が、前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ICカードの構成採用にある。
【0025】
本発明装置の第6の特徴は、上記本発明装置の第1、第2、第3、第4又は第5の特徴における前記最適通信方式選択手段が、前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて前記最適な通信方式の選択を行う機能手段を具備してなる、ICカードの構成採用にある。
【0026】
本発明装置の第7の特徴は、上記本発明装置の第6の特徴における前記駆動電力が、前記ICカードが非接触型として機能する場合に、当該ICカードが前記リーダライタの有効電磁界内に進入したときに当該ICカードに生じる誘導起電力から得られる受信電力である、ICカードの構成採用にある。
【0027】
本発明装置の第8の特徴は、上記本発明装置の第6の特徴における前記駆動電力が、前記ICカードが接触型として機能する場合に、当該ICカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、ICカードの構成採用にある。
【0028】
【発明の実施の形態】
以下、本発明の実施の形態につき、添付図面を参照しつつ、まず、装置例に係る基本ハードウェア構成を説明し、次いで、同基本ハードウェア構成に基づき具現化される第1〜第5装置例及びこれらにそれぞれ対応する第1〜第5方法例を順に挙げて説明する。
【0029】
(装置例:基本ハードウェア構成)
まず、図1(a)〜(c)は、それぞれ、本発明の装置例に係るICカードの内部構成図及び外観構成図、並びに同ICカードに内蔵されるICチップの機能構成図である。
【0030】
同図(a)及び(b)に示すように、本装置例に係るICカードαは、その内部に、当該ICカードαの機能構成を得るためのICチップ1と、同ICカードαが非接触型として機能する場合に、外部のリーダライタ(図示せず)との間で無線による通信を行うためのアンテナ2とを具備する一方、その外部に、同ICカードαが接触型として機能する場合に、上記リーダライタとの間で有線(オンライン)による通信を行うための金属端子面3を具備して構成される。
【0031】
一方、同図(c)に示すように、上記ICチップ1は、本ICカードαの機能構成を得るための各種処理プログラム及び所要の通信方式を得るための各種通信プログラムの実行、並びにそれらプログラムの実行に伴って各種データの入出力を行うCPU(中央処理装置)4と、上記通信プログラム及び書換不要なデータを記憶するROM(読出専用メモリ)5と、上記通信プログラムの実行に伴って生成されるデータを一時的に記憶するRAM(揮発性メモリ)6と、上記通信プログラムの実行に伴って生成されるデータを追記可能に記憶するNVRAM(不揮発性メモリ)7と、本ICカードαが非接触型として機能する場合において、同ICカードαがリーダライタの有効電磁界内に進入したときに、これに伴いアンテナ2に生じる誘導起電力から当該ICカードαの駆動電力(受信電力)を得ると共に、そのリーダライタとの間で送受される信号の変復調を行うRF部(RF:高周波)8とを具備して構成される。
【0032】
また、特に図示はしていないが、ICチップ1内には、本ICカードαが接触型として機能する場合において、同ICカードαがリーダライタにセットされたときに、金属端子面3を通じ同リーダライタから当該ICカードαの駆動電力(供給電力)を得ると共に、そのリーダライタとの間で授受される信号の入出力を行うインタフェース部が併せて具備される。
【0033】
なお、本発明にいう利用可能通信方式記憶手段、最適通信方式選択手段、及び最適通信方式切換手段は、上記CPU4により実行される各種処理プログラム(各種通信プログラムを含む)及び各メモリの内容によって具現化されるものであり、その詳細は、後述の機能説明において明らかとなる。
【0034】
次に、図2(a)は、図1に示したROM5に設定されるICカードサポート通信方式リストを示す図であり、同図(b)及び(c)は、それぞれ、図1に示したRAM6に設定されるセキュリティ状態テーブル及び相互利用可能通信方式リストを示す図である。
【0035】
同図(a)に示すように、ROM5内におけるICカードサポート通信方式リスト51には、本ICカードαにおいて利用可能な(ICカードαに設定された複数の通信プログラムによりサポートされる)複数の通信方式が、それらの出現順を示す通信方式番号「1」,「2」,…,「CMAX」(CMAX:通信方式番号最大値.1≦i≦CMAX)毎に、正の整数を示す1バイトデータによりそれぞれ表現された複数の通信方式識別子c,c,…,cCMAXにより設定される(以下、「通信方式識別子」を単に「識別子」ともいう)。
【0036】
一方、同図(b)に示すように、RAM6内におけるセキュリティ状態テーブル61には、リーダライタが本ICカードαに対し各種コマンドを実行する場合において、該当するコマンドについての認証処理が必要なときに使用され、前1バイト及び後1バイトをそれぞれ読出コマンド及び書込コマンドの認証結果に割り当ててなる全体で2バイトのデータが設定される。
【0037】
この2バイトデータは、初期状態において「0000h」(「h」は16進表記を表す。以下同じ)なる値をとり、読出コマンドに伴う認証コマンド(詳細は後述)が正常に実行されたときには「0100h」なる値を、また、書込コマンドに伴う認証コマンドが正常に実行されたときには「0001h」なる値をとる(認証:未(00h)・済(01h))。
【0038】
また、同図(c)に示すように、RAM6内における相互利用可能通信方式リスト62には、本ICカードαにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能と判定された2以上の通信方式が、それらの出現順を示す通信方式番号「1」,「2」,…,「DMAX」(DMAX:通信方式番号最大値.1≦j≦DMAX)毎に、正の整数を示す1バイトデータによりそれぞれ表現された2以上の通信方式識別子d,d,…,dDMAXにより設定される。
【0039】
なお、この相互利用可能通信方式リスト62は、上記通信初期化処理を経たときに初めて、その内容(通信方式識別子)が設定され、本ICカードαの活性化直後(通信初期化処理前)の段階では「空」の状態である。
【0040】
(第1装置例)
続いて、複数の通信方式の切換えが受信コマンドの種類に応じて行われるよう構成された、本発明の第1装置例に係るICカードαについて説明する。
【0041】
図3は、本発明の第1装置例に係る構成を得るため図1に示したROM5に設定される通信方式選択優先順位テーブルを示す図である。
【0042】
同図に示すように、本ICカードαのROM5内における通信方式選択優先順位テーブル52には、リーダライタから送信される各種コマンド(受信コマンド)の種類毎(「コマンド1」,「コマンド2」,…,「コマンドr」(r:コマンドの最大存在数).k:コマンド番号)に、前述のICカードサポート通信方式リスト51に規定される各通信方式(識別子c,c,…,cCMAXにより表現。以下,各装置例において同じ)の選択優先順位が、それら各通信方式の出現順に数値(正の整数)により設定される(選択優先順位を示す数値は、図示の「コマンド1」(k=1)の場合、x11,x12,…,x1CMAXの部分に割り当てられる。他のコマンドについても同じ)。
【0043】
なお、以上の選択優先順位の数値は、最も適さない通信方式に関するものを「1」で表し、以下昇順に、最も適した通信方式に関するものを前述の「CMAX」と表すものとする(以下、各装置例において同じ)。
【0044】
次に、図4(a)〜(d)は、それぞれ、本発明の第1装置例に係る構成を得るため図1に示したNVRAM7に設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【0045】
同図(a)に示すように、NVRAM7には、ディレクトリd1〜d3(ルートディレクトリd1)を幹とし、ファイル(群)f1〜f3及び鍵(群)k1〜k3を葉としたツリー構造からなるファイル構造が設定される。
【0046】
一方、同図(b)〜(d)に示すように、NVRAM7内におけるディレクトリ属性形式テーブル71には、上記各ディレクトリd1〜d3に関し、本ICカードα全体でそれぞれ固有の値をとる2バイトのディレクトリID(ID:認証識別子)が設定されると共に(ルートディレクトリd1のディレクトリIDは「0000h」)、同NVRAM7内のファイル属性形式テーブル72には、上記各ファイルf1〜f3に関し、管理されるディレクトリd1〜d3内でそれぞれ固有の値をとる2バイトのファイルIDが、また、同NVRAM7内の鍵属性形式テーブル73には、上記各鍵k1〜k3に関し、管理されるディレクトリd1〜d3内でそれぞれ固有の値をとる2バイトの鍵IDが設定される。
【0047】
ここで、ファイル属性形式テーブル72は、存在する各ファイルを個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記ファイルIDの他、データを蓄積可能な最大バイト数を示すデータサイズと、該当するファイルの読出し又は書込みを行う際の認証処理の要否(認証要否)を示す情報(以下、「セキュリティ属性」ともいう)と、実際に蓄積されるデータの内容とが含まれる。
【0048】
なお、上記認証要否を示す情報は、図2(b)で示したセキュリティ状態テーブル61における場合と同様、前1バイト及び後1バイトをそれぞれ読出し時及び書込み時における認証要否に割り当ててなる全体で2バイトのデータであり、具体的には、認証処理がファイルの読出し時にのみ必要な場合には「0100h」なる値を、書込み時にのみ必要な場合には「0001h」なる値を、読み書き双方で必要な場合には「0101h」なる値をとる(認証:要(01h)・不要(00h))。
【0049】
また、鍵属性形式テーブル73は、存在する各鍵を個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記鍵IDの他、該当する鍵が読出コマンド用又は書込コマンド用の何れであるかを示す鍵の種類と、該当する鍵のバイト数(長さ)を示す鍵長と、実際に蓄積される鍵の内容とが含まれる。
【0050】
次に、図5(a)〜(f)は、それぞれ、本発明の第1装置例に係るICカードαに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【0051】
まず、同図(a)に示すように、リーダライタが本ICカードαからファイルの内容を読み出す際に使用される読出コマンド91は、当該コマンドの種類を1バイトデータで表現したコマンド番号(読出コマンド:「01h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、読出しを行おうとするファイルを2バイトデータで表現したファイルID(図4(c)参照)と、そのファイル中におけるデータの読出開始位置を2バイトデータで表現した先頭アドレスと、そのファイル中におけるデータの長さを2バイトデータで表現した読出データ長と、上記コマンド番号から読出データ長までの5要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェック(EDC:誤り検出コード.以下同じ)とから構成される。
【0052】
上記読出コマンド91に対応して、本ICカードαからリーダライタに向け発せられる読出コマンドレスポンス92は、同図(b)に示すように、当該コマンド(レスポンス)の種類を1バイトデータで表現したコマンド番号(読出コマンドレスポンス:「02h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、実際に読み出されたデータの長さを2バイトデータで表現した読出データ長と、その読出しに係る実際のデータの内容である読出データ内容と、所要の読出処理が正常に終了したときに2バイトの「0000h」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの5要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0053】
一方、同図(c)に示すように、リーダライタが本ICカードαにファイルの内容を書き込む際に使用される書込コマンド93は、当該コマンドの種類を1バイトデータで表現したコマンド番号(書込コマンド:「03h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、書込みを行おうとするファイルを2バイトデータで表現したファイルID(図4(c)参照)と、そのファイル中におけるデータの書込開始位置を2バイトデータで表現した先頭アドレスと、そのファイル中におけるデータの長さを2バイトデータで表現した書込データ長と、その書込みに係る実際のデータの内容である書込データ内容と、上記コマンド番号から書込データ内容までの6要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0054】
上記書込コマンド93に対応して、本ICカードαからリーダライタに向け発せられる書込コマンドレスポンス94は、同図(d)に示すように、当該コマンド(レスポンス)の種類を1バイトデータで表現したコマンド番号(書込コマンドレスポンス:「04h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、所要の書込処理が正常に終了したときに2バイトの「0000h」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの3要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0055】
また、同図(e)に示すように、リーダライタが本ICカードαに対するファイルの内容の読出し又は書込みを認証処理を伴って行う際に使用される認証コマンド95は、当該コマンドの種類を1バイトデータで表現したコマンド番号(認証コマンド:「07h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、認証を行う際に用いる鍵の種類を2バイトデータで表現した鍵ID(図4(d)参照)と、その認証を行う際にリーダライタによって生成される乱数のバイト数を2バイトデータで表現した乱数長と、その乱数の実際の内容である乱数データと、当該乱数データを上記鍵IDにより示される鍵で実際に暗号化したときの内容である暗号化データと、上記コマンド番号から暗号化データまでの6要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0056】
上記認証コマンド95に対応して、本ICカードαからリーダライタに向け発せられる認証コマンドレスポンス96は、同図(f)に示すように、当該コマンド(レスポンス)の種類を1バイトデータで表現したコマンド番号(認証コマンドレスポンス:「08h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、所要の認証処理が正常に終了したときに2バイトの「0000h」なる値をとるエラーステータスと、上記コマンド番号からエラーステータスまでの3要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0057】
次に、図6(a)及び(b)は、それぞれ、本発明の第1装置例に係るICカードαに適用される通信方式切換メッセージ及び再送要求メッセージの各データ形式を示す図である。
【0058】
まず、同図(a)に示すように、本ICカードαが通信方式を最適なものへと切り換えようとする際に当該ICカードαからリーダライタに通知される通信方式切換メッセージ98は、同メッセージの種類を1バイトデータで表現したコマンド番号(通信方式切換メッセージ:「10h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、切り換えようとする通信方式の種類を1バイトデータで表現した通信方式識別子と、上記コマンド番号から通信方式識別子までの3要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0059】
一方、同図(b)に示すように、本ICカードα及びリーダライタがコマンド及びレスポンスの受信に失敗したときに相手方へ向け送信されると共に、リーダライタが本ICカードαから上記通信方式切換メッセージ98を受信したときに当該ICカードαに向け送信される再送要求メッセージ99は、同メッセージの種類を1バイトデータで表現したコマンド番号(再送要求メッセージ:「11h」)と、後続のデータのバイト数を2バイトデータで表現したメッセージ長と、上記コマンド番号及びメッセージ長の2要素分の連続データとの間で排他的論理和を計算したときの値が「00h」となるよう設定された、1バイトデータで表現されるエラーチェックとから構成される。
【0060】
以上の構成を採用することにより、この第1装置例に係るICカードαには、基本的に、以下に示すような種々の機能(▲1▼〜▲6▼)が具備されるようになる。
【0061】
▲1▼RF部8において、非接触による通信方式を任意のタイミングで切り換えると共に、インタフェース部において、接触による通信方式を任意のタイミングで切り換える機能.
【0062】
▲2▼リーダライタから任意のコマンドを受け取ったときに、そのコマンドの種類に応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能.
【0063】
▲3▼リーダライタから読出コマンド91を受け取った場合において、ID指定に係るファイルにつきファイル属性形式テーブル72に設定された読出時認証に関する情報(セキュリティ属性)が要(01h)のときに、セキュリティ状態テーブル61の読出コマンド部が済(01h)であれば以降の処理を行い、それ以外は、異常終了をレスポンスとして返す機能(読出時認証が不要(00h)のとき又はセキュリティ状態テーブル61の読出コマンド部が未(00h)のときは、指定された先頭アドレスから始まるデータを、指定された長さだけレスポンスとして返す).
【0064】
▲4▼リーダライタから書込コマンド93を受け取った場合において、ID指定に係るファイルにつきファイル属性形式テーブル72に設定された書込時認証に関する情報(セキュリティ属性)が要(01h)のときに、セキュリティ状態テーブル61の書込コマンド部が済(01h)であれば以降の処理を行い、それ以外は、異常終了をレスポンスとして返す機能(書込時認証が不要(00h)のとき又はセキュリティ状態テーブル61の書込コマンド部が未(00h)のときは、指定されたデータを、指定された先頭アドレスから指定された長さだけ書き換えて、正常終了をレスポンスとして返す).
【0065】
▲5▼リーダライタから認証コマンド95を受け取った場合において、ID指定に係る鍵につき鍵属性形式テーブル73に設定された鍵の内容により、指定された乱数データを暗号化し、この暗号化データと指定された暗号化データとが一致したときに、鍵属性形式テーブル73内の鍵の種類に指定されたコマンドに対応するセキュリティ状態テーブル61の該当部(読出し又は書込コマンド部)を済(01h)に変更し、正常終了をレスポンスとして返す機能(一致しないときは異常終了をレスポンスとして返す).
【0066】
▲6▼通信方式の切換処理終了後に、所定時間が経過してもコマンドが来ない場合に、先に切り換えた通信方式を元に戻して待機する機能.
【0067】
(第1方法例)
続いて、以上のように構成された第1装置例により実施されるICカード通信方式切換方法の具体例を説明する。
【0068】
まず、図7(a)及び(b)は、それぞれ、本発明の第1方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【0069】
同図(a)に示すように、本方法例では、ICカードαにおいて利用可能な複数の通信方式として、3つの通信方式、即ち、識別子「02h」により示される「方式B」,識別子「03h」により示される「方式C」,及び識別子「04h」により示される「方式D」がサポートされ、これら3つの通信方式が、その出現順に各通信方式番号「1」,「2」,及び「3」に割り当てられてなるICカードサポート通信方式リスト51aが、ROM5内に予め設定されているものとする。
【0070】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、5つの通信方式、即ち、「方式A(識別子:01h)」,「方式B(識別子:02h)」,「方式C(識別子:03h)」,「方式D(識別子:04h)」,及び「方式E(識別子:05h)」がサポートされているものとする。
【0071】
また、同図(b)に示すように、本方法例においては、ICカードαがリーダライタから受信したコマンドの種類が読出コマンド91(k=1)である場合の通信方式の選択優先順位を、「方式C」→「方式D」→「方式B」(即ち、数値「3」→「2」→「1」)の順とし、その種類が書込コマンド93(k=3)である場合の通信方式の選択優先順位を「方式D」→「方式C」→「方式B」の順とし、さらに、その種類が認証コマンド95(k=7)である場合の通信方式の選択優先順位を「方式B」→「方式C」→「方式D」の順とした通信方式選択優先順位テーブル52aが、同ROM5内に予め設定されているものとする。
【0072】
次に、図8(a)〜(e)は、それぞれ、本発明の第1方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル(2種)、及び鍵属性形式テーブル(1種)の各例を示す図である。
【0073】
同図に示すように、本方法例においては、ファイルIDとして「0001h」(ID=1)を付与されたファイルf1aと、同ファイルIDとして「0002h」(ID=2)を付与されたファイルf1bと、鍵IDとして「0003h」(ID=3)を付与された鍵k1aとが、ルートディレクトリd1(ディレクトリID:「0000h」)の直下に保持され、同状態のファイル構造がNVRAM7内に設定されているものとする(同図(a)及び(b)にそれぞれ示すファイル構造及びディレクトリ属性形式テーブル71aを参照)。
【0074】
ここで、ID=1のファイルf1aは、そのデータサイズが1024バイトであって、読み書きとも認証なしで行えるものとし(同図(c)に示すファイル属性形式テーブル72aを参照)、また、ID=2のファイルf1bは、データサイズが2048バイトであって、読出しは認証なしで行えるが書込みについては認証を要するものとする(同図(d)に示すファイル属性形式テーブル72bを参照)。
【0075】
さらに、ID=3の鍵k1aは、その種類が書込コマンド用のものであって、鍵長が16バイトの鍵の内容を保持しているものとする(同図(e)に示す鍵属性形式テーブル73aを参照)。
【0076】
以上の前提において、本発明の第1方法例に適用されるICカードαは、以下に示す一連の通信方式切換処理を実行する。
【0077】
まず、ICカードαは、所要の通信方式切換処理に際し、リーダライタとの間で通信初期化処理を実行し、当該リーダライタとの間で相互に利用可能な通信方式を認識する。
【0078】
このとき、ICカードαは、リーダライタから、同リーダライタが利用可能な5つの通信方式として「方式A」,「方式B」,「方式C」,「方式D」,及び「方式E」(各識別子「01h」,「02h」,「03h」,「04h」,及び「05h」)を取得し、ROM5内におけるICカードサポート通信方式リスト51aに自身が利用可能な3つの通信方式として設定された「方式B」,「方式C」,及び「方式D」(各識別子「02h」,「03h」,及び「04h」)との比較において、同リーダライタとの間で相互に利用可能な通信方式が「方式B(識別子:02h)」,「方式C(識別子:03h)」,及び「方式D(識別子:04h)」である旨を認識する。
【0079】
そして、ICカードαは、RAM6内における相互利用可能通信方式リスト62に、リーダライタとの間で相互に利用可能な通信方式として、認識した「方式B(識別子:02h)」,「方式C(識別子:03h)」,及び「方式D(識別子:04h)」を、各通信方式番号「1」,「2」,及び「3」にそれぞれ割り当てて設定すると共に、同RAM6内におけるセキュリティ状態テーブル61の値に初期値の「0000h」を設定し、さらに、リーダライタとの間の初期の通信方式を、識別子「02h」により示される「方式B」に仮設定する(ここでは、相互利用可能通信方式リスト62の先頭(通信方式番号「1」)に位置する通信方式を仮設定したに過ぎない。以下、各方法例において同じ)。
【0080】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ID=1のファイルf1aに関してアドレス0000hから128バイトのデータを読み出すために、ICカードαに対し「読出コマンド」を送信した場合、当該ICカードαは、まず、受信したコマンドの種類が読出コマンド91であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル72aの読出コマンド91に関するセキュリティ属性が「不要(00h)」であることを確認する(従って、上記鍵k1aに関する鍵の内容は、ここでは使用されない)。
【0081】
次に、ICカードαは、ROM5内におけるICカードサポート通信方式リスト51a及び通信方式選択優先順位テーブル52a、並びにRAM6内における相互利用可能通信方式リスト62を参照することにより、受信した読出コマンド91を実行するのに最適な通信方式として、識別子「03h」により示される「方式C」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【0082】
次に、ICカードαは、選択した「方式C」の通信方式が現在の「方式B」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式C」の通信方式識別子「03h」を内容に含んだ通信方式切換メッセージ98をリーダライタに送信し、その後、自己の通信方式を「方式C」に切り換える処理を行って、同リーダライタからの再送要求メッセージ99を待つ。
【0083】
これに対し、リーダライタは、ICカードαから通信方式切換メッセージ98を受信すると、その通信方式切換メッセージ98により通知された「方式C(識別子:03h)」の通信方式が利用可能なものである(「方式A」〜「方式E」に含まれている)ことを認識し、自己の通信方式を現在の「方式B」から「方式C」に切り換える処理を行って、所要の再送要求メッセージ99をICカードαに送信する。
【0084】
次に、ICカードαは、リーダライタから再送要求メッセージ99を受信すると、先に受信した読出コマンド91を実際に実行し、そのレスポンス(データの内容「01020304050607…」)をリーダライタへ送信する。
【0085】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ99を受信できなかった場合、ICカードαは、所定の時間待機した後に、RAM6内における相互利用可能通信方式リスト62から「方式C」の通信方式の項目を削除して、通信方式を元の「方式B」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【0086】
そして、リーダライタは、ICカードαから所要の読出コマンドレスポンス92を受信し、以下、ICカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【0087】
次に、図9は、本発明の第1方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【0088】
同図に示すように、ICカードα内のCPU4は、通信方式選択処理の実行に際し、まず、ROM5内の通信方式選択優先順位テーブル52aを参照することにより、通信方式の選択優先順位の最大値を得るための変数pmaxに、コマンド番号k(読出コマンド:k=1)に関して1番目(ROM5内のICカードサポート通信方式リスト51aにおける通信方式番号の順番を示す変数:i=1.図2(a)参照)に設定された通信方式である「方式B」の選択優先順位xk1(x11=1)を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数cmaxに、上記1番目の通信方式番号「1」を代入し、さらに、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数j(図2(c)参照)に、2番目の通信方式番号「2」を代入する(ST11)。
【0089】
次に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=2,d=03h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する(ST12)。
【0090】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル52aを参照することにより、コマンド番号kの値が「1」で通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位xki(x =3)を取得し、この選択優先順位を上記変数pmaxの値と比較するが(ST13)、取得した選択優先順位x12は現在の変数pmaxの値「1」よりも大きいため(ST13;>)、その変数pmaxに同選択優先順位x12(=3)を代入すると共に、前述したST12の処理で得た2番目の通信方式番号に関する変数iの値「2」を上記変数cmaxに代入する(ST14)。
【0091】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが(ST15)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST15;<)、その変数jをインクリメントして「3」とし(ST16)、さらに、前述したST12の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0092】
次に、ICカードα内のCPU4は、前述したST13の処理において、コマンド番号kの値が「1」で通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位xki(x13=2)を取得し、この選択優先順位を上記変数pmaxの値と比較するが、取得した選択優先順位x13は現在の変数pmaxの値「3」よりも小さいため(ST13;≦)、同変数pmax及び上記変数cmaxの書換えを行うことなく、前述したST15の処理において、現在の変数jの値(通信方式番号:j=3)と、通信方式番号最大値DMAX(=3)とを比較する。
【0093】
そして、以上の比較の結果、変数jの値が通信方式番号最大値DMAXに至って「j=DMAX」となったため(ST15;≧)、ICカードα内のCPU4は、このときの変数cmaxの値により示される2番目の通信方式番号の値「2」を変数Intfに代入する(ST17)。
【0094】
そして最後に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51aを参照することにより、上記変数Intfの値により示される2番目の通信方式番号の値「2」から、これに対応する「方式C」の通信方式が最も適したもの(最も優先順位の高いもの)であることを認識し、その通信方式を示す識別子「03h」を、前述した通信方式切換処理へと受け渡す。
【0095】
以上に説明した「読出コマンド」に関する処理に対し、リーダライタが、前述した通信初期化処理を経た状態において、例えば、ID=2のファイルf1bに関してアドレス0000hから1500バイトのデータを書き込むために、ICカードαに対し「書込コマンド」を送信しようとする場合、同リーダライタは、上記ファイルf1bに対するデータの書込み時に認証処理が必要であることを通信プログラム上で認識する。
【0096】
そして、リーダライタは、書込コマンド93の送信に先立ち、まず、自ら生成した乱数データと、自身が保持している書込コマンド用の鍵の内容で上記乱数データを暗号化して得た暗号化データとを含む「認証コマンド」をICカードαに送信して、ID=2のファイルf1bに関する認証処理を行う。
【0097】
この認証処理に伴い、ICカードαは、まず、受信したコマンドの種類が認証コマンド95であることを確認し、さらに、その認証コマンド95から得た乱数データを、同認証コマンド95内の鍵IDにより示される鍵属性形式テーブル73a内の鍵の内容で暗号化することにより、この暗号化により生成した暗号化データと認証コマンド95から得た暗号化データとを比較する。
【0098】
次に、ICカードαは、自ら生成した暗号化データと認証コマンド95から得た暗号化データとが一致した場合は、RAM6内におけるセキュリティ状態テーブル61に設定される書込コマンド93の状態を、未(00h)から済(01h)に変更して(セキュリティ状態テーブル61の値を初期値の「0000h」から「0001h」に変更して)、リーダライタに正常終了のレスポンスを返す(暗号化データが一致せずに認証が失敗した場合には、異常終了のレスポンスを返す)。
【0099】
これに対し、リーダライタは、ICカードαから正常終了のレスポンスを受け取ると、ここで初めて、所要の書込コマンド93をICカードαに送信する。そして、ICカードαは、まず、受信したコマンドの種類が書込コマンド93であることを確認し、さらに、RAM6内におけるセキュリティ状態テーブル61に設定された書込コマンド93の状態が、済(01h)であることを確認する。
【0100】
次に、ICカードαは、ROM5内におけるICカードサポート通信方式リスト51a及び通信方式選択優先順位テーブル52a、並びにRAM6内における相互利用可能通信方式リスト62を参照することにより、前述した通信方式選択処理(書込コマンド:k=3)を実行し、受信した書込コマンド93を実行するのに最適な通信方式として「方式D」を選択する。
【0101】
次に、ICカードαは、選択した「方式D」の通信方式が現在の「方式B」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式D」の通信方式識別子「04h」を内容に含んだ通信方式切換メッセージ98をリーダライタに送信し、その後、自己の通信方式を「方式D」に切り換える処理を行って、同リーダライタからの再送要求メッセージ99を待つ。
【0102】
これに対し、リーダライタは、ICカードαから通信方式切換メッセージ98を受信すると、その通信方式切換メッセージ98により通知された「方式D(識別子:04h)」の通信方式が利用可能なものである(「方式A」〜「方式E」に含まれている)ことを認識し、自己の通信方式を現在の「方式B」から「方式D」に切り換える処理を行って、所要の再送要求メッセージ99をICカードαに送信する。
【0103】
次に、ICカードαは、リーダライタから再送要求メッセージ99を受信すると、先に受信した書込コマンド93を実際に実行し、そのレスポンスをリーダライタへ送信する。
【0104】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ99を受信できなかった場合、ICカードαは、所定の時間待機した後に、RAM6内における相互利用可能通信方式リスト62から「方式D」の通信方式の項目を削除して、通信方式を元の「方式B」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【0105】
そして、リーダライタは、ICカードαから所要の書込コマンドレスポンス94を受信し、以下、ICカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【0106】
(第2装置例)
続いて、複数の通信方式の切換えが受信コマンドの内容を暗号化する際に適用される暗号方式の種類に応じて行われるよう構成された、本発明の第2装置例に係るICカードαについて説明する。
【0107】
図10は、本発明の第2装置例に係る構成を得るため図1に示したROM5に設定される通信方式選択優先順位テーブルを示す図である。
【0108】
同図に示すように、本ICカードαのROM5内における通信方式選択優先順位テーブル53には、リーダライタから送信される各種コマンド(受信コマンド)の内容を暗号化する際に適用される暗号方式の種類毎(「暗号化無し」,「暗号方式1」,「暗号方式2」,…,「暗号方式s」(s:暗号方式の最大存在数).l:暗号方式番号)に、前述のICカードサポート通信方式リスト51に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される(選択優先順位を示す数値は、図示の「暗号化無し」(l=0)の場合、x01,x02,…,x0CMAXの部分に割り当てられる。他の暗号方式についても同じ)。
【0109】
次に、図11(a)〜(d)は、それぞれ、本発明の第2装置例に係る構成を得るため図1に示したNVRAM7に設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【0110】
同図(a)に示すように、NVRAM7には、第1装置例におけるそれと同様に、ディレクトリd1〜d3(ルートディレクトリd1)を幹とし、ファイル(群)f1〜f3及び鍵(群)k1〜k3を葉としたツリー構造からなるファイル構造が設定される。
【0111】
一方、同図(b)〜(d)に示すように、NVRAM7内におけるディレクトリ属性形式テーブル71には、上記各ディレクトリd1〜d3に関し、本ICカードα全体でそれぞれ固有の値をとる2バイトのディレクトリID(ID:認証識別子)が設定されると共に(ルートディレクトリd1のディレクトリIDは「0000h」)、同NVRAM7内のファイル属性形式テーブル74には、上記各ファイルf1〜f3に関し、管理されるディレクトリd1〜d3内でそれぞれ固有の値をとる2バイトのファイルIDが、また、同NVRAM7内の鍵属性形式テーブル75には、上記各鍵k1〜k3に関し、管理されるディレクトリd1〜d3内でそれぞれ固有の値をとる2バイトの鍵IDが設定される。
【0112】
ここで、ファイル属性形式テーブル74は、存在する各ファイルを個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記ファイルIDの他、データを蓄積可能な最大バイト数を示すデータサイズと、該当するファイルの読出し又は書込みを行う際の認証処理の要否(認証要否)を示す情報(第1装置例におけるものと同じ形態)と、そのファイルの読出し又は書込みを行う際の暗号化処理の要否(暗号化要否)を示す情報(認証処理の要否を示す情報と併せ、以下、「セキュリティ属性」ともいう)と、実際に蓄積されるデータの内容とが含まれる。
【0113】
なお、上記暗号化要否を示す情報は、前1バイト及び後1バイトをそれぞれ読出し時及び書込み時における暗号化要否に割り当ててなる全体で2バイトのデータであり、具体的には、暗号化処理がファイルの読出し時にのみ必要な場合には「XX00h」なる値を、書込み時にのみ必要な場合には「00XXh」なる値を、読み書き双方で必要な場合には「XXXXh」なる値をとる(暗号化:要(XXh)・不要(00h).但し、「XXh」は、各暗号方式の種類を示す識別子を表す)。
【0114】
また、鍵属性形式テーブル75は、存在する各鍵を個々に管理するための属性情報を定義するものであり、その具体的な情報としては、上記鍵IDの他、該当する鍵が読出コマンド用、書込コマンド用又は暗号通信用の何れであるかを示す鍵の種類と、該当する鍵のバイト数(長さ)を示す鍵長と、実際に蓄積される鍵の内容とが含まれる。
【0115】
次に、図12(a)〜(f)は、それぞれ、本発明の第2装置例に係るICカードαに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【0116】
同図に示すように、本装置例では、第1装置例で説明したそれらと基本構成がほぼ同等な読出コマンド91a、読出コマンドレスポンス92a、書込コマンド93a、書込コマンドレスポンス94a、認証コマンド95a、及び認証コマンドレスポンス96aが適用される。
【0117】
即ち、本装置例で適用される各コマンド(レスポンス)91a〜96aには、コマンド番号の直後に、該当するコマンド(レスポンス)の内容を暗号化する際に適用すべき暗号方式の種類を1バイトデータで表現した暗号方式(00h:平文(暗号化無し)・XXh:種類(「暗号方式1」〜「暗号方式s」))が付加される。ここで、実際に暗号化の対象とされる各コマンド(レスポンス)の内容は、上記暗号方式以降に位置するメッセージ長及びエラーチェックを除いた連続データの部分(書込コマンドレスポンス94a及び認証コマンドレスポンス96aについては、エラーステータスの部分のみ)である。
【0118】
なお、第1装置例で適用した通信方式切換メッセージ98及び再送要求メッセージ99は本装置例でも同様に適用されるが、これら各メッセージ98及び99の内容に上記暗号方式を付加するか否かは任意である。
【0119】
以上の構成を採用することにより、この第2装置例に係るICカードαには、第1装置例における種々の機能(▲2▼を除く)の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの内容を暗号化する際に適用される暗号方式の種類に応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【0120】
(第2方法例)
続いて、以上のように構成された第2装置例により実施されるICカード通信方式切換方法の具体例を説明する。
【0121】
まず、図13(a)及び(b)は、それぞれ、本発明の第2方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【0122】
同図(a)に示すように、本方法例では、第1方法例におけるそれと同様、ICカードαにおいて利用可能な複数の通信方式として、3つの通信方式、即ち、識別子「02h」により示される「方式B」,識別子「03h」により示される「方式C」,及び識別子「04h」により示される「方式D」がサポートされ、これら3つの通信方式が、その出現順に各通信方式番号「1」,「2」,及び「3」に割り当てられてなるICカードサポート通信方式リスト51aが、ROM5内に予め設定されているものとする。
【0123】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、5つの通信方式、即ち、「方式A(識別子:01h)」,「方式B(識別子:02h)」,「方式C(識別子:03h)」,「方式D(識別子:04h)」,及び「方式E(識別子:05h)」がサポートされているものとする。
【0124】
また、同図(b)に示すように、本方法例においては、ICカードαがリーダライタから受信したコマンドの内容を暗号化する際に適用される暗号方式の種類が「暗号化無し」である場合の通信方式の選択優先順位を、「方式B」→「方式C」→「方式D」(即ち、数値「3」→「2」→「1」)の順とし、その種類が「暗号方式1」である場合の選択優先順位を「方式D」→「方式C」→「方式B」の順とし、さらに、その種類が「暗号方式2」である場合の選択優先順位を「方式D」→「方式B」→「方式C」の順とした通信方式選択優先順位テーブル53aが、同ROM5内に予め設定されているものとする。
【0125】
次に、図14(a)〜(f)は、それぞれ、本発明の第2方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル(2種)及び鍵属性形式テーブル(2種)の各例を示す図である。
【0126】
同図に示すように、本方法例においては、ファイルIDとして「0001h」(ID=1)を付与されたファイルf1aと、同ファイルIDとして「0002h」(ID=2)を付与されたファイルf1bと、鍵IDとして「0003h」(ID=3)を付与された鍵k1aと、同鍵IDとして「0004h」(ID=4)を付与された鍵k1bが、ルートディレクトリd1(ディレクトリID:「0000h」)の直下に保持され、同状態のファイル構造がNVRAM7内に設定されているものとする(同図(a)及び(b)にそれぞれ示すファイル構造及びディレクトリ属性形式テーブル71aを参照)。
【0127】
ここで、ID=1のファイルf1aは、そのデータサイズが1024バイトであって、読み書きとも認証なしで行え、かつ、読み書きとも暗号化が不要(即ち、「平文」)であるものとし(同図(c)に示すファイル属性形式テーブル74aを参照)、また、ID=2のファイルf1bは、データサイズが2048バイトであって、読出しは認証なしで行えるが書込みについては認証を要し、かつ、読み書きとも「暗号方式1(識別子:01h)」による暗号化が必要であるものとする(同図(d)に示すファイル属性形式テーブル74bを参照)。
【0128】
さらに、ID=3の鍵k1aは、その種類が書込コマンド用のものであって、鍵長が16バイトの鍵の内容を保持しているものとし(同図(e)に示す鍵属性形式テーブル73aを参照)、また、ID=4の鍵k1bは、種類が「暗号方式1」通信用のものであって、鍵長が16バイトの鍵の内容を保持しているものとする(同図(f)に示す鍵属性形式テーブル75aを参照)。
【0129】
以上の前提において、本発明の第2方法例に適用されるICカードαは、以下に示す一連の通信方式切換処理を実行する。
【0130】
まず、ICカードαは、所要の通信方式切換処理に際し、第1方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式B(識別子:02h)」,「方式C(識別子:03h)」,及び「方式D(識別子:04h)」である旨を認識し、RAM6内における相互利用可能通信方式リスト62に、上記各通信方式を各通信方式番号「1」,「2」,及び「3」にそれぞれ割り当てて設定すると共に、同RAM6内におけるセキュリティ状態テーブル61の値に初期値の「0000h」を設定し、さらに、リーダライタとの間の通信方式を「方式B」に仮設定する。
【0131】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ID=2のファイルf1bに関してアドレス0000hから1500バイトのデータを書き込むために、ICカードαに対し「書込コマンド」を送信しようとする場合、同リーダライタは、上記ファイルf1bに対するデータの書込み時に認証処理が必要であり、かつ、同ファイルf1bに対するデータの読出し時及び書込み時に暗号化処理が必要であることを通信プログラム上で認識する。
【0132】
そして、リーダライタは、書込コマンド93aの送信に先立ち、まず、自ら生成した乱数データと、自身が保持している書込コマンド用の鍵の内容で上記乱数データを暗号化して得た暗号化データとを含む「認証コマンド」をICカードαに送信して、ID=2のファイルf1bに関する認証処理を行う。
【0133】
この認証処理に伴い、ICカードαは、まず、受信したコマンドの種類が認証コマンド95aであることを確認し、さらに、その認証コマンド95aから得た乱数データを、同認証コマンド95a内の鍵IDにより示される鍵属性形式テーブル73a内の書込コマンド用の鍵の内容で暗号化することにより、この暗号化により生成した暗号化データと認証コマンド95aから得た暗号化データとを比較する。
【0134】
次に、ICカードαは、自ら生成した暗号化データと認証コマンド95aから得た暗号化データとが一致した場合は、RAM6内におけるセキュリティ状態テーブル61に設定される書込コマンド93aの状態を、未(00h)から済(01h)に変更して(セキュリティ状態テーブル61の値を初期値の「0000h」から「0001h」に変更して)、リーダライタに正常終了のレスポンスを返す(暗号化データが一致せずに認証が失敗した場合には、異常終了のレスポンスを返す)。
【0135】
これに対し、リーダライタは、ICカードαから正常終了のレスポンスを受け取ると、所要の書込コマンド93aの内容(ファイルID〜書込データ内容の連続データ)を、「暗号方式1」通信用の鍵の内容で暗号化すると共に、当該書込コマンド93aの上記内容が「暗号方式1」により暗号化されていることを示す識別子「01h」を暗号方式の項目に設定し、この暗号化後の書込コマンド93aをICカードαに送信する。
【0136】
そして、ICカードαは、まず、受信したコマンドの種類が書込コマンド93aであることを確認し、さらに、RAM6内におけるセキュリティ状態テーブル61に設定された書込コマンド93aの状態が、済(01h)であることを確認する。
【0137】
次に、ICカードαは、受信した暗号化後の書込コマンド93aの内容(ファイルID〜書込データ内容の連続データ)を鍵属性形式テーブル75a内の「暗号方式1」通信用の鍵の内容で復号化することにより、その書込コマンド93a全体を復元し、以下、ROM5内におけるICカードサポート通信方式リスト51a及び通信方式選択優先順位テーブル53a、並びにRAM6内における相互利用可能通信方式リスト62を参照することにより、復元した書込コマンド93aを実行するのに最適な通信方式として、識別子「04h」により示される「方式D」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【0138】
次に、ICカードαは、選択した「方式D」の通信方式が現在の「方式B」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式D」の通信方式識別子「04h」を内容に含んだ通信方式切換メッセージ98(図6(a)参照)をリーダライタに送信し、その後、自己の通信方式を「方式D」に切り換える処理を行って、同リーダライタからの再送要求メッセージ99(図6(b)参照)を待つ。
【0139】
これに対し、リーダライタは、ICカードαから通信方式切換メッセージ98を受信すると、その通信方式切換メッセージ98により通知された「方式D(識別子:04h)」の通信方式が利用可能なものである(「方式A」〜「方式E」に含まれている)ことを認識し、自己の通信方式を現在の「方式B」から「方式D」に切り換える処理を行って、所要の再送要求メッセージ99をICカードαに送信する。
【0140】
次に、ICカードαは、リーダライタから再送要求メッセージ99を受信すると、先に受信した書込コマンド93aを実際に実行し、そのレスポンスをリーダライタへ送信する。
【0141】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ99を受信できなかった場合、ICカードαは、所定の時間待機した後に、RAM6内における相互利用可能通信方式リスト62から「方式D」の通信方式の項目を削除して、通信方式を元の「方式B」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【0142】
そして、リーダライタは、ICカードαから所要の書込コマンドレスポンス94aを受信し、以下、ICカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【0143】
次に、図15は、本発明の第2方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【0144】
同図に示すように、ICカードα内のCPU4は、通信方式選択処理の実行に際し、まず、ROM5内の通信方式選択優先順位テーブル53aを参照することにより、通信方式の選択優先順位の最大値を得るための変数pmaxに、暗号方式番号l(暗号方式1:l=1)に関して1番目に設定された通信方式である「方式B」の選択優先順位xl1(x11=1)を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数cmaxに、上記1番目の通信方式番号「1」を代入し、さらに、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、2番目の通信方式番号「2」を代入する(ST21)。
【0145】
次に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=2,d=03h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する(ST22)。
【0146】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル53aを参照することにより、暗号方式番号lの値が「1」で通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位xli(x12=2)を取得し、この選択優先順位を上記変数pmaxの値と比較するが(ST23)、取得した選択優先順位x12は現在の変数pmaxの値「1」よりも大きいため(ST23;>)、その変数pmaxに同選択優先順位x12(=2)を代入すると共に、前述したST22の処理で得た2番目の通信方式番号「2」を上記変数cmaxに代入する(ST24)。
【0147】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが(ST25)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST25;<)、その変数jをインクリメントして「3」とし(ST26)、さらに、前述したST22の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0148】
次に、ICカードα内のCPU4は、前述したST23の処理において、暗号方式番号lの値が「1」で通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位xli(x13=3)を取得し、この選択優先順位を上記変数pmaxの値と比較するが、取得した選択優先順位x13は現在の変数pmaxの値「2」よりも大きいため、前述したST24の処理において、その変数pmaxに同選択優先順位x13(=3)を代入すると共に、前述したST22の処理で得た3番目の通信方式番号に関する変数iの値「3」を上記変数cmaxに代入する。
【0149】
次に、ICカードα内のCPU4は、前述したST25の処理において、現在の変数jの値(通信方式番号:j=3)と、通信方式番号最大値DMAX(=3)とを比較するが、この比較の結果、変数jの値が通信方式番号最大値DMAXに至って「j=DMAX」となったため(ST25;≧)、ICカードα内のCPU4は、このときの変数cmaxの値により示される3番目の通信方式番号の値「3」を変数Intfに代入する(ST27)。
【0150】
そして最後に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51aを参照することにより、上記変数Intfの値により示される3番目の通信方式番号の値「3」から、これに対応する「方式D」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「04h」を、前述した通信方式切換処理へと受け渡す。
【0151】
(第3装置例)
続いて、複数の通信方式の切換えが受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行われるよう構成された、本発明の第3装置例に係るICカードαについて説明する。
【0152】
図16(a)〜(c)は、それぞれ、本発明の第3装置例に係る構成を得るため図1に示したROM5に設定される通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルを示す図である。
【0153】
まず、同図(a)に示すように、本ICカードαのROM5内における通信方式選択優先順位テーブル54には、リーダライタから送信される各種コマンド(受信コマンド)の種類により特定される送受対象データのアクセスサイズの分類毎(「サイズ分類1」,「サイズ分類2」,…,「サイズ分類t」(t:サイズ分類の最大存在数).m:アクセスサイズ分類番号)に、前述のICカードサポート通信方式リスト51に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される(選択優先順位を示す数値は、図示の「サイズ分類1」(m=1)の場合、x11,x12,…,x1CMAXの部分に割り当てられる。他のサイズ分類についても同じ)。
【0154】
なお、ここにいう送受対象データとは、例えば、第1装置例で説明した読出コマンドレスポンス92中に含まれる読出データ内容や、書込コマンド93中に含まれる書込データ内容、或いは認証コマンド95中に含まれる乱数データ及び暗号化データなど、リーダライタと本ICカードαとの間で送受されるデータ全般を指す(以下、第1装置例で説明した各コマンド(レスポンス)91〜96の適用を前提とする)。
【0155】
一方、同図(b)に示すように、ROM5内におけるアクセスサイズ閾値分類テーブル55には、上記送受対象データのアクセスサイズに関する各サイズ分類毎の複数のサイズ閾値(g,g,…,gt−1,−)が、それぞれ範囲(0〜g,g+1〜g,…,gt−2+1〜gt−1,gt−1+1〜)を指定して1バイトデータの数値(バイト)により設定される。
【0156】
さらに、同図(c)に示すように、ROM5内におけるアクセスサイズ検査対象コマンドテーブル56には、受信コマンドの種類毎(「コマンド1」,「コマンド2」,…,「コマンドr」)に、同受信コマンドの種類により特定される送受対象データが含まれるコマンド又はコマンドレスポンスを示す1バイトデータ(00h:コマンド,01h:レスポンス)が定義される。
【0157】
以上の構成を採用することにより、この第3装置例に係るICカードαには、第1装置例における種々の機能(▲2▼を除く)の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの種類により特定される送受対象データのアクセスサイズに応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【0158】
(第3方法例)
続いて、以上のように構成された第3装置例により実施されるICカード通信方式切換方法の具体例を説明する。
【0159】
図17(a)〜(d)は、それぞれ、本発明の第3方法例に適用されるICカードサポート通信方式リスト、通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルの各例を示す図である。
【0160】
同図(a)に示すように、本方法例では、第1及び第2方法例におけるそれと同様、ICカードαにおいて利用可能な複数の通信方式として、3つの通信方式、即ち、識別子「02h」により示される「方式B」,識別子「03h」により示される「方式C」,識別子「04h」により示される「方式D」がサポートされ、これら3つの通信方式が、その出現順に各通信方式番号「1」,「2」,及び「3」に割り当てられてなるICカードサポート通信方式リスト51aが、ROM5内に予め設定されているものとする。
【0161】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、5つの通信方式、即ち、「方式A(識別子:01h)」,「方式B(識別子:02h)」,「方式C(識別子:03h)」,「方式D(識別子:04h)」,及び「方式E(識別子:05h)」がサポートされているものとする。
【0162】
また、同図(b)に示すように、本方法例においては、ICカードαがリーダライタから受信したコマンドの種類により特定される送受対象データのアクセスサイズの分類が「サイズ分類1」である場合の通信方式の選択優先順位を、「方式D」→「方式C」→「方式B」(即ち、数値「3」→「2」→「1」)の順とし、その分類が「サイズ分類2」である場合の選択優先順位を「方式C」→「方式B」→「方式D」の順とし、さらに、その分類が「サイズ分類3」である場合の選択優先順位を「方式B」→「方式C」→「方式D」の順とした通信方式選択優先順位テーブル54aが、同ROM5内に予め設定されているものとする。
【0163】
さらに、同図(c)に示すように、本方法例では、送受対象データのアクセスサイズに関する複数のサイズ閾値を3つに分類するものとし、それら3つの「サイズ分類1」,「サイズ分類2」,及び「サイズ分類3」に関するサイズ閾値(及び範囲)を、それぞれ「128バイト(0〜128バイト)」,「256バイト(129〜256バイト)」,及び「−(257バイト〜)」に設定してなるアクセスサイズ閾値分類テーブル55aが、同ROM5内に予め設定されているものとする。
【0164】
そして、同図(d)に示すように、本方法例におけるROM5内のアクセスサイズ検査対象コマンドテーブル56aには、例えば、受信コマンドがコマンド番号「1」の読出コマンド91である場合、送受対象データをなす読出データ内容が含まれるのは、対応する読出コマンドレスポンス92であるため、該当項目には、そのコマンドレスポンスを示す「01h」なる1バイトデータが定義され、また、受信コマンドがコマンド番号「3」の書込コマンド93である場合、送受対象データをなす書込データ内容が含まれるのは、同書込コマンド93自身であるため、該当項目には、そのコマンドを示す「00h」なる1バイトデータが定義される(コマンド番号「7」の認証コマンド95についても同様)。
【0165】
なお、本方法例においては、第1方法例に適用したファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル及び鍵属性形式テーブル(図8参照)がそのまま適用されるものとする。
【0166】
以上の前提において、本発明の第3方法例に適用されるICカードαは、以下に示す一連の通信方式切換処理を実行する。
【0167】
まず、ICカードαは、所要の通信方式切換処理に際し、第1及び第2方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式B(識別子:02h)」,「方式C(識別子:03h)」,及び「方式D(識別子:04h)」である旨を認識し、RAM6内における相互利用可能通信方式リスト62に、上記各通信方式を各通信方式番号「1」,「2」,及び「3」にそれぞれ割り当てて設定すると共に、同RAM6内におけるセキュリティ状態テーブル61の値に初期値の「0000h」を設定し、さらに、リーダライタとの間の通信方式を「方式B」に仮設定する。
【0168】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ID=1のファイルf1aに関してアドレス0000hから250バイトのデータを読み出すために、ICカードαに対し「読出コマンド」を送信した場合、当該ICカードαは、まず、受信したコマンドの種類が読出コマンド91であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル72aの読出コマンド91に関するセキュリティ属性が「不要(00h)」であることを確認する(従って、上記鍵k1aに関する鍵の内容は使用されない)。
【0169】
次に、ICカードαは、ROM5内におけるICカードサポート通信方式リスト51a、通信方式選択優先順位テーブル54a、アクセスサイズ閾値分類テーブル55a、及びアクセスサイズ検査対象コマンドテーブル56a、並びにRAM6内における相互利用可能通信方式リスト62を参照することにより、受信した読出コマンド91を実行するのに最適な通信方式として、識別子「03h」により示される「方式C」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【0170】
次に、ICカードαは、選択した「方式C」の通信方式が現在の「方式B」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式C」の通信方式識別子「03h」を内容に含んだ通信方式切換メッセージ98をリーダライタに送信し、その後、自己の通信方式を「方式C」に切り換える処理を行って、同リーダライタからの再送要求メッセージ99を待つ。
【0171】
これに対し、リーダライタは、ICカードαから通信方式切換メッセージ98を受信すると、その通信方式切換メッセージ98により通知された「方式C(識別子:03h)」の通信方式が利用可能なものである(「方式A」〜「方式E」に含まれている)ことを認識し、自己の通信方式を現在の「方式B」から「方式C」に切り換える処理を行って、所要の再送要求メッセージ99をICカードαに送信する。
【0172】
次に、ICカードαは、リーダライタから再送要求メッセージ99を受信すると、先に受信した読出コマンド91を実際に実行し、そのレスポンス(データの内容「01020304050607…」)をリーダライタへ送信する。
【0173】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ99を受信できなかった場合、ICカードαは、所定の時間待機した後に、RAM6内における相互利用可能通信方式リスト62から「方式C」の通信方式の項目を削除して、通信方式を元の「方式B」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【0174】
そして、リーダライタは、ICカードαから所要の読出コマンドレスポンス92を受信し、以下、ICカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【0175】
次に、図18は、本発明の第3方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【0176】
同図に示すように、ICカードα内のCPU4は、通信方式選択処理の実行に際し、まず、ROM5内のアクセスサイズ閾値分類テーブル55a及びアクセスサイズ検査対象コマンドテーブル56aを参照することにより、アクセスサイズ分類処理を実行し(ST31)、送受対象データのアクセスサイズ(250バイト)が「サイズ分類2」に含まれることを認識する。なお、このアクセスサイズ分類処理の詳細については後述する。
【0177】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル54aを参照することにより、通信方式の選択優先順位の最大値を得るための変数pmaxに、アクセスサイズ分類番号m(サイズ分類2:m=2)に関して1番目に設定された通信方式である「方式B」の選択優先順位xm1(x21=2)を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数cmaxに、上記1番目の通信方式番号「1」を代入し、さらに、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、2番目の通信方式番号「2」を代入する(ST32)。
【0178】
次に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=2,d=03h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する(ST33)。
【0179】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル54aを参照することにより、アクセスサイズ分類番号mの値が「2」で通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位xmi(x22=3)を取得し、この選択優先順位を上記変数pmaxの値と比較するが(ST34)、取得した選択優先順位x22は現在の変数pmaxの値「2」よりも大きいため(ST34;>)、その変数pmaxに同選択優先順位x22(=3)を代入すると共に、前述したST33の処理で得た2番目の通信方式番号に関する変数iの値「2」を上記変数cmaxに代入する(ST35)。
【0180】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが(ST36)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST36;<)、その変数jをインクリメントして「3」とし(ST37)、さらに、前述したST33の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0181】
次に、ICカードα内のCPU4は、前述したST34の処理において、アクセスサイズ分類番号mの値が「2」で通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位xmi(x23=1)を取得し、この選択優先順位を上記変数pmaxの値と比較するが、取得した選択優先順位x23は現在の変数pmaxの値「3」よりも小さいため(ST34;≦)、同変数pmax及び上記変数cmaxの書換えを行うことなく、前述したST36の処理において、現在の変数jの値(通信方式番号:j=3)と、通信方式番号最大値DMAX(=3)とを比較する。
【0182】
そして、以上の比較の結果、変数jの値が通信方式番号最大値DMAXに至って「j=DMAX」となったため(ST36;≧)、ICカードα内のCPU4は、このときの変数cmaxの値により示される2番目の通信方式番号の値「2」を変数Intfに代入する(ST38)。
【0183】
そして最後に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51aを参照することにより、上記変数Intfの値により示される2番目の通信方式番号の値「2」から、これに対応する「方式C」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「03h」を、前述した通信方式切換処理へと受け渡す。
【0184】
次に、図19は、図18に示した通信方式選択処理の過程で実行されるアクセスサイズ分類処理ST31を説明するためのフローチャートである。
【0185】
同図に示すように、ICカードα内のCPU4は、アクセスサイズ分類処理の実行に際し、まず、所要のアクセスサイズ分類番号mを得るための変数jに「1」を代入すると共に、アクセスサイズ閾値分類テーブル55aを参照することにより、上記アクセスサイズ分類番号mにアクセスサイズ分類の最大値を示す定数MAX_RLを代入する(ST311)。ここで、上記定数MAX_RLの値は、アクセスサイズ閾値分類テーブル55aから明らかなように「3」である。
【0186】
次に、ICカードα内のCPU4は、同ICカードαが今回受信した読出コマンド91から目的の送受対象データを特定するために、まず、ROM5内のアクセスサイズ検査対象コマンドテーブル56aを参照することにより、その送受対象データが読出コマンドレスポンス92に含まれ(01h:レスポンス)、当該送受対象データが、同読出コマンドレスポンス92中の読出データ内容であることを認識すると共に、その読出データ内容の読出データ長が250バイトであることを認識する。
【0187】
そして、ICカードα内のCPU4は、その認識した250バイトの読出データ長を、アクセスサイズ(データ長)を示す引数Lとして設定すると共に、アクセスサイズ閾値分類テーブル55aを再び参照することにより、j番目のサイズ閾値RL(j=1,RL=128バイト)を取得する。
【0188】
次に、ICカードα内のCPU4は、以上のようにして得た引数Lの値(250バイト)とサイズ閾値RLの値(j=1,RL=128バイト)とを比較するが(ST312)、引数Lの値は現在のサイズ閾値RLよりも大きいため(ST312;>)、さらに、現在の変数jの値(j=1)と定数MAX_RLの値(MAX_RL=3)とを比較する(ST313)。
【0189】
次に、ICカードα内のCPU4は、以上の比較の結果、変数jの値が定数MAX_RLの値よりも小さいため(ST313;<)、その変数jをインクリメントして「2」とし(ST314)、再びST312の処理において、引数Lの値(250バイト)とサイズ閾値RLの値(j=2,RL=256バイト)とを比較する。
【0190】
そして、以上の比較の結果、引数Lの値がサイズ閾値RLの値よりも大きくなったため(ST312;≦)、ICカードα内のCPU4は、このときの変数jの値「2」をアクセスサイズ分類番号mに代入して(ST315)、求める送受対象データのアクセスサイズが「サイズ分類2」に含まれることを認識する。
【0191】
(第4装置例)
続いて、複数の通信方式の切換えが受信コマンドの搬送時に得られる駆動電力の大きさに応じて行われるよう構成された、本発明の第4装置例に係るICカードαについて説明する。
【0192】
なお、上記駆動電力とは、ICカードαを非接触型として機能させた場合に、同ICカードαがリーダライタの有効電磁界内に進入したときにアンテナ2に生じる誘導起電力から得られる受信電力(RF部8による検出)を意味すると同時に、当該ICカードαを接触型として機能させた場合に、同ICカードαがリーダライタにセットされたときに当該リーダライタから金属端子面3を通じて与えられる供給電力(インタフェース部による検出)をも意味する。
【0193】
ここでは、上記2種類の駆動電力のうち、ICカードαを非接触型として機能させた場合の受信電力の大きさに応じて通信方式の切換えを行うための構成及び動作を中心に説明し、同ICカードαを接触型として機能させた場合の供給電力の大きさに応じて通信方式の切換えを行うための構成及び動作については、前者との重複を避けるため、専ら付加的な説明にとどめるものとする。
【0194】
図20(a)及び(b)は、それぞれ、本発明の第4装置例に係る構成を得るため図1に示したROM5に設定される通信方式選択優先順位テーブル及び受信電力閾値分類テーブルを示す図である。
【0195】
まず、同図(a)に示すように、本ICカードαのROM5内における通信方式選択優先順位テーブル57には、リーダライタから送信される各種コマンド(受信コマンド)の搬送時に得られる受信電力の大きさの分類毎(「電力分類1」,「電力分類2」,…,「電力分類u」(u:電力分類の最大存在数).n:受信電力分類番号)に、前述のICカードサポート通信方式リスト51に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される(選択優先順位を示す数値は、図示の「電力分類1」(n=1)の場合、x11,x12,…,x1CMAXの部分に割り当てられる。他の電力分類についても同じ)。
【0196】
ここで、本ICカードαを接触型として機能させる場合には、上記受信電力の大きさの分類に代えて、各種コマンドの搬送時に与えられる供給電力の大きさの分類毎に各通信方式の選択優先順位を設定してなる通信方式選択優先順位テーブル(図示せず)を、採用すればよい。
【0197】
一方、同図(b)に示すように、ROM5内における受信電力閾値分類テーブル58には、上記受信電力に関する各電力分類毎の複数の受信電力閾値(h,h,…,hu−1,−)が、それぞれ範囲(0〜h,h 〜h,…,hu−2 〜hu−1,hu−1 〜)を指定して1バイトデータの数値(mW:ミリワット)により設定される(範囲の下限値に付される符号「」は、その下限値自身を含まないことを表し、例えば、「h 〜h」は、「hを超えh以下」であることを意味する。以下同じ)。
【0198】
ここで、本ICカードαを接触型として機能させる場合には、上記受信電力に関する受信電力閾値に代えて、各種コマンドの搬送時に与えられる供給電力に関する複数の供給電力閾値(上限値)を各分類毎に設定してなる供給電力閾値分類テーブル(図示せず)を、採用すればよい。
【0199】
以上の構成を採用することにより、この第4装置例に係るICカードαには、第1装置例における種々の機能(▲2▼を除く)の他に、以下の機能、即ち、リーダライタから任意のコマンドを受け取ったときに、そのコマンドの搬送時に得られる受信電力(又は供給電力)の大きさに応じた最適な通信方式を選択し、当該通信方式が現在の通信方式と異なる場合に、リーダライタへのレスポンスとして通信方式切換メッセージを送信すると共に、当該メッセージの送信完了後に現在の自己の通信方式を最適な通信方式へと切り換えて、リーダライタからの再送要求メッセージを待つ機能、が具備されるようになる。
【0200】
(第4方法例)
続いて、以上のように構成された第4装置例により実施されるICカード通信方式切換方法の具体例を説明する。
【0201】
図21(a)〜(c)は、それぞれ、本発明の第4方法例に適用されるICカードサポート通信方式リスト、通信方式選択優先順位テーブル、及び受信電力閾値分類テーブルの各例を示す図である。
【0202】
同図(a)に示すように、本方法例では、第1〜第3方法例におけるそれと同様、ICカードαにおいて利用可能な複数の通信方式として、3つの通信方式、即ち、識別子「02h」により示される「方式B」,識別子「03h」により示される「方式C」,識別子「04h」により示される「方式D」がサポートされ、これら3つの通信方式が、その出現順に各通信方式番号「1」,「2」,及び「3」に割り当てられてなるICカードサポート通信方式リスト51aが、ROM5内に予め設定されているものとする。
【0203】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、5つの通信方式、即ち、「方式A(識別子:01h)」,「方式B(識別子:02h)」,「方式C(識別子:03h)」,「方式D(識別子:04h)」,及び「方式E(識別子:05h)」がサポートされているものとする。
【0204】
また、同図(b)に示すように、本方法例においては、ICカードαがリーダライタから受信したコマンドの搬送時に得られる受信電力の分類が「電力分類1」である場合の通信方式の選択優先順位を、「方式D」→「方式C」→「方式B」(即ち、数値「3」→「2」→「1」)の順とし、その分類が「電力分類2」である場合の選択優先順位を「方式C」→「方式B」→「方式D」の順とし、さらに、その分類が「電力分類3」である場合の選択優先順位を「方式B」→「方式C」→「方式D」の順とした通信方式選択優先順位テーブル54aが、同ROM5内に予め設定されているものとする(供給電力により分類を行う場合においても同様に設定される)。
【0205】
さらに、同図(c)に示すように、本方法例では、受信電力に関する複数の受信電力閾値を3つに分類するものとし、それら3つの「電力分類1」,「電力分類2」,及び「電力分類3」に関する受信電力閾値(及び範囲)を、それぞれ「4mW(0〜4mW)」,「8mW(4〜8mW)」,及び「−(8mW〜)」に設定してなる受信電力閾値分類テーブル58aが、同ROM5内に予め設定されているものとする(供給電力により分類を行う場合においても同様に設定される)。
【0206】
なお、本方法例においては、第1方法例に適用したファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル及び鍵属性形式テーブル(図8参照)がそのまま適用されるものとする。
【0207】
以上の前提において、本発明の第4方法例に適用されるICカードαは、以下に示す一連の通信方式切換処理を実行する。
【0208】
まず、ICカードαは、所要の通信方式切換処理に際し、第1〜第3方法例における場合と同様な通信初期化処理を実行することにより、リーダライタとの間で相互に利用可能な通信方式が、「方式B(識別子:02h)」,「方式C(識別子:03h)」,及び「方式D(識別子:04h)」である旨を認識し、RAM6内における相互利用可能通信方式リスト62に、上記各通信方式を各通信方式番号「1」,「2」,及び「3」にそれぞれ割り当てて設定すると共に、同RAM6内におけるセキュリティ状態テーブル61の値に初期値の「0000h」を設定し、さらに、リーダライタとの間の通信方式を「方式B」に仮設定する。
【0209】
以上の通信初期化処理を経た状態において、リーダライタが、例えば、ID=1のファイルf1aに関してアドレス0000hから1500バイトのデータを読み出すために、ICカードαに対し「読出コマンド」を送信した場合、当該ICカードαは、まず、受信したコマンドの搬送時、即ち、同ICカードαがリーダライタの有効電磁界内に進入したときにアンテナ2に誘起する誘導起電力から得られる受信電力をRF部8において検出し、その検出した受信電力の値を、アナログ・デジタル変換を行うなどして任意の一時記憶手段(RAM6やNVRAM7など)に保持する。ここでは、RF部8において検出され一時記憶手段に保持された受信電力の値が「5mW」であったと想定する。
【0210】
これに対し、本ICカードαを接触型として機能させる場合には、受信したコマンドの搬送時、即ち、同ICカードαがリーダライタにセットされたときに金属端子面3を通じて得られる供給電力をインタフェース部において検出し、その検出した供給電力の値を、アナログ・デジタル変換を行うなどして任意の一時記憶手段(RAM6やNVRAM7など)に保持する。
【0211】
次に、ICカードαは、受信電力(又は供給電力)を保持すると、受信したコマンドの種類が読出コマンド91であることをコマンド番号から確認し、さらに、該当するファイル属性形式テーブル72aの読出コマンド91に関するセキュリティ属性が「不要(00h)」であることを確認する(従って、上記鍵k1aに関する鍵の内容は使用されない)。
【0212】
次に、ICカードαは、ROM5内におけるICカードサポート通信方式リスト51a、通信方式選択優先順位テーブル57a、及び受信電力閾値分類テーブル58a(供給電力閾値分類テーブル)、並びにRAM6内における相互利用可能通信方式リスト62を参照することにより、受信した読出コマンド91を実行するのに最適な通信方式として、識別子「03h」により示される「方式C」を選択する。なお、このときの通信方式選択処理の詳細については後述する。
【0213】
次に、ICカードαは、選択した「方式C」の通信方式が現在の「方式B」の通信方式と異なることから、これを所要の通信方式に切り換えるために、その「方式C」の通信方式識別子「03h」を内容に含んだ通信方式切換メッセージ98をリーダライタに送信し、その後、自己の通信方式を「方式C」に切り換える処理を行って、同リーダライタからの再送要求メッセージ99を待つ。
【0214】
これに対し、リーダライタは、ICカードαから通信方式切換メッセージ98を受信すると、その通信方式切換メッセージ98により通知された「方式C(識別子:03h)」の通信方式が利用可能なものである(「方式A」〜「方式E」に含まれている)ことを認識し、自己の通信方式を現在の「方式B」から「方式C」に切り換える処理を行って、所要の再送要求メッセージ99をICカードαに送信する。
【0215】
次に、ICカードαは、リーダライタから再送要求メッセージ99を受信すると、先に受信した読出コマンド91を実際に実行し、そのレスポンス(データの内容「01020304050607…」)をリーダライタへ送信する。
【0216】
但し、突発的な通信障害などによりリーダライタから再送要求メッセージ99を受信できなかった場合、ICカードαは、所定の時間待機した後に、RAM6内における相互利用可能通信方式リスト62から「方式C」の通信方式の項目を削除して、通信方式を元の「方式B」に戻し、以降、リーダライタからの新たなコマンドを待つ。
【0217】
そして、リーダライタは、ICカードαから所要の読出コマンドレスポンス92を受信し、以下、ICカードα及びリーダライタは、上述した一連の処理を繰り返し実行する。
【0218】
次に、図22は、本発明の第4方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである(以下、ICカードαを非接触型として機能させる場合に説明を限定する)。
【0219】
同図に示すように、ICカードα内のCPU4は、通信方式選択処理の実行に際し、まず、ROM5内の受信電力閾値分類テーブル58aを参照することにより、受信電力分類処理を実行し(ST41)、受信電力の大きさ(5mW)が「電力分類2」に含まれることを認識する。なお、この受信電力分類処理の詳細については後述する。
【0220】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル57aを参照することにより、通信方式の選択優先順位の最大値を得るための変数pmaxに、受信電力分類番号n(電力分類2:n=2)に関して1番目に設定された通信方式である「方式B」の選択優先順位xn1(x21=2)を代入すると共に、当該通信方式の選択優先順位が最大となる通信方式番号を得るための変数cmaxに、上記1番目の通信方式番号「1」を代入し、さらに、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、2番目の通信方式番号「2」を代入する(ST42)。
【0221】
次に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=2,d=03h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する(ST43)。
【0222】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル57aを参照することにより、受信電力分類番号nの値が「2」で通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位xni(x22=3)を取得し、この選択優先順位を上記変数pmaxの値と比較するが(ST44)、取得した選択優先順位x22は現在の変数pmaxの値「2」よりも大きいため(ST44;>)、その変数pmaxに同選択優先順位x22(=3)を代入すると共に、前述したST43の処理で得た2番目の通信方式番号に関する変数iの値「2」を上記変数cmaxに代入する(ST45)。
【0223】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが(ST46)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST46;<)、その変数jをインクリメントして「3」とし(ST47)、さらに、前述したST43の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0224】
次に、ICカードα内のCPU4は、前述したST44の処理において、受信電力分類番号nの値が「2」で通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位xni(x23=1)を取得し、この選択優先順位を上記変数pmaxの値と比較するが、取得した選択優先順位x23は現在の変数pmaxの値「3」よりも小さいため(ST44;≦)、同変数pmax及び上記変数cmaxの書換えを行うことなく、前述したST46の処理において、現在の変数jの値(通信方式番号:j=3)と、通信方式番号最大値DMAX(=3)とを比較する。
【0225】
そして、以上の比較の結果、変数jの値が通信方式番号最大値DMAXに至って「j=DMAX」となったため(ST46;≧)、ICカードα内のCPU4は、このときの変数cmaxの値により示される2番目の通信方式番号の値「2」を変数Intfに代入する(ST48)。
【0226】
そして最後に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51aを参照することにより、上記変数Intfの値により示される2番目の通信方式番号の値「2」から、これに対応する「方式C」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「03h」を、前述した通信方式切換処理へと受け渡す。
【0227】
次に、図23は、図22に示した通信方式選択処理の過程で実行される受信電力分類処理ST41を説明するためのフローチャートである。
【0228】
同図に示すように、ICカードα内のCPU4は、受信電力分類処理の実行に際し、まず、所要の受信電力分類番号nを得るために設定した変数jに「1」を代入すると共に、受信電力閾値分類テーブル58aを参照することにより、上記受信電力分類番号nに受信電力分類の最大値を示す定数MAX_RPを代入する(ST411)。ここで、上記定数MAX_RPの値は、受信電力閾値分類テーブル58aから明らかなように「3」である。
【0229】
次に、ICカードα内のCPU4は、一時記憶手段に保持してある5mWなる受信電力の値を、その受信電力を示す引数Pとして設定すると共に、受信電力閾値分類テーブル58aを再び参照することにより、j番目の受信電力閾値RP(j=1,RP=4mW)を取得する。
【0230】
次に、ICカードα内のCPU4は、以上の引数Pの値(5mW)と受信電力閾値RPの値(j=1,RP=4mW)とを比較するが(ST412)、引数Pの値は現在の受信電力閾値RPよりも大きいため(ST412;>)、さらに、現在の変数jの値(j=1)と定数MAX_RPの値(MAX_RP=3)とを比較する(ST413)。
【0231】
次に、ICカードα内のCPU4は、以上の比較の結果、変数jの値が定数MAX_RPの値よりも小さいため(ST413;<)、その変数jをインクリメントして「2」とし(ST414)、再びST412の処理において、引数Pの値(5mW)と受信電力閾値RPの値(j=2,RP=8mW)とを比較する。
【0232】
そして、以上の比較の結果、引数Pの値が受信電力閾値RPの値よりも大きくなったため(ST412;≦)、ICカードα内のCPU4は、このときの変数jの値「2」を受信電力分類番号nに代入して(ST415)、求める受信電力の大きさが「電力分類2」に含まれることを認識する。
【0233】
(第5装置例)
最後に、複数の通信方式の切換えが第1〜第4装置例の組み合せにより自在に行われるよう構成された、本発明の第5装置例に係るICカードαについて説明する(ICカードαを非接触型として機能させる場合に説明を限定する)。
【0234】
図24は、本発明の第5装置例に係る構成を得るため図1に示したROM5に設定される通信方式選択優先順位テーブルを示す図である。
【0235】
同図(a)に示すように、本ICカードαのROM5内における通信方式選択優先順位テーブル59には、リーダライタから送信される各種コマンド(受信コマンド)の種類毎、その内容を暗号化する際に適用すべき暗号方式の種類毎、その種類により特定される送受対象データのアクセスサイズの分類毎、及びその搬送時に得られる受信電力の大きさの分類毎に、前述のICカードサポート通信方式リスト51に規定される各通信方式の選択優先順位が、それら各通信方式の出現順に数値により設定される(選択優先順位を示す数値は、図示のコマンド種類における「コマンド1」(k=1)の場合にはx111,x112,…,x11CMAXの部分に、暗号方式種類における「暗号化無し」(l=0)の場合にはx201,x202,…,x20CMAXの部分に、アクセスサイズ分類における「サイズ分類1」(m=1)の場合にはx311,x312,x31CMAX,…の部分に、受信電力分類における「電力分類1」(n=1)の場合にはx411,x412,x41CMAX,…の部分にそれぞれ割り当てられる)。
【0236】
以上の構成を採用することにより、この第5装置例に係るICカードαには、第1〜第4装置例における種々の機能が全て具備されるようになる。
【0237】
(第5方法例)
続いて、以上のように構成された第5装置例により実施されるICカード通信方式切換方法の具体例を説明する。
【0238】
図25(a)及び(b)は、それぞれ、本発明の第5方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【0239】
同図(a)に示すように、本方法例では、第1〜第4方法例におけるそれと同様、ICカードαにおいて利用可能な複数の通信方式として、3つの通信方式、即ち、識別子「02h」により示される「方式B」,識別子「03h」により示される「方式C」,識別子「04h」により示される「方式D」がサポートされ、これら3つの通信方式が、その出現順に各通信方式番号「1」,「2」,及び「3」に割り当てられてなるICカードサポート通信方式リスト51aが、ROM5内に予め設定されているものとする。
【0240】
これに対し、リーダライタにおいて利用可能な複数の通信方式としては、5つの通信方式、即ち、「方式A(識別子:01h)」,「方式B(識別子:02h)」,「方式C(識別子:03h)」,「方式D(識別子:04h)」,及び「方式E(識別子:05h)」がサポートされているものとする。
【0241】
また、同図(b)に示すように、本方法例においては、第1〜第4方法例においてそれぞれ示した通信方式の選択優先順位を複合化してなる通信方式選択優先順位テーブル59aが、同ROM5内に予め設定されているものとする(更なる詳細は、対応する各方法例を参照)。
【0242】
なお、以降の説明では、通信方式切換処理の過程で実行される本方法例に特徴的な通信方式選択処理のみを説明するものとし、その前提として、ICカードαがリーダライタから受信した受信コマンドに関するコマンド種類が「書込コマンド」で、暗号方式種類が「暗号方式1」で、アクセスサイズ分類が「サイズ分類1」で、受信電力分類が「電力分類1」であるものとする(第1〜第4方法例で説明した各手法を用いることにより、各項目の認識が事前に行われるものとする)。また、リーダライタとの間の現在の通信方式は、通信方式番号「2」により示される「方式C」であるものとする。
【0243】
次に、図26は、本発明の第5方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【0244】
同図に示すように、ICカードα内のCPU4は、通信方式選択処理の実行に際し、まず、ROM5内の通信方式選択優先順位テーブル59aを参照することにより、コマンド種類による重み計算処理(ST51)、暗号方式種類による重み計算処理(ST52)、アクセスサイズ分類による重み計算処理(ST53)、及び受信電力分類による重み計算処理(ST54)のうち少なくとも1以上の処理を実行する。なお、これら重み計算処理の詳細については後述するものとし、ここでは、全ての重み計算処理を実行するものとする。
【0245】
そして、以上の各重み計算処理を実行した結果、上記受信コマンドの各項目に関する前提から、通信方式番号「1」により示される「方式B」の通信方式に関する選択優先順位重み累積値(詳細は後述)として、「4」なる値が取得され、通信方式番号「2」により示される「方式C」の通信方式に関する選択優先順位重み累積値として、「8」なる値が取得され、通信方式番号「3」により示される「方式D」の通信方式に関する選択優先順位重み累積値として、「12」なる値が取得されたものとする。
【0246】
次に、ICカードα内のCPU4は、現在の通信方式番号z(=2)に関する選択優先順位重み累積値yの値(z=2,y=8)を、その現在の選択優先順位重み累積値を示す定数PNOWに代入すると共に、上記選択優先順位重み累積値の最大値を得るための変数PMAXに、1番目の通信方式番号に関する選択優先順位重み累積値y(=4)を代入し、さらに、通信方式番号iに関する選択優先順位重み累積値が最大となる通信方式番号を得るための変数qmaxに、上記1番目の通信方式番号「1」を代入すると共に、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、2番目の通信方式番号「2」を代入する(ST55)。
【0247】
次に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=2,d=03h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する(ST56)。
【0248】
次に、ICカードα内のCPU4は、通信方式番号iの値が「2」のときの選択優先順位重み累積値y(y=8)を取得し、この選択優先順位重み累積値を変数PMAXの値と比較するが(ST57)、取得した選択優先順位重み累積値yは現在の変数PMAXの値「4」よりも大きいため(ST57;>)、その変数PMAXに同選択優先順位重み累積値y(=8)を代入すると共に、前述したST56の処理で得た2番目の通信方式番号に関する変数iの値「2」を上記変数qmaxに代入する(ST58)。
【0249】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが(ST59)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST59;<)、その変数jをインクリメントして「3」とし(ST60)、さらに、前述したST56の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0250】
次に、ICカードα内のCPU4は、前述したST57の処理において、通信方式番号iの値が「3」のときの選択優先順位重み累積値y(y=12)を取得し、この選択優先順位重み累積値を変数PMAXの値と比較するが、取得した選択優先順位重み累積値yは現在の変数PMAXの値「8」よりも大きいため、前述したST58の処理において、その変数PMAXに同選択優先順位重み累積値y(=12)を代入すると共に、前述したST56の処理で得た3番目の通信方式番号に関する変数iの値「3」を上記変数qmaxに代入する。
【0251】
次に、ICカードα内のCPU4は、前述したST59の処理において、現在の変数jの値(通信方式番号:j=3)と、通信方式番号最大値DMAX(=3)とを比較するが、この比較の結果、変数jの値が通信方式番号最大値DMAXに至って「j=DMAX」となったため(ST59;≧)、ICカードα内のCPU4は、変数PMAXの値(=12)から定数PNOWの値(=8)を除した値(12−8=4)を、事前に設定された差分値DIFと比較する(ST61)。
【0252】
なお、上記差分値DIFを適用するのは、変数PMAXが現在の選択優先順位重み累積値PNOWと殆ど差がない場合(例えば、差が「1」の場合など)、敢えて通信方式の切換えを行ってもその最適化があまり見込めず、かえって処理の遅延を招くなどの逆効果が生じるのを防止するためである。
【0253】
ここで、上記差分値DIFとして、例えば、「5」なる値が事前に設定され、「PMAX−PNOW(=4)≦DIF(=5)」となった場合(ST61;≦)、ICカードα内のCPU4は、通信方式の切換えを敢えて行う必要がないとして、変数qmaxに現在の通信方式番号z(=2)をそのまま代入し(ST62)、そのqmaxの値により示される2番目の通信方式番号の値「2」を変数Intfに代入する(ST63)。
【0254】
これに対し、上記差分値DIFとして、例えば、「3」なる値が事前に設定され、「PMAX−PNOW(=4)>DIF(=3)」となった場合(ST61;>)、ICカードα内のCPU4は、通信方式の切換えを行うべきであるとして、ST62の処理において変数qmaxの書換えを行うことなく、上述したST63の処理において、最終的に得た変数qmaxの値により示される3番目の通信方式番号の値「3」を変数Intfに代入する。
【0255】
そして最後に、ICカードα内のCPU4は、ROM5内のICカードサポート通信方式リスト51aを参照することにより、「PMAX−PNOW≦DIF」の場合には、上記変数Intfの値により示される2番目の通信方式番号の値「2」から、これに対応する「方式C」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「03h」を、前述した通信方式切換処理へと受け渡し、「PMAX−PNOW>DIF」の場合には、上記変数Intfの値により示される3番目の通信方式番号の値「3」から、これに対応する「方式D」の通信方式が最も適したものであることを認識し、その通信方式を示す識別子「04h」を、前述した通信方式切換処理へと受け渡す。
【0256】
次に、図27は、図26に示した通信方式選択処理の過程で実行されるコマンド種類による重み計算処理ST51を説明するためのフローチャートである。
【0257】
同図に示すように、ICカードα内のCPU4は、まず、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、1番目の通信方式番号「1」を代入すると共に(ST511)、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=1,d=02h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「1」を変数iに代入する(ST512)。
【0258】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル59aを参照することにより、コマンド番号kの値が「書込コマンド」を示す「2」で、通信方式番号iの値が「1」のときの通信方式である「方式B」の選択優先順位x1ki(x121=1)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=1,y=0:初期値)に加算し(ST513)、この結果、通信方式番号「1」に関する選択優先順位重み累積値y(=1)を得る。
【0259】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=1)と、通信方式番号最大値DMAX(=3)とを比較するが(ST514)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST514;<)、その変数jをインクリメントして「2」とし(ST515)、さらに、前述したST512の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する。
【0260】
次に、ICカードα内のCPU4は、前述したST513の処理において、コマンド番号kの値が「書込コマンド」を示す「2」で、通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位x1ki(x122=2)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=2,y=0:初期値)に加算し、この結果、通信方式番号「2」に関する選択優先順位重み累積値y(=2)を得る。
【0261】
次に、ICカードα内のCPU4は、前述したST514の処理において、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため、前述したST515の処理において、その変数jをインクリメントして「3」とし、さらに、前述したST512の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0262】
次に、ICカードα内のCPU4は、前述したST513の処理において、コマンド番号kの値が「書込コマンド」を示す「2」で、通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位x1ki(x123=3)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=3,y=0:初期値)に加算し、この結果、通信方式番号「3」に関する選択優先順位重み累積値y(=3)を得る。
【0263】
そして、以上の重み計算処理の結果、コマンド種類が「書込コマンド」の場合の各通信方式番号「1」,「2」,及び「3」の選択優先順位重み累積値yが、それぞれ「1」,「2」,及び「3」として取得され、ICカードα内のCPU4は、これらの値を、暗号方式種類による重み計算処理ST52へ受け渡す。
【0264】
次に、図28は、図26に示した通信方式選択処理の過程で実行される暗号方式種類による重み計算処理ST52を説明するためのフローチャートである。
【0265】
同図に示すように、ICカードα内のCPU4は、まず、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、1番目の通信方式番号「1」を代入すると共に(ST521)、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=1,d=02h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「1」を変数iに代入する(ST522)。
【0266】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル59aを参照することにより、暗号方式番号lの値が「暗号方式1」を示す「1」で、通信方式番号iの値が「1」のときの通信方式である「方式B」の選択優先順位x2li(x211=1)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=1,y=1:既得値)に加算し(ST523)、この結果、通信方式番号「1」に関する選択優先順位重み累積値y(=2)を得る。
【0267】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=1)と、通信方式番号最大値DMAX(=3)とを比較するが(ST524)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST524;<)、その変数jをインクリメントして「2」とし(ST525)、さらに、前述したST522の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する。
【0268】
次に、ICカードα内のCPU4は、前述したST523の処理において、暗号方式番号lの値が「暗号方式1」を示す「1」で、通信方式番号iの値が「2」のときの通信方式である「方式C」選択優先順位x2li(x212=2)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=2,y=2:既得値)に加算し、この結果、通信方式番号「2」に関する選択優先順位重み累積値y(=4)を得る。
【0269】
次に、ICカードα内のCPU4は、前述したST524の処理において、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため、前述したST525の処理において、その変数jをインクリメントして「3」とし、さらに、前述したST522の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0270】
次に、ICカードα内のCPU4は、前述したST523の処理において、暗号方式番号lの値が「暗号方式1」を示す「1」で、通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位x2ki(x213=3)を取得し、この選択優先順位を、現在の通信方式番号iにおける選択優先順位重み累積値yの値(i=3,y=3:既得値)に加算し、この結果、通信方式番号「3」に関する選択優先順位重み累積値y(=6)を得る。
【0271】
そして、以上の重み計算処理の結果、暗号方式番号が「暗号方式1」の場合の各通信方式番号「1」,「2」,及び「3」の選択優先順位重み累積値yが、それぞれ「2」,「4」,及び「6」として取得され、ICカードα内のCPU4は、これらの値を、アクセスサイズ分類による重み計算処理ST53へ受け渡す。
【0272】
次に、図29は、図26に示した通信方式選択処理の過程で実行されるアクセスサイズ分類による重み計算処理ST53を説明するためのフローチャートである。
【0273】
同図に示すように、ICカードα内のCPU4は、まず、前述したST31のアクセスサイズ分類処理を経た後に、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、1番目の通信方式番号「1」を代入すると共に(ST531)、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=1,d=02h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「1」を変数iに代入する(ST532)。
【0274】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル59aを参照することにより、アクセスサイズ分類番号mの値が「サイズ分類1」を示す「1」で、通信方式番号iの値が「1」のときの通信方式である「方式B」の選択優先順位x3mi(x311=1)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=1,y=2:既得値)に加算し(ST533)、この結果、通信方式番号「1」に関する選択優先順位重み累積値y(=3)を得る。
【0275】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=1)と、通信方式番号最大値DMAX(=3)とを比較するが(ST534)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST534;<)、その変数jをインクリメントして「2」とし(ST535)、さらに、前述したST532の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する。
【0276】
次に、ICカードα内のCPU4は、前述したST533の処理において、アクセスサイズ分類番号mの値が「サイズ分類1」を示す「1」で、通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位x3mi(x312=2)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=2,y=4:既得値)に加算し、この結果、通信方式番号「2」に関する選択優先順位重み累積値y(=6)を得る。
【0277】
次に、ICカードα内のCPU4は、前述したST534の処理において、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため、前述したST535の処理において、その変数jをインクリメントして「3」とし、さらに、前述したST532の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0278】
次に、ICカードα内のCPU4は、前述したST533の処理において、アクセスサイズ分類番号mの値が「サイズ分類1」を示す「1」で、通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位x3mi(x313=3)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=3,y=6:既得値)に加算し、この結果、通信方式番号「3」に関する選択優先順位重み累積値y(=9)を得る。
【0279】
そして、以上の重み計算処理の結果、アクセスサイズ分類が「サイズ分類1」の場合の各通信方式番号「1」,「2」,及び「3」の選択優先順位重み累積値yが、それぞれ「3」,「6」,及び「9」として取得され、ICカードα内のCPU4は、これらの値を、受信電力分類による重み計算処理ST54へ受け渡す。
【0280】
次に、図30は、図26に示した通信方式選択処理の過程で実行される受信電力分類による重み計算処理ST54を説明するためのフローチャートである。
【0281】
同図に示すように、ICカードα内のCPU4は、まず、前述したST41の受信電力分類処理を経た後に、RAM6内の相互利用可能通信方式リスト62における通信方式番号の順番を示す変数jに、1番目の通信方式番号「1」を代入すると共に(ST541)、ROM5内のICカードサポート通信方式リスト51a(通信方式識別子の集合:C={02h,03h,04h})の中から、RAM6内の相互利用可能通信方式リスト62(通信方式識別子の集合:D={02h,03h,04h})におけるj番目の通信方式識別子d(j=1,d=02h)と等しいものを探して、その識別子がICカードサポート通信方式リスト51aにおいて出現する順番(即ち、通信方式番号i)を求めるための関数index(C,d)を計算し、その計算結果である通信方式番号「1」を変数iに代入する(ST542)。
【0282】
次に、ICカードα内のCPU4は、ROM5内の通信方式選択優先順位テーブル59aを参照することにより、受信電力分類番号nの値が「電力分類1」を示す「1」で、通信方式番号iの値が「1」のときの通信方式である「方式B」の選択優先順位x4ni(x411=1)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=1,y=3:既得値)に加算し(ST543)、この結果、通信方式番号「1」に関する選択優先順位重み累積値y(=4)を得る。
【0283】
次に、ICカードα内のCPU4は、RAM6内の相互利用可能通信方式リスト62を参照することにより、現在の変数jの値(通信方式番号:j=1)と、通信方式番号最大値DMAX(=3)とを比較するが(ST544)、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため(ST544;<)、その変数jをインクリメントして「2」とし(ST545)、さらに、前述したST542の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「2」を変数iに代入する。
【0284】
次に、ICカードα内のCPU4は、前述したST543の処理において、受信電力分類番号nの値が「電力分類1」を示す「1」で、通信方式番号iの値が「2」のときの通信方式である「方式C」の選択優先順位x4ni(x412=2)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=2,y=6:既得値)に加算し、この結果、通信方式番号「2」に関する選択優先順位重み累積値y(=8)を得る。
【0285】
次に、ICカードα内のCPU4は、前述したST544の処理において、現在の変数jの値(通信方式番号:j=2)と、通信方式番号最大値DMAX(=3)とを比較するが、上記変数jの値の方が通信方式番号最大値DMAXよりも小さいため、前述したST545の処理において、その変数jをインクリメントして「3」とし、さらに、前述したST542の処理を再び実行して関数index(C,d)を計算し、その計算結果である通信方式番号「3」を変数iに代入する。
【0286】
次に、ICカードα内のCPU4は、前述したST543の処理において、受信電力分類番号nの値が「電力分類1」を示す「1」で、通信方式番号iの値が「3」のときの通信方式である「方式D」の選択優先順位x4ni(x413=3)を取得し、この選択優先順位を、現在の通信方式の通信方式番号iにおける選択優先順位重み累積値yの値(i=3,y=9:既得値)に加算し、この結果、通信方式番号「3」に関する選択優先順位重み累積値y(=12)を得る。
【0287】
そして、以上の重み計算処理の結果、受信電力分類が「電力分類1」の場合の各通信方式番号「1」,「2」,及び「3」の選択優先順位重み累積値yが、それぞれ「4」,「8」,及び「12」として取得され、ICカードα内のCPU4は、これらの値を通信方式選択処理へ受け渡す。
【0288】
以上、本発明の実施の形態につき、第1〜第5装置例及びこれらにそれぞれ対応する第1〜第5方法例を挙げて説明したが、本発明は、必ずしも上述した手段及び手法にのみ限定されるものではなく、後述の効果を有する範囲内において、適宜、変更実施することが可能なものである。
【0289】
【発明の効果】
以上、詳細説明したように、本発明によれば、ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、ICカードの主導により、同ICカードが受信したコマンドの種々の特質に応じた最適なものに、自在に切り換えることが可能となる。
【図面の簡単な説明】
【図1】(a)〜(c)は、それぞれ、本発明の装置例に係るICカードの内部構成図及び外観構成図、並びに同ICカードに内蔵されるICチップの機能構成図である。
【図2】(a)は、図1に示したROM5に設定されるICカードサポート通信方式リストを示す図であり、(b)及び(c)は、それぞれ、図1に示したRAMに設定されるセキュリティ状態テーブル及び相互利用可能通信方式リストを示す図である。
【図3】本発明の第1装置例に係る構成を得るため図1に示したROMに設定される通信方式選択優先順位テーブルを示す図である。
【図4】(a)〜(d)は、それぞれ、本発明の第1装置例に係る構成を得るため図1に示したNVRAMに設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【図5】(a)〜(f)は、それぞれ、本発明の第1装置例に係るICカードに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【図6】(a)及び(b)は、それぞれ、本発明の第1装置例に係るICカードに適用される通信方式切換メッセージ及び再送要求メッセージの各データ形式を示す図である。
【図7】(a)及び(b)は、それぞれ、本発明の第1方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図8】(a)〜(e)は、それぞれ、本発明の第1方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル(2種)、及び鍵属性形式テーブル(1種)の各例を示す図である。
【図9】本発明の第1方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図10】本発明の第2装置例に係る構成を得るため図1に示したROMに設定される通信方式選択優先順位テーブルを示す図である。
【図11】(a)〜(d)は、それぞれ、本発明の第2装置例に係る構成を得るため図1に示したNVRAMに設定されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル、及び鍵属性形式テーブルを示す図である。
【図12】(a)〜(f)は、それぞれ、本発明の第2装置例に係るICカードに適用される読出コマンド、読出コマンドレスポンス、書込コマンド、書込コマンドレスポンス、認証コマンド、及び認証コマンドレスポンスの各データ形式を示す図である。
【図13】(a)及び(b)は、それぞれ、本発明の第2方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図14】(a)〜(f)は、それぞれ、本発明の第2方法例に適用されるファイル構造、ディレクトリ属性形式テーブル、ファイル属性形式テーブル(2種)及び鍵属性形式テーブル(2種)の各例を示す図である。
【図15】本発明の第2方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図16】(a)〜(c)は、それぞれ、本発明の第3装置例に係る構成を得るため図1に示したROMに設定される通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルを示す図である。
【図17】(a)〜(d)は、それぞれ、本発明の第3方法例に適用されるICカードサポート通信方式リスト、通信方式選択優先順位テーブル、アクセスサイズ閾値分類テーブル、及びアクセスサイズ検査対象コマンドテーブルの各例を示す図である。
【図18】本発明の第3方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図19】図18に示した通信方式選択処理の過程で実行されるアクセスサイズ分類処理を説明するためのフローチャートである。
【図20】(a)及び(b)は、それぞれ、本発明の第4装置例に係る構成を得るため図1に示したROMに設定される通信方式選択優先順位テーブル及び受信電力閾値分類テーブルを示す図である。
【図21】(a)〜(c)は、それぞれ、本発明の第4方法例に適用されるICカードサポート通信方式リスト、通信方式選択優先順位テーブル、及び受信電力閾値分類テーブルの各例を示す図である。
【図22】本発明の第4方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図23】図22に示した通信方式選択処理の過程で実行される受信電力分類処理を説明するためのフローチャートである。
【図24】本発明の第5装置例に係る構成を得るため図1に示したROMに設定される通信方式選択優先順位テーブルを示す図である。
【図25】(a)及び(b)は、それぞれ、本発明の第5方法例に適用されるICカードサポート通信方式リスト及び通信方式選択優先順位テーブルの各例を示す図である。
【図26】本発明の第5方法例に係る通信方式切換処理の過程で実行される通信方式選択処理を説明するためのフローチャートである。
【図27】図26に示した通信方式選択処理の過程で実行されるコマンド種類による重み計算処理を説明するためのフローチャートである。
【図28】図26に示した通信方式選択処理の過程で実行される暗号方式種類による重み計算処理を説明するためのフローチャートである。
【図29】図26に示した通信方式選択処理の過程で実行されるアクセスサイズ分類による重み計算処理を説明するためのフローチャートである。
【図30】図26に示した通信方式選択処理の過程で実行される受信電力分類による重み計算処理を説明するためのフローチャートである。
【符号の説明】
α…ICカード
d1〜d3…ディレクトリ
f1〜f3,f1a,f1b…ファイル
k1〜k3、k1a,k1b…鍵
1…ICチップ
2…アンテナ
3…金属端子面
4…CPU
5…ROM
51,51a…ICカードサポート通信方式リスト
52〜54,52a〜54a,57,57a,59,59a…通信方式選択優先順位テーブル
55,55a…アクセスサイズ閾値分類テーブル
56,56a…アクセスサイズ検査対象コマンドテーブル
58,58a…受信電力閾値分類テーブル
6…RAM
61…セキュリティ状態テーブル
62…相互利用可能通信方式リスト
7…NVRAM
71,71a…ディレクトリ属性形式テーブル
72,72a,72b,74,74a,74b…ファイル属性形式テーブル
73,73a,75,75a…鍵属性形式テーブル
8…RF部
91,91a…読出コマンド
92,92a…読出コマンドレスポンス
93,93a…書込コマンド
94,94a…書込コマンドレスポンス
95,95a…認証コマンド
96,96a…認証コマンドレスポンス
98…通信方式切換メッセージ
99…再送要求メッセージ

Claims (16)

  1. 複数の通信方式を利用可能に構成されたICカードと、当該ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間における通信方式を、前記ICカードの主導により最適なものに切り換えるためのICカード通信方式切換方法であって、
    前記ICカードにおいて、
    前記リーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記2以上の通信方式を認識し、
    前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を先に認識した前記2以上の通信方式の中から選択し、
    その選択した前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える、
    ことを特徴とするICカード通信方式切換方法。
  2. 前記最適な通信方式の選択は、
    前記ICカードにおける前記複数の通信方式に関する、前記受信コマンドの特質に応じた選択優先順位を規定する通信方式選択優先順位テーブルに基づいて行う、
    ことを特徴とする請求項1に記載のICカード通信方式切換方法。
  3. 前記最適な通信方式の選択は、
    前記受信コマンドの種類に応じて行う、
    ことを特徴とする請求項1又は2に記載のICカード通信方式切換方法。
  4. 前記最適な通信方式の選択は、
    前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて行う、
    ことを特徴とする請求項1、2又は3に記載のICカード通信方式切換方法。
  5. 前記最適な通信方式の選択は、
    前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて行う、
    ことを特徴とする請求項1、2、3又は4に記載のICカード通信方式切換方法。
  6. 前記最適な通信方式の選択は、
    前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて行う、
    ことを特徴とする請求項1、2、3、4又は5に記載のICカード通信方式切換方法。
  7. 前記駆動電力は、
    前記ICカードが非接触型として機能する場合に、当該ICカードが前記リーダライタの有効電磁界内に進入したときに当該ICカードに生じる誘導起電力から得られる受信電力である、
    ことを特徴とする請求項6に記載のICカード通信方式切換方法。
  8. 前記駆動電力は、
    前記ICカードが接触型として機能する場合に、当該ICカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、
    ことを特徴とする請求項6に記載のICカード通信方式切換方法。
  9. 複数の通信方式を利用可能に構成されたICカードであって、
    当該ICカードにおける2以上の通信方式と共通するものを含む複数の通信方式を利用可能に構成されたリーダライタとの間の通信初期化処理に際し、当該リーダライタとの間で相互に利用可能な前記2以上の通信方式を一時的に記憶する利用可能通信方式記憶手段と、
    前記通信初期化処理後に前記リーダライタからコマンドを受信する毎に、その受信コマンドの特質に応じた最適な通信方式を、前記利用可能通信方式記憶手段に記憶された前記2以上の通信方式の中から選択する最適通信方式選択手段と、
    この最適通信方式選択手段により選択された前記最適な通信方式が前記受信コマンドの通信方式と異なる場合に、その最適な通信方式の種類を前記リーダライタに通知して当該リーダライタに通信方式の切換えを行わせた後に、自己の現在の通信方式をその最適な通信方式に切り換える最適通信方式切換手段と、を有する、
    ことを特徴とするICカード。
  10. 前記最適通信方式選択手段は、
    前記ICカードにおける前記複数の通信方式の選択優先順位を規定する通信方式選択優先順位テーブルと、
    当該通信方式選択優先順位テーブルに基づいて前記最適な通信方式の選択を行う機能手段と、を具備する、
    ことを特徴とする請求項9に記載のICカード。
  11. 前記最適通信方式選択手段は、
    前記受信コマンドの種類に応じて前記最適な通信方式の選択を行う機能手段を具備する、
    ことを特徴とする請求項9又は10に記載のICカード。
  12. 前記最適通信方式選択手段は、
    前記受信コマンドの内容を暗号化する際に適用される、当該受信コマンドの内容に暗号化を施さない場合のものを含む暗号方式の種類に応じて前記最適な通信方式の選択を行う機能手段を具備する、
    ことを特徴とする請求項9、10又は11に記載のICカード。
  13. 前記最適通信方式選択手段は、
    前記受信コマンドの種類により特定される送受対象データのアクセスサイズに応じて前記最適な通信方式の選択を行う機能手段を具備する、
    ことを特徴とする請求項9、10、11又は12に記載のICカード。
  14. 前記最適通信方式選択手段は、
    前記受信コマンドの搬送時に得られる駆動電力の大きさに応じて前記最適な通信方式の選択を行う機能手段を具備する、
    ことを特徴とする請求項9、10、11、12又は13に記載のICカード。
  15. 前記駆動電力は、
    前記ICカードが非接触型として機能する場合に、当該ICカードが前記リーダライタの有効電磁界内に進入したときに当該ICカードに生じる誘導起電力から得られる受信電力である、
    ことを特徴とする請求項14に記載のICカード。
  16. 前記駆動電力は、
    前記ICカードが接触型として機能する場合に、当該ICカードが前記リーダライタにセットされたときに当該リーダライタから与えられる供給電力である、
    ことを特徴とする請求項14に記載のICカード。
JP2002350531A 2002-12-02 2002-12-02 Icカード通信方式切換方法及びicカード Pending JP2004185242A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002350531A JP2004185242A (ja) 2002-12-02 2002-12-02 Icカード通信方式切換方法及びicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002350531A JP2004185242A (ja) 2002-12-02 2002-12-02 Icカード通信方式切換方法及びicカード

Publications (1)

Publication Number Publication Date
JP2004185242A true JP2004185242A (ja) 2004-07-02

Family

ID=32752708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002350531A Pending JP2004185242A (ja) 2002-12-02 2002-12-02 Icカード通信方式切換方法及びicカード

Country Status (1)

Country Link
JP (1) JP2004185242A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065867A (ja) * 2004-08-26 2006-03-09 Samsung Electronics Co Ltd スマートカードとメモリカードと間のマルチインターフェース方法及びマルチインターフェースカード
US7982584B2 (en) * 2005-09-23 2011-07-19 Electronics And Telecommunications Research Institute Mobile RFID reader and control method thereof
JP2013125492A (ja) * 2011-12-16 2013-06-24 Dainippon Printing Co Ltd Icカード通信方法およびicカード

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065867A (ja) * 2004-08-26 2006-03-09 Samsung Electronics Co Ltd スマートカードとメモリカードと間のマルチインターフェース方法及びマルチインターフェースカード
US8240575B2 (en) 2004-08-26 2012-08-14 Samsung Electronics Co., Ltd. Method of multi-interfacing between smart card and memory card, and multi-interface card
US7982584B2 (en) * 2005-09-23 2011-07-19 Electronics And Telecommunications Research Institute Mobile RFID reader and control method thereof
JP2013125492A (ja) * 2011-12-16 2013-06-24 Dainippon Printing Co Ltd Icカード通信方法およびicカード

Similar Documents

Publication Publication Date Title
JP4469405B2 (ja) 半導体メモリカード、プログラム
KR920007410B1 (ko) 휴대용 데이타 캐리어용 안전 파일 시스템
JP4322021B2 (ja) メモリカード
JP2537199B2 (ja) Icカ―ド
US8610538B2 (en) Memory-tag data authentication
US5093785A (en) Portable electronic device with memory having data pointers and circuitry for determining whether a next unwritten memory location exist
JP3721725B2 (ja) 情報処理方法および情報処理装置
JPH08272924A (ja) Icカード
MX2007009633A (es) Sistema de etiquetas de rf con comandos de lectura y escritura de etapa unica.
JP3702923B2 (ja) 情報処理方法および情報処理装置
EP2047412B1 (en) Information storage medium and information storage medium processing apparatus
WO1998000808A1 (en) Method and device for processing information
JP2004185242A (ja) Icカード通信方式切換方法及びicカード
CN101282347A (zh) 一种智能存储卡的控制方法
JP4445718B2 (ja) Icカード及びicカードプログラム
JP4279699B2 (ja) 半導体メモリカード、制御プログラム。
JP2004310573A (ja) Icカードにおけるメモリ管理方法、及びicカード
JP3545627B2 (ja) 携帯可能電子装置
JP4443699B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP2004185244A (ja) リーダライタ通信方式切換方法及びリーダライタ
JPH1139450A (ja) Icカード
JP3718564B2 (ja) Icカード
JP4318494B2 (ja) Icカード及びicカードプログラム
JP2003006582A (ja) Icカード処理システムとicカード処理方法
US7296289B2 (en) Setting or changing an access condition for an access management apparatus and method of a portable electronic device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060620