JP2013164686A - Icカードおよび携帯可能電子装置 - Google Patents

Icカードおよび携帯可能電子装置 Download PDF

Info

Publication number
JP2013164686A
JP2013164686A JP2012026567A JP2012026567A JP2013164686A JP 2013164686 A JP2013164686 A JP 2013164686A JP 2012026567 A JP2012026567 A JP 2012026567A JP 2012026567 A JP2012026567 A JP 2012026567A JP 2013164686 A JP2013164686 A JP 2013164686A
Authority
JP
Japan
Prior art keywords
card
instruction
command
instructions
execution
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
JP2012026567A
Other languages
English (en)
Inventor
Yoshiaki Uchida
圭亮 内田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012026567A priority Critical patent/JP2013164686A/ja
Publication of JP2013164686A publication Critical patent/JP2013164686A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ICカード処理装置との通信手続きを簡略化できるICカードを提供する。
【解決手段】ICカード2は、受信手段と、実行手段と、返信手段とを有する。受信手段は、ICカード処理装置1からのコマンドデータを受信する。実行手段は、受信手段により受信した1つのコマンドデータに複数の命令が含まれる場合、受信したコマンドデータに含まれる複数の命令を実行する。返信手段は、実行手段により実行した複数の命令の実行結果を格納した1つの応答データを当該コマンドの送信元となるICカード処理装置1に返信する。
【選択図】図3

Description

本発明の実施形態は、ICカードおよび携帯可能電子装置に関する。
従来、ICカード処理装置は、ICカードへ命令を実行させる際、1つの命令をコマンドの情報フィールドに格納したコマンドをICカードに送信する。コマンドを受信したICカードは、当該コマンドの情報フィールドに格納されている1つの命令を実行する。実行が終了すると、ICカードは、実行結果を情報フィールドに格納した応答データをICカード処理装置へ返信する。即ち、従来のICカードは、1つのコマンドでは1つの命令しか受け付けられない。
ISO/IEC 14443
ICカード処理装置は1つずつしか命令を送信できずICカードも1つずつしか実行結果を返信することができない。ICカード処理装置がICカードに多くの命令を要求する場合、ICカードとICカード処理装置との間では、通信手続きが多くなってしまうという問題がある。これらの課題を解決するため、多く命令が要求される場合であっても通信手続きなどが効率的に行えるICカードおよび携帯可能電子装置を提供することを目的とする。
実施形態によれば、ICカードは、受信手段と、実行手段と、返信手段とを有する。受信手段は、外部装置からのコマンドデータを受信する。実行手段は、受信手段により受信した1つのコマンドデータに複数の命令が含まれる場合、受信したコマンドデータに含まれる複数の命令を実行する。返信手段は、実行手段により実行した複数の命令の実行結果を格納した1つの応答データを当該コマンドの送信元となる外部装置に返信する。
本実施形態に係るICカードとICカード処理装置の構成について説明するためのブロック図である。 本実施形態に係るICカード内のICモジュールの構成について説明するためのブロック図である。 本実施形態に係るICカード処理装置とICカード間でのコマンドの送受信を説明するための図である。 本実施形態に係るICカードが第1の処理例において送受信するコマンドデータおよびレスポンスデータの例を示す図である。 本実施形態に係るICカードにおける第1の処理例を説明するためのフローチャートである。 本実施形態に係るICカードが第2の処理例において送受信するコマンドデータおよびレスポンスデータの例を示す図である。 本実施形態に係るICカードにおける第2の処理例を説明するためのフローチャートである。
以下、実施形態について、図面を参照して説明する。
図1は、本実施形態に係る携帯可能電子装置としてのICカード2と通信を行う外部装置としてのICカード処理装置1の構成について説明するためのブロック図である。
まず、上記ICカード処理装置1の構成について説明する。
上記ICカード処理装置1は、図1に示すように、制御部11、ディスプレイ12、キーボード13、及び、カードリーダライタ14などを有する。
上記制御部11は、ICカード処理装置1全体の動作を制御するものである。上記制御部11は、CPU、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、上記制御部11は、パーソナルコンピュータ(PC)により構成される。
上記制御部11は、上記カードリーダライタ14によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有する。たとえば、上記制御部11は、カードリーダライタ14を介してICカード2にデータの書き込みコマンドを送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、上記制御部11は、ICカード2に読み取りコマンドを送信することによりICカード2からデータを読み出す制御を行う。
上記ディスプレイ12は、上記制御部11の制御により種々の情報を表示する表示装置である。上記キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。
上記カードリーダライタ14は、上記ICカード2との通信を行うためのインターフェース装置である。上記カードリーダライタ14は、上記ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、上記ICカード2が接触型のICカードである場合、上記カードリーダライタ14は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
また、上記ICカード2が非接触型のICカードである場合、上記カードリーダライタ14は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。上記カードリーダライタ14では、上記ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ14は、上記制御部11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
次に、上記ICカード2について説明する。
本実施形態においては、携帯可能電子装置の一例としてのICカード2について説明するものとする。
上記ICカード2は、上記ICカード処理装置1などの上位機器から電力などの供給を受けた際、活性化される(動作可能な状態になる)ようになっている。例えば、上記ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
また、上記ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、上記ICカード2が非接触式のICカードで構成される場合、上記ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
なお、以下の実施形態の説明においては、主として、ICカード2が非接触式のICカードであることを想定して説明する。ただし、非接触式のICカードと接触式のICカードとは、ICカード処理装置としての外部装置との通信方式が異なるだけであるため、以下に説明する実施形態は、接触式のICカードにも同様に適用できるものである。
次に、上記ICカード2の構成例について説明する。
図2は、本実施の形態に係るICカード2の構成例を概略的に示すブロック図である。上記ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵されている。上記モジュールMは、1つまたは複数のICチップCaと外部通信用の通信インターフェース(図2に示す構成例ではアンテナ)が接続された状態で一体的に形成され、ICカード2の本体C内に埋設されている。また、上記ICカード2のモジュールMは、図2に示すように、CPU21、ROM22、RAM23、EEPROM24、乱数発生回路25、変復調部26、および、アンテナ27を備えている。
ICカード2は、ICカード処理装置1などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ICカード2が非接触式のICカードとして構成される場合、ICカード2は、ICカード処理装置1からの電波をアンテナにより受信し、その受信した電波から図示しない電源部により動作電源用の電圧及び動作クロックを生成して活性化する。この活性化処理において、CPU21は、ICカード処理装置1とデータ通信を行うための設定なども行う。
CPU21は、ICモジュールM全体の制御を司る制御部として機能する。CPU21は、ROM22あるいはEEPROM24に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、CPU21は、オペレーティングシステムのプログラムを実行することにより、当該ICカード2の基本的な動作制御を行う。また、CPU21は、アプリケーションプログラムを実行することにより、当該ICカード2の運用形態に応じた種々の動作制御を行う。なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU21は、ハードウエア回路により実行される機能を制御する。
ROM22は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM22は、製造段階で制御プログラム及び制御データなどを記憶した状態でICモジュールM内に組み込まれる。即ち、ROM22に記憶される制御プログラム及び制御データは、予めICモジュールMの仕様に応じて組み込まれる。
RAM23は、揮発性のメモリである。RAM23は、CPU21が処理中のデータなどを一時的に格納する。RAM23は、たとえば、ICカード処理装置1から受信するコマンドデータなどの受信データを保持する受信用バッファ27、演算処理中のデータを保持する計算用バッファ28、コマンドデータに対する応答(レスポンス)としてのレスポンス(応答)データなどの送信用のデータを保持する送信用バッファ29を備えていても良い。
EEPROM24は、データの書き込み及び書換えが可能な不揮発性のメモリである。EEPROM24の代わりに、例えば、フラッシュROMなどの書換え可能な不揮発性メモリにより構成される。EEPROM24は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、EEPROM24では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
乱数発生回路25は、乱数を発生させる。乱数発生回路25は、CPU21からの指示に応じて乱数を生成する。たとえば、CPU21は、ICカード処理装置1から乱数の生成を要求するコマンドを受信した場合に乱数発生回路25に乱数の生成を指示する。乱数は、認証処理などに用いられる。
変復調部26とアンテナ27とは、当該ICカード2が非接触型のICカードとしてICカード処理装置1のカードリーダライタ14との無線通信を行うための通信インターフェースとして機能する。
アンテナ27は、ICカード処理装置2のカードリーダライタ14との通信を行うためのアンテナである。アンテナ27は、ICチップCa内の変復調部26に接続される。アンテナ27は、カードリーダライタ14から受信した搬送波を変復調部26へ供給し、変復調部26から供給された搬送波を電波として送信する。
変復調部26は、アンテナ27がICカード処理装置1から受信した搬送波を受け取り、当該搬送波を復調することにより元のデータに戻す。また、変復調部26は、ICカード2からICカード処理装置1へ送信するデータをCPU21から受け取り、当該データを電波で送信する搬送波へ変調する。変復調部26は、生成した搬送波をアンテナ27を介してICカード処理装置1へ送信する。
なお、当該ICカード2が接触型のICカードとして実現される場合、ICカード処理装置1と通信を行うための通信インターフェースは、変復調部とアンテナとに変えて、ICカード処理装置1のカードリーダライタ14と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成すれば良い。
次に、ICカード2におけるコマンド処理について説明する。
本実施形態のICカード2は、ICカード処理装置1から1回に受信する1つのコマンドデータに含まれる複数の命令を順に実行する機能、および、それらの命令の実行結果を1つのレスポンスデータでICカード処理装置1へ返信する機能を有する。このようなICカード2の機能に対応して、ICカード処理装置1は、ICカード2に実行させる複数の命令を含めた1つのコマンドデータを生成する機能を有する。
また、ICカード処理装置1は、1つのコマンドデータで複数の命令をICカードに実行させる場合、当該ICカード2との通信設定において、通信フレームの最大長を2つ以上の命令若しくは応答を格納できる長さに設定する。1つのコマンドデータに1つの命令(コマンド)を格納する形態においては、コマンドデータ全体のフォーマットが規定の長さとなるため、通信フレームの最大長は、規定の長さに設定すれば良い。これに対して、1つのコマンドデータに複数の命令(コマンド)を格納する場合、コマンドデータ全体のフォーマットも長くする必要が生じる。このため、ICカード処理装置1は、1つのコマンドデータで複数の命令をICカードに実行させる場合、当該ICカード2との通信設定において、通信フレームの最大長を2つ以上の命令若しくは応答を格納できる長さに設定する。
たとえば、ICカード処理装置1は、ICカード2を活性化させる活性化処理において通信フレームの最大長の設定を含む通信設定を行う。このICカード2の活性化処理において、ICカード処理装置1は、カードリーダライタ14を介して、ATTRIBコマンドをICカード2に送信することで、ICカード処理装置1とICカード2との間における通信フレームの最大長を設定する。この場合、ICカード処理装置1は、通信フレームの最大長として、2つ以上の命令もしくは応答を格納したデータ(コマンドデータもしくはレスポンスデータ)を送受信することができる長さを設定する。
次に、ICカード処理装置1とICカード2とが送受信するコマンドデータとレスポンスデータとの例について説明する。
図3は、2つの命令を含むコマンドデータとそれら2つの命令に対する2つの応答を含むレスポンスデータとの構成例を示す図である。図3に示す例では、ICカード処理装置1が2つの命令を含むコマンドデータをICカード2へ送信し、ICカード2が2つの命令に対するレスポンスデータをICカード処理装置1へ送信するまでの過程を概略的に示している。なお、図3に示すレスポンスデータは、コマンドデータに含まれる2つの命令を正常に実行できた場合のものを想定している。
ICカード2に2つの命令を実行させる場合、ICカード処理装置1の制御部11は、ICカード2へ供給するコマンドデータの情報フィールド(INF)に2つの命令を格納する。ここでは、図3に示すように、ICカード2に実行させる2つの命令(コマンド)が「Command APUD 1」、「Command APUD 2」であるものとする。制御部11は、2つの命令を格納したINFの前にプロローグフィールドである「PCB」、「CID」、および「NAD」を付加し、当該INFの後にエピローグフィールドである「CRC」を付加することにより、図3に示すような1つのコマンドデータを生成する。2つの命令を格納した1つのコマンドデータを作成すると、制御部11は、カードリーダライタ14により当該コマンドデータを搬送波へ変調してICカード2へ送信する。
なお、コマンドデータでは、情報フィールド(INF)に幾つの命令を格納したかを示す情報を含めるようにしても良い。たとえば、プロローグフィールドの「PCB」における何れかのビットがINFに格納した命令の数を示す情報としても良い。また、INFの先頭に、当該INF内に格納した命令数を示す情報を格納するようにしても良い。同様に、レスポンスデータにおいても、情報フィールド(INF)に幾つの命令に対するレスポンス(処理結果)を格納したかを示す情報を含めるようにしても良い。たとえば、プロローグフィールドの「PCB」における何れかのビットがINFに格納したレスポンスの数を示す情報としても良い。また、INFの先頭に、当該INF内に格納したレスポンスの数を示す情報を格納するようにしても良い。
ICカード2は、アンテナ27によりICカード処理装置1から送信されたコマンドデータを受信する。変復調部26は、アンテナ27によりICカード処理装置1から受信した電波を復調し、当該コマンドデータを得る。変復調部26は、ICカード処理装置1から受信した電波から得られたコマンドデータをCPU21へ送る。CPU21は、当該コマンドデータの情報フィールド(INF)内にある全ての命令を抽出する。CPU21は、抽出した全ての命令をRAM23内に設けた受信バッファに格納する。たとえば、CPU21は、コマンドデータのINF内の全命令を、格納されていた順にならべてRAM23内に格納する。CPU21は、RAM23内に格納した受信したコマンドデータにおける各命令をINF内に並べられた順番で実行する。図3に示す例では、CPU21は、「Command APUD 1」および「Command APUD 2」の順番で各命令をそれぞれ実行する。
CPU21は、各命令の実行結果を示す情報を、当該コマンドデータに対するレスポンスデータの情報フィールド(INF)に格納するデータとしてRAM23内に設けた計算用バッファに格納する。この場合、CPU21は、コマンドデータの情報フィールドに格納された各命令の順番と同一になるように、各命令の実行結果を示す情報を順番に計算用バッファに格納する。図3に示す例では、CPU21は、「Command APUD 1」の実行結果としての「Response APDU 1」、および、「Command APUD 1」の実行結果としての「Response APDU 2」を順番に計算用バッファに格納する。
受信したコマンドデータに含まれる全ての命令を実行し終えると、CPU21は、RAM23内の計算用バッファに格納した各命令の実行結果を示す情報を並べたデータ(INF)の前にプロローグフィールドである「PCB」、「CID」、および「NAD」を付加し、各命令の実行結果を示す情報を並べたデータ(INF)の後にエピローグフィールドである「CRC」を付加して、1つのレスポンスデータを完成させる。CPU21は、完成したレスポンスデータをICカード処理装置1へ送信するため、RAM23内に設けた送信バッファに格納する。すると、変復調部26は、RAM23の送信バッファに格納されているレスポンスデータを搬送波に変調し、アンテナ27を介して、ICカード処理装置1に送信する。
図3に示す例によれば、ICカード処理装置1は、2つの命令をINFに格納した1つのコマンドデータをICカード2に送信する。ICカード2は、1つのコマンドデータのINFに格納された2つの命令を格納されている順番に実行する。ICカード2は、2つの命令の実行結果を実行した順番でINFに格納した1つのレスポンスデータをICカード処理装置2へ返信する。これにより、送受信するコマンドデータとレスポンスデータとがそれぞれ1回のみであっても、ICカードは、複数の命令を実行できる。
次に、1つのコマンドデータに含まれる複数の命令を順番に実行している間にエラーが発生した場合の処理例について説明する。本実施形態においては、複数の命令を実行中にエラーが発生した場合の処理として第1の処理例と第2の処理例とを説明する。なお、エラーが発生しない場合、第1の処理例であっても第2の処理例であっても、図3に示すように、複数の命令の実行結果を順番にINFに格納したレスポンスデータを返信するものとする。
まず、ICカード2が受信したコマンドデータに含まれる複数の命令を順に実行中にエラーが発生した場合の一動作例として第1の処理例について説明する。
第1の処理例では、エラーが発生した場合、複数の命令に対する処理を終了し、それまでに実行した処理結果とエラーに関する情報とをレスポンスデータとして返信する。すなわち、第1の処理例では、エラーが発生した命令以降の命令を中止し、直ちにそれまでの処理結果を示すレスポンスデータを送信する。
図4は、第1の処理例を説明するための図である。
図4に示す例では、3つの命令を含むコマンドデータを受信したICカード2が2つ目の命令を実行中にエラーが発生した場合の例を示している。すなわち、図4に示す例において、ICカード処理装置1は、3つの命令(「Command APDU 1」、「Command APDU 2」及び「Command APDU 3」)を格納したINFを有する1つのコマンドデータをICカード2へ送信する。
ICカード2は、受信したコマンドデータに含まれる3つの命令を順番に実行する。1つ目の命令が正常終了すると、ICカード2は、1つ目の命令の実行結果を示す情報をバッファ(例えば、RAM23内の計算用バッファ)に保持し、2つ目の命令を実行する。2つ目の命令を実行中にエラーした場合、ICカード2は、2つ目以降の命令の実行を停止し、2つ目の命令がエラーであることを示す情報(たとえば、エラーコード等)を1つ目の命令の実行結果を示す情報に続けてバッファに保持する。つまり、2つ目の命令がエラーであることを示す情報(たとえば、エラーコード等)は、エラーが生じなければ2つ目の命令の実行結果を格納するはずだった場所に格納される。
命令の実行を停止すると、CPU21は、RAM23内の計算用バッファに格納された一連の実行結果を示す情報とエラーを示す情報とを並べたデータをINFとして、当該INFの前にプロローグフィールドである「PCB」、「CID」および「NAD」を付加し、当該INF(エラーを示す情報)の後にエピローグフィールドである「CRC」を付したレスポンスデータを完成させる。CPU21は、完成したレスポンスデータをRAM23内に設けた送信バッファに格納する。ICカード2は、変復調部26により送信バッファに格納したレスポンスデータを搬送波に変調し、アンテナ27を介してICカード処理装置1に送信する。
なお、図4に示す例では、「Command APDU 2」という実行順番が2番目の命令でエラーが発生した場合を示しているが、「Command APDU 1」(実行順番が1番目)でエラーが発生した場合は実行順番が2番目以降の各命令(「Command APDU 2」「Command APDU 3」)は実行されない。この場合、CPU21は、「Command APDU 1」でエラーが生じたことを示す情報をレスポンスコマンドの情報フィールドに格納する。
ICカード処理装置1は、ICカード2からのレスポンスデータを受信する。ICカード処理装置1の制御部11は、受信したレスポンスデータからコマンドデータに含めた複数の命令の実行時にエラーが生じたこと及びエラーが生じた命令を認識する。図4に示す例では、ICカード処理装置1は、先に送ったコマンドデータに含めた3つの命令のうち、1つ目の命令が正常に実行されたこと、2つ目の命令の実行時にエラーが生じたこと、3つ目の命令が実行されていないことを認識する。
ICカード処理装置1の制御部11は、エラーが生じた命令(図4に示す例では、「Command APDU 2」)と未実施となった命令(図4に示す例では、「Command APDU 3」)とを再度ICカード2に実行させるため、エラーが生じた命令及びそれ以後の命令(図4では、「Command APDU 2」及び「Command APDU 3」)を情報フィールド(INF)に格納したコマンドデータをICカード2へ送信する。
ICカード2は、エラーが生じた命令及びそれ以後の命令(図4では、「Command APDU 2」及び「Command APDU 3」)をINFに格納したコマンドデータを受信する。ICカード2は、当該コマンドデータに格納された各命令を順に実行し、各命令の実行結果を示す情報を順にINFに格納したレスポンスデータをICカード処理装置1へ返信する。
これにより、ICカードは、エラーが生じた命令とエラーが生じた命令以降の各命令を再度、順番に実行することが可能となる。
なお、ICカード処理装置1の制御部11は、エラーを含むレスポンスデータを受信した場合、エラーが生じた命令をICカード2に再度実行させることなく、ICカード2との通信を終了するようにしてもよい。
次に、ICカード2における第1の処理例の流れについて説明する。
図5は、ICカード2における第1の処理例を説明するためのフローチャートである。
まず、ICカード2は、ICカード処理装置1から供給される電力によって起動し、活性化処理を実行する(ステップS10)。この活性化処理において、ICカード2のCPU21は、ICカード処理装置1から設定に応じて通信フレームの最大長を設定する。ここで、1つのコマンドデータに複数の命令を格納する場合、ICカード処理装置1は、ICカード2に対して、通信フレームの最大長が一定長さ(情報フィールドに2つ以上の命令を格納できる長さ)以上になるように設定する。
活性化処理が完了すると、ICカード2は、ICカード処理装置1からのコマンド受信待ち状態となる。たとえば、通信フレームの最大長が所定長さ以上に設定されていない場合(ステップS11、NO)、ICカード2のCPU21は、1つのコマンドデータに1つの命令を格納する運用によってICカード処理装置1からのコマンドに対する処理が実行される(ステップS12)。
これに対して、通信フレームの最大長が所定長さ以上に設定されている場合(ステップS11、YES)、ICカード2のCPU21は、複数の命令を許容する長さのコマンドデータの受信待ち状態となる(ステップS13)。この状態でコマンドデータを受信した場合(ステップS14、YES)、ICカード2は、受信したコマンドデータをRAM23内の受信バッファに格納する。当該コマンドデータの受信が完了すると、ICカード2のCPU21は、受信したコマンドデータから情報フィールド(INF)に格納されている命令を順番に実行する(ステップS15)。たとえば、CPU21は、バッファに格納したコマンドデータのINFから1つずつ順番に命令を抽出する。CPU21は、順番に抽出した1つの命令を実行する。
1つの命令を実行するごとに、CPU21は、当該命令の実行中にエラーが生じたか判定する(ステップS16)。当該命令の実行中にエラーが生じなかった場合、つまり、当該命令が正常終了した場合(ステップS16、NO)、CPU21は、当該命令の実行結果を示す情報をRAM23に設けた計算バッファに格納する(ステップS17)。この場合、CPU21は、既に計算バッファに格納されている直前の命令の実行結果を示す情報に続けて、当該命令の実行結果を示す情報を記録する。この結果として、図3或いは図4に示すレスポンスデータにおけるINFのように、複数の命令の実行結果を示す情報が並べられたデータが形成される。
命令の実行結果を示す情報を計算バッファに格納すると、CPU21は、未だ実行していない次の命令が受信したコマンドデータにあるか否かを判断する(ステップS18)。未だ実行していない命令があると判断した場合(ステップS18、YES)、CPU21は、上記ステップS15へ戻り、次の命令を受信したコマンドデータのINFから抽出し、実行する。
また、実行していない命令が無くなった場合(ステップS18、NO)、CPU21は、計算バッファに格納した各命令の実行結果を示す情報を並べたデータを情報フィールド(INF)とするレスポンスデータを生成する。すなわち、CPU21は、各命令の実行結果を示す情報を並べたデータの前にプロローグフィールドである「PCB」、「CID」、および「NAD」を付加し、各命令の実行結果を示す情報を並べたデータの後にエピローグフィールドである「CRC」を付加することにより、複数の命令の実行結果を順番に並べたデータを格納したINFを有するレスポンスデータを生成する(ステップS19)。CPU21は、生成したレスポンスデータを送信バッファに格納する。CPU21は、変復調部26及びアンテナ27を介して送信バッファに格納したレスポンスデータをICカード処理装置1へ送信する(ステップS20)。
また、ある命令の実行中にエラーが生じた場合(ステップS16、YES)、CPU21は、当該命令の実行結果がエラーであったことを示す情報(例えば、エラー内容に応じたエラーコード)をRAM23に設けた計算バッファに格納する(ステップS17)。この場合、CPU21は、既に計算バッファに格納されている直前の命令の実行結果を示す情報に続けて、当該命令の実行エラーを示す情報を記録する。この結果として、図4に示すレスポンスデータにおけるINFのように、命令の実行結果を示す情報に続けてエラーを示す情報が並べられたデータが形成される。
命令の実行エラーを示す情報を計算バッファに格納すると、CPU21は、RAM23の計算バッファに格納した各命令の実行結果を示す情報に続けてエラーを示す情報を並べたデータを情報フィールド(INF)とするレスポンスデータを生成する。すなわち、CPU21は、各命令の実行結果を示す情報に続けてエラーを示す情報を並べたデータの前にプロローグフィールドである「PCB」、「CID」、および「NAD」を付加し、各命令の実行結果を示す情報に続けてエラーを示す情報を並べたデータの後にエピローグフィールドである「CRC」を付加することにより、実行した命令の実行結果に続けてエラーを示す情報を順番に並べたデータを格納したINFを有するレスポンスデータを生成する(ステップS19)。CPU21は、生成したレスポンスデータを送信バッファに格納する。CPU21は、変復調部26及びアンテナ27を介して送信バッファに格納したレスポンスデータをICカード処理装置1へ送信する(ステップS20)。
ICカード2のCPU21は、当該ICカード処理装置1との通信状態が維持されている間(ステップS21、NO)、上記ステップS11〜20の処理を繰り返し実行することにより、ICカード処理装置1からのコマンドに対する処理が可能となる。なお、通信フレームの最大長の設定は、活性化後にICカード処理装置1の指示に応じて設定できるようにしても良い。また、ICカード2のCPU21は、当該ICカード処理装置1との通信が切断された場合、あるいは、ICカード処理装置1からの電力供給が遮断された場合、動作を終了する(ステップS21、YES)。
以上の処理によれば、ICカードは、1つのコマンドデータに格納された複数の命令を解釈して順に実行することができ、それらの各命令の実行結果を順に並べた1つのレスポンスデータを当該コマンドデータに対する応答として出力することができる。これにより、ICカード処理装置とICカードとは、通信手続きが簡略化でき、処理速度の向上及び効率化を図ることができる。
次に、ICカード2が受信したコマンドデータに含まれる複数の命令を順に実行中にエラーが発生した場合の一動作例として第2の処理例について説明する。
第2の処理例では、エラーが発生した場合であっても、可能であれば、継続的にエラーが発生した命令以外の命令を実行し、実行した処理結果とエラーに関する情報とをレスポンスデータとして返信する。すなわち、第2の処理例では、1つの命令でエラーが発生しても処理自体を中止することなく各命令を順番に実行し、コマンドデータに含まれる全ての命令に対する処理結果(正常な実行結果又はエラーを示す情報)をレスポンスデータにより送信する。
図6は、第2の処理例を実施した場合におけるコマンドデータとレスポンスデータとの構成例を示す図である。
図6に示す例では、3つの命令を含むコマンドデータを受信したICカード2が2つ目の命令を実行中にエラーが発生した場合の例を示している。すなわち、図6に示す例において、ICカード処理装置1は、3つの命令(「Command APDU 1」、「Command APDU 2」及び「Command APDU 3」)を格納したINFを有する1つのコマンドデータをICカード2へ送信する。
ICカード2は、受信したコマンドデータに含まれる3つの命令を順番に実行する。1つ目の命令が正常終了すると、ICカード2は、1つ目の命令の実行結果を示す情報をバッファ(例えば、RAM23内の計算用バッファ)に保持し、2つ目の命令を実行する。2つ目の命令を実行中にエラーした場合、ICカード2は、2つ目の命令が実行エラーであることを示す情報(たとえば、エラーコード等)を1つ目の命令の実行結果を示す情報に続けてバッファに保持する。2つ目の命令がエラーであることを示す情報(たとえば、エラーコード等)は、エラーが生じなければ2つ目の命令の実行結果を格納するはずだった場所に格納される。
また、2つ目の命令がエラーとなった場合であっても、図6に示す第2の処理例では、ICカード2は、2つ目の命令が実行エラーであることを示す情報をバッファ(例えば、RAM23内の計算用バッファ)に保持し、3つ目の命令を実行する。3つ目の命令が正常終了すると、ICカード2は、3つ目の命令の実行結果を示す情報をバッファに保持する。この場合、ICカード2は、3つ目の命令の実行結果を示す情報を2つ目の命令の実行エラーを示す情報に続けてバッファに保持する。なお、3つ目の命令が実行エラーとなった場合には、ICカード2は、2つ目の命令の実行エラーを示す情報に続けて3つ目の命令の実行エラーを示す情報をバッファに保持するようにすれば良い。
3つの命令を実行すると、CPU21は、RAM23内の計算用バッファに格納された3つの命令に対する処理結果を示す情報(1つ目の命令の実行結果を示す情報、2つ目の命令の実行エラーを示す情報、及び、3つ目の命令の実行結果を示す情報)を並べたデータをINFとして、当該INFの前にプロローグフィールドである「PCB」、「CID」および「NAD」を付加し、当該INF(エラーを示す情報)の後にエピローグフィールドである「CRC」を付したレスポンスデータを完成させる。CPU21は、完成したレスポンスデータをRAM23内に設けた送信バッファに格納する。ICカード2は、変復調部26により送信バッファに格納したレスポンスデータを搬送波に変調し、アンテナ27を介してICカード処理装置1に送信する。
なお、図6に示すレスポンスデータのINFでは、1つ目の命令の実行結果を示す情報「Command APDU 1」、2つ目の命令の実行エラーを示す情報「Error information」、及び、3つ目の命令の実行結果を示す情報「Command APDU 3」を並べたデータを格納している。「Command APDU 1」(実行順番が1番目の命令)でエラーが発生した場合は、図6に示す「Command APDU 1」が「Error information」に置き換えた形態となり、「Command APDU 3」(実行順番が3番目の命令)でエラーが発生した場合は、図6に示す「Command APDU 3」が「Error information」に置き換えた形態となる。ただし、どの命令でエラーが起きた場合であっても、ICカードが動作可能であれば、他の命令も実行される。
ICカード処理装置1は、ICカード2からのレスポンスデータを受信する。ICカード処理装置1の制御部11は、エラーを示す情報を含むレスポンスデータを受信した場合、先に送ったコマンドデータに含めた複数の命令のうちエラーが生じた命令を認識する。図6に示す例では、ICカード処理装置1は、先に送ったコマンドデータに含めた3つの命令のうち、1つ目の命令が正常に実行されたこと、2つ目の命令の実行時にエラーが生じたこと、3つ目の命令が正常に実行されたことを認識する。
ICカード処理装置1の制御部11は、エラーが生じた命令(図6に示す例では、「Command APDU 2」)を再度ICカード2に実行させるため、エラーが生じた命令(図6では、「Command APDU 2」を情報フィールド(INF)に格納したコマンドデータをICカード2へ送信する。
ICカード2は、エラーが生じた命令(図6では、「Command APDU 2」)をINFに格納したコマンドデータを受信する。ICカード2は、当該コマンドデータに格納された各命令を順に実行し、各命令の実行結果を示す情報を順にINFに格納したレスポンスデータをICカード処理装置1へ返信する。これにより、ICカードは、エラーが生じた命令を再度、順番に実行することが可能となる。
次に、ICカード2における第2の処理例の流れについて説明する。
図7は、ICカード2における第2の処理例を説明するためのフローチャートである。
ICカード2は、ICカード処理装置1から供給される電力によって起動し、活性化処理を実行する(ステップS30)。この活性化処理において、ICカード2のCPU21は、ICカード処理装置1から設定に応じて通信フレームの最大長を設定する。ここで、1つのコマンドデータに複数の命令を格納する場合、ICカード処理装置1は、ICカード2に対して、通信フレームの最大長が一定長さ(情報フィールドに2つ以上の命令を格納できる長さ)以上になるように設定する。
活性化処理が完了する後、通信フレームの最大長が所定長さ以上に設定されていない場合(ステップS31、NO)、ICカード2のCPU21は、1つのコマンドデータに1つの命令を格納する運用によってICカード処理装置1からのコマンドに対する処理が実行される(ステップS32)。また、通信フレームの最大長が所定長さ以上に設定されている場合(ステップS31、YES)、ICカード2のCPU21は、複数の命令を許容する長さのコマンドデータの受信待ち状態となる(ステップS33)。
この状態でコマンドデータを受信した場合(ステップS34、YES)、ICカード2は、受信したコマンドデータをRAM23内の受信バッファに格納する。当該コマンドデータの受信が完了すると、ICカード2のCPU21は、受信したコマンドデータの情報フィールド(INF)に格納されている命令を順番に実行する(ステップS35)。たとえば、CPU21は、受信バッファに格納したコマンドデータのINFから1つずつ順番に命令を抽出し、抽出した1つの命令を実行する。
当該命令の実行中にエラーが生じなかった場合、つまり、当該命令が正常終了した場合(ステップS36、NO)、CPU21は、当該命令の実行結果を示す情報をRAM23に設けた計算バッファに格納する(ステップS37)。この場合、CPU21は、既に計算バッファに格納されている直前の命令の実行結果を示す情報に続けて、当該命令の実行結果を示す情報を記録する。この結果として、複数の命令の実行結果を示す情報が並べられたデータが形成される。
命令の実行結果を示す情報をバッファに格納すると、CPU21は、受信したコマンドデータに未だ実行していない次の命令があるか否かを判断する(ステップS38)。未だ実行していない命令があると判断した場合(ステップS38、YES)、CPU21は、上記ステップS35へ戻り、受信したコマンドデータのINFから次の命令を抽出し、実行する。
また、実行していない命令が無くなった場合(ステップS38、NO)、CPU21は、計算バッファに格納した各命令の実行結果を示す情報を並べたデータを情報フィールド(INF)とするレスポンスデータを生成する(ステップS19)。CPU21は、各命令の実行結果を示す情報を並べたデータの前にプロローグフィールドである「PCB」、「CID」、および「NAD」を付加し、各命令の実行結果を示す情報を並べたデータの後にエピローグフィールドである「CRC」を付加することにより、複数の命令の実行結果を順番に並べたデータを格納したINFを有するレスポンスデータを生成する。CPU21は、生成したレスポンスデータを送信バッファに格納し、変復調部26及びアンテナ27を介して送信バッファに格納したレスポンスデータをICカード処理装置1へ送信する(ステップS40)。
また、ある命令の実行中にエラーが生じた場合(ステップS36、YES)、CPU21は、当該命令の実行結果がエラーであったことを示す情報(例えば、エラー内容に応じたエラーコード)をRAM23に設けた計算バッファに格納する(ステップS37)。この場合、CPU21は、既に計算バッファに格納されている直前の命令の実行結果を示す情報に続けて、当該命令の実行エラーを示す情報を記録する。この結果として、直前の命令の実行結果を示す情報に続けてエラーを示す情報が並べられたデータが形成される。
命令の実行エラーを示す情報を計算バッファに格納すると、CPU21は、上記ステップS38へ進み、受信したコマンドデータに未だ実行していない次の命令があるか否かを判断する。未だ実行(トライ)していない命令があると判断した場合(ステップS38、YES)、CPU21は、上記ステップS35へ戻り、受信したコマンドデータのINFから次の命令を抽出して実行する。また、実行(トライ)していない命令が無くなった場合(ステップS38、NO)、CPU21は、計算バッファに格納した各命令の実行結果を示す情報および実行エラーを示す情報を並べたデータを情報フィールド(INF)とするレスポンスデータを生成し(ステップS39)、ICカード処理装置1へ送信する(ステップS40)。
ICカード2のCPU21は、当該ICカード処理装置1との通信状態が維持されている間(ステップS41、NO)、上記ステップS31〜40の処理を繰り返し実行することにより、ICカード処理装置1からのコマンドに対する処理が可能となる。なお、通信フレームの最大長の設定は、活性化後にICカード処理装置1の指示に応じて適宜設定できるようにしても良い。また、ICカード2のCPU21は、当該ICカード処理装置1との通信が切断された場合、あるいは、ICカード処理装置1からの電力供給が遮断された場合、動作を終了する(ステップS21、YES)。
以上の処理によれば、ICカードは、1つのコマンドデータに格納された複数の命令を解釈して順に実行することができ、それらの各命令の実行結果あるいは実行エラーに関する情報を順に並べた1つのレスポンスデータを当該コマンドデータに対する応答として出力することができる。これにより、ICカード処理装置とICカードとは、通信手続きが簡略化でき、処理速度の向上及び効率化を図ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ICカード処理装置、2…ICカード、14…カードリーダライタ、M…ICモジュール、Ca…ICチップ、C…ICカード本体、21…CPU、22…ROM、23…RAM、24…EEPROM、26…変復調部、27…アンテナ。

Claims (9)

  1. 外部装置から与えられる命令を実行するICカードであって、
    前記外部装置からのコマンドデータを受信する受信手段と、
    前記受信手段により受信した1つのコマンドデータに複数の命令が含まれる場合、前記受信したコマンドデータに含まれる前記複数の命令を実行する実行手段と、
    前記実行手段により実行した複数の命令の実行結果を格納した1つの応答データを当該コマンドの送信元となる前記外部装置に返信する返信手段と、
    を具備するICカード。
  2. 前記実行手段は、前記受信手段により受信した1つのコマンドデータに格納されている順番で前記複数の命令を順に実行する、
    前記請求項1に記載のICカード。
  3. 前記返信手段は、前記実行手段により実行した各命令の実行結果を示す情報を前記コマンドデータに対応する各命令が格納されていた順番に並べたデータを含む応答データを前記外部装置に返信する、
    前記請求項1又は2の何れかに記載のICカード。
  4. 前記実行手段は、前記複数の命令のうち何れかの命令を実行中にエラーが発生した場合、当該コマンドデータに含まれる複数の命令に対する処理を停止する、
    前記請求項1乃至3の何れか1項に記載のICカード。
  5. 前記返信手段は、前記エラーが発生するまでに前記実行手段が実行した各命令の実行結果を示す情報に続けて前記エラーが発生したことを示す情報を並べたデータを含む応答データを前記外部装置に返信する、
    前記請求項1乃至4の何れか1項に記載のICカード。
  6. 前記実行手段は、前記複数の命令のうち何れかの命令を実行中にエラーが発生した場合であっても、継続して前記コマンドデータに含まれる全ての命令を順番に実行する、
    前記請求項1乃至3の何れか1項に記載のICカード。
  7. 前記返信手段は、正常終了した命令の実行結果を示す情報とエラーが発生した命令のエラーを示す情報とを各命令の実行順番に並べたデータを含む応答データを前記外部装置に返信する、
    前記請求項1、2、3もしくは6の何れか1項に記載のICカード。
  8. 外部装置から与えられる命令を実行するICカードであって、
    前記外部装置からのコマンドデータを受信する受信手段と、前記受信手段により受信した1つのコマンドデータに複数の命令が含まれる場合、前記受信したコマンドデータに含まれる前記複数の命令を実行する実行手段と、前記実行手段により実行した複数の命令の実行結果を格納した1つの応答データを当該コマンドの送信元となる前記外部装置に返信する返信手段とを有するICモジュールと、
    前記ICモジュールを収納した本体と、
    を具備するICカード。
  9. 外部装置から与えられる命令を実行する携帯可能電子装置であって、
    前記外部装置からのコマンドデータを受信する受信手段と、
    前記受信手段により受信した1つのコマンドデータに複数の命令が含まれる場合、前記受信したコマンドデータに含まれる前記複数の命令を実行する実行手段と、
    前記実行手段により実行した複数の命令の実行結果を格納した1つの応答データを当該コマンドの送信元となる前記外部装置に返信する返信手段と、
    を具備する携帯可能電子装置。
JP2012026567A 2012-02-09 2012-02-09 Icカードおよび携帯可能電子装置 Pending JP2013164686A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012026567A JP2013164686A (ja) 2012-02-09 2012-02-09 Icカードおよび携帯可能電子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012026567A JP2013164686A (ja) 2012-02-09 2012-02-09 Icカードおよび携帯可能電子装置

Publications (1)

Publication Number Publication Date
JP2013164686A true JP2013164686A (ja) 2013-08-22

Family

ID=49176008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012026567A Pending JP2013164686A (ja) 2012-02-09 2012-02-09 Icカードおよび携帯可能電子装置

Country Status (1)

Country Link
JP (1) JP2013164686A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7409024B2 (ja) 2019-11-14 2024-01-09 Toppanホールディングス株式会社 Icカード

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038287A (ja) * 2002-06-28 2004-02-05 Toshiba Corp 携帯可能電子媒体の発行システム及び発行方法と携帯可能電子媒体
JP2006127361A (ja) * 2004-11-01 2006-05-18 Dainippon Printing Co Ltd Icカード用icチップ、icカード及びicカード用プログラム
JP2007293788A (ja) * 2006-03-27 2007-11-08 Sony Corp 情報処理システム、情報処理装置、および集積回路チップ
JP2008107991A (ja) * 2006-10-24 2008-05-08 Dainippon Printing Co Ltd 情報処理媒体とそのプログラム、情報処理媒体のエラー処理方法、及び、情報処理システム
JP2011197959A (ja) * 2010-03-18 2011-10-06 Toshiba Corp 携帯可能電子装置、通信装置、及びコマンド処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038287A (ja) * 2002-06-28 2004-02-05 Toshiba Corp 携帯可能電子媒体の発行システム及び発行方法と携帯可能電子媒体
JP2006127361A (ja) * 2004-11-01 2006-05-18 Dainippon Printing Co Ltd Icカード用icチップ、icカード及びicカード用プログラム
JP2007293788A (ja) * 2006-03-27 2007-11-08 Sony Corp 情報処理システム、情報処理装置、および集積回路チップ
JP2008107991A (ja) * 2006-10-24 2008-05-08 Dainippon Printing Co Ltd 情報処理媒体とそのプログラム、情報処理媒体のエラー処理方法、及び、情報処理システム
JP2011197959A (ja) * 2010-03-18 2011-10-06 Toshiba Corp 携帯可能電子装置、通信装置、及びコマンド処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7409024B2 (ja) 2019-11-14 2024-01-09 Toppanホールディングス株式会社 Icカード

Similar Documents

Publication Publication Date Title
JP4896837B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
JP2010218453A (ja) 携帯可能電子装置、及び携帯可能電子装置の制御方法
US20120234926A1 (en) Portable electronic apparatus
US20170200071A1 (en) Ic card, portable electronic apparatus, and processing apparatus
JP5259540B2 (ja) 携帯可能電子装置、icカード、携帯可能電子装置の処理システムおよび携帯可能電子装置の制御方法
JP5444138B2 (ja) 通信システム、通信方法及び携帯可能電子装置
JP2013164686A (ja) Icカードおよび携帯可能電子装置
KR101530479B1 (ko) Ic 카드 및 휴대 가능 전자 장치
JP2011065477A (ja) 携帯可能電子装置
JP6092342B2 (ja) 非接触式携帯可能電子装置、及び非接触式携帯可能電子装置の発行方法
JP2005275456A (ja) 携帯可能電子媒体、携帯可能電子媒体に用いられる集積回路、及び、携帯可能電子媒体の発行方法
JP5367236B2 (ja) 携帯可能電子装置およびicカード
US9672390B2 (en) IC card and command processing method for IC card
JP2014059806A (ja) Icカード、携帯可能電子装置、及びicカード処理装置
WO2021124846A1 (ja) Icカード及びicカードの制御プログラム
JP5957347B2 (ja) Icカード、および携帯可能電子装置
JP2006268525A (ja) 携帯可能電子装置、携帯可能電子装置の処理装置、携帯可能電子装置の処理システムおよび携帯可能電子装置の処理方法
JP2017142655A (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP2008276572A (ja) 非接触式icカード
JP5259541B2 (ja) 携帯可能電子装置、携帯可能電子装置の制御方法及びicカード
JP5875772B2 (ja) 携帯可能電子装置、携帯可能電子装置の制御方法、及び携帯可能電子装置の処理システム
JP5684059B2 (ja) Icカード、及びicカードの制御方法
JP2012043303A (ja) 携帯可能電子装置、携帯可能電子装置の処理装置、及び携帯可能電子装置の処理システム
JP2011100274A (ja) 携帯可能電子装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151201