説明

ICカード

【課題】 ICカードに内蔵されるICチップ内でのデータ処理に要する処理時間を短縮化するとともに、目的のファイルを特定し、ICカードが受信した受信コマンドメッセージを正確に実行できるICカードを提供する。
【解決手段】 ICカードのオペレーティングシステムは、ICチップ内の書き換え可能な不揮発性メモリの所定の領域に、一対の格納コマンドメッセージおよび格納レスポンスメッセージとからなる、複数の格納メッセージ組に関する情報を記録し、これらに順位を付与し、かつこれらの個数を計数する機能を有したものとし、さらに受信コマンドメッセージと格納コマンドメッセージを比較して不一致となるとき、第1位の格納メッセージ組の格納コマンドメッセージから、その内容を一つずつ順番に解釈、実行した後、最後にその不一致時の受信コマンドメッセージを実行処理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカードのデータ処理技術に係り、特にデータ処理に要する処理時間を短縮化したICカードに関する。
【背景技術】
【0002】
上位装置とICカードが通信する際、応答性が良好なICカードを実現することは、ICカードを利用する利用者、あるいはICカードシステムを提供する事業者等にとって、非常に有効である。とりわけICカードに内蔵されるICチップ内でのデータ処理を高速化し処理時間を短縮化する技術は、上位装置とICカードとの通信速度を高める有効な手段である。このようなデータ処理に要する処理時間を短縮化する技術は、従来から数多く提案されている。
【0003】
例えば特許文献1には、過去に命令が処理したデータの内容を用いて、命令実行の高速化を図るため、既実行の各命令に対し演算の入力と結果のデータ、主記憶の読み出し/書き込みアドレスとデータなどを記憶する履歴記憶を用意し、再度同じ命令を実行するときに履歴記憶を参照し、履歴が残っていれば、演算命令の場合には現在の入力データと履歴データを比較し、読み出し/書き込み命令の場合には現在の読み出し/書き込みデータとアドレスを履歴と比較し、それらが同じであれば、演算の実行をスキップして履歴記憶の結果データを現在の結果として用いるか、現在の読み出し/書き込みをスキップすることにより高速化を達成し、これにより、各命令の実行に要するパイプラインステージ数を短縮でき、その結果、命令列の実行時間を短縮し、メモリに対する不要なロード/ストア操作を抑止することから、キャッシュ制御やアドレス変換など記憶域管理の負荷を軽減することができ、ロード/ストア命令の平均実行時間を短縮できるとする技術について開示されている。
【0004】
また、特許文献2には、データ依存関係のある後続命令を投機的に実行する際に、本来の演算器を使用せず、演算器競合を回避するために、過去の命令実行結果をそのまま命令の実行結果として出力する履歴演算器と、オペランドが過去の値と同一の命令を履歴演算器に発行する命令発行回路を設け、投機実行そのものを省略して処理時間を短縮する技術について開示されている。
【0005】
また、特許文献3には、特定パターンのコマンド列が認められる場合に、ホスト装置から発行されるコマンドの列を予測して動作することで、ホスト装置からみた該当する処理に要する処理時間を短縮する技術について開示されている。
【0006】
【特許文献1】国際公開WO98/11484号パンフレット
【特許文献2】国際公開WO99/45463号パンフレット
【特許文献3】特開平10−187578号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
一般に、ICカードは、少なくともCPUとメモリ装置を有したICチップを内蔵している。メモリ装置は、読み出し専用の不揮発性メモリであるROM、書き換え可能な不揮発性メモリであるEEPROM、および書き換え可能な揮発性メモリであるRAMで構成される。通常、ROMにはオペレーティングシステムが搭載され、EEPROMにはアプリケーションプログラムおよびユーザデータが搭載、および格納され、RAMはデータ処理の作業領域として使用される。
【0008】
また、ICカードは、上位装置、例えばリーダライタに外部接続されたコンピュータ、あるいはMPU等を内蔵したリーダライタ等と情報のやりとりを行なう。情報のやりとりは、各々の接触端子を物理的に結合して行なう接触方式、もしくは無線等を利用した非接触方式による通信方式が用いられる。
【0009】
なお、前記ICカードが、複数のアプリケーションを実行することが可能であるマルチアプリケーション型のICカードである場合は、前記EEPROMには複数のアプリケーションプログラムまたはアプリケーションデータが搭載され、前記ROMには複数のアプリケーションに対応したオペレーティングシステムが搭載される。
【0010】
マルチアプリケーション型のICカードに搭載されるオペレーティングシステムは、各アプリケーションの管理、データの管理、および上位装置から送信されるコマンドメッセージの内容を解釈して実行し、データ処理全体の制御を担う機能を備える。通常、ICカードが受信したコマンドメッセージは、ICカードのICチップ内のROMに記録されているコマンドテーブルに基づいて選択され、実行処理される。
【0011】
また、上位装置とICカードとの間の情報のやりとりは、上位装置からICカードへ向けてコマンドメッセージを送信し、このコマンドメッセージに応答する返事として、ICカードから上位装置へ向けてレスポンスメッセージを返信することによって実行される。通常は、このような種々のコマンドメッセージおよびレスポンスメッセージの送受信プロセスを繰り返し実行することによって、上位装置とICカード間の通信が成立している。
【0012】
図14は、上位装置とICカード間の通信におけるコマンドメッセージおよびレスポンスメッセージの送受信を実行するシーケンスの一例を示した概略図である。図14は、例えば複数のアプリケーションを実行することが可能であるマルチアプリケーション型のICカードと上位装置とが通信を行い、上位装置が、前記ICカードを活性化して複数のアプリケーションの中から任意のアプリケーションを選択した後、照合キーによる認証を行い、前記ICカード内の書き換え可能な不揮発性メモリの所定の領域に格納される任意のファイルのIDデータを読み出すまでのプロセスを示している。
【0013】
図14において、始めに上位装置は、ICカードへ向けて活性化コマンドメッセージを送信する。これを受信したICカードは、前記活性化コマンドメッセージを実行し、上位装置へ向けて前記活性化コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。次に上位装置は、前記レスポンスメッセージを受信した後、ICカードへ向けてアプリケーション選択コマンドメッセージを送信する。これを受信したICカードは、前記アプリケーション選択コマンドメッセージを実行し、上位装置へ向けて前記アプリケーション選択コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。引き続き上位装置は、前記レスポンスメッセージを受信した後、ICカードへ向けて認証コマンドメッセージを送信する。これを受信したICカードは、前記認証コマンドメッセージを実行し、上位装置へ向けて前記認証コマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。さらに上位装置は、前記レスポンスメッセージを受信した後、ICカードへ向けてID読み出しコマンドメッセージを送信する。これを受信したICカードは、前記ID読み出しコマンドメッセージを実行し、上位装置へ向けて前記ID読み出しコマンドメッセージが実行完了したことを通知するためのレスポンスメッセージを返信する。このように上位装置とICカードは、コマンドメッセージおよびレスポンスメッセージを交互に繰り返し送信して通信を行っている。
【0014】
上述のように上位装置とICカード間でコマンドメッセージおよびレスポンスメッセージが繰り返し送信されるとき、ICカードに内蔵されているICチップのデータ処理回路においては、各コマンドメッセージに対応した、書き換え可能な不揮発性メモリの所定の領域に格納されている特定のデータを指定したり、読み出したり、あるいは書き換えたりする処理を頻繁に行なわなければならない。とりわけ複数のデータに対して交互にアクセスがなされる場合、非常に複雑な処理となってしまう。また、ICカードがマルチアプリケーション型のICカードである場合、複数のアプリケーション各々に対して、同様の処理を実行しなければならないため、さらに煩雑な処理となる。
【0015】
ところで、マルチアプリケーション型のICカードは、複数のアプリケーションを一枚のICカードで実行できる利便性の高いICカードであるが、実際の利用においては、単一の特定アプリケーションのみを使用する場合も非常に多い。このような、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のICカード、あるいは単一のアプリケーションのみを搭載したICカードにおいては、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、上位装置とICカード間の毎回のアクセスにおいて、コマンドメッセージおよびレスポンスメッセージを実行する特定のシーケンスのほとんどが変更されない状態で運用される場合がある。例えば、毎回同じアクセスを実行し、個人を特定するためだけに運用される入退室管理用ICカードや社員証ICカード等が具体例として挙げられる。
【0016】
上述したような条件下で、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のICカード、あるいは単一のアプリケーションのみを搭載したICカードを運用する場合、図14に示したような、その都度コマンドメッセージを実行し、レスポンスメッセージを返信する方法は、非効率的であり、その結果、処理時間の低下を招くという問題がある。
【0017】
また、データ処理に要する時間を短縮化するため、上位装置から受信したコマンドメッセージを実行する際に、ICカードに内蔵されたICチップ内の書き換え可能な不揮発性メモリの所定の領域に、過去に実行したコマンドメッセージおよびその実行結果に関する情報、すなわち履歴情報を記録しておき、再度同じコマンドメッセージを実行する際には、これに該当する履歴情報を用いてデータ処理を行う技術がいくつか提案されている。
【0018】
以下、前記履歴情報を用いたデータ処理技術の具体例について、図12および図13を参照して説明する。
【0019】
図12は、ICカードに内蔵されたICチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータのデータ構造の一例を示す概略図である。図12は、複数のアプリケーションを搭載することができるマルチアプリケーション型のICカードにおけるデータ構造の一例を示している。
【0020】
図12に示すように、一般にICカードに内蔵されたICチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータは、ファイル単位で構成され、これらが階層構造をなすツリー形式のデータ構造となっている。階層の最上位にある主ファイルの配下には、複数の専用ファイルが存在し、各専用ファイルの配下には、複数の基礎ファイルが存在する。例えば主ファイルに相当する「ルートフォルダ」の直下には、二つの専用ファイル、すなわち二つのアプリケーションに対応する「アプリケーション1フォルダ」および「アプリケーション2フォルダ」と、二つの基礎ファイルである「ファイル1」および「ファイル2」と、照合を行なうための「キー1」および「キー2」とが存在する。さらに「アプリケーション1フォルダ」の直下には、三つの基礎ファイルである「ファイル1」および「ファイル2」ならびに「ファイル3」と、照合を行なうための「キー3」とが存在する。同様に、「アプリケーション2フォルダ」の直下には、二つの基礎ファイルである「ファイル1」および「ファイル2」と、照合を行なうための「キー4」とが存在する。
【0021】
図13は、ICカードのオペレーティングシステムが上位装置から受信した受信コマンドメッセージを実行処理するプロセスを模式的に示した図である。
【0022】
図13は、例えば上位装置が、三つのコマンドメッセージ、すなわちアプリケーション選択コマンドメッセージ、認証コマンドメッセージ、およびID読み出しコマンドメッセージをICカードに対して送信し、ICカードがこれら三つのコマンドメッセージを受信し、同時にICカードのオペレーティングシステムが、受信した一連のコマンドメッセージを先の順番で実行するプロセスを示している。ただしこれに先立って、上位装置からは、ICカードを活性化するための活性化コマンドメッセージが送信されるが、ここでは説明を省略する。
【0023】
始めにICカードは、上位装置から、図12に示す専用ファイルである「アプリケーション1フォルダ」を選択するコマンドメッセージ、すなわちアプリケーション選択コマンドメッセージを受信する。そしてICカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、過去に実行したコマンドメッセージおよびその実行結果に関する情報、すなわち履歴情報を参照し、受信した「アプリケーション1フォルダ」を選択するコマンドメッセージと比較する。比較した結果一致した場合、過去に実行した当該コマンドメッセージの実行結果からなるレスポンスメッセージを上位装置に返信する。
【0024】
なお、ここで表記した履歴情報について詳しく述べると、前記履歴情報は、例えば、書き換え可能な不揮発性メモリの所定の領域に格納される格納メッセージ組として定義付けて表記され、そのうち、過去に実行したコマンドメッセージに関する情報は、格納コマンドメッセージとして定義付けて表記することができ、また、その実行結果に関する情報は、格納レスポンスメッセージとして定義付けて表記することができる。加えて、ICカードが受信した受信コマンドメッセージについても、受信コマンドメッセージとして定義付けて表記することができ、その実行結果に関する情報は、送信レスポンスメッセージとして定義付けて表記することができる。
【0025】
次にICカードは、上位装置から、図12に示す照合キーである「キー3」で照合するコマンドメッセージ、すなわち認証コマンドメッセージを受信する。そしてICカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、格納コマンドメッセージを参照し、受信した「キー3」で照合するコマンドメッセージと比較する。比較した結果一致した場合、過去に実行した当該コマンドメッセージの実行結果であるレスポンスメッセージを上位装置に返信する。
【0026】
引き続きICカードは、上位装置から、図12に示す基礎ファイルである「ファイル2」を読み出すコマンドメッセージ、すなわちID読み出しコマンドメッセージを受信する。そしてICカードのオペレーティングシステムは、書き換え可能な不揮発性メモリの所定の領域に格納される、格納コマンドメッセージを参照し、受信した「ファイル2」を読み出すコマンドメッセージと比較する。しかしこの場合、オペレーティングシステムが参照した格納コマンドメッセージは、「ファイル1」を読み出す格納コマンドメッセージであり、受信した「ファイル2」を読み出す格納コマンドメッセージと一致しない。
【0027】
そこで、オペレーションシステムは、他の適合する格納コマンドメッセージを参照しようとするが、ルートフォルダの配下にある基礎ファイルのうち、ファイル名が「ファイル2」であるものが複数存在するため、目的のファイルを特定できない。
【0028】
つまり、オペレーティングシステムは、受信した三つのコマンドメッセージの実行順序、およびこの「ファイル2」を読み出すコマンドメッセージ以前に実行済みの二つの受信コマンドメッセージ、すなわち「アプリケーション1フォルダ」を選択するコマンドメッセージ、および「キー3」で照合するコマンドメッセージの各々と、書き換え可能な不揮発性メモリの所定の領域に格納される、これら受信コマンドメッセージに対応する格納コマンドメッセージの各々が、一致したことについては把握しているものの、この「ファイル2」を読み出すコマンドメッセージ以前に実行されたコマンドメッセージの内容、すなわち、どのアプリケーションフォルダが選択されたのかについて認識していないため、どのアプリケーションフォルダの配下にある「ファイル2」なのかを判断できず、当該コマンドメッセージを実行することができないという問題がある。
【0029】
上述した技術の一例として、特許文献1に記載されているような、コマンドメッセージが処理したデータ内容と当該コマンドメッセージのアドレスを対にした履歴情報、換言すれば、格納メッセージ組を用いたものがある。しかしながら、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が固定されている条件下においては、必ずしも適用できない。すなわち特許文献1に記載の技術は、単に、参照する格納メッセージ組の中に、受信した受信コマンドメッセージに関する情報、換言すれば受信コマンドメッセージと、書き換え可能な不揮発性メモリに格納された、過去に実行した該当するコマンドメッセージの実行結果に関する情報、換言すれば、格納コマンドメッセージが一致した場合に、当該コマンドメッセージの実行処理を省略して処理時間の短縮化を実現しようとするものであり、コマンドメッセージの実行順序に対する考慮がなされていないため、上述の問題は解決できない。
【0030】
また、特許文献2の記載の技術も、特許文献1と同様に履歴情報、すなわち格納メッセージ組を用いて処理時間の短縮化を実現しようとするものである。しかしこの技術では、格納メッセージ組の中にある過去のコマンドメッセージの内容、例えば格納コマンドメッセージ、およびその実行結果、例えば格納レスポンスメッセージと、受信した最初の受信コマンドメッセージの内容および当該受信コマンドメッセージの実行結果に対してのみ比較を行なって、それが一致したか否かを確認するものであり、後続する受信コマンドメッセージの内容に対しての比較は行なわない。そのため上述の問題は解決できない。
【0031】
また、特許文献3の記載の技術は、上位装置から発行される複数のコマンドメッセージのパターンがシステム起動の度に同じであるとき、これを履歴情報、例えば格納メッセージ組として保持し、この履歴情報を元に、あらかじめ予測して、前記パターンのコマンドメッセージ列を実行処理し、処理時間の短縮化を実現しようとするものである。しかしこの技術では、受信した受信コマンドメッセージ列と、これに対応する履歴情報にあるコマンドメッセージ列とを比較する際、両者のコマンドメッセージ列の中で一致しないコマンドメッセージがあった場合、これを優先して実行処理するため、コマンドメッセージの実行順序が固定されている条件下においては適用できない。したがって上述の問題は解決できない。
【0032】
すなわち従来の技術では、ICカードが上位装置から受信する受信コマンドメッセージを実行する際、受信した受信コマンドメッセージと、これに対応した前記履歴情報、すなわち格納コマンドメッセージとを比較して不一致となる場合、目的のファイルを特定できず、前記受信コマンドメッセージを正確に実行することができない。
【0033】
本発明は、上記事情に鑑みてなされたものでその目的は、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のICカード、あるいは単一のアプリケーションのみを搭載したICカードにおいて、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、コマンドメッセージおよびレスポンスメッセージを送信する特定のシーケンスが変更されない状態で運用される際、その都度行なわれるコマンドメッセージの内容の解釈および当該コマンドメッセージの実行処理をスキップしてこれを省略するための簡易な管理機能をICカードのオペレーティングシステムに具備させ、この処理を省略した分だけ、全体のデータ処理に要する時間を短縮するとともに、受信した受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができるICカードを提供することにある。
【課題を解決するための手段】
【0034】
上述した課題を解決すべく、本発明者らは種々の検討の結果、以下の解決手段を見出した。すなわち本発明は、上位装置がICカードに向けてコマンドメッセージの送信を行い、前記コマンドメッセージを受信した前記ICカードのオペレーティングシステムは、前記コマンドメッセージの内容、すなわち受信コマンドメッセージの内容を解釈して、これを実行するとともに、前記ICカードは、前記受信コマンドメッセージに応答する返事としてのレスポンスメッセージを、前記上位装置に向けて返信するものであって、前記ICカードのオペレーティングシステムは、自身に内蔵されるICチップ内の書き換え可能な不揮発性メモリの所定の領域に、一対の、コマンドヘッダおよびコマンドボディで構成される格納コマンドメッセージと、レスポンスボディおよびレスポンストレイラで構成される格納レスポンスメッセージとからなる、複数の格納メッセージ組に関する情報を記録し、前記格納メッセージ組に順位を付与し、かつ前記格納メッセージ組の個数を計数する機能を有している。
【0035】
さらに本発明に係るICカードのオペレーティングシステムは、前記ICカードが受信した受信コマンドメッセージの内容、すなわち前記コマンドヘッダおよび前記コマンドボディ各々の記述形式等、および/または受信コマンドメッセージ長、すなわち前記コマンドヘッダおよび前記コマンドボディ各々のデータ長の合計値と、前記複数の格納メッセージ組の個数以内の値であって、かつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージの内容、すなわち前記コマンドヘッダおよび前記コマンドボディ各々の記述形式等、および/または格納コマンドメッセージ長、すなわち前記コマンドヘッダおよび前記コマンドボディ各々のデータ長の合計値を比較する。そしてその比較した結果が一致した場合、前記オペレーティングシステムは、一致を確認した格納コマンドメッセージと対をなす格納レスポンスメッセージと、前記受信コマンドメッセージが実行された場合の実行結果である送信レスポンスメッセージとは同等であるものとみなして、前記受信コマンドメッセージの実行処理を省略し、前記格納レスポンスメッセージを前記上位装置に返信するのが好適である。
【0036】
また、前記オペレーティングシステムが、前記ICカードが受信する複数のコマンドメッセージを順に実行処理する過程で、第n回目の受信コマンドメッセージを実行しようとしたとき、前記第n回目の受信コマンドメッセージに対応する、第n位の格納メッセージ組に属する格納コマンドメッセージが異なっていることを確認、すなわち前記第n回目の受信コマンドメッセージと前記第n位の格納メッセージ組に属する格納コマンドメッセージとを比較した結果、不一致を確認した場合、前記オペレーティングシステムは、一旦、第1位の格納メッセージ組まで戻り、第1位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位、すなわち第(n−1)位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行するのがよい。
【0037】
そして上述の処理を実行した後、前記オペレーティングシステムは、前記不一致を確認した任意の格納メッセージ組、すなわち第n位の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージ、すなわち第n回目の受信コマンドメッセージを実行し、前記不一致を確認した第n位の格納メッセージ組に属する一対の格納コマンドメッセージおよび格納レスポンスメッセージを、前記第n回目の受信コマンドメッセージと前記第n回目の受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるのがよい。
【0038】
さらに、前記不一致を確認した第n位の格納メッセージ組より後の順位にあるすべての格納メッセージ組、すなわち第(n+1)位以降の全格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化し、前記オペレーティングシステムがこれらを計数できないようにするのがよい。そして、書き換えられた第n位の格納メッセージ組に属する前記送信レスポンスメッセージを、前記上位装置に返信するのがよい。
【0039】
また、前記ICカードが受信する、受信コマンドメッセージの受信回数の値が、書き換え可能な不揮発性メモリの所定の領域に格納された前記複数の格納メッセージ組の個数の値を超える場合、例えば前記受信コマンドメッセージの受信回数が(m+1)回であって、前記格納メッセージ組の個数がm個である場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第1位から始まり最後位である第m位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、上述した場合と同様に一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行した後、前記複数の格納メッセージ組の個数の値を超えた値と一致する順番で受信した受信コマンドメッセージ、すなわち第(m+1)回目の受信コマンドメッセージを実行し、一対の、前記第(m+1)回目の受信コマンドメッセージと前記第(m+1)回目の受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位である第m位の格納メッセージ組の後に追記するのがよい。そして、追記された前記送信レスポンスメッセージを、前記上位装置に返信するのがよい。
【0040】
なお、ここで述べているコマンドメッセージとは、特定のデータ長を有するコマンドヘッダと、特定のデータ長を有するコマンドボディとで構成されたものを指す。同様にレスポンスメッセージとは、特定のデータ長を有するレスポンスボディと、特定のデータ長を有するレスポンストレイラとで構成されたものを指す。また、コマンドメッセージの内容とは、コマンドヘッダおよびコマンドボディの記述形式等を示し、同様にレスポンスメッセージの内容とはレスポンスボディおよびレスポンストレイラの記述形式等を示す。さらに、コマンドメッセージ長は、コマンドヘッダのデータ長とコマンドボディのデータ長を合計したデータ長を示す。同様にレスポンスメッセージ長は、レスポンスボディのデータ長とレスポンストレイラのデータ長を合計したデータ長を示す。
【0041】
すなわち本発明によれば、上位装置から送信されるコマンドメッセージを受信し、前記コマンドメッセージの内容を解釈して、前記コマンドメッセージを実行するオペレーティングシステムを搭載し、かつ前記コマンドメッセージの実行結果を前記上位装置へ返信するICカードであって、前記オペレーティングシステムが、書き換え可能な不揮発性メモリの所定の領域に格納される、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組に関する情報を記録する機能と、前記オペレーティングシステムが、前記複数の格納メッセージ組に順位を付与する機能と、前記オペレーティングシステムが、前記複数の格納メッセージ組の個数を計数する機能と、前記オペレーティングシステムが、前記ICカードが受信した受信コマンドメッセージと、前記複数の格納メッセージ組の個数以内の値であってかつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージを、比較する機能を有するとともに、前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および/またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および/またはコマンドメッセージ長の一致を確認した場合、前記オペレーティングシステムは、前記一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行をせず、前記任意の格納メッセージ組の格納レスポンスメッセージを、前記上位装置に返信する機能を有したICカードが得られる。
【0042】
本発明によれば、前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および/またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および/またはコマンドメッセージ長の不一致を確認した場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第1位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、前記不一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、実行をして、前記不一致を確認した任意の格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるとともに、前記不一致を確認した任意の格納メッセージ組より後の順位にあるすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化した後、前記送信レスポンスメッセージを、前記上位装置に返信する機能を有した前記ICカードが得られる。
【0043】
本発明によれば、前記受信回数の値が前記複数の格納メッセージ組の個数の値を超える場合、前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第1位から始まり最後位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、前記複数の格納メッセージ組の個数の値を超えた位置で受信した受信コマンドメッセージの内容の解釈、実行をして、一対の、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位の格納メッセージ組の後に追記するとともに、前記送信レスポンスメッセージを、前記上位装置に返信する機能を有した前記ICカードが得られる。
【発明の効果】
【0044】
本発明は、上位装置と、事実上単一のアプリケーションのみを使用するマルチアプリケーション型のICカード、あるいは単一のアプリケーションを搭載したICカードにおいて、上位装置から送信される複数のコマンドメッセージ、および前記複数のコマンドメッセージの実行順序が事実上固定され、コマンドメッセージおよびレスポンスメッセージを送信する特定のシーケンスが変更されない状態で運用される際、その都度行なわれるコマンドメッセージの内容の解釈および当該コマンドメッセージの実行処理をスキップして、これを省略することが可能な機能、すなわち書き換え可能な不揮発性メモリの所定の領域に、順位が付与され、かつその個数が計測されて管理されている、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組を格納し、受信した受信コマンドメッセージと前記格納コマンドメッセージを比較して一致した場合は、前記受信コマンドメッセージの内容の解釈および前記受信コマンドメッセージの実行をスキップする機能を、ICカードのオペレーティングシステムに具備することにより、前記格納レスポンスメッセージを、前記受信コマンドメッセージの実行結果と同等のものであるとみなし、前記格納レスポンスメッセージを上位装置へ返信することができる。その結果、この処理を省略した分だけ全体の処理時間を短縮し、結果として上位装置とICカード間の通信時間の短縮化が実現できる。さらに、受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができる。
【発明を実施するための最良の形態】
【0045】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【0046】
図1は、本発明のICカードのコマンドメッセージおよびレスポンスメッセージの処理過程を説明するフローチャートである。図2は、本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理を説明する図である。図3は、本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理を説明する図である。また図4は、本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理を説明する図である。
【0047】
図1において、本発明のICカードは、上位装置と通信する際、まず始めに外部からの電力の供給を受け、電源オン状態、すなわち活性化された状態となる(ステップS1)。ただし、ICカードが接触方式である場合は、ICカードのICチップの接続端子を介して電力が供給され、また非接触方式である場合は、ICカードに内蔵された電力受信アンテナ等を介して無線等により電力が供給される。
【0048】
そして引き続きICカードは、イニシャライズ処理、すなわちICカード内にあるCPUのリセット、内蔵メモリのチェック等を実行する(ステップS2)。その後、ICカードは、上位装置から送信される任意のコマンドメッセージを受信する(ステップS3)。
【0049】
以下、受信したコマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理について、図2も参照しながら説明する。図2において、例えばICカードは、総計3回のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【0050】
また、ICカードに内蔵されたICチップ内の書き換え可能な不揮発性メモリ(以下、単にメモリという)の所定の領域には、5個の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。
【0051】
また、各々の格納メッセージ組には、第1位から最後位である第5位までの順位が割り振られている。これらの順位は、ICカードのオペレーティングシステムによって付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。
【0052】
始めに、ICカードは第1回目のコマンドメッセージを上位装置から受信する(ステップS3)。そしてICカードのオペレーティングシステムは、受信第1回目の受信コマンドメッセージの「受信コマンドメッセージ1」と、メモリの所定の領域に格納されている第1位の格納メッセージ組に属する「格納コマンドメッセージ1」を比較する(ステップS4)。比較した結果、各々のコマンドメッセージの内容および/またはコマンドメッセージ長が一致した場合(ステップS5)、オペレーティングシステムは、受信第1回目の受信コマンドメッセージの「受信コマンドメッセージ1」のコマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行せず、当該受信コマンドメッセージを実行した場合の実行結果と同等であるとみなした、前記第1位の格納メッセージ組に属する「格納レスポンスメッセージ1」からなるレスポンスメッセージを上位装置に返信する(ステップS7)。
【0053】
次に、ICカードは第2回目のコマンドメッセージを上位装置から受信する(ステップS3)。そしてICカードのオペレーティングシステムは、受信第1回目の場合と同様に、受信第2回目の受信コマンドメッセージの「受信コマンドメッセージ2」と、メモリの所定の領域に格納されている第2位の格納メッセージ組に属する「格納コマンドメッセージ2」を比較する(ステップS4)。比較した結果、各々のコマンドメッセージの内容および/またはコマンドメッセージ長が一致した場合(ステップS5)、オペレーティングシステムは、受信第1回目の場合と同様に、受信第2回目の受信コマンドメッセージの「受信コマンドメッセージ2」のコマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行せず、当該受信コマンドメッセージを実行した場合の実行結果と同等であるとみなした、前記第2位の格納メッセージ組に属する「格納レスポンスメッセージ2」からなるレスポンスメッセージを上位装置に返信する(ステップS7)。
【0054】
そして、ICカードは最後のコマンドメッセージである第3回目のコマンドメッセージを上位装置から受信する(ステップS3)。この場合も上述した受信第1回目、または受信第2回目の場合と同様の処理がなされ、メモリの所定の領域に格納されている第3位の格納メッセージ組に属する「格納レスポンスメッセージ3」からなるレスポンスメッセージを上位装置に返信して一連の処理を完了する。
【0055】
このように、ICカードが受信した受信コマンドメッセージと、メモリの所定の領域に格納された、受信コマンドメッセージの受信回数の値と同一の値の順位にある格納メッセージ組に属する格納コマンドメッセージを比較し、その一致をみた場合、受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行にかかる処理をまるごとスキップする分、処理時間を短縮することができる。
【0056】
次に、受信したコマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理について、図1および図3を参照しながら説明する。図3において、例えばICカードは、総計n回(ただし、「n」は任意の受信回数を示す)のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【0057】
またメモリの所定の領域には、n個以上の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。また各々の格納メッセージ組には、上述した場合と同様に、オペレーティングシステムによって順位が付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。
【0058】
図3において、ICカードは、第1回目から第(n−1)回目までのコマンドメッセージの受信、およびこれに応答する、上位装置に向けたレスポンスメッセージの返信を既に完了している。上位装置へレスポンスメッセージを返信するまでの過程については、上述した場合と同様であるので、ここでの説明は省略する。
【0059】
その後、ICカードは、第n回目のコマンドメッセージを受信する(ステップS3)。そしてオペレーティングシステムは、受信第n回目の受信コマンドメッセージの「受信コマンドメッセージn」と、メモリの所定の領域に格納されている第n位の格納メッセージ組に属する「格納コマンドメッセージn」を比較する(ステップS4)。比較した結果、各々のコマンドメッセージの内容および/またはコマンドメッセージ長は一致せず(ステップS5)、無効値でもなかった(ステップS6)。このときICカードのオペレーティングシステムは、一旦、第1位の格納メッセージ組まで戻り、第1位から始まり、前記不一致を確認した第n位の格納メッセージ組の一つ前の格納メッセージ組が位置する順位、すなわち第(n−1)位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージを実行する(ステップS8)。
【0060】
次いでオペレーティングシステムは、受信第n回目の受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージを実行する(ステップS9)。引き続きオペレーティングシステムは、不一致を確認した受信第n回目の受信コマンドメッセージの「受信コマンドメッセージn」を、メモリの所定の領域に格納された第n位の格納メッセージ組に属する「格納コマンドメッセージn」と入れ換え、書き換え処理を実行する。同時に、受信第n回目の受信コマンドメッセージの実行結果である「送信レスポンスメッセージn」を、メモリの所定の領域に格納された第n位の格納メッセージ組に属する「格納レスポンスメッセージn」と入れ換え、書き換え処理を実行する(ステップS10)。
【0061】
これにより第n位の格納メッセージ組は、前記「受信コマンドメッセージn」と前記「送信レスポンスメッセージn」から構成される新たな第n位の格納メッセージ組として更新されメモリ上に保持される。
【0062】
そして、オペレーティングシステムは、不一致を確認した第n位の格納メッセージ組より後の順位にあるすべての格納メッセージ組、すなわち第(n+1)位以降の全格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方に無効値を適用して無効化し、オペレーティングシステムがこれらを計数できないようにする(ステップS11)。
【0063】
その後、オペレーティングシステムは、書き換えられた第n位の格納メッセージ組に属する「送信レスポンスメッセージn」からなる送信レスポンスメッセージを上位装置に返信する(ステップS12)。
【0064】
このように、本発明のICカードのオペレーティングシステムは、一連の処理において、比較した受信コマンドメッセージと格納コマンドメッセージの不一致があるとき、第1位の格納メッセージ組から、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、最後にその不一致時の受信コマンドメッセージを実行処理するものである。
【0065】
次に、受信したコマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理について、図1および図4を参照しながら説明する。図4において、例えばICカードは、総計(m+1)回(ただし、「m」は任意の受信回数を示す)のコマンドメッセージを受信し、これに応答するレスポンスメッセージを上位装置に返信するものである。
【0066】
またメモリの所定の領域には、m個の格納メッセージ組に関する情報が記録され格納されている。各々の格納メッセージ組は格納コマンドメッセージとこれに対応する格納レスポンスメッセージで構成されるものである。また各々の格納メッセージ組には、上述した場合と同様に、オペレーティングシステムによって、第1位から第m位まで順位が付与され、同時にオペレーティングシステムは、これら格納メッセージ組の個数を計数し管理している。なおこの場合、メモリの所定の領域に格納される第(m+1)位以降の格納メッセージ組すべてには無効値が適用されている。
【0067】
図4において、ICカードは、第1回目から第m回目までのコマンドメッセージの受信、およびこれに応答する、上位装置に向けたレスポンスメッセージの返信を既に完了している。上位装置へレスポンスメッセージを返信するまでの過程については、上述した場合と同様であるのでここでの説明は省略する。
【0068】
その後、ICカードは、第(m+1)回目のコマンドメッセージを受信する(ステップS3)。そしてオペレーティングシステムは、受信第(m+1)回目の受信コマンドメッセージの「受信コマンドメッセージ(m+1)」と、メモリの所定の領域に格納されている第(m+1)位の格納メッセージ組に属する格納コマンドメッセージとを比較する(ステップS4)。比較した結果、第(m+1)位の格納メッセージ組には対応する格納コマンドメッセージが存在せず、オペレーティングシステムは、これを無効値と判断し(ステップS5、およびステップS6)、上述した場合と同様に、一旦、第1位の格納メッセージ組まで戻り、第1位から第m位の格納メッセージ組に属する格納コマンドメッセージの内容を、再度一つずつ順番に解釈、および前記格納コマンドメッセージに基づくコマンドメッセージを実行する(ステップS13)。
【0069】
次いでオペレーティングシステムは、受信第(m+1)回目の受信コマンドメッセージの内容の解釈、および実行する(ステップS14)。引き続きオペレーティングシステムは、受信第(m+1)回目の受信コマンドメッセージの「受信コマンドメッセージ(m+1)」と前記受信第(m+1)回目の受信コマンドメッセージの実行結果である「送信レスポンスメッセージ(m+1)」から構成される格納メッセージ組を、メモリの所定の領域に格納された最後位である第m位の格納メッセージ組の後に追記する(ステップS15)。
【0070】
これにより第(m+1)位の格納メッセージ組は、前記「受信コマンドメッセージ(m+1)」と前記「送信レスポンスメッセージ(m+1)」から構成される新たな第(m+1)位の格納メッセージ組として更新されメモリ上に保持される。
【0071】
その後、オペレーティングシステムは、追記された第(m+1)位の格納メッセージ組に属する「送信レスポンスメッセージ(m+1)」からなるレスポンスメッセージを上位装置に返信する(ステップS12)。
【0072】
このように、本発明のICカードのオペレーティングシステムは、一連の処理において、受信した受信コマンドメッセージに対応する格納コマンドメッセージを有する格納メッセージ組がメモリ上にないときは、当該コマンドメッセージを実行して、その受信コマンドメッセージと、当該コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を追記してメモリ上に記録するものである。
【0073】
以下、上述した本発明を実施するための最良の形態で示したICカードを用いて、上位装置と通信を実行する際、オペレーティングシステムが実行するデータ処理の実施例について、図5から図11を用いて説明する。
【実施例】
【0074】
本実施例で用いたICカードは、上位装置と無線にて通信を行う非接触ICカードであり、複数のアプリケーションを搭載可能で、かつ複数のアプリケーションに対応可能なオペレーティングシステムを搭載したマルチアプリケーション型ICカードである。なお、上位装置が送信、すなわちICカードが受信する受信コマンドメッセージは総計3個であり、これら受信コマンドメッセージの内容は変更されることなく固定されたもので、かつその受信順序も固定されているものとする。ICカードが受信する受信コマンドメッセージは、受信順に、「アプリケーション選択」コマンドメッセージ、「認証」コマンドメッセージ、および「ID読み出し」コマンドメッセージである。
【0075】
図5は、本発明のICカードに係る各受信コマンドメッセージの内容、レスポンスメッセージの内容、およびそのデータ長を示す図である。
【0076】
図5において、例えばコマンド番号「C1」である受信第1回目の「アプリケーション選択」の受信コマンドメッセージあるいは格納コマンドメッセージ(以下、単にコマンドメッセージという)は、コマンドヘッダとコマンドボディで構成され、そのコマンドメッセージの内容は、各々「選択コマンド」および「アプリケーション名」である。そして各々のデータ長は、「5byte」および「16byte」である。
【0077】
また、コマンド番号「C1」である受信第1回目の「アプリケーション選択」の送信レスポンスメッセージあるいは格納レスポンスメッセージ(以下、単にレスポンスメッセージという)は、レスポンスボディとレスポンストレイラで構成され、そのレスポンスメッセージの内容は、レスポンスボディについては該当するものはなく、レスポンストレイラについては「レスポンスステータス」である。そして各々のデータ長は、「0byte」および「2byte」である。
【0078】
これら各々のデータ長を合算すると、コマンドメッセージ全体のデータ長は、「21byte」となり、レスポンスメッセージ全体のデータ長は、「2byte」となる。よってコマンド番号「C1」である受信第1回目の「アプリケーション選択」に係るコマンドメッセージおよびレスポンスメッセージの総データ長は「23byte」である。
【0079】
同様に、コマンド番号「C2」である受信第2回目の「認証」に係るデータ長、およびコマンド番号「C3」である受信第3回目の「ID読み出し」に係るデータ長については図5に示すとおりである。なお、本実施例において、IDのデータ長は、「8byte」としている。
【0080】
図6は、本発明のICカードに係る1byteあたりのコマンドメッセージ比較処理に要する処理時間を示す図である。
【0081】
図6に示すように、コマンドメッセージ比較処理、すなわち任意の受信コマンドメッセージと、これに対応し、かつメモリの所定の領域に格納されている任意の格納メッセージ組に属する格納コマンドメッセージを比較する際に実行される処理は、「タスク1」、「タスク2」、および「タスク3」とから構成され、各々の1byteあたりの処理時間は、「0.004msec」、「0.002msec」、および「0.004msec」である。よって1byteあたりのコマンドメッセージ比較処理に要する処理時間は、これらの合計「0.010msec」である。なお、図6に示した処理時間は、ICチップ命令セットのサイクル数により算出したものである。
【0082】
図7は、本発明のICカードに係る1byteあたりの格納メッセージ組書き込み処理に要する処理時間を示す図である。
【0083】
図7に示すように、格納メッセージ組書き込み処理、すなわち任意の受信コマンドメッセージと、これに対応する送信レスポンスメッセージを、メモリ上の任意の書き込み用レジスタへ記録する際に実行される処理は、「タスク1」、および「タスク2」とから構成され、各々の処理時間は、「0.004msec」、および「0.004msec」であり、1byteあたりの格納メッセージ組書き込み処理に要する処理時間は、これらの合計「0.008msec」である。なお、図7に示した処理時間は、ICチップ命令セットのサイクル数により算出したものである。
【0084】
図8は、本発明のICカードに係る各受信コマンドメッセージのコマンドメッセージ比較処理、および格納メッセージ組書き込み処理に要する処理時間を示す図である。
【0085】
図8において、例えばコマンド番号「C1」である受信第1回目の「アプリケーション選択」のコマンドメッセージ比較処理に要する処理時間は、1byteあたりのコマンドメッセージ比較処理に要する処理時間「0.010msec」と、当該受信コマンドメッセージのデータ長「21byte」との積によって算出され、その値は、「0.010msec/byte」×「21byte」=「0.210msec」である。
【0086】
また、コマンド番号「C1」である受信第1回目の「アプリケーション選択」の格納メッセージ組書き込み処理に要する処理時間は、1byteあたりの格納メッセージ組書き込み処理に要する処理時間「0.008msec」と、当該受信コマンドメッセージおよび送信レスポンスメッセージの総データ長「23byte」との積、およびこれにメモリの書き込み待ち時間「2.000msec」を加えて算出され、その値は、「0.008msec/byte」×「23byte」+「2.000msec」=「2.184msec」である。ただし、前記メモリの書き込み待ち時間は、ICチップの性能に依存する値である。本実施例では、ICカードに内蔵されたICチップ内のメモリは、その書き込み待ち時間が「2.000msec」であるものを用いている。
【0087】
同様に、コマンド番号「C2」である受信第2回目の「認証」に係る、コマンドメッセージ比較処理と格納メッセージ組書き込み処理に要する処理時間、およびコマンド番号「C3」である受信第3回目の「ID読み出し」に係る、コマンドメッセージ比較処理と格納メッセージ組書き込み処理に要する処理時間については、図8に示すとおりである。
【0088】
ところで、図8において、「C1」から「C3」に至るコマンドメッセージ比較処理を連続して実行する場合のプロセスは、上述した受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理(図2)の場合のプロセスに相当している。そして、このプロセスの実行処理に要する処理時間は、「C1」から「C3」に至る各々のコマンドメッセージ比較処理に要する処理時間の合計、すなわち「0.470msec」である。
【0089】
図9は、従来のICカードに係るデータ処理で各受信コマンドメッセージを実行した場合の、データ処理に要する処理時間を示す図である。
【0090】
図9において、従来のデータ処理、すなわちICカードが任意の受信コマンドメッセージを受信して、当該受信コマンドメッセージの内容を解釈、および当該受信コマンドメッセージを実行するのに要する処理時間は、コマンド番号「C1」である受信第1回目の受信コマンドメッセージ「アプリケーション選択」に係る処理においては、「23.00msec」、コマンド番号「C2」である受信第2回目の受信コマンドメッセージ「認証」に係る処理においては、「57.00msec」、コマンド番号「C3」である受信第3回目の受信コマンドメッセージ「ID読み出し」に係る処理においては、「14.00msec」である。
【0091】
なお、これらはいずれも、従来の市販されている任意のICカードのデータ処理に要した処理時間を測定したときの実測値である。ただし、前記従来の市販されている任意のICカードのハードウェア基本構成は、本実施例で用いたICカードと同等のものである。
【0092】
図10は、受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合、本発明のICカードに係るオペレーティングシステムが実行するデータ処理の処理内容および処理時間を示す図である。
【0093】
図10において、受信コマンドメッセージと格納コマンドメッセージが一部一致しない実行例として、「実行例B」、「実行例C」、および「実行例D」の3パターンを例示した。「実行例B」は、コマンド番号「C1」である受信第1回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第1位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【0094】
また、「実行例C」は、コマンド番号「C1」である受信第1回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第1位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「C2」である受信第2回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第2位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【0095】
また、「実行例D」は、コマンド番号「C1」である受信第1回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第1位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「C2」である受信第2回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第2位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「C3」である受信第3回目の「ID読み出し」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第3位の格納メッセージ組に属する格納コマンドメッセージと一致しない場合の実行例である。
【0096】
例えば「実行例B」において、ICカードがコマンド番号「C1」である受信第1回目の「アプリケーション選択」を受信した際、始めに、ICカードのオペレーティングシステムは、処理番号「処理1」の「C1比較」処理、すなわち「アプリケーション選択」の受信コマンドメッセージと、これに対応し、かつメモリの所定の領域に格納されている第1位の格納メッセージ組に属する格納コマンドメッセージを比較する。このときのコマンドメッセージ比較処理に要する処理時間は、上述の図8で示したように「0.210msec」である。
【0097】
次に、ICカードのオペレーティングシステムは、処理番号「処理2」の「C1実行」処理、すなわち「アプリケーション選択」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図9で示したように「23.00msec」である。
【0098】
引き続き、ICカードのオペレーティングシステムは、処理番号「処理3」の「C1組書込」処理、すなわち「アプリケーション選択」の受信コマンドメッセージと、「処理1」で生成された送信レスポンスメッセージを、メモリ上の第1位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図8で示したように「2.184msec」である。
【0099】
最後に、ICカードのオペレーティングシステムは、処理番号「処理4」の「後続組消去」処理、すなわちメモリの所定の領域に格納されている第2位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを無効値とする無効化処理を実行する。このときの処理に要する処理時間は、書き込み待ち時間のみである「2.000msec」である。
【0100】
ICカードのオペレーティングシステムは、上述した「処理1」から「処理4」に至る処理を連続して実行し、受信第1回目の受信コマンドメッセージ「アプリケーション選択」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理1」から「処理4」に至る処理に要した処理時間の総和となり、その値は「27.39msec」である。
【0101】
その後、ICカードはコマンド番号「C2」である受信第2回目の「認証」を受信する。始めに、ICカードのオペレーティングシステムは、処理番号「処理1」の「C2実行」処理、すなわち「認証」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図9で示したように「57.00msec」である。
【0102】
なお、この「C2実行」処理は、先のコマンド番号「C1」である受信第1回目の「アプリケーション選択」に係る実行処理でなされた「処理4」、すなわちメモリの所定の領域に格納されていた第2位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの無効化処理によって、メモリ上には、「認証」の受信コマンドメッセージに対応する格納コマンドメッセージおよび格納レスポンスメッセージからなる格納メッセージ組が存在しないためになされるものである。
【0103】
次に、ICカードのオペレーティングシステムは、処理番号「処理2」の「C2組書込」処理、すなわち「認証」の受信コマンドメッセージと、「処理1」で生成された送信レスポンスメッセージを、メモリ上の第2位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図8で示したように「2.184msec」である。
【0104】
ICカードのオペレーティングシステムは、上述した「処理1」から「処理2」に至る処理を連続して実行し、受信第2回目の受信コマンドメッセージ「認証」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理1」から「処理2」に至る処理に要した処理時間の総和となり、その値は「59.18msec」である。
【0105】
さらに、ICカードはコマンド番号「C3」である受信第3回目の「ID読み出し」を受信する。始めに、ICカードのオペレーティングシステムは、処理番号「処理1」の「C3実行」処理、すなわち「ID読み出し」の受信コマンドメッセージの内容の解釈、実行をする。そして、その実行結果である送信レスポンスメッセージを上位装置に返信する。このときの処理に要する処理時間は、上述の図9で示したように「14.00msec」である。
【0106】
なお、この「C3実行」処理は、先のコマンド番号「C1」である受信第1回目の「アプリケーション選択」に係る実行処理でなされた「処理4」、すなわちメモリの所定の領域に格納されていた第2位以降のすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの無効化処理によって、メモリ上には、「ID読み出し」の受信コマンドメッセージに対応する格納コマンドメッセージおよび格納レスポンスメッセージからなる格納メッセージ組が存在しないためになされるものである。
【0107】
次に、ICカードのオペレーティングシステムは、処理番号「処理2」の「C3組書込」処理、すなわち「ID読み出し」の受信コマンドメッセージと、「処理1」で生成された送信レスポンスメッセージを、メモリ上の第3位の格納メッセージ組を保持する所定の領域へ記録する格納メッセージ組書き込み処理を実行する。このときの処理に要する処理時間は、上述の図8で示したように「2.080msec」である。
【0108】
ICカードのオペレーティングシステムは、上述した「処理1」から「処理2」に至る処理を連続して実行し、受信第3回目の受信コマンドメッセージ「ID読み出し」に係る実行処理を完了する。このときの処理全体に要する処理時間は「処理1」から「処理2」に至る処理に要した処理時間の総和となり、その値は「16.08msec」である。
【0109】
このように、ICカードは、上位装置から受信した3個のコマンドメッセージ、すなわちコマンド番号「C1」である受信第1回目の受信コマンドメッセージ「アプリケーション選択」、コマンド番号「C2」である受信第2回目の受信コマンドメッセージ「認証」、およびコマンド番号「C3」である受信第3回目の受信コマンドメッセージ「ID読み出し」の実行、およびこれら3個の受信コマンドメッセージに応答する各々のレスポンスメッセージを上位装置に返信する一連の情報のやりとりを行い、上位装置との通信を完了する。
【0110】
なお、「実行例C」および「実行例D」については、一致しない受信コマンドメッセージが異なるのみで、それ以外の一連のプロセスは「実行例B」と同様であるので、ここでの詳細な説明は省略する。
【0111】
図11は、本発明のICカードのデータ処理に要する処理時間と、従来のICカードのデータ処理に要する処理時間との比較を示す図である。
【0112】
図11において、本発明のICカードのデータ処理の実行例として、「実行例A」、「実行例B」、「実行例C」、および「実行例D」の4パターンを例示した。なお、「実行例A」は、3個の受信コマンドメッセージのすべてが一致する場合、すなわちコマンド番号「C1」である受信第1回目の「アプリケーション選択」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第1位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「C2」である受信第2回目の「認証」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第2位の格納メッセージ組に属する格納コマンドメッセージと一致し、コマンド番号「C3」である受信第3回目の「ID読み出し」の受信コマンドメッセージが、これに対応し、かつメモリの所定の領域に格納されている第3位の格納メッセージ組に属する格納コマンドメッセージと一致する場合の実行例である。ただしここで例示した、「実行例B」、「実行例C」、および「実行例D」は、上述の図10で説明したものと同一のものである。
【0113】
また、「実行例A」は、3個の受信コマンドメッセージの各々の受信コマンドメッセージと、これらに対応し、かつメモリの所定の領域に格納される各々の格納コマンドメッセージがすべて一致することから、各々の受信コマンドメッセージに係る実行処理は、すべてコマンドメッセージ比較処理のみで完了する。したがって、「実行例A」の各受信コマンドメッセージに係るデータ処理に要する処理時間は、上述の図8に示したコマンドメッセージ比較処理に要する処理時間の値と同一のものとなる。
【0114】
また、従来のICカードのデータ処理に要する処理時間は、上述の図9に示した処理時間の値と同一のものである。
【0115】
図11において、従来のICカードのデータ処理、すなわち一連の3個の受信コマンドメッセージの実行処理に要する処理時間は、「94.00msec」である。これに対し、本発明のICカードのデータ処理のうち、「実行例A」では、その処理時間が「0.470msec」であり、従来のICカードのデータ処理に要する処理時間を「1.0」とした相対値で比較すると、「実行例A」の値は「0.005」となり、データ処理に要する処理時間は1/200である。
【0116】
また、「実行例B」、「実行例C」、および「実行例D」のデータ処理に要する処理時間は、それぞれ「102.7msec」、「102.9msec」、および「102.9msec」であり、同様に相対値で比較すると、それぞれ「1.1」、「1.1」、および「1.1」となり、従来のICカードのデータ処理に要する処理時間とほぼ同等である。
【0117】
したがって、マルチアプリケーション型のICカードであっても、事実上単一のアプリケーションのみしか使用せず、上位装置から受信する受信コマンドメッセージが変更されることなく固定され、かつその受信順序も固定されている場合においては、上述の「実行例A」の実行結果に示されたとおり、そのデータ処理に要する処理時間は大幅に短縮され、その結果、上位装置とICカード間の通信時間の短縮化が実現でき、通信の高速化が達成される。同時に、受信した受信コマンドメッセージと、これに対応した格納コマンドメッセージとを比較して不一致となる場合であっても、従来のICカードの処理時間とほぼ同等の処理時間で目的のファイルを特定し、前記受信コマンドメッセージを正確に実行することができる。
【0118】
なお、本実施例で例示した各受信コマンドメッセージに係るデータ処理に要する処理時間の各々は、一例に過ぎず、使用するICカードに内蔵されているICチップの性能、あるいはICカードのオペレーティングシステムの設計等によってその結果は異なる。また、本実施例では、マルチアプリケーション型のICカードを例示して説明したが、これに限定されず、単一のアプリケーションを搭載したICカードであってもよい。また、上位装置との通信は、例示した非接触方式のICカードに限らず、接触方式のICカードであってもよい。
【0119】
以上、実施例を用いて、本発明の実施の形態を説明したが、本発明は、本実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更があっても本発明に含まれる。すなわち、当業者であれば、当然なしえるであろう各種変形、修正もまた本発明に含まれることは勿論である。
【産業上の利用可能性】
【0120】
本発明のICカードは、複数のアプリケーションを搭載してあっても、そのうちの単一の特定アプリケーションの使用頻度が高いマルチアプリケーション型のICカード、あるいは単一のアプリケーションを搭載したICカードを用いたICカード通信システムに利用可能である。
【図面の簡単な説明】
【0121】
【図1】本発明のICカードのコマンドメッセージおよびレスポンスメッセージの処理過程を説明するフローチャート。
【図2】本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージがすべて一致する場合のデータ処理を説明する図。
【図3】本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数以内で、かつ受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合のデータ処理を説明する図。
【図4】本発明のICカードに係る受信コマンドメッセージの受信回数が格納メッセージ組の個数を超える場合のデータ処理を説明する図。
【図5】本発明のICカードに係る各受信コマンドメッセージの内容、レスポンスメッセージの内容、およびそのデータ長を示す図。
【図6】本発明のICカードに係る1byteあたりのコマンドメッセージ比較処理に要する処理時間を示す図。
【図7】本発明のICカードに係る1byteあたりの格納メッセージ組書き込み処理に要する処理時間を示す図。
【図8】本発明のICカードに係る各受信コマンドメッセージのコマンドメッセージ比較処理、および格納メッセージ組書き込み処理に要する処理時間を示す図。
【図9】従来のICカードに係るデータ処理で各受信コマンドメッセージを実行した場合の、データ処理に要する処理時間を示す図である。
【図10】受信コマンドメッセージと格納コマンドメッセージが一部一致しない場合、本発明のICカードに係るオペレーティングシステムが実行するデータ処理の処理内容および処理時間を示す図。
【図11】本発明のICカードのデータ処理に要する処理時間と、従来のICカードのデータ処理に要する処理時間との比較を示す図。
【図12】ICカードに内蔵されたICチップ内の書き換え可能な不揮発性メモリの所定の領域に格納されるデータのデータ構造の一例を示す概略図。
【図13】ICカードのオペレーティングシステムが上位装置から受信した受信コマンドメッセージを実行処理するプロセスを模式的に示した図。
【図14】上位装置とICカード間の通信におけるコマンドメッセージおよびレスポンスメッセージの送受信を実行するシーケンスの一例を示した概略図。

【特許請求の範囲】
【請求項1】
上位装置から送信されるコマンドメッセージを受信し、前記コマンドメッセージの内容を解釈して、前記コマンドメッセージを実行するオペレーティングシステムを搭載し、かつ前記コマンドメッセージの実行結果を前記上位装置へ返信するICカードであって、
前記オペレーティングシステムが、書き換え可能な不揮発性メモリの所定の領域に格納される、一対の格納コマンドメッセージおよび格納レスポンスメッセージからなる複数の格納メッセージ組に関する情報を記録する機能と、
前記オペレーティングシステムが、前記複数の格納メッセージ組に順位を付与する機能と、
前記オペレーティングシステムが、前記複数の格納メッセージ組の個数を計数する機能と、
前記オペレーティングシステムが、前記ICカードが受信した受信コマンドメッセージと、前記複数の格納メッセージ組の個数以内の値であってかつ前記受信コマンドメッセージの受信回数の値と一致する順位に位置する格納メッセージ組に属する格納コマンドメッセージを、比較する機能を有するとともに、
前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および/またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および/またはコマンドメッセージ長の一致を確認した場合、
前記オペレーティングシステムは、前記一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、および前記受信コマンドメッセージの実行をせず、前記任意の格納メッセージ組の格納レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とするICカード。
【請求項2】
前記オペレーティングシステムが、前記受信コマンドメッセージと前記格納コマンドメッセージとを比較し、前記受信コマンドメッセージの内容および/またはコマンドメッセージ長と、前記格納コマンドメッセージの内容および/またはコマンドメッセージ長の不一致を確認した場合、
前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第1位から始まり、前記不一致を確認した任意の格納メッセージ組の一つ前の格納メッセージ組が位置する順位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、
前記不一致を確認した任意の格納メッセージ組が位置する順位の値と一致する順番で受信した受信コマンドメッセージの内容の解釈、実行をして、
前記不一致を確認した任意の格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージを、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージへ書き換えるとともに、
前記不一致を確認した任意の格納メッセージ組より後の順位にあるすべての格納メッセージ組に属する格納コマンドメッセージおよび格納レスポンスメッセージの双方を無効化した後、
前記送信レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とする請求項1に記載のICカード。
【請求項3】
前記受信回数の値が前記複数の格納メッセージ組の個数の値を超える場合、
前記オペレーティングシステムは、順位が付与されている前記複数の格納メッセージ組のうち、第1位から始まり最後位に至る、各々の格納メッセージ組に属する格納コマンドメッセージの内容を一つずつ順番に解釈、実行した後、
前記複数の格納メッセージ組の個数の値を超えた位置で受信した受信コマンドメッセージの内容の解釈、実行をして、
一対の、前記受信コマンドメッセージと前記受信コマンドメッセージの実行結果である送信レスポンスメッセージからなる格納メッセージ組を、最後位の格納メッセージ組の後に追記するとともに、
前記送信レスポンスメッセージを、前記上位装置に返信する機能を有したことを特徴とする請求項1ないし2に記載のICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate