説明

携帯可能電子装置

【課題】入れ子構造になっているデータをデータ構造解析なしで容易に検出することが可能な携帯可能電子装置を提供する。
【解決手段】実施形態に係る携帯可能電子装置は、入れ子構造データを記憶するメモリを有する携帯可能電子装置において、外部から受信したコマンドにて当該識別子の上位あるいは下位の複数ビットを一部分として指定された第2データ表現形式の識別子をメモリ内の第2データ表現形式のデータから検索し、当該一部分を指定された第2データ表現形式の識別子を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ICカードなどの携帯可能電子装置に関する。
【背景技術】
【0002】
近年、携帯可能な電子装置として、書込み、書換え可能な不揮発性のデータメモリとそれを制御するためのCPU(セントラル・プロセッシング・ユニット)を有し、外部からのデータの入出力を行なう手段を備えたIC(集積回路)チップを内蔵した、いわゆるICカードが産業各方面で開発されている。
【0003】
ICカードは、従来までの磁気カード等と比較すると、磁気カードは個々のアプリケーションに対応した枚数を保持する必要があったが、1枚に複数のアプリケーションプログラムを保持することができるという利点がある。すなわち、銀行などの金融機関でキャッシュカード等として使用されるICカード、スポーツやレジャー施設での個人認証用のIDカード、パチンコ店等の遊技場におけるプリペイドカードなどを同一の1枚のICカードにより実現できる。
【0004】
この種のICカードは、利用アプリケーションの運用時に必要なデータなどがファイル形式でデータメモリに記憶されており、それぞれのファイルは複数のアプリケーションのそれぞれに対応している。個々のファイルは、外部装置からアプリケーション識別名などを入力することにより、選択的に対応するファイルのみが使用可能な状態となるようになっている。アプリケーションを選択した後、データの読出しや書換えなどの運用処理が行なわれる。
【0005】
一般に、ICカード内のデータは、識別子と長さとデータ値とから構成されていて、識別子によっては、いわゆる入れ子構造になっているものもある。このような入れ子構造は、たとえば、ISO/IEC7816−4 Annex.Dで構造化されたタグフィールド(Tag field)などが定義されている。
また、入れ子構造になっていないデータを直接、読出し、追加、書換え、削除することが可能である。
【0006】
上述した従来技術においては、既知の識別子のデータを操作することは可能である。しかし、識別子の部分的な情報しか持たない場合、未知の部分に関して総当りで操作を試みなければならない。また、ネットワーク環境を介する場合、ICカードへの送受信回数を減らすことが要求される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平3−224047号公報
【特許文献2】特開平11−282989号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、入れ子構造になっているデータをデータ構造解析なしで容易に検出することが可能な携帯可能電子装置を提供することである。
【課題を解決するための手段】
【0009】
実施形態に係る携帯可能電子装置は、複数ビットからなる識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、外部装置から送られ、少なくとも検索する識別子のビット長と検索する識別子を含み、第2データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットを指定するコマンドを受信する受信手段と、この受信手段により前記コマンドを受信すると、当該コマンドにて上位あるいは下位の複数ビットを一部分として指定された識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、この制御情報判断手段により前記一部分を指定された識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第2データ表現形式のデータから検索する検索手段と、この検索手段により検索された当該識別子の一部分を指定された第2データ表現形式の識別子を出力する出力手段とを具備する。
【図面の簡単な説明】
【0010】
【図1】実施形態に係る携帯可能電子装置としてのICカードを用いたICカードシステムの構成を概略的に示すブロック図。
【図2】実施形態に係るICカードの構成を概略的に示すブロック図。
【図3】実施形態に係るデータメモリに複数のアプリケーションを構成した場合のファイル構造の概念図。
【図4】実施形態に係るメモリに格納される入れ子構造データの一例を示す図。
【図5】実施形態に係るデータ管理情報を説明するための図。
【図6】実施形態に係る制御情報により所定のアドレスに設定されるデータのフォーマットを示す図。
【図7】第1の実施形態に係る第1識別子部分指定検索コマンドの構成を示す図。
【図8】第1の実施形態に係る第1識別子部分指定検索コマンドに対するレスポンスデータの構成を示す図。
【図9】第1の実施形態に係る出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示す図。
【図10】第1の実施形態に係る第1識別子部分指定検索コマンドに対する処理の流れについて説明するフローチャート。
【図11】第2の実施形態に係る第2識別子部分指定検索コマンドの構成を示す図。
【図12】第2の実施形態に係る第2識別子部分指定検索コマンドに対する処理の流れについて説明するフローチャート。
【図13】第2の実施形態に係る第2識別子部分指定検索コマンドに対する処理の流れについて説明するフローチャート。
【図14】第2の実施形態に係るアドレスとデータ長管理情報との整合性の確認およびデータ有無を判定する状態を説明する図。
【図15】第3の実施形態に係る識別子部分指定検索コマンドの構成を示す図。
【図16】第3の実施形態に係る出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示す図。
【図17】第3の実施形態に係る識別子部分指定検索コマンドに対する処理の流れについて説明するフローチャート。
【図18】第3の実施形態に係る識別子部分指定検索コマンドに対する処理の流れについて説明するフローチャート。
【発明を実施するための形態】
【0011】
以下、実施形態に係る携帯可能電子装置について図面を参照して説明する。
図1は、本実施形態に係る携帯可能電子装置としてのICカードを用いたICカードシステムの構成を概略的に示すものである。図1において、このICカードシステムは、ICカード1に対しデータの読出しや書込みを行なう外部装置としてのリーダライタ2、リーダライタ2が接続された上位装置としてのパーソナルコンピュータ(以降、単にパソコンと略称する)3から構成されている。パソコン3は、インターネット、公衆電話網、ISDNなどの公衆通信網4を介して外部の情報センタ5へ接続するように構成されている。
【0012】
パソコン3は、演算部6としてCPU6aと主記憶装置としてのメモリ6bとを有している。また、パソコン3は、表示手段としてのディスプレイ7、入力手段としてのキーボード8、記憶手段としてのハードディスク装置(HDD)9を有している。
【0013】
ディスプレイ7は、操作手順や作動状態をオペレータに知らせるものである。キーボード8は、オペレータによって操作入力されるものである。ハードディスク装置9には、機密情報である複数のファイル、たとえば、第1電子データファイルF1、第2電子データファイルF2、第3電子データファイルF3などが格納されている。そして、リーダライタ2を介して、パソコン3とICカード1との間で各種データ交換が行なわれるようになっている。
【0014】
リーダライタ2は、図示しない内部メモリや送信手段などを有していて、ICカード1に対するデータの読取り、書込み(送受信)などを接触あるいは非接触で行なうものである。接触式ICカードを用いる場合には、リーダライタ2に接触式ICカードを挿入するためのICカード挿入部(図示せず)が設けられ、無線式ICカードを用いる場合には、リーダライタ2と無線式ICカードとの間を通信するための通信部(図示せず)が設けられる。
【0015】
ICカード1は、たとえば、図2に示すように、カード本体1aの表面に設けられた磁気ストライプ部11、リーダライタ2と信号の授受を行なう受信手段および出力手段としての通信部12、および、1つ(あるいは複数)のICチップ13から構成されている。
【0016】
通信部12は、無線式ICカード1の場合にはアンテナ部として構成され、リーダライタ2から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部12で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ICカード1の場合にはコンタクト部として構成され、リーダライタ2に設けられたICカード端子部(図示しない)と接触することにより電源やクロックを得るようになっている。
【0017】
ICチップ13は、制御素子としてのCPU14、記憶手段してのデータメモリ15、ワーキングメモリ16、プログラムメモリ17から構成され、通信部12と接続された状態で一体的にICモジュール化されて、ICカード本体1a内に収納(埋設)されている。
【0018】
CPU14は、本実施形態のポイントである後述するファイルを選択する処理を実行する他、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理を行なう制御部である。
【0019】
データメモリ15は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)などの消去(書換え)可能な不揮発性メモリで構成されている。
【0020】
ワーキングメモリ16は、CPU14が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、RAM(ランダム・アクセス・メモリ)などの揮発性メモリで構成されている。
【0021】
プログラムメモリ17は、たとえば、マスクROM(リード・オンリ・メモリ)などの書換え不可能な固定メモリで構成されており、上述するような各基本機能を実現するサブルーチンを備えたCPU14の制御プログラムなどを記憶している。
【0022】
なお、ICカード1に登録されているアプリケーションとしては、たとえば、クレジット、ポイントシステム、IDカードなどが挙げられる。
【0023】
データメモリ15には、たとえば、図3に示すように、複数のアプリケーションに関する情報がファイル構造で記憶されている。このファイル構造は、ISO/IEC7816−4に基づき、色々なフォルダの種類を持ったディレクトリのツリー構造になっており、複数のアプリケーションが登録可能である。
【0024】
すなわち、図3に示すように、最上位がMF(Master File)21で、その配下に各アプリケーションごとに設定されるフォルダとしてDF(Dedicated File)22,23,24が設けられ、さらに、それらの配下に実際にアプリケーションで使われるユーザデータの格納に使用されるEF(Elementary File)25,26,27,28が設けられている構成になっている。
【0025】
また、MF21の配下には、アクセス権を確立するためのキーの格納に使用されるキーEF29が設けられている。なお、DFは搭載しているアプリケーションに相当する数だけ設けられる。
【0026】
本実施の形態では、ICカード1には、たとえば、クレジット系としてX社向けの1つのアプリケーションが、ポイント系としてA社、B社向けの2つのアプリケーションがそれぞれ格納されている。
【0027】
そして、本実施の形態では、DF22(以後、DF1とも称す)には、たとえば、クレジットX社向けアプリケーション用ファイルとしてDF名が「クレジットX社」と設定され、その配下には、クレジットX社向けアプリケーションで使用されるEF25(以後、EF1−1とも称す)、EF26(以後、EF1−2とも称す)という2つのファイルが存在する。
【0028】
また、DF23(以後、DF2とも称す)には、たとえば、ポイントA社系向けアプリケーション用ファイルとしてDF名が「ポイントA社系」と設定され、その配下には、ポイントA社系向けアプリケーションで使用されるEF27(以後、EF2−1とも称す)、EF28(以後、EF2−2とも称す)という2つのファイルが存在する。このうち、EF2−1は共通データ、EF2−2はポイントA社系内のそれぞれのデータが格納されている。
【0029】
EF2−2に格納されるデータは、たとえば、図4に示すような入れ子構造を持つデータである。すなわち、図4(a)に示すように、ポイントXのデータとして、ポイントX識別子(E1)101とポイントXのデータ長102とポイントXの値112とから構成される第2データ表現形式のデータが格納される。上記ポイントXの値112は、上記第2データ表現形式と同じ第1データ表現形式のデータ、すなわち、ポイント値識別子(DF01)103とポイント値長104とポイント値105とから構成されるデータ113、ポイント上限値識別子(DF02)106とポイント上限値長107とポイント上限値108とから構成されるデータ114、ポイント最終更新日識別子(DF03)109とポイント最終更新日値長110とポイント最終更新日値111とから構成されるデータ115が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【0030】
また、図4(b)に示すように、ポイントYのデータとして、ポイントY識別子(E2)121とポイントYのデータ長122とポイントYの値123とから構成される第2データ表現形式のデータが格納される。上記ポイントYの値123は、上記第2データ表現形式と同じ第1データ表現形式のデータ、すなわち、ポイント値識別子(DF01)124とポイント値長125とポイント値126とから構成されるデータ127、ポイント上限値識別子(DF02)128とポイント上限値長129とポイント上限値130とから構成されるデータ131が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【0031】
また、図4(c)に示すように、ポイントZのデータとして、ポイントZ識別子(E3)141とポイントZのデータ長142とポイントZの値143とから構成される第2データ表現形式のデータが格納される。上記ポイントZの値143は、上記第2データ表現形式と同じ第1データ表現形式のデータ、すなわち、ポイント値識別子(DF01)144とポイント値長145とポイント値146とから構成されるデータ147、ポイント上限値識別子(DF02)148とポイント上限値長149とポイント上限値150とから構成されるデータ151、ポイント最終更新日識別子(DF03)152とポイント最終更新日値長153とポイント最終更新日値154とから構成されるデータ155が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【0032】
さらに、図4(d)に示すように、ポイントPのデータとして、ポイントP識別子(E4)161とポイントPのデータ長162とポイントPの値163とから構成される第2データ表現形式のデータが格納される。上記ポイントPの値163は、上記第2データ表現形式と同じ第1データ表現形式のデータ、すなわち、ポイント値識別子(DF01)164とポイント値長165とポイント値166とから構成されるデータ167から構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【0033】
図5は、データ識別子を指定することにより読出し・書換え等が行なわれるデータを管理するデータ管理情報を示しており、たとえば、データメモリ15に格納されている。このデータ管理情報は、データ数領域200、制御情報領域201、空き領域202から構成される。データ数領域200には、制御情報領域201に記憶されたデータの数(制御情報の数)を示す情報が記憶される。制御情報領域201には、データ(入れ子構造のデータについては第1階層のデータ)の数に応じた数の制御情報201a,201b,…が記憶される。
【0034】
制御情報領域201内の制御情報201a,201b,…は、各データ(入れ子構造のデータについては第1階層のデータ)に対応して設けられる。図5に示す例では、各制御情報201a,201b,…は、データ識別子情報210、設定アドレス情報211、設定可能サイズ情報212、および、セキュリティ条件情報213から構成されている。
【0035】
データ識別子情報210は、外部装置から指定された識別子と当該データ識別子情報とを比較し、両者が一致した場合に本情報を後続の処理に使用する。設定アドレス情報211は、当該データがカード内のデータメモリ15のどのアドレスに配置されているかを示す情報である。設定可能サイズ情報212は、設定可能なサイズを示す情報であり、本情報の範囲内であれば当該データは可変長にて設定可能である。セキュリティ条件情報213は、当該データに対して読出しや書込みを行なう場合に設定されているべきセキュリティ条件である。
なお、上記データ管理情報の詳細は、たとえば、特開平11−282989号公報に記載されているので、それを参照されたい。
【0036】
図6は、制御情報により所定のアドレスに設定されるデータのフォーマットを示している。データは、制御情報の設定アドレス情報211の示すデータメモリ15上のアドレスに設定されている。図6において、220はデータの長さを示すデータ管理情報、221はデータの本体部分である。222は当該データの正当性管理情報であり、たとえば、データ管理情報220およびデータ221の排他的論理和などによりデータの正当性の確認に使用される。
【0037】
図7は、リーダライタ2からICカード1に対して供給される第1識別子部分指定検索コマンドを指示するための命令データ(第1識別子部分指定検索コマンド)の構成を示している。第1識別子部分指定検索コマンドは、コマンドヘッダ部301、コマンドヘッダ部301のデータ長を示すLc部306、データ部307、および、データ部307のデータ長を示すLe部308から構成されている。データ部307は、検索する識別子のビット長と検索する識別子とから構成される。
【0038】
コマンドヘッダ部301は、コマンドの分類部(CLA:class)302、命令部(INS:instruction)303、および、パラメータデータ(P1、P2)304,305から構成されている。
【0039】
ICカード1のCPU14は、この第1識別子部分指定検索コマンドのデータ部307に含まれた検索する識別子のビット長と検索する識別子とから、指定された識別子を検索して出力する。
【0040】
図8は、リーダライタ2から送られた第1識別子部分指定検索コマンドを実行した後、ICカード1がリーダライタ2へ出力するレスポンスデータの構成を示している。このレスポンスデータは、第1識別子部分指定検索コマンドで指定された識別子のCPU14による検索結果(指定された識別子を含む識別子情報)がセットされるデータ部401、および、処理結果を示すステータスコードがセットされるステータスコード部402,403から構成されている。
【0041】
上記データ部401には、第1識別子部分指定検索コマンドに対する検索結果がセットされる。ここでは、上記データ部401には、第1識別子部分指定検索コマンドで部分指定された第1階層のデータの識別子を示す情報がセットされる。
【0042】
すなわち、たとえば、図4におけるポイント識別子の「0000 0000 1110 001x b」と一致する識別子を検索する場合は、第1識別子部分指定検索コマンドのデータ部307に”0F00E2”がセットされる。
以上のようにセットされた第1識別子部分指定検索コマンドを受信した場合、CPU14は、データ部401に「E2 E3」をセットし、ステータスコード部402,403に「正常終了のステータスコード」をセットしたレスポンスデータを出力する。
【0043】
図9は、出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示しており、たとえば、データメモリ15内に設けられている。このレスポンス用データメモリは、レスポンスデータ長管理情報が格納される領域501、および、レスポンスデータが格納される領域502から構成されている。
このレスポンス用データメモリに格納されるデータは、図8に示すデータ部401にセットされるデータである。レスポンスデータ長管理情報501は、レスポンスデータ503の長さ情報である。
【0044】
次に、このような構成において第1識別子部分指定検索コマンドに対する処理について図10に示すフローチャートを参照して説明する。
ICカード1のCPU14は、受信されたコマンドがそのコマンドヘッダ部301に基づいて第1識別子部分指定検索コマンドであると判断すると、図5のデータ管理情報から#1の制御情報201aを読出す(ステップS100)。
【0045】
次に、読出した制御情報201a内のデータ識別子情報210で示す識別子が第1識別子部分指定検索コマンドのデータ部307で部分指定されている識別子と一致するか否かを確認する(ステップS101)。確認の結果、両識別子が一致する場合はステップS102へ、両識別子が一致しない場合はステップS103へ進む。
【0046】
ステップS102では、当該識別子をレスポンス用データメモリのレスポンスデータ長管理情報501をオフセットしたアドレスのレスポンスデータ502に保存し、レスポンスデータ長管理情報501に識別子の長さ分加算する。この処理終了後、ステップS103へ進む。
【0047】
ステップS103では、図5のデータ管理情報に次の制御情報があるか否かを確認し、次の制御情報がある場合はステップS104へ、次の制御情報がない場合はステップS105へ進む。
ステップS104では、図5のデータ管理情報から次の制御情報201bを読出し、ステップS101に戻って上記同様な動作を繰り返す。
【0048】
ステップS105では、上記レスポンス用データメモリのレスポンスデータ502に保存されているデータのうち、レスポンスデータ長管理情報501で指定されている長さを結果とするレスポンスデータと正常終了の応答ステータスをリーダライタ2へ出力する。
【0049】
次に、第2の実施形態について説明する。
図11は、リーダライタ2からICカード1に対して供給される第2識別子部分指定検索コマンドを指示するための命令データ(第2識別子部分指定検索コマンド)の構成を示している。第2識別子部分指定検索コマンドは、コマンドヘッダ部601、コマンドヘッダ部601のデータ長を示すLc部606、データ部607、および、データ部607のデータ長を示すLe部608から構成されている。データ部607は、検索する識別子のビット長と検索する識別子とから構成される。
【0050】
コマンドヘッダ部601は、コマンドの分類部(CLA:class)602、命令部(INS:instruction)603、および、パラメータデータ(P1、P2)604,605から構成されている。
【0051】
ICカード1のCPU14は、この第2識別子部分指定検索コマンドのコマンドヘッダ部601のP1部604とP2部605、データ部607に含まれた検索する識別子のビット長と検索する識別子とから、指定された識別子を検索して出力する。
【0052】
パラメータデータ(P1、P2)604,605は、データ部607にセットされるデータ識別子がどのデータ識別子の中に存在しているかを示している。すなわち、たとえば、図4におけるポイントXのデータ内の「1101 1111 0000 001x b」と一致する識別子を検索する場合は、P1部604、P2部605に「00E1」がセットされ、データ部607に「0FDF02」がセットされる。
【0053】
以上のようにセットされた第2識別子部分指定検索コマンドを受信した場合、CPU14は、データ部401に「DF02 DF03」をセットし、ステータスコード部402,403に「正常終了のステータスコード」をセットしたレスポンスデータを出力する。
【0054】
次に、このような構成において第2識別子部分指定検索コマンドに対する処理について図12および図13に示すフローチャートを参照して説明する。
ICカード1のCPU14は、受信されたコマンドがそのコマンドヘッダ部601に基づいて第2識別子部分指定検索コマンドであると判断すると、図5のデータ管理情報からP1部604、P2部605で指定されている識別子と一致する制御情報201を検索する(ステップS200)。一致する制御情報201を特定できなかった場合はステップS201へ、特定できた場合はステップS202へ進む。ステップS201では、制御情報未登録の応答ステータスをリーダライタ2へ出力する。
【0055】
ステップS202では、制御情報201内の設定アドレス情報211が示すアドレスのデータを1バイト(Byte)読込む。次に、この読込んだデータを確認し(ステップS203)、次のデータも識別子の一部であると確認された場合は、ステップS204へ進み、次のデータを1バイト読込む。
【0056】
ステップS203の確認の結果、次のデータも識別子の一部でないと確認された場合、読込んだ識別子が第2識別子部分指定検索コマンドのデータ部607で部分指定されている識別子と一致するか否かをチェックし(ステップS205)、一致する場合はステップS206へ進み、一致しない場合はステップS207へ進む。
【0057】
ステップS206では、当該識別子をレスポンス用データメモリのレスポンスデータ長管理情報501をオフセットしたアドレスのレスポンスデータに保存し、レスポンスデータ長管理情報501に識別子の長さ分加算する。この処理終了後、ステップS207へ進む。
【0058】
ステップS207では、次のデータを1バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップS207で求められた次の識別子に相当するアドレスとデータ長管理情報220との整合性を確認し(ステップS208)、異常である場合はステップS209へ進み、正常でかつ次の第2階層のデータは存在しないと判断した場合はステップS210へ、正常でかつ次の第2階層のデータが存在すると判断した場合はステップS211へ進む。
【0059】
なお、ステップS208において異常であると判断する状態としては、たとえば、求められたアドレスがデータ長管理情報220で指定されたデータ長のアドレスの範囲を超えている場合などがある(図14参照)。
【0060】
ステップS209では、データ検索異常の応答ステータスをリーダライタ2へ出力する。ステップS210では、レスポンスデータ用メモリのレスポンスデータ領域502に格納されているデータのうち、レスポンスデータ長管理情報501で指定されている長さを結果とするレスポンスデータと異常無しの応答ステータスをリーダライタ2へ出力する。
【0061】
ステップS211では、ステップS207で求められた次の識別子に相当するアドレスのデータを1バイト読込む。次に、この読込んだデータを確認し(ステップS212)、次のデータも識別子の一部であると確認された場合は次のデータを1バイト読込み(ステップS213)、ステップS205へ戻る。ステップS212の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップS205へ戻る。
【0062】
次に、第3の実施形態について説明する。
図15は、リーダライタ2からICカード1に対して供給される識別子部分指定検索コマンドを指示するための命令データ(識別子部分指定検索コマンド)の構成を示している。識別子部分指定検索コマンドは、コマンドヘッダ部701、コマンドヘッダ部701のデータ長を示すLc部706、データ部707、および、データ部707のデータ長を示すLe部708から構成されている。データ部707は、検索する第1識別子のビット長と検索する第1識別子および検索する第2識別子のビット長と検索する第2識別子から構成される。
【0063】
コマンドヘッダ部701は、コマンドの分類部(CLA:class)702、命令部(INS:instruction)703、および、パラメータデータ(P1、P2)704,705から構成されている。
【0064】
ICカード1のCPU14は、この識別子部分指定検索コマンドのデータ部707に含まれた検索する第1識別子のビット長と検索する第1識別子および検索する第2識別子のビット長と検索する第2識別子から、指定された識別子を検索して出力する。
【0065】
すなわち、たとえば、図4におけるポイント識別子の「0000 0000 1110 001x b」と一致する第1識別子の「1101 1111 0000 001x b」と一致する第2識別子を検索する場合は、識別子部分指定検索コマンドのデータ部707に「0F00E2 0FDF02」がセットされる。
【0066】
以上のようにセットされた識別子部分指定検索コマンドを受信した場合、CPU14は、データ部401に「E2 02 DF02 E3 04 DF02 DF03 E4 00」をセットし、ステータスコード部402,403に「正常終了のステータスコード」をセットしたレスポンスデータを出力する。
【0067】
図16は、出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示しており、たとえば、データメモリ15内に設けられている。このレスポンス用データメモリは、レスポンスデータ長管理情報が格納される領域801、第1識別子データ長アドレス情報が格納される領域802、および、レスポンスデータが格納される領域803から構成されている。
【0068】
このレスポンス用データメモリに格納されるデータは、図8に示すデータ部401にセットされるデータである。レスポンスデータ長管理情報801は、レスポンスデータ803の長さ情報である。第1識別子データ長アドレス情報802は、検索処理中の第1識別子のデータ長を格納するレスポンス用データメモリ内のアドレス情報である。
【0069】
次に、このような構成において識別子部分指定検索コマンドに対する処理について図17および図18に示すフローチャートを参照して説明する。
ICカード1のCPU14は、受信されたコマンドがそのコマンドヘッダ部701に基づいて識別子部分指定検索コマンドであると判断すると、図5のデータ管理情報から#1の制御情報201aを読出す(ステップS300)。
【0070】
次に、読出した制御情報201a内のデータ識別子情報210で示す識別子が識別子部分指定検索コマンドのデータ部407で部分指定されている識別子と一致するか否かを確認する(ステップS301)。確認の結果、両識別子が一致する場合はステップS302へ、両識別子が一致しない場合はステップS303へ進む。
【0071】
ステップS302では、当該識別子をレスポンス用データメモリのレスポンスデータ長管理情報801をオフセットしたアドレスのレスポンスデータ803に保存し、その後ろをデータ長として「0」を保存するとともに、レスポンスデータ長管理情報801に識別子の長さとデータ長分加算する。また、レスポンス用データメモリの第1識別子データ長アドレス情報802に保存した識別子のデータ長のアドレスを保存する。この処理終了後、ステップS310へ進む。
【0072】
ステップS303では、図5のデータ管理情報に次の制御情報があるか否かを確認し、次の制御情報がある場合はステップS304へ、次の制御情報がない場合はステップS305へ進む。
ステップS304では、図5のデータ管理情報から次の制御情報201bを読出し、ステップS301に戻って上記同様な動作を繰り返す。
【0073】
ステップS305では、上記レスポンス用データメモリのレスポンスデータ803に保存されているデータのうち、レスポンスデータ長管理情報801で指定されている長さを結果とするレスポンスデータと正常終了の応答ステータスをリーダライタ2へ出力する。
【0074】
ステップS310では、制御情報201内の設定アドレス情報211が示すアドレスのデータを1バイト読込む。次に、この読込んだデータを確認し(ステップS311)、次のデータも識別子の一部であると確認された場合は、ステップS312へ進み、次のデータを1バイト読込む。
【0075】
ステップS311の確認の結果、次のデータも識別子の一部でないと確認された場合、読込んだ識別子が識別子部分指定検索コマンドのデータ部707で部分指定されている識別子と一致するか否かをチェックし(ステップS313)、一致する場合はステップS314へ進み、一致しない場合はステップS315へ進む。
【0076】
ステップS314では、当該識別子をレスポンス用データメモリのレスポンスデータ長管理情報801をオフセットしたアドレスのレスポンスデータに保存し、レスポンスデータ長管理情報801に識別子の長さ分加算する。また、レスポンス用データメモリの第1識別子データ長アドレス情報802のアドレスのデータに識別子の長さ分加算する。この処理終了後、ステップS315へ進む。
【0077】
ステップS315では、次のデータを1バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップS315で求められた次の識別子に相当するアドレスとデータ長管理情報220との整合性を確認し(ステップS316)、異常である場合はステップS317へ進み、正常でかつ次の第2階層のデータは存在しないと判断した場合はステップS303に戻り、正常でかつ次の第2階層のデータが存在すると判断した場合はステップS318へ進む。
【0078】
なお、ステップS316において異常であると判断する状態としては、たとえば、求められたアドレスがデータ長管理情報220で指定されたデータ長のアドレスの範囲を超えている場合などがある(図14参照)。
【0079】
ステップS317では、データ検索異常の応答ステータスをリーダライタ2へ出力する。ステップS318では、ステップS315で求められた次の識別子に相当するアドレスのデータを1バイト読込む。次に、この読込んだデータを確認し(ステップS319)、次のデータも識別子の一部であると確認された場合は次のデータを1バイト読込み(ステップS320)、ステップS313へ戻る。ステップS319の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップS313へ戻る。
【0080】
なお、上記例では、識別子が1バイト長または2バイト長のみで構成されるデータで説明を行なったが、3バイト以上の識別子が含まれる場合も同様である。また、本例では、長さ情報が1バイト長のみで構成されるデータで説明を行なったが、たとえば、ISO/IEC7816−4 Annex.Dで記載されているような、長さ情報が1バイト以上で表現される場合も同様である。
【0081】
以上述べた少なくとも1つの実施形態の携帯可能電子装置によれば、第2データ表現形式の識別子、あるいは、第1データ表現形式の識別子および第2データ表現形式の識別子を出力することで、TLV入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出することが可能になる。
【0082】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【0083】
以下に、本願出願の当所の特許請求の範囲に記載された発明を付記する。
【0084】
[1]識別子と長さと値とから構成されるデータを記憶したメモリと、
外部装置から受信したコマンドにて当該識別子の一部分を指定された識別子を前記メモリ内のデータから検索し、当該一部分を指定された識別子を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【0085】
[2]識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索し、当該一部分を指定された第2データ表現形式の識別子を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【0086】
[3]識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて当該識別子の一部分を指定された第1データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索するとともに、前記受信したコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索し、当該一部分を指定された第1データ表現形式の識別子および第2データ表現形式の識別子を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【0087】
[4]識別子と長さと値とから構成されるデータを記憶したメモリと、外部装置から受信したコマンドにて当該識別子の一部分を指定された識別子を前記メモリ内のデータから検索し、当該一部分を指定された識別子を出力する制御手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【0088】
[5]識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索し、当該一部分を指定された第2データ表現形式の識別子を出力する制御手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【0089】
[6]識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて当該識別子の一部分を指定された第1データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索するとともに、前記受信したコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索し、当該一部分を指定された第1データ表現形式の識別子および第2データ表現形式の識別子を出力する制御手段とを有したICモジュールと、
このICモジュールを収納したICカード本体と、
を具備したことを特徴とするICカード。
【符号の説明】
【0090】
1…ICカード(携帯可能電子装置)、1a…ICカード本体、2…リーダライタ(外部装置)、3…パーソナルコンピュータ、11…磁気ストライプ部、12…通信部、13…ICチップ、14…CPU(制御手段)、15…データメモリ、16…ワーキングメモリ、17…プログラムメモリ。

【特許請求の範囲】
【請求項1】
複数ビットからなる識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索する識別子のビット長と検索する識別子を含み、第2データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットを指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドにて上位あるいは下位の複数ビットを一部分として指定された識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記一部分を指定された識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第2データ表現形式のデータから検索する検索手段と、
この検索手段により検索された当該識別子の一部分を指定された第2データ表現形式の識別子を出力する出力手段と、
を具備する携帯可能電子装置。
【請求項2】
複数ビットからなる識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索する識別子のビット長と検索する識別子を含み、第1データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットおよび第2データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットを指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドにて上位あるいは下位の複数ビットを一部分として指定された識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記一部分を指定された識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第1データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索するとともに、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第2データ表現形式のデータから検索する検索手段と、
この検索手段により検索された当該識別子の一部分を指定された第1データ表現形式の識別子および第2データ表現形式の識別子を出力する出力手段と、
を具備する携帯可能電子装置。
【請求項3】
複数ビットからなる識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索する識別子のビット長と検索する識別子を含み、第2データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットを指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドにて上位あるいは下位の複数ビットを一部分として指定された識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記一部分を指定された識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第2データ表現形式のデータから検索する検索手段と、
を具備する携帯可能電子装置。
【請求項4】
複数ビットからなる識別子と長さと値とから構成されるデータの表現形式を第1データ表現形式とし、前記値に第1データ表現形式で表現されるデータが少なくとも1つ以上並設されてなる第2データ表現形式のデータを記憶したメモリと、
このメモリに記憶された各データに対応して設けられ、対応するデータを制御するための情報で、少なくとも当該制御情報に対応するデータの識別子を示す情報から構成される制御情報を記憶している制御情報記憶手段と、
外部装置から送られ、少なくとも検索する識別子のビット長と検索する識別子を含み、第1データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットおよび第2データ表現形式の識別子の一部分として当該識別子の上位あるいは下位の複数ビットを指定するコマンドを受信する受信手段と、
この受信手段により前記コマンドを受信すると、当該コマンドにて上位あるいは下位の複数ビットを一部分として指定された識別子と一致する制御情報が前記制御情報記憶手段内にあるか否かを判断する制御情報判断手段と、
この制御情報判断手段により前記一部分を指定された識別子と一致する制御情報があると判断された場合、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第1データ表現形式の識別子を前記メモリ内の第1データ表現形式のデータから検索するとともに、前記受信手段により受信されたコマンドにて当該識別子の一部分を指定された第2データ表現形式の識別子を前記メモリ内の第2データ表現形式のデータから検索する検索手段と、
を具備する携帯可能電子装置。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2012−208952(P2012−208952A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2012−157620(P2012−157620)
【出願日】平成24年7月13日(2012.7.13)
【分割の表示】特願2006−151507(P2006−151507)の分割
【原出願日】平成18年5月31日(2006.5.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】