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