(57)【特許請求の範囲】
【請求項１】
外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、
複数のコンポーネントを有するＪａｖａアプレットであるアプリケーションを予め記憶するＲＯＭと、
書換可能な不揮発性メモリと、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記アプリケーションの主要コンポーネントのうちの一部を有し、前記ＲＯＭにより記憶されている前記アプリケーションを前記不揮発性メモリに書き込むことを指示するロードコマンドを前記受信手段により受信した場合、前記ＲＯＭにより記憶されている前記アプリケーションで主要コンポーネントのうち不足しているコンポーネントを特定し、特定した前記コンポーネントを前記ロードコマンドから取得して前記不揮発性メモリに記憶するＣＰＵと、
を具備するＩＣカード。
【請求項２】
前記ＲＯＭ、前記不揮発性メモリ、前記受信手段、及び前記ＣＰＵを備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備する請求項１に記載のＩＣカード。
【請求項３】
外部機器から送信されたコマンドに応じて処理を実行する携帯可能電子装置であって、
複数のコンポーネントを有するＪａｖａアプレットであるアプリケーションを予め記憶するＲＯＭと、
書換可能な不揮発性メモリと、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記アプリケーションの主要コンポーネントのうちの一部を有し、前記ＲＯＭにより記憶されている前記アプリケーションを前記不揮発性メモリに書き込むことを指示するロードコマンドを前記受信手段により受信した場合、前記ＲＯＭにより記憶されている前記アプリケーションで主要コンポーネントのうち不足しているコンポーネントを特定し、特定した前記コンポーネントを前記ロードコマンドから取得して前記不揮発性メモリに記憶するＣＰＵと、
を具備する携帯可能電子装置。
【請求項４】
複数のコンポーネントを有するＪａｖａアプレットであるアプリケーションを予め記憶するＲＯＭと、書換可能な不揮発性メモリと、ＣＰＵと、を具備し、外部機器から送信されたコマンドに応じて処理を実行するＩＣカードの制御方法であって、
前記ＣＰＵは、前記アプリケーションの主要コンポーネントのうちの一部を有し、前記ＲＯＭにより記憶されている前記アプリケーションを前記不揮発性メモリに書き込むことを指示するロードコマンドを前記外部機器から受信した場合、前記ＲＯＭにより記憶されている前記アプリケーションで主要コンポーネントのうち不足しているコンポーネントを特定し、特定した前記コンポーネントを前記ロードコマンドから取得して前記不揮発性メモリに記憶する、
ＩＣカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード、携帯可能電子装置、ＩＣカードの制御方法に関する。
【背景技術】
【０００２】
一般的に、携帯可能電子装置として用いられるＩＣカードは、プラスチックなどで形成されたカード状の本体と本体に埋め込まれたＩＣモジュールとを備えている。ＩＣモジュールは、ＩＣチップを有している。ＩＣチップは、電源が無い状態でもデータを保持することができるＥＥＰＲＯＭ（登録商標）（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭなどの不揮発性メモリと、種々の演算を実行するＣＰＵと、ＣＰＵの処理に利用されるＲＡＭメモリなどを有している。
【０００３】
ＩＣカードは、例えば、国際標準規格ＩＳＯ／ＩＥＣ７８１６に準拠したＩＣカードである。ＩＣカードは、携帯性に優れ、且つ、外部装置との通信及び複雑な演算処理を行う事ができる。また、偽造が難しい為、ＩＣカードは、機密性の高い情報などを格納してセキュリティシステム、電子商取引などに用いられることが想定される。
【０００４】
ＩＣカードは、ＩＣカードを処理する処理装置からコマンドを受信した場合、受信したコマンドに応じてアプリケーションを実行する。これにより、ＩＣカードは、種々の機能を実現することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３４８１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のようなアプリケーションは、ＩＣカードのＲＯＭまたは不揮発性メモリなどに格納される。ＩＣカードは、アプリケーションを実行する場合、ＲＯＭまたは不揮発性メモリからアプリケーションを読み出し、不揮発性メモリまたはＲＡＭに実行可能な状態で展開する。ＩＣカードは、展開されたアプリケーションを実行することにより、種々の処理を行う。
【０００７】
しかし、近年、ＩＣカードが種々の分野に利用されており、ＩＣカードの一次発行の段階でＩＣカードが種々のアプリケーションがＲＯＭまたは不揮発性メモリに格納される。１つのアプリケーションは、この全体がＲＯＭまたは不揮発性メモリに格納される。この為、ＩＣカードがＲＯＭに格納することができるアプリケーションの数が少なくなるという課題がある。この結果、用途に応じてＲＯＭを用意する必要が生じ、コストの増加を招くという課題がある。また、ＲＯＭが持ち出された場合、アプリケーションが不正に動作させられる可能性があるという課題もある。
【０００８】
そこで、より利便性の高いＩＣカード、携帯可能電子装置、ＩＣカードの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一実施形態に係るＩＣカードは、外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、複数のコンポーネントを有するＪａｖａアプレットであるアプリケーションを予め記憶するＲＯＭと、書換可能な不揮発性メモリと、前記外部機器から送信されたコマンドを受信する受信手段と、前記アプリケーションの主要コンポーネントのうちの一部を有し、前記ＲＯＭにより記憶されている前記アプリケーションを前記不揮発性メモリに書き込むことを指示するロードコマンドを前記受信手段により受信した場合、前記ＲＯＭにより記憶されている前記アプリケーションで主要コンポーネントのうち不足しているコンポーネントを特定し、特定した前記コンポーネントを前記ロードコマンドから取得して前記不揮発性メモリに記憶するＣＰＵと、を具備する。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施形態に係るＩＣカード処理システムの構成例について説明するための図である。
【図２】図２は、一実施形態に係るＩＣカードの例について説明するための図である。
【図３】図３は、一実施形態に係るＩＣカードの例について説明するための図である。
【図４】図４は、一実施形態に係るＩＣカードの例について説明するための図である。
【図５】図５は、一実施形態に係るＩＣカードの例について説明するための図である。
【図６】図６は、一実施形態に係るＩＣカードの例について説明するための図である。
【図７】図７は、一実施形態に係るＩＣカードの例について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、一実施形態に係るＩＣカード、携帯可能電子装置、ＩＣカードの制御方法について詳細に説明する。
【００１２】
本実施形態に係る携帯可能電子装置（ＩＣカード）２０及びＩＣカード２０を処理する処理装置（端末装置）１０は、例えば、接触通信、及び／または非接触通信の機能を備える。これにより、ＩＣカード２０及び端末装置１０は、互いにデータの送受信を行うことができる。
【００１３】
また、本実施形態では、Ｊａｖａ  ｓｃｒｉｐｔ（登録商標）などにより構成されるＪａｖａアプレット（以下アプレットと称する）などを実行することにより種々の処理を実行するＩＣカード２０について説明する。なお、ＩＣカード２０は、他のアプリケーションなどを実行することにより処理を実行する構成であっても同様に本実施形態を適用することができる。
【００１４】
図１は、一実施形態に係るＩＣカード処理システム１の構成例を示す。  
ＩＣカード処理システム１は、ＩＣカード２０を処理する端末装置１０と、ＩＣカード２０と、を備える。
【００１５】
端末装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７、ディスプレイ１８、及び電源部１９を備える。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、カードリーダライタ１５、操作部１７、及びディスプレイ１８は、それぞれバスを介して互いに接続されている。
【００１６】
ＣＰＵ１１は、端末装置１０全体の制御を司る制御部として機能する。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、ＣＰＵ１１は、カードリーダライタ１５を介してＩＣカード２０とコマンド及びレスポンスの送受信を行う。
【００１７】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ１３は、カードリーダライタ１５を介して外部の機器と送受信するデータを一時的に格納する。また、ＲＡＭ１３は、ＣＰＵ１１が実行するプログラムを一時的に格納する。
【００１８】
不揮発性メモリ１４は、例えばＥＥＰＲＯＭ、ＦＲＡＭ（登録商標）などを備える。不揮発性メモリ１４は、例えば、制御用のプログラム、制御データ、アプリケーション、及びアプリケーションに用いられるデータなどを記憶する。
【００１９】
カードリーダライタ１５は、ＩＣカード２０と通信を行うためのインターフェース装置である。カードリーダライタ１５は、接触通信、または非接触通信によりＩＣカード２０とデータの送受信を行う。
【００２０】
接触通信のインターフェースとして用いられる場合、カードリーダライタ１５は、ＩＣカード２０が装着されるスロットと、ＩＣカード２０が備えるコンタクトパターンと接続される複数の接触端子を備える。
【００２１】
スロットにＩＣカード２０が装着される場合、カードリーダライタ１５の複数の接触端子は、ＩＣカード２０のコンタクトパターンに接続される。これにより、端末装置１０とＩＣカード２０とは電気的に接続される。カードリーダライタ１５は、スロットに装着されるＩＣカード２０に対して、電力の供給、クロックの供給、リセット信号の入力、及びデータの送受信などを行う。
【００２２】
また、非接触通信のインターフェースとして用いられる場合、カードリーダライタ１５は、送受信するデータに対して信号処理を施す信号処理部と、所定の共振周波数を有するアンテナとを備える。
【００２３】
カードリーダライタ１５は、例えば、信号処理部により、送受信するデータに対して符号化、復号、変調、及び復調などの信号処理を行なう。また、カードリーダライタ１５は、符号化及び変調を施したデータをアンテナに供給する。アンテナは、供給されたデータに応じて磁界を発生させる。これにより、端末装置１０は、通信可能範囲に存在するＩＣカード２０に対してデータを非接触で送信することができる。
【００２４】
さらに、カードリーダライタ１５のアンテナは、磁界を検知し、検知した磁界に応じて信号を生成する。これにより、カードリーダライタ１５は、信号を非接触で受信することができる。信号処理部は、アンテナにより受信された信号に対して復調及び復号を行う。これにより、端末装置１０は、ＩＣカード２０から送信された元のデータを取得することができる。
【００２５】
操作部１７は、例えば操作キーなどを備え、操作者により入力される操作に基づいて、操作信号を生成する。操作部１７は、生成した操作信号をＣＰＵに入力する。これにより、ＣＰＵ１１は、操作者により入力された操作に基づいて処理を実行することができる。
【００２６】
ディスプレイ１８は、ＣＰＵ１１、または図示されないグラフィックコントローラなどの表示処理モジュールから入力される映像を表示するための信号に基づいて種々の情報を表示する。
【００２７】
電源部１９は、端末装置１０の各部に電力を供給する。電源部１９は、例えば、商用電源より電力を受け取り、所定の電圧に変換し、端末装置１０の各部に供給する。
【００２８】
図２は、一実施形態に係るＩＣカード２０の構成例を示す。  
図２に示すように、ＩＣカード２０は、例えば、矩形状の本体２１と、本体２１内に内蔵されたＩＣモジュール２２とを備える。ＩＣモジュール２２は、ＩＣチップ２３と、通信部２４とを備える。ＩＣチップ２３と通信部２４とは、互いに接続された状態でＩＣモジュール２２内に形成されている。
【００２９】
なお、本体２１は、少なくとも通信部２４が配設されるＩＣモジュール２２を設置可能な形状であれば、矩形状に限らず如何なる形状であっても良い。
【００３０】
ＩＣチップ２３は、通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、電源部３１、及びロジック部３２などを備える。通信部２４、ＣＰＵ２５、ＲＯＭ２６、ＲＡＭ２７、不揮発性メモリ２８、電源部３１、及びロジック部３２は、バスを介して互いに接続されている。
【００３１】
通信部２４は、端末装置（外部機器）１０のカードリーダライタ１５と通信を行うためのインターフェースである。通信部２４は、接触通信、または非接触通信により、端末装置１０とデータの送受信を行う。
【００３２】
接触通信のインターフェースとして用いられる場合、通信部２４は、カードリーダライタ１５の接触端子と接続されるコンタクトパターンを備える。コンタクトパターンは、導電性を有する金属などによりＩＣモジュール２２の表面に形成される接触端子である。即ち、コンタクトパターンは、端末装置１０のカードリーダライタ１５の接触端子と接触可能に形成されている。
【００３３】
コンタクトパターンは、金属により形成される面が複数のエリアに区切られて形成される。区切られた各エリアは、それぞれ端子として機能する。通信部２４は、コンタクトパターンを介してカードリーダライタ１５とデータの送受信を行うことができる。
【００３４】
また、非接触通信のインターフェースとして用いられる場合、通信部２４は、信号処理部とアンテナとを備える。
【００３５】
信号処理部は、端末装置１０に送信するデータに対して符号化、負荷変調などの信号処理を行う。例えば、信号処理部は、端末装置１０に送信するデータの変調（増幅）を行う。信号処理部は、信号処理を施したデータをアンテナに供給する。
【００３６】
アンテナは、例えば、ＩＣモジュール２２内に所定の形状で配設される金属線により構成される。ＩＣカード２０は、端末装置１０に送信するデータに応じてアンテナにより磁界を発生させる。これにより、ＩＣカード２０は、端末装置１０に対してデータを送信することができる。また、ＩＣカード２０は、電磁誘導によりアンテナに発生する誘導電流に基づいて端末装置１０から送信されるデータを認識する。
【００３７】
例えば、信号処理部は、アンテナに発生する誘導電流に対して復調、及び復号を行う。例えば、信号処理部は、アンテナにより受信する信号の解析を行う。これにより、通信部２４は、２値の論理データを取得する。通信部２４は、解析したデータをバスを介してＣＰＵ２５に送信する。
【００３８】
ＣＰＵ２５は、ＩＣカード２０全体の制御を司る制御部として機能する。ＣＰＵ２５は、ＲＯＭ２６あるいは不揮発性メモリ２８に記憶されている制御プログラム及び制御データに基づいて種々の処理を行う。例えば、端末装置１０から受信したコマンドに応じて種々の処理を行い、処理結果としてのレスポンスなどのデータの生成を行なう。
【００３９】
ＲＯＭ２６は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２６は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２０内に組み込まれる。即ち、ＲＯＭ２６に記憶される制御プログラム及び制御データは、予めＩＣカード２０の仕様に応じて組み込まれる。本実施形態では、ＲＯＭ２６は、予め複数のアプレットが格納された状態でＩＣカード２０内に組み込まれる。
【００４０】
ＲＡＭ２７は、ワーキングメモリとして機能する揮発性のメモリである。ＲＡＭ２７は、ＣＰＵ２５の処理中のデータなどを一時的に格納する。例えば、ＲＡＭ２７は、通信部２４を介して端末装置１０から受信したデータを一時的に格納する。またＲＡＭ２７は、通信部２４を介して端末装置１０に送信するデータを一時的に格納する。またさらに、ＲＡＭ２７は、ＣＰＵ２５が実行するプログラムを一時的に格納する。
【００４１】
不揮発性メモリ２８は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリを備える。不揮発性メモリ２８は、ＩＣカード２０の運用用途に応じて制御プログラム及び種々のデータを格納する。本実施形態では、不揮発性メモリ２８には、発行段階でアプレット、またはアプレットの一部が格納される。
【００４２】
電源部３１は、端末装置１０の各部に電力を供給する。ＩＣカード２０が接触通信を行う構成を備える場合、電源部３１は、通信部２４のコンタクトパターンを介してカードリーダライタ１５から供給される電力をＩＣカード２０の各部に供給する。
【００４３】
また、ＩＣカード２０が非接触通信を行う構成を備える場合、カードリーダライタ１５のアンテナから送信される電波、特にキャリア波に基づいて電力を生成する。さらに、電源部３１は、動作クロックを生成する。電源部３１は、発生させた電力及び動作クロックをＩＣカード２０の各部に電力を供給する。ＩＣカード２０の各部は、電力の供給を受けた場合、動作可能な状態になる。
【００４４】
ロジック部３２は、演算処理をハードウエアにより行う演算部である。例えば、ロジック部３２は、端末装置１０からのコマンドに基づいて、暗号化、復号、及び乱数の生成などの処理を行う。例えば、端末装置１０から相互認証コマンドを受信する場合、ロジック部３２は、乱数を生成し、生成した乱数をＣＰＵ２５に伝送する。
【００４５】
ＩＣカード２０は、一次発行と二次発行とにより発行される。端末装置１０は、一次発行において、ＩＣカード２０の不揮発性メモリ２８に種々のデータを格納する為のファイルを創成する。これにより、不揮発性メモリ２８には、Ｍａｓｔｅｒ  Ｆｉｌｅ（ＭＦ）、Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ（ＤＦ）、及びＥｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＥＦ）などが創成される。
【００４６】
ＭＦは、ファイル構造の根幹となるファイルである。ＤＦは、ＭＦの下位に創成される。ＤＦは、アプレット及びアプレットが有するコンポーネントなどをグループ化して格納するファイルである。ＥＦは、ＤＦの下位に創成される。ＥＦは、様々なデータを格納するためのファイルである。また、ＭＦの直下にＥＦが置かれる場合もある。
【００４７】
ＥＦには、Ｗｏｒｋｉｎｇ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＷＥＦ）とＩｎｔｅｒｎａｌ  Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ（ＩＥＦ）などの種類がある。ＷＥＦは、作業用ＥＦであり、個人情報などを格納する。ＩＥＦは、内部ＥＦであり、例えば、セキュリティのための暗号鍵（暗証番号）などのデータを記憶する。
【００４８】
二次発行では、ＥＦに例えば顧客データなどの個別データが格納される。これにより、ＩＣカード２０が運用可能な状態になる。
【００４９】
なお、本実施形態では、ＩＣカード２０の不揮発性メモリ２８内には、一次発行の段階で上記したアプレットの全体、または一部が格納される。
【００５０】
図３は、アプレットの例を示す。なお、Ｊａｖａ（登録商標）アプレットは、所定のコンポーネントに備える。図３により示されるように、アプレットは、「Ｈｅａｄｅｒ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント１）」、「Ｄｉｒｅｃｔｏｒｙ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント２）」、「Ａｐｐｌｅｔ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント３）」、「Ｉｍｐｏｒｔ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント４）」、「Ｃｏｎｓｔａｎｔ  Ｐｏｏｌ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント５）」、「Ｃｌａｓｓ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント６）」、「Ｍｅｔｈｏｄ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント７）」、「Ｓｔａｔｉｃ  Ｆｉｅｌｄ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント８）」、「Ｒｅｆｅｒｅｎｃｅ  Ｌｏｃａｔｉｏｎ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント９）」、「Ｅｘｐｏｒｔ
Ｃｏｍｐｏｎｅｎｔ（コンポーネント１０）」、「Ｄｅｓｃｒｉｐｔｏｒ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント１１）」、及び「Ｄｅｂｕｇ  Ｃｏｍｐｏｎｅｎｔ（コンポーネント１２）」を有する。
【００５１】
アプレットは、これらのコンポーネントのうちコンポーネント１１及びコンポーネント１２を除くコンポーネントがそろっている場合に正常にＣＰＵ２５により実行される。即ち、アプレットのコンポーネント１乃至１０は、動作に必要な最低限のコンポーネント（主要コンポーネント）である。
【００５２】
図４は、一次発行前のＩＣカード２０のＲＯＭ２６及び不揮発性メモリ２８の例を示す。本例では、図４により示されるようにＲＯＭ２６にアプレット１、アプレット２、及びアプレット３が格納されている。なお、予めＲＯＭ２６に書き込まれているアプレットをＲＯＭアプレットと称する。なお、各アプレットは、それぞれ自身を示す識別子を有する。これにより、ＩＣカード２０のＣＰＵ２５は、各アプレットを識別することができる。
【００５３】
なお、アプレット１は、コンポーネント１乃至４、コンポーネント６及び７、コンポーネント９乃至１２を有する。アプレット２は、コンポーネント１乃至４、コンポーネント６及び７、コンポーネント９乃至１２を有する。また、アプレット３は、コンポーネント１乃至１２を有する。なお、不揮発性メモリ２８には、この時点ではまだデータが書き込まれていない。
【００５４】
ここで、端末装置１０は、ＩＣカード２０にＬＯＡＤコマンドを送信することにより、アプレットの全体、または一部をＩＣカード２０の不揮発性メモリ２８に書き込むロードをＩＣカード２０に実行させる。即ち、ロードは、データ領域（ＥＥＰＲＯＭ）へアプレットを書き込むことを示す。この場合、ＩＣカード２０は、端末装置１０からのＬＯＡＤコマンドによりＲＯＭ２６内のＲＯＭアプレットをロードし、不揮発性メモリ２８上に書込む。
【００５５】
例えば、端末装置１０は、ＩＣカード２０の不揮発性メモリ２８にＬＯＡＤコマンドを送信する。これにより、端末装置１０は、ＲＯＭ２６に存在しないアプレット４を不揮発性メモリ２８に書き込む通常のロードを行う。この場合、端末装置１０は、アプレット４のコンポーネント１乃至１２を不揮発性メモリ２８に書き込む。
【００５６】
ＩＣカード２０は、アプレット４の書き込みが完了した場合、「ＬＯＡＤコマンド完了（正常終了）」を端末装置１０に送信する。これにより、端末装置１０は、ＩＣカード２０にアプレット４のコンポーネント１乃至１２が書き込まれたことを認識する。
【００５７】
なお、アプレット全体をロードの対象とする場合、ＲＯＭアプレットと同じ識別子を持つアプレットがＬＯＡＤされた場合、ＲＯＭアプレットを論理的に削除する。
【００５８】
また、ＩＣカード２０は、コンポーネント単位でアプレットをロードすることができる。なお、ＩＣカード２０は、１回のＬＯＡＤコマンドで複数のコンポーネントが指定されている場合、指定されたコンポーネントを不揮発性メモリ２８にロードすることができる。この場合、ＩＣカード２０は、ＲＯＭアプレットと同じ識別子を持つアプレットの一部のコンポーネントを追加的に不揮発性メモリ２８にロードすることができる。
【００５９】
例えば、端末装置１０は、ＩＣカード２０の不揮発性メモリ２８にアプレット１のコンポーネントの一部（コンポーネント５及び８）を書き込む為のＬＯＡＤコマンドを送信する。
【００６０】
アプレット１はＲＯＭ２６に格納されているアプレットである為、ＩＣカード２０は、受信したＬＯＡＤコマンドが追加のロードを指示するものであることを認識する。ＩＣカード２０は、ＲＯＭ２６に格納されているアプレット１で不足しているコンポーネントを特定する。ＩＣカード２０は、特定したコンポーネントを不揮発性メモリ２８に格納する。
【００６１】
図４の例の場合、ＩＣカード２０は、ＲＯＭ２６に格納されているアプレット１でコンポーネント５及び８が不足していることを認識する。この場合、ＩＣカード２０は、コンポーネント５及び８を不揮発性メモリ２８に格納する。これにより、端末装置１０は、ＲＯＭ２６に存在するアプレット１の不足しているコンポーネント５及び８を不揮発性メモリ２８に書き込む追加のロードを行うことができる。
【００６２】
ＩＣカード２０は、アプレット１のコンポーネント５及び８の書き込みが完了した場合、「ＬＯＡＤコマンド完了（正常終了）」を端末装置１０に送信する。これにより、端末装置１０は、ＩＣカード２０にアプレット１のコンポーネント５及び８が不揮発性メモリ２８に書き込まれたことを認識する。
【００６３】
上記の処理により、図５により示されるように、不揮発性メモリ２８にアプレット１及びアプレット４が書き込まれる。即ち、不揮発性メモリ２８は、アプレット１、及びアプレット４を格納している。
【００６４】
不揮発性メモリ２８に格納されているアプレット１は、コンポーネント５及び８を有する。また、不揮発性メモリ２８に格納されているアプレット２は、コンポーネント１乃至１２を有する。
【００６５】
次に、端末装置１０は、ＩＣカード２０にＩＮＳＴＡＬＬコマンドを送信することにより、ＲＯＭ２６または不揮発性メモリ２８上の対象アプレットからインスタンスを不揮発性メモリ２８上に生成するインストールを行う。
【００６６】
インスタンスは、ＣＰＵ２５に１つの作業、または一連の作業を実行させる為のコードを含む。即ち、インストールは、ＲＯＭ２６または不揮発性メモリ２８により格納されているアプレットをＣＰＵ２５により実行可能な状態に変換することを示す。
【００６７】
例えば、アプレットの全体がＲＯＭ２６または不揮発性メモリ２８に格納されている場合、ＩＣカード２０は、ＩＮＳＴＡＬＬコマンドにより指定されたアプレットをＲＯＭ２６または不揮発性メモリ２８から読み出し、読み出したアプレットのインスタンスを不揮発性メモリ２８に生成する。
【００６８】
図６は、ＩＣカード２０によるインストールの例を示す。  
まず、ＩＣカード２０は、ＩＮＳＴＡＬＬコマンドを受信した場合、ＩＮＳＴＡＬＬコマンドにより指定されたアプレット（対象アプレット）が不揮発性メモリ２８により格納されているか否か判断する（ステップＳ１１）。
【００６９】
対象アプレットが不揮発性メモリ２８により格納されている場合、ＩＣカード２０は、ＩＮＳＴＡＬＬコマンドにより指定された対象アプレットの主要コンポーネントが不揮発性メモリ２８により格納されているか否か判断する（ステップＳ１２）。
【００７０】
対象アプレットの主要コンポーネントが不揮発性メモリ２８により格納されている場合、ＩＣカード２０は、不揮発性メモリ２８上の対象アプレットからインスタンスを生成し、不揮発性メモリ２８に格納する（ステップＳ１３）。
【００７１】
また、ＩＣカード２０は、対象アプレットの主要コンポーネントが不足している場合、ＲＯＭ２６上の同一の識別子のアプレット（ＲＯＭアプレット）を検索する。これにより、ＩＣカード２０は、対象のアプレットがＲＯＭ２６により格納されているか否か判定する（ステップＳ１４）。
【００７２】
対象のアプレットがＲＯＭ２６により格納されている場合、ＩＣカード２０は、対象のアプレットをＲＯＭ２６から読み出す。これにより、ＩＣカード２０は、不足しているコンポーネントをＲＯＭ２６から読み出す。ＩＣカード２０は、対象アプレットの主要コンポーネントが揃ったか否か判断する（ステップＳ１５）。
【００７３】
主要コンポーネントが揃った場合、ＩＣカード２０は、ＲＯＭ２６と不揮発性メモリ２８との両方から対象アプレットを読み出し、１つのインスタンスを生成する（ステップＳ１６）。即ち、ＩＣカード２０は、不足しているコンポーネントをＲＯＭ２６から読み出し、主要コンポーネントを集め、集めた主要コンポーネントからインスタンスを生成する。ＩＣカード２０は、生成したインスタンスを不揮発性メモリ２８に格納する。
【００７４】
また、ステップＳ１１において、対象アプレットが不揮発性メモリ２８により格納されていないと判断した場合、ＩＣカード２０は、ＩＮＳＴＡＬＬコマンドにより指定された対象アプレットがＲＯＭ２６により格納されているか否か判断する（ステップＳ１７）。
【００７５】
対象アプレットがＲＯＭ２６により格納されている場合、ＩＣカード２０は、ＩＮＳＴＡＬＬコマンドにより指定された対象アプレットの主要コンポーネントがＲＯＭ２６により格納されているか否か判断する（ステップＳ１８）。
【００７６】
対象アプレットの主要コンポーネントがＲＯＭ２６により格納されている場合、ＩＣカード２０は、ＲＯＭ２６上の対象アプレットからインスタンスを生成し、不揮発性メモリ２８に格納する（ステップＳ１９）。
【００７７】
ＩＣカード２０は、ステップＳ１３、ステップＳ１６、またはステップＳ１９において、インスタンスを生成することができた場合、端末装置１０にインストールが正常に完了したことを示す「ＩＮＳＴＡＬＬ完了（正常終了）」をレスポンスとして通知する（ステップＳ２０）。
【００７８】
また、ステップＳ１４において対象のアプレットがＲＯＭ２６により格納されていなかった場合、ステップＳ１５において主要コンポーネントが揃わなかった場合、ステップＳ１７において対象アプレットがＲＯＭ２６により格納されていない場合、または、ステップＳ１８において対象アプレットの主要コンポーネントがＲＯＭ２６により格納されていない場合、ＩＣカード２０は、異常終了する。
【００７９】
即ち、ＩＣカード２０は、ＲＯＭ２６と不揮発性メモリ２８との両方を参照しても主要コンポーネントが揃わなかった場合、端末装置１０に「ＩＮＳＴＡＬＬエラー（異常終了）」をレスポンスとして通知する（ステップＳ２１）。
【００８０】
図７は、ＩＣカード２０によるインストールの例を示す。ここでは、図５に示すようにＲＯＭ２６及び不揮発性メモリ２８が構成されている場合、アプレット１乃至４をインストールする例を示す。
【００８１】
まず、端末装置１０は、アプレット４のインストールを指示するＩＮＳＴＡＬＬコマンドをＩＣカード２０に送信する。アプレット４は、主要コンポーネントが全て不揮発性メモリ２８に格納されている。この為、ＩＣカード２０は、不揮発性メモリ２８内のアプレット４からインスタンスを作成し、不揮発性メモリ２８に書き込む。さらに、ＩＣカード２０は、端末装置１０にインストールが正常に完了したことを示す「ＩＮＳＴＡＬＬ完了（正常終了）」をレスポンスとして通知する。
【００８２】
次に、端末装置１０は、アプレット３のインストールを指示するＩＮＳＴＡＬＬコマンドをＩＣカード２０に送信する。アプレット３は不揮発性メモリ２８により格納されていない為、ＩＣカード２０は、ＲＯＭ２６を検索する。ＲＯＭ２６は、アプレット３の主要コンポーネントを全て格納している。この為、ＩＣカード２０は、ＲＯＭ２６内のアプレット３からインスタンスを作成し、不揮発性メモリ２８に書き込む。さらに、ＩＣカード２０は、端末装置１０にインストールが正常に完了したことを示す「ＩＮＳＴＡＬＬ完了（正常終了）」をレスポンスとして通知する。
【００８３】
次に、端末装置１０は、アプレット１のインストールを指示するＩＮＳＴＡＬＬコマンドをＩＣカード２０に送信する。アプレット１は不揮発性メモリ２８により格納されている。しかし、主要コンポーネントのうち、コンポーネント１乃至４、コンポーネント６及び７、コンポーネント９及び１０が不足している。この為、ＩＣカード２０は、ＲＯＭ２６を検索する。ＲＯＭ２６は、アプレット１のコンポーネント１乃至４、コンポーネント６及び７、コンポーネント９及び１０を格納している。
【００８４】
ＩＣカード２０は、不揮発性メモリ２８により格納されているコンポーネントと、ＲＯＭ２６により格納されているコンポーネントと、を組み合わせてアプレット１の主要コンポーネントを揃えることができる。ＩＣカード２０は、ＲＯＭ２６及び不揮発性メモリ２８内のアプレット１からインスタンスを作成し、不揮発性メモリ２８に書き込む。さらに、ＩＣカード２０は、端末装置１０にインストールが正常に完了したことを示す「ＩＮＳＴＡＬＬ完了（正常終了）」をレスポンスとして通知する。
【００８５】
次に、端末装置１０は、アプレット２のインストールを指示するＩＮＳＴＡＬＬコマンドをＩＣカード２０に送信する。アプレット２は不揮発性メモリ２８により格納されていない為、ＩＣカード２０は、ＲＯＭ２６を検索する。アプレット２はＲＯＭ２６により格納されている。しかし、主要コンポーネントのうち、コンポーネント５及び８が不足している。この場合、アプレット２の主要コンポーネントが揃わないため、ＩＣカード２０は、インスタンスの作成を行わない。また、ＩＣカード２０は、端末装置１０に「ＩＮＳＴＡＬＬエラー（異常終了）」をレスポンスとして通知する。
【００８６】
上記したように、本実施形態に係るＩＣカード２０は、アプレットを構成する複数のコンポーネントの一部がＲＯＭ２６に格納し、残りのコンポーネントが不揮発性メモリ２８に格納する。ＩＣカード２０は、アプレットのインストールを行う場合、不揮発性メモリ２８を参照し、インストールするアプレットの主要コンポーネントが揃っているか否か判断し、揃っていない場合、ＲＯＭ２６を参照する。ＩＣカード２０は、ＲＯＭ２６に格納されているコンポーネントと不揮発性メモリ２８により格納されているコンポーネントとにより主要コンポーネントが揃う場合、インスタンスを生成し、不揮発性メモリ２８に書き込む。
【００８７】
これにより、アプレットの主要コンポーネントがＲＯＭ２６と不揮発性メモリ２８とに分割されて格納されている場合であっても、ＩＣカード２０は、インスタンスを生成することができる。このような構成によると、アプレットをＲＯＭ２６と不揮発性メモリ２８とにコンポーネント単位で分割して格納することができる。
【００８８】
これにより、ＲＯＭにさらにアプレットを格納することができる。この結果、種々の用途に対応するアプレットをＲＯＭ２６に格納することができるようになる為、ＩＣカード２０のコストを抑えることができる。即ち、ＲＯＭアプレットのサイズを抑えることができ、ＲＯＭ容量を抑えることができ、ハードウェアコストを抑えることができる。
【００８９】
また、アプレットのコンポーネントを変更が入りにくいものと頻繁に変更されるものに分け、変更が入りにくいものをＲＯＭ２６に格納することにより、アプレットのバージョンアップ時にロードデータ、即ち不揮発性メモリ２８内のデータの差し替えのみで対応可能となる。また、ＲＯＭ２６を持ち去られた場合であっても、コンポーネントが揃わないため、アプレットが実行及び解析されるというリスクを抑えることができる。
【００９０】
この結果、より利便性の高いＩＣカード、携帯可能電子装置、ＩＣカードの制御方法を提供することができる。
【００９１】
また、ＩＣカード２０は、インスタンスの生成に失敗したアプレットに基づくインスタンスの生成を禁止する構成であってもよい。例えば、ＩＣカード２０は、インストールコマンドにより指定されたアプレットの主要コンポーネントが不揮発性メモリ２８にもＲＯＭ２６にも記憶されていなかった場合、インストールコマンドにより指定されたアプレットに基づくインスタンスの生成を禁止するように設定する。具体的には、ＩＣカード２０は、このアプレットに基づくインスタンスの生成を許可するか否かを示す情報を不揮発性メモリ２８内に書き込む。これにより、ＩＣカード２０は、所定のアプレットに基づくインスタンスの生成を禁止することができる。
【００９２】
また、ＩＣカード２０は、インスタンスの生成に用いられなかったアプレットのロード及びインスタンスの生成に用いられなかったアプレットに基づくインスタンスの生成を禁止する構成であってもよい。例えば、ＩＣカード２０は、インストールコマンドにより指定されたアプレットに基づくインスタンスの生成した場合、不揮発性メモリ２８への他のアプレットのロード及びＲＯＭ２６及び不揮発性メモリ２８により記憶されている他のアプレットに基づくインスタンスの生成を禁止する。即ち、ＩＣカード２０は、インストールコマンドにより指定されたアプレット以外のアプレットに基づくインスタンスの生成を禁止する。これにより、ＩＣカード２０の不正利用及び改竄などを防ぐことが出来る。
【００９３】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００９４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
以下に原出願の特許請求の範囲を付記する。
［Ｃ１］
外部機器から送信されたコマンドに応じて処理を実行するＩＣカードであって、
複数の構成を有するＪａｖａアプレットであるアプリケーションを予め記憶する第１の記憶手段と、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記第１の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第１の記憶手段により記憶されている前記アプリケーションで主要コンポーネントのうち不足している構成を特定するＣＰＵと、
特定された前記構成を記憶する第２の記憶手段と、
を具備するＩＣカード。
［Ｃ２］
前記第１の記憶手段は、複数のコンポーネントを有するアプリケーションが予め記憶されたＲＯＭを有し、
前記第２の記憶手段は、書換可能な不揮発性メモリを有し、前記書き込みコマンドが、ロードコマンドである場合、前記ＲＯＭにより記憶されている前記アプリケーションで前記主要コンポーネントのうち不足しているコンポーネントを特定し、特定したコンポーネントを前記不揮発性メモリに記憶する、
Ｃ１に記載のＩＣカード。
［Ｃ３］
インストールコマンドを前記受信手段により受信した場合、前記ＲＯＭにより記憶されている前記アプリケーションのコンポーネントと、前記不揮発性メモリにより記憶されている前記アプリケーションのコンポーネントと、に基づいてインスタンスを生成する制御手段をさらに具備する、Ｃ２に記載のＩＣカード。
［Ｃ４］
前記制御手段は、前記インストールコマンドを前記受信手段により受信した場合、前記インストールコマンドにより指定されたアプリケーションの前記主要コンポーネントが前記不揮発性メモリに記憶されているか否か判断し、前記主要コンポーネントが前記不揮発性メモリに記憶されている場合、前記不揮発性メモリにより記憶されている前記主要コンポーネントに基づいてインスタンスを生成する、Ｃ３に記載のＩＣカード。
［Ｃ５］
前記制御手段は、前記主要コンポーネントが前記不揮発性メモリに記憶されていない場合、不足する前記主要コンポーネントが前記ＲＯＭに記憶されているか否か判断し、不足する前記主要コンポーネントが前記ＲＯＭに記憶されている場合、前記不揮発性メモリにより記憶されている前記主要コンポーネントと、前記ＲＯＭにより記憶されている前記主要コンポーネントと、を組み合わせてインスタンスを生成する、Ｃ４に記載のＩＣカード。
［Ｃ６］
前記制御手段は、不足する前記主要コンポーネントが前記ＲＯＭに記憶されていない場合、前記インストールコマンドにより指定されたアプリケーションに基づくインスタンスの生成を禁止する、Ｃ５に記載のＩＣカード。
［Ｃ７］
前記制御手段は、インスタンスを生成した場合、前記不揮発性メモリへのロードと、前記ＲＯＭ及び前記不揮発性メモリにより記憶されている他のアプリケーションに基づくインスタンスの生成とを禁止する、Ｃ３乃至５のいずれかに記載のＩＣカード。
［Ｃ８］
前記各手段を備えるＩＣモジュールと、
前記ＩＣモジュールが配設される本体と、
を具備するＣ１に記載のＩＣカード。
［Ｃ９］
外部機器から送信されたコマンドに応じて処理を実行する携帯可能電子装置であって、
複数の構成を有するＪａｖａアプレットであるアプリケーションを予め記憶する第１の記憶手段と、
前記外部機器から送信されたコマンドを受信する受信手段と、
前記第１の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを前記受信手段により受信した場合、前記第１の記憶手段により記憶されている前記アプリケーションで主要コンポーネントのうち不足している構成を特定するＣＰＵと、
特定された前記構成を記憶する第２の記憶手段と、
を具備する携帯可能電子装置。
［Ｃ１０］
複数の構成を有するＪａｖａアプレットであるアプリケーションを予め記憶する第１の記憶手段と、ＣＰＵと、書換可能な第２の記憶手段とを具備し、外部機器から送信されたコマンドに応じて処理を実行するＩＣカードの制御方法であって、
前記外部機器から送信されたコマンドを受信し、
前記第１の記憶手段により記憶されている前記アプリケーションを書き込む為の書き込みコマンドを受信した場合、前記第１の記憶手段により記憶されている前記アプリケーションで主要コンポーネントのうち不足している構成を前記ＣＰＵに特定させ、
特定された前記構成を前記第２の記憶手段に記憶する、
ＩＣカードの制御方法。
【符号の説明】
【００９５】
１…ＩＣカード処理システム、１０…端末装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…不揮発性メモリ、１５…カードリーダライタ、１７…操作部、１８…ディスプレイ、１９…電源部、２０…ＩＣカード、２１…本体、２２…ＩＣモジュール、２３…ＩＣチップ、２４…通信部、２５…ＣＰＵ、２６…ＲＯＭ、２７…ＲＡＭ、２８…不揮発性メモリ、３１…電源部、３２…ロジック部。
【図１】
0005957577.tif 000002
【図２】
0005957577.tif 000003
【図３】
0005957577.tif 000004
【図４】
0005957577.tif 000005
【図５】
0005957577.tif 000006
【図６】
0005957577.tif 000007
【図７】
0005957577.tif 000008