(57)【要約】【課題】信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムを提供する。【解決手段】グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術が提供され、アプリケーションまたはデバイスは、そのアプリケーションまたはデバイスが信頼されるグラフィックスプラットフォームの信頼されるユーザであることを信頼されるグラフィックスプラットフォームに示すことができ、またグラフィックスプラットフォームは、そのグラフィックスプラットフォームが信頼されるアプリケーションまたはデバイスによって信頼できることをそのアプリケーションまたはデバイスに伝えることができる。【選択図】　　　　図３Ａ
2004007603.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
アプリケーションおよびデバイスの１つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
前記要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成することと、
前記セッションキーを前記アプリケーションおよびデバイスの１つに送信することと
を含むことを特徴とする方法。
【請求項２】
前記グラフィックスカードの資源に対する要求との関連で、前記グラフィックスカードに前記セッションキーを知らせること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
各暗号プロセッサが製造中に個別設定され、保証されることを特徴とする請求項１に記載の方法。
【請求項４】
各暗号プロセッサは一意の解読用秘密鍵を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記暗号プロセッサが、（１）前記暗号プロセッサを既存のチップに追加すること、および（２）前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか１つにより恒久的に前記グラフィックスカードに取り付けられ、
それにより、前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能となり、公開されないことを特徴とする請求項１に記載の方法。
【請求項６】
前記暗号プロセッサは、（１）前記セッションキー用のマルチビットの揮発性レジスタＳ、および（２）複数のインデックスキーの配列を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記セッションキーの寿命は前記アプリケーションおよびデバイスの１つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの１つからの命令によって決定されることを特徴とする請求項６に記載の方法。
【請求項８】
前記複数のインデックスキーそれぞれが、（１）前記アプリケーションおよびデバイスの１つを含むホストシステムの特定ウィンドウと関連付けられ、（２）前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項６に記載の方法。
【請求項９】
前記要求は、（１）前記アプリケーションおよびデバイスの１つとの外部インタフェース、および（２）前記グラフィックスカードのグラフィック処理装置（ＧＰＵ）との内部インタフェース、のいずれか１つを介して前記暗号プロセッサとのインタフェースをとることを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記外部インタフェースとのインタフェースをとることは、認証および鍵の移送のために秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
前記アプリケーションおよびデバイスの１つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのｃｒｙｐｔｏｂｌｏｂを生成することと、
前記暗号プロセッサにより前記セッションキーのｃｒｙｐｔｏｂｌｏｂを受け取ることと、
前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのｃｒｙｐｔｏｂｌｏｂを解読し、それにより前記セッションキーを得ることと、
を含み、
それにより、前記アプリケーションおよびデバイスの１つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの１つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項９に記載の方法。
【請求項１１】
前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
前記暗号化、受け取りおよび解読を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの１つと前記暗号プロセッサとのすべての通信をセキュアにするＳｅｔ　Ｓｅｓｓｉｏｎ　Ｋｅｙ関数と、
Ｓｅｔ関数と、
Ｇｅｔ関数と
を含み、
前記アプリケーションおよびデバイスの１つと前記暗号プロセッサは、前記Ｓｅｔ関数およびＧｅｔ関数を用いて通信し、Ｓｅｔ関数およびＧｅｔ関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記Ｇｅｔ関数は、（１）前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティＩＤメソッド、（２）画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティＩＤメソッド、および（３）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度をセットするＬ２ＫｅｙＭｇｍｔプロパティＩＤメソッド、の少なくとも１つを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記Ｓｅｔ関数は、（１）前記グラフィックスカードの少なくとも１つの出力の設定を戻す出力ポートメソッド、（２）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第１の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、（３）前記グラフィックスカードによりサポートされるＤＸ−ＳＥＣのバージョンを戻すＤＸ−ＳＥＣバージョンメソッド、（４）前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、（５）前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、（６）前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、（７）前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、（８）保護されるオーバーレイのある領域の位置およびサイズの少なくとも１つを設定するメソッド、（９）解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも１つを設定するメソッド、の少なくとも１つを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより、前記グラフィックスカードを破壊せずに、（１）前記暗号プロセッサを恒久的に前記グラフィックスカードに固定し、および（２）前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項９に記載の方法。
【請求項１５】
（１）前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および（２）前記暗号プロセッサが前記ＧＰＵと同じチップ上にあること、のいずれか１つを特徴とする請求項１４に記載の方法。
【請求項１６】
前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って１回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項６に記載の方法。
【請求項１７】
目的パラメータの値は、
オーバーレイサーフェスの暗号化との関連で利用されるＤＸ−ＳＥＣストリーム暗号に用いられるＬ１ＳＴＲＥＡＭキーと、
前記アプリケーションおよびデバイスの１つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるＬ２ＢＬＯＣＫキーと
を含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
請求項１に記載の方法を行うコンピュータ実行可能命令を担持することを特徴とする変調データ信号。
【請求項１９】
請求項１に記載の方法を行う手段を備えることを特徴とするコンピューティングデバイス。
【請求項２０】
アプリケーションおよびデバイスの１つと、
少なくとも１つのＧＰＵと、前記少なくとも１つのＧＰＵに通信的にかつ固定して結合された暗号プロセッサとを有するグラフィックスカードと
を備え、
前記アプリケーションおよびデバイスの１つは、前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように前記グラフィックスカードに要求し、前記要求に応答して、前記暗号プロセッサはセッションキーを生成し、前記アプリケーションおよびデバイスの１つに前記セッションキーを送信することを特徴とするコンピューティングデバイス。
【請求項２１】
前記セッションキーが、前記グラフィックスカードの資源に対する要求との関連で前記グラフィックスカードに知らされることを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２２】
各暗号プロセッサが製造中に個別設定され保証されることを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２３】
各暗号プロセッサは一意の解読用の秘密鍵を含むことを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２４】
前記暗号プロセッサが、（１）既存のチップに前記暗号プロセッサを追加すること、および（２）前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか１つにより恒久的に前記グラフィックスカードに取り付けられ、
それにより前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能になり、公開されないことを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２５】
前記暗号プロセッサは、（１）前記セッションキー用のマルチビットの揮発性レジスタＳ、および（２）複数のインデックスキーの配列、を含むことを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２６】
前記セッションキーの寿命は前記アプリケーションおよびデバイスの１つの実行時間であり、前記複数のキーそれぞれの寿命は前記アプリケーションおよびデバイスの１つからの命令によって決定されることを特徴とする請求項２５に記載のコンピューティングデバイス。
【請求項２７】
前記複数のインデックスキーそれぞれが、（１）前記アプリケーションおよびデバイスの１つを含むホストシステムの特定ウィンドウと関連付けられ、（２）前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項２５に記載のコンピューティングデバイス。
【請求項２８】
前記アプリケーションおよびデバイスの１つは、（１）前記アプリケーションおよびデバイスの１つとの外部インタフェース、および（２）前記グラフィックスカード上のグラフィック処理装置（ＧＰＵ）との内部インタフェース、のいずれか１つを介して前記暗号プロセッサとのインタフェースをとることを特徴とする請求項２０に記載のコンピューティングデバイス。
【請求項２９】
前記アプリケーションおよびデバイスの１つは、認証および鍵の移送のための秘密鍵暗号化プロトコルを使用して外部インタフェースとのインタフェースをとり、それにより前記認証および鍵の移送は、
前記アプリケーションおよびデバイスの１つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのｃｒｙｐｔｏｂｌｏｂを作成することと、
前記暗号プロセッサにより前記セッションキーのｃｒｙｐｔｏｂｌｏｂを受け取ることと、
前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのｃｒｙｐｔｏｂｌｏｂを解読し、それにより前記セッションキーを得ることと、
を含み、
それにより、前記アプリケーションおよびデバイスの１つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの１つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項２８に記載のコンピューティングデバイス。
【請求項３０】
前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
前記暗号化、受け取りおよび解読を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの１つと前記暗号プロセッサとのすべての通信をセキュアにするＳｅｔ　Ｓｅｓｓｉｏｎ　Ｋｅｙ関数と、
Ｓｅｔ関数と、
Ｇｅｔ関数と
を含み、
前記アプリケーションおよびデバイスの１つと前記暗号プロセッサは前記Ｓｅｔ関数およびＧｅｔ関数を使用して通信し、Ｓｅｔ関数およびＧｅｔ関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項２９に記載のコンピューティングデバイス。
【請求項３１】
前記Ｇｅｔ関数は、（１）前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティＩＤメソッド、（２）画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティＩＤメソッド、および（３）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度をセットするＬ２ＫｅｙＭｇｍｔプロパティＩＤメソッド、の少なくとも１つを含むことを特徴とする請求項３０に記載のコンピューティングデバイス。
【請求項３２】
前記Ｓｅｔ関数は、（１）前記グラフィックスカードの少なくとも１つの出力の設定を戻す出力ポートメソッド、（２）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第１の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、（３）前記グラフィックスカードによってサポートされるＤＸ−ＳＥＣのバージョンを戻すＤＸ−ＳＥＣバージョンメソッド、（４）前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、（５）前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、（６）前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、（７）前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、（８）保護されるオーバーレイのある領域の位置およびサイズの少なくとも１つを設定するメソッド、（９）解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも１つを設定するメソッド、の少なくとも１つを含むことを特徴とする請求項３０に記載のコンピューティングデバイス。
【請求項３３】
前記内部インタフェースは前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとり、それにより前記グラフィックスカードを破壊することなく、（１）前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および（２）前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項２８に記載のコンピューティングデバイス。
【請求項３４】
（１）前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および（２）前記暗号プロセッサが前記ＧＰＵと同じチップ上にあること、のいずれか１つを特徴とする請求項３３に記載のコンピューティングデバイス。
【請求項３５】
前記複数のインデックスキーそれぞれが前記インデックスキーと関連付けられた目的パラメータに従って１回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項２５に記載のコンピューティングデバイス。
【請求項３６】
目的パラメータの値は、
オーバーレイサーフェスの暗号化との関連で利用されるＤＸ−ＳＥＣストリーム暗号に用いられるＬ１ＳＴＲＥＡＭキーと、
前記アプリケーションおよびデバイスの１つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるＬ２ＢＬＯＣＫキーと
を含むことを特徴とする請求項３５に記載のコンピューティングデバイス。
【請求項３７】
グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
アプリケーションおよびデバイスの１つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
前記要求に応答して、鍵の移送のために前記信頼されるグラフィックスプラットフォームに組み込まれたセキュアな通信機構を介して前記アプリケーションおよびデバイスの１つにセッションキーを送ることと、
を含み、
それにより、前記アプリケーションおよびデバイスの１つは、セキュアなグラフィックスカードによる同一のアドレス空間への書き込みは前記グラフィックスカードのキーストアにマッピングされることを事前に知ることを特徴とする方法。
【請求項３８】
前記セキュアな通信機構が低帯域幅接続であることを特徴とする請求項３７に記載の方法。
【請求項３９】
グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
保護された経路を介して前記信頼されるグラフィックスプラットフォームに大容量の暗号化データを送ることにより、アプリケーションおよびデバイスの１つがグラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
前記要求に応答して、暗号処理装置を利用して前記大容量の暗号化データを解読し、それにより前記グラフィックスカードがセキュアなグラフィックスカードであることを証明することと、
前記グラフィックスカードがセキュアなグラフィックスカードであることを前記アプリケーションおよびデバイスの１つに通知することと
を含むことを特徴とする方法。
【請求項４０】
複数のコンピュータ実行可能命令が格納された少なくとも１つのコンピュータ可読媒体であって、前記複数のコンピュータ実行可能命令は、
アプリケーションおよびデバイスの１つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求する手段と、
前記要求手段による要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成する手段と、前記セッションキーを前記アプリケーションおよびデバイスの１つに送信する手段と
を含むことを特徴とするコンピュータ可読媒体。
【請求項４１】
前記グラフィックスカードの資源に対する要求との関連で前記セッションキーを前記グラフィックスカードに知らせる手段
をさらに含むことを特徴とする請求項４０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４２】
各暗号プロセッサが、一意の解読用の秘密鍵を含み、製造中に個別設定され保証されることを特徴とする請求項４０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４３】
前記暗号プロセッサが、（１）既存のチップに前記暗号プロセッサを追加すること、および（２）前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか１つにより恒久的に前記グラフィックスカードに取り付けられ、
それにより前記暗号プロセッサと前記グラフィックカードの残りの部分との物理接続がアクセス不可能になり、公開されないことを特徴とする請求項４０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４４】
前記暗号プロセッサは、（１）前記セッションキー用のマルチビットの揮発性レジスタＳ、および（２）複数のインデックスキーの配列、を含むことを特徴とする請求項４０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４５】
前記セッションキーの寿命は前記アプリケーションおよびデバイスの１つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの１つからの命令によって決定されることを特徴とする請求項４４に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４６】
前記複数のインデックスキーそれぞれが、（１）前記アプリケーションおよびデバイスの１つを含むホストシステムの特定ウィンドウと関連付けられ、（２）前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項４４に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４７】
前記要求手段は、（１）前記アプリケーションおよびデバイスの１つとの外部インタフェース、および（２）前記グラフィックスカードのグラフィック処理装置（ＧＰＵ）との内部インタフェース、のいずれか１つを介して前記暗号プロセッサとインタフェースをとる手段を含むことを特徴とする請求項４０に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４８】
前記外部インタフェースとのインタフェースをとる手段は、認証および鍵の移送のための秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
前記アプリケーションおよびデバイスの１つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのｃｒｙｐｔｏｂｌｏｂを生成する手段と、
前記暗号プロセッサにより前記セッションキーのｃｒｙｐｔｏｂｌｏｂを受け取る手段と、
前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのｃｒｙｐｔｏｂｌｏｂを解読し、それにより前記セッションキーを得る手段と
を含み、
それにより、前記アプリケーションおよびデバイスの１つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの１つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項４７に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４９】
前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
前記暗号化手段、受け取り手段、および解読手段を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの１つと前記暗号プロセッサとのすべての通信をセキュアにするＳｅｔ　Ｓｅｓｓｉｏｎ　Ｋｅｙ関数と、
Ｓｅｔ関数と、
Ｇｅｔ関数と
を含み、
前記アプリケーションおよびデバイスの１つと前記暗号プロセッサは前記Ｓｅｔ関数およびＧｅｔ関数を使用して通信し、Ｓｅｔ関数およびＧｅｔ関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項４８に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５０】
前記Ｇｅｔ関数は、（１）前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティＩＤメソッド、（２）画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティＩＤメソッド、および（３）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度を設定するＬ２ＫｅｙＭｇｍｔプロパティＩＤメソッド、の少なくとも１つを含むことを特徴とする請求項４９に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５１】
前記Ｓｅｔ関数は、（１）前記グラフィックスカードの少なくとも１つの出力の設定を戻す出力ポートメソッド、（２）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第１の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、（３）前記グラフィックスカードによってサポートされるＤＸ−ＳＥＣのバージョンを戻すＤＸ−ＳＥＣバージョンメソッド、（４）前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、（５）前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、（６）前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、（７）前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、（８）保護されるオーバーレイのある領域の位置およびサイズの少なくとも１つを設定するメソッド、（９）解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも１つを設定するメソッド、の少なくとも１つを含むことを特徴とする請求項４９に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５２】
前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより前記グラフィックスカードを破壊することなく、（１）前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および（２）前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項４７に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５３】
（１）前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および（２）前記暗号プロセッサが前記ＧＰＵと同じチップ上にあること、のいずれか１つを特徴とする請求項５２に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５４】
前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って１回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項４４に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５５】
目的パラメータの値は、
オーバーレイサーフェスの暗号化との関連で利用されるＤＸ−ＳＥＣストリーム暗号に用いられるＬ１ＳＴＲＥＡＭキーと、
前記アプリケーションおよびデバイスの１つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるＬ２ＢＬＯＣＫキーと
を含むことを特徴とする請求項５４に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５６】
アプリケーションおよびデバイスの１つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求する手段と、
前記要求手段による要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成する手段と、前記セッションキーを前記アプリケーションおよびデバイスの１つに送信する手段と
を含むことを特徴とするコンピューティングデバイスのオペレーティングシステム。
【請求項５７】
前記グラフィックスカードの資源に対する要求との関連で前記セッションキーを前記グラフィックスカードに知らせる手段
をさらに含むことを特徴とする請求項５６に記載のオペレーティングシステム。
【請求項５８】
各暗号プロセッサが、一意の解読用の秘密鍵を含み、製造中に個別設定され保証されることを特徴とする請求項５６に記載のオペレーティングシステム。
【請求項５９】
前記暗号プロセッサが、（１）既存のチップに前記暗号プロセッサを追加すること、および（２）前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか１つにより恒久的に前記グラフィックスカードに取り付けられ、
それにより前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能となり、公開されないことを特徴とする請求項５６に記載のオペレーティングシステム。
【請求項６０】
前記暗号プロセッサは、（１）前記セッションキー用のマルチビットの揮発性レジスタＳ、および（２）複数のインデックスキーの配列、を含むことを特徴とする請求項５６に記載のオペレーティングシステム。
【請求項６１】
前記セッションキーの寿命は前記アプリケーションおよびデバイスの１つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの１つからの命令によって決定されることを特徴とする請求項６０に記載のオペレーティングシステム。
【請求項６２】
前記複数のインデックスキーそれぞれが、（１）前記アプリケーションおよびデバイスの１つを含むホストシステムの特定ウィンドウと関連付けられ、（２）前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項６０に記載のオペレーティングシステム。
【請求項６３】
前記要求手段は、（１）前記アプリケーションおよびデバイスの１つとの外部インタフェース、および（２）前記グラフィックスカードのグラフィック処理装置（ＧＰＵ）との内部インタフェース、のいずれか１つを介して前記暗号プロセッサとのインタフェースをとる手段を含むことを特徴とする請求項５６に記載のオペレーティングシステム。
【請求項６４】
前記外部インタフェースとのインタフェースをとる手段は、認証および鍵の移送のために秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
前記アプリケーションおよびデバイスの１つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのｃｒｙｐｔｏｂｌｏｂを生成する手段と、
前記暗号プロセッサにより前記セッションキーのｃｒｙｐｔｏｂｌｏｂを受け取る手段と、
前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのｃｒｙｐｔｏｂｌｏｂを解読し、それにより前記セッションキーを得る手段と
を含み、
それにより、前記アプリケーションおよびデバイスの１つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの１つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項６３に記載のオペレーティングシステム。
【請求項６５】
前記外部インタフェースが関数のセットを通じて前記暗号プロセッサにより公開され、前記セットは、
前記暗号化手段、受け取り手段、および解読手段を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの１つと前記暗号プロセッサとのすべての通信をセキュアにするＳｅｔ　Ｓｅｓｓｉｏｎ　Ｋｅｙ関数と、
Ｓｅｔ関数と、
Ｇｅｔ関数と
を含み、
前記アプリケーションおよびデバイスの１つと前記暗号プロセッサは前記Ｓｅｔ関数およびＧｅｔ関数を使用して通信し、Ｓｅｔ関数およびＧｅｔ関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項６４に記載のオペレーティングシステム。
【請求項６６】
前記Ｇｅｔ関数は、（１）前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティＩＤメソッド、（２）画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティＩＤメソッド、および（３）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度を設定するＬ２ＫｅｙＭｇｍｔプロパティＩＤメソッド、の少なくとも１つを含むことを特徴とする請求項６５に記載のオペレーティングシステム。
【請求項６７】
前記Ｓｅｔ関数は、（１）前記グラフィックスカードの少なくとも１つの出力の設定を戻す出力ポートメソッド、（２）前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第１の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、（３）前記グラフィックスカードによってサポートされるＤＸ−ＳＥＣのバージョンを戻すＤＸ−ＳＥＣバージョンメソッド、（４）前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、（５）前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、（６）前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、（７）前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、（８）保護されるオーバーレイのある領域の位置およびサイズの少なくとも１つを設定するメソッド、および（９）解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも１つを設定するメソッド、の少なくとも１つを含むことを特徴とする請求項６５に記載のオペレーティングシステム。
【請求項６８】
前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより前記グラフィックスカードを破壊することなく、（１）前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および（２）前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項６３に記載のオペレーティングシステム。
【請求項６９】
（１）前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および（２）前記暗号プロセッサが前記ＧＰＵと同じチップ上にあること、のいずれか１つを特徴とする請求項６８に記載のオペレーティングシステム。
【請求項７０】
前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って１回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項６０に記載のオペレーティングシステム。
【請求項７１】
目的パラメータの値は、
オーバーレイサーフェスの暗号化との関連で利用されるＤＸ−ＳＥＣストリーム暗号に用いられるＬ１ＳＴＲＥＡＭキーと、
前記アプリケーションおよびデバイスの１つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるＬ２ＢＬＯＣＫキーと
を含むことを特徴とする請求項７０に記載のオペレーティングシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
著作権表示および許可
この特許明細書の開示の一部には、著作権保護の対象となる題材が含まれる可能性がある。著作権所有者は、米国特許商標庁の特許ファイルまたは記録に記載される本特許文書または特許開示のいずれの者による複製には異議を持たないが、その他の点ではすべての著作権を保有する。次の表示をこの文書に適用するものとする。Ｃｏｐｙｒｉｇｈｔ（Ｃ）２００１、Ｍｉｃｒｏｓｏｆｔ　Ｃｏｒｐ．
本発明は、信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムに関する。より詳細には、本発明は、グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術に関する。
【０００２】
【従来の技術】
現在インターネットおよびその他多数のソースとアプリケーションにより、聴く、見る、処理する、記憶する、およびその他の形でレンダリングするための膨大なストリーミング媒体および固定媒体、あるいはその他のコンテンツが提供されている。しかし現在のところ、コンテンツの処理中かまたはコンテンツのレンダリング中にパイプラインのいずれかの時点で、著作権侵害者がストリームに侵入してコピーを入手する、あるいはコンテンツを変更することができないように、ストリーミング媒体や固定媒体、あるいはコンテンツをコピープロテクトされた方法で取り込む、記録する、あるいはレンダリングする実用的な方法は存在しない。この問題は過去にも例えばテレビ内容のためのＶＣＲ、音声信号用のテープレコーダなど他の媒体レンダリング装置や記録装置との関連で存在したが、少なくとも１つの大きな違いがある。デジタル媒体の内容は実質的に信号を損失させることなく記録できるため、著作権所有者にとっては自分の作品が代償なしに自由に配布される（無断使用される）という「リスク」が生じる。ＶＣＲやテープレコーダの場合は、装置や伝送媒体によって記録工程で雑音やデータの破損が生じる。ストリーミング媒体または固定デジタル媒体の場合には、少なくとも人間の耳と目の能力の限界までは実質的に損失のない変換と再伝送を行えない理由はなく、また質の低下がないデジタルデータを記憶し、自由に配布できない理由もない。したがって、著作権所有者がある料金で提供できるものと、著作権侵害者がただで提供できるものとの間にほとんど差がないことから、デジタルデータの自由な再配布を防止することが望ましい。さらには、電子商取引など機密性が求められる通信に関しては、対話に関わるユーザにとって無許可の第三者が内密に取引に関与しないことが重要である。このように、現在、信頼されるソースからのコンテンツに関して、無断使用または破損を防止することなくユーザのコンピュータ上でデータを「セキュアに」処理またはレンダリングする実用的な方法はない。
【０００３】
詳細には、コンテンツがホストコンピューティングシステム、１つまたは複数のグラフィック処理装置（ＧＰＵ）、およびレンダリング装置に送り込まれると、著作権侵害者または無許可の第三者が回線または信号に一時的に侵入（ｃａｍｐ　ｏｎ）して信号を無断で入手する、あるいは破損させる機会がいくつかある。さらにメッセージングサービスおよびテレビ会議を介してユーザ対話がより高度なものになるのに従い、今後は発信元に関係なくセキュアなコンテンツに信頼されるパイプラインを提供することが一層重要になる。
【０００４】
さらに、現在のパーソナルコンピュータ（ＰＣ）のように大半の計算力をＣＰＵから得るのと異なり、次世代のオペレーティングシステム、コンピューティングデバイス、およびアプリケーションは、ビジネスアプリケーションのためにＧＰＵの計算力をより多く利用するようになることが明白である。このため、「信頼されるグラフィック」アプリケーションを介してＧＰＵに送られる内容を保証することが将来のコンピューティングデバイスには必須の特性となるが、これは現在のコンピューティングシステムでは十分に対処されていない特性である。
【０００５】
信頼されるコンテンツにセキュアなパイプラインを提供するというこの課題は２要素からなると考えることができる。すなわち（１）パイプライン中の何らかの弱い点で信頼されるコンテンツのコピーまたは閲覧を行えないことを保証しなければならず（機密性）、（２）パイプラインがパイプラインにおける無許可のデータの破損を防止することを保証しなければならない（保護性）。システムセキュリティに関しては、システムの安全性を証明することが難しくなるので複雑性は不利になる。空港あるいはその他のセキュリティのシナリオと同様に、システム中の入り口点と出口点が多いほどセキュリティを保証するのが難しくなる。この点で、現在、機密性および保護可能性の両方の点についてＧＰＵ機能およびディスプレイドライバの大半を信頼できるようにする手段は存在しない。
【０００６】
【発明が解決しようとする課題】
しかし、そのような信頼されるグラフィックスプラットフォームとの関係でコンテンツを送達、処理および／またはレンダリングする前に、現在は、信頼されるグラフィックスプラットフォームと対話する信頼されるアプリケーションまたはデバイスが、対話するグラフィックスプラットフォームが信頼されるものであることを保証する適切な手段を備えないという重大な問題が存在する。さらに、現在は、信頼されるグラフィックスプラットフォームの信頼されるサービスを利用できるように、自身が信頼されるアプリケーションであることを信頼されるアプリケーションがグラフィックスプラットフォームに伝えるためのセキュアで適切な方法がない。したがって、信頼されるグラフィックスプラットフォームの使用に関連する改良された認証技術が必要とされる。
【０００７】
【課題を解決するための手段】
前述の内容を鑑みて、本発明は、信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムを提供する。グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術が提供され、アプリケーションまたはデバイスは、そのアプリケーションまたはデバイスが信頼されるグラフィックスプラットフォームの信頼されるユーザであることを信頼されるグラフィックスプラットフォームに示すことができ、またグラフィックスプラットフォームは、信頼されるアプリケーションまたはデバイスにそのグラフィックスプラットフォームがそのアプリケーションまたはデバイスに信頼されるかもしれないことを伝えることができる。
【０００８】
この方法は、グラフィックスカードを備える信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する技術を様々な形で含み、アプリケーションまたはデバイスが、グラフィックスカードにそのグラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、その要求に応答して、グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによってセッションキーを生成することと、そのセッションキーをアプリケーションまたはデバイスに送信することとを含む。
【０００９】
このシステムは、コンピューティングデバイスを様々な形で含み、コンピューティングデバイスは、アプリケーションまたはデバイスと、ＧＰＵおよびＧＰＵに通信的にかつ固定して結合された暗号プロセッサを有するグラフィックスカードとを備え、アプリケーションまたはデバイスは、グラフィックスカードにそのグラフィックカードがセキュアなグラフィックスカードであることを証明するように要求し、暗号プロセッサはその要求に応答してセッションキーを生成し、そのセッションキーをアプリケーションまたはデバイスに送信する。
【００１０】
本発明のこの他の特徴および実施形態は下記で述べる。
【００１１】
本発明による信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムについて、添付図面を参照してさらに説明する。
【００１２】
【発明の実施の形態】
概要
本発明は、改ざん防止性のある機密ダイアログや無許可の複製に対する耐性があるプレミアムコンテンツ再生などの「信頼されるグラフィック」アプリケーションによってコンテンツの処理および／またはレンダリングを行えるように、信頼されるソースからのコンテンツとグラフィックシステムとの間にあるオペレーティングシステム、または他の中間物を認証の目的で増強するシステムおよび技術を提供する。グラフィックスプラットフォームを信頼されるものとみなす１つの方法は、そのプラットフォームが、（１）オーバーレイサーフェスの内容の暗号化、（２）ＧＰＵまたは他のコプロセッシングデバイスが、信頼されないパーティによる入手を可能にすることなく暗号化された内容に働きかけることを可能にする、および（３）コマンドバッファの暗号化を可能にする、という３「レベル」のセキュリティを提供することである。本発明は、そのような信頼されるグラフィックスプラットフォームとの関連で使用する認証サービスを提供する。
【００１３】
上述のように、システムセキュリティに関してはシステムの安全性を証明するのが難しくなるので複雑性は不利になる。その結果、信頼されるグラフィックスプラットフォームは、ＧＰＵ機能とディスプレイドライバの大半を信頼できないとみなさなければならないと考える。セキュリティの基準を満たすように実装可能なハードウェアの範囲を制限することにより、信頼されるグラフィックスプラットフォームは機密性と保護可能性の点で正しい実装の可能性を増す。本発明によるいくつかの術語についてはすでに上記で述べた。ただし、説明を簡潔にするために以下にいくつかの用語を特に説明する。用語「機密」とは、第三者であるデバイスまたはソフトウェアなどの信頼されない第三者が信頼される内容情報へのアクセス権を得られないようにすることを意味する。このような機密性の一例には、信頼されない第三者が、グラフィックスパイプラインのいずれかの時点で暗号化されたプレミアムビデオコンテンツの再生へのアクセス権を得られないようにすることが含まれる。用語「保護された」とは、第三者であるデバイスまたはソフトウェアなどの信頼されない第三者が、検出されることなく信頼される内容情報へのアクセス権を得る、あるいは内容情報を変更することができないようにすることを意味する。このような保護性の一例には、電子商取引の処理中に発生する可能性のある、信頼されない第三者によるセキュアダイアログの表示へのアクセス権の入手、あるいはダイアログ表示の変更を防止することが含まれる。
【００１４】
この点で、信頼されるグラフィックスプラットフォームは、電子商取引の対話中に存在する可能性がある、例えばプレミアムコンテンツのビデオストリームの上にあるユーザインタフェースのような重なり合ったウィンドウ、ならびに隠蔽不可能なウィンドウを考慮する。ただし、信頼されるグラフィックスプラットフォームの動作が可能になる前に、その信頼されるグラフィックスプラットフォームを使用するアプリケーションおよびデバイスと、信頼されるグラフィックスプラットフォーム自体とが信頼されるシステム全体の真の一部であることを保証する本発明による機構がある。本発明は、このような認証を実装するシステムおよび技術を提供する。その詳細および実施形態について以下に説明する。
【００１５】
例示的ネットワーク環境
当技術分野の通常の技術者は、コンピュータまたは他のクライアントまたはサーバ装置は、コンピュータネットワークの一部として、すなわち分散コンピューティング環境に配置できることを認識できよう。この点に関して、本発明は、信頼されるグラフィック体制に用いられる認証技術に関係する可能性のある、任意数のメモリ装置または記憶装置を備え、任意数の記憶装置またはボリュームにわたって行われる任意数のアプリケーションおよびプロセスを備える任意のコンピュータシステムに関係する。本発明は、ネットワーク環境あるいは分散コンピューティング環境に配置されたサーバコンピュータおよびクライアントコンピュータを備え、リモートまたはローカルのストレージを有する環境に適用することができる。本発明はまた、リモートまたはローカルのサービスとの関連で情報を生成、受信、および送信するためのプログラミング言語機能、解釈および実行機能を備えるスタンドアロンのコンピューティングデバイスにも適用することができる。
【００１６】
分散コンピューティングは、コンピューティングデバイスとシステム間の直接の交換によりコンピュータ資源とサービスの共有を容易にする。この資源とサービスには、情報の交換、キャッシュ記憶、およびファイルのディスク記憶が含まれる。分散コンピューティングはネットワークの接続性を活用し、クライアントがその集団的な力を活かしてエンタープライズ全体を利することを可能にする。この点について、各種のデバイスは、対話することにより本発明の信頼されるグラフィックスパイプラインのための認証技術に関係する可能性のあるアプリケーション、オブジェクト、または資源を有することができる。
【００１７】
図１Ａに、例示的なネットワーク環境あるいは分散コンピューティング環境の略図を示す。この分散コンピューティング環境は、コンピューティングオブジェクト１０ａ、１０ｂなどと、コンピューティングオブジェクトまたはデバイス１１０ａ、１１０ｂ、１１０ｃなどを備える。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを備えることができる。オブジェクトは、ＰＤＡ、テレビジョン、ＭＰ３プレーヤ、テレビジョン、パーソナルコンピュータなど、同一のデバイスまたは異なるデバイスの部分からなることが可能である。各オブジェクトは、通信ネットワーク１４により他のオブジェクトと通信することができる。このネットワークはそれ自体で、図１Ａのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができる。本発明の一態様によれば、各オブジェクト１０または１１０は、本発明の信頼されるグラフィックスパイプラインのための認証技術を要求する可能性のあるアプリケーションを含むことができる。
【００１８】
また、１１０ｃなどのオブジェクトは別のコンピューティングデバイス１０または１１０でホストしてよいことも理解できる。したがって、図の物理的環境には接続されたデバイスをコンピュータとして示しているが、このような図示は単に例示的なものであり、物理的環境はこれに代えてＰＤＡ、テレビジョン、ＭＰ３プレーヤなどの各種のデジタルデバイス、およびインタフェース、ＣＯＭオブジェクトなどのソフトウェアオブジェクトを備えるものと図示する、あるいは述べることもできる。
【００１９】
分散コンピューティング環境をサポートする各種のシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステムは、配線または無線システムにより、またローカルネットワークまたは広域分散ネットワークによりともに接続することができる。現在ネットワークの多くはインターネットに結合されているが、インターネットは広域分散コンピューティングのインフラストラクチャを提供し、多くの異なるネットワークを包含する。
【００２０】
家庭ネットワーキング環境では、電力線、データ（無線および配線両方）、音声（例えば電話）、および娯楽媒体など、各自が固有のプロトコルをサポートできる少なくとも４つの異種のネットワーク伝送媒体がある。照明のスイッチや電気器具など家庭用の制御装置の大半は、接続に電力線を使用することができる。データサービスは、広帯域（例えばＤＳＬやケーブルモデム）として住居に入り、住居内では無線（例えばＨｏｍｅＲＦまたは８０２．１１ｂ）または配線（例えばＨｏｍｅＰＮＡ、Ｃａｔ５、あるいは電力線でも）の接続を使用してアクセスすることができる。音声トラフィックは、配線（例えばＣａｔ３）または無線（例えば携帯電話）として住居に入り、住居内ではＣａｔ３配線を使用して分配することができる。娯楽媒体は、衛星またはケーブルを通じて住居に入ることができ、住居内では通例同軸ケーブルを使用して分配される。ＩＥＥＥ１３９４およびＤＶＩもメディアデバイス群のデジタル相互接続として台頭しつつある。こうしたネットワーク環境とプロトコル標準として出現する可能性のあるその他の環境をすべて相互接続して、インターネットを介して外部世界に接続できるイントラネットを形成することができる。要は、データの記憶と伝送のために各種の異なるソースが存在し、そのために今後コンピューティングデバイスにはデータ処理のパイプラインのあらゆる部分で内容を保護する方法が必要となる。
【００２１】
一般に、インターネットとは、コンピュータネットワーキング技術でよく知られるＴＣＰ／ＩＰプロトコルスイートを利用するネットワークおよびゲートウェイの集合を指す。ＴＣＰ／ＩＰは「Ｔｒａｎｓｐｏｒｔ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ」の頭字語である。インターネットは、ユーザがネットワークを通じて対話し、情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータによって相互接続された地理的に分散した遠隔コンピュータネットワークからなるシステムと表現することができる。そのように広域に普及した情報の共有により、これまでのところインターネットなどの遠隔ネットワークは、一般には、開発者が基本的に制約を受けずに特殊化された操作またはサービスを行うソフトウェアアプリケーションを設計することができるオープンシステムに発展してきた。
【００２２】
したがって、このネットワークインフラストラクチャにより、クライアント／サーバ、ピアツーピア、あるいはハイブリッドアーキテクチャなど多数のネットワークトポロジが可能になっている。「クライアント」とは、それが関連しない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーである。したがって、コンピューティングの際のクライアントは、別のプログラムによって提供されるサービスを要求するプロセス、大まかに言うと命令またはタスクの集合である。クライアントプロセスは、他のプログラムまたはサービス自体については作業の詳細を何ら「知る」必要なしに、要求したサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワークシステムでは、クライアントは、通例、例えばサーバなど別のコンピュータから提供される共有ネットワーク資源にアクセスするコンピュータである。図１Ａの例では、コンピュータ１１０ａ、１１０ｂなどをクライアントと考え、コンピュータ１０ａ、１０ｂなどをサーバと考えることができ、サーバ１０ａ、１０ｂなどがデータを保持し、そのデータがクライアントコンピュータ１１０ａ、１１０ｂなどで複製される。
【００２３】
通例、サーバは、インターネットなどの遠隔ネットワークを通じてアクセスできる遠隔のコンピュータシステムである。第１のコンピュータシステムでクライアントプロセスがアクティブであり、第２のコンピュータシステムでサーバプロセスがアクティブであることができ、通信媒体を通じて相互に通信することにより分散した機能を提供し、複数のクライアントがサーバの情報収集能力を利用することを可能にする。
【００２４】
クライアントとサーバは、プロトコル層によって提供される機能を利用して相互と通信する。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールドワイドウェブ（ＷＷＷ）との関連で使用される一般的なプロトコルである。通例はユニバーサルリソースロケータ（ＵＲＬ）またはインターネットプロトコル（ＩＰ）アドレスなどのコンピュータネットワークアドレスを使用してサーバコンピュータまたはクライアントコンピュータを相互に識別する。ネットワークアドレスは、ユニバーサルリソースロケータアドレスと呼ぶことがある。例えば、通信は通信媒体を通じて提供することができる。詳細には、高容量通信のためにＴＣＰ／ＩＰ接続を介してクライアントとサーバを相互に結合することができる。
【００２５】
したがって、図１Ａは、サーバがネットワーク／バスを介してクライアントコンピュータと通信する例示的なネットワーク環境あるいは分散環境を表しており、このような環境で本発明を用いることができる。より詳細には、複数のサーバ１０ａ、１０ｂなどは、ＬＡＮ、ＷＡＮ、イントラネット、インターネットなどの通信ネットワーク／バス１４を介して、本発明による携帯型コンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク対応機器、またはＶＣＲ、ＴＶ、オーブン、照明、暖房器具などの他の装置といった複数のクライアントデバイスまたは遠隔コンピューティングデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどと相互接続されている。このように、本発明は、それとの関係で信頼されるソースからのセキュアな内容を処理、記憶、あるいはレンダリングすることが望ましい任意のコンピューティングデバイスに適用することができる。
【００２６】
例えば、通信ネットワーク／バス１４がインターネットであるネットワーク環境では、サーバ１０は、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどがＨＴＴＰなどいくつかの知られるプロトコルを介して通信するウェブサーバであることが可能である。分散コンピューティング環境の特徴であるように、サーバ１０はクライアント１１０としてサービスを提供することも可能である。通信は適宜配線または無線でよい。クライアントデバイス１１０は、通信ネットワーク／バス１４を介して通信してもしなくともよく、独立した通信を関連付けてもよい。例えばＴＶまたはＶＣＲの場合、その制御にはネットワーク化された面があってもなくともよい。各クライアントコンピュータ１１０およびサーバコンピュータ１０は、各種のアプリケーションプログラムモジュールまたはオブジェクト１３５と、各種タイプの記憶要素またはオブジェクトへの接続またはアクセスとを備えることができ、記憶要素またはオブジェクトにはファイルを格納することができ、あるいはファイルの一部をダウンロードまたは移動することができる。このように本発明は、コンピュータネットワーク／バス１４にアクセスし、それと対話することができるクライアントコンピュータ１１０ａ、１１０ｂなどと、クライアントコンピュータ１１０ａ、１１０ｂなどおよび他のデバイス１１１およびデータベース２０と対話できるサーバコンピュータ１０ａ、１０ｂなどとを備えるコンピュータネットワーク環境で利用することができる。
【００２７】
例示的コンピューティングデバイス
図１Ｂと以下の説明では、本発明を実施できる適切なコンピューティング環境の簡単な概略的説明を提供する。ただし、本発明と関連した使用には、ハンドヘルド型、携帯型、および他のコンピューティングデバイスと、あらゆる種類のコンピューティングオブジェクトを企図している。下記では汎用コンピュータについて述べるが、これは一例に過ぎず、本発明は、ネットワーク／バスの相互動作性および対話を備えるシンクライアントで実施することもできる。したがって、本発明は、例えば電気器具内に配置されたオブジェクトなどクライアントデバイスが単にネットワーク／バスとのインタフェースとして機能するネットワーク環境など、関連するクライアントリソースが非常に少ないかあるいは最小限である、ホストされるサービスがネットワーク化された環境で実施することができる。基本的に、データを格納することができる、あるいはデータを取り出すまたはレンダリングできる場所であれば、本発明の認証技術の動作に望ましい、あるいは適した環境となる。
【００２８】
必須ではないが、本発明は、オペレーティングシステム、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して実施することができ、および／または本発明の認証技術を適用するためにインタフェースをとるアプリケーションソフトウェア中に含めることができる。各種の実施形態では、本発明は、下記のインタフェース技術および暗号化技術に準拠するハードウェアにも適用することができる。ソフトウェアは、クライアントワークステーション、サーバ、または他のデバイスなどの１つまたは複数のコンピュータで実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定タスクを実行する、または特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、各種の実施形態でプログラムモジュールの機能は必要に応じて組み合わせても分散させてもよい。さらに、当業者は、本発明は他のコンピュータシステム構成で実施できることを理解されよう。これらに限定しないが、本発明に使用するのに適する可能性のある他のよく知られるコンピューティングシステム、環境、および／または構成には、パーソナルコンピュータ、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な消費者家電製品、ネットワークＰＣ、電気器具、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワーク／バスまたは他のデータ伝送媒体を通じてリンクされた遠隔処理装置によってタスクを行う分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含むローカルおよび遠隔両方のコンピュータ記憶媒体にプログラムモジュールを置くことができ、クライアントノードはサーバノードとして振舞うことができる。
【００２９】
このように図１Ｂには本発明を実施できる適切なコンピューティングシステム環境１００の一例を示すが、上記で明らかにしたようにコンピューティングシステム環境１００は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について何らの制限を示唆するものではない。また、コンピューティング環境１００は、例示的動作環境１００に示す構成要素のいずれか１つまたは組合せに関連する依存性または必要性を有するものとも解釈すべきでない。
【００３０】
図１Ｂを参照すると、本発明を実施するための例示的システムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。これらに限定しないが、コンピュータ１１０の構成要素には、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む各種のシステムコンポーネントを処理装置１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、各種のバスアーキテクチャのうち任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数タイプのバス構造のいずれでもよい。これらに限定しないが、例としてこのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとも称する）が含まれる。
【００３１】
コンピュータ１１０は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によるアクセが可能な任意の利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能媒体の両方を含む。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶する任意の方法または技術に実装された不揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報の記憶に用いることができ、コンピュータ１１０によるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、搬送波または他の搬送機構などの変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方法でその特性の１つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、配線ネットワークまたは直接配線接続などの配線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組合せもコンピュータ可読媒体の範囲に含めるべきである。
【００３２】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間の情報伝達を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は通例ＲＯＭ１３１に記憶される。ＲＡＭ１３２は通例、処理装置１２０から即時のアクセスが可能な、および／または現在処理装置１２０によって操作中のデータおよび／またはプログラムモジュールを含む。これらに限定しないが、例として図１Ｂにはオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００３３】
コンピュータ１１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図１Ｂには、取り外し不能、不揮発性の磁気媒体の読み取りまたは書き込みを行うハードディスクドライブ１４１、取り外し可能、不揮発性の磁気ディスク１５２の読み取りまたは書き込みを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光媒体などの取り外し可能、不揮発性の光ディスク１５６の読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用できるこの他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通例インタフェース１４０などの取り外し不能のメモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通例インタフェース１５０など取り外し可能のメモリインタフェースによってシステムバス１２１に接続される。
【００３４】
上記で説明し、図１Ｂに示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０のその他のデータの記憶を提供する。例えば、図１Ｂではハードディスクドライブ１４１にオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７が記憶されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものでも異なるものでもよいことに留意されたい。ここではオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、それらが少なくとも異なるコピーであることを表すために異なる参照符号をつけている。ユーザは、キーボード１６２、および一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイス１６１などの入力装置を通じてコンピュータ１１０にコマンドと情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、システムバス１２１に結合されたユーザ入力インタフェース１６０を通じて処理装置１２０に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルポート（ＵＳＢ）など他のインタフェースおよびバス構造によって接続することも可能である。ノースブリッジなどのグラフィックインタフェース１８２もシステムバス１２１に接続することができる。ノースブリッジは、ＣＰＵすなわちホスト処理装置１２０と通信し、アクセラレイテッドグラフィックポート（ＡＧＰ）通信の責任を担うチップセットである。１つまたは複数のグラフィック処理装置（ＧＰＵ）１８４は、グラフィックインタフェース１８２と通信することができる。この点で、ＧＰＵ１８４は一般に、レジスタストレージなどのオンチップメモリストレージを含み、ＧＰＵ１８４はビデオメモリ１８６と通信する。ただし、ＧＰＵ１８４はコプロセッサの一例に過ぎず、したがってコンピュータ１１０には各種のコプロセッシングデバイスを含めることができる。モニタ１９１または他タイプの表示装置もビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に結合され、ビデオインタフェース１９０はビデオメモリ１８６と通信する。一般に脆弱なのはコンピューティングデバイスのこの部分であり、このため本発明は、それに伴って処理またはレンダリングされるデータの保護と機密性を提供する。コンピュータは、モニタ１９１に加えてスピーカ１９７やプリンタ１９６など他の周辺出力装置も含むことができ、それらは出力周辺インタフェース１９５を通じて接続することができる。
【００３５】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境あるいは分散環境で動作することができる。リモートコンピュータ１８０はパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノードでよく、図１Ｂにはメモリ記憶装置１８１しか示していないが、通例はコンピュータ１１０との関連で上に挙げた要素の多くまたはすべてを含む。図１Ｂに示す論理接続には構内ネットワーク（ＬＡＮ）１７１と広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワーク／バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００３６】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０はネットワークインタフェースまたはアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０は通例、インターネットなどのＷＡＮ１７３を通じて通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０との関連で図示したプログラムモジュールまたはその一部を遠隔のメモリ記憶装置に格納することができる。これに限定しないが、例として図１Ｂではリモートアプリケーションプログラム１８５をメモリ装置に常駐させている。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【００３７】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ
パーソナルコンピューティングとインターネットの集束（ｃｏｎｖｅｒｇｅｎｃｅ）の観点から、各種の分散コンピューティングフレームワークが過去から現在にわたり開発されている。個人ユーザとビジネスユーザにはともにアプリケーションおよびコンピューティングデバイスのためのシームレスな相互運用が可能でウェブに対応したインタフェースが提供され、コンピューティング活動は次第にウェブブラウザあるいはネットワーク指向になりつつある。
【００３８】
例えばＭＩＣＲＯＳＯＦＴ（登録商標）社の．Ｎｅｔプラットフォームは、サーバと、ウェブベースのデータ記憶やダウンロード可能なデバイスソフトウェアなどのビルディングブロックサービスを含む。．Ｎｅｔプラットフォームは一般に次を提供する。（１）あらゆる範囲のコンピューティングデバイスを協働させ、それらのデバイスすべてでユーザ情報を自動的に更新および同期する能力、（２）ＨＴＭＬではなくＸＭＬをより多く使用することによって可能になるウェブサイトの対話能力の増大、（３）例えば電子メールなど各種のアプリケーションやＯｆｆｉｃｅ．Ｎｅｔなどのソフトウェアを管理するための製品およびサービスへのカスタマイズされたアクセスと、中央の開始点からユーザへのその配信を特色とするオンラインサービス、（４）データストレージの集中化。集中化により情報へのアクセスと、ユーザ間およびデバイス間の情報同期の効率と容易さが高まる。（５）電子メール、ファックス、電話など各種の通信媒体を統合する能力、（６）開発者に対しては再使用可能なモジュールを作成し、それにより生産性を高め、プログラミングエラー数を低減する能力。および（７）その他多くのクロスプラットフォームの統合機能。
【００３９】
一般的に本明細書の例示的実施形態はコンピューティングデバイスに常駐するソフトウェアによって実装されるメソッドとの関係で説明するが、本発明の１つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラムインタフェース（ＡＰＩ）、あるいはコプロセッサと侵害されていないコンテンツの間の「仲介（ｍｉｄｄｌｅ　ｍａｎ）」オブジェクトを介して実装することもでき、信頼されるコンテンツサービスは、あらゆる．Ｎｅｔの言語およびサービスと、他の分散コンピューティングフレームワークによって行い、それらにおいてサポートし、あるいはそれらを介してアクセスすることができる。さらに、本発明により記載する技術の１つまたは複数は、この技術に適合させるためのＧＰＵの変更などハードウェアの変更を伴うことが可能であることが認識できる。
【００４０】
暗号によるセキュアコンテンツの保護
‘ＺＺＺ出願の信頼されるグラフィックスプラットフォームは、オペレーティングシステムあるいは任意のプラットフォームを増強して、改ざん防止性があり機密性のあるダイアログなどの「信頼されるグラフィック」アプリケーションを可能にし、無許可の複製に対して耐性のある方法でコンテンツの再生を可能にする方法およびシステムを提供する。本発明によって解決される問題を図２に示しており、ここでは暗号化されたプレミアムコンテンツ２００が信頼されるソフトウェアアプリケーションＴＳに渡されるか、あるいはアプリケーションＴＳによって生成される。信頼されるソフトウェアＴＳの使用に伴い、コンテンツ２００は、レンダリング装置２９５を介したコンテンツ２００のレンダリング（あるいはその他の使用）の前にＧＰＵ２６５の機能に関係する可能性がある。このようなコンテンツ２００は、ＧＰＵ２６５による処理のためにシステムメモリまたはホストメモリ２３０からビデオメモリ２６０に渡される。図２の点線は、セキュリティの問題がある個所を示している。「従来の技術」で述べたように、現在、点線で囲んだ要素を通じた保護された機密性のあるコンテンツの伝達を適切に保証するシステムはない。信頼されるソフトウェアＴＳから見ると、本発明によって解決される第１の問題は、コンテンツをＧＰＵに渡す前に点線内の構成要素にコンテンツを信頼して委ねられるかどうかということである。信頼されるソフトウェアＴＳが点線内の構成要素を適切に認証できると仮定すると、信頼されるソフトウェアＴＳの観点から見た、‘ＺＺＺ特許出願によって対処される第２の問題は、信頼されるソフトウェアＴＳは、データを点線内に渡した後にデータが変更されないことを適度に（ｒｅａｓｏｎａｂｌｙ）確信できなければならないことである。本発明は、下記の各種実施形態で両タイプの問題に対処する。初めに本発明による認証サービスを提供するシステムおよび方法について説明する。次いで、（１）オーバーレイサーフェスの内容を暗号化する、（２）信頼されないアプリケーションまたはパーティによる入手を可能にすることなく、ＧＰＵが暗号化された内容に作用することを可能にする、（３）コマンドバッファの内容を暗号化することにより、信頼されるグラフィックスプラットフォームの方法およびシステムを様々な形で実装する。
【００４１】
グラフィックスカードの認証
本発明によって対処される信頼されるグラフィックスの処理およびレンダリングの問題の第１の側面は、暗号（ｃｒｙｐｔｏｇｒａｐｈｉｃ）（本明細書では「ｃｒｙｐｔｏ」と称する場合もある）プロセッサの提供と、索引をつけたキーの管理に関連する。
【００４２】
この点で、セキュアなグラフィックスカードは自身がセキュアであることを認証できなくてはならない。詳細には、信頼されるソフトウェアは、セキュアなグラフィックスカードと、従来のグラフィックスカード、またはスプーフなどの不正（ｃｉｒｃｕｍｖｅｎｔｉｏｎ）装置を区別することができなくてはならない。また、信頼されるソフトウェアは、暗号鍵をグラフィックスカードに知らせることができなくてはならず、また鍵の受け取り側が実際にセキュアなグラフィックスカードであることを検証できなくてはならない。この目的のためにセキュアなグラフィックスカードは本発明による暗号プロセッサを備え、暗号プロセッサは認証と鍵の移送からなる暗号タスクを行う。
【００４３】
ハードウェアに関しては、製造の際に個別設定され保証された暗号プロセッサが本発明により提供される。各暗号プロセッサは、解読用の一意の秘密鍵Ｋｐｒｉｖを含む。本発明により多くの異なる暗号および解読のアルゴリズムが企図され、暗号技術の当業者に知られるが、文脈上ここに記載するアルゴリズムはＲＳＡであり、鍵長は１０２４ビットである。いずれも非制限的な設計上の選択であり、応用例と必要とされるセキュリティレベルに応じてよく知られるトレードオフに従って調整することが可能である。
【００４４】
これに関して、暗号プロセッサは、既存のチップに追加するか、あるいは別個のチップとしてカードに追加することにより恒久的にグラフィックスカードに取り付ける。暗号プロセッサは、下記でより詳細に説明するように公開鍵の暗号アルゴリズムを実装し、一意の秘密鍵を隠蔽する。これに関して、このような暗号プロセッサは現在のシリコン技術により公開鍵の解読を迅速に行うことができる。ただし、暗号プロセッサは、公開鍵アクセラレータを含むこともでき、また対称暗号（ＡＥＳ）と何らかの制御ロジックを実装することができる。
【００４５】
非制限的な例示的実施形態では、暗号プロセッサは次の揮発性レジスタを含む。（１）セッションキー用の２５６ビットレジスタＳ。この鍵の寿命は通例信頼されるソフトウェアの実行時間である。（２）複数のインデックスキーの配列。各キーは１２８ビット長でよいが、他の選択が適切な場合もある。各キーは特定のウィンドウと関連付けられ、グラフィックスカードがそのウィンドウの内容を解読するために使用する。各キーの寿命は、信頼されるソフトウェアの命令によって決まる。
【００４６】
上述のように、本発明の暗号プロセッサは恒久的にグラフィックスカードに取り付ける。したがって、その機能を利用するために暗号プロセッサとセキュアにインタフェースをとる手段が必要とされる。暗号プロセッサとのインタフェースに関して本発明は、（ａ）信頼されるソフトウェアＴＳとの外部インタフェース、および（ｂ）ＧＰＵ２６５とのインタフェース、という少なくとも２つの技術を検討する。前者のインタフェースは、少なくともその暗号に関する面で標準化しなければならない。後者のインタフェースは実装固有にすることができるが、下記の指針すべてに準拠すべきである。
【００４７】
外部インタフェースの実装に関して、外部インタフェースは、認証および鍵の移送に秘密鍵（ＰＫ）暗号化プロトコルを使用する。このプロトコルでは、信頼されるソフトウェアＴＳは暗号プロセッサの公開鍵を用いてセッションキーを暗号化する。暗号プロセッサはその結果得られるｃｒｙｐｔｏｂｌｏｂを受け取り、自身の秘密鍵でそれを解読してセッションキーを得る。この結果、信頼されるソフトウェアと暗号プロセッサは秘密を共有することになる。信頼されるソフトウェアはそのセッションキーを使用して暗号プロセッサに命令を送ることができる。
【００４８】
非制限的な一実施形態では、暗号プロセッサにより次の関数を通じて外部インタフェースを公開する。
【００４９】
関数ＳｅｔＳｅｓｓｉｏｎＫｅｙ（）は、最初の認証ステップと鍵の移送を行う。この関数は、暗号プロセッサの公開鍵機能にアクセスする唯一の関数である。したがって、一実施形態では、本発明はブートごとに１回この関数を呼び出すことを企図する。次の例示的な擬似コードは、ＳｅｔＳｅｓｓｉｏｎＫｅｙ（）の非制限的な実装を表す。
2004007603.tif 000003
この操作が無事完了すると、ｓｅｓｓｉｏｎＫｅｙレジスタは、ｃｒｙｐｔｏｂｌｏｂから得た２５６ビット鍵などの鍵を含んでいる。この公開鍵アルゴリズムは、例えば１０２４ビットのＲＳＡである。
【００５０】
信頼されるソフトウェアと暗号プロセッサの間に対称のセッションキーＫが確立されると、その鍵を使用して以降の暗号プロセッサとの通信をすべてセキュアにすることができる。信頼されるソフトウェアと暗号プロセッサは単純なＧｅｔメソッドおよびＳｅｔメソッドを用いて通信することができ、これらのメソッドのパラメータは暗号により機密性と保全性が保護される。詳細には、各呼び出しのパラメータブロックＢは次の非制限的な方法で処理することができる。
【００５１】
ＡＥＳ（Ｍ　｜　ＨＭＡＣ（Ｍ，　Ｋ１），　Ｋ２）
ここでＫ１はＫの最初の半分（ビット０〜１２７）であり、
Ｋ２はＫの後半分（ビット１２８〜２５５）であり、
ＡＥＳ（Ｍ，Ｋ）は、ＣＢＣモード、ＡＥＳにより鍵ＫでメッセージＭを暗号化した結果であり、
ＨＭＡＣ（Ｍ，Ｋ）は、適切なハッシュ関数により鍵ＫでメッセージＭのＨＭＡＣを計算した結果であり、
Ａ｜Ｂは、ＡとＢを連結した結果である。
【００５２】
このフォーマットは、次の関数の入力パラメータと出力パラメータに使用することがで
きる。
【００５３】
Ｓｅｔ（［ＩＮ］ＢＯＯＬ　ｎｅｅｄｓＡｃｋ，　［ＩＮ］ＢＩＴＳ１２８　ｎｏｎｃｅ，　［ＩＮ］ＥＮＵＭ　ｐｒｏｐｅｒｔｙＩＤ，　［ＩＮ］ＢＹＴＥＳＥＱＵＥＮＣＥ　ｐｒｏｐｅｒｔｙＰａｒａｍｅｔｅｒｓ，［ＯＵＴ］ＢＹＴＥＳＥＱＵＥＮＣＥ　ａｃｋ）
ここでｎｅｅｄｓＡｃｋはブール値であり、信頼されるソフトウェアは肯定応答が必要かどうかをこの値で示すことができる。
【００５４】
ｎｏｎｃｅは信頼されるソフトウェアによって選択される１２８ビット値である。ｎｏｎｃｅは、肯定応答が必要とされた場合には肯定応答中で使用することができる。
【００５５】
ｐｒｏｐｅｒｔｙＩＤは、設定されているプロパティを識別する。サポートされるプロパティの例示的なリストを下の表１に示す。
【００５６】
ｐｒｐｅｒｔｙＰａｒａｍｅｔｅｒは、各ｐｒｏｐｅｒｔｙＩＤに固有のパラメータシーケンスである。
【００５７】
そしてＡｃｋはこの操作の肯定応答である。暗号プロセッサは、ｎｅｅｄｓＡｃｋが設定されている場合に限りａｃｋを生成する。Ａｃｋは、ｎｏｎｃｅとその後に続くメッセージからなり、各ｐｒｏｐｅｒｔｙＩＤに固有である。
【００５８】
【表１】
2004007603.tif 000004
【００５９】
インデックスキーのプロパティＩＤについて、このメソッドはインデックスで識別されるキーレジスタに新しい鍵と目的タグを書き込む。
【００６０】
出力ロックのプロパティＩＤについて、このメソッドは出力ロックフラグをセットする。このフラグがセットされているときには、画面ジオメトリ（幅、高さ、色の深み、リフレッシュ速度）と、グラフィックスカード出力（ＶＧＡ、ＤＶＩ）を変更することができない。詳細には、グラフィックスカードは、出力ロックフラグがセットされている間はこれらの設定を変更する命令を実行しない。
【００６１】
Ｌ２ＫｅｙＭｇｍｔプロパティＩＤについて、このメソッドは、本発明により記載する第２の保護層で鍵の更新頻度を設定する。すなわち、下記でより詳細に述べるように入力と出力を暗号化する。
【００６２】
同様にＧｅｔ関数を次のように提案する。
Ｇｅｔ（［ＩＮ］ＢＩＴＳ１２８　ｎｏｎｃｅ，　［ＩＮ］ＥＮＵＭ　ｐｒｏｐｅｒｔｙＩＤ，　［ＩＮ］ＢＹＴＥＳＥＱＵＥＮＣＥ　ｐｒｏｐｅｒｔｙＰａｒａｍｅｔｅｒ，　［ＯＵＴ］ＢＹＴＥＳＥＱＵＥＮＣＥ　ｒｅｓｐｏｎｓｅ）
ここでｎｏｎｃｅは、信頼されるソフトウェアによって選択される１２８ビット値であり、応答で使用される。
【００６３】
ｐｒｏｐｅｒｔｙＩＤは設定されているプロパティを識別する。サポートされるプロパティの一覧を下の表２に示す。
【００６４】
ｐｒｏｐｅｒｔｙＰａｒａｍｅｔｅｒは、各ｐｒｏｐｅｒｔｙＩＤに固有のパラメータシーケンスである。
【００６５】
応答にはこの演算の結果が含まれる。応答はｎｏｎｃｅと後に続くメッセージからなり、各ｐｒｏｐｅｒｔｙＩＤに固有である。
【００６６】
【表２】
2004007603.tif 000005
【００６７】
出力ポートについて、このメソッドは例えばＶＧＡやＤＶＩなどグラフィックスカード出力の設定を戻す。
【００６８】
認証コードについて、このメソッドは本発明により記載する第１の保護層によるウィンドウ内容のハッシュ、すなわちオーバーレイの暗号化を戻す。
【００６９】
ＤＸ−ＳＥＣバージョンについて、このメソッドはグラフィックスカードによってサポートされるＤＸ−ＳＥＣのバージョンを戻す。
【００７０】
セキュアなサーフェス数について、このメソッドはグラフィックスカードによってサポートされるセキュアなサーフェスの数を戻す。
【００７１】
重なったサーフェスの数について、このメソッドはグラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す。
【００７２】
プライマリタイプについて、このメソッドは１を戻し、将来の柔軟性を提供する。
【００７３】
ジオメトリについて、このメソッドはプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻す。
【００７４】
Ｓｅｔ関数はさらに、保護される領域オーバーレイの位置またはサイズ、または解読すべき主要（プライマリ）サーフェスの小部分の位置およびサイズを設定するメソッドを含むことができる。
【００７５】
したがって上述のＳｅｔＳｅｓｓｉｏｎＫｅｙ関数、Ｇｅｔ関数およびＳｅｔ関数は、外部インタフェースの非限定的な実施形態に関連する。用語「内部インタフェース」とは、暗号プロセッサとグラフィックスカードの残りの部分とのインタフェースを指す。本発明によるこの種のインタフェースの詳細は各個々のグラフィックスカードの実装に至り、次の制約を課す。（１）暗号プロセッサは恒久的にグラフィックスカードに固定すべきである。（２）暗号プロセッサとグラフィックスカードの残りの部分との接続は公開すべきでない。
【００７６】
これに関して、グラフィックスカードからの暗号プロセッサの除去は些細ではない。暗号プロセッサを別個のチップとして実装する場合、それは主に暗号プロセッサをグラフィックスカードに取り付ける機械インタフェースに対する制約になる。通例、暗号プロセッサはグラフィックスカードにはんだ付けすべきである。あるいは、暗号プロセッサはメインのＧＰＵと同じチップ上にあってもよい。例えばスマートカードリーダ、ソケットマウントなど、暗号プロセッサの取り外しが可能な標準化機械インタフェースの使用は認められない。
【００７７】
さらに、暗号プロセッサとグラフィックスカードの残りの部分の物理接続はアクセスが可能であってはならず、標準インタフェースを通じて公開してはならない。例えばこのバスにＵＳＢコネクタをとりつけることは本発明では容認できない。
【００７８】
キー管理の規則に関して、各インデックスキーはその関連付けられた目的パラメータに従ってのみ使用することができる。一実施形態では、目的パラメータの値は次の意味を持つ。
【００７９】
Ｌ１ＳＴＲＥＡＭ：このキーは、本発明により提供される第１のセキュリティ層、すなわちオーバーレイの暗号化との関連で下記のＤＸ−ＳＥＣストリーム暗号にのみ使用することができる。
【００８０】
Ｌ２ＢＬＯＣＫ：このキーは、本発明により提供されるＥＣＢモードの第２のセキュリティ層、すなわち下記の入力および出力の暗号化で、ブロック暗号にのみ使用することができる。ＥＣＢモードのブロック暗号は、信頼されるソフトウェアによって書かれたテクスチャブロックの解読に使用される。
【００８１】
これに関して、インデックスに新しい値が入れられた際にはこれらのキーのコピーは保存すべきでない。
【００８２】
この代替のキー確立機構は、キーの移送のためにプラットフォームハードウェア中に構築された信頼される経路である。例えば、セキュアなグラフィックスカードの認証を要求するソフトウェアまたはハードウェアが、信頼されるプラットフォームでは例えばアドレス０ｘ１２３４５６７８への書き込みは常にビデオカードのキーストアにマッピングされることが保証されることを事前に知っている場合には、この「閉じたパス」を代わりに利用できるので、暗号プロセッサがセッションキーをセキュアに送る必要はない。この代替方法では、小規模のセキュアな通信機構を使用して大容量のセキュアチャネルをブートストラップすることができる。このようなセキュアな通信機構は低帯域幅接続などである。
【００８３】
さらなる実装は、大容量のデータ移送機構の保護である。例えば下記のセキュアなオーバーレイシステムでは、セキュアなアプリケーションまたはデバイスは保護された経路を使用してビデオデータを直接ビデオカードに送る（ここで行うセキュアなキー交換ステップをａ）暗号プロセッサ、またはｂ）上述のキー交換用のセキュアな経路の使用により回避する）。
【００８４】
‘ＺＺＺ特許出願に記載されるような信頼されるグラフィックスプラットフォームについて下記で述べるが、これは暗号化されたオーバーレイ、暗号化された入力および出力、および暗号化されたコマンドバッファを含む。下記でこのような信頼されるグラフィックスプラットフォームについて例示の目的で説明するが、本発明の認証技術は信頼されるグラフィックスプラットフォームの各種の実装に適用できることを理解されたい。
【００８５】
第１のセキュリティ層−暗号化されたオーバーレイ
ビデオメモリはＣＰＵで実行される信頼されないソフトウェアによってマッピングし、読み取ることができるので、ビデオメモリは平文形態の情報を含むことができない。この要件が求められるビデオメモリには、ディスプレイのリフレッシュに用いられるビデオメモリが含まれる。この条件を満たすシステムの初期の実装では、オーバーレイサーフェスの内容を暗号化する。そしてオーバーレイは、画像をディスプレイに送る際に、ＤＡＣハードウェアによってその場で（ｏｎｔｈｅ　ｆｌｙ）解読されるか、あるいはＤＡＣハードウェアに到達する直前に解読される。
【００８６】
図３Ａにそのような技術の例示的実装を示す。信頼されるソフトウェアアプリケーション２１０に付随して発見あるいは生成された場所に関係なく、暗号化されたプレミアムコンテンツ２００は信頼されるアプリケーション２１０によって受け取られる。続いて、暗号を用いるかまたは他の手段で保護された経路を介して、上記の例示的実施形態で述べた認証交換手順、あるいは他のセキュアなキー伝達技術により、暗号プロセッサ２２０との認証交換が行われる。コンテンツ２００はシステムメモリ２３０から暗号化されたオーバーレイサーフェス２４０へと進み、オーバーレイサーフェス２４０はビデオメモリ２６０のプライマリサーフェス２７０を重ねる。ＧＰＵ２６５の解読部分２５０は、暗号プロセッサ２２０と連携して暗号化されたオーバーレイ２４０から提供された暗号化層を解読し、その内容をデジタルビデオインタフェース（ＤＶＩ）への出力のためにピクセル選択２８０に、モニタなどのレンダリング装置への出力のためにＤＡ変換器２９０に渡す。ただし、オーバーレイが１つしかないので図３Ａに示すシステムは上述のすべての基準を満たすわけではない。信頼されるウィンドウなど信頼される環境に必要とされる最小限のｂａｒの機能性を満たすために、代替実施形態では２つのオーバーレイを可能にする。第１の「機密」オーバーレイは基本的に主としてビデオ再生のために現在のプラットフォームに存在するオーバーレイであり、その内容を暗号化できるように強化する。第２のオーバーレイは、特に電子商取引のダイアログなど機密情報を扱うユーザインタフェースの提示に専用のものである。この「保護されたオーバーレイ」は常に一番上にあり、隠蔽が不可能である。すなわちカラーキーイングがなく、第１のオーバーレイよりも優位である。第２のオーバーレイには、コストを最小に抑えるためにある制限を加える場合がある。例えば、第２のオーバーレイは、データがプライマリと同じピクセルフォーマットであり、伸張あるいはマルチバッファリングできないように提供することができる。また、保護されるオーバーレイの内容はハードウェアによって検証することができる。表３に、機密オーバーレイと保護されるオーバーレイの例示的な違いをまとめる。
【００８７】
【表３】
2004007603.tif 000006
【００８８】
図３Ｂに、例えば機密オーバーレイフリッピングチェーン３１０のオーバーレイ３１０ａ、３１０ｂ、および３１０ｃと、保護されるオーバーレイ３２０の両方を含むシステムを示す。可能な場合には、ブロック暗号よりも実装が速く単純なのでセキュアサーフェスの暗号化にはストリーム暗号を使用する（さらなる詳細を付録Ａに示す）。ストリーム暗号では「ストリーム中のバイト位置」に基づいてデータを暗号化する。したがって、第１のセキュリティレベルでは、サーフェスの左上隅でピクセル暗号化キーによりストリーム暗号を初期化する。ストリーム暗号は、そのピクセルが表示されるかどうかに関係なく、オーバーレイサーフェス内に含まれるすべてのピクセルについて進行させる。ここで提案するシステムは、それぞれ機密オーバーレイ用と保護されるオーバーレイ用の２つのストリーム暗号解読コンポーネント３００ａおよび３００ｂを含む。解読されたピクセル値が入手できる状態になると、ハードウェア２８０は、保護されるオーバーレイ３２０、機密オーバーレイ３１０（プライマリ２７０が色キーに等しい、および／またはカラーキーイングが可能である場合）、またはプライマリ２７０のピクセル値を選択し、ＤＶＩ／ＤＡＣ２９０を介してそのピクセル値を表示ハードウェアに送る。
【００８９】
攻撃者によって書き込まれるデータも解読されるので、攻撃者が任意数の手段によりオーバーレイへのアクセス権を得、それにより表示画像を不可視にするか、あるいはセキュアコンテンツを雑音のある内容に置き換えることが可能であることに留意されたい。ここで説明中の信頼されるグラフィックスプラットフォームは、こうした攻撃に対して直接防御することはしないが、保全性チェックにより予想されるコンテンツがエンドユーザに提示されたことを保証できるようにする。したがって、出力が入力以外のものである場合には、コンテンツの改ざんがあったことをユーザまたは信頼されるソフトウェア２１０に警告することができる。
【００９０】
オーバーレイとのソフトウェアインタフェースに関して、ソースおよびデスティネーションのバウンディングボックスやデスティネーションカラーキーなど通常のオーバーレイ情報の他に、機密オーバーレイ３１０は暗号鍵インデックスの指定を求め（ｍａｉｎｔａｉｎ）、保護されるオーバーレイ３２０はさらに、解読されたオーバーレイ内容の巡回冗長コード（ＣＲＣ）を書き込むべきメモリ位置の指定を求める。
【００９１】
機密オーバーレイインタフェースは、オーバーレイバックバッファ３１０ａ、すなわちデータをフリップしているバッファの内容の暗号鍵インデックスをフリップメソッドが指定することを除いては既存のオーバーレイと同様である。
【００９２】
保護されるオーバーレイのインタフェースはより単純であり、サーフェスが最初に表示された後にそのサーフェスのＣＲＣをあるメモリ位置に転送させる。標準化されたハードウェアインタフェースでオーバーレイの位置を制御し、関係するソフトウェアがポーリング方法でＣＲＣを入手できるようにする。例えばＣＲＣが入手可能であるかどうかをあるレジスタで示し、別のレジスタでＣＲＣの読み出しを可能にすることができる。例えば、保護されるオーバーレイのインタフェースとの関連で次の例示的な擬似コードを利用することができる。
ＨＲＥＳＵＬＴ　ＵｐｄａｔｅＯｖｅｒｌａｙ（ＬＰＰＯＩＮＴ　ｐｐｎｔＵＬ）；
ここでｐｐｎｔＵＬは保護されるオーバーレイの左上隅を指定する。
【００９３】
これに関して、ソフトウェア２１０は保全性に関連する場合には予想されるＣＲＣ値を計算する。
【００９４】
第２のセキュリティ層−暗号化された入力および出力
ＧＰＵ２６５を強化して暗号化された内容を入力として扱い、暗号化した内容を出力として放出させるために、テクスチャマッピングユニット（入力側）とアルファブレンディングユニット（出力側）に暗号化および解読のハードウェアを追加し、ハードウェア設計者はこの機能を実装する際にいくつかの規則に従うように連携する。ストリーム暗号では暗号化データへのランダムアクセスが可能でないので、このシステムではブロック暗号を使用して例えば一度に１２８ビットずつデータを暗号化する。テクスチャマッピングユニットはキャッシュラインフィルの際に解読を行い、アルファブレンディングユニットはカラーバッファからキャッシュラインを読み出す際に解読を行い、書き込みの前に暗号化を行う。これらの動作で使用する暗号鍵は異なってよい。
【００９５】
ビデオ復号など３Ｄレンダリング以外の計算タスクは、上述のパラダイムを単純に拡張したものである。テクスチャに代えてビデオマクロブロックが暗号化された入力となり、カラーバッファに代えて復号される出力フレームが暗号化された出力となる。コマンドストリームにより帯域内でＧＰＵ２６５に送る際に内容を保護すべき場合に、コマンドバッファもどのように暗号化できるかについて次いで説明する。
【００９６】
図４Ａに、暗号化および解読コンポーネント４４０を介して、入力として暗号化されたサーフェス４２０を受け取り、出力として暗号化されたサーフェスを放出するフロントエンド動作、すなわち暗号化テクスチャとカラーバッファ技術のフロントエンドを行う上述のシステムを表す。さらに暗号化されたテクスチャ４００ａが提供され、これに対してテクスチャ４００ｂはビデオメモリ２６０の典型的なテクスチャである。暗号化テクスチャ４００ａはＧＰＵ２６５の解読コンポーネント４５０に出力され、解読コンポーネント４５０は暗号プロセッサ２２０と協働してテクスチャを解読し、コンポーネント４４０からの解読済みデータにコンポーネント４３０ａを用いてシェーディングなどのグラフィックアルゴリズムを適用する。
【００９７】
合成されたページフリッピングデスクトップの展開を見込んで、ＤＡＣハードウェアがプライマリ２７０ならびに上述のオーバーレイサーフェス３１０および３２０を解読できるとすると、上記の図４Ａのシステムはデスクトップ全体を保護することができる。このような場合、ＤＡＣハードウェアはストリーム暗号ではなくブロック暗号を使用して解読することに留意されたい。このようなシステムでは任意数の機密サーフェスをデスクトップに加えることができ、セキュリティを犠牲にすることなく任意のＺオーダリング、ブレンディング、あるいは３Ｄ、あるいは他の効果をそのサーフェスに適用することができる。常に一番上になければならず、その内容が検証可能でなければならない保護されるオーバーレイサーフェス３２０は、別のサーフェス内に存在する。上述の機密オーバーレイ３１０は、セキュアなページフリッピングデスクトップまたはプラットフォームによってソフトウェアでエミュレートすることが可能になるまで存続する。
【００９８】
一実施形態では、このシステムでは、プライマリ２７０を解読できることに加えて、ＧＰＵ２６５が信頼されるワードプロセッサなど通常のデスクトップアプリケーションによる平文を暗号化できることが必要とされ、そのアプリケーションをデスクトップに加えられるようにする。図４Ｂにそのようなシナリオを示し、ここではフロント５１０ａおよびバック５１０ａを含むプライマリフリッピングチェーン５１０を暗号化する。したがってプライマリサーフェスは、それぞれ、デスクトップコンポジタ４３０による作用を受け、そのサーフェスからの出力／サーフェスへの入力を暗号化／解読コンポーネント４４０ａによって保護することができる。そして解読コンポーネント５００は暗号プロセッサ２２０と通信して、ＤＶＩ／ＤＡＣ２９０に出力するためにフロントサーフェス５１０ｂを解読する。これによりシステムがあるタイプの攻撃にさらされるが、それについてはセキュリティの保証との関係で下記で詳細に説明し、その攻撃から防御するためのいくつかの戦略を検討する。
【００９９】
図４Ｃに図４Ｂの代法を示し、この場合には機密オーバーレイフリッピングチェーン３１０への転換（ｔｒａｎｓｃｒｉｐｔｉｏｎ）を行っている。したがって、プライマリ２７０を暗号化する代わりに、ハードウェアは機密オーバーレイハードウェア３００ａによる消費のためにストリーム暗号による暗号化を可能にすることができ、ハードウェア３００ａは暗号プロセッサ２２０と協働してストリーム暗号データを解読することができる。このプレゼンテーション機構はブロック暗号でプライマリを暗号化するのに比べてコストが低い可能性があるが、設計上のトレードオフとしてブロック暗号ほどスケーラブルでない、あるいは柔軟性がない可能性がある。機密オーバーレイ３１０は暗号化にストリーム暗号を使用するので、この状況をサポートする妥当な操作は、入力サーフェス５１０ａのブロック暗号を使用して解読コンポーネント４４０ｂで入力を解読し、オーバーレイのストリーム暗号を使用してコンポーネント４４０ｂで再度暗号化する「コピー」操作である。
【０１００】
これらの実施形態およびその各種の組合せは、例えば、任意数の平文入力を暗号化された入力と組み合わせて暗号化された出力を生成できるとすると一度に１つの暗号化入力で足りる場合に有用である。
【０１０１】
持続性のあるセキュリティに関しては実装が可能ないくつかの措置がある。第１に、上述の第２のセキュリティ層は、平文は一旦解読されるとＧＰＵ２６５の外部に漏れることはないという発想に依拠している。例えば、ホストの中央演算処理装置（ＣＰＵ）がチップから平文を読み出すことを可能にするデバッグレジスタやその他の機構は存在しない。そのような漏洩を防止する入念なハードウェア設計に加えて、ＧＰＵ２６５の命令セットは、出力の暗号化も可能にすることなく入力の解読を可能にすることはできない設計になっている。さらに、このハードウェアは、不正な（ｒｏｇｕｅ）ドライバや攻撃コードによる、あるいは偶発的な平文データの漏洩を防止する。
【０１０２】
さらにハードウェアはキーを漏洩してもいけない。認証交換に関して述べた暗号プロトコルを介してＧＰＵ２６５にキーが伝えられると、キーを入手できるのは暗号化コンポーネントと解読コンポーネントだけになる。
【０１０３】
上述のように、ＧＰＵ２６５がプライマリ２７０に表示するために平文を暗号化できる場合には、その暗号化機能が、攻撃者が平文とそれに対応する入手可能な暗号文を同時に得られる唯一の上述の機構となるので、その機能はシステムの脆弱性とみなされる。攻撃者は、ＣＰＵから見えるようにプライマリサーフェスをマッピングし、暗号化しなければならないウィンドウを作成することにより、知られている平文ブロックに対応する暗号文ブロックのサブセットを構築することができる。こうしたいわゆる「辞書攻撃」は、「関心を引く」ブロックの数が少ない場合にもっともうまくいく。例えば、３２ｂｐｐの表示モードで白黒のダイアログボックスを表示するには、ブロック１つにつき４ピクセルあるので、そのようなダイアログを表示するには１６のブロックがあればよい。１６個の暗号文ブロックを発見した攻撃者にとって可能な手段の１つは、ＧＰＵ２６５による解読後にも有意味の内容を作成することによりエンドユーザに対してダイアログを偽造するものである。この理由から、保護されるオーバーレイは、エンドユーザが予想した内容を見なかった際にアプリケーションがそれを検出することを可能にするので、改ざん防止性のあるダイアログに最も適している。
【０１０４】
したがって、辞書を作成しようとする攻撃者を失敗させる２つの好適な戦略があることになる。第１に、辞書は所与のキーに対してのみ有効なので、キーを変更し、内容を再度暗号化すると攻撃者は新しい辞書でやり直さざるを得なくなる。さらにプライマリの暗号化のために、ソフトウェアがキーを入手できるようにする必要はない。キーはハードウェアにロールイン（ｒｏｌｌ　ｉｎ）することができ、ソフトウェアにはキーが変わったことを通知するだけでよい。前のキーはなお入手することができるので、ソフトウェアは前のキーを使用して変更のないプライマリの部分を解読し、再度暗号化することができる。したがって、暗号プロセッサ２２０は、例えば暗号鍵インデックスのダブルバッファリングなどにより前の鍵をなお入手可能にしておく方法で、また鍵がロールされたことをソフトウェアに通知するような方法で、周期的にプライマリ２７０の暗号鍵をロールする。
【０１０５】
別の戦略は、暗号化の前に画像中の位置を符号化するものである。例えば、暗号化する前に画像中の（ｘ，ｙ）ピクセル位置（または画像オフセットなどの何らかの派生値）の排他的論理和（ＸＯＲ）を取ってピクセルデータにすることができ、解読後にこの操作を解除することができる。この結果異なるサーフェス領域内のピクセルのブロックが別々に暗号化され、平文と暗号文のマッピングは、攻撃者には入手できないサーフェス中の所与の位置についてのみ有意味になる。
【０１０６】
所定のスウィズルフォーマットも提供される。テクスチャとオフスクリーンサーフェスにはランダムアクセスが必要なので、これらはブロック暗号で符号化しなければならない。例えばキャッシュラインとブロックサイズがともに１２８ビットである場合には、ブロック暗号の一般的なブロックサイズと、現在の３Ｄアクセラレータの典型的なキャッシュラインサイズとの間に好適な相乗作用があり、効率的な暗号化と解読をハードウェアで実装することができる。わずかな差がある場合（例えばブロックサイズが１２８ビットでキャッシュラインサイズが２５６ビットなど）でも、このハードウェア実装は効率的である可能性が高い。
【０１０７】
暗号化されたテクスチャデータに伴う問題の１つは、ブロック暗号化方法では隣接するバイトブロックが入手できないとそれを暗号化または解読することができず、キャッシュラインフィルではピクセルデータを「スウィズル」すること、すなわち、キャッシュラインフィルで２Ｄのピクセル領域が得られるように画像中の（Ｘ，Ｙ）位置からアドレスへの変換を形成することが必要とされる点である。現在までのところ、ハードウェアベンダは、アプリケーションには知らせずに表向きは線形のサーフェスフォーマットを公開し、一方画像データはスウィズルしている。しかし信頼されるソフトウェアは暗号化されたテクスチャデータを放出するので、隣接するデータブロックを暗号化し２次元の局所性を保持できるように、スウィズル方法のアプリオリの知識を備えていなければならない。これに従って、アプリケーションが使用するために、ＹＵＶ４：４：４、４：２：２、および４：２：０、ならびにＲＧＢフォーマットを含むスウィズルした画像フォーマットの辞書が定義される。これらのフォーマットの性能は、画像がハードウェア固有のフォーマットにスウィズルされた場合ほどは高くない可能性があるが、暗号化にはわずかな性能の低下が見られ、すなわち速度と引き換えにセキュリティが低下する。
【０１０８】
ＡＹＵＶ／ＡＲＧＢ（３２ｂｐｐ、パックト）に関して、この３２ｂｐｐのサーフェスフォーマットは、輝度（Ｙ）およびクロミナンス（ＵおよびＶ）サンプルの８ビットのカラーチャンネルに加えてアルファチャンネルを含む。あるいは、両フォーマットとも３２ｂｐｐでパックされているので、このフォーマットは標準的なＡＲＧＢ　３２ｂｂｐを含むこともできる。以下の説明ではＡＹＵＶを想定する。線形の配置は図５Ａに示すとおりである。
この画像中のピクセル（Ｘ，Ｙ）のオフセットは次である。
オフセット＝Ｙ＊Ｐｉｔｃｈ＋Ｘ＊４
１２８ビットの暗号化ブロックサイズおよびキャッシュラインサイズを想定すると、１ブロックに４ピクセルが入る。アドレスを生成する前にＸおよびＹの最下位ビットをインタリーブすると、キャッシュラインフィルの際の２Ｄの局所性が改善される。フォーマットに従ってこれらのブロックを線形に配置する。
【０１０９】
その結果得られる画像配置を図５Ｂに示す。番号をつけた各長方形はピクセルであり、太線の長方形は暗号化されたブロックである。画像中の（ｘ，ｙ）位置をオフセットに変換するこのフォーマットのスウィズル関数の例示的擬似コードは次である。
【０１１０】
2004007603.tif 000007
【０１１１】ＹＵＹ２（１６ｂｐｐ、パックト）について、このサーフェスフォーマットは水平方向に「クロミナンス」サンプルＵおよびＶを２分の１でサブサンプリングする。この結果は、１ピクセルが平均１６ビットのパックされた画像フォーマットである。この線形の配置を図６Ａに示す。図６Ｂに示すように、スウィズルフォーマットは４ｘ２ピクセルの暗号化ブロックを割り当てる。図５Ａおよび５Ｂと同様に、１２８ビットブロックもスウィズルされている。図６Ｂと、（ｘ，ｙ）座標のペアを画像オフセットに変換する下記の例示的なスウィズルの擬似コードでは、ＵおよびＶが偶数個のＸ座標を有すると想定することに留意されたい。
【０１１２】
2004007603.tif 000008
2004007603.tif 000009
【０１１３】
これに関して、図５Ａ、５Ｂ、６Ａ、および６Ｂのスウィズルに伴う擬似コードでは、サーフェスピッチは、１２８ビットブロックのスキャンライン当たりのバイト数として定義される。
【０１１４】
パックされたプラナ（１２ｂｐｐ）に関して、このサーフェスフォーマットは水平方向および垂直方向にＵおよびＶを２分の１でサブサンプリングする。輝度およびクロミナンスのサンプルは、サーフェスの２つの別個の部分に配置される。パックされたプラナ（１２ｂｐｐ）の線形の配置を図７Ａに示す。
【０１１５】
サーフェスピッチは、Ｙ平面の５１２ビットブロックのスキャンライン当たりのバイト数として定義される。サンプルの数は１／４であるがサンプル当たりのカラー要素の数は２倍なので、ＶＵ平面のピッチはＹ平面のピッチの半分になる。この結果得られるスウィズルした画像フォーマットを図７Ｂに示す。
【０１１６】
（ｘ，ｙ）座標をＹ、Ｕ、およびＶ要素のオフセットに変換するこのフォーマットのスウィズル関数の例示的な擬似コードは次である。
【０１１７】
2004007603.tif 000010
2004007603.tif 000011
【０１１８】
第３のセキュリティ層−暗号化されたコマンドバッファ
第１および第２のセキュリティ層についての上述の実施形態の機能を増強して、ＧＰＵ２６５が作用している画像データに加えて、ＧＰＵ２６５に渡されるコマンドバッファを暗号化することができる。この機能は、帯域内でハードウェアに送られるコマンドバッファの内容をアプリケーション２１０が保護したい場合に望ましい。図９Ａに、暗号化されたコマンドバッファ９００を使用したビデオの復号を示し、ここでは暗号化されたテクスチャ４００ａに内容を送り、解読コンポーネント４５０で解読し、ビデオデコーダ４３０ｂでデコードする。コマンドバッファだけを暗号化することが可能であるが、暗号化され、符号化されたフレーム４２０ａによって示すように、コマンドバッファだけでなくビデオメモリでも内容を暗号化する。したがって、コマンドバッファの暗号化は、このようにビデオメモリにマクロブロックがあり、動きベクトルと他のコマンドがコマンドストリームで送信される状況に適している。
【０１１９】
暗号化されたテクスチャデータの原子性の制約は暗号化されたコマンドバッファデータにも当てはまるが、当該の内容を保護するにはカラーバッファの暗号化は十分でない場合があることに留意しなくてはならない。平文攻撃からシステムを守るために、Ｚバッファなどの中間バッファも暗号化することができる。図９Ｂに、暗号化されたコマンドバッファを使用した例示的な３Ｄレンダリングを示す。図のように、３Ｄレンダリングコマンド８１０はビデオデコーダ４３０ｃへの途上で暗号化される。テクスチャデータ４００ａは解読コンポーネント４５０で解読され、コマンド８１０に従ってビデオデコーダ４３０ｃによって処理される。それに伴い、カラーバッファ８２０中のデータは暗号化／解読コンポーネント８３０によって暗号化される。
【０１２０】
改ざんの検出は、２回のパスを使用してコマンドバッファの消費前に行うか、またはコマンドバッファの消費後に行うことができる。一実施形態では、内容の表示後またはレンダリング後に改ざんの検出を可能にする。
【０１２１】
さらなる代替実施形態−グラフィックスカード出力の暗号化
上述の各実施形態では図２の点線部分についての機密性および保全性を実証し、説明したが、ビデオ出力については機密性および保全性を実証していない。すなわち理論的にはグラフィックスカードとモニタなどのレンダリング装置とのインタフェース、および／またはレンダリング装置自体が攻撃にさらされている。
【０１２２】
このため、図９Ａなど上述の実施形態では、ビデオメモリ内とグラフィックスカードの処理中にコンテンツが保護されているにもかかわらず、プロセス中のいずれかの時点でデータが平文で（ｉｎ　ｔｈｅ　ｃｌｅａｒ）ＤＶＩ／ＤＡＣ２９０に送られる。その結果、レンダリング装置へ向かう途中、およびレンダリング装置内部でデータが無断使用または変更される可能性がある。
【０１２３】
したがって、ここに記載する他の実施形態と任意選択で組み合わせることが可能な代替実施形態によれば、レンダリング装置にシスター（ｓｉｓｔｅｒ）暗号プロセッサ２２０ｂを提供して、暗号プロセッサ２２０ａによって行われる機能を補完する。これに関して、暗号プロセッサ２２０ａと通信的に結合された暗号化コンポーネント９１０ａは、ＤＶＩ／ＤＡＣコンポーネント２９０への伝達の前にデータを暗号化し、通信的に暗号プロセッサ２２０ｂと結合された解読コンポーネント９１０ｂは、行われる表示またはレンダリングの一部としてデータを解読してデータの無断使用を防止する。あるいは、暗号化コンポーネント９１０ａをＤＶＩ／ＤＡＣコンポーネント２９０と合わせて含めてもよい。要は、同じ暗号化および解読とキー管理の技術を適用すると、コンテンツの暗号的に保護されたセキュアな伝達と処理のためにグラフィックスパイプライン全体を通じてコンテンツを保護することができる。
【０１２４】
上述のように、本発明の例示的実施形態について各種のコンピューティングデバイス、ハードウェア、ソフトウェア、およびネットワークアーキテクチャとの関連で説明したが、基礎となる概念は、信頼できるソースからのコンテンツを保護することが求められる任意のコンピューティングデバイスまたはシステムに適用することができる。したがって、本発明による信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する技術は、各種のアプリケーションおよびデバイスに適用することができる。例えば本発明の信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法の一部は、コンピューティングデバイスのオペレーティングシステムに適用することができ、デバイス上の別個のオブジェクトとして、別のオブジェクトの一部として、サーバからダウンロード可能なオブジェクトとして、分散オブジェクトなどとして提供される。本明細書では様々な選択肢の代表として例示的なプログラミング言語、擬似コード、名前、および例を選択したが、これらの言語、擬似コード、名前、および例は限定的なものではない。
【０１２５】
ここに記載する各種の技術は、ハードウェアまたはソフトウェア、あるいは適切な場合にはそれらの組合せとの関連で実装することができる。したがって、本発明の方法および装置、またはその態様または一部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、あるいはその他の任意の機械可読記憶媒体など有形の媒体に実施されたプログラムコード（すなわち命令）の形をとることができ、その場合にはプログラムコードがコンピュータなどのマシンにロードされて実行されるとそのマシンは本発明を実施する装置になる。プログラム可能なコンピュータでプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサ、プロセッサ可読の記憶媒体（揮発性および不揮発性のメモリおよび／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩ、オペレーティングシステム、信頼されるアプリケーションなどの使用を通じて本発明の技術を利用することができる１つまたは複数のプログラムは、高水準の手続き型またはオブジェクト指向型のプログラミング言語で実装してコンピュータシステムと通信することが好ましい。ただし、必要な場合にはプログラムはアセンブリ言語または機械語で実装することができる。いずれの場合も言語はコンパイルまたは解釈される言語であり、本発明の各種実施形態ではＧＰＵ２６５のハードウェア実装に条件を課す。
【０１２６】
本発明の方法および装置は、電気配線またはケーブル、光ファイバ、あるいはその他の任意の伝送形態など何らかの伝送媒体で伝送されるプログラムコードの形に実施される通信を介して実施することもでき、その場合は、プログラムコードが受信され、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなど、あるいは上述の例示的実施形態で述べたグラフィックスカードと暗号化機能を有する受信側マシンなどのマシンにロードされ、実行されると、マシンは本発明を実施する装置となる。汎用プロセッサで実装すると、プログラムコードはプロセッサと組み合わさって本発明の機能を呼び出すように動作する固有の装置を提供する。さらに、本発明との関連で用いる任意の記憶技術は、常にハードウェアとソフトウェアの組合せでよい。
【０１２７】
本発明について各種図面に示す好ましい実施形態との関連で説明したが、本発明から逸脱せずに本発明と同じ機能を行うために、他の同様の実施形態を使用しても、またはここに記載する実施形態に変更または追加を加えてもよいことを理解されたい。例えば、本発明の例示的なネットワーク環境は、ピアツーピアのネットワーク環境などのネットワーク環境に則して説明しているが、当業者は、本発明はそれに限定されず、本明細書に記載する方法は、配線式または無線式のゲームコンソール、ハンドヘルドコンピュータ、携帯型コンピュータなど任意のコンピューティングデバイスまたは環境に適用でき、また通信ネットワークを介して接続され、そのネットワークを介して対話する任意数の上記のようなコンピューティングデバイスに適用できることを認識されよう。特に無線式のネットワーク機器の数が増加し続けていることから、ハンドヘルドデバイスのオペレーティングシステム、およびその他アプリケーション固有のオペレーティングシステムを含む各種のコンピュータプラットフォームを企図していることを強調したい。さらに、本発明は、複数のＧＰＵを備えるデバイスなど複数のコプロセッシングチップまたはデバイス内で、あるいはそれらにわたって実施することができ、それに付随して行われる記憶も同様に複数デバイスにわたって行うことができる。さらに、本発明の認証技術を実装するアプリケーションまたはデバイスは、認証されるグラフィックスプラットフォームを有するコンピューティングデバイスと同じコンピューティングデバイスになくともよい。また、本発明によるグラフィックスカードは、例えばアクセラレイテッドグラフィックポート（ＡＧＰ）カードなどの取り外し可能なカードであっても、または「内蔵カード」すなわちチップセットに組み込まれたカードであってもよい。したがって、本発明はいずれの単一の実施形態にも限定されず、頭記の特許請求の範囲による範囲内で解釈すべきである。
【０１２８】
付録Ａ。ストリーム暗号とブロック暗号
この付録では、本文書の内容に関連するストリーム暗号とブロック暗号の違いを詳細に述べる。
【０１２９】
【表４】
2004007603.tif 000012
【０１３０】
概して、ストリーム暗号はブロック暗号に比べて実装が高速かつ単純である。
【０１３１】
その名が示すようにストリーム暗号はバイトのストリームを暗号化し、解読する。ストリーム中のＮ番目のバイトを解読する際、ストリーム暗号ではストリームの始めから開始して一度に１バイトずつ所望のオフセットまでストリームを進んでいく。
【０１３２】
これに対して、電子コードブックモードで実行されるブロック暗号は、データ中の任意のブロックを暗号化または解読することができるが、一度にブロック全体を暗号化／解読しなければならない。典型的なブロックサイズは１６バイトである。
【０１３３】
ストリーム暗号は、同一のデータを２度暗号化することはない、すなわち暗号化および解読に使用する鍵を頻繁に変えなければならないような方法で使用される。例えばプレミアムビデオの再生に用いる場合には、鍵の変更は１フレームにつき１回で十分である。
【０１３４】
最後の備考として、パブリックドメインで利用できる良質のブロック暗号がある。
【図面の簡単な説明】
【図１Ａ】本発明を実施することが可能な、各種のコンピューティングデバイスを備える例示的ネットワーク環境を表すブロック図である。
【図１Ｂ】本発明を実施することが可能な例示的な非限定的コンピューティングデバイスを表すブロック図である。
【図２】本発明により保護されるグラフィックスパイプラインの非保護部分を示す流れ図である。
【図３Ａ】本発明による第１のセキュリティ層の例示的態様を表すブロック図である。
【図３Ｂ】本発明による第１のセキュリティ層の例示的態様を表すブロック図である。
【図４Ａ】本発明による第２のセキュリティ層の例示的態様を表すブロック図である。
【図４Ｂ】本発明による第２のセキュリティ層の例示的態様を表すブロック図である。
【図４Ｃ】本発明による第２のセキュリティ層の例示的態様を表すブロック図である。
【図５Ａ】本発明によるＡＹＵＶ／ＡＲＧＢフォーマットの例示的なスウィズルを示す図である。
【図５Ｂ】本発明によるＡＹＵＶ／ＡＲＧＢフォーマットの例示的なスウィズルを示す図である。
【図６Ａ】本発明によるＹＵＹ２フォーマットの例示的スウィズルを示す図である。
【図６Ｂ】本発明によるＹＵＹ２フォーマットの例示的なスウィズルを示す図である。
【図７Ａ】本発明によるパックされたプラナフォーマットの例示的なスウィズルを示す図である。
【図７Ｂ】本発明によるパックされたプラナフォーマットの例示的なスウィズルを示す図である。
【図８Ａ】本発明による第３のセキュリティ層の例示的態様を示すブロック図である。
【図８Ｂ】本発明による第３のセキュリティ層の例示的態様を示すブロック図である。
【図９Ａ】本発明によるグラフィックス処理装置の出力に適用できる例示的暗号化技術を示すブロック図である。
【図９Ｂ】本発明によるグラフィックス処理装置の出力に適用できる例示的暗号化技術を示すブロック図である。
【符号の説明】
１０ａ、１０ｂ、１１０ａ、１１０ｂ、１１０ｃ　オブジェクト（デバイス）
１４　ネットワーク（バス）
２０　データベース
１１０、１８０　コンピュータ
１２０　処理装置
１２１　システムバス
１３０　システムメモリ
１３１　ＲＯＭ
１３２　ＲＡＭ
１３４、１４４　オペレーティングシステム
１３５、１４５、１８５　アプリケーションプログラム、（プログラムモジュール）（オブジェクト）、
１３６、１４６　プログラムモジュール
１３７、１４７　プログラムデータ
１４１　ハードディスクドライブ
１５０　インタフェース
１５１　磁気ディスクドライブ
１５２　磁気ディスク
１５５　光ディスクドライブ
１５６　光ディスク
１６０　ユーザ入力インタフェース
１６１　ポインティングデバイス
１６２　キーボード
１７０　アダプタ
１７１　ＬＡＮ
１７２　モデム
１７３　ＷＡＮ
１８１　メモリ記憶装置
１８２　グラフィックインタフェース
１８４　ＧＰＵ
１８６、２６０　ビデオメモリ
１９０　ビデオインタフェース
１９１　モニタ
１９５　出力周辺インタフェース
２００　コンテンツ
２１０　アプリケーション
２２０　暗号プロセッサ
２３０　システムメモリ
２５０　解読部分
２４０、２７０、４２０　サーフェス
２７０　プライマリ
２８０　ピクセル選択
２９０　ＤＶＩ／ＤＡＣ
２９５　レンダリング装置
３００　解読コンポーネント
３００ａ　ハードウェア
３１０　フリッピングチェーン（機密オーバーレイ）
３２０　保護されるオーバーレイサーフェス
４００　テクスチャ
４２０　フレーム
４３０　ビデオデコーダ（解読コンポーネント）
４４０、８３０　暗号化および解読コンポーネント
４５０　解読コンポーネント
５１０　プライマリフリッピングチェーン
５１０ａ　フロント
５１０ｂ　バック
８１０　コマンド
８２０　カラーバッファ
９００　コマンドバッファ
９１０Ａ　暗号化コンポーネント
９２０ｂ　解読コンポーネント
【図１Ａ】
2004007603.tif 000013
【図１Ｂ】
2004007603.tif 000014
【図２】
2004007603.tif 000015
【図３Ａ】
2004007603.tif 000016
【図３Ｂ】
2004007603.tif 000017
【図４Ａ】
2004007603.tif 000018
【図４Ｂ】
2004007603.tif 000019
【図４Ｃ】
2004007603.tif 000020
【図５Ａ】
2004007603.tif 000021
【図５Ｂ】
2004007603.tif 000022
【図６Ａ】
2004007603.tif 000023
【図６Ｂ】
2004007603.tif 000024
【図７Ａ】
2004007603.tif 000025
【図７Ｂ】
2004007603.tif 000026
【図８Ａ】
2004007603.tif 000027
【図８Ｂ】
2004007603.tif 000028
【図９Ａ】
2004007603.tif 000029
【図９Ｂ】
2004007603.tif 000030