(57)【要約】【課題】ソフトウエア駆動型セキュリティモデルでは、その実行時にしばしば不安定になり、より多くの処理が必要になる。【解決手段】処理ユニットを複数のモードのうち一つ以上のモードに設定する方法および装置を開示する。その装置は、ローカルメモリ１０４と、そのローカルメモリ１０４との間での情報の伝送を可能にするバスと、そのローカルメモリ１０４に動作可能に接続される一つ以上の演算処理ユニットと、その装置をその複数の動作モードに設定するセキュリティ回路とを備える。その複数の動作モードは、装置および外部装置がバスを介してメモリとの間での情報の転送を開始できる第１のモードと、装置および外部装置がバスを介してメモリとの間での情報の転送を開始できない第２のモードと、装置がバスを介してメモリとの間での情報の転送を開始できるが、外部装置はバスを介してメモリとの間での情報の転送を開始できない第３のモードとを含む。【選択図】図２
2006139785.tif 000002
【特許請求の範囲】
【請求項１】
ローカルメモリと、
前記ローカルメモリとの間での情報のやりとりを可能にするバスと、
データを処理できるとともに前記ローカルメモリに動作可能に接続される１以上の演算処理ユニットと、
二つの動作モードのうちいずれかの動作モードに当該装置を設定可能なセキュリティ回路と、
を備え、
前記二つの動作モードは、
（i）当該装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、当該装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとで形成され、
あるいは、
（ii）前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、前記第３のモードとで形成されることを特徴とする装置。
【請求項２】
当該装置が認証ルーチンを実行する場合に、前記セキュリティ回路は当該装置を前記第２のモードに設定することを特徴とする請求項１に記載の装置。
【請求項３】
前記セキュリティ回路は、
前記セキュリティ回路の外部のデバイスによるアクセスが不可能な、第１の鍵と第２の鍵とを有する機密データ領域と、
前記セキュリティ回路の外部のデバイスによるアクセスが可能なアクセス可能データ領域と、
当該装置が前記第２のモードである場合に、前記アクセス可能データ領域内に前記第１の鍵のコピーを保存することを可能にするロジック回路と、
を備えることを特徴とする請求項１または２に記載の装置。
【請求項４】
セキュリティが当該装置の使用に先立って維持されるよう、前記第１の鍵および前記第２の鍵は管理下におかれたプロセスにおいて前記機密データ領域内に保存されることを特徴とする請求項３に記載の装置。
【請求項５】
復号化プログラムの実行と、前記第２の鍵のコピーを有するとともに前記第１の鍵に従って暗号化される認証プログラムの実行とを含む認証ルーチンを当該装置が実行する場合には、前記セキュリティ回路は当該装置を前記第２のモードに設定し、当該装置は前記復号化プログラムを実行することにより、前記アクセス可能データ領域内に含まれる前記第１の鍵のコピーを用いて前記認証プログラムを復号化することを特徴とする請求項３または４に記載の装置。
【請求項６】
前記セキュリティ回路が有する前記ロジック回路は、前記認証プログラムの実行に応じて前記アクセス可能データ領域内に前記第２の鍵のコピーを保存し、さらに、前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致するか否かを判定することを特徴とする請求項５に記載の装置。
【請求項７】
前記セキュリティ回路は当該装置を三つの前記モードに設定可能であり、前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致する場合、当該装置は前記第３のモードに入ることを特徴とする請求項５または６に記載の装置。
【請求項８】
前記アクセス可能データ領域内に含まれる、前記第１の鍵のコピーおよび前記第２の鍵のコピーは、当該装置が前記第３のモードに設定される前にクリアされることを特徴とする請求項３から７のいずれかに記載の装置。
【請求項９】
一つのデバイス内に設けられた複数の処理ユニットであって、前記複数の処理ユニットのうち少なくととも一つは、
ローカルメモリと、
前記ローカルメモリとの間での情報のやりとりを可能にするバスと、
データを処理できるとともに前記ローカルメモリに動作可能に接続される１以上の演算処理ユニットと、
二つの動作モードのうちいずれかの動作モードに装置を設定可能なセキュリティ回路と、
を備え、
前記二つの動作モードは、
（i）前記装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、前記装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとで形成され、
あるいは、
（ii）前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、前記第３のモードとで形成されることを特徴とする複数の処理ユニット。
【請求項１０】
ローカルメモリと、前記ローカルメモリとの間での情報のやりとりを可能にするバスと、データを処理できるとともに前記ローカルメモリに動作可能に接続される１以上の演算処理ユニットと、複数の動作モードに当該装置を設定可能なセキュリティ回路とを有する装置を設け、
当該方法は、
前記複数の動作モードのうちいずれかの動作モードに設定するステップを備え、
前記複数の動作モードは、
（i）前記装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、前記装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとで形成され、
あるいは、
（ii）前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、前記第３のモードとで形成されることを特徴とする処理方法。
【請求項１１】
前記装置が認証ルーチンを実行する場合に、前記装置を前記第２のモードに設定するステップをさらに含むことを特徴とする請求項１０に記載の処理方法。
【請求項１２】
前記セキュリティ回路の外部のデバイスによるアクセスが不可能な、第１の鍵と第２の鍵とを有する機密データ領域と、前記セキュリティ回路の外部のデバイスによるアクセスが可能なアクセス可能データ領域とを有する前記セキュリティ回路を設け、
当該方法は、
前記装置が前記第２のモードである場合に、前記アクセス可能データ領域内に前記第１の鍵のコピーを保存するステップをさらに含むことを特徴とする請求項１０または１１に記載の処理方法。
【請求項１３】
セキュリティが前記装置の使用に先立って維持されるよう、前記第１の鍵および前記第２の鍵を管理下におかれたプロセスにおいて前記機密データ領域内に保存するステップをさらに含むことを特徴とする請求項１２に記載の処理方法。
【請求項１４】
復号化プログラムの実行と、前記第２の鍵のコピーを有するとともに前記第１の鍵に従って暗号化される認証プログラムの実行とを含む認証ルーチンを実行する場合に、前記装置を前記第２のモードに設定するステップと、
前記復号化プログラムを実行することによって、前記アクセス可能データ領域内に含まれる前記第１の鍵のコピーを用いて前記認証プログラムを復号化するステップと、
をさらに含むことを特徴とする請求項１２または１３に記載の処理方法。
【請求項１５】
前記認証プログラムの実行に応じて前記アクセス可能データ領域内に前記第２の鍵のコピーを保存するステップと、
前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致するか否かを判定するステップと、
をさらに含むことを特徴とする請求項１４に記載の処理方法。
【請求項１６】
三つの前記モードのうちの任意のモードに設定可能であり、
当該方法は、
前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致する場合に、前記装置を前記第３のモードに設定するステップをさらに含むことを特徴とする請求項１４または１５に記載の処理方法。
【請求項１７】
前記装置が前記第３のモードに設定される前に、前記アクセス可能データ領域内に含まれる、前記第１の鍵のコピーおよび前記第２の鍵のコピーをクリアするステップをさらに含むことを特徴とする請求項１２から１６のいずれかに記載の処理方法。
【請求項１８】
メイン処理ユニットと、
それぞれがローカルメモリおよび復号化ユニットを含むとともに、それぞれが通常の動作モードまたはセキュアな動作モードに入ることが可能な複数の付属処理ユニットと、
共有メモリと、
を備え、
前記複数の付属処理ユニットのうちの一つの所与の付属処理ユニットが前記通常のモードである場合、前記メイン処理ユニットは、前記所与の付属処理ユニットと前記共有メモリとの間で、前記復号化ユニットをバイパスするデータ転送を開始でき、
前記所与の付属処理ユニットが前記セキュアなモードである場合、（i）前記所与の付属処理ユニットから前記共有メモリへの前記メイン処理ユニットによるデータ転送の開始が禁止される、あるいは（ii）前記共有メモリから前記所与の付属処理ユニットへの、前記復号化ユニットをバイパスする、前記メイン処理ユニットによるデータ転送の開始が禁止されることを特徴とする装置。
【請求項１９】
前記複数の付属処理ユニットが通常の動作モードであるかセキュアな動作モードであるかにかかわらず、前記複数の付属処理ユニットは前記共有メモリとの間でのデータ転送を開始できることを特徴とする請求項１８に記載の装置。
【請求項２０】
ハードウエアのリセット状態および起動状態のうち少なくとも一つの状態であるときに、前記複数の付属処理ユニットは前記セキュアな動作モードに入りうることを特徴とする請求項１８または１９に記載の装置。
【請求項２１】
前記データは、ソフトウエアプログラムの少なくとも一部を含みうることを特徴とする請求項１８から２０のいずれかに記載の装置。
【請求項２２】
前記複数の付属処理ユニットのそれぞれは、前記所与の付属処理ユニットの復号化ユニットおよび権限が与えられたエンティティのうち少なくとも一つによってのみアクセス可能な、十分に一意性のある鍵を有するセキュアな格納場所を備えることを特徴とする請求項１８から２１のいずれかに記載の装置。
【請求項２３】
前記複数の付属処理ユニットのそれぞれの前記復号化ユニットは、前記所与の付属処理ユニットが前記セキュアな動作モードである場合に、前記メイン処理ユニットにより開始される前記共有メモリから前記ローカルメモリへのデータ転送を前記鍵を用いて復号化することを特徴とする請求項２２に記載の装置。
【請求項２４】
前記共有メモリは、前記複数の付属処理ユニットのそれぞれに対して十分に一意性のある鍵のうちの一つを用いて暗号化された、暗号化データを保持できることを特徴とする請求項２２または２３に記載の装置。
【請求項２５】
前記複数の付属処理ユニットのそれぞれは、前記所与の付属処理ユニットと当該装置とのうち少なくとも一つに対して外部にあるエンティティに把握されうる十分に一意性のあるＩＤに関連付けられることを特徴とする請求項２２から２４のいずれかに記載の装置。
【請求項２６】
前記暗号化されたデータは、当該装置に対して外部にある、前記所与の付属処理ユニットの鍵の使用に権限が与えられたセキュアなエンティティにより暗号化されたものであることを特徴とする請求項２４または２５に記載の装置。
【請求項２７】
前記セキュアなエンティティは、関与する付属処理ユニットのＩＤと鍵とを有するデータベースを含むものであり、その付属処理ユニットに対するＩＤと鍵とはお互いに関連付けられていることを特徴とする請求項２２から２６のいずれかに記載の装置。
【請求項２８】
前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティが、前記鍵に関連付けられたＩＤを前記セキュアなエンティティに提供した後に、前記セキュアなエンティティは、前記アンセキュアなエンティティから取得したデータを、前記所与の付属処理ユニットの鍵で暗号化することを特徴とする請求項２２から２７のいずれかに記載の装置。
【請求項２９】
前記セキュアなエンティティは、前記アンセキュアなエンティティに前記暗号化されたデータを提供可能であり、
前記アンセキュアなエンティティは、前記暗号化されたデータを当該装置に提供することで前記暗号化されたデータを前記共有メモリ内に保存することが可能であり、
前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化されたデータの転送を開始することにより、前記復号化ユニットへの前記暗号化されたデータの入力を可能にし、
前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化されたデータを復号化することにより、その復号化されたデータが前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にすることを特徴とする請求項２８に記載の装置。
【請求項３０】
前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティは、第１の対称鍵を用いて前記データを暗号化し、かつ、前記セキュアなエンティティにその暗号化されたデータを提供し、かつ、前記付属処理ユニットに関連付けられたＩＤを前記セキュアなエンティティに提供するものであり、
前記セキュアなエンティティは、前記アンセキュアなエンティティにより提供されたその暗号化されたデータを第２の対称鍵を用いて復号化し、かつ、前記アンセキュアなエンティティから取得されたＩＤに関連付けられる前記所与の付属処理ユニットの鍵を用いて、前記データを暗号化することを特徴とする請求項２２から２７のいずれかに記載の装置。
【請求項３１】
前記アンセキュアなエンティティは、前記データと前記所与の付属処理ユニットのＩＤとを前記第１の対称鍵を用いて暗号化し、かつ、前記セキュアなエンティティにその暗号化されたデータまたはＩＤを提供することを特徴とする請求項３０に記載の装置。
【請求項３２】
前記セキュアなエンティティは、前記第２の対称鍵を用いて前記暗号化されたデータを暗号化し、その二重に暗号化されたデータを前記アンセキュアなエンティティに提供することが可能であり、
前記アンセキュアなエンティティは、前記二重に暗号化されたデータを前記第１の対称鍵を用いて復号化することで、前記所与の付属処理ユニットの鍵を用いて生成された前記暗号化されたデータを取得し、さらに、前記暗号化されたデータを当該装置に提供することで、前記共有メモリ内に保存することが可能であり、
前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化されたデータの転送を開始することにより、前記復号化ユニットへの前記暗号化されたデータの入力を可能にし、
前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化されたデータを復号化することにより、その復号化されたデータが前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にすることを特徴とする請求項３０または３１に記載の装置。
【請求項３３】
前記データは復号化プログラムであり、
前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティは、第１の対称鍵を用いて前記復号化プログラムを暗号化し、前記セキュアなエンティティにその暗号化された前記復号化プログラムを提供し、さらに、前記付属処理ユニットに関連付けられたＩＤを前記セキュアなエンティティに提供するものであり、
前記セキュアなエンティティは、前記アンセキュアなエンティティにより提供されたその暗号化された前記復号化プログラムを第２の対称鍵を用いて復号化し、かつ、前記アンセキュアなエンティティから取得されたＩＤに関連付けられる前記所与の付属処理ユニットの鍵を用いて、前記復号化プログラムと前記第２の対称鍵とを暗号化することを特徴とする請求項２２から２７のいずれかに記載の装置。
【請求項３４】
前記アンセキュアなエンティティは、復号化プログラムと前記所与の付属処理ユニットのＩＤとを前記第１の対称鍵を用いて暗号化し、かつ、前記セキュアなエンティティにその暗号化された復号化プログラムまたはＩＤを提供することを特徴とする請求項３３に記載の装置。
【請求項３５】
前記アンセキュアなエンティティは前記第１の対称鍵を用いて、前記復号化プログラム、前記所与の付属処理ユニットのＩＤ、および前記第２の対称鍵を暗号化し、前記暗号化された復号化プログラム、ＩＤ、または第２の対称鍵を前記セキュアなエンティティに提供することを特徴とする請求項３３に記載の装置。
【請求項３６】
前記セキュアなエンティティは、前記第２の対称鍵を用いて、前記暗号化された復号化プログラムおよび第２の対称鍵を暗号化し、その二重に暗号化された復号化プログラムまたは第２の対称鍵を前記アンセキュアなエンティティに提供することが可能であり、
前記アンセキュアなエンティティは、前記二重に暗号化された復号化プログラムまたは第２の対称鍵を前記第１の対称鍵を用いて復号化することで、前記所与の付属処理ユニットの鍵を用いて生成された前記暗号化された復号化プログラムまたは第２の対称鍵を取得し、さらに、その暗号化された復号化プログラムまたは第２の対称鍵を当該装置に提供することで、前記共有メモリ内に保存することが可能であり、
前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化された復号化プログラムまたは第２の対称鍵の転送を開始することにより、前記復号化ユニットへの前記暗号化された復号化プログラムまたは第２の対称鍵の入力を可能にし、
前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化された復号化プログラムまたは第２の対称鍵を復号化することにより、その復号化された復号化プログラムおよび第２の対称鍵が前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にすることを特徴とする請求項３３に記載の装置。
【請求項３７】
前記アンセキュアなエンティティは、前記第１の対称鍵を用いてデータを暗号化でき、さらに、その暗号化されたデータを当該装置に提供することで、前記暗号化されたデータを前記共有メモリ内に保存することが可能であることを特徴とする請求項３６に記載の装置。
【請求項３８】
前記所与の付属処理ユニットは、前記共有メモリから前記ローカルメモリ内に転送される前記暗号化されたデータを、前記復号化ユニットをバイパスして取得できることを特徴とする請求項３６または３７に記載の装置。
【請求項３９】
前記暗号化されたデータが前記共有メモリから前記ローカルメモリ内に転送される場合、前記所与の付属処理ユニットは、前記通常のモードまたは前記セキュアのモードのいずれかであることを特徴とする請求項３８に記載の装置。
【請求項４０】
前記所与の付属処理ユニットは、前記復号化プログラムおよび前記第２の対称鍵を用いて、前記暗号化されたデータを復号化できることを特徴とする請求項３６から３８のいずれかに記載の装置。
【請求項４１】
前記データはソフトウエアプログラムを含みうることを特徴とする請求項４０に記載の装置。
【請求項４２】
前記メイン処理ユニットは、前記復号化ユニットをバイパスする、前記共有メモリから前記所与の付属処理ユニットのローカルメモリ内への前記暗号化されたデータの転送を開始できることを特徴とする請求項３６から３８のいずれかに記載の装置。
【請求項４３】
メイン処理ユニットと、それぞれがローカルメモリおよび復号化ユニットを含むとともに、それぞれがセキュアな動作モードに入ることが可能な複数の付属処理ユニットと、共有メモリとを設け、
前記複数の付属処理ユニットのうちの一つの所与の付属処理ユニットがセキュアなモードに入ることにより、前記復号化ユニットが、前記所与の付属処理ユニットに対して十分に一意性があり、かつ権限が与えられたエンティティにのみに知られる鍵を用いて、外部から開始される前記所与の付属処理ユニットのローカルメモリへの任意のデータ転送を復号化しなければならない場合に、前記共有メモリから前記所与の付属処理ユニットへの、前記復号化ユニットをハイパスする、前記メイン処理ユニットによるデータ転送の開始を禁止するステップを含むことを特徴とする処理方法。
【請求項４４】
前記複数の付属処理ユニットがセキュアな動作モードであるか否かにかかわらず、前記複数の付属処理ユニットが前記共有メモリとの間でのデータ転送を開始することを可能にするステップをさらに含むことを特徴とする請求項４３に記載の処理方法。
【請求項４５】
ハードウエアのリセット状態および起動状態のうち少なくとも一つの状態であるときに、前記複数の付属処理ユニットを前記セキュアな動作モードに入らしめるステップをさらに含むことを特徴とする請求項４３または４４に記載の処理方法。
【請求項４６】
データと、前記複数の付属処理ユニットのうちの一つの所与の付属処理ユニットに関連付けられたＩＤとを、中間エンティティからセキュアなエンティティに伝送するステップと、
関与する付属処理ユニットのＩＤおよび鍵を含むセキュアなエンティティのデータベースを検索し、取得されたＩＤに対応する前記所与の付属処理ユニットの鍵を取得するステップと、
取得されたＩＤに対応する、前記所与の付属処理ユニットに関連付けられた鍵を用いて、前記セキュアなエンティティに伝送されたデータを暗号化するステップと、
前記セキュアなエンティティから前記中間エンティティに前記暗号化されたデータを伝送するステップと、
をさらに含むことを特徴とする請求項４３から４５のいずれかに記載の処理方法。
【請求項４７】
前記中間エンティティから前記所与の付属処理ユニットの共有メモリに前記暗号化されたデータを伝送するステップと、
前記所与の付属処理ユニットが前記セキュアなモードに入ることにより、前記暗号化されたデータが前記復号化ユニットにより前記鍵を用いて復号化される場合に、前記共有メモリから前記所与の付属処理ユニットに前記暗号化されたデータの転送を開始するステップと、
前記所与の付属処理ユニットのローカルメモリ内に前記データを保存するステップと、
をさらに含むことを特徴とする請求項４６に記載の処理方法。
【請求項４８】
中間エンティティにおいて、データと、前記複数の付属処理ユニットのうちの一つの所与の付属処理ユニットに関連付けられたＩＤとのうち少なくとも一つを、第１の対称鍵を用いて暗号化するステップと、
前記中間エンティティからセキュアなエンティティに、暗号化された前記データと前記ＩＤとを伝送するステップと、
前記セキュアなエンティティにおいて、その暗号化された前記データと前記ＩＤの少なくとも一つを、第２の対称鍵を用いて復号化するステップと、
関与する付属処理ユニットのＩＤおよび鍵を含むセキュアなエンティティのデータベースを検索し、取得されたＩＤに対応する前記所与の付属処理ユニットの鍵を取得するステップと、
前記セキュアなエンティティにおいて、前記所与の付属処理ユニットに関連付けられた鍵を用いて前記データを暗号化し、さらに、前記第２の対称鍵を用いてその暗号化されたデータを暗号化するステップと、
前記セキュアなエンティティから前記中間エンティティに、その二重に暗号化されたデータを伝送するステップと、
をさらに含むことを特徴とする請求項４３に記載の処理方法。
【請求項４９】
前記中間エンティティにおいて、前記第１の対称鍵を用いて、前記二重に暗号化されたデータを復号化し、前記所与の付属処理ユニットに関連付けられた鍵により暗号化されたデータを取得するステップと、
前記中間エンティティから前記所与の付属処理ユニットの共有メモリに、その暗号化されたデータを伝送するステップと、
前記所与の付属処理ユニットが前記セキュアなモードに入ることにより、前記暗号化されたデータが前記復号化ユニットにより前記鍵を用いて復号化される場合に、前記共有メモリから前記所与の付属処理ユニットに前記暗号化されたデータの転送を開始するステップと、
前記所与の付属処理ユニットのローカルメモリ内に前記データを保存するステップと、
をさらに含むことを特徴とする請求項４８に記載の処理方法。
【請求項５０】
前記データは（i）復号化プログラムと（ii）前記第２の対称鍵とを含むものであり、
当該方法は、
前記中間エンティティにおいて、前記第１の対称鍵を用いてさらなるデータを暗号化するステップと、
前記中間エンティティから前記所与の付属処理ユニットに前記暗号化されたさらなるデータを伝送し、前記共有メモリ内に保存するステップと、
前記所与の付属処理ユニットが前記セキュアなモードに入ることにより前記復号化ユニットがバイパスされる間に、前記共有メモリから前記ローカルメモリに前記暗号化されたさらなるデータの転送を開始するステップと、
をさらに含むことを特徴とする請求項４９に記載の処理方法。
【請求項５１】
前記所与の付属処理ユニットを使用することにより、復号化プログラムおよび前記第２の対称鍵を用いた、前記暗号化されたさらなるデータの復号化を行うステップをさらに含むことを特徴とする請求項５０に記載の処理方法。
【請求項５２】
暗号化／復号化プログラムと前記暗号化／復号化プログラムに関連付けられた一対の対称鍵のうちの一方とが前記所与の付属処理ユニットのローカルメモリ内に保存されるよう、前記データは（i）前記暗号化／復号化プログラムと、（ii）前記一対の対称鍵のうちの一つとを含むものであり、
さらなる暗号化／復号化プログラムと、前記さらなる暗号化／復号化プログラムに関連付けられた、前記一対の対称鍵のうちの他方とがさらなる付属処理ユニットのローカルメモリ内に保存されるよう、前記さらなるデータは（i）前記さらなる暗号化／復号化プログラムと、（ii）前記一対の対称鍵のうちの他方とを含むものであり、
前記さらなるデータと前記さらなる付属処理ユニットとを用いて、当該方法の一連のステップを繰り返すことを特徴とする請求項４９に記載の処理方法。
【請求項５３】
前記暗号化／復号化プログラムと前記所与の付属処理ユニットの前記一対の対称鍵のうちの一方とを用いてさらなるデータを暗号化するステップと、
前記所与の付属処理ユニットから前記さらなる付属処理ユニットに、前記暗号化されたさらなるデータを伝送し、共有メモリ内に保存するステップと、
前記さらなる付属処理ユニットが前記セキュアなモードに入ることにより前記さらなる付属処理ユニットの前記復号化ユニットがバイパスされる間に、前記共有メモリから前記さらなる付属処理ユニットの前記ローカルメモリに前記暗号化されたさらなるデータの転送を開始するステップと、
をさらに含むことを特徴とする請求項５２に記載の処理方法。
【請求項５４】
前記さらなる付属処理ユニットを使用することにより、前記さらなる暗号化／復号化プログラムおよび前記一対の対称鍵のうちの他方を用いた、前記暗号化されたさらなるデータの復号化を行うステップをさらに含むことを特徴とする請求項５３に記載の処理方法。
【請求項５５】
前記暗号化／復号化プログラムと前記さらなる付属処理ユニットの前記一対の対称鍵のうちの他方とを用いて、さらなるデータを暗号化するステップと、
前記さらなる付属処理ユニットから前記所与の付属処理ユニットに前記暗号化されたさらなるデータを伝送し、前記共有メモリ内に保存するステップと、
前記所与の付属処理ユニットが前記セキュアなモードに入ることにより前記所与の付属処理ユニットの前記復号化ユニットがバイパスされる間に、前記共有メモリから前記所与の付属処理ユニットの前記ローカルメモリに前記暗号化されたさらなるデータの転送を開始するステップと、
をさらに含むことを特徴とする請求項５２に記載の処理方法。
【請求項５６】
前記所与の付属処理ユニットを使用することにより、前記暗号化／復号化プログラムおよび前記一対の対称鍵のうちの一方を用いた、前記暗号化されたさらなるデータの復号化を行うステップをさらに含むことを特徴とする請求項５５に記載の処理方法。
【請求項５７】
前記所与の付属処理ユニットの前記共有メモリは、前記さらなる付属処理ユニットの共有メモリと同一のメモリであることを特徴とする請求項５５に記載の処理方法。
【請求項５８】
復号化プログラムおよび第２の対称鍵が、前記所与の付属処理ユニットのローカルメモリ内に保存されるよう、前記データは（i）前記復号化プログラムと、（ii）その復号化プログラムに関連付けられた第２の対称鍵とを含むものであり、
さらなる複数の付属処理ユニットを用いて、当該方法の一連のステップを繰り返すことにより、前記復号化プログラムおよび前記第２の対称鍵を前記複数の付属処理ユニットのそれぞれに保存することを特徴とする請求項４９に記載の処理方法。
【請求項５９】
前記中間エンティティにおいて、前記第１の対称鍵を用いてさらなるデータを暗号化するステップと、
前記中間エンティティから前記複数の付属処理ユニットのそれぞれに、前記暗号化されたさらなるデータを伝送し、前記共有メモリ内に保存するステップと、
前記複数の付属処理ユニットのそれぞれが前記セキュアなモードに入ることにより前記複数の付属処理ユニットのそれぞれの前記復号化ユニットがバイパスされる間に、前記共有メモリから前記複数の付属処理ユニットのそれぞれのローカルメモリに、前記暗号化されたさらなるデータの転送を開始するステップと、
をさらに含むことを特徴とする請求項５８に記載の処理方法。
【請求項６０】
前記複数の付属処理ユニットのそれぞれを使用することにより、前記復号化プログラムと前記第２の対称鍵とを用いた、前記暗号化されたさらなるデータの復号化を行うステップをさらに含むことを特徴とする請求項５９に記載の処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばブロードバンド環境におけるセキュアなデータ処理のためのマルチプロセッサのアーキテクチャを用いて、セキュアなデータ処理を実行する方法および装置に関する。
【背景技術】
【０００２】
リアルタイムでマルチメディアのネットワークアプリケーションの重要性は、より一層高まってきている。こうしたネットワークアプリケーションは、１秒間に数千メガビットといった極めて高速の処理速度を必要とする。インターネットなどの従来のネットワークアーキテクチャと、現在ではＪａｖａ（登録商標）モデルなどで具体化されたプログラミングモデルとでは、そのような処理速度の実現は極めて困難であった。
【０００３】
従来のコンピュータネットワーク、例えば、オフィスのネットワークの中で利用されるローカルエリアネットワーク（ＬＡＮ）やインターネットなどのグローバルネットワーク、のコンピュータやコンピューティングデバイスは、主にスタンドアロンで演算できるよう設計された。コンピュータネットワークを介してデータおよびアプリケーションプログラム（単に「アプリケーション」という）を共用することは、こうしたコンピュータおよびコンピューティングデバイスの主な設計目的ではなかった。また、こうしたコンピュータおよびコンピューティングデバイスは、通常、モトローラ社、インテル社、テキサスインスツルメント社、ソニー社や他の企業などの様々な異なる製造業者により製造された広範囲の異なるプロセッサを用いて設計された。これらのプロセッサのそれぞれは、それ独自の特定の命令セットと命令セットアーキテクチャ（ＩＳＡ）を有する。すなわち、プロセッサ独自の特定のセットのアセンブリ言語命令とこれらの命令を実行する主演算装置および記憶装置のための構造とを有する。したがって、プログラマには、各プロセッサの命令セットおよびＩＳＡを理解してこれらプロセッサ用のアプリケーションを記述することが要求される。今日のコンピュータネットワーク上では異機種のコンピュータおよびコンピューティングデバイスが混在しているため、データおよびアプリケーションの共有および処理が複雑化している。さらに、この複数種が混在する環境に対する調整を行うために、多くの場合、同一アプリケーションであっても複数のバージョンを用意することが必要になっている。
【０００４】
グローバルネットワーク、とりわけインターネットに接続されるコンピュータおよびコンピューティングデバイスの種類は多岐にわたる。こうしたコンピューティングデバイスには、パーソナルコンピュータ（ＰＣ）およびサーバ以外に、携帯電話、モバイルコンピュータ、個人情報端末（ＰＤＡ）、セットトップボックス、ディジタルＴＶ、およびその他多数の装置が含まれる。このような異機種のコンピュータおよびコンピューティングデバイス間でデータおよびアプリケーションを共有することに起因して、大きな問題が生じている。
【０００５】
このような問題の克服を試みようと、多くの技術が採用されてきた。これらの技術には、とりわけ高性能なインタフェースおよび複雑なプログラミング技術が含まれる。これらの解決策は多くの場合、実行に必要な処理能力を十分に増加させなければならない。また、それらは多くの場合、結果として、アプリケーションの処理およびネットワークを介したデータ転送に要する時間を大幅に増加させてしまうことがある。
【０００６】
データは通常、対応するアプリケーションとは別にインターネットを介して伝送される。このアプローチによれば、アプリケーションに対応した各セットの伝送データとともにアプリケーション自体をも送信する必要がなくなる。このアプローチは必要とされる帯域幅の量を最小限にする一方、多くの場合、ユーザ間の不満を生じさせてしまう。その伝送データを利用するための適正のアプリケーション、あるいは最新のアプリケーションを、そのクライアントのコンピュータ上で入手できない場合がある。また、このアプローチによれば、ネットワーク上のプロセッサにより使用される多数の異なるＩＳＡおよび命令セットに対応して、各アプリケーションごとにバージョンの異なる複数のアプリケーションを用意することが要求される。
【０００７】
Ｊａｖａモデルはこの問題を解決しようとする。このモデルは厳しいセキュリティ・プロトコルに準拠する小さなアプリケーション（アプレット）を用いる。そのアプレットはネットワークを介してサーバ側コンピュータから送られ、クライアント側コンピュータ（クライアント）により実行される。異なるＩＳＡを用いるクライアントごとに、同一アプレットであっても異なるバージョンを送信するという事態を回避する必要があるため、すべてのＪａｖａアプレットは、クライアントのＪａｖａバーチャル（仮想）マシン上で実行される。Ｊａｖａバーチャルマシンは、ＪａｖａのＩＳＡとＪａｖａの命令セットを有するコンピュータをエミュレートするソフトウエアである。なお、このソフトウエアは、クライアント側のＩＳＡとクライアント側の命令セットにより実行される。クライアント側ではＩＳＡと命令セットがそれぞれ異なるが、与えられるＪａｖａバーチャルマシンのバージョンは一つである。従って、複数の各アプレットごとに異なるバージョンを用意する必要はない。各クライアントでは、そのクライアントにおけるＩＳＡと命令セットに対応した適正なＪａｖａバーチャルマシンのみをダウンロードすることで、すべてのＪａｖａアプレットを実行できる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
それぞれ異なるＩＳＡおよび命令セットに対して異なるバージョンのアプリケーションを記述しなければならないという課題は解決されているが、そのＪａｖａ処理モデルでは、クライアントのコンピュータ上にソフトウエアの追加層が要求される。ソフトウエアのこの追加層のためにプロセッサの処理速度は著しく低下する。この速度の低下は、特にリアルタイムでマルチメディアのアプリケーションにとって深刻である。ダウンロードされたＪａｖａアプレットはウイルスや処理上の誤操作などを含む可能性もある。このようなウイルスや処理上の誤操作により、クライアントのデータベースが使い物にならなくなる可能性があり、さらに他の損害を引き起こしうる。Ｊａｖａモデルで用いられるセキュリティプロトコルでは、「サンドボックス（sandbox）」（Ｊａｖａアプレットがそれ以外ではデータを書き込むことができない、クライアント側のメモリ内のスペース）といったソフトウエアを実装することでこの問題の解決が試みられているとはいえ、このソフトウエア駆動型セキュリティモデルは、その実行時にしばしば不安定になり、より多くの処理が必要になる。
【０００９】
本発明の目的は、セルアーキテクチャにおけるセキュアなデータ処理を行うための新規の方法および装置を提供することにある。
【課題を解決するための手段】
【００１０】
新規のコンピュータ（およびネットワーク）アーキテクチャはまた、上述の問題の少なくともいくつかを克服するために開発された。この新規のコンピュータアーキテクチャによれば、コンピュータネットワークのすべてのメンバ、すなわち、そのネットワークのすべてのコンピュータおよびコンピューティングデバイスは、共通のコンピュータモジュール（またはセル）から構成される。この共通のコンピュータモジュールは、共通の構成を有し、同一の命令セットアーキテクチャを用いるのが好ましい。そのネットワークのメンバは、コンピュータプロセッサを用いて、クライアント、サーバ、ＰＣ、携帯端末、ゲーム機、ＰＤＡ、セットトップボックス、アプリケーション、デジタルテレビおよび他のデバイスから構成されうる。一貫性のあるモジュール構造により、ネットワークのメンバによってアプリケーションおよびデータの効率的な高速処理が可能となり、かつネットワークを介してアプリケーションおよびデータの迅速な伝送ができる。またこの構造により、様々なサイズおよび処理能力をもつネットワークメンバの形成、ならびにこれらメンバによって処理されるアプリケーションの準備を簡略化できる。
【００１１】
この新規のコンピュータアーキテクチャはまた、データおよびアプリケーションをネットワークを介して伝送し、かつデータおよびアプリケーションをネットワークメンバ間で処理する新たなプログラミングモデルを用いる。このプログラミングモデルは、ネットワークを介して伝送されたソフトウエアセルを用いるものであり、そのセルは任意のネットワークメンバによって処理される。各ソフトウェアセルは同一構造をもち、データとアプリケーション両方を収容できる。モジュール式コンピュータ構成による高速処理および伝送速度の結果、これらセルの高速処理が可能である。アプリケーション用のコードは、同一の共通命令セットおよび命令セットアーキテクチャに基づくのが好ましい。各ソフトウェアセルは、好適にはグローバル（大域的）識別名（グローバルＩＤ）と、セルの処理に必要な計算リソース量を記述した情報とを含む。すべての計算リソースは同一の基本構造をもち、かつ同じ命令セットアーキテクチャを用いるので、処理を実行する特定のリソースをネットワーク上の任意の場所に配置してダイナミックに割り当てを行うことができる。
【００１２】
基本的な処理モジュールはプロセッサ要素（ＰＥ）である。ＰＥは、好適には処理ユニット（ＰＵ）と、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）と、共通の内部アドレスおよびデータバスで接続された、複数の、例えば４つの付属処理ユニット（ＡＰＵ）とを含む。ＰＵおよびＡＰＵは、クロスバー構成をもちうる共有ダイナミックランダムアクセスメモリ（ＤＲＡＭ）にアクセスする。ＰＵは、ＡＰＵによるデータおよびアプリケーションの処理のスケジューリングと調整を行う。ＡＰＵはこの処理を並列かつ独立して行う。ＤＭＡＣは、共有ＤＲＡＭに保存されたデータおよびアプリケーションに対するＰＵおよびＡＰＵのアクセスを制御する。
【００１３】
このモジュール構造では、そのネットワークのメンバにより使用されるＰＥの数は、そのメンバが必要とする処理能力に基づく。例えば、サーバは４つのＰＥ、ワークステーションは二つのＰＥ、ＰＤＡは一つのＰＥを使用しうる。あるソフトウェアセルの処理に割り当てられるＰＥのＡＰＵの数は、セル内のプログラムおよびデータの複雑さおよび規模によって異なる。
【００１４】
複数のＰＥを共有ＤＲＡＭに関連付けることができ、そのＤＲＡＭは複数のセクションに分別され、各セクションは複数のメモリバンクに分別されうる。ＤＲＡＭの各セクションはバンクコントローラによって制御され、ＰＥの各ＤＭＡＣが各バンクコントローラにアクセスできる。本構成では、各ＰＥのＤＭＡＣは共有ＤＲＡＭの任意の個所にアクセスできる。
【００１５】
そのＤＲＡＭには、一つのＡＰＵが処理するプログラム用データに起因する、別のＡＰＵによって処理されるプログラム用データの損壊に対するセキュリティを提供するサンドボックスが設けられる。それぞれのサンドボックスによって共用ＤＲＡＭ領域が画定され、この領域を越えて、特定のＡＰＵや一組のＡＰＵがデータの読み出しや書き込みを行うことはできない。
【００１６】
サンドボックスはデータの損壊に対するあるセキュリティ対策を提供する一方、内包的なソフトウエアの著作権侵害の問題の対処を行っていない。所与のＰＥ内の複数のＡＰＵは共通の内部バスを介して接続されるため、あるＡＰＵ上で動作するソフトウエアを別のＡＰＵが監視することが可能である。ブロードバンドネットワークの状況下では、所与のＰＥに含まれる２以上のＡＰＵが、異なるアプリケーションプログラムを実行するのが好都合である。システムの高い柔軟性を確保するために、例えば、異なるソフトウエア開発企業などの異なるエンティティによりこのようなソフトウエアプログラムが作成されることを可能にするのが好ましい。いくつかの例において、ソフトウエア開発企業は、そのソフトウエアアプリケーションがセキュアで、かつコピーされることなく、あるいは他に監視されているという保証を所望する場合がある。
【００１７】
本発明の一以上の態様によれば、ローカルメモリと、前記ローカルメモリとの間での情報のやりとりを可能にするバスと、データを処理できるとともに前記ローカルメモリに動作可能に接続される１以上の演算処理ユニットと、複数の動作モードのうち少なくとも一つの動作モードに当該装置を設定可能なセキュリティ回路とを備える装置を提供する。なお、前記複数の動作モードは、当該装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、当該装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとを含む。
【００１８】
本発明の一以上の態様によれば、セキュリティ回路は、二つの動作モードのうちいずれかの動作モードに装置を設定可能であり、その前記二つの動作モードは、（i）当該装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、当該装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとで形成され、あるいは、（ii）前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、前記第３のモードとで形成される。
【００１９】
前記セキュリティ回路は、前記セキュリティ回路の外部のデバイスによるアクセスが不可能な、第１の鍵と第２の鍵とを有する機密データ領域と、前記セキュリティ回路の外部のデバイスによるアクセスが可能なアクセス可能データ領域と、当該装置が前記第２のモードである場合に、前記アクセス可能データ領域内に前記第１の鍵のコピーを保存することを可能にするロジック回路と、を備えるのが好ましい。セキュリティが当該装置の使用に先立って維持されるよう、前記第１の鍵および前記第２の鍵は管理下におかれたプロセスにおいて前記機密データ領域内に保存されることが好ましい。
【００２０】
復号化プログラムの実行と、前記第２の鍵のコピーを有するとともに前記第１の鍵に従って暗号化される認証プログラムの実行とを含む認証ルーチンを当該装置が実行する場合には、前記セキュリティ回路は当該装置を前記第２のモードに設定するのが好ましい。当該装置は前記復号化プログラムを実行することにより、前記アクセス可能データ領域内に含まれる前記第１の鍵のコピーを用いて前記認証プログラムを復号化する。
【００２１】
前記セキュリティ回路が有する前記ロジック回路は、前記認証プログラムの実行に応じて前記アクセス可能データ領域内に前記第２の鍵のコピーを保存し、さらに、前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致するか否かを判定するのが好ましい。
【００２２】
前記セキュリティ回路は、前記認証プログラム内に含まれる前記第２の鍵のコピーが前記アクセス可能データ領域内に含まれる第２の鍵のコピーに一致する場合、当該装置は前記第３のモードに当該装置を設定できる。
【００２３】
本発明の一以上の別の態様によれば、複数の上述した装置が一つのデバイス内に設けられてもよい。
【００２４】
本発明の一以上の別の態様によれば、複数の動作モードのうち少なくとも一つの動作モードに装置を設定するステップを含む方法である。当該装置は、ローカルメモリと、前記ローカルメモリとの間での情報のやりとりを可能にするバスと、データを処理できるとともに前記ローカルメモリに動作可能に接続される１以上の演算処理ユニットと、複数の動作モードのうち少なくとも一つの動作モードに当該装置を設定可能なセキュリティ回路とを備える。なお、前記複数の動作モードは、当該装置および外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できる第１のモードと、前記装置および前記外部デバイスが、前記バスを介しての前記ローカルメモリとの間での情報の転送を開始できない第２のモードと、当該装置は前記バスを介しての前記ローカルメモリとの間での情報の転送の開始できるが、前記外部デバイスは前記バスを介しての前記ローカルメモリとの間の情報の転送を開始できない第３のモードとを含む。
【００２５】
本発明の一以上の別の態様によれば、メイン処理ユニットと、それぞれがローカルメモリおよび復号化ユニットを含むとともに、それぞれが通常の動作モードまたはセキュアな動作モードに入ることが可能な複数の付属処理ユニットと、共有メモリと、を備える装置を提供する。その装置の前記複数の付属処理ユニットのうちの一つの所与の付属処理ユニットが前記通常のモードである場合、前記メイン処理ユニットは、前記所与の付属処理ユニットと前記共有メモリとの間で、前記復号化ユニットをバイパスするデータ転送を開始でき、前記所与の付属処理ユニットが前記セキュアなモードである場合、（i）前記所与の付属処理ユニットから前記共有メモリへの前記メイン処理ユニットによるデータ転送の開始が禁止される、あるいは（ii）前記共有メモリから前記所与の付属処理ユニットへの、前記復号化ユニットをバイパスする、前記メイン処理ユニットによるデータ転送の開始が禁止される。
【００２６】
前記複数の付属処理ユニットが通常の動作モードであるかセキュアな動作モードであるかにかかわらず、前記複数の付属処理ユニットは前記共有メモリとの間でのデータ転送を開始できるのが好ましい。ハードウエアのリセット状態および起動状態のうち少なくとも一つの状態であるときに、前記複数の付属処理ユニットは前記セキュアな動作モードに入りうるのが好ましい。
【００２７】
前記複数の付属処理ユニットのそれぞれは、前記所与の付属処理ユニットの復号化ユニットおよび権限が与えられたエンティティのうち少なくとも一つによってのみアクセス可能な、十分に一意性のある鍵を有するセキュアな格納場所を備えるのが好ましい。前記複数の付属処理ユニットのそれぞれの前記復号化ユニットは、前記所与の付属処理ユニットが前記セキュアな動作モードである場合に、前記メイン処理ユニットにより開始される前記共有メモリから前記ローカルメモリへのデータ転送を前記鍵を用いて復号化してもよい。前記複数の付属処理ユニットのそれぞれは、前記所与の付属処理ユニットと当該装置とのうち少なくとも一つに対して外部にあるエンティティに把握されうる十分に一意性のあるＩＤに関連付けられてもよい。
【００２８】
前記暗号化されたデータは、当該装置に対して外部にある、前記所与の付属処理ユニットの鍵の使用に権限が与えられたセキュアなエンティティにより暗号化されたものであるのが好ましい。前記セキュアなエンティティは、関与する付属処理ユニットのＩＤと鍵とを有するデータベースを含んでもよく、その付属処理ユニットに対するＩＤと鍵とはお互いに関連付けられている。前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティが、前記鍵に関連付けられたＩＤを前記セキュアなエンティティに提供した後に、前記セキュアなエンティティは、前記アンセキュアなエンティティから取得したデータを、前記所与の付属処理ユニットの鍵で暗号化してもよい。
【００２９】
好適には、前記セキュアなエンティティは、前記アンセキュアなエンティティに前記暗号化されたデータを提供可能であり、前記アンセキュアなエンティティは、前記暗号化されたデータを当該装置に提供することで前記暗号化されたデータを前記共有メモリ内に保存することが可能であり、前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化されたデータの転送を開始することにより、前記復号化ユニットへの前記暗号化されたデータの入力を可能にし、前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化されたデータを復号化することにより、その復号化されたデータが前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にする。
【００３０】
他に、前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティは、第１の対称鍵を用いて前記データを暗号化し、かつ、前記セキュアなエンティティにその暗号化されたデータを提供し、かつ、前記付属処理ユニットに関連付けられたＩＤを前記セキュアなエンティティに提供するのが好ましい。前記セキュアなエンティティは、前記アンセキュアなエンティティにより提供されたその暗号化されたデータを第２の対称鍵を用いて復号化し、かつ、前記アンセキュアなエンティティから取得されたＩＤに関連付けられる前記所与の付属処理ユニットの鍵を用いて、前記データを暗号化するのが好ましい。
【００３１】
前記アンセキュアなエンティティは、前記データと前記所与の付属処理ユニットのＩＤとを前記第１の対称鍵を用いて暗号化し、かつ、前記セキュアなエンティティにその暗号化されたデータ／ＩＤを提供するのが好ましい。最後に、前記セキュアなエンティティは、前記第２の対称鍵を用いて前記暗号化されたデータを暗号化し、その二重に暗号化されたデータを前記アンセキュアなエンティティに提供することが可能であり、前記アンセキュアなエンティティは、前記二重に暗号化されたデータを前記第１の対称鍵を用いて復号化することで、前記所与の付属処理ユニットの鍵を用いて生成された前記暗号化されたデータを取得し、さらに、前記暗号化されたデータを当該装置に提供することで、前記共有メモリ内に保存することが可能であり、前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化されたデータの転送を開始することにより、前記復号化ユニットへの前記暗号化されたデータの入力を可能にし、前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化されたデータを復号化することにより、その復号化されたデータが前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にする。
【００３２】
さらに他の態様では、前記データは復号化プログラムであり、前記付属処理ユニットの鍵の使用の権限が与えられていないアンセキュアなエンティティは、第１の対称鍵を用いて前記復号化プログラムを暗号化し、前記セキュアなエンティティにその暗号化された前記復号化プログラムを提供し、さらに、前記付属処理ユニットに関連付けられたＩＤを前記セキュアなエンティティに提供するものであり、前記セキュアなエンティティは、前記アンセキュアなエンティティにより提供されたその暗号化された前記復号化プログラムを第２の対称鍵を用いて復号化し、かつ、前記アンセキュアなエンティティから取得されたＩＤに関連付けられる前記所与の付属処理ユニットの鍵を用いて、前記復号化プログラムと前記第２の対称鍵とを暗号化する。前記アンセキュアなエンティティは、復号化プログラムと前記所与の付属処理ユニットのＩＤとを前記第１の対称鍵を用いて暗号化し、かつ、前記セキュアなエンティティにその暗号化された復号化プログラム／ＩＤを提供するのが好ましい。
【００３３】
好適には、前記セキュアなエンティティは、前記第２の対称鍵を用いて、前記暗号化された復号化プログラムおよび第２の対称鍵を暗号化し、その二重に暗号化された復号化プログラム／第２の対称鍵を前記アンセキュアなエンティティに提供することが可能であり、前記アンセキュアなエンティティは、前記二重に暗号化された復号化プログラム／第２の対称鍵を前記第１の対称鍵を用いて復号化することで、前記所与の付属処理ユニットの鍵を用いて生成された前記暗号化された復号化プログラム／第２の対称鍵を取得し、さらに、その暗号化された復号化プログラム／第２の対称鍵を当該装置に提供することで、前記共有メモリ内に保存することが可能であり、前記メイン処理ユニットは、前記共有メモリから前記所与の付属処理ユニットへの前記暗号化された復号化プログラム／第２の対称鍵の転送を開始することにより、前記復号化ユニットへの前記暗号化された復号化プログラム／第２の対称鍵の入力を可能にし、前記所与の付属処理ユニットの前記復号化ユニットは、前記所与の付属処理ユニットの鍵を用いて前記暗号化された復号化プログラム／第２の対称鍵を復号化することにより、その復号化された復号化プログラムおよび第２の対称鍵が前記所与の付属処理ユニットのローカルメモリ内に保存されることを可能にする。
【００３４】
さらに、前記アンセキュアなエンティティは、前記第１の対称鍵を用いてデータを暗号化でき、さらに、その暗号化されたデータを当該装置に提供することで、前記暗号化されたデータを前記共有メモリ内に保存することが可能である。前記所与の付属処理ユニットは、前記共有メモリから前記ローカルメモリ内に転送される前記暗号化されたデータを、前記復号化ユニットをバイパスして取得できる。前記暗号化されたデータが前記共有メモリから前記ローカルメモリ内に転送される場合、前記所与の付属処理ユニットは、前記通常のモードまたは前記セキュアのモードのいずれかであってもよい。前記所与の付属処理ユニットは、前記復号化プログラムおよび前記第２の対称鍵を用いて、前記暗号化されたデータを復号化できる。前記メイン処理ユニットは、前記復号化ユニットをバイパスする、前記共有メモリから前記所与の付属処理ユニットのローカルメモリ内への前記暗号化されたデータの転送を開始できる。
【００３５】
本発明の上記以外の態様、特徴、および利点は、添付図面とともに以下の詳細な説明により当業者には明確に理解される。
【発明を実施するための最良の形態】
【００３６】
現在のところ好適である図面を例示として添付するが、本発明は図面と同一の構成および手段に限定するものではない。
【００３７】
実施の形態に係るコンピュータシステム１の全体構成を図１に示す。システム１は、複数のコンピュータおよびコンピューティングデバイスが接続されたネットワーク４を含む。ネットワーク４は、ローカルエリアネットワーク（ＬＡＮ）、インターネット等のグローバルネットワーク、またはその他のコンピュータネットワークから構成されうる。
【００３８】
ネットワーク４に接続されたコンピュータおよびコンピューティングデバイス（ネットワークの「メンバ」）は、クライアントコンピュータ６、サーバコンピュータ８、個人携帯端末（ＰＤＡ）１０、ディジタルテレビ（ＤＴＶ）１２、ならびにその他の有線または無線コンピュータおよびコンピューティングデバイス等を含む。ネットワーク４のメンバによって用いられるプロセッサは、同一の共通コンピューティングモジュールで構成される。これらのプロセッサはまた、すべて同一の命令セットアーキテクチャを有し、その同一の命令セットに従って処理を実行するのが好ましい。任意のあるプロセッサ内部に含まれるモジュールの数は、そのプロセッサが必要とする処理能力に依存する。
【００３９】
例えば、システム１のサーバ８は、クライアント６よりも多くのデータおよびアプリケーションを実行するため、クライアント６よりも多くの計算モジュールを含む。一方、ＰＤＡ１０は本例では処理量が最も少ない。従ってＰＤＡ１０に含まれるＰＥ数は一番少ない。ＤＴＶ１２はクライアント６とサーバ８との間のあるレベルの処理を実行する。従って、ＤＴＶ１２はクライアント６とサーバ８の間の数のプロセッサ要素を含む。後述するが、それぞれのコンピューティングモジュールは、ネットワーク４を介して伝送されたデータおよびアプリケーションの並列処理を実行するための処理コントローラおよび複数の同一の処理ユニットを含む。
【００４０】
システム１のこのホモジーニャスな（均一な）構成により、適応性、処理速度、および処理効率が向上する。システム１の各メンバは同一計算モジュールを一つ以上用いて（またはそのある部分を用いて）処理を行うので、データおよびアプリケーションの処理を実際に行っているのはどのコンピュータまたはコンピューティングデバイスであるかは重要ではない。そのようなデータおよびアプリケーションの処理は、さらに、ネットワークメンバ間で共有できるためである。システム１によって処理されるデータおよびアプリケーションを含むソフトウエアセルを一意に識別することにより、処理がどこで発生したかに関係なく、処理を要求しているコンピュータまたはコンピューティングデバイスに処理結果を伝送できる。処理を実行しているモジュールは共通の構造をもち、かつ共通の命令セットアーキテクチャを使用しているので、プロセッサ間で互換性を得るためにソフトウェアに追加すべきレイヤによる計算負荷を回避できる。この構成およびプログラミングモジュールによって、例えばマルチメディア・アプリケーションのリアルタイムの実行に必要な処理速度を達成できる。
【００４１】
システム１によって改善される処理速度および処理効率の利点をさらに高めるため、本システムによって処理されるデータおよびアプリケーションは、一意に識別され、均一にフォーマットされたソフトウェアセル２にパッケージされる。各ソフトウェアセル２は、アプリケーションおよびデータの両方を含む、または含みうる。各ソフトウェアセルはまた、ネットワーク４およびシステム１中でセルをグローバルに識別するＩＤを含む。このソフトウェアセルの均一な構造、およびソフトウェアセルのネットワーク中での一意的な識別により、ネットワークの任意のコンピュータまたはコンピューティングデバイス上でのアプリケーションおよびデータの処理が容易になる。例えば、クライアント６はソフトウェアセル２をフォーミュレート（すなわち所与の形式で生成）するが、クライアント６の処理能力の限度のため、そのソフトウェアセルをサーバ８に伝送して処理してもよい。従ってソフトウェアセル２は、ネットワーク４上で利用できる処理リソースに応じてネットワーク４中を移動できる。
【００４２】
システム１のプロセッサおよびソフトウェアセル２の均一構造はまた、既存の異種ネットワークの多くの問題を回避する。例えば、任意の命令セットを用いることで任意の命令セットアーキテクチャ上でのアプリケーションの処理を可能にする、効率的とはいえないプログラミングモデル、例えばＪａｖａバーチャルマシーン等のバーチャルマシーンが回避される。従って、システム１は従来のネットワークに比べて、はるかに効果的かつ効率的な広帯域処理を実現できる。
【００４３】
図２は、実施の形態に係る１以上の態様を実現するために構成されうるプロセッサシステム１００の少なくとも一部を示す。簡潔および明確にするために、図２の構成図を参照し装置１００を用いて説明するが、同一の主旨を有する様々な態様の方法にその説明を簡単に適用できるのは言うまでもない。
【００４４】
プロセッサシステム１００は複数のプロセッサ１０２（１０２Ａ〜１０２Ｄ）を含むが、本発明の主旨および範囲を逸脱しない限り、いかなる数のプロセッサを用いることができるのは言うまでもない。そのプロセッサシステム１００はまた、複数のローカルメモリ１０４（１０４Ａ〜１０４Ｄ）と、共有メモリ１０６とを有する。少なくとも、プロセッサ１０２、ローカルメモリ１０４および共有メモリ１０６は、適切なプロトコルに従ってそれぞれの構成要素との間でデータ転送が可能なバスシステム１０８を介して、（直接的にまたは間接的に）お互いに接続されるのが好ましい。
【００４５】
プロセッサ１０２のそれぞれの構成は同一であってもよいし、異なってもよい。そのプロセッサは、共有（またはシステム）メモリ１０６からデータを要求するとともにそのデータを操作することで所望の結果を得ることを可能にする任意の既知の技術を用いて実装されてもよい。例えば、プロセッサ１０２はソフトウエアおよび／またはファームウエアを実行可能な、スタンドアロン型や分散型のマイクロプロセッサなどの任意の既知のマイクロプロセッサを用いることで実装されてもよい。例として、一つ以上のプロセッサ１０２は、ピクセルデータなどのデータを要求するとともにそのデータを操作可能なグラフィックプロセッサであってもよい。なお、そのピクセルデータには、グレースケール情報や、カラー情報や、テクスチャデータや、ポリゴン情報や、ビデオフレーム情報などが含まれる。
【００４６】
システム１００の一つ以上のプロセッサ１０２は、メイン（または管理）プロセッサとして機能する。そのメインプロセッサは他のプロセッサによるデータの処理のスケジューリングと調整を行うことができる。
【００４７】
システムメモリ１０６は、メモリインタフェース回路（図示せず）を通じてプロセッサ１０２に接続されるダイナミックランダムアクセスメモリ（ＤＲＡＭ）であるのが好ましい。そのシステムメモリ１０６は、好適にはダイナミックランダムアクセスメモリだが、スタティックランダムアクセスメモリ（ＳＲＡＭ）、磁気ランダムアクセスメモリ（ＭＲＡＭ）、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
【００４８】
それぞれのプロセッサ１０２は好適には、プロセッサコアと、中でプログラムを実行するための、そのコアに関連付けられた一つのローカルメモリ１０４とを含む。これらの構成要素は共通の半導体基板上に一体的に設けられてもよいし、あるいは、設計者の意図により分離されて設けられてもよい。プロセッサコアは好適には、パイプライン処理を用いて実行される。なお、パイプライン処理においては、パイプライン型の方法で論理命令が処理される。そのパイプラインは、命令が処理される任意の数のステージに分割されるが、一般的には、一つ以上の命令をフェッチするステージ、その命令をデコードするステージ、命令間の依存性をチェックするステージ、その命令を出力するステージ、その命令を実行するステージを有する。この点に関連して、そのプロセッサコアには、命令バッファ、命令デコード回路、依存性チェック回路、命令出力回路、および実行段階が含まれる。
【００４９】
それぞれのローカルメモリ１０４は、そのローカルメモリ１０４に関連付けられたプロセッサコア１０２にバスを介して接続され、さらにそのプロセッサコアと同一チップ（同一の半導体基板）上に設けられるのが好ましい。ローカルメモリ１０４は、従来のハードウェアキャッシュメモリではないことが好ましい。なお、そのローカルメモリ１０４には、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に設けられたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどは存在しない。チップ上の実装面積が限られているので、ローカルメモリ１０４のサイズは、共有メモリ１０６のサイズよりはるかに小さい。
【００５０】
プロセッサ１０２は、プログラムの実行とデータの操作のために、バスシステム１０８を介してシステムメモリ１０６からそれぞれのローカルメモリ１０４にデータ（プログラムデータを含みうる）をコピーするためのデータアクセスを要求することが好ましい。データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス（ＤＭＡ）技術などの任意の既知の技術を用いてもよい。この機能は好適には、メモリインタフェース回路により実行される。
【００５１】
図３に示すように、一つ以上のプロセッサ１０２はまた、そのプロセッサ１０２を複数の動作モードのうち少なくとも一つの動作モードに設定できるセキュリティ回路１５０を含むのが好ましい。そのセキュリティ回路１５０は、機密データ領域１５２と、アクセス可能データ領域１５４と、ロジック回路１５６とを含む。機密データ領域１５２は、セキュリティ回路１５０の外部のどのデバイスからもアクセス不可能であることが好ましい。アクセス可能データ領域１５４は、セキュリティ回路１５０の外部のデバイスからアクセス可能であることが好ましい。機密データ領域１５２および／またはアクセス可能データ領域１５４はそれぞれ、ローカルメモリ１０６の一部分、レジスタおよび／またはＲＯＭやそれと同様の他の記憶デバイスとして実装されうる。
【００５２】
第１の鍵であるＫＥＹ１および第２の鍵であるＫＥＹ２は、プロセッサ１０２の使用前の管理下におかれたプロセスにおいて、セキュリティ回路１５０の機密データ領域１５２内に保存されるのが好ましく、それによりセキュリティが維持される。実際には、ＫＥＹ１およびＫＥＹ２は、プロセッサ１０２を認証しさらにそのプロセッサ１０２を信頼のおけるデバイスとみなすために用いられるものと考慮される。したがって、ＫＥＹ１およびＫＥＹ２は、プロセッサが使用中である場合および、例えば製造工程中などの使用前である場合に、権限が与えられた主体（party；パーティ）の制御下で、秘密状態で保持されるのが好ましい。
【００５３】
機密データ領域１５２、アクセス可能データ領域およびロジック回路１５６は好適には、あるバス構成を用いて実装可能なコネクション線１５８を介してお互いに接続される。ロジック回路１５６は好適には、あるバス構成を用いて同様に実装可能な一つ以上のデータ線１６０によりレジスタに接続される。
【００５４】
上述のように、セキュリティ回路１５０は好適には、そのプロセッサ１０２を複数の動作モードのうち少なくとも一つの動作モードに設定することが可能である。これらのモードの中には好適には、第１モード（通常モード）が含まれる。その第１モードによれば、プロセッサ１０２と任意の外部のデバイスやデバイス群は、そのプロセッサ１０２との間での情報の転送、例えば、ローカルメモリ１０４との間での情報の転送を開始できる。その動作モードの中には好適には、第２のモード（独立モード）も含まれる。その第２モードによれば、プロセッサ１０２も任意の外部のデバイスやデバイス群も、そのプロセッサ１０２との間での情報の転送を開始することは不可能である（情報の転送の開始が制限される）。その動作モードの中には好適には、第３のモード（セキュアモード）も含まれる。その第３のモードによれば、プロセッサ１０２は、そのプロセッサ１０２との間での情報の転送を開始できるが、任意の外部のデバイスやデバイス群は、そのプロセッサ１０２との間での情報の転送を開始することは不可能である（情報の転送の開始が制限される）。
【００５５】
本実施の形態に係るプロセッサ１０２のあるセキュリティ機能の流れを示す図４から図６までを参照することで、セキュリティ回路１５０の動作についての理解をさらに深めることができる。この点について、プロセッサ１０２は第１のモードである通常動作モードに初期設定されているものとする（動作２００）。その第１のモードでは、プロセッサ１０２と（他のプロセッサなどの）任意の外部のデバイスまたはデバイス群は、プロセッサ１０２のローカルメモリ１０４との間での情報の転送を開始できる。ここで、他の実施の形態においては、そのプロセッサ１０２は、（起動時などの）初期化時に第１の動作モードに入らなくてもよい。あるいは、後述する第２の動作モードまたは第３の動作モードを優先しつつ、比較的短い時間だけその第１のモードに入ることもできる。
【００５６】
動作２０２では、プロセッサ１０２は認証ルーチンを実行することで信頼性の高い状態を実現できる。その認証ルーチンは、プロセッサ上で動作するアプリケーションからのコール（呼出）により開始されるか、あるいはプロセッサ１０２の外部で動作するプログラムからのコールにより開始される（動作２０２）。他の実施の形態においては、プロセッサ１０２は、初期化時にその認証ルーチンを実行してもよく、あるいは、その初期化の直後に、アプリケーションプログラムからのコールを必要とすることなく初期設定状態（デフォルト状態）としてその認証ルーチンを実行してもよい。認証ルーチンの開始に応じて、プロセッサ１０２は復号化プログラムを実行するのが好ましい。ここで、その復号化プログラムは、プロセッサ１０２が設けられたモジュール内の適切なメモリから取得されるものであってもよいし、あるいは、そのモジュールの外部のソース（source；供給元）から取得されるものであってもよい。そのような外部のソースの例として、例えば、そのモジュールを有するより大きなシステムの内部に含まれうる適切なメモリや、管理者権限の機能やそれと同様の機能を実行するサーバ８（図１）などの、ネットワーク４に接続される他のデバイスなどが挙げられる。本発明に係る１以上の実施形態では、その復号化プログラムは、フラッシュＲＯＭなどのセキュアな不揮発性ＲＯＭ内に含まれうる。
【００５７】
動作２０６では、プロセッサ１０２による復号化プログラムの実行前や実行中に、または実行の結果として、プロセッサ１０２は第２のモードである独立動作モードに入るのが好ましい。ここで、その第２の動作モードでは、プロセッサ１０２も任意の外部デバイスやデバイス群も、ローカルメモリ１０４との間での情報の転送を開始することはできない。
【００５８】
動作２０８では、プロセッサ１０２は、認証ルーチンの間に用いられる認証（authentication）プログラムを取得するのが好ましい。ここで、暗号化された認証プログラムがそのプロセッサ１０２により取得されるタイミングは固定されていない（一定ではない）。すなわち、実際には、そのプログラムは認証ルーチンの実行前または実行中の任意の適切な時間に取得されうる。権限の与えられた方法によってのみ認証プログラムが用いられるよう、その認証プログラムはＫＥＹ１に従って暗号化されるのが好ましい。さらに、認証プログラムは、その認証プログラムを特定するＫＥＹ２を含むのが好ましい。例えば、ＫＥＹ２はシリアル番号やハッシュ結果などであってもよい。
【００５９】
暗号化された認証プログラムは、プロセッサ１０２内の適切なメモリ内、そのプロセッサ１０２を有するモジュール内、あるいは、そのプロセッサ１０２またはモジュールの外部のメモリ内に保存されるのが好ましい。暗号化された認証プログラムは、そのプロセッサ１０２を有するモジュールの外部にあるメモリの内部であって、かつ、そのモジュールを備えるデバイスの内部以外に保存されるのが最も好都合である。また、認証プログラムの暗号化および適切なメモリ内へのその暗号化された認証プログラムの保存は、制御下におかれたプロセスにおいて、権限が与えられたエンティティにより実施されるのが好ましい。実際に、認証プログラムを用いた、プロセッサ１０２やその任意のプログラムそのものの認証が効果的であることを保証するために、認証プログラムの整合性はいつでも維持されるのが好ましい。本発明に係る１以上の実施形態では、その認証プログラムはフラッシュＲＯＭなどのセキュアな不揮発性ＲＯＭ内に含まれうる。
【００６０】
動作２１０では、復号化プログラムの実行により、セキュアなＫＥＹ１のコピーを機密データ領域１５２から読み出し、さらにセキュリティ回路１５０内のアクセス可能データ領域１５４内に保存することを可能にする。例として、ロジック回路１５６は、プロセッサ１０２のレジスタ（図示せず）内のあるデータの存在に応じて、機密データ領域１５２からアクセス可能データ領域１５４に、ＫＥＹ１のコピーを転送できるのが好ましい。プロセッサ１０２は第２の独立モードであるため、アクセス可能データ領域１５４内のＫＥＹ１のコピーの存在はセキュリティを害するものではない。実際に、プロセッサ１０２および任意の外部デバイスは、ローカルメモリ１０４またはその他のものを通じてプロセッサ１０２からのＫＥＹ１の取り出しを開始できない。
【００６１】
動作２１２では、復号化プログラムが、ＫＥＹ１を用いてその暗号化された認証プログラムを復号化し、プロセッサ１０２がその認証プログラムを実行するのが好ましい。認証プログラムが実行される間、機密データ領域１５２内に含まれるＫＥＹ２のコピーが、アクセス可能データ領域１５４内に書き込まれるのが好ましい（動作２１４）。例として、ロジック回路１５６は、認証プログラムに従ってレジスタ内に書き込みられうるあるデータに応じて、機密データ領域１５２からアクセス可能データ領域１５４に、ＫＥＹ２のコピーを転送できるのが好ましい。
【００６２】
動作２１６では、アクセス可能データ領域１５４内のＫＥＹ２のコピーが、認証プログラム内に含まれるＫＥＹ２のコピーに一致するか否かについての判定がなされるのが好ましい。ここで、認証プログラムは、その認証プログラムが復号化される（動作２１２）ときに入手可能となるＫＥＹ２のコピーを含んでいる。例として、認証プログラム内に含まれるＫＥＹ２のコピーは、ローカルメモリ１０４内に一時的に保存されてもよいし、その認証プログラムそのものの実行に従ってアクセス可能データ領域１５４に書き込まれてもよい。また、プロセッサ１０２はこの処理の間は独立モードであり、従って、プロセッサ１０２の外部にある権限が与えられていないデバイスはＫＥＹ２のコピーを取得できないため、この保存や書き込み行為はセキュリティを害するものではない。
【００６３】
認証プログラム内に含まれるＫＥＹ２のコピーが、機密データ領域１５２から取得されるＫＥＹ２のコピーに一致しない場合、プロセッサ１０２の認証処理は終了する（動作２１８）。なお、これら二つのＫＥＹ２のコピーが一致した場合、アクセス可能データ領域１５４内に含まれるＫＥＹ１のコピーおよびＫＥＹ２のコピーはクリア（消去）されるのが好ましく（動作２２０）、さらにプロセッサ１０２は第３のセキュアな動作モードに入る（動作２２２）。例として、ロジック回路１５６は、アクセス可能データ領域１５４からＫＥＹ１およびＫＥＹ２のコピーをクリアし、プロセッサ１０２が第３のセキュアな動作モードに入る機能を有する。
【００６４】
ここで、第３のセキュアな動作モードでは、プロセッサ１０２はローカルメモリ１０４との間での情報の転送を開始できる。別の言い方をすれば、第３のセキュアな動作モードでは、プロセッサ１０２は、そのプロセッサ１０２との間での情報の転送を開始できるが、プロセッサ１０２の外部の任意のデバイスは、そのような情報の転送を開始することはできない。いったん、そのプロセッサが第３のセキュアな動作モードに入れば、そのプロセッサは、権限が与えられていないエンティティによりそのようなデータを取得されるおそれがなくオペレーションの実行およびデータの操作を可能にする信頼のおけるデバイスであると考えてよい。実際に、そのプロセッサ１０２自身により開始されなければ、他のプロセッサでさえもプロセッサ１０２内のデータにアクセスすることはできない。
【００６５】
利点として、信頼性の高いプロセッサ１０２は、例えば、図１に示される分散型のシステム内において多くの有用な機能を与える。これらの機能には、権限が与えられたデバイスによってのみアクセス可能なメモリ領域と、権限が与えられたデバイスによってのみ変更可能なセキュアなクロックデバイスと、信頼性の高いリクエストメカニズムと、ブートコードを（例えば、公開鍵に基づく認証を用いて）認証可能なセキュアな処理要素とを有するセキュアな外部のメモリコントローラの提供が含まれる。
【００６６】
本実施の形態に係る１以上の態様によれば、復号化のオペレーションを制御するメインプロセッサを含む他のプロセッサ１０２は、信頼性の高いプロセッサ（trusted processor）１０２を用いることができる。一例として、信頼性の高いプロセッサ１０２により復号化されメインメモリ１０６内に保存されたデータを、あるプロセッサ１０２が取得しようとすることができる。その結果、そのプロセッサは、メインメモリ１０６内のそのデータが保存された場所、およびどの復号化ルーチンを実行するべきかを示すパラメータ群のうち少なくとも一つを示すリクエストを信頼性の高いプロセッサ１０２に送信できる。（他の例として、その復号化ルーチンは予め決定されていてもよく、その結果、そのようなパラメータ群は除外されてもよい。）そのリクエストに応じて、信頼性の高いプロセッサ１０２は、その暗号化されたデータをメインメモリ１０６からその（自身の）プロセッサ１０２のローカルメモリ１０４内に読み込み、復号化処理を実行する。もし、他のプロセッサ１０２によるリクエストが行われる以前に、その信頼性の高いプロセッサ１０２が（ＫＥＹ１およびＫＥＹ２などの）復号鍵を所有していなかった場合、そのような復号鍵またはそのような鍵を取得する方法についての情報もまた、リクエストを行ったプロセッサ１０２により提供されるのが好ましい。そのとき、その復号化されたデータは好適には、メインメモリ１０６内に戻され、および／または、リクエストを行ったプロセッサ１０２のローカルメモリ１０４内に書き込まれる。
【００６７】
ここで、上述した一つ以上の特徴の実現に適した、好適なマルチプロセッサシステムのコンピュータアーキテクチャについて説明する。一つ以上の実施形態によれば、マルチプロセッサシステムは、ゲームシステムや、ホームターミナルや、ＰＣシステムや、サーバシステムや、ワークステーションなどの豊富なメディアを有するアプリケーションのスタンドアロン型処理および／または分散型処理のためのシングルチップソリューションとして実装できる。一部のアプリケーション、例えば、アプリーケーションがゲームシステムおよびホームターミナルである場合、リアルタイムの演算が必要である。例えば、リアルタイムの分散型ゲームアプリケーションにおいて、ネットワークを経由した画像復元、３Ｄコンピューターグラフィック、音声生成、ネットワーク通信、物理シミュレーション、人工知能計算のうち一つ以上は、ユーザにリアルタイムの感覚を体験させるために十分の速さで実行されなければならない。したがって、マルチプロセッサシステムにおける各プロセッサは、短く、かつ予測可能な時間内でタスクを終了させなければならない。
【００６８】
この目的を達成するために、このコンピュータアーキテクチャによれば、マルチプロセッサのコンピュータシステムのすべてのプロセッサは、共通のコンピュータモジュール（またはセル）から構成される。この共通のコンピュータモジュールは、共通の構成を有し、同一の命令セットアーキテクチャを用いるのが好ましい。マルチプロセッサのコンピュータシステムは、コンピュータプロセッサを用いて、１以上のクライアント、サーバ、ＰＣ、携帯端末、ゲーム機、ＰＤＡ、セットトップボックス、アプリケーション、デジタルテレビおよび他のデバイスから構成されうる。
【００６９】
必要に応じて、複数のコンピュータシステムをそれぞれネットワークのメンバとしてもよい。一貫性のあるモジュール構造により、マルチプロセッサコンピュータシステムによってアプリケーションおよびデータの効率的な高速処理が可能となり、かつネットワークを利用すれば、ネットワークを介してアプリケーションおよびデータの迅速な伝送ができる。またこの構造により、様々なサイズおよび処理能力をもつネットワークメンバの形成、ならびにこれらメンバによって処理されるアプリケーションの準備を簡略化できる。
【００７０】
図７は、基本的な処理モジュールであるプロセッサ要素（ＰＥ）３００を示す。ＰＥ３００は、Ｉ／Ｏインタフェース３０２と、処理ユニット（ＰＵ）３０４と、複数のサブ処理ユニット３０８、すなわち、サブ処理ユニット３０８Ａと、サブ処理ユニット３０８Ｂと、サブ処理ユニット３０８Ｃと、サブ処理ユニット３０８Ｄとを含む。ローカル（すなわち内部）ＰＥバス３１２は、ＰＵ３０４、ＳＰＵ群３０８、およびメモリインタフェース３１１間のデータおよびアプリケーションの伝送を行う。ローカルＰＥバス３１２は、例えば従来構成でもよいし、またはパケットスイッチネットワークとして実装することもできる。パケットスイッチネットワークとして実装するとより多くのハードウェアが必要になるが、利用可能な帯域が広がる。
【００７１】
ＰＥ３００はディジタルロジック回路を実装する各種方法を利用して構成できる。ただし好適には、ＰＥ３００はシリコン基板上の相補的金属酸化膜半導体（ＣＭＯＳ）を用いる一つの集積回路として構成される。基板の他の材料には、ガリウム砒素、ガリウムアルミニウム砒素、および広範な種類の不純物を用いた他のいわゆるＩＩＩ−Ｂ族化合物が含まれる。ＰＥ３００はまた、超伝導材料を用いて高速単一磁束量子（ＲＳＦＱ）ロジック回路等として実装することもできる。
【００７２】
ＰＥ３００は、広帯域メモリ接続３１６を介してダイナミックランダムアクセスメモリ（ＤＲＡＭ）３１４に密接に関連付けられる。メモリ３１４は好適にはダイナミックランダムアクセスメモリ（ＤＲＡＭ）だが、スタティックランダムアクセスメモリ（ＳＲＡＭ）、磁気ランダムアクセスメモリ（ＭＲＡＭ）、光学メモリ、またはホログラフィックメモリ等の他の手段を用いて実装してもよい。
【００７３】
ＰＵ３０４およびサブ処理ユニット３０８は、それぞれ、ダイレクトメモリアクセス（ＤＭＡ）機能を有するメモリフローコントローラ（ＭＦＣ）と接続されることが望ましい。ＭＦＣは、メモリインタフェース３１１と協働して、ＤＲＡＭ３１４、ＰＥ３００におけるサブ処理ユニット３０８、ＰＵ３０４間のデータの転送を円滑にするものである。ここで、ＤＭＡＣおよび／またはメモリインタフェース３１１は、サブ処理ユニット３０８とＰＵ３０４とから独立して設置されるようにしてもよいし、一体化されるようにしてもよい。実際に、ＤＡＭＣの機能および／またはメモリインタフェース３１１の機能は、サブ処理ユニット３０８およびＰＵ３０４の一つ以上（好ましくはすべて）に一体化できる。ここで、ＤＲＡＭ３１４もまた、ＰＥ３００から独立して設置されるようにしてもよいし、一体化されるようにしてもよい。例えば、ＤＲＡＭ３１４は図に示すようにチップ外部に設けられるようにしてもよく、集積方式でチップ内蔵されるようにしてもよい。
【００７４】
ＰＵ３０４は、例えばスタンドアロン式のデータおよびアプリケーション処理が可能な標準的なプロセッサでもよい。動作時には、ＰＵ３０４はサブ処理ユニット群によるデータおよびアプリケーションの処理のスケジューリングおよび調整を行う。サブ処理ユニット群は、好適には、一命令複数データ（ＳＩＭＤ）プロセッサである。ＰＵ３０４の制御下で、サブ処理ユニット群はデータおよびアプリケーションの処理を並列に、かつ独立して行う。ＰＵ３０４としては、ＲＩＳＣ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）技術を用いるマイクロプロセッサアーキテクチャとなるＰｏｗｅｒＰＣ（登録商標）コアを用いることが好ましい。ＲＩＳＣは単純な命令の組み合わせによって比較的複雑な命令を実行するものである。したがって、プロセッサのタイミングは、比較的簡単かつ速いオペレーションに基づきうる。これは、決められたクロック速度においてより多くの命令を実行することを可能とする。
【００７５】
ここで、ＰＵ３０４は、サブ処理ユニット３０８のうちの一つとして実装されてもよい。この場合、このサブ処理ユニット３０８は、メイン処理ユニットＰＵによる処理、すなわち各々のサブ処理ユニット３０８によるデータとアプリケーションの処理のスケジューリングと統合処理を行うものとすればよい。さらに、ＰＥ３００内において、複数のＰＵを実装してもよい。
【００７６】
このモジュール構造では、あるコンピュータシステムで使用されるＰＥ３００の数は、そのシステムが必要とする処理能力に基づく。例えば、サーバは４つのＰＥ群３００、ワークステーションは二つのＰＥ群３００、ＰＤＡは一つのＰＥ３００を使用しうる。あるソフトウェアセルの処理に割り当てられるＰＥ３００のサブ処理ユニットの数は、セル内のプログラムおよびデータの複雑さおよび規模によって異なる。
【００７７】
図８は、サブ処理ユニット（ＳＰＵ）３０８の好適な構造と機能を示す図である。サブ処理ユニット３０８のアーキテクチャは、汎用プロセッサ（多数のアプリケーションにおいて高い平均性能を実現するように設計されているもの）と特殊用途のプロセッサ（一つのアプリケーションにおいて高い性能を実現するように設計されている）との間に位置するものであることが望ましい。サブ処理ユニット３０８は、ゲームアプリケーション、メディアアプリケーション、ブロードバンドシステムなどにおいて高い性能を実現すると共に、リアルタイムアプリケーションのプログラマに高度な制御自由度を提供するように設計されている。サブ処理ユニット３０８の一部の機能として、グラフィック構造パイプライン、サーフェス分割、高速フーリエ変換、画像処理キーワード、ストリーム処理、ＭＰＥＧエンコード／デコード、暗号化、復号化、デバイスドライバー拡張、モデリング、ゲームフィジクス、コンテンツ制作、音声合成および音声処理などを挙げることができる。
【００７８】
サブ処理ユニット３０８は、すなわちＳＰＵコア３１０Ａとメモリフローコントローラ（ＭＦＣ）３１０Ｂという二つの基本機能ユニットを有する。ＳＰＵコア３１０Ａは、プログラムの実行、データの操作などを担うものであり、一方、ＭＦＣ３１０Ｂは、ＳＰＵコア３１０Ａと、システムのＤＲＡＭ３１４との間のデータ転送に関連する機能を担うものである。
【００７９】
ＳＰＵコア３１０Ａはローカルメモリ３５０と、命令（インストラクション）ユニット（ＩＵ）３５２と、レジスタ３５４と、一つ以上の浮動小数点処理ステージ３５６と、一つ以上の固定小数点処理ステージ３５８とを有する。ローカルメモリ３５０は、ＳＲＡＭのようなシングルポートのＲＡＭを用いて実装されることが望ましい。メモリへのアクセスのレイテンシを軽減するために、従来のほとんどのプロセッサはキャッシュを用いるが、ＳＰＵコア３１０Ａは、キャッシュよりも、比較的小さいローカルメモリ３５０を用いる。実際には、リアルタイムのアプリケーション（およびここで言及したほかのアプリケーション）のプログラマに、予測可能で、かつ一致したメモリアクセスのレイテンシを提供するために、サブ処理ユニット３０８Ａ内においてキャッシュメモリアーキテクチャを用いることは好ましくない。キャッシュメモリのキャッシュヒット／ミス値は、数サイクルから数百サイクルの範囲内で変化する、予測困難な、メモリアクセス回数を生じさせる。このようなメモリアクセスの回数の予測困難性は、例えばリアルタイムアプリケーションのプログラミングに望まれるアクセスタイミングの予測可能性を下げる。データ演算を伴うＤＭＡ転送をオーバーラップすることで、ローカルメモリＳＲＡＭ３５０内のレイテンシを補うことができる。これはリアルタイムアプリケーションのプログラミングに高い制御自由度を提供する。ＤＭＡ転送と関連するレイテンシおよび命令のオーバーヘッドが、キャッシュミスにより生じたレイテンシより長いため、ＳＲＡＭローカルメモリアプローチは、ＤＭＡ転送サイズが十分大きいかつ十分予測可能なとき（例えばデータが要求される前にＤＭＡコマンドを発行することができるとき）において優位性を提供する。
【００８０】
サブ処理ユニット３０８のうちのいずれか一つの上で実行されるプログラムは、ローカルアドレスを用いて、関連するローカルメモリ３５０を参照する。なお、ローカルメモリ３５０の各場所にはシステムの全体のメモリマップ上におけるリアルアドレス（ＲＡ）が付与されている。これは、特権レベルのソフトウェアがローカルメモリ３５０を一つの処理における実効アドレス（ＥＡ）にマッピングすることを可能とし、それによって二つのローカルメモリ３５０間のＤＭＡ転送が容易になる。ＰＵ３０４は、実効アドレスを用いてローカルメモリ３５０に直接アクセスすることもできる。ローカルメモリ３５０は、３５６キロバイトの容量を有し、レジスタ３５４の容量は１２８×１２８ビットであることが望ましい。
【００８１】
ＳＰＵコア３１０Ａは、演算パイプラインを用いて実装されることが望ましく、その中において論理命令がパイプライン方式で処理される。パイプラインは、命令を処理する任意の数のステージに分けることができるが、通常、パイプラインは、一つ以上の命令のフェッチ、命令のデコード、命令間の従属関係のチェック、命令の発行、および命令の実行から構成される。これに関連して、命令ユニット３５２は、命令バッファと、命令デコード回路と、従属関係チェック回路と、命令発行回路とを含む。
【００８２】
命令バッファは、ローカルメモリ３５０と接続されており、命令がフェッチされたときにこれらの命令を一時的に格納することができる複数のレジスタを有することが好ましい。命令バッファは、すべての命令が一つのグループとして（すなわち実質的に大量に）レジスタから出力されるように動作することが好ましい。命令バッファはいかなるサイズであってもよいが、レジスタの数がおよそ２または３以下となるようにするサイズであることが好ましい。
【００８３】
通常、デコード回路は命令を細分化すると共に、対応する命令の機能を果たす論理・マイクロオペレーションを発生させる。例えば、論理・マイクロペレーションは、計算オペレーションと論理オペレーションの指定、ローカルメモリ３５０へのロードオペレーションとストアオペレーションの指定、レジスタソースオペランドおよび／または即値データオペランドの指定などを行うことができる。デコード回路は、ターゲットのレジスタのアドレスや、構造リソースや、機能ユニットおよび／またはバスなどのような、命令が用いるリソースを指定してもよい。デコード回路は、リソースが必要とされる命令パイプラインのステージを示す情報を提供してもよい。命令デコード回路は、同時に大量に、命令バッファのレジスタの数と同じ数の命令をデコードするように動作可能であることが好ましい。
【００８４】
従属関係チェック回路は、チェック対象となる命令のオペランドがパイプラン内の他の命令のオペランドに従属するか否かを判定するためのチェックを行うデジタルロジックを含む。従属するならば、チェック対象となる命令は、これらの他のオペランドが（例えば、これらの他の命令の実行の完了を許可することによって）更新されるまで、実行されるべきではない。従属関係チェック回路は、デコード回路１１２から同時に送信されてきた複数の命令の従属関係を判定することが好ましい。
【００８５】
命令発行回路は、浮動小数点処理ステージ３５６および／または固定小数点処理ステージ３５８に命令を発行することができる。
【００８６】
レジスタ３５４は、１２８―エントリレジスタファイルのような、比較的大きな統合レジスタファイルとして実装されることが好ましい。これは、レジスタ不足を回避するためのレジスタのリネームを必要とせずに、深くパイプライン化された高周波数の実行を可能とする。ハードウェアのリネームは、一般的に処理システムにおける実装面積と電力の高い割合を消費する。したがって、ソフトウェアによるループアンローリングまたは他のインターリーブ技術によってレイテンシがカバーされるような場合において、優位性のあるオペレーションを実現できる。
【００８７】
ＳＰＵコア３１０Ａは、クロックサイクル毎に複数の命令を発行するようなスーパースカラアーキテクチャで実装されることが好ましい。ＳＰＵコア３１０Ａは、命令バッファから同時に送信される命令の数、例えば２と３の間（クロックサイクル毎に二つまたは３つの命令が発行されることを意味する）に対応する程度のスーパースカラとして動作可能であることが好ましい。必要とされる処理能力に応じた多少なりの数の浮動小数点処理ステージ３５６と固定小数点処理ステージ３５８を用いることができる。好適な実施の形態では、浮動小数点処理ステージ３５６と固定小数点処理ステージ３５８の望ましいスピードは、それぞれ、毎秒３２ギガ浮動小数点オペレーション（３２  ＧＦＬＯＰＳ）と毎秒３２ギガオペレーション（３２  ＧＯＰＳ）である。
【００８８】
ＭＦＣ３１０Ｂは、バスインターフェースユニット（ＢＩＵ）３６４と、メモリマネジメントユニット（ＭＭＵ）３６２と、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）３６０とを有することが望ましい。低電力消費の設計目的を達成するために、ＭＦＣ３１０Ｂは、ＤＭＡＣ３６０を除いて、ＳＰＵコア３１０Ａおよびバス３１２の半分の周波数（半分のスピード）で動作することが好ましい。ＭＦＣ３１０Ｂは、バス３１２からサブ処理ユニット３０８に入るデータと命令を操作することができ、ＤＭＡＣのためのアドレス変換と、データ一貫性のためのスヌープオペレーションとを提供する。ＢＩＵ３６４は、バス３１２とＭＭＵ３６２とＤＭＡＣ３６０との間のインターフェースを提供する。したがって、サブ処理ユニット３０８（ＳＰＵコア３１０ＡとＭＦＣ３１０Ｂを含む）とＤＭＡＣ３６０は、物理的および／または論理的にバス３１２と接続されている。
【００８９】
ＭＭＵ３６２は、メモリアクセスのために実効アドレス（ＤＭＡコマンドから取得される）をリアルアドレスへ変換することができるようにすることが望ましい。例えば、ＭＭＵ３６２は、実効アドレスの比較的高いオーダのビットをリアルアドレスのビットに変換できる。なお、比較的低いオーダアドレスビットについては、変換不可であると共に、物理的におよび論理的にリアルアドレスの形成およびメモリへのアクセスのリクエストに用いられるようにすることが好ましい。具体的には、ＭＭＵ３６２は、６４ビットのメモリマネジメントモジュールをベースにして実装でき、４Ｋバイト、６４Ｋバイト、１メガバイト、１６メガバイトのページサイズと２５６ＭＢのセグメントサイズを有する２６４のバイトの実効アドレス空間を提供することができる。ＭＭＵ３６２は、ＤＭＡコマンドのために、２６５までの仮想メモリと、２４２バイト（４テラバイト）の物理メモリをサポート可能であることが好ましい。ＭＭＵ３６２のハードウェアは、８−エントリの完全連想ＳＬＢ、２５６−エントリの４ウェイセット連想ＴＬＢ、ＴＬＢのための４×４代替マネジメントテーブル（ＲＭＴ）を含むものとすることができる。なお、ＲＭＴはハードウェアＴＬＢミスのハンドリングに用いられるものである。
【００９０】
ＤＭＡＣ３６０は、ＳＰＵコア３１０ＡからのＤＭＡコマンドと、一つ以上の、ＰＵ３０４および／または他のＳＰＵのような他のデバイスからのＤＭＡコマンドとを管理することができることが望ましい。ＤＭＡコマンドは下記の３つのカテゴリがある。すなわち、ローカルメモリ３５０から共有メモリ３１４へデータを移動させるＰｕｔコマンド、共有メモリ３１４からローカルメモリ３５０へデータを移動させるＧｅｔコマンド、ＳＬＩコマンドと同期コマンドとを含むストレージコントロールコマンドである。同期コマンドは、アトミックコマンド、送信コマンド、専用のバリアコマンドを含むものとすることができる。ＤＭＡコマンドに応じて、ＭＭＵ３６２は実効アドレスをリアルアドレスに変換し、このリアルアドレスはＢＩＵ３６４に転送される。
【００９１】
ＳＰＵコア３１０Ａはチャンネルインターフェースとデータインターフェースとを用いて、ＤＭＡＣ３６０内のインターフェースと通信（ＤＭＡコマンド、ステータスなどの送信）することが好ましい。ＳＰＵコア３１０Ａは、チャンネルインターフェースを介してＤＭＡコマンドをＤＭＡＣ３６０内のＤＭＡキューに送信する。いったん、ＤＭＡキューに格納されたＤＭＡコマンドは、ＤＭＡＣ３６０内の発行ロジックと完了ロジックにより操作される。一つのＤＭＡコマンドのためのすべてのバス・トランザクションが完了すると、チャンネルインターフェースを介して、一つの完了信号がＳＰＵコア３１０Ａに返送される。
【００９２】
図９は、ＰＵ３０４の好ましい構造と機能を示す図である。ＰＵ３０４は、ＰＵコア３０４Ａとメモリフローコントローラ、すなわちＭＦＣ３０４Ｂとの二つの基本機能ユニットを有する。ＰＵコア３０４Ａは、プログラムの実行、データの操作、マルチプロセッサ管理機能などを担うものであり、一方、ＭＦＣ３０４Ｂは、ＰＵコア３０４Ａと、処理システム１００のメモリスペースとの間のデータ転送に関連する機能を担うものである。
【００９３】
ＰＵコア３０４Ａは、Ｌ１キャッシュ３７０と、命令ユニット３７２と、レジスタ３７４と、少なくとも一つの浮動小数点処理ステージ３７６と、少なくとも一つの固定小数点処理ステージ３７８とを有する。Ｌ１キャッシュ３７０は、共有メモリ１０６、プロセッサ１０２、あるいはＭＦＣ３０４Ｂにおけるほかの部分のメモリスペースから受信したデータのキャッシング機能を提供する。ＰＵコア３０４Ａはスーパーパイプラインとして実装されることが好ましいため、命令ユニット３７２は、フェッチ、デコード、従属関係のチェック、発行などを含む多数のステージを有する命令パイプラインとして実装されることが好ましい。ＰＵコア３０４Ａは、スーパースカラ構造を有することが好ましく、それによって、クロックサイクル毎に命令ユニット３７２から２以上の命令が発行される。高い演算パワーを実現するために、浮動小数点処理ステージ３７６と固定小数点処理ステージ３７８は、パイプライン方式の多数のステージを有する。必要とされる処理能力に応じた多少なりの浮動小数点処理ステージ３７６と固定小数点処理ステージ３７８とを用いることができる。
【００９４】
ＭＦＣ３０４Ｂは、バスインターフェースユニット（ＢＩＵ）３８０と、Ｌ２キャッシュ３８２と、キャッシュ不可ユニット（ＮＣＵ）３８４と、コアインターフェースユニット（ＣＩＵ）３８６と、メモリマネジメントユニット（ＭＭＵ）３８８とを有する。低電力消費の設計目的を達成するために、ＭＦＣ３０４Ｂのほとんどは、ＰＵコア３０４Ａとバス１０８の半分の周波数（半分のスピード）で動作することが好ましい。
【００９５】
ＢＩＵ３８０は、バス１０８と、Ｌ２キャッシュ３８２と、ＮＣＵ３８４のロジックブロックとの間のインターフェースを提供する。ＢＩＵ３８０は、完全一致のメモリオペレーションを実行するために、マスターデバイスとして動作してもよく、バス１０８上のスレーブデバイスとして動作してもよい。マスターデバイスとして動作する場合、ＢＩＵ３８０は、Ｌ２キャッシュ３８２とＮＣＵ３８４の代わりに、バス１０８へのロードリクエストとストアリクエストを発信する。ＢＩＵ３８０は、バス１０８へ送ることができるコマンドの総数を限定するコマンドのフローコントロールメカニズムを実装してもよい。バス１０８上のデータオペレーションは、８ビートになるように設計されることができ、そして、ＢＩＵ３８０は、キャッシュラインが１２８バイト前後であり、一貫性と同期の精度が１２８ＫＢであるように設計されることが好ましい。
【００９６】
Ｌ２キャッシュ３８２（およびそれをサポートするハードウェアロジック）は、３１２ＫＢデータをキャッシュするように設計されることが好ましい。例えば、Ｌ２キャッシュ３８２は、キャッシュ可能なロードとストア、データのプリフェッチ、命令フェッチ、命令のプリフェッチ、キャッシュオペレーション、バリアオペレーションを操作できる。Ｌ２キャッシュ３８２は、８ウエイセットアソシエイティブシステムであることが好ましい。Ｌ２キャッシュ３８２は、６つのキャストアウトキュー（例えば６つのＲＣマシン）に合わせた６つのリロードキューと、８つの（６４バイトの幅の）ストアキューとを有することができる。Ｌ２キャッシュ３８２は、Ｌ１キャッシュ３７０の中の一部または全てのデータのバックアップコピーを提供するように動作してもよい。これは特に、処理ノードがホットスワップ（動作中に変更）されたときの、復元状況において有用である。この構成は、Ｌ１キャッシュ３７０が、ほぼポート無しにさらに速く動作することを可能にするとともに、キャッシュ間の転送を速くすることができる（リクエストがＬ２キャッシュ３８２で止まることができるから）。この構成は、Ｌ２キャッシュ３８２にキャッシュ一貫性のマネジメントを及ばしめるメカニズムも提供する。
【００９７】
ＮＣＵ３８４はインターフェースによってＣＩＵ３８６と、Ｌ２キャッシュ３８２と、ＢＩＵ３８０と接続されており、通常、ＰＵコア３０４Ａとメモリシステム間のキャッシュ不可なオペレーションのキューまたはバッファ回路として機能する。ＮＣＵ３８４は、ＰＵコア３０４Ａとの通信のうちの、Ｌ２キャッシュ３８２によって扱わない全ての通信を操作することが好ましい。ここで、Ｌ２キャッシュ３８２によって扱わないものとしては、キャッシュ不可なロードとストアや、バリアオペレーションや、キャッシュ一貫性オペレーションなどを挙げることができる。低電力消費の設計目的を達成するために、ＮＣＵ３８４は、半分のスピードで動作することが好ましい。
【００９８】
ＣＩＵ３８６は、ＭＦＣ３０４ＢとＰＵコア３０４Ａとの境界線上に配置され、浮動小数点処理ステージ３７６、固定小数点処理ステージ３７８、命令ユニット３７２、ＭＭＵ３８８から、Ｌ２キャッシュ３８２とＮＣＵ３８４へ送られるリクエストのためのルーティング、アービトレイション、フローコントロールポイントとして動作する。ＰＵコア３０４ＡとＭＭＵ３８８はフルスピードで動作し、Ｌ２キャッシュ３８２とＮＣＵ３８４は２：１のスピード比で動作可能であることが好ましい。こうすることによって、ＣＩＵ３８６に周波数境界線が存在することになり、この境界線は、その一つの機能により、二つの周波数領域間にリクエストの転送およびデータのリロードをする際に、周波数の交錯を適切に操作する。
【００９９】
ＣＩＵ３８６は、ロードユニット、ストアユニット、リロードユニットの３つの機能ブロックから構成される。さらに、データをプリフェッチする機能がＣＩＵ３８６により実行される。この機能は、ロードユニットの一部の機能であることが好ましい。ＣＩＵ３８６は、下記の動作を実行可能であることが好ましい：（ｉ）ＰＵコア３０４ＡとＭＭＵ３８８からのロードリクエストとストアリクエストを受信する、（ｉｉ）これらのリクエストをフルスピードクロック周波数から半分のスピードに変換する（２：１クロック周波数変換）、（ｉｉｉ）キャッシュ可能なリクエストとキャッシュ不可なリクエストとをそれぞれＬ２キャッシュ３８２とＮＣＵ３８４へルーティングする、（ｉｖ）Ｌ２キャッシュ３８２とＮＣＵ３８４へのリクエストが均等になるように調整する、（ｖ）リクエストが目標時間内に受信されると共に、オーバーフローが発生しないための、Ｌ２キャッシュ３８２とＮＣＵ３８４へ送信するリクエストのフローコントロールを提供する、（ｖｉ）ロードリターンデータを受信すると共に、これらのデータを浮動小数点処理ステージ３７６、固定小数点処理ステージ３７８、命令ユニット３７２、またはＭＭＵ３８８へルーティングする、（ｖｉｉ）スヌープリクエストを浮動小数点処理ステージ３７６、固定小数点処理ステージ３７８、命令ユニット３７２、またはＭＭＵ３８８へ転送する、（ｖｉｉｉ）ロードリターンデータとスヌープトラフィックを半分のスピードからフルスピードへ変換する。
【０１００】
ＭＭＵ３８８は、第２レベルアドレス変換手段のごとく、ＰＵコア３０４Ａのためにアドレス変換を提供することが好ましい。変換の第１レベルは、ＰＵコア３０４Ａ内において、セパレート命令と、ＭＭＵ３８８より遥かに小さくてかつ速いデータＥＲＡＴ（実効アドレスからリアルアドレスへの変換）アレイとにより提供されることが好ましい。
【０１０１】
ＰＵ３０４は６４ビットで実装され、４〜６ＧＨz、１０Ｆ０４（Ｆａｎ−ｏｕｔ−ｏｆ−ｆｏｕｒ）で動作することが好ましい。レジスタは６４ビットの長さを有することが好ましく（特定用途のための一つまたはより多くのレジスタが６４ビットより小さいかもしれないが）、実効アドレスは６４ビットの長さを有することが好ましい。命令ユニット３７２、レジスタ３７４、浮動小数点処理ステージ３７６と固定小数点処理ステージ３７８はＲＩＳＣコンピューティング技術を達成するためにＰｏｗｅｒＰＣ技術により実装されることが好ましい。
【０１０２】
このコンピュータシステムのモジュラー構造のさらなる詳細については、米国特許第６５２６４９１号公報に記載されている。その公報の記載によれば、例えば、コンピュータネットワークのメンバのプロセッサに単一のＰＥを含め、さらに、このＰＥに、ＰＵ、ＤＭＡＣおよび８個のＡＰＵを含めることができる。他の例として、そのプロセッサは、ビジュアルアライザ（ＶＳ）の構造を有してもよく、この場合、ＶＳに、ＰＵ、ＤＭＡＣおよび４つのＡＰＵを含めてもよい。
【０１０３】
ここで、図１０は本実施の形態に係る１以上の態様のプロセッサ５００の構成を示す。本実施の形態では、プロセッサ５００はまた、復号化ユニット５０２とセキュアメモリ５０４とを備える。そのセキュアメモリ５０４は不可視鍵（ＩＫｉ）を含む。なお、ｉはｉ番目のプロセッサを表す。復号化ユニット５０２は、メモリフローコントローラ３１０Ｂからローカルメモリ３５０に流れるデータを（不可視鍵ＩＫｉを用いて）復号化できる。その不可視鍵ＩＫｉは、与えられたプロセッサ５００に対し十分に一意性のある鍵であることが好ましく、システム内のプロセッサは、それぞれ一意性のある不可視鍵を含むものとされている。復号化ユニット５０２は、簡単なＸＯＲアルゴリズムやより複雑なアルゴリズムなどの任意の既知の技術を用いることができる。
【０１０４】
上述の技術を用いるかまたは他の技術を用いるかのいずれかにより、プロセッサ５００はセキュアな動作モードに入ることが好ましい。そのプロセッサ５００は、ハードウエアリセット時や起動時にセキュアな動作モードに入るのが好ましい。ＰＵ３０４は、プロセッサ５００がアンセキュアなモードである場合、復号化ユニット５０２を介さない共有ＤＲＡＭ３１４およびローカルメモリ３５０間のデータ転送を開始できる。同様に、ＰＵ３０４は、プロセッサ５００がアンセキュアなモードである場合、ローカルメモリ３５０から共有メモリ３１４へのデータ転送を開始できる。なお、セキュアなモードである場合は、ＰＵ３０４は、復号化ユニット５０２を通過させない、共有ＤＲＡＭ３１４からローカルメモリ３５０へのデータ転送を開始することはできない。ローカルメモリ３５０からのＰＵ３０４により開始されるデータ転送は、セキュアなモードでは許可されない（禁止される）。従って、ＰＵ３０４（または任意の他の外部のエンティティ）により開始される任意のデータ転送は、結果として、不可視鍵ＩＫｉを用いた、そのデータの復号化を余儀なくされる。なお、プロセッサ５００は、セキュアな動作モードであるか否かとは無関係に、ローカルメモリ３５０および共有ＤＲＡＭ３１４間のデータ転送を開始できる。
【０１０５】
セキュアな記憶メモリ５０４内に保存された不可視鍵ＩＫｉは、プロセッサ５００の復号化ユニット５０２やある他の権限が与えられたエンティティによってのみアクセスされうる。たとえ、あるエンティティが特定のプロセッサ５００の不可視鍵ＩＫｉを把握する権限を有していても、そのようなエンティティに対しては、そのプロセッサ５００のセキュアなメモリ５０４から不可視鍵ＩＫｉを取得する以外の方法で不可視鍵ＩＫｉにアクセスさせるのが最も好都合である。例えば、不可視鍵ＩＫｉは、プロセッサ５００の製造過程の間にセキュアなメモリ５０４内に保存されるのが好ましく、さらに、その不可視鍵ＩＫｉは、その保存される時期あるいは保存される頃に、その情報の取得の権限が与えられたエンティティに知らされる。
【０１０６】
プロセッサ５００はまた、シリアルナンバーや他の識別指標などの十分に一意であるＩＤを含むのが好ましい。なお、プロセッサ５００のＩＤは、不可視鍵ＩＫｉとは異なり、プロセッサ５００のセキュアな特性を使用する際に、関心のある任意のエンティティに把握されるのが好ましい。したがって、ＩＤは可視鍵ＶＫｉとみなしうる。なお、ｉはｉ番目のプロセッサ５００を表す。
【０１０７】
図１１は、プロセッサ５００のセキュリティ特性を用いるシステムを示す。そのシステムは、プロセッサ５００と、中間エンティティ５１０と、セキュアエンティティ（あるいはサーバ）５１２とを含む。そのセキュアエンティティ５１２は、認証サーバ５１４と、データベース５１６とを含むものであり、詳細は後述する。ここで、図１１は、本発明のいくつかの態様に係る構成を示す一方、さらにデータまたはプロセスの流れをも示す。したがって、図１１を用いて、本発明に係る装置および方法の両方の詳細をここで説明する。
【０１０８】
中間エンティティ５１０は、セキュアな方法でデータを伝送し、あるいは、セキュアな方法でプログラムをプロセッサ５００に伝送しさらに実行することを所望する任意のエンティティまたはシステムであってもよい。ここで、そのプロセッサ５００は、ＤＲＡＭ３１４を共有する複数の付属処理ユニット間で一つでありうる。そのため、中間エンティティ５１０からそのプロセッサ５００に伝送されたデータは、少なくとも一時的に共有ＤＲＡＭ３１４内に保存されうる。いくつかの状況下においては、このようなデータの共有により、そのデータが他のプロセッサによる海賊行為（著作権侵害）の危険にさらされる場合がある。なお、本実施の形態によれば、中間エンティティ５１０は、そのデータをプロセッサ５００に伝送すれば、そのプロセッサ５００のみによるそのデータへのアクセスおよびそのプロセッサ５００のみによるそのデータの使用を可能にできる。
【０１０９】
とりわけ、中間エンティティ５１０はプロセッサ５００に関連付けられた可視鍵ＶＫｉを取得する。中間エンティティ５１０は、（プロセッサ５００上で実行するリモートプログラムなどの）データおよび可視鍵ＶＫｉをセキュアサーバ５１２に伝送する。このような伝送は、インターネットや任意の他のネットワーク、通信リンクまたは人手の介入などの任意の既知の技術を用いて行われる。セキュアサーバ５１２はその伝送から可視鍵ＶＫｉを取得し、認証サーバ５１４を用いて複数の可視鍵および不可視鍵のペアを含むデータベース５１６を検索する。あるプロセッサ、例えば、プロセッサ５００に対し、可視鍵および不可視鍵を相互に関連付けることで、可視鍵および不可視鍵のペアは、お互いに関連付けられる。中間エンティティ５１０から取得した可視鍵ＶＫｉとデータベース５１６内に保存されている可視鍵のうちの一つとが一致すれば、認証サーバ５１４は（本例ではリモートプログラムである）データを、可視鍵ＶＫｉとプロセッサ５００とに関連付けられた不可視鍵ＩＫｉを用いて暗号化する。セキュアサーバ５１２はその暗号化されたデータを、例えばインターネットを用いて、中間エンティティ５１０に伝送する。
【０１１０】
中間エンティティ５１０は、自身がセキュアサーバ５１２に提供したデータの暗号化されたバージョンを取得するが、中間エンティティ５１０はプロセッサ５００の不可視鍵ＩＫｉに関する情報を何ら有しない。これに関連して、セキュアサーバ５１２は、自身がプロセッサ５００のセキュアメモリ５０４内に含まれる不可視鍵ＩＫｉに関する知識を有する点では、権限が与えられたエンティティである。中間エンティティ５１０などの任意のエンティティは任意の与えられたプロセッサの可視鍵ＶＫｉに関する知識を有することができる。セキュアサーバ５１２などの権限が与えれらたエンティティのみが不可視鍵ＩＫｉおよび／またはその不可視鍵ＩＫｉと特定の可視鍵ＶＫｉとの関連性についての知識を有することができる。
【０１１１】
中間エンティティ５１０はそのとき、その暗号化されたデータをインターネットまたは任意の他の適切なメカニズムなどによりプロセッサ５００に伝送できる。プロセッサ５００の動作能力に従えば、ＰＵ３０４により、中間エンティティ５１０からの暗号化されたデータの取得および共有ＤＲＡＭ３１４内へのそのデータの保存を円滑にできる。ＰＵ３０４がその暗号化されたデータを共有ＤＲＡＭ３１４内に保存する時または保存する頃に、プロセッサ５００はセキュアな動作モードになるのが好ましい。したがって、ＰＵ３０４が、共有ＤＲＡＭ３１４からプロセッサ５００のローカルメモリ３５０に暗号化されたデータの転送を開始するときに、そのような暗号化されたデータは復号化ユニット５０２を通過しなければならない。その結果として、復号化ユニット５０２は、プロセッサ５００のセキュアメモリ５０４に保存されている不可視鍵ＩＫｉを用いてその暗号化されたデータを復号化する。中間エンティティ５１０に源を発するその復号化されたデータが、セキュアな方法でプロセッサ５００のローカルメモリ３５０内に保存される点で有用である。実際に、セキュアなモードでは、ＰＵ３０４も任意の他の外部のエンティティもローカルメモリ３５０からデータを取得することは不可能である。従って、プロセッサ５００は海賊行為（著作権侵害）の危険にさらされることなくそのようなデータを操作できる。
【０１１２】
図１２は、プロセッサ５００のセキュリティ特性を用いた他のアプローチを実行する図１１のシステムの構成を示す。図１１について上述したアプローチと同様に、中間エンティティ５１０はプロセッサ５００に関連した可視鍵ＶＫｉを取得する。なお、そのアプローチとは異なり、中間エンティティ５１０は少なくともデータ（例えば、リモートプログラム）を対称鍵ｋｅｙ１を用いて暗号化する。例えば、中間エンティティ５１０により用いられるその暗号化技術は、既知のAdvanced Encryption Standard（ＡＥＳ）であってもよい。その技術により、一以上の対称鍵を用いて機密データを暗号化および復号化できる。ここで、中間エンティティ５１０は対称鍵ｋｅｙ１を用いてデータおよび可視鍵ＶＫｉの両方を暗号化できる。いずれの場合でも、中間エンティティ５１０は暗号化されたデータ（および可視鍵Ｖｋｉ）をセキュアエンティティ５１２に伝送するのが好ましい。認証サーバ５１４は、暗号化されたデータおよび可視鍵ＶＫｉを取得でき、さらに対称鍵ｋｅｙ２を用いてその暗号化されたデータおよび可視鍵ＶＫｉを復号化できる。
【０１１３】
いったん認証サーバ５１４がその復号化されたデータおよび可視鍵ＶＫｉを取得すれば、そのサーバはデータベース５１６を検索し可視鍵および不可視鍵のペアを検出する。中間エンティティ５１０から取得された可視鍵ＶＫｉとデータベース５１６内に保存されている可視鍵の一つとが一致すれば、認証サーバ５１４は、その可視鍵ＶＫｉおよびプロセッサ５００とに関連付けられた、不可視鍵ＩＫｉを用いてそのデータを暗号化するのが好ましい。認証サーバ５１４はまた、対称鍵ｋｅｙ２を用いて、その暗号化されたデータを暗号化し、二重に暗号化されたデータを取得する。セキュアエンティティ５１２はその二重に暗号化されたデータをその中間エンティティ５１０に伝送する。
【０１１４】
中間エンティティ５１０は二重に暗号化されたデータを取得し、対称鍵ｋｅｙ１を用いてその二重に暗号化されたデータを復号化し、不可視鍵ＩＫｉにより暗号化されたデータを取得するのが好ましい。中間エンティティ５１０はそのとき、その暗号化されたデータをインターネットや他の適切なメカニズムなどにより、プロセッサ５００に伝送できる。ＰＵ３０４により、中間エンティティ５１０からの暗号化されたデータの取得および共有ＤＲＡＭ３１４内へのそのデータの保存を円滑にできる。ＰＵ３０４がその暗号化されたデータを共有ＤＲＡＭ３１４内に保存する時または保存する頃に、プロセッサ５００はセキュアな動作モードになるのが好ましい。ＰＵ３０４が、共有ＤＲＡＭ３１４からプロセッサ５００のローカルメモリ３５０に暗号化されたデータを転送を開始するときに、そのような暗号化されたデータは復号化ユニット５０２を通過しなければならない。その結果として、復号化ユニット５０２は、プロセッサ５００のセキュアメモリ５０４に保存されている不可視鍵ＩＫｉを用いてその暗号化されたデータを復号化する。中間エンティティ５１０に源を発する（もとのデータは中間エンティティ５１０により生成された）その復号化されたデータが、セキュアな方法でプロセッサ５００のローカルメモリ３５０内に保存される点で有用である。セキュアなモードでは、ＰＵ３０４も任意の他の外部のエンティティも、プロセッサ５００の許可なくローカルメモリ３５０からデータを取得することは不可能である。従って、プロセッサ５００は海賊行為（著作権侵害）の危険にさらされることなくそのようなデータを操作できる。
【０１１５】
図１３および図１４は、プロセッサ５００のセキュリティ特性を用いたさらなる他のアプローチを採用する図１１のシステムの構成を示す。本実施の形態によれば、データは復号化プログラムと（例えば、ＲＳＡプロトコルに従う）対称鍵とを含む。中間エンティティ５１０は、対称鍵ｋｅｙ１（中間エンティティ５１０および信頼性の高いエンティティのみにより知られた秘密の鍵であることが好ましい）を用いて、その復号化プログラムおよび対称鍵ｋｅｙ２を暗号化する。ここで、中間エンティティ５１０はまた、復号化プログラムおよび対称鍵ｋｅｙ２に加え、プロセッサ５００の可視鍵ＶＫｉを暗号化できる。いずれの場合でも、中間エンティティ５１０は、暗号化された復号化プログラム／対称鍵ｋｅｙ２と可視鍵ＶＫｉとをセキュアサーバ５１２に伝送する。認証サーバ５１４は、対称鍵ｋｅｙ２を用いてその暗号化されたデータを復号化することで、復号プログラムおよび可視鍵ＶＫｉ（可視鍵ＶＫｉもまた復号化プログラムとともに暗号化されていると想定する）を取得するのが好ましい。そのｋｅｙ２は、他のエンティティもまたそのｋｅｙ２についての詳細を把握されうる点で、公開された鍵であることが好ましい。（なお、認証サーバ５１４により用いられる公開鍵ｋｅｙ２は、復号化プログラムとともに暗号化された公開鍵ｋｅｙ２と異なってもよい。）認証サーバ５１４はそのときデータベース５１６を検索し、取得した可視鍵ＶＫｉに一致する可視鍵とペアである不可視鍵とを取得する。一致した場合、認証サーバ５１４は、可視鍵ＶＫｉとプロセッサ５００とに関連付けられた不可視鍵ＩＫｉを用いて、復号化プログラムおよび対称鍵ｋｅｙ２を暗号化するのが好ましい。認証サーバ５１４はさらに、対称鍵ｋｅｙ２を用いて、その暗号化されたデータを暗号化するのが好ましい（例えば、ＲＳＡ暗号化技術を利用する）。セキュアサーバ５１２はそのとき、その二重に暗号化された（例えば、復号化プログラムおよび対称鍵ｋｅｙ２の）データを、インターネットなどを用いて、中間エンティティ５１０に伝送する。
【０１１６】
中間エンティティ５１０は好適には、対称鍵（秘密鍵）ｋｅｙ１を用いて、二重に暗号化されたデータを復号化し、暗号化されたデータを取得する。このとき、中間エンティティ５１０は、不可視鍵ＩＫｉにより暗号化された、復号化プログラムおよび対称鍵（公開鍵）ｋｅｙ２を得る。中間エンティティ５１０はそのとき、インターネットなどの手段で、その暗号化された（復号化プログラムおよび対称鍵ｋｅｙ２の）データをプロセッサ５００に伝送する。先の実施の形態と同様に、ＰＵ３０４により、中間エンティティ５１０からの暗号化されたデータの取得、共有ＤＲＡＭ３１４内へのそのデータの保存、および、復号化ユニット５０２を通じての暗号化されたデータの転送を円滑にできる。その結果、復号化プログラムおよび対称鍵ｋｅｙ２はセキュアな方法でプロセッサ５００のローカルメモリ３５０内に保存される。
【０１１７】
このとき、そのプロセッサは、例えば上述の第３のモードである「セキュアモード」に設定される。より具体的には、第３のモードでは、プロセッサ５００は、そのプロセッサ５００との間での情報の転送を開始できるが、（ＰＵ３０４などの）任意の外部のデバイスはその情報の転送を開始できない。
【０１１８】
これによりそのプロセッサ５００が復号化プログラムおよび対称鍵ｋｅｙ２をセキュアな方法で操作できる点で有利である一方、さらにその後の簡易な方法でのセキュアなデータ転送をも可能とする。この点について、図１４を参照してより詳細に説明する。
【０１１９】
中間エンティティ５１０は対称鍵（公開鍵）ｋｅｙ１を用いてさらなるデータを暗号化し、例えばインターネットや他の適切なメカニズムを用いて、それをプロセッサ５００に伝送するのが好ましい。なお、そのさらなるデータを暗号化するために中間エンティティ５１０により用いられる秘密鍵ｋｅｙ１と、セキュアサーバ５１２に伝送するための復号化プログラムを暗号化するために用いられる秘密鍵ｋｅｙ１とは同一である必要はない。ＰＵ３０４により、中間エンティティ５１０からの暗号化されたデータの取得、共有ＤＲＡＭ３１４内へのそのデータの保存を円滑にできる。なお、本実施の形態では、プロセッサ５００は「独立モード」の動作モードに入る必要はない。前述のごとく、その独立モード（第２のモード）とは、プロセッサ５００も任意の外部のデバイスもそのプロセッサ５００との間での情報の転送を開始することはできないものである。事実、プロセッサ５００またはＰＵ３０４のいずれかは、復号化ユニット５０２をバイパスした、共有ＤＲＡＭ３１４からローカルメモリ３５０への暗号化データの転送を開始できる。なぜなら、そのさらなるデータは対称鍵（秘密鍵）ｋｅｙ１を用いて暗号化されており、さらに、ＰＵ３０４も任意の他の外部エンティティもまた、ローカルメモリ３５０内にセキュアに保存される復号化プログラムや対称鍵（公開鍵）ｋｅｙ２を把握せず、かつそれらにアクセスしないためである。プロセッサ５００はそのとき、復号化プログラムおよび対称鍵ｋｅｙ２を用いて、その暗号化されたさらなるデータを復号化できる。セキュアな動作モードへの依存を必要とせずに、プロセッサ５００がセキュアな方法でそのさらなるデータを取得し、さらに同様の方法で次のさらなるデータを取得できる点で有用である。
【０１２０】
ここで、図１５は、インターネットまたは任意の他の適切な通信チャンネルやメカニズムを介してお互いに通信可能な二つのプロセッサ５００Ａおよびプロセッサ５００Ｂの構成を示す。本実施の形態によれば、プロセッサ５００Ａおよびプロセッサ５００Ｂのそれぞれは、好適には図１３について上述したアプローチを用いて、暗号化／復号化プログラム、および対称鍵を取得する。より具体的には、プロセッサ５００Ｂが暗号化／復号化プログラムおよび対称鍵ｋｅｙ１を取得する一方、プロセッサ５００Ａは暗号化／復号化プログラムおよび対称鍵ｋｅｙ２を取得するのが好ましい。暗号化／復号化プログラムおよび対称鍵は、ＡＥＳ暗号化手順を遵守するのが好ましい。
【０１２１】
プロセッサ５００Ａおよびプロセッサ５００Ｂ間のセキュアなデータ転送（ピア・ツー・ピア通信としても知られる）を、ここでより詳細に説明する。とりわけ、プロセッサ５００Ｂは、ローカルメモリ３５０Ｂ内の暗号化／復号化プログラムおよび対称鍵ｋｅｙ１を用いて、さらなるデータを暗号化できる。次にプロセッサ５００Ｂは、ローカルメモリ３５０Ｂから共有ＤＲＡＭ３１４Ｂに、その暗号化されたさらなるデータを転送できる。次にＰＵ３０４Ｂは、インターネットを介して、共有ＤＲＡＭ３１４Ｂから、プロセッサ５００Ａに関連付けられたＰＵ３０４Ａに、その暗号化されたさらなるデータを転送できる。次にＰＵ３０４Ａは、プロセッサ５００Ａに関連付けられた共有ＤＲＡＭ３１４Ａ内に、その暗号化されたさらなるデータを転送できる。次にプロセッサ５００ＡまたはＰＵ３０４Ａは、共有ＤＲＡＭ３１４Ａからローカルメモリ３５０Ａに、復号化ユニット５０２Ａをバイパスして、その暗号化されたさらなるデータを転送できる。いったん、ローカルメモリ３５０Ａ内に保存されれば、暗号化されたさらなるデータは、暗号化／復号化プログラムおよび対称鍵ｋｅｙ２を用いて、復号化されうる。中間エンティティ５１０との間でさらなる通信を行う（図１３）ことなく、プロセッサ５００Ｂとプロセッサ５００Ａとの間でそのさらなるデータを転送できる点で有用である。
【０１２２】
上述の技術と十分に類似した技術を用いて、プロセッサ５００Ａからプロセッサ５００Ｂに次のさらなるデータをも伝送することが可能である。実際には、プロセッサ５００Ａは、暗号化／復号化プログラムおよび対称鍵ｋｅｙ２を用いてそのさらなるデータを暗号化でき、さらに、その暗号化されたさらなるデータを共有ＤＲＡＭ３１４Ａに転送できる。ＰＵ３０４Ａは、インターネットを介して、共有ＤＲＡＭ３１４Ａからプロセッサ５００Ｂに関連付けられたＰＵ３０４Ｂに、その暗号化されたさらなるデータを転送できる。ＰＵ３０４Ｂは、プロセッサ５００Ｂに関連付けられた共有ＤＲＡＭ３１４Ｂに、その暗号化されたさらなるデータを転送できる。次にプロセッサ５００ＢまたはＰＵ３０４Ｂは、共有ＤＲＡＭ３１４Ｂからローカルメモリ３５０Ｂに、その暗号化されたさらなるデータを転送でき、そのさらなるデータは、ローカルメモリ３５０Ｂにて暗号化／復号化プログラムおよび対称鍵ｋｅｙ１を用いて復号化される。同様に、中間エンティティ５１０またはセキュアサーバ５１２をさらに用いる（図１３）ことなく、プロセッサ５００Ａからプロセッサ５００Ｂへの以降のさらなるデータのセキュアな転送を実現できる。
【０１２３】
図１６および図１７は、複数のプロセッサ５００のセキュリティ特性を用いるために実行されるさらなる他のアプローチを含む、図１１および／または図１２のシステムと十分に類似したシステムの構成を示す。本実施の形態によれば、（配布サーバであってもよい）中間エンティティ５１０は、復号化（すなわちデコード）プログラムおよび対称鍵ｋｅｙ２を、好適には上述のセキュアな経路を介して、セキュアサーバ５１２に伝送する。中間エンティティ５１０はまた、セキュアな方法でさらなるデータの伝送に関わることになるプロセッサのそれぞれに関連付けられたそれぞれの可視鍵Ｖｋｉを、伝送するのが好ましい。セキュアサーバ５１２は、デコードプログラムおよび対称鍵ｋｅｙ２の暗号化されたバージョンを、中間エンティティ５１０に伝送する。ここで、各バージョンはそれぞれ、取得された可視鍵ＶＫｉにそれぞれ関連付けられた特定の不可視鍵ＩＫｉにより暗号化される。次に中間エンティティ５１０は、デコードプログラムおよび対称鍵ｋｅｙ２の暗号化されたバージョンを、それぞれ、プロセッサ５００Ａ、５００Ｂ、・・・、５００ｉに伝送する。それぞれのプロセッサはセキュアな動作モードであることが好ましく、その結果、暗号化されたデコードプログラムおよび対称鍵ｋｅｙ２の各バージョンは、各復号化ユニット５０２Ａ、５０２Ｂ、・・・、５０２ｉを必ず通過する。その結果、それぞれのプロセッサ５００Ａ、５００Ｂ、・・・、５００ｉは、自身に関連するローカルメモリ３５０Ａ、３５０Ｂ、・・・、３５０ｉ内にデコードプログラムおよび対称鍵ｋｅｙ２を取得する。
【０１２４】
その後、中間エンティティ５１０は、対称鍵ｋｅｙ１を用いて暗号化されたさらなるデータの一種、例えば配布プログラムをプロセッサ５００のそれぞれに伝送できる（図１７）。次に各プロセッサ５００は、それぞれのローカルメモリ３５０の中に保存されたデコードプログラムおよび対称鍵ｋｅｙ２を用いて、その暗号化されたさらなるデータを復号化できる。関与するプロセッサ５００のそれぞれに対応して、異なるバージョンのさらなるデータを用意する必要なく、セキュアな方法でそのさらなるデータを伝送できる点で有用である。この点に関連して、そのデコードプログラムを、プロセッサ５００により映画、音楽やゲームプログラムなどのさらなるデータの取得を可能にするユーザチケットと考えることができる。そのチケットは、特定のプロセッサ５００（またはユーザ）に対してのみ有効であるため、そのユーザのみがその暗号化された配布プログラムを取得し復号化できる。なお、その配布サーバ５１０は、あるバージョンの配布プログラムを準備するだけで十分であり、たとえその配布プログラムが暗号化されても、権限のあるプロセッサにより復号化されうる。
【０１２５】
上記の内容から分かるように、信頼性の高いコードの処理および配布などの様々なセキュアなオペレーションを実現するために、本発明に係る様々な実施の形態の態様を単独で用いてもよいし、組み合わせて用いてもよい。実際、信頼性の高いコードの発生を証明でき、さらに信頼性の高いコードが改ざんされているか否かを判定できる。さらに、本発明に係る実施形態を、データコンテンツの認証、データコンテンツのセキュアな配布、システム特権の管理、電子商取引の支払いの処理、ピア・ツー・ピア間の認証の管理、およびクライアントおよびサーバ間の認証の管理に用いることができる。さらに、オペレーティングシステムが起動前に改ざんされていないことを認証し証明することで、所与のプロセッサのセキュアな起動手順の実現に本発明に係る実施形態を用いることができる。本発明の用法を全部列挙することはできない。すなわち、実際に、本発明の用法の数は非常に多いためリストアップが不可能であることは当業者にとって明らかである。
【０１２６】
ここで、図１８は、本発明の様々な態様に従ってプロセッサのコラボレーション（連携）が使用方法のさらなる例を示す。より具体的には、図１８は、データバス、ネットワーク、および／または任意の他の通信リンクを介してお互いに通信する、複数のプロセッサ６００Ａ、６００Ｂ、・・・、６００Ｆの構成を示す。プロセッサ６００の少なくとも一つは「独立」であり、そのローカルメモリの中のデータを許可なしで取得できない。すなわち、一つ以上のプロセッサ６００は上述したセキュアな動作モードである。図１８で示した例では、プロセッサ６００Ｃおよび６００Ｆがアンセキュアな動作モードである一方、プロセッサ６００Ａ、６００Ｂ、６００Ｄおよび６００Ｅは、セキュアな動作モードである。許可がなければ、セキュアなプロセッサもアンセキュアなプロセッサも、セキュアなプロセッサのローカルメモリからデータを取得できない。したがって、アンセキュアなプロセッサ６００Ｃは主体的に、プロセッサ６００Ｂのローカルメモリからデータを取得できない。同様に、セキュアなプロセッサ６００Ｅは主体的に、セキュアなプロセッサ６００Ｂのローカルメモリからデータを取得できない。逆に、任意のプロセッサ６００は主体的に、アンセキュアなプロセッサのローカルメモリからデータを取得できる。なお、互いの連携などにより許可が得られれば、サーバプロセッサ（例えば、プロセッサ６００Ａ）は主体的に、他のプロセッサ（例えば、プロセッサ６００Ｂ）がそのローカルメモリからデータを取得することが可能である。
【０１２７】
上述のシステムを、例えば、データに関するセキュリティが重要である複数の商業的企業の管理において用いることができる。例えば、プロセッサ６００Ａおよびプロセッサ６００Ｂは、独自に開発したコンテンツを含み、および／または他のベンチャー企業に認証機能を提供する管理エンティティであってもよい。したがって、プロセッサ６００Ｄおよび６００Ｅは、コンテンツの認証が可能であり、例えば、後の配布または処理のために、プロセッサ６００Ａおよび／またはプロセッサ６００Ｂを用いて、そのコンテンツを認証および／または暗号化できる。この点に関連して、プロセッサ６００Ｄおよびプロセッサ６００Ｅは、その管理エンティティのライセンシーであるライセンシーエンティティであると考えることができる。さらに、サードパーティ（thirdparty；提携するもの）のコンテンツはアンセキュアなプロセッサ６００Ｃおよび６００Ｆ上で利用され、および／または処理されうる。
【０１２８】
ここでは本発明の具体例について説明したが、これらの実施例は単に本発明の趣旨と応用を示すものである。したがって、請求項により定義された本発明の主旨および範囲から逸脱しないかぎり、上述した実施形態に対して様々な変更を加えることができる。
【図面の簡単な説明】
【０１２９】
【図１】実施の形態の一つ以上の態様に係るコンピュータネットワークの全体構成の一例を示す図である。
【図２】実施の形態の一つ以上の態様に係るマルチプロセッサシステムの構成を示す図である。
【図３】実施の形態の一つ以上の態様に係る図２のシステムのセキュリティ回路の構成を示す図である。
【図４】実施の形態の一つ以上の態様に係る認証ルーチンを実現するために、図２のシステムにより実行されうる処理ステップの一部を示すフロー図である。
【図５】実施の形態の一つ以上の態様に係る認証ルーチンを実現するために、図２のシステムにより実行されうる処理ステップをの一部を示すフロー図である。
【図６】実施の形態の一つ以上の態様に係る認証ルーチンを実現するために、図２のシステムにより実行されうる処理ステップの一部を示すフロー図である。
【図７】実施の形態の一つ以上の別の態様を実施するために用いられうる好適なプロセッサ要素（ＰＥ）の構成を示す図である。
【図８】実施の形態の一つ以上の別の態様に従って構成されうる図７のシステムのサブ処理ユニット（ＳＰＵ）の構成の一例を示す図である。
【図９】実施の形態の一つ以上の別の態様に従って構成されうる図７のシステムの処理ユニット（ＰＵ）の構成の一例を示す図である。
【図１０】実施の形態の一つ以上の態様に係るセキュリティ特性を有するプロセッサの構成を示す図である。
【図１１】図１０のプロセッサを用いて、実施の形態に係るあるセキュリティ特性を使用するためのシステムの構成を示す図である。
【図１２】図１０のプロセッサを用いて、実施の形態に係る別のセキュリティ特性を使用するためのシステムの構成を示す図である。
【図１３】図１０のプロセッサを用いて、実施の形態に係るさらなる別のセキュリティ特性を使用するためのシステムの構成を示す図である。
【図１４】図１３のシステムのさらなる詳細を示す図である。
【図１５】図１０のプロセッサを用いて、実施の形態に係るさらなる別のセキュリティ特性を使用するためのシステムの構成を示す図である。
【図１６】図１０のプロセッサを用いて、実施の形態に係るさらなる別のセキュリティ特性を使用するためのシステムの構成を示す図である。
【図１７】図１６のシステムのさらなる詳細を示す図である。
【図１８】実施の形態の一つ以上の態様に係る複数のプロセッサを用いるシステムの構成を示す図である。
【符号の説明】
【０１３０】
１００  装置，プロセッサシステム、    １０２  プロセッサ、    １０４，３５０  ローカルメモリ、    １０６，３１４  共有メモリ、    １０８，３１２  バス、    １５０  セキュリティ回路、    １５２  機密データ領域、    １５４  アクセス可能データ領域、    １５６  ロジック回路、    ３０４，３０８  処理ユニット、    ３５０  ローカルメモリ、    ５００  プロセッサ、    ５０２  復号化ユニット、    ５１０  中間エンティティ、    ５１２  セキュアサーバ、    ５１４  認証サーバ、    ５１６  データベース、    ＩＫｉ  不可視鍵、    ＶＫｉ  可視鍵、    ｋｅｙ１  第１の鍵、    ｋｅｙ２  第２の鍵。
【図１】
2006139785.tif 000003
【図２】
2006139785.tif 000004
【図３】
2006139785.tif 000005
【図４】
2006139785.tif 000006
【図５】
2006139785.tif 000007
【図６】
2006139785.tif 000008
【図７】
2006139785.tif 000009
【図８】
2006139785.tif 000010
【図９】
2006139785.tif 000011
【図１０】
2006139785.tif 000012
【図１１】
2006139785.tif 000013
【図１２】
2006139785.tif 000014
【図１３】
2006139785.tif 000015
【図１４】
2006139785.tif 000016
【図１５】
2006139785.tif 000017
【図１６】
2006139785.tif 000018
【図１７】
2006139785.tif 000019
【図１８】
2006139785.tif 000020