説明

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

【課題】 ICカード運用中にDefault Applicationを弾力的に変更する。
【解決手段】 複数のアプリケーションとそれぞれのアプリケーションに対応した識別子を保持する携帯可能電子装置2において、携帯可能電子装置が活性化された際、登録された暗黙的に特定のアプリケーションを選択する特定アプリ選択部101と、外部から識別子を提示してアプリケーションを選択する選択命令が提示された際、当該識別子に対応するアプリケーションを選択する指定アプリ選択部101と、今回活性化されてから次回活性化されるまでの間で最終に選択されたアプリケーションを特定のアプリケーションとして登録する特定アプリ登録部101とを備えた携帯可能電子装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、携帯可能電子装置と処理装置との間で情報通信を行う携帯可能電子装置及びICカードに関する。
【背景技術】
【0002】
携帯可能電子装置として用いられるICカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ICカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【0003】
市場で運用されているICカードのほとんどは、1枚のICカードに複数のアプリケーションが搭載された、いわゆるマルチアプリケーションICカードである。このマルチアプリケーションICカードとして有名なものとして、例えばJava(登録商標)Cardがある。このICカードでは、Java(登録商標)言語で記述された複数のアプリケーションを搭載し、またアプリケーションの削除が可能である。
【0004】
複数のアプリケーションを実行可能なICカードは、ISO7816−4に従う。ISO7816−4では、国内、及び世界中で重複することがないよう登録制により、各アプリケーションにAID(application identifier)という5〜16バイトの識別情報(識別子)が付与される。ICカードは、外部装置から指示されるSELECTコマンドに含まれるAIDによりアプリケーションを選択して、このアプリケーションを実行する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】GlobalPlatform Card Specification Version 2.2
【発明の概要】
【発明が解決しようとする課題】
【0006】
一方、複数のアプリケーションプログラムを搭載するスマートカードの標準化組織であるGlobalPlatformが定めたCard Specificationに準拠しているICカードにおいては、アプリケーションをカードにインストールする際に、カード活性化直後、暗黙的に選択されるアプリケーション(Card Reset Application)を設定することができる。このようなICカードに対しては、カード活性化直後、SELECTコマンドで明示的にアプリケーションを選択しなくても、Card Reset Applicationが暗黙的に選択されており、このアプリケーションに対して続く処理を指示・実行することが可能である。
【0007】
しかしながら、カード活性化直後、暗黙的に選択されるアプリケーション(以下、Default Applicationとも称す。)は固定的であり、ICカード内にアプリケーションを搭載する時点で決める必要がある。その為、ICカード運用中にDefault Applicationを弾力的に変更することができない。
【課題を解決するための手段】
【0008】
上記課題を解決するための本発明の実施の形態によれば、複数のアプリケーションとそれぞれのアプリケーションに対応した識別子を保持する携帯可能電子装置において、前記携帯可能電子装置が活性化された際、登録された暗黙的に特定のアプリケーションを選択する特定アプリ選択部と、外部から識別子を提示してアプリケーションを選択する選択命令が提示された際、当該識別子に対応するアプリケーションを選択する指定アプリ選択部と、今回活性化されてから次回活性化されるまでの間で最終に選択されたアプリケーションを前記特定のアプリケーションとして登録する特定アプリ登録部とを備えた携帯可能電子装置が提供される。
【図面の簡単な説明】
【0009】
【図1】本実施形態に係るICカードと通信を行うICカード処理装置の構成例について説明するためのブロック図。
【図2】本実施形態に係るICカードの構成例について説明するためのブロック図。
【図3】本実施形態のデータメモリのファイル構造を示す概念図。
【図4】本実施形態のICカードの活性化シーケンスにおいて、暗黙的に特定のアプリケーションを選択する手順を示すフローチャート。
【図5】第1の実施の形態のDefault Applicationとして登録する処理手順を示すフローチャート。
【図6】本実施形態のAIDテーブルを示す図。
【図7】本実施形態の選択回数管理テーブルを示す図。
【図8】第2の実施の形態のDefault Applicationとして登録する処理手順を示すフローチャート。
【発明を実施するための形態】
【0010】
(第1の実施形態)
以下、図面を参照しながら、本発明の第1の実施形態に係る携帯可能電子装置について詳細に説明する。なお、以下には携帯可能電子装置としてICカードを例として説明するが、本発明はICカードに限られない。
【0011】
図1は、本実施形態に係るICカード2と通信を行うICカード処理装置1の構成例について説明するためのブロック図である。
図1に示すようにICカード処理装置1は、端末装置11、ディスプレイ12、キーボード13、及びカードリーダライタ14などを有している。
【0012】
端末装置11は、CPU、種々のメモリ、及び各種インターフェースなどを備える。端末装置11は、ICカード処理装置1全体の動作を制御する。
ディスプレイ12は、端末装置11の制御により種々の情報を表示する。キーボード13は、ICカード処理装置1の操作者による操作を操作信号として受け取る。
カードリーダライタ14は、ICカード2と通信を行うためのインターフェース装置である。カードリーダライタ14は、ICカード2に対して、電源供給、クロック供給、リセット制御、及びデータの送受信を行う。
【0013】
端末装置11は、カードリーダライタ14によりICカード2に対して種々のコマンドを入力する。ICカード2は、例えば、カードリーダライタ14からデータの書き込みコマンドを受信した場合、受信したデータを内部の不揮発性メモリに書き込む処理を行う。
また、端末装置11は、ICカード2に読み取りコマンドを送信することにより、ICカード2からデータを読み出す。端末装置11は、ICカード2から受信したデータに基づいて種々の処理を行う。
【0014】
ICカード2は、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたICモジュールとを備えている。ICモジュールは、ICチップを有している。ICチップは、電源が無い状態でもデータを保持することができるEEPROM(Electrically Erasable Programmable Read−Only Memory)またはフラッシュROMなどの不揮発性メモリと、種々の演算を実行するCPUとを有している。
【0015】
図2は、図1に示すICカード2の構成例について説明するためのブロック図である。
図2に示すように、ICカード2は、カード状の本体21と、本体21内に内蔵されたICモジュール22とを備えている。ICモジュール22は、1つ又は複数のICチップ100と、通信部105とを備える。ICチップ100と通信部105とは、互いに接続された状態でICモジュール22内に埋設して形成されている。
【0016】
ICチップ100は、制御素子(CPU)101、データメモリ102、ワーキングメモリ103、プログラムメモリ104を備えている。これらの各部は、データバスを介して互いに接続されている。
【0017】
ICカード2は、ICカード処理装置1などの上位機器から電力の供給を受けた場合、動作可能な状態になる。例えば、ICカード2が非接触式のICカードとして構成される場合、ICカード2は、通信部としてのアンテナなどを介してICカード処理装置1からの電波を受信し、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【0018】
通信部105は、ICカード処理装置1のカードリーダライタ14との通信を行うためのインターフェースである。通信部105は、例えば、ICカード処理装置1のカードリーダライタ14と無線通信を行う送受信アンテナ、送信データの変調及び受信データの復調を行う変復調部を備える。
【0019】
CPU101は、ICカード2全体の制御を司る制御部として機能する。CPU101は、プログラムメモリ104あるいはデータメモリ102に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。
【0020】
データメモリ102は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。データメモリ102は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【0021】
たとえば、データメモリ102では、プログラムファイル及びデータファイルなどが創成される。創成された各ファイルには、制御プログラム及び種々のデータなどが書き込まれる。CPU101は、データメモリ102、または、ROMに記憶されているプログラムを実行することにより、種々の処理を実現することができる。
【0022】
ワーキングメモリ103は、揮発性のメモリである。ワーキングメモリ103は、CPU101の処理中のデータなどを一時的に格納する。例えば、ワーキングメモリ103は、通信部105を介してICカード処理装置1から受信したデータを一時的に格納する。また、ワーキングメモリ103は、CPU101が実行するプログラムを一時的に格納する。
【0023】
プログラムメモリ104は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。プログラムメモリ104は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2内に組み込まれる。即ち、プログラムメモリ104に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0024】
図3は、データメモリ102のファイル構造を示す概念図である。
ICカードに複数のアプリケーションが搭載されている場合、データメモリ102には、たとえば、図2に示すように、複数のアプリケーションに関する情報がファイル構造で記憶されている。このファイル構造は、ISO/IEC7816−4に基づき、色々な種類のファイルについて階層構造となっている。
【0025】
図2に示すように、最上位がMF(MasterFile)201で、その配下にアプリケーションごとに設定されるフォルダとしてDF(DedicatedFile)202、203、204、205が設けられる。さらに、それらの配下に実際にアプリケーションで使われるユーザデータの格納に使用されるEF(ElementaryFile)207、208、209が設けられる。また、MF201の配下には、カード全体へのアクセス権を確立するためのキー等の格納に使用されるEF206が設けられる。なお、DFは搭載しているアプリケーションに相当する数だけ設けられる。
【0026】
図3に示す形態では、例えばDF202には、アプリケーション用ファイルとしてDF名(以下、APL1とも称す)が設定され、その配下には、当該アプリケーションで使用されるデータを保持するEF207(以下、EF1−1とも称す)、EF208(以下、EF1−2とも称す)という2つのファイルが存在する。
DF204、DF204、DF205(以下、それぞれAPL2、APL3、APL4とも称す)についても、同様の構成である。
【0027】
これらのアプリケーションは、CPU101によって選択されることで初めて処理を実行することが可能となる。アプリケーション選択手段として、以下の二つがあげられる。
第一の手段として、ICカード2は、外部から明示的に対象のアプリケーションを選択する命令を受信することで、対象のアプリケーションを選択することが可能である。例えばISO−7816−4では、対象アプリケーションのDF名を指定したSELECTコマンドを受信することで当該アプリケーションが選択される。
第二の手段として、ある特定のアプリケーションをCard Reset Applicationとして設定することで、カード活性化直後、暗黙的に特定のアプリケーションを選択することが可能である。
【0028】
図4は、ICカードの活性化シーケンスにおいて、暗黙的に特定のアプリケーションを選択する手順を示すフローチャートである。
【0029】
ICカード処理装置1(以下、通信端末という。)は、ICカード2に、動作電源(Vcc、GND)、動作クロック(CLK)、及びRESET信号を供給し、活性化シーケンスが開始する。
【0030】
ステップF301において、CPU101は、通信端末1から起動された場合、スタートアップ処理を行う。そして、不揮発性データメモリ102内のSystem Areaに記録されたDefault Application情報(Default ApplicationのDF name格納位置を示すポインタ情報)を読み出し、当該アプリケーション選択処理を実行する。
【0031】
ステップF302において、CPU101は、不揮発性データメモリ102からATR(Answer To Reset)値を読み出す。ATR値には、ICカード2が効率的に通信するための通信プロトコル、通信レートが含まれている。CPU101は、読み出したATR値を通信端末1へ送信する。またCPU101は、送信した通信プロトコル、通信レートをワーキングメモリ103に格納する。
【0032】
ステップF303において、通信端末1は、受信したATR値に基づき、通信すべき通信プロトコル及び通信レートを取得する。通信端末1は、取得した通信プロトコル及び通信レートから現在の通信プロトコル及び通信レートを変更しなくとも通信可能と判断すると(F304、NO)、これら通信プロトコル及び通信レートによる通信を開始し、これ以降、Default Applicationの処理が実行される。
【0033】
逆に、通信端末1は、これら通信プロトコル及び通信レートによる通信が不能と判断すると(F304、YES)、ステップF305において、通信条件を変更するための要求コマンドであるPPSリクエストを送信し、例えば通信レートの変更を要求する。
【0034】
ステップF306において、ICカード2は、通信端末1から受信したPPSリクエストをチェックし、有効か無効か判断する。ICカード2がPPSリクエスト有効と判断すると(F306、YES)、ステップF307において、ICカード2はPPSレスポンスを通信端末1に送信する。同時に、ICカード2は、PPSリクエストに基づき、PPSレスポンス送信後に、通信すべき通信プロトコル及び通信レートを判断し、これら通信プロトコル及び通信レートをワーキングメモリ103に格納する。
なお、PPSリクエストが無効であれば(F306、NO)、通信プロトコル及び通信レートは変更されない。以降、Default Applicationの処理が実行される。
【0035】
続いて、Default ApplicationをICカード2が変更する手順について説明する。
【0036】
一般的に最後(最近)に選択されたアプリケーションは繰り返し利用される確率が高いと考えられる。そこで、第1の実施の形態では、CPU101は、あるアプリケーションが選択された場合に、当該アプリケーションをDefault Applicationとして不揮発性データメモリ102内のSystem Areaに記憶する。これによって、最終選択アプリケーションを、次回カード活性化直後、暗黙的に選択することが可能となる。
【0037】
図5は、第1の実施の形態のDefault Applicationとして登録する処理手順を示すフローチャートである。
CPU101は、SELECTコマンドを受信することで指定されたアプリケーションを選択する。このアプリケーションを選択する際、CPU101は、選択されたアプリケーションのDF nameをDefault Applicationとして登録する処理を実行する。
【0038】
ここで各アプリケーションのDF nameは、図6に示すAIDテーブル120で管理されている。AIDテーブル120には、ICカード2に搭載されているアプリケーションのDF nameが記載されている。AIDテーブル120は、データメモリ102としてのEEPROMなどに格納されている。
【0039】
CPU101はアプリケーションを選択するSELECTコマンドを受信し、当該コマンドに含まれるDF nameを取得すると、データメモリに格納されたAIDテーブル120からDF nameの検索処理を開始する。まず、検索ポインタをAIDテーブル120の先頭位置に設定し、ステップF401において、当該位置に記憶されているDF nameが受信したDF nameと一致しているかどうか比較する。
【0040】
DF nameが一致していなかった場合(F401 NO)は、次の検索候補における比較処理に移る。ステップF402において、現在の検索ポインタが登録DF nameの最後の位置であるか否かをチェックする。もし最後の位置であった場合(F402 YES)は、検索処理を終了し、ステップF403において、『選択候補無し』を意味するステータスワードを外部に返送する。
【0041】
もし最後の位置でない場合(F402 NO)は、ステップF404において、次の検索ポインタを1つ分進め、検索ポインタで示された位置にあるDF nameと、SELECTコマンドから取得されたDF nameとの比較処理を実施し、上記フローに沿った処理を継続する。ここで「1つ分進める」とは、データメモリ102上で管理されているAIDテーブル120の次行のアドレスを検索ポインタに設定することをいう。
【0042】
検索候補が見つかった場合(F401 YES)は、ステップF405において、当該DF nameをDefault Applicationとして登録する。即ち、不揮発性データメモリ102のSystem Areaに記録されたDefault Application情報を更新する。そして、通常のSELECTコマンド処理(アプリケーション選択処理)を実行する。
【0043】
(第2の実施形態)
第2の実施の形態では、DF nameをDefault Applicationとして登録する手順が第1の実施の形態と異なっている。第1の実施の形態と同一の部位には同一の符号を付してその詳細の説明は省略する。
【0044】
第2の実施の形態では、アプリケーション毎の選択回数を記憶し、選択回数が一番多いアプリケーションをDefault Applicationとして不揮発性データメモリ102内のSystem Areaに記憶する。そして、次のカード活性化直後に、当該アプリケーションを暗黙的に選択する。そうすることで使用頻度の一番高いアプリケーションを、カード活性化直後、暗黙的に選択することが可能となり、アプリケーションの選択処理の効率化を実現することができる。
【0045】
図7は、選択回数管理テーブル121を示す図である。
選択回数管理テーブル121には、DF name毎に、SELECTコマンドにより選択された回数が記載されている。そして、選択回数管理テーブル121には、選択回数の多い順にDF nameが並べられる。そして、選択回数管理テーブル121において最上位に登録されているアプリケーション、即ち、選択回数が最も多いアプリケーションがDefault Applicationとして登録される。なお、選択回数管理テーブル121に記載される選択回数は、ICカード2発行時の回数を初期値0として、それ以降に選択された累積の回数である。
【0046】
図8は、第2の実施の形態のDefault Applicationとして登録する処理手順を示すフローチャートである。
CPU101は、SELECTコマンドを受信することで指定されたアプリケーションを選択する。このアプリケーションを選択する際、CPU101は、選択されたアプリケーションのDF nameをDefault Applicationとして登録する処理を実行する。
【0047】
CPU101はアプリケーションを選択するSELECTコマンド受信し、当該コマンドに含まれるDF nameを取得すると、データメモリに格納された選択回数管理テーブル121からDF nameの検索処理を開始する。まず、検索ポインタを選択回数管理テーブル121の先頭位置に設定し、ステップF701において、当該位置に記憶されているDF nameが受信したDF nameと一致しているかどうか比較する。
【0048】
DF nameが一致していなかった場合(F701 NO)は、次の検索候補における比較処理に移る。ステップF702において、現在の検索ポインタが登録DF nameの最後の位置であるか否かをチェックする。もし最後の位置であった場合(F702 YES)は、検索処理を終了し、『選択候補無し』を意味するステータスワードを外部に返送する。
【0049】
もし最後の位置でない場合(F702 NO)は、ステップF703において、次の検索ポインタを1つ分進め、検索ポインタで示された位置にあるDF nameと、SELECTコマンドから取得されたDF nameとの比較処理を実施し、上記フローに沿った処理を継続する。ここで「1つ分進める」とは、データメモリ102上で管理されている選択回数管理テーブル121の次行のアドレスを検索ポインタに設定することをいう。
【0050】
検索候補が見つかった場合(F701 YES)は、ステップF704において、選択回数管理テーブル121上の当該DF nameの選択回数を更新する。次に、ステップF705において、当該DF nameが選択回数管理テーブル121の最上位であるかどうか、即ち、最も選択回数が多いかどうかをチェックする。もし最上位であった場合(F705 YES)は、テーブル更新処理は終了し、次の処理であるアプリケーション選択処理に移る。
【0051】
ステップF705の処理の結果、最上位で無かった場合(F705 NO)は、ステップF706において、当該DF nameの、選択回数管理テーブル121上、1つ上のDF name(以下、A2とも称す)の選択回数と、選択回数を更新した後の当該DF nameの選択回数とを比較する。上位のDF name (A2)の選択回数よりも当該DF name (A1)の選択回数の方が大きかった場合(F706 NO)は、ステップF707において、選択回数管理テーブル上のA2とA1の順序を入れ替える。
【0052】
上位のDF name (A2)の選択回数が、更新後の当該DF name (A1)の選択回数以上であった場合(F706 YES)は、テーブル更新処理は終了し、次の処理であるアプリケーション選択処理に移る。
【0053】
ステップF708において、ステップF707における処理の結果、当該DF nameが選択回数管理テーブル上、最上位であるかチェックする。最上位であった場合(F708 YES)は、ステップF709において、当該DF nameをDefault Applicationとして登録し、次の処理であるアプリケーション選択処理に移る。最上位でなかった場合(F708 NO)は、次の処理であるアプリケーション選択処理に移る。
【0054】
〔実施の形態の効果〕
以上説明した各実施の形態により、カード活性化直後、暗黙的に選択されるDefault Applicationを弾力的に変更することが可能となる。運用上良く使われると考えられる、前回活性化時の最終選択アプリケーション、または選択回数の多いアプリケーションの選択処理の効率化を実現することができる。
【0055】
更に、活性化時のATR出力にて、Default Applicationを通知することで、現在選択されているアプリケーション情報を外部にも通知することができるため、より効率的な運用を図ることができる。
【0056】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0057】
1…ICカード処理装置、2…ICカード、11…端末装置、14…カードリーダライタ、21…本体、22…ICモジュール、24…通信部、100…ICチップ、101…CPU、102…データメモリ、103…ワーキングメモリ、104…プログラムメモリ、105…通信部、120…AIDテーブル、121…選択回数管理テーブル、122…登録アプリケーション名管理テーブル。

【特許請求の範囲】
【請求項1】
複数のアプリケーションとそれぞれのアプリケーションに対応した識別子を保持する携帯可能電子装置において、
前記携帯可能電子装置が活性化された際、登録された暗黙的に特定のアプリケーションを選択する特定アプリ選択部と、
外部から識別子を提示してアプリケーションを選択する選択命令が提示された際、当該識別子に対応するアプリケーションを選択する指定アプリ選択部と、
今回活性化されてから次回活性化されるまでの間で最終に選択されたアプリケーションを前記特定のアプリケーションとして登録する特定アプリ登録部と
を備えたことを特徴とする携帯可能電子装置。
【請求項2】
複数のアプリケーションとそれぞれのアプリケーションに対応した識別子を保持する携帯可能電子装置において、
前記携帯可能電子装置が活性化された際、登録された暗黙的に特定のアプリケーションを選択する特定アプリ選択部と、
外部から識別子を提示してアプリケーションを選択する選択命令が提示された際、当該識別子に対応するアプリケーションを選択する指定アプリ選択部と、
前記携帯可能電子装置が発行されてから、選択された回数が最も多いアプリケーションを前記特定のアプリケーションとして登録する特定アプリ登録部と
を備えたことを特徴とする携帯可能電子装置。
【請求項3】
活性化の際、前記携帯可能電子装置から前記外部に対して送信する活性化応答データに前記特定のアプリケーションの情報を含めることを特徴とする請求項1又は2に記載の携帯可能電子装置。
【請求項4】
請求項1乃至3の内いずれか1項に記載の各部を有するICモジュールと、
このICモジュールを収納したICカード本体と
を備えたことを特徴とする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