本発明の概要は以下のとおりである。
本発明は、ICタグに格納するデータを動的に分割し、格納する技術を提供する。具体的には、乱数を用いて、ICタグに格納するデータの格納手順を記載したデータ格納情報を生成し、ICタグ毎にデータ格納情報とその情報に基づいて分割されたデータとの組みを格納する。
例えば、本発明を鉄道の切符等に適用する場合には、ICタグ(ICタグを備えた切符)の発券処理において、発券端末は乱数を生成し、この乱数を用いてデータ格納情報を生成する。データ格納情報には、データの分割数、データの格納エリア、データの開始アドレス、データのサイズ、及び、データ格納オプション等の情報が含まれる。発券端末は、このデータ格納情報に基づいて、データを分割し、データ格納情報とともに分割されたデータをICタグに書き込む。次に、入出場処理及び精算処理において、端末は、ICタグからデータ格納情報を取得し、取得したデータ格納情報に基づいて、データが格納されている記憶領域を特定し、ICタグの該当する記憶領域から分割されたデータを取得し、元のデータ券情報を再構成する。
<実施形態1>
本発明の第1の実施形態について説明する。
なお、以下に説明する第1の実施形態は、本発明の一実施形態であって、これによって本発明が限定されるものではない。また、第1の実施形態は、鉄道の出改札システムを例としているが、他の入退場管理システム(例えば、遊園地、映画館等の入退場管理システム)にも適用することができる。
図1は、本発明の第1の実施形態のICタグのデータ格納システムの構成を示すブロック図である。
第1の実施形態のICタグのデータ格納システムは、ICタグ10と、発券端末20と、入出場端末30と、精算端末40とを備える。各端末は、無線通信によってICタグ10と接続される。
ICタグ10は、データ送受信部101、コマンド解析部102、データ格納情報出力部103、発券情報出力部104、入場情報出力部105、中間入出場情報出力部106、出場情報出力部107、データ格納情報記憶部108、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112を備え、各端末からコマンドを受信し、受信したコマンドの内容に基づいて、処理を実行し、処理結果を送信する。
データ送受信部101は、各端末から送信されたコマンドを受信し、処理結果を送信する。コマンド解析部102は、各端末から送信されたコマンドを解析する。
データ格納情報出力部103は、発券処理においてICタグ10に格納されるデータ格納情報を出力する。発券情報出力部104は、発券処理においてICタグ10に格納される発券情報を出力する。入場情報出力部105は、入場処理においてICタグ10に格納される入場情報を出力する。中間入出場情報出力部106は、中間入出場処理においてICタグ10に格納される中間入出場情報を出力する。出場情報出力部107は、出場処理においてICタグ10に格納される出場情報を出力する。
データ格納情報記憶部108は、ICタグ10に書き込まれているデータの格納順序等を示すデータ格納情報を記憶する。発券情報記憶部109は、発券処理においてICタグに格納される発券情報を記憶する。入場情報記憶部110は、入場処理においてICタグに格納される入場情報を記憶する。中間入出場情報記憶部111は、中間入出場処理においてICタグに格納される中間入出場情報を記憶する。出場情報記憶部112は、出場処理においてICタグに格納される出場情報を記憶する。
発券端末20は、入力部201と、コマンド生成部202と、ICタグアクセス部203と、鍵保管部204とを備える。発券端末20は、無線通信によってICタグ10にアクセスし、ICタグ10に格納されたデータを読み取る。また、利用者は、発券端末20にデータ(料金等)を入力する。
入力部201は、外部からICタグ10に書き込む情報及び料金等を入力する。コマンド生成部202は、ICタグ10に対して送信するコマンドを生成する。ICタグアクセス部203は、端末とICタグ10との間でコマンドを送受信する。鍵保管部204は、コマンド生成部202で使用する鍵情報を保管する。
入出場端末30は、判定部301と、コマンド生成部302と、ICタグアクセス部303と、鍵保管部304とを備え、無線通信によってICタグ10にアクセスし、ICタグ10に格納されたデータを読み取り、また、ICタグ10から読み出されたデータを判定する。
判定部301は、ICタグ10から取得したデータの正当性を判定する。コマンド生成部302は、ICタグ10に対して送信するコマンドを生成する。ICタグアクセス部303は、端末とICタグ10との間でコマンドを送受信する。鍵保管部304は、コマンド生成部302で使用する鍵情報を保管する。
精算端末40は、判定部401と、コマンド生成部402と、ICタグアクセス部403と、入力部404とを備え、無線通信によってICタグ10にアクセスし、ICタグ10に格納されたデータを読み取り、また、ICタグ10から読み出されたデータを判定する。また、利用者は精算端末40に精算金額等のデータを入力する。
判定部401は、ICタグ10から取得したデータの正当性を判定する。コマンド生成部402は、ICタグ10に対して送信するコマンドを生成する。ICタグアクセス部403は、端末とICタグ10との間でコマンドを送受信する。入力部404は、外部からICタグ10に書き込む料金等を入力する。鍵保管部405は、コマンド生成部402で使用する鍵情報を保管する。
図2は、本発明の第1の実施形態のICタグのハードウェア構成を示すブロック図である。
ICタグ10は、入出力部10A及び記憶部10Bを備え、内部信号線10Cで互いに接続されている。
入出力部10Aは、各端末から送信されたコマンド等の入力を受け付け、発券情報、入場情報、出場情報等を出力する無線送受信部である。
記憶部10Bは、図1に示した、データ格納情報記憶部108、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112を含み、また、ICタグ10と各端末との間の発券処理、入場処理、出場処理及び精算処理等において送受信されるデータを格納する。
なお、記憶部10Bは、図1に示した、コマンド解析部102、データ格納情報出力部103、発券情報出力部104、入場情報出力部105、中間入出場情報出力部106、及び、出場情報出力部107を実現するプログラムを格納してもよい。
この場合には、ICタグ10はCPU(図示省略)を備え、CPUが記憶部10Bに格納されたプログラムを実行することによって、各処理部(コマンド解析部102、データ格納情報出力部103等)を実現してもよい。また、ICタグ10は、各処理部(コマンド解析部102、データ格納情報出力部103等)を実現するロジック回路(図示省略)を備えてもよい。
また、ICタグ10は、図2に示した構成を備えているのであれば、クレジットカードのような形状であってもよいし、鉄道の切符、又は、映画館のチケットのような形状であってもよい。さらに、MMC(MultiMedia Card)及びSD(Secure Digital)カードのようなメモリーカードの形状であってもよい。
図3は、本発明の第1の実施形態の発券端末のハードウェア構成を示すブロック図である。
発券端末20は、入出力装置20A、ICタグ入出力装置20B、記憶装置20C、CPU20D、メモリ20E、及び、読取装置20Fを備え、各部はバス等の内部信号線20Hによって互いに接続されている。
入出力装置20Aは、利用者がICタグ10に格納する発券情報を入力する装置であり、また、発券処理の結果を出力する装置である。ICタグ入出力装置20Bは、ICタグ10にアクセスし、ICタグ10に格納されたデータを読み取り、また、各コマンドを送信する装置である。
記憶装置20Cは、データ及びプログラム等を記憶する。CPU20Dは、メモリ20Eに格納された各プログラムを実行するプロセッサである。メモリ20Eは、図1に示した入力部201、コマンド生成部202、ICタグアクセス部203及び鍵保管部204を実現するプログラムを格納する。
読取装置20Fは、記憶媒体20G(例えば、CD−ROM、メモリーカード等)にデータの読み書きをする装置である。なお、ICタグ10がメモリーカード(例えば、MMC)等である場合には、ICタグ入出力装置20Bの代わりに、読取装置20FがICタグへの読み書きを実行してもよい。
なお、精算端末40(図示省略)は、図3に示した発券端末20の構成と同じである。
図4は、本発明の第1の実施形態の入出場端末のハードウェア構成を示すブロック図である。
入出場端末30は、出力装置30A、ICタグ入出力装置30B、記憶装置30C、CPU30D、メモリ30E、及び、読取装置30Fを備え、各部はバス等の内部信号線30Hによって互いに接続されている。入出場端末30は、図1に示した発券端末20とほぼ同じ構成である。
出力装置30Aは、入場処理の結果、中間入出場処理の結果、及び、出場処理の結果を出力する装置である。
CPU30Dは、メモリ30Eに格納された図1に示した判定部301、コマンド生成部302、ICタグアクセス部303及び鍵保管部304を実現するプログラムを実行するプロセッサである。
なお、第1の実施形態の発券端末20、入出場端末30及び精算端末40は、パーソナルコンピュータ(PC)、携帯型情報機器(PDA)、PDAを備えた携帯電話端末(スマートフォン)等の装置であってもよい。また、前述した各端末は、USB等の外部インタフェースを介して、ICタグの読取装置を接続してもよい。
以下に、第1の実施形態のICタグのデータ格納システムの処理について説明する。
ここでは、以下の処理は、ICタグ10、又は、各端末等に備わる各処理部が実行すると説明する。ただし、実際には、CPUが、各記憶装置に記憶されたプログラムがメモリに格納された後、メモリに格納されたプログラムに基づいて、処理を実行する。
なお、各端末は、あらかじめ各記憶装置に各プログラムを記憶してもよいし、必要に応じて、利用可能な他の記憶媒体によって各プログラムを取得してもよい。また、有線回線又は無線回線のネットワークを介して、他の装置から各プログラムを取得してもよい。
図5は、本発明の第1の実施形態のICタグのデータ格納システムの処理を示すフローチャートである。
まず、発券端末20は、何も情報が格納されていないICタグ10を用いて、ICタグ10と発券端末20との間で発券処理を実行する(S501)。
次に、入出場端末30は、入場処理を実行し、発券情報が格納されたICタグ10と入出場端末30との間で発券情報の正当性を確認する(S502)。
次に、入出場端末30は、中間入出場処理の有無を判定する(S503)。なお、中間入出場処理は、利用者が他社路線への乗り継ぎを行う場合に実行される。また、中間入出場処理の有無は、後述する中間入出場情報に基づいて判定される。
S503の処理において、中間入出場処理がある場合には、入出場端末30は、発券情報及び入場情報が格納されたICタグ10と、入出場端末30との間で、中間入出場処理を実行する(S504)。
一方、S503の処理において、中間入出場処理がない場合には、入出場端末30は、S504の処理を実行せず、S505の処理へ進む。
次に、精算端末40は、精算処理の有無を判定する(S505)。なお、精算処理は、利用者が発券時に指定した駅を乗り越した場合、又は、出場駅を変更した場合等に実行される。
S505の処理において、精算処理を実行する場合には、精算端末40は、精算端末40とICタグ10との間で精算処理を実行する(S506)。
一方、S505の処理において、精算処理を実行しない場合には、精算端末40は、S506の精算処理を実行せず、S507の処理へ進む。
最後に、入出場端末30は、出場処理を実行し、発券情報及び入場情報が格納されたICタグ10と入出場端末30との間で、発券情報及び入場情報の正当性を確認する(S507)。
なお、S501に示した発券処理の詳細については、図6を用いて後述する。S502に示した入場処理の詳細については、図7を用いて後述する。S504に示した中間入出場処理の詳細については、図8を用いて後述する。S506に示した精算処理の詳細については、図9を用いて後述する。S507に示した出場処理の詳細については、図10を用いて後述する。
次に、第1の実施形態の発券処理(図5に示したS501の処理)について説明する。
図6は、本発明の第1の実施形態の発券処理の例を示すフローチャートである。
まず、利用者は、発券端末20に、料金を投入する(S601)。次に、利用者は、ICタグ10に格納する発券情報を入力する(S602)。ここで、発券情報とは、例えば、鉄道の切符の場合には、有効期間、発券駅、経由駅、出場駅、発券端末、券種及び金額等の情報である。
また、利用者は、発券情報のすべてを外部から入力する必要はない。発券情報の一部(例えば、時刻情報、発券駅情報等)は、発券端末20が備える発券情報から取得され、入力されてもよい。
次に、発券端末20のコマンド生成部202は、データ格納情報の生成に用いる乱数を生成する(S603)。ここで、発券端末20のコマンド生成部202は、乱数の代わりに、発券端末20で発券毎にカウントされるシリアル番号を使ってもよいし、発券端末20に固有に設定されている定数(例えば、発券端末20の識別子等)を使ってもよい。
次に、発券端末20のコマンド生成部202は、生成された乱数を利用して、データ格納情報を生成する(S604)。
なお、データ格納情報の構成については、図11を用いて後述するが、データ格納情報には、発券情報等の各情報の分割数、並びに、分割された各情報が格納される各記憶部のアドレス等が含まれる。
また、生成された一つの乱数列の中には、同じ数字が二つ以上含まれることがある。同じ乱数は同じデータ格納領域を示すため、異なる二つ以上のデータに同じ乱数が対応付けられた場合は、異なるデータが同じデータ格納領域に格納される可能性がある。したがって、一度使用されたデータ格納領域は使用済であるとして、その領域を示す乱数は一度しか使用しないものとする。
次に、発券端末20のICタグアクセス部203は、ICタグ10に対し、データ格納情報(A601)を送信する。
次に、ICタグ10のデータ送受信部101は、データ格納情報(A601)を受信する。ICタグ10のコマンド解析部102は、受信したデータ格納情報(A601)をデータ格納情報記憶部108に格納する(S605)。次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A602)を発券端末20に送信する。
ここで、レスポンスとは、ICタグ10が、受信したデータを記憶部に正常に格納したことを端末に通知する応答信号である。
次に、発券端末20のコマンド生成部202は、データ格納情報(A601)に基づいて、利用者によって入力された発券情報を分割する(S606)。ここで、券データ格納オプションA1205に暗号化等の処理が指定されている場合には、発券端末20のコマンド生成部202は、鍵保管部204に格納されている鍵データを用いて、分割された発券情報を暗号化する。
なお、券データ格納オプションA1205については、図12を用いて後述する。
次に、発券端末20のICタグアクセス部203は、ICタグ10に分割発券情報(A603−1)を送信する。
次に、ICタグ10のデータ送受信部101は、分割発券情報(A603−1)を受信する。ICタグ10のコマンド解析部102は、受信した分割発券情報(A603−1)を発券情報記憶部109に格納する(S607−1)。次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A604−1)を発券端末20に送信する。
次に、発券端末20のコマンド生成部202は、分割された発券情報の数(N個)に応じて、前述した分割発券情報A603−1の送信からレスポンスA604−1の受信までの処理をN回繰り返す。これによって、ICタグ10は、分割された発券情報のすべてを発券情報記憶部109に格納する。
最後に、発券端末20は、発券処理の結果を出力する(S608)。発券処理の結果は、例えば、発券端末20の入出力装置20Aに備えられた表示画面等(図示省略)に、テキストで表示されてもよいし、切符等を排出することによって利用者に通知してもよい。
次に、第1の実施形態の入場処理(図5に示したS502の処理)について説明する。
図7は、本発明の第1の実施形態の入場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A701)を生成する(S701)。次に、入出場端末30のICタグアクセス部303は、ICタグ10にタグアクセスコマンド(A701)を送信する。
ここで、タグアクセスコマンドとは、ICタグ10に対して、あらかじめ指定されたICタグ10の記憶領域(ここでは、データ格納情報記憶部108)に格納された情報(ここでは、データ格納情報)を端末側に送信するように要求する指示である。
次に、ICタグ10のデータ格納情報出力部103は、タグアクセスコマンド(A701)に基づいて、データ格納情報記憶部108からデータ格納情報(A702)を取得する(S702)。
次に、ICタグ10のデータ送受信部101は、取得したデータ格納情報(A702)を入出場端末30に送信する。
次に、入出場端末30の判定部301は、受信したデータ格納情報を分析する(S703)。具体的には、入出場端末30の判定部301は、受信したデータ格納情報を分析して、発券情報等は何個に分割されているのか、また、分割された発券情報等はICタグ10のどの記憶領域のどのアドレスに格納されているのかを確認する。
S703の処理によって、入出場端末30は、分割されたデータが格納されている記憶領域の情報を取得することができる。次に、入出場端末30のコマンド生成部302は、取得したデータ格納情報に基づいて、読込コマンド(A703−1)を生成する。
入出場端末30のICタグアクセス部303は、生成された読込コマンドA703−1をICタグ10に送信する。ここで、読込コマンドとは、端末が、ICタグ10の指定された記憶領域(ここでは、発券情報記憶部109の記憶領域)に格納されたデータ(ここでは、分割発券情報(A704−1))を取得するための指示である。
次に、ICタグ10の発券情報出力部104は、受信した読込コマンド(A703−1)に基づいて、発券情報記憶部109に格納された分割発券情報(A704−1)を取得する(S704−1)。次に、ICタグ10のデータ送受信部101は、取得した分割発券情報(A704−1)を入出場端末30に送信する。
次に、入出場端末30は、受信した分割発券情報を記憶装置30C等に記憶し、次の読込コマンドA703−2をICタグ10に送信する。以降の分割発券情報を取得する処理は、前述した処理と同じである。
入出場端末30のコマンド生成部302は、発券情報の分割数(N個)に応じて、前述した読込コマンド(A703−1)の送信から分割発券情報(A704−1)の受信までの処理を、N回繰り返すことによって、入場処理で必要となるすべての分割発券情報を取得することができる。
次に、入出場端末30は、取得したN個の分割発券情報を結合して、元の発券情報を再構成する(S705)。
なお、発券情報は、データ格納情報に基づいて、データの先頭から指定されたサイズに順々に分割されるため、分割されたデータブロック(分割発券情報)には、後述する図11のデータ格納情報の構成に示すとおり、分割された順序を示す番号が付与されている。したがって、付与された番号の順序に従って、分割発券情報を結合することによって、元の発券情報を再構成することができる。
また、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて分割発券情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S706)。具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する。
S706の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定し、処理を中止する(S707)。この場合には、入出場端末30は、例えば、発券情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるように指示してもよい。
一方、S706の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であると判定して、S708の処理へ進む。
次に、入出場端末30のコマンド生成部302は、データ格納情報(A702)に基づいて、ICタグ10に格納する入場情報を分割する(S708)。
ここで、入場情報とは、入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合には、入場時刻、入場駅等の情報である。
また、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて分割された入場情報を暗号化する。
次に、入出場端末30のICタグアクセス部303は、分割された入場情報(A705−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割入場情報(A705−1)を入場情報記憶部110に格納する(S709−1)。次に、ICタグ10のデータ送受信部101は、入出場端末30に対し、処理結果を示すレスポンス(A706−1)を送信する。
次に、入出場端末30のコマンド生成部302は、分割された入場情報の数(N個)に応じて、前述した分割入場情報(A705−1)の送信からレスポンス(A706−1)の受信までの処理をN回繰り返す。これによって、ICタグ10は、分割された入場情報のすべてを入場情報記憶部110に格納する。
最後に、入出場端末30は、入場処理の結果を出力する(S710)。なお、入場処理の結果は、例えば、入出場端末30がゲート(図示省略)を開くことによって表わされてもよいし、入出場端末30の出力装置30Aに備えられた表示画面等(図示省略)に、入場処理が正常に終了した旨を表示することによって表わされてもよい。
次に、第1の実施形態の中間入出場処理(図5に示したS504)について説明する。
図8は、本発明の第1の実施形態の中間入出場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A801)を生成する(S801)。次に、入出場端末30のICタグアクセス部303は、ICタグ10に対してタグアクセスコマンド(A801)を送信する。
ICタグ10のデータ送受信部101は、タグアクセスコマンド(A801)を受信する。次に、ICタグ10のデータ格納情報出力部103は、タグアクセスコマンド(A801)に基づいて、データ格納情報記憶部108からデータ格納情報(A802)を取得する(S802)。
次に、ICタグ10のデータ送受信部101は、データ格納情報(A802)を入出場端末30に送信する。
次に、入出場端末30の判定部301は、受信したデータ格納情報を分析する(S803)。
入出場端末30のコマンド生成部302は、S803の処理によって、データが格納されている領域の情報を取得した後、その情報を用いて読込コマンド(A803−1)を生成する。ICタグアクセス部303は、生成された読込コマンド(A803−1)をICタグ10に送信する。
次に、受信した読込コマンド(A803−1)に基づいて、ICタグ10の発券情報出力部104及び入場情報出力部105は、それぞれ、発券情報記憶部109及び入場情報記憶部110から、分割発券情報及び分割入場情報を取得する(S804−1)。
次に、ICタグ10のデータ送受信部101は、取得した分割発券情報及び分割入場情報(A804−1)を入出場端末30に送信する。
次に、入出場端末30のコマンド生成部302は、受信した分割発券情報及び分割入場情報を記憶装置30C等に記憶する。次に、入出場端末30のICタグアクセス部303は、読込コマンド(A803−2)をICタグ10に送信する。
入出場端末30のコマンド生成部302は、データの分割数(N個)に応じて、前述した読込コマンド(A803−1)の送信から分割発券情報及び分割入場情報(A804−1)の受信までの処理をN回繰り返すことによって、中間入出場処理で必要となる発券情報及び入場情報を取得することができる。
次に、入出場端末30のコマンド生成部302は、取得した分割発券情報及び分割入場情報を結合して、元の発券情報及び入場情報を再構成する(S805)。なお、入場情報の再構成の方法は、前述したS705の処理における発券情報の再構成の方法と同様である。
ここで、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割発券情報及び分割入場情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S806)。
具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅、経由駅等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する。
S806の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定して、処理を中止する(S807)。この場合には、入出場端末30は、例えば、発券情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるよう指示してもよい。
一方、S806の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であると判定して、S808の処理へ進む。
次に、入出場端末30の判定部301は、入場情報に記載された情報と、入出場端末の判定部301が備える情報とを比較し、入場情報が正当であるか否かを判定する(S808)。
S808の処理において、入場情報が正当でないと判定された場合(例えば、入場から中間入出場処理までの時間が所定の時間よりも長い場合、又は、入場フラグが設定されていない場合等)には、入出場端末30の判定部301は、処理を中止する(S809)。この場合には、入出場端末30は、例えば、入場情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるよう指示してもよい。
一方、S808の処理において、入場情報が正当であると判定された場合には、入出場端末30の判定部301は、S810の処理へ進む。
次に、入出場端末30のコマンド生成部302は、データ格納情報A802に基づいて、ICタグ10の中間入出場情報記憶部111に格納される中間入出場情報を分割する(S810)。
ここで、中間入出場情報とは、他社線への連絡通路に設置されている入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合には、中間入出場時刻、中間入出場駅等の情報である。
また、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割された中間入場情報を暗号化する。
次に、入出場端末30のICタグアクセス部303は、分割中間入出場情報(A805−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割中間入出場情報(A805−1)を中間入出場情報記憶部111に格納する(S811−1)。次に、ICタグ10のデータ送受信部101は、入出場端末30に処理結果を示すレスポンス(A806−1)を送信する。
ここで、入出場端末30は、分割された中間入出場情報の数(N個)に応じて、前述した分割中間入出場情報(A805−1)の送信からレスポンス(A806−1)の受信までの処理をN回繰り返す。最後に、入出場端末30は、中間入出場処理の結果を出力する(S812)。この場合には、入出場端末30は、例えば、入出場端末30のゲート(図示省略)を開くように指示してもよい。
次に、第1の実施形態の精算処理(図5に示したS506の処理)について説明する。
図9は、本発明の第1の実施形態の精算処理の例を示すフローチャートである。
まず、精算端末40のコマンド生成部402は、タグアクセスコマンド(A901)を生成する(S901)。次に、精算端末40のICタグアクセス部403は、ICタグ10にタグアクセスコマンド(A901)を送信する。
次に、ICタグ10のデータ格納情報出力部103は、受信したタグアクセスコマンド(A901)に基づいて、データ格納情報記憶部108からデータ格納情報(A902)を取得する(S902)。
次に、ICタグ10のデータ送受信部101は、データ格納情報(A902)を精算端末40に送信する。
次に、精算端末40の判定部401は、受信したデータ格納情報(A902)を分析する(S903)。S903の処理によって、精算端末40のコマンド生成部402は、データの格納領域の情報を取得し、その情報を用いて読込コマンド(A903−1)を生成する。精算端末40のICタグアクセス部403は、読込コマンド(A903−1)をICタグ10に送信する。
次に、ICタグ10の発券情報出力部104、入場情報出力部105及び中間入出場情報出力部106は、受信した読込コマンド(A903−1)に基づいて、それぞれ、発券情報記憶部109、入場情報記憶部110及び中間入出場情報記憶部111から、分割発券情報、分割入場情報及び分割中間入出場情報を取得する(S904−1)。
次に、ICタグのデータ送受信部101は、取得した分割発券情報、分割入場情報及び分割中間入出場情報(A904−1)を精算端末40に送信する。
次に、精算端末40のコマンド生成部402は、受信した分割発券情報、分割入場情報及び分割中間入出場情報を記憶装置等に記憶する。精算端末40のICタグアクセス部403は、次の読込コマンド(A903−2)をICタグ10に送信する。
精算端末40のコマンド生成部402は、データの分割数(N個)に応じて、前述した読込コマンド(A903−1)の送信から分割発券情報、分割入場情報及び分割中間入出場情報(A904−1)の受信までの処理をN回繰り返す。これによって、精算端末40は、精算処理で必要となる発券情報、入場情報、及び、中間入出場情報を取得することができる。
次に、精算端末40のコマンド生成部402は、取得した分割発券情報、分割入場情報及び分割中間入出場情報を結合して、元の発券情報、入場情報及び中間入出場情報を再構成する(S905)。なお、中間入出場情報の再構成の方法は、前述したS705の処理における発券情報の再構成の方法と同様である。
ここで、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、精算端末40のコマンド生成部402は、鍵保管部405に格納されている鍵データを用いて、分割発券情報、分割入場情報及び分割中間入出場情報を復号する。
次に、精算端末40の判定部401は、再構成された発券情報の正当性を検証する(S906)。具体的には、精算端末40の判定部401は、発券情報に記載された有効期間、発券駅、経由駅等の情報と、精算端末40の判定部401が備える情報とが一致するか否かを判定する(S906)。
S906の処理において、情報が一致しない場合には、精算端末40の判定部401は、発券情報が正当でないと判定して、処理を中止する(S907)。この場合には、精算端末40は、例えば、利用者に対して、精算処理することができない旨を通知してもよい。
一方、S906の処理において、情報が一致した場合には、精算端末40の判定部401は、発券情報が正当であると判定して、S908の処理へ進む。
次に、精算端末40の判定部401は、入場情報に記載された情報と、精算端末40の判定部401が備える情報とを比較し、再構成された入場情報が正当であるか否かを判定する(S908)。
S908の処理において、入場情報が正当でないと判定された場合(例えば、入場から精算処理までの時間が所定の時間よりも長い場合、又は、入場フラグが設定されていない場合等)には、精算端末40の判定部401は、処理を中止する(S909)。この場合には、精算端末40は、例えば、利用者に対して、精算処理することができない旨を通知してもよい。
一方、S908の処理において、入場情報が正当であると判定された場合には、精算端末40の判定部401は、S910の処理へ進む。
次に、精算端末40の判定部401は、中間入出場情報に記載された情報と、精算端末40の判定部401が備える情報とを比較し、再構成された中間入出場情報が正当であるか否かを判定する(S910)。
S910の処理において、中間入出場情報が正当でないと判定された場合(例えば、中間入出場から精算処理までの時間が所定の時間よりも長い場合等)には、精算端末40の判定部401は、処理を中止する(S911)。この場合には、精算端末40は、例えば、利用者に対して、精算処理することができない旨を通知してもよい。
一方、S910の処理において、中間入出場情報が正当である判定された場合には、精算端末40の判定部401は、S912の処理へ進む。
次に、精算端末40の判定部401は、入場駅から中間入出場駅を経由して精算端末40に設定されている駅までの運賃と、ICタグ10に格納されている発券情報に含まれる金額とを比較し、精算に必要となる金額を算出する(S912)。
次に、利用者は、算出された精算額を投入する(S913)。精算端末40のコマンド生成部402は、利用者によって投入された料金に基づき、ICタグ10から取得した発券情報に含まれる金額情報を更新する(S914)。
次に、精算端末40のコマンド生成部402は、ICタグ10から受信したデータ格納情報A902に基づいて、更新された発券情報を分割する(S915)。
ここで、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、精算端末40のコマンド生成部402は、鍵保管部405に格納されている鍵データを用いて、分割された発券情報を暗号化する。
次に、精算端末40のICタグアクセス部403は、分割された発券情報(A905−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割発券情報(A905−1)を発券情報記憶部109に格納する(S916−1)。次に、ICタグ10のデータ送受信部101は、精算端末40に対し、処理結果を示すレスポンス(A906−1)を送信する。
次に、精算端末40のコマンド生成部402は、分割された発券情報の数(N個)に応じて、前述した分割発券情報(A905−1)の送信からレスポンス(A906−1)の受信までの処理をN回繰り返す。
最後に、精算端末40は精算処理の結果を出力する(S917)。精算処理の結果は、利用者に切符を返却することによって表わされてもよいし、精算端末40の入出力装置20Aに備えられた表示装置等(図示省略)に精算処理が正常に終了した旨を表示することによって表わされてもよい。
なお、S912の処理において、発券情報に記載された金額に過不足がなく、精算処理が必要でない場合には、精算端末40は、精算処理の必要がない旨を利用者に通知し、以降の処理を省略してもよい。
次に、第1の実施形態の出場処理(図5に示したS507の処理)について説明する。
図10は、本発明の第1の実施形態の出場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A1001)を生成する(S1001)。次に、入出場端末30のICタグアクセス部303は、ICタグ10にタグアクセスコマンド(A1001)を送信する。
次に、ICタグ10のデータ格納情報出力部103は、受信したタグアクセスコマンド(A1001)に基づいて、データ格納情報記憶部108からデータ格納情報(A1002)を取得する(S1002)。次に、ICタグのデータ送受信部101は、データ格納情報(A1002)を入出場端末30に送信する。
次に、入出場端末30の判定部301は、受信したデータ格納情報(A1002)を分析する(S1003)。S1003の処理によって、入出場端末30のコマンド生成部302は、データの格納領域の情報を取得し、その情報を用いて読込コマンド(A1003−1)を生成する。入出場端末30のICタグアクセス部303は、読込コマンド(A1003−1)をICタグ10に送信する。
次に、ICタグ10の発券情報出力部104、入場情報出力部105及び中間入出場情報出力部106は、受信した読込コマンド(A1003−1)に基づいて、それぞれ、発券情報記憶部109、入場情報記憶部110及び中間入出場情報記憶部111から、分割発券情報、分割入場情報及び分割中間入出場情報を取得する(S1004−1)。
次に、ICタグのデータ送受信部101は、取得した分割発券情報、分割入場情報及び分割中間入出場情報(A1004−1)を入出場端末30に送信する。
次に、入出場端末30のコマンド生成部302は、受信した分割発券情報、分割入場情報及び分割中間入出場情報を記憶装置30C等に記憶する。ICタグ10のデータ送受信部101は、次の読込コマンド(A1003−2)をICタグ10に送信する。
入出場端末30のコマンド生成部302は、データの分割数(N個)に応じて、前述した読込コマンド(A1003−1)の送信から分割発券情報、分割入場情報及び分割中間入出場情報(A1004−1)の受信までの処理をN回繰り返す。これによって、入出場端末30は、出場処理で必要となる発券情報、入場情報及び中間入出場情報を取得することができる。
次に、入出場端末30のコマンド生成部302は、取得した分割発券情報、分割入場情報及び分割中間入出場情報を結合して、元の発券情報、入場情報及び中間入出場情報を再構成する(S1005)。
ここで、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割発券情報、分割入場情報及び分割中間入出場情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S1006)。
具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅、経由駅、金額等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する。
S1006の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定して、処理を中止する(S1007)。この場合には、入出場端末30は、例えば、発券情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるように指示してもよい。
一方、S1006の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であるとして、S1008の処理へ進む。
次に、入出場端末30の判定部301は、入場情報に記載された情報と、入出場端末30の判定部301が備える情報とを比較し、再構成された入場情報が正当であるか否かを判定する(S1008)。
S1008の処理において、入場情報が正当でないと判定された場合(例えば、入場から出場処理までの時間が所定の時間よりも長い場合、又は、入場フラグが設定されていない場合等)には、入出場端末30の判定部301は、処理を中止する(S1009)。この場合には、入出場端末30は、例えば、入場情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるように指示してもよい。
S1008の処理において、入場情報が正当であると判定された場合には、入出場端末30の判定部301は、S1010の処理へ進む。
次に、入出場端末30の判定部301は、中間入出場情報に記載された情報と、入出場端末30の判定部301が備える情報とを比較し、再構成された中間入出場情報が正当であるか否かを判定する(S1010)。
S1010の処理において、中間入出場情報が正当でないと判定された場合(例えば、中間入場から出場処理までの時間が所定の時間よりも長い場合、又は、発券情報に記載された経由駅と中間入出場駅とが一致しない場合等)には、入出場端末30の判定部301は、処理を中止する(S1011)。
この場合には、入出場端末30は、例えば、中間入出場情報が正当でない旨を表示してもよいし、入出場端末30のゲート(図示省略)を閉じるように指示してもよい。
S1010の処理において、中間入出場情報が正当であると判定された場合には、入出場端末30の判定部301は、S1012の処理へ進む。
次に、入出場端末30のコマンド生成部302は、データ格納情報(A1002)に基づいて、ICタグ10に格納する出場情報を分割する(S1012)。
ここで、出場情報とは、入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合には、出場時刻、出場駅等の情報である。
また、券データ格納オプションA1205(図12)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割された出場情報に暗号化等の処理を行う。
次に、入出場端末30のICタグアクセス部403は、分割出場情報(A1005−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割出場情報(A1005−1)を出場情報記憶部112に格納する(S1013−1)。次に、ICタグ10のデータ送受信部101は、入出場端末30に対し、処理結果を示すレスポンス(A1006−1)を送信する。
次に、入出場端末30のコマンド生成部302は、分割された出場情報の数(N個)に応じて、前述した分割出場情報(A1005−1)の送信からレスポンス(A1006−1)の受信までの処理をN回繰り返す。
最後に、入出場端末30は、出場処理の結果を出力する(S1014)。この場合には、入出場端末30は、例えば、入出場端末30のゲート(図示省略)を開くように指示してもよい。
なお、図6から図10に示した第1の実施形態における各処理において、発券端末20、入出場端末30及び精算端末40は、安全を確保するために、各端末に備えられた鍵保管部に格納された鍵データを用いて、各端末とICタグ10との間で、認証処理、署名検証処理、データ暗号処理等の処理を実行してもよい。
次に、第1の実施形態におけるデータ格納情報(図6に示したS604の処理によって生成される情報)の構成を、図11を用いて説明する。
図11は、本発明の第1の実施形態のデータ格納情報の構成の例を示す説明図である。
データ格納情報(A1101)は、発券データ分割数(A1102)、発券データ格納情報(A1103−11からA1103―N)、入場データ分割数(A1104)、入場データ格納情報(A1105−1からA1105−N)、中間入出場データ分割数(A1106)、中間入出場データ格納情報(A1107−1からA1107−N)、出場データ分割数(A1108)及び出場データ格納情報(A1009−1からA1009−N)を含む。
発券データ分割数(A1102)は、図6に示すS603の処理において、発券端末20が生成した乱数によって導出された発券情報の分割数である。
発券データ格納情報(A1103−11からA1103―N)は、その分割数に応じて分割された発券情報の格納情報である。
入場データ分割数(A1104)、中間入出場データ分割数(A1106)及び出場データ分割数(A1108)については、発券データ分割数(A1102)と同様の構成である。
入場データ格納情報(A1105−1からA1105−N)、中間入出場データ格納情報(A1107−1からA1107−N)及び出場データ格納情報(A1009−1からA1009−N)については、発券データ格納情報(A1103−11からA1103―N)と同様の構成である。
なお、分割されたデータ格納情報(例えば、発券データ1格納情報(A1103−1))の構成については、図12に示す券データ格納情報を用いて後述する。
また、第1の実施形態においては、発券端末20が、発券処理時(S501)に、乱数を生成し(S603)、発券情報、入場情報、中間入出場情報及び出場情報格納情報を分割するためのデータ格納情報を生成した(S604)が、タグアクセスの時間に制限がない場合には、入出場端末30は、入場処理(S502)、中間入出場処理(S504)及び出場処理(S507)の各処理を実行する毎に乱数を生成し、生成された乱数に基づいてデータ格納情報をその都度生成してもよい。
また、データ格納情報の要素の順序は、図11に示した順序に限定されるものではなく、データ格納情報が各要素を含む構成であれば、適宜変更されてよい。
次に図11に示した発券データ格納情報、入場データ格納情報、中間入出場データ格納情報及び出場データ格納情報のデータブロックを、図12を用いて説明する。
図12は、本発明の第1の実施形態の券データ格納情報の第1の構成の例を示す説明図である。
券データ格納情報(A1201)は、図11に示した各データ格納情報の一つのデータブロック(例えば、発券データ1格納情報(A1103−1)、入場データ1格納情報(A1105−1)等)の内部の構成を示す。
券データ格納情報(A1201)は、券データ格納エリア(A1202)、券データ開始アドレス(A1203)、券データメモリサイズ(A1204)及び券データ格納オプション(A1205)を含む。
券データ格納エリア(A1202)は、券データ(例えば、分割発券情報、分割入場情報等)が格納されているICタグ10に備えられた記憶部の格納エリアを示す。
券データ開始アドレス(A1203)は、券データが格納されている格納エリア内の記憶領域の先頭アドレスを示す。
券データメモリサイズ(A1204)は、格納されている券データのサイズを示す。券データ格納オプション(A1205)は、格納する券データに対して、各端末が暗号処理及び圧縮処理等を実行するか否かを示すフラグ等である。
なお、ICタグ10が備える記憶部(メモリ)の記憶領域がバンクによって分割されて管理されていない場合には、券データ格納エリア(A1202)は、券データ格納情報(A1201)に含まれなくてもよい。
また、券データ格納情報の要素の順序は、図12に示した順序に限定されるものではなく、券データ格納情報が各要素を含む構成であれば、適宜変更されてよい。
次に、図12に示した券データ格納情報とは異なる構成を備えた券データ格納情報を、図13を用いて説明する。
図13は、本発明の第1の実施形態の券データ格納情報の第2の構成の例を示す説明図である。
券データ格納情報(A1301)は、券データメモリ番号(A1302)及び券データ格納オプション(A1303)を含む。
券データメモリ番号(A1302)は、券データの格納場所を示し、図12に示した券データ格納エリア(A1202)と、券データ開始アドレス(A1203)と、券データメモリサイズ(A1204)との組み合わせに対して一意に割り振られた識別番号である。
券データ格納オプション(A1303)は、格納する券データに対して、各端末が暗号処理及び圧縮処理等を実行するか否かを示すフラグ等である。
なお、券データ格納情報の要素の順序は、図13に示した順序に限定されるものではなく、券データ格納情報が各要素を含む構成であれば、適宜変更されてよい。
以上説明したとおり、本発明の一実施形態によれば、ICタグ毎のデータフォーマットを管理することなく、ICタグの内部データを正しく取得することができる。また、ICタグ毎に動的にデータの格納領域を変更することによって、複数のICタグの内部データを用いて内部データの意味を類推されることを防止することができる。
<実施形態2>
以下に本発明の第2の実施形態を図14から図20を用いて説明する。
第2の実施形態のICタグのデータ格納システムの構成は、図1に示す第1の実施形態のICタグのデータ格納システムと同じである。ただし、第2の実施形態のICタグのデータ格納システムのICタグ10は、データ格納情報出力部103、及び、データ格納情報記憶部108を備えなくてよい。
また、第2の実施形態のICタグのデータ格納システムの処理の概要は、図5に示した第1の実施形態のICタグのデータ格納システムの処理の概要と同じである。
以下に、第2の実施形態における発券処理(S501)、入場処理(S502)、中間入出場処理(S504)、精算処理(S506)及び出場処理(S507)の詳細を説明する。
次に、第2の実施形態の発券処理(図5に示したS501の処理)について説明する。
図14は、本発明の第2の実施形態の発券処理の例を示すフローチャートである。
まず、利用者は、発券端末20に、料金を投入する(S1401)。次に、利用者は、ICタグ10に格納する発券情報を入力する(S1402)。ここで、発券情報とは、例えば、鉄道の切符の場合、有効期間、発券駅、経由駅、発券端末、券種、金額等の情報である。
また、利用者は、発券情報のすべてを外部から入力する必要はない。発券情報の一部(例えば、時刻情報、発券駅情報等)は、発券端末20が備える発券情報から取得され、入力されてもよい。
次に、発券端末20のコマンド生成部202は、乱数を生成する(S1403)。
ここで、発券端末20は、乱数の代わりに、発券端末20で発券毎にカウントされるシリアル番号を使ってもよいし、発券端末20に固有に設定されている定数(例えば、発券端末20の識別子等)を使ってもよい。
次に、発券端末20のコマンド生成部202は、生成された乱数からデータ格納情報を生成する(S1404)。
ここで、データ格納情報には、発券情報の分割数、発券情報の格納エリア、発券情報の格納アドレス、発券情報のサイズ、発券情報の格納オプション、入場情報の分割数、入場情報の格納エリア、入場情報の格納アドレス、入場情報のサイズ、入場情報の格納オプション、中間入出場情報の分割数、中間入出場情報の格納エリア、中間入出場情報の格納アドレス、中間入出場情報のサイズ、中間入出場情報の格納オプション、出場情報の分割数、出場情報の格納エリア、出場情報の格納アドレス、出場情報のサイズ、出場情報の格納オプション等の情報が含まれる。
また、生成された一つの乱数列の中には、同じ数字が二つ以上含まれることがある。同じ乱数は同じデータ格納領域を示すため、異なる二つ以上のデータに同じ乱数が対応付けられた場合は、異なるデータが同じデータ格納領域に格納される可能性がある。したがって、一度使用されたデータ格納領域は使用済であるとして、その領域を示す乱数は一度しか使用しないものとする。
次に、発券端末20のコマンド生成部202は、データ格納情報に基づいて、入力された発券情報を分割し、分割発券ブロックを生成する(S1405)。ここで、分割発券ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。また、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、発券端末20のコマンド生成部202は、鍵保管部204に格納されている鍵データを用いて、分割された発券情報を暗号化する。
次に、発券端末20のICタグアクセス部203は、ICタグ10に対し、分割発券情報ブロック(A1401−1)を送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割発券情報ブロック(A1401−1)を発券情報記憶部109に格納する(S1406−1)。
次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A1402−1)を発券端末20に送信する。
次に、発券端末20のコマンド生成部202は、分割された発券情報ブロックの数(N個)に応じて、前述した分割発券情報ブロック(A1401−1)の送信からレスポンス(A1402−1)の受信までの処理をN回繰り返す。これによって、ICタグ10は、分割されたすべての発券情報を発券情報記憶部109に格納する。
次に、発券端末20のコマンド生成部202は、S1404の処理において生成されたデータ格納情報に基づいて、入場情報を分割し、分割入場情報ブロック(A1403−1)を生成する(S1407)。
なお、この場合には、まだ入場処理が実行されていないため、入場情報には何もデータが記載されていない。したがって、入場情報には空データであることを示すデータ(例えば、すべてのビットが1であるデータ等)が記載される。
また、分割入場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
次に、発券端末20のICタグアクセス部203は、ICタグ10に対し、分割入場情報ブロック(A1403−1)を送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割入場情報ブロック(A1403−1)を入場情報記憶部110に格納する(S1408−1)。次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A14041)を発券端末20に送信する。
次に、発券端末20のコマンド生成部202は、分割された入場情報ブロックの数(N個)に応じて、前述した分割入場情報ブロック(A1403−1)の送信からレスポンス(A1404−1)の受信までの処理をN回繰り返す。
次に、発券端末20のコマンド生成部202は、S1404の処理において生成されたデータ格納情報に基づいて、中間入出場情報を分割し、分割中間入出場情報ブロック(A1405−1)を生成する(S1409)。
なお、この場合には、まだ中間入出場処理が実行されていないため、中間入出場情報には何もデータが記載されていない。したがって、中間入出場情報には空データであることを示すデータ(例えば、すべてのビットが1であるデータ等)が記載される。
また、分割中間入出場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
次に、発券端末20のICタグアクセス部203は、ICタグ10に対し、分割中間入出場情報ブロック(A1405−1)を送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割中間入出場情報ブロック(A1405−1)を中間入出場情報記憶部111に格納する(S1410−1)。
次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A1406−1)を発券端末20に送信する。
次に、発券端末20のコマンド生成部202は、分割された中間入出場情報ブロックの数(N個)に応じて、前述した分割中間入出場情報ブロック(A1405−1)の送信からレスポンス(A1406−1)の受信までの処理をN回繰り返す。
次に、発券端末20のコマンド生成部202は、S1404の処理において生成されたデータ格納情報に基づいて、出場情報を分割し、分割出場情報ブロック(A1407−1)を生成する(S1411)。
なお、この場合には、まだ出場処理が実行されていないため、出場情報には何も情報が記載されていない。したがって、出場情報には空データであることを示すデータ(例えば、すべてのビットが1であるデータ等)が記載される。
また、分割出場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
次に、発券端末20のICタグアクセス部203は、ICタグ10に対し、分割出場情報ブロック(A1407−1)を送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割出場情報ブロック(A1407−1)を出場情報記憶部112に格納する(S1412−1)。
次に、ICタグ10のデータ送受信部101は、処理結果を示すレスポンス(A1408−1)を発券端末20に送信する。
次に、発券端末20のコマンド生成部202は、分割された出場情報ブロックの数(N個)に応じて、前述した分割出場情報ブロック(A1407−1)の送信からレスポンス(A1408−1)の受信までの処理をN回繰り返す。
最後に、発券端末20は、発券端末20に接続された表示画面等(図示省略)に発券処理の結果を出力する(S1413)。利用者は、発券された切符等を受け取る。
以上説明したとおり、第2の実施形態の発券処理では、発券端末20は、乱数を用いて生成したデータ格納情報を、分割されたデータとともに、分割券情報ブロック(図19に示すA1901)としてICタグ10の各記憶部に格納する。なお、分割券情報ブロックについては、図19を用いて後述するが、分割券情報ブロックA1901のデータ番号A1902、データ種別A1903、データサイズA1904及びデータ格納オプションA1906にデータ格納情報が記載され、分割券情報A1905に分割されたデータが記載される。
したがって、第2の実施形態のICタグ10は、図1に示した第1の実施形態のICタグ10が備えるデータ格納情報出力部103及びデータ格納情報記憶部108を備えなくてもよい。
次に、第2の実施形態の入場処理(図5に示したS502の処理)について説明する。
図15は、本発明の第2の実施形態の入場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A1501)を生成する(S1501)。次に、入出場端末30のICタグアクセス部303は、ICタグ10に対してタグアクセスコマンド(A1501)を送信する。次に、ICタグ10のデータ送受信部101は、タグアクセスコマンド(A1501)を受信し、レスポンス(A1502)を入出場端末30に送信する。
なお、第2の実施形態の発券処理では、データ格納情報をICタグ10の所定の記憶領域(例えば、識別子を格納するID領域等)に格納しないため、ICタグ10は、タグアクセスコマンド(A1501)を受信しても、レスポンス(A1502)を送信するのみである。
次に、入出場端末30のコマンド生成部302は、読込コマンド(A1503)をICタグ10に送信する。
なお、この場合の読込コマンド(A1503)は、入出場端末30がICタグ10の所定の記憶領域に格納されたデータを読み出すコマンドではなく、ICタグ10に格納されたすべての分割券情報ブロックを取得するコマンドである。
次に、ICタグ10の発券情報出力部104、入場情報出力部105、中間入出場情報出力部106及び出場情報出力部107は、それぞれ、受信した読込コマンド(A1503)に基づいて、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112から券情報ブロックを取得する(S1502)。
ここで、券情報ブロックとは、分割券情報ブロックが複数組み合わさったデータブロックである。券情報ブロックの構成は、後述する図20を用いて説明する。
次に、ICタグ10のデータ送受信部101は、取得した券情報ブロック(A1504)を入出場端末30に送信する。
次に、入出場端末30のコマンド生成部302は、受信した券情報ブロック(A1504)を分析し、券情報ブロック(A1504)に含まれる複数の分割券情報ブロックを取得する(S1503)。ここで、入出場端末30のコマンド生成部302は、券情報ブロック(A1504)を先頭からスキャンする。次に、コマンド生成部302は、NULLデータブロックが終了する一つ後のアドレスを、分割券情報ブロックの開始アドレスと判定し、また、次のNULLデータブロックが開始する一つ前のアドレスを、分割券情報ブロックの終了アドレスと判定して、複数の分割券情報ブロックを取得する。
次に、コマンド生成部302は、分割券情報ブロックの分割数及び格納場所等の情報に基づいて、発券処理時に生成されたデータ格納情報を取得する(S1504)。
次に、入出場端末30のコマンド生成部302は、S1504の処理において取得したデータ格納情報に基づいて、S1503の処理において取得した分割券情報ブロックを結合し、元の発券情報を再構成する(S1505)。
ここで、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割券情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S1506)。
具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅、経由駅等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する(S1506)。
S1506の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定し、処理を中止する(S1507)。
一方、S1506の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であるとして、S1508の処理へ進む。
入出場端末30のコマンド生成部302は、S1504の処理において取得したデータ格納情報に基づいて、ICタグ10に格納する入場情報を分割し、分割入場情報ブロック(A1505−1)を生成する(S1508)。ここで、入場情報とは、入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合には、入場時刻、入場駅等の情報である。
また、分割入場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
なお、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割された入場情報を暗号化する。
次に、入出場端末30のICタグアクセス部303は、分割入場情報ブロック(A1505−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割入場情報ブロック(A1505−1)を入場情報記憶部110に格納する(S1509−1)。次に、ICタグ10のデータ送受信部101は、入出場端末30に対し、処理結果を示すレスポンス(A1506−1)を送信する。
次に、入出場端末30のコマンド生成部302は、分割された入場情報の数(N個)に応じて、前述した分割入場情報ブロック(A1505−1)の送信からレスポンス(A1506−1)の受信までの処理をN回繰り返す。
最後に、入出場端末30は、入場処理の結果を出力する(S1510)。
次に、第2の実施形態の中間入出場処理(図5に示したS504の処理)について説明する。
図16は、本発明の第2の実施形態の中間入出場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A1601)を生成する(S1601)。次に、入出場端末30のICタグアクセス部303は、ICタグ10に対してタグアクセスコマンド(A1601)を送信する。
次に、ICタグ10のデータ送受信部101は、タグアクセスコマンド(A1601)を受信し、レスポンス(A1602)を入出場端末30に送信する。
次に、入出場端末30のICタグアクセス部303は、読込コマンド(A1603)をICタグ10に送信する。
次に、ICタグ10の発券情報出力部104、入場情報出力部105、中間入出場情報出力部106及び出場情報出力部107は、それぞれ、受信した読込コマンド(A1603)に基づいて、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112から券情報ブロックを取得する(S1602)。
ここで、券情報ブロックとは、分割券情報ブロックが複数組み合わさったデータブロックである。券情報ブロックの構成は、後述する図20を用いて説明する。
次に、ICタグ10のデータ送受信部101は、取得した券情報ブロック(A1604)を入出場端末30に送信する。
次に、入出場端末30のコマンド生成部302は、受信した券情報ブロック(A1604)を分析し、券情報ブロック(A1604)に含まれる複数の分割券情報ブロックを取得する(S1603)。
ここで、入出場端末30のコマンド生成部302は、券情報ブロック(A1604)を先頭からスキャンする。次に、コマンド生成部302は、NULLデータブロックが終了する一つ後のアドレスを、分割券情報ブロックの開始アドレスと判定し、また、次のNULLデータブロックが開始する一つ前のアドレスを、分割券情報ブロックの終了アドレスと判定して、複数の分割券情報ブロックを取得する。
次に、コマンド生成部302は、分割券情報ブロックの分割数及び格納場所の情報に基づいて、発券処理時に生成されたデータ格納情報を取得する(S1604)。
次に、入出場端末30のコマンド生成部302は、S1604の処理において取得したデータ格納情報に基づいて、S1603で取得した分割券情報ブロックを結合し、元の発券情報及び入場情報を再構成する(S1605)。
ここで、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割券情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S1606)。
具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅、経由駅等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する(S1606)。
S1606の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定して、処理を中止する(S1607)。
一方、S1606の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であると判定して、S1608の処理へ進む。
次に、入出場端末30の判定部301は、入場情報に記載された情報と、入出場端末30の判定部301が備える情報とを比較し、再構成された入場情報が正当であるか否かを判定する(S1608)。
S1608の処理において、入場情報が正当でないと判定された場合(例えば、入場から中間入出場処理までの時間が所定の時間よりも長い場合、又は、入場フラグが設定されていない場合等)には、入出場端末30の判定部301は、処理を中止する(S1609)。
一方、S1008の処理において、入場情報が正当であると判定された場合には、入出場端末30の判定部301は、S1610の処理へ進む。
次に、入出場端末30のコマンド生成部302は、S1604の処理において取得したデータ格納情報に基づいて、ICタグ10に格納する中間入出場情報を分割し、分割中間入場情報ブロック(A1605−1)を生成する(S1610)。
ここで、中間入出場情報とは、他社線への連絡通路に設置されている入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合、中間入出場時刻、中間入出場駅等の情報である。
また、分割中間入出場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
また、データ格納オプションA1906に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割された入場情報を暗号化する。
次に、入出場端末30のICタグアクセス部303は、分割中間入出場情報ブロック(A1605−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割中間入出場情報ブロック(A1605−1)を中間入出場情報記憶部111に格納する(S1611−1)。
次に、ICタグ10のデータ送受信部101は、入出場端末30に対し、処理結果を示すレスポンス(A1606−1)を送信する。
次に、入出場端末30のコマンド生成部302は、分割された中間入出場情報の数(N個)に応じて、前述した分割中間入出場情報ブロック(A1605−1)の送信からレスポンス(A1606−1)の受信までの処理をN回繰り返す。
最後に、入出場端末30は、中間入出場処理の結果を出力する(S1612)。
次に、第2の実施形態の精算処理(図5に示したS506の処理)について説明する。
図17は、本発明の第2の実施形態の精算処理の例を示すフローチャートである。
まず、精算端末40のコマンド生成部402は、タグアクセスコマンド(A1701)を生成する(S1701)。次に、精算端末40のICタグアクセス部403は、ICタグ10に対してタグアクセスコマンド(A1701)を送信する。
次に、ICタグ10のデータ送受信部101は、タグアクセスコマンド(A1701)を受信し、レスポンス(A1702)を精算端末40に送信する。
次に、精算端末40のICタグアクセス部403は、読込コマンド(A1703)をICタグ10に送信する。
次に、ICタグ10の発券情報出力部104、入場情報出力部105、中間入出場情報出力部106及び出場情報出力部107は、それぞれ、受信した読込コマンド(A1703)に基づいて、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112から券情報ブロックを取得する(S1702)。
ここで、券情報ブロックとは、分割券情報ブロックが複数組み合わさったデータブロックである。券情報ブロックの構成は、後述する図20を用いて説明する。
ここで、券情報ブロックとは、分割券情報ブロックが複数組み合わさったデータブロックである。券情報ブロックの構成は、後述する図20を用いて説明する。
次に、ICタグ10のデータ送受信部101は、取得した券情報ブロック(A1704)を精算端末40に送信する。
次に、精算端末40のコマンド生成部402は、受信した券情報ブロック(A1704)を分析し、券情報ブロック(A1704)に含まれる複数の分割券情報ブロックを取得する(S1703)。
ここで、精算端末40のコマンド生成部402は、券情報ブロック(A1704)を先頭からスキャンする。次に、コマンド生成部402は、NULLデータブロックが終了する一つ後のアドレスを、分割券情報ブロックの開始アドレスと判定し、また、次のNULLデータブロックが開始する一つ前のアドレスを、分割券情報ブロックの終了アドレスと判定して、複数の分割券情報ブロックを取得する。
次に、コマンド生成部402は、分割券情報ブロックの分割数及び格納場所の情報に基づいて、発券処理時に生成したデータ格納情報を取得する(S1704)。
次に、精算端末40のコマンド生成部402は、S1704の処理において取得したデータ格納情報に基づいて、S1703で取得した分割券情報ブロックを結合し、元の発券情報、入場情報及び中間入出場情報を再構成する(S1705)。
ここで、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、精算端末40のコマンド生成部402は、鍵保管部405に格納されている鍵データを用いて、分割発券情報、分割入場情報及び分割中間入出場情報を復号する。
次に、精算端末40の判定部401は、再構成された発券情報の正当性を検証する(S1706)。
具体的には、精算端末40の判定部401は、発券情報に記載された有効期間、発券駅、経由駅等の情報と、精算端末40の判定部401が備える情報とが一致するか否かを判定する(S1706)。
S1706の処理において、情報が一致しない場合には、精算端末40の判定部401は、発券情報が正当でないと判定して、処理を中止する(S1707)。
一方、S1706の処理において、情報が一致した場合には、精算端末40の判定部401は、発券情報が正当であると判定して、S1708の処理へ進む。
次に、精算端末40の判定部301は、入場情報に記載された情報と、精算端末40の判定部301が備える情報とを比較し、再構成された入場情報が正当であるか否かを判定する(S1708)。
S1708の処理において、入場情報が正当でないと判定された場合(例えば、入場から精算処理までの時間が所定の時間よりも長い場合、又は、入場フラグが設定されていない場合等)には、精算端末40の判定部401は、処理を中止する(S1709)。
一方、S1708の処理において、入場情報が正当であると判定された場合には、精算端末40の判定部401は、S1710の処理へ進む。
次に、精算端末40の判定部401は、中間入出場情報に記載された情報と、精算端末40の判定部401が備える情報とを比較し、再構成された中間入出場情報が正当であるか否かを判定する(S1710)。
S1710の処理において、中間入出場情報が正当でないと判定された場合(例えば、中間入出場から精算処理までの時間が所定の時間よりも長い場合等)には、精算端末40の判定部401は、処理を中止する(S1711)。
一方、S1710の処理において、中間入出場情報が正当である判定された場合には、精算端末40の判定部401は、S1712の処理へ進む。
次に、精算端末40の判定部401は、入場駅から中間入出場駅を経由して精算端末40に設定されている駅までの運賃と、ICタグ10に格納されている発券情報に含まれる金額とを比較し、精算に必要となる金額を算出する(S1712)。
次に、利用者は、算出された精算額を投入する(S1713)。次に、精算端末40のコマンド生成部402は、利用者によって投入された料金に基づき、ICタグ10から取得した発券情報に含まれる金額情報を更新する(S1714)。
次に、精算端末40のコマンド生成部402は、S1704の処理において取得したデータ格納情報に基づいて、更新された発券情報を分割し、分割発券情報ブロック(A1705−1)を生成する(S1715)。
ここで、分割発券ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
また、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、精算端末40のコマンド生成部402は、鍵保管部405に格納されている鍵データを用いて、分割発券情報を暗号化する。
次に、精算端末40のICタグアクセス部403は、生成した分割発券情報ブロック(A1705−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割発券情報ブロック(A1705−1)を発券情報記憶部109に格納する(S1716−1)。
次に、ICタグ10のデータ送受信部101は、精算端末40に対し、処理結果を示すレスポンス(A1706−1)を送信する。
次に、精算端末40のコマンド生成部402は、分割された発券情報ブロックの数(N個)に応じて、前述した分割発券情報(A1705−1)の送信からレスポンス(A1706−1)の受信までの処理をN回繰り返す。
最後に、精算端末40は、精算処理の結果を出力する(S1717)。
次に、第2の実施形態の出場処理(図5に示したS507の処理)について説明する。
図18は、本発明の第2の実施形態の出場処理の例を示すフローチャートである。
まず、入出場端末30のコマンド生成部302は、タグアクセスコマンド(A1801)を生成する(S1801)。次に、入出場端末30のICタグアクセス部303は、ICタグ10に対して、タグアクセスコマンド(A1801)を送信する。
次に、ICタグ10のデータ送受信部101は、タグアクセスコマンド(A1801)を受信し、レスポンス(A1802)を入出場端末30に送信する。
次に、入出場端末30のICタグアクセス部303は、読込コマンド(A1803)をICタグ10に送信する。
次に、ICタグ10の発券情報出力部104、入場情報出力部105、中間入出場情報出力部106及び出場情報出力部107は、それぞれ、受信した読込コマンド(A1803)に基づいて、発券情報記憶部109、入場情報記憶部110、中間入出場情報記憶部111及び出場情報記憶部112から券情報ブロックを取得する(S1802)。
ここで、券情報ブロックとは、分割券情報ブロックが複数組み合わさったデータブロックである。券情報ブロックの構成は、後述する図20を用いて説明する。
次に、ICタグ10のデータ送受信部101は、取得した券情報ブロック(A1804)を入出場端末30に送信する。
次に、入出場端末30のコマンド生成部302は、受信した券情報ブロック(A1804)を分析し、券情報ブロック(A1804)に含まれる複数の分割券情報ブロックを取得する(S1803)。
ここで、入出場端末30のコマンド生成部302は、券情報ブロック(A1804)を先頭からスキャンする。次に、コマンド生成部302は、NULLデータブロックが終了する一つ後のアドレスを、分割券情報ブロックの開始アドレスと判定し、また、次のNULLデータブロックが開始する一つ前のアドレスを、分割券情報ブロックの終了アドレスと判定して、複数の分割券情報ブロックを取得する。
次に、コマンド生成部302は、分割券情報ブロックの分割数及び格納場所の情報に基づいて、発券処理時に生成したデータ格納情報を取得する(S1804)。
次に、入出場端末30のコマンド生成部302は、S1804の処理において取得したデータ格納情報に基づいて、S1803で取得した分割券情報ブロックを結合して、元の発券情報、入場情報及び中間入出場情報を再構成する(S1805)。
ここで、データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割発券情報、分割入場情報及び分割中間入出場情報を復号する。
次に、入出場端末30の判定部301は、再構成された発券情報の正当性を検証する(S1806)。
具体的には、入出場端末30の判定部301は、発券情報に記載された有効期間、発券駅、経由駅、金額等の情報と、入出場端末30の判定部301が備える情報とが一致するか否かを判定する(S1806)。
S1806の処理において、情報が一致しない場合には、入出場端末30の判定部301は、発券情報が正当でないと判定して、処理を中止する(S1807)。
一方、S1806の処理において、情報が一致した場合には、入出場端末30の判定部301は、発券情報が正当であるとして、S1808の処理へ進む。
次に、入出場端末30の判定部301は、入場情報に記載された情報と、入出場端末30の判定部301が備える情報とを比較し、再構成された入場情報が正当であるか否かを判定する(S1808)。
S1808の処理において、入場情報が正当でないと判定された場合(例えば、入場から出場処理までの時間が所定の間よりも長い場合、又は、入場フラグが設定されていない場合等)には、入出場端末30の判定部301は、処理を中止する(S1809)。
一方、S1808の処理において、入場情報が正当であると判定された場合には、入出場端末30の判定部301は、S1810の処理へ進む。
次に、入出場端末30の判定部301は、中間入出場情報に記載された情報と、入出場端末30の判定部301が備える情報とを比較し、再構成された中間入出場情報が正当であるか否かを判定する(S1810)。
S1810の処理において、中間入出場情報が正当でないと判定された場合(例えば、中間入出場から出場処理までの時間が所定の時間よりも長い場合、又は、発券情報に記載された経由駅と中間入出場駅とが一致しない場合等)には、入出場端末30の判定部301は、処理を中止する(S1811)。
一方、S1810の処理において、中間入出場情報が正当である判定された場合には、入出場端末30の判定部301は、S1812の処理へ進む。
次に、入出場端末30のコマンド生成部302は、S1804の処理において取得したデータ格納情報に基づいて、ICタグ10に格納する出場情報を分割し、分割出場情報ブロックを生成する(S1812)。
ここで、出場情報とは、入出場端末30があらかじめ備えている情報であり、例えば、鉄道の切符の場合、出場時刻、出場駅等の情報である。
また、分割出場情報ブロックとは、後述する図19に示すデータ構成を備えたデータブロックである。
データ格納オプションA1906(図19)に暗号化等の処理が指定されている場合には、入出場端末30のコマンド生成部302は、鍵保管部304に格納されている鍵データを用いて、分割された出場情報を暗号化する。
次に、入出場端末30のICタグアクセス部303は、分割出場情報ブロック(A1805−1)をICタグ10に送信する。
次に、ICタグ10のコマンド解析部102は、受信した分割出場情報ブロック(A1805−1)を出場情報記憶部112に格納する(S1813−1)。
次に、ICタグ10のデータ送受信部101は、入出場端末30に対し、処理結果を示すレスポンス(A1806−1)を送信する。
次に、入出場端末30のコマンド生成部302は、分割された入場情報の数(N個)に応じて、前述した分割入場情報ブロック(A1805−1)の送信からレスポンス(A1806−1)の受信までの処理をN回繰り返す。
最後に、入出場端末30は、出場処理の結果を出力する(S1814)。
なお、図14から図18に示した第2の実施形態における各処理において、発券端末20、入出場端末30及び精算端末40は、安全を確保するために、各端末に備えられた鍵保管部に格納された鍵データを用いて、各端末とICタグ10との間で、認証処理、署名検証処理、データ暗号処理等の処理を実行してもよい。
次に、第2の実施形態の分割券情報ブロック(S1405、S1407、S1409、S1411、S1508、S1610、S1715、S1812等の処理によって生成されるデータブロック)の構成を、図19を用いて説明する。
図19は、本発明の第2の実施形態の分割券情報ブロックの構成の例を示す説明図である。
分割券情報ブロック(A1901)は、データ番号(A1902)、データ種別(A1903)、データサイズ(A1904)、分割券情報(A1905)、及び、データ格納オプション(A1906)を含む。
データ番号(A1902)は、分割された券情報のシーケンス番号(すなわち、データを結合する順番)を示す。データ種別(A1903)は、発券情報、入場情報、中間入出場情報、出場情報等のデータの種類を示す。データサイズ(A1904)は、分割された券情報のサイズを示す。
分割券情報(A1905)は、分割された券情報そのものを示す。データ格納オプション(A1906)は、各端末が分割券情報に対して暗号処理及び圧縮処理等を実行するか否かを示すフラグ等である。
なお、分割券情報ブロック(A1901)の要素の順序は、図19に示した順序に限定されるものではなく、分割券情報ブロックが各要素を含む構成であれば、適宜変更されてよい。
次に、第2の実施形態の券情報ブロック(A1504、A1604、A1704、A1804等)の構成を説明する。
図20は、本発明の第2の実施形態の券情報ブロックの構成の例を示す説明図である。
券情報ブロック(A2001)は、分割券情報ブロックの区切りを示すNULLデータ(A2002)と、分割券情報ブロック(A2003)とが、交互に配置される。
NULLデータ(A2002)は、データブロックの区切りを示すものである。なお、データブロックの区切りを示す情報であるならば、NULLの代わりに、他の値が記載されていてもよい。
図14で示した発券処理時において、分割券情報ブロック(A2003)のそれぞれには、発券端末20が生成した分割発券情報ブロック(A1401)、分割入場情報ブロック(A1403)、分割中間入出場情報ブロック(A1405)及び分割出場情報ブロック(A1407)のいずれかが格納される。
分割券情報ブロック(A2003)には、前述したように、データ番号(A1902)、データ種別(A1903)、データサイズ(A1904)及びデータ格納オプション(A1906)が記載されている。したがって、各端末は、ICタグ10から取得したすべての分割券情報ブロックに含まれるこれらの情報によって、データ格納情報を取得することができる。
また、分割券情報ブロック(A2003)に記載されたデータ種別(A1903)毎に、分割券情報(A1905)をデータ番号(A1902)に従って結合することによって、発券情報、入場情報、中間入出場情報及び出場情報を再構成することができる。
以上説明したとおり、本発明の一実施形態によれば、ICタグのデータフォーマット情報を管理するサーバを必要とせず、また、ホスト側でICタグのデータフォーマットを管理することなく、ICタグの内部データを正しく取得することができる。また、ICタグ毎にデータが格納される領域と格納されるデータのサイズとを動的に変更することができるため、第三者が複数のICタグの内部データを用いて内部データの意味を類推することを防止することができる。
なお、本発明は、前述した実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
例えば、異なる端末がそれぞれ、入場処理、中間入出場処理、及び、出場処理を実行する場合、一つの端末が発券端末と入出場端末と精算端末との機能をすべて備える場合、及び、ICタグ10内の記憶領域が発券情報、入場情報、中間入出場情報、出場情報という単位で分割されておらず、すべての情報が一つの記憶領域に格納される場合等においても本発明を適用することができる。なお、前述した実施形態の場合においても、ICタグ10が実行する処理は変わらない。