[go: up one dir, main page]

JP5932588B2 - Icカード、携帯可能電子装置、及びicカード処理装置 - Google Patents

Icカード、携帯可能電子装置、及びicカード処理装置 Download PDF

Info

Publication number
JP5932588B2
JP5932588B2 JP2012207542A JP2012207542A JP5932588B2 JP 5932588 B2 JP5932588 B2 JP 5932588B2 JP 2012207542 A JP2012207542 A JP 2012207542A JP 2012207542 A JP2012207542 A JP 2012207542A JP 5932588 B2 JP5932588 B2 JP 5932588B2
Authority
JP
Japan
Prior art keywords
command
data
card
logical channel
time
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.)
Active
Application number
JP2012207542A
Other languages
English (en)
Other versions
JP2014063310A (ja
Inventor
裕子 小林
裕子 小林
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 JP2012207542A priority Critical patent/JP5932588B2/ja
Publication of JP2014063310A publication Critical patent/JP2014063310A/ja
Application granted granted Critical
Publication of JP5932588B2 publication Critical patent/JP5932588B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、ICカード、携帯可能電子装置、及びICカード処理装置に関する。
従来、ICカードでは、チャネルごとに継続的な処理を行う論理チャネル機能を有するものがある。論理チャネル機能では、個々のチャネルでアクセス対象のファイルを専有する。たとえば、あるファイルを専有したままの状態で1つのチャネルでの処理が長時間に亘って中断された場合、他のチャンネルでは、長時間、当該ファイルにアクセスできなくなってしまう。
ISO/IEC 7816−4
本発明は、複数のチャネルを用いてデータに効率的にアクセスすることができるICカード、携帯可能電子装置、及びICカード処理装置を提供することを目的とする。
実施形態によれば、ICカードは、通信手段と、データ記憶手段と、コマンド処理手段と、解放手段とを有する。通信手段は、複数のチャネルを用いて外部装置とデータ通信を行う。データ記憶手段は、外部装置からのコマンドによってアクセス対象となるデータを記憶する。コマンド処理手段は、通信手段によりコマンドを受信した場合、コマンドを受信したチャネルにおいてコマンドが指定するデータを専有してコマンドに対する処理を実行する。解放手段は、チャネルがデータを専有している期間が前記外部装置からのコマンドによって個々のデータに対して指定される指定時間である専有可能時間を経過した場合、データを強制的に解放する。
図1は、本実施形態に係るICカードと通信を行うICカード処理装置の構成例を示す図である。 図2は、本実施形態に係るICカードの構成例を示すブロック図である。 図3は、NVMに格納されるファイルの構成例を示す図である。 図4は、DFに付加されたFCIの構成例を示す図である。 図5は、EFに付加されたFCIの構成例を示す図である。 図6は、各ファイル(EF)に対する、規定時間、指定時間及び状態を示す値を格納する専有時間テーブルの例である。 図7は、各論理チャネルにおける強制解放の有無を示す強制解放テーブルの例である。 図8は、本実施形態において使用されるファイル専有時間通知コマンドの構成例を示す図である。 図9は、本実施形態において使用されるファイル専有時間通知コマンドの具体例を示す図である。 図10は、ファイル専有時間通知コマンドに対する応答としてのレスポンスメッセージの構成例を示す図である。 図11は、ファイル専有時間通知コマンドに対する応答としてのコマンドの実行に成功したことを示すレスポンスメッセージの例を示す図である。 図12は、READコマンドに対する応答としてのコマンドが指定したファイル(EF)が強制解放済であることを示すレスポンスメッセージの例を示す図である。 図13は、ICカード処理装置から順次与えられる複数のコマンドに対する処理内容を説明するためのシーケンス図である。 図14(a)は、専有時間テーブルの状態の例を示す図である。図14(b)は、強制解放テーブルの状態の例を示す図である。 図15(a)は、専有時間テーブルの状態の例を示す図である。図15(b)は、強制解放テーブルの状態の例を示す図である。 図16(a)は、専有時間テーブルの状態の例を示す図である。図16(b)は、強制解放テーブルの状態の例を示す図である。図16(c)は、レスポンスメッセージの例を示す図である。 図17(a)は、専有時間テーブルの状態の例を示す図である。図17(b)は、強制解放テーブルの状態の例を示す図である。 図18(a)は、専有時間テーブルの状態の例を示す図である。図18(b)は、強制解放テーブルの状態の例を示す図である。図18(c)は、レスポンスメッセージの例を示す図である。 図19(a)は、専有時間テーブルの状態の例を示す図である。図19(b)は、強制解放テーブルの状態の例を示す図である。 図20(a)は、専有時間テーブルの状態の例を示す図である。図20(b)は、強制解放テーブルの状態の例を示す図である。図20(c)は、レスポンスメッセージの例を示す図である。 図21は、ICカード処理装置から順次与えられる複数のコマンドに対する処理内容を説明するためのシーケンス図である。 図22は、ICカードがファイル専有時間通知コマンドを受信した場合の処理の流れを説明するためのフローチャートである。 図23は、ICカードがREADコマンドを受信した場合の処理の流れを説明するためのフローチャートである。 図24は、ICカードがREADコマンドを受信した場合の処理の流れを説明するためのフローチャートである。 図25は、ICカードが割り込みコマンドを受信した場合の処理の流れを説明するためのフローチャートである。
以下、この発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るICカード(携帯可能電子装置)2、および、ICカード2との通信機能を有する外部装置としてのICカード処理装置1の構成例を概略的に示すブロック図である。
まず、ICカード処理装置1の構成について説明する。
ICカード処理装置1は、図1に示すように、制御部11、カードリーダライタ12、キーボード13、および、ディスプレイ14などを有する。
制御部11は、ICカード処理装置1全体の動作を制御するものである。制御部11は、CPU、種々のメモリ及び各種インターフェースなどにより構成される。たとえば、制御部11は、パーソナルコンピュータ(PC)により構成される。
制御部11は、カードリーダライタ12によりICカード2へコマンドを送信する機能、ICカード2から受信したデータを基に種々の処理を行う機能などを有している。たとえば、制御部11は、カードリーダライタ12を介してICカード2にデータの書き込みコマンドを送信することによりICカード2内の不揮発性メモリにデータを書き込む制御を行う。また、制御部11は、ICカード2に読み取りコマンドを送信することによりICカード2からデータを読み出す制御を行う。
カードリーダライタ12は、ICカード2との通信を行うためのインターフェース装置である。カードリーダライタ12は、ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、ICカード2が接触型のICカードである場合、カードリーダライタ12は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。また、ICカード2が非接触型のICカードである場合、カードリーダライタ12は、ICカード2との無線通信を行うためのアンテナおよび通信制御などにより構成される。カードリーダライタ12では、ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。このような機能によってカードリーダライタ12は、制御部11による制御に基づいて上記ICカード2の活性化(起動)、種々のコマンドの送信、及び送信したコマンドに対する応答の受信などを行なう。
キーボード13は、当該ICカード処理装置1の操作員が操作する操作部として機能し、操作員により種々の操作指示やデータなどが入力される。ディスプレイ14は、制御部11の制御により種々の情報を表示する表示装置である。
次に、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からの電波を受信し、その電波から図示しない電源部により動作用の電力及び動作クロックを生成して活性化する。
図2は、本実施の形態に係るICカード2のハードウエア構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の筐体(本体)C内にモジュールMが内蔵されている。モジュールMは、1つまたは複数のICチップCaと通信用の外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、本体C内に埋設されている。また、ICカード2のモジュールMは、図2に示すように、CPU21、NVM22、RAM23、ROM24、通信部25、および、タイマ26などを有してしている。
CPU21は、当該ICカード2全体の制御を司るものである。CPU21は、ROM24あるいはNVM22に記憶されている制御プログラムおよび制御データに基づいて動作することにより、種々の機能を実現する。たとえば、CPU21は、オペレーティングシステムのプログラムを実行することにより、当該ICカード2の基本的な動作制御を行う。また、CPU21は、当該ICカード2の利用目的に応じたアプリケーションプログラムを実行することにより、当該ICカード2の運用形態に応じた種々の動作制御を行う。
また、CPU21は、複数の論理チャネルを用いて通信制御およびコマンド処理を実行する機能を有する。論理チャネルは、外部との物理的な通信インターフェースを用いた通信制御において論理的に定義されるチャネルである。CPU21は、複数の論理チャネルのうち選択される論理チャネルごとに通信制御およびコマンド処理などの処理を実行できる。なお、論理チャネルの機能は、たとえば、ICカードの標準規格の1つであるISO/IEC 7816−4で規定されるもので実現できる。
NVM22は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)あるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。NVM22には、当該ICカード2の運用用途に応じた制御プログラムあるいは種々のデータが書込まれる。NVM22には、当該ICカード2の規格に応じた種々のファイルが定義され、それらのファイルに種々のデータが書き込まれる。NVM22に格納されるファイルの例については、後述する。
RAM23は、RAMなどの揮発性のメモリである。また、RAM23は、CPU21が処理中のデータなどを一時保管するバッファとして機能する。RAM23には、各ファイルへのアクセス状況、通信チャネルの使用状況、および、処理状況などを示す種々のテーブルが設けられる。RAM23は、専有時間テーブルを格納する記憶領域23a、および、強制解放テーブルを格納する記録領域23bなどを有する。これらのテーブルについては、後述する。
ROM24は、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。ROM24には、当該ICカード2の製造段階で制御プログラムあるいは制御データなどが記憶された状態でICカード2内に組み込まれる。つまり、ROM24に記憶されている制御プログラムあるいは制御データは、当該ICカード2の基本的な動作を司るものであり、予め当該ICカード2の仕様に応じて組み込まれる。
通信部25は、ICカード処理装置1のカードリーダライタ12との通信を行うためのインターフェースである。当該ICカード2が接触型のICカードとして実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ12と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、当該ICカード2が非接触型のICカードとして実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ12との無線通信を行うための変復調回路などの通信制御部および電波を送受信するためのアンテナなどにより構成される。
タイマ26は、CPU21などからの指示に基づいて、論理チャネルがファイル(EF)を専有している時間を計測する。タイマ26は、数μ秒の経過時間を計測する機能を有する。たとえば、タイマ26は、ICカード処理装置1から供給されるクロックを計数することによって、経過時間を計測するものであってもよい。タイマ26が経過時間を計測する方法は、特定の方法に限定されるものではない。CPU21は、タイマ26から、測定した経過時間の情報を取得することができる。本実施形態において、タイマ26は、割り込みタイマとして利用される。
次に、NVM22に格納されるファイルについて説明する。
図3は、NVM22に格納されるファイルの構造例を示す図である。
図3に示すように、NVM22には、MF(Master File)31、DF(Dedicated File)32および、EF(Elementary File)33並びに34などからなる階層構造を有する複数のファイル群が定義され、DF及びEFに対応するFCI(File Control Information)42〜44が設けられている。なお、図3に示すようなファイル構造は、ICカードの国際的な標準規格であるISO/IEC 7816−4で規定されている。
図3に示す例では、最上階層のマスターファイル(MF)31の次の階層には、DF32が存在する。たとえば、1つのDFは、当該ICカード2が具備する1つのアプリケーションを実現するためのデータが格納される。複数のアプリケーションによって複数の機能を実現しているICカードは、各アプリケーションに対応する複数のDFをNVM22内に設けるようにして良い。
また、図3に示す例では、DF32の配下としてDF32の次の階層に、第1のEF(EF#1)33、および、第2のEF(EF#2)34、が存在している。各EF33および34は、各種のデータを格納するためのデータファイルである。各EF33および34には、所定のデータ構造のうち何れかのデータ構造でデータが格納される。たとえば、EF33および34は、識別子(タグ(Tag))、長さ情報(レングス(Length))、および、データ部(バリュー(Value))が順に連結されるTLV構造のオブジェクトデータが格納されるファイルであっても良いし、バイナリーデータを記憶するファイルであっても良い。
また、DF32、および、各EF33および34には、それぞれFCI42〜44が付加される。FCI42〜44は、それぞれ対応するファイル(DF32、EF33および34)に関する制御情報である。たとえば、FCI42〜44には、対応するファイルにおけるセキュリティ条件などの情報が格納される。なお、FCIについても、ICカードの標準規格の1つであるISO/IEC 7816−4で規定されているものでも良い。
図4は、DF32に付加されたFCI42の構成例を示す図である。
図4に示す構成例において、FCI42は、たとえば、FCP(File Control Parameter)テンプレート形式でFCI情報を格納し、「File descriptor byte」にて、対応するファイルとしてのDFが共有可能(Shareable file)である事を示している。すなわち、図4は、ファイルの共有を許可するFCIの構成例を示すものである。
図5は、EF33に付加されたFCI43の構成例を示す図である。
図5に示す構成例においても、FCI43は、FCP(File Control Parameter)テンプレート形式でFCI情報を格納し、「File descriptor byte」にて、対応するファイルとしてのEFが共有不可(Not shareable file)である事を示している。すなわち、図5は、ファイルの共有を不可とするFCIの構成例を示すものである。
次にRAM23の記憶領域23aに格納されている専有時間テーブルについて説明する。
図6は、記憶領域23aに格納されている専有時間テーブルの例を示す図である。
専有時間テーブルは、NVM22内に格納されている各EF又は各DFの専有可能時間および状態を示す情報を格納する。図6に示す例において、専有時間テーブルにおいては、EFの識別情報(EFID)と、規定時間、指定時間、および、状態情報を対応付けて記録する。
EFIDは、ファイルを識別するための情報である。図6に示す構成例において、EFIDは、NVM22内に格納されているEFの識別子である。たとえば、「0x0001」のEFIDは、第1のEF(即ち、EF#1)を示している。
規定時間は、対応するファイルに対して予め規定されている専有時間である。外部装置から専有可能な時間の指示がない場合、対応するEFIDのEFには、規定時間が専有可能時間(専有することができる時間)として設定される。また、規定時間は、ファイルごとに予め決められており、NVM22などメモリに予め格納されている。たとえば、規定時間が「0x0001」である場合、専有時間テーブルは、対応するEFIDのEFの規定時間が1μs(マイクロ秒)であることを示す。
指定時間は、対応するファイルに対して、外部装置から指定された専有可能時間である。外部装置から専有可能時間の指定があった場合、指定された当該EFには、指定時間が専有可能時間として設定される。たとえば、指定時間が「0x0000」である場合、専有時間テーブルは、対応するEFIDのEFには外部装置から専有可能時間が指定されていないことを示す。また、指定時間が「0x0002」である場合、対応するEFIDのEFには外部装置から専有可能時間として、「2μs」が指定されていることを示す。
状態情報は、対応するEFIDのEFを使用している論理チャネルがあるか否かを示す。状態情報としては、対応するEFIDのEFを使用している論理チャネルがある場合、当該EFを使用している論理チャネルを示す情報が格納される。たとえば、状態情報が「0xFF」である場合、専有時間テーブルは、対応するEFIDのEFを使用している論理チャネルがないことを示している。また、状態情報が「0x01」である場合、専有時間テーブルは、論理チャネル「#1」が対応するEFIDのEFを使用していることを示している。なお、当該EFを使用している論理チャネルがないことを示す値は、存在し得る論理チャネルを示す値以外であればよい。たとえば、存在し得る論理チャネルが論理チャネル#1〜#5である場合、当該EFを使用している論理チャネルがないことを示す値は、「0x01」乃至「0x05」以外の値であればよい。
次に、RAM23の記憶領域23bに格納されている強制解放テーブルについて説明する。
図6は、記憶領域23bに格納されている強制解放テーブルの例を示す図である。
強制解放テーブルは、論理チャネルが使用しているEFが強制解放されていないかを示す値を格納する。強制解放テーブルは、論理チャネル、および、強制開放状態を対応づけて記録する。
論理チャネルは、専有時間テーブルに状態情報として書き込まれる情報と対応する論理チャネルを示す情報である。たとえば、論理チャネルが「0x01」であれば、論理チャネル「#1」であることを示す。
強制解放状態は、論理チャネルが使用していたEFが強制解放されたか否かを示す情報である。対応する論理チャネルでEFの強制解放が実施された場合、強制解放状態としては、強制解放されたEFを示す情報を格納する。
たとえば、強制解放状態が「0xFFFF」である場合、強制解放テーブルは、当該論理チャネルが使用しているEFが強制解放されていないことを示している。また、強制解放状態が「0x0001」である場合、強制解放テーブルは、当該論理チャネルが使用していたEF#1が強制解放されたことを示している。なお、当該論理チャネルが使用しているEFが強制解放されていないことを示す値は、存在し得るEFを示す値以外であればよい。たとえば、存在し得るEFがEF#1〜#FFである場合、当該EFを使用している論理チャネルがないことを示す値は、「0x0001」乃至「0x00FF」以外の値であればよい。
次に、ICカード処理装置1がICカード2へ送信するファイル専有時間通知コマンドについて説明する。
ファイル専有時間通知コマンドは、論理チャネルが使用するEFに対して、当該論理チャンネルが専有することができる時間を指定するコマンドである。たとえば、ICカード処理装置1は、論理チャネル「#1」を指定して、ファイル専有時間通知コマンドを送信する。ICカード2は、ファイル専有時間通知コマンドを受信し、受信したファイル専有時間通知コマンドから、論理チャネル「#1」で使用するEFに対する専有可能時間を取得する。
図8は、ファイル専有時間通知コマンドの構成例を示す図である。
ファイル専有時間通知コマンドのデータ形式は、ICカードに用いられる規格によって規定されるもので良い。たとえば、ファイル専有時間通知コマンドのデータ形式は、ISO/IEC 7816−4で規定されているAPDU(Application Protocol Data Unit)に準拠するものであってもよい。本実施形態におけるファイル専有通知コマンドは、上記の規格に準拠するものであって、図8に示すように、コマンドヘッダ、Lcフィールド、および、データフィールドなどを備える。コマンドヘッダは、CLA(クラスバイト)、INS(インストラクションバイト)、P1(パラメータバイト)、および、P2(パラメータバイト)などを備える。
CLAおよびINSは、当該コマンドがファイル専有時間通知コマンドであること、および、使用する論理チャネルを示す情報を格納している。また、P1、および、P2は、当該コマンドのパラメータであり、当該論旨チャネルが使用するEFを示す情報(EFID)を格納する。Lcフィールドは、データフィールドの長さを示す情報を格納する。データフィールドは、当該論理チャネルが当該EFを専有することできる時間(即ち、専有可能時間)を示す値を格納する。
なお、ファイル専有時間通知コマンドは、EF、および、指定時間を示すものであればよく、特定の構成に限定されるものではない。
図9は、ファイル専有時間通知コマンドの具体的な例を示す図である。
図9に示す例は、論理チャネル「#1」がEF「#1」を専有することができる時間(即ち、専有可能時間)として「2μs」を指定するファイル専有時間通知コマンドの例である。
CLAは、b1〜b8のビットから構成される。CLAのb2およびb1は、論理チャネルを示す情報が格納される。即ち、図9に示す例では、CLAのb2およびb1には、論理チャネル「#1」を示す「01」を格納する。INSは、当該コマンドがファイル専有時間通知コマンドであることを示すコードを格納する。図9に示す例において、P1およびP2は、専有するファイルとしてEF「#1」を示す「0x0001」を格納している。Lcは、データフィールドの長さを示す値として「0x02」を格納している。図9に示す例において、データフィールドは、専有可能時間の指定時間として「2μs」を示す「0x0002」を格納している。
次に、ファイル専有時間通知コマンドに対する応答としてのレスポンスメッセージについて説明する。
図10は、レスポンスメッセージ(Response trailer)の例を示す図である。
レスポンスメッセージのデータ形式は、ICカードに用いられる規格によって規定されるもので良い。たとえば、レスポンスメッセージのデータ形式は、ISO/IEC 7816−4で規定されているAPDU(Application Protocol Data Unit)に準拠するものであってもよい。本実施形態におけるレスポンスメッセージは、上記の規格に準拠するものであって、「SW1−SW2:Status bytes」で構成される。
レスポンスメッセージ(Response trailer)には、SW1およびSW2(ステータスバイト)として、コマンドの実行結果などを表す情報が格納され、コマンドの送信元の上位装置(ICカード処理装置)へ送信される。
図11は、コマンド(例えば、ファイル専有時間通知コマンド)の実行に成功したことを示すレスポンスメッセージのステータスバイト(SW1、SW2)に格納される値の例を示す図である。
図11に示す例において、ステータスバイトとしてのSW1およびSW2(SW)には、「0x9000」が格納されている。ここで、「SW=0x9000」は、コマンド(例えば、ファイル専有通知コマンド)に対する処理が成功したことを示す値である。また、コマンド(例えば、ファイル専有通知コマンド)に対する処理が失敗した場合、例えば、ステータスバイトとして「SW=0x69FE」などがセットされる。
なお、コマンド(ファイル専有通知コマンド)に対する応答としてのレスポンスメッセージは、予め規定されているものであれば良く、特定の構成に限定されるものではない。
次に、読取(READ)コマンドに対する応答としてのレスポンスメッセージについて説明する。
図12は、READコマンドに対する応答としてのレスポンスメッセージの例を示す図である。
図12に示すように、READコマンドに対する応答としてのレスポンスメッセージは、データ部(Data filed)、および、ステータスバイト(Status bytes(SW1−SW2))で構成される。データ部は、READコマンドによって当該ICカード2のNVM22などから読み出したデータを格納する。
ステータスバイト(Response trailer)には、SW1およびSW2(SW)として、コマンドの実行結果などを示す情報を格納する。たとえば、「SW1−SW2」が「0x9000」である場合、ステータスバイトは、READコマンドに対する処理が正常終了(読み出し正常終了)したことを示す。また、図12に示す例のように、「SW1−SW2」が「0x69FE」である場合、ステータスバイトは、READコマンドに対する処理が失敗したことを示す。たとえば、READコマンドによって指定されるEFが強制解放済である場合、ステータスバイトには、「0x69FE」がセットされる。すなわち、カレントEFを読取対象に指定したREADコマンドを受信した場合、当該論理チャネルが専有していたEFが強制解放済であれば、ICカードは、ステータスバイトを「0x69FE」にセットしたレスポンスメッセージを送信する。
なお、READコマンドに対する処理に対する応答としてのレスポンスメッセージは、予め規定されているものであれば良く、特定の構成に限定されるものではない。
次に、ICカード処理装置1がICカード2からデータを読み出す処理について説明する。
まず、ICカード処理装置1がICカード2に対して専有可能時間を指定する場合について説明する。
図13は、ICカード処理装置1がICカード2に対して専有可能時間を指定する場合において、ICカード処理装置1がICカード2からデータを取得する処理(READコマンドに対する処理)の例の流れを示す図である。
まず、ICカード2では、専有時間テーブルおよび強制解放テーブルが初期状態であるものとする。図14(a)は、専有時間テーブルが初期状態である例を示すものであり、図14(b)は、強制解放デーブルが初期状態である例を示すものである。図14(a)に示す例によれば、EF「#1」の規定時間は、「0x0001」であり、EF「#2」の規定時間は、「0x002」である。規定時間は、たとえば、予めNVM22などに格納しておき、ICカード2の起動時などにRAM23の記憶領域23aに設けた専有時間テーブルに書き込むようにしても良い。また、専有時間テーブルにおける指定時間は、図14(a)に示す初期状態では、EF「#1」およびEF「#2」ともに、「なし」を示す値(0x0000)がセットされ、専有時間テーブルにおける状態を示す値は、EF#1およびEF#2ともに、「未使用」を示す値(0xFF)がセットされている。強制解放テーブルは、図14(b)に示すように、論理チャネル「#1」の強制解放状態が「なし」を示す値(0xFFFF)にセットされている。
ここでは、ICカード2は、SELECTコマンドによって既にEF「#1」が選択しており、VERIFYコマンドによってEF「#1」に対する認証が既に成功している状態であるものとする。
この状態において、ICカード処理装置1の制御部11は、カードリーダライタ12により論理チャネル「#1」において、専有するファイルとしてのEF「#1」に対する専有可能時間として「2μs」を指定するファイル専有時間通知コマンドをICカード2へ送信するものとする(ステップ11)。
ICカード2は、通信部25によりICカード処理装置1からのファイル専有時間通知コマンドを受信する。ICカード2のCPU21は、受信したファイル専有時間通知コマンドに従って、RAM13上の記憶領域23aにおける専有時間テーブルを更新する。即ち、CPU21は、専有時間テーブルにおけるEF#1(EFID=0x0001)の指定時間を示す値を、「なし」を示す値(0x0000)から「2μs」を示す値(0x0002)に書き換える(ステップ12)。
図15(a)は、専有時間テーブルにおいて、EF「#1」の指定時間が「2μs」を示す値(0x0002)に更新された例を示し、図15(b)は、強制解放テーブルが初期状態のままであることを示す。専有時間テーブルを更新すると、CPU21は、専有時間通知コマンドの実行に成功したことを示すレスポンスメッセージ(SW=9000)を通信部25によりICカード処理装置1へ送信する(ステップ13)。
ICカード処理装置1は、カードリーダライタ12によりICカード2からのレスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、ICカード処理装置1の制御部11は、カードリーダライタ12により、論理チャネル「#1」を使用してEF「#1」を読み出すことを要求するREADコマンドをICカード2へ送信する(ステップ14)。
ICカード2は、通信部25により論理チャネル「#1」でEF「#1」の読取を要求するREADコマンドを受信する。当該READコマンドを受信すると、ICカード2のCPU21は、受信した当該READコマンドを実施する論理チャネルとアクセス(読取)対象に指定されたEFとを専有テーブルに書き込むことにより、専有時間テーブルを更新する。即ち、CPU21は、専有時間テーブルにおけるEF#1(EFID=0x0001)の状態を示す値を、「未使用」を示す値(0xFF)から「論理チャネル「#1」」を示す値(0x01)に書き換える(ステップ15)。
図16(a)は、専有時間テーブルにおいて、EF#1の指定時間を示す値が「論理チャネル「#1」」を示す値(0x01)に更新された例を示し、図16(b)は、強制解放テーブルが初期状態のままであることを示す。
専有時間テーブルを更新すると、CPU21は、タイマ26による経過時間の測定をスタートさせる。タイマに26よる経過時間の測定をスタートさせると、CPU21は、受信したREADコマンドにしたがって、EF「#1」からデータを読み出す。EF「#1」からデータを読み出すと、CPU21は、読み出したデータをレスポンスデータとし、かつ、ステータスバイトをREADコマンドの実行が成功したことを示す値(SW=9000)にセットしたレスポンスを論理チャネル#1を使用して通信部25によりICカード処理装置1へ送信する(ステップ16)。図16(c)は、READコマンドの実行結果として、論理チャネル「#1」での処理結果が成功であったことを示す「SW=9000」がレスポンスメッセージのステータスバイトに格納されることを示している。
ICカード処理装置1の制御部11は、カードリーダライタ12によりICカード2からのレスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により、論理チャネル#1を使用して、EF「#1」を読み出すことを要求するREADコマンドを再度ICカード2へ送信するものとする(ステップ17)。
ICカード2は、通信部25により、当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、受信したREADコマンドにしたがって、EF#1からデータを取得する。EF#1からデータを取得すると、CPU21は、取得したデータ及びREADコマンドの実行が成功したことを示す値(SW=9000)を格納したレスポンスメッセージを、論理チャネル#1を使用して、通信部25を通じて、ICカード処理装置1へ送信する(ステップ18)。ここでは、タイマ26が経過時間の測定がスタートしてからステップ18が終了するまで、2μsを経過していないものとする。
また、ICカード2は、論理チャネル「#1」での処理を実施している間も、論理チャネル「#1」以外の論理チャネルからのコマンドも受信している。論理チャネル「#1」以外の論理チャネルからの割り込みコマンドを受信した場合、ICカード2は、割り込み処理を行うものとする。ここで、ICカード2は、論理チャネル「#1」以外の論理チャネルでEF#1を指定する割り込みコマンドを通信部25により受信したものとする。すると、CPU21は、論理チャネル「#1」がEF「#1」の使用を開始してから論理チャネル「#1」におけるEF「#1」の専有可能時間が経過しているか否か判定する。即ち、CPU21は、タイマ26の経過時間が論理チャネル「#1」におけるEF「#1」の専有可能時間(規定時間又は指定時間)を超過したか否かを判定する。ここでは、論理チャネル「#1」に対するEF「#1」の専有可能時間が指定されているため、専有可能時間は指定時間(即ち、2μs)である。
すなわち、タイマ26が経過時間の測定をスタートしてから2μs(EF「#1」に対する論理チャネル「#1」の指定時間)が経過した後に論理チャネル「#1」以外の論理チャネルでEF「#1」を指定する割り込みコマンドを受信した場合、CPU21は、論理チャネル「#1」におけるEF「#1」の専有可能時間が経過したと判定する。専有可能時間が経過したと判定した場合、CPU21は、EF「#1」を論理チャネル「#1」による専有状態から強制的に開放する処理を行う。
たとえば、論理チャネル「#1」におけるEF「#1」の専有可能時間が経過したと判定した場合、CPU21は、図17(a)に示すように、専有時間テーブルにおいて、EF「#1」の指定時間及び状態をリセットする。即ち、CPU21は、EF#1の指定時間を「2μs」を示す値(0x0002)から「なし」を示す値(0x0000)に書き換え、EF#1に対する状態情報を「論理チャネル#1」を示す値(0x01)から「未使用」を示す値(0xFF)に書き換える。
また、論理チャネル「#1」におけるEF「#1」の専有可能時間が経過したと判定した場合、CPU21は、図17(b)に示すように、強制解放テーブルにおいて、論理チャネル「#1の」強制解放状態を示す値を、論理チャネル「#1」が使用しているファイルが強制解放済であることを示す値に更新する。即ち、CPU21は、強制解放テーブルにおいて、論理チャネル「#1」の強制解放状態を「なし」を示す値(0xFFFF)から「EF#1」を示す値(0x0001)に書き換える(ステップ19)。
強制解放テーブルを更新した場合(論理チャネル「#1」におけるEF「#1」の強制開放した場合)、CPU21は、論理チャネル「#1」以外の論理チャネルにおけるEF「#1」へのアクセスが可能となり、割り込みコマンドを実行する。割り込みコマンドを実行すると、CPU21は、当該割り込みコマンドの実行結果を示すレスポンスメッセージを生成し、生成したレスポンスメッセージを含むレスポンスを割り込みコマンドの送信元のICカード処理装置1へ送信する。
強制解放テーブルにEF「#1」の強制開放を行ったことを示す情報を書き込んだ後(つまり、論理チャネル「#1」におけるEF「#1」の強制開放を実施した後)、ICカード処理装置1が、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」の読出しを要求するREADコマンドをICカード2へ送信するものとする(ステップ20)。ICカード2は、通信部25により当該READコマンドを受信する。図18(a)は、EF「#1」の強制開放が行われた後の専有時間テーブルの例を示し、図18(b)は、論理チャネル「#1」でEF「#1」が強制開放された後の強制解放テーブルの例を示す。図18(b)に示すように、強制開放テーブルにおいては、論理チャネル「#1」の強制解放状態がEF「#1」が強制解放済であることを示す値(EF#1)にセットされている。
この場合、当該READコマンドを受信すると、CPU21は、強制解放テーブルを参照することによって、EF「#1」が強制解放済であることを認識する。EF「#1」が強制解放済であることを認識すると、CPU21は、READコマンドで指定されたファイルが強制解放されていることを示すレスポンスメッセージを、通信部25によりICカード処理装置1へ送信する(ステップ21)。図18(c)は、論理シャネル「#1」を使用するREADコマンドに対する実行結果を示す値として、レスポンスメッセージのステータスビットに格納される値が強制解放済みを示す「SW=69FE」となることを示している。
ICカード処理装置1の制御部11は、カードリーダライタ12によりステータスバイトが「SW=69FE」のレスポンスメッセージを受信する。ステータスバイトが「SW=69FE」のレスポンスメッセージを受信すると、制御部11は、再度、論理チャネル「#1」を使用してEF「#1」からデータを読み出すための処理手順をやり直す。
すなわち、ICカード処理装置1の制御部11は、カードリーダライタ12により、論理チャネル「#1」においてEF「#1」をカレント状態にするSELECTコマンドをICカード2へ送信する(ステップ22)。
ICカード2は、通信部25により当該SELECTコマンドを受信する。当該SELECTコマンドを受信すると、制御部11は、受信したSELECTコマンドに従って論理チャネル「#1」においてEF「#1」をカレント状態にする。EF「#1」をカレント状態にすると、制御部11は、通信部25により受信したSELECTコマンドの実行が成功したことを示すレスポンスメッセージをICカード処理装置1へ送信する(ステップ23)。
ICカード処理装置1の制御部11は、カードリーダライタ12により当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により論理チャネル「#1」を使用して認証を行うためのVERIFYコマンドをICカード2へ送信する(ステップ24)。なお、VERIFYコマンドは、認証処理に必要な鍵情報などを格納するようにしてもよい。VERIFYコマンドによって行われる認証方法及び認証に必要な鍵は、特定の構成に限定されるものではない。
ICカード2は、通信部25により、当該VERIFYコマンドを受信する。当該VERIFYコマンドを受信すると、CPU21は、受信したVERIFYコマンドにしたがって認証処理を行う。VERIFYコマンドに対する認証処理に成功すると、CPU21は、強制解放テーブルにおける論理チャネル「#1」の強制解放状態をリセットする。即ち、CPU21は、強制解放テーブルにおける論理チャネル「#1」の強制解放状態を「EF「#1」」を示す値(0x0001)から「なし」を示す値(0xFFFF)に書き換える(ステップ25)。図19(a)は、専有時間テーブルがリセットされた後の例を示し、図19(b)は、強制解放テーブルにおける論理チャネル「#1」の強制解放状態がリセットされた例を示す。
強制解放テーブルにおける論理チャネル「#1」の強制解放状態を示す値をリセットすると、CPU21は、通信部25によりVERIFYコマンドによる認証に成功したことを示すレスポンスメッセージをICカード処理装置1へ送信する(ステップ26)。
ICカード処理装置1の制御部11は、カードリーダライタ12によりICカード2から当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」のデータの読出しを要求するREADコマンドをICカード2へ送信する(ステップ27)。
ICカード2は、通信部25により当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、当該READコマンドを受信した論理チャネル及び指定されたEFに基づいて専有時間テーブルを更新する。即ち、CPU21は、専有時間テーブルにおけるEF「#1」(EFID=0x0001)の状態を「未使用」を示す値(0xFF)から「論理チャネル「#1」」を示す値(0x01)に書き換える。図20(a)は、専有時間テーブルにおいて、EF「#1」の指定時間が「論理チャネル#1」を示す値(0x01)に更新された例を示し、図20(b)は、強制解放テーブルがリセットされたままであることを示す。
専有時間テーブルを更新すると、CPU21は、受信したREADコマンドにしたがってEF「#1」からデータを読み出す。EF「#1」からデータを読み出すと、CPU21は、読み出したデータをセットしたレスポンづデータとREADコマンドの実行が成功したことを示す値(SW=9000)を格納したレスポンスメッセージとを含むレスポンスを通信部25によりICカード処理装置1へ送信する(ステップ28)。図20(c)は、READコマンドの実行結果を示す値として、レスポンスメッセージのステータスビットに格納される値が「SW=9000」であることを示す。
なお、上記ステップ26の前に、ICカード処理装置1の制御部11は、ファイル専有時間通知コマンドをICカード2へ送信してEF「#1」に対する専有可能時間を指定するようにしてもよい。
次に、ICカード処理装置1がICカード2に対して専有可能時間を指定しない場合の動作例について説明する。
図21は、ICカード処理装置1がICカード2に対して専有可能時間を指定しない場合、ICカード処理装置1がICカード2からデータを取得する処理例の流れを示す図である。
まず、ICカード2では、専有時間テーブルおよび強制解放テーブルが初期状態であるものとする。この場合、専有時間テーブルは、EF「#1」の規定時間が「0x0001」であり、EF「#2」の規定時間が「0x002」であり、専有時間テーブルにおける指定時間がEF「#1」およびEF「#2」ともに「なし」を示す値(0x0000)であり、専有時間テーブルにおける状態がEF「#1」およびEF「#2」ともに、「未使用」を示す値(0xFF)であり、強制解放テーブルにおける論理チャネル「#1」の強制解放状態が「なし」を示す値(0xFFFF)である。また、ICカード2では、SELECTコマンドによってEF「#1」が選択されており、VERIFYコマンドによってEF「#1」への認証が成功している状態であるものとする。
この状態において、ICカード処理装置1の制御部11は、カードリーダライタ12により、論理チャネル「#1」を使用して、EF「#1」のデータを読み出すことを要求するREADコマンドをICカード2へ送信するものとする(ステップ31)。
ICカード2は、通信部25により当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、当該READコマンドを受信した論理チャネル及び指定されたEFに基づいて専有時間テーブルを更新する。即ち、CPU21は、専有時間テーブルにおけるEF「#1」(EFID=0x0001)の状態を「未使用」を示す値(0xFF)から「論理チャネル「#1」」を示す値(0x01)に書き換える(ステップ32)。
専有時間テーブルを更新すると、CPU21は、タイマ26による経過時間の測定の開始する。タイマ26による経過時間の測定をスタートさせると、CPU21は、受信したREADコマンドにしたがってEF「#1」からデータを取得する。EF「#1」からデータを取得すると、CPU21は、取得したデータ及びREADコマンドの実行が成功したことを示す値(SW=9000)を格納したレスポンスメッセージを通信部25によりICカード処理装置1へ送信する(ステップ33)。
ICカード処理装置1の制御部11は、カードリーダライタ12により、当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」のデータの読出しを要求するREADコマンドを再度ICカード2へ送信する(ステップ34)。
ICカード2は、通信部25により当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、受信したREADコマンドにしたがってEF「#1」からデータを読み出す。EF「#1」からデータを読み出すと、CPU21は、読み出したデータをレスポンスデータとREADコマンドの実行が成功したことを示すステータスバイト(SW=9000)とをセットしたレスポンスを通信部25によりICカード処理装置1へ送信する(ステップ35)。ここでは、タイマ26が測定する経過時間がステップ35の処理が終了するまで論理チャネル「#1」の専有可能時間としての「1μs」を経過していないものとする。
また、タイマ26による経過時間の計測をスタートした後、ICカード2は、論理チャネル#1以外の論理チャネルから割り込みコマンドを適宜受信し、割り込み処理を実施するものとする。CPU21は、タイマ26による経過時間の計測をスタートした後、論理チャネル「#1」以外の論理チャネルでEF「#1」を指定した割り込みコマンドを受信した場合、論理チャネル「#1」がEF「#1」の使用を開始してからEF「#1」に対して設定されている専有可能時間(規定時間又は指定時間)が経過したか否かの判定を行う。たとえば、専有可能時間が指定されていない場合、専有可能時間はEF「#1」の規定時間(1μs)である。
論理チャネル「#1」におけるEF「#1」の専有可能時間が経過したと判定すると、CPU21は、専有時間テーブルにおいて、EF「#1」の状態を示す値をリセットする。即ち、CPU21は、EF「#1」の状態を「論理チャネル「#1」」を示す値(0x01)から「未使用」を示す値(0xFF)に書き換える。また、CPU21は、強制解放テーブルにおいて、論理チャネル「#1」の強制解放状態を論理チャネル「#1」が使用しているファイルが強制解放済であることを示す値に更新する。即ち、CPU21は、強制解放テーブルにおいて、論理チャネル「#1」の強制解放状態を「なし」を示す値(0xFFFF)から「EF#1」を示す値(0x0001)に書き換える(ステップ36)。
強制解放テーブルを更新した場合(論理チャネル「#1」におけるEF「#1」の強制開放した場合)、CPU21は、論理チャネル「#1」以外の論理チャネルにおけるEF「#1」へのアクセスが可能となり、割り込みコマンドを実行する。割り込みコマンドを実行すると、CPU21は、当該割り込みコマンドの実行結果を示すレスポンスメッセージを生成し、生成したレスポンスメッセージを含むレスポンスを割り込みコマンドの送信元のICカード処理装置1へ送信する。
強制解放テーブルを更新した後、ICカード処理装置1が、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」のデータの読出しを要求するREADコマンドをICカード2へ送信したものとする(ステップ37)。
ICカード2は、通信部25により当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、強制解放テーブルを参照することによって、論理チャネル「#1」ではEF「#1」が強制解放済であることを認識する。EF「#1」が強制解放済であることを認識すると、CPU21は、READコマンドで指定されたファイルが強制解放されていることを示すレスポンスメッセージを、通信部25によりICカード処理装置1へ送信する(ステップ38)。
ICカード処理装置1は、カードリーダライタ12により当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、再度、論理チャネル「#1」においてEF「#1」のデータを読み出すための処理手順をやり直す。すなわち、ICカード処理装置1の制御部11は、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」をカレント状態にするSELECTコマンドをICカード2へ送信する(ステップ39)。
ICカード2は、通信部25により当該SELECTコマンドを受信する。当該SELECTコマンドを受信すると、制御部11は、受信したSELECTコマンドに従って、論理チャネル「#1」でEF#1をカレント状態にする。EF「#1」をカレント状態にすると、制御部11は、通信部25により受信したSELECTコマンドの実行が成功したことを示すレスポンスメッセージを含むレスポンスをICカード処理装置1へ送信する(ステップ40)。
ICカード処理装置1は、カードリーダライタ12により当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により論理チャネル「#1」を使って認証を行うためのVERIFYコマンドをICカード2へ送信する(ステップ41)。
ICカード2は、通信部25により当該VERIFYコマンドを受信する。当該VERIFYコマンドを受信すると、CPU21は、受信したVERIFYコマンドにしたがって認証処理を行う。認証処理に成功すると、CPU21は、強制解放テーブルにおける論理チャネル「#1」の強制解放状態をリセットする。即ち、CPU21は、強制解放テーブルにおける論理チャネル「#1」の強制解放状態を「EF#1」を示す値(0x0001)から「なし」を示す値(0xFFFF)に書き換える(ステップ42)。
強制解放テーブルにおける論理チャネル「#1」の強制解放状態を示す値をリセットすると、CPU21は、通信部25によりVERIFYコマンドによる認証に成功したことを示すレスポンスメッセージを含むレスポンスをICカード処理装置1へ送信する(ステップ43)。
ICカード処理装置1は、カードリーダライタ12により当該レスポンスメッセージを受信する。当該レスポンスメッセージを受信すると、制御部11は、カードリーダライタ12により論理チャネル「#1」を使用してEF「#1」のデータの読出しを要求するREADコマンドをICカード2へ送信する(ステップ44)。
ICカード2は、通信部25により当該READコマンドを受信する。当該READコマンドを受信すると、CPU21は、当該READコマンドを受信した論理チャネル及び指定されたEFに基づいて専有時間テーブルを更新する。即ち、CPU21は、専有時間テーブルにおけるEF「#1」(EFID=0x0001)の状態を「未使用」を示す値(0xFF)から「論理チャネル#1」を示す値(0x01)に書き換える。
専有時間テーブルを更新すると、CPU21は、受信したREADコマンドにしたがってEF「#1」からデータを読み出す。EF「#1」からデータを読み出すと、CPU21は、読み出したデータをレスポンスデータとし、かつ、READコマンドの実行が成功したことを示すステータスバイト(SW=9000)をセットしたレスポンスを通信部25によりICカード処理装置1へ送信する(ステップ45)。
次に、ICカード2における専有時間通知コマンドに対する処理について説明する。
図22は、ICカード2が専有時間通知コマンドを受信した場合の処理について説明するためのフローチャートである。
まず、ICカード処理装置1は、カードリーダライタ12によりある論理チャネルを使用してファイル専有通知コマンド(たとえば、EF#1の専有可能時間を2μsとするファイル専有通知コマンド)をICカード2へ送信する。ICカード2のCPU21は、通信部25によりICカード処理装置1からのファイル専有通知コマンドを受信する(ステップ51)。
当該ファイル専有通知コマンドを受信すると、CPU21は、受信したファイル専有通知コマンドにしたがってRAM23の記録領域23aに格納されている専有時間テーブルを更新する(ステップ52)。即ち、CPU21は、専有時間テーブルにおけるEFの指定時間をファイル専有時間通知コマンドが指定する指定時間に書き換え、専有時間テーブルにおける状態情報をファイル専有時間通知コマンドが指定する論理チャネル(使用論理チャネル)を示す値に書き換える。
ファイル専有時間通知コマンドに応じた専有時間テーブルの更新処理を行うと、CPU21は、専有時間テーブルの更新処理が正常に行われたか否かを判定する(ステップ53)。専有時間テーブルの更新処理が正常に行われたと判定した場合(ステップ53、YES)、CPU21は、専有可能時間の指定に成功したことを示すレスポンスメッセージを生成する(ステップ54)。また、専有時間テーブルの更新処理が正常に行われなかったと判定した場合(ステップ53、NO)、CPU21は、専有可能時間の指定に失敗したことを示すレスポンスメッセージを生成する(ステップ55)。
専有可能時間の指定に成功したことを示すレスポンスメッセージを生成した場合、および、専有可能時間の指定に失敗したことを示すレスポンスメッセージを生成した場合、CPU21は、通信部25により生成したレスポンスメッセージを含むレスポンスを送信する(ステップ56)。ファイル専有時間通知コマンドに対するレスポンスを送信すると、CPU21は、ファイル専有通知コマンドに対する処理を終了する。
次に、ICカード2におけるREADコマンドに対する処理について説明する。
図23及び24は、ICカード2がREADコマンドを受信した場合の処理について説明するためのフローチャートである。
まず、ICカード処理装置1は、カードリーダライタ12により、ある論理チャネルを使用してREADコマンド(たとえば、論理チャネル「#1」でEF「#1」のデータの読出しを要求するREADコマンド)をICカード2へ送信する。ICカード2は、通信部25により当該READコマンドを受信する(ステップ61)。
当該READコマンドを受信すると、CPU21は、受信したREADコマンドが指定するEF(指定EF)がカレントEFであるか判定する(ステップ62)。指定EFがカレントEFでないと判定した場合(ステップ63、NO)、CPU21は、タイマ26による経過時間の計測を停止させる(ステップ64)。なお、タイマ26が経過時間を計測していない場合、CPU21は、ステップ64をスキップする。
指定EFがカレントEFであると判定した場合(ステップ63、YES)、或いは、タイマ26による経過時間の計測を停止した場合、CPU21は、RAM23の記憶領域23bに格納されている強制解放テーブルから、当該READコマンドが使用する論理チャネル(使用論理チャネル)の強制解放状態を示す情報を読み込む(ステップ64)。
使用論理チャネルの強制解放状態を読み込むと、CPU21は、読み込んだ情報から使用論理チャネルが強制解放済であるか否かを判定する(ステップ65)。使用論理チャネルが強制解放済でないと判定した場合(ステップ65、NO)、CPU21は、RAM23の記憶領域23aに格納されている専有時間テーブルから、指定EFの状態情報を読み込む(ステップ66)。指定EFの状態情報を読み込むと、CPU21は、読み込んだ情報から指定EFが未使用であるか否かを判定する(ステップ67)。
指定EFが未使用であると判定した場合(ステップ67、YES)、CPU21は、指定EFの状態情報を使用論理チャネルを示す情報に書き換える(ステップ68)。指定EFの状態情報を使用論理チャネルを示す情報に書き換えると、CPU21は、RAM23の記憶領域23aに格納されている専有時間テーブルから、指定EFに対する指定時間の設定情報を読み込む(ステップ69)。指定EFに対する指定時間の設定情報を読み込むと、CPU21は、指定EFに対して指定時間が設定されているか否か判定する(ステップ70)。
指定EFに対して指定時間が設定されていないと判定した場合(ステップ70、NO)、CPU21は、RAM23の記憶領域23aに格納されている専有時間テーブルから、指定EFに対する規定時間を示す情報を読み込む(ステップ71)。指定EFに対する規定時間を示す情報を読み込むと、CPU21は、タイマ26が測定する経過時間の閾値(割り込みタイマ値)として規定時間をセットする(ステップ72)。また、指定EFに対する指定時間が設定されてると判定した場合(ステップ70、YES)、CPU21は、タイマ26が測定する経過時間に対する閾値(割り込みタイマ値)として指定時間をセットする(ステップ73)。割り込みタイマ値として規定時間又は指定時間をセットすると、CPU21は、タイマ26による経過時間の計測を開始する(ステップ74)。
また、指定EFが未使用でないと判定した場合(ステップ67、NO)、CPU21は、RAM23の記憶領域23aに格納されている専有時間テーブルを参照することによって、指定EFをすでに使用している論理チャネルが使用論理チャネルであるか否か判定する(ステップ75)。
タイマ26による経過時間の計測を開始した場合、あるいは、指定EFをすでに使用している論理チャネルが使用論理チャネルであると判定した場合(ステップ75、YES)、CPU21は、受信したREADコマンドに対する処理(指定EFのデータの読出処理)を実行する(ステップ78)。受信したREADコマンドに対する処理を実行すると、CPU21は、受信したREADコマンドに対する処理が成功したか否か判定する(ステップ79)。受信したREADコマンドに対する処理が成功したと判定した場合(ステップ79、YES)、CPU21は、受信したREADコマンドで読み出したデータをレスポンスデータにセットするとともに、受信したREADコマンドの実行が成功したことを示すステータスバイトをセットしたレスポンスメッセージを生成する(ステップ80)。また、受信したREADコマンドの実行が失敗したと判定した場合(ステップ79、NO)CPU21は、受信したREADコマンドの実行が失敗したことを示すレスポンスメッセージを生成する(ステップ81)。
また、指定EFをすでに使用している論理チャネルが使用論理チャネルでないと判定した場合(ステップ75、YES)、CPU21は、他の論理チャネルが指定EFをすでに使用していることを示すレスポンスメッセージを生成する(ステップ76)。
また、使用論理チャネルが強制解放済であると判定した場合(ステップ65、YES)、CPU21は、使用論理チャネルが強制解放済であることを示すレスポンスメッセージを生成する(ステップ77)。
受信したREADコマンドの実行が成功したことを示すステータスバイトをセットするレスポンスメッセージを生成した場合、受信したREADコマンドの実行が失敗したことを示すレスポンスメッセージを生成した場合、他の論理チャネルが指定EFをすでに使用していることを示すレスポンスメッセージを生成した場合、および、使用論理チャネルが強制解放済であることを示すレスポンスメッセージを生成した場合、CPU21は、生成したレスポンスメッセージを含むレスポンスを通信部25によりICカード処理装置1へ送信する(ステップ82)。READコマンドに対するレスポンスを送信すると、CPU21は、当該READコマンドに対する処理を終了する。
次に、ICカード2における割り込みコマンドに対する処理について説明する。
図25は、ICカード2がREADコマンドを受信した場合の処理について説明するためのフローチャートである。
まず、ICカード処理装置1は、カードリーダライタ12により、ある論理チャネル(使用論理チャネル)を使用して割り込みコマンドをICカード2へ送信する。なお、割り込みコマンドは、特定のコマンドに限定されるものではない。ICカード2のCPU21は、通信部25により当該割り込みコマンドを受信する(ステップ91)。
当該割り込みコマンドを受信すると、CPU21は、割り込みコマンドが指定するEF(指定EF)がすでに他の論理チャネルによって使用されているか否か判定する(ステップ92)。即ち、CPU21は、記憶領域23aに格納されている専有時間テーブルを参照することによって、指定EFの状態を示す値を取得し、取得した値から指定EFがすでに他の論理チャネルによって使用されているか否か判定する。
指定EFがすでに他の論理チャネルによって使用されていると判定した場合(ステップ92、YES)、CPU21は、タイマ26が計測している経過時間が、当該指定EFに対してセットされている割り込みタイマ値を超過しているか判定する(ステップ93)。指定EFにセットされている割り込みタイマ値を超過していると判定した場合(ステップ93、YES)、CPU21は、RAM23の記録領域23aに格納されている専有時間テーブルにおいて、指定EFの指定時間を示す値、および指定EFの状態を示す値をリセットする(ステップ94)。即ち、CPU21は、指定EFの指定時間を「指定なし」を示す値に書き換え、指定EFの状態情報を「未使用」に書き換える。
指定EFに対する指定時間を示す値、および指定EFの状態情報をリセットすると、CPU21は、RAM23の記憶領域23bに格納されている強制解放テーブルにおいて、当該割り込みコマンドが使用している論理チャネルの強制解放状態を示す情報を指定EFを示す情報に書き換える(ステップ95)。なお、ステップ94及び95は、順序を逆にしてもよい。
指定EFが他の論理チャネルによって使用されていないと判定した場合(ステップ92、NO)、および、論理チャネルの強制解放状態を示す情報を指定EFを示す情報に書き換えた場合、CPU21は、当該割り込みコマンドを実行する(ステップ96)。当該割り込みコマンドを実行すると、CPU21は、当該割り込みコマンドの実行結果を示すレスポンスメッセージを生成する(ステップ97)。
また、指定EFに対してセットされている割り込みタイマ値を超過していないと判定した場合(ステップ93、NO)、CPU21は、すでに他の論理チャネルが指定EFを使用中であることを示すレスポンスメッセージを生成する(ステップ98)。
実行結果を示すレスポンスメッセージを生成した場合、あるいは、すでに他の論理チャネルが指定EFを使用中であることを示すレスポンスメッセージを生成した場合、CPU21は、生成したレスポンスメッセージを含むレスポンスを通信部25によりICカード処理装置1へ送信する(ステップ99)。割り込みコマンドに対するレスポンスを送信すると、CPU21は、割り込みコマンドに対する処理を終了する。
以上のような処理によれば、第1の論理チャネルが専有しているEFを他の論理チャネルが使用しようとする際に、ICカードは、第1の論理チャネルが専有している時間が規定時間あるいは指定時間を超過していれば、第1の論理シャネルから当該EFを強制的に開放させることができる。これによって、特定の論理チャネルが長時間に亘ってあるファイルを専有してしまうことを抑制でき、各論理チャネルが効率的にファイルにアクセスすることができ、ICカード全体としての処理時間が向上できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 以下、本願の出願当初の特許請求の範囲の記載を付記する。
[1]
複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、
前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、
前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、
前記チャネルが前記データを専有している期間が専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、
を有するICカード。
[2]
さらに、前記チャネルが前記データの専有を開始してからの経過時間を測定する測定手段を有し、
前記解放手段は、前記測定手段で測定される時間が前記格納手段に格納されている前記専有可能時間を超過している場合に、前記データを強制的に開放する、
前記[1]に記載のICカード。
[3]
前記データを強制的に開放した場合に、前記データを専有していたチャネルを指定するコマンドに対して前記データが強制解放されたことを通知する通知手段を有する、
前記[1]又は[2]の何れかに記載のICカード。
[4]
前記データ記憶手段に格納されている前記各データに対応する専有可能時間を格納する格納手段を有する、
前記[1]乃至[3]の何れかに記載のICカード。
[5]
前記専有可能時間は、データごとに予め規定されている規定時間である、を備える前記請求項[1]乃至[4]の何れかに記載のICカード。
[6]
前記専有可能時間は、外部装置からのコマンドによって個々のデータに対して指定される指定時間である、
前記[1]乃至[4]の何れかに記載のICカード。
[7]
複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、前記チャネルが前記データを専有している期間が専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、を有するモジュールと、
前記モジュールを具備する本体と、
を有するICカード。
[8]
複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、
前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、
前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、
前記チャネルが前記データを専有している期間が専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、
を有する携帯可能電子装置。
[9]
複数のチャネルでの通信機能を有するICカードに対してコマンドを供給するICカード処理装置において、
前記ICカードに対してチャネルを指定して特定のデータへのアクセスを要求する処理コマンドを送信する第1送信手段と、
前記第1送信手段により送信したコマンドでアクセスを要求したデータが強制的に解放されている場合、再度、前記チャネルで前記データを専有させるためのコマンドをICカードに送信する第2の送信手段と、
前記第2の送信手段により送信したコマンドに対する処理が正常終了した旨のレスポンスを受信した後、前記処理コマンドを再送信する第3送信手段と、
を有するICカード処理装置。
1…ICカード処理装置(外部装置)、2…ICカード(携帯可能電子装置)、11…制御部、12…ディスプレイ、13…キーボード、14…カードリーダライタ、C…本体、M…ICモジュール、Ca…ICチップ、21…CPU、22…NVM、23…RAM、24…ROM、25…通信部、26…タイマ。

Claims (7)

  1. 複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、
    前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、
    前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、
    前記チャネルが前記データを専有している期間が前記外部装置からのコマンドによって個々のデータに対して指定される指定時間である専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、
    を有するICカード。
  2. さらに、前記チャネルが前記データの専有を開始してからの経過時間を測定する測定手段を有し、
    前記解放手段は、前記測定手段で測定される時間が前記専有可能時間を超過している場合に、前記データを強制的に開放する、
    前記請求項1に記載のICカード。
  3. 前記データを強制的に開放した場合に、前記データを専有していたチャネルを指定するコマンドに対して前記データが強制解放されたことを通知する通知手段を有する、
    前記請求項1又は2の何れか1項に記載のICカード。
  4. 前記データ記憶手段に格納されている前記各データに対応する専有可能時間を格納する格納手段を有する、
    前記請求項1乃至3の何れか1項に記載のICカード。
  5. 複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、前記チャネルが前記データを専有している期間が前記外部装置からのコマンドによって個々のデータに対して指定される指定時間である専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、を有するモジュールと、
    前記モジュールを具備する本体と、
    を有するICカード。
  6. 複数のチャネルを用いて外部装置とデータ通信を行う通信手段と、
    前記外部装置からのコマンドによってアクセス対象となるデータを記憶するデータ記憶手段と、
    前記通信手段によりコマンドを受信した場合、前記コマンドを受信したチャネルにおいて前記コマンドが指定するデータを専有して前記コマンドに対する処理を実行するコマンド処理手段と、
    前記チャネルが前記データを専有している期間が前記外部装置からのコマンドによって個々のデータに対して指定される指定時間である専有可能時間を経過した場合、前記データを強制的に解放する解放手段と、
    を有する携帯可能電子装置。
  7. 複数のチャネルでの通信機能を有するICカードに対してコマンドを供給するICカード処理装置において、
    前記ICカードに対して特定のチャネルが指定のデータを専有することができる時間である専有可能時間を指定するコマンドを送信する指定手段と、
    前記ICカードに対してチャネルを指定して特定のデータへのアクセスを要求する処理コマンドを送信する第1送信手段と、
    前記第1送信手段により送信したコマンドでアクセスを要求したデータが強制的に解放されている場合、再度、前記チャネルで前記データを専有させるためのコマンドをICカードに送信する第2の送信手段と、
    前記第2の送信手段により送信したコマンドに対する処理が正常終了した旨のレスポンスを受信した後、前記処理コマンドを再送信する第3送信手段と、
    を有するICカード処理装置。
JP2012207542A 2012-09-20 2012-09-20 Icカード、携帯可能電子装置、及びicカード処理装置 Active JP5932588B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012207542A JP5932588B2 (ja) 2012-09-20 2012-09-20 Icカード、携帯可能電子装置、及びicカード処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012207542A JP5932588B2 (ja) 2012-09-20 2012-09-20 Icカード、携帯可能電子装置、及びicカード処理装置

Publications (2)

Publication Number Publication Date
JP2014063310A JP2014063310A (ja) 2014-04-10
JP5932588B2 true JP5932588B2 (ja) 2016-06-08

Family

ID=50618498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012207542A Active JP5932588B2 (ja) 2012-09-20 2012-09-20 Icカード、携帯可能電子装置、及びicカード処理装置

Country Status (1)

Country Link
JP (1) JP5932588B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6325355B2 (ja) * 2014-06-03 2018-05-16 株式会社東芝 携帯可能電子装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63141148A (ja) * 1986-12-03 1988-06-13 Nec Corp 共用デ−タエリア自動解放制御方式
JP3265229B2 (ja) * 1997-06-24 2002-03-11 エヌイーシーモバイリング株式会社 バッファ監視方式
JP4585217B2 (ja) * 2004-03-29 2010-11-24 株式会社日立製作所 ストレージシステムおよびその制御方法
KR101152388B1 (ko) * 2004-05-31 2012-06-05 삼성전자주식회사 휴대용 저장장치와 디바이스에서 다수의 어플리케이션을수행하는 방법 및 장치
JP4950533B2 (ja) * 2006-03-24 2012-06-13 株式会社東芝 携帯可能電子装置およびicカード
JP5332754B2 (ja) * 2009-03-11 2013-11-06 株式会社リコー データベース管理システム、ロック障害監視方法及びロック障害監視プログラム
JP5454933B2 (ja) * 2009-09-11 2014-03-26 株式会社東芝 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
JP2011237941A (ja) * 2010-05-07 2011-11-24 Toshiba Tec Corp 無線タグ通信装置及びこの装置を用いた無線タグ探索方法

Also Published As

Publication number Publication date
JP2014063310A (ja) 2014-04-10

Similar Documents

Publication Publication Date Title
US7558110B2 (en) IC module and cellular phone
JP4896837B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
US9183400B2 (en) IC card and IC card control method
US20120067947A1 (en) Ic card, mobile electronic device and data processing method in ic card
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
JP5976458B2 (ja) Icカード、及び、携帯可能電子装置
JP4776462B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP5932588B2 (ja) Icカード、携帯可能電子装置、及びicカード処理装置
US20120234926A1 (en) Portable electronic apparatus
JP5444138B2 (ja) 通信システム、通信方法及び携帯可能電子装置
JP5971687B2 (ja) Icカード、携帯可能電子装置及びicカードのコマンド処理方法
JP6499052B2 (ja) Icカード、icモジュール、及びプログラム
JP2014059806A (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
JP5957347B2 (ja) Icカード、および携帯可能電子装置
JP5684059B2 (ja) Icカード、及びicカードの制御方法
JP5214291B2 (ja) Icカードおよびicカードの制御方法
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP6039036B2 (ja) Icカード、携帯可能電子装置及びicカードの制御方法
JP2024139134A (ja) 電子情報記憶媒体、icチップ、発行データの書き込み方法、及びプログラム
JP2016177850A (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP2012198683A (ja) 携帯可能電子装置、及び携帯可能電子装置の制御方法

Legal Events

Date Code Title Description
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: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R151 Written notification of patent or utility model registration

Ref document number: 5932588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350