(57)【要約】【課題】効率的にデータを送信することができるＩＣカード、携帯可能電子装置、及び、ＩＣカード製造方法を提供する。【解決手段】実施形態によれば、ＩＣカードは、通信部と、第１記憶部と、第２記憶部と、格納処理部と、送信処理部と、通信部は、外部装置とデータを送受信する。第１記憶部は、ファイルを構成する構成データを格納する。第２記憶部は、外部装置へ送信するデータの最大レスポンスデータ長を格納する。格納処理部は、前記通信部を通じて前記ファイルを読み出すリードコマンドを受信した場合に、前記最大レスポンスデータ長を超えないように、前記第１記憶部が格納する前記構成データをレスポンスデータに格納する。送信処理部は、前記通信部を通じて、前記格納処理部が前記構成データを格納したレスポンスデータを送信する。【選択図】図１
2016081117.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのコマンドを実行するＩＣカードであって、
外部装置とデータを送受信する通信部と、
ファイルを構成する構成データを格納する第１記憶部と、
外部装置へ送信するデータの最大レスポンスデータ長を格納する第２記憶部と、
前記通信部を通じて前記ファイルを読み出すリードコマンドを受信した場合に、前記最大レスポンスデータ長を超えないように、前記第１記憶部が格納する前記構成データをレスポンスデータに格納する格納処理部と、
前記通信部を通じて、前記格納処理部が前記構成データを格納したレスポンスデータを送信する送信処理部と、
を備えるＩＣカード。
【請求項２】
前記構成データは、ＴＬＶデータオブジェクトであり、
前記格納処理部は、前記最大レスポンスデータ長を超えないように、前記ＴＬＶデータオブジェクトを前記レスポンスデータに格納する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記ＴＬＶデータオブジェクトを送信する順序を示す送信順序テーブルを格納する第３記憶部を備え、
前記格納処理部は、前記第３記憶部が格納する前記送信順序テーブルに従って、前記ＴＬＶデータオブジェクトをレスポンスデータに格納する、
前記請求項２に記載のＩＣカード。
【請求項４】
前記送信順序テーブルは、前記ＴＬＶデータオブジェクトが送信される順序に従って前記ＴＬＶデータオブジェクトのタグとデータ長とを対応付けて格納する、
前記請求項３に記載のＩＣカード。
【請求項５】
前記送信順序テーブルは、前記タグに対応付けてオフセットを格納する、
前記請求項４に記載のＩＣカード。
【請求項６】
前記通信部を通じてルール設定コマンドを受信した場合に、最大レスポンスデータ長を計算する計算部を備える、
前記請求項３乃至５の何れか１項に記載のＩＣカード。
【請求項７】
前記計算部は、セキュアメッセージングデータオブジェクトのデータ長を算出し、算出された前記データ長に基づいて、前記最大レスポンスデータ長を算出する、
前記請求項６に記載のＩＣカード。
【請求項８】
前記計算部は、ブロック暗号のブロック長に基づいて、最大レスポンスデータ長を算出する、
前記請求項６又は７に記載のＩＣカード。
【請求項９】
前記通信部を通じてルール設定コマンドを受信した場合に、前記ルール設定コマンドに従って、前記送信順序テーブルを生成するテーブル生成部を備える、
前記請求項３乃至８の何れか１項に記載のＩＣカード。
【請求項１０】
前記ルール設定コマンドは、ＴＬＶデータオブジェクトが送信される順序を格納し、
前記テーブル生成部は、前記ルール設定コマンドが格納する順序に基づいて、前記送信順序テーブルを生成する、
前記請求項９に記載のＩＣカード。
【請求項１１】
外部装置からのコマンドを実行するＩＣカードであって、
外部装置とデータを送受信する通信部と、ファイルを構成する構成データを格納する第１記憶部と、外部装置へ送信するデータの最大レスポンスデータ長を格納する第２記憶部と、前記通信部を通じて前記ファイルを読み出すリードコマンドを受信した場合に、前記最大レスポンスデータ長を超えないように、前記第１記憶部が格納する前記構成データをレスポンスデータに格納する格納処理部と、前記通信部を通じて、前記格納処理部が前記構成データを格納したレスポンスデータを送信する送信処理部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
【請求項１２】
外部装置からのコマンドを実行する携帯可能電子装置であって、
外部装置とデータを送受信する通信部と、
ファイルを構成する構成データを格納する第１記憶部と、
外部装置へ送信するデータの最大レスポンスデータ長を格納する第２記憶部と、
前記通信部を通じて前記ファイルを読み出すリードコマンドを受信した場合に、前記最大レスポンスデータ長を超えないように、前記第１記憶部が格納する前記構成データをレスポンスデータに格納する格納処理部と、
前記通信部を通じて、前記格納処理部が前記構成データを格納したレスポンスデータを送信する送信処理部と、
を備える携帯可能電子装置。
【請求項１３】
ＩＣカードを製造するＩＣカード製造方法であって、
セキュアメッセージングデータオブジェクトのデータ長を算出し、
算出された前記データ長に基づいて、最大レスポンスデータ長を計算し、
計算された前記最大レスポンスデータ長をＩＣカードの第１記憶部に格納する、
ＩＣカード製造方法。
【請求項１４】
ファイルを構成するＴＬＶデータオブジェクトが送信される順序を示す送信順序テーブルを生成し、
生成された前記送信順序テーブルを第２記憶部に格納する、
前記請求項１３に記載のＩＣカード製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、及び、ＩＣカード製造方法に関する。
【背景技術】
【０００２】
ＩＣカードなどの携帯可能電子端末には、レスポンスデータのデータ長の上限値が決まっているものがある。ＩＣカードは、レスポンスデータにセキュアメッセージングデータオブジェクトなどの付加情報を追加する必要があり、レスポンスデータのデータ長が上限値を超えてしまうことがある。従来、このような場合、ＩＣカード処理装置は、レスポンスデータのデータ長が上限値を超えないようにコマンドを送信する必要があるという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３８３０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、効率的にデータを送信することができるＩＣカード、携帯可能電子装置、及び、ＩＣカード製造方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、通信部と、第１記憶部と、第２記憶部と、格納処理部と、送信処理部と、通信部は、外部装置とデータを送受信する。第１記憶部は、ファイルを構成する構成データを格納する。第２記憶部は、外部装置へ送信するデータの最大レスポンスデータ長を格納する。格納処理部は、前記通信部を通じて前記ファイルを読み出すリードコマンドを受信した場合に、前記最大レスポンスデータ長を超えないように、前記第１記憶部が格納する前記構成データをレスポンスデータに格納する。送信処理部は、前記通信部を通じて、前記格納処理部が前記構成データを格納したレスポンスデータを送信する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカード処理システムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードのＮＶＭが格納する送信順序テーブルの例を示す図である。
【図４】図４は、実施形態に係るＩＣカード処理装置が送信するコマンドの例を示す図である。
【図５】図５は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図６】図６は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図７】図７は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図８】図８は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、ＩＣカード処理システム１０の構成例について説明するためのブロック図である。図１が示すように、ＩＣカード処理システム１０は、ＩＣカード処理装置１（外部装置）、及び、ＩＣカード２（携帯可能電子装置）などから構成される。
【０００８】
図１が示す構成例において、ＩＣカード処理装置１は、基本的な構成として、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６、及び、ディスプレイ１７などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ＩＣカード処理装置１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【０００９】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２あるいはＮＶＭ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。
【００１０】
ＣＰＵ１１は、カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。たとえば、ＣＰＵ１１は、カードリーダライタ１５を介して、操作部１６などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１１】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１２】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めＩＣカード処理装置１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、ＩＣカード処理装置１の回路基板を制御するプログラム（例えば、ＢＩＯＳ）などを格納している。
【００１３】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１４】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、ＩＣカード処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００１５】
カードリーダライタ１５は、ＩＣカード２との通信を行うためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１６】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナおよび通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１７】
このような機能によってカードリーダライタ１５は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１８】
操作部１６は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１６は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。また、操作部１６は、生態情報の入力を受け付けてもよい。
【００１９】
ディスプレイ１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１７は、たとえば、液晶モニタなどである。
【００２０】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの上位装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２１】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化するようになっている。
【００２２】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵されている。モジュールＭは、１つまたは複数のＩＣチップＣａと通信部としての外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設されている。
【００２３】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及び、通信部２５などを備えている。これらの各部は、データバスを介して互いに接続されている。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、およびＮＶＭ２４は、１つ又は複数のＩＣチップＣａにより構成され、通信部２５に接続された状態でモジュールＭを構成している。
【００２４】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２あるいはＮＶＭ２４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御あるいはＩＣカード２の運用形態に応じた種々の処理を行う。
【００２５】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２６】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２７】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファとしては、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファとしては、通信部２５を介してＩＣカード処理装置１から受信するコマンドデータなどを保持する。送信用バッファとしては、通信部２５を介してＩＣカード処理装置１へ送信するメッセージ（レスポンスデータ）などを保持する。また、ＲＡＭ２３は、動作状態を示すフラグを記憶する。
【００２８】
ＮＶＭ２４（請求項１の第１記憶部に対応）は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２９】
ＮＶＭ２４は、各種のファイルを格納する。ファイルは、複数個の構成データから構成されてもよい。構成データは、バイナリデータ又はＴＬＶデータオブジェクトであってもよい。
【００３０】
ＮＶＭ２４は、コマンドフォーマットを格納する記憶領域２４ａ、未送信データポインタを格納する記憶領域２４ｂ、最後に送信されたデータオブジェクトのタグ（最終送信タグ）を格納する記憶領域２４ｃ、最大レスポンスデータ長を格納する記憶領域２４ｄ（請求項１の第２記憶部及び請求項１３の第１記憶部に対応）、及び、送信順序テーブルを格納する記憶領域２４ｅ（請求項３の第３記憶部及び請求項１３の第２記憶部に対応）などを格納する。
【００３１】
記憶領域２４ａが格納するコマンドフォーマットは、ＣＰＵ２１がＩＣカード処理装置１から受信したコマンドのフォーマットである。ＣＰＵ２１は、ＩＣカード処理装置１からコマンドを受信すると、当該コマンドのフォーマットを記憶領域２４ａに格納する。
【００３２】
記憶領域２４ｂが格納する未送信データポインタは、ＩＣカード処理装置１へ送信していないバイナリデータの先頭ポインタを格納する。バイナリデータをＩＣカード処理装置１へ送信する場合、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１へ送信されたバイナリデータの次のバイナリデータの先頭ポインタを未送信データポインタとして記憶領域２４ｂに格納する。
【００３３】
記憶領域２４ｃが格納する最終送信タグは、ＩＣカード処理装置１へ送信されたＴＬＶデータオブジェクトのタグである。複数個のＴＬＶデータオブジェクトをＩＣカード処理装置１へ送信する場合、ＩＣカード２のＣＰＵ２１は、ＩＣカード処理装置１へ送信された最後のＴＬＶデータオブジェクトのタグを最終送信タグとして記憶領域２４ａに格納する。
【００３４】
ＴＬＶデータオブジェクトは、識別子（Ｔａｇ（タグ））、データ長（Ｌｅｎｇｔｈ）、及び、値（Ｖａｌｕｅ）から構成されるデータである。識別子（Ｔａｇ（タグ））は、ＴＬＶデータオブジェクトを識別するための識別子である。データ長（Ｌｅｎｇｔｈ）は、値（Ｖａｌｕｅ）の長さである。値（Ｖａｌｕｅ）は、ＴＬＶデータオブジェクトのデータ本体である。
【００３５】
記憶領域２４ｄが格納する最大レスポンスデータ長は、ＩＣカード２がセキュアメッセージングフォーマットを利用してＩＣカード処理装置１へ送信するデータの最大データ長である。即ち、最大レスポンスデータ長は、ＩＣカード２がデータ本体を格納できる領域のデータ長である。たとえば、ＩＣカード処理装置１がレスポンスデータ長の指定をすることなくコマンドを送信した場合（たとえば、Ｌｅ＝００を指定してコマンドを送信した場合）、ＣＰＵ２１は、最大レスポンスデータ長分のデータをＩＣカード処理装置１へ送信することができる。
【００３６】
記憶領域２４ｅが格納する送信順序テーブルは、ＩＣカード処理装置１へ送信されるＴＬＶデータオブジェクトの順序を示すテーブルである。送信順序テーブルについては、後述する。
【００３７】
通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。また、ＩＣカード２が非接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００３８】
次に、記憶領域２４ｅが格納する送信順序テーブルについて説明する。  
図３は、送信順序テーブルの構成例を示す。  
送信順序テーブルは、ＮＶＭ２４が格納するファイルに対応して格納される。送信順序テーブルが対応しているファイルは、複数個のＴＬＶデータオブジェクトから構成される。送信順序テーブルは、当該複数個のＴＬＶデータオブジェクトを送信する順序を示す。
【００３９】
図３が示すように、送信順序テーブルは、タグ、データ長、及び、オフセットを対応付けて格納する。  
「タグ」は、ファイルを構成するＴＬＶデータオブジェクトのタグを示す。タグは、ＣＰＵ２１がＴＬＶデータオブジェクトをＩＣカード処理装置１へ送信する順序に従って並べられる。即ち、送信順序テーブルは、１番目に送信されるＴＬＶデータオブジェクトのタグ、２番目に送信されるＴＬＶデータオブジェクトのタグ、…及び、Ｎ番目に送信されるＴＬＶデータオブジェクトのタグの順序で各タグを格納する。
【００４０】
「データ長」は、対応するタグが示すＴＶＬデータオブジェクト全体の長さを示す。即ち、「データ長」は、対応するタグが示すＴＶＬデータオブジェクトを送信するために必要なデータ領域の大きさを示す。
【００４１】
「オフセット」は、対応するタグが示すＴＬＶデータオブジェクトが格納されている領域の先頭ポインタを示す。たとえば、ＣＰＵ２１は、ＮＶＭ２４内において「オフセット」が格納する先頭ポインタからデータを読み出せば、当該ＴＬＶデータオブジェクトを取得することができる。
【００４２】
なお、送信順序テーブルが格納する要素（タグ、データ長及びオフセットなど）及び要素の個数は、特定の構成に限定されるものではない。
【００４３】
また、送信順序テーブルは、ＮＶＭ２４内にある全てのファイルに対して存在しなくともよい。送信順序テーブルは、ＮＶＭ２４内にあるファイルの一部に対して存在してもよい。
【００４４】
次に、ＩＣカード処理装置１が送信するルール設定コマンドについて説明する。  
ルール設定コマンドは、最大レスポンスデータ長を設定し、ＩＣカード２にデータを送信する順序を設定するコマンドである。ルール設定コマンドは、複数個のＴＬＶデータオブジェクトから構成されるファイルに対してルールを設定する。ルール設定コマンドは、ファイル毎にルールを設定する。
【００４５】
図４は、ルール設定コマンドの構成例を示す図である。  
図４が示すように、ルール設定コマンドは、ＣＬＡ、ＩＮＳ、Ｐ１、Ｐ２、Ｌｃ及びコマンドデータなどから構成される。
【００４６】
「ＣＬＡ」は、クラスバイトを示す。  
「ＩＮＳ」は、ルール設定コマンドであることを示す。  
「Ｐ１」及び「Ｐ２」は、パラメータを示す。  
「Ｌｃ」は、コマンドデータの長さを示す。  
「コマンドデータ」は、ルール設定コマンドの本体を格納する。
【００４７】
コマンドデータは、ＴＬＶ形式でルールを設定するデータ（ルール設定情報）をルール毎に格納する。ここでは、コマンドデータは、１番目のルール設定情報及び２番目のルール設定情報を格納する。なお、コマンドデータが設定するルールの個数は、特定の個数に限定されるものではない。
【００４８】
ルール設定情報は、ファイルＩＤ、ルールＩＤ及び固有データなどを備える。ファイルＩＤ、ルールＩＤ及び固有データは、それぞれＴＬＶ形式で格納される。
【００４９】
ファイルＩＤは、ルールを設定されるファイルを示す識別子である。ファイルＩＤは、数字、文字列、又は、両者の組み合わせであってもよい。
【００５０】
ルールＩＤは、ファイルに設定されるルールを示す識別子である。ルールは、ファイルを構成するＴＬＶデータオブジェクトが送信される順序を決定する。たとえば、ルールは、データ長が長い順序でＴＬＶデータオブジェクトを送信する、データ長が短い順序でＴＶＬデータオブジェクトを送信する、又は、特定の順序（優先順序）でＴＬＶデータオブジェクトを送信する、などである。ルールは、特定の内容に限定されるものではない。
【００５１】
固有データは、ＴＬＶデータオブジェクトが送信される順序を示す。ルールＩＤが、特定の順序でＴＬＶデータオブジェクトを送信するというルールを示す場合、固有データは、当該順序を示す。
【００５２】
ルールＩＤが、ＣＰＵ２１が順序を決定することが可能なルール（たとえば、データ長が長い順序でＴＬＶデータオブジェクトを送信するというルールなど）を示す場合、コマンドデータは、固有データを格納しなくともよい。
【００５３】
なお、コマンドデータが格納する情報は、特定の構成に限定されるものではない。
【００５４】
次に、ＩＣカード２のＣＰＵ２１が実現する機能について説明する。  
ＣＰＵ２１は、ルール設定コマンドに従って、送信順序テーブルを生成する機能を有する（テーブル生成部に対応）。ＣＰＵ２１は、ルール設定情報が格納するルールＩＤ及び固有データに基づいて、送信順序テーブルを生成する。たとえば、ルールＩＤが、データ長が長い順序でＴＬＶデータオブジェクトを送信するというルールである場合、ＣＰＵ２１は、対応するファイルを構成するＴＬＶデータオブジェクトのタグをＴＬＶデータオブジェクトのデータ長が内外順にソートし、ソートされた複数個のタグに基づいて送信順序テーブルを生成する。
【００５５】
また、ルールＩＤが、特定の順序でＴＬＶデータオブジェクトを送信するというルールである場合、ＣＰＵ２１は、対応するファイルを構成するＴＬＶデータオブジェクトのタグを、固有データが示す順序にソートし、ソートされた複数個のタグに基づいて送信順序テーブルを生成する。
【００５６】
また、ＣＰＵ２１は、レスポンスのデータ長が指定されていない場合（即ち、コマンドにおいて、送信可能な最大データ長が指定されている場合）におけるセキュアメッセージングデータオブジェクトのデータ長を計算する機能を有する。セキュアメッセージングデータオブジェクトは、ＩＣカード処理装置１とＩＣカード２との間の通信を安全に行うためのデータである。たとえば、セキュアメッセージングデータオブジェクトは、メッセージ認証コード（ＭＡＣ）などを備える。たとえば、メッセージ認証コードは、暗号化チェックサム（ＣＣＳ）などを備える。また、セキュアメッセージングデータオブジェクトは、ステータスバイト（ＳＷ）などを備えてもよい。たとえば、メッセージ認証コードのデータ長は、８バイトであり、ステータスバイトのデータ長は、２バイトである。
【００５７】
ＣＰＵ２１は、暗号化のための鍵、又は、ハッシュなどに基づいて、セキュアメッセージングデータオブジェクトのデータ長を計算する。なお、ＣＰＵ２１がセキュアメッセージングデータオブジェクトのデータ長を計算する方法は、特定の方法に限定されるものではない。
【００５８】
また、ＣＰＵ２１は、セキュアメッセージングデータオブジェクトのデータ長に基づいて、最大レスポンスデータ長を計算する機能を有する（計算部）。たとえば、ＣＰＵ２１は、一度に送信可能な最大データ長（たとえば、２５８バイト）から、セキュアメッセージングデータオブジェクトのデータ長の長さを減算した値を、最大レスポンスデータ長として計算する。
【００５９】
また、ブロック暗号を用いる場合には、ＣＰＵ２１は、ブロック暗号のブロック長にさらに基づいて、最大レスポンスデータ長を計算する。ブロック暗号とは、平文メッセージを特定のブロック長に分割して暗号化することである。
【００６０】
たとえば、ＣＰＵ２１は、最大レスポンスデータ長をブロック長で割った余りを算出する。ＣＰＵ２１は、最大レスポンスデータ長から余りを減算する。
【００６１】
また、ＣＰＵ２１は、レスポンスのデータ長が設定されていない場合において、レスポンスに格納するデータのデータ長が最大レスポンスデータ長を超えないように、ファイルを構成するデータをレスポンスに格納する機能を有する（格納処理部に対応）。ファイルがバイナリデータから構成される場合、ＣＰＵ２１は、レスポンスに格納するバイナリデータの合計データ長が最大レスポンスデータ長以下になるように、バイナリデータをレスポンスに格納する。
【００６２】
また、ファイルが複数個のＴＬＶデータオブジェクトから構成される場合、ＣＰＵ２１は、最大レスポンスデータ長に達するまで、順序設定テーブルが設定する順序に従ってＴＬＶデータオブジェクトをレスポンスに格納する。
【００６３】
次に、ルール設定コマンドを受信した際におけるＩＣカード２の動作例について説明する。
【００６４】
図５は、ルール設定コマンドを受信した際におけるＩＣカード２の動作例について説明するためのフローチャートである。
【００６５】
ここでは、ＩＣカード２は、ＩＣカード処理装置１に互いに通信可能にセットされているものとする。また、ＩＣカード処理装置１は、カードリーダライタ１５を通じて、ルール設定コマンドをＩＣカード２へ送信するものとする。
【００６６】
まず、ＩＣカード２のＣＰＵ２１は、通信部２５を通じて、ルール設定コマンドを受信する（ステップＳ１１）。
【００６７】
ルール設定コマンドを受信すると、ＣＰＵ２１は、受信されたルール設定コマンドが１つ目のルール設定コマンドであるか判定する（ステップＳ１２）。たとえば、ＣＰＵ２１は、ルール設定コマンドを受信することを示すフラグなどを格納し、当該フラグを参照して受信されたルール設定コマンドが１つ目のルール設定コマンドであるか判定してもよい。
【００６８】
受信されたルール設定コマンドが１つ目のルール設定コマンドであると判定すると（ステップＳ１２、ＹＥＳ）、ＣＰＵ２１は、コマンドフォーマットを格納する記憶領域２４ａ、未送信データポインタを格納する記憶領域２４ｂ、及び、最終送信タグを格納する記憶領域２４ｃをＮＶＭ２４内に作成する（ステップＳ１３）。
【００６９】
各記憶領域を作成すると、ＣＰＵ２１は、セキュアメッセージングデータオブジェクトのデータ長を計算する（ステップＳ１４）。
【００７０】
セキュアメッセージングデータオブジェクトのデータ長を計算すると、ＣＰＵ２１は、精算されたデータ長に基づいて、最大レスポンスデータ長を計算する（ステップＳ１５）。
【００７１】
最大レスポンスデータ長を計算すると、ＣＰＵ２１は、ＩＣカード２がブロック暗号を用いてレスポンスデータを送信するかを判定する（ステップＳ１６）。
【００７２】
ＩＣカード２がブロック暗号を用いてレスポンスデータを送信すると判定すると（ステップＳ１６、ＹＥＳ）、ＣＰＵ２１は、最大レスポンスデータ長をブロック暗号のブロック長で割った余りを計算する（ステップＳ１７）。
【００７３】
余りを計算すると、ＣＰＵ２１は、最大レスポンスデータ長から、計算された余りを減算する（ステップＳ１８）。
【００７４】
ＩＣカード２がブロック暗号を用いずにレスポンスデータを送信すると判定した場合（ステップＳ１６、ＮＯ）、又は、最大レスポンスデータ長から計算された余りを減算した場合（ステップＳ１８）、ＣＰＵ２１は、記憶領域２４ｄに最大レスポンスデータ長を格納する（ステップＳ１９）。
【００７５】
受信されたルール設定コマンドが１つ目のルール設定コマンドでないと判定した場合（ステップＳ１２、ＮＯ）、又は、記憶領域２４ｄに最大レスポンスデータ長を格納した場合（ステップＳ１９）、ＣＰＵ２１は、ルール設定コマンドが格納するルール設定情報のファイルＩＤに基づいて、ルールを設定するファイルが複数個のＴＬＶデータオブジェクトから構成されるか判定する（ステップＳ２０）。
【００７６】
ファイルが複数個のＴＬＶデータオブジェクトから構成されると判定すると（ステップＳ２０、ＹＥＳ）、ＣＰＵ２１は、ルール設定情報からルールＩＤを抽出する（ステップＳ２１）。
【００７７】
ルール設定情報からルールＩＤを取得すると、ＣＰＵ２１は、記憶領域２４ｄにファイルに対応する送信順序テーブルを格納する領域を作成する（ステップＳ２２）。
【００７８】
送信順序テーブルを格納する領域を作成すると、ＣＰＵ２１は、ルールＩＤが示すルールに従ってファイルを構成する複数個のＴＬＶデータオブジェクトのタグをソートする（ステップＳ２２）。ルールＩＤが示すルールが特定の順序でＴＬＶデータオブジェクトを送信するというルールである場合、ＣＰＵ２１は、ルール設定情報が格納する固有データに基づいてタグをソートする。
【００７９】
タグをソートすると、ＣＰＵ２１は、ソートされた複数個のタグに基づいて送信順序テーブルを生成する（ステップＳ２４）。送信順序テーブルを生成すると、ＣＰＵ２１は、生成された送信順序テーブルをステップＳ２２で作成した領域に格納する（ステップＳ２５）。
【００８０】
送信順序テーブルを格納すると、ＣＰＵ２１は、当該ルール設定情報が最後のルール設定情報であるか判定する（ステップＳ２６）。たとえば、ＣＰＵ２１は、ルール設定コマンド内において他にルール設定情報があるか判定する。
【００８１】
当該ルール設定情報が最後のルール設定情報でないと判定すると（ステップＳ２６、ＮＯ）、ＣＰＵ２１は、ステップＳ２０へ戻る。
【００８２】
当該ルール設定情報が最後のルール設定情報であると判定すると（ステップＳ２６、ＮＹＥＳ）、ＣＰＵ２１は、動作を終了する。
【００８３】
次に、バイナリデータから構成されるファイルを読み出すリードコマンドを受信した際におけるＩＣカード２の動作例について説明する。
【００８４】
図６は、バイナリデータから構成されるファイルを読み出すリードコマンドを受信した際におけるＩＣカード２の動作例について説明するためのフローチャートである。
【００８５】
ここでは、ＩＣカード２は、ＩＣカード処理装置１に互いに通信可能にセットされているものとする。また、ＩＣカード処理装置１は、カードリーダライタ１５を通じて、所定のコマンドをＩＣカード２へ送信するものとする。また、リードコマンドが読み出すファイルは、バイナリデータから構成されるものとする。
【００８６】
まず、ＩＣカード２のＣＰＵ２１は、通信部２５を通じて、コマンドをＩＣカード処理装置１から受信する（ステップＳ３１）。コマンドをＩＣカード処理装置１から受信すると、ＣＰＵ２１は、受信されたコマンドがリードコマンドであるか判定する（ステップＳ３２）
受信されたコマンドがリードコマンドであると判定すると（ステップＳ３２、ＹＥＳ）、ＣＰＵ２１は、受信されたリードコマンドが、Ｌｅ＝００を設定され、セキュアメッセージング処理を実行し、かつ、リード対象ファイルにルールが適用されているコマンドであるか判定する（ステップＳ３３）。ここで、ルールは、最大レスポンスデータ長になるまでバイナリデータをレスポンスに格納することを示す。
【００８７】
受信されたリードコマンドが、Ｌｅ＝００を設定され、セキュアメッセージング処理を実行し、かつ、リード対象ファイルにルールが適用されるコマンドであると判定すると（ステップＳ３３、ＹＥＳ）、ＣＰＵ２１は、リードコマンドが格納するオフセットが初期位置であるか判定する（ステップＳ３４）。即ち、ＣＰＵ２１は、リードコマンドがデータを取得する起点として初期位置を指定しているか判定する。
【００８８】
オフセットが初期位置であると判定すると（ステップＳ３４、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致するか判定する（ステップＳ３５）。即ち、ＣＰＵ２１は、受信されたコマンドが１つめのコマンドであるか判定する。
【００８９】
受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致しないと判定すると（ステップＳ３５、ＮＯ）、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマット、及び、記憶領域２４ｂが格納する未送信データポインタをリセットする（ステップＳ３６）。未送信データポインタは、リードコマンドが読み出すファイルを構成するバイナリデータの先頭ポインタを格納する。
【００９０】
コマンドフォーマットと未送信データポインタとをリセットすると、ＣＰＵ２１は、受信されたコマンドのフォーマットを記憶領域２４ａに格納する（ステップＳ３７）。
【００９１】
受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致すると判定した場合（ステップＳ３５、ＹＥＳ）、又は、受信されたコマンドのフォーマットを記憶領域２４ａに格納した場合（ステップＳ３７）、ＣＰＵ２１は、記憶領域２４ｄが格納する最大レスポンスデータ長分のレスポンスデータを生成する（ステップＳ３８）。即ち、ＣＰＵ２１は、最大レスポンスデータ長に達するまで、未送信データポインタが示すポインタからバイナリデータをレスポンスデータに格納する。
【００９２】
レスポンスデータを生成すると、ＣＰＵ２１は、未送信データポインタを更新する（ステップＳ３９）。即ち、ＣＰＵ２１は、ステップＳ３７で格納したバイナリデータの次のポインタを記憶領域２４ｂに未送信データポインタとして格納する。
【００９３】
未送信データポインタを更新すると、ＣＰＵ２１は、ファイルを構成する全てのバイナリデータをレスポンスデータに格納したか判定する（ステップＳ４０）。
【００９４】
ファイルを構成する全てのバイナリデータをレスポンスデータに格納したと判定すると（ステップＳ４０、ＹＥＳ）、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマットと、記憶領域２４ｂが格納する未送信データポインタとをリセットする（ステップＳ４１）。ここでは、未送信データポインタは、初期値にセットされてもよい。
【００９５】
ファイルを構成する全てのバイナリデータをレスポンスデータに格納していないと判定した場合（ステップＳ４０、ＮＯ）、又は、コマンドフォーマットと未送信データポインタとリセットした場合（ステップＳ４１）、ＣＰＵ２１は、ステップＳ３８で生成されたレスポンスデータにセキュアメッセージング処理を実行する（ステップＳ４２）。
【００９６】
セキュアメッセージング処理を実行すると、ＣＰＵ２１は、通信部２５を通じて、セキュアメッセージング処理を実行されたレスポンスデータを含むレスポンスをＩＣカード処理装置１へ送信する（ステップＳ４３）（送信処理部に対応）。
【００９７】
受信されたコマンドがリードコマンドでない場合（ステップＳ３２、ＮＯ）、受信されたリードコマンドが、Ｌｅ＝００を設定されず、セキュアメッセージング処理を実行せず、又は、リード対象ファイルにルールが適用されないコマンドであると判定した場合（ステップＳ３３、ＮＯ）、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマットと、記憶領域２４ｂが格納する未送信データポインタとをリセットする（ステップＳ４４）。ここでは、未送信データポインタは、初期値にセットされてもよい。
【００９８】
マンドフォーマットと未送信データポインタとリセットすると、ＣＰＵ２１は、受信されたコマンドを実行する（ステップＳ４５）。
【００９９】
オフセットが初期位置でないと判定すると（ステップＳ３４）、ＣＰＵ２１は、オフセットから記憶領域２４ｄが格納する最大レスポンスデータ長分のレスポンスデータを生成する（ステップＳ４６）。レスポンスデータを生成すると、ＣＰＵ２１は、ステップＳ４１へ進む。
【０１００】
レスポンスを送信した場合（ステップＳ４３）、又は、受信されたコマンドを実行した場合（ステップＳ４５）、ＣＰＵ２１は、動作を終了する。
【０１０１】
次に、ＴＬＶデータオブジェクトから構成されるファイルを読み出すリードコマンドを受信した際におけるＩＣカード２の動作例について説明する。
【０１０２】
図７は、ＴＬＶデータオブジェクトから構成されるファイルを読み出すリードコマンドを受信した際におけるＩＣカード２の動作例について説明するためのフローチャートである。
【０１０３】
ここでは、ＩＣカード２は、ＩＣカード処理装置１に互いに通信可能にセットされているものとする。また、ＩＣカード処理装置１は、カードリーダライタ１５を通じて、所定のコマンドをＩＣカード２へ送信するものとする。また、リードコマンドが読み出すファイルは、ＴＬＶデータオブジェクトから構成されるものとする。
【０１０４】
まず、ＩＣカード２のＣＰＵ２１は、通信部２５を通じて、コマンドをＩＣカード処理装置１から受信する（ステップＳ５１）。コマンドをＩＣカード処理装置１から受信すると、ＣＰＵ２１は、受信されたコマンドがリードコマンドであるか判定する（ステップＳ５２）
受信されたコマンドがリードコマンドであると判定すると（ステップＳ５２、ＹＥＳ）、ＣＰＵ２１は、受信されたリードコマンドが、Ｌｅ＝００を設定され、セキュアメッセージング処理を実行し、かつ、リード対象ファイルにルールが適用されるコマンドであるか判定する（ステップＳ５３）。
【０１０５】
受信されたリードコマンドが、Ｌｅ＝００を設定され、セキュアメッセージング処理を実行し、かつ、リード対象ファイルにルールが適用されるコマンドであると判定すると（ステップＳ５３、ＹＥＳ）、ＣＰＵ２１は、リードコマンドが格納するオフセットが初期位置であるか判定する（ステップＳ５４）。たとえば、ＣＰＵ２１は、リードコマンドが、ＴＬＶデータを並び替えたリード対象データに対して、オフセットを指定しているか判定する。
【０１０６】
オフセットが初期位置であると判定すると（ステップＳ５４、ＹＥＳ）、ＣＰＵ２１は、受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致するか判定する（ステップＳ５５）。
【０１０７】
受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致しないと判定すると（ステップＳ５５、ＮＯ）、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマット、及び、記憶領域２４ｃが格納する最終送信タグをリセットする（ステップＳ５６）。
【０１０８】
コマンドフォーマットと最終送信タグとをリセットすると、ＣＰＵ２１は、受信されたコマンドのフォーマットを記憶領域２４ａに格納する（ステップＳ５７）。
【０１０９】
受信されたコマンドのフォーマットが、記憶領域２４ａが格納するコマンドフーマットと一致すると判定した場合（ステップＳ５５、ＹＥＳ）、又は、受信されたコマンドのフォーマットを記憶領域２４ａに格納した場合（ステップＳ５７）、ＣＰＵ２１は、送信順序テーブルに基づいて、記憶領域２４ｄが格納する最大レスポンスデータ長分のレスポンスデータを生成する（ステップＳ５８）。即ち、ＣＰＵ２１は、最大レスポンスデータ長を超えないように、最終送信タグの次のタグが示すＴＬＶデータオブジェクトから送信順序テーブルが示す順序に従ってレスポンスデータに格納する。ステップＳ５８については、後に詳述する。
【０１１０】
レスポンスデータを生成すると、ＣＰＵ２１は、最終送信タグを更新する（ステップＳ５９）。即ち、ＣＰＵ２１は、ステップＳ５８で最後に格納したＴＬＶデータオブジェクトのタグを記憶領域２４ｃに最終送信タグとして格納する。
【０１１１】
最終送信タグを更新すると、ＣＰＵ２１は、ファイルを構成する全てのＴＬＶデータオブジェクトをレスポンスデータに格納したか判定する（ステップＳ６０）。
【０１１２】
ファイルを構成する全てのＴＬＶデータオブジェクトをレスポンスデータに格納したと判定すると（ステップＳ６０、ＹＥＳ）、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマットと、記憶領域２４ｃが格納する最終送信タグとをリセットする（ステップＳ６１）。
【０１１３】
ファイルを構成する全ての最終送信タグをレスポンスデータに格納していないと判定した場合（ステップＳ６０、ＮＯ）、又は、コマンドフォーマットと最終送信タグとリセットした場合（ステップＳ６１）、ＣＰＵ２１は、ステップＳ５８で生成されたレスポンスデータにセキュアメッセージング処理を実行する（ステップＳ６２）。
【０１１４】
セキュアメッセージング処理を実行すると、ＣＰＵ２１は、通信部２５を通じて、セキュアメッセージング処理を実行されたレスポンスデータを含むレスポンスをＩＣカード処理装置１へ送信する（ステップＳ６３）。
【０１１５】
受信されたコマンドがリードコマンドないと判定した場合（ステップＳ５２、ＮＯ）、又は、受信されたリードコマンドが、Ｌｅ＝００を設定されず、セキュアメッセージング処理を実行せず、又は、リード対象ファイルにルールが設定されていないコマンドであると判定した場合（ステップＳ５３、ＮＯ）、ＣＰＵ２１は、ＣＰＵ２１は、記憶領域２４ａが格納するコマンドフォーマットと、記憶領域２４ｃが格納する最終送信タグと、をリセットする（ステップＳ６４）。
【０１１６】
マンドフォーマットと最終送信タグとリセットすると、ＣＰＵ２１は、受信されたコマンドを実行する（ステップＳ６５）。
【０１１７】
オフセットが初期位置でないと判定すると（ステップＳ５４）、ＣＰＵ２１は、オフセットから記憶領域２４ｄが格納する最大レスポンスデータ長分のレスポンスデータを生成する（ステップＳ６６）。レスポンスデータを生成すると、ＣＰＵ２１は、ステップＳ６１へ進む。
【０１１８】
レスポンスを送信した場合（ステップＳ６３）、又は、受信されたコマンドを実行した場合（ステップＳ６５）、ＣＰＵ２１は、動作を終了する。
【０１１９】
次に、ステップＳ５７におけるＩＣカード２の動作例について説明する。  
図８は、ステップＳ５７におけるＩＣカード２の動作例について説明するフローチャートである。
【０１２０】
まず、ＣＰＵ２１は、記憶領域２４ｃが最終送信タグを格納しているか判定する（ステップＳ７１）。
【０１２１】
記憶領域２４ｃが最終送信タグを格納していないと判定すると（ステップＳ７１、ＮＯ）、ＣＰＵ２１は、ファイルに対応する送信順序テーブルが示す先頭のタグを選択する（ステップＳ７２）。
【０１２２】
記憶領域２４ｃが最終送信タグを格納していると判定すると（ステップＳ７１、ＹＥＳ）、ＣＰＵ２１は、ファイルに対応する送信順序テーブルにおいて最終送信タグの次のタグを選択する（ステップＳ７３）。
【０１２３】
先頭のタグを選択した場合（ステップＳ７２）、又は、次のタグを選択した場合（ステップＳ７３）、ＣＰＵ２１は、選択されたタグ（選択タグ）に対応するデータ本体を取得する（ステップＳ７４）。
【０１２４】
データ本体を取得すると、ＣＰＵ２１は、データ本体をレスポンスデータに連結した場合にレスポンスデータのデータ長が最大レスポンスデータ長を超えるか判定する（ステップＳ７５）。
【０１２５】
レスポンスデータのデータ長が最大レスポンスデータ長を超えないと判定すると（ステップＳ７５、ＮＯ）、ＣＰＵ２１は、取得されたデータ本体をレスポンスデータに連結する（ステップＳ７６）。データ本体をレスポンスデータに連結すると、ＣＰＵ２１は、送信順序テーブルにおいて選択タグの次のタグを選択する（ステップＳ７７）。
【０１２６】
次のタグを選択すると、ＣＰＵ２１は、ステップＳ７４に戻る。
【０１２７】
レスポンスデータのデータ長が最大レスポンスデータ長を超えると判定すると（ステップＳ７５、ＹＥＳ）、ＣＰＵ２１は、動作を終了する。即ち、ＣＰＵ２１は、ステップＳ５９に進む。なお、ＣＰＵ２１は、ステップＳ５９において、選択タグの前のタグを最終送信タグとして記憶領域２４ｃに格納する。
【０１２８】
なお、送信順序テーブルは、オフセットを格納しなくともよい。この場合、ＣＰＵ２１は、送信順序テーブルが示すタグに対応するＴＬＶデータオブジェクトをＮＶＭ２４内から検索してもよい。
【０１２９】
また、ファイルに設定されたルールが、ＣＰＵ２１が順序を決定することが可能なルール（たとえば、データ長が長い順序でＴＬＶデータオブジェクトを送信するというルールなど）である場合、当該ファイルに対応する送信順序テーブルはなくともよい。この場合、ＣＰＵ２１は、ルールに従ってＴＬＶデータオブジェクトを示すタグを選択してもよい。
【０１３０】
また、ＩＣカード処理装置１がセキュアメッセージングデータオブジェクトのデータ長を計算してもよい。この場合、ＩＣカード２は、ＩＣカード処理装置１が送信するセキュアメッセージングデータオブジェクトのデータ長に基づいて、最大レスポンスデータ長を計算してもよい。
【０１３１】
また、ＩＣカード処理装置１が最大レスポンスデータ長を計算してもよい。この場合、ＩＣカード２は、ＩＣカード処理装置１が送信する最大レスポンスデータ長を記憶領域２４ｄに格納してもよい。また、ＩＣカード処理装置１は、ルール設定コマンドに最大レスポンスデータ長を格納して、最大レスポンスデータ長をＩＣカード２に通知してもよい。
【０１３２】
以上のように構成されたＩＣカードは、ＩＣカード処理装置がレスポンスのデータ長を指定しなくとも、適切な量のデータをＩＣカード処理装置へ送信することができる。その結果、ＩＣカードは、レスポンスのデータ長が最大データ長を超えたことを示す異常応答を送信することなく、ＩＣカード処理装置１に効率的にデータを送信することができる。
【０１３３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３４】
１…ＩＣカード処理装置、２…ＩＣカード、１０…ＩＣカード処理システム、１１…ＣＰＵ、１５…カードリーダライタ、２１…ＣＰＵ、２４…ＮＶＭ、２４ａ乃至ｅ…記憶領域、２５…通信部、Ｍ…モジュール、Ｃ…本体。
【図１】
2016081117.tif 000003
【図２】
2016081117.tif 000004
【図３】
2016081117.tif 000005
【図４】
2016081117.tif 000006
【図５】
2016081117.tif 000007
【図６】
2016081117.tif 000008
【図７】
2016081117.tif 000009
【図８】
2016081117.tif 000010