(57)【要約】【課題】ファイルの先頭からの位置を示すアドレス情報を少なくともコマンドメッセージに含むコマンドを実行した後，コマンドに係る処理が終了した位置の次になるアドレス情報をターミナル装置に通知するＩＣカードを提供する。【解決手段】ＩＣカード１は，バイナリデータを格納するトランスペアレント型ファイル１１と，トランスペアレント型ファイル１１の先頭からの位置を示すアドレス情報（オフセット値）とデータサイズを含むバイナリコマンドのコマンドメッセージが引き渡されると，バイナリコマンドに係る処理を実行した後，バイナリコマンドに係る処理を実行した領域の次の位置を次のアドレス情報（次のオフセット値）として特定し，次のアドレス情報を含ませたコマンドのレスポンスメッセージを生成するバイナリコマンド実行部１０を備える。【選択図】図１
2019079349.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するファイルと，前記ファイルに格納されたデータを扱うコマンドに係る処理を実行するコマンド実行部を備え，
前記コマンド実行部は，前記ファイルの先頭からの位置を示すアドレス情報とデータサイズを含む前記コマンドのコマンドメッセージが引き渡されると，前記コマンドのコマンドメッセージに含まれる前記アドレス情報を開始位置とし，前記コマンドのコマンドメッセージに含まれる前記データサイズをサイズとする前記ファイル内の領域に対して前記コマンドに係る処理を実行した後，前記コマンドに係る処理を実行した領域の次の位置を次のアドレス情報として特定し，前記次のアドレス情報を含ませた前記コマンドのレスポンスメッセージを生成する，
ことを特徴とするＩＣカード。
【請求項２】
前記ファイルとして，バイナリデータを格納するトランスペアレント型ファイルを備え，前記コマンド実行部として，前記トランスペアレント型ファイルの先頭からの相対アドレスで表記するオフセット値を前記アドレス情報としてコマンドメッセージに含むバイナリコマンドに係る処理を実行する前記コマンド実行部を備え，前記バイナリコマンドに係る処理を実行する前記コマンド実行部は，コマンドメッセージに含まれていた前記オフセット値にコマンドメッセージに含まれていた前記データサイズを加算した位置に対応する相対アドレスを次のオフセット値とすることを特徴とする，請求項１に記載したＩＣカード。
【請求項３】
データを格納するファイルと，前記ファイルに格納されたデータを扱うコマンドに係る処理を実行するコマンド実行部を備え，前記コマンド実行部が，前記ファイルの先頭からの位置を示すアドレス情報とデータサイズを含む前記コマンドのコマンドメッセージが引き渡されると，前記コマンドのコマンドメッセージに含まれる前記アドレス情報を開始位置とし，前記コマンドのコマンドメッセージに含まれる前記データサイズをサイズとする前記ファイル内の領域に対して前記コマンドに係る処理を実行した後，前記コマンドに係る処理を実行した領域の次の位置を次のアドレス情報として特定し，前記次のアドレス情報を含ませた前記コマンドのレスポンスメッセージを生成するように構成されたＩＣカードを利用したトランザクションを実行するターミナル装置であって，
前記ターミナル装置は，前記アドレス情報を変えながら前記コマンドを連続して前記ＩＣカードに実行させるトランザクションを行う際，前記コマンドのコマンドメッセージを送信した後，前記コマンドのレスポンスメッセージを前記ＩＣカードから受信すると，前記コマンドのレスポンスメッセージに含まれる前記次のアドレス情報を利用して，次に前記ＩＣカードへ送信する前記コマンドのコマンドメッセージを生成する処理を行うトランザクション管理部を備えた，
ことを特徴とするターミナル装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，半導体集積回路（ＩＣチップ）を実装したカード媒体であるＩＣカードと，ＩＣカードと通信するターミナル装置に関する発明である。
【背景技術】
【０００２】
半導体集積回路を実装したカード媒体であるＩＣカードは，データを格納するファイルをメモリに記憶し，ファイルに格納したデータを扱うコマンドを備える。例えば，バイナリデータを格納するトランスペアレント（透過）型ファイルに対応したＩＣカードは，トランスペアレント型ファイルに格納したバイナリデータを扱うコマンドであるバイナリコマンドを備える。なお，ＩＣカードの分野では，データを格納するファイルのことをＥＦ(Elementary File)やＷＥＦ(Work Elementary File)と呼ぶこともある。
【０００３】
JIS X 6319-3等の規格に準拠したＩＣカードは，バイナリデータの書込みを行う書込み・更新系のバイナリコマンドとして，トランスペアレント型ファイルに書き込まれているバイナリデータの初期値を書き換えるコマンドであるライトバイナリコマンドと，ライトバイナリコマンドによりトランスペアレント型ファイルに書き込まれたバイナリデータを更新するアップデートバイナリコマンドを実装する。また，JIS X 6319-3等の規格に準拠したＩＣカードは，バイナリデータの読出しを行う読み出し系のバイナリコマンドとして，トランスペアレント型ファイルからバイナリデータを読み出すリードバイナリコマンドを実装する。
【０００４】
JIS X 6319-3など多くの規格で規定されているコマンドメッセージは，コマンドのクラスを示すＣＬＡ，コマンドの識別に用いるＩＮＳ，コマンドのパラメータとなるＰ１−Ｐ２を含み，バイナリコマンドの場合，Ｐ１−Ｐ２には，トランスペアレント型ファイルの先頭からの位置を示すアドレス情報となるオフセット値が少なくとも符号化される。バイナリコマンドに係る処理には，トランスペアレント型ファイルの先頭からの位置を示すアドレス情報の他に，バイナリコマンドに係る処理を行うバイナリデータのデータサイズが必要になり，書込み・更新系のバイナリコマンドのコマンドメッセージは，トランスペアレント型ファイルに書込むバイナリデータのデータサイズを示すＬｃを含む。また，読出し系のバイナリコマンドのコマンドメッセージは，トランスペアレント型ファイルから読み出すバイナリデータのデータサイズを示すＬｅを含む。
【０００５】
なお，ＩＣカードのメモリに記憶するファイルの型としては，トランスペアレント型ファイルの他に，レコード構造のデータを格納するレコード型ファイルがあり，レコード型ファイルの場合，レコードコマンドのコマンドメッセージに含ませるアドレス情報はレコード番号になる。
【０００６】
ファイルに格納されているデータ全てを読み出す場合など，所定のコマンドを連続してＩＣカードに実行させるトランザクションを行う際，コマンドメッセージをＩＣカードへ送信する装置となるターミナル装置は，コマンドの送信回数に応じて，ＩＣカードに送信するコマンドメッセージに含ませるアドレス情報を変更することが必要になる。
【０００７】
コマンドを連続してＩＣカードに実行させるトランザクションを行う際，コマンドメッセージに含ませるアドレス情報は，ターミナル装置側が計算する値になるが，コマンドに係る処理を実行する従来のＩＣカードは，コマンドに係る処理が終了した位置の次になるアドレス情報をターミナル装置側に通知できるように構成されていなかった。コマンドに係る処理が終了した位置の次になるアドレス情報をＩＣカード側からターミナル装置側に通知できれば，コマンドメッセージに含ませるアドレス情報をターミナル装置が計算する手間を省くことができるし，ターミナル装置が計算したアドレス情報の正当性をターミナル装置側で検証するようにもできる。
【０００８】
コマンドのコマンドメッセージに含ませるアドレス情報の管理に係る発明として，例えば，特許文献１において，トランスペアレント型ファイルのファイルＩＤとデータのオフセット値を含むプロファイル情報をＩＣカードに記憶させておくことにより，データのオフセット値をターミナル装置に予め登録しておかなくとも，トランスペアレント型ファイル内のデータにターミナル装置がアクセスできるようにした発明が開示されている。また，特許文献２では，オフセット値ではなくタグを用いて，トランスペアレント型ファイル内のデータにターミナル装置がアクセスできるようにした発明が開示されている。
【０００９】
しかしながら，コマンドのコマンドメッセージに含ませるアドレス情報の管理に係る従来の発明は，コマンドに係る処理が終了した位置の次になるアドレス情報をターミナル装置側にＩＣカードが通知することに着目した発明ではない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１７−５９０２２号公報
【特許文献２】特開平９−２３１１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
そこで，本発明では，ファイルの先頭からの位置を示すアドレス情報を少なくともコマンドメッセージに含むコマンドを実行した後，コマンドに係る処理が終了した位置の次になるアドレス情報をターミナル装置に通知するＩＣカードを提供する。加えて，本発明では，ＩＣカードから通知されたアドレス情報を利用するターミナル装置をも提供する。
【課題を解決するための手段】
【００１２】
上述した課題を解決する第１発明は，データを格納するファイルと，前記ファイルに格納されたデータを扱うコマンドに係る処理を実行するコマンド実行部を備え，前記コマンド実行部は，前記ファイルの先頭からの位置を示すアドレス情報とデータサイズを含む前記コマンドのコマンドメッセージが引き渡されると，前記コマンドのコマンドメッセージに含まれる前記アドレス情報を開始位置とし，前記コマンドのコマンドメッセージに含まれる前記データサイズをサイズとする前記ファイル内の領域に対して前記コマンドに係る処理を実行した後，前記コマンドに係る処理を実行した領域の次の位置を次のアドレス情報として特定し，前記次のアドレス情報を含ませた前記コマンドのレスポンスメッセージを生成することを特徴とするＩＣカードである。
【００１３】
更に，第２発明は，第１発明に係る前記コマンドをバイナリコマンドにした発明で，第２発明に係るＩＣカードは，前記ファイルとして，バイナリデータを格納するトランスペアレント型ファイルを備え，前記コマンド実行部として，前記トランスペアレント型ファイルの先頭からの相対アドレスで表記するオフセット値を前記アドレス情報としてコマンドメッセージに含むバイナリコマンドに係る処理を実行する前記コマンド実行部を備え，前記バイナリコマンドに係る処理を実行する前記コマンド実行部は，コマンドメッセージに含まれていた前記オフセット値にコマンドメッセージに含まれていた前記データサイズを加算した位置に対応する相対アドレスを次のオフセット値とすることを特徴とする。
【００１４】
更に，第３発明は，第１発明に係るＩＣカード，すなわち，データを格納するファイルと，前記ファイルに格納されたデータを扱うコマンドに係る処理を実行するコマンド実行部を備え，前記コマンド実行部が，前記ファイルの先頭からの位置を示すアドレス情報とデータサイズを含む前記コマンドのコマンドメッセージが引き渡されると，前記コマンドのコマンドメッセージに含まれる前記アドレス情報を開始位置とし，前記コマンドのコマンドメッセージに含まれる前記データサイズをサイズとする前記ファイル内の領域に対して前記コマンドに係る処理を実行した後，前記コマンドに係る処理を実行した領域の次の位置を次のアドレス情報として特定し，前記次のアドレス情報を含ませた前記コマンドのレスポンスメッセージを生成するように構成されたＩＣカードを利用したトランザクションを実行するターミナル装置に係る発明で，第３発明に係るターミナル装置は，前記アドレス情報を変えながら前記コマンドを連続して前記ＩＣカードに実行させるトランザクションを行う際，前記コマンドのコマンドメッセージを送信した後，前記コマンドのレスポンスメッセージを前記ＩＣカードから受信すると，前記コマンドのレスポンスメッセージに含まれる前記次のアドレス情報を利用して，次に前記ＩＣカードへ送信する前記コマンドのコマンドメッセージを生成する処理を行うトランザクション管理部を備えることを特徴とする。
【発明の効果】
【００１５】
本発明に係るＩＣカードは，バイナリコマンドに係る処理が終了した位置の次になるオフセット値を，ＩＣカードを利用したトランザクションを実行するターミナル装置側に通知できるように， バイナリコマンドのレスポンスメッセージに次のオフセット値を含ませるように構成されている。また，本発明に係るターミナル装置は，本実施形態に係るＩＣカードから通知された次のオフセット値を利用して，次にＩＣカードへ送信するバイナリコマンドのコマンドメッセージを生成するように構成されている。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るＩＣカードの構成を説明する図。
【図２】バイナリコマンドのコマンドメッセージを説明する図。
【図３】ＩＣカードが備えるバイナリコマンド実行部の動作を説明する図。
【図４】バイナリコマンド実行部の動作説明を補足する図。
【図５】実施形態に係るターミナル装置の構成を説明する図。
【図６】ターミナル装置のトランザクション管理部の動作を説明する図。
【発明を実施するための形態】
【００１７】
ここから，本発明の好適な実施形態について説明する。なお，以下の記載は本発明の技術的範囲を束縛するものでなく，発明の理解を助けるために記述するものである。
【００１８】
図１は，本実施形態に係るＩＣカード１の構成を説明する図である。本実施形態に係るＩＣカード１は，Ｉ／Ｏインターフェース１２４，プロセッサ１２０，ＲＡＭ１２１（Random Access Memory），ＲＯＭ１２２（Read-Only Memory），ＮＶＭ１２３を実装したＩＣチップ１２を備え，ＮＶＭ１２３には，データを格納するファイルとして，バイナリデータ（バイトの文字列）を格納するトランスペアレント型ファイル１１が記憶されている。また，ＩＣカード１には，ファイルを利用するコマンドとして，バイナリデータを扱うコマンドであるバイナリコマンドに係る処理を実行するコマンド実行部であるバイナリコマンド実行部１０を備える。なお，コマンド実行部は，ＩＣカード１が対応しているコマンドごとにＩＣカード１に備えられる機能である。
【００１９】
ＩＣカード１のＩＣチップ１２に含まれるＩ／Ｏインターフェース１２４は，外部の装置と通信するための回路で，この回路を作動させるソフトウェアも含まれる。例えば，伝送路に有線を用いる場合，ＩＣカード１は，Ｉ／Ｏインターフェース１２４としてコンタクトインターフェースを備え，伝送路に無線を用いる場合，ＩＣカード１は，Ｉ／Ｏインターフェース１２４としてコンタクトレスインターフェースを備えることになる。
【００２０】
ＩＣカード１のＩＣチップ１２に含まれるプロセッサ１２０は，ＩＣカード１の動作を制御するデバイスである。ＩＣカード１のＩＣチップ１２に含まれるＲＡＭ１２１は，プロセッサ１２０の主記憶装置となるメモリである。ＩＣカード１のＩＣチップ１２に含まれるＲＯＭ１２２は，電気的に書き換えできない補助記憶装置となるメモリで，ＩＣカード１のＩＣチップ１２に含まれるＮＶＭ１２３は，電気的に書き換え可能な補助記憶装置となるメモリで，プロセッサ１２０を動作させるコンピュータプログラムは，ＲＯＭ１２２やＮＶＭ１２３に格納される。
【００２１】
バイナリコマンドに係る処理を実行するバイナリコマンド実行部１０は，バイナリコマンドに係る処理をプロセッサ１２０に実行させるコンピュータプログラムにより実現される機能である。バイナリコマンドには，トランスペアレント型ファイル１１にバイナリデータを書き込む処理を行う書込み・更新系のコマンドと，トランスペアレント型ファイル１１からバイナリデータを読み出す処理を行う読み出し系のコマンドがあるが，バイナリコマンドは，書込み・更新系のコマンドでも読み出し系のコマンドのいずれでもよい。
【００２２】
図２は，バイナリコマンドのコマンドメッセージを説明する図である。図２（ａ）は，書込み・更新系のコマンドであるバイナリコマンドのコマンドメッセージを説明する図，図２（ｂ）は，書込み・更新系のコマンドであるバイナリコマンドのレスポンスメッセージを説明する図である。また，図２（ｃ）は，読み出し系のコマンドであるバイナリコマンドのコマンドメッセージを説明する図，図２（ｄ）は，読み出し系のコマンドであるバイナリコマンドのレスポンスメッセージを説明する図である。
【００２３】
図２（ａ）で図示したコマンドメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠する。図２（ａ）で図示したコマンドメッセージは，コマンドのクラスを示す１バイトのＣＬＡ，コマンドの識別に用いる１バイトのＩＮＳ，コマンドのパラメータとなる２バイトのＰ１−Ｐ２，トランスペアレント型ファイル１１に書込むバイナリデータのデータサイズを示す１または３バイトのＬｃ，トランスペアレント型ファイル１１に書込むバイナリデータの本体を含む。なお，２バイトのＰ１−Ｐ２には，バイナリコマンドの対象となるトランスペアレント型ファイル１１と，トランスペアレント型ファイル１１の先頭からの位置を示すアドレス情報となるオフセット値が符号化され，オフセット値は，トランスペアレント型ファイル１１の先頭を０ｘ００００（「０ｘ」は１６進表記を意味する）とする２バイトの相対アドレスで表記される。
【００２４】
図２（ａ）で図示したコマンドメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠しているが，図２（ｂ）で図示したレスポンスメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠しておらず，書込み・更新系のバイナリコマンドの処理結果を示すＳＷ（Status Word）に加え，次のオフセット値を含む。次のオフセット値とは，バイナリコマンドに係る処理を実行した領域の次の位置を示すオフセット値で，書込み・更新系のコマンドであるバイナリコマンドの場合，次のオフセット値は，トランスペアレント型ファイル１１にバイナリデータを書込んだ領域の次の位置に対応する相対アドレスになる。
【００２５】
図２（ｃ）で図示したコマンドメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠し，コマンドのクラスを示す１バイトのＣＬＡ，コマンドの識別に用いる１バイトのＩＮＳ，コマンドのパラメータとなる２バイトのＰ１−Ｐ２，トランスペアレント型ファイル１１から読出すバイナリデータのデータサイズを少なくとも示す１バイトまたは３バイトのＬｅを含む。なお，２バイトのＰ１−Ｐ２には，トランスペアレント型ファイル１１の先頭からの位置を示すアドレス情報となるオフセット値が符号化される。
【００２６】
図２（ｃ）で図示したコマンドメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠しているが，図２（ｄ）で図示したレスポンスメッセージは，JIS X 6319-3などの規格で規定されている内容に準拠しておらず，読み出し系のバイナリコマンドの処理結果を示すＳＷ（Status Word）に加え，次のオフセット値を含む。読み出し系のバイナリコマンドの場合，次のオフセット値は，トランスペアレント型ファイル１１からバイナリデータを読み出した領域の次の位置に対応する相対アドレスになる。
【００２７】
図３は，ＩＣカード１が備えるバイナリコマンド実行部１０の動作を説明する図である。
【００２８】
ＩＣカード１が，Ｉ／Ｏインターフェース１２４を利用して，バイナリコマンドのコマンドメッセージを外部から受信すると，ＩＣカード１は，ＩＣカード１が備えるバイナリコマンド実行部１０に，バイナリコマンドのコマンドメッセージを引き渡し，バイナリコマンド実行部１０が起動する（Ｓ１）。ＩＣカード１は，外部から受信したコマンドメッセージをＲＡＭ１２１に格納した後，コマンドメッセージに含まれるＣＬＡとＩＮＳを利用して，コマンドメッセージに対応するコマンドを特定し，コマンドメッセージに対応するコマンドがバイナリコマンドの場合，ＩＣカード１はバイナリコマンド実行部１０を起動させる。なお，コマンドメッセージに対応するコマンドがバイナリコマンド以外の場合，ＩＣカード１は，コマンドメッセージに対応するコマンドに係る処理に対応するコマンド実行部を起動させる。
【００２９】
バイナリコマンドに係る処理を実行する際，ＩＣカード１のバイナリコマンド実行部１０は，バイナリコマンドに係る処理の対象となるトランスペアレント型ファイル１１と，バイナリコマンドに係る処理を開始するトランスペアレント型ファイル１１内の位置を特定する（Ｓ２）。バイナリコマンドに係る処理を開始するトランスペアレント型ファイル１１内の位置は，バイナリコマンドのコマンドメッセージに含まれるＰ１−Ｐ２に符号化されたオフセット値に対応する位置になる。また，バイナリコマンドの対象となるトランスペアレント型ファイル１１は，この時点でカレントになっているトランスペアレント型ファイル１１になり，カレントのトランスペアレント型ファイル１１は，Ｐ１−Ｐ２で示されるか，或いは， バイナリコマンドのコマンドメッセージを受信する前に選択されたトランスペアレント型ファイル１１になる。
【００３０】
ＩＣカード１のバイナリコマンド実行部１０は，バイナリコマンドのコマンドメッセージに含まれるオフセット値で示されるトランスペアレント型ファイル１１内の位置を開始位置とし，バイナリコマンドのコマンドメッセージに含まれるデータサイズをサイズとするトランスペアレント型ファイル１１内の領域に対して，バイナリコマンドに係る処理を実行する（Ｓ３）。
【００３１】
ＩＣカード１のバイナリコマンド実行部１０は，Ｐ１−Ｐ２に含まれるオフセット値で示されるトランスペアレント型ファイル１１内の位置から開始したバイナリコマンドに係る処理が終了すると，バイナリコマンドに係る処理が正常終了したか否かを判定する（Ｓ４）。
【００３２】
ＩＣカード１のバイナリコマンド実行部１０は，バイナリコマンドが異常終了した場合，バイナリコマンドのコマンドメッセージに含まれていたオフセット値を次のオフセット値として（Ｓ９），図３のＳ７に進む。なお，バイナリコマンドが異常終了した場合，バイナリコマンドのコマンドメッセージに含まれていたオフセット値を次のオフセット値とするのは，バイナリコマンドが異常終了した場合は，図３のＳ１でＩＣカード１が受信したバイナリコマンドのコマンドメッセージに対応する処理が完了しておらず，オフセット値は変更にならないからである。
【００３３】
また，ＩＣカード１のバイナリコマンド実行部１０は，バイナリコマンドに係る処理が正常終了した場合，バイナリコマンドに係る処理を実行した領域の次の位置がトランスペアレント型ファイル１１の領域外になるか否かを判定する（Ｓ５）。バイナリコマンドに係る処理を実行した領域の次の位置がトランスペアレント型ファイル１１の領域外になる場合，ＩＣカード１のバイナリコマンド実行部１０は，次のオフセット値をトランスペアレント型ファイル１１の領域外になることを示す値（例えば，０ｘＦＦＦＦ）にして（Ｓ１０），図３のＳ７に進む。バイナリコマンドに係る処理を実行した領域の次の位置がトランスペアレント型ファイル１１の領域外にならない場合，ＩＣカード１のバイナリコマンド実行部１０は，次のオフセット値を，バイナリコマンドに係る処理を実行した領域の次の位置に対応する相対アドレスにして（Ｓ６），図３のＳ７に進む。
【００３４】
本実施形態では，オフセット値を相対アドレスにより表記しているので，コマンドメッセージのＰ１−Ｐ２に含まれるオフセット値に，バイナリコマンドで扱うバイナリデータのデータサイズ(例えば，Ｌｃの値)を加算することで，次のオフセット値を求めることができる。コマンドメッセージのＰ１−Ｐ２に含まれるオフセット値に，バイナリコマンドで扱うバイナリデータのデータサイズを加算した値が，バイナリコマンドの対象となるトランスペアレント型ファイル１１のサイズを超えていれば，バイナリコマンドに係る処理を実行した領域の次の位置がトランスペアレント型ファイル１１の領域外になると判断できる。
【００３５】
次に，ＩＣカード１のバイナリコマンド実行部１０は，次のオフセット値を含むバイナリコマンドのレスポンスメッセージをＲＡＭ１２１などに生成し（Ｓ７），ＩＣカード１は，Ｉ／Ｏインターフェース１２４を利用して，次のオフセット値を含ませたバイナリコマンドのレスポンスメッセージを外部へ送信して（Ｓ８），この手順を終了する。
【００３６】
図４は，バイナリコマンド実行部の動作説明を補足する図で，図４（ａ）は，１６バイトのトランスペアレント型ファイル１１の初期状態を説明する図，図４（ｂ）は，０ｘ００００から８バイトのバイナリデータを書き込んだ後のトランスペアレント型ファイル１１を説明する図，図４（ｃ）は，０ｘ０００８から８バイトのバイナリデータを書き込んだ後のトランスペアレント型ファイル１１を説明する図である。
【００３７】
図４（ａ）で図示したように，ＮＶＭに創生された直後の状態である初期状態におけるトランスペアレント型ファイル１１の領域全てには，バイナリデータの初期値となる０ｘＦＦが書き込まれている。
【００３８】
トランスペアレント型ファイル１１におけるバイナリデータの初期値を更新するバイナリコマンドは，書込み・更新系のバイナリコマンドの一つであるライトバイナリコマンドになる。ライトバイナリコマンドを用い，図４（ａ）のトランスペアレント型ファイル１１の０ｘ００００から０ｘ０００７までの領域に８バイトのバイナリデータ（０ｘＦ０Ｆ１Ｆ２Ｆ３Ｆ４Ｆ５Ｆ６Ｆ７）を書込むことで，トランスペアレント型ファイル１１の状態は図４（ｂ）の状態になる。
【００３９】
トランスペアレント型ファイル１１の０ｘ００００から０ｘ０００７までの領域に８バイトのバイナリデータ（０ｘＦ０Ｆ１Ｆ２Ｆ３Ｆ４Ｆ５Ｆ６Ｆ７）を書込む最初のライトバイナリコマンドのコマンドメッセージにおいて，Ｐ１−Ｐ２に含まれるオフセット値は０ｘ００００で，書込みデータのデータサイズを示すＬｃは，０ｘ０８または０ｘ０００００８になる。最初のライトバイナリコマンドが正常終了した場合，最初のライトバイナリコマンドのレスポンスメッセージは，次のオフセット値となる０ｘ０００８と正常終了を示すＳＷになる。また，本実施形態では，最初のライトバイナリコマンドが異常終了した場合，最初のライトバイナリコマンドのレスポンスメッセージは，次のオフセット値となる０ｘ００００と異常終了を示すＳＷになる。なお，異常終了した場合の次のオフセット値である０ｘ００００は，最初のライトバイナリコマンドのコマンドメッセージに含まれるオフセット値である。
【００４０】
トランスペアレント型ファイル１１の０ｘ０００８から０ｘ０００Ｆまでの領域に８バイトのバイナリデータ（０ｘＦ８Ｆ９ＦＡＦＢＦＣＦＤＦＥＦＦ）を書込む２回目のライトバイナリコマンドのコマンドメッセージにより，８バイトのバイナリデータが図４（ｂ）のトランスペアレント型ファイル１１の０ｘ０００８から０ｘ０００Ｆまでの領域に書込まれることで，トランスペアレント型ファイル１１の状態は図４（ｃ）の状態になる。
【００４１】
２回目のライトバイナリコマンドのコマンドメッセージにおいて，Ｐ１−Ｐ２に含まれるオフセット値は０ｘ０００８で，書込むデータのデータサイズを示すＬｃは，０ｘ０８または０ｘ０００００８になる。２回目のライトバイナリコマンドが正常終了した場合，バイナリコマンドに係る処理を実行した領域の次の位置がトランスペアレント型ファイル１１の領域外になるため，２回目のライトバイナリコマンドのレスポンスメッセージは，トランスペアレント型ファイル１１の領域外になることを示す次のオフセット値と正常終了を示すＳＷになる。なお，本実施形態では，２回目のライトバイナリコマンドが異常終了した場合，２回目のライトバイナリコマンドのレスポンスメッセージは，次のオフセット値となる０ｘ０００８と異常終了を示すＳＷになる。なお，異常終了した場合の次のオフセット値である０ｘ０００８は，２回目のライトバイナリコマンドのコマンドメッセージに含まれるオフセット値である。
【００４２】
なお，書込み・更新系のバイナリコマンドには，ライトバイナリコマンドの他にアップデートバイナリコマンドもあるが，アップデートバイナリコマンドについては，バイナリデータを書込む前の状態のバイナリデータの値が初期値でないことを除き，上述したライトバイナリコマンドと同じであるため，ここでは説明を省く。
【００４３】
トランスペアレント型ファイル１１からバイナリデータを読出すバイナリコマンドはリードバイナリコマンドになる。トランスペアレント型ファイル１１の先頭である０ｘ００００から８バイトのバイナリデータを読出す最初のリードバイナリコマンドを用いて，図４（ｃ）の状態のトランスペアレント型ファイル１１の先頭である０ｘ００００から８バイトのバイナリデータを読出すとき，最初のリードバイナリコマンドのコマンドメッセージにおいて，Ｐ１−Ｐ２に含まれるオフセット値は０ｘ００００で，読み出しデータのデータサイズを示すＬｅは，０ｘ０８または０ｘ０００００８になる。
【００４４】
最初のリードバイナリコマンドが正常終了した場合，最初のリードバイナリコマンドのレスポンスメッセージは，トランスペアレント型ファイル１１の先頭から８バイト目までに格納されているバイナリデータ（０ｘＦ０Ｆ１Ｆ２Ｆ３Ｆ４Ｆ５Ｆ６Ｆ７）と，次のオフセット値となる０ｘ０００８と，正常終了を示すＳＷになる。なお，本実施形態では，最初のリードバイナリコマンドが異常終了した場合，最初のリードバイナリコマンドのレスポンスメッセージは，次のオフセット値となる０ｘ００００と異常終了を示すＳＷのみになる。なお，異常終了した場合の次のオフセット値である０ｘ００００は，最初のリードバイナリコマンドのコマンドメッセージに含まれるオフセット値である。
【００４５】
図４（ｃ）の状態のトランスペアレント型ファイル１１の９バイト目になる０ｘ０００８から８バイトのバイナリデータを読出す２回目のリードバイナリコマンドを用いて，図４（ｃ）の状態のトランスペアレント型ファイル１１の９バイト目になる０ｘ０００８から８バイトのバイナリデータを読出すとき，２回目のリードバイナリコマンドのコマンドメッセージにおいて，Ｐ１−Ｐ２に含まれるオフセット値は０ｘ０００８で，読み出しデータのデータサイズを示すＬｅは，０ｘ０８または０ｘ０００００８になる。２回目のリードバイナリコマンドが正常終了した場合，２回目のリードバイナリコマンドのレスポンスメッセージは，トランスペアレント型ファイル１１の０ｘ０００８から０ｘ０００Ｆまでに格納されているバイナリデータ（０ｘＦ８Ｆ９ＦＡＦＢＦＣＦＤＦＥＦＦ）と，トランスペアレント型ファイル１１の領域外になることを示す次のオフセット値と，正常終了を示すＳＷになる。なお，２回目のリードバイナリコマンドが異常終了した場合，２回目のリードバイナリコマンドのレスポンスメッセージは，次のオフセット値となる０ｘ０００８と異常終了を示すＳＷになる。なお，異常終了した場合の次のオフセット値である０ｘ０００８は，２回目のリードバイナリコマンドのコマンドメッセージに含まれるオフセット値である。
【００４６】
これまで述べたように，本実施形態に係るＩＣカード１は，バイナリコマンドに係る処理が終了した位置の次になるオフセット値を，ＩＣカード１を利用したトランザクションを実行するターミナル装置側に通知できるように， バイナリコマンドのレスポンスメッセージに次のオフセット値を含ませるように構成されている。バイナリコマンドに係る処理が終了した位置の次になるオフセット値となる次のオフセット値をＩＣカード１側からターミナル装置側に通知できれば，バイナリコマンドに係る処理が終了した位置の次になるオフセット値をターミナル装置が計算する手間を省くことができるし，ターミナル装置が計算したオフセット値の正当性をターミナル装置側で検証することもできる。
【００４７】
ここから，本実施形態に係るＩＣカード１を利用したトランザクションを実行するターミナル装置２について説明する。図５は，本実施形態に係るターミナル装置２の構成を説明する図である。
【００４８】
本実施形態に係るターミナル装置２は，リーダライタ２１４，プロセッサ２１０，ＲＡＭ２１１，ＲＯＭ２１２，ストレージ２１３を含むハードウェア２１を備え，ハードウェア２１上で動作するソフトウェアにより実現される機能として，バイナリコマンドを少なくとも利用するトランザクションを管理するトランザクション管理部２０を備える。
【００４９】
ターミナル装置２のハードウェア２１に含まれるリーダライタ２１４は，ＩＣカード１と通信するための回路で，この回路を作動させるソフトウェアも含まれる。ターミナル装置２のハードウェア２１に含まれるリーダライタ２１４は，ＩＣカード１のＩ／Ｏインターフェース１２４に対応する。ＩＣカード１が，Ｉ／Ｏインターフェース１２４としてコンタクトインターフェースを備える場合，ターミナル装置２が備えるリーダライタ２１４はコンタクト用になり，ＩＣカード１が，Ｉ／Ｏインターフェース１２４としてコンタクトレスインターフェースを備える場合，ターミナル装置２が備えるリーダライタ２１４はコンタクトレス用になる。
【００５０】
ターミナル装置２のハードウェア２１に含まれるプロセッサ２１０は，ターミナル装置２の動作を制御するデバイスである。ターミナル装置２のハードウェア２１に含まれるＲＡＭ２１１は，ターミナル装置２の主記憶装置となるメモリである。ターミナル装置２のハードウェア２１に含まれるＲＯＭ２１２は，電気的に書き換えできない補助記憶装置となるメモリで，ターミナル装置２のハードウェア２１に含まれるストレージ２１３は，電気的に書き換え可能な補助記憶装置となるハードディスクなどのメモリで，プロセッサ２１０を動作させるソフトウェアは，ＲＯＭ２１２やストレージ２１３に格納される。
【００５１】
ターミナル装置２のトランザクション管理部２０は，ＩＣカード１に実装されたコマンドを利用する一連のトランザクションの実行を管理する機能を備え，一つのバイナリコマンドでは済まないほど長いデータサイズのバイナリデータを扱う場合など，オフセット値を変えながらバイナリコマンドを連続してＩＣカード１に実行させるトランザクションを行う際，ＩＣカード１から受信したバイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を用いて，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成する処理を行うように構成されている。
【００５２】
図６は，ターミナル装置２のトランザクション管理部２０の動作を説明する図で，一つのバイナリコマンド（リードバイナリコマンドになる）では済まないほど長いデータサイズのバイナリデータをＩＣカード１から読み出す場合におけるトランザクション管理部２０の動作を図示している。
【００５３】
一つのバイナリコマンドでは済まないほど長いデータサイズのバイナリデータをＩＣカード１から読み出す際，ターミナル装置２のトランザクション管理部２０は，まず，リーダライタ２１４を利用して，バイナリコマンドを利用するトランザクションの対象になるトランスペアレント型ファイル１１の先頭から所定のデータサイズのバイナリデータを読み出す最初のバイナリコマンドのコマンドメッセージをＩＣカード１へ送信する処理を実行する（Ｓ２０）。なお，図４（ｃ）で図示したトランスペアレント型ファイル１１の先頭から８バイトのバイナリデータを読み出す場合，最初のバイナリコマンドのコマンドメッセージに含まれるオフセット値は０ｘ００００で，Ｌｅは，トランスペアレント型ファイル１１から読み出すデータサイズは，０ｘ０８または０ｘ０００００８になる。
【００５４】
ＩＣカード１のバイナリコマンド実行部１０が，ターミナル装置２が送信したバイナリコマンドのコマンドメッセージを処理して，バイナリコマンドのレスポンスメッセージを送信し，リーダライタ２１４を利用して，ターミナル装置２のトランザクション管理部２０が，バイナリコマンドのレスポンスメッセージをＩＣカード１から受信すると（Ｓ２１），ターミナル装置２のトランザクション管理部２０は，バイナリコマンドを利用するトランザクションで読み出すバイナリデータの読み出しが完了したか判定する処理を実行する（Ｓ２２）。
【００５５】
トランスペアレント型ファイル１１に格納されたバイナリデータ全てを読み出す場合，バイナリコマンドを利用するトランザクションで読み出すバイナリデータの読み出しが完了したかの判定に，バイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を利用することもできるが，トランスペアレント型ファイル１１に格納されたバイナリデータの一部を読み出す場合も考慮して，ターミナル装置２のトランザクション管理部２０側で，バイナリコマンドを利用するトランザクションで読み出したバイナリデータのデータサイズを管理することが望ましい。例えば，バイナリコマンドを利用するトランザクションで読み出すバイナリデータのデータサイズと，ＩＣカード１から読み出したバイナリデータのデータサイズの合計値を比較することで，バイナリコマンドを利用するトランザクションで読み出すバイナリデータの読み出しが完了したかを判定できる。
【００５６】
ターミナル装置２のトランザクション管理部２０は，バイナリコマンドを利用するトランザクションで読み出すバイナリデータの読み出しが完了している場合，図６で図示した手順を終了し，バイナリコマンドを利用するトランザクションで読み出すバイナリデータの読み出しが完了していない場合，バイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を利用して，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成する処理を実行する（Ｓ２３）。
【００５７】
例えば，バイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージに含ませるオフセット値に用いることで，ターミナル装置２側でオフセット値を算出することなく，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成できる。また，ターミナル装置２のトランザクション管理部２０が，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージに含ませるオフセット値を算出する場合は，ターミナル装置２のトランザクション管理部２０が算出したオフセット値と，バイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を照合することで，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージに含ませるオフセット値の正当性を検証できる。
【００５８】
ターミナル装置２のトランザクション管理部２０は，バイナリコマンドのレスポンスメッセージに含まれる次のオフセット値を利用して，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成すると，ターミナル装置２は，トランザクション管理部２０が生成したバイナリコマンドのコマンドメッセージをＩＣカード１へ送信して（Ｓ２４），図６のＳ２１に戻る。
【００５９】
これまで述べたように，本実施形態に係るターミナル装置２は，本実施形態に係るＩＣカード１から通知された次のオフセット値を利用して，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成するように構成されている。ＩＣカード１から通知された次のオフセット値を利用して，次にＩＣカード１へ送信するバイナリコマンドのコマンドメッセージを生成することで，コマンドに係る処理が終了した位置の次になるオフセット値をターミナル装置２が計算する手間を省くことができるし，ターミナル装置２が計算したオフセット値の正当性をターミナル装置２側で検証することもできる。なお，本実施形態では，バイナリデータをＩＣカード１から読み出すときの動作について説明したが，書込み・更新系のバイナリコマンドの場合についても同じである。
【符号の説明】
【００６０】
１    ＩＣカード
１０  バイナリコマンド実行部
１１  トランスペアレント型ファイル
２    ターミナル装置
２０  トランザクション管理部
【図１】
2019079349.tif 000003
【図２】
2019079349.tif 000004
【図３】
2019079349.tif 000005
【図４】
2019079349.tif 000006
【図５】
2019079349.tif 000007
【図６】
2019079349.tif 000008