(57)【要約】【課題】メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびＩＣカードを提供する。【解決手段】外部から供給される命令データに基づいて各種処理を実行するＩＣカードにおいて、メモリから入れ子構造のデータを読出す際、識別子が当該データが無効を示す特定の値（「００」）であるか否かをチェックし、識別子が特定の値である場合は当該データが無効データであると判断してそのデータを省き、有効なデータのみを出力データとする。【選択図】      図５
2007102312.tif 000002
【特許請求の範囲】
【請求項１】
当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第１データ表現形式とし、前記データ部に前記第１データ表現形式で表現されるデータが少なくとも２つ以上連結されてなる第２データ表現形式のデータを記憶したメモリと、
外部から供給される命令データに基づき前記メモリから第２データ表現形式のデータを読出す際、第１データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
前記処理手段は、読出した特定の値でない識別子を有する第１データ表現形式のデータを連結して新たな第２データ表現形式のデータとするとともに、この第２データ表現形式のデータの長さ情報を新たに連結し直した長さに置き換えて当該第２データ表現形式のデータを外部へ出力することを特徴とする請求項１記載の携帯可能電子装置。
【請求項３】
前記処理手段は、読出した特定の値でない識別子を有する第１データ表現形式のデータを、読出時に除いた特定の値の識別子のデータが存在した位置を詰めて連結し新たな第２データ表現形式のデータとすることを特徴とする請求項２記載の携帯可能電子装置。
【請求項４】
当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第１データ表現形式とし、前記データ部に前記第１データ表現形式で表現されるデータが少なくとも２つ以上連結されてなる第２データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第２データ表現形式のデータを読出す際、第１データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを有したＩＣモジュールと、
このＩＣモジュールを収納したＩＣカード本体と、
を具備したことを特徴とするＩＣカード。
【請求項５】
前記処理手段は、読出した特定の値でない識別子を有する第１データ表現形式のデータを連結して新たな第２データ表現形式のデータとするとともに、この第２データ表現形式のデータの長さ情報を新たに連結し直した長さに置き換えて当該第２データ表現形式のデータを外部へ出力することを特徴とする請求項４記載のＩＣカード。
【請求項６】
前記処理手段は、読出した特定の値でない識別子を有する第１データ表現形式のデータを、読出時に除いた特定の値の識別子のデータが存在した位置を詰めて連結し新たな第２データ表現形式のデータとすることを特徴とする請求項５記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびＣＰＵ（セントラル・プロセッシング・ユニット）などの制御素子を有するＩＣ（集積回路）チップを内蔵し、外部から供給される命令データに基づいて各種処理を実行するＩＣカードなどの携帯可能電子装置およびＩＣカードに関する。
【背景技術】
【０００２】
最近、携帯可能電子装置として、不揮発性メモリとしてのＥＥＰＲＯＭ、揮発性メモリとしてのＲＡＭ、これらのメモリに対してアクセス（データの読出しおよびまたは書込み等）を行なう制御素子としてのＣＰＵ、および、ＣＰＵの動作用プログラム等を格納したＲＯＭを有し、外部から供給される命令データに基づいてデータの入出力等を行なう手段を備えたＩＣチップを内蔵したＩＣカードが産業各方面で利用されている。
【０００３】
一般に、この種のＩＣカードは、外部装置（ＩＣカードリーダ・ライタ）からの読出しコマンドを受信すると、対象となるデータを不揮発性メモリから検索し、該当したデータが存在する場合、当該データをその先頭からデータ長分、読出すようになっている。
【０００４】
また、不揮発性メモリ内のデータは、当該データの種別を示す識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されていて、識別子によっては、いわゆる入れ子構造（ＴＬＶ構造ともいわれる）になっているものもある。このような入れ子構造のデータについては、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで構造化されたタグフィールド（Ｔａｇ  ｆｉｅｌｄ）などが定義されている。
【０００５】
このような入れ子構造のデータを複数連結してなるデータを読出す場合に対しても、同様に先頭からデータを読出していく。その場合、読出すデータ内に無効な入れ子構造のデータを含む場合にも、指定された範囲の全てのデータを読出し出力している。
【非特許文献１】ＩＳＯ／ＩＥＣ７８１６−４
【特許文献１】特開２００５−１１１７１号公報
【特許文献２】特開２００４−１７８１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来は、データ内に複数の入れ子構造のデータを持つ場合、その中に無効な入れ子構造のデータが含まれていても、指定された範囲の全てのデータを読出し出力していため、不要なデータまでを読出してしまうという問題がある。また、無効なデータをも含むので、外部装置との通信を含めた処理時間が長くなるという問題もある。
【０００７】
そこで、本発明は、メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の携帯可能電子装置は、当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第１データ表現形式とし、前記データ部に前記第１データ表現形式で表現されるデータが少なくとも２つ以上連結されてなる第２データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第２データ表現形式のデータを読出す際、第１データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを具備している。
【０００９】
また、本発明のＩＣカードは、当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第１データ表現形式とし、前記データ部に前記第１データ表現形式で表現されるデータが少なくとも２つ以上連結されてなる第２データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第２データ表現形式のデータを読出す際、第１データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを有したＩＣモジュールと、このＩＣモジュールを収納したＩＣカード本体とを具備している。
【発明の効果】
【００１０】
本発明によれば、メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびＩＣカードを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本発明に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１１をカードリーダ・ライタ１２を介してパーソナルコンピュータなどの端末装置１３と接続可能にするとともに、端末装置１３にキーボード１４、ＣＲＴ表示部１５、プリンタ１６を接続して構成される。
【００１２】
ＩＣカード１１は、たとえば、図２に示すように、カード本体１１ａの表面に設けられた磁気ストライプ部１０１、リーダライタ１２と信号の授受を行なう受信手段および出力手段としての通信部１０２、および、１つ（あるいは複数）のＩＣチップ１０３から構成されている。
【００１３】
通信部１０２は、ＩＣカード１１が非接触式（無線式）ＩＣカードの場合にはアンテナ部として構成され、リーダライタ１２から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部１０２で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ＩＣカードの場合にはコンタクト部として構成され、リーダライタ１２に設けられたＩＣカード端子部（図示しない）と接触することにより電源やクロックを得るようになっている。
【００１４】
ＩＣチップ１０３は、制御素子としてのＣＰＵ１０４、記憶手段してのデータメモリ１０５、ワーキングメモリ１０６、プログラムメモリ１０７から構成され、通信部１０２と接続された状態で一体的にＩＣモジュール化されて、ＩＣカード本体１１ａ内に埋設されている。  
ＣＰＵ１０４は、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理を行なう制御部である。
【００１５】
データメモリ１０５は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）などの消去（書換え）可能な不揮発性メモリで構成されている。
【００１６】
ワーキングメモリ１０６は、ＣＰＵ１０４が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、ＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリで構成されている。
【００１７】
プログラムメモリ１０７は、たとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの書換え不可能な固定メモリで構成されており、ＣＰＵ１０４の制御プログラムなどを記憶している。  
なお、当該ＩＣカード１１に登録されるアプリケーションとしては、たとえば、クレジット、ポイントシステム、ＩＤカードなどが挙げられる。
【００１８】
データメモリ１０５内（たとえば、エレメンタリーファイル（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ））に格納されるデータは、たとえば、図３に示すような入れ子構造を持つデータである。すなわち、図３に示すように、当該データの種別を示すもので当該データが無効なデータの場合は特定の値（たとえば、「００」）に設定される識別子（ＴＡＧ）２０１と、当該データの長さを示す長さ情報（ＬＥＮ）２０２と、当該データそのものを示すデータ部（ＶＡＬＵＥ）２０３とから構成される第２データ表現形式のデータが格納される。  
なお、以降の説明では、第２データ表現形式のデータを親データ、識別子２０１は親識別子、長さ情報２０２は親長さ情報、データ部２０３は親データ部、とも呼称する。
【００１９】
上記データ部２０３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、識別子（Ｔ１）２０４と長さ情報（Ｌ１）２０５とデータ部（Ｖ１）２０６とから構成されるデータ２０７、識別子（Ｔ２）２０８と長さ情報（Ｌ２）２０９とデータ部（Ｖ２）２１０とから構成されるデータ２１１、識別子（Ｔ３）２１２と長さ情報（Ｌ３）２１３とデータ部（Ｖ３）２１４とから構成されるデータ２１５、識別子（Ｔ４）２１６と長さ情報（Ｌ４）２１７とデータ部（Ｖ４）２１８とから構成されるデータ２１９が連結されて構成される。このようなデータ構造をいわゆる入れ子構造（ＴＬＶ構造ともいわれる）と呼ばれている。
【００２０】
なお、以降の説明では、第１データ表現形式のデータを子データ、識別子２０４，２０８，２１２，２１６は子識別子、長さ情報２０５，２０９，２１３，２１７は子長さ情報、データ部２０６，２１０，２１４，２１８は子データ部、とも呼称する。
【００２１】
次に、このような構成において、データ読出しコマンドに対する入れ子構造データの読出し処理について図４に示す入れ子構造データの具体例および図５、図６に示すフローチャートを参照して説明する。
【００２２】
なお、図４において、識別子２０１，２０４，２０８，２１２および長さ情報２０２，２０５，２０９，２１３の各長さ（データ長）はそれぞれ１バイトする。また、データ部２０３，２０６，２１０，２１４は、特に明記しない限り１６進数を表現しているものとする（例：ＡＡ→０ｘＡＡ）。また、子データ部２１０は２バイト（２１０ａ，２１０ｂ）、子データ部２１４は３バイト（２１４ａ，２１４ｂ，２１４ｃ）、から構成されているものとする。
【００２３】
まず、外部装置としてのカードリーダ・ライタ１２がＩＣカード１１に対してデータ読出しコマンドを供給したものとする。ＩＣカード１１では、通信部１０２がデータ読出しコマンドを受信する。受信したデータ読出しコマンドは、通信部１０２からＣＰＵ１０４に供給され、認識される。
【００２４】
ＣＰＵ１４は、データ読出しコマンドをすると（ステップＳ１）、当該コマンドで指定される読出し対象データがデータメモリ１０５内に存在するか否かをチェックし（ステップＳ２）、読出し対象データが存在しなければ当該処理を終了する。
【００２５】
ステップＳ２におけるチェックの結果、読出し対象データが存在する場合、ＣＰＵ１４は、当該データの先頭１バイト（親識別子「９７」２０１）をワーキングメモリ１０６内に設けられた出力バッファ（図示省略）にコピーする（ステップＳ３）。
【００２６】
次に、ＣＰＵ１４は、ワーキングメモリ１０６内に設けられた出力カウンタ（図示省略）に数値「２」をセットするとともに、読出しポインタを親データ部２０３の先頭（読出しポインタ「２」：子識別子「１１」２０４）に設定する（ステップＳ４）。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図７に示す。
【００２７】
次に、ＣＰＵ１４は、設定された読出しポインタから子識別子「１１」２０４を読出し、ワーキングメモリ１０６に一時格納する（ステップＳ５）。次に、ＣＰＵ１４は、読出しポインタを１つ進めて「３」として子長さ情報「０１」２０５に設定し（ステップＳ６）、ワーキングメモリ１０６内に設けられた読出し範囲カウンタ（図示省略）に［親長さ情報−（子長さ情報＋２）］の値をセットする（ステップＳ７）。
【００２８】
次に、ＣＰＵ１４は、読出した子識別子２０４が特定の値（「００」）であるか否かをチェックし（ステップＳ８）、特定の値でない場合、指定された読出しポインタ「３」から子長さ情報「０１」２０５を読出し、ワーキングメモリ１０６に一時格納する（ステップＳ９）。
【００２９】
次に、ＣＰＵ１４は、ワーキングメモリ１０６に一時格納した子識別子「１１」２０４および子長さ情報「０１」２０５をそれぞれワーキングメモリ１０６内の出力バッファにコピーする（ステップＳ１０）。次に、ＣＰＵ１４は、ワーキングメモリ１０６内の出力カウンタを「＋２」して「４」とするとともに、読出しポインタを１つ進めて「４」として子データ部「１２」２０６に設定する（ステップＳ１１）。
【００３０】
次に、ＣＰＵ１４は、設定された読出しポインタから子データ部「１２」２０６を読出し（ステップＳ１２）、ワーキングメモリ１０６内の出力バッファにコピーする（ステップＳ１３）。次に、ＣＰＵ１４は、当該子長さ情報「０１」２０５の値を「−１」するとともに、ワーキングメモリ１０６内の出力カウンタを「＋１」して「５」とし、さらに、読出しポインタを１つ進める（ステップＳ１４）。
【００３１】
次に、ＣＰＵ１４は、「−１」した後の子長さ情報「０１」２０５の値が「０」か否かをチェックし（ステップＳ１５）、「０」でなければ当該子データ部２０６には次のバイトのデータが存在するので、ステップＳ１２に戻って同様な動作を繰り返す。
【００３２】
ステップＳ１５におけるチェックの結果、子長さ情報２０５の値が「０」であれば、当該子データ部２０６には次のバイトのデータが存在しないので、ＣＰＵ１４はステップＳ１６に進む。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図８に示す。
【００３３】
ステップＳ１６では、ワーキングメモリ１０６内に設けられた読出し範囲カウンタの値が「０」か否かをチェックし、「０」でなければ、当該データ２０７に続く次のデータが存在するので、ステップＳ５に戻って同様な動作を繰り返す。
【００３４】
一方、ステップＳ８におけるチェックの結果、読出した子識別子が特定の値（「００」）であった場合、図４の例では子識別子２０８が特定の値（「００」）であるので、当該子識別子２０８を読出した場合、ＣＰＵ１４は、読出しポインタを「当該子長さ情報「０２」２０９の値＋２」だけ進めて「９」とし（ステップＳ１７）、ステップＳ１６に進む。
【００３５】
すなわち、図４の例の場合、子識別子２０８が特定の値（「００」）であって、当該子識別子２０８の子データ２１１は無効なデータであることを示しているので、出力バッファにコピーしない。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図９に示す。
【００３６】
ステップＳ１６におけるチェックの結果、読出し範囲カウンタの値が「０」であれば、当該データに続く次のデータが存在しないので、ＣＰＵ１４は、出力カウンタの内容（図４の例では「１０」となっている）を新たな親長さ情報２０２としてワーキングメモリ１０６内の出力バッファにコピーする（ステップＳ１８）。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図１０に示す。  
図１０に示すように、無効な子データを除いて、有効な子データのみを読出して左詰で連結し、親データの長さ情報２０２を新たに連結し直した長さ情報に置き換えて、新たな親データを構成するものである。
【００３７】
次に、ＣＰＵ１４は、新たに構成された親データ、すなわち、出力バッファ内の出力カウンタの内容分、図１０の例では１０バイト分のデータのみをカードリーダ・ライタ１２へ出力する（ステップＳ１９）。
【００３８】
このように、上記実施の形態では、識別子が当該データが無効を示す特定の値（「００」）であるか否かをチェックし、識別子が特定の値である場合は当該データが無効データであると判断してそのデータを省き、有効なデータのみを出力データとするものである。
【００３９】
したがって、無効なデータを出力することなく、有効なデータのみを出力するので、有効／無効の判別が不要になり、データの取扱が容易になる。また、無効なデータを含む場合に比べて、通信速度を著しく向上することが可能となる。さらに、データ全体を書き直すことなく、長さ情報を変更することで、内包するデータの削除に対応できる。
【００４０】
また、応用例として、たとえば、旅券カード（パスポート用ＩＣカード）などにおいて、指紋や虹彩などの生体認証データを入れ子構造にて保存していた場合に、不要になったデータの識別子を無効を示す特定の値に変更することで、当該データを消去する必要がない。たとえば、事故などで指を無くしてしまった人の場合、指紋データだけを無効にすることができる。
【００４１】
また、たとえば、金融カード（クレジットカード用ＩＣカード）などにおいて、当該カードが使用できる国コードなどを限定するのに応用する。たとえば、入れ子構造データ内に当該カードが使用できる国コードがはいっている場合に、今後使用しない国のコードの識別子を無効を示す特定の値にしておくものである。
【００４２】
さらに、たとえば、セキュリティカード（入退室用ＩＣカード）などにおいて、入室できる場所を制限するのに応用する。たとえば、入れ子構造データ内に入室の許可されたエリアコードを入れた場合に、許可エリアを限定したい場合、不許可にするエリアのコードの識別子を無効を示す特定の値に変更するものである。
【００４３】
なお、前記実施の形態では、携帯可能電子装置としてＩＣカードに適用した場合について説明したが、本発明はこれに限定されるものではなく、たとえば、ＰＤＡと称される携帯端末装置や携帯電話機などであっても適用でき、また、カード型に限らず、冊子型、ブロック形あるいはタグ型であってもよい。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを用いたＩＣカードシステムの構成を概略的に示すブロック図。
【図２】ＩＣカードの構成を概略的に示す模式図。
【図３】メモリに格納される入れ子構造データの一例を模式的に示す図。
【図４】入れ子構造データの具体例を模式的に示す図。
【図５】データ読出しコマンドに対する入れ子構造データの読出し処理について説明するフローチャート。
【図６】データ読出しコマンドに対する入れ子構造データの読出し処理について説明するフローチャート。
【図７】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図８】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図９】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図１０】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【符号の説明】
【００４５】
１１…ＩＣカード（携帯可能電子装置）、１２…カードリーダ・ライタ（外部装置）、１３…端末装置、１１ａ…カード本体、１０２…通信部、１０３…ＩＣチップ、１０４…ＣＰＵ、１０５…データメモリ（メモリ）、１０６…ワーキングメモリ、１０７…プログラムメモリ、２０１，２０４，２０８，２１２，２１６…識別子、２０２，２０５，２０９，２１３，２１７…長さ情報、２０３，２０６，２１０，２１４，２１８…データ部。
【図１】
2007102312.tif 000003
【図２】
2007102312.tif 000004
【図３】
2007102312.tif 000005
【図４】
2007102312.tif 000006
【図５】
2007102312.tif 000007
【図６】
2007102312.tif 000008
【図７】
2007102312.tif 000009
【図８】
2007102312.tif 000010
【図９】
2007102312.tif 000011
【図１０】
2007102312.tif 000012