特許第6844169号(P6844169)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 凸版印刷株式会社の特許一覧

<>
  • 特許6844169-記憶媒体装置及びプログラム 図000002
  • 特許6844169-記憶媒体装置及びプログラム 図000003
  • 特許6844169-記憶媒体装置及びプログラム 図000004
  • 特許6844169-記憶媒体装置及びプログラム 図000005
  • 特許6844169-記憶媒体装置及びプログラム 図000006
  • 特許6844169-記憶媒体装置及びプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6844169
(24)【登録日】2021年3月1日
(45)【発行日】2021年3月17日
(54)【発明の名称】記憶媒体装置及びプログラム
(51)【国際特許分類】
   G06F 16/18 20190101AFI20210308BHJP
   G06K 19/07 20060101ALI20210308BHJP
   G06F 3/06 20060101ALI20210308BHJP
【FI】
   G06F16/18 100
   G06K19/07
   G06F3/06 301J
【請求項の数】3
【全頁数】12
(21)【出願番号】特願2016-183445(P2016-183445)
(22)【出願日】2016年9月20日
(65)【公開番号】特開2018-49392(P2018-49392A)
(43)【公開日】2018年3月29日
【審査請求日】2019年8月21日
(73)【特許権者】
【識別番号】000003193
【氏名又は名称】凸版印刷株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(74)【代理人】
【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
(74)【代理人】
【識別番号】100108578
【弁理士】
【氏名又は名称】高橋 詔男
(74)【代理人】
【識別番号】100152146
【弁理士】
【氏名又は名称】伏見 俊介
(72)【発明者】
【氏名】浅野 之治
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特開2005−011171(JP,A)
【文献】 特開2009−276853(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/10−16/188
G06K 19/07
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
読出完了識別情報が対応付けられた単位データを1以上含むファイルが記憶される記憶媒体と、
データ読出装置と通信する通信部と、
前記データ読出装置からのデータ読出の指示に応じて前記記憶媒体から単位データの読み出しが行われたことに応じて、読み出された単位データに対応する読出完了識別情報を、読み出しが行われていないことを示す状態から読み出し完了を示す状態に書き換える識別情報制御部と
記憶媒体装置の状態遷移にあたり、前記状態遷移に必要な全ての単位データの読み出しが完了しているか否かを前記読出完了識別情報に基づいて判定し、前記全ての単位データの読み出しが完了していないことを判定した場合に前記状態遷移を禁止し、前記全ての単位データの読み出しが完了していることを判定した場合に前記状態遷移を許可する状態遷移制御部と
を備える記憶媒体装置。
【請求項2】
前記データ読出装置からのデータ読出の指示に対応して読出対象とされた単位データのうち読み出しが完了している単位データが少なくとも1つ有るか否かを、前記読出完了識別情報に基づいて判定し、読み出しが完了している単位データが無いことを判定した場合に前記読出対象とされた全ての単位データの読み出しを行い、読み出しが完了している単位データが少なくとも1つ有ることを判定した場合に前記読出対象とされた全ての単位データの読み出しを行わないようにされたデータ読出部をさらに備える
請求項1に記載の記憶媒体装置。
【請求項3】
読出完了識別情報が対応付けられた単位データを1以上含むファイルが記憶される記憶媒体と、データ読出装置と通信する通信部とを備える記憶媒体装置としてのコンピュータを、
前記データ読出装置により前記記憶媒体から単位データの読み出しが行われたことに応じて、読み出された単位データに対応する読出完了識別情報を、読み出しが行われていないことを示す状態から読み出し完了を示す状態に書き換える識別情報制御部
記憶媒体装置の状態遷移にあたり、前記状態遷移に必要な全ての単位データの読み出しが完了しているか否かを前記読出完了識別情報に基づいて判定し、前記全ての単位データの読み出しが完了していないことを判定した場合に前記状態遷移を禁止し、前記全ての単位データの読み出しが完了していることを判定した場合に前記状態遷移を許可する状態遷移制御部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶媒体装置及びプログラムに関する。
【背景技術】
【0002】
IC(Integrated Circuit)カードにはファイル単位でデータが記憶される。このようなICカードとして、以下のようなものが知られている。つまり、ICカードは、外部装置からのコマンドの受信に応じて、自己が記憶するコマンドテーブルに基づいてコマンドが処理対象のファイルについて定義されたものか否かをチェックする。ICカードは、チェックの結果、コマンドが処理対象のファイルに対して定義されたものである場合にはコマンドを実行し、コマンドが現在処理対象となっているファイルについて定義されたものでない場合にはエラーを外部装置へ送信する(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−275739号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ICカードに記憶されるファイルのデータは、さらレコードと呼ばれる1以上の単位データの領域に対して格納され、ファイルのデータの読み出しに際しては、レコード単位で読み出しが行われる。
しかしながら、ICカードにおけるデータの読み出し可否に関する制御はファイル単位で行われている。このため、レコード単位でのデータの読み出しに関してエラーが生じていたとしても、このことをICカードにて把握することができない。このような事情から、レコード単位でのデータの読み出しに関するエラーの発生に対してリーダライタ側が対応できないような場合には、正常なICカードのアプリケーションの動作が阻害される場合がある。
【0005】
本発明は、このような事情に鑑みてなされたもので、記憶媒体装置に記憶されるファイルに含まれる単位データについての読み出し結果の管理を、記憶媒体装置自体で行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決する本発明の一態様は、読出完了識別情報が対応付けられた単位データを1以上含むファイルが記憶される記憶媒体と、データ読出装置と通信する通信部と、前記データ読出装置からのデータ読出の指示に応じて前記記憶媒体から単位データの読み出しが行われたことに応じて、読み出された単位データに対応する読出完了識別情報を、読み出しが行われていないことを示す状態から読み出し完了を示す状態に書き換える識別情報制御部とを備える記憶媒体装置である。
【0007】
上述した課題を解決する本発明の一態様は、読出完了識別情報が対応付けられた単位データを1以上含むファイルが記憶される記憶媒体と、データ読出装置と通信する通信部とを備える記憶媒体装置としてのコンピュータを、前記データ読出装置により前記記憶媒体から単位データの読み出しが行われたことに応じて、読み出された単位データに対応する読出完了識別情報を、読み出しが行われていないことを示す状態から読み出し完了を示す状態に書き換える識別情報制御部として機能させるためのプログラムである。
【発明の効果】
【0008】
以上説明したように、本発明によれば、記憶媒体装置に記憶されるファイルに含まれる単位データについての読み出し結果の管理を、記憶媒体装置自体で行えるようになるという効果が得られる。
【図面の簡単な説明】
【0009】
図1】本実施形態におけるICカードが備える記憶媒体の記憶領域についてのメモリマッピング例を示す図である。
図2】本実施形態の記憶媒体に記憶されるファイルの構造例を示す図である。
図3】本実施形態における読出完了フラグの状態遷移例を示す図である。
図4】本実施形態における読出完了フラグの状態遷移として、ファイルに格納されるレコードが3つである場合の例を示す図である。
図5】本実施形態におけるICカードの構成例を示す図である。
図6】本実施形態のICカードが実行する処理手順例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照して本実施形態について説明する。
[ICカードの記憶媒体におけるデータ構造]
以下、本発明の実施形態としてのICカード(記憶媒体装置の一例)について図面を参照して説明する。
本実施形態のICカードは、内部に記憶媒体を備え、リーダライタなどの外部通信装置と通信が可能に構成される。ICカードは、リーダライタとの通信が可能とされることで、リーダライタからの指示に応じて、記憶媒体からデータを読み出し、読み出したデータをリーダライタに出力する。
【0011】
ICカードの記憶媒体にはファイル単位でデータが管理される。図1は、本実施形態のICカードが備える記憶媒体103の記憶領域についてのマッピング例を示している。同図に示すように、記憶媒体103の記憶領域は、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3を備える。
【0012】
ファイル管理領域AR1は、システム領域AR2やユーザデータ領域AR3に記憶されるデータをファイル単位で管理するファイル管理情報が記憶される領域である。一例として本実施形態におけるファイル管理領域AR1には、FAT(File Allocation Table)ファイルシステムに対応したファイル管理情報が格納されればよい。
【0013】
システム領域AR2は、OS(Operating System)や各種設定情報などをはじめとするシステム情報が記憶される領域である。
ユーザデータ領域AR3は、アプリケーションが使用するユーザデータが記憶される領域である。ファイルのデータは、ユーザデータ領域AR3に記憶される。
なお、記憶媒体103の記憶領域においては、ファイル管理領域AR1、システム領域AR2及びユーザデータ領域AR3以外の領域が含まれていてもよい。
【0014】
図2は、ファイルFLの構造例を示している。同図に示すように、ファイルFLは、ファイルヘッダとデータ領域とを含む構造である。
ファイルヘッダには、ファイルに関連する所定のパラメータが格納される。
データ領域には、ファイルとしてのデータが格納される。本実施形態において、データ領域に格納されるファイルは、固定長によるレコードが配置されるレコード構造を有する。このようなレコード構造においては、レコードごとにデータ(レコードデータ:単位データの一例)が格納される。レコードに格納されるレコードデータは、以下に例示するように、それぞれ所定の定義に従った内容を有する。即ち、1つのファイルは1以上のレコードを含み、各レコードには、例えば所定の定義に従った種別のデータが格納される。
本実施形態においては、ファイルFLのデータ領域に格納可能なレコード数が最大で「8」とされている場合を例に挙げる。同図においては、ファイルFLのデータ領域において、格納可能なレコードの最大数に対応する8個のレコード#1〜#8が格納された例を示している。
【0015】
また、本実施形態では、ファイルヘッダにおける所定の位置に読出完了フラグエリアFLAが配置される。
図3を参照して、図2のファイルFLに対応する読出完了フラグエリアFLAの例について説明する。図3(A)に示されるように、読出完了フラグエリアFLAは、ビット位置b1〜b8ごとに対応する各1ビットの読出完了フラグが8個配置されて形成される。ビット位置b1〜b8ごとに対応する読出完了フラグが、それぞれ、レコード#1〜#8に対応付けられている。
読出完了フラグは、対応のレコードに対するレコードデータの読み出しが完了したか否かを示す。以降の説明において、本実施形態の読出完了フラグは、「0」により読み出しが完了していないことを示し、「1」により読み出しが完了したことを示すように定義されている場合を例に挙げる。
【0016】
例えばICカードがリーダライタとセッションを開始する直前の段階においては、図3(A)に示すように、8個の読出完了フラグは全て「0」にリセットされた初期状態となっている。
そして、リーダライタによりファイルFLの読み出しが指示されると、ICカードは、記憶媒体103からファイルFLの読み出しを行う。この際、ICカードは、読出対象のファイルFLのデータ領域に配置されるレコードから、リーダライタの指定に応じて、順次、レコードデータの読み出しを行い、読み出したレコードデータによるファイルのデータをリーダライタに転送する。
そして、ICカードは、上記のようにデータの読み出しを実行していく過程において、レコードからのレコードデータの読み出しを完了するごとに、レコードデータの読み出しが完了されたレコードに対応する読出完了フラグを「0」から「1」に書き換える。この結果、ファイルFLにおけるレコード#1〜#8の8つのレコードごとに対応するレコードデータの読み出しが全て成功すれば、図3(B)のように、ビット位置b1〜b8ごとのビットによる8つの読出完了フラグの全てが「1」となる状態が得られる。つまり、読出完了フラグエリアFLAにおけるビット位置b1〜b8の読出完了フラグによって、レコード#1〜#8の全てからレコードデータの読み出しが完了したことが示される。
【0017】
一方、図示は省略するが、ファイルFLの読み出しが完了した段階で、レコード#1〜#8のうちでレコードデータの読み出しが行われなかったものがあった場合、読み出しが行われなかったレコードに対応するビット位置の読出完了フラグについては「0」のままである。具体的に、レコード#1〜#8のうち、レコード#3のみがレコードデータの読み出しが行われなかった場合、ビット位置b1、b2、b4〜b8の読出完了フラグについてはそれぞれ「1」であるが、ビット位置b3の読出完了フラグについてはそれぞれ「0」の状態となる。この場合、読出完了フラグエリアFLAにおけるビット位置b1〜b8の読出完了フラグによって、レコード#1、#2、#4〜#8についてはレコードデータの読み出しが完了したが、レコード#3についてはレコードデータの読み出しが行われていないことが示される。
【0018】
また、ファイルFLにおいて格納可能なレコードの最大数が8個である場合において、ファイルFLが8個未満のレコードを格納する場合に対応する読出完了フラグエリアFLAの例について説明する。
図4は、一具体例として、ファイルFLが3つのレコードを格納する場合に対応する読出完了フラグエリアFLAの例が示されている。このようにファイルFLが格納するレコード数が3つとされて8個より少ない場合においても、読出完了フラグエリアFLAは、格納可能なレコードの最大数に対応させて8ビットにより形成される。
そのうえで、読出完了フラグの初期状態においては、図4(A)に示すようにビット位置b1〜b8の各読出完了フラグがリセットされる。つまり、ビット位置b1〜b3に対応する3ビットについてはそれぞれ「0」がセットされ、読み出しが完了していないことを示す。一方、レコードが対応しないビット位置b4〜b8に対応する5ビットについてはそれぞれ「1」がセットされる。つまり、リセット段階にて既に読み出しが完了していることが示されるようにすることで無効化が図られる。
【0019】
そして、ファイルFLに対するデータの読み出しがリーダライタにより指示されたことに応じて、ICカードは、記憶媒体103からファイルFLにおける3つのレコードのレコードデータを読み出す。この結果、図4(A)に示す初期状態の読出完了フラグエリアFLAは、図4(B)に示すように、ビット位置b1〜b3の3ビットの読出完了フラグがそれぞれ「0」から「1」に書き換えられたことで、ビット位置b1〜b8の全てに対応する読出完了フラグが「1」となる。これにより、読出完了フラグエリアFLAの読出完了フラグにより、ファイルFLにおける全てのレコードからのレコードデータの読み出しの完了したことが示される。
【0020】
一方、図示は省略するが、ファイルFLの読み出しが完了した段階で、レコード#1〜#3のうちでレコードデータの読み出しが行われなかったものがあった場合、読み出しが行われなかったレコードに対応するビット位置の読出完了フラグについては「0」のままであり、レコードデータの読み出しが行われていないことが示される。
【0021】
上記図3図4の読出完了フラグエリアFLAは、ファイルFLに格納可能なレコードの最大数に応じたビット数による固定長である。しかしながら、読出完了フラグエリアは、例えばファイルFLに格納されるレコード数に応じたビット数を有する可変長であってもよい。
【0022】
なお、読出完了フラグエリアFLAにおける各読出完了フラグの値は、例えば、リーダライタとの通信が確立した状態のもとで実行されるセッションが完了した段階で初期状態に戻されるように初期化が行われる。あるいは、読出完了フラグエリアFLAにおける各読出完了フラグの初期化は、例えばリーダライタとの通信の確立に応じてセッションが開始されるまでの所定の段階で行われるようにしてもよい。
また、読出完了フラグエリアFLAは、図2に示したようにファイルFLのファイルヘッダに格納されている。つまり、図2の読出完了フラグエリアFLAは、ファイルFLの構造内に格納された例を示している。
しかしながら、例えば読出完了フラグエリアFLAは、ファイルFLとの関連付けが為されたうえで、ファイルFLに含まれない個別の情報として記憶媒体103における所定の領域に格納されるようにしてよい。この場合において、読出完了フラグエリアFLAは、揮発性のRAM領域に格納されるようにしてよい。このように不揮発性の領域に読出完了フラグエリアFLAの領域を設定することで、例えばトランザクションが完了してリーダライタとの通信が切断されて、ICカードへの電源供給が停止することに応じて、読出完了フラグエリアFLAにおける各読出完了フラグの値をリセットすることができる。
【0023】
[ICカードの構成例]
続いて、図5を参照して、本実施形態におけるICカード100の構成例について説明する。同図においては、ICカード100とともに、リーダライタ200(データ読出装置の一例)が示されている。
【0024】
先に、リーダライタ200について説明する。リーダライタ200は、ICカード100からデータの読み出しを行う。リーダライタ200は、ファイル単位でのデータの読み出しを行う。リーダライタ200はファイル単位によるデータの読み出しに際して、さらに、ファイルに格納されるレコードの単位で、順次、レコードに格納されるレコードデータ(単位データの一例)の読み出しを行う。
【0025】
次に、同図のICカード100について説明する。同図のICカード100は、通信部101、制御部102及び記憶媒体103を備える。
通信部101は、リーダライタ200と通信を実行する。
制御部102は、ICカード100における各種制御を実行する。制御部102としての機能は、例えばICカード100が備えるCPU(Central Processing Unit)が、記憶媒体103に記憶されたプログラムを実行することにより実現される。
本実施形態における制御部102は、記憶媒体103に記憶されるデータの読み出しに関連する機能部として、データ読出部121、識別情報制御部122、及び状態遷移制御部123を備える。
【0026】
データ読出部121は、リーダライタ200から送信されるコマンドに応じて、記憶媒体103に対するデータの読み出しを実行し、読み出したデータを、通信部101を介してリーダライタ200に送信する。
そのうえで、本実施形態のデータ読出部121は、リーダライタ200からのデータ読み出しの指示に対応して読出対象とされたレコードデータについて読み出しが完了しているか否かを読出完了フラグ(読出完了識別情報の一例)に基づいて判定する。データ読出部121は、読み出しが完了していないことを判定した場合にデータの読み出しを行い、読み出しが完了していることを判定した場合にデータの読み出しを行わないようにする。
【0027】
識別情報制御部122は、リーダライタ200からのデータ読み出しの指示に応じて記憶媒体103からレコードデータの読み出しが行われたことに応じて、読み出されたレコードデータに対応する読出完了フラグを、読み出しが行われていないことを示す状態から読み出し完了を示す状態に書き換える。
【0028】
状態遷移制御部123は、ICカード100の状態遷移を制御する。ここで、状態遷移制御部123が制御する「状態」は、1セッションにおけるリーダライタ200からのコマンド等に対応して設定されるICカード100の状態(ステイタス)であり、例えば1セッションにおいて「idle(0x00)」、「select(0x01)」、「Read Complete(0x02)」・・・「end(0xXX)」のように遷移する。
状態遷移制御部123は、状態遷移に必要な全てのレコードからのレコードデータの読み出しが完了しているか否かを読出完了フラグに基づいて判定し、全てのレコードからのレコードデータの読み出しが完了していないことを判定した場合に状態遷移を禁止し、全てのレコードからのレコードデータの読み出しが完了していることを判定した場合に状態遷移を許可する。
【0029】
記憶媒体103は、制御部102が利用する各種の情報を記憶する。前述のように、本実施形態の記憶媒体103は、図1に示した領域の設定が行われたうえで、図2に示した構造のファイルを記憶する。なお、記憶媒体103が対応するハードウェアは、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどであればよい。
【0030】
[処理手順例]
続いて、図6のフローチャートを参照して、本実施形態におけるICカード100が実行する処理手順例について説明する。同図の処理は、ICカード100がセッション内で或る1のコマンドに応じて実行するシーケンスに対応する。
【0031】
ICカード100においてデータ読出部121は、リーダライタ200から受信したコマンドに対応するコマンド実行条件について確認する(ステップS101)。コマンド実行条件の確認にあたり、データ読出部121は、今回受信されたコマンドコードに対応するコマンド実行条件フラグの値を参照する。コマンド実行条件フラグは、対応のコマンドコードごとに対応して実行可能あるいは実行不可のいずれかを示す。
【0032】
データ読出部121は、ステップS101によりコマンド実行条件を確認した結果、コマンドに応答した処理を実行可能であるか否かについて判定する(ステップS102)。
コマンドに応答した処理を実行可能である場合(ステップS102−YES)、データ読出部121は、コマンドに対する応答として読出対象となるファイルFL内のレコードを検索する(ステップS103)。データ読出部121は、ステップS103による検索の結果、読出対象レコードが検索されたか否かについて判定する(ステップS104)。
【0033】
読出対象のレコードがステップS103により検索された場合(ステップS104−YES)、データ読出部121は、読出対象のレコードごとについての読出完了フラグの値を確認する(ステップS105)。この際、データ読出部121は、読出対象のレコードを含むファイルFLにアクセスし、ファイルヘッダに格納された読出完了フラグエリアFLA内の読出完了フラグの値を確認する。
【0034】
データ読出部121は、ステップS105による読出完了フラグの確認の結果、既に読み出しが完了しているレコード(読出完了レコード)が少なくとも1つ有るか否かについて判定する(ステップS106)。
【0035】
ここで、コマンドに応答した処理が実行不可であった場合(ステップS102−NO)、データ読出部121は、実行条件エラーに対応する処理を実行する(ステップS107)。具体的に、データ読出部121は、ステップS107として、コマンドに応答した以降のデータ読み出しの処理を実行しないようにする。また、データ読出部121は、リーダライタ200に対して実行条件エラーの発生を通知してもよい。
【0036】
また、コマンド実行条件フラグが実行可能を示していたとしても、例えばそのコマンドが本来はICカード100が対応不可のものであるなどの理由で、コマンドに対応する読出対象のレコードが記憶媒体103に存在しない場合がある。このような場合には、ステップS103による読出対象のレコードの検索の結果、読出対象のレコードの少なくとも一部が存在しないと判定される(ステップS104−NO)。この場合、データ読出部121は、実行条件エラーに対応する処理を実行する(ステップS107)。
【0037】
また、コマンド実行条件フラグが実行可能を示しており、読出対象のレコードが記憶媒体103に存在していたとしても、今回のリーダライタ200とのセッションにおいて、今回のコマンドに対応して読出対象とされたレコードが、既に読み出されている場合がある。この場合には、ステップS105による読出完了フラグの確認の結果、読出完了レコードが有ると判定されることになる(ステップS106−YES)。本実施形態において、1セッションにおいて同じレコードが複数回読み出されることは許容されていない。そこで、この場合のデータ読出部121は、実行条件エラーに対応する処理を実行する(ステップS107)。これにより、1セッションにおいて同じレコードが複数回読み出されることが防止される。
【0038】
一方、ステップS105による読出完了フラグの確認の結果、読出完了レコードが1つも無い、即ち、読出対象のレコードの全てが未だ読み出されていないことが判定された場合(ステップS106−NO)、データ読出部121は、以下の処理を実行する。
つまり、データ読出部121は、読出対象のレコードのうちの1つのレコードに格納されたレコードデータの読み出しを実行する(ステップS108)。データ読出部121は、読み出したレコードデータを、通信部101を介してリーダライタ200に転送する。
【0039】
識別情報制御部122は、ステップS108によりレコードデータの読み出しが実行されたことに応じて、読み出されたレコードデータのレコードに対応する読出完了フラグの書き換えを行う(ステップS109)。つまり、識別情報制御部122は、読み出されたレコードデータのレコードに対応する読出完了フラグについて、未だ読み出されていないことを示す「0」から、読み出しが完了したことを示す「1」に変更する。
【0040】
データ読出部121は、今回のステップS108によるレコードデータの読み出しにより、読出対象のレコードのうち最後のレコードからのレコードデータの読み出しが完了したか否かについて判定する(ステップS110)。
最後のレコードからのレコードデータを未だ読み出していない場合(ステップS110−NO)、データ読出部121は、ステップS108に処理を戻す。これにより、未だレコードデータの読み出しが行われていない読出対象のレコードのうちの1つを対象としてレコードデータが読み出され、対応の読出完了フラグの書き換えが行われる。
【0041】
一方、最後の読出対象として指定されたレコードからのレコードデータの読み出しが完了した場合(ステップS110−YES)、状態遷移制御部123は、コマンドに対する応答として読み出すべきレコードのそれぞれに対応する読出完了フラグの値を確認する(ステップS111)。
状態遷移制御部123は、ステップS111による確認結果から、コマンドに対する応答として読み出すべき読出対象のレコードの全てに対する読み出しが完了しているか否かについて判定する(ステップS112)。
【0042】
リーダライタ200による読み出し対象のレコードの指定のエラーや、データ読出部121側のデータ読み出しのエラーなどにより、コマンドに対する応答として読み出すべきレコードのうちのいずれかがステップS108によって読み出されない場合がある。このような場合には、読み出されなかったレコードについてはステップS108により対応の読出完了フラグの書き換えが行われない。この場合、ステップS111による確認の結果、読出対象のレコードの全てについて読み出しが完了していないと判定される(ステップS112−NO)。
このように読出対象のレコードの全てについて読み出しが完了していないことが判定された場合、状態遷移制御部123は、状態遷移エラーに対応する処理を実行する(ステップS113)。具体的に、状態遷移制御部123は、今回のコマンドに応答したデータの読み出しの完了に応じた次の状態への遷移を行わないようにする。つまり、この場合の状態遷移制御部123は、次の状態への遷移を禁止する制御を行う。また、状態遷移制御部123は、状態遷移エラーが発生したことをリーダライタ200に対して通知してもよい。
【0043】
一方、読出対象のレコードの全てについて読み出しが完了していることが判定された場合(ステップS112−YES)、状態遷移制御部123は、次の状態への遷移が行われるように制御する(ステップS114)。つまり、この場合の状態遷移制御部123は、次の状態への遷移を許可する制御を行う。
【0044】
以上説明したように、本実施形態におけるICカード100は、記憶媒体103に記憶されるファイルFLに格納されるレコードごとに対応する読出完了フラグの管理が可能なようにされている。これにより、ICカード100自体が、1セッションにおけるレコード単位のデータの読み出しが完了しているか否かの判定を行うことが可能になる。
【0045】
そのうえで、ICカード100は、データの読み出しに先立って、読出完了フラグにより読出対象のレコードからの読み出しが完了していることが示されている場合には、データの読出を行わないようにする(ステップS105、ステップS106、ステップS107)。これにより、例えばコマンド実行条件を満足したことに応じてファイルFLの読出が許可されていたとしても、ファイルFL内の同じレコードを対象として複数回の読み出しが実行されてしまうという不具合の発生を防ぐことができる。また、このような制御によって、不具合の発生の防止のほか、例えばコマンド実行条件を満たした後における不正な記憶媒体103へのアクセスによるデータの読み出しを防止できる。
また、ICカード100は、読出対象として指定されたレコードからの読み出しが終了した段階において読出完了フラグを確認し、読出対象のレコードの全てに対する読み出しが完了していなければ、次の状態への遷移を行わない(禁止する)ようにしている(ステップS111、S112、S113)。これにより、本実施形態のICカード100においては、或る状態のもとでのデータの読み出しが適切に完了していないのに次の状態に遷移してしまうという不具合の発生を防止できる。また、例えば偽のコマンドでコマンド実行条件をクリアしたとしても、例えば読出対象のレコードの指定が異なっていれば状態遷移エラーとなって状態遷移が生じないことから、不正を有効に防止できる。
本実施形態においては、上記のような不具合発生の防止や不正の防止について、上位のリーダライタ200に依ることなく、ICカード100自体で実現できる。
【0046】
なお、上述のICカード100としての機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のICカード100としての処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0047】
100 ICカード、101 通信部、102 制御部、103 記憶媒体、121 データ読出部、122 識別情報制御部、123 状態遷移制御部、200 リーダライタ
図1
図2
図3
図4
図5
図6