(57)【要約】      （修正有）【課題】ソフトウエアの改ざんによる、改ざん以降に施される任意のセキュリティ対策の信頼性低下を防止する。【解決手段】あるプロセッサ１０２およびそれに関連するローカルメモリ１０４は、ローカルメモリ１０４内での使用を目的としてＤＲＡＭ１０６からデータを読み出すことができるようにＤＲＡＭ１０６に動作可能に接続されるものであり、そのプロセッサ１０２は、セキュアな動作モードに入る動作と、記憶媒体１１０から復号化プログラムを読み出し、プロセッサ１０２のローカルメモリ１０４内に保存する動作と、暗号化された認証プログラムをプロセッサ１０２のローカルメモリ１０４内に保存する動作と、復号化プログラムを用いて、暗号化された認証プログラムを復号化する動作と、プロセッサ１０２の処理を復号化プログラムから認証プログラムに移行せしめる動作を行う。【選択図】図１
2006221634.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと前記プロセッサに関連付けられたローカルメモリとを含むシステム内の処理方法であって、前記プロセッサは、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう、前記メインメモリに動作可能に接続されうるものであり、
当該方法は、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入るステップと、
記憶媒体から復号化プログラムを読み出し、前記プロセッサのローカルメモリ内に保存するステップと、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に保存するステップと、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化するステップと、
前記プロセッサの処理を前記復号化プログラムから前記認証プログラムに移行せしめるステップと、
を含むことを特徴とする処理方法。
【請求項２】
前記復号化プログラムを有する前記記憶媒体は、外部のソフトウエアの使用による前記復号化プログラムの改ざんを不可能とする程度にセキュアであることを特徴とする請求項１に記載の処理方法。
【請求項３】
前記プロセッサの処理の移行に先立って、前記認証プログラムが真正であることを確認するステップをさらに含むことを特徴とする請求項１または２に記載の処理方法。
【請求項４】
前記認証プログラムが真正であることを確認するステップは、前記復号化された認証プログラムに対してハッシュ関数を実行することによりハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することを特徴とする請求項３に記載の処理方法。
【請求項５】
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを前記メインメモリから読み出し、前記ローカルメモリ内に保存するステップと、
前記認証プログラムを用いて前記コンテンツを認証するステップと、
をさらに含むことを特徴とする請求項１から４のいずれかに記載の処理方法。
【請求項６】
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化するステップをさらに含むことを特徴とする請求項５に記載の処理方法。
【請求項７】
前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認するステップをさらに含むことを特徴とする請求項６に記載の処理方法。
【請求項８】
前記コンテンツが真正である場合、前記プロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめるステップをさらに含むことを特徴とする請求項７に記載の処理方法。
【請求項９】
自身に関連付けられたローカルメモリを有するプロセッサを少なくとも一つ含むマルチプロセッサシステム内の処理方法であって、前記少なくとも一つのプロセッサは、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう、前記メインメモリに動作可能に接続されうるものであり、
当該方法は、
外部から開始されたところの、前記少なくとも一つのプロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入るステップと、
記憶媒体から復号化プログラムを読み出し、前記少なくとも一つのプロセッサのローカルメモリ内に保存するステップと、
暗号化された認証プログラムを前記少なくとも一つのプロセッサのローカルメモリ内に保存するステップと、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化するステップと、
前記少なくとも一つのプロセッサから前記システムの他のプロセッサに前記認証プログラムを転送するステップと、
を含むことを特徴とする処理方法。
【請求項１０】
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを前記メインメモリから読み出し、前記他のプロセッサのローカルメモリ内に取り込むステップと、
前記認証プログラムを用いて前記コンテンツを認証するステップと、
をさらに含むことを特徴とする請求項９に記載の処理方法。
【請求項１１】
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化するステップをさらに含むことを特徴とする請求項１０に記載の処理方法。
【請求項１２】
前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認するステップをさらに含むことを特徴とする請求項１１に記載の処理方法。
【請求項１３】
前記コンテンツが真正である場合、前記他のプロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめるステップをさらに含むことを特徴とする請求項１２に記載の処理方法。
【請求項１４】
少なくとも一つのプロセッサと、前記プロセッサに関連付けられたローカルメモリと、復号化プログラムを有する記憶媒体とを含む装置であって、前記プロセッサは、メインメモリに動作可能に接続されうるとともに、前記ローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能であり、
前記プロセッサは、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入る機能と、
前記記憶媒体から復号化プログラムを読み出し、前記プロセッサのローカルメモリ内に保存する機能と、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に保存する機能と、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化する機能と、
前記プロセッサの処理を前記復号化プログラムから前記認証プログラムに移行せしめる機能と、
を有することを特徴とする装置。
【請求項１５】
前記復号化プログラムを有する前記記憶媒体は、外部のソフトウエアの使用による前記復号化プログラムの改ざんを不可能とする程度にセキュアであることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記プロセッサはさらに、前記プロセッサの処理の移行に先立って、前記認証プログラムが真正であることを確認する機能を有することを特徴とする請求項１４または１５に記載の装置。
【請求項１７】
前記プロセッサはさらに、前記復号化された認証プログラムに対してハッシュ関数を実行することによりハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することにより、認証プログラムが真正であることを確認する機能を有することを特徴とする請求項１６に記載の装置。
【請求項１８】
前記プロセッサはさらに、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを前記メインメモリから読み出し、前記ローカルメモリ内に保存する機能と、
前記認証プログラムを用いて前記コンテンツを認証する機能と、
をさらに有することを特徴とする請求項１４から１７のいずれかに記載の装置。
【請求項１９】
前記プロセッサはさらに、前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化する機能を有することを特徴とする請求項１８に記載の装置。
【請求項２０】
前記プロセッサはさらに、前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認する機能を有することを特徴とする請求項１９に記載の装置。
【請求項２１】
前記プロセッサはさらに、前記コンテンツが真正である場合、前記プロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめる機能を有することを特徴とする請求項２０に記載の装置。
【請求項２２】
複数のプロセッサと、復号化プログラムを有する記憶媒体とを含む装置であって、前記複数のプロセッサのうちの少なくとも一つのプロセッサは、自身に関連付けられたローカルメモリを有し、さらに、メインメモリに動作可能に接続されるとともに、前記ローカルメモリ内での使用を目的として前記メインメモリから少なくともあるデータを読み出すことを要求可能であり、
前記少なくとも一つのプロセッサは、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は許可されるセキュアな動作モードに入る機能と、
前記記憶媒体から復号化プログラムを読み出し、前記プロセッサのローカルメモリ内に保存する機能と、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に保存する機能と、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化する機能と、
前記システムの他のプロセッサに前記認証プログラムを転送する機能と、
を有することを特徴とする装置。
【請求項２３】
前記他のプロセッサは、
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを前記他のプロセッサのローカルメモリ内に取り込む機能と、
前記認証プログラムを用いて前記コンテンツを認証する機能と、
を有することを特徴とする請求項２２に記載の装置。
【請求項２４】
前記他のプロセッサは、前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化する機能をさらに有することを特徴とする請求項２３に記載の装置。
【請求項２５】
前記他のプロセッサは、前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認する機能をさらに有することを特徴とする請求項２４に記載の装置。
【請求項２６】
前記他のプロセッサは、前記コンテンツが真正である場合、前記他のプロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめる機能をさらに有することを特徴とする請求項２５に記載の装置。
【請求項２７】
少なくとも一つのプロセッサと前記プロセッサに関連付けられたローカルメモリとを含む処理システムによる動作の実行を可能にする少なくとも一つのソフトウエアプログラムであって、前記少なくとも一つのプロセッサは、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう、前記メインメモリに動作可能に接続されうるものであり、
前記動作は、
外部から開始されたところの、前記プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入るステップと、
記憶媒体から復号化プログラムを読み出し、前記プロセッサのローカルメモリ内に保存するステップと、
暗号化された認証プログラムを前記プロセッサのローカルメモリ内に保存するステップと、
前記復号化プログラムを用いて、前記暗号化された認証プログラムを復号化するステップと、
前記プロセッサの処理を前記復号化プログラムから前記認証プログラムに移行せしめるステップと、
を含むことを特徴とするソフトウエアプログラム。
【請求項２８】
前記復号化プログラムを有する前記記憶媒体は、外部のソフトウエアの使用による前記復号化プログラムの改ざんを不可能とする程度にセキュアであることを特徴とする請求項２７に記載のソフトウエアプログラム。
【請求項２９】
前記プロセッサの処理の移行に先立って、前記認証プログラムが真正であることを確認するステップをさらに含むことを特徴とする請求項２７または２８に記載のソフトウエアプログラム。
【請求項３０】
前記認証プログラムが真正であることを確認するステップは、前記復号化された認証プログラムに対してハッシュ関数を実行することによりハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することを特徴とする請求項２９に記載のソフトウエアプログラム。
【請求項３１】
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを前記メインメモリから読み出し、前記ローカルメモリ内に保存するステップと、
前記認証プログラムを用いて前記コンテンツを認証するステップと、
をさらに含むことを特徴とする請求項２７から３０のいずれかに記載のソフトウエアプログラム。
【請求項３２】
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化するステップをさらに含むことを特徴とする請求項３１に記載のソフトウエアプログラム。
【請求項３３】
前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認するステップをさらに含むことを特徴とする請求項３２に記載のソフトウエアプログラム。
【請求項３４】
前記コンテンツが真正である場合、前記プロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめるステップをさらに含むことを特徴とする請求項３３に記載のソフトウエアプログラム。
【請求項３５】
前記処理システムは、少なくとも一つのプロセッサを含むマルチプロセッサシステムであり、前記少なくとも一つのプロセッサは、自身に関連付けられたローカルメモリを有するとともに、前記ローカルメモリ内での使用を目的としてメインメモリからデータを読み出すことができるよう、前記メインメモリに動作可能に接続されうるものであって、
前記動作はさらに、前記認証プログラムを前記少なくとも一つのプロセッサから前記システムの他のプロセッサに転送するステップをさらに含むことを特徴とする請求項２７に記載のソフトウエアプログラム。
【請求項３６】
秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツを、前記他のプロセッサのローカルメモリ内に取り込むステップと、
前記認証プログラムを用いて前記コンテンツを認証するステップと、
をさらに含むことを特徴とする請求項３５に記載のソフトウエアプログラム。
【請求項３７】
前記認証プログラムと、前記秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、前記暗号化されたコンテンツを復号化するステップをさらに含むことを特徴とする請求項３６に記載のソフトウエアプログラム。
【請求項３８】
前記コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、前記コンテンツが真正であることを確認するステップをさらに含むことを特徴とする請求項３７に記載のソフトウエアプログラム。
【請求項３９】
前記コンテンツが真正である場合、前記他のプロセッサの処理を前記認証プログラムから前記コンテンツに移行せしめるステップをさらに含むことを特徴とする請求項３８に記載のソフトウエアプログラム。
【請求項４０】
請求項２７から請求項３９のいずれかのソフトウエアプログラムを格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ機能を含みうるセキュアな処理環境において、信頼性の高い復号化機能からコンテンツ認証機能への移行を実施する方法および装置に関する。
【背景技術】
【０００２】
最先端のコンピュータアプリケーションがますます複雑になり、処理システム（プロセッサシステム）に対する需要は絶えず増大しているため、近年、より速いコンピュータによる処理データスループットについて強い要望がある。そうした中、特にグラフィックスアプリケーションは、望ましい視覚結果を実現するために、比較的短い時間内で膨大な数のデータアクセス、データ計算、およびデータ操作を必要とし、処理システムに対する要求は最も高い。リアルタイムのマルチメディアアプリケーションもまた、処理システムに対する高い要求は高い。実際に、このようなアプリケーションは毎秒何千メガビットものデータ処理という非常に高速な処理を必要とする。
【０００３】
いくつかの処理システムは一つのプロセッサを用いて高速な処理速度を実現する一方、他の処理システムはマルチプロセッサアーキテクチャを用いて実装される。マルチプロセッサシステムにおいて、複数のサブプロセッサは並列に（少なくとも協調して）動作し、所望の処理結果を達成できる。マルチプロセッサシステム内でモジュラー構造を用いることも考えられる。なお、この構造において、計算モジュールには、（インターネットなどの）ブロードバンドネットワークを介してアクセスでき、その計算モジュールは多くのユーザ間で共有できる。このモジュラー構造についての詳細は、米国特許第６５２６４９１号に記載される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
なお、プロセッサシステムがネットワークを介して使用されるとき、あるいは共有資源の一部分であるときに問題が生じる。特に、プロセッサとそれに関連する（アプリケーションプログラムなどの）ソフトウエアは、意図的なハッキングやそれと同様のものなどの外部要因にさらされやすい。他の問題として、実行前における、ある方法での認証がなされていないソフトウエアによりもたらされうる不正やあからさまな悪意が挙げられる。あいにく、ソフトウエアアプリケーション（あるいは、他の種類のデジタルコンテンツ）の従来の実行過程では、メモリからソフトウエアを読み出すこと、さらにプロセッサを用いてそのソフトウエアを実行することが指示される。たとえ、ソフトウエアを実行する処理システムにいくつかの種類のセキュリティ対策を講じても、そのソフトウエアが改ざんされる、あるいは、そのソフトウエアに対する実行権限がそもそも与えられていない場合もある。したがって、以降に施される任意のセキュリティ対策は、十分に信頼性の高い（trusted；信頼のおける）ものにはなるとは限らず、さらに無駄になる（usurped）可能性もある。
【０００５】
本発明の目的は、セキュアな処理環境において信頼性の高い復号化機能からコンテンツ認証機能への移行を提供するなどのセキュリティ対策を与えることなどにより、デジタルコンテンツを認証する新規の方法および装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一以上の態様によれば、セキュアな処理環境を確立するのが好ましい。セキュアな処理環境の確立には、外部から開始された、そのプロセッサに対するデータアクセスリクエストに応答しない状態の呼び出しが含まれる。すなわち、セキュアなプロセッサは、データに対するどの外部のリクエスト（例えば、ローカルメモリまたはレジスタ上のコンテンツを読み出すというリクエスト）にも応じない。したがって、プロセッサがセキュアなモードに入る場合、例えば、ソフトウエアアプリケーションやコンテンツの認証などといったさらなるセキュリティ対策を講ずることのできる信頼性の高い環境を形成する。
【０００７】
信頼性の高い復号化コード（および信頼性の高い復号鍵）は、特定のプロセッサに関連付けられるセキュアなメモリ（例えば、フラッシュＲＯＭ）内に保存されるのが好ましい。その信頼性の高い復号化コードおよび復号鍵は、そのプロセッサがセキュアなモードに入ったときに、そのフラッシュＲＯＭのみから入手できるのが好ましい。その復号化機能は、ハードウエア（例えば、フラッシュＲＯＭや任意の他の適切なハードデバイス内に焼き付けたソフトウエア）で実装されるのが好ましい。いったん、信頼性の高い復号化コードが呼び出されれば、そのコードを用いて（その信頼性の高い鍵により暗号化された）公開鍵認証プログラムを復号化し、それを（セキュアな処理環境の外部である）システムメモリ内に保存できる。その公開鍵認証プログラムを用いることにより、他のアプリケーションプログラムおよびコンテンツを復号化でき認証できる。
【０００８】
いったん、その信頼性の高い復号化コードがその目的を達成すれば、セキュアなプロセッサの処理は、公開鍵認証プログラムに移行するのが好ましい。他の実施の形態では、セキュアなプロセッサは、認証されたアプリケーションプログラムおよび／またはデータを、マルチプロセッサシステム内の他のプロセッサ（そのプロセッサはセキュアであってもなくてもよい）に渡すことができる。
【０００９】
一例として、その公開鍵認証プログラムは、信頼性の高い鍵（例えば、秘密鍵と公開鍵のペアのうちの秘密鍵）を用いて暗号化された、アプリケーションプログラムおよび／またはデータ（コンテンツ）を、復号化し認証できる。セキュアなプロセッサは、公開鍵（例えば、秘密鍵と公開鍵のペアのうちの公開鍵）を用いて、そのアプリケーションプログラムおよび／またはデータを復号化し認証できる。そのアプリケーションプログラムおよび／またはデータにはまた、電子署名による署名（例えば、ハッシュ結果）が施される。その署名もまた、ハッシュアルゴリズムを実行するとともにその結果をクロスチェックする公開鍵認証プログラムにより認証される。
【００１０】
ここで、本明細書で用いられる、「データ」は、任意の種類のプログラムコード、アプリケーションソフトウエア、システムレベルのソフトウエア、任意の種類のデータ、データストリームなどを含むものと広く解釈される。
【００１１】
いったんそのデータが復号化され認証されれば、そのセキュアなプロセッサは、ハッキングや他のセキュリティ侵害を懸念することなく、セキュアな方法でそのデータを実行し、および／または、実行しないのであればそのデータを利用できる。なお、そのような認証がなされなければ、任意の以降のプログラムの実行および／またはデータの操作は、必ずしも十分に信頼性の高いものになり得るとは限らない。
【００１２】
本発明に係る１以上の実施の形態によれば、プロセッサとそのプロセッサに関連するローカルメモリを用いて所望の結果を実現する方法および装置を提供する。なお、そのプロセッサは、動作可能にメインメモリに接続されることで、メインメモリからデータを読み出すことができ、ローカルメモリ内でそのデータを使用できる。
【００１３】
本発明に係るある態様の方法および装置は、外部から開始されたところの、プロセッサに対するデータの読み出しまたは書き込みの要求は受け付けないが、内部から開始されたところのデータ転送は受け付けるセキュアな動作モードに入り、記憶媒体から復号化プログラムを読み出すとともにプロセッサのローカルメモリ内に保存し、暗号化された認証プログラムをプロセッサのローカルメモリ内に保存し、復号化プログラムを用いて、暗号化された認証プログラムを復号化し、プロセッサの処理を復号化プログラムから認証プログラムに移行せしめる。
【００１４】
復号化プログラムを有する記憶媒体は、外部のソフトウエアの使用による復号化プログラムの改ざんを不可能とする程度にセキュアであることが好ましい。
【００１５】
プロセッサの処理の移行に先立って、認証プログラムが真正であることを確認してもよい。認証プログラムが真正であることを確認することには、前記復号化された認証プログラムに対してハッシュ関数を実行することによりハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較する動作が含まれてもよい。
【００１６】
本発明に係る一以上のさらなる態様によれば、マルチプロセッサシステムが用いられ、認証プログラムが証明された後に、少なくとも一つのプロセッサからシステムの他のプロセッサに認証プログラムを転送してもよい。
【００１７】
シングルプロセッサシステムであるかマルチプロセッサシステムであるかに関係なく、秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されたコンテンツをシステムメモリから読み出し、ローカルメモリ内に保存するのが好ましく、認証プログラムを用いて前記コンテンツを認証するのが好ましい。認証プログラムと、秘密鍵と公開鍵のペアのうちの公開鍵とを用いて、暗号化されたコンテンツを復号化してもよい。コンテンツに対してハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、コンテンツが真正であることを確認してもよい。
【００１８】
その後、コンテンツが真正である場合、プロセッサの処理を認証プログラムからコンテンツに移行せしめてもよい。
【００１９】
本発明の上記以外の態様、特徴、および利点などは、添付図面とともに以下の詳細な説明により当業者には明確に理解される。
【発明を実施するための最良の形態】
【００２０】
本発明の様々な実施の形態を示すために、現在のところ好適である図面を例示として添付するが、本発明は図面と同一の構成および手段に限定するものではない。
【００２１】
図において同一の符号は同一の要素を示すものとする。図１は、実施の形態に係る一以上の態様の実施に適したプロセッサシステム１００を示す。簡潔および明確にするために、図１の構成図を参照し装置１００を用いて説明するが、同一の主旨を有する様々な態様の方法にその説明を簡単に適用できるのは言うまでもない。装置１００は、プロセッサ１０２と、ローカルメモリ１０４と、システムメモリ１０６（例えば、ＤＲＡＭ）と、バス１０８とを備えるのが好ましい。
【００２２】
プロセッサ１０２は、システムメモリ１０６からのデータの要求を可能にし、そのデータを操作することで所望の結果への達成を可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ１０２はソフトウエアおよび／またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、プロセッサ１０２は、ピクセルデータなどのデータを要求し操作できるグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
【００２３】
ここで、ローカルメモリ１０４は、プロセッサ１０２と同一チップ上に設けられるのが好ましい。なお、ローカルメモリ１０４は、ハードウェアキャッシュメモリではないことが好ましく、ローカルメモリ１０４には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無いことが好ましい。他の実施の形態では、ローカルメモリ１０４はキャッシュメモリおよび／または付加的なキャッシュメモリであってもよい。チップ上の実装面積はしばしば限られているので、ローカルメモリ１０４のサイズは、システムメモリ１０６のサイズより遥かに小さい。プロセッサ１０２は、プログラムの実行とデータの操作のために、バス１０８を介してシステムメモリ１０６からそのローカルメモリ１０４にデータ（プログラムデータを含みうる）をコピーするためのデータアクセスリクエストを提供することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス（ＤＭＡ）技術など、任意の既知の技術を用いてもよい。
【００２４】
その装置１００はまた、例えば、バス１０８を介してプロセッサ１０２に動作可能に接続される読み出し専用メモリ（ＲＯＭ）などの記憶媒体を備えるのが好ましい。その記憶媒体１１０は信頼性の高い復号化プログラムを含むのが好ましい。その復号化プログラムは、プロセッサ１０２のローカルメモリ１０４内に読み出し可能であり、セキュアな復号鍵を用いて情報を復号化できる。好適には、記憶媒体１１０は、復号化プログラムにより信頼性の高い機能を実現するとともに、外部のソフトウエアの操作により改ざんできない程度のセキュリティを実現するよう構成されたプログラムの書き換えが可能なデバイス（例えば、フラッシュＲＯＭ）である。記憶媒体１１０は、その復号化プログラムおよび／または（信頼性の高い復号鍵などの）他の情報が、権限が与えられていないエンティティによりアクセスされない程度のセキュリティを実現するのが好ましい。例えば、その復号化プログラムは、その装置１００の製造過程中に、記憶媒体１１０の中で生成され保存されるのが好ましい。
【００２５】
プロセッサ１０２およびローカルメモリ１０４は、一つの共通の集積回路として一体化されるが好ましい。したがって、本明細書では、これらの要素を「プロセッサ１０２」と呼んでもよい。他の実施の形態では、記憶媒体１１０もまた、その一以上の他の要素とともに、一つの共通の集積回路として一体化されてもよい。
【００２６】
ここで図１および図２の両方を参照する。図１および図２に示すように、プロセッサ１０２は一般的に状態を変化させることができ、それにより様々な様相を伴う状態を実現できる。このような状態を簡単に紹介し、その後、より詳細に説明する。第１の状態では、プロセッサ１０２は通常モードである。好適には、プロセッサ１０２は、第２の状態に移行できる（動作２０２）。なお、第２の状態では、プロセッサ１０２はセキュアな動作モードである。好適には、プロセッサ１０２は、第３の状態にも移行できる（動作２０４）。なお、第３の状態では、信頼性の高い復号化コードが生成され、プロセッサ１０２内で実行される。詳細は後述するが、認証プログラムが呼び出される第４の状態に移行する（動作２０６）ことにより、その復号化コードを用いてさらなる機能、例えば、その認証プログラムを呼び出すことができる。ここで、動作２０６に移行することで、そのプロセッサの処理（機能）を復号化プログラムから認証プログラムに変更できる。その認証プログラムは、そのプロセッサ１０２がコンテンツを実行する前に、コンテンツの認証のために用いられうる。これに関連して、プロセッサ１０２は好適には、第５の状態に移行でき（動作２０８）、その第５の状態では、認証プログラムは、コンテンツの実行を優先しつつ削除される。
【００２７】
図３および図４を参照して、プロセッサ１０２の様々な状態への移行について、以下詳細に説明する。この図３および図４は、本実施の形態に係る一以上の態様の装置１００により実施されうる処理ステップの流れを示す。動作３００では、プロセッサ１０２は好適には、セキュアな動作モードに入ることができる。このセキュアな動作モードでは、プロセッサ１０２のローカルメモリ１０４内（あるいは、任意の他のメモリデバイス内、レジスタ内など）に保存されたデータに対する要求はいずれも受け付けない。従って、機密性の高いオペレーションを実行するための信頼性の高い環境を保証できる。セキュアなモードであるにもかかわらず、そのプロセッサ１０２は、システムメモリ１０６からローカルメモリ１０４へのデータ転送を要求できる。あるいは、ローカルメモリ１０４からシステムメモリ１０６へのデータ転送を要求できる。さらに、セキュアな動作モードである間は、プロセッサ１０２は、自身が転送元であるか転送先であるかにかかわらず、信頼性の高い環境との間でのデータ転送を開始できる。
【００２８】
いったん、信頼性の高い環境がそのセキュアな動作モードにより実現されれば、そのプロセッサ１０２は、記憶媒体１１０から復号化プログラムを読み出し、それをローカルメモリ１０４内に読み込ませることが好ましい（動作３０２）。好適には、信頼性の高い鍵もまた記憶媒体１１０内に保存され、後の使用のためにローカルメモリ１０４内に読み込まれる。動作３０４では、暗号化された認証プログラムが、プロセッサ１０２のローカルメモリ１０４内に読み込まれるのが好ましい。認証プログラムは好適には暗号化されるため、比較的セキュアでない記憶媒体内、例えばシステムメモリ１０６内に保存できる。その結果、ローカルメモリ１０４内への暗号化された認証プログラムの読み込み動作は、システムメモリ１０６からの暗号化された認証プログラムの取得処理を必要とする。
【００２９】
動作３０６では、暗号化された認証プログラムは、その復号化プログラムおよびその信頼性の高い復号鍵を用いて復号化されるのが好ましい。この動作では、認証プログラムが、信頼性の高い鍵に関連付けられた鍵を用いて暗号化されたと想定している。信頼性の高い環境であるセキュアなプロセッサ１０２の中で、認証プログラムが復号化されるため、復号化された後の認証プログラムの改ざんが不可能であると想定できる。その結果、動作３０８において、プロセッサの処理を復号化プログラムから認証プログラムに移行できる。
【００３０】
本発明に係る他の実施の形態では、その認証プログラムが真正（authenticity）であることは、プロセッサ１０２の処理を移行する前に証明されてもよい。この点について、認証プログラムが真正であること（真正であるか否か）を確認するステップには、復号化された認証プログラムに対してハッシュ関数を実行することでハッシュ結果を生成する動作が含まれうる。その後、ハッシュ結果は、予め定められたハッシュ値と比較される。なお、ハッシュ値は、デジタル署名やそれと同様のものなどであってもよい。一例として、信頼性の高いエンティティがそのハッシュ関数を認証プログラムに対して実行することにより、所与のハッシュ値を生成してもよい。その所与のハッシュ値は認証プログラムそのものとともに暗号化されてもよく、信頼性の高いエンティティによってシステムメモリ１０６に提供される。当業者にとって明らかなように、１以上の介在するエンティティが、信頼性の高いエンティティからシステムメモリ１０６に対しその暗号化されたプログラムの伝送を完了してもよい。
【００３１】
上述したように、復号化プログラムは、装置１００の製造過程中に、記憶媒体１１０の中で確立され保存されるのが好ましい。その結果、その復号化プログラムは、所与のハッシュ値の生成を目的として信頼性の高いエンティティにより用いられたハッシュ関数と同一のハッシュ関数を実行する能力を備えることができる。復号化プログラムは、認証プログラムに対してハッシュ関数を実行することでハッシュ結果を生成でき、さらにそのハッシュ結果と所与のハッシュ値とを比較できる。もし、そのハッシュ結果と所与のハッシュ値とが一致すれば、その認証プログラムは改ざんされておらず、真正であるとみなすことができる。
【００３２】
図４に示すごとく、いったんプロセッサ１０２の処理が認証プログラムに移行すれば、暗号化されたコンテンツをプロセッサ１０２のローカルメモリ内に読み込ませるのが好ましい（動作３１０）。コンテンツは暗号化されているため、システムメモリ１０６など比較的アンセキュアな場所の中にそのコンテンツを保存できる。コンテンツは、秘密鍵と公開鍵のペアのうちの秘密鍵を用いて暗号化されるのが好ましい。したがって、権限が与えられていないどのエンティティも、そのペアのうちの公開鍵を有することなしにコンテンツを復号化することは不可能である。動作３１２において、認証プログラムはその秘密鍵と公開鍵のペアのうちの公開鍵を把握していることが好ましく、そのような鍵を用いて、暗号化されたコンテンツを復号化できる。
【００３３】
動作３１４において、認証ルーチンはその復号化されたコンテンツに対して実行されるのが好ましい。その認証ルーチンは、プロセッサ１０２によるコンテンツの実行がなされる前に、コンテンツが真正であることを確認するのが好ましい。この点に関連して、コンテンツが真正であることを確認する処理には、その復号化されたコンテンツに対してハッシュ関数を実行し、ハッシュ結果を生成する動作も含まれる。その後、ハッシュ結果は、予め定められたハッシュ値と比較される。なお、ハッシュ値は、デジタル署名やそれと同様のものなどであってもよい。一例として、信頼性の高いエンティティがハッシュ関数をコンテンツに対して実行することにより、所与のハッシュ値を生成してもよい。その所与のハッシュ値はコンテンツそのものとともに暗号化されてもよく、信頼性の高いエンティティによってシステムメモリ１０６に提供される。また、当業者にとって明らかなように、１以上の介在するエンティティが、信頼性の高いエンティティからシステムメモリ１０６に対し暗号化されたプログラムの伝送を完了してもよい。
【００３４】
その認証プログラムは、コンテンツに対する所与のハッシュ値の生成を目的として信頼性の高いエンティティにより用いられたハッシュ関数と同一のハッシュ関数を実行する能力を備えることができる。認証プログラムは、その認証プログラムに対しハッシュ関数を実行することでハッシュ結果を生成でき、さらにそのハッシュ結果と所与のハッシュ値とを比較できる。もし、ハッシュ結果と所与のハッシュ値とが一致すれば、そのコンテンツは改ざんされておらず、真正であるとみなすことができる。
【００３５】
動作３１６において、そのコンテンツが真正であるか否かについての決定がなされるのが好ましい。もし、その決定の結果が否定的なものである（コンテンツが真正ではない）場合、処理の流れは適切な動作が行われる失敗状態に進むのが好ましい。適切な動作の例として、認証プロセスの再度の実施、操作者の装置１００へのコンテンツの認証失敗を示すメッセージの送信、あるいは、他のそのような動作が挙げられる。もし、動作３１６での決定の結果が肯定的なものである（コンテンツが真正である）場合、処理の流れは動作３１８に進むのが好ましい。動作３１８では、プロセッサ１０２の処理は、認証プログラムからコンテンツの実行に移行する。プロセッサ１０２は特に、アプリケーションプログラムやあるデータなどのコンテンツを実行できるのが好ましい。
【００３６】
図５は、２以上のサブプロセッサ１０２を有するマルチプロセッサシステム１００Ａの構成を示す。図１〜図４について上述した概念を、そのマルチプロセッサシステム１００Ａ内に適用できる。そのマルチプロセッサシステム１００Ａは、複数のプロセッサ１０２Ａ〜１０２Ｄと、それらプロセッサに関連付けられたローカルメモリ１０４Ａ〜１０４Ｄと、メインメモリ１０６とを備える。少なくともプロセッサ１０２とローカルメモリ１０４と共有メモリ１０６は、適切なプロトコルに従ってそれぞれの要素とデータのやりとりを行うことができるバスシステム１０８を介してお互いに（直接的または間接的に）接続されるのが好ましい。４つのプロセッサ１０２を例として示すが、本発明の主旨および範囲を逸脱しない限り、いかなる数のプロセッサを用いてもよい。プロセッサ１０２は任意の既知の技術を用いて実装されてもよく、さらにプロセッサのそれぞれの構成は同一であってもよいし、異なってもよい。
【００３７】
１以上のプロセッサ１０２は、図１のプロセッサ１０２の能力と構成要素を備えるのが好ましい。他のプロセッサ１０２はそのような能力を備える必要はないが、他のプロセッサ１０２がそのような能力を備えていても本発明の趣旨および範囲を逸脱することはない。プロセッサ１０２のそれぞれの構成は同一であってもよいし、異なってもよい。そのプロセッサは、共有（またはシステム）メモリ１０６からデータを要求するとともにそのデータを操作することで所望の結果を得ることを可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ１０２はソフトウエアおよび／またはファームウエアを実行可能な、標準マイクロプロセッサや分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、一つ以上のプロセッサ１０２は、ピクセルデータなどのデータを要求するとともにそのデータを操作可能なグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
【００３８】
システム１００Ａの一つ以上のプロセッサ１０２は、メイン（または管理）プロセッサとして機能する。そのメインプロセッサは他のプロセッサによるデータの処理のスケジューリングと調整を行うことができる。
【００３９】
システムメモリ１０６は、メモリインタフェース回路（図示せず）を通じてプロセッサ１０２に接続されるダイナミックランダムアクセスメモリ（ＤＲＡＭ）であるのが好ましい。そのシステムメモリ１０６は、好適にはダイナミックランダムアクセスメモリだが、スタティックランダムアクセスメモリ（ＳＲＡＭ）、磁気ランダムアクセスメモリ（ＭＲＡＭ）、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
【００４０】
それぞれのプロセッサ１０２は好適には、プロセッサコアと、当該コアに関連付けられた、プログラムを実行するためのローカルメモリ１０４とを含む。これらの構成要素は共通の半導体基板上に一体的に設けられるか、あるいは、設計者の意図により分離されて設けられてもよい。プロセッサコアは好適には、パイプライン処理を用いて実装される。なお、パイプライン処理においては、パイプライン型の方法で論理命令が処理される。そのパイプラインは命令が処理される任意の数のステージに分割されるが、一般的には、一つ以上の命令をフェッチするステージ、その命令をデコードするステージ、命令間の依存性をチェックするステージ、その命令を出力するステージ、その命令を実行するステージを有する。この点に関連して、そのプロセッサコアには、命令バッファ、命令デコード回路、依存性チェック回路、命令出力回路、および実行段階が含まれる。
【００４１】
ローカルメモリ１０４はバスを介して、そのローカルメモリ１０４に関連付けられたプロセッサコア１０２にそれぞれ接続され、プロセッサコアと同一チップ（同一の半導体基板）上に設けられるのが好ましい。ローカルメモリ１０４は、従来のハードウェアキャッシュメモリではないことが好ましい。なお、そのローカルメモリ１０４には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどは存在しない。チップ上の実装面積が限られているので、ローカルメモリ１０４のサイズは、共有メモリ１０６のサイズよりはるかに小さい。
【００４２】
プロセッサ１０２は、プログラムの実行とデータの操作のために、バスシステム１０８を介してシステムメモリ１０６からそれぞれのローカルメモリ１０４にデータ（プログラムデータを含みうる）をコピーするためのデータアクセスを要求することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス（ＤＭＡ）技術などの任意の既知の技術を用いてもよい。この機能は好適には、メモリインタフェース回路により実行される。
【００４３】
本実施の形態に係る一以上の態様によれば、プロセッサ１０２内での復号化プログラムから認証プログラムへの処理の移行は、マルチプロセッサシステム１００Ａ内の２以上のプロセッサ間で発生する。特に、復号化プログラムを用いて認証プログラムが復号化された後（図３の動作３０６）に、その復号化された認証プログラムを有するセキュアなプロセッサからシステム１００Ａの他のプロセッサ１０２にその認証プログラムを転送できる。ここで、認証プログラムを取得するプロセッサ１０２は、セキュアな動作モードである必要はない。なぜなら、そのプログラムは信頼性の高い環境内で復号化されている（可能であれば認証もされている）ためであり、したがって、そのような認証プログラムを、セキュアな動作モードではない他のプロセッサに転送することで、その認証プログラムを用いてコンテンツを復号化および認証できるといったあるレベルの信頼性を提供できるためである。その結果、図４の動作３１０〜動作３１８もまた、図５のマルチプロセッサシステム１００Ａに関連して実行されうる。
【００４４】
本発明に係る少なくとも一つの別の態様によれば、上述した方法および装置は、例えば、図に示す適切なハードウエアを用いて実現できる。そのようなハードウエアは任意の既知の技術を用いて実装できる。なお、その既知の技術として、例えば、標準のデジタル回路、ソフトウエアおよび／またはファームウエアプログラムを実行できる任意の既知のプロセッサ、プログラム可能な読み出し専用メモリ群（ＰＲＯＭ群）、プログラム可能なアレイ論理デバイス群（ＰＡＬ群）などの一以上のプログラム可能なデジタルデバイスまたはシステムが挙げられる。さらに図内の装置は、ある機能ブロックに分割されて示されているが、そのようなブロックは別々の回路で実装でき、および／または、一以上の機能ユニットに結合させることができる。さらに、本発明に係る様々な態様は、適切な記憶メディアや（フレキシブルディスク、メモリチップなどの）持ち運び可能な、および／または配布のためのメディア上に保存可能なソフトウエアおよび／またはファームウエアプログラムにより実装される。
【００４５】
上述のごとく、信頼性の高い復号化コード（および信頼性の高い復号鍵）は、特定のプロセッサに関連付けられるセキュアなメモリ（例えば、フラッシュＲＯＭ）内に保存されるのが好ましい。いったん、信頼性の高い復号化コードが呼び出されれば、そのコードを用いて（その信頼性の高い鍵により暗号化された）公開鍵認証プログラムを復号化できる。その公開鍵認証プログラムを用いることにより、他のアプリケーションプログラムおよびコンテンツを復号化でき認証できる。いったん、その信頼性の高い復号化コードがその目的を達成すれば、セキュアなプロセッサの処理は、公開鍵認証プログラムに移行するのが好ましい。他の実施の形態では、そのセキュアなプロセッサは、認証されたアプリケーションプログラムおよび／またはデータを、マルチプロセッサシステム内の他のプロセッサ（そのプロセッサはセキュアであってもなくてもよい）に渡すことができる。
【００４６】
本実施の形態に係る様々な方法および装置を用いて、有益な結果を達成できる。例えば、いったんそのデータが復号化され認証されれば、そのセキュアなプロセッサは、ハッキングや他のセキュリティ侵害を懸念することなく、セキュアな方法でそのデータを実行し、および／または、実行しないのであればそのデータを利用できる。なお、そのような認証がなされなければ、任意の以降のプログラムの実行および／またはデータの操作は、必ずしも信頼性の十分高いものになり得るとは限らない。
【００４７】
ここでは本発明の具体例について説明したが、これらの実施例は単に本発明の趣旨と応用を示すものである。したがって、請求項により定義された本発明の主旨および範囲から逸脱しないかぎり、上述した実施形態に対して様々な変更を加えることができる。
【図面の簡単な説明】
【００４８】
【図１】実施の形態の１つ以上の態様に係るプロセッサシステムの構成を示す図である。
【図２】実施の形態の１つ以上の態様に係る図１のプロセッサシステムの処理の移行を示す図である。
【図３】実施の形態の１つ以上の別の態様に係る図１のプロセッサシステムにより実行される処理ステップの流れを示す図である。
【図４】実施の形態の１つ以上の別の態様に係る図１のプロセッサシステムにより実行される別の処理ステップの流れを示す図である。
【図５】２以上のサブプロセッサを有するマルチプロセッサシステムであって、それらサブプロセッサのうちの１以上のサブプロセッサが、実施の形態の１つ以上の別の態様に係る図１のプロセッサの能力を備えうるマルチプロセッサシステムの構成を示す図である。
【符号の説明】
【００４９】
１００  プロセッサシステム、    １００Ａ  マルチプロセッサシステム、    １０２，１０２Ａ，１０２Ｂ，１０２Ｃ，１０２Ｄ  プロセッサ、    １０４，１０４Ａ，１０４Ｂ，１０４Ｃ，１０４Ｄ  ローカルメモリ、    １０６  メインメモリ，システムメモリ，ＤＲＡＭ、    １１０  記憶媒体。
【図１】
2006221634.tif 000003
【図２】
2006221634.tif 000004
【図３】
2006221634.tif 000005
【図４】
2006221634.tif 000006
【図５】
2006221634.tif 000007