(57)【要約】【課題】 書き換え可能なメモリを効率的に使用するマルチアプリケーション型ＩＣカードを提供する。【解決手段】  ＥＥＰＲＯＭ１３には、アプリケーション３０が共通で使用する共通コマンドのコードを記憶した共通コードアプリケーション３１が実装される。コマンド実行手段２２は、選択されているアプリケーション３０で実行できないコマンドの処理を共通コードアプリケーション３１に委任する。また選択コマンド２１は、アプリケーション３０と共通コードアプリケーション３１を識別する機能を備え、共通コードアプリケーション３１が単独では選択することはできない。【選択図】      図１
2005332094.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを書き換え可能なメモリに実装するマルチアプリケーション型ＩＣカードにおいて、前記アプリケーションが共通で使用するコマンドコードを記憶した共通コードアプリケーションを前記書き換え可能なメモリに実装し、外部端末から受信したコマンドの処理を前記共通コードアプリケーションに記憶されたコマンドコードを利用して処理するコマンド実行手段を少なくとも備えたことを特徴とするマルチアプリケーション型ＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、前記書き換え可能なメモリに実装されたアプリケーションはアプリケーションの種類を示す識別情報を具備し、前記マルチアプリケーション型ＩＣカードに備えられた選択コマンドは、選択するアプリケーションの前記識別情報が前記共通コードアプリケーションを示す値の場合、アプリケーションを選択する処理を中止する機能を備えていることを特徴とするマルチアプリケーション型ＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クレジットカードサイズのプラスチックカードに半導体集積回路（以下、ＩＣチップと記す）を埋め込んだＩＣカードに関し、特に書き換え可能なメモリに複数のアプリケーションを実装できるマルチアプリケーション型ＩＣカードに関する。
【背景技術】
【０００２】
ＩＣカードとは、クレジットカードサイズのプラスチックカードにＩＣチップを埋め込み、前記ＩＣチップのメモリにデータを記録するカードである。近年、ＩＣカードはキャッシュカード、クレジットカードまたは電子マネーなどに幅広く応用されている。
【０００３】
従来、ＩＣカードには用途ごとに単一のソフトウェアすなわちアプリケーションを読み出し専用メモリ（Read Only Memory 、以下ＲＯＭと記す）に実装することが主流であったため、一枚のＩＣカードは単一の機能しか持たず、用途ごとにＩＣカードが必要であった。このため、利用者側は複数枚のＩＣカードを常に所持する必要があり大変不便であった。この問題を解消すべく、現在は一枚のＩＣカードに複数のアプリケーションを組み込むことができるマルチアプリケーション型ＩＣカードが主流になりつつある。
【０００４】
マルチアプリケーション型ＩＣカードとは、複数のアプリケーションを書き換え可能なメモリに実装することができるＩＣカードで、ＩＣチップが備えているＲＯＭに基本処理を行うマルチアプリケーションオペレーティングシステム（Operating System、以下ＯＳと記す）を実装し、同じくＩＣチップが備えている電気的に消去・書き換えができるＲＯＭ（Electrically Erasable Programmable Read Only Memory、以下ＥＥＰＲＯＭと記す）等の書き換え可能なメモリに一つまたは複数のアプリケーションを実装する。
【０００５】
書き換え可能なメモリにアプリケーションを実装することで、利用者が使用する複数のアプリケーションを一枚のＩＣカードに実装でき、またＩＣカード製造後のアプリケーションの追加、不必要なアプリケーションの削除が行なえ、かつアプリケーションの機能拡充も容易になる。
【０００６】
ただし前述のマルチアプリケーション型ＩＣカードでは、アプリケーションが使用するコマンドコードが同じ内容でも、アプリケーションのすべてのデータを書き換え可能なメモリに実装する必要があるため、同じコマンドコードを使用する複数個のアプリケーションを書き換え可能なメモリに実装した場合、複数の同じコマンドコードが書き換え可能なメモリに実装されることになり、書き換え可能なメモリを効率良く使用できない問題があった。
【０００７】
この問題を解決すべく、例えば、特許文献１においては、書き換え可能なメモリをアプリケーションコードを記憶するアプリケーションコード領域と前記アプリケーションコードが使用するアプリケーションデータ領域とに分割して管理することで、同じ処理を行うアプリケーションの場合は、アプリケーションコードを共通化し、データのみを個別化することで、書き換え可能なメモリを効率良く使用する発明を開示している。
【特許文献１】特開２００３−２０３２１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、各アプリケーションが共通で使用する共通コマンドコードをアプリケーションとして書き換え可能なメモリに実装すると、前記共通コマンドコードが単独で選択・実行された場合、アプリケーションのデータの破壊またはアプリケーションのデータの改竄等が生じる恐れがあった。
【０００９】
そこで本発明は上述の問題を鑑みて、書き換え可能なメモリに実装されたアプリケーションが共通で使用する共通コマンドコードを同じ書き換え可能なメモリにアプリケーションとして実装することで、書き換え可能なメモリを効率的に使用し、更に共通コマンドコードを記憶したアプリケーションの単独での選択・実行ができないマルチアプリケーション型ＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決する第１の課題解決手段は、アプリケーションを書き換え可能なメモリに実装するマルチアプリケーション型ＩＣカードにおいて、前記アプリケーションが共通で使用するコマンドコードを記憶した共通コードアプリケーションを前記書き換え可能なメモリに実装し、外部端末から受信したコマンドの処理を前記共通コードアプリケーションに記憶されたコマンドコードを利用して処理するコマンド実行手段を少なくとも備えたことを特徴とするマルチアプリケーション型ＩＣカードである。
【００１１】
第１の課題解決手段によれば、マルチアプリケーション型ＩＣカードの書き換え可能なメモリに前記共通コードアプリケーションを実装し、マルチアプリケーション型ＩＣカードが前記コマンド実行手段を備えることで、前記アプリケーションが前記共通コードアプリケーションに記憶されたコマンドコードを使用してコマンドを処理することができ、前記アプリケーション間で重複するコマンドコードを書き換え可能なメモリに重複して実装する必要がなくなり、書き換え可能なメモリを効率良く使用できる。
【００１２】
更に第２の課題解決手段は、第１の課題解決手段に記載のＩＣカードにおいて、前記書き換え可能なメモリに実装されたアプリケーションはアプリケーションの種類を示す識別情報を具備し、前記マルチアプリケーション型ＩＣカードに備えられた選択コマンドは、選択するアプリケーションの前記識別情報が前記共通コードアプリケーションを示す値の場合、アプリケーションを選択する処理を中止する機能を備えていることを特徴とするマルチアプリケーション型ＩＣカードである。
【００１３】
第２の課題解決手段によれば、選択コマンドが前記識別情報に基づいてアプリケーションの選択処理を実行することで、前記共通コードアプリケーションが単独で選択・実行するのを防止でき、前記共通コードアプリケーションのコマンドコードが単独で実行することによるアプリケーションのデータの破壊またはアプリケーションのデータの改竄等を防ぐことができる。
【発明の効果】
【００１４】
上述した発明によれば、前記共通コードアプリケーションを書き換え可能なメモリに実装することで、書き換え可能なメモリを効率よく使用することができ、更に、マルチアプリケーション型ＩＣカードに備えられた選択コマンドが前記識別情報に基づいてアプリケーション選択処理を実行することで、選択するアプリケーションが前記共通コードアプリケーションの場合は選択処理を中止し、前記共通コードアプリケーションが単独で実行されることによるアプリケーションのデータの破壊またはアプリケーションのデータの改竄等を防ぐことができる。
【発明を実施するための最良の形態】
【００１５】
本発明の好適な実施の形態を、以下に図を参照にしながら詳細に説明する
【００１６】
まず初めに本実施の形態のマルチアプリケーション型ＩＣカードのソフトウェアおよびデータの構造について説明する。まずマルチアプリケーション型ＩＣカードのソフトウェアの構造およびＩＣチップの構造について説明する。図１はマルチアプリケーション型ＩＣカードのソフトウェアの構造を説明するための図、図２はＩＣチップの構造を説明するため図である。
【００１７】
図１に示すようにマルチアプリケーション型ＩＣカードの基本構造モデルは、ＩＣチップ１０、マルチアプリケーションＯＳ２０、アプリケーション３０およびアプリケーション３０が共通で使用するコマンドコードを記憶した共通コードアプリケーション３１からなる。
【００１８】
図２はＩＣチップ１０の構造図である。ＩＣチップ１０には、中央演算装置１１（Central Processing Unit、以下ＣＰＵと記す）、読み出し専用メモリ１２（Read Only Memory、以下ROMと記す）、書換え可能なメモリとしてＥＥＰＲＯＭ１３（Electrically Erasable Programmable Read-Only Memoryの略）、揮発性メモリとしてランダムアクセスメモリ１４（Random Access Memory、以下ＲＡＭと記す）および図外の外部端末とデータを通信するためのＩ／Ｏ回路１５を少なくとも備なえている。
【００１９】
本発明は、ＩＣチップ１０の仕様を限定するものではなく、ＩＣカードの用途に適した仕様のＩＣチップ１０を選択することができる。例えばＲＯＭ１２およびＥＥＰＲＯＭ１３の容量については限定しないし、書換え可能なメモリは強誘電体メモリまたはフラッシュメモリ等のＥＥＰＲＯＭ以外のメモリであっても構わない。またＩＣチップ１０はタイマー回路、暗号演算回路またはコプロセッサ回路等の図示していない他のデバイスを備えていても構わない。
【００２０】
マルチアプリケーションＯＳ２０は、アプリケーション３０および共通コードアプリケーション３１をＥＥＰＲＯＭ１３へ実装する機能、ＥＥＰＲＯＭ１３に実装したアプリケーション３０および共通コードアプリケーション３１を削除する機能、ならびにＩ／Ｏ回路１５を制御し図外の外部端末と通信する機能等のＩＣカードが動作するための基本機能を備えたソフトウェアであり、一般的にマルチアプリケーションＯＳ２０のコードはＲＯＭ１２に記憶される。
【００２１】
本発明の形態においては、マルチアプリケーションＯＳ２０は前述の内容に加え、ＥＥＰＲＯＭ１３に実装されたアプリケーション３０（共通コードアプリケーション３１も含む）を選択する選択コマンド２１と、共通コードアプリケーション３１に記憶されたコマンドコードを実行するコマンド実行手段２２とを少なくとも備えている。
【００２２】
アプリケーション３０はある用途ために設計されたソフトウェアであり、ＥＥＰＲＯＭ１３に利用者が必要とする一つまたは複数のアプリケーション３０が実装される。なお実装されるアプリケーション３０は、マルチアプリケーションＯＳ２０が対応している中間言語で記述されることが一般的である。
【００２３】
共通コードアプリケーション３１とは、アプリケーション３０間で重複するコマンドコード（例、パスワード認証コマンドのコード、データ読み書きコマンドのコード等）を記憶したアプリケーションである。共通コードアプリケーション３１はそれ自身ではデータを持たず、共通コードアプリケーション３１で記述されたコマンドコードが実行される際は、選択されているアプリケーション３０のデータを利用する。
【００２４】
ＥＥＰＲＯＭ１３に実装されたアプリケーション３０または共通コードアプリケーション３１は、アプリケーション３０または共通コードアプリケーション３１を実装した情報としてアプリケーション情報４０を有している。アプリケーション情報４０は、アプリケーション３０または共通コードアプリケーション３１をＥＥＰＲＯＭ１３に実装した際、マルチアプリケーションＯＳ２０によってＥＥＰＲＯＭ１３に記憶される。
【００２５】
図３は、ＥＥＰＲＯＭ１３記憶されるアプリケーション情報４０を説明するための図である。アプリケーション情報４０には、アプリケーション３０（または共通コードアプリケーション３１）を識別する情報であるアプリケーション名称４１、アプリケーションのコード（または共通コードアプリケーション３１のコード）を記憶したアドレスであるアプリケーションコード記憶アドレス４２、アプリケーション３０のコードが使用するデータを記憶したアドレスであるアプリケーションデータ記憶アドレス４３、アプリケーション３０（または共通コードアプリケーション３１）の種類を識別する識別情報として識別情報４４、アプリケーション３０が使用する共通コードアプリケーション３１を特定する情報として利用共通コード名称４５がそれぞれ記憶される。
【００２６】
また図３に示したように、アプリケーション情報４０に記憶される各要素（例えば、アプリケーション名称４０１等）には、要素の内容を示すタグ４１０からタグ４５０がそれぞれ設けられ、前記タグを利用することで、マルチアプリケーションＯＳ２０はタグ以降に記憶されている要素の内容を把握できる。
【００２７】
例えば、タグ４１０が「２Ｆ０１ｈ」（ｈは１６進表記を示す）とした場合には、「２Ｆ０１ｈ」以降に記憶されているデータは、アプリケーション名称４１と判断される。
【００２８】
アプリケーション名称４１とは、例えばＩＳＯ７８１６規格で定められているＡＩＤ（Application Identification Data)等のアプリケーション３０（または共通コードアプリケーション３１）を識別する情報で、アプリケーション３０を選択する際に使用される情報でもある。
【００２９】
アプリケーションプログラム記憶アドレス４２とは、アプリケーション名称４１で特定されるアプリケーション３０のコード（または共通コードアプリケーション３１のコード）が実装されているＥＥＰＲＯＭ１３のアドレスである。
【００３０】
アプリケーションデータ記憶アドレス４３とは、アプリケーション３０のコードが使用するデータが記憶されているＥＥＰＲＯＭ１３のアドレスである。前述の通り、共通コードアプリケーション３１はデータを持たないため、共通コードアプリケーション３１のアプリケーション情報４０にはアプリケーションデータ記憶アドレス４３は記憶されない。
【００３１】
識別情報４４とは共通コードアプリケーション３１とアプリケーション３０を識別する情報で、共通コードアプリケーション３１の識別情報４４とアプリケーション３０の識別情報４４を異なる値に設定することで、識別情報４４の値から共通コードアプリケーション３１とアプリケーション３０とを識別することができる。
【００３２】
また、利用共通コード名称４５とは、アプリケーション３０が使用する共通コードアプリケーション３１を特定する情報で、アプリケーション３０が使用する共通コードアプリケーション３１のアプリケーション名称４１が記憶される。利用共通コード名称４５を記憶することで、アプリケーション３０が使用する共通コードアプリケーション３１を設定できる。なお、アプリケーション３０が共通コードアプリケーション３１を使用しない場合には、利用共通コード名称４５はアプリケーション情報４０には記憶されない。
【００３３】
マルチアプリケーションＯＳ２０に備えられた選択コマンド２１は、ＥＥＰＲＯＭ１３に記憶された複数のアプリケーションの中から一つのアプリケーションを選択するコマンドである。
【００３４】
本実施の形態の選択コマンド２１は、前述の機能に加え、図外の外部端末から送信された選択コマンドメッセージで特定されるアプリケーションが有する識別情報４４の値を調査し、識別情報４４の値が共通コードアプリケーション３１を意味する値の場合は、アプリケーション選択処理を中止する機能を備えている。
【００３５】
またマルチアプリケーションＯＳ２０に備えられたコマンド実行手段２２は、図外の外部端末から受信したコマンドメッセージを共通コードアプリケーション３１を利用して処理する機能を備えている。
【００３６】
図外の外部端末からコマンドメッセージを受信すると、コマンド実行手段２２はアプリケーション３０に前記コマンドの処理を委任する。アプリケーション３０でコマンド処理できない場合は、コマンド実行手段２２は選択されているアプリケーション３０のアプリケーション情報４０に含まれる利用共通コード名称４５を調査する。そして、アプリケーション情報４０に利用共通コード名称４５が記憶されている場合は、コマンド実行手段２２は利用共通コード名称４５で特定される共通コードアプリケーション３１に受信したコマンドメッセージの処理を委任する。
【００３７】
なお、共通コードアプリケーション３１に受信したコマンドメッセージの処理を委任する際は、コマンドメッセージと共にアプリケーションデータ記憶アドレス４３を共通コードアプリケーション３１に引き渡すことで、共通コードアプリケーション３１はアプリケーション３０のデータを処理することができる。
【００３８】
＜ＩＣカードの動作の説明＞
ここから、これまで述べた構成のＩＣカードの動作について説明する。図４はアプリケーションの選択処理の手順を示したフロー図、図５は図外の外部端末から受信したコマンド処理の手順を示したフロー図である。
【００３９】
まず、アプリケーションの選択処理の手順について、図４を参照しながら詳細に説明する。マルチアプリケーションＯＳ２０が図外の外部端末から選択コマンドメッセージを受信すると（ステップＳ１００）、マルチアプリケーションＯＳ２０に備えられた選択コマンド２１は前記選択コマンドメッセージで示されるアプリケーションのアプリケーション情報４０に含まれる識別情報４４を調査する（ステップＳ１１０）。
【００４０】
選択コマンド２１は、ステップＳ１１０で読取った識別情報４４から、前記選択コマンドメッセージで示されるアプリケーションが共通コードアプリケーション３１であるか判断する（ステップＳ１２０）。
【００４１】
ステップＳ１２０で読取った識別情報４４が共通コードアプリケーション３１を示す情報であればステップＳ１４０に進み、アプリケーションを選択できないことを示すメッセージを図外の外部端末に送信し、アプリケーション選択処理を終了する。
【００４２】
ステップＳ１２０で読取った識別情報４４がアプリケーション３０を示す情報であれば、ステップＳ１３０に進み、選択コマンド２１は前記選択コマンドメッセージで示されるアプリケーション３０を選択する（ステップＳ１３０）。以上をもって、アプリケーション３０の選択処理手順は終了する。
【００４３】
次に外部端末から受信したコマンド処理の手順を、図５を参照しながら説明する。アプリケーション３０が選択された状態で、コマンドメッセージを図外の外部端末から受信すると（ステップＳ２００）、マルチアプリケーションＯＳ２０のコマンド実行手段２２は、選択されているアプリケーション３０に前記コマンドメッセージの処理を委任する（ステップＳ２１０）。なおアプリケーション３０のコマンドコードは、アプリケーション情報４０のアプリケーションコード記憶アドレス４２で示されている。
【００４４】
アプリケーション３０で前記コマンドメッセージの処理が実行された場合はコマンドの処理手順は終了し、アプリケーション３０で前記コマンドの処理ができなかった場合はステップＳ２３０へ進む（ステップＳ２２０）。
【００４５】
ステップＳ２２０でアプリケーション３０で前記コマンドの処理ができなかった場合は、コマンド実行手段２２は選択されているアプリケーション３０のアプリケーション情報４０に含まれる利用共通コード名称４５を調査する（ステップＳ２３０）。
【００４６】
ステップＳ２３０で調査したアプリケーション情報４０に利用共通コード名称４５が設定されている場合はステップＳ２５０へ進み、設定されていない場合はステップＳ２８０へ進みコマンド処理は中断される（ステップＳ２４０）。
【００４７】
ステップＳ２４０でアプリケーション情報４０に利用共通コード名称４５が設定されている場合は、コマンド実行手段２２は、利用共通コード名称４５で示される共通コードアプリケーション４０の識別情報４４を調査する（ステップＳ２５０）。
【００４８】
ステップＳ２５０で調査した利用共通コード名称４５で示される共通コードアプリケーション４０の識別情報４４が、共通コードアプリケーション４０を意味する値でなければステップＳ２８０へ進みコマンド処理を中止し、共通コードアプリケーション４０を意味する値の場合はステップＳ２７０へ進む（ステップＳ２６０）。
【００４９】
ステップＳ２６０で利用共通コード名称４５で示される共通コードアプリケーション４０の識別情報４４が共通コードアプリケーション４０を意味する値であれば、コマンド実行手段２２は、利用共通コード名称４５で示される共通コードアプリケーション４０に受信したコマンドの処理を委任する（ステップＳ２７０）。
【００５０】
これまでの述べたように、本発明の実施の形態によれば、共通コードアプリケーション３１を書き換え可能なメモリ（本実施の形態ではＥＥＰＲＯＭ１３）に実装することで、書き換え可能なメモリを効率よく使用することができる。
【００５１】
また、マルチアプリケーション型ＩＣカードがコマンド実行手段２２を備えることで、アプリケーション３０が処理できないコマンドは共通コマンドアプリケーション３１で処理される。
【００５２】
更には、マルチアプリケーション型ＩＣカードに備えられた選択コマンド２１が識別情報４４に基づいてアプリケーション選択処理を実行することで、選択するアプリケーションが共通コードアプリケーションの３１場合はアプリケーションの選択処理は中止される。
【図面の簡単な説明】
【００５３】
【図１】ソフトウェアおよびデータの基本構造モデルを説明するための図。
【図２】ＩＣチップの構造を説明するための図。
【図３】アプリケーション情報を説明するための図。
【図４】アプリケーションの選択手順を説明するための図。
【図５】コマンドの実行手順を説明するための図。
【符号の説明】
【００５４】
１０  ＩＣチップ
１２  ＲＯＭ
１３  ＥＥＰＲＯＭ
２０  マルチアプリケーションＯＳ
２１  選択コマンド
２２  コマンド実行手段
３０  アプリケーション
３１  共通コードアプリケーション
４０  アプリケーション情報
４１  アプリケーション情報に含まれるアプリケーション名称
４２  アプリケーション情報に含まれるアプリケーションコード記憶アドレス
４３  アプリケーション情報に含まれるアプリケーションデータ記憶アドレス
４４  アプリケーション情報に含まれる識別情報
４５  アプリケーション情報に含まれる利用共通コード名称
【図１】
2005332094.tif 000003
【図２】
2005332094.tif 000004
【図３】
2005332094.tif 000005
【図４】
2005332094.tif 000006
【図５】
2005332094.tif 000007