(57)【要約】【課題】ポータブルスマートカード装置、スマートカード装置を使用してプログラムコードを実行する方法、及びスマートカード装置への命令を含むコンピュータ可読記憶媒体を得る。【解決手段】スマートカード装置は、スマートカード機能をホストシステムに提示するとともに、プログラム実行コマンドをホストシステムから受け取るためのインタフェース、不揮発性メモリ、実行可能メモリ、プログラムコードを不揮発性メモリから実行可能メモリにコピーする内部コピーメカニズム等のコピーメカニズム、およびプログラムコードを実行するプログラム実行メカニズムを含む。適当なインタフェースとしては、ＩＳＯ７８１６準拠インタフェース、ＵＳＢインタフェース、およびＭＭＣインタフェースが挙げられる。スマートカード機能はＳＩＭ機能および／またはＵＳＩＭ機能を含む。任意に、コピーされた実行可能コードの部分のみが実行可能メモリにあるときに、プログラムコードの実行が開始される。【選択図】図４
2009506390.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムからコマンドを受け取るとプログラムコードを実行するポータブルスマートカード装置であって、
ａ）スマートカード機能を前記ホストシステムに提示するとともに、前記ホストシステムから前記コマンドを受け取るための少なくとも１つのインタフェースと、
ｂ）プログラム実行前に前記プログラムコードを記憶する不揮発性メモリと、
ｃ）プログラム実行中に前記プログラムコードの少なくとも部分を記憶する実行可能メモリと、
ｄ）前記プログラムコードの前記少なくとも部分を前記実行可能メモリにコピーする内部コピーメカニズムと、
を備えるスマートカード装置。
【請求項２】
前記不揮発性メモリは非実行可能メモリを含む、請求項１に記載のスマートカード装置。
【請求項３】
ｅ）内部データバスをさらに備え、
前記コピーメカニズムは、前記内部データバスを通してのみ前記コピーを行うように動作可能である、請求項１に記載のスマートカード装置。
【請求項４】
ｅ）前記プログラムコードの前記コピーされた部分を実行するプログラム実行メカニズムをさらに備える、請求項１に記載のスマートカード装置。
【請求項５】
前記スマートカード機能はＳＩＭ機能を含む、請求項１に記載のスマートカード装置。
【請求項６】
前記スマートカード機能はＵＳＩＭ機能を含む、請求項１に記載のスマートカード装置。
【請求項７】
前記スマートカード装置は複数の前記インタフェースを有し、第１の前記インタフェースはＩＳＯ７８１６準拠インタフェースであり、第２の前記インタフェースはＩＳＯ７８１６準拠インタフェース以外であり、前記コマンドは前記第２のインタフェースを通して受け取られる、請求項１に記載のスマートカード装置。
【請求項８】
前記第２のインタフェースはＵＳＢインタフェースである、請求項７に記載のスマートカード装置。
【請求項９】
前記第２のインタフェースはＭＭＣインタフェースである、請求項７に記載のスマートカード装置。
【請求項１０】
前記スマートカード装置は複数の前記インタフェースを有し、第１の前記インタフェースはＩＳＯ７８１６準拠インタフェースであり、第２の前記インタフェースはＩＳＯ７８１６準拠インタフェース以外であり、前記コマンドは前記第１のインタフェースを通して受け取られる、
請求項１に記載のスマートカード装置。
【請求項１１】
ホストシステムからコマンドを受け取るとプログラムコードを実行するポータブルスマートカード装置であって、
ａ）スマートカード機能を前記ホストシステムに提示するとともに、前記ホストシステムから前記コマンドを受け取るための少なくとも１つのインタフェースと、
ｂ）プログラム実行前に前記プログラムコードを記憶する不揮発性メモリと、
ｃ）プログラム実行中に前記プログラムコードの少なくとも部分を記憶する実行可能メモリと、
ｄ）前記プログラムコードの前記少なくとも部分の前記実行可能メモリへのコピーを行うコピーメカニズムと、
ｅ）前記コピーされた部分の第１のサブポーションのみが前記実行可能メモリにあるときに、前記プログラムコードの前記コピーされた部分の実行を開始するプログラム実行メカニズムと、
を備えるスマートカード装置。
【請求項１２】
ｆ）内部データバスをさらに備え、
前記コピーメカニズムは、前記内部データバスを通してのみ前記コピーを行うように動作可能である、請求項１１に記載のポータブルスマートカード装置。
【請求項１３】
前記コピーは前記ホストシステムを通しての外部コピーを含む、請求項１１に記載のポータブルスマートカード装置。
【請求項１４】
ｆ）前記実行中に、前記プログラムコードの前記コピーされた部分の少なくとも第２のサブポーションを前記不揮発性メモリから前記実行可能メモリにページングするページングメカニズムをさらに備える、請求項１１に記載のスマートカード装置。
【請求項１５】
プログラムコードを実行する方法であって、
ａ）スマートカード装置内に内部コピーメカニズムを含めること、
ｂ）前記内部コピーメカニズムを使用して、前記プログラムコードの少なくとも部分を前記スマートカード装置の不揮発性メモリから前記スマートカード装置の実行可能メモリにコピーすること、および
ｃ）前記スマートカード装置のインタフェースを通して実行コマンドを受け取ると、前記プログラムコードの前記コピーされた部分を実行すること、
を含む方法。
【請求項１６】
前記コピーすることは、前記スマートカード装置の非実行可能メモリからコピーすることを含む、請求項１５に記載の方法。
【請求項１７】
前記コピーすることは、前記スマートカード装置の内部データバスのみを使用して行われる、請求項１５に記載の方法。
【請求項１８】
前記スマートカード装置はＳＩＭ機能を含む、請求項１５に記載の方法。
【請求項１９】
前記スマートカード装置はＵＳＩＭ機能を含む、請求項１５に記載の方法。
【請求項２０】
前記コマンドはＩＳＯ７８１６準拠インタフェースを通して受け取られる、請求項１５に記載の方法。
【請求項２１】
前記コマンドは、ＩＳＯ７８１６準拠インタフェース以外のインタフェースを通して受け取られる、請求項１５に記載の方法。
【請求項２２】
前記コマンドはＵＳＢインタフェースを通して受け取られる、請求項２１に記載の方法。
【請求項２３】
前記コマンドはＭＭＣインタフェースを通して受け取られる、請求項２１に記載の方法。
【請求項２４】
プレロードされ保護された実行可能コードを配布する方法であって、
ａ）不揮発性メモリに記憶された前記プレロードされ保護された実行可能コードおよび前記プレロードされ保護された実行可能コードをコピーするコピーメカニズムを有する各スマートカード装置を少なくとも１人のスマートカードユーザに提供するステップと、
ｂ）該提供後、各前記スマートカードユーザから、前記各スマートカード装置のインタフェースを通して有効なユーザ認証証明および実行コマンドを受け取るステップと、
ｃ）前記各スマートカード装置の前記コピーメカニズムを使用して、前記プレロードされ保護された実行可能コードの少なくとも部分を前記各スマートカード装置の前記不揮発性メモリから前記各スマートカード装置の実行可能メモリにコピーするステップと、
ｄ）前記各スマートカード装置を使用して、前記プログラムコードの前記部分を実行するステップと、
を含む方法。
【請求項２５】
少なくとも１つの前記各スマートカード装置について、前記コピーすることは、内部データバスを通してコピーすることのみを含む、請求項２４に記載の方法。
【請求項２６】
少なくとも１つの前記各スマートカード装置について、前記ユーザ認証証明および前記実行コマンドのうちの少なくとも一方はホスト装置を介して受け取られ、前記コピーすることは、前記ホスト装置を通して外部コピーすることを含む、請求項２４に記載の方法。
【請求項２７】
プログラムコードを実行する方法であって、
ａ）スマートカード装置内にコピーメカニズムを含めること、
ｂ）前記コピーメカニズムを使用して、前記プログラムコードの少なくとも部分を前記スマートカード装置の不揮発性メモリから前記スマートカード装置の実行可能メモリにコピーすること、および
ｃ）前記スマートカード装置のインタフェースを通して実行コマンドを受け取ると、前記部分の第１のサブポーションのみが前記実効可能メモリにあるときに、前記プログラムコードの前記部分の実行を開始すること、
を含む方法。
【請求項２８】
前記コピーすることは、前記スマートカード装置の内部データバスを通してコピーすることのみを含む、請求項２７に記載の方法。
【請求項２９】
前記実行コマンドはホスト装置から受け取られ、前記コピーすることは、前記ホスト装置を通して外部コピーすることを含む、請求項２７に記載の方法。
【請求項３０】
前記実行することは、前記実行中に、前記プログラムコードの前記部分の少なくとも第２のサブポーションを前記不揮発性メモリから前記実行可能メモリにページングすることを含む、請求項２７に記載の方法。
【請求項３１】
コンピュータ可読記憶媒体に具現されるコンピュータ可読コードを有するコンピュータ可読記憶媒体であって、前記コンピュータ可読コードは、
ａ）スマートカード装置の不揮発性メモリに記憶されているプログラムコードを実行するコマンドを受け取り、
ｂ）前記実行可能プログラムコードの少なくとも部分を前記スマートカード装置の前記不揮発性メモリから前記スマートカード装置の実行可能メモリに内部コピーし、
ｃ）前記プログラムコードの前記部分を前記スマートカード装置により実行する、コンピュータ可読記憶媒体。
【請求項３２】
前記コンピュータ可読記憶媒体に具現されるコンピュータ可読コードを有するコンピュータ可読記憶媒体であって、前記コンピュータ可読コードは、
ａ）スマートカード装置の不揮発性メモリに記憶されているプログラムコードを実行するコマンドを受け取り、
ｂ）前記実行可能プログラムコードの少なくとも部分を前記スマートカード装置の前記不揮発性メモリから前記スマートカード装置の実行可能メモリにコピーし、
ｃ）前記部分のサブポーションのみが前記実行可能メモリにあるときに、前記プログラムコードの前記部分の前記スマートカード装置による実行を開始する、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はスマートカード装置に関し、特に、不揮発性メモリに記憶されているアプリケーションコードを実行するように動作可能なスマートカード装置に関する。
【背景技術】
【０００２】
＜スマートカード装置＞
本明細書において「スマートカード」なる用語は、都合よく携帯でき、特に許可された外部装置と安全にインタフェースし、かつデータを交換することが可能な能動的内部ロジックデバイスを含む任意の装置を示す。スマートカードは、「集積回路カード」または「チップカード」と呼ばれることもある。一般に、スマートカードは、メモリ、関連するロジックメモリを有するマイクロコントローラ、および実行可能コードを含む。
【０００３】
多くのスマートカード装置の１つの目立つ特徴は、オペレーティングシステムおよびセキュリティロジックにより制御されるインタフェースへのアクセスを制限することにより、記憶されたデータを不正アクセスおよび操作から保護できることである。このため、データがスマートカード外部の装置から常に読み出されないように機密データをスマートカードに書き込み、記憶することができる。国際標準化機構（ＩＳＯ）が、ＩＳＯ７８１６標準群等のスマートカード向けの機械的および電気的な仕様を公開している。集積回路カードの標準に基づくスマートカードは、一般に、妥当な場合にはそれに準拠するが、そこに必ずしも記載されていない特徴も含む。スマートカードは、一般に、含まれるメモリ量により、集積回路（ＩＣ）、複雑な処理に対応する能力、暗号化方式、電気的インタフェース、および機械的なレイアウトで区別される。
【０００４】
スマートカードを適用できる目的としては、公衆電話カード、店頭（ＰＯＳ）端末および現金自動預払機（ＡＴＭ）で使用される銀行カード、セットトップボックスでの有料放送テレビ、および加入者識別モジュール（ＳＩＭ）カードをＧＳＭ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ）端末で実施している無線テレコム操作者が挙げられるが、これらに限定されない。ＳＩＭカードは、（ａ）小型フォームファクタ、（ｂ）電源が切られた状態で一回だけ設置されること、および（ｃ）、商業的重要性により特に関心が高い。汎用移動体通信システム（ＵＭＴＳ）が第三世代（３Ｇ）欧州携帯電話技術として導入されることに伴い、ＵＳＩＭ（ＵＭＴＳ加入者識別モジュールまたは汎用加入者識別モジュール）と呼ばれるＳＩＭカードの新しいバージョンがＵＭＴＳ移動体ネットワークに導入されている。ＵＳＩＭカードは、ＵＭＴＳ加入操作者ネットワークにアクセスできるようにする関連情報を含む。ＳＩＭカードおよびＵＳＩＭカードは両方ともスマートカードカテゴリに入る。
【０００５】
携帯電話とのスマートカードの併用は、スマートカードの国際的な普及を促進するに当たり、特に重要であった。ＧＳＭ電話はスマートカードをアクセス媒体として利用し、その理由は、部分的には、スマートカードでは携帯電話ネットワークにアクセスする際に高度のセキュリティの実現が可能なこと、および部分的には、ネットワーク操作者およびサービスプロバイダが電話とサービスとを個別に販売できることから、スマートカードが携帯電話のマーケティングに当たり新しい可能性ひいては主要な利点を提供することである。
【０００６】
図１は、従来技術によるスマートカード構造の例を示す。カード（４）は、ホストシステムを接続するための、ＩＳＯ標準により規定される１組のピン（１）を含み、ピン（１）は、クロック、データ転送のためのデータ信号、リセット信号、および電源ピンを含む。ＣＰＵ（３）が、バスインタフェース（２）を介してピン（１）に接続される。ＣＰＵ（３）は、実行可能コードを記憶するＲＯＭ（７）のエリアおよび主に構成可能データ（例えば、秘密暗号鍵）の記憶に使用されるＥＥＰＲＯＭコンポーネント（６）にアクセスすることができる。大量のデータおよび／または要求の厳しいアプリケーションをサポートするために、フラッシュメモリの形でメモリ容量の増強を提供することもできる。
【０００７】
図２Ａは、従来技術によるＩＳＯ準拠スマートカード（４１）およびカードとのインタフェースに使用される８つの端子（４０）の組の機械的なレイアウトを示す。ＩＳＯ標準には５本ピンしか規定されていないが、３本のピンが追加されて、将来使用するために確保される。
【０００８】
図２Ｂは、従来技術によるＳＩＭカードまたはＵＳＩＭカードの物理的なフォームファクタを示す。
【０００９】
ＩＳＯインタフェースの他に、他のスマートカードインタフェースが規定されている。これら追加のインタフェースは、通常、高速データ転送を提供し、主に大容量メモリカードと併せて使用されるためのものである。典型的なスマートカードインタフェースとしては、セキュアデジタル（ＳＤ）、マルチメディアカード（ＭＭＣ）、および無線／コンタクトレスインタフェースが挙げられるが、これらに限定されない。最近、汎用シリアルバス（ＵＳＢ）が、スマートカード向けの別の潜在的なインタフェースとして示唆されている。新しいインタフェースは、確保されているＩＳＯピンを使用するか、またはＩＳＯ標準ピンに加えて、またはこれに代えて新しいピンセットを規定する。
【００１０】
図３は、従来技術による高度スマートカードの例示的な構造を示す。この例では、２つの内部バス（１４）および（１５）により、標準ＩＳＯインタフェース（１０）を介してＣＰＵ（１３）へ、および二次ＵＳＢインタフェース（１１）を使用してフラッシュメモリモジュール（１８）への独立アクセスが可能である。ＲＯＭ（９）が、オペレーティングシステムおよびアプリケーションコードの記憶に使用される。
【００１１】
別個のバスインタフェース（１６）および（１７）により、カードリソースへの独立アクセスが可能である。この構造の下では、２つの別個のアプリケーションがカードに独立してアクセスすることができる。例えば、ＭＰ３プレーヤが一体化された携帯電話が、ＵＳＢバス（１１）を介して内部フラッシュメモリにアクセスして音楽データにアクセスすることができ、その間に、セルラローミングアプリケーションが、ＩＳＯバス（１０）を使用してＳＩＭ機能からのローミング関連情報にアクセスすることができる。
【００１２】
近代のスマートカードのオペレーティングシステムでは、ユーザへのカード発行後、新しいアプリケーションをカードにアップロードすることが可能である。本明細書における「発行者」なる用語は、スマートカードを特定の目的（複数可）で配布する任意のエンティティを示す。本明細書における「ユーザ」なる用語は、特定のスマートカードを使用する、または使用しようとする任意の人を指す。本明細書における「認可ユーザ」なる用語は、許可が与えられている人、または特定の目的あるいは目的の組でのスマートカードの使用が「認可」されている人を指す。多くの場合、スマートカードの認可ユーザはスマートカードの所有者であるが、所有者と認可ユーザが同じである必要はない。
【００１３】
これら近代のスマートカードオペレーティングシステムにより提供される新しい柔軟性が、全く新しい応用分野を開く。例えば、インターネット商取引および支払いで不可欠なパーソナルセキュリティモジュールが、スマートカードの使用を通して信用できるものになる。こういったセキュリティモジュールは、個人鍵を安全に記憶し、高性能暗号アルゴリズムを実行することができる。セキュリティ関連タスクは、暗号コプロセッサを有するマイクロプロセッサによりエレガントに行うことができる。
【００１４】
スマートカード内に提供されるメモリ量は、新技術が導入されて、大容量メモリを小型ダイ上に製造できるようになったことから増大している。メモリ技術の強化により、スマートカードは、大容量フラッシュメモリをカード自体に組み込むことにより、より多くのアプリケーションをサポートすることが可能になっている。
【００１５】
マルチメディア機能を増強させた携帯端末が利用可能になるにつれ、かつサービスプロバイダが広帯域携帯サービスの実施を開始するにつれて、安全でスケーラブル、かつ構成可能な大容量ストレージへのニーズが高まりつつある。高度大容量（Ｕ）ＳＩＭカードの一例が、Ｍシステムズ（Ｍ−Ｓｙｓｔｅｍｓ’）（カリフォルニア州ニューアーク）のＭｅｇａＳＩＭ（商標）カードモジュールである。ＭｅｇａＳＩＭを用いて、（Ｕ）ＳＩＭカードベンダーは、ＭＭＳ、ＭＰ３、およびビデオクリップのダウンロード、完全な個人情報管理（ＰＩＭ）機能、ならびに高解像度画像ストレージ等の種々の高度なモバイルサービスを可能にする（Ｕ）ＳＩＭカードを携帯操作者カスタマに提供することができる。
【００１６】
大量のメモリを要求する新しいアプリケーションの出現に伴い、ハイエンド携帯電話は、こういったアプリケーションが必要とするデータを保持するメモリカード専用のインタフェースを提供し始めている。典型的なアプリケーションとしては、静止画像および／またはビデオクリップ、ＭＰ３ファイル、およびマルチメディアメッセージングサービス（ＭＭＳ）メッセージの記憶に大量のメモリを必要とする一体型カメラが含まれる。これまで、メモリカードは数メガバイト（ＭＢ）のメモリを提供し、（Ｕ）ＳＩＭカードはたった数キロバイト（ＫＢ）しか提供していなかった。数メガバイトのメモリを含むＭｅｇａＳＩＭの導入に伴い、高度アプリケーションは（Ｕ）ＳＩＭカードをレガシー使用ならびにマルチメディア装置およびアプリケーションの大量のデータの記憶の両方に利用することができる。
【００１７】
まとめると、スマートカードで実行される高度オペレーティングシステムの出現、デジタル静止画像またはビデオ映像（ＭＰＥＧファイル）、音楽（ＭＰ３ファイル）、ゲーム等のマルチメディアアプリケーションの出現、ならびにスマートカードへのより大容量のメモリの必要性により、移動体ネットワーク操作者およびサービスプロバイダに種々の新しい機会が開かれる。
【００１８】
＜スマートカード装置を使用しての実行可能コードの実行＞
多くの大容量メモリカードでは、提供されるメモリの大半は、ＮＡＮＤフラッシュ技術に基づいた非ＸＩＰ（ｅＸｅｃｕｔｅ  Ｉｎ  Ｐｌａｃｅ）フラッシュメモリである。この種類のメモリは、ＥＥＰＲＯＭまたはＮＯＲフラッシュ技術に基づく典型的な不揮発性ＸＩＰメモリよりもはるかに安価かつ高密度であり、より高い書き込み／消去性能を提供する。
【００１９】
現在、実行可能コードはＲＯＭに記憶されるか、またはＮＯＲフラッシュ技術に基づくフラッシュメモリに埋め込まれ、これらは両方ともコードを直接実行することが可能である。したがって、非ＸＩＰフラッシュメモリを使用すると、オンボードプロセッサがＮＡＮＤフラッシュ技術に基づいた内部大容量メモリストレージからコードを直接実行することが妨げられる。このメモリストレージエリアに常駐するアプリケーションを実行するには、アプリケーションコードを非ＸＩＰフラッシュメモリエリアからＸＩＰメモリエリアにコピーしなければならない。コードを移動するには、外部装置またはホスト装置を通しての外部コピーが必要であり、外部装置がコードを読み取り、そしてスマートカード内の実行可能メモリエリアにそのコードを再び書き込む。このコピーメカニズムは、スマートカードインタフェースを介してデータを転送し、これは、不都合なことに、比較的低速性能を暗示する。さらに、上記メカニズムは、実行可能コードを外部スマートカードインタフェース上で露出させ、非ＸＩＰメモリからＸＩＰメモリに転送されている間、コードはモニタおよび／またはコピーに曝される。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
スマートカード装置の不揮発性メモリに記憶された実行可能コードを実行する高性能で安全なスマートカード装置に対する継続したニーズがある。
【課題を解決するための手段】
【００２１】
上記ニーズは、本発明のいくつかの態様により満たされる。
【００２２】
これより、ホストシステムからコマンドを受け取るとプログラムコードを実行するポータブルスマートカード装置を初めて開示する。ここに開示するスマートカード装置は、スマートカード機能をホストシステムに提示するとともに、ホストシステムからコマンドを受け取るための少なくとも１つのインタフェースと、プログラム実行前にプログラムコードを記憶する不揮発性メモリ（例えば、非ＸＩＰメモリ）と、プログラム実行中にプログラムコードの少なくとも部分を記憶する実行可能メモリと、プログラムコードの少なくとも部分をコピーする内部コピーメカニズムと、を含む。
【００２３】
ここに開示する、本発明の特定の実施形態により提供されるスマートカード装置は内部コピーメカニズムを有し、それにより、外部装置を通して実行可能コードをコピーする必要性をなくすことに留意されたい。外部装置を通してコードをコピーするという回り道を低減するか、またはなくすことにより、データをスマートカードインタフェースのいずれでも露出する必要がないため、非ＸＩＰメモリからＸＩＰメモリへのコードの転送が高速になるとともにより安全になる。
【００２４】
いくつかの実施形態によれば、スマートカード装置は内部データバスを含み、内部コピーメカニズムは、内部データバスを通しての内部コピーを行う。いくつかの実施形態では、内部コピーメカニズムは、内部データバスを通してのみ内部コピーを行う。
【００２５】
いくつかの実施形態によれば、スマートカード機能はＳＩＭ機能および／またはＵＳＩＭ機能を含む。
【００２６】
ここに開示するスマートカード装置の例示的な一用途は、携帯端末に関する。本発明の特定の実施携帯により提供されるスマートカード装置を使用することで、モバイルサービスプロバイダは、アプリケーションを（Ｕ）ＳＩＭカードの非ＸＩＰメモリエリアにプレロードすることができ、（Ｕ）ＳＩＭカードは多くのアプリケーションを保持するのに十分な容量である。こういったアプリケーションは、スマートカードメモリ内で、モバイルサービスプロバイダの顧客によるコピーまたは操作から保護された状態に保たれる。
【００２７】
いくつかの実施形態によれば、ここに開示する実行可能コードの内部コピーは、１つまたは複数の追加コマンドをスマートカードコマンドポートフォリオに追加することに基づく。こういった新しいコマンドのうちの１つまたは複数が、スマートカードプロセッサに、非実行可能メモリ等の不揮発性メモリからスマートカード内部のＸＩＰメモリへのコピー動作を行うように命令する。
【００２８】
いくつかの実施形態によれば、不揮発性メモリは非実行可能メモリを含む。
【００２９】
ここに開示するスマートカード装置に提供されるインタフェースの種類またはインタフェースの数に対して特定の制限はない。適当なインタフェースとしては、ＩＳＯ７８１６準拠ＵＳＢインタフェース、７８１６準拠インタフェース以外の任意のインタフェース、ＵＳＢインタフェース、およびＭＭＣインタフェースが挙げられるが、これらに限定されない。
【００３０】
いくつかの実施形態では、スマートカード装置は複数のインタフェースを含み、第１のインタフェースはＩＳＯ７８１６準拠インタフェースであり、第２のインタフェースはＩＳＯ７８１６準拠インタフェース以外である。特定の実施形態では、コマンドは第２のインタフェースを通して受け取られる。別法として、コマンドは第１のインタフェースを通して受け取られる。
【００３１】
プログラムコードの部分の少なくともいくらかを実行可能メモリにコピーすると、プログラムコードの実際の実行を開始することができる。いくつかの実施形態では、装置は、プログラムコードのコピーされた部分を実行する、内部プロセッサ等のプログラム実行メカニズムをさらに含む。
【００３２】
特定のいずれの理論にも縛られることを望まずに、プログラムコードの部分のいくらかの部分だけが実行可能メモリにあるときにプログラム実行を開始することは、プログラムのサイズが利用可能な実行可能メモリ量を超える状況で特に有用であることに留意されたい。プログラム実行の開始に続き、実行可能メモリにないプログラムコードの必要な部分を、ページフォールト後等の必要に応じて実行可能メモリにロードまたはコピーすることができる。
【００３３】
これより、ホストシステムからコマンドを受け取るとプログラムコードを実行するポータブルスマートカード装置を初めて開示する。本明細書に開示するスマートカード装置は、スマートカード機能をホストシステムに提示するとともに、ホストシステムからコマンドを受け取るための少なくとも１つのインタフェースと、プログラム実行中にプログラムコードを記憶する不揮発性メモリ（例えば、非ＸＩＰメモリ）と、プログラム実行中にプログラムコードの少なくとも部分を記憶する実行可能メモリと、実行可能メモリへのプログラムコードの少なくとも部分のコピーを行うコピーメカニズムと、コピー部分の第１のサブポーションのみが実行可能メモリにあるときに、プログラムコードのコピーされた部分の実行を開始するプログラム実行メカニズムと、を含む。
【００３４】
いくつかの実施形態によれば、スマートカード装置は内部データバスを含み、内部コピーメカニズムは、内部データバスを通して内部コピーを行う。いくかの実施形態では、内部コピーメカニズムは、内部データバスのみを通して内部コピーを行う。
【００３５】
別法として、コピーメカニズムにより行われるコピーは、ホストシステムを通しての外部コピーを含む。
【００３６】
いくつかの実施形態によれば、スマートカード装置は、実行中に、プログラムコードのコピーされた部分のうちの少なくとも第２のサブポーションを不揮発性メモリ（例えば、非ＸＩＰメモリ）から実行可能メモリにページングするページングメカニズムをさらに含む。いくつかの実施形態では、ページングされたコードは、必要に応じて、例えば、ページフォールト後に、不揮発性メモリ（非ＸＩＰメモリ等）から実行可能メモリにロードまたはコピーされる。したがって、プログラムコードの所与の実行中に、すべての「ページングされた」コードが必ずしも実行可能メモリにコピーまたはロードされるわけではない。
【００３７】
これより、スマートカード装置を使用してプログラムコードを実行する方法を初めて開示する。ここで開示する方法は、スマートカード装置内に内部コピーメカニズムを含めること、内部コピーメカニズムを使用して、プログラムコードの少なくとも部分をスマートカード装置の不揮発性メモリ（例えば、非ＸＩＰメモリ）からスマートカード装置の実行可能メモリにコピーすること、スマートカード装置のインタフェースを通して実行コマンドを受け取ると、プログラムコードのコピーされた部分を実行すること、を含む。
【００３８】
いくつかの実施形態によれば、コピーすることは、スマートカード装置の非実行可能メモリからスマートカード装置の実行可能メモリにコピーすることを含む。
【００３９】
いくつかの実施形態によれば、コピーすることは、スマートカード装置の内部データバスのみを使用して行われる。
【００４０】
実行コマンドを受け取ることができるインタフェースに対して特定の制限はない。適当なインタフェースとしては、ＩＳＯ７８１６準拠インタフェース、７８１６準拠インタフェース以外の任意のインタフェース、ＵＳＢインタフェース、およびＭＭＣインタフェースが挙げられるが、これらに限定されない。
【００４１】
これより、スマートカード装置を使用してプログラムコードを実行する方法を初めて開示する。ここで開示する方法は、スマートカード装置内に内部コピーメカニズムを含めること、内部コピーメカニズムを使用して、プログラムコードの少なくとも部分をスマートカード装置の不揮発性メモリ（例えば、非ＸＩＰメモリ）からスマートカード装置の実行可能メモリにコピーすること、スマートカード装置のインタフェースを通して実行コマンドを受け取ると、部分のいくらかのうちの第１のサブポーションのみが実行可能メモリにあるときに、プログラムコードのコピーされた部分の実行を開始すること、を含む。
【００４２】
いくつかの実施形態によれば、実行コマンドはホスト装置から受け取られる。
【００４３】
いくつかの実施形態によれば、コピーすることは、スマートカード装置の内部データバスを通して内部コピーすることのみを含む。
【００４４】
別法として、コピーすることは、ホスト装置を通して外部コピーすることを含む。
【００４５】
いくつかの実施形態によれば、実行することは、実行中に、プログラムコードの部分の少なくとも第２のサブポーションを不揮発性メモリから実行可能メモリにページングすることを含む。
【００４６】
これより、プレロードされ保護された実行可能コードを配布する方法を初めて開示する。ここで開示する方法は、少なくとも１人のスマートカードユーザに、不揮発性メモリに記憶されたプレロードされ保護された実行可能コードおよびプレロードされ保護された実行可能コードをコピーするためのコピーメカニズムを有する各スマートカード装置を提供するステップと、提供後、各スマートカード装置のインタフェースを通して各スマートカードユーザから有効なユーザ認証証明およびコマンドを受け取るステップと、各スマートカード装置のコピーメカニズムを使用して、プレロードされ保護された実行可能コードの少なくとも部分を書くスマートカード装置の不揮発性メモリから各スマートカード装置の実行可能メモリにコピーするステップと、各スマートカード装置を使用してプログラムコードの部分を実行するステップと、を含む。
【００４７】
いくつかの実施形態によれば、少なくとも１つの各スマートカード装置で、コピーすることは内部データバスを通してコピーすることのみを含む。
【００４８】
いくつかの実施形態によれば、少なくとも１つの各スマートカード装置で、ユーザ認証証明および実行コマンドのうちの一方がホスト装置を介して受け取られ、コピーすることは、ホスト装置を通して外部コピーすることを含む。
【００４９】
これより、コンピュータ可読記憶媒体に具現されるコンピュータ可読コードを有するコンピュータ可読記憶媒体であって、コンピュータ可読コードは、スマートカード装置の不揮発性メモリに記憶されているプログラムコードを実行するコマンドを受け取り、実行可能プログラムコードの少なくとも部分をスマートカード装置の不揮発性メモリからスマートカード装置の実行可能メモリに内部コピーし、およびプログラムコードの部分をスマートカード装置により実行するコードである、コンピュータ可読記憶媒体を初めて開示する。
【００５０】
これより、これより、コンピュータ可読記憶媒体に具現されるコンピュータ可読コードを有するコンピュータ可読記憶媒体であって、コンピュータ可読コードは、スマートカードの不揮発性メモリに記憶されているプログラムコードを実行するコマンドを受け取り、実行可能プログラムコードの少なくとも部分をスマートカード装置の不揮発性メモリからスマートカード装置の実行可能メモリにコピーし、および部分のサブポーションのみが実行可能メモリにあるときに、スマートカード装置によるプログラムコードの部分の実行を開始するコードである、コンピュータ可読記憶媒体を初めて開示する。
【００５１】
これらおよびさらなる実施形態が以下の詳細な説明および例から明らかになろう。
【発明を実施するための最良の形態】
【００５２】
本発明の実施形態は、プログラムコードを不揮発性メモリから実行可能メモリにコピーするコピーメカニズムを含むスマートカード装置を提供する。さらに、ここに開示するスマートカード装置でプログラムコードを実行する方法は、プログラムコードを不揮発性メモリから実行可能メモリにコピーすることを含む。通常、プログラムコードのコピー元の「不揮発性メモリ」は非実行可能メモリ、すなわち非ＸＩＰメモリであるが、これは特定の限定として解釈されるべきではない。同様に、本発明のいくつかの実施形態において「実行可能メモリ」と呼ばれるものは不揮発性メモリであるが、これも特定の限定ではないことに留意されたい。
【００５３】
これより、特定の実施形態例に関して本発明を説明する。本発明が開示される実施形態例に限定されないことを理解されたい。説明するスマートカード装置およびスマートカード装置を使用してアプリケーションコードを実行する方法のあらゆる特徴が、添付の特許請求の範囲のうちの任意の特定の１つに請求されるように本発明を実施するために必要なわけではないことも理解されたい。装置の各種要素および特徴は、本発明を完全に可能にするために説明されている。本開示全体を通して、プロセスまたは方法が図示または説明される場合、方法のステップは、あるステップが先に実行される別の層轍鮒に依存することが文脈から明らかな場合以外、任意の順序または同時に実行してよいことも理解されたい。
【００５４】
図４は、標準ＩＳＯインタフェース（２７）およびＵＳＢの形の高速インタフェース（２８）を有するスマートカード構造の例である。高速インタフェースは主に、スマートカード内部大容量メモリストレージへの／からの大容量データ転送に使用され、ＩＳＯインタフェースはレガシーモバイル（Ｕ）ＳＩＭサービスに使用される。図４に示す装置は、ＩＳＯ７８１６プロトコルを含むがこれに限定されない、スマートカードによくある特定のプロトコルを使用して１つまたは複数のインタフェースを介して外部装置またはホスト装置と通信する。この例では、オペレーティングシステムおよびプレロードされるアプリケーションは、ＲＯＭではなくＸＩＰフラッシュメモリに存在する。
【００５５】
いくつかの実施形態によれば、コードまたは特定のアプリケーションを実行するコマンド（２０）が、スマートカード外部インタフェースの１つを介して外部装置またはホスト装置からＣＰＵ（２３）に送られ、非ＸＩＰフラッシュメモリ（２２）内のある所望のアプリケーションの少なくともいくらかをスマートカードの内部ＸＩＰメモリ、例えばＸＩＰフラッシュ（２９）にコピーするようにスマートカード装置に命令する。任意のスマートカードインタフェースを介してコマンドを送ってよいことに留意されたい。
【００５６】
コマンドは、大容量メモリストレージエリア内にあるアプリケーションファイルを参照し、アプリケーションの実行を開始するか、または単にアプリケーションファイルの少なくとも部分をコピーするようにＣＰＵ（２３）に命令する。任意に、スマートカードオペレーティングシステムは、アプリケーションを受け取る余地がＸＩＰメモリエリアにあることの確認も行い、アプリケーションファイルをコピーするために余地を作るために古いアプリケーションまたは他のデータを検出もする。いくつかの実施形態では、スマートカードＣＰＵは、別個のコマンドの受信により、ＸＩＰメモリにすでにロードされているアプリケーションの実行を開始する。
【００５７】
実行コマンドおよび／またはコピーコマンドを受け取った（ステップ１１０）後、ＣＰＵ（２３）は、アプリケーションファイルの少なくとも部分をスマートカードの非ＸＩＰメモリ（２２）から読み取り（ステップ１１２）、アプリケーションの少なくとも部分を実行可能メモリまたはＸＩＰメモリ、例えばＸＩＰフラッシュ（２９）にコピーする（ステップ１１４）。いくつかの実施形態では、ファイルコピー動作は、内部バス（２６）を使用してデータを転送する内部コピーを含む。これに代えて、またはこれに加えて、いくつかの実施形態は、ホスト装置（図示せず）を通しての外部コピーを提供する。
【００５８】
アプリケーションコードの少なくとも部分をＸＩＰにコピーした後、ＣＰＵ（２３）を含むスマートカード装置のプログラム実行メカニズムは、ＸＩＰフラッシュ（２９）からのアプリケーションの実行を開始することができる。別法として、プログラム実行を遅らせ、先に説明したように別個の専用コマンドを受け取った後にアプリケーションを実行してもよい。
【００５９】
本明細書において使用する、実行可能メモリにあるアプリケーションまたはプログラムコードの「実行」は、実行可能メモリ内に記憶されているアプリケーションまたはプログラムコードの少なくともいくつかの命令の実行を含み、任意の所与の時点で実行可能メモリ内に記憶されているすべての命令の実行に限定されない。
【００６０】
図５Ａ〜図５Ｃは、本発明の例示的な実施形態によるスマートカード装置でコードをコピーして実行する方法を説明するフローチャートを提供する。これより図５Ａを参照すると、明示的なコピーコマンドが、スマートカードのインタフェースを介してホスト装置から受け取られる（２００）。任意に、オペレーティングシステムは、アプリケーションがＸＩＰメモリにすでに存在しているか否かを調べる（２１０）。アプリケーションがＸＩＰメモリに存在しない場合、アプリケーションコードのいくらかまたはすべてが不揮発性メモリ（例えば、非ＸＩＰメモリ）から実行可能メモリ（ＸＩＰメモリ）にコピーされる（２０２）。実行コマンドをホスト装置から受け取ると（２２０Ａ）、アプリケーションコードが実行される（２０４）。実行コマンドを受け取ってよい（２２０Ａ）時点に制限がなく、適当な時点としては、コピー（２０２）の直後または別法として実行が後の時点に遅れる時間遅延後が挙げられることに留意されたい。
【００６１】
図５Ｂは、本発明のいくつかの実施形態を説明するフローチャートを提供する。図５Ｂに示すように、コピーコマンドおよび実行コマンドの両方が、インタフェースを介してホスト装置（２３０）から受け取られるが、これら２つのコマンドを単一のコマンドとして実施してアプリケーションコードをコピーして実行してよいことが認められよう。任意に、アプリケーションがＸＩＰメモリにあるか否かを調べた（２１０）後、アプリケーションが実行される（２０４）。
【００６２】
図５Ｃは、本発明のいくつかの実施形態を説明するフローチャートを提供する。図５Ｃに示すように、実行コマンドがホスト装置から受け取られる（２２０Ｂ）。図５Ｃに説明されるいくつかの実施形態によれば、アプリケーションをＸＩＰメモリにコピーするという実際の明示的なコマンドは受け取られない。任意に、アプリケーションがＸＩＰメモリにあるか否かが調べられた後（２１０）、アプリケーションが実行される（２０４）。
【００６３】
いくつかの実施形態では、スマートカード内のＸＩＰメモリの量は制限され、所与の時点で利用可能なＸＩＰメモリ量を超えるサイズ、またはＸＩＰメモリの総量を超えるサイズを有するアプリケーションを実行したい。内部スマートカードプロセッサがこれら大きなアプリケーションを実行できるようにするために、本発明の特定の実施形態は、任意に、高度ページングメカニズムを含む。したがって、本発明のいくつかの実施形態によれば、実行は、アプリケーションの実行可能ノードの第１のサブポーションのみが実行可能メモリにあるときに開始される。実行開始後、コピーされた実行可能コードの少なくとも第２のサブポーションが実行可能メモリにページングされる（２０６）。
【００６４】
いくつかの実施形態では、この高度ページングメカニズムは、スマートカードオペレーティングシステムの一部として実施される。こういった実施形態では、コピーメカニズムがまず、アプリケーションコードの部分のみをＸＩＰメモリにコピーする。スマートカードプロセッサがＸＩＰメモリにロードされていないコードエリアにアクセスする必要性が生じるとすぐに、アプリケーションの実行が中断され、所望のコードがスマートカードのオペレーティングシステムにより必要に応じてＸＩＰメモリページにコピーされ、現在必要とされていない別のコードまたはＸＩＰメモリ内の他のデータに上書きされる。効率的なページングメカニズムを提供するために、ページングは、新しいページが必要になるとすぐにスマートカードプロセッサを中断するロジックをスマートカードハードウェアにより実施することで、または別法として直接メモリアクセス（ＤＭＡ）メカニズムを使用してコピー動作を実行することでサポートすることができる。
【００６５】
いくつかの実施形態では、ページングメカニズムは、スマートカードオペレーティングシステムによりまだサポートされていない場合にはアプリケーションコードと統合され、この場合、アプリケーションは、可能な限り最も効率的な方法でページングを本質的にサポートするように設計される。
【００６６】
図６は、ページングメカニズムを使用して実行可能コードをページングする例示的な一実施態様を示す。アプリケーションが、非ＸＩＰメモリ等の不揮発大容量メモリストレージエリア（３１）にある。このアプリケーションを実行する要求をスマートカードプロセッサが受け取る。アプリケーションを実行するために、スマートカードプロセッサは、アプリケーションを非ＸＩＰメモリからＸＩＰメモリエリア（３０）にコピーしなければならないが、ＸＩＰメモリ（３０）の空き容量は、アプリケーション全体を収容するのに不十分である。この制約を解消するために、アプリケーションはセグメント（３３、３４、３５）に分割される。メインセグメント（３５）は、基本的な機能および場合によってはページング関連機能を含み、ＸＩＰメモリエリア（３６）にコピーされる。アプリケーション（３３）のさらなるセグメントは、スワップ可能エリア（このエリア内のコードを後で必要になったときに別のアプリケーションコードセグメントと交換できることを意味する）として使用されるＸＩＰメモリエリア（３２）の部分にオンデマンドでコピーされる。こうして、スマートカードオペレーティングシステムは、ＸＩＰメモリエリアからアプリケーションの実行を開始することができる。
【００６７】
アプリケーションが、ＸＩＰメモリエリアにロードされていないセグメント、例えばセグメント（３４）にあるデータまたはコードを参照する時点に達するとすぐに、スマートカードオペレーティングシステムは、要求されたセグメント（３４）をＸＩＰメモリエリア（３２）のスワップ可能エリアの、前にロードされたアプリケーションセグメント上、例えばセグメント（３３）上にロードする。
【００６８】
本発明のいくつかの実施形態は、プレロードされ保護された実行可能コードをスマートカードユーザに配布する方法を提供する。プレロードされ保護されたコードの配布を説明するフローチャートを図７に提示する。図７に示すように、発行者はまず、非ＸＩＰメモリ等の不揮発性メモリにあるプレロードされ保護されたコードを含むスマートカード装置を１人または複数のユーザに提供する（３００）。ユーザは、スマートカード装置を受け取った後、適当な認証証明を提供し、ホスト装置を使用して実行コマンドをスマートカード装置に送ることにより（３０２）、保護されたアプリケーションコードの実行を選択することができる。実行コマンドを受け取ると、プレロードされ保護されたコードのいくらかまたはすべてが、不揮発性メモリから実行可能メモリにコピーされ（３０４）、コピーされたコードが実行される（３０６）。任意に、実行プロセス開始後に、いくつかのプログラムコードが実行可能メモリにページングされる。
【００６９】
本発明が実行可能コードのコピー（３０４）に特定の制限を課さないことに留意されたい。いくつかの実施形態では、コードの不揮発性メモリから実行可能コードへのコピーは、スマートカードの内部データバスを通しての内部コピーのみである。それに関わらず、これは本発明のあらゆる実施形態での明示的な要件ではない。例えば、コード２０６を実行可能メモリに任意でページングすることを含む実施形態および図７において説明した実施形態によれば、コピーはホスト装置を通しての外部コピーを任意に含む。
【００７０】
したがって、一例によれば、サービスプロバイダは、アプリケーション群を、顧客に提供する前に（Ｕ）ＳＩＭカードにプレロードすることができる。プレロードされたアプリケーションコードは、スマートカード外部インタフェースを介しての読み取りから保護され、アプリケーションがアンロックされる場合、スマートカードプロセッサを介してのみこの群からのアプリケーションの実行が可能である。顧客は、ロックされたプレロードアプリケーションを実行したい場合、サービスプロバイダに問い合わせて、新しいサービスへの加入を要求する。サービスプロバイダは、所望のアプリケーションをアンロックする「鍵」を移動端末に送り、鍵は、限られた時間量、または規定の実行回数だけアプリケーションを無条件で実行できるようにすることができる。その瞬間から鍵の期限が切れるまで、（Ｕ）ＳＩＭカードのＣＰＵはアプリケーションの実行が可能になる。
【００７１】
本発明の特定の態様をＳＩＭカードおよび（Ｕ）ＳＩＭカードに関して説明したが、本発明がコンタクトレススマートカードにも関連することに留意されたい。
【００７２】
本願の説明および特許請求の範囲では、各動詞「備える」、「含む」、および「有する」ならびにその活用形は、動詞の１つまたは複数の目的語が必ずしも、動詞の１つまたは複数の主語のメンバ、構成要素、要素、またはパーツの完全なリストではないことを示すために使用される。
【００７３】
例として提供され、本発明の範囲の限定を意図しない本発明の実施形態の詳細な説明を用いて本発明を説明した。説明した実施形態は異なる特徴を含み、これらのすべてが本発明のすべての実施形態において必要なわけではない。本発明のいくつかの実施形態は、特徴のいくつかのみ、または特徴の可能な組み合わせを利用する。説明した本発明の実施形態の変形形態および説明した実施形態で記した特徴の異なる組み合わせを含む本発明の実施形態が、当業者により想到されよう。本発明の範囲は、添付の特許請求の範囲によってのみ制限される。
【図面の簡単な説明】
【００７４】
【図１】スマートカード構造の例を示す。
【図２Ａ】ＩＳＯ準拠スマートカードの機械的なレイアウトを示す。
【図２Ｂ】ＳＩＭカードまたはＵＳＩＭカードの物理的なフォームファクタを示す。
【図３】高度スマートカードの例示的な構造を示す。
【図４】本発明のいくつかの実施形態によるスマートカード装置を示す。
【図５Ａ】本発明の例示的な実施形態によるスマートカード装置においてコードのコピーおよび実行を行う方法を説明するフローチャートを提供する。
【図５Ｂ】本発明の例示的な実施形態によるスマートカード装置においてコードのコピーおよび実行を行う方法を説明するフローチャートを提供する。
【図５Ｃ】本発明の例示的な実施形態によるスマートカード装置においてコードのコピーおよび実行を行う方法を説明するフローチャートを提供する。
【図６】ページングメカニズムを使用して実行可能コードをページングする例示的な一実施態様を示す。
【図７】プレロードされ保護されたコードのスマートカードユーザへの配布を説明するフローチャートを提供する。
【図１】
2009506390.tif 000003
【図２Ａ】
2009506390.tif 000004
【図２Ｂ】
2009506390.tif 000005
【図３】
2009506390.tif 000006
【図４】
2009506390.tif 000007
【図５Ａ】
2009506390.tif 000008
【図５Ｂ】
2009506390.tif 000009
【図５Ｃ】
2009506390.tif 000010
【図６】
2009506390.tif 000011
【図７】
2009506390.tif 000012
【国際調査報告】
2009506390.tif 000013
2009506390.tif 000014