(57)【特許請求の範囲】
【請求項１】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索するデータの識別子を示すパラメータデータから構成され、第１データ表現形式の識別子を指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドのパラメータデータにて指定される識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記パラメータデータにて指定される識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段と、
を具備する携帯可能電子装置。
【請求項２】
前記処理手段は、求めた結果を当該携帯可能電子装置の外部へ出力することを特徴とする請求項１記載の携帯可能電子装置。
【請求項３】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、外部装置から送られ、少なくとも検索するデータの識別子を示すパラメータデータから構成され、第１データ表現形式の識別子を指定するコマンドを受信する受信手段と、この受信手段により前記コマンドを受信すると、当該コマンドのパラメータデータにて指定される識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、この制御情報判断手段により前記パラメータデータにて指定される識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備するＩＣカード。
【請求項４】
前記処理手段は、求めた結果を当該ＩＣカードの外部へ出力することを特徴とする請求項３記載のＩＣカード。
【請求項５】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索するデータの識別子を示すパラメータデータから構成され、第１データ表現形式の識別子を指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドのパラメータデータにて指定される識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記パラメータデータにて指定される識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段と、
を具備するＩＣモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置、ＩＣカードおよびＩＣモジュールに関する。
【背景技術】
【０００２】
近年、携帯可能な電子装置として、書込み、書換え可能な不揮発性のデータメモリとそれを制御するためのＣＰＵを有し、外部からのデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードが産業各方面で開発されている。
【０００３】
ＩＣカードは、従来までの磁気カード等と比較すると、磁気カードは個々のアプリケーションに対応した枚数を保持する必要があったが、１枚に複数のアプリケーションプログラムを保持することができるという利点がある。すなわち、銀行などの金融機関でキャッシュカード等として使用されるＩＣカード、スポーツやレジャー施設での個人認証用のＩＤカード、パチンコ店等の遊技場におけるプリペイドカードなどを同一の１枚のＩＣカードにより実現できる。
【０００４】
この種のＩＣカードは、利用アプリケーションの運用時に必要なデータなどがファイル形式でデータメモリに記憶されており、それぞれのファイルは複数のアプリケーションのそれぞれに対応している。
【０００５】
個々のファイルは、外部装置からアプリケーション識別名などを入力することにより、選択的に対応するファイルのみが使用可能な状態となるようになっている。アプリケーションを選択した後、データの読出しや書換えなどの運用処理が行なわれる。
【０００６】
一般に、ＩＣカード内のデータは、識別子と長さとデータ値とから構成されていて、識別子によっては、いわゆる入れ子構造になっているものもある。このうような入れ子構造は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで構造化されたタグフィールド（Ｔａｇ  ｆｉｅｌｄ）などが定義されている。  
また、入れ子構造になっていないデータを直接、読出し、追加、書換え、削除することが可能である。
【０００７】
上述した従来の技術においては、たとえば、特許文献２に記述されているとおり、入れ子構造になっていないデータを直接、読出し、追加、書換え、削除することが可能である。入れ子構造になっていないデータを扱うシステムとしては読出し、追加、書換え、削除する機能があれば充分である。
【０００８】
しかしながらその反面、入れ子構造になっているデータを扱うシステムの場合、ＩＣカードが保持する指定した子タグデータの検索を行なったり、指定した子タグの全データを読出し演算したり、データの操作を行なうことが要求される。ところが、指定した子タグデータの読出しのアクセスを制御する必要があるため、一部のシステムでは読出し禁止が要求されることもある。また、ネットワーク環境を介する場合、ＩＣカードへの送受信回数を減らすことが要求される。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平３−２２４０４７号公報
【特許文献２】特開平１１−２８２９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明が解決しようとする課題は、入れ子構造になっているデータをデータ構造解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータを操作することで容易に入れ子構造になっているデータの合計値や最新日付情報などのデータを取得することが可能な携帯可能電子装置、ＩＣカードおよびＩＣモジュールを提供することである。
【課題を解決するための手段】
【００１１】
実施形態に係る携帯可能電子装置は、識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、外部装置から送られ、少なくとも検索するデータの識別子を示すパラメータデータから構成され、第１データ表現形式の識別子を指定するコマンドを受信する受信手段と、この受信手段により前記コマンドを受信すると、当該コマンドのパラメータデータにて指定される識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、この制御情報判断手段により前記パラメータデータにて指定される識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段とを具備する。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る携帯可能電子装置としてのＩＣカードを用いたＩＣカードシステムの構成を概略的に示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】データメモリに複数のアプリケーションを構成した場合のファイル構造の概念図。
【図４】メモリに格納される入れ子構造データの一例を示す図。
【図５】データ管理情報を説明するための図。
【図６】制御情報により所定のアドレスに設定されるデータのフォーマットを示す図。
【図７】検索・存在個数出力コマンドの構成を示す図。
【図８】検索・存在個数出力コマンドに対するレスポンスデータの構成を示す図。
【図９】出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示す図。
【図１０】検索・存在個数出力コマンドに対する処理の流れについて説明するフローチャート。
【図１１】検索・存在個数出力コマンドに対する処理の流れについて説明するフローチャート。
【図１２】アドレスとデータ長管理情報との整合性の確認およびデータ有無を判定する状態を説明する図。
【図１３】合計値出力コマンドの構成を示す図。
【図１４】合計値出力コマンドに対するレスポンスデータの構成を示す図。
【図１５】合計値出力コマンドに対する処理の流れについて説明するフローチャート。
【図１６】合計値出力コマンドに対する処理の流れについて説明するフローチャート。
【図１７】データ内に最終更新日値が含まれる入れ子構造データの一例を示す図。
【図１８】最終更新日コマンドの構成を示す図。
【図１９】最終更新日コマンドに対するレスポンスデータの構成を示す図。
【図２０】最終更新日コマンドに対する処理の流れについて説明するフローチャート。
【図２１】最終更新日コマンドに対する処理の流れについて説明するフローチャート。
【発明を実施するための形態】
【００１３】
以下、実施形態について図面を参照して説明する。  
図１は、本実施形態に係る携帯可能電子装置としてのＩＣカードを用いたＩＣカードシステムの構成を概略的に示すものである。図１において、このＩＣカードシステムは、ＩＣカード１に対しデータの読出しや書込みを行なう外部装置としてのリーダライタ２、リーダライタ２が接続された上位装置としてのパーソナルコンピュータ（以降、単にパソコンと略称する）３から構成されている。パソコン３は、インターネット、公衆電話網、ＩＳＤＮなどの公衆通信網４を介して外部の情報センタ５へ接続するように構成されている。
【００１４】
パソコン３は、演算部６としてＣＰＵ６ａと主記憶装置としてのメモリ６ｂとを有している。また、パソコン３は、表示手段としてのディスプレイ７、入力手段としてのキーボード８、記憶手段としてのハードディスク装置（ＨＤＤ）９を有している。
【００１５】
ディスプレイ７は、操作手順や作動状態をオペレータに知らせるものである。キーボード８は、オペレータによって操作入力されるものである。ハードディスク装置９には、機密情報である複数のファイル、たとえば、第１電子データファイルＦ１、第２電子データファイルＦ２、第３電子データファイルＦ３などが格納されている。そして、リーダライタ２を介して、パソコン３とＩＣカード１との間で各種データ交換が行なわれるようにな
っている。
【００１６】
リーダライタ２は、図示しない内部メモリや送信手段などを有していて、ＩＣカード１に対するデータの読取り、書込み（送受信）などを接触あるいは非接触で行なうものである。接触式ＩＣカードを用いる場合には、リーダライタ２に接触式ＩＣカードを挿入するためのＩＣカード挿入部（図示せず）が設けられ、無線式ＩＣカードを用いる場合には、リーダライタ２と無線式ＩＣカードとの間を通信するための通信部（図示せず）が設けられる。
【００１７】
ＩＣカード１は、たとえば、図２に示すように、カード本体１ａの表面に設けられた磁気ストライプ部１１、リーダライタ２と信号の授受を行なう受信手段および出力手段としての通信部１２、および、１つ（あるいは複数）のＩＣチップ１３から構成されている。
【００１８】
通信部１２は、無線式ＩＣカード１の場合にはアンテナ部として構成され、リーダライタ２から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部１２で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ＩＣカード１の場合にはコンタクト部として構成され、リーダライタ２に設けられたＩＣカード端子部（図示しない）と接触することにより電源やクロックを得るようになっている。
【００１９】
ＩＣチップ１３は、制御素子としてのＣＰＵ１４、記憶手段してのデータメモリ１５、ワーキングメモリ１６、プログラムメモリ１７から構成され、通信部１２と接続された状態で一体的にＩＣモジュール化されて、ＩＣカード本体１ａ内に埋設されている。
【００２０】
ＣＰＵ１４は、本実施形態のポイントである後述するファイルを選択する処理を実行する他、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理を行なう制御部である。
【００２１】
データメモリ１５は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）などの消去（書換え）可能な不揮発性メモリで構成されている。
【００２２】
ワーキングメモリ１６は、ＣＰＵ１４が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、ＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリで構成されている。
【００２３】
プログラムメモリ１７は、たとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの書換え不可能な固定メモリで構成されており、上述するような各基本機能を実現するサブルーチンを備えたＣＰＵ１４の制御プログラムなどを記憶している。
【００２４】
なお、ＩＣカード１に登録されているアプリケーションとしては、たとえば、クレジット、ポイントシステム、ＩＤカードなどが挙げられる。
【００２５】
データメモリ１５には、たとえば、図３に示すように、複数のアプリケーションに関する情報がファイル構造で記憶されている。このファイル構造は、ＩＳＯ／ＩＥＣ７８１６−４に基づき、色々なフォルダの種類を持ったディレクトリのツリー構造になっており、複数のアプリケーションが登録可能である。
【００２６】
すなわち、図３に示すように、最上位がＭＦ（Ｍａｓｔｅｒ  Ｆｉｌｅ）２１で、その配下に各アプリケーションごとに設定されるフォルダとしてＤＦ（Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）２２，２３，２４が設けられ、さらに、それらの配下に実際にアプリケーションで使われるユーザデータの格納に使用されるＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）２５，２６，２７，２８が設けられている構成になっている。
【００２７】
また、ＭＦ２１の配下には、アクセス権を確立するためのキーの格納に使用されるキーＥＦ２９が設けられている。なお、ＤＦは搭載しているアプリケーションに相当する数だけ設けられる。
【００２８】
本実施形態では、ＩＣカード１には、たとえば、クレジット系としてＸ社向けの１つのアプリケーションが、ポイント系としてＡ社、Ｂ社向けの２つのアプリケーションがそれぞれ格納されている。
【００２９】
そして、本実施形態では、ＤＦ２２（以後、ＤＦ１とも称す）には、たとえば、クレジットＸ社向けアプリケーション用ファイルとしてＤＦ名が「クレジットＸ社」と設定され、その配下には、クレジットＸ社向けアプリケーションで使用されるＥＦ２５（以後、ＥＦ１−１とも称す）、ＥＦ２６（以後、ＥＦ１−２とも称す）という２つのファイルが存在する。
【００３０】
また、ＤＦ２３（以後、ＤＦ２とも称す）には、たとえば、ポイントＡ社系向けアプリケーション用ファイルとしてＤＦ名が「ポイントＡ社系」と設定され、その配下には、ポイントＡ社系向けアプリケーションで使用されるＥＦ２７（以後、ＥＦ２−１とも称す）、ＥＦ２８（以後、ＥＦ２−２とも称す）という２つのファイルが存在する。このうち、ＥＦ２−１は共通データ、ＥＦ２−２はポイントＡ社系内のそれぞれのデータが格納されている。
【００３１】
ＥＦ２−２に格納されるデータは、たとえば、図４に示すような入れ子構造を持つデータである。すなわち、図４（ａ）に示すように、ポイントＰのデータとして、図４（ａ）に示すように、ポイントＰ識別子（ＥＡ）１６１とポイントＰのデータ長１６２とポイントＰの値１６３とから構成される第２データ表現形式のデータが格納される。
【００３２】
上記ポイントＰの値１６３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１６４とポイント値長１６５とポイント値１６６とから構成されるデータ１６７、ポイント加算値識別子（ＤＦ０４）１６８とポイント加算値長１６９とポイント加算値（０１）１７０とから構成されるデータ１７１、ポイント加算値識別子（ＤＦ０４）１７２とポイント加算値長１７３とポイント加算値（０１）１７４とから構成されるデータ１７５、ポイント加算値識別子（ＤＦ０４）１７６とポイント加算値長１７７とポイント加算値（０２）１７８とから構成されるデータ１７９が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００３３】
また、図４（ｂ）に示すように、ポイントＱのデータとして、ポイントＱ識別子（ＥＢ）１８１とポイントＱのデータ長１８２とポイントＱの値１８３とから構成される第２データ表現形式のデータが格納される。
【００３４】
上記ポイントＱの値１８３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１８４とポイント値長１８５とポイント値１８６とから構成されるデータ１８７、ポイント加算値識別子（ＤＦ０４）１８８とポイント加算値長１８９とポイント加算値（０１）１９０とから構成されるデータ１９１、ポイント加算値識別子（ＤＦ０４）１９２とポイント加算値長１９３とポイント加算値（０３）１９４とから構成されるデータ１９５が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００３５】
図５は、データ識別子を指定することにより読出し・書換え等が行なわれるデータを管理するデータ管理情報を示しており、たとえば、データメモリ１５に格納されている。このデータ管理情報は、データ数領域２００、制御情報領域２０１、空き領域２０２から構成される。データ数領域２００には、制御情報領域２０１に記憶されたデータの数（制御情報の数）を示す情報が記憶される。制御情報領域２０１には、データ（入れ子構造のデータについては第１階層のデータ）の数に応じた数の制御情報２０１ａ，２０１ｂ，…が記憶される。
【００３６】
制御情報領域２０１内の制御情報２０１ａ，２０１ｂ，…は、各データ（入れ子構造のデータについては第１階層のデータ）に対応して設けられる。図５に示す例では、各制御情報２０１ａ，２０１ｂ，…は、データ識別子情報２１０、設定アドレス情報２１１、設定可能サイズ情報２１２、および、セキュリティ条件情報２１３から構成されている。
【００３７】
データ識別子情報２１０は、外部装置から指定された識別子と当該データ識別子情報とを比較し、両者が一致した場合に本情報を後続の処理に使用する。設定アドレス情報２１１は、当該データがカード内のデータメモリ１５のどのアドレスに配置されているかを示す情報である。設定可能サイズ情報２１２は、設定可能なサイズを示す情報であり、本情報の範囲内であれば当該データは可変長にて設定可能である。セキュリティ条件情報２１３は、当該データに対して読出しや書込みを行なう場合に設定されているべきセキュリティ条件である。  
なお、上記データ管理情報の詳細は、たとえば、特開平１１−２８２９８９号公報に記載されているので、それを参照されたい。
【００３８】
図６は、制御情報により所定のアドレスに設定されるデータのフォーマットを示している。データは、制御情報の設定アドレス情報２１１の示すデータメモリ１５上のアドレスに設定されている。図６において、２２０はデータの長さを示すデータ管理情報、２２１はデータの本体部分である。２２２は当該データの正当性管理情報であり、たとえば、データ管理情報２２０およびデータ２２１の排他的論理和などによりデータの正当性の確認に使用される。
【００３９】
図７は、リーダライタ２からＩＣカード１に対して供給される入れ子構造のデータの検索・存在個数出力を指示するための命令データ（検索・存在個数出力コマンド）の構成を示している。検索・存在個数出力コマンドは、コマンドヘッダ部３０１、および、コマンドヘッダ部３０１のデータ長を示すＬｅ部３０６から構成されている。
【００４０】
コマンドヘッダ部３０１は、コマンドの分類部（ＣＬＡ：ｃｌａｓｓ）３０２、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）３０３、および、パラメータデータ（Ｐ１、Ｐ２）３０４，３０５から構成されている。  
Ｐ１部３０４、Ｐ２部３０５は、検索するデータ識別子を示している。すなわち、たとえば、図４におけるポイント加算値識別子“ＤＦ０４”を検索する場合は、Ｐ１部３０４に“ＤＦ”、Ｐ２部３０５に“０４”がセットされる。
【００４１】
ＩＣカード１のＣＰＵ１４は、この検索・存在個数出力コマンドのコマンドヘッダ部３０１のＰ１部３０４とＰ２部３０５にセットされたデータ識別子から、指定されたデータ識別子を探し出し、出力する。
【００４２】
図８は、リーダライタ２から送られた検索・存在個数出力コマンドを実行した後、ＩＣカード１がリーダライタ２へ出力するレスポンスデータの構成を示している。このレスポンスデータは、検索・存在個数出力コマンドのＰ１部３０４、Ｐ２部３０５で指定された識別子のＣＰＵ１４による検索結果（指定された識別子を含む識別子情報）がセットされるデータ部４０１、および、処理結果を示すステータスコードがセットされるステータスコード部４０２，４０３から構成されている。
【００４３】
上記データ部４０１には、検索・存在個数出力コマンドに対する検索結果がセットされる。ここでは、上記データ部４０１には、検索・存在個数出力コマンドで指定された第２階層のデータの識別子の検索結果として、指定された識別子の第２階層のデータを含む第１階層のデータの識別子を示す情報とその存在個数がセットされる。
【００４４】
すなわち、たとえば、図４に示すデータを有するＩＣカード１では、第２階層のデータとしてポイント加算値識別子“ＤＦ０４”を指定するコマンドを実行した場合、データ部４０１には、ポイントＰ識別子（ＥＡ）１６１と存在個数“０３”と、ポイントＱ識別子（ＥＢ）１８１と存在個数“０２”とがセットされて出力される。
【００４５】
図９は、出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示しており、たとえば、データメモリ１５内に設けられている。このレスポンス用データメモリは、レスポンスデータ長管理情報が格納される領域５０１、および、レスポンスデータが格納される領域５０２から構成されている。このレスポンス用データメモリに格納されるデータは、図８に示すデータ部４０１にセットされるデータである。
【００４６】
次に、このような構成において検索・存在個数出力コマンドに対する処理について図１０および図１１に示すフローチャートを参照して説明する。  
まず、外部装置としてのリーダライタ２がＩＣカード１に対して検索・存在個数出力コマンドを供給したものとする。ＩＣカード１では、通信部１２が検索・存在個数出力コマンドを受信する。受信した検索・存在個数出力コマンドは、通信部１２からＣＰＵ１４に供給される。すると、ＣＰＵ１４は、受信した検索・存在個数出力コマンドのコマンドヘッダ部３０１のＣＬＡ部３０２およびＩＮＳ部３０３により当該コマンドが検索・存在個数出力コマンドであることを判断する。
【００４７】
ＩＣカード１のＣＰＵ１４は、受信されたコマンドが検索・存在個数出力コマンドであると判断すると、図５のデータ管理情報から第１番目の制御情報（制御情報＃１）２０１ａを読出す（ステップＳ１００）。
【００４８】
次に、当該制御情報２０１ａ内の設定アドレス情報２１１で示すアドレスに既に第１階層のデータが設定されているか否かを確認する（ステップＳ１０１）。第１階層のデータが設定されている場合はステップＳ１０３へ、第１階層のデータが設定されていない場合は後述するステップＳ１２２へ進む。
【００４９】
ステップＳ１０３では、当該データのデータ長管理情報２２０が制御情報２０１ａ内の設定可能サイズ情報２１２の範囲内であるかを確認する。範囲内である場合はステップＳ１０５へ、範囲を超えている場合はステップＳ１０４へ進む。ステップＳ１０４では、データ管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００５０】
ステップＳ１０５では、当該データのデータ正当性管理情報２２２を確認する。正当性が確認できた場合はステップＳ１０７へ、異常である場合はステップＳ１０６へ進む。ステップＳ１０６では、データ正当性管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００５１】
ステップＳ１０７では、制御情報２０１ａ内の設定アドレス情報２１１が示すアドレスのデータを１バイト（Ｂｙｔｅ）読込むとともに、ワーキングメモリ１６の識別子カウンタをクリアする。次に、この読込んだデータを確認し（ステップＳ１０８）、次のデータも識別子の一部であると確認された場合は、ステップＳ１０９へ進み、次のデータを１バイト読込む。
【００５２】
ステップＳ１０８の確認の結果、次のデータも識別子の一部でないと確認された場合、あるいは、ステップＳ１０９の処理後、読込んだ識別子がコマンドのＰ１部３０４、Ｐ２部３０５で指定されている識別子と一致するか否かをチェックし（ステップＳ１１０）、一致する場合はステップＳ１１１へ進み、一致しない場合はステップＳ１１２へ進む。
【００５３】
ステップＳ１１２では、次のデータを１バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップＳ１１２で求められた次の識別子に相当するアドレスとデータ長管理情報２２０との整合性を確認し（ステップＳ１１３）、後ろにデータがない場合は後述するステップＳ１２０へ進み、後ろにデータがある場合はステップＳ１１６へ進む。ここで、後ろにデータがないと判定する状態としては、たとえば、求められたアドレスがデータ長管理情報２２０で指定されたデータ長のアドレスの範囲を超えている場合などがある（図１２参照）。
【００５４】
ステップＳ１１６では、ステップＳ１１２で求められた次の識別子に相当するアドレスのデータを１バイト読込む。次に、この読込んだデータを確認し（ステップＳ１１７）、次のデータも識別子の一部であると確認された場合は次のデータを１バイト読込み（ステップＳ１１８）、ステップＳ１１７へ戻る。
【００５５】
ステップＳ１１７の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップＳ１１７，Ｓ１１８で読込んだデータが次のデータの識別子を示すデータであるものと判断する。したがって、次のデータは識別子の一部でないと判断した場合、ステップＳ１１０へ戻り、読込んだ識別子がコマンドのＰ１部３０４とＰ２部３０５で指定されている識別子と一致するか否かを判断する。
【００５６】
ステップＳ１１０における判断の結果、読込んだ識別子がコマンドのＰ１部３０４とＰ２部３０５で指定されている識別子と一致すると判断した場合、ワーキングメモリ１６の識別子カウンタをインクリメントし（ステップＳ１１１）、ステップＳ１１２へ進む。
【００５７】
ステップＳ１１３における判断の結果、後ろにデータが無い場合（つまり、１つの制御情報で示される第１階層のデータの検索が終了した場合）、ＣＰＵ１４はワーキングメモリ１６の識別子カウンタが零（０）であるか否かを判断する（ステップＳ１２０）。
【００５８】
ステップＳ１２０における判断の結果、零（０）でない場合、ＣＰＵ１４は当該制御情報２０１ａ内のデータ識別子情報２１０（つまり、第１階層のデータの識別子）とワーキングメモリ１６の識別子カウンタの値をレスポンス用データメモリ（図９参照）の領域５０２に格納する（ステップＳ１２１）。この際、当該第１階層のデータの識別子は、レスポンス用データメモリの領域５０１に格納しているレスポンスデータ長管理情報としてデータ長をオフセットしたアドレスにセットされる。
【００５９】
また、ＣＰＵ１４は、レスポンス用データメモリの領域５０２に識別子とワーキングメモリ１６の識別子カウンタの値をセットすると、レスポンスデータ長管理情報をセットしたデータ長分を加算することにより、セットした識別子のデータ分だけレスポンスデータのデータ長を変更する（ステップＳ１２１）。
【００６０】
ステップＳ１２２で、ＣＰＵ１４は、データ管理情報に、当該制御情報の後に更に次の制御情報があるか否かを確認し、ある場合はステップＳ１２３へ進み、次の制御情報２０１ｂを読出して、ステップＳ１０１へ戻る。
【００６１】
すなわち、ＣＰＵ１４は、ステップＳ１００〜Ｓ１２３の処理を全ての制御情報について実行する。これにより、各制御情報で示される全ての第１階層のデータについて、当該検索・存在個数出力コマンドで指定された識別子の第２階層のデータの検索およびカウントを行なう。
【００６２】
ステップＳ１２２における確認の結果、次の制御情報がない場合、ＣＰＵ１４は、各制御情報で示される全ての第１階層のデータについての検索が完了したと判断する。これにより、検索処理が完了したと判断した場合、ＣＰＵ１４は、異常無しの応答ステータスとともにレスポンス用データメモリ（図９参照）内のレスポンスデータ長管理情報分のレスポンスデータをリーダライタ２へ出力する（ステップＳ１２４）。
【００６３】
なお、本例では、識別子が１バイト長または２バイト長のみで構成されるデータで説明を行なったが、３バイト以上の識別子が含まれる場合も同様である。また、本例では、長さ情報が１バイト長のみで構成されるデータで説明を行なったが、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで記載されているような、長さ情報が１バイト以上で表現される場合も同様である。
【００６４】
次に、ＩＣカード１における第２階層のデータの合計値を出力する処理について説明する。  
図１３は、リーダライタ２からＩＣカード１に対して供給される第２階層のデータの合計値を出力する指示を行なうための命令データ（合計値出力コマンド）の構成を示している。合計値出力コマンドは、コマンドヘッダ部６０１、および、コマンドヘッダ部６０１のデータ長を示すＬｅ部６０６から構成されている。
【００６５】
コマンドヘッダ部６０１は、コマンドの分類部（ＣＬＡ：ｃｌａｓｓ）６０２、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）６０３、および、パラメータデータ（Ｐ１、Ｐ２）６０４，６０５から構成されている。
【００６６】
Ｐ１部６０４、Ｐ２部６０５は、検索するデータ識別子を示している。すなわち、たとえば、図４におけるポイント加算値識別子“ＤＦ０４”を検索する場合は、Ｐ１部６０４に“ＤＦ”、Ｐ２部６０５に“０４”がセットされる。
【００６７】
ＩＣカード１のＣＰＵ１４は、この合計値出力コマンドのコマンドヘッダ部６０１のＰ１部６０４とＰ２部６０５にセットされたデータ識別子から、指定されたデータ識別子を探し出し、合計値を計算して出力する。
【００６８】
図１４は、リーダライタ２から送られた合計値出力コマンドを実行した後、ＩＣカード１がリーダライタ２へ出力するレスポンスデータの構成を示している。このレスポンスデータは、合計値出力コマンドのＰ１部６０４、Ｐ２部６０５で指定された識別子のＣＰＵ１４による計算結果がセットされるデータ部７０１、および、処理結果を示すステータスコードがセットされるステータスコード部７０２，７０３から構成されている。
【００６９】
上記データ部７０１には、合計値出力コマンドに対する計算結果がセットされる。ここでは、上記データ部７０１には、合計値出力コマンドで指定された第２階層のデータの識別子の検索結果として、指定された識別子の第２階層のデータの合計値がセットされる。
【００７０】
すなわち、たとえば、図４に示すデータを有するＩＣカード１では、第２階層のデータとしてポイント加算値識別子“ＤＦ０４”を指定するコマンドを実行した場合、データ部７０１には、ポイントＰ識別子“ＥＡ”とポイントＱ識別子“ＥＢ”に含まれるポイント加算値識別子“ＤＦ０４”のポイント加算値１７０，１７４，１７８，１９０，１９４の合計値“０８”がセットされて出力される。
【００７１】
次に、このような構成において合計値出力コマンドに対する処理について図１５および図１６に示すフローチャートを参照して説明する。  
まず、外部装置としてのリーダライタ２がＩＣカード１に対して合計値出力コマンドを供給したものとする。ＩＣカード１では、通信部１２が合計値出力コマンドを受信する。受信した合計値出力コマンドは、通信部１２からＣＰＵ１４に供給される。すると、ＣＰＵ１４は、受信した合計値出力コマンドのコマンドヘッダ部６０１のＣＬＡ部６０２およびＩＮＳ部６０３により当該コマンドが合計値出力コマンドであることを判断する。
【００７２】
ＩＣカード１のＣＰＵ１４は、受信されたコマンドが合計値出力コマンドであると判断すると、図５のデータ管理情報から第１番目の制御情報（制御情報＃１）２０１ａを読出す（ステップＳ２００）。
【００７３】
次に、当該制御情報２０１ａ内の設定アドレス情報２１１で示すアドレスに既に第１階層のデータが設定されているか否かを確認する（ステップＳ２０１）。第１階層のデータが設定されている場合はステップＳ２０３へ、第１階層のデータが設定されていない場合は後述するステップＳ２２０へ進む。
【００７４】
ステップＳ２０３では、当該データのデータ長管理情報２２０が制御情報２０１ａ内の設定可能サイズ情報２１２の範囲内であるかを確認する。範囲内である場合はステップＳ２０５へ、範囲を超えている場合はステップＳ２０４へ進む。ステップＳ２０４では、データ管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００７５】
ステップＳ２０５では、当該データのデータ正当性管理情報２２２を確認する。正当性が確認できた場合はステップＳ２０７へ、異常である場合はステップＳ２０６へ進む。ステップＳ２０６では、データ正当性管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００７６】
ステップＳ２０７では、制御情報２０１ａ内の設定アドレス情報２１１が示すアドレスのデータを１バイト読込むとともに、ワーキングメモリ１６の合計値エリアをクリアする。次に、この読込んだデータを確認し（ステップＳ２０８）、次のデータも識別子の一部であると確認された場合は、ステップＳ２０９へ進み、次のデータを１バイト読込む。
【００７７】
ステップＳ２０８の確認の結果、次のデータも識別子の一部でないと確認された場合、あるいは、ステップＳ２０９の処理後、読込んだ識別子がコマンドのＰ１部６０４、Ｐ２部６０５で指定されている識別子と一致するか否かをチェックし（ステップＳ２１０）、一致する場合はステップＳ２１１へ進み、一致しない場合はステップＳ２１２へ進む。
【００７８】
ステップＳ２１２では、次のデータを１バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップＳ２１２で求められた次の識別子に相当するアドレスとデータ長管理情報２２０との整合性を確認し（ステップＳ２１３）、後ろにデータがある場合はステップＳ２１６へ進む。ここで、後ろにデータがないと判定する状態としては、たとえば、求められたアドレスがデータ長管理情報２２０で指定されたデータ長のアドレスの範囲を超えている場合などがある（図１２参照）。
【００７９】
ステップＳ２１６では、ステップＳ２１２で求められた次の識別子に相当するアドレスのデータを１バイト読込む。次に、この読込んだデータを確認し（ステップＳ２１７）、次のデータも識別子の一部であると確認された場合は次のデータを１バイト読込み（ステップＳ２１８）、ステップＳ２１７へ戻る。
【００８０】
ステップＳ２１７の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップＳ２１７，Ｓ２１８で読込んだデータが次のデータの識別子を示すデータであるものと判断する。したがって、次のデータは識別子の一部でないと判断した場合、ステップＳ２１０へ戻り、読込んだ識別子がコマンドのＰ１部６０４とＰ２部６０５で指定されている識別子と一致するか否かを判断する。
【００８１】
ステップＳ２１０における判断の結果、読込んだ識別子がコマンドのＰ１部６０４とＰ２部６０５で指定されている識別子と一致すると判断した場合、当該識別子の次のデータを１バイト読込み、読込んだ値をデータ長とするとともに、当該識別子のデータ長分のデータを読込み、ワーキングメモリ１６の合計値エリアに加算する（ステップＳ２１１）。
【００８２】
ステップＳ２１３における判断の結果、後ろにデータがない場合（つまり、１つの制御情報で示される第１階層のデータの検索が終了した場合）、ＣＰＵ１４は、データ管理情報に、当該制御情報の後に更に次の制御情報があるか否かを確認し（ステップＳ２２０）、ある場合はステップＳ２２１へ進み、次の制御情報２０１ｂを読出して、ステップＳ２０１へ戻る。
【００８３】
すなわち、ＣＰＵ１４は、ステップＳ２００〜Ｓ２２１の処理を全ての制御情報について実行する。これにより、各制御情報で示される全ての第１階層のデータについて、当該合計値出力コマンドで指定された識別子の第２階層のデータの検索および合計値の計算を行なう。
【００８４】
ステップＳ２２０における確認の結果、次の制御情報がない場合、ＣＰＵ１４は、各制御情報で示される全ての第１階層のデータについての検索が完了したと判断する。これにより、検索処理が完了したと判断した場合、ＣＰＵ１４は、異常無しの応答ステータスとともにワーキングメモリ１６の合計値エリアのデータをリーダライタ２へ出力する（ステップＳ２２２）。
【００８５】
これにより、データ全体を読出すことなく、指定された第２階層のデータの合計値を得ることができる。
【００８６】
次に、ＩＣカード１における第２階層のデータの最終更新日値（最新の日付情報）を出力する処理について説明する。  
図１７は、データ内に最終更新日値が含まれる入れ子構造のデータ例を示している。図１７（ａ）に示すように、ポイントＸのデータとして、ポイントＸ識別子（Ｅ１）１０１とポイントＸのデータ長１０２とポイントＸの値１１２とから構成される第２データ表現形式のデータが格納される。上記ポイントＸの値１１２は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１０３とポイント値長１０４とポイント値１０５とから構成されるデータ１１３、ポイント上限値識別子（ＤＦ０２）１０６とポイント上限値長１０７とポイント上限値１０８とから構成されるデータ１１４、ポイント最終更新日識別子（ＤＦ０３）１０９とポイント最終更新日値長１１０とポイント最終更新日値（２００４１２２４）１１１とから構成されるデータ１１５が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００８７】
また、図１７（ｂ）に示すように、ポイントＹのデータとして、ポイントＹ識別子（Ｅ２）１２１とポイントＹのデータ長１２２とポイントＹの値１２３とから構成される第２データ表現形式のデータが格納される。上記ポイントＹの値１２３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１２４とポイント値長１２５とポイント値１２６とから構成されるデータ１２７、ポイント上限値識別子（ＤＦ０２）１２８とポイント上限値長１２９とポイント上限値１３０とから構成されるデータ１３１が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００８８】
また、図１７（ｃ）に示すように、ポイントＺのデータとして、ポイントＺ識別子（Ｅ３）１４１とポイントＺのデータ長１４２とポイントＺの値１４３とから構成される第２データ表現形式のデータが格納される。上記ポイントＺの値１４３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１４４とポイント値長１４５とポイント値１４６とから構成されるデータ１４７、ポイント上限値識別子（ＤＦ０２）１４８とポイント上限値長１４９とポイント上限値１５０とから構成されるデータ１５１、ポイント最終更新日識別子（ＤＦ０３）１５２とポイント最終更新日値長１５３とポイント最終更新日値（２００５０４０１）１５４とから構成されるデータ１５５が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００８９】
図１８は、リーダライタ２からＩＣカード１に対して供給される第２階層のデータの最終更新日値を出力する指示を行なうための命令データ（最終更新日出力コマンド）の構成を示している。最終更新日出力コマンドは、コマンドヘッダ部８０１、および、コマンドヘッダ部８０１のデータ長を示すＬｅ部８０６から構成されている。
【００９０】
コマンドヘッダ部８０１は、コマンドの分類部（ＣＬＡ：ｃｌａｓｓ）８０２、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）８０３、および、パラメータデータ（Ｐ１、Ｐ２）８０４，８０５から構成されている。
【００９１】
Ｐ１部８０４、Ｐ２部８０５は、検索するデータ識別子を示している。すなわち、たとえば、図１７におけるポイント最終更新日識別子“ＤＦ０３”を検索する場合は、Ｐ１部６０４に“ＤＦ”、Ｐ２部６０５に“０３”がセットされる。
【００９２】
ＩＣカード１のＣＰＵ１４は、この最終更新日出力コマンドのコマンドヘッダ部８０１のＰ１部８０４とＰ２部８０５にセットされたデータ識別子から、指定されたデータ識別子を探し出し、最終更新日値を計算して出力する。
【００９３】
図１９は、リーダライタ２から送られた最終更新日出力コマンドを実行した後、ＩＣカード１がリーダライタ２へ出力するレスポンスデータの構成を示している。このレスポンスデータは、最終更新日出力コマンドのＰ１部８０４、Ｐ２部８０５で指定された識別子のＣＰＵ１４による計算結果がセットされるデータ部９０１、および、処理結果を示すステータスコードがセットされるステータスコード部９０２，９０３から構成されている。
【００９４】
上記データ部９０１には、最終更新日出力コマンドに対する計算結果がセットされる。ここでは、上記データ部７０１には、合計値出力コマンドで指定された第２階層のデータの識別子の検索結果として、指定された識別子の第２階層のデータの最終更新日値がセットされる。
【００９５】
すなわち、たとえば、図１７に示すデータを有するＩＣカード１では、第２階層のデータとしてポイント最終更新日識別子“ＤＦ０３”を指定するコマンドを実行した場合、データ部９０１には、ポイントＸ識別子“Ｅ１”とポイントＺ識別子“Ｅ３”に含まれるポイント最終更新日識別子“ＤＦ０３”のポイント最終更新日値（２００５０４０１）１５４がセットされて出力される。
【００９６】
次に、このような構成において最終更新日出力コマンドに対する処理について図２０および図２１に示すフローチャートを参照して説明する。  
まず、外部装置としてのリーダライタ２がＩＣカード１に対して最終更新日出力コマンドを供給したものとする。ＩＣカード１では、通信部１２が最終更新日出力コマンドを受信する。受信した最終更新日出力コマンドは、通信部１２からＣＰＵ１４に供給される。すると、ＣＰＵ１４は、受信した最終更新日出力コマンドのコマンドヘッダ部８０１のＣＬＡ部８０２およびＩＮＳ部８０３により当該コマンドが最終更新日出力コマンドであることを判断する。
【００９７】
ＩＣカード１のＣＰＵ１４は、受信されたコマンドが最終更新日出力コマンドであると判断すると、図５のデータ管理情報から第１番目の制御情報（制御情報＃１）２０１ａを読出す（ステップＳ３００）。
【００９８】
次に、当該制御情報２０１ａ内の設定アドレス情報２１１で示すアドレスに既に第１階層のデータが設定されているか否かを確認する（ステップＳ３０１）。第１階層のデータが設定されている場合はステップＳ３０３へ、第１階層のデータが設定されていない場合は後述するステップＳ３２１へ進む。
【００９９】
ステップＳ３０３では、当該データのデータ長管理情報２２０が制御情報２０１ａ内の設定可能サイズ情報２１２の範囲内であるかを確認する。範囲内である場合はステップＳ３０５へ、範囲を超えている場合はステップＳ３０４へ進む。ステップＳ３０４では、データ管理情報異常の応答ステータスをリーダライタ２へ出力する。
【０１００】
ステップＳ３０５では、当該データのデータ正当性管理情報２２２を確認する。正当性が確認できた場合はステップＳ３０７へ、異常である場合はステップＳ３０６へ進む。ステップＳ３０６では、データ正当性管理情報異常の応答ステータスをリーダライタ２へ出力する。
【０１０１】
ステップＳ３０７では、制御情報２０１ａ内の設定アドレス情報２１１が示すアドレスのデータを１バイト読込むとともに、ワーキングメモリ１６の最終更新日エリアをクリアする。次に、この読込んだデータを確認し（ステップＳ３０８）、次のデータも識別子の一部であると確認された場合は、ステップＳ３０９へ進み、次のデータを１バイト読込む。
【０１０２】
ステップＳ３０８の確認の結果、次のデータも識別子の一部でないと確認された場合、あるいは、ステップＳ３０９の処理後、読込んだ識別子がコマンドのＰ１部８０４、Ｐ２部８０５で指定されている識別子と一致するか否かをチェックし（ステップＳ３１０）、一致する場合はステップＳ３１１へ進み、一致しない場合はステップＳ３１２へ進む。
【０１０３】
ステップＳ３１２では、次のデータを１バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップＳ３１２で求められた次の識別子に相当するアドレスとデータ長管理情報２２０との整合性を確認し（ステップＳ３１３）、後ろにデータがある場合はステップＳ３１６へ進む。ここで、後ろにデータがないと判定する状態としては、たとえば、求められたアドレスがデータ長管理情報２２０で指定されたデータ長のアドレスの範囲を超えている場合などがある（図１２参照）。
【０１０４】
ステップＳ３１６では、ステップＳ３１２で求められた次の識別子に相当するアドレスのデータを１バイト読込む。次に、この読込んだデータを確認し（ステップＳ３１７）、次のデータも識別子の一部であると確認された場合は次のデータを１バイト読込み（ステップＳ３１８）、ステップＳ３１７へ戻る。
【０１０５】
ステップＳ３１７の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップＳ３１７，Ｓ３１８で読込んだデータが次のデータの識別子を示すデータであるものと判断する。したがって、次のデータは識別子の一部でないと判断した場合、ステップＳ３１０へ戻り、読込んだ識別子がコマンドのＰ１部８０４とＰ２部８０４で指定されている識別子と一致するか否かを判断する。
【０１０６】
ステップＳ３１０における判断の結果、読込んだ識別子がコマンドのＰ１部８０４とＰ２部８０４で指定されている識別子と一致すると判断した場合、当該識別子の次のデータを１バイト読込み、読込んだ値をデータ長とするとともに、当該識別子のデータ長分のデータを読込む（ステップＳ３１１）。
【０１０７】
次に、ステップＳ３１１で読込んだデータとワーキングメモリ１６の最終更新日エリアのデータ（更新日）との比較を行ない（ステップＳ３１９）、ワーキングメモリ１６の最終更新日エリアのデータ（更新日）の方が新しいと判断した場合（ワーキングメモリ１６の最終更新日エリアのデータの方が新しい）、ステップＳ３１２へ進む。
【０１０８】
ステップＳ３１９における比較の結果、ワーキングメモリ１６の最終更新日エリアのデータ（更新日）の方が古いと判断した場合（ワーキングメモリ１６の最終更新日エリアのデータの方が古い）、ワーキングメモリ１６の最終更新日エリアのデータを読込んだデータに変更し（ステップＳ３２０）、ステップＳ３１２へ進む。
【０１０９】
ステップＳ３１３における判断の結果、後ろにデータがない場合（つまり、１つの制御情報で示される第１階層のデータの検索が終了した場合）、ＣＰＵ１４は、データ管理情報に、当該制御情報の後に更に次の制御情報があるか否かを確認し（ステップＳ３２１）、ある場合はステップＳ３２２へ進み、次の制御情報２０１ｂを読出して、ステップＳ３０１へ戻る。
【０１１０】
すなわち、ＣＰＵ１４は、ステップＳ３００〜Ｓ３２２の処理を全ての制御情報について実行する。これにより、各制御情報で示される全ての第１階層のデータについて、当該最終更新日出力コマンドで指定された識別子の第２階層のデータの検索および最終更新日値（最新の更新日値）の計算を行なう。
【０１１１】
ステップＳ３２１における確認の結果、次の制御情報がない場合、ＣＰＵ１４は、各制御情報で示される全ての第１階層のデータについての検索が完了したと判断する。これにより、検索処理が完了したと判断した場合、ＣＰＵ１４は、異常無しの応答ステータスとともにワーキングメモリ１６の最終更新日エリアのデータをリーダライタ２へ出力する（ステップＳ３２３）。
【０１１２】
以上説明したように、上記実施の形態によれば、入れ子構造データを記憶するＩＣカードにおいて、入れ子構造になっているデータをデータ構造解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータを操作することで容易に入れ子構造データの合計値や最終更新日値などのデータを取得することが可能となる。
【０１１３】
なお、前記実施の形態では、求めた識別子、その存在個数、値の合計値、最終更新日値などのデータを外部（リーダライタ）へ出力する場合について説明したが、必ずしも外部へ出力する必要はなく、たとえば、内部で保持しておくことで、内部で利用したり、必要に応じて外部へ出力したりする場合にも適用できる。
【０１１４】
また、携帯可能電子装置としてＩＣカードに適用した場合について説明したが、これに限定されるものではなく、たとえば、ＰＤＡと称される携帯端末装置や携帯電話機などであっても適用でき、また、カード型に限らず、冊子型、ブロック形あるいはタグ型であってもよい。
【０１１５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【０１１６】
以下に、本願出願の当所の特許請求の範囲に記載された発明を付記する。
【０１１７】
［１］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子と当該第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【０１１８】
［２］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【０１１９】
［３］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【０１２０】
［４］前記処理手段は、求めた結果を当該携帯可能電子装置の外部へ出力することを特徴とする請求項１〜請求項３のうちいずれか１つに記載の携帯可能電子装置。
【０１２１】
［５］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子と当該第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【０１２２】
［６］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【０１２３】
［７］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【０１２４】
［８］前記処理手段は、求めた結果を当該ＩＣカードの外部へ出力することを特徴とする請求項５〜請求項７のうちいずれか１つに記載のＩＣカード。
【０１２５】
［９］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子と当該第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段と、
を具備したことを特徴とするＩＣモジュール。
【０１２６】
［１０］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータの識別子を求める処理手段と、
を具備したことを特徴とするＩＣモジュール。
【０１２７】
［１１］識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子を含む第２データ表現形式のデータ内に存在する第１データ表現形式の識別子の存在個数を求める処理手段と、
を具備したことを特徴とするＩＣモジュール。
【符号の説明】
【０１２８】
１…ＩＣカード（携帯可能電子装置）、１ａ…ＩＣカード本体、２…リーダライタ（外
部装置）、３…パーソナルコンピュータ、１１…磁気ストライプ部、１２…通信部、１３
…ＩＣチップ、１４…ＣＰＵ、１５…データメモリ、１６…ワーキングメモリ、１７…プ
ログラムメモリ。
【図１】
0005269179.tif 000002
【図２】
0005269179.tif 000003
【図３】
0005269179.tif 000004
【図４】
0005269179.tif 000005
【図５】
0005269179.tif 000006
【図６】
0005269179.tif 000007
【図７】
0005269179.tif 000008
【図８】
0005269179.tif 000009
【図９】
0005269179.tif 000010
【図１０】
0005269179.tif 000011
【図１１】
0005269179.tif 000012
【図１２】
0005269179.tif 000013
【図１３】
0005269179.tif 000014
【図１４】
0005269179.tif 000015
【図１５】
0005269179.tif 000016
【図１６】
0005269179.tif 000017
【図１７】
0005269179.tif 000018
【図１８】
0005269179.tif 000019
【図１９】
0005269179.tif 000020
【図２０】
0005269179.tif 000021
【図２１】
0005269179.tif 000022