説明

携帯可能電子装置およびICカード

【課題】メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびICカードを提供する。
【解決手段】外部から供給される命令データに基づいて各種処理を実行するICカードにおいて、メモリから入れ子構造のデータを読出す際、識別子が当該データが無効を示す特定の値(「00」)であるか否かをチェックし、識別子が特定の値である場合は当該データが無効データであると判断してそのデータを省き、有効なデータのみを出力データとする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびCPU(セントラル・プロセッシング・ユニット)などの制御素子を有するIC(集積回路)チップを内蔵し、外部から供給される命令データに基づいて各種処理を実行するICカードなどの携帯可能電子装置およびICカードに関する。
【背景技術】
【0002】
最近、携帯可能電子装置として、不揮発性メモリとしてのEEPROM、揮発性メモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム等を格納したROMを有し、外部から供給される命令データに基づいてデータの入出力等を行なう手段を備えたICチップを内蔵したICカードが産業各方面で利用されている。
【0003】
一般に、この種のICカードは、外部装置(ICカードリーダ・ライタ)からの読出しコマンドを受信すると、対象となるデータを不揮発性メモリから検索し、該当したデータが存在する場合、当該データをその先頭からデータ長分、読出すようになっている。
【0004】
また、不揮発性メモリ内のデータは、当該データの種別を示す識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されていて、識別子によっては、いわゆる入れ子構造(TLV構造ともいわれる)になっているものもある。このような入れ子構造のデータについては、たとえば、ISO/IEC7816−4 Annex.Dで構造化されたタグフィールド(Tag field)などが定義されている。
【0005】
このような入れ子構造のデータを複数連結してなるデータを読出す場合に対しても、同様に先頭からデータを読出していく。その場合、読出すデータ内に無効な入れ子構造のデータを含む場合にも、指定された範囲の全てのデータを読出し出力している。
【非特許文献1】ISO/IEC7816−4
【特許文献1】特開2005−11171号公報
【特許文献2】特開2004−178101号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来は、データ内に複数の入れ子構造のデータを持つ場合、その中に無効な入れ子構造のデータが含まれていても、指定された範囲の全てのデータを読出し出力していため、不要なデータまでを読出してしまうという問題がある。また、無効なデータをも含むので、外部装置との通信を含めた処理時間が長くなるという問題もある。
【0007】
そこで、本発明は、メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびICカードを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の携帯可能電子装置は、当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第1データ表現形式とし、前記データ部に前記第1データ表現形式で表現されるデータが少なくとも2つ以上連結されてなる第2データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第2データ表現形式のデータを読出す際、第1データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを具備している。
【0009】
また、本発明のICカードは、当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第1データ表現形式とし、前記データ部に前記第1データ表現形式で表現されるデータが少なくとも2つ以上連結されてなる第2データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第2データ表現形式のデータを読出す際、第1データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを有したICモジュールと、このICモジュールを収納したICカード本体とを具備している。
【発明の効果】
【0010】
本発明によれば、メモリから入れ子構造のデータを読出す際、当該データ内に無効なデータを含む場合はそのデータを省き、有効なデータのみを出力データとすることができ、通信を含めた処理時間の短縮が図れる携帯可能電子装置およびICカードを提供できる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本発明に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード11をカードリーダ・ライタ12を介してパーソナルコンピュータなどの端末装置13と接続可能にするとともに、端末装置13にキーボード14、CRT表示部15、プリンタ16を接続して構成される。
【0012】
ICカード11は、たとえば、図2に示すように、カード本体11aの表面に設けられた磁気ストライプ部101、リーダライタ12と信号の授受を行なう受信手段および出力手段としての通信部102、および、1つ(あるいは複数)のICチップ103から構成されている。
【0013】
通信部102は、ICカード11が非接触式(無線式)ICカードの場合にはアンテナ部として構成され、リーダライタ12から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部102で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ICカードの場合にはコンタクト部として構成され、リーダライタ12に設けられたICカード端子部(図示しない)と接触することにより電源やクロックを得るようになっている。
【0014】
ICチップ103は、制御素子としてのCPU104、記憶手段してのデータメモリ105、ワーキングメモリ106、プログラムメモリ107から構成され、通信部102と接続された状態で一体的にICモジュール化されて、ICカード本体11a内に埋設されている。
CPU104は、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理を行なう制御部である。
【0015】
データメモリ105は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)などの消去(書換え)可能な不揮発性メモリで構成されている。
【0016】
ワーキングメモリ106は、CPU104が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、RAM(ランダム・アクセス・メモリ)などの揮発性メモリで構成されている。
【0017】
プログラムメモリ107は、たとえば、マスクROM(リード・オンリ・メモリ)などの書換え不可能な固定メモリで構成されており、CPU104の制御プログラムなどを記憶している。
なお、当該ICカード11に登録されるアプリケーションとしては、たとえば、クレジット、ポイントシステム、IDカードなどが挙げられる。
【0018】
データメモリ105内(たとえば、エレメンタリーファイル(Elementary File))に格納されるデータは、たとえば、図3に示すような入れ子構造を持つデータである。すなわち、図3に示すように、当該データの種別を示すもので当該データが無効なデータの場合は特定の値(たとえば、「00」)に設定される識別子(TAG)201と、当該データの長さを示す長さ情報(LEN)202と、当該データそのものを示すデータ部(VALUE)203とから構成される第2データ表現形式のデータが格納される。
なお、以降の説明では、第2データ表現形式のデータを親データ、識別子201は親識別子、長さ情報202は親長さ情報、データ部203は親データ部、とも呼称する。
【0019】
上記データ部203は、上記第2データ表現形式と同じ第1データ表現形式のデータ、すなわち、識別子(T1)204と長さ情報(L1)205とデータ部(V1)206とから構成されるデータ207、識別子(T2)208と長さ情報(L2)209とデータ部(V2)210とから構成されるデータ211、識別子(T3)212と長さ情報(L3)213とデータ部(V3)214とから構成されるデータ215、識別子(T4)216と長さ情報(L4)217とデータ部(V4)218とから構成されるデータ219が連結されて構成される。このようなデータ構造をいわゆる入れ子構造(TLV構造ともいわれる)と呼ばれている。
【0020】
なお、以降の説明では、第1データ表現形式のデータを子データ、識別子204,208,212,216は子識別子、長さ情報205,209,213,217は子長さ情報、データ部206,210,214,218は子データ部、とも呼称する。
【0021】
次に、このような構成において、データ読出しコマンドに対する入れ子構造データの読出し処理について図4に示す入れ子構造データの具体例および図5、図6に示すフローチャートを参照して説明する。
【0022】
なお、図4において、識別子201,204,208,212および長さ情報202,205,209,213の各長さ(データ長)はそれぞれ1バイトする。また、データ部203,206,210,214は、特に明記しない限り16進数を表現しているものとする(例:AA→0xAA)。また、子データ部210は2バイト(210a,210b)、子データ部214は3バイト(214a,214b,214c)、から構成されているものとする。
【0023】
まず、外部装置としてのカードリーダ・ライタ12がICカード11に対してデータ読出しコマンドを供給したものとする。ICカード11では、通信部102がデータ読出しコマンドを受信する。受信したデータ読出しコマンドは、通信部102からCPU104に供給され、認識される。
【0024】
CPU14は、データ読出しコマンドをすると(ステップS1)、当該コマンドで指定される読出し対象データがデータメモリ105内に存在するか否かをチェックし(ステップS2)、読出し対象データが存在しなければ当該処理を終了する。
【0025】
ステップS2におけるチェックの結果、読出し対象データが存在する場合、CPU14は、当該データの先頭1バイト(親識別子「97」201)をワーキングメモリ106内に設けられた出力バッファ(図示省略)にコピーする(ステップS3)。
【0026】
次に、CPU14は、ワーキングメモリ106内に設けられた出力カウンタ(図示省略)に数値「2」をセットするとともに、読出しポインタを親データ部203の先頭(読出しポインタ「2」:子識別子「11」204)に設定する(ステップS4)。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図7に示す。
【0027】
次に、CPU14は、設定された読出しポインタから子識別子「11」204を読出し、ワーキングメモリ106に一時格納する(ステップS5)。次に、CPU14は、読出しポインタを1つ進めて「3」として子長さ情報「01」205に設定し(ステップS6)、ワーキングメモリ106内に設けられた読出し範囲カウンタ(図示省略)に[親長さ情報−(子長さ情報+2)]の値をセットする(ステップS7)。
【0028】
次に、CPU14は、読出した子識別子204が特定の値(「00」)であるか否かをチェックし(ステップS8)、特定の値でない場合、指定された読出しポインタ「3」から子長さ情報「01」205を読出し、ワーキングメモリ106に一時格納する(ステップS9)。
【0029】
次に、CPU14は、ワーキングメモリ106に一時格納した子識別子「11」204および子長さ情報「01」205をそれぞれワーキングメモリ106内の出力バッファにコピーする(ステップS10)。次に、CPU14は、ワーキングメモリ106内の出力カウンタを「+2」して「4」とするとともに、読出しポインタを1つ進めて「4」として子データ部「12」206に設定する(ステップS11)。
【0030】
次に、CPU14は、設定された読出しポインタから子データ部「12」206を読出し(ステップS12)、ワーキングメモリ106内の出力バッファにコピーする(ステップS13)。次に、CPU14は、当該子長さ情報「01」205の値を「−1」するとともに、ワーキングメモリ106内の出力カウンタを「+1」して「5」とし、さらに、読出しポインタを1つ進める(ステップS14)。
【0031】
次に、CPU14は、「−1」した後の子長さ情報「01」205の値が「0」か否かをチェックし(ステップS15)、「0」でなければ当該子データ部206には次のバイトのデータが存在するので、ステップS12に戻って同様な動作を繰り返す。
【0032】
ステップS15におけるチェックの結果、子長さ情報205の値が「0」であれば、当該子データ部206には次のバイトのデータが存在しないので、CPU14はステップS16に進む。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図8に示す。
【0033】
ステップS16では、ワーキングメモリ106内に設けられた読出し範囲カウンタの値が「0」か否かをチェックし、「0」でなければ、当該データ207に続く次のデータが存在するので、ステップS5に戻って同様な動作を繰り返す。
【0034】
一方、ステップS8におけるチェックの結果、読出した子識別子が特定の値(「00」)であった場合、図4の例では子識別子208が特定の値(「00」)であるので、当該子識別子208を読出した場合、CPU14は、読出しポインタを「当該子長さ情報「02」209の値+2」だけ進めて「9」とし(ステップS17)、ステップS16に進む。
【0035】
すなわち、図4の例の場合、子識別子208が特定の値(「00」)であって、当該子識別子208の子データ211は無効なデータであることを示しているので、出力バッファにコピーしない。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図9に示す。
【0036】
ステップS16におけるチェックの結果、読出し範囲カウンタの値が「0」であれば、当該データに続く次のデータが存在しないので、CPU14は、出力カウンタの内容(図4の例では「10」となっている)を新たな親長さ情報202としてワーキングメモリ106内の出力バッファにコピーする(ステップS18)。このときの出力カウンタ、読出しポインタ、出力バッファの関係を図10に示す。
図10に示すように、無効な子データを除いて、有効な子データのみを読出して左詰で連結し、親データの長さ情報202を新たに連結し直した長さ情報に置き換えて、新たな親データを構成するものである。
【0037】
次に、CPU14は、新たに構成された親データ、すなわち、出力バッファ内の出力カウンタの内容分、図10の例では10バイト分のデータのみをカードリーダ・ライタ12へ出力する(ステップS19)。
【0038】
このように、上記実施の形態では、識別子が当該データが無効を示す特定の値(「00」)であるか否かをチェックし、識別子が特定の値である場合は当該データが無効データであると判断してそのデータを省き、有効なデータのみを出力データとするものである。
【0039】
したがって、無効なデータを出力することなく、有効なデータのみを出力するので、有効/無効の判別が不要になり、データの取扱が容易になる。また、無効なデータを含む場合に比べて、通信速度を著しく向上することが可能となる。さらに、データ全体を書き直すことなく、長さ情報を変更することで、内包するデータの削除に対応できる。
【0040】
また、応用例として、たとえば、旅券カード(パスポート用ICカード)などにおいて、指紋や虹彩などの生体認証データを入れ子構造にて保存していた場合に、不要になったデータの識別子を無効を示す特定の値に変更することで、当該データを消去する必要がない。たとえば、事故などで指を無くしてしまった人の場合、指紋データだけを無効にすることができる。
【0041】
また、たとえば、金融カード(クレジットカード用ICカード)などにおいて、当該カードが使用できる国コードなどを限定するのに応用する。たとえば、入れ子構造データ内に当該カードが使用できる国コードがはいっている場合に、今後使用しない国のコードの識別子を無効を示す特定の値にしておくものである。
【0042】
さらに、たとえば、セキュリティカード(入退室用ICカード)などにおいて、入室できる場所を制限するのに応用する。たとえば、入れ子構造データ内に入室の許可されたエリアコードを入れた場合に、許可エリアを限定したい場合、不許可にするエリアのコードの識別子を無効を示す特定の値に変更するものである。
【0043】
なお、前記実施の形態では、携帯可能電子装置としてICカードに適用した場合について説明したが、本発明はこれに限定されるものではなく、たとえば、PDAと称される携帯端末装置や携帯電話機などであっても適用でき、また、カード型に限らず、冊子型、ブロック形あるいはタグ型であってもよい。
【図面の簡単な説明】
【0044】
【図1】本発明の実施の形態に係る携帯可能電子装置としてのICカードを用いたICカードシステムの構成を概略的に示すブロック図。
【図2】ICカードの構成を概略的に示す模式図。
【図3】メモリに格納される入れ子構造データの一例を模式的に示す図。
【図4】入れ子構造データの具体例を模式的に示す図。
【図5】データ読出しコマンドに対する入れ子構造データの読出し処理について説明するフローチャート。
【図6】データ読出しコマンドに対する入れ子構造データの読出し処理について説明するフローチャート。
【図7】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図8】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図9】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【図10】入れ子構造データ読出し処理の途中における出力カウンタ、読出しポインタ、出力バッファの関係を示す模式図。
【符号の説明】
【0045】
11…ICカード(携帯可能電子装置)、12…カードリーダ・ライタ(外部装置)、13…端末装置、11a…カード本体、102…通信部、103…ICチップ、104…CPU、105…データメモリ(メモリ)、106…ワーキングメモリ、107…プログラムメモリ、201,204,208,212,216…識別子、202,205,209,213,217…長さ情報、203,206,210,214,218…データ部。

【特許請求の範囲】
【請求項1】
当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第1データ表現形式とし、前記データ部に前記第1データ表現形式で表現されるデータが少なくとも2つ以上連結されてなる第2データ表現形式のデータを記憶したメモリと、
外部から供給される命令データに基づき前記メモリから第2データ表現形式のデータを読出す際、第1データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項2】
前記処理手段は、読出した特定の値でない識別子を有する第1データ表現形式のデータを連結して新たな第2データ表現形式のデータとするとともに、この第2データ表現形式のデータの長さ情報を新たに連結し直した長さに置き換えて当該第2データ表現形式のデータを外部へ出力することを特徴とする請求項1記載の携帯可能電子装置。
【請求項3】
前記処理手段は、読出した特定の値でない識別子を有する第1データ表現形式のデータを、読出時に除いた特定の値の識別子のデータが存在した位置を詰めて連結し新たな第2データ表現形式のデータとすることを特徴とする請求項2記載の携帯可能電子装置。
【請求項4】
当該データの種別を示すもので当該データが無効なデータの場合は特定の値に設定される識別子と、当該データの長さを示す長さ情報と、当該データそのものを示すデータ部とから構成されるデータの表現形式を第1データ表現形式とし、前記データ部に前記第1データ表現形式で表現されるデータが少なくとも2つ以上連結されてなる第2データ表現形式のデータを記憶したメモリと、外部から供給される命令データに基づき前記メモリから第2データ表現形式のデータを読出す際、第1データ表現形式のデータの識別子の内容が特定の値であるか否かを判定し、特定の値である場合は当該特定の値を示す識別子のデータを除いて特定の値でない識別子のデータのみの読出しを行なう処理手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【請求項5】
前記処理手段は、読出した特定の値でない識別子を有する第1データ表現形式のデータを連結して新たな第2データ表現形式のデータとするとともに、この第2データ表現形式のデータの長さ情報を新たに連結し直した長さに置き換えて当該第2データ表現形式のデータを外部へ出力することを特徴とする請求項4記載のICカード。
【請求項6】
前記処理手段は、読出した特定の値でない識別子を有する第1データ表現形式のデータを、読出時に除いた特定の値の識別子のデータが存在した位置を詰めて連結し新たな第2データ表現形式のデータとすることを特徴とする請求項5記載のICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−102312(P2007−102312A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−288002(P2005−288002)
【出願日】平成17年9月30日(2005.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】