【手続補正書】
【提出日】平成19年6月22日(2007.6.22)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】          明細書
【発明の名称】      再ロード可能な機能プログラムを実行するために設計されたデータ記憶媒体の動作方法
【特許請求の範囲】
【請求項１】  通信デバイス、メモリデバイス及び前記メモリデバイスに収められた機能プログラムを実行するためのプログラム実行ユニットを備えるデータ記憶媒体の動作方法において：
ローダーインターフェース(１２０)を実現するための機能プログラムを前記データ記憶媒体の前記メモリデバイス(１１０)にインストールするステップ；前記ローダーインターフェース(１２０)は続いて、それぞれがロードアプリケーション(２１０)を実現する複数の機能プログラムの再ロードを可能にする；
前記メモリデバイス(１１０)内に、前記ローダーインターフェース(１２０)が利用可能なフリーメモリ空間(１３０)を提供するステップ；及び
前記通信デバイス(６０)を介して前記メモリデバイス(１１０)に少なくとも１つのロードアプリケーション(２１０)を再ロードするステップ；前記再ロードステップは前記ローダーインターフェース(１２０)により制御され、前記ロードアプリケーション(２１０)は割当てアドレス空間(２２０)としての前記フリーメモリ空間(１３０)の一部に配分される；
ことを特徴とする方法。
【請求項２】  前記ロードアプリケーション(２１０)の制御の下で、前記ロードアプリケーション(２１０)に配分された前記割当アドレス空間(２２０)に、前記プログラム実行ユニットにより前記通信デバイス(６０)を介して少なくとも１つのアプリケーションプログラム(２３０)を再ロードするステップ；
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】  前記ローダーインターフェース(１２０)が、ロードアプリケーション(２１０)に配分された割当アドレス空間(２２０)に関わる制御を前記ロードアプリケーション(２１０)に与えることを特徴とする請求項１に記載の方法。
【請求項４】  機能プログラム及びアプリケーションプログラムを受け取るためのメモリデバイス(１１０)と、
前記メモリデバイス(１１０)に収められた機能プログラムを実行するためのプログラム実行ユニット(２０)と、
通信デバイス(６０)とを有するデータ記録媒体において、
少なくとも１つのロードアプリケーション(２１０)をロードするための機能プログラムとして実現されたローダーインターフェース(１２０)を備え；前記ロードアプリケーション(２１０)は、前記通信デバイス(６０)を介した前記メモリデバイス(１１０)への別のアプリケーションプログラムの再ロードを可能にする；
前記ローダーインターフェース(１２０)が、前記ローダーインターフェース(１２０)と関係付けられた、少なくとも１つのロードアプリケーション(２１０)を受け取るためのフリーメモリ空間(１３０)を前記メモリデバイス(１１０)内に有している；
ことを特徴とするデータ記憶媒体。
【請求項５】  前記メモリデバイス(１１０)に受け取られたロードアプリケーション(２１０)が、前記ローダーインターフェース(１２０)とは無関係に、前記ローダーインターフェース(１２０)と関係付けられた前記フリーメモリ空間(１３０)の一部(２２０)を制御することを特徴とする請求項４に記載のデータ記憶媒体。
【請求項６】  前記ロードアプリケーション(２１０)が、ロードされる予定のアプリケーションプログラム(３３０)を、ロード中に、前記データ記憶媒体上に既に存在するアプリケーションプログラム及び機能プログラムとリンクさせるように設計されていることを特徴とする請求項４に記載のデータ記憶媒体。
【請求項７】  ロードアプリケーション(２１０)が、新しくロードされる予定のアプリケーションプログラム(３３０)の既に存在しているアプリケーションプログラム(３１１，３２０)とのリンクを禁止する制限を含むことを特徴とする請求項６に記載のデータ記憶媒体。
【請求項８】  機能プログラム及びアプリケーションプログラムを受け取るためのメモリデバイス、前記メモリデバイスに収められた機能プログラム及びアプリケーションプログラムを実行するためのプログラム実行ユニットおよび通信デバイスを備えるデータ記憶媒体の動作方法において：
アプリケーションプログラムを前記メモリデバイスに再ロードするためのローダーインターフェース(１２０，２１０)を実現する機能プログラムを前記データ記憶媒体に装備するステップ；
アプリケーションプログラムを再ロードするために前記メモリデバイス(１１０)内にアドレス空間を割り当てるための管理デバイスを前記データ記憶媒体に装備するステップ；
再ロードされる予定の前記アプリケーションプログラムに、前記アプリケーションプログラムに必要なメモリ空間の大きさに関する情報をもつバッジを備えるステップ；
アプリケーションの再ロード中に前記バッジを評価するステップ；及び
前記アプリケーションプログラムに、前記メモリデバイス(１１０)内に前記確定された大きさ情報に整合するアドレス空間を割り当てるステップ；
を含むことを特徴とする方法。
【請求項９】  前記バッジが前記アプリケーションプログラムを指定する情報をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】  前記バッジが前記アプリケーションプログラムの正当性を証明するための署名をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１１】  前記バッジが前記データ記憶媒体の発行者により発行されることを特徴とする請求項８に記載の方法。
【請求項１２】  機能プログラム及びアプリケーションプログラムを受け取るためのメモリデバイス(１１０)、前記メモリデバイスに収められている機能プログラムを実行するためのプログラム実行ユニット(２０)並びに、通信デバイス(６０)を備えたデータ記録媒体において、
前記通信デバイス(６０)を介して前記メモリデバイスに少なくとも１つのアプリケーションプログラムを再ロードするための、機能プログラムとして実現されたローダーターフェース(１２０，２１０)を備え；前記ローダーターフェース(１２０，２１０)が、ロードされる予定のアプリケーションプログラムのバッジをチェックするための手段を有し、前記バッジに含まれる大きさ情報にしたがって前記ロードされる予定のアプリケーションプログラムにメモリ空間を前記メモリデバイス(１１０)内に割り当てることを特徴とするデータ記憶媒体。
【発明の詳細な説明】
【０００１】
本発明はデータ記憶媒体に関し、特にメモリデバイスに格納された機能プログラムを実行するためにデータ記憶媒体を動作させるための方法に関する。
【０００２】
スマートカードの形態のデータ記憶媒体は、増え続ける様々なアプリケーション分野で用いられている。特に普及しているカードは、半導体集積回路及び対応する読取機との電気的接続を行うためのコンタクト手段が組み込まれているプラスチック担体からなる、ＩＳＯ(国際標準化機構)規格７８１０にしたがうカードである。カード容器をさらに小さくするか、あるいは完全に無くしてしまい、代わりに、例えばワンチップマイクロコントローラを携帯用時計、装身用宝石類、衣服、あるいはその他の日用品に組み込むことも提案されている。したがって、“スマートカード”とは、その所有者または保持者が、対応する、専用として提供された相互通信局とスマートカード形式の交信を行うことを可能にするためにマイクロコントローラが埋め込まれた、現在及び将来の可搬(小形)物体の全てを含むとされる。スマートカードの代表的なアプリケーションは、クレジットカード、キャッシュカード、健康保険カードまたはテレホンカードである。本明細書で“アプリケーション”とは、あるシステム、例えばクレジットカード支払システム内でスマートカードを動作させるために必要な、スマートカード内の全てのデータ、コマンド、演算、状態、機構及びアルゴリズムの総体を指す。
【０００３】
それぞれのアプリケーションには通常それ自体に対応するスマートカードがあり、その上、新しいアプリケーション及び既存のアプリケーションの更新はそれぞれ新規のスマートカードをもたらす。したがって、クレジットカード会社、銀行、保険会社、電話会社等のような様々なサービスプロバイダ及びカードシステム運用業者の複数のアプリケーションに対して使用できるスマートカードを所持することが、根本的に望ましい。
【０００４】
いくつかのアプリケーションに適するそのようなスマートカードのためのファイルシステムが、ランクル(Rankl)／エフィング(Effing)の“ＩＣカードハンドブック(Handbuch der Chipkarten)”，カール・ハウザー(Carl Hauser)出版(１９６６)，第５．６章に示されている。この書に述べられているシステム構造は、ＩＳＯ／ＩＥＣ(国際電気標準会議)規格７８１６−４に基づいている。ファイル構造の最上位には、スマートカード上に存在するその他の全てのファイルのディレクトリを含む、マスタファイルがある。マスタファイルの下位には、グループにまとめられた、詳しくは１つのアプリケーションに属するファイルのファイル名を含む、１つまたはそれ以上の専用ファイルがある。それぞれの専用ファイルの下位には、最後の、いずれかのアプリケーションに有用なデータを含む１つまたはそれ以上の要素ファイルがある。上記のハンドブックにはさらに、プログラムコードの再ロードは技術的には可能であるが保全の理由から不適当であると述べられている。保全問題を克服するための最も有望な手段として、上記ハンドブックは、実行されるべきプログラムコードが割り当てられた制限を守るか否かについて監視するメモリ管理ユニットの組込みに言及している。
【０００５】
国際特許出願公開第９８／０９２５７−Ａ１号は、既にロードされているアプリケーションのデータに加えて、スマートカードに別のアプリケーションのプログラム及びアプリケーションデータをインストールすることを可能にする、スマートカード上にアプリケーションをロードするためのシステム及び方法を開示している。データの再ロードを行う代理店の認可の照合を可能にする、適当な暗号技術を基にした予防手段が講じられる。追加のアプリケーションのデータがスマートカードのメモリに入れられた後に、対応するプログラムデータの正当性がチェックされる。次いで、プログラムデータが構文及び有効型の制限に関してチェックされる。これらのチェック過程の内の１つで不一致が確認された場合、追加してロードされたデータは捨てられてメモリから削除される。上記の既知のシステムは、カードが最終ユーザに発行された後での、アプリケーションの管理された再ロードを可能にする。しかし、利用可能なフリーメモリ空間をもつスマートカードをサービスプロバイダに発行するカード発行者は、例えば、再ロードのためにアプリケーションを最終ユーザに提供する資格が後に与えられることになる、サービスプロバイダの全ての代理店の識別名をあらかじめ知らなければならない。このことは、例えばスマートカードのＲＯＭマスクに、自身の公開署名キーを配することにより再ロードされたデータの正当性のチェックを行えるようにするため、サービスプロバイダのある公開署名キーをカード発行者が証明することによりなされ得る。しかし、上記の既知のシステムにおいては、正当性及び適正な構文の他に、１枚のスマートカード上でサービスプロバイダにより占有されるメモリ容量をカード発行者がチェックできる可能性はない。
【０００６】
ドイツ国公開特許第１９７ １８ １１５ Ａ１号は、カード製造プロセスの終了後にスマートカードにカードアプリケーションをインストールすることを可能にする、スマートカード上にデータを再ロードするためのスマートカード及び方法を開示している。スマートカード上には、サービスプロバイダが自身のアプリケーションをロードすることができる収容格納スペースが提供されている。収容格納スペースには再ロード可能なアプリケーションの基本プログラム構造があらかじめ定義されており、再ロードされるのは専用データ及びキーのみである。ロード可能なアプリケーションの構造をあらかじめ定義することにより、様々なサービスプロバイダのデータのカード上での確実な分離が達成される。この特許は、未知のデータ構造をもつアプリケーションの再ローディングには対応しない。収容格納スペースを管理するためのあらかじめ定義されたアプリケーション構造の代替は概略的にも述べられていない。あらかじめ定義されたアプリケーション構造という概念は、範囲が不定のプログラムコードが後にカード上にロードされることになるような場合には利用できない。したがって、ドイツ国公開特許第１９７ １８ １１５ Ａ１号に見られる解決策は、アプリケーションの完全なプログラムコードを後に適用するには適していない。
【０００７】
本発明は、追加のアプリケーションをスマートカードにインストールするための方法を、上記従来技術の欠点を回避するスマートカードとともに提供するという課題に基づく。
【０００８】
上記課題は、本発明にしたがい請求項１に述べられる特徴をもつ方法及び独立請求項４の特徴をもつスマートカードにより解決される。上記課題は、請求項８に述べられる特徴をもつ方法及び独立請求項１２の特徴をもつスマートカードによっても、同様に解決される。一方では請求項１及び４の対象，他方では請求項８及び１２の対象は、それぞれ独立した発明上の重要性を有する。請求項１及び８にしたがう方法と請求項４及び１２の対象を結び付けることもできる。
【０００９】
請求項１にしたがう本発明の方法及び請求項８にしたがう方法のいずれによっても、ユーザが自身の権限で後に機能プログラムをカードにインストールできるようにすることが、有用な態様で、カード発行者に可能になる。あるスマートカードに追加のアプリケーションを再ロードするための許可がどのユーザまたはサービスプロバイダに与えられることになるかを、もはやカード発行者があらかじめ定める必要はない。それどころか、スマートカードが既に発行されてユーザが所有している場合でさえも、アプリケーションを再ロードすることが可能である。したがって本方法は、スマートカードのメモリリソースへの精確に定義し得る権利の、スマートカード発行者による第三者への契約による譲渡を実現するに特に適している。
【００１０】
本方法は高い保全基準を保証する。請求項１にしたがえば、アプリケーションの機能プログラムの再ロードを可能にするロードアプリケーションは、カード発行者によりカード上に組み込まれる主ローダーインターフェースを介してしかカードにインストールすることができないという事実によって、高い保全基準が得られる。主ローダーインターフェースには、特に、再ロードされた機能プログラムの物理的位置及び論理的作動範囲を正確に定めることを可能にするという利点がある。機能プログラムの再ロード可能性の創出は、さらに、対応するカードの製造を有用な態様で単純化する。
【００１１】
請求項８にしたがうバッジシステムは、再ロード可能なアプリケーションのために個々のユーザが利用できるメモリ空間の容量をカード発行者がチェックできるという利点を提供する。バッジシステムはさらに、アプリケーション関連コストシステムを構成する可能性を提供する。例えば、ユーザまたはサービスプロバイダがどれだけスマートカードのメモリデバイスを占有するかに応じるスマートカードの総コストの割当て分を、ユーザまたはサービスプロバイダに負担させるシステムを提供することができる。
【００１２】
提案される方法及びスマートカードの有用な発展形態及び適当な実施形態は、従属請求項に見ることができる。
【００１３】
本発明は、例として及び非限定的態様で、ある実施形態により図面を参照して以下でさらに詳細に説明される。
【００１４】
図１は、マイクロプロセッサを備えるスマートカード１０の一般的な構成を示す。主要な素子は、機能プログラムを実行することによりスマートカード１０に機能を与える中央処理装置２０である。中央処理装置２０は、３つのメモリ回路３０，４０，５０から構成される、中央処理装置２０に割り当てられたメモリデバイス１１０を有する。メモリ回路３０は、特に中央処理装置２０のオペレーティグシステムを収める、マスクプログラム型リードオンリメモリ(ＲＯＭ)３０を表し；メモリ回路５０は、中央処理装置２０に用いられる機能プログラムのプログラムコード及びデータを受け取るための、電気的に消去／書込可能なリードオンリメモリ(ＥＥＰＲＯＭ)５０を表し；メモリ回路４０は、機能プログラムの実行時に作業メモリとして使用するための、通常は揮発性の、ランダムアクセスメモリ(ＲＡＭ)４０を表す。カード機能は、メモリ回路３０，４０，５０に収められたプログラムコードまたはデータの総体から得られる。技術上必要または適当であれば、例えば、ＥＥＰＲＯＭのあるメモリアドレス領域がオペレーティングシステムのプログラムデータのために用いられるか、あるいはＲＯＭのメモリアドレス領域がアプリケーションデータに占有される場合のように、メモリ回路３０，４０，５０をオーバーラッピングモードで使用することができる。この理由のため、メモリ回路３０，４０，５０は、以降は常に、全体としてのメモリデバイス１１０と見なされることになろう。外部デバイスとのデータ交換のため、カード１０は同様に中央処理装置２０に接続される通信デバイス６０をさらに有する。図示されるカード１０の代表的なアプリケーションは、電子支払操作を実行することである。図１に示されるスマートカードの詳細な説明は、例えばランクル／エフィングの“ＩＣカードハンドブック”，カール・ハウザー出版(１９６６)，第２．３章に見ることができる。
【００１５】
本発明の第１の実施形態は、続いてアプリケーション機能プログラムをロードできるロードアプリケーションをカードにインストールすることはできるが、ロードアプリケーション自体は専用ローダーインターフェースによらなければセットアップできないという概念に基づく。図２は、第１のローダーインターフェース１２０を定めるただ１つの機能プログラム１２０のプログラムコードだけを初めに備える、スマートカードのメモリデバイス１１０の占有状態を簡略に示す。ローダーインターフェース１２０は、ロードアプリケーションを実現する、すなわち、後の、ロード機能を有してアプリケーション機能プログラムの再ロードを可能にするロードアプリケーションを実現する、機能プログラムのメモリデバイス１１０への再ロード専用に設計される。ローダーインターフェース１２０はスマートカードの基本装備の便宜的部分であり、カード発行者またはカード製造者によりカードに組み込まれる。以降は主ローダー(ＭＬ)と表記されるローダーインターフェース１２０は、メモリデバイス１１０の利用可能な総メモリ領域の一部を占有する。メインローダー１２０を実現する機能プログラムは特にスマートカードのオペレーティングシステムの一部とすることができ、したがってリードオンリメモリ(ＲＯＭ)３０のマスクプログラムされたコードの一部として実行される。総メモリ領域の他の部分は、最初はデータに占有されておらず、さらにロードされることになる別の機能プログラムのためのフリーメモリ１３０として利用できる。総フリーメモリ１３０の管理は、初め主ローダー１２０により実施される。管理デバイスとしてのこの機能においては、主ローダー１２０は特に、フリーメモリ１３０に再ロードされる予定の第１の機能プログラムのプログラムコードのロード及びアドレス空間の割当てを管理する。第１の再ロードされた機能プログラムのバイトコードだけでなく、他の全ての再ロードされた機能プログラムのバイトコードも、適切な電気信号の形態で通信デバイス６０を介して送られる。
【００１６】
主ローダー１２０は、定められた保全条件を満たす機能プログラムだけをメモリデバイス１１０にロードすることが好ましい。すなわち主ローダー１２０は、ロードを待っているプログラムコードが制作者により認可された形態のままであるか否か、あるいはロードアプリケーションの制作者が、例えばカード発行者からスマートカードリソースを利用する権利を取得していることにより、ロードアプリケーションの組込みを実際に認可されているか否かをチェックすることにより、ロードされる予定のロードアプリケーションの完全性及び正当性をロード中にチェックすることが好ましい。
【００１７】
図３は、ここでは主ローダーが１２０がロードアプリケーションを実現する第１の機能プログラム２１０をフリーメモリ１３０にロードしている、図２の後のメモリアレイを示す。ロードアプリケーション２１０は、以降専用ローダー２１０(ＤＬ)と表記される、第２のインターフェースを定める。ロードアプリケーション２１０は、引き続いて、別の機能プログラムのメモリデバイス１１０への組込みを可能にする。しかしロードアプリケーション２１０は、ロードアプリケーション２１０のために利用できる、定められた、拡張不可能な割当てアドレス空間２２０しか有することができない。割当アドレス空間２２０は、専用ローダー２１０のロード中に主ローダー１２０により専用ローダー２１０に配分される。そのような割当てにより、割当アドレス空間２２０の管理は、この目的のため主ローダー１２０と同様の管理デバイスとして必要な機能を有する、専用ローダー２１０に完全に移される。主ローダー１２０は、専用ローダー２１０に割り当てられたアドレス空間２２０の以後の利用に全く関与しない、すなわちアドレス空間２２０に全くアクセスしない。
【００１８】
主ローダー１２０は、フリーメモリアドレス空間の、専用ローダー２１０への引継ぎ及びアドレス空間２２０の割当てで占有されず、個々の区画１３０ａ，１３０ｂに細分された部分の管理権を未だに有する。
【００１９】
専用ローダー２１０は、主ローダー１２０と異なり、カードユーザがロードすることができる。専用ローダー２１０は、ユーザがその後、アプリケーションを実現する機能プログラムを割り当てられたアドレス空間２２０に、ユーザが選択したときに、ロードすることを可能にし、またそれが前提条件である。本明細書において“アプリケーション”とは、あるアプリケーション内におけるスマートカードの動作に必要な、スマートカードを動作させるための全てのデータ、コマンド、演算、状態、機構及びアルゴリズムの総体を指す。アプリケーションを実現する新規の機能プログラムが割当アドレス空間２２０に転送される場合に、専用ローダー２１０は、ロードされた機能プログラムのプログラムコードが割当アドレス空間２２０の外に配置されたデータコードに決してアクセスできないことを保証する。専用ローダー２１０に割り当てられるアドレス空間２２０は、割当アドレス空間２２０の外に配置されたメモリデバイス１１０の部分領域への物理的または論理的アクセスを防止する保護手段をもつ主ローダー１２０によりロード中に前もって提供しておくことができる。割当アドレス空間２２０は、専用ローダー２１０により再ロードされた機能プログラム間で分割される。新規のカードアプリケーションを実現するための機能プログラム２３０は、例えば、割当アドレス空間２２０の部分領域２３１に割り当てることができる。
【００２０】
メモリ領域を第三者に譲渡するために特に有利な上述した構造の形態において、メモリデバイス１１０の占有状態は図４に示されるように階層構造化され、再ロードされた機能プログラムには、定められた態様で、メモリデバイス１１０に既に存在している他の機能プログラムにアクセスできる可能性を与えることができる。図示された木構造は、様々な機能プログラムが加えられてきた時系列を表す。最小状態において、カードには主ローダー１２０だけが備えられる；主ローダー１２０は、初めはカードのメモリデバイス１１０にアクセスするだけである。主ローダー１２０により、専用ローダー２１０ａ，２１０ｂ，２１０ｃ及び汎用機能すなわち基本的カード機能を実現する機能プログラム２４０のロードが可能になる。主ローダー１２０がカード上におかれていれば、専用ローダー２１０及び機能プログラム２４０は主ローダー１２０によりいつでもロードすることができる；したがって専用ローダー２１０及び機能プログラム２４０は、主ローダーから出発する平行パスとして図４の木構造に示される。
【００２１】
新しくロードされる機能プログラム２１０，２４０は全て、主ローダー１２０によりロード中に許容性及び保全性についてチェックされる。チェック結果が肯定的である機能プログラムだけがロードされる。ロードされた専用ローダー２１０ａ，ｂ，ｃのそれぞれは、関係付けられた専用ローダーによる拡張ができない、不変の、位置が定められたメモリデバイス１１０内のアドレス空間２２０に、主ローダー１２０により割り当てられる。専用ローダー２１０を実現する機能プログラムは、必要な割当アドレス空間２２０の大きさに関する情報をもつことができる。主ローダー１２０が大きさ情報を全く受け取らない場合には、主ローダー１２０は標準のアドレス空間を割り当てる。
【００２２】
機能プログラム２１０，２４０がロードされるときに、主ローダー１２０は、相異なる専用ローダー２１０の割当アドレス空間２２０が論理的及び物理的に厳密に分離していること、及びある専用ローダー２１０が別の専用ローダー２１０の割当アドレス空間２２０に絶対にアクセスできないことを保証する。ロード及びアドレス空間割当て後、特定の割当てアドレス空間２２０に関わる制御は、関係付けられた専用ローダー２１０ａ，ｂ，ｃに完全かつ排他的に渡される。次いで、専用ローダー２１０のそれぞれは、別の機能プログラム、詳しくはカードアプリケーション、例えば金銭取引を安全に実行するための暗号キーまたは方法、を実現する機能プログラムを特定の割当アドレス空間２２０にロードすることができる。ロード中に、専用ローダー２１０はロードされる予定の機能プログラムに属するバイトコードを保全性及び許容性検査にかける。
【００２３】
専用ローダー２１０はさらに、新しくロードされる予定の機能プログラムを、既に存在している機能プログラムと所定の態様でリンクすることができる。ある機能プログラムのロード中に、専用ローダー２１０はメモリデバイス１１０内に既に存在する他の機能プログラムに対する可能なアクセス権及びリンクの可能性を定める。専用ローダー２１０は同様に、新しくロードされた機能プログラムの、既に存在するかまたはこれからロードされる機能プログラムへのアクセスまたはリンクを明確に防止する、制限を設けることができる。リンクまたはアクセス制限は専用ローダーの割当アドレス空間内に設けることができるが、他の専用ローダーの割当アドレス空間とのオーバーラップも有効である。
【００２４】
図４の例において、専用ローダー２１０ａは２つの機能プログラム３１０，３１１を、専用ローダー２１０ｂは３つの機能プログラム３２０，３２１，３２２を、また専用ローダー２１０ｃは別の機能プログラム３３０を、チェックし、許可して、割当アドレス空間２２０にロードしている。機能プログラム３１０，３１１，３２０，３２１，３２２，３３０の再ロードは、必要な専用ローダー２１０がカード上に存在していれば、いつでも、またいかなる順序でも、専用ローダー２１０を用いて行うことができる。図４において、再ロードされた機能プログラム３１０，３１１，３２０，３２１，３２２，３３０のそれぞれは、ロードを行う特定の専用ローダー２１０ａ，２１０ｂ，２１０ｃに応じて、それぞれの専用ローダーに割り当てられている。機能プログラム３１０，３１１，３２０，３２１，３２２，３３０は、作用した特定の専用ローダー２１０によりロード中に許可されているとすれば、相互にアクセスすることができるか、または互いにリンクすることができる。図４の例において、機能プログラム３３０は、例えば機能プログラム３２１または３１０にアクセスして、例えば機能プログラム３２１または３１０自体に与えられているプロシージャを利用することができる。他方で、機能プログラム３３０は機能プログラム３１１，または３２０に対するアクセスまたはリンクの可能性は全くない；これは、機能プログラム３３０への対応するアクセスまたはリンクの許可がないことにより阻止されており、全ての外部アクセスに対して阻止されている。
【００２５】
主ローダー１２０または専用ローダー２１０による新規の機能プログラムのロードに対して相補的に、メモリデバイス１１０に存在する機能プログラム２１０，２４０，３１０，３３０を削除することも基本的に可能である。削除権は、機能プログラムのロード中にローダー１２０，２１０により付与される。専用ローダー２１０の削除は、専用ローダー２１０に割り当てられたアドレス空間２２０内にいかなる機能プログラムももはや収められていない場合に限り可能である。主ローダー１２０は削除できない。
【００２６】
スマートカードのメモリ空間の第三者への危険度が低い譲渡を有効にサポートする手段は、主ローダー１２０及び／または専用ローダー２１０ａ，２１０ｂ，２１０ｃによる格納空間割当ての実行に対するバッジシステムの適用である。バッジはデジタル情報の形態を有する。バッジは専用ローダー２１０またはロードされる予定の機能プログラムに加えられ、特に、所望の割当アドレス空間２２０の大きさすなわちアドレス空間２２０において機能プログラムに必要なアドレス空間２３０の大きさに関するステートメントを含む。バッジが与えられた専用ローダーまたは機能プログラム２３０のロードに用いられるべきローダー１２０，２１０は、バッジを評価できなければならない。バッジシステムはカードの全てのローダー１２０，２１０に、あるいは個々のローダーだけに、組み込むことができる；図４に示されるような階層的ローダー構造はバッジシステムを組み込むための前提条件ではない。バッジはスマートカード発行者またはローダー１２０，２１０の制作者によりつくられる。バッジはまた、発行者あるいは、メモリデバイス１１０に新しくロードされる予定の専用ローダー２１０または新しくロードされる予定の機能プログラムの制作者からあらかじめ取得されていなければならない。このようにすれば、ローダー制作者／カード発行者はローダー１２０／２１０に割り当てられるアドレス空間の占有状態について必ず通知される。新しくロードされる予定の専用ローダーまたは機能プログラムに絶対に必要なアドレス空間だけを割り当てることにより、特に、メモリ空間節約型の割当アドレス空間利用をバッジ上の対応する情報を用いて保証することができる。
【００２７】
大きさ情報だけでなく、バッジは他の情報、例えばバッジの正当性のチェックを可能にする情報を含むことができる。バッジの正当性及び偽造防止性は暗号法により保証されることがさらに好ましい。この場合バッジ上の情報は暗号化されており、したがってバッジは、例えば、認可されたローダーがバッジを読むためのキーを得ることを可能にする初期化キーを含む。便宜的に、バッジは暗号を使用して実現されたデジタル署名をさらに含む。管理を容易にするため、例えば機能プログラム、アプリケーション識別子、データ等の表示を、バッジにさらに与えることができる。さらに、例えばアプリケーションを使用できる時間を制限するか、あるいはある機能プログラムを使用するために名付けられているだけのカードの識別子を提示することに、機能プログラムの操作性を限定する情報を組み入れることもできる。
【図面の簡単な説明】
【図１】
マイクロプロセッサをもつスマートカードの構成を示す
【図２】
主ローダーによるスマートカードのメモリデバイスの占有状態を簡略に示す
【図３】
専用ローダーのロード後のメモリデバイスの占有状態を示す
【図４】
主ローダー及びいくつかの専用ローダーを含む階層構造の略図を示す
【符号の説明】
１０    スマートカード
２０    中央処理装置
３０    ＲＯＭ
４０    ＲＡＭ
５０    ＥＥＰＲＯＭ
６０    通信デバイス
１１０    メモリデバイス
１２０    ローダーインターフェース
１３０    フリーメモリ空間
２１０    ロードアプリケーション
２２０    割当アドレス空間
２３０    アプリケーションプログラム