(57)【要約】【課題】シングルアプリケーションＩＣカード及びマルチアプリケーションＩＣカードのメリットを有する、つまり、製造コストの低減を図ることができ、利便性の高いＩＣカード及びＩＣカードプログラムを提供する。【解決手段】共通プログラムを記憶するＲＯＭ１５と、ユーザプログラムを記憶するメモリ領域及びアプリケーションデータを記憶するデータ領域とにメモリ領域が割り当てられている書き換え可能な不揮発性メモリ１７−２とを備え、共通プログラム、ユーザプログラム及びアプリケーションデータを含む複数のアプリケーションを登録することが可能なＩＣカードであって、ユーザプログラム又はアプリケーションデータを含む登録コマンドを受信する端子１１と、受信したユーザプログラム又はアプリケーションデータを不揮発性メモリ１７−２の所定の領域に書き込む登録要求情報書込部１４８とを備える。【選択図】　　　　　　　　図１１
2004030532.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションにおいて共通するプログラムである共通プログラムを記憶し、読み出し専用であって不揮発性の第１の記憶部と、メモリ領域がプログラム領域と、データ領域とに割り当てられ、個々のアプリケーションに独自のプログラムである独自プログラムをプログラム領域に、アプリケーションデータをデータ領域に、互いに関連づけて記憶する、書き換え可能な不揮発性の第２の記憶部とを備え、前記共通プログラム、前記独自プログラム及び前記アプリケーションデータを含む複数のアプリケーションを登録することが可能なＩＣカードであって、
独自プログラムを含む独自プログラム登録要求又はアプリケーションデータを含むアプリケーションデータ登録要求を受信する登録要求受信手段と、
前記登録要求受信手段によって受信された前記独自プログラム又はアプリケーションデータを前記第２の記憶部の所定の領域に書き込む登録要求情報書込手段とを備えること、
を特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、
前記登録要求受信手段によって受信される独自プログラム又はアプリケーションデータを前記第２の記憶部に記憶されているいずれのアプリケーションデータ又はいずれの独自プログラムに関連づけるかを示す関連づけ情報を受信する関連づけ情報受信手段と、
前記関連づけ情報受信手段によって受信される関連づけ情報が正当であるか否かを判定する関連づけ正当性判定手段とを備え、
前記登録要求情報書込手段は、前記関連づけ正当性判定手段によって肯と判定された場合に書き込みを行うこと、
を特徴とするＩＣカード。
【請求項３】
請求項２に記載のＩＣカードにおいて、
前記第２の記憶部は、アプリケーション識別情報を、同一のアプリケーションに含まれる前記プログラム領域に記憶されている独自プログラムと、前記データ領域に記憶されているアプリケーションデータとに結びつけて記憶し、
前記関連づけ情報受信手段は、関連づけ情報として、前記アプリケーション識別情報を受信すること、
を特徴とするＩＣカード。
【請求項４】
請求項３に記載のＩＣカードにおいて、
前記関連づけ情報受信手段によって受信されたアプリケーション識別情報と同一のアプリケーション識別情報が前記第２の記憶部に記憶されているか否かを判定する登録済判定手段と、
前記関連づけ情報受信手段によって受信される関連づけ情報に対応する関連づけ正当性認証情報を受信する関連づけ正当性認証情報受信手段とを備え、
前記関連づけ正当性判定手段は、前記登録済判定手段によって記憶されていると判定された場合に、前記第２の記憶部に記憶されている同一のアプリケーション識別情報に対応する登録関連づけ正当性認証情報と、前記関連づけ正当性認証情報受信手段によって受信された関連づけ正当性認証情報とを照合することによって判定を行うこと、
を特徴とするＩＣカード。
【請求項５】
請求項１から請求項４までのいずれか１項に記載のＩＣカードにおいて、
前記登録要求受信手段によって受信される独自プログラム又はアプリケーションデータが正当なものであるか否かを判定する登録要求情報正当性判定手段を備え、
前記登録要求情報書込手段は、前記登録要求情報正当性判定手段によって肯と判定された場合に書き込みを行うこと、
を特徴とするＩＣカード。
【請求項６】
請求項１から請求項５までのいずれか１項に記載のＩＣカードにおいて、
前記第２の記憶部は、前記プログラム領域及び／又は前記データ領域の空き容量を示す領域空き容量情報、及び／又は、前記登録要求情報書込手段が独自プログラム又はアプリケーションデータを書き込む位置を示す書込位置情報を記憶すること、
を特徴とするＩＣカード。
【請求項７】
複数のアプリケーションにおいて共通するプログラムである共通プログラムを記憶し、読み出し専用であって不揮発性の第１の記憶部と、メモリ領域がプログラム領域と、データ領域とに割り当てられ、個々のアプリケーションに独自のプログラムである独自プログラムをプログラム領域に、アプリケーションデータをデータ領域に、互いに関連づけて記憶する、書き換え可能な不揮発性の第２の記憶部と、前記第１及び／又は第２の記憶部に記憶されているプログラムを実行するＣＰＵとを備え、前記共通プログラム、前記独自プログラム及び前記アプリケーションデータを含む複数のアプリケーションを登録することが可能なＩＣカードへアプリケーションを登録するために前記ＣＰＵに実行させるＩＣカードプログラムであって、
独自プログラムを含む独自プログラム登録要求又はアプリケーションデータを含むアプリケーションデータ登録要求を受信する登録要求受信手順と、
前記登録要求受信手順において受信した前記独自プログラム又は前記アプリケーションデータを前記第２の記憶部の所定の領域に書き込む登録要求情報書込手順とを備えること、
を特徴とするＩＣカードプログラム。
【請求項８】
請求項７に記載のＩＣカードプログラムにおいて、
前記登録要求受信手順において受信する独自プログラム又はアプリケーションデータを前記第２の記憶部に記憶されているいずれのアプリケーションデータ又はいずれの独自プログラムに関連づけるかを示す関連づけ情報を受信する関連づけ情報受信手順と、
前記関連づけ情報受信手順において受信する関連づけ情報の正当性を認証するための関連づけ正当性認証情報を受信する関連づけ正当性認証情報受信手順と、
前記関連づけ情報受信手順において受信する関連づけ情報が正当であるか否かを前記関連づけ正当性認証情報受信手順で受信した関連づけ正当性認証情報に基づいて判定する関連づけ正当性判定手順とを備え、
前記登録要求情報書込手順は、前記関連づけ正当性判定手順において正当であると判定した場合に実行されること、
を特徴とするＩＣカードプログラム。
【請求項９】
請求項７又は請求項８に記載のＩＣカードプログラムにおいて、
前記登録要求受信手順において受信する独自プログラム又はアプリケーションデータが正当なものであるか否かを判定する登録要求情報正当性判定手順を備え、
前記登録要求情報書込手順は、前記登録要求情報正当性判定手順において正当なものと判定した場合に実行されること、
を特徴とするＩＣカードプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のアプリケーションを登録することが可能なＩＣカード、及び、登録されているアプリケーションがＩＣカードのハードウェアを利用するためにＣＰＵを実行させるＩＣカードプログラムに関するものである。
【０００２】
【従来の技術】
従来のＩＣカードに搭載されているオペレーティングシステム（以下、「オペレーティングシステム」を「ＯＳ」という。）は、以下の２種類に分類することができる。一方は単一のアプリケーションをＩＣカードで利用できるようにするためのシングルアプリケーションＯＳであり、他方は複数のアプリケーションを利用できるようにするマルチアプリケーションＯＳである。
シングルアプリケーションＯＳを搭載したシングルアプリケーションＩＣカードは、ほとんどのプログラムが内容を書換えることができない読出し専用メモリ（ＲＯＭ）に記憶されており、読み出し及び書換え可能な不揮発性メモリ（ＥＥＰＲＯＭ）のメモリ領域のほとんどは、データを記憶する領域として使用されている。従って、シングルアプリケーションＩＣカードでは、容量あたりのコストが高いＥＥＰＲＯＭに大きな容量が必要とされず、チップ価格が安価であるため、そのＩＣカード価格は、低廉である。
【０００３】
一方、ＭＵＬＴＯＳカード、ＪＡＶＡカード（「ＪＡＶＡ」は登録商標）等のマルチアプリケーションＯＳを搭載したマルチアプリケーションＩＣカードは、ＥＥＰＲＯＭにプログラム及びデータを含む複数のアプリケーションを格納し、ユーザ独自の機能を備える独自プログラムを登録することができるため、利便性が高い。なお、登録とは、利用できるように記憶することであって、認証等のための一時的な記憶を含まない。
【０００４】
【発明が解決しようとする課題】
しかし、シングルアプリケーションＩＣカード及びマルチアプリケーションＩＣカードは、以下の問題があった。
シングルアプリケーションＩＣカードは、複数のアプリケーションを登録することができないため、拡張性及び利便性に欠けるという問題があった。
【０００５】
一方、マルチアプリケーションＩＣカードは、容量あたりのコストが高価なＥＥＰＲＯＭに複数のアプリケーションを格納するため、シングルアプリケーションＩＣカードよりも容量の大きいＥＥＰＲＯＭを備える必要があり、ＩＣカード価格が高価になるという問題があった。
更に、マルチアプリケーションＩＣカードは、アプリケーション毎にＥＥＰＲＯＭへ記憶するため、異なるアプリケーションに同一のプログラムコードが含まれる場合であっても、それぞれのアプリケーションの機能として個別にＥＥＰＲＯＭに記憶しなければならず、大変不経済である。
【０００６】
本発明の課題は、シングルアプリケーションＩＣカード及びマルチアプリケーションＩＣカードのメリットを有する、つまり、製造コストの低減を図ることができ、利便性の高いＩＣカード及びＩＣカードプログラムを提供することである。
【０００７】
【課題を解決するための手段】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。すなわち、請求項１の発明は、複数のアプリケーションにおいて共通するプログラムである共通プログラムを記憶し、読み出し専用であって不揮発性の第１の記憶部（１５）と、メモリ領域がプログラム領域（１７ｐ）と、データ領域（１７ｄ）とに割り当てられ、個々のアプリケーションに独自のプログラムである独自プログラムをプログラム領域に、アプリケーションデータをデータ領域に、互いに関連づけて記憶する、書き換え可能な不揮発性の第２の記憶部（１７−２）とを備え、前記共通プログラム、前記独自プログラム及び前記アプリケーションデータを含む複数のアプリケーションを登録することが可能なＩＣカードであって、独自プログラムを含む独自プログラム登録要求又はアプリケーションデータを含むアプリケーションデータ登録要求を受信する登録要求受信手段（１１）と、前記登録要求受信手段によって受信された前記独自プログラム又はアプリケーションデータを前記第２の記憶部の所定の領域に書き込む登録要求情報書込手段（１４８）とを備えること、を特徴とするＩＣカード（１−２）である。
【０００８】
請求項２の発明は、請求項１に記載のＩＣカードにおいて、前記登録要求受信手段によって受信される独自プログラム又はアプリケーションデータを前記第２の記憶部に記憶されているいずれのアプリケーションデータ又はいずれの独自プログラムに関連づけるかを示す関連づけ情報を受信する関連づけ情報受信手段（１１）と、前記関連づけ情報受信手段によって受信される関連づけ情報が正当であるか否かを判定する関連づけ正当性判定手段（１４７）とを備え、前記登録要求情報書込手段は、前記関連づけ正当性判定手段によって肯と判定された場合に書き込みを行うこと、を特徴とするＩＣカード（１−２）である。
【０００９】
請求項３の発明は、請求項２に記載のＩＣカードにおいて、前記第２の記憶部は、アプリケーション識別情報を、同一のアプリケーションに含まれる前記プログラム領域に記憶されている独自プログラムと、前記データ領域に記憶されているアプリケーションデータとに結びつけて記憶し、前記関連づけ情報受信手段は、関連づけ情報として、前記アプリケーション識別情報を受信すること、を特徴とするＩＣカード（１−２）である。
【００１０】
請求項４の発明は、請求項３に記載のＩＣカードにおいて、前記関連づけ情報受信手段によって受信されたアプリケーション識別情報と同一のアプリケーション識別情報が前記第２の記憶部に記憶されているか否かを判定する登録済判定手段（１４４）と、前記関連づけ情報受信手段によって受信される関連づけ情報に対応する関連づけ正当性認証情報を受信する関連づけ正当性認証情報受信手段（１１）とを備え、前記関連づけ正当性判定手段は、前記登録済判定手段によって記憶されていると判定された場合に、前記第２の記憶部に記憶されている同一のアプリケーション識別情報に対応する登録関連づけ正当性認証情報と、前記関連づけ正当性認証情報受信手段によって受信された関連づけ正当性認証情報とを照合することによって判定を行うこと、を特徴とするＩＣカード（１−２）である。
【００１１】
請求項５の発明は、請求項１から請求項４までのいずれか１項に記載のＩＣカードにおいて、前記登録要求受信手段によって受信される独自プログラム又はアプリケーションデータが正当なものであるか否かを判定する登録要求情報正当性判定手段（１４６）を備え、前記登録要求情報書込手段は、前記登録要求情報正当性判定手段によって肯と判定された場合に書き込みを行うこと、を特徴とするＩＣカード（１−２）である。
【００１２】
請求項６の発明は、請求項１から請求項５までのいずれか１項に記載のＩＣカードにおいて、前記第２の記憶部は、前記プログラム領域及び／又は前記データ領域の空き容量を示す領域空き容量情報、及び／又は、前記登録要求情報書込手段が独自プログラム又はアプリケーションデータを書き込む位置を示す書込位置情報を記憶すること、を特徴とするＩＣカード（１−２）である。
【００１３】
請求項７の発明は、複数のアプリケーションにおいて共通するプログラムである共通プログラムを記憶し、読み出し専用であって不揮発性の第１の記憶部（１５）と、メモリ領域がプログラム領域（１７ｐ）と、データ領域（１７ｄ）とに割り当てられ、個々のアプリケーションに独自のプログラムである独自プログラムをプログラム領域に、アプリケーションデータをデータ領域に、互いに関連づけて記憶する、書き換え可能な不揮発性の第２の記憶部（１７−２）と、前記第１及び／又は第２の記憶部に記憶されているプログラムを実行するＣＰＵ（１４）とを備え、前記共通プログラム、前記独自プログラム及び前記アプリケーションデータを含む複数のアプリケーションを登録することが可能なＩＣカードへアプリケーションを登録するために前記ＣＰＵに実行させるＩＣカードプログラムであって、独自プログラムを含む独自プログラム登録要求又はアプリケーションデータを含むアプリケーションデータ登録要求を受信する登録要求受信手順（Ｓ２０９、Ｓ３０６）と、前記登録要求受信手順において受信した前記独自プログラム又は前記アプリケーションデータを前記第２の記憶部の所定の領域に書き込む登録要求情報書込手順（Ｓ２１０、Ｓ３０７）とを備えること、を特徴とするＩＣカードプログラムである。
【００１４】
請求項８の発明は、請求項７に記載のＩＣカードプログラムにおいて、前記登録要求受信手順において受信する独自プログラム又はアプリケーションデータを前記第２の記憶部に記憶されているいずれのアプリケーションデータ又はいずれの独自プログラムに関連づけるかを示す関連づけ情報を受信する関連づけ情報受信手順（Ｓ２０３、Ｓ３０３）と、前記関連づけ情報受信手順において受信する関連づけ情報の正当性を認証するための関連づけ正当性認証情報を受信する関連づけ正当性認証情報受信手順（Ｓ２０３、Ｓ３０３）と、前記関連づけ情報受信手順において受信する関連づけ情報が正当であるか否かを前記関連づけ正当性認証情報受信手順で受信した関連づけ正当性認証情報に基づいて判定する関連づけ正当性判定手順（Ｓ２０５、Ｓ３０５）とを備え、前記登録要求情報書込手順は、前記関連づけ正当性判定手順において正当であると判定した場合に実行されること、を特徴とするＩＣカードプログラムである。
【００１５】
請求項９の発明は、請求項７又は請求項８に記載のＩＣカードプログラムにおいて、前記登録要求受信手順において受信する独自プログラム又はアプリケーションデータが正当なものであるか否かを判定する登録要求情報正当性判定手順（Ｓ２０２、Ｓ３０２）を備え、前記登録要求情報書込手順は、前記登録要求情報正当性判定手順において正当なものと判定した場合に実行されること、を特徴とするＩＣカードプログラムである。
【００１６】
【発明の実施の形態】
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。
（第１実施形態）
図１は、本発明によるＩＣカードの第１実施形態を説明するための図であって、図１（ａ）は表面図、図１（ｂ）及び図１（ｃ）はＩＣチップ内部及びＣＰＵを示すブロック図である。
図１に示すように、ＩＣカード１は、接触型のＩＣチップ１０を備えている。ＩＣカード１は、図示しない外部装置である接触式のリーダライタ（以下、「リーダライタ」を「Ｒ／Ｗ」という。）から電源の供給を受け、通信を行う、複数のアプリケーションを登録することが可能なマルチアプリケーションＩＣカードである。ＩＣカード１は、所定のプログラムの実行を要求する命令であるコマンドをＲ／Ｗから受信すると、このコマンドを解釈実行し、その結果をレスポンスとしてＲ／Ｗへ送信する。
【００１７】
アプリケーションとは、ユーザの目的を実現するために業務等に応じて作成されたソフトウェアプログラムであって、主にプログラムコードの部分であるプログラム部と、プログラム部の実行に必要な情報であるアプリケーションデータとを含んでいる。プログラム部は、共通プログラムと、ユーザプログラムとを含み、ユーザプログラムは、ユーザが任意に規定した独自のコマンドに対応した処理を行うプログラム等、個々のアプリケーションにおいて独自のプログラムである。なお、ユーザとは、ＩＣカード１に登録されているアプリケーションを利用して業務等を行う銀行、カード会社等である。
【００１８】
シングルアプリケーションの場合は、ほとんどの場合、ソフトウェアプログラムを読み出し可能な不揮発性メモリに記録するが、マルチアプリケーションの場合は異なる目的を実現するために複数のソフトウェアプログラムをＥＥＰＲＯＭに記録する。
異なる目的を実現するために作成されたソフトウェアプログラムであっても、いくつかの機能、例えばデータを読み出す機能やパスワードを照合する機能は、共通している場合が多い。特に最近では、業種間で規格を制定するケースが増え、業務種により共通化できるプログラム（共通プログラム）が増えている。
一方、同じ業種間でも同業者との差別化を図るべく、業種規格に加えて、ある会社独自のプログラム（ユーザプログラム）が必要とされるケースも増えている。
【００１９】
共通プログラムとは、例えば、Ｒ／Ｗより受け取ったコマンドを解析するプログラム、Ｒ／Ｗにデータを送信するプログラム、ユーザプログラムのコードを不揮発性メモリ１７に書込むプログラム、データの読み書き、パスワード照合等のＩＳＯ７８１６に規格化されているコマンドに対応した処理を行うプログラム等のＩＣカード１に登録されている複数のアプリケーションが共通に使用できるプログラムである。
【００２０】
ＩＣチップ１０は、カード表面に、信号及び電力を送受信する通信手段である接触端子１１と、Ｒ／Ｗとの通信を制御する送受信回路１２と、マイクロプロセッサ１３とを備えている。
マイクロプロセッサ１３は、ＣＰＵ１４、３つのメモリ１５，１６，１７等を備えている。ＣＰＵ１４は、メモリに記憶されているプログラムを実行することによってＩＣカード１を統括制御し、アプリケーション選択部１４１、正当性判定部１４２及びプログラム実行部１４３を実現する。
【００２１】
アプリケーション選択部１４１は、Ｒ／Ｗから受信したアプリケーション選択要求に対応してアプリケーションの選択を実行する。アプリケーションの選択とは、アプリケーション選択要求で指定されるアプリケーションデータを含むファイルを識別する識別情報をＲＡＭ１６に保持し、カレントファイル等のコマンドのアクセス対象を設定することである。
正当性判定部１４２は、Ｒ／Ｗからプログラム実行要求であるコマンドを受信した場合に、アプリケーション選択部１４１によって選択されたアプリケーションがこのコマンドに対応するプログラムの実行等のアクセスをすることができる正当なアプリケーションであるか否かを判定する。
プログラム実行部１４３は、正当性判定部１４２が正当なアプリケーションであると判定した場合に、コマンドに対応するユーザプログラム又は共通プログラムを実行する。
【００２２】
３つのメモリは、それぞれ読み出し専用であって、電源が切れてもデータが消去されない不揮発性のメモリであるＲＯＭ１５、読み出し及び書換え可能であって、電源が切れるとデータが消去されてしまう揮発性のメモリであるＲＡＭ１６、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の読み出し及び書換えが可能な不揮発性メモリ１７である。本実施形態におけるメモリ容量は、ＲＯＭ１５が１６Ｋバイト、ＲＡＭ１６が１Ｋバイト、不揮発性メモリ１７が８Ｋバイトである。
【００２３】
ＲＯＭ１５は、ＩＣチップ製造時に記憶されたＯＳ、実行環境等のＩＣカード１が動作するために必要な機能（プログラム）を記憶している。また、ＲＯＭ１５は、種別毎に一の共通プログラムを記憶している。この共通プログラムは、すべてのアプリケーションで使用できる。
ＲＡＭ１６は、ＯＳが動作するために必要な情報が逐次書き込まれるＣＰＵ１４の作業領域であって、プログラム等は、記憶されていない。
不揮発性メモリ１７は、ユーザプログラム、アプリケーションデータ等を記憶している。
【００２４】
図２は、書き換え可能な不揮発性メモリのメモリ構造図である。
図２に示すように、不揮発性メモリ１７のメモリ領域は、ＯＳの管理のもとで、ユーザが利用できない使用禁止領域と、ユーザが利用可能なデータ領域１７ｄ及びプログラム領域１７ｐとに割り当てられている。データ領域１７ｄ及びプログラム領域１７ｐには、それぞれ、アプリケーションデータ及びユーザプログラムが記憶されている。本実施形態では、不揮発性メモリ１７においてユーザが利用できる領域は、アドレスが「０１００Ｈ〜１ＦＦＦＨ」の領域に、プログラム領域１７ｐは「０１００Ｈ〜０ＦＦＦＨ」に、データ領域１７ｄは「１０００Ｈ〜１ＦＦＦＨ」にそれぞれ割り当てられている。
【００２５】
図３は、書き換え可能な不揮発性メモリのデータ領域を示すメモリ構造図である。
図３に示すように、不揮発性メモリ１７のデータ領域１７ｄには、情報が階層構造を構成するように格納されている。専用ファイルＤＦ（ＤｅｄｉｃａｔｅｄＦｉｌｅ）は、通常、アプリケーション毎に設定されている。不揮発性メモリ１７は、アプリケーションデータをこの専用ファイルの下に関連づけて記憶している。
【００２６】
専用ファイルは、少なくともＩＣカード１に格納されている他の専用ファイルから識別するためのＤＦ識別情報を付属情報として格納している。ＤＦ識別情報は、専用ファイル名と、アプリケーションＩＤとを含み、専用ファイル名は、アプリケーションの名前を示す値であって、１〜１６バイトの値をユーザが設定する。アプリケーションＩＤは、ＯＳの管理下において一のアプリケーションを少なくともＩＣカード１に格納されている他のアプリケーションから識別するための情報であって、アプリケーションの種別毎に設けられている。なお、アプリケーションＩＤの設定方法は、任意である。
【００２７】
図４は、ＤＦ識別情報を説明するための図である。
図４（ａ）に示すように、ＩＣカード１には、ユーザＡ社のアプリケーションＡと、ユーザＢ社のアプリケーションＢが登録され、不揮発性メモリ１７のデータ領域には、アプリケーションＡ用の専用ファイルと、アプリケーションＢ用の専用ファイルが格納されている。
【００２８】
例えば、ポイントカードアプリケーションに含まれる、複数の店舗にそれぞれ対応する専用ファイル等、アプリケーションＡに含まれる複数の専用ファイル（ＤＦ１，ＤＦ２，ＤＦ３）のアプリケーションＩＤは、アプリケーションＡを示す「Ａ０」となる。ＤＦ１、ＤＦ２及びＤＦ３は、ＤＦ識別情報がそれぞれ「ＡＰＡ１Ａ０」、「ＡＰＡ２Ａ０」、「ＡＰＡ３Ａ０」であり、店舗毎のポイント等のアプリケーションＡの処理において使用されるアプリケーションデータを格納している。
【００２９】
また、アプリケーションＢに含まれる複数の専用ファイル（ＤＦ４，ＤＦ５）のアプリケーションＩＤは、アプリケーションＢを示す「Ｂ０」となる。ＤＦ４及びＤＦ５は、ＤＦ識別情報がそれぞれ「ＡＰＢ１Ｂ０」、「ＡＰＢ２Ｂ０」であり、アプリケーションＢの処理において使用されるアプリケーションデータを格納している。本実施形態では、アプリケーションＩＤを１バイトとしているが、これに限られず、２バイト等、これ以上であってもよく、データサイズは任意である。
【００３０】
図４（ｂ）に示すように、Ａ社が、例えば、ポイントカードアプリケーションＡ、クレジットアプリケーションＡＡ等の種類の異なる複数のアプリケーションをＩＣカード１に登録したい場合には、Ａ社は、それぞれのアプリケーションに使用するための専用ファイルを個別に作成し、異なったアプリケーションＩＤ「Ａ０」、「Ａ１」がそれぞれ設定される。このアプリケーションＩＤの違いから、ＯＳの処理下におけるＣＰＵ１４は、アプリケーションＡと、アプリケーションＡＡとを異なったアプリケーションと認識する。
【００３１】
次に、書き換え可能な不揮発性メモリのプログラム領域について説明する。
図５及び図６は、書き換え可能な不揮発性メモリのプログラム領域を示すメモリ構造図である。
図５に示すように、プログラム領域１７ｐは、ＩＮＤＥＸ領域１７ｐｉとプログラムコード領域１７ｐｃとに分けられ、ＩＮＤＥＸ領域１７ｐｉには、ＩＮＤＥＸ情報が、プログラムコード領域１７ｐｃには、ユーザプログラム本体であるプログラムコードが互いに関連づけて、ユーザプログラムの数（ｎ）だけ記憶されている。
ＩＮＤＥＸ情報は、一のユーザプログラムを少なくともＩＣカード１内の他のユーザプログラムから識別するユーザプログラム識別子（２バイト）、プログラムコードが記憶されている場所を示すプログラム番地（２バイト）、アプリケーションＩＤ（１バイト）を含む管理情報である。
【００３２】
ＩＮＤＥＸ情報内のアプリケーションＩＤは、少なくとも一のアプリケーションをＩＣカード１に登録されている他のアプリケーションから識別するための識別情報であって、ＤＦ識別情報と同様にアプリケーションの種別毎に設けられている。このアプリケーションＩＤが示すアプリケーションにおいてのみユーザプログラムが実行される。つまり、正当性判定部１４２は、ユーザプログラム実行前に、選択されているアプリケーションを示すアプリケーション識別情報に含まれるアプリケーションＩＤと、ＩＮＤＥＸ情報に含まれるアプリケーションＩＤを比較し、一致する場合のみ、プログラム実行部１４３は、ユーザプログラムを実行する。
【００３３】
例えば、選択されたアプリケーションを示すアプリケーションＩＤが「Ａ０」の場合には、プログラム実行部１４３は、ＩＮＤＥＸ情報に含まれるアプリケーションＩＤが「Ａ０」のユーザプログラムのみを実行する。プログラム実行部１４３は、ＩＮＤＥＸ情報に含まれるアプリケーションＩＤが「０１」、「２０」等の異なった値であるユーザプログラムを実行しない。
プログラムコード領域１７ｐｃには、ユーザプログラムコード本体が指定されたアドレスから記憶され、この先頭アドレスがＩＮＤＥＸ情報に含まれる。
【００３４】
図６に示すように、プログラム領域１７ｐには、データ領域１７ｄに記憶されているアプリケーションＡの独自コマンドに対応した処理を行うユーザプログラムＣＡと、アプリケーションＢの独自コマンドに対応した処理を行うユーザプログラムＣＢとが記憶されている。ユーザプログラムＣＡのＩＮＤＥＸ情報は、「００ＣＡ０２０００１」であり、「００ＣＡ」、「０２００」、「０１」がそれぞれユーザプログラム識別子、プログラムコードの先頭アドレス及びアプリケーションＩＤである。このＩＮＤＥＸ情報は、ユーザプログラムＣＡのプログラムコードが不揮発性メモリ１７の２００番地から記憶され、アプリケーション識別子「０１」の示すアプリケーションＡにおいてのみ、ユーザプログラムＣＡが実行されることを示している。
【００３５】
同様にユーザプログラムＣＢのＩＮＤＥＸ情報「００ＣＢ０６０００２」は、ユーザプログラムＣＢのプログラムコードが不揮発性メモリ１７の６００番地から記憶され、アプリケーション識別子「０２」の示すアプリケーションＢにおいてのみ、ユーザプログラムＣＢが実行されることを示している。
【００３６】
図７は、専用ファイル及びユーザプログラムの相互関係について説明するためのメモリ構造図である。
図７に示すように、データ領域１７ｄには、アプリケーションＡ用専用ファイル、アプリケーションＢ用専用ファイル及びアプリケーションＣ用専用ファイルの３つの専用ファイルが記憶され、プログラム領域１７ｐには、これらアプリケーションでそれぞれ実行されるユーザプログラムＡ，Ｂ及びＣが記憶されている。このように、専用ファイル及びユーザプログラムは、ＤＦ識別情報に含まれるアプリケーションＩＤと、ユーザプログラムのＩＮＤＥＸ情報に含まれるアプリケーションＩＤによって関連づけられている。
【００３７】
図８及び図９は、本発明によるＩＣカードの発行を説明するための図である。カード発行者がＡ社及びＢ社の要求に応じて２つのアプリケーションであるサービスＡ及びサービスＢをＩＣカード１へ登録し、ＩＣカード１を発行する過程を説明する。なお、サービスＡに含まれるプログラムは、ＲＥＡＤ、ＷＲＩＴＥ等の共通コマンドに対応する処理を行うための共通プログラムと、サービスＡの独自コマンドに対応する処理を行うためのユーザプログラムＡであり、サービスＢに含まれるプログラムは、共通プログラムと、サービスＢの独自コマンドに対応する処理を行うためのユーザプログラムＢである。
【００３８】
先ず、図８及び図９に示すように、カード発行者は、ユーザプログラムを登録する所定の専用コマンドをＲ／ＷからＩＣカード１へ送信することによってユーザプログラムＡ及びユーザプログラムＢを不揮発性メモリ１７へ登録する。この登録によって、プログラム領域１７ｐにユーザプログラムＡ及びユーザプログラムＢのＩＮＤＥＸ情報及びプログラムコードが記憶される。
【００３９】
次いで、カード発行者は、共通コマンドをＲ／ＷからＩＣカード１へ送信することによって、ユーザプログラムＡ及び共通プログラムが使用するアプリケーションデータが格納されているデータファイルＡ１をアプリケーションＡ用の専用ファイル（ＤＦ名は、ＡＰＰＡである。）に関連づけて不揮発性メモリ１７のデータ領域１７ｄに形成する。同様に、カード発行者は、データファイルＡ２をアプリケーションＢ用の専用ファイル（ＤＦ名は、ＡＰＰＢ）に関連づけてデータ領域１７ｄに形成し、ＩＣカード１を発行する。なお、ＩＮＤＥＸ情報及びデータファイルに含まれるアプリケーションＩＤは、アプリケーション登録前に予め設定してもよいし、ＩＣカード１がユーザプログラム等の登録情報を受信後に割り当ててもよい。
【００４０】
図１０は、本発明によるＩＣカードの動作及び本発明によるＩＣカードプログラムの第１実施形態を示すフローチャートである。なお、ＩＣカード１には、サービスＡ及びサービスＢの２つのアプリケーションが登録されている。
ステップ１００（以下、「ステップ」を「Ｓ」という。）において、カード所有者は、サービスＡを動作させることのできる所定のＲ／ＷにＩＣカード１を挿入する。
【００４１】
Ｓ１０１においてＩＣカード１は、開始処理を行う。具体的には、ＩＣカード１は、Ｒ／Ｗと通信を行い、活性化され、Ｒ／Ｗからの命令を受付けることができる状態となる。また、ＩＣカード１は、Ｒ／ＷからサービスＡを選択するコマンドを受信し、アプリケーション選択部１４１は、ＲＡＭ１６内部にＤＦ名「ＡＰＰＡ」及びアプリケーションＩＤ「０１」のデータを保持することによってサービスＡを選択する（Ｓ１０２）。
【００４２】
Ｓ１０３において、ＩＣカード１は、Ｒ／Ｗから所定のフォーマットのコマンド「００ＣＡ０１２３４５６７８９ＡＢＣＤＥＦ」を受信する。本実施形態におけるコマンドのフォーマットは、２バイト長のユーザプログラム識別子と、８バイト長のデータ（長さは任意である。）との構成である。
正当性判定部１４２は、受信した２バイトのユーザプログラム識別子「００ＣＡ」をＩＮＤＥＸ情報内で探索し、同一のユーザプログラム識別子を有するユーザプログラムがあるか否かを判定する。
本実施形態においては、不揮発性メモリ１７のプログラム領域に記憶されているユーザプログラムＡのユーザプログラム識別子が「００ＣＡ」であるため、正当性判定部１４２は、肯と判定する。
【００４３】
次に、正当性判定部１４２は、ユーザプログラムＡのＩＮＤＥＸ情報に含まれるアプリケーションＩＤ及びＳ１０１で選択したアプリケーションを示すアプリケーションＩＤが一致するか否かを判定する（Ｓ１０５）。双方ともに「０１」であるため、正当性判定部１４２は、肯と判定し、プログラム実行部１４３は、ＩＮＤＥＸ情報内のプログラムコード先頭アドレスを参照してユーザプログラムＡを実行し（Ｓ１０６）、その結果をレスポンスとしてＲ／Ｗへ送信し（Ｓ１１０）、処理を終了する（Ｓ１１１）。
【００４４】
一方、Ｓ１０４において、否と判定した場合には、正当性判定部１４２は、ＲＯＭ１５を探索し、ユーザプログラム識別子が一致する共通プログラムがあるか否かを判定する（Ｓ１０７）。一致する共通プログラムがあった場合には、プログラム実行部１４３は、その共通プログラムを実行し（Ｓ１０９）、一致する共通プログラムがない場合には、エラーとなり（Ｓ１０８）、ＩＣカード１は、その結果をレスポンスとしてＲ／Ｗへ送信し（Ｓ１１０）、処理を終了する（Ｓ１１１）。
【００４５】
また、Ｓ１０５において、アプリケーションＩＤが一致しない場合、例えばＳ１０１でアプリケーションＩＤが「０２」であるサービスＢが選択されているときには、ＩＣカード１は、ユーザプログラム識別子が一致する共通プログラムがあるか否かを判定する（Ｓ１０７）。一致する共通プログラムがあった場合には、プログラム実行部１４３は、その共通プログラムを実行し（Ｓ１０９）、一致する共通プログラムがない場合には、エラーとなり（Ｓ１０８）、ＩＣカード１は、その結果をレスポンスとしてＲ／Ｗへ送信し（Ｓ１１０）、処理を終了する（Ｓ１１１）。
【００４６】
本実施形態によれば、ＩＣカード１は、不揮発性メモリ１７にユーザプログラム及びアプリケーションデータを記憶し、ＲＯＭ１５に共通プログラムを記憶することによって複数のアプリケーションを登録するため、従来のマルチアプリケーションＩＣカードと比べて不揮発性メモリ１７の容量を低く抑え、利便性を高く維持しつつ、製造コストの低減を図ることが可能となった。
また、種別毎に一の共通プログラムを記憶することによって、共通プログラムをアプリケーション毎に記憶する必要がないため、メモリ全体の容量を低く抑え、製造コストの低減を図ることが可能となった。
更に、ＩＣカード１は、共通プログラム、ユーザプログラム及びアプリケーションデータを分けて登録するため、汎用性を向上するとともに、利便性の向上を図ることが可能となった。
【００４７】
更に、正当性判定部１４２は、Ｒ／Ｗから受信したコマンドに対応するユーザプログラムのＩＮＤＥＸ情報に含まれるアプリケーション識別情報と、選択されているアプリケーションを示すアプリケーション識別情報とを比較し、正当なアプリケーションであるか否かを判定するため、アクセス権限のない不当なアプリケーションによるユーザプログラムの実行を防止し、セキュリティ性の向上を図ることが可能となった。
【００４８】
（第２実施形態）
図１１は、本発明によるＩＣカードの第２実施形態を説明するための図であって、図１１（ａ）は表面図、図１１（ｂ）及び図１１（ｃ）はＩＣチップ内部及びＣＰＵを示すブロック図である。
なお、前述した第１実施形態と同様の機能を果たす部分には、同一の符号を付して、重複する説明を適宜省略する。
図１１に示すように、第２実施形態におけるＩＣカード１−２は、ＣＰＵ１４−２と、書き換え可能な不揮発性メモリ１７−２とを備えている。カード所有者は、ＩＣカード１−２を図示しない外部装置である書込装置のＲ／Ｗに挿入することによって、ＩＣカード１−２にユーザが提供するアプリケーションを登録することができる。書込装置は、ユーザプログラム又はアプリケーションデータを含み、ユーザプログラム又はアプリケーションデータのＩＣカード１−２への登録を要求する登録要求である登録コマンド等をＩＣカード１−２へ送信することによって、このユーザプログラム、アプリケーションデータを含むアプリケーションの登録を行う。
【００４９】
ＣＰＵ１４−２は、登録済判定部１４４と、容量判定部１４５と、登録要求情報正当性判定部１４６と、関連づけ正当性判定部１４７と、登録要求情報書込部１４８とを備えている。ＣＰＵ１４−２は、ＲＯＭ１５、不揮発性メモリ１７−２に記憶されているＯＳ等のプログラムを実行することによって、これらの各部を実現する。
登録済判定部１４４は、アプリケーションＩＤを含む第２認証コマンド（後述する）をＲ／Ｗから受信した場合に、このアプリケーションＩＤと同一のアプリケーションＩＤが不揮発性メモリ１７−２に登録されているか否かを判定する登録済判定処理を行う。
【００５０】
容量判定部１４５は、不揮発性メモリ１７−２のプログラム領域１７ｐ又はデータ領域１７ｄに、Ｒ／Ｗから受信するユーザプログラム又はアプリケーションデータを書き込むことができる空き容量があるか否かを、受信したこのユーザプログラム又はアプリケーションデータのデータ量と、不揮発性メモリ１７−２に記憶されている空き容量とを照合することによって判定する容量判定処理を行う。本実施形態において、容量判定部１４５は、ユーザプログラム又はアプリケーションデータのデータ量を含み、この処理の実行を要求する容量判定要求である容量判定コマンドを書込装置から受信した場合に処理を行う。
【００５１】
登録要求情報正当性判定部１４６は、書込装置等の登録要求パスワードの送信元がユーザプログラム又はアプリケーションデータ等の登録要求情報を登録する権限を有するか否か、つまり、この登録要求情報が正当なものであるか否かを受信した登録要求パスワードと、不揮発性メモリ１７−２に記憶されている登録権限認証情報とを照合して判定する登録要求情報正当性判定処理を行う。
本実施形態において、登録要求情報正当性判定部１４６は、登録要求パスワードを含み、この処理の実行を要求する登録要求情報正当性判定要求である第１認証コマンドを書込装置から受信した場合にこの処理を行う。なお、登録要求情報正当性判定部１４６が正当と判定した場合には、ＩＣカード１−２は、登録権限が認証済であることを示すフラグを立てる。
【００５２】
関連づけ正当性判定部１４７は、書込装置等のアプリケーションＩＤ及びＩＤ利用パスワードの送信元がこのアプリケーションＩＤを正当に利用できるものであるか否かを、受信したＩＤ利用パスワードと、不揮発性メモリ１７に記憶されているＩＤ登録パスワードとを照合して判定する。つまり、関連づけ正当性判定部１４７は、この判定を行うことによって、受信したアプリケーションＩＤが、登録要求に含まれるユーザプログラム又はアプリケーションデータと、不揮発性メモリ１７−２に記憶されているアプリケーションデータ又はプログラム領域１７ｐに記憶されているユーザプログラムとを関連づけるべき正当なものか否かを判定する関連づけ正当性判定処理を行う。
【００５３】
本実施形態において、関連づけ正当性判定部１４７は、アプリケーションＩＤ及びＩＤ利用パスワードを含み、この処理の実行を要求する関連づけ正当性判定要求である第２認証コマンドを書込装置から受信し、登録済判定部１４４が肯と判定した場合に処理を行う。なお、関連づけ正当性判定部１４７が正当と判定した場合又は登録済判定部１４４が否と判定した場合には、ＩＣカード１−２は、受信したアプリケーションＩＤが認証済であることを示すフラグを立てる。
【００５４】
登録要求情報書込部１４８は、ユーザプログラム又はアプリケーションデータを含む登録コマンドを受信した場合であって、登録権限が認証済であることを示すフラグ及びアプリケーションＩＤが認証済であることを示すフラグが双方ともに立っているときに、登録コマンドに含まれる登録要求情報であるユーザプログラム又はアプリケーションデータを不揮発性メモリ１７−２のプログラムコード領域１７ｐｃ又はデータ領域１７ｄに書き込む登録要求情報書込処理を行う。
【００５５】
図１２は、書き換え可能な不揮発性メモリのメモリ構造図である。
図１２に示すように、第２実施形態における不揮発性メモリ１７−２のメモリ領域は、ＯＳの処理に必要な情報、カードが動作するために必要な情報等を記憶するシステム領域１７ｓと、データ領域１７ｄと、プログラム領域１７ｐとにＯＳの管理のもとに割り当てられている。
本実施形態では、図１２（ｂ）に示すように、システム領域１７ｓは「００００Ｈ〜０５ＦＦＨ」に、プログラム領域１７ｐは「０６００Ｈ〜１３ＦＦＨ」に、データ領域１７ｄは「１４００Ｈ〜１ＦＦＦＨ」にそれぞれ割り当てられている。
【００５６】
図１３に示すように、データ領域１７ｄには、付属情報としてＤＦ識別情報が格納されているＤＦ１及びＤＦ２と、この専用ファイルの下にアプリケーションデータを格納しているデータファイル１−１，１−２、２−１，２−２とが記憶されている。ＩＣカード１−２に登録されているアプリケーションは、ＤＦによって定義され、アプリケーション選択要求によってそのアプリケーションを定義しているＤＦが選択されることによって、アプリケーション選択部１４１は、実行するアプリケーションを選択する。
【００５７】
図１４は、第２実施形態における書き換え可能な不揮発性メモリのシステム領域を示すメモリ構造図である。
図１４に示すように、システム領域１７ｓには、ＯＳが動作するために必要な基本情報であるＯＳ管理情報（Ｄ１０）と、登録権限認証情報（Ｄ２１）及び第１不成功回数（Ｄ２２）を含む登録認証管理情報（Ｄ２０）と、アプリケーションＩＤ（Ｄ３１）、ＩＤ登録パスワード（Ｄ３２）及び第２不成功回数（Ｄ３３）を含むＡＣ認証情報（Ｄ３０）とを含む管理情報が隠匿に記憶されている。また、システム領域１７ｓには、プログラム領域空き容量（Ｄ４１）と、次ユーザプログラム登録アドレス（Ｄ４２）とが記憶されている。
【００５８】
登録権限認証情報（Ｄ２１）は、登録要求情報正当性判定部１４６による登録要求情報正当性判定処理において、登録要求パスワードと照合される参照情報である。
第１不成功回数（Ｄ２２）は、この登録権限認証情報（Ｄ２１）に基づく認証が不成功であっても、再認証を要求できる回数であって、登録要求情報正当性判定部１４６の判定結果が否となった場合に１減算される。なお、不成功回数が「０」になると、ＩＣカード１−２は、認証を受け付けない閉塞状態となる。
ＡＣ認証情報（Ｄ３０）は、ＩＣカード１−２に登録されているアプリケーションのアプリケーションＩＤ（Ｄ３１）毎に、ＩＤ登録パスワード（Ｄ３２）及び不成功回数（Ｄ３３）を結びつけた情報であって、アプリケーションＩＤ（Ｄ３１）の認証を管理するための関連づけ管理情報である。
【００５９】
ＩＤ登録パスワード（Ｄ３２）は、関連づけ正当性判定部１４７の関連づけ正当性判定処理において、関連づけ正当性認証情報であるＩＤ利用パスワードと照合される登録関連づけ正当性認証情報であって、書込装置等のこのＩＤ利用パスワードの送信元がアプリケーションＩＤ（Ｄ３１）の正当な利用者であることを認証するためのＩＤ利用権限認証情報である。ＩＣカード１−２に登録されているＩＤ登録パスワード（Ｄ３２）は、例えば、このアプリケーションＩＤ（Ｄ３１）が示すアプリケーションを正当に利用できるユーザのみが知りうるパスワードである。
第２不成功回数（Ｄ３３）は、第１不成功回数（Ｄ２２）と同様に、このＩＤ登録パスワード（Ｄ３２）に基づく認証が不成功であっても、再認証を要求できる回数である。
【００６０】
領域空き容量（Ｄ４１）は、ＩＮＤＥＸ領域１７ｐｉ並びにプログラムコード領域１７ｐｃ及びデータ領域１７ｄの空き容量を示し、次ロードアドレス（Ｄ４２）は、登録要求情報書込部１４８がプログラム領域１７ｐｃにユーザプログラムを書き込む空き領域の先頭アドレスと、データ領域１７ｄにアプリケーションデータを書き込む空き領域の先頭アドレスとを示している。
【００６１】
次に、アプリケーションを登録する場合のＩＣカード１−２の動作について説明する。
図１５は、本発明によるＩＣカードの第２実施形態における動作及び本発明によるＩＣカードプログラムの第２実施形態を示すフローチャートであって、ユーザプログラムをＩＣカード１−２に登録するユーザプログラム登録処理を示している。
また、図１６は、ユーザプログラム登録処理前の書き換え可能な不揮発性メモリのメモリ構造図であり、図１７及び図１８は、ユーザプログラム登録処理前、処理中、処理後のシステム領域１７ｓ及びプログラム領域１７ｐを示すメモリ構造図である。
【００６２】
以下、ＩＣカード１−２にＡ社及びＢ社のそれぞれのアプリケーションであるアプリケーションＡ（アプリケーションＩＤは「０１」、アプリケーションデータを格納するＤＦのＤＦ名は「ＡＰＰＡ」）及びアプリケーションＢ（アプリケーションＩＤは「０２」、ＤＦ名は「ＡＰＰＢ」）を登録する場合について、ＩＣカード１−２の処理を中心に説明する。
なお、アプリケーションＡに含まれるユーザプログラムのユーザプログラム識別子は「ＣＡ００」、ユーザプログラムの容量は５１２バイトであり、アプリケーションＢに含まれるユーザプログラムのユーザプログラム識別子は「ＣＢ００」、容量は５１２バイトである。
【００６３】
先ず、図１５に示すユーザプログラム登録処理のＳ２００におけるＩＣカード１−２の初期状態について説明する。
ＩＣカード１−２は、Ｓ２００において、アプリケーションＡ及びアプリケーションＢ等の複数のアプリケーションに共通する所定の共通プログラムがＲＯＭ１５に記憶されている。
図１６及び図１７（ａ）に示すように、ＩＣカード１−２の初期状態において、不揮発性メモリ１７−２のメモリ領域は、システム領域１７ｓ、プログラム領域１７ｐ及びデータ領域１７ｄに割り当てられ、システム領域１７ｓは、ＯＳ管理情報（Ｄ１０）、登録権限認証情報「１２３４５６７」（Ｄ２２）を含む登録認証管理情報（Ｄ２０）、領域空き容量（Ｄ４１）、次ロードアドレス（Ｄ４２）「０８００Ｈ」が記憶され、ＡＣ認証情報（Ｄ３０）が未登録の状態である。
【００６４】
登録認証管理情報（Ｄ２０）の登録権限認証情報（Ｄ２１）は、「０１２３４５６７」、第１不成功回数（Ｄ２２）及び第２不成功回数（Ｄ３３）は、３回に設定されている。また、領域空き容量（Ｄ４１）は、ＩＮＤＥＸ領域１７ｐｉが５１２バイト、プログラムコード領域１７ｐｃが３０７２バイトであり、次ロードアドレスが「０８００Ｈ」である。
図１８（ａ）に示すように、プログラム領域１７ｐは、プログラムＩＮＤＥＸ領域１７ｐｉ及びプログラムコード領域１７ｐｃにユーザプログラムが未登録の状態であり、図１６に示すように、データ領域１７ｄは、アプリケーションデータを格納するＤＦが未登録の状態である。
【００６５】
図１５を参照しながら、アプリケーションＡに含まれるユーザプログラムをＩＣカード１−２へ登録するユーザプログラム登録処理について説明する。
Ｓ２０１において、ＩＣカード１−２は、第１認証コマンドを書込装置のＲ／Ｗから受信する。ＩＣカード１−２の登録要求情報正当性判定部１４６は、登録要求情報正当性判定処理を行う（Ｓ２０２）。Ｓ２０１において受信した登録要求パスワードが「１２３４５６７」以外であって、登録要求情報正当性判定部１４６が否と判定した場合には、ＩＣカード１−２は、エラーのレスポンスをＲ／Ｗへ送信し、第１不成功回数を１減算し（Ｓ２１６）、再び登録要求パスワードを受信し（Ｓ２０１）、同様の処理を繰り返す（Ｓ２０２）。
【００６６】
一方、肯と判定した場合には、ＩＣカード１−２は、その旨を示すレスポンスを送信し、アプリケーションＩＤ及びＩＤ利用パスワードを含む第２認証コマンドを受信する（Ｓ２０３）。登録済判定部１４４は、登録済判定処理を行い、受信したアプリケーションＩＤ「０１」と同一のものが不揮発性メモリ１７−２のシステム領域１７ｓに登録されているか否かを判定する（Ｓ２０４）。登録済判定部１４４は、システム領域１７ｓにＡＣ認証情報のアプリケーションＩＤが未登録であるため、否と判定し、ＩＣカード１−２は、Ｓ２０３において受信したアプリケーションＩＤ（Ｄ３１）及びＩＤ登録パスワード（Ｄ３２）（ＩＤ利用パスワード）をシステム領域１７ｓに登録し（Ｓ２１８）、その旨をレスポンスとして送信し、Ｓ２０６へ進む。
【００６７】
なお、Ｓ２０４において、既にアプリケーションＩＤ「０１」がシステム領域１７ｓに登録され、肯と判定した場合には、ＩＣカード１−２の関連づけ正当性判定部１４７は、関連づけ正当性判定処理を行う（Ｓ２０５）。この処理において否と判定した場合には、Ｓ２１６と同様に、ＩＣカード１−２は、エラーのレスポンスを送信し、第２不成功回数を１減算し（Ｓ２１７）、同様の処理を繰り返す（Ｓ２０３からＳ２０５まで）。
【００６８】
Ｓ２０５において肯と判定した場合及びＳ２０４において否と判定した場合には、ＩＣカード１−２は、ユーザプログラムのバイト数を含む容量判定コマンドを受信する（Ｓ２０６）。容量判定部１４５は、領域空き容量（Ｄ４１）を参照し、ＩＮＤＥＸ領域１７ｐｉにＩＮＤＥＸ情報を書き込む空き（５バイト）があるか否かを判定する容量判定処理を行う（Ｓ２０７）。ＩＮＤＥＸ領域１７ｐｉの空き容量は、５１２バイトであるため、容量判定部１４５は、肯と判定し、同様にＳ２０６で受信したユーザプログラムのバイト数（５１２バイト）について容量判定処理を行う（Ｓ２０８）。システム領域１７ｓのプログラムコード領域空き容量は、３０７２バイトであるため、容量判定部１４５は、肯と判定し、ＩＣカード１−２は、その旨のレスポンスを送信する。
【００６９】
Ｓ２０７又はＳ２０８において容量判定部１４５が否と判定した場合には、ＩＣカード１−２は、エラーのレスポンスを送信し（Ｓ２１９）、処理を終了する。
Ｓ２０９において、ＩＣカード１−２は、ユーザプログラム及びユーザプログラム識別子「ＣＡ００」を含む登録コマンドを受信し、登録要求情報書込部１４８は、登録要求情報書込処理を行い、このユーザプログラムをプログラムコード領域１７ｐｃの次ロードアドレス（Ｄ４２）から書き込む（Ｓ２１０）。この書込がプログラムコード領域１７ｐｃ外である場合には、ＩＣカード１−２は、エラーのレスポンスを送信し（Ｓ２１９）、処理を終了する（Ｓ２１５）。
【００７０】
書込が正常に終了した場合には、ＩＣカード１−２は、その旨を示すレスポンスを送信し、ＩＮＤＥＸ領域１７ｐｉにＩＮＤＥＸ情報「００ＣＡ０８０００１」を作成する（Ｓ２１３）。ＩＣカード１−２は、不揮発性メモリ１７−２に記憶されている領域空き容量（Ｄ４１）、次ロードアドレス（Ｄ４２）を更新し（Ｓ２１４）、ユーザプログラム登録処理を終了する（Ｓ２１５）。なお、本実施形態では、更新後のＩＮＤＥＸ領域空き容量（Ｄ４１）は、５０７バイト、プログラムコード領域空き容量（Ｄ４１）は、２５６０バイト、次ロードアドレス（Ｄ４２）は、「０Ａ００Ｈ」となる［図１７（ｂ）参照］。
【００７１】
また、アプリケーションＢに含まれるユーザプログラム「００ＣＢ」も同様にＩＣカード１−２に登録される。このユーザプログラムを登録する場合には、すでにアプリケーションＩＤ「０１」がシステム領域１７ｓに登録されているが、アプリケーションＢに含まれるユーザプログラムのアプリケーションＩＤ「０２」とは、異なるため、ＩＣカード１−２は、同様の処理を行うこととなる。
このユーザプログラム「００ＣＢ］の登録後には、図１７（ｃ）及び図１８（ｃ）に示すように、ＩＮＤＥＸ領域空き容量（Ｄ４１）は、５０２バイト、プログラムコード領域の空き容量（Ｄ４１）は２０４８バイト、次ロードアドレス（Ｄ４２）は「０Ｃ００Ｈ」となり、不揮発性メモリ１７−２のプログラム領域１７ｐには、２つのアプリケーションＩＤ「０１」、「０２」と、２つのユーザプログラム「００ＣＡ」、「００ＣＢ］及びＩＮＤＥＸ情報が登録されている。
【００７２】
次に、Ａ社のアプリケーションＣ（アプリケーションＩＤは「０１」）に含まれるユーザプログラム（識別子は「００ＤＣ」、データ量は１Ｋバイト）を次ロードアドレス（「０Ｃ００Ｈ」（Ｄ４２）から追加登録する場合について説明する。
登録する流れは、前述のユーザプログラム「００ＣＡ」に係る処理と同様であるが、第２認証コマンドに対応する動作が一部異なるため、図１５を参照しながらこの点について説明する。
【００７３】
Ｓ２００、Ｓ２０１及びＳ２０２において、ＩＣカード１−２は、前述したユーザプログラム「００ＣＡ」の場合と同様の処理を行う。Ｓ２０３において、ＩＣカード１−２は、アプリケーションＩＤ「０１」及びＩＤ利用パスワードを含む第２認証コマンドを受信する。登録済判定部１４４は、受信したアプリケーションＩＤ「０１」と同一のものが不揮発性メモリ１７−２のシステム領域１７ｓに登録されていると判定する［Ｓ２０４、図１７（ｃ）参照］。
【００７４】
関連づけ正当性判定部１４７は、Ｓ２０３で受信したＩＤ利用パスワードと、システム領域１７ｓに記憶されているアプリケーションＩＤ「０１」に対応するＩＤ登録パスワード（Ｄ３２）とを照合する［図１７（ｃ）参照］。この場合に、Ｓ２０３で受信したＩＤ利用パスワードが「１１１１１１１１」であれば、関連づけの正当性が認証され、パスワードが「１１１１１１１１」以外、例えば「００００００００」であれば認証されない（Ｓ２１７）。ＩＣカード１−２は、認証した場合には、以下、ユーザプログラム「００ＣＡ］と同様の処理を行う（Ｓ２０６からＳ２１５まで）。
【００７５】
図１９は、本発明によるＩＣカードの第２実施形態における動作及び本発明によるＩＣカードプログラムの第２実施形態を示すフローチャートであって、アプリケーションデータをＩＣカード１−２に登録するアプリケーションデータ登録処理を示している。
Ｓ３０１からＳ３０５及びＳ３１０からＳ３１２において、ＩＣカード１−２は、ユーザプログラム登録処理のＳ２０１からＳ２０５及びＳ２１６からＳ２１８までと同様の処理を行う。
Ｓ３０６において、ＩＣカード１−２は、アプリケーションデータを含む登録コマンドを受信し、登録要求情報書込部１４８は、登録要求情報書込処理を行い、このアプリケーションデータをデータ領域１７ｄの次ロードアドレス（Ｄ４２）から書き込み、専用ファイルと、この専用ファイルの下にデータファイルを生成する（Ｓ３０７）。ＩＣカード１−２は、不揮発性メモリ１７−２に記憶されている領域空き容量（Ｄ４１）、次ロードアドレス（Ｄ４２）を更新し（Ｓ３０８）、アプリケーションデータ登録処理を終了する（Ｓ３０９）。
【００７６】
図２０は、ユーザプログラム登録処理及びアプリケーションデータ登録処理後（アプリケーション登録後）の不揮発性メモリ１７−２の各領域を示すメモリ構造図である。
図２０に示すように、データ領域１７ｄには、アプリケーションデータ登録処理によって登録されたアプリケーションＡ用ＤＦ及びアプリケーションＢ用ＤＦが格納されている。
説明の便宜上、アプリケーションＡのユーザプログラム、アプリケーションＢのユーザプログラム、アプリケーションＡのアプリケーションデータ、アプリケーションＢのアプリケーションデータの登録を順に記述したが、登録する順番は、これに限られるものではない。例えば、アプリケーションＡのアプリケーションデータ登録後にアプリケーションＡのユーザプログラムを登録してもよい。
【００７７】
本実施形態によれば、第１実施形態の効果に加え、ＩＣカード１−２は、独自プログラム単位、アプリケーションデータ単位で通信を行うことによって、アプリケーションの登録を行うため、一度の通信における通信量を軽減することが可能となり、通信の安全性の向上、利便性の向上を図ることが可能となった。
また、ＩＣカード１−２は、受信した関連づけ情報としてのアプリケーションＩＤが正当であるか否かを判定する関連づけ正当性判定部１４７と、登録が要求されているユーザプログラム又はアプリケーションデータが正当なものであるか否かを判定する登録要求情報正当性判定部１４６とを備えるため、セキュリティ性を高く維持しつつ、アプリケーションを登録することが可能となった。
【００７８】
更に、ＩＣカード１−２は、空き容量（Ｄ４１）、次ロードアドレス（Ｄ４２）を不揮発性メモリ１７−２のシステム領域１７ｓに記憶するため、空き容量の確認及び書込に係る処理の簡易化を図り、処理速度の向上を図ることが可能となった。また、ＩＣカード１−２は、不成功回数（Ｄ２２，Ｄ３３）をシステム領域１７ｓに記憶するため、よりセキュリティ性を向上することが可能となった。更にまた、ユーザプログラム、アプリケーションデータを個々に登録することができるため、例えば、ポイントアプリケーションでポイント換算のユーザプログラムを追加する場合であっても、新たにアプリケーション全体を登録する必要がなく、登録されているアプリケーションの汎用性の向上を図るとともに、利便性の向上を図ることが可能となった。
【００７９】
（変形形態）
以上説明した実施形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。例えば、本実施例ではＩＣカード１は、接触型ＩＣチップ１０を備えているが、これに限られず、非接触用ＩＣチップでも良く、接触／非接触両方で動作するＩＣチップでもよい。
【００８０】
不揮発性メモリ１７は、ＩＮＤＥＸ情報にアプリケーションがアクセスするための条件を示すアクセス条件情報を含めて記憶してもよく、アプリケーションＩＤとともにユーザプログラムを実行する条件としてもよい。更にセキュリティ性を向上することが可能である。
【００８１】
不揮発性メモリ１７の領域をデータ領域１７ｄ及びプログラム領域１７ｐに割り当てて、それぞれアプリケーションデータ及びユーザプログラムを記憶しているが、これらの領域に分割せず、従来のアプリケーションから共通プログラムを抜き出した形でユーザプログラム及びアプリケーションデータを記憶していてもよい。
【００８２】
【発明の効果】
以上詳しく説明したように、本発明によれば、以下の効果を得ることが可能となった。
（１）共通プログラムを第１の記憶部に記憶し、登録が要求されている独自プログラムをプログラム領域に、アプリケーションデータをデータ領域に書き込むことによって、複数のアプリケーションを搭載することによって、セキュリティ性及び利便性を高く維持しつつ、製造コストの低減を図り、登録されているアプリケーションの汎用性を向上するとともに、利便性を向上する。
（２）独自プログラム単位、アプリケーションデータ単位で通信を行い、アプリケーションの登録を行うことによって、一度の通信における通信量を軽減し、通信の安全性の向上、利便性の向上を図る。
（３）関連づけ情報が正当であるか否かを判定することによって、セキュリティ性を保持しつつ、アプリケーションを追加登録する。
（４）同様に、登録が要求されている独自プログラム又はアプリケーションデータが正当なものであるか否かを判定することによって、セキュリティ性を保持しつつ、アプリケーションを追加登録する。
（５）空き容量情報、書込位置情報を記憶することによって、空き容量の確認及び書込に係る処理の簡易化を図り、処理速度を向上する。
【図面の簡単な説明】
【図１】本発明によるＩＣカードの第１実施形態を説明する図である。
【図２】第１実施形態における書き換え可能な不揮発性メモリのメモリ構造図である。
【図３】第１実施形態における書き換え可能な不揮発性メモリのデータ領域を示すメモリ構造図である。
【図４】第１実施形態におけるＤＦ識別情報を説明するための図である。
【図５】第１実施形態における書き換え可能な不揮発性メモリのプログラム領域を示すメモリ構造図である。
【図６】第１実施形態における書き換え可能な不揮発性メモリのプログラム領域を示すメモリ構造図である。
【図７】第１実施形態における専用ファイルと、ユーザプログラムの相互関係について説明するためのメモリ構造図である。
【図８】本発明によるＩＣカードの発行を説明するための図である。
【図９】本発明によるＩＣカードの発行を説明するための図である。
【図１０】本発明によるＩＣカードの第１実施形態における動作及び本発明によるＩＣカードプログラムの第１実施形態を示すフローチャートである。
【図１１】本発明によるＩＣカードの第２実施形態を示すブロック図である。
【図１２】第２実施形態における書き換え可能な不揮発性メモリのメモリ構造図である。
【図１３】第２実施形態における書き換え可能な不揮発性メモリのデータ領域を示すメモリ構造図である。
【図１４】第２実施形態における書き換え可能な不揮発性メモリのシステム領域を示すメモリ構造図である。
【図１５】本発明によるＩＣカードの第２実施形態における動作及び本発明によるＩＣカードプログラムの第２実施形態を示すフローチャートである。
【図１６】第２実施形態における独自プログラム登録処理前の書き換え可能な不揮発性メモリのメモリ構造図である。
【図１７】第２実施形態における独自プログラム登録処理前、処理中、処理後のシステム領域を示すメモリ構造図である。
【図１８】第２実施形態における独自プログラム登録処理前、処理中、処理後のプログラム領域を示すメモリ構造図である。
【図１９】本発明によるＩＣカードの第２実施形態における動作及び本発明によるＩＣカードプログラムの第２実施形態を示すフローチャートである。
【図２０】第２実施形態における独自プログラム登録処理及びアプリケーションデータ登録処理後の書き換え可能な不揮発性メモリのメモリ構造図である。
【符号の説明】
１，１−２　ＩＣカード
１０，１０−２　ＩＣチップ
１１　接触端子
１２　送受信回路
１３，１３−２　マイクロプロセッサ
１４，１４−２　ＣＰＵ
１５　ＲＯＭ
１６　ＲＡＭ
１７，１７−２　不揮発性メモリ
１７ｐ　プログラム領域
１７ｄ　データ領域
１７ｓ　システム領域
１４１　アプリケーション選択部
１４２　正当性判定部
１４３　プログラム実行部
１４４　登録判定部
１４５　容量判定部
１４６　登録要求情報正当性判定部
１４７　関連づけ正当性判定部
１４８　登録要求情報書込部
【図１】
2004030532.tif 000003
【図２】
2004030532.tif 000004
【図３】
2004030532.tif 000005
【図４】
2004030532.tif 000006
【図５】
2004030532.tif 000007
【図６】
2004030532.tif 000008
【図７】
2004030532.tif 000009
【図８】
2004030532.tif 000010
【図９】
2004030532.tif 000011
【図１０】
2004030532.tif 000012
【図１１】
2004030532.tif 000013
【図１２】
2004030532.tif 000014
【図１３】
2004030532.tif 000015
【図１４】
2004030532.tif 000016
【図１５】
2004030532.tif 000017
【図１６】
2004030532.tif 000018
【図１７】
2004030532.tif 000019
【図１８】
2004030532.tif 000020
【図１９】
2004030532.tif 000021
【図２０】
2004030532.tif 000022