(57)【要約】【課題】製造コストの低減を図ることができ、利便性及びセキュリティ性の高いＩＣカード及びＩＣカードプログラムを提供する。【解決手段】アプリケーションデータと、コマンド処理プログラムとを含む、複数のアプリケーションを登録することが可能なＩＣカード１であって、コマンド処理プログラムを記憶するＲＯＭ１５と、コマンド処理プログラムの実行を制限するためのコマンド制御情報を記憶するとともに、アプリケーションデータをこのアプリケーションデータと同一のアプリケーションに含まれるＲＯＭ１５に記憶されているコマンド処理プログラムが対応するコマンドの種類を識別するコマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報に関連づけて記憶する書き換え可能な不揮発性メモリ１７とを備えることを特徴とする。【選択図】                図１
2004192181.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションデータと、コマンド処理プログラムとを含む、複数のアプリケーションを登録することが可能なＩＣカードであって、
前記コマンド処理プログラムを記憶する、読み出し専用であって不揮発性の第１の記憶部と、
前記アプリケーションデータを記憶する書き換え可能な不揮発性の第２の記憶部とを備えること、
を特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、
前記第２の記憶部は、記憶しているアプリケーションデータと、このアプリケーションデータと同一のアプリケーションに含まれる前記第１の記憶部に記憶されているコマンド処理プログラムとを関連づける関連づけ情報を記憶すること、
を特徴とするＩＣカード。
【請求項３】
請求項１又は請求項２に記載のＩＣカードにおいて、
前記第２の記憶部は、前記アプリケーションデータと、前記第１の記憶部に記憶されているコマンド処理プログラムが対応するコマンドの種類を識別するコマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報とを関連づけて記憶すること、
を特徴とするＩＣカード。
【請求項４】
請求項１から請求項３までのいずれか１項に記載のＩＣカードにおいて、
前記第２の記憶部は、前記第１の記憶部に記憶されているコマンド処理プログラムの実行を制限するためのコマンド処理プログラム実行制限情報を記憶すること、
を特徴とするＩＣカード。
【請求項５】
請求項１から請求項４までのいずれか１項に記載のＩＣカードにおいて、
一のアプリケーションの選択下において、コマンドを受信した場合に、前記コマンドに対応するコマンド処理プログラムが前記一のアプリケーションに含まれるか否かを判定するコマンド処理プログラム実行判定手段を備えること、
を特徴とするＩＣカード。
【請求項６】
請求項５に記載のＩＣカードにおいて、
前記コマンド処理プログラム実行判定手段は、前記コマンド処理プログラム実行制限情報に基づいて判定を行い、
前記コマンド処理プログラム実行判定手段によって肯と判定された場合に、前記コマンド処理プログラムを実行するコマンド処理プログラム実行手段とを備えること、
を特徴とするＩＣカード。
【請求項７】
請求項４から請求項６までのいずれか１項に記載のＩＣカードにおいて、
前記コマンド処理プログラム実行制限情報を書き換えるコマンド処理プログラム実行制限情報書き換え要求を受信した場合に、この要求が正当なものであるか否かを判定する書き換え要求正当性判定手段と、
前記書き換え要求正当性判定手段によって肯と判定された場合に、前記コマンド処理プログラム実行制限情報書き換え要求に応じて前記コマンド実行制限情報を書き換えるコマンド実行制限情報書き換え手段とを備えること、
を特徴とするＩＣカード。
【請求項８】
アプリケーションに含まれるコマンド処理プログラムを記憶する、読み出し専用であって不揮発性の第１の記憶部と、前記アプリケーションに含まれるアプリケーションデータを記憶する書き換え可能な不揮発性の第２の記憶部とを備え、複数のアプリケーションを登録することが可能なＩＣカードのＣＰＵに実行させるＩＣカードプログラムであって、
一のアプリケーションの選択下において、受信したコマンドに対応するコマンド処理プログラムが前記一のアプリケーションに含まれるか否かを判定するコマンド処理プログラム実行判定手順を備えること、
を特徴とするＩＣカードプログラム。
【請求項９】
請求項８に記載のＩＣカードプログラムにおいて、
前記第２の記憶部は、前記第１の記憶部に記憶されているコマンド処理プログラムの実行を制限するためのコマンド処理プログラム実行制限情報を記憶し、
前記コマンド処理プログラム実行判定手順は、前記第２の記憶部に記憶されているコマンド処理プログラム実行制限情報に基づいて判定を行い、
前記コマンド処理プログラム実行判定手順において肯と判定した場合に、前記コマンド処理プログラムを実行するコマンド処理プログラム実行手順とを備えること、
を特徴とするＩＣカードプログラム。
【請求項１０】
請求項９に記載のＩＣカードプログラムにおいて、
前記コマンド処理プログラム実行制限情報を書き換えるコマンド処理プログラム実行制限情報書き換え要求を受信した場合に、この要求が正当なものであるか否かを判定する書き換え要求正当性判定手順と、
前記書き換え要求正当性判定手順において肯と判定した場合に、前記要求に応じて前記コマンド実行制限情報を書き換えるコマンド実行制限情報書き換え手順とを備えること、
を特徴とするＩＣカードプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のアプリケーションを登録することが可能なＩＣカード、及び、登録されているアプリケーションがＩＣカードのハードウェアを利用するためにＣＰＵを実行させるＩＣカードプログラムに関するものである。
【０００２】
【従来の技術】
従来のＩＣカードに搭載されているオペレーティングシステム（以下、「オペレーティングシステム」を「ＯＳ」という。）は、以下の２種類に分類することができる。一方は単一のアプリケーションをＩＣカードで利用できるようにするためのシングルアプリケーションＯＳであり、他方は複数のアプリケーションを利用できるようにするためのマルチアプリケーションＯＳである。
シングルアプリケーションＯＳを搭載したシングルアプリケーションＩＣカードは、ほとんどのプログラムが内容を書き換えることができない読出し専用メモリ（ＲＯＭ）に記憶されており、読み出し及び書き換え可能な不揮発性メモリ（ＥＥＰＲＯＭ等）のメモリ領域のほとんどは、データを記憶する領域として使用されている。従って、シングルアプリケーションＩＣカードでは、容量あたりのコストが高いＥＥＰＲＯＭに大きな容量が必要とされず、ＩＣチップ価格が安価であるため、そのＩＣカード価格は、低廉である。
【０００３】
一方、ＭＵＬＴＯＳカード、ＪＡＶＡカード（「ＪＡＶＡ」は登録商標）等のマルチアプリケーションＯＳを搭載したマルチアプリケーションＩＣカードは、ＥＥＰＲＯＭに複数のアプリケーションを登録することができ、また、発行後であってもアプリケーションの追加登録、変更等が可能であるため、利便性及び拡張性が高い。なお、登録とは、記憶することである。
【０００４】
【発明が解決しようとする課題】
しかし、シングルアプリケーションＩＣカード及びマルチアプリケーションＩＣカードは、以下の問題があった。
シングルアプリケーションＩＣカードは、複数のアプリケーションを登録することができないため、拡張性及び利便性に欠けるという問題があった。
【０００５】
一方、マルチアプリケーションＩＣカードは、容量あたりのコストが高価なＥＥＰＲＯＭに複数のアプリケーションを格納するため、シングルアプリケーションＩＣカードよりも容量の大きいＥＥＰＲＯＭを備える必要があり、ＩＣカードの価格が高価になるという問題があった。
この問題を解決するため、アプリケーションに含まれる、外部装置から受信したコマンドに対応する処理を行うコマンド処理プログラムをＥＥＰＲＯＭの代わりにＲＯＭに実装する方法が考えられる。
しかし、ＲＯＭに実装されたコマンド処理プログラムは、ＩＣカードに登録されている全てのアプリケーションにおいて実行可能となり、セキュリティ性に欠けるおそれがあった。また、ＩＳＯ７８１６等に規格化されているコマンドに対応するコマンド処理プログラム等、同一のコマンド識別子のコマンドに対応するコマンド処理プログラムが複数のアプリケーションにそれぞれ含まれる場合には、ＩＣカードは、外部装置から受信したコマンドをコマンド識別子で識別して、対応するコマンド処理プログラムを実行するため、それぞれのアプリケーションにおいて対応するコマンド処理プログラムを区別できないおそれがあった。
【０００６】
本発明の課題は、製造コストの低減を図ることができ、利便性及びセキュリティ性の高いＩＣカード及びＩＣカードプログラムを提供することである。
【０００７】
【課題を解決するための手段】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項１の発明は、アプリケーションデータと、コマンド処理プログラムとを含む、複数のアプリケーションを登録することが可能なＩＣカードであって、前記コマンド処理プログラムを記憶する、読み出し専用であって不揮発性の第１の記憶部（１５）と、前記アプリケーションデータを記憶する書き換え可能な不揮発性の第２の記憶部（１７）とを備えること、を特徴とするＩＣカード（１）である。
【０００８】
請求項２の発明は、請求項１に記載のＩＣカードにおいて、前記第２の記憶部は、記憶しているアプリケーションデータと、このアプリケーションデータと同一のアプリケーションに含まれる前記第１の記憶部に記憶されているコマンド処理プログラムとを関連づける関連づけ情報を記憶すること、を特徴とするＩＣカード（１）である。
【０００９】
請求項３の発明は、請求項１又は請求項２に記載のＩＣカードにおいて、前記第２の記憶部は、前記アプリケーションデータと、前記第１の記憶部に記憶されているコマンド処理プログラムが対応するコマンドの種類を識別するコマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報とを関連づけて記憶すること、を特徴とするＩＣカード（１）である。
【００１０】
請求項４の発明は、請求項１から請求項３までのいずれか１項に記載のＩＣカードにおいて、前記第２の記憶部は、前記第１の記憶部に記憶されているコマンド処理プログラムの実行を制限するためのコマンド処理プログラム実行制限情報を記憶すること、を特徴とするＩＣカード（１）である。
【００１１】
請求項５の発明は、請求項１から請求項４までのいずれか１項に記載のＩＣカードにおいて、一のアプリケーションの選択下において、コマンドを受信した場合に、前記コマンドに対応するコマンド処理プログラムが前記一のアプリケーションに含まれるか否かを判定するコマンド処理プログラム実行判定手段（１４２、Ｓ１４０，Ｓ１５０）を備えること、を特徴とするＩＣカード（１）である。
【００１２】
請求項６の発明は、請求項５に記載のＩＣカードにおいて、前記コマンド処理プログラム実行判定手段は、前記コマンド処理プログラム実行制限情報に基づいて判定を行い、前記コマンド処理プログラム実行判定手段によって肯と判定された場合に、前記コマンド処理プログラムを実行するコマンド処理プログラム実行手段（１４，Ｓ１６０）とを備えること、を特徴とするＩＣカード（１）である。
【００１３】
請求項７の発明は、請求項４から請求項６までのいずれか１項に記載のＩＣカードにおいて、前記コマンド処理プログラム実行制限情報を書き換えるコマンド処理プログラム実行制限情報書き換え要求を受信した場合に、この要求が正当なものであるか否かを判定する書き換え要求正当性判定手段（１４２、Ｓ３４０，Ｓ３５０）と、前記書き換え要求正当性判定手段によって肯と判定された場合に、前記コマンド処理プログラム実行制限情報書き換え要求に応じて前記コマンド実行制限情報を書き換えるコマンド実行制限情報書き換え手段（１４３，Ｓ３６０）とを備えること、を特徴とするＩＣカード（１）である。
【００１４】
請求項８の発明は、アプリケーションに含まれるコマンド処理プログラムを記憶する、読み出し専用であって不揮発性の第１の記憶部（１５）と、前記アプリケーションに含まれるアプリケーションデータを記憶する書き換え可能な不揮発性の第２の記憶部（１７）とを備え、複数のアプリケーションを登録することが可能なＩＣカードのＣＰＵに実行させるＩＣカードプログラムであって、一のアプリケーションの選択下において、受信したコマンドに対応するコマンド処理プログラムが前記一のアプリケーションに含まれるか否かを判定するコマンド処理プログラム実行判定手順（Ｓ１４０，Ｓ１５０）を備えること、を特徴とするＩＣカードプログラムである。
【００１５】
請求項９の発明は、請求項８に記載のＩＣカードプログラムにおいて、前記第２の記憶部は、前記第１の記憶部に記憶されているコマンド処理プログラムの実行を制限するためのコマンド処理プログラム実行制限情報を記憶し、前記コマンド処理プログラム実行判定手順は、前記第２の記憶部に記憶されているコマンド処理プログラム実行制限情報に基づいて判定を行い、前記コマンド処理プログラム実行判定手順において肯と判定した場合に、前記コマンド処理プログラムを実行するコマンド処理プログラム実行手順（Ｓ１６０）とを備えること、を特徴とするＩＣカードプログラムである。
【００１６】
請求項１０の発明は、請求項９に記載のＩＣカードプログラムにおいて、前記コマンド処理プログラム実行制限情報を書き換えるコマンド処理プログラム実行制限情報書き換え要求を受信した場合に、この要求が正当なものであるか否かを判定する書き換え要求正当性判定手順（Ｓ３４０，Ｓ３５０）と、前記書き換え要求正当性判定手順において肯と判定した場合に、前記要求に応じて前記コマンド実行制限情報を書き換えるコマンド実行制限情報書き換え手順（Ｓ３６０）とを備えること、を特徴とするＩＣカードプログラムである。
【００１７】
【発明の実施の形態】
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。
（実施形態）
図１は、本発明によるＩＣカードの実施形態を説明するための図であって、図１（ａ）は表面図、図１（ｂ）及び図１（ｃ）はＩＣチップ内部及びＣＰＵを示すブロック図である。
図１に示すように、ＩＣカード１は、接触型のＩＣチップ１０を備えている。ＩＣカード１は、リーダライタを備える情報処理端末等の図示しない外部装置に接続されることによって、電源の供給を受けて通信を行う、複数のアプリケーションを登録することが可能なマルチアプリケーションＩＣカードである。ＩＣカード１は、コマンド識別子を含むコマンドを外部装置から受信すると、このコマンド識別子に対応するコマンド処理プログラムを実行し、その処理結果であるレスポンスを外部装置へ送信する。アプリケーションとは、ユーザの目的を実現するために業務等に応じて作成されたソフトウェアプログラムであって、プログラム部と、データ部とを含んでいる。プログラム部は、例えば、コマンドによって要求された処理を行うコマンド処理プログラム等のアプリケーションの実行によって書き換えられることのない、主にプログラムコードの部分であり、アプリケーションデータは、プログラム部の実行に必要な情報である。
【００１８】
図１に示すように、ＩＣチップ１０は、カード表面に、信号及び電力を送受信する通信手段である接触端子１１と、外部装置との通信を制御する送受信回路１２と、マイクロプロセッサ１３とを備えている。
マイクロプロセッサ１３は、ＣＰＵ１４、３種類のメモリ１５，１６，１７等を備えている。ＣＰＵ１４は、メモリに記憶されているプログラムを実行することによってＩＣカード１を統括制御し、外部装置から受信したコマンドに応じた処理を行うと共に、アプリケーション選択部１４１、判定部１４２及び書き換え部１４３等を実現する。
【００１９】
アプリケーション選択部１４１は、指定するアプリケーションの選択を要求するコマンドであるアプリケーション選択コマンドを外部装置から受信した場合に、指定されているアプリケーションの選択を実行する。アプリケーションの選択とは、アプリケーション選択コマンドで指定されるアプリケーションのアプリケーション識別情報、アプリケーションデータを格納するデータファイルを識別する識別情報等をＲＡＭ１６に保持し、カレントファイル等のコマンドのアクセス対象となる情報を設定することである。
判定部１４２は、外部装置からコマンドを受信した場合に、アプリケーション選択部１４１によって選択されたアプリケーションがこのコマンド処理プログラムを実行できる権限を有するか否か、つまり、選択されているアプリケーションにこのコマンド処理プログラムが含まれるか否かを判定するコマンド処理プログラム実行判定処理を行う。
【００２０】
また、判定部１４２は、コマンド制御情報（後述する図３参照）の書き換えを要求するコマンドであるコマンド制御情報書き換えコマンドを外部装置から受信した場合に、この外部装置に書き換えの正当な権限を有するか否か、つまり、このコマンド制御情報書き換え要求が正当な要求であるか否かを判定する書き換え要求正当性判定処理を行う。判定部１４２は、不揮発性メモリ１７に記憶されている認証フラグを参照し、認証済であれば、肯と判定し、未認証であれば否と判定する。
更に、判定部１４２は、コマンド制御情報を書き換える権限を有することの認証を要求する書き換え権限認証コマンドを外部装置から受信した場合に、この外部装置に書き換えの正当な権限を有することを認証するか否かを判定する書き換え権限認証判処理を行う。この書き換え要求正当性判定処理は、例えば、判定部１４２が乱数（８バイト）等の無作為な値を外部装置へ送信し、外部装置がこの乱数を記憶している暗号鍵で暗号化し、この暗号をＩＣカード１へ返送し、ＩＣカード１の判定部１４２が外部装置において暗号化された暗号と、不揮発性メモリ１７に記憶されている認証情報に含まれる暗号鍵で乱数を暗号化した暗号とを比較し、同一である場合には、不揮発性メモリ１７に記憶されているフラグを認証済とし、同一でなければ認証しないことによって実行される。なお、認証処理は、書き換え権限認証コマンドの送信元を認証するか否かを判定できればよく、その認証方法は、共通鍵暗号方式に限られず、公開鍵暗号方式等、他の認証方法であってもよい。
【００２１】
書き換え部１４３は、判定部１４２によってコマンド制御情報書き換えコマンドが正当な要求であると判定された場合に、コマンド制御情報の書き換えを行うコマンド制御情報書き換え処理を行う。なお、コマンド制御情報の書き換えとは、書き込み、消去、書き換え等コマンド制御情報に含まれる情報を変えることである。
３つのメモリは、それぞれ読み出し専用であって、電源が切れてもデータが消去されない不揮発性のメモリであるＲＯＭ１５、読み出し及び書き換え可能であって、電源が切れるとデータが消去されてしまう揮発性のメモリであるＲＡＭ１６、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の読み出し及び書き換えが可能な不揮発性メモリ１７である。本実施形態におけるメモリ容量は、ＲＯＭ１５が１６Ｋバイト、ＲＡＭ１６が１Ｋバイト、不揮発性メモリ１７が８Ｋバイトである。
【００２２】
ＲＯＭ１５は、外部装置からコマンドを受信するプログラム、外部装置から受信したコマンドを解析するプログラム、コマンドの処理を行うプログラム、外部装置にデータを送信するプログラム、ＣＰＵ１４のアプリケーション選択部１４１、判定部１４２及び書き換え部１４３を実現するプログラム、データの管理プログラム等を含むＯＳ、実行環境等のＩＣカード１がその目的を実現する処理を行うために必要なプログラムを記憶している。ＲＯＭ１５は、アプリケーションに含まれる複数のコマンド処理プログラムを記憶している。これらのプログラムは、ＩＣチップ１０製造時にＲＯＭ１５に書き込まれる。
【００２３】
図２は、コマンド処理プログラム識別情報を説明するための表である。
図２に示すように、ＲＯＭ１５は、複数のコマンド処理プログラムをそれぞれコマンド処理プログラム識別情報に関連づけて記憶している。コマンド処理プログラム識別情報は、各種コマンド処理プログラムが対応するコマンドを示すコマンド識別子と、個別識別子（ＯＰＴＩＯＮ）とを含んでいる。なお、名称が「××」のコマンド処理プログラムは、「××コマンド」に応じた処理を行うプログラムである。
【００２４】
コマンド識別子とは、例えばＩＳＯ７８１６等に規格化されているように、外部装置からＩＣカードへ送信されるコマンドのヘッダに含まれるクラスバイト（ＣＬＡ）及び命令バイト（ＩＮＳ）等のコマンドの種類を識別するためのコマンド種別情報であって、種類毎に所定の値が割り当てられている。ＲＯＭ１５は、コマンド処理プログラムに、対応するコマンドを示すコマンド識別子を関連づけて記憶している。従って、異なるアプリケーションの選択下で実行されるべき「読み出し１コマンド」に対応するコマンド処理プログラム及び「読み出し２コマンド」に対応するコマンド処理プログラムは、対応するコマンドの種類が同一であるため、同一のコマンド識別子が関連づけられている。なお、同一のコマンド識別子が割り当てられている同一の種類のコマンドであっても、対応するアプリケーションの違いから、その具体的な要求内容は異なっている。
個別識別子（ＯＰＴＩＯＮ）は、同一のコマンド識別子に関連づけられている個々のコマンド処理プログラムを識別するための識別情報である。従って、コマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報によって、少なくともＲＯＭ１５に記憶されている複数のコマンド処理プログラムから一のコマンド処理プログラムを識別することが可能である。
【００２５】
図１に示すように、ＲＡＭ１６は、ＯＳが動作するために必要な情報が逐次書き込まれるＣＰＵ１４の作業領域であって、プログラム等は、記憶されていない。不揮発性メモリ１７は、アプリケーション管理情報、アプリケーションデータ等を記憶している。
図３は、書き換え可能な不揮発性メモリのメモリ構造図である。
図３に示すように、不揮発性メモリ１７のメモリ領域は、ＯＳの管理のもとで、ユーザが利用できないＯＳ情報領域１７ｓと、ユーザが利用可能なアプリケーション管理情報領域１７ａ及びデータ領域１７ｄとに割り当てられている。アプリケーション管理情報領域１７ａ及びデータ領域１７ｄには、それぞれ、管理情報及びアプリケーションデータがファイル形式で記憶されている。
【００２６】
アプリケーション管理情報は、関連づけ情報と、コマンド制御情報と、認証情報とを含んでいる。関連づけ情報は、アプリケーション名、アプリケーションデータを記憶しているアドレス、コマンド処理プログラムを記憶しているアドレス、アプリケーションデータを格納するデータファイルを識別するデータファイル識別情報等、ＲＯＭ１５、不揮発性メモリ１７に記憶しているアプリケーションに含まれる各種の情報を関連づけるための情報である。アプリケーション名は、アプリケーションを識別するためのアプリケーション識別情報であって、本実施形態では、ＩＣカード１に登録されている一のアプリケーションには、「Ｂ８ＤＡＢＣＤＥＡＦＣ４ｈ」のアプリケーション名が付されている。
【００２７】
コマンド制御情報は、複数のコマンド処理プログラム識別情報を含み、このアプリケーションの選択下において実行可能なコマンド処理プログラムを示すとともに、コマンド処理プログラムの実行を制限するコマンド処理プログラム実行制限情報である。例えば、コマンド制御情報が「００１０００１０１０００２０１０００２０２０００３０１０００ＦＦｈ」であれば、図２から、「００１０００ｈ」「１０１０００ｈ」「２０１０００ｈ」「２０２０００ｈ」「３０１０００ｈ」は、それぞれ「読み出し１」、「認証１」、「クレジット１」「クレジット２」「ポイント１」のコマンド処理プログラムを実行可能であることを示している。なお、末尾の１バイト「ＦＦｈ」は、コマンド制御情報の終端を示している。
判定部１４２は、コマンドを受信した場合に、コマンドに含まれるコマンド識別子が選択されているアプリケーションのコマンド制御情報に含まれるか否によって、コマンド処理プログラム実行判定処理を行う。
【００２８】
認証情報は、判定部１４２による書き換え権限認証判処理における判定のもととなる情報であって、ＤＥＳ、Ｔｒｉｐｌｅ  ＤＥＳ、ＩＤＥＡ等の共通鍵暗号方式における暗号鍵、ＲＳＡ等の公開鍵暗号方式における公開鍵等の暗号鍵を用いることができる。本実施形態において、認証情報は、ＤＥＳの暗号鍵「００１１２２３３４４５５６６７７ｈ」（８バイト）である。
【００２９】
ＩＣカード１の発行について説明する。
カード発行者は、外部装置から、情報の書き込みを要求するコマンドを、コマンド処理プログラム等が書き込まれたＲＯＭ１５を備える未発行のＩＣカードへ送信し、アプリケーション管理情報を不揮発性メモリ１７のアプリケーション管理情報領域１７ａへ、アプリケーションデータをデータ領域１７ｄへ、それぞれ書き込み、ＩＣカード１を発行する。
なお、ＩＣカード１の発行後に、同様にＩＣカード１にアプリケーションを追加することも可能である。この場合には、ＩＣカード１が新たに登録するアプリケーションの内容が正当なものであること、外部装置が登録する権限を有すること等について、公開鍵暗号方式を利用した電子署名等によって認証済であることをアプリケーション登録の条件とすることが好ましい。
【００３０】
図４は、本発明によるＩＣカードの動作及び本発明によるＩＣカードプログラムの実施形態を示すフローチャートであって、コマンド処理を示している。なお、ＩＣカード１には、複数のアプリケーションが登録されている。
ステップ１００（以下、「ステップ」を「Ｓ」という。）において、ＩＣカード１は、外部装置から電源の供給を受け、活性化された状態であって、外部装置からの命令を受付けることができる状態である。ＩＣカード１は、外部装置からアプリケーション選択コマンドを受信し（Ｓ１１０）、コマンド処理を開始する。アプリケーション選択部１４１は、このコマンドが指定するアプリケーションを選択する（Ｓ１２０）。
【００３１】
Ｓ１３０において、ＩＣカード１は、コマンドを外部装置から受信し、判定部１４２は、受信したコマンドのヘッダに含まれるコマンド識別子をコマンド制御情報に参照し、コマンド処理プログラム実行判定処理を行う（Ｓ１４０、Ｓ１５０）。否と判定した場合には、エラーとなり（Ｓ１９０）、ＩＣカード１は、その旨を示すレスポンスを外部装置へ送信し（Ｓ１７０）、コマンド処理を終了する（Ｓ１８０）。一方、肯と判定した場合には、ＣＰＵ１４は、このコマンド識別子を含むコマンド処理プログラム識別情報が示すコマンド処理プログラムをＲＯＭ１５から読み出して実行する（Ｓ１６０）。ＩＣカード１は、この処理結果をレスポンスとして外部装置へ送信し（Ｓ１７０）、処理を終了する（Ｓ１８０）。
【００３２】
従って、Ｓ１２０において、「Ｂ８ＤＡＢＣＤＥＡＦＣ４ｈ」のアプリケーションを選択し、Ｓ１３０において、ＩＣカード１がコマンド識別子「１０１０」のコマンドを受信した場合には、このコマンド識別子を有するコマンド処理プログラム「１０１０００ｈ」がコマンド制御情報に含まれるため、Ｓ１５０において、判定部１４２は、肯と判定し、ＣＰＵ１４は、このコマンド処理プログラム識別情報が示す「認証１」のコマンド処理プログラムを実行する（Ｓ１６０）。
一方、Ｓ１３０において、コマンド識別子「３０１０」のコマンドを受信した場合には、「３０１０」のコマンド識別子を有するコマンド処理プログラム識別情報がコマンド制御情報に含まれないため、判定部１４２は、否と判定し（Ｓ１５０）、ＩＣカード１は、コマンド処理プログラム識別情報が「３０１０」である「ポイント１」のコマンド処理プログラムを実行せず、エラーのレスポンスを外部装置へ送信する（Ｓ１９０、Ｓ１７０）。
【００３３】
図５は、本発明によるＩＣカードの動作及び本発明によるＩＣカードプログラムの実施形態を示すフローチャートであって、コマンド制御情報書き換え処理を示している。
Ｓ３００からＳ３２０まで、ＩＣカード１は、図４のＳ１００からＳ１２０までと同様の処理を行い、コマンド制御情報の書き換えの対象となるアプリケーションを選択する。
Ｓ３３０において、ＩＣカード１は、コマンド処理プログラム識別情報を含み、このコマンド処理プログラム識別情報のコマンド制御情報への書き込みを要求するコマンド制御情報書き換えコマンドを外部装置から受信する。判定部１４２は、書き換え要求正当性判定処理を行い（Ｓ３４０）、認証済か否かを判定する（Ｓ３５０）。肯と判定した場合には、書き換え部１４３は、Ｓ３３０において受信したコマンド処理プログラム識別情報をＳ３２０において選択されているアプリケーションのコマンド制御情報に書き込み（Ｓ３６０）、ＩＣカード１は、正常終了のレスポンスを外部装置へ送信し（Ｓ３７０）、コマンド制御情報書き換え処理を終了する（Ｓ４４０）。
【００３４】
Ｓ３５０において、否と判定した場合には、ＩＣカード１は、その旨を示すレスポンスを外部装置へ送信する（Ｓ３８０）。ＩＣカード１は、書き換え権限認証コマンドを受信し（Ｓ３９０）、判定部１４２は、書き換え権限認証判処理を行う（Ｓ４００）。認証できない場合には、エラーとなり（Ｓ４３０）、その旨のレスポンスを外部装置へ送信し（Ｓ３７０）、コマンド制御情報書き換え処理を終了する（Ｓ４４０）。認証した場合には、フラグを認証済とし、ＩＣカード１は、その旨のレスポンスを送信し（Ｓ４２０）、外部装置からコマンド制御情報書き換えコマンドを再び受信し（Ｓ３３０）、同様の処理を繰り返し、コマンド制御情報書き換え処理を終了する（Ｓ３４０からＳ４４０まで）。
【００３５】
図６は、コマンド制御情報書き換え処理の前後におけるコマンド制御情報を説明するための図である。
例えば、ＩＣカード１の発行後に「Ｂ８ＤＡＢＣＤＥＡＦＣ４ｈ」のアプリケーションのコマンド制御情報に「３０２０００ｈ」のコマンド処理プログラム識別情報を書き込むコマンド制御情報書き換え処理を行った場合には（＃１）、このアプリケーションの選択下において、「ポイント２」のコマンド処理プログラムを実行可能となる。また、同様にコマンド制御情報から「３０１０００ｈ」のコマンド処理識別情報を削除するコマンド制御情報書き換え処理を行った場合には（＃２）、「ポイント１」のコマンド処理プログラムを実行することができなくなる。
【００３６】
本実施形態によれば、ＩＣカード１は、不揮発性メモリ１７にアプリケーション管理情報及びアプリケーションデータを記憶し、ＲＯＭ１５にコマンド処理プログラムを記憶することによって複数のアプリケーションを登録するため、従来のマルチアプリケーションＩＣカードと比べて不揮発性メモリ１７の容量を低く抑え、利便性を高く維持しつつ、製造コストの低減を図ることが可能となった。
また、ＩＣカード１は、アプリケーション管理情報、アプリケーションデータを個々に受信し、アプリケーションの登録を行うことができるため、外部装置からＩＣカード１への通信における通信量を軽減し、通信の安全性の向上、利便性の向上を図ることが可能となった。
更にまた、ＩＣカード１は、コマンド処理プログラム、アプリケーション管理情報及びアプリケーションデータを、それぞれ所定の領域に記憶するため、汎用性を高めるとともに、利便性の向上を図ることが可能となった。
【００３７】
また、ＩＣカード１は、不揮発性メモリ１７にコマンド制御情報を記憶し、判定部１４２は、コマンド制御情報に基づいてコマンド処理プログラムを実行する権限について判定し、限られたアプリケーションの選択下においてのみ、コマンド処理プログラムが実行可能となるため、アクセス権限のない不当なアプリケーションにおけるコマンド処理プログラムの実行を防止し、セキュリティ性の向上を図ることが可能となった。
更に、コマンド制御情報のデータを書き換え、アプリケーションで実行可能なコマンド処理プログラムを選別することによって、アプリケーションを個々のＩＣカード１に合わせて容易にカスタマイズすることができ、利便性を向上することが可能となった。
【００３８】
また、ＩＣカード１は、ＲＯＭ１５に記憶されているコマンド処理プログラムをコマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報によって識別し、実行するため、同一のコマンド識別子に対応するコマンド処理プログラムであっても確実に区別して実行することが可能となった。
更に、ＩＣカード１は、ＩＳＯ７８１６等の規格に沿った従来と同様のコマンドを受信し、応じた処理を行うことができるため、外部装置の設計変更等のコストをかけずに、上記効果を得ることが可能となった。
【００３９】
（変形形態）
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、ＩＣカード１は、外部装置と接触端子１１を介して通信を行う接触型ＩＣチップ１０を備えているが、これに限られず、アンテナを介して通信を行う非接触型ＩＣチップでもよく、接触／非接触両方で動作するＩＣチップを備えていてもよい。
【００４０】
判定部１４２は、コマンド制御情報書き換えコマンドを外部装置から受信した場合に、不揮発性メモリ１７に記憶されている認証フラグに基づいて判定を行うが、ＩＣカード１が認証情報を含むコマンド制御情報書き換えコマンドを受信し、この認証情報と、不揮発性メモリに記憶されている認証情報とに基づいて書き換え権限認証判定処理を行うことによって書き換え要求正当性判定処理をおこなってもよく、判定部１４２がコマンド制御情報書き換え要求について正当な要求であるか否かを判定できればよく、書き換え権限認証判定処理及び書き換え要求正当性判定処理を行う順序及び時期等の方法は、限定されない。
【００４１】
ＲＯＭ１５は、個別識別子である「００」等の値をコマンド識別子に付加して、同一のコマンド識別子に関連づけられている個々のコマンド処理プログラムを識別するコマンド処理プログラム識別情報として記憶しているが、個別識別子は、これに限られず、当該コマンド処理プログラムが記憶されているアドレスを利用してもよく、個々のコマンド処理プログラムが少なくとも同一のコマンド識別子に関連づけられている他のコマンド処理プログラムから識別できる情報であればよい。
【００４２】
不揮発性メモリ１７の領域をアプリケーション管理情報領域１７ａ及びデータ領域１７ｄに割り当てて、それぞれアプリケーション管理情報及びアプリケーションデータを記憶しているが、これらの領域に分割せずに記憶していてもよい。
【００４３】
【発明の効果】
以上詳しく説明したように、本発明によれば、以下の効果を得ることが可能となった。
（１）複数のアプリケーションを登録可能なＩＣカードにおいて、読み出し専用であって不揮発性の第１の記憶部がコマンド処理プログラムを記憶することによって、従来のマルチアプリケーションＩＣカードと比べて書き換え可能な不揮発性メモリの容量を低く抑え、利便性を高く維持しつつ、製造コストの低減を図る。
（２）アプリケーション管理情報、アプリケーションデータを個々に受信し、アプリケーションの登録を行うことによって、外部装置からＩＣカード１への１度の通信における通信量を軽減し、通信の安全性の向上、利便性の向上を図る。
（３）第２の記憶部がアプリケーションデータと、第１の記憶部に記憶されているコマンド処理プログラムが対応するコマンドの種類を識別するコマンド識別子及び個別識別子を含むコマンド処理プログラム識別情報とを関連づけて記憶することによって、第１の記憶部に記憶されているコマンド処理プログラムを正確に識別し、実行する。
（４）コマンド処理プログラム実行制限情報を記憶することにより、また、このコマンド処理プログラム実行制限情報に基づいて選択されているアプリケーションに、受信したコマンドに対応するコマンド処理プログラムが含まれるか否かを判定することによって、アクセス権限のない不当なアプリケーションにおけるコマンド処理プログラムの実行を防止し、セキュリティ性の向上を図る。
（５）また、このコマンド処理プログラム実行制限情報を書き換え可能な不揮発性の第２の記憶部に記憶するため、個々のアプリケーションにおいて実行可能なコマンド処理プログラムを選別することによって、ＩＣカード毎にアプリケーションのカスタマイズを容易に行い、利便性の向上を図る。
【図面の簡単な説明】
【図１】本発明によるＩＣカードの実施形態を示すブロック図である。
【図２】コマンド処理プログラム識別情報を説明するための表である。
【図３】書き換え可能な不揮発性メモリのメモリ構造図である。
【図４】本発明によるＩＣカードの動作及び本発明によるＩＣカードプログラムの実施形態を示すフローチャートである。
【図５】本発明によるＩＣカードの動作及び本発明によるＩＣカードプログラムの実施形態を示すフローチャートである。
【図６】コマンド制御情報書き換え処理の前後におけるコマンド制御情報を説明するための図である。
【符号の説明】
１  ＩＣカード
１０  ＩＣチップ
１１  接触端子
１２  送受信回路
１３  マイクロプロセッサ
１４  ＣＰＵ
１５  ＲＯＭ
１６  ＲＡＭ
１７  不揮発性メモリ
１４１  アプリケーション選択部
１４２  判定部
１４３  書き換え部
【図１】
2004192181.tif 000003
【図２】
2004192181.tif 000004
【図３】
2004192181.tif 000005
【図４】
2004192181.tif 000006
【図５】
2004192181.tif 000007
【図６】
2004192181.tif 000008