(57)【特許請求の範囲】
【請求項１】
複数の記憶領域を含むメモリ（２）に接続されるＣＰＵ（１）に対してセキュアなプログラムを、該ＣＰＵ（１）によってマイクロプロセッサカードにロードする方法であって、前記方法は、前記ＣＰＵ（１）の制御下で実行される次の各ステップであって、
第１の記憶領域（３）中に前記ＣＰＵ（１）によって直接実行可能な一連の命令の形式であるプログラムによって実現される機能をロードするステップと、
前記第１の記憶領域（３）を書込み保護するステップと、
第２の記憶領域（４）中に、前記ＣＰＵ（１）によって実行可能、かつ前記第２の記憶領域中のアドレスにおいてだけ実行可能な一連の命令、又は前記第１の記憶領域（３）中に含まれる前記機能を活性化する一連の命令の形式であるプログラムをロードするステップと、を有し、
前記第１の記憶領域（３）の前記機能は予め定められたアドレスにおいてだけ実行可能であることを特徴とする方法。
【請求項２】
前記プログラムを開始する前に、該プログラムが前記第２の記憶領域（４）中で前記ＣＰＵ（１）によって実行可能である命令、又は前記第１の記憶領域（３）中に含まれる前記機能を活性化する命令だけを含んでいることを、前記ＣＰＵ（１）によって検査するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記のプログラムの検査が、２つの連続する初期化応答バイトの間のカードの初期化において実行されることを特徴とする請求項２に記載の方法。
【請求項４】
メモリ（２）に接続されるＣＰＵ（１）を含むマイクロプロセッサカードであって、前記メモリ（２）は、書込み保護のされた少なくとも１つの第１の記憶領域（３）中に前記ＣＰＵ（１）によって直接実施可能な一連の命令の形式であるプログラムによって実現される機能を含むと共に、少なくとも１つの第２記憶領域（４）中に前記ＣＰＵ（１）によって実行可能、かつ前記第２の記憶領域中のアドレスにおいてだけ実行可能な一連の命令、又は前記第１の記憶領域（３）中に含まれる前記機能を活性化する一連の命令を含み、
前記第１の記憶領域の前記機能は予め定められたアドレスにおいてだけ実行可能であることを特徴とするマイクロプロセッサカード。
【請求項５】
前記第２の記憶領域が少なくとも一部書込み保護がされていることを特徴とする請求項４に記載のマイクロプロセッサカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサカード中にセキュアプログラムをロードする方法およびセキュアプログラムを含むマイクロプロセッサカードに関する。
【０００２】
【従来の技術】
多くの現代のマイクロプロセッサは、中央演算処理装置（ＣＰＵ）を動作可能とするためにＣＰＵに関連するランダム・アクセス・メモリ（ＲＡＭ）およびリード・オンリー・メモリ（ＲＯＭ）だけでなく、カードの運搬人およびカードが意図される基本応用に特有のデータを含む電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）を含んでいる。オペレータ、すなわちカードをユーザが使用することを可能とするために生産者からカードを購入する会社は、多くの場合そのようなオペレータにとって個人的なプログラムがＥＥＰＲＯＭ中にロードされることを望んでいる。例えば、無線通信用のマイクロプロセッサにおいて、あるオペレータは音声メッセージプログラムが組み込まれることを要求する。ＥＥＰＲＯＭとＣＰＵとの間の接続がまったく自由のままに残されているときは、オペレータはＣＰＵが直接理解可能な言語で記述されたプログラムをロードすることができ、ＣＰＵに対する完全な制御は、カード生産者のオペレーティングシステムによるいかなる監視もなしに、すなわちオペレーティングシステムをバイパスしてプログラム実行中において可能となる。
【０００３】
オペレータのプログラムがＣＰＵ全体を制御することを避けるために、マイクロプロセッサカード中にオペレータのプログラムを含むメモリがメモリとＣＰＵとの間に配置されたインタープリタによってチェックされる特別なコマンドを使用してロードされる必要のあるマイクロプロセッサカードが知られているが、このインタープリタの機能は各命令がカード中に存在する情報のセキュリティを傷付けないことを検査し、コマンドをＣＰＵによって実行可能な命令に翻訳することである。
【０００４】
【発明が解決しようとする課題】
このようなシステムの欠点はオペレータのプログラムをインタープリタが理解可能なコマンドに基づいて記述することが必要となるが、これはオペレータのプログラムで使用可能なオプションを制限することとなる。さらに、オペレータのプログラムは直接実行されないが、最初にインタープリタによって翻訳されるのでプログラムの実行速度が悪化する。
【０００５】
本発明は、マイクロプロセッサカード中に複数の記憶領域を含むメモリに接続されるＣＰＵに対してセキュアなプログラムをロードする方法を提供する。
【０００６】
【課題を解決するための手段】
この方法は、第１の記憶領域中にＣＰＵによって直接実行可能な一連の予めアドレスの定められた機能をロードするステップと、第１の記憶領域の書込みを保護するステップと、第２の記憶領域中でＣＰＵによって直接実行可能な一連の命令の形式であるプログラムであるか、あるいは第１の記憶領域に含まれる機能を活性化する一連の命令の形式であるプログラムを第２の記憶領域中にロードするステップとを含む。
【０００７】
従って、第２の記憶領域中で実行されることが必要な命令に対して、第１の記憶領域中に含まれる一連の予めアドレスの定められた機能は、プログラムとＣＰＵとの間に障壁を構成し、その機能が第１の記憶領域に含まれていなければ、プログラムはＣＰＵによって実行可能なその機能を活性化できない。本発明の有利な変更によれば、この方法は、プログラムを開始する前に、プログラムが第２の記憶領域内で実行可能な命令、あるいは第１の記憶領域に含まれる機能を活性化する命令だけを含んでいることを、ＣＰＵによって検査するステップを含んでいる。これは不正直者がオペレータのプログラム中にカード中に存在する情報のセキュリティを損なう直接実行可能な機能を含めることを防止する。
【０００８】
本発明の他の有利な概念によれば、プログラムの検査は２つの一連の初期化応答のバイトの間に実行される。利点はプログラムを確認するための２つの応答バイトの間の時間間隔にあり、初期化処理は延長されない。本発明は複数の記憶領域を含むメモリに接続されるＣＰＵを含むマイクロプロセッサカードも提供するが、このカードは、書込み保護のされた少なくとも１つの第１の記憶領域中にＣＰＵが直接実行可能な一連の予めアドレスの定められた機能を含み、少なくとも１つの第２の記憶領域中に第２の記憶領域中で実行可能な、あるいは第１の記憶領域中に含まれる機能を活性化する一連の命令を含んでいる。
【０００９】
第２の記憶領域も書込み保護がされていることが望ましい。
【００１０】
【発明の実施の形態】
本発明の他の特徴及び利点は、本発明の方法を図示的に要約したただ１つの図面を参照して、本発明の方法の特に限定しない実装方法に関する以下の記述に表されている。図面を参照すると、本発明に係るマイクロプロセッサカードは通常と同様に図示されていないＲＡＭ及びＲＯＭに接続されるＣＰＵ１を含んでおり、さらに特に第１の記憶領域３及び第２の記憶領域４を含むＥＥＰＲＯＭ２を含んでいる。
【００１１】
本発明によれば、第１の記憶領域３は、カードのＣＰＵ１によって直接実行可能な予めアドレスの定められた一連の機能がロードされる。第１の記憶領域３はカード生産者によってロードされる、すなわち、図１のフローチャートの左側に示された一連の動作の応用中には、５におけるカードの第１の記憶領域３へのアクセス、６における実行可能な機能のロード、および７における第１の記憶領域３に対する書込み保護が含まれている。第１の記憶領域３は、認証アルゴリズムに関連するアクセスコードによって保護されることが可能であり、このアクセスコードは生産者によってのみ知られており、それがロードされた後は第１の記憶領域３に対する書込みは完全に阻止される。
【００１２】
本発明に関する意味において、「予めアドレスの定められた機能」という術語は、機能に対して明確に付与されたアドレスにおいて、あるいは機能中に付与された定義に基づいてＣＰＵによって演算され得るアドレスにおいて実行可能な機能であるので、当該機能を含む記憶領域に対する書込み保護によって機能が実行されるアドレスの定義はオペレータのプログラムによって変更され得ない。このようにこの性質はオペレータのプログラムがアクセス可能なアドレスのすべてを詳細にチェックすることを可能とする。
【００１３】
本発明によれば、第２の記憶領域には、第２の記憶領域中で実行可能な一連の命令の形式であるオペレータのプログラムであるか、あるいは第１の記憶領域に含まれる機能を活性化する一連の命令の形式であるオペレータのプログラムがロードされる。実行可能な命令はＣＰＵによって直接実行可能なあらゆる機能であり得るが、そのパラメータは、それらが第２の記憶領域において実行可能であるか否か、すなわちそれらが第２の記憶領域の内部を指すか外部を指すかによって決定されるように固定される。このような状況において、第１の記憶領域に含まれている機能、例えば、読み出し機能あるいは書込み機能は第２の記憶領域の外部でも実行され得るが、上述のようにチェックされたアドレスだけで実行される。
【００１４】
オペレータのプログラムは、図１のフローチャートの中央部の応用によって、オペレータの求めに応じてカード生産者により、あるいはオペレータにより直接ロードされ、８における第２の記憶領域へのアクセス、９における第２の記憶領域中へのプログラムのロードを含んでいる。プログラムロード後に外部ユーザによる書込みに対して第２の記憶領域を保護する動作が引き続くことが望ましい。
【００１５】
全ローディングはＣＰＵの制御の下に実行されるので、第２の記憶領域にロードされた全命令は第２の記憶領域中で実行可能であるか、あるいは第１の記憶領域中に含まれる機能を活性化するかが検査される。通常にロードされた後の第２の記憶領域の内容に対するあらゆる不正直な動作の効果を緩和するために、好ましくは禁止されるべき実行に対する準備がプログラムロード前になされ、図１の右側のフローチャートに示されるようなプログラム開始手法が備えられている。このフローチャートは、１０におけるカードの初期化、１１におけるカード初期化に応答する第１のバイトの送出、１２における第２の記憶領域に含まれるプログラムが、その全命令が第２の記憶領域中で実行可能であるか、あるいは第１の記憶領域中の機能を活性化するかを確認するための検査、１３における第２の応答バイトの送出、１４における開始されることを可能とするプログラムアクセスコードの付加的な入力、１５における初期化に対する残りのバイトの送出、１６におけるコマンドの配布、１７におけるプログラムの実行、および１８における受け取られたコマンドの実行を含んでいる。
【００１６】
当然、プログラムの検査は、もしプログラム中に誤った命令があった場合にはプログラムが開始されることを阻止する信号を出力するものでなくてはならない。この信号は、例えば、第２の記憶領域中に検査が満足されたときにフラグをたて、そうでないときにフラグをリセットすることによって与えられてもよい。オペレータのプログラムを実行するためにコードを入力することが必要な場合には、そのコードに対するフラグを具備することも可能である。
【００１７】
第１および第２の領域は、その実行前に各コマンドの解釈を含むことが必要である従来のシステムと異なり、プログラムが検査された後はなんら制限なしに実行されるように直接実行可能な命令を含むことが理解される。当然、本発明は示された実装に制限されず、請求項に定義されたような本発明の範囲を逸脱することなく、当該分野において通常の知識を有する者にとって明らかな方法で変更され得る。
【００１８】
特に、本発明は１つの第１の記憶領域３および１つの第２の記憶領域４だけを含むＥＥＰＲＯＭ２についてだけ記載されているが、本発明の範囲を逸脱することなく、１つの第１の記憶領域に対して、あるいは対応する実行可能な機能を含む複数の第１の記憶領域に対して異なる第２の記憶領域中にロードされる複数の異なるプログラムを具備することも可能である。
【００１９】
本発明はＥＥＰＲＯＭ２中に第１の記憶領域を含むように開示されているが、マイクロプロセッサがカード内に取り付けられた後に実行可能な機能をロードすることも可能であるし、第１の記憶領域内で実行可能な機能をＣＰＵに関連したＲＡＭあるいはＲＯＭ中にロードすることも可能であるが、この場合、機能はマイクロプロセッサを生産するために使用されるマスク中に含まれる。
【００２０】
【発明の効果】
本発明によれば、生産者が組み込んだ機能を傷つけることなく、また生産者が組み込んだ機能に制限されることなくオペレータのプログラムを実行させることが可能となる。
【図面の簡単な説明】
【図１】  本発明の要約図である。
【符号の説明】
１…ＣＰＵ
２…ＥＥＰＲＯＭ
３…第１の記憶領域
４…第２の記憶領域
【図１】
0004708514.tif 000002