(57)【要約】【課題】アプリケーションソフトウェアのセキュアな実行と、認証されたアプリケーションソフトウェアのみの実行を確実にする。【解決手段】当該セキュアプロセッサは、アプリケーションソフトウェア（以下、アプリソフト）を透過的に実行するモニターモードと、アプリソフトの実行及びマルチメディアコンテンツの提示が認証されたことを検証し、アプリソフトが必要とするいかなる特別なサービスも実行し、プロセッサがコンテンツの実行権利を取得したことを検証するセキュアモードとを有する。当該セキュアプロセッサは、一般的なプロセッサと同一のハードウェアを利用し、一般的なプロセッサ用に書かれたアプリソフトを実質的な変更なしに実行可能であり、速度やリソースを大幅に減少させることなく動作できる。セキュアモードで動作される機能は、オンチップ不揮発性メモリに保存される、もしくは認証された外部ストレージから読み込まれることができる。【選択図】図１
2007524883.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションソフトウェアをプロセッシングユニットによって実行する方法であって，以下の手順を含む：
前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を与えられていることを検証すること；
前記プロセッシングユニットのモニターモードとセキュアモードとを区別すること；
さらに
前記モニターモードでの前記プロセッシングユニットは，前記アプリケーションソフトウェアを前記アプリケーションソフトウェアに対し透過的に実行可能であり，
前記セキュアモードでの前記プロセッシングユニットは，前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を与えられていることを検証すること。
【請求項２】
一般のプロセッサの半導体ダイによって実行可能であっても前記セキュアモードには反応しない命令を，前記モニターモードにおける前記プロセッシングユニットの一部分によって実質的に同様に実行する手順を含む，請求項１記載の方法。
【請求項３】
前記アプリケーションソフトウェアから要求され，前記アプリケーションソフトウェアが実行する権限を与えられた特別なサービスを，前記プロセッシングユニットによって実行する手順を含む，請求項１記載の方法。
【請求項４】
複数の技術の少なくとも一つに応じて，前記モニターモードに割り込み前記セキュアモードへ入る；そして
前記セキュアモードのときは，どの技術によって前記セキュアモードへ入ったかを判断する手順を含む，請求項１記載の方法。
【請求項５】
割り込み，リセット信号，またはタイマーの少なくとも一つに応じて，前記モニターモードへ割り込み，セキュアモードへ入る手順を含む，請求項１記載の方法。
【請求項６】
前記セキュアモードにおいて前記セキュアモードを終了し，前記モニターモードにて前記アプリケーションソフトウェアを実行する手順を含む，請求項１記載の方法。
【請求項７】
前記アプリケーションソフトウェアのオリジナルコードを実質的に変更せずに前記アプリケーションソフトウェアを実行し，それにより前記アプリケーションソフトウェアが一般的なプロセッサと実質的に変わらないプロセッサ環境を得る手順を含む，請求項６記載の方法。
【請求項８】
前記セキュアプロセッサが監視するサービスを前記アプリケーションソフトウェアが必要とするとき，前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモードが再度作動し，アプリケーションソフトウェアへ前記サービスが送られ，前記セキュアモードが終了し，それによって前記アプリケーションソフトウェアがモニターモードにて実行を続けることが可能となる手順を含む，請求項６記載の方法。
【請求項９】
電源投入の際に前記セキュアモードにて命令を実行する手順を含む，請求項１記載の方法。
【請求項１０】
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する手順を含み，前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を含む，請求項９記載の方法。
【請求項１１】
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する手順を含み，前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を含み，そして，
信頼性とコンテンツの安全性を検証する前記手順が，前記チップ内部にある前記持続性メモリに応えて実行される，請求項９記載の方法。
【請求項１２】
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する手順を含み，前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を含み，そして，
信頼性とコンテンツの安全性を検証する前記手順が，前記チップ内部にある前記持続性メモリに応えて実行される，さらに
前記チップ内部にある持続性メモリが：暗号化キー，セキュアハッシュ値，または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ，の少なくとも一つを有する，請求項９記載の方法。
【請求項１３】
前記アプリケーションソフトウェアが，前記セキュアモードにて実行されるための命令を少なくとも一つ有する，請求項１記載の方法。
【請求項１４】
前記セキュアモードにおける実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットによって実行可能な追加機能を含む，請求項１３記載の方法。
【請求項１５】
前記セキュアモードにおける実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットによって実行可能な追加機能を含み，前記追加機能が追加セキュアカーネルコードの認証を含む，請求項１３記載の方法。
【請求項１６】
前記検証の手順がセキュアソフトウェア一式の実行を含み，前記セキュアソフトウェア一式が，前記プロセッシングユニットが追加セキュアソフトウェア一式のセキュアモードでの実行のための認証を受けているか否かの判断を含む，請求項１記載の方法。
【請求項１７】
前記追加セキュアソフトウェア一式が，
追加セキュアソフトウェアの読み込みのための少なくとも一つの機能と，
前記プロセッシングユニットが前記追加セキュアソフトウェアを実行するために認証されていることを検証するための少なくとも一つの機能を有する，請求項１６記載の方法。
【請求項１８】
前記追加セキュアソフトウェア一式が，
アプリケーションソフトウェアの読み込みのための少なくとも一つの機能と，
前記プロセッシングユニットが前記アプリケーションソフトウェアを実行するために認証されていることを検証するための少なくとも一つの機能を有する，請求項１６記載の方法。
【請求項１９】
プロセッシングユニットによって命令を実行する方法であって，
前記プロセッシングユニットが少なくともセキュアモードとモニターモードとを示すセキュリティ信号を含むこと；
前記プロセッシングユニットが，前記セキュリティ信号がセキュアモードを示すとき，前記セキュリティ信号に応じて少なくとも一つのセキュア機能にアクセスし，前記セキュリティ信号がモニターモードを示すとき，前記セキュリティ信号に応じて前記セキュア機能へのアクセスを拒否すること；の手順を含み，
外部発信元および前記外部発信元の信頼性が前記プロセッシングユニットによって検証可能であるということを条件に，前記セキュア機能が外部命令を記録する手順を含む方法。
【請求項２０】
前記セキュリティ信号が前記セキュアモードを示すときのみ，前記プロセッシングユニットが前記プロセッシングユニットに連結された少なくとも一つのセキュア回路へアクセスを許可される手順を含む，請求項１９記載の方法。
【請求項２１】
前記プロセッシングユニットへ連結されたメモリまたは大容量ストレージに保存されたアプリケーションコード一式を実行し，前記セキュリティ信号に反応しない実質的に同一な非セキュアプロセッシングユニットにて実行される前記アプリケーションコードを実質的に変更せずに前記実行手順が完了する手順を含む，請求項１９記載の方法。
【請求項２２】
前記プロセッシングユニットに連結されたメモリまたは大容量ストレージに保存されたアプリケーションコード一式を，前記プロセッシングユニットが前記モニターモードにて動作されているときに，前記プロセッシングユニットによって実行する手順を含む，請求項１９記載の方法。
【請求項２３】
前記一セキュア機能が，前記外部発信元からの前記外部命令を受け取り，前記外部命令が実質的に正確であると検証する手順を含む，請求項１９記載の方法。
【請求項２４】
前記プロセッサユニットによる外部デバイスへのアクセスを監視する手順と；
前記の監視手順が前記セキュリティ信号およびアクセスルール一式に反応し，前記プロセッシングユニットが前記アクセスルールを侵害して前記外部デバイスにアクセスしようとする時，その動作に応じて少なくとも一つのセキュア機能を実行する手順を含む，請求項１９記載の方法。
【請求項２５】
前記プロセッシングユニットより要求されたアクセス数；
前記プロセッシングユニットが実行する命令数；
前記セキュアモードにて動作している前記プロセッシングユニットによって設定されたパラメータ；
前記プロセッシングユニットが動作している間のインターバル；
の少なくとも一つに応じて，前記の監視手順が前記プロセッシングユニットのアクセスに反応する，請求項２４記載の方法。
【請求項２６】
前記プロセッシングユニットによるリードオンリーアクセスのためのセキュア情報一式を保存する順序を含む，請求項１９記載の方法。
【請求項２７】
前記の保存手順が不揮発性メモリから前記セキュア情報一式を読み込む手順を含む，請求項２６記載の方法。
【請求項２８】
前記の保存手順が，不揮発性メモリから前記セキュア情報一式を読み込む手順と，前記セキュアプロセッサの実装時に前記不揮発性メモリへの書き込みを不可能とする手順を含む，請求項２６記載の方法。
【請求項２９】
前記の保存手順が，不揮発性メモリから前記セキュア情報一式を読み込む手順と，前記セキュアプロセッサの実装時に前記不揮発性メモリの書き込みを不可能とする手順を含み，さらに前記不可能とする手順が非接合ピンを実質的にアクセス不能にする手順を含む，請求項２６記載の方法。
【請求項３０】
前記の保存手順が不揮発性メモリから前記セキュア情報一式を読み込む手順を含み，前記セキュア情報一式が前記セキュアプロセッサ特有である，請求項２６記載の方法。
【請求項３１】
前記一つのセキュア機能が，
前記外部発信元からの前記外部命令を受けること；
前記外部命令に応じたデータを生成すること；
前記外部命令に応じたデータと少なくともいくつかの前記セキュア情報とを比較し，それにより前記プロセッシングユニットは前記外部命令が正確であることを検証可能となること；
の手順を含む，請求項１９記載の方法。
【請求項３２】
前記の生成手順が，前記外部命令に応じて算出された署名値を決定し，
前記の比較手順が，前記算出署名値と前記セキュア情報に記録されている署名値との一致を試みる，請求項３１記載の方法。
【請求項３３】
前記外部命令を受ける手順が，
前記外部命令を集合的に含むメッセージ一式を受けること；
前記外部命令を集合的に含む記憶媒体一式を受けること，の少なくともどちらかを含む，請求項３１記載の方法。
【請求項３４】
前記一つのセキュア機能が，
前記外部発信元からの前記外部命令を要求すること；
前記外部命令へ前記セキュア情報に応じたデータを送り，それによって前記外部発信元は，前記プロセッシングユニットが前記外部命令を実行する権限を有することを検証可能になること；
前記外部発信元からの前記外部命令を受けること；
の手順を含む，請求項１９記載の方法。
【請求項３５】
前記外部命令が，アプリケーションソフトウェアまたは追加セキュアコードの少なくともどちらかを含む，請求項３４記載の方法。
【請求項３６】
セキュアモードとモニターモードとを有するプロセッサにて命令を実行する方法であって，
前記プロセッサがセキュアモードにて実行するとき，前記プロセッサがモニターモードにて実行するときにはアクセスを持たないセキュア機能の少なくとも一つにアクセスすること；
前記プロセッサが，起動状態または割り込み状態のどちらかの間に前記セキュアモードにて実行するが，前記割り込み状態はマスク不可能な割り込み（ＮＭＩ）とタイマー割り込みのどちらにも反応すること；
前記プロセッサがセキュアモードに入るとき，前記プロセッサはコントロールをセキュアコード一式へと移動させるが，前記セキュアコードは前記プロセッサがモニターモードにて実行するときは変更不可能であること；
前記起動状態に関する前記セキュアコード一式が，前記プロセッサによって実行可能な命令を含み，前記外部命令の外部発信元および前記外部発信元の信頼性がセキュア情報一式に応じて前記プロセッサによって検証可能であるということを条件に，セキュアコードへ外部命令を追加するよう前記プロセッサに対し命令すること；
の手順を含む方法。
【請求項３７】
アプリケーションソフトウェアの実行が可能なプロセッシングユニットを含む装置であって，
前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを検証可能であり；
前記プロセッシングユニットはモニターモードとセキュアモードを有し，モニターモードにおいて前記プロセッシングユニットは，前記アプリケーションソフトウェアを前記アプリケーションソフトウェアに対し透過的に実行可能であり，前記セキュアモードにおいて前記プロセッシングユニットは，前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを検証可能である装置。
【請求項３８】
前記モニターモードにおいて命令の実行が可能な前記プロセッシングユニットの一部分が，前記セキュアモードには反応しない一般のプロセッサの半導体ダイと実質的に同一である，請求項３７記載の装置。
【請求項３９】
前記セキュアモードにおける前記プロセッシングユニットが，前記アプリケーションソフトウェアから要求され承認されたいかなるサービスも実行可能である，請求項３７記載の装置。
【請求項４０】
前記プロセッシングユニットが複数の技術の少なくとも一つに応えて，前記モニターモードに割り込み前記セキュアモードに入ることが可能であり，前記セキュアモードではどの技術によって前記セキュアモードへ入ったかを判断できる，請求項３７記載の装置。
【請求項４１】
前記プロセッシングユニットが，前記モニターモードに割り込みが可能であり，割り込み，リセット信号，タイマーの少なくとも一つに応じて前記セキュアモードに入ることが可能な，請求項３７記載の装置。
【請求項４２】
前記プロセッシングユニットが，前記セキュアモードにおいて前記セキュアモードを終了し，前記モニターモードにおいて前記アプリケーションソフトウェアの実行が可能な，請求項３７記載の装置。
【請求項４３】
前記アプリケーションソフトウェアが該アプリケーションソフトウェアのオリジナルコードを実質的に変更せずに実行され，それにより該アプリケーションソフトウェアが一般プロセッサと実質的に変わりないプロセッサ環境を得る，請求項４２記載の装置。
【請求項４４】
前記アプリケーションソフトウェアが前記セキュアプロセッサが監視するサービスを必要とするとき，前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモードが再度作動し，前記サービスは前記アプリケーションソフトウェアへ送られ，前記セキュアモードは終了し，それによって前記アプリケーションソフトウェアは前記モニターモードにて実行を続けることが可能となる，請求項４２記載の装置。
【請求項４５】
前記アプリケーションソフトウェアが前記セキュアモードでの実行のための少なくとも一つの命令を含む，請求項３７記載の装置
【請求項４６】
前記セキュアモードでの実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットにて実行可能な追加機能を含む，請求項４５記載の装置。
【請求項４７】
前記セキュアモードでの実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットにて実行可能な追加機能を含み，前記追加機能が追加セキュアカーネルコードの認証を含む，請求項４５記載の装置。
【請求項４８】
前記プロセッシングユニットがセキュアソフトウェアの実行が可能であり，前記セキュアソフトウェアが，追加ソフトウェアの前記セキュアモードでの実行を認証するための少なくとも一つの機能を含む事を特徴とする，請求項３７記載の装置。
【請求項４９】
前記セキュアソフトウェアが，
追加セキュアソフトウェアの読み込みのための少なくとも一つの機能と，
前記プロセッシングユニットが前記追加セキュアソフトウェアを実行する権限を有することを検証するための少なくとも一つの機能を含む，請求項４８記載の装置。
【請求項５０】
前記セキュアソフトウェアが，
アプリケーションソフトウェアの読み込みのための少なくとも一つの機能と，
前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを検証するための少なくとも一つの機能を含む，請求項４８記載の装置。
【請求項５１】
前記プロセッシングユニットが電源投入の際に前記セキュアモードにて命令を実行する，請求項３７記載の装置。
【請求項５２】
前記プロセッシングユニットが，前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行し，前記セキュアコードが前記プロセッシングユニットに対し
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を実行するよう指示する命令を含む，請求項５１記載の装置。
【請求項５３】
前記プロセッシングユニットが，前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリで保存されたセキュアコードを実行し，前記セキュアコードが前記プロセッシングユニットに対し
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を実行するよう指示する命令を含み，
前記信頼性とコンテンツの安全性の検証手順が前記チップ内部の前記持続性メモリに応じて実行される，請求項５１記載の装置。
【請求項５４】
前記プロセッシングユニットが，前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行し，前記セキュアコードが前記プロセッシングユニットに対し
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；
を実行するよう指示する命令を含み，
前記信頼性とコンテンツの安全性の検証手順が前記チップ内部の前記持続性メモリに応じて実行され，
前記チップ内部の前記持続性メモリが：暗号化キー，セキュアハッシュ値，または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ，の少なくとも一つを有する，請求項５１記載の装置。
【請求項５５】
命令の実行が可能なプロセッシングユニット；と
少なくともセキュアモードおよびモニターモードを示すセキュリティ信号を含む装置であって；
前記プロセッシングユニットが前記セキュリティ信号に反応し，さらに前記プロセッシングユニットが，前記モニターモードで命令を実行している時にはアクセスを有しない少なくとも一つのセキュア機能に，前記セキュアモードにて命令を実行している時にアクセスし；
外部発信元および前記外部発信元の信頼性が前記プロセッシングユニットによって検証可能であるということを条件に，少なくとも一つの前記セキュア機能が外部命令を追加するよう前記プロセッシングユニットに対し指示する命令を含む。
【請求項５６】
前記セキュリティ信号に反応し，前記プロセッシングユニットに連結された少なくとも一つのセキュア回路に連結されたセキュリティ要素を含み，前記セキュリティ要素が，前記セキュリティ信号が前記セキュアモードを示す時のみ前記プロセッシングユニットの前記セキュア回路へのアクセスを許可する，請求項５５記載の装置。
【請求項５７】
前記プロセッシングユニットに連結され，メモリまたは大容量ストレージに保存されたアプリケーションコード一式を含み，
それにより前記プロセッシングユニットがモニターモードで前記アプリケーションコードを実施する，請求項５５記載の装置。
【請求項５８】
前記プロセッシングユニットに連結され，メモリまたは大容量ストレージに保存されたアプリケーションコード一式を含み，前記アプリケーションコードが，前記セキュリティ信号に反応しない実質的に同一な非セキュアプロセッシングユニットにて実行可能であり，
それによって前記プロセッシングユニットが，前記セキュアモードを示している前記セキュリティ信号に応じて，実質的な変更なしに前記アプリケーションコードの実行が可能となる，請求項５５記載の装置。
【請求項５９】
前記一つのセキュア機能が，
前記外部発信元から前記外部命令を受けること；
前記外部命令が正確であることを検証すること；
の実行を前記プロセッシングユニットに対し指示する命令を含む，請求項５５記載の装置。
【請求項６０】
前記プロセッシングユニットに連結されたモニター回路を含み，前記モニター回路が，前記プロセッシングユニットによる外部デバイスへのアクセスをモニターすることが可能であり；
前記モニター回路が，前記セキュリティ信号とアクセスルール一式に対し反応し，前記プロセッシングユニットが前記アクセスルールの侵害となる外部デバイスへのアクセスを試みるとき，前記モニター回路が前記アクセスに応じて少なくとも一つのセキュア機能を実行することが可能である，請求項５５記載の装置。
【請求項６１】
前記プロセッシングユニットによって要求されたアクセス数；
前記プロセッシングユニットが実行する命令数；
前記セキュアモードにて動作中の前記プロセッシングユニットによって設定されたパラメータ；
前記プロセッシングユニットが動作している間のインターバル；
の少なくとも一つに応じて，前記モニター回路が前記プロセッシングユニットによるアクセスに反応する，請求項６０記載の装置。
【請求項６２】
前記プロセッシングユニットによるリードオンリーアクセスのためのセキュア情報一式を含む，請求項５５記載の装置。
【請求項６３】
前記セキュア情報一式が不揮発性メモリに保存された情報を含む，請求項６２記載の装置。
【請求項６４】
前記セキュア情報一式が，不揮発性メモリに保存され，前記セキュアプロセッサに特有な情報を含む，請求項６２記載の装置。
【請求項６５】
前記セキュア情報一式が不揮発性メモリに保存された情報を含み，前記不揮発性メモリが前記不揮発性メモリへの書き込みを可能にする回路を含み，前記回路が前記セキュアプロセッサの実装時には無効である，請求項６２記載の装置。
【請求項６６】
前記セキュア情報一式が不揮発性メモリに保存された情報を含み，前記不揮発性メモリが前記不揮発性メモリへの書き込みを可能にする回路を含み，前記回路が前記セキュアプロセッサの実装時には実質的にアクセス不可能であるピンを有する，請求項６２記載の装置。
【請求項６７】
前記セキュア情報一式が前記チップに実質的に特有な自己認識値または個人キー情報一式を含み，それにより前記チップが，選択されたコンテンツ一式またはソフトウェアを前記コンテンツの消費および前記ソフトウェアの実行の認証を受けているときに前記チップのみによって実行可能であることを確実にすることが可能な，請求項６６記載の装置。
【請求項６８】
前記チップが購入領収書，ライセンス，またはその他のデジタル著作権マネージメントデータの信頼性を検証可能であり，それにより選択されたコンテンツやソフトウェア一式が信頼に値する，前記チップに認証されたものであることを前記チップが検証可能となる，請求項６７記載の装置
【請求項６９】
前記セキュアチップが，購入領収書，ライセンス，またはその他のデジタル著作権マネージメントデータの信頼性を検証する動作に応じて，前記コンテンツの消費や前記ソフトウェアの実行を許可することが可能である，請求項６８記載の装置。
【請求項７０】
前記領収書が，
前記チップを実質的に識別するために十分な情報，および
前記コンテンツやソフトウェアに実質的に特有な自己認識値を実質的に識別するために十分な情報を含む，請求項６８記載の装置。
【請求項７１】
前記キー情報と前記実質的に特有な自己認識値とを組み合わせる手段を含み，それにより知的財産を施行するためのデジタル著作権マネージメント計画が実施される，請求項６６記載の装置
【請求項７２】
前記セキュア情報の少なくとも一部分が，公開キー／シークレット個人キーシステム，またはシンメトリック暗号化／暗号解読キーを利用してデジタル署名される，請求項６６記載の装置。
【請求項７３】
前記セキュアチップが，前記デジタル署名の検証に応じて，前記コンテンツの消費または前記ソフトウェアの実行を許可することが可能な，請求項７２記載の装置。
【請求項７４】
前記セキュア情報の少なくとも一部分が，公開キー／シークレット個人キーシステム，またはシンメトリック暗号化／暗号解読キーを利用して暗号化される，請求項６６記載の装置。
【請求項７５】
前記セキュアチップが，前記セキュア情報の前記一部分の暗号解読のための動作に応じて，前記コンテンツの消費および前記ソフトウェアの実行を許可することが可能な，請求項７４記載の装置。
【請求項７６】
前記一つのセキュア機能が，
前記外部発信元から前記外部命令を受けること；
前記外部命令に応じたデータを生成すること；
前記セキュア情報の少なくとも幾つかと，前記外部命令に応じた前記データとを比較し，それにより前記プロセッシングユニットが前記外部命令が正確であることを検証可能になること；
を前記プロセッシングユニットに対し実行するよう指示する命令を含む，請求項５５記載の装置
【請求項７７】
前記生成手順が，前記外部命令に応じて算出署名値を決定する手順を含み；
前記比較手順が，前記算出署名値を前記セキュア情報が有する記録済みの署名値に一致させることを試みる手順を含む，請求項７６記載の装置。
【請求項７８】
前記命令を受ける手順が，
前記外部命令を集合的に含むメッセージ一式を受けること；
前記外部命令を集合的に含む記憶媒体一式を受けること，の少なくともどちらかを含む，請求項７６記載の装置。
【請求項７９】
前記一つのセキュア機能が，
前記外部発信元からの前記外部命令を要求すること；
前記外部発信元へ前記セキュア情報に応じたデータを送り，それにより前記外部発信元は，前記プロセッシングユニットが前記外部命令の実行のための認証を受けていることを検証可能となること；
前記外部発信元から前記外部命令を受け取ること；
を前記プロセッシングユニットに対し実行するよう指示する命令を含む，請求項５５記載の装置
【請求項８０】
前記外部命令が，アプリケーションソフトウェアまたは追加セキュアコードの少なくともどちらかを含む，請求項７９記載の装置。
【請求項８１】
前記セキュリティ信号が，リセット状態にも割り込み状態にも反応し，前記割り込み状態が，マスク不可能な割り込みにもタイマー割り込みにも反応し；
前記セキュリティ信号に応じて，前記プロセッシングユニットがコントロールを前記セキュア機能へ移動し，前記セキュア機能が，前記プロセッシングユニットが前記モニターモードで命令を実行するときには変更不可能である，請求項５５記載の装置。
【請求項８２】
前記プロセッシングユニットが，前記セキュア機能に応じてコントロールを終了機能へ移動し，前記終了機能が，前記モニターモードにおける前記プロセッシングユニットによって，いかなるセキュア情報も使用から外すことが可能である，請求項８１記載の装置。
【請求項８３】
前記プロセッシングユニットが前記セキュア機能のためのパラメータを通過させることが可能であり，
それにより前記マスク不可能な割り込みに応じて，前記セキュア機能は少なくとも一つの前記セキュア機能をアプリケーションソフトウェアの命令通りに実行し，前記アプリケーションソフトウェアが前記モニターモードにおける前記プロセッシングユニットによって実行される，請求項８１記載の装置。
【請求項８４】
前記プロセッシングユニットが前記セキュア機能のためのパラメータを通過させることが可能であり，
それにより前記マスク不可能な割り込みに応じて，前記セキュア機能は少なくとも一つの前記セキュア機能をアプリケーションソフトウェアの命令通りに実行し，前記アプリケーションソフトウェアが前記モニターモードにおける前記プロセッシングユニットによって実行され，
前記セキュア機能が次の少なくとも一つの機能：暗号化認証機能，暗号化署名機能，暗号化セキュア機能，暗号化または暗号解読機能，暗号化キーまたは暗号解読キーを含む機能，セキュアハッシュ機能，を含む，請求項８１記載の装置。
【請求項８５】
コンピュータ機器によって解釈可能な命令を含むメモリまたは大容量ストレージであって，前記命令では：
プロセッシングユニットによってアプリケーションソフトウェアを実行する；
前記プロセッシングユニットが前記アプリケーションソフトウェアを実行する権限を有することを検証する；
前記プロセッシングユニットのモニターモードとセキュアモードとを区別し，前記モニターモードでは前記プロセッシングユニットは透過的にアプリケーションソフトウェアを実行可能であり，前記セキュアモードでは前記プロセッシングユニットは前記アプリケーションソフトウェアを実行する権限を有することを検証可能である。
【請求項８６】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，前記命令では，
前記セキュアモードには反応しない一般のプロセッサの半導体ダイによって実行可能である命令と，実質的に同一な命令を，前記モニターモードにて前記プロセッシングユニットの一部分によって実行する。
【請求項８７】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，前記命令では，
前記モニターモードにおける前記プロセッシングユニットが，前記アプリケーションソフトウェアによって要求され認証されたいかなるサービスも実行する。
【請求項８８】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，前記命令では，
複数の技術の少なくとも一つに応じて前記モニターモードに割り込み，また前記セキュアモードへ入り；
前記セキュアモードにおいて，どの技術によって前記セキュアモード入ったかを判断する。
【請求項８９】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，前記命令では，
割り込み，リセット信号，タイマーの少なくとも一つに応じて前記モニターモードへ割り込み，前記セキュアモードに入る。
【請求項９０】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，
前記セキュアモードにおいて，前記セキュアモードを終了し前記モニターモードにおいて前記アプリケーションソフトウェアを実行する手順を含む。
【請求項９１】
コンピュータ機器によって解釈可能な命令を含む，請求項９０記載のメモリまたは大容量ストレージであって，前記命令では，
前記アプリケーションソフトウェアを，前記アプリケーションソフトウェアのオリジナルコードの実質的な変更なしに実行し，それによって該アプリケーションソフトウェアが一般のプロセッサとは実質的に異ならないプロセッサ環境を得る。
【請求項９２】
コンピュータ機器によって解釈可能な命令を含む，請求項９０記載のメモリまたは大容量ストレージであって，前記命令では，
前記アプリケーションソフトウェアが前記セキュアプロセッサが監視するサービスを必要とするとき，前記アプリケーションソフトウェアが割り込みを行うことで前記セキュアモードが再度作動し，アプリケーションソフトウェアへ前記サービスが送られ，前記セキュアモードが終了し，それによって前記アプリケーションソフトウェアがモニターモードにて実行を続行する。
【請求項９３】
コンピュータ機器によって解釈可能な命令を含む，請求項８５記載のメモリまたは大容量ストレージであって，前記命令では，
電源投入の際に前記セキュアモードにおいて命令を実行する。
【請求項９４】
コンピュータ機器によって解釈可能な命令を含む，請求項９３記載のメモリまたは大容量ストレージであって，前記命令では，
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する。また前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；を含む。
【請求項９５】
コンピュータ機器によって解釈可能な命令を含む，請求項９３記載のメモリまたは大容量ストレージであって，前記命令では，
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する。また前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；を含み，
さらに，信頼性とコンテンツの安全性を検証する前記手順が前記チップ内部にある前記持続性メモリに応えて実行される。
【請求項９６】
コンピュータ機器によって解釈可能な命令を含む，請求項９３記載のメモリまたは大容量ストレージであって，前記命令では，
前記電源投入に応じて，前記プロセッシングユニットを有するチップ内部にある持続性メモリに保存されたセキュアコードを実行する。また前記セキュアコードの実行手順が，
一以上の信頼できる発信元から追加コードを読み込むこと；
前記信頼できる発信元の信頼性を検証すること；
前記追加コードのコンテンツの安全性を検証すること；を含み，
さらに，信頼性とコンテンツの安全性を検証する前記手順が前記チップ内部にある前記持続性メモリに応えて実行され，
さらに，前記チップ内部にある持続性メモリが：暗号化キー，セキュアハッシュ値，または前記信頼できる発信元の検証や前記追加コードの認証のための他のデータ，の少なくとも一つを有する。
【請求項９７】
前記アプリケーションソフトウェアが前記セキュアモードにおける実行のための少なくとも一つの命令を含む，請求項８５記載のメモリまたは大容量ストレージ。
【請求項９８】
前記セキュアモードにおける実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットによって実行可能な追加機能を含む，請求項９７記載のメモリまたは大容量ストレージ。
【請求項９９】
前記セキュアモードにおける実行のための少なくとも一つの前記命令が，セキュアカーネルコード一式の代わりに前記プロセッシングユニットによって実行可能な追加機能を含み，前記追加機能が追加セキュアカーネルコードの認証を含む，請求項９７記載のメモリまたは大容量ストレージ。
【請求項１００】
コンピュータ機器によって解釈可能な命令を含むメモリまたは大容量ストレージであって，前記命令では，
プロセッシングユニットによって命令を実行する。前記プロセッシングユニットが少なくともセキュアモードとモニターモードとを示すセキュリティ信号を含む；
前記プロセッシングユニットが，前記セキュリティ信号がセキュアモードを示すとき，前記セキュリティ信号に応じて少なくとも一つのセキュア機能にアクセスし，前記セキュリティ信号がモニターモードを示すとき，前記セキュリティ信号に応じて前記セキュア機能へのアクセスを拒否する；
外部発信元および前記外部発信元の信頼性が前記プロセッシングユニットによって検証可能であるということを条件に，前記セキュア機能が外部命令を記録する。
【請求項１０１】
コンピュータ機器によって解釈可能な命令を含む，請求項１００記載のメモリまたは大容量ストレージであって，前記命令では，
前記セキュリティ信号が前記セキュアモードを示めすときのみ，前記プロセッシングユニットに連結されたセキュア回路の少なくとも一つに前記プロセッシングユニットがアクセスを許可される。
【請求項１０２】
コンピュータ機器によって解釈可能な命令を含む，請求項１００記載のメモリまたは大容量ストレージであって，前記命令では，
前記プロセッシングユニットへ連結されたメモリまたは大容量ストレージに保存されたアプリケーションコード一式を実行し，前記セキュリティ信号に反応しない実質的に同一な非セキュアプロセッシングユニットにて実行される前記アプリケーションコードを実質的に変更せずに前記の実行手順が完了される。
【請求項１０３】
コンピュータ機器によって解釈可能な命令を含む，請求項１００記載のメモリまたは大容量ストレージであって，前記命令では，
前記プロセッシングユニットが前記モニターモードで動作するとき，前記プロセッシングユニットへ連結するメモリまたは大容量ストレージに保存されたアプリケーションコード一式を，前記プロセッシングユニットによって実行する。
【請求項１０４】
前記一つのセキュア機能が，
前記外部発信元からの前記外部命令を要求すること；
前記外部命令へ前記セキュア情報に応じたデータを送り，それによって前記外部発信元は前記プロセッシングユニットが前記外部命令を実行する権限を有することを検証可能になること；
前記外部発信元からの前記外部命令を受けること；
の手順を含む，請求項１００記載のメモリまたは大容量ストレージ。
【請求項１０５】
コンピュータ機器によって解釈可能な命令を含む，請求項１００記載のメモリまたは大容量ストレージであって，前記命令では，
前記プロセッサユニットによる外部デバイスへのアクセスを監視する；
前記の監視手順が前記セキュリティ信号およびアクセスルール一式に反応し，前記プロセッシングユニットが前記アクセスルールを侵害して前記外部デバイスにアクセスしようとする時，その動作に応じて少なくとも一つのセキュア機能を実行する。
【請求項１０６】
前記プロセッシングユニットより要求されたアクセス数；
前記プロセッシングユニットが実行する命令数；
前記セキュアモードにて動作している前記プロセッシングユニットによって設定されたパラメータ；
前記プロセッシングユニットが動作する間のインターバル；
の少なくとも一つに応じて，前記の監視手順が前記プロセッシングユニットのアクセスに反応する，請求項１０５記載のメモリまたは大容量ストレージ。
【請求項１０７】
コンピュータ機器によって解釈可能な命令を含む，請求項１００記載のメモリまたは大容量ストレージであって，前記命令では，
前記プロセッシングユニットによるリードオンリーアクセスのためのセキュア情報一式を保存する。
【請求項１０８】
前記の保存手順が不揮発性メモリから前記セキュア情報一式を読み込む手順を含む，請求項１０７記載のメモリまたは大容量ストレージ。
【請求項１０９】
前記の保存手順が，不揮発性メモリから前記セキュア情報一式を読み込む手順と，前記セキュアプロセッサの実装時に前記不揮発性メモリへの書き込みを不可能とする手順を含む，請求項１０７記載のメモリまたは大容量ストレージ。
【請求項１１０】
前記の保存手順が，不揮発性メモリから前記セキュア情報一式を読み込む手順と，前記セキュアプロセッサの実装時に前記不揮発性メモリへの書き込みを不可能とする手順を含み，さらに前記不可能とする手順が非接合ピンを実質的にアクセス不能にする手順を含む，請求項１０７記載のメモリまたは大容量ストレージ。
【請求項１１１】
前記の保存手順が不揮発性メモリから前記セキュア情報一式を読み込む手順を含み，前記セキュア情報一式が前記セキュアプロセッサ特有である，請求項１０７記載のメモリまたは大容量ストレージ。
【請求項１１２】
前記一つのセキュア機能が，
前記外部発信元からの前記外部命令を受けること；
前記外部命令に応じたデータを生成すること；
前記外部命令に応じたデータと少なくともいくつかの前記セキュア情報とを比較し，それにより前記プロセッシングユニットは前記外部命令が正確であることを検証可能となること；
の手順を含む，請求項１００記載のメモリまたは大容量ストレージ。
【請求項１１３】
前記の生成手順が，前記外部命令に応じて算出された署名値を決定し，
前記の比較手順が，前記算出署名値と前記セキュア情報に記録されている署名値との一致を試みる，請求項１１２記載のメモリまたは大容量ストレージ。
【請求項１１４】
前記外部命令を受ける手順が，
前記外部命令を集合的に含むメッセージ一式を受けること；
前記外部命令を集合的に含む記憶媒体一式を受けること，の少なくともどちらかを含む，請求項１１２記載のメモリまたは大容量ストレージ。
【請求項１１５】
コンピュータ機器によって解釈可能な命令を含む，メモリまたは大容量ストレージであって，前記命令では：
セキュアモードとモニターモードとを有するプロセッサにて命令を実行する；
前記プロセッサがセキュアモードにて実行するとき，前記プロセッサがモニターモードにて実行するときにはアクセスを持たないセキュア機能の少なくとも一つにアクセスする；
前記プロセッサが，起動状態または割り込み状態のどちらかの間に前記セキュアモードにて実行し，前記割り込み状態はマスク不可能な割り込み（ＮＭＩ）とタイマー割り込みのどちらにも反応する；
前記プロセッサがセキュアモードに入るとき，前記プロセッサはコントロールをセキュアコード一式へと移動させ，前記セキュアコードは前記プロセッサがモニターモードにて実行するときは変更不可能である；
前記起動状態に関する前記セキュアコード一式が，前記プロセッサによって実行可能な命令を含み，前記外部命令の外部発信元およびセキュア情報一式に応じて前記プロセッサによって検証可能な前記外部発信元の信頼性に応えて，セキュアコードへ外部命令を追加するよう前記プロセッサに対し命令する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，概してセキュアプロセッサとそれによるセキュアソフトウェアの実行方法に係り，例えばアプリケーションソフトウェアのセキュアな実行を可能にするセキュアプロセッサを提供する。
【背景技術】
【０００２】
現在のコンピュータシステムにおいて、マイクロプロセッサや他の処理装置による処理能力の有用性は，コンピュータシステムの価値というものを考えたとき，もはや「重要な制限」とはいえない。一方，アプリケーションソフトウェアやマルチメディアコンテンツの有用性，さらに正確には，アプリケーションソフトウェアやマルチメディアコンテンツを利用するための認証は，それらプロセッサによる実行や実演のための「本質的な制限」となった。これによる効果の一つとして，デバイスもしくはプラットフォーム上で実行されるアプリケーションソフトウェアやマルチメディアコンテンツが，多くのコンピュータシステムにとって相当価値のあるものとなった。アプリケーションソフトウェアやマルチメディアコンテンツはともに，例えばコミュニケーションネットワークや安価なＣＤＲＯＭメディアを利用した流通によって簡単に入手されるようになり，その結果，未許可のコピーや配信（「ソフトウェアの不正コピー」と呼ばれる）が経済的に重要な懸案事項となった。よって周知の技術における課題点は，例えば使用料が適切に支払われた場合や，信用できるコンテンツ発信元からの情報に関してコンテンツの安全性が検証された時など，使用権が認証された時のみ有益なアプリケーションソフトウェアやマルチメディアコンテンツがプロセッサ上で使用されることを確実にすることである。
【０００３】
周知技術におけるもう一つの課題としては，認証または変更なしではプロセッサ上で使用できないような特性をもつアプリケーションソフトウェアやマルチメディアコンテンツの提供が求められる一方で，その特性を提供するために該アプリケーションソフトウェアやマルチメディアコンテンツを再設計または再認可することは望ましくないとされている点がある。現在相当数のアプリケーションソフトウェアやマルチメディアコンテンツが入手可能であり，それらの価値は非常に大きく，該アプリケーションソフトウェアやマルチメディアコンテンツを修正するという手段はコストがかかり，信頼性も低く，手に負えるものではない。
【０００４】
したがって，元々のアプリケーションソフトウェアやマルチメディアコンテンツを大幅に修正することなく，認証されたプロセッサに対してのみアプリケーションソフトウェアやマルチメディアコンテンツの使用を制限するということは有益である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明はセキュアプロセッサを提供し，さらにはアプリケーションソフトウェアのセキュアな実行，認証されたアプリケーションソフトウェアのみの実行，そして認証されたマルチメディアコンテンツのみの提示を確実にすることが可能なセキュアプロセッサの使用方法およびシステムを提供する。また，認証済みコンテンツの権利や許可について購入がなされ，その確認もなされたデバイスにおいてのみそのコンテンツが再生可能となることを確実にすることは重要である。そのようなセキュアプロセッサは，モニターモードおよびセキュアモードの二つの動作モードを具備する。前者はアプリケーションソフトウェアを透過的に実行する。後者は該アプリケーションソフトウェアの実行（およびマルチメディアコンテンツの提示）が認証されたことを検証し，アプリケーションソフトウェアが必要とするいかなる特別なサービスも実行する。当該セキュアプロセッサは，アプリケーションソフトウェアに対しても，一般的なプロセッサに対しても同一のハードウェアのように見えるものであり，一般的なプロセッサ用に書かれたアプリケーションソフトウェアを実質的な変更なしに実行可能である。また該セキュアプロセッサは最小限度のハードウェアを追加することで，一般的なプロセッサと同一のハードウェアを利用し，それによりセキュアプロセッサは，アプリケーションソフトウェアの速度やリソースを大幅に減少させることなく実行できる。
【０００６】
ある実施形態では，該セキュアプロセッサの一部分が元々の一般的なプロセッサ用の半導体ダイと実質的に同一であり（ダイのサイズや製造技術が異なるものを使用する場合を除いて），その結果アプリケーションソフトウェアが元々の一般的なプロセッサと同様に，該セキュアプロセッサにて確実に実行される。
【０００７】
ある実施形態では，当該セキュアプロセッサが電源ＯＮのときにセキュアモードでの実行を開始する。この初期の実行段階では，該セキュアプロセッサはセキュアコードをセキュアモードで実行する。このセキュアコードはセキュアプロセッサチップの内部のパーシステント（持続性）メモリにて管理されるので信用できる。上記同様セキュアプロセッサチップの内部のパーシステント（持続性）メモリにて管理されるセキュリティ情報に関し，セキュアコードはソース（発信元）の信頼価値や追加するソースコードの信頼性を検証し，１以上の信頼できるソース（発信元）から追加のソースコードを読み込む。このセキュリティ情報には暗号化キー，セキュアハッシュ値，または，信頼できるソースの検証や追加ソースコードの認証のためのデータなどが含まれる。
【０００８】
読み込まれた追加のソースコードにより，該セキュアプロセッサが信頼できるソースからのアプリケーションソフトウェアを要求し，要求されたアプリケーションソフトウェアを該セキュアプロセッサが実行する認証を持つことを検証し，そのアプリケーションソフトウェアが正確に読み込まれるよう検証し，そのアプリケーションソフトウェアの安全性をチェックする。本発明の状況では，パーシステントメモリも信頼できるソースも，ここで述べた特別な手段を持つ必要性はない。例えば，パーシステントメモリも信頼できるソースも，セキュアプロセッサと結合したハードウェアデバイスに（ユーザーなどにより）差し替えもしくは補足されることができる。この場合セキュアプロセッサは，ソースから読み込んだコードを信頼する前に，これを連結することの安全性および信頼性を検証しハードウェアデバイスの動作を修正する。
【０００９】
該セキュアプロセッサはセキュアモードを終了し，モニターモードで正しく読み込まれたアプリケーションソフトウェアを実行することができる。アプリケーションソフトウェアはオリジナルコードの大幅な変更なしに実行され，それにより一般のプロセッサと実質的に異なることのない処理環境をアプリケーションソフトウェアが得ることになる。セキュアプロセッサが監視するサービスをアプリケーションソフトウェアが必要とする場合，アプリケーションソフトウェアは一度中断し，セキュアモードが再開となり，サービスがアプリケーションソフトウェアへ供給されてセキュアモード終了となり，その結果アプリケーションソフトウェアはモニターモードでの実行を続行できる。例えば，アプリケーションソフトウェアは追加のアプリケーションソフトウェアモジュールの要求，読み込み，そして実行を要求することもできる。他のサービスとして，セキュアプロセッサは入出力動作を監視することができるが，この動作は該セキュアプロセッサにより実行可能なセキュアコードに具備されたＡＰＩ（アプリケーション・プログラミング・インターフェイス）を使用して，アプリケーションソフトウェアが要求するものである。
【００１０】
該セキュアプロセッサはさらにタイマーを利用してアプリケーションソフトウェアに割り込むことも可能で，この割り込みによりセキュアモードに入って処理を実行し，再度モニターモードに戻ることも可能である。セキュアモードへ入るテクニックは複数あるが，該セキュアプロセッサはどのテクニックによってセキュアモードに入るかを判断することができる。該セキュアプロセッサはさらに外部メモリへのアクセスを記録することも可能で，それによりアプリケーションソフトウェアによる正確な実行を検証することができる。他の特徴として，該セキュアプロセッサは入出力動作を監視する（または正当性を再検討および確認する）ことも可能であり，さらにアプリケーションソフトウェアの要求に応じて（好ましくは正当性を再検討および確認した後に）セキュア動作を実行することもできる。
【００１１】
例えば，該セキュアプロセッサはアプリケーションソフトウェアがアクセスしようとする外部メモリ内の位置を調べることができる。アプリケーションソフトウェアが該セキュアプロセッサにより許可された範囲外の位置にアクセスしようとすれば，該セキュアプロセッサはアプリケーションソフトウェアが不適切な動作を行っていると判断することができる。例えばこのような場合，アプリケーションソフトウェアがソフトウェアエラーを有するか，ソフトウェアウィルスを含むか，または不正な動きをするよう設計されているなど考えられる。これに応じて該セキュアプロセッサは，前述のような不当な結果を制限するための適切な動作をとる。またこのような場合に該セキュアプロセッサは，それらの外部メモリ内の位置へアプリケーションソフトウェアがアクセスするのを制限する，またはアプリケーションソフトウェアによる動作を中断する，またはアプリケーションソフトウェアのウィルスチェックやウィルス処理を実行することも可能である。
【００１２】
さらに該セキュアプロセッサはアプリケーションソフトウェアに代わって暗号化または暗号解読処理を行うことも可能で，それによりアプリケーションソフトウェアの関知しないところで，標準的な動作に関し暗号化や暗号解読または他のセキュリティ機能が遂行される。例えば，アプリケーションソフトウェアは追加コードのチェック，またはサーバや外部の大容量ストレージ（記憶デバイス）や外部メモリから読み込んだマルチメディアコンテンツの信頼性のチェックを実行可能であるが，該セキュアプロセッサのユニークＩＤやプライベートキーにアクセスする必要はなく，該セキュアプロセッサのセキュリティ機能をフルに利用して行う。さらに例として，アプリケーションソフトウェアは外部エレメントと通信したセキュア情報の暗号化および暗号解読を実行できるが，やはり該セキュアプロセッサのユニークＩＤやプライベートキーにアクセスする必要はなく，該セキュアプロセッサのセキュリティ機能をフルに利用して行う。
【００１３】
実施例として，該セキュアプロセッサがユニークＩＤを具備し，そのユニークＩＤ（および，ユニークＩＤに付随する暗号化または暗号解読キー）を利用して該セキュアプロセッサ固有のインスタンス（実体）を独自に識別することが可能である。このような実施形態において該セキュアプロセッサは，アプリケーションソフトウェアの代わりに暗号化または暗号解読を行う際に，ユニークＩＤと独自暗号化キーまたは独自暗号解読キーを利用する。例えばセキュアプロセッサが外部エレメントと通信する際に，ユニークＩＤと独自暗号化キーまたは独自暗号解読キーを利用し，アプリケーションソフトウェアの代わりに暗号化および暗号解読を実行する。そのような場合に該セキュアプロセッサは，ＤＲＭ（デジタル著作権管理）情報を確認，交換，取得するための外部エレメントとの通信を実行する。
【００１４】
該セキュアプロセッサは不揮発性メモリ（例えばＮＶＲＯＭ）の中に，ユニークＩＤ，コード署名または暗号化ハッシュ，独自暗号化キーと独自暗号解読キー，さらには該セキュアプロセッサ固有のインスタンスに関するその他の詳細情報などを管理する。このＮＶＲＯＭは該セキュアプロセッサの製造および設定の際，該セキュアプロセッサ固有のインスタンスに関する詳細情報を記録するために利用される非接合ピンを含み，該ピンはＮＶＲＯＭが書き換え不能となるように，製造または設定後に非接合状態となる。
【００１５】
ユニークＩＤ（および独自暗号化キーまたは独自暗号解読キー）を有することで，有利なセキュアプロセッサを含むシステムを提供する：
・  サーバとの通信のためのセキュアプロセッサの利用は追跡可能であり，アプリケーションソフトウェアやマルチメディアコンテンツをダウンロードするために不正動作を行おうとするユーザーは規則違反の責任を問われる。
・  ユニークＩＤおよび独自暗号化キーと独自暗号解読キーを内蔵することで，サーバはアプリケーションソフトウェアやマルチメディアコンテンツのダウンロードを図るセキュアブートコードなどの該セキュアプロセッサの一部を，検証または信用する必要なく該セキュアプロセッサを信頼することができる。ユニークＩＤおよび独自暗号化キーと独自暗号解読キーを安全に製造元が組み込んでいること信頼するだけでよい。
・  該セキュアプロセッサを有するシステムは，セキュアプロセッサを行き来する信号への妨害などのユーザー不正行為に対し抵抗力を持ち，また該システムでは，該セキュアプロセッサと通信する極秘データはセキュリティのために暗号化できる。そうでなければ，極秘データを危険にさらそうすると，セキュアプロセッサチップの破壊を招くことになる。
【００１６】
・  該セキュアプロセッサでは，アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行うＣＰＵは，元々の非セキュアプロセッサと実質的に同一であり，それにより該セキュアプロセッサのセキュリティ機能を無効とする試みは，該ＣＰＵに望まれる機能をも無効とすることになる。
・  該セキュアプロセッサは，アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行うＣＰＵによる権限を確実に検証することが可能である。例えば信用できるサーバ（または認証機関など他の信頼できるエレメント）は，該セキュアプロセッサによってユニークＩＤおよび独自暗号化キーと独自暗号解読キーを利用してその信頼性を検証できるものに対し，セキュアデジタル購入領収書（ｐｕｒｃｈａｓｅ  ｒｅｃｅｉｐｔ）を発行することができる。そのような場合，アプリケーションソフトウェアの実行やマルチメディアコンテンツの提示を行う権利を有する特定のデバイス（またはデバイスの種類）をそのセキュアデジタル購入領収書によって独自に識別することが可能である。
・  該セキュアプロセッサはアプリケーションソフトウェアやマルチメディアコンテンツのコピー阻止およびコピー保護を強化できる。そのようなコンテンツは以下を含む可能性がある：（１）ＣＰＵが実行許可を受けた既に購入済みのアプリケーションソフトウェア，またはＣＰＵが提示許可を受けた既に購入済みのマルチメディアコンテンツの一式，（２）前述の実行または提示を許可するデジタル著作権，（３）特定のデバイス（またはデバイスの種類）に制限するためのピアツーピアメッセージなど，ＣＰＵと他のデバイス間の利用情報。
【発明を実施するための最良の形態】
【００１７】
用語集
以下に示す用語は本発明とその実施形態の態様に関する。各用語の一般的な意味は説明に役立てることを意図しており，制限するものではない。
・  「セキュアプロセッサ」という語句は，信頼できるソフトウェアのみをサブユニット上で実行するよう確実にする能力を持つデバイスを意味する。サブユニットは「プロセッサ」または「プロセッシングユニット」を含む（ここではＣＰＵと称す）。セキュアプロセッサにおいて，プロセッサまたはプロセッシングユニットのコンセプトには幅があり，少なくとも以下を含むことを意図している：汎用命令一式を有する汎用プロセッサ，制限された命令一式を有する特殊用途プロセッサ，プログラム命令を実行または解釈可能な特殊用途回路一式，様々なタイプのセキュアプロセッサと競合可能なファームウェアプログラム命令の一式，それらが合理的に一般化されたもの，等。
・  「アプリケーションソフトウェア」という語句は，プロセッサによって実行または解釈されることが可能な命令またはパラメータ一式を示す。先と同様に，アプリケーションソフトウェアのコンセプトには幅があり，少なくとも以下を含むことを意図している：ソフトウェアまたはファームウェアのプログラム命令，ソフトウェアまたはファームウェアのプログラムパラメータ値，プログラミング言語コンパイラーにてコンパイル（翻訳）可能なソースコードおよびプログラミング言語インタープリターによって通訳可能なソースコード，コンパイルまたは通訳されたプログラム言語のマクロ定義，アプリケーションプログラムによって受信または実行される命令およびリクエスト，それらが合理的に一般化されたもの，等。
【００１８】
・  「マルチメディアコンテンツ」という語句は，ユーザーに対し提示されることができる情報またはパラメータの一式を示す。先と同様に，マルチメディアコンテンツのコンセプトには幅があり，少なくとも以下を含むことを意図している：ソフトウェアまたはファームウェアのプログラム命令により解釈および提示するためのデータに組み込まれたアニメーション，オーディオビジュアルムービー，動画，またはサウンド；それらデータ自体を制作するためのソフトウェアまたはファームウェアのプログラム命令に組み込まれたアニメーション，オーディオビジュアルムービー，動画，またはサウンド；ＤＨＴＭＬ，ＳＧＭＬ，ＶＲＭＬ，マクロメディアフラッシュなど，マルチメディアコンテンツのためのマークアップ言語に組み込まれたアニメーション，オーディオビジュアルムービー，動画，またはサウンド；アプリケーションプログラムによって受信または実行される命令およびリクエスト；それらが合理的に一般化されたもの，等。
・  「モニターモード」および「セキュアモード」という語句は，当該セキュアプロセッサに可能な動作状況を示す。先と同様に，モニターモードおよびセキュアモードのコンセプトには幅があり，少なくとも以下を含むことを意図している：セキュアプロセッサによって実行または解釈される命令がプロセッサの性能に対し見分けのつく程度アクセスする区別可能な状況，または，セキュアモードにあるセキュアプロセッサが，モニターモードにあるセキュアプロセッサのいかなるタイプのモニタリングや制限も実行できる区別可能な状況，等。
【００１９】
・  （該セキュアプロセッサによるアプリケーションソフトウェアの）「透過的な実行」の概念，および（該アプリケーションソフトウェアに対する該セキュアプロセッサの）「明白なハードウェア同一性」の概念は，該アプリケーションソフトウェアを実行する該セキュアプロセッサの性能をソフトウェアの視点で述べるもので，該アプリケーションソフトウェアがこれまで一般的なプロセッサで実行されていたということを前提とする。これにより該セキュアプロセッサは該アプリケーションソフトウェアを修正する必要なく実行可能となるが，ここに述べるセキュリティ機能は依然として保持することができる。例えば，セキュアプロセッサの一部分が元々の一般的なプロセッサ用の半導体ダイと実質的に同一であり，そのためアプリケーションソフトウェアが元々の一般的なプロセッサと同様に，該セキュアプロセッサにて確実に実行される。
・  「電源ＯＮ」という語句は，プロセッシングユニットの初期の動作段階を示し，電気供給，リセット信号，または他の実質的な初期設定を変更した後に起きるセキュアプロセッサの状況を指す。先と同様に，電源ＯＮのコンセプトには幅があり，ここで述べられるいかなる初期動作状況やそれが一般化されたものも含むことを意図する。
【００２０】
・  「セキュアコード」そして「セキュアブート・ローダーコード」という語句は，該セキュアプロセッサによって解釈可能であり実行可能であるプログラム命令を示し，該セキュアプロセッサが信頼性があると見なすものである。セキュアコードは，例えばセキュアプロセッサチップのパーシステント（持続性）メモリに管理されているという理由から信頼性がある。追加のソースコードも，信頼できるソースから受信した，もしくは，予め構築された「セキュアコード」または「セキュアブート・ローダーコード」によってその正確さを認証されたという理由から，「セキュアコード」として構築可能である。先と同様に，セキュアコードのコンセプトには幅があり，該セキュアプロセッサが，例えばセキュリティ機能を実行するために信頼できるような，いかなるプログラムコードも含むことを意図する。
【００２１】
・  「セキュリティ機能」および「セキュリティカーネルソフトウェア」という語句は，該セキュアプロセッサによって解釈可能であり実行可能であるプログラム命令を示し，該セキュアプロセッサにとって検証できるもので，セキュリティや認証や検証に関する機能を遂行可能とされる。例えば，デジタル署名，暗号化および暗号解読，デジタル署名の検証などの機能は，セキュリティ機能もしくはセキュリティカーネルソフトウェアによって遂行可能できる。ある実施形態では，そのようなセキュリティ機能もしくはセキュリティカーネルソフトウェアは，ＡＰＩ（アプリケーション・プログラミング・インターフェイス）を使用するアプリケーションソフトウェアによる利用に適するよう構築可能である。実施形態では，セキュリティカーネルソフトウェアがセキュアブート・ローダーコードによって読み込まれ，その後実行される前に安全性および信頼性について検証される。セキュアプロセッサチップ内部のメモリ（好ましくは揮発性メモリ）で認証および管理されてきたセキュリティに関連するソフトウェアの部分は，「セキュアコード」のコンセプトに包含される。
【００２２】
・  「セキュアプロセッサチップ」（ここでは「チップ」とも記載される）という語句は，該セキュアプロセッサが遂行される物理的なハードウェアを示す。先と同様に，セキュアプロセッサチップはハードウェア構造およびプログラム命令を有し，該セキュアプロセッサにとって信頼性がある。そして他者がそのチップのセキュリティを干渉または侵害するのは困難である。
【００２３】
本発明の範囲はここで示した定義や具体例に限定されるものではなく，それら定義や具体例，用語によって実施される最大幅なコンセプトを含むことを意図する。
【００２４】
システムエレメント
図１はセキュアな実行が可能なセキュアプロセッサを含むシステムの構成図を示す。
システム１００はセキュアプロセッサ１１０，コミュニケーションリンク１２０，そして少なくとも１つのソフトウェアまたはコンテンツ発信元１３０を有する。状況に応じて，該ソフトウェアまたはコンテンツ発信元１３０（ここでは信頼できるサーバ１３０とも記載する）は，セキュアプロセッサ１１０やセキュアプロセッサ１１０によって制御されるデバイスに対し，追加コンテンツの送信をオンライン状態またはオフライン状態にすることが可能な信頼できるサーバを含み得る。
【００２５】
実施形態の一つとしてさらにシステム１００は，少なくとも１つの入力デバイス１４１と少なくとも１つの出力デバイス１４２を有し，セキュアプロセッサ１１０によって実行されるアプリケーションソフトウェア１４３のコントロール下で動作するアプリケーションデバイス１４０を有する。
【００２６】
アプリケーションデバイス１４０は該セキュアプロセッサがモニターモードで動作されるとき，いかなるアプリケーションも実行可能である。例えばアプリケーションデバイス１４０は，ゲームセンターへの設置やパーソナルコンピュータへのインストールができるような，リアルタイム・オーディオビジュアルゲームで遊ぶもしくは参加するためのデバイスを含む。しかし本発明の状況において，アプリケーションデバイス１４０がそれほど具体的である必要性はない。むしろ，アプリケーションデバイス１４０は一般に以下を含むことができる。ゲームデバイス；パーソナルコンピュータまたはパーソナルワークステーション；ポケベル，ＰＤＡ（パーソナル・デジタル・アシスタント）またはその他の手のひらサイズのコンピュータ，ノート型パソコンやラップトップコンピュータ，電話，腕時計，ロケーションまたはコンディションセンサー，バイオメトリック（生物測定）センシングデバイスまたはリポーティングデバイス，ペースメーカー，遠隔測定デバイス，または遠隔自動誘導デバイス，などの携帯用デバイス。
【００２７】
また，セキュアプロセッサ１１０が以下で述べる機能を実行可能である限り，アプリケーションデバイス１４０はコンピューティングプログラムに従ういかなるデバイスも含むことができる。
【００２８】
信頼できるアプリケーションまたはコンテンツをチップへ追加供給するため，コミュニケーションリンク１２０は信頼できるサーバ１３０からセキュアプロセッサ１１０へ通じる伝送経路を有するものが考えられる。例えばコミュニケーションリンク１２０は，インターネットやその一部をリアルタイムで利用する，または記憶および転送を行う一以上のデバイスを利用する，または一以上の中間キャッシングデバイスを利用する，または記憶媒体を通した物理的な配信，というような伝送経路を有する。しかし，別の実施形態でコミュニケーションリンク１２０は，個人または公共の交換電話ネットワーク，レンタル電話または他の個人コミュニケーションリンク，ラジオトランシーバ，マイクロ波トランシーバ，ワイヤレスまたはワイヤラインモデムなど，セキュアプロセッサ１１０の代わりに信頼できるサーバ１３０と通信可能なデバイスやシステムへの伝送経路（通信経路）を含むことができる。さらにコミュニケーションリンク１２０は，信頼できるサーバから物理的に運送または配達される記憶媒体（ＣＤＲＯＭなど）など，コンテンツの配給のために考えられるあらゆる技術を含む。
【００２９】
信頼できるサーバ１３０には電子流通システムの一部としてのコンテンツ発信，配送，またはサービング事業体なども含まれる。実施形態の一つは，信頼できるサーバ１３０が，例えばアプリケーションソフトウェアやマルチメディアコンテンツなどの流通する全てのコンテンツに（状況に応じて）デジタル信号を発信することが可能であり，それによりセキュアプロセッサ１１０はそのコンテンツの信頼性を検証可能となる。実施形態の一つでは，公開鍵暗号システム（ｐｕｂｌｉｃ  ｋｅｙ  ｃｒｙｐｔｏｓｙｓｔｅｍ）や同様な性質を有するシステム，またはコンテンツの信頼性について検証を可能とする情報を生み出すことができるタイプの他のシステムなどと共用されるデジタル署名技術を利用して，デジタル署名が実現する。
【００３０】
別の実施形態において信頼できるサーバ１３０には，情報のリクエストを含むメッセージを受信可能で，さらにその情報のリクエストへの反応を含むメッセージを発信可能な，論理上の遠隔デバイス（ｌｏｇｉｃａｌｌｙ ｒｅｍｏｔｅ ｄｅｖｉｃｅ）を含むことができる。例えば，信頼できるサーバ１３０は高性能ＰＣまたはワークステーションを含むインターネットサーバを有することもできる。その他の実施形態では信頼できるサーバ１３０は単独型サーバであるが，しかし本発明の状況において信頼できるサーバ１３０がそれほど具体的である必要性はない。むしろ信頼できるサーバ１３０は，ここで述べる動作を可能とするいかなるデバイスも，さらにハードウェアコンポーネントまたはソフトウェアコンポーネントの双方も含むことができる。
【００３１】
また本発明の状況においては信頼できるサーバ１３０が，特定のコンポーネントの組み合わせを有したり，単一のデバイスであったり，特定デバイスをそのまま全て有するものである必要性はない。むしろ信頼できるサーバ１３０は他のデバイスの一以上の部分を有するか，連結または連携して動作する一以上のデバイス（またはその部分）を有すことも可能である。さらに上述のように，信頼できるサーバ１３０は配送されるコンテンツの創作およびカプセル化を行ういかなるデバイスも含み，具体的にはセキュアプロセッサ１１０に物理的に配送される記憶媒体（ＣＤＲＯＭなど）を書くためのデバイスが挙げられる。
【００３２】
上述のように，信頼できるサーバ１３０はコンテンツの配送に可能ないかなる技術も含むことができる。本発明の状況において，アクチュアルオンラインのコンテンツ配送や，セキュアプロセッサ１１０と信頼できるサーバ１３０との間にライブリンクまたはリアルタイムリンクを有する必要性はない。例えばアプリケーションソフトウェアまたはマルチメディアコンテンツは，以下に上げる技術もしくはその連結・連携によって信頼できるサーバ１３０からセキュアプロセッサ１１０へ配送可能である：
【００３３】
・  アプリケーションソフトウェアまたはマルチメディアコンテンツがインターアクティブ通信もしくは交換通信システムを使って配送可能である。
・  アプリケーションソフトウェアまたはマルチメディアコンテンツが物理的な記憶媒体を使って配送可能である。
・  アプリケーションソフトウェアまたはマルチメディアコンテンツが符号化または暗号化された形状で，第三者から，いかなる技術によっても配送可能であり，符号および暗号の解読キーが信頼できるサーバ１３０からいかなる技術によっても配送可能である。
・  アプリケーションソフトウェアまたはマルチメディアコンテンツが第三者から，いかなる技術によっても配送可能であり，証明書またはその他の信頼性の保証書が信頼できるサーバ１３０から，いかなる技術によっても配送可能である。
・  アプリケーションソフトウェアまたはマルチメディアコンテンツが中間ストレージやその他のタイプのキャッシングデバイスを使って，インターネットや他の配信技術を通していかなる技術によっても配送可能である。
【００３４】
セキュアプロセッサ１１０はモニタープロセッサ１１１，セキュリティロジック１１２一式，およびセキュリティ情報１１３一式を含む。セキュアプロセッサ１１０はモニターモードまたはセキュアモードの両方で動作できる。モニターモードで動作するとき，セキュアプロセッサ１１０はモニタープロセッサ１１１を有する回路を利用する。セキュアモードで動作するとき，セキュアプロセッサ１１０はモニタープロセッサ１１１およびセキュリティロジック１１２を有する回路と，セキュリティ情報１１３を含むデータを利用する。
【００３５】
１．  モニタープロセッサ
モニタープロセッサ１１１は内部バス１１４，ＣＰＵ  Ａ１００，ＣＰＵメモリインターフェイスＡ１０３，大容量ストレージインターフェイスＡ１３５，メモリインターフェイスＡ１４０，アプリケーション固有回路Ａ１４５，大容量ストレージデバイスＡ１５０，ＲＡＭ  Ａ１５５を有する。
【００３６】
内部バス１１４はモニタープロセッサ１１１の部分間で，データのリクエストやデータを含む反応などの信号を通信可能である。内部バスはＣＰＵメモリインターフェイスＡ１０３，大容量ストレージインターフェイスＡ１３５，メモリインターフェイスＡ１４０，アプリケーション固有回路Ａ１４５，大容量ストレージＡ１５０と連結する。ＣＰＵ  Ａ１００はここで述べた機能の実行が可能な汎用プロセッサまたは特殊用途プロセッサを有する。例えばＣＰＵ  Ａ１００は，ＡＭＤ社またはインテル社製造の汎用プロセッサ，ＤＳＰや内蔵マイクロコントローラなどの特殊用途プロセッサを含む。
【００３７】
ＣＰＵメモリインターフェイスＡ１０３はＣＰＵ  Ａ１００に連結する。ＣＰＵメモリインターフェイスＡ１０３はＣＰＵ  Ａ１００からのメモリアクセスリクエストを受信し，ＣＰＵ  Ａ１００のＲＡＭ  Ａ１５５へのアクセスを記録する。一つの実施形態では，ＣＰＵメモリインターフェイスＡ１０３はそのような全てのアクセスを記録するが，他の実施形態ではＣＰＵメモリインターフェイスＡ１０３は，セキュリティロジック１１２またはセキュリティ情報１１３によって指定された１セットの選択されたメモリ位置に特定したアクセスのみなど，記録するアクセスを選択することができる。
【００３８】
大容量ストレージインターフェイスＡ１３５は大容量ストレージＡ１５０とともに適切なインターフェイス機能を実施する。大容量ストレージＡ１５０はハードディスク，フレキシブルディスク，テープ，または他のタイプの大容量ストレージを含む。
【００３９】
メモリインターフェイスＡ１４０は外部メモリ（ＲＡＭ  Ａ１５５を指す）に対して適切なインターフェイス機能を実行する。ＲＡＭ  Ａ１５５は書き込み可能でも不可能でも，書き込み可能な場合一回のみ可能でもそれ以上でも，ＲＡＭのあらゆる形状を含む。
【００４０】
アプリケーション固有回路Ａ１４５は，ＣＰＵ  Ａ１００によってまだ実行されていない，特定のモニタープロセッサ１１１に特有なその他の機能を実行する。ＣＰＵ  Ａ１００とアプリケーション固有回路Ａ１４５は互いに連結・連帯して選択された機能を実行できる。
【００４１】
２．  セキュリティロジック
セキュリティロジック１１２は，セキュアモード切替回路Ａ１０５，セキュアタイマー回路Ａ１１０，セキュアブートコードＡ１１５一式，アクセスコントロール回路Ａ１３３，セキュアモードアクティブ信号Ａ１６０，アクセスコントロール信号Ａ１６３，ＮＭＩ（マスク不可能な割り込み）信号Ａ１６５，外部リセット信号Ａ１７０の受信のためのポートＡ１７１を有する。さらにセキュリティ機能の手助けをするセキュアコードＡ１２０一式は大容量ストレージＡ１５０に保存される。
【００４２】
セキュアプロセッサ１１０は外部リセット信号１７０Ａに反応することができる。ＣＰＵ  Ａ１００はリセット信号１７０Ａに応じて，セキュアブートコードＡ１１５の予め選択されたリセット位置へとコントロールを移動させる（つまり新しい位置にて命令の実行を開始する）。予め選択されたリセット位置もセキュアブートコードＡ１１５も，ＣＰＵ  Ａ１００または他のアプリケーションソフトウェアによって変更はできない。
【００４３】
リセット信号１７０Ａに応じて，セキュアモード切替回路Ａ１０５はセキュアモードアクティブ信号Ａ１６０を発信するが，それによりＣＰＵ  Ａ１００がセキュアブートコードＡ１１５にアクセス可能となるようアクセス権がセットアップされ，命令を実行し，セキュリティ情報１１３を利用してデータの読み書きを行う。リセットの際には，セキュアプロセッサ１１０がコントロールをリセット位置へと移動させ，セキュアブートコードＡ１１５を実行し，（セキュアモードアクティブ信号Ａ１６０がＴＲＵＥを示す状態で）ＣＰＵ  Ａ１００はチップの制限されたセキュア部分へアクセス可能となる。ある実施形態では，セキュアブートコードＡ１１５が個々の不揮発性メモリＡ１１５に保存され，その位置もコンテンツもアプリケーションソフトウェアは変更できない。
【００４４】
セキュアブートコードＡ１１５は，必要とされるセキュリティチェックを実行した後，セキュアカーネルコードＡ１２０に含有されるいかなる追加のソフトウェアもセキュリティ機能も，外部大容量ストレージＡ１５０から内部ＲＡＭ  Ａ１２０の中へ配置し読み込む。
【００４５】
追加のソフトウェアを配置し読み込んだ後，ＣＰＵ  Ａ１００はコントロールをセキュアコードＡ１２０（＝セキュアカーネルコード）へと移動させ，セキュアコードを実行開始する。セキュアコードＡ１２０によりＣＰＵ  Ａ１００はアプリケーションコード１４３を認証・実行する準備を始める。アプリケーションコード１４３の実行のための準備が完了すれば，セキュアコードＡ１２０によりセキュアプロセッサ１１０がセキュアモードを終了する。
【００４６】
セキュアプロセッサ１１０はさらにＮＭＩ信号Ａ１６５に反応することができる。ＮＭＩ信号Ａ１６５は，セキュアモードでサービスが実行されるようリクエストするために，例えばアプリケーションコード１４３により（例えばＣＰＵ  Ａ１００によって実行可能なプログラム命令により）発信される。そのようなサービスの例としては，セキュアコードＡ１２０のみが実行の権限を有するセキュア機能または他の機能を実行することである。そのようなサービスを要求するには，アプリケーションコード１４３はセキュリティロジック１１２に選択されたビットを設定する。セキュアモードロジックはセキュアモードアクティブ信号Ａ１６０をＴＲＵＥとなるように設定し，それによりＣＰＵ  Ａ１００はセキュアプロセッサ１１０のセキュア部へアクセス可能となる。同時にセキュリティロジック１１２はＮＭＩ信号Ａ１６５をＣＰＵ  Ａ１００へ送信し，ＣＰＵ  Ａ１００がチップ内のセキュアブートコードＡ１１５へコントロールを移動させる。セキュアブートコードＡ１１５は，アプリケーションのためのサービスを実行し，ＲＡＭ  Ａ１５５のいくつかの共用メモリ位置へ結果を提供し，セキュリティロジック１１２を利用してモニターモードへ移行する。予め選択されたＮＭＩハンドラ位置，セキュアブートコードＡ１１５，そしてセキュリティカーネルソフトウェアの読み込みおよび検証を行う方法は，ＣＰＵ  Ａ１００または他のアプリケーションソフトウェアは変更できない。
【００４７】
ここで述べたように，セキュアカーネルコードＡ１２０は内部メモリ（不揮発性メモリ，または外部ストレージから読み込み認証された場合は揮発性メモリも）に保存される。セキュアモード切替回路Ａ１０５はセキュアモードアクティブ信号Ａ１６０を発信し，それによりＣＰＵ  Ａ１００はセキュアブートコードＡ１１５を含む不揮発性メモリＣ１００へアクセス可能となり，よってＣＰＵ  Ａ１００は命令を実行し，セキュリティ情報１１３を利用してデータの読み書きを行う。
【００４８】
セキュアタイマー回路Ａ１１０は，セキュアモード切替回路Ａ１０５によって設定されたパラメータに応じて，ＣＰＵ  Ａ１００へのタイマー割り込み信号を発信することができる。セキュリティロジック１１２はまた，セキュアタイマーのタイムアウトに応じて，ＮＭＩ信号Ａ１６５をＣＰＵ  Ａ１００へ発信できる。これに対しＣＰＵ  Ａ１００は，セキュアカーネルコードＡ１２０にある予め選択されたタイマー割り込みハンドラ位置へコントロールを移動させる。その予め選択されたタイマー割り込みハンドラ位置もセキュアカーネルコードＡ１２０も，ＣＰＵ  Ａ１００や他のアプリケーションソフトウェア（または外部ストレージＡ１５０に保存された他のソフトウェア）は変更できない。
【００４９】
セキュアモードに入るためのその他の方法と同様に，セキュアプロセッサ１１０はタイマー割り込み信号Ａ１６５に応じて，セキュアモードアクティブ信号Ａ１６０をＴＲＵＥに設定し，その結果セキュアチップのセキュア部分へのアクセスを可能にする。
【００５０】
アクセスコントロール回路Ａ１３３は，セキュアモードアクティブ信号Ａ１６０に応じてアクセスコントロール信号Ａ１６３を発信することによってセキュアプロセッサ１１０のエレメントへのアクセスを制御するもので，前記エレメントはアクセスコントロールが実行されるセキュアプロセッサ１１０の各エレメントと連結する。セキュアモードアクティブ信号Ａ１６０が，セキュアプロセッサ１１０がセキュアモードにあることを示す時，アクセスコントロール回路Ａ１３３は，ＣＰＵ  Ａ１００がセキュアプロセッサ１１０の全てのエレメントへアクセスすることを許可する。一方，セキュアモードアクティブ信号Ａ１６０が，セキュアプロセッサ１１０がモニターモードにあることを示すとき，アクセスコントロール回路Ａ１３３は，ＣＰＵ  Ａ１００がセキュアプロセッサ１１０の下位互換性のあるモニターモード部分にのみアクセスすることを許可する。好ましい実施形態では，そのような下位互換性のあるモニターモード部分はセキュリティロジック１１２（セキュアモードへの移行を示すもの以外）およびセキュリティ情報１１３を除外する。
【００５１】
さらに具体的には，セキュアモードアクティブ信号Ａ１６０が，セキュアプロセッサ１１０がモニターモードにあることを示すとき，アクセスコントロール回路Ａ１３３は，ＣＰＵ  Ａ１００が以下にアクセスすることを阻止する：セキュアモード切替回路Ａ１０５（セキュアモードへの移行を示すもの以外），セキュアタイマー回路Ａ１１０，セキュアブートコードＡ１１５，セキュアカーネルコードＡ１２０，アクセスコントロール回路Ａ１３３，セキュアモードアクティブ信号Ａ１６０，アクセスコントロール信号Ａ１６３，リードオンリー・セキュアデータＡ１２５，リード／ライト（読み書き自在）一時的セキュア状況値Ａ１３０，暗号化／暗号解読キーＢ１０１，ライセンス供与情報Ｂ１０２。
【００５２】
３．セキュリティ情報
セキュリティ情報１１３は，リードオンリー・セキュアデータＡ１２５一式，リード／ライト一時的セキュア状況値Ａ１３０一式，個人キー一式（公開鍵暗号システムなどから得られるもの），暗号化／暗号解読キー一式，任意のユニークＩＤ一式，署名情報Ｂ１０１一式を含む。
【００５３】
リードオンリー・セキュアデータＡ１２５は，以下に示すようなセキュアコード一式を含む。即ち，リセット信号Ａ１７０に応じて，随意のＮＭＩ信号Ａ１６５に応じて，タイマー割り込み信号Ａ１６５に応じて，或いはその他ではセキュアモードに移動したときに，ＣＰＵ  Ａ１００により実行可能となるコードなどを含む。ある実施形態では，リードオンリー・セキュアデータＡ１２５は，好ましくは個々のセキュアプロセッサ１１０に独自な，一またはそれ以上の個人キー一式と暗号化／暗号解読キーＢ１０１一式を有する。そのような実施形態でセキュアプロセッサ１１０は，公開鍵暗号システムを利用する信頼できるソース（発信元）からのメッセージを暗号解読するために暗号化／暗号解読キーＢ１０１を使う（例えば公開鍵暗号システムの個人／公開キーの個人キーを利用するなど）。そのほか，セキュアプロセッサ１１０は暗号化／暗号解読キーＢ１０１とは異なる他のコード署名Ｂ１０３一式を有し，認証のために他の技術を利用している信頼できるソースを認証する。同様に，このような実施形態においてセキュアプロセッサ１１０は，例えば認証された信頼できるソースから追加のセキュアコードを受信した際に，その追加セキュアコードに付随するデジタル署名またはセキュアハッシュの正確さに留意することで，メモリに読み込まれる追加セキュアコードの精度を検証するためにコード署名Ｂ１０１を利用する。
【００５４】
ある実施形態では，リードオンリー・セキュアデータＡ１２５はキー情報Ｂ１０２を含み，それにより個々のセキュアプロセッサ１１０はソースを認証し，個々のセキュアプロセッサ１１０が関連するアプリケーションソフトウェアを受信または実行する権利を有することを検証できる。例えばライセンス供与情報Ｂ１０２は，個々のセキュアプロセッサ１１０が関連するアプリケーションソフトウェアを実行するライセンスを有することを示す，信頼できる専門家による署名の入った証明書を含む。そのような実施形態では，認証された信頼できるソースはライセンス供与情報Ｂ１０２に応じて，アプリケーションソフトウェアの読み込み及び実行のための関連機能をセキュアプロセッサ１１０に供給する。ある実施形態ではこれらの機能は，アプリケーションソフトウェア自体，またはセキュアプロセッサ１１０がアプリケーションソフトウェアを読み込み及び実行することを承認するＤＲＭ（デジタル著作権管理）証明書の双方を含む。
【００５５】
リード／ライト一時的セキュア状況値Ａ１３０は，セキュアプロセッサ１１０がセキュアコードを実行するために必要とするいかなる読み書き自在の一時的な記憶情報をも含む。ある実施形態では，セキュアプロセッサ１１０がその一時的な状況の全てをリード／ライト一時的セキュア状況値Ａ１３０に保存し，その結果アプリケーションコードはセキュアコードによって使用されるいかなる状況情報にもアクセスできなくなる。さらにセキュアプロセッサ１１０は，ＣＰＵ  Ａ１００によって実行されるいかなるソフトウェアに対しても適切な認証や有効性チェックを行うために，ＣＰＵ  Ａ１００によって実行可能な命令をセキュアカーネルコードＡ１２０内に有する。リード／ライト一時的セキュア状況値Ａ１３０の中にセキュアプロセッサ１１０の全ての一時的状況を保存することは，その一時的状況を読みセキュアプロセッサ１１０のセキュアモード動作のセキュリティを侵害しようとするユーザーにとって，作業要因を増やす効果がある。しかし他の実施形態では，セキュアプロセッサ１１０は少なくともいくつかの一時的状況を一般メモリに保存することができ，それによりアプリケーションコードはその状況に関連するいくつかの状況値にアクセス可能となる。
【００５６】
動作方法
図２はセキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図を示す。
方法２００はシステム１００によって実行される。方法２００は連続して記載されるが，フローポイントや手順は個々の要素によって，連結または並行して，非同期的または同期的に，またはパイプライン式に実行可能である。方法２００は特に記載のない限り，本明細書の以下にあるフローポイントや手順の順序に従って実行される必要性はない。
【００５７】
１．  電源ＯＮ
フローポイント２１０では，セキュアプロセッサ１１０は電源を入れる準備ができている。
手順２１１では，セキュアプロセッサ１１０は電源が入る。
手順２１２では，リセット信号Ａ１７０がアサートされ，そのためセキュアプロセッサ１１０がリセットされたことを示す。セキュアプロセッサ１１０がリセットされると，セキュアモードアクティブ信号Ａ１６０がアサートされ（つまりＴＲＵＥにセットされ），ＣＰＵ  Ａ１００はセキュアブートコードＡ１１５へジャンプする（つまり実行コントロールを移動させる）。
【００５８】
手順２１３では，ＣＰＵ  Ａ１００がセキュアブートコードＡ１１５へのアクセスの許可を受け，その命令を実行し，セキュリティ情報１１３を使って読み書きを行うことを不揮発性メモリＣ１００（図３）に対し示すセキュアモードアクティブ信号Ａ１６０を，セキュアモード切替回路Ａ１０５がアサートする。その後ＣＰＵ  Ａ１００は，セキュアブートコードＡ１１５の中の予め選択されたリセット位置へコントロールを移動させる。
手順２１４では，ＣＰＵ  Ａ１００はセキュアブートコードＡ１１５からの命令を実行する。
手順２１５では，ＣＰＵ  Ａ１００はセキュアブートコードＡ１１５を実行する。
【００５９】
ある実施形態において，以下に示すＭＩＰＳまたはＭＩＰＳ互換プロセッサにおける実施例では，リセットによってセキュアモードへ入る結果となる。この実施例では，実行方法のフローポイント２５０から開始し，手順２１４と手順２１５に含まれる動作をとる。
・  手順２５１では，リセット信号によってセキュアモードに入ることが要求される。
・  手順２５２では，もしリセット位置０ｘ１ｆｂｃ００００へ後のキャッシュしていない（ｕｎｃａｃｈｅｄ）読み込みが行われた時のみ，セキュリティロジック１１２がセキュアモード信号Ａ１６５をＴＲＵＥにセットする準備を行う。
・  手順２５３では，ＣＰＵ  Ａ１００がリセット信号に応じるため，通常の実行を中断する。
・  手順２５４では，ＣＰＵ  Ａ１００がリセット位置０ｘ１ｆｂｃ００００から次の命令を取得し，それによりリセット割り込みハンドラまたはＮＭＩ割り込みハンドラを作動する。
・  手段２５５では，セキュリティロジック１１２がセキュアモード信号Ａ１６０をＴＲＵＥにセットし，それによりチップのセキュア部へのアクセスおよびセキュアブートコードの実行を可能にする。
・  手段２５６では，ＣＰＵ  Ａ１００がセキュアブートコードＡ１２０中のリセット割り込みハンドラもしくはＮＭＩ割り込みハンドラの実行へ進む。
【００６０】
セキュアブートコードＡ１２０の実行後，大容量ストレージＡ１５０から以下の手順にてセキュリティカーネルまたはセキュリティ機能を読み込む。
セキュアブートコードＡ１１５はセキュリティ情報１１３を読み，暗号によって署名された，もしくは検証可能な命令を受ける。そしてそれら追加命令を内部ＲＡＭ  Ａ１５５へ記憶する。この手順の実行のために以下のサブステップをＣＰＵ  Ａ１００が実行する：
【００６１】
・  サブステップ２１５では，セキュアモードで動作するＣＰＵ  Ａ１００が，セキュアブートコードＡ１２０によって読み込まれ認証された大容量ストレージＡ１５０からのソフトウェア（サーバデバイスから取得したものである可能性もある）を実行する。ある実施形態では，セキュアモードで動作するＣＰＵ  Ａ１００のみアクセス可能な，リードオンリー・セキュアデータＡ１２５に含まれる暗号化／暗号解読キーＢ１０１を利用してメッセージを暗号化する。
ある実施形態においては，ＣＰＵ  Ａ１００は追加命令をコミュニケーションリンクを利用して取得するが，他の実施形態ではシステム１００は追加命令を（一部でも全体でも）他の手段で取得する。例えば，（１）物理的な媒体手段によって，または（２）ＤＲＭ（デジタル著作権管理）証明書または他のサーバデバイスから取得される機能を有する第三者によって，それら追加命令を取得する可能性もある。
さらに，ある実施形態においては追加命令が暗号化形態によって送られるが，他の実施形態では，ＤＲＭ証明書または他の機能や技術を利用して管理される追加命令への使用権を施行することで，暗号化されていない形態の追加命令を（一部でも全体でも）システム１００が取得することができる。
【００６２】
・  サブステップ２１６では，チップ内部からのセキュア情報，またはセキュアなソフトウェアやデータによって既に信頼関係を樹立した信頼できるサーバからのメッセージに関し検証済みのセキュア情報に関し，セキュアモードで動作するＣＰＵ  Ａ１００がソフトウェアを認証し，その安全性を検証する。ある実施形態では，ＣＰＵ  Ａ１００はこの認証のためのサブステップを，リードオンリー・セキュアデータＡ１２５に含まれる暗号化キーまたはコード署名Ｂ１０１を使った公開鍵暗号システム，または信頼できるサーバ１３０からの，暗号化／暗号解読キーＢ１０１またはリードオンリー・セキュアデータＡ１２５に含まれる他の情報（例えば信頼できるサーバ１３０の公開キーなど）を利用して実行する。
【００６３】
・  サブステップ２１６では，セキュアプロセッサ１１０がアプリケーションソフトウェアまたは他の追加命令を信頼できるサーバ１３０から受信する認証を受けていることを，信頼できるサーバ１３０が状況に応じて検証する。ある実施形態では，公開鍵暗号システム，リードオンリー・セキュアデータＡ１２５からの暗号化／暗号解読キーＢ１０１，またはライセンス供与情報Ｂ１０２やリードオンリー・セキュアデータＡ１２５からの他の情報を利用して，ＣＰＵ  Ａ１００がこの検証のためのサブステップを実行する。
【００６４】
当業者ならば本明細書を熟読すれば，暗号化署名や信用されたルートキーを利用するソフトウェアやサーバからのデータの認証のためには，多くの他の技術が利用できることが理解できる。また，そのような認証が信頼できるサーバ１３０のためだけのものである必要はない。他の実施形態では，サーバやクライアントが互いに認証し合うこともできる。
【００６５】
・  サブステップ２１７では，セキュアモードで動作するＣＰＵ  Ａ１００が，信頼できるサーバ１３０からアプリケーションソフトウェアや他の追加命令を受け，それらの正確度（ａｃｃｕｒａｃｙ）を検証する。ある実施形態では，ＣＰＵ  Ａ１００はこの検証のためのサブステップを，公開鍵暗号システムやリードオンリー・セキュアデータＡ１２５からの暗号化／暗号解読キーＢ１０１，またはアプリケーションソフトウェアやリードオンリー・セキュアデータＡ１２５からの他の追加命令のためのセキュアハッシュを利用して実行する。
・  サブステップ２１８では，セキュアモードで動作するＣＰＵ  Ａ１００がアプリケーションソフトウェアや他の追加命令をＲＡＭ  Ａ１５５に記憶する。このサブステップによりアプリケーションソフトウェアや他の追加命令がＣＰＵ  Ａ１００によって実行される準備が整う。
【００６６】
アプリケーションソフトウェアの認証および読み込みのための方法例を上記に述べたが，他のさらなる技術が適応されることもできる。上述のように，本発明の状況では，アプリケーションソフトウェアの認証のために必ずしも特定の技術が用いられる必要はなく，具体的には，アプリケーションソフトウェアの認証のために必ずしも信頼できるサーバ１３０とのインターアクティブ通信が用いられる必要はない。
【００６７】
ある実施形態において，セキュアカーネルコードＡ１２０の少なくともいくらかの部分が，追加命令としてセキュアプロセッサ１１０によって取得される。他の実施形態では，以下の技術が利用される：
【００６８】
・  立ち上げ（電源ＯＮまたはリセット信号の受信）では，ＣＰＵ  Ａ１００は，セキュアブートコードによって正しくセキュアであると検証されたセキュアカーネルコードＡ１２０の実行を強制される。
・  ブートストラップローダによってプログラムコードを読み込んだ後，ＣＰＵ  Ａ１００はセキュアカーネルコードＡ１２０を実行し，それにより大容量ストレージＡ１５０または他の外部デバイスから内部メモリへの，セキュリティ機能の実行のためのコードの移動およびコピーを行う。他の実施形態では，内部メモリがＳＲＡＭメモリのようなオンチップ揮発性メモリである。
【００６９】
不揮発性ライトワンス（ｗｒｉｔｅ  ｏｎｃｅ）メモリＣ１１０はセキュアプロセッサチップの製造段階で，例えば１６０ビットのセキュアハッシュまたはダイジェスト値など，暗号強度が高い署名値にて初期値の設定が行われる。ある実施形態では，前記セキュアハッシュまたはダイジェスト値は，ＳＨＡＩセキュアハッシュまたは他の暗号強度が高い署名値を有する。不揮発性ライトワンスメモリの構成および初期値設定によって，セキュアプロセッサチップの製造の後，アプリケーションソフトウェアによって変更されるのを阻止する。
【００７０】
セキュアカーネルコードＡ１２０のブートストラップローダ部は新しく読み込んだプログラムコードの署名を計算し，その計算した署名と，不揮発性メモリＣ１００に既に内部記憶された予め計算されている署名とを比較する。もしその計算された署名と予め計算されている署名とが合致する場合，セキュアカーネルコードＡ１２０のブートストラップローダ部は，新しく読み込んだプログラムコードが正確で信頼できるものであると判断を下す。この判断を受けたとき，ＣＰＵ  Ａ１００はセキュアコードの新しく読み込んだプログラムを実行できる。
【００７１】
ある実施形態では，セキュアモードにて実行されるべき追加ソフトウェアを読み込む度に，ＣＰＵ  Ａ１００は新しく読み込んだプログラムコードが正確で信頼できるものかどうかを再度検証する。例えばそのような場合とは（１）セキュアカーネルコードＡ１２０の一部分がＲＡＭ  Ａ１５５や大容量ストレージＡ１５０，または他の外部デバイスから読み込まれる時，（２）例えば新しいセキュリティ機能もしくはセキュアカーネルコードＡ１２０によって提供される新しい機能などの追加ソフトウェアが，セキュアカーネルコードＡ１２０へ追加または読み込まれるのが望ましい時である。
【００７２】
ある実施形態では，ＣＰＵ  Ａ１００は新しく読み込まれたプログラムコードの各モジュールが正確で信頼に値するものであることをそれぞれ検証する。例えばそのような場合とは（１）複数モジュールがＲＡＭ  Ａ１５５，大容量ストレージＡ１５０，またはその他の外部デバイスから読み込まれた場合，各モジュールの予め計算された署名を管理する，（２）追加のソフトウェアが一連のモジュールへ読み込まれるのが望ましい時，予め計算された新しい署名を各モジュールへ順に移動させる（３）各モジュールに対し個別に予め計算された署名と，モジュール一式に対し予め計算された一署名との両方を保存する。
手順２１９では，セキュアプロセッサ１１０はセキュアモードを終了してモニターモードへと移行する。一般的なセキュアモードからの終了方法は，後述する。
【００７３】
２．  サービスのリクエスト
フローポイント２２０では，セキュアプロセッサ１１０はモニターモードにてアプリケーションソフトウェアを実行している。セキュアモードはアプリケーションソフトウェアからのサービスのリクエストを受ける準備ができている。
手順２２１では，アプリケーションソフトウェアはセキュアプロセッサ１１０へサービスのリクエストを提供する。
手順２２２では，ある実施形態において，アプリケーションソフトウェアがサービスのリクエストのためのパラメータをセキュアモードロジックの選択されたレジスタへ配置する。
【００７４】
手順２２３では，セキュアモードロジック１１２がセキュアモード信号Ａ１６０をＴＲＵＥにセットする。
手順２２４では，セキュアモードロジック１１２がＣＰＵ  Ａ１００に対しＮＭＩ割り込み信号を発信し，それによりＣＰＵ  Ａ１００はサービスのリクエストに応じるためにセキュアカーネルコードＡ１２０へコントロールを移動する。
手順２２５では，手順２１３と同様に，ＣＰＵ  Ａ１００はセキュアコードの予め選択された割り込みハンドラ位置へとジャンプする。セキュアモード切替回路Ａ１０５はセキュアモードアクティブ信号Ａ１６０をアサートするタイマーに関与し，そのセキュアモードアクティブ信号Ａ１６０によってＣＰＵ  Ａ１００はセキュアコードにアクセスし，命令を実行し，セキュリティ情報１１３を使ってデータの読み書きを行うことができる。
【００７５】
手順２２６では，手順２１４と同様に，ＣＰＵ  Ａ１００はセキュアコードからの命令を実行する。セキュアコードはＮＭＩ割り込み（マスク不可能な割り込み）の処理を行う。
ある実施形態における，以下に示すＭＩＰＳおよびＭＩＰＳ互換性プロセッサでの実施例では，アプリケーションコード１４３のリクエストによってセキュアモードに入るという結果を得た。この実施はフローポイントの２５０から開始する。
【００７６】
・  アプリケーションがセキュアモードロジック中のレジスタへキャッシュしていない読み込みを実行する。これはセキュアモードロジックを，ＮＭＩリセット位置である０ｘｂｆｃ００００からの次の読み込みと出会ったときだけ条件に応じてセキュアモードへと移行するよう保護する。
・  手順２５２では，リセット位置である０ｘｂｆｃ００００へ次のキャッシュしていない読み込みが行われた時のみ，セキュリティロジック１１２はセキュアモード信号Ａ１６５をＴＲＵＥにセットする。
・  手順２５３では，セキュリティロジック１１２によりＮＭＩ信号がＣＰＵ  Ａ１００へアサートされる。
【００７７】
・手順２５４では，ＣＰＵ  Ａ１００は位置０ｘｂｆｃ００００から次の命令をフェッチしようと試みるが，これによりリセット割り込みハンドラまたはＮＭＩ割り込みハンドラが起動する。
・手順２５５では，セキュリティロジック１１２はセキュアモード信号Ａ１６５をＴＲＵＥにセットし，それによりチップのセキュア部へのアクセス及びブートセキュアコードの実行が可能となる。
・手順２５６では，ＣＰＵ  Ａ１００がセキュアコードＡ１２０にあるリセット割り込みハンドラまたはＮＭＩ割り込みハンドラの実行へ進む。
【００７８】
ある実施形態では，セキュアモードロジックのレジスタはセキュアモードへ入る理由（例えばリセットのため，アプリケーションコードからリクエストがあるためなど）を示すために保持される。
セキュアカーネルはセキュアモードへ入る原因を判断し，場合によってはチップの侵入禁止領域を読み込むことでアプリケーションによってリクエストされたサービスを実行し，アプリケーションと共用するメモリ領域へ結果を返信する。
【００７９】
リクエストされた動作を実行した後，セキュアカーネルはセキュアモードロジックを通って規定の終了手順（以下に述べる）を開始し，アプリケーションコード１４３へ戻る。
手順２２７では，セキュアプロセッサ１１０はリクエストされた動作の結果をＲＡＭ  Ａ１５５などの共用メモリへ保存する。
ある実施形態では，アプリケーションソフトウェアによって供給されたサービスのリクエストには，入出力動作を実行するリクエストが含まれる。そのような場合，セキュアプロセッサ１１０はセキュアモードで実行される少なくともいくつかの入出力動作を保留する。その結果，アプリケーションソフトウェアはセキュアコードからの補助なしではそのような入出力動作を実行できない。
【００８０】
アプリケーションソフトウェアは，リクエストされたサービスが入出力動作であることを示すサービスのリクエストを，リクエストに付随するパラメータによって提示する。リクエストに付随するパラメータは，好ましくはアプリケーションソフトウェアを実質的に変更せずにそのアプリケーションソフトウェアと連携して動作を行うために，セキュアプロセッサ１１０に合わせて設計者によって選択されたＡＰＩ（アプリケーション・プログラミング・インターフェイス）に従う。
ある実施形態では，アプリケーションソフトウェアによって提示されたサービスのリクエストが，追加ソフトウェアの読み込みリクエストを含むこともできる。そのような実施形態では，セキュアプロセッサ１１０は手順２１４およびそのサブステップに類似した手順を踏む。これによりシステム１００において手順２１４に類似したサブステップでは，ＣＰＵ  Ａ１００は信頼できるサーバ１３０をサーバデバイスとして認証し，大容量ストレージＡ１５０または信頼できるサーバ１３０から追加ソフトウェアを読み込み／受信し，さらにそのソフトウェアの信頼性や安全性を検証した後にＲＡＭ  Ａ１５５に記憶する。
【００８１】
エラートラップまたは入出力エミュレーションは上記と同じ例示的メカニズムによってセキュアモードロジックを通って処理される。その場合セキュアモードロジックはＣＰＵがセキュアモードへ入り，エラートラップや入出力リクエストを処理するために予め認証されたソフトウェアを必要に応じて実行するよう強制する。
手順２２８では，セキュアプロセッサ１１０はセキュアモードからモニターモードへと終了する。セキュアモードの終了のための一般的な実施例は，のちに概説する。
【００８２】
３．  タイマー割り込み
フローポイント２３０では，セキュアプロセッサ１１０はモニターモードにて動作中のアプリケーションソフトウェアに割り込みできるタイマーをセットしており，タイマーはオフになる準備ができている。
手順２３１では，手順２２１と同様にタイマーがオフとなり，アプリケーションソフトウェアは割り込みされる。
手順２３２では，手順２２２と同様にタイマー割り込み信号Ａ１６５がアサートされ，それによりセキュアプロセッサ１１０の処理が割り込まれたことを示す。
ＭＩＰＳまたはＭＩＰＳ互換性プロセッサにおけるセキュアタイマートラップの実施例は，以下の通りである。この実施例はフローポイント２５０から始まる手順に類似する。
【００８３】
・  セキュアタイマーは，ゼロまでカウントダウンしてセキュアタイマートラップの周期性を判断する値へとリセットするために，ＣＰＵのリセットセキュアブートソフトウェアにプログラムされる。
・  タイマーはプログラムされた設定からゼロに達するまでカウントダウンし，ＮＭＩ信号Ａ１６５をＣＰＵに出力し（実行経路に割り込ませる），セキュアモードロジックが，次にキャッシュしていない読み込みのリクエストがＮＭＩルーチン回路へ送られた場合のみ，条件に応じてセキュアモードアクティブ信号をアサートするよう保護する。
・  ＣＰＵは，タイマー割り込みが行われた時点で望まれる動作を実行するようセキュアカーネルが属するＮＭＩルーチンを実行するためにジャンプする。
・  セキュアモードロジックは，ＮＭＩ位置への読み込みが確認された時点でセキュアモードアクティブ信号をＴＲＵＥへとセットし，チップ内のセキュアリージョン（領域）へのアクセスを許可する。
・  タイマートラップの処理に関与するセキュアカーネルルーチンは，動作を実行し，最後にセキュアモードロジックを通って再度セキュアモードへ入る。
【００８４】
手順２３６では，ＣＰＵ  Ａ１００はセキュアコードを出てアプリケーションソフトウェアの実行ポイントへと戻る。セキュアモード切替回路Ａ１０５はセキュアモードアクティブ信号Ａ１６０のアサートを停止し，それによりＣＰＵ  Ａ１００にはセキュアコードへのアクセスも，命令の実行も，セキュリティ情報１１３を利用したデータの読み書きも許可されないことを示す。
【００８５】
４．  モニターメモリアクセス
フローポイント２４０では，セキュアプロセッサ１１０は，モニターモードで実行しているアプリケーションソフトウェアによる外部メモリへのアクセスを記録する準備ができている。
手順２４１では，ＣＰＵ  Ａ１００はＲＡＭ  Ａ１５５への読み書きを行う。この手順のために，ＣＰＵ  Ａ１００はＣＰＵメモリインターフェイスＡ１０３へメモリアドレスを送る。
手順２４２では，ＣＰＵメモリインターフェイスＡ１０３は前記メモリアドレスを内部バス１１４へ伝送し，その内部バス１１４は該メモリアドレスをメモリインターフェイスＡ１４０およびセキュリティロジック１１２へと伝送する。
【００８６】
手順２４３では，アクセスコントロール回路Ａ１３３を含むセキュリティロジック１１２が，ＣＰＵ  Ａ１００がＲＡＭ  Ａ１５５内のメモリアドレスにアクセスすべきかどうかを判断する。ある実施形態では，ＣＰＵ  Ａ１００によるＲＡＭ  Ａ１５５内のメモリアドレスへのアクセスは常に許可される。しかし他の実施形態では，アクセスコントロール回路Ａ１３３がＣＰＵ  Ａ１００による選択されたメモリアドレスへのアクセスを制限することができ，そのためＣＰＵ  Ａ１００がモニターモードにて動作しているときＲＡＭ  Ａ１５５の選択された部分は孤立する。
【００８７】
手順２４４では，アクセスコントロール回路Ａ１３３を有するセキュリティロジック１１２が，ＣＰＵ  Ａ１００によるＲＡＭ  Ａ１５５内の該メモリアドレスへのアクセスを記録する。ある実施形態では，ＣＰＵ  Ａ１００は選択されたメモリアドレスのみを記録する。例えばＣＰＵ  Ａ１００がモニターモードで動作中にアクセスを記録するために，アクセスコントロール回路Ａ１３３は一以上のＲＡＭ  Ａ１５５の部分を選択できる。しかし他の実施形態では，アクセスコントロール回路Ａ１３３は前述のようなメモリアクセスの全ての記憶を試みることも，メモリアクセスのパターンに応じてメモリアクセスを記録することも，セキュアモードで動作しているＣＰＵ  Ａ１００によって選択された他の基準に応じてメモリアクセスを記録することも可能である。アプリケーション仕様の制限情報は，アプリケーションが開始する通常の制限認証チェックの間，セキュリティソフトウェアによって読み込みが可能である。
【００８８】
以下の実施形態では，上記メカニズムのいずれかにおけるセキュアモード終了の実施方法が上げられる。
・  セキュアモードへの移動の理由を示すレジスタがクリア（除去）される。
・  ソフトウェアがセキュアカーネルソフトウェアを実行するために使われた全てのキャッシュまたは内部メモリ領域をクリアする。
・  ＮＭＩルーチンからセキュアカーネルソフトウェアが戻る。
不揮発性メモリ
図３は実質的に消去不可能な方法で不揮発性メモリを構成するためのデバイスを含む回路の構成図を示す。
回路３００は不揮発性メモリＣ１００，ディセーブル（不可能）ロジックＣ１１０，外部プログラムロジック回路Ｃ１２０，非接合ピンＣ１３０，外部プログラミングピン３４０一式を有する。
【００８９】
ある実施形態では，不揮発性メモリＣ１００はフラッシュメモリまたは他の電気的にプログラム可能で読み込み可能なメモリを含み，それにより回路３００は不揮発性メモリＣ１００がデータでプログラムされたか否かを判断できる。本発明の状況では，ここで述べる機能を実行できる限り，不揮発性メモリＣ１００は特定のメモリ技術を有する必要はない。
ディセーブルロジック回路Ｃ１１０は外部プログラムロジック回路Ｃ１２０と連携するが，それによりディセーブルロジック回路Ｃ１１０からのプログラムイネーブル信号が休止になったとき，外部プログラムロジック回路Ｃ１２０への入力が不可能になり，不揮発性メモリＣ１００は外部プログラミングピンから電気的にプログラムできなくなる。
【００９０】
ディセーブルロジック回路Ｃ１１０もまた不揮発性メモリＣ１００に連携されており，不揮発性メモリＣ１００からの値を読み込むこと，さらにそれらの値をプログラムイネーブル署名値と比較することが可能であり，それによりディセーブルロジック回路Ｃ１１０は不揮発性メモリＣ１００が初期段階にプログラムされたか否かを判断できる。もし不揮発性メモリＣ１００がプログラムイネーブル署名値と初期段階でプログラムされたものであれば，ディセーブルロジック回路Ｃ１１０は外部プログラムロジック回路Ｃ１２０への入力を可能にし，それにより不揮発性メモリＣ１００は電気的にプログラム可能になる。プログラムイネーブル署名値が不在な場合，ディセーブルロジック回路Ｃ１１０からのプログラムイネーブル出力が不可能になる。
【００９１】
非接合ピンＣ１３０は，セキュアプロセッサチップダイに配置され，ダイの実装前に精査可能な，いかなる外部ウィングや実装体にも接合されていない，電気的に伝導性のあるパッドを有する。これにより非接合ピンＣ１３０はセキュアプロセッサチップの製造時に外部回路と電気的に連結可能であるが，製造または実装の後，該非接合ピンＣ１３０は実質的にいかなる外部回路へも電気的に連結不可能となる。よってセキュアプロセッサチップの製造後そして実装前は，非接合ピンＣ１３０は不揮発性メモリＣ１００のプログラミング時に利用が可能であるが，製造および実装が完了すると，該非接合ピン１３０は不揮発性メモリＣ１００のプログラミング時に利用不可能となり，それにより外部からの不揮発性メモリＣ１００のプログラミング動作は不可能となる。
【００９２】
製造後のウエハーテストでは，非接合ピンＣ１３０は選択された電圧（ロジック“０”）と連結され，それによりディセーブルロジックＣ１１０からのプログラムイネーブル出力の状況に関わらず，外部プログラムロジック回路Ｃ１２０はイネーブル（有効化）され，不揮発性メモリＣ１００は電気的にプログラム可能となる。
【００９３】
独自情報の記録方法
図４は実質的に消去不可能な方法で不揮発性メモリを構成するデバイスを含む回路の動作方法を示す工程系統図を示す。
方法４００はセキュアプロセッサ１１０の組み立ての際に，回路３００に関し実行される。方法４００は連続して記載されるが，フローポイントおよび手順は各々の要素によって連結または並行して，非同期的にまたは同期的に，またはパイプライン式に実行可能である。方法４００は特に記載のない場合，本明細書にあるフローポイントや手順の順序に従って実行される必要性はない。
フローポイント４１０では，セキュアプロセッサ１１０の不揮発性メモリＣ１００はプログラムされる準備ができている。ある実施形態では，この方法によってこの特定のセキュアプロセッサ１１０に特有なセキュリティ情報が不揮発性メモリに記録される。
【００９４】
手順４１１では，非接合ピンＣ１３０は選択された電圧（ロジック“０”）と連結され，それにより外部プログラムロジック回路Ｃ１２０はイネーブル（有効化）され，不揮発性メモリＣ１００は電気的にプログラム可能となる。
【００９５】
手順４１２では，不揮発性メモリＣ１００に（最後のメモリ位置に配置された）初期プログラムイネーブル署名値が電気的にプログラムされ，それにより不揮発性メモリＣ１００はさらにプログラムされる準備が整う。
手順４１３では，回路３００が実装され，それにより非接合ピンＣ１３０は外部回路との連結が不可能となる。
手順４１４では，不揮発性メモリＣ１００が電気的にプログラムされる。
この手順が実行される実施形態においては，セキュアプロセッサ１１０の固有のインスタンスに特有なセキュリティ情報１１３は，不揮発性メモリＣ１００に記録される。その結果，セキュアプロセッサ１１０の固有のインスタンスが各インスタンスごとに唯一に識別可能になり，信頼できるサーバ１３０に対し自らを唯一に識別できる。
【００９６】
手順４１５では，不揮発性メモリＣ１００がプログラムイネーブル署名値を消去するためにさらに電気的にプログラムされる。プログラムイネーブル署名値が消去されると，ディセーブルロジック回路Ｃ１１０が不揮発性メモリＣ１００はもはやプログラミング不可能であると判断し，外部プログラムロジック回路Ｃ１２０はディセーブル（不能）となる。この結果，不揮発性メモリＣ１００は外部プログラミングピンからさらに電子的にプログラムされることが不可能となる。
【００９７】
フローポイント４２０では，不揮発性メモリＣ１００にはすでにプログラムイネーブル署名値が存在せず，ディセーブルロジック回路Ｃ１１０が，不揮発性メモリＣ１００はもはやプログラミング不可能であると判断し，それにより外部プログラムロジック回路Ｃ１２０がディセーブルとなる。セキュアプロセッサ１１０が電源ＯＮになると，不揮発性メモリＣ１００の外部プログラミングピンからのさらなる電子的プログラミングは不可能となる。
【００９８】
その他の実施形態
これ以降，好ましい実施形態を開示するが，他の多くの変形形態が本発明のコンセプト，範囲または均等範囲に含まれる。これらの変形形態は当業者が本出願を熟読すれば明白である。
・  実行可能なコードまたはセキュアコードの全てが，セキュアプロセッサ１１０を統合するチップ上に存在する必要性はない。他の実施形態では，セキュアプロセッサ１１０はＲＡＭ  １５５，大容量ストレージＡ１５０，または他の外部デバイスにセキュアコードや実行可能なコードを有する。
・  セキュアプロセッサ１１０が単独の統合チップとして実行される必要はない。他の実施形態にてセキュアプロセッサ１１０は，暗号化された信号や，不法なのぞき見や改竄に対してセキュアな（安全化された）信号を利用して連結される，複数のデバイスを有する。
【００９９】
・  全てのセキュアコードが一度に読み込まれる必要はない。他の実施形態にてセキュアプロセッサ１１０は，それぞれ異なるタイミングで（例えば順々に，またはオンデマンドで）読み込み検証されたセキュアコードの複数のセグメントを有する。第１例としては，セキュアカーネルコードＡ１２０は，セキュアモードで動作中のＣＰＵ  Ａ１００によって実行される命令へ読み込み統合される一以上の追加ソフトウェアモジュールの署名を含み得る。さらに第２例としては，セキュアカーネルコードＡ１２０が，一以上の読み込み追加ソフトウェアモジュールの署名を含み，その各々の追加ソフトウェア自体が一以上の読み込み追加ソフトウェアモジュールの署名を含むような場合が考えられる。
・  メモリおよび大容量ストレージアクセスのチェックは，選択されたイベントに応じて実行される。例えばそのような選択されたイベントには，暗号化／暗号解読サービス，入出力サービス，またはアプリケーションソフトウェアによるセキュア署名や検証サービスが含まれる。さらに，そのような選択されたイベントには大容量ストレージアクセスのメモリへの定期的な妨害（Ｎ番目のアクセス毎など，Ｎは選択値），定期的なタイマー割り込みなどが含まれる。
【０１００】
・  認証および検証チェックは，メモリおよび大容量ストレージアクセスのチェックと同様に，選択されたイベントに応じて実行される。例えばそのような選択されたイベントには暗号化／暗号解読サービス，入出力サービス，またはアプリケーションソフトウェアによるセキュア署名や検証サービスが含まれる。さらに，そのような選択されたイベントには大容量ストレージアクセスのメモリへの定期的な妨害（Ｎ番目のアクセス毎など，Ｎは選択値），定期的なタイマー割り込みなどが含まれる。
【０１０１】
・  セキュアカーネルコードＡ１２０は上記に加え，アプリケーションソフトウェアに追加セキュリティサービスを申し込むことができる。例えばそのような追加サービスは，サーバ（上記記載の，信頼できるサーバ１３０以外のサーバ）や，他のメッセージングパートナー（ピアツーピアプロトコル中や，アプリケーションソフトウェアがサーバの役割を持つプロトコル中の）からのメッセージの認証および検証，サーバ（上記記載の，信頼できるサーバ１３０以外のサーバ）や他のメッセージングパートナーと交換したメッセージの暗号化／暗号解読，サーバ（上記記載の，信頼できるサーバ１３０以外のサーバ）や他のメッセージングパートナーと交換したメッセージの公開鍵暗号システム，二番目に信頼できるサーバから読み込み実行するための追加ソフトウェアの認証および検証，ＤＲＭライセンス供与情報の管理，ＣＰＵ  Ａ１００による実行のために読み込んだソフトウェアの定期的な（または上記のように，選択したイベントに応じた）認証および検証，などを含む。
・  セキュアカーネルコードＡ１２０は上記に加えアプリケーションソフトウェアに対しセキュリティに関連しないサービスを申し込むことができる。例えばその追加サービスには，特定デバイスドライバ，またはアプリケーションソフトウェアが動作ライセンスを有する特定ハードウェアの動作などが上げられる。
【０１０２】
本発明の好ましい実施形態についての上記説明は，例示および説明の目的でなされたものであり，本発明を形態そのものに限定することを意図するものではない。
当業者には，多くの変更を行うことは明白であろう。実施形態は本発明の原理を最も良く説明するために選択及び説明したものであり，これにより当業者ならば，意図する特定用途に適した種々の実施形態及び種々の変更形態を理解できるであろう。本発明の範囲は，特許請求の範囲及びその均等範囲により定められるべきである。
【図面の簡単な説明】
【０１０３】
【図１】セキュアの実行が可能なセキュアプロセッサを含むシステムの構成図
【図２Ａ】セキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図
【図２Ｂ】セキュアの実行が可能なセキュアプロセッサの動作方法の工程系統図
【図３】実質的に消去不可能な方法で不揮発性メモリをプログラムするデバイスを含む回路の構成図
【図４】実質的に消去不可能な方法で不揮発性メモリをプログラムするデバイスを含む回路の動作方法を示す工程系統図
【符号の説明】
【０１０４】
１００…システム
１１０…セキュアプロセッサ
１１１…モニタープロセッサ
１１２…セキュリティロジック
１１３…セキュリティ情報
１１４…内部バス
１２０…コミュニケーションリンク
１３０…コンテンツ発信元または信頼するサーバ
１４０…アプリケーションデバイス
１４１…入力
１４２…出力
１４３…アプリケーションソフトウェア
Ａ１００…ＣＰＵ
Ａ１０３…ＣＰＵ／メモリアクセス記録
Ａ１０５…セキュアモード切替回路
Ａ１１０…タイマー
Ａ１１５…ブートコード（セキュアブートコード）
Ａ１２０…カーネルコード
Ａ１２５…リードオンリー・セキュアコード及びデータ
Ａ１３０…リード／ライト揮発性セキュア状況値
Ａ１３１…リード／ライトセキュアコード及びデータ
Ａ１３３…アクセスコントロール回路
Ａ１３５…大容量ストレージインターフェイス
Ａ１４０…メモリインターフェイス
Ａ１４５…アプリケーション固有回路
Ａ１５０…大容量ストレージデバイス
Ａ１５５…外部ＲＡＭ
Ａ１６０…セキュリティ信号
Ａ１６３…アクセスコントロール信号
Ａ１６５…ＮＭＩ（マスク不可能な割り込み）信号
Ａ１７０…リセット信号
Ｂ１０１…キー識別セキュリティカーネルソフトウェア署名
２００…実行方法
２１０…電源ＯＮの準備
２１１…電源ＯＮ
２１２…リセット信号
２１３…セキュアモードアクティブ信号をＴＲＵＥにセット
２１４…ＣＰＵがブートコードへジャンプ
２１５…ブートローダーを実行
２１６…セキュリティ機能を読み込み及び認証
２１７…セキュリティ機能を実行
２１８…アプリケーションを認証及び起動
２１９…セキュアモードを終了
２２１…リクエストを提示
２２２…リクエストがセキュアモードロジックに記録される
２２３…セキュアモードアクティブ信号をＴＲＵＥにセット
２２４…ＮＭＩをＣＰＵへ
２２５…あらかじめ搭載されたセキュアカーネルへＣＰＵがジャンプ
２２６…セキュアカーネルがサービスを実行
２２７…共有メモリに結果を保存
２２８…セキュアモードロジックを通ってセキュアモードを終了，セキュアモードアクティブ信号をＦＡＬＳＥにセット
２３０…実行方法
２３１…タイマーがＯＦＦへ
２３２…セキュアモードロジックに記録
２３３…セキュアモードアクティブをＴＲＵＥにセット
２３４…ＮＭＩをＣＰＵへ
２３５…セキュアコードを実行
２３６…セキュアコードを終了
２４０…メモリアクセスをいつでも記録するよう準備
２４１…リード／ライトＲＡＭ
２４２…アドレスをバスとロジックへ連結
２４３…アクセスを容認？
２４４…アクセスを記録
２５０…セキュアモードへ入る流れの図
２５１…セキュアモードへリクエストを入力（リセット／アプリケーション／セキュアタイマー）
２５２…セキュアモードロジックがセキュアモードアクティブ信号をいつでも行使するよう準備
２５３…ＮＭＩをＣＰＵへ発信
２５４…ＣＰＵがＮＭＩハンドラの最初の指示を読む
２５５…セキュアモードロジックがセキュアモードアクティブ信号を行使
２５６…ＣＰＵがＮＭＩハンドラ部を実行
３００…回路
３４０…外部プログラミングピン
Ｃ１００…フラッシュメモリ
Ｃ１１０…ディセーブル（不可能）ロジック
Ｃ１２０…外部プログラムロジック
Ｃ１３０…非接合ピン
４００…方法
４１０…ＮＶ（不揮発性）／ＲＡＭをいつでもプログラムするよう準備
４１１…非接合ピンを電圧へ連結
４１２…ＮＶ（不揮発性）／ＲＯＭをデフォルト値でプログラムする
４１３…回路をまとめる
４１４…ＮＶ（不揮発性）／ＲＯＭを独自データでプログラムする
４１５…デフォルト値を消去
４２０…ＮＶ（不揮発性）／ＲＯＭはプログラム不可能に
【図１】
2007524883.tif 000003
2007524883.tif 000004
2007524883.tif 000005
【図３】
2007524883.tif 000006
【図４】
2007524883.tif 000007