(57)【要約】 【課題】SELECT FILEコマンドを使用し、ＤＦ−nameと同じ値が付与されたＡＩＤを識別子とする一括コマンド群が登録されていれば一括処理することにより処理時間を短縮できるＩＣカードを提供する。【解決手段】外部端末から受信したコマンドがSELECTコマンドで、かつ、一括処理コマンドであるとき、当該一括処理コマンドを構成するData領域に設定されたＤＦ−nameを一括処理するために登録されたコマンド群を実行する対象アプリケーションを参照するためのＡＩＤとして設定する設定手段と、このＡＩＤ設定手段によって設定されたアプリケーションによって登録されたコマンド群を1個ずつ処理し、その結果を結合し、外部端末に一括送信することにより処理時間を短縮する。【選択図】  図６
2013161310.tif 000002
【特許請求の範囲】
【請求項１】
制御部、記憶部及び通信部を有して構成され、外部端末から送信されたヘッダ部及びData部で構成されたコマンドを受信し、このコマンドを解釈、実行してその結果をレスポンスとして前記外部端末に送信するＩＣカードにおいて、
前記制御部は、
前記通信部を介して前記外部端子から受信したコマンドがISO/IEC 7816-4で規定されたSELECT FILEコマンドであるかを確認するコマンド確認手段と、
このコマンド確認手段による確認の結果、SELECT FILEコマンドで、かつ、一括処理コマンドが確認されたとき、当該一括処理コマンドを構成する前記Data部に設定されたＤＦ−nameを、一括処理するために登録されたコマンド群を実行する対象アプリケーションを識別する識別子としてのＡＩＤを設定するＡＩＤ設定手段と、
このＡＩＤ設定手段で設定された前記対象アプリケーションによって指定された前記登録されたコマンド群を1個ずつ処理し、その処理結果を前記記憶部に記憶する一括処理手段と、
この一括処理手段によって1個ずつ処理された結果を結合し、前記通信部を制御して前記外部端末に一括して送信する送信手段と、
を備えたＩＣカード。
【請求項２】
前記制御部はまた、
前記コマンド確認手段で確認したSELECT FILEコマンドを構成するパラメータＰ１の値が一括処理コマンドであることを確認する一括処理コマンド確認手段と、
この一括処理コマンド確認手段により一括処理コマンドが確認されたとき、
前記ＤＦ−nameを識別子とする一括コマンド群が登録されていることを確認する一括コマンド群確認手段と、を備え
前記処理手段とは、
前記一括コマンド群確認手段によって確認された一括コマンド群の最初のコマンドを読み出して実行し、その結果を前記記憶部に記憶し、同様に、一括コマンド群として登録されている他のコマンドを順次実行し、その結果を前記記憶部に記憶する請求項１記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一括読み出し可能なＩＣカードに関する。
【背景技術】
【０００２】
ＩＣカードは、ＩＣカードリーダ・ライタ（端末）を備えた端末上のアプリケーション、あるいは、この端末とネットワーク接続されたサーバ上のアプリケーションによって、外部端末からアクセスされる。外部端末からＩＣカード内の複数のＥＦ(Elementary File：エレメンタリファイル、基礎ファイル)-ＩＤ(Identification:識別子)で指定されたレコードを読み出す場合、現状では、ＩＣカードリーダ・ライタ(端末)が、short ＥＦ−ＩＤと、そのＩＤ内のレコード番号を指定し、ＩＣカードは、ＩＣカードリーダ・ライタからのコマンド(命令)を解釈し、指定されたＥＦ−ＩＤ内のレコード番号で、指定されたレコードを読み出す処理を繰り返す。
【０００３】
なお、上記ＥＦ(Elementary File：エレメンタリファイル、基礎ファイル)とは、ISO/IEC 7816-4で規定されているデータを格納するファイルである。
【０００４】
なお、１回に送信可能なデータ量の最大値を規定しないことにより、読み出すデータの量が多くても読み出しにおけるコマンド／レスポンス処理が１回で済む方法が知られている(例えば、特許文献１参照。)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１２２４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、複数のＥＦ−ＩＤから複数のレコードを読み出す場合、ＩＣカードリーダ・ライタ(端末)がＥＦ−ＩＤとそのＩＤ内のレコード番号を指定し、ＩＣカードは端末からのコマンドを解釈し、指定ＩＤ内の指定レコードを読み出す処理を繰り返す。この結果、ＩＣカードは端末からのコマンドを解釈する回数が増え、ＩＣカードのファイルアクセスにおける処理時間が増えるという課題があった。なお、特許文献の方法は、大量データの送受信を行うための通信状態が安定にできる領域での使用が推奨されている。
【０００７】
本発明は、上述した課題を解決するためになされたもので、SELECT FILEコマンドを使用し、ＤＦ−nameと同じ値が付与されたＡＩＤを識別子とする一括コマンド群が登録されている場合、当該SELECT FILEコマンドを実行することにより、登録された一括コマンド群を実行することができるため、処理時間を短縮することができるＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の請求項１記載のＩＣカードは、制御部、記憶部及び通信部を有して構成され、外部端末から送信されたヘッダ部及びData部で構成されたコマンドを受信し、このコマンドを解釈、実行してその結果をレスポンスとして前記外部端末に送信するＩＣカードにおいて、前記制御部は、前記通信部を介して前記外部端子から受信したコマンドがISO/IEC 7816-4で規定されたSELECT FILEコマンドであるかを確認するコマンド確認手段と、このコマンド確認手段による確認の結果、SELECT FILEコマンドで、かつ、一括処理コマンドが確認されたとき、当該一括処理コマンドを構成する前記Data部に設定されたＤＦ−nameを、一括処理するために登録されたコマンド群を実行する対象アプリケーションを識別する識別子としてのＡＩＤを設定するＡＩＤ設定手段と、このＡＩＤ設定手段で設定された前記対象アプリケーションによって指定された前記登録されたコマンド群を1個ずつ処理し、その処理結果を前記記憶部に記憶する一括処理手段と、この一括処理手段によって1個ずつ処理された結果を結合し、前記通信部を制御して前記外部端末に一括して送信する送信手段と、を備える。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係るＩＣカードの概略構成図
【図２】ＩＣカードを構成するＮＶＭの構成
【図３】ＩＣカードのＮＶＭ内ユーザデータ領域に設定されたファイル階層構造を説明する図
【図４】READ RECORDコマンドを説明する図
【図５】本実施例に係るSELECT FILEコマンドによるレコード読み出しを一括して行う一括処理コマンドのコマンドフォーマット
【図６】SELECT FILEコマンド処理を説明するフローチャート
【図７】ＩＣカードから端末へ送信するレスポンスフォーマット
【発明を実施するための形態】
【００１０】
本実施例に係るＩＣカードは、制御部及び通信部を有して構成される。制御部は、ＣＰＵ(Central Processing Unit：中央処理装置、マイクロプロセッサと同義)部及び記憶部を有して構成される。記憶部は、ＲＯＭ(Read Only Memory：読み取り専用メモリ)、ＲＡＭ(Random Access Memory：読取・書込メモリ、揮発性メモリ)及びＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory：電気的に消去可能なＰＲＯＭ(プログラマブルロム))などのＮＶＭ(Nonvolatile memory:不揮発性メモリ)を有して構成される。通信部は、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter：汎用非同期受信・送信機)を有して構成される。
【００１１】
このように構成されたＩＣカード１０は、上記ＵＡＲＴを介してＩＣカードリーダ・ライタ(端末)２０と通信を行う。
【００１２】
以下、ＩＣカード１０とＩＣカードリーダ・ライタ２０との通信において、一括読み出しできるＩＣカードのファイルアクセス処理機能を、以下図面を参照して説明する。
【実施例】
【００１３】
図１は、実施例１に係るＩＣカードの概略構成図である。ＩＣカード１０は、制御部及び通信部で構成される。
【００１４】
制御部は、ＣＰＵ部及び記憶部を有する。ＣＰＵ部は、ＣＰＵ１１ａ及びCo-Processor(補助プロセッサ)１１ｂを有して構成される。なお、Co-Processor１１ｂは、マイクロプロセッサ(ＣＰＵ１１ａ)の性能を強化するために特定分野に特化した補助プロセッサをいうが、ＣＰＵ１１ａが複数のプロセッサで構成される場合にはＣＰＵ１１ａに含めて表現される場合もある。
【００１５】
記憶部は、ＲＯＭ(Read Only Memory:読み取り専用メモリ)１３、ＲＡＭ(Random-Access Memory:読取・書込メモリ、揮発性メモリ)１４及びＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory：電気的に消去可能なＰＲＯＭ(プログラマブルロム))などのＮＶＭ((Nonvolatile memory:不揮発性メモリ)１５を有して構成される。
【００１６】
通信部１２は、制御部によって制御され、当該接触式ＩＣカード(以下、ＩＣカードと称する。)１０と、ＩＣカードリーダ・ライタ(端末)２０との間の通信を行う。
【００１７】
図２は、ＩＣカード１０を構成するＮＶＭ１５の構成で、システム領域１５ａ及びユーザデータ領域１５ｂを有して構成される。
【００１８】
システム領域１５ａは、主にＩＣカード用コマンドに関する情報を登録する領域として使用される。一方、ユーザデータ領域１５ｂは、ＩＣカードのアプリケーションのためのファイル階層構造を保持する領域として使用される。
【００１９】
図３は、ＩＣカードのＮＶＭ１５内ユーザデータ領域１５ｂに設定されたファイル階層構造を説明する図である。このファイル構造は、ISO/IEC 7816-4に規定されており、ＤＦ(Dedicated File:専用ファイル)の下にＥＦ(Elementary File:基礎ファイル)が存在するようになっており、Windows(Ｒ)のファイルシステムのように、フォルダの下にファイルが存在するのと同様の構造をしている。フォルダの下にフォルダが作れるのと同じようにＤＦの下にもＤＦをつくることができるため、ファイル構造はツリー状に広がり階層を深くすることができる。このツリーの最上位に存在するＤＦはＭＦ(Master File:主ファイル)と称される。図３は、このようなファイル構造を示している。図示した例では、ＤＦファイルとしてはＤＦ1、ＤＦ2、・・・・が存在できる。図は、この中のＤＦ1を図示している。
【００２０】
従ってＤＦ１の下には、ＥＦ１−１、ＥＦ１−２及びＥＦ１−３が存在し、図示していないＤＦ２の下にＥＦ２−１、ＥＦ２−２・・・が存在する場合があることを示す。本実施例では、ＤＦ1の下にＥＦ１−１、ＥＦ１−２、ＥＦ１−３が存在する場合を示す。
【００２１】
また、ＤＦを識別するＤＦ−nameには、この配下に保持されるデータに対応するアプリケーションに付与されるＡＩＤ(Application Identifier：アプリケーションを特定するＩＤ(Identifier))が設定されている。本実施例では、上記ＤＦ−nameを、ＡＩＤを識別する識別子として設定する。従ってＡＩＤの識別子も１１２２３３４４５５６６と設定される。
【００２２】
ＥＦには識別子としてShort ＥＦ−ＩＤが設定されており、図示したＥＦ１−１では、Short ＥＦ−ＩＤ(短縮ＥＦ−ＩＤと称する場合もあるが同義)が２進数の(００００１)ｂが設定されており、同様に他のＥＦ１−２、ＥＦ１−３も設定される。なお、上記「ｂ」は２進数(binary:２進数)表記であることを示す。
【００２３】
図４は、端末２０からＩＣカード１０に送信するREAD RECORDコマンドによるレコードの読み取り方法を説明する図である。この方法は、従来から行われているが、本実施例に係るSELECT FILEコマンドによるレコード読み出しを一括して行う場合の理解に不可欠であるため、以下説明する。
【００２４】
READ RECORDコマンドは、ヘッダとボデーで構成される。図４(１)に示すREAD RECORDコマンドフォーマットは、ＩＣカード内のユーザデータ領域１５ｂに上述した階層構造に構成されたファイル構造のＥＦ(基礎ファイル)からデータを取得するコマンドフォーマットである。図示したREAD RECORDコマンドは、ＣＬＡ(Class bite)、ＩＮＳ(Instruction bite)、Ｐ１(Parameter bite 1)、Ｐ２(Parameter Bite 2)からなる４バイトのヘッダとＬｅからなる１バイトのボデーで構成されている場合を示しており、READ RECORDコマンドＡ、READ RECORDコマンドＢ、READ RECORDコマンドＣが存在する場合を示す。
【００２５】
図４(２)は、パラメータＰ２の詳細を示す。パラメータＰ２の(b3 b2 b1)が(１００)ｂの場合はパラメータＰ１で指定した値をレコード番号として使用する。また、パラメータＰ２のｂ８〜ｂ４は上述したshort ＥＦ−ＩＤ(短縮ＥＦ−ＩＤ)を示す。従って、(Ｐ１、Ｐ２)が(０１、０Ｃ)の場合には、図３に示すＥＦ１−１で示すファイルが指定され、当該ファイル内のレコードが読み出され、ＲＡＭに保存される。
【００２６】
同様に(Ｐ１、Ｐ２)が(０２、１４)の場合には、図３に示すＥＦ１−２で示すファイルが指定され、当該ファイル内のレコードが読みだされ、ＲＡＭに保存される。同様に(Ｐ１、Ｐ２)が(０３、１Ｃ)の場合には、図３に示すＥＦ１−３で示すファイルが指定され、当該ファイル内のレコードが読みだされ、ＲＡＭに保存される。この様にして保存されたレコードデータは、端末２０に送信される。この手順は、図６に示すフローチャートを用いて詳細に説明する。
【００２７】
なお、上述したREAD RECORDコマンドでは、図５に示すＬｃ、Dataは指定しない。また、Ｌｅは(００)に指定される。このＬｅを指定することによりREAD RECORDコマンドが読み出そうとするデータの長さを指定することができるが、(００)と指定することにより、読み出そうとするレコード全体の長さが指定される。従って、読み出そうとするデータの長さが不明で、ＩＣカード側にレコードの長さをゆだねる場合には好適である。
【００２８】
上述したREAD RECORDコマンドによるレコードの読み取り方法によってＩＣカード内のレコードを個別に読み取る方法は、従来から行われてきた。
【００２９】
図５(１)は、本実施例に係るSELECT FILEコマンドによるレコード読み出しを一括して行う一括処理コマンドのコマンドフォーマットである。このSELECT FILEコマンドは、上述した４バイトのヘッダとＬｃ、Data、Ｌｅを有して構成される。図５(２)は、実際に使用する場合の例で、下記にその説明を行う。なお、(  )内の数字は、特に断らない限り１６進数表記とし、上述したように２進数で表記する場合は(  )ｂの表記を行う。
【００３０】
Ｌｃ    ：Data部の長さを示す。  
Data    ：ＤＦ−nameを指定する。  
Ｌｅ    ：ＤＦ(Dedicated File:専用ファイル)による処理全体で要求されるデータの長さを示す。  
ＣＬＡ  ：(００)・・・(Class bite)
ＩＮＳ  ：(Ａ４)・・・(Instruction bite)
Ｐ１    ：(０４)・・・(Parameter bite)
Ｐ２    ：(０Ｃ)・・・(Parameter bite)
Ｌｃ    ：(０６)・・・Data部の長さが６バイトであることを示す。  
Data    ：１１２２３３４４５５６６・・ＤＦ−nameが指定される。上記Ｌｃによって当該data部の長さが６バイト(１２桁)に指定されている。本実施例では、１１２２３３４４５５６６からなる１２桁のＤＦ−nameが指定される。
【００３１】
SELECT FILEコマンドは、(ＣＬＡ、ＩＮＳ)を(００、Ａ４)と設定することにより指定することができる。
【００３２】
パラメータバイトＰ１を(０４)と指定することにより、ＤＦ−nameでＤＦ(Dedicated File:専用ファイル)を選択することができる。
【００３３】
本実施例では、上述したSELECT FILEコマンドを実行することにより、図４に示す３個のREAD RECORDコマンドが連続的に実行された場合と同様の処理が行われる。この結果、レコード読み出しを一括して行うことができる。その方法は、READ RECORDコマンドを認識する識別子に対応するアプリケーションのデータセット（このセットされた値がアプリケーションを識別するＡＩＤに相当する。）として、配下に保持するＤＦのＤＦ−nameと同じ値を付与する。この結果、図４(１)に示すREAD RECORDコマンドＡ、READ RECORDコマンドＢ及びREAD RECORDコマンドＣを識別する識別子が１１２２３３４４５５６６となり、図示した通りである。
【００３４】
図６は、SELECT FILEコマンド処理を説明するフローチャートである。ＩＣカード１０は、端末２０からコマンドを受信する(Ｓ０１)。受信したコマンドがSELECT FILEコマンドであるか確認する(Ｓ０２、コマンド確認手段)。なお、図６に示すフローチャートでは、SELEC FILEコマンドをSELECTコマンドと簡略表記してある。
【００３５】
この確認の結果、SELECT FILEコマンドでない場合(Ｓ０２のＮｏ)、別コマンドの判断処理に移行する(Ｓ０３)。
【００３６】
一方、SELECT FILEコマンドの場合(Ｓ０２のＹｅｓ)、パラメータバイトＰ１が(０４)になっているか確認する(Ｓ０４、一括処理コマンド確認手段)。
【００３７】
この確認の結果、パラメータバイトＰ１が(０４)の場合(Ｓ０４のＹｅｓ)、SELECT FILEコマンドによるＤＦ−nameによる選択処理であると認識される。すなわち、当該パラメータバイトＰ１の指定により、当該SELECT FILEコマンドが一括処理コマンドであることが認識される（一括処理コマンド確認手段）。
【００３８】
この一括処理コマンド確認手段による確認の結果、パラメータバイトＰ１が(０４)でない場合は(Ｓ０４のＮｏ)、ＤＦ−nameによる選択（Selected by ＤＦ−name）以外のSELECT FILEコマンドオプション処理に移行する(Ｓ０５)。なお、このオプション処理は本実施例の趣旨でないため、その説明は行わない。
【００３９】
次に、受信コマンドのData部が示す値１１２２３３４４５５６６をＤＦ−nameとするＤＦ（実施例では、ＤＦ１が該当する。）が存在するか検索し(Ｓ０６、ＤＦ-name確認手段)、存在していたら(Ｓ０６のＹｅｓ)、そのＤＦ（実施例では、ＤＦ１が該当する。）を選択する。存在していない場合(Ｓ０６のＮｏ)、異常終了の応答ステータスを出力する(Ｓ０７)。
【００４０】
上記ステップＳ０６で選択したＤＦ１のＤＦ−nameが１１２２３３４４５５６６であるので、このＤＦ−nameと同じ値をＡＩＤ(Application Identifier：アプリケーション識別子)に設定する(ＡＩＤ設定手段)。これは、ＤＦ−nameを一括処理するために登録されたコマンド群を実行する対象アプリケーションを参照するためにＡＩＤとして設定するものである。この設定により、Data部でＤＦ−nameを設定することによりコマンド群を一括処理するアプリケーションが起動される。このＡＩＤ(アプリケーション識別子)を識別子とする一括コマンド群が存在するか確認する(Ｓ０８、一括コマンド群確認手段)。本実施例では、ＤＦ−nameが１１２２３３４４５５６６である図４(１)に示すREAD RECORDコマンドＡ、READ RECORDコマンドＢ、READ RECORDコマンドＣが存在するか確認することになる。
【００４１】
この確認の結果、一括コマンド群が存在する場合(Ｓ０８のＹｅｓ)、以下に示す一括処理を行う。
【００４２】
ｎに１をセットし、一括コマンド群が保持しているREAD RECORDコマンドのデータのうち、ｎ番目のデータ(READ RECORDコマンドＡ)をＡＰＤＵ(Application Protocol Data Unit)バッファに書き込む(Ｓ１１、ＡＩＤ設定手段)。この処理によってアプリケーションはREAD RECORDコマンドＡを実行することが指定される。なおｎは一括コマンド群を構成するコマンド数に対応しており、ｎ←１（ｎ＝１）とすることにより、１番目のコマンドを指定することになる。
【００４３】
上記、指定されたＡＰＤＵバッファ上のコマンド処理を行い(Ｓ１２)、このコマンド処理によって図３に示すＥＦ１−１からレコード番号１のレコードデータを読み出し、そのデータをＲＡＭに保存する(Ｓ１３)。ｎの値をインクルメントし、ｎ＋１番目のデータ(READ RECORDコマンドＢ)を同様に処理し図３に示すＥＦ１−２からレコード番号２のレコードデータを読み出し、そのデータをＲＡＭに保存する。ｎの値をさらにインクルメントしｎ＋２番目のデータ(READ RECORDコマンドＣ)を同様に処理し図３に示すＥＦ１−３からレコード番号３のレコードデータを読み出し、そのデータをＲＡＭに保存する。以上ステップＳ１０〜Ｓ１５までの処理はコマンド数ｎに対応して一括して処理される（一括処理手段）。
【００４４】
ｎの値が３を超えると(Ｓ１５のＹｅｓ)、ＲＡＭに保存した各データを結合したデータを図７に示すフォーマットに従って作成する(Ｓ１６)。
【００４５】
図７は、図６の処理により、ＩＣカードから端末へ送信するレスポンスフォーマットの一例である。このレスポンスフォーマットは、ISO/IEC 7816-3で規定されているResponse ＡＰＤＵのフォーマットに従い、Dataと２byteのＳＷ(Status word：ステータスワード)又はＳＷで構成される。
【００４６】
Dataは1byte固定長領域Length(長さ)と可変長領域Valueによって構成される。Valueにはそれぞれ３つのREAD RECORDコマンド処理によりＥＦ１−１、ＥＦ１−２、ＥＦ１−３から読みだされたレコードデータ(V_A、V_B、V_C)が保持されている。Valueの頭には、各Valueの長さとしてLength(L_A、L_B、L_C)が付加された構造となっている。
【００４７】
ＳＷ（Status word:ステータスワード、ＳＷ１及びＳＷ２で構成される）は、処理状態を示すステータスである。正常処理した場合のＳＷはISO/IEC 7816によって(９０００)(ＳＷ１＝９０、ＳＷ２＝００)と規定されている。なお、(  )内の数字は上述したように１６進数で表示したものである。
【００４８】
この様にして作成されたデータ(data及びＳＷ)は、端末に出力される(Ｓ１７)。
【００４９】
以上説明したよう本発明の実施例によれば、SELECT FILEコマンドを使用し、ＤＦ−nameと同じ値が付与されたＡＩＤを識別子とする一括コマンド群が登録されている場合、当該SELECT FILEコマンドを実行することにより、登録された一括コマンド群を実行し、その結果を結合して送信することにより、コマンドごとのレスポンスを省略することができるため、処理時間を短縮することができる。
【符号の説明】
【００５０】
１０  ＩＣカード
１１ａ  ＣＰＵ
１１ｂ  Co-Processor
１２  通信部(ＵＡＲＴ)
１３  ＲＯＭ
１４  ＲＡＭ
１５  ＮＶＭ
２０  ＩＣカードリーダ・ライタ（端末）
【図１】
2013161310.tif 000003
【図２】
2013161310.tif 000004
【図３】
2013161310.tif 000005
【図４】
2013161310.tif 000006
【図５】
2013161310.tif 000007
【図６】
2013161310.tif 000008
【図７】
2013161310.tif 000009