(57)【要約】署名された鍵のグループにダイレクトプルーフの秘密鍵をフィールドにおけるクライアントコンピュータシステムにインストールされた装置に伝達することは、装置における著しい不揮発性ストレージを必要とすることなしに、確実なやり方で達成される。固有の擬似ランダム値が生成され、製造時間で装置におけるグループナンバーと共に記憶される。擬似ランダム値は、装置に関連されるダイレクトプルーフの秘密鍵及び秘密鍵のダイジェストを保持するデータ構造を暗号化するための対称鍵を生成するために使用される。結果的に得られた暗号化データ構造は、取り外し可能な記憶媒体の署名された鍵のグループ（たとえば、署名されたグループレコード）に記憶され、クライアントコンピュータシステムのオーナに配信される。装置がクライアントコンピュータシステムで初期化されたとき、ローカライズされ、暗号化されたデータ構造がシステムに存在するかをチェックする。存在しない場合、システムは、取り外し可能な記憶媒体から暗号化されたデータ構造の関連される署名されたグループレコードを取得し、署名されたグループレコードを認証する。グループレコードが有効であるとき、ダイレクトプルーフの秘密鍵を取得するため、その記憶されている擬似ランダム値から再生された対称鍵を使用して暗号化されたデータ構造を復号する。秘密鍵が有効であるとき、クライアントコンピュータシステムにおける装置による後続の認証処理のために使用される。
2008507203.tif 000002
【特許請求の範囲】
【請求項１】
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成するステップと、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成するステップと、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶するステップと、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶するステップと、
を含む方法。
【請求項２】
前記取り外し可能な記憶媒体及び前記装置をディストリビュートするステップを更に含む、
請求項１記載の方法。
【請求項３】
装置のクラスについてダイレクトプルーフのファミリ鍵のペアを生成するステップを更に含む、
請求項１記載の方法。
【請求項４】
前記グループレコードを署名及び認証するための鍵のペアを生成するステップを更に含む、
請求項１記載の方法。
【請求項５】
前記グループレコードの鍵のペアの公開鍵のハッシュを前記装置の不揮発性メモリに記憶するステップを更に含む、
請求項４記載の方法。
【請求項６】
前記署名されたグループレコードのグループサイズを選択するステップを更に含む、
請求項１記載の方法。
【請求項７】
前記秘密鍵は、前記ダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を有し、
前記ダイレクトプルーフの秘密鍵をハッシュして前記秘密鍵のダイジェストを生成するステップを更に含む、
請求項３記載の方法。
【請求項８】
前記装置の擬似ランダム値に基づいて対称鍵を生成するステップを更に含む、
請求項１記載の方法。
【請求項９】
前記識別子を生成するステップは、前記対称鍵を使用してデータ値を暗号化するステップを含む、
請求項８記載の方法。
【請求項１０】
前記対称鍵を使用して前記データ構造を暗号化するステップを更に含む、
請求項８記載の方法。
【請求項１１】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項１記載の方法。
【請求項１２】
前記取り外し可能な記憶媒体は、コンパクトディスク及びデジタルバーサティルディスクの少なくとも１つを含む、
請求項１記載の方法。
【請求項１３】
前記装置の擬似ランダム値は固有である、
請求項１記載の方法。
【請求項１４】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
装置に関連される、秘密鍵及び秘密鍵のダイジェストを含む暗号化されたデータ構造を生成し、
擬似ランダムに生成された値に基づいて、前記暗号化されたデータ構造について識別子を生成し、
取り外し可能な記憶媒体の署名されたグループレコードに、前記識別子及び前記暗号化されたデータ構造を記憶し、
前記装置の不揮発性ストレージに、前記擬似ランラム値と前記署名されたグループレコードに対応するグループナンバーを記憶させる、
ことで、署名されたグループにおける秘密鍵を装置に伝送する製品。
【請求項１５】
前記グループレコードを署名及び認証するために鍵のペアを生成するための命令を更に含む、
請求項１４記載の製品。
【請求項１６】
前記グループレコードの鍵のペアの前記公開鍵のハッシュを前記装置の不揮発性ストレージに記憶するための命令を更に含む、
請求項１５記載の製品。
【請求項１７】
前記署名されたグループレコードのグループサイズを選択するための命令を更に含む、
請求項１４記載の製品。
【請求項１８】
装置のクラスについてダイレクトプルーフのファミリの鍵のペアを生成するための命令を更に含む、
請求項１４記載の製品。
【請求項１９】
前記秘密鍵は、前記ダイレクトプルーフのファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフに秘密鍵を含み、
前記秘密鍵のダイジェストを生成するために前記ダイレクトプルーフの秘密鍵をハッシュするための命令を更に含む、
請求項１４記載の製品。
【請求項２０】
前記装置の前記擬似ランダム値に基づいて対称鍵を生成するための命令を更に含む、
請求項１４記載の製品。
【請求項２１】
前記識別子を生成するための命令は、前記対称鍵を使用してデータ値を暗号化するための命令を含む、
請求項２０記載の製品。
【請求項２２】
前記対称鍵を使用して前記データ構造を暗号化するための命令を更に含む、
請求項２０記載の製品。
【請求項２３】
前記暗号化されたデータ構造は、ランダム初期化ベクトルを更に含む、
請求項１４記載の製品。
【請求項２４】
前記装置の擬似ランダム値は固有である、
請求項１４記載の製品。
【請求項２５】
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定するステップと、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得するステップと、
を含む方法。
【請求項２６】
前記取り外し可能な記憶媒体は、前記装置の製造者により作成されたコンパクトディスク及びデジタルバーサティルディスクの少なくとも１つを含む、
請求項２５記載の方法。
【請求項２７】
前記暗号化されたデータ構造を取得するステップは、秘密鍵の取得プロセスを始動するために前記装置に鍵取得コマンドを発生するステップを含む、
請求項２５記載の方法。
【請求項２８】
前記秘密鍵は、装置のクラスのダイレクトプルーフのファミリ鍵のペアの公開鍵と関連されるダイレクトプルーフの秘密鍵を含む、
請求項２５記載の方法。
【請求項２９】
前記秘密鍵の取得プロセスは、前記装置に記憶される固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項２７記載の方法。
【請求項３０】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造についてデバイス識別子を生成するステップを含む、
請求項２９記載の方法。
【請求項３１】
前記秘密鍵取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ数に対応する署名されたグループレコードを取得するステップを含む、
請求項２７記載の方法。
【請求項３２】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを分析するステップを更に含む、
請求項３０記載の方法。
【請求項３３】
前記署名されたグループレコードを確認するステップを更に含む、
請求項３１記載の方法。
【請求項３４】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するため、前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項３２記載の方法。
【請求項３５】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較し、前記ダイジェストが一致したときに前記装置について有効であるとして前記秘密鍵を受けるステップとを更に含む、
請求項３４記載の方法。
【請求項３６】
複数のコンピュータ読み取り可能な命令を含む第一の記憶媒体を有する製品であって、
前記命令がプロセッサにより実行されたとき、前記命令は、
コンピュータシステムでインストールされる装置に関連される、秘密鍵と秘密鍵のダイジェストを含む暗号化されたデータ構造が前記コンピュータシステムのメモリに記憶されているかを判定し、
前記暗号化されたデータ構造が記憶されていない場合、署名されたグループレコードからなるデータベースを記憶する、前記コンピュータシステムによりアクセス可能な取り外し可能な記憶媒体から、署名されたグループレコードにおいて装置に関連される前記暗号化されたデータ構造を取得する、
ことで、コンピュータシステムでインストールされた装置の署名されたグループレコードから秘密鍵を取得する製品。
【請求項３７】
前記暗号化されたデータ構造を取得するための命令は、秘密鍵の取得プロセスを始動するために鍵取得コマンドを前記装置に発するための命令を含む、
請求項３６記載の製品。
【請求項３８】
前記秘密鍵は、装置のクラスについてダイレクトプルーフファミリの鍵のペアの公開鍵に関連されるダイレクトプルーフの秘密鍵を有する、
請求項３６記載の製品。
【請求項３９】
前記秘密鍵の取得プロセスは、前記装置に記憶された固有の擬似ランダム値に基づいて対称鍵を生成するステップを含む、
請求項３７記載の製品。
【請求項４０】
前記秘密鍵の取得プロセスは、前記擬似ランダム値に基づいて、前記暗号化されたデータ構造について装置の識別子を生成するステップを含む、
請求項３７記載の製品。
【請求項４１】
前記秘密鍵の取得プロセスは、前記取り外し可能な記憶媒体から前記装置のグループ番号に対応する署名されたグループレコードを取得するステップを含む、
請求項３７記載の製品。
【請求項４２】
グループナンバー、グループの公開鍵、及び前記装置の識別子に対応する暗号化されたデータ構造を取得するために前記署名されたグループレコードを更に含む、
請求項４０記載の製品。
【請求項４３】
前記署名されたグループレコードを確認するステップを更に含む、
請求項４１記載の製品。
【請求項４４】
前記秘密鍵の取得プロセスは、前記秘密鍵及び前記秘密鍵のダイジェストを取得するために前記対称鍵を使用して前記取り外し可能な記憶媒体から受けた前記暗号化されたデータ構造を復号するステップを更に含む、
請求項４２記載の製品。
【請求項４５】
前記秘密鍵の取得プロセスは、前記秘密鍵をハッシュして新たな秘密鍵のダイジェストを生成するステップと、前記復号されたデータ構造からの前記秘密鍵のダイジェストを前記新たな秘密鍵のダイジェストと比較するステップと、前記ダイジェストが一致したとき、前記装置について有効であるとして前記秘密鍵を受けるステップと、
を更に含む請求項４４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータセキュリティ全般に関し、より詳細には、処理システムにおける装置に暗号化鍵を確実に配信することに関する。
【背景技術】
【０００２】
コンテンツプロテクション及び／又はコンピュータセキュリティ機能をサポートする処理システムアーキテクチャは、特別にプロテクトされた、すなわち「信頼される“trusted”」ソフトウェアモジュールが、（たとえば、グラフィックコントローラカードのような）処理システムにおける特別にプロテクトされた、すなわち「信頼される」ハードウェア装置との認証された暗号化通信セッションを形成することができることを必要とする。装置を識別し、同時に、暗号化された通信セッションを確立するための１つの一般に使用される方法は、片側認証ＤＨ（one-sided  authenticated  Diffie-Helman）鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開／秘密のＲＳＡ（Rivest,  Shamir  and  Adelman）アルゴリズムの鍵のペア又は固有のＥＣＣ（Elliptic  Curve  Cryptography）鍵のペアが割り当てられる。しかし、この認証プロセスは、ＲＳＡ又はＥＣＣ鍵を使用するため、装置は、固有かつ立証できるアイデンティティを有し、これにより、プライバシーの関心が生じる。最悪のケースでは、これらの関心は、この種のセキュリティを提供する信頼できる装置を構築するＯＥＭ（Original  Equipment  Manufacture）からのサポートがないことに帰着する。
【発明の開示】
【課題を解決するための手段】
【０００３】
プロテクトされた／信頼された装置がそれ自身を認証するのを可能にし、信頼されるソフトウェアモジュールと暗号化された通信セッションを確立するため、ダイレクトプルーフに基づいた（Direct  Proof-based）Diffie-Helman鍵交換プロトコルを使用することで、処理システムでの固有のアイデンティティ情報を作成するのを回避し、これによりプライバシーの関心を導入するのを回避する。しかし、製造ラインの装置にダイレクトプルーフの秘密鍵を直接埋め込むことは、他のアプローチよりもプロテクトされた装置の不揮発性ストレージを必要とする。本発明の実施の形態は、（たとえば署名のために使用される）ダイレクトプルーフの秘密鍵がディストリビューション・コンパクトディスク・リードオンリメモリ（ＣＤ−ＲＯＭ又はＣＤ）に関する確実なやり方で署名されたグループに伝達し、装置それ自身により装置で続いてインストールされるのを可能とする方法である。１実施の形態では、この機能をサポートするために必要とされるデバイスストレージにおける低減は、近似的に３００〜７００バイト、さらに近似的に２０〜２５バイトまでに及ぶ。装置のためのダイレクトプルーフに基づいたDiffie-Helman鍵交換を実現するために必要とされる不揮発性ストレージの量におけるこの低減は、この技術が更に広く採用されることになる。
【０００４】
本発明の「１実施の形態」又は「実施の形態」に対する明細書における引用は、実施の形態に関して記載される特定の機能、構造又は特徴が本発明の少なくとも１つの実施の形態に含まれることが意味される。したがって、明細書を通して様々な場所で現れるフレーズ「１実施の形態」の出現は、同じ実施の形態を全て引用する必要がない。
【０００５】
以下の記載では、本発明の１以上の実施の形態の所定の機能を説明するために所定の技術が使用される。たとえば、「プラットフォーム」は、情報を送信及び受信するために適合される何れかのタイプの通信装置として定義される。様々なプラットフォームの例は、制限又は限定されるものではないが、コンピュータシステム、パーソナルデジタルアシスタント、セルラー電話、セットトップボックス、ファクシミリマシン、プリンタ、モデム、ルータ等を含む。「通信リンク」は、プラットフォームに適合された１以上の情報伝送媒体として広義に定義される。様々なタイプの通信リンクの例は、制限又は限定されるものではないが、電気配線、光ファイバ、ケーブル、バストレース、又はワイヤレスシグナリング技術を含む。
【０００６】
「チャレンジャー“challenger”」は、別のエンティティからの真性又は権限の確認を必要とするエンティティ（たとえば、人物、プラットフォーム、システム、ソフトウェア、及び／又は装置）を示す。通常、これは、要求された情報を開示又は提供する前に実行される。「レスポンダ“responder”」は、その権限、有効性、及び／又はアイデンティティの幾つかのプルーフ（証明）を提供するために要求されているエンティティを示す。「装置メーカ“device  manufacturer”」は、「認証メーカ“certifying  manufacturer”」と交換可能に使用され、プラットフォーム又は装置を製造又はコンフィギュアするエンティティを示す。
【０００７】
本明細書で使用されるように、レスポンダが所有又は（たとえばデジタル署名、鍵のようなシークレット等といった）暗号化情報の知識を有するチャレンジャーを「立証する」又は「確信する」ことは、「チャレンジャー」に開示される情報及びプルーフに基づいて、レスポンダが暗号化情報を有する高い確率が存在することを意味する。このことをチャレンジャーに対して、暗号化情報を「知らせる“reveal”」又は「開示する“disclosing”」ことなしに証明することは、チャレンジャーに開示される情報に基づいて、暗号化情報を判定することはチャレンジャーにとって計算上実行不可能であることを意味する。
【０００８】
かかるプルーフは、以下ダイレクトプルーフと呼ばれる。用語「ダイレクトプルーフ“direct  proof”」とは、これらのタイプのプルーフが当該技術分野で一般に知られているので、ゼロ知識証明“zero-knowledge  proof”と呼ばれる。特に、本明細書で引用されるように、特定のダイレクトプルーフプロトコルは、本発明の所有者に譲渡され、“System  and  Method  for  Establishing  Trust  Without  Revealing  Identity”と題された、２００２年１１月２７日に提出された、係属中の特許出願シリアル番号１０／３０６，３３６号の内容である。ダイレクトプルーフは、発行者により定義されたように共通の特徴を共有する多くのメンバのファミリを発行者が定義するプロトコルを定義する。発行者は、全体としてファミリを表すファミリの公開及び秘密鍵のペア（Ｆｐｕｂ及びＦｐｒｉ）を生成する。Ｆｐｒｉを使用して、発行者は、ファミリにおけるそれぞれ個々のメンバについて固有のダイレクトプルーフの公開署名鍵（ＤＰｐｒｉ）を生成する。個々のＤＰｐｒｉにより署名されたメッセージは、ファミリの公開鍵Ｆｐｕｂを使用して確認される。しかし、かかる確認は、署名者がファミリのメンバことを識別するのみであって、個々のメンバに関して固有に識別する情報が露出されていない。１実施の形態では、発行者は、装置メーカ又は代表者である。すなわち、発行者は、共有される特性に基づいて装置のファミリを定義し、ファミリ公開／秘密鍵のペアを生成し、ＤＰ秘密鍵を作成して装置に注入する能力をもつエンティティである場合がある。また、発行者は、鍵のソース及び装置ファミリの特徴を識別するファミリの公開鍵のための証明書を生成する。
【発明を実施するための最良の形態】
【０００９】
本発明の特徴及び利点は、本発明の以下の詳細な説明から明らかとなる。  
ここで図１を参照して、本発明の実施の形態に従って動作する信頼されるハードウェア装置で実現されるプラットフォーム（「信頼されるプラットフォームモジュール“Trusted  Platform  Module”」すなわち“ＴＰＭ”と呼ばれる）を特徴付けるシステムの実施の形態が示される。第一のプラットフォーム１０２（チャレンジャー）は、第二のプラットフォーム１０４（レスポンダ）がそれ自身に関する情報を提供するリクエスト１０６を送出する。リクエスト１０６に応答して、第二のプラットフォーム１０４は、要求された情報１０８を提供する。
【００１０】
さらに、高くされたセキュリティについて、第一のプラットフォーム１０２は、要求された情報１０８が選択された装置メーカ又は選択された装置メーカのグループ（以下、「装置メーカ１１０」と呼ばれる）の何れかにより製造された装置から到来したことを確認する必要がある。たとえば、本発明の１実施の形態について、第一のプラットフォーム１０２は、装置メーカ１１０により生成された暗号化情報（たとえば署名）を有することを示すように第二のプラットフォーム１０４にチャレンジ（要求）する。このチャレンジは、（図示されるように）リクエスト１０６に含まれるか、又は個別の送信である場合がある。第二のプラットフォーム１０４は、返答の形式で情報を提供することでチャレンジに応答し、暗号化情報を示すことなしに、第二のプラットフォーム１０４が装置メーカ１１０により生成された暗号化情報を有することを第一のプラットフォーム１０２に確信させる。返答は、（図示された）要求された情報１０８又は個別の送信の一部である場合がある。
【００１１】
本発明の１実施の形態では、第二のプラットフォーム１０４は、信頼されるプラットフォームモジュール（ＴＰＭ）１１５を有する。ＴＰＭ１１５は、装置メーカ１１０により製造される暗号化装置である。本発明の１実施の形態では、ＴＰＭ１１５は、パッケージにカプセル化された少量のオンチップメモリをもつプロセッサを有する。ＴＰＭ１１５は、返答が有効なＴＰＭから送信されたことを判定するのを可能にする第一のプラットフォーム１０２に情報を提供するために構成される。使用される情報は、ＴＰＭ又は第二のプラットフォームのアイデンティティが判定される可能性を高くしないコンテンツである。
【００１２】
図２は、ＴＰＭ１１５による第二のプラットフォーム１０４の第一の実施の形態を例示する図である。本発明のこの実施の形態について、第二のプラットフォーム１０４は、ＴＰＭ１１５に結合されたプロセッサ２０２を有する。一般に、プロセッサ２０２は、情報を処理する装置である。たとえば、本発明の１実施の形態では、プロセッサ２０２は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ又は更にはステートマシンとして実現される。代替的に、本発明の別の実施の形態では、プロセッサ２０２は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、トランジスタ−トランジスタロジック（ＴＴＬ）ロジック、又は更に特定用途向け集積回路（ＡＳＩＣ）のようなプログラマブル又はハードコーデッドロジックとして実現される。
【００１３】
本明細書では、第二のプラットフォーム１０４は、鍵、ハッシュ値、署名、証明書等のうちの１つ以上のような暗号化情報の記憶を可能にするストレージユニット２０６を更に有する。“Ｘ”のハッシュ値は、“Ｈａｓｈ（ｘ）”として表される。かかる情報は、図３に示されるようなストレージユニット２０６の代わりに、ＴＰＭ１１５の内部メモリ２２０に記憶されることが考えられる。暗号化情報は、特にＴＰＭ１１５の外部に記憶される場合に暗号化される。
【００１４】
図４は、図２のＴＰＭ１１５で実現されるコンピュータシステム３００を含むプラットフォームの実施の形態を例示する図である。コンピュータシステム３００は、バス３０２に結合されるバス３０２及びプロセッサ３１０を有する。コンピュータシステム３００は、メインメモリユニット３０４及びスタティックメモリユニット３０６を更に有する。
【００１５】
本明細書では、メインメモリユニット３０４は、プロセッサ３１０により実行される情報及び命令を記憶するための不揮発性半導体メモリである。また、メインメモリ３０４は、プロセッサ３１０による命令の実行の間に、一時的な変数又は他の中間情報を記憶するために使用される。スタティックメモリユニット３０６は、より永続的な性質でプロセッサ３１０のための情報及び命令を記憶するための不揮発性半導体メモリである。スタティックメモリ３０６の例は、限定又は制限されるものではないが、リードオンリメモリ（ＲＯＭ）を含む。メインメモリユニット３０４及びスタティックメモリユニット３０６の両者は、バス３０２に結合される。
【００１６】
本発明の１実施の形態では、コンピュータシステム３００は、磁気ディスク又は光ディスクのようなデータ記憶装置３０８を更に有し、その対応する装置は、情報及び命令を記憶するためにコンピュータシステム３００に結合される。
【００１７】
また、コンピュータシステム３００は、グラフィックスコントローラ装置３１４にバス３０２を介して結合され、この装置は、エンドユーザに情報を表示するため、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）又は何れかのフラットパネルディスプレイのようなディスプレイ（図示せず）を制御する。１実施の形態では、プロセッサにより実行されているソフトウェアモジュールとの認証された暗号化通信セッションを確立することがグラフィックスコントローラ又は他の周辺装置にとって望まれる。
【００１８】
典型的に、英数字入力装置３１６（たとえば、キーボード、キーパッド等）は、情報及び／又はコマンドセレクションをプロセッサ３１０に伝達するためにバス３０２に結合される。別のタイプのユーザ入力装置は、方向情報及びコマンドセレクションをプロセッサ３１０に伝達し、ディスプレイ３１４でのカーソルの動きを制御するため、マウス、トラックボール、タッチパッド、スタイラス又はカーソル方向キーのようなカーソル制御ユニット３１８である。
【００１９】
また、通信インタフェースユニット３２０は、バス３０２に結合される。インタフェースユニット３２０の例は、ローカル又はワイドエリアネットワークの一部を形成する通信リンクに結合するために使用される、モデム、ネットワークインタフェースカード、又は他の公知のインタフェースを含む。このようにして、コンピュータシステム３００は、たとえば企業のイントラネット及び／又はインターネットのような、従来のネットワークインフラストラクチャを介して多数のクライアント及び／又はサーバに結合される。
【００２０】
先に記載された多かれ少なかれ設けられたコンピュータシステムは、所定の実現について望まれることが理解される。したがって、コンピュータシステム３００のコンフィギュレーションは、価格の制約、性能要件、技術的な改善、及び／又は他の状況のような様々な要素に依存した実現へと変化する。
【００２１】
少なくとも１つの実施の形態では、コンピュータシステム３００は、メインメモリ３０４及び／又は大容量記憶装置３０８に記憶され、システムにおいて他の敵対するソフトウェアが存在する場合であっても特定の動作を実行するためにプロセッサ３１０により実行されている、特別にプロテクトされた「信頼される」ソフトウェアモジュール（たとえば、耐タンパー性ソフトウェア、又はプロテクトされたプログラムを実行するための能力を有するシステム）の使用をサポートする。これら信頼されるソフトウェアモジュールのなかには、他のプラットフォームにではないが、たとえばグラフィックスコントローラ３１４のような同じプラットフォームをもつ１以上に装置に対する、等価的に「信頼できる“trustable”」プロテクトされたアクセスを必要とするものがある。一般に、かかるアクセスは、信頼されるソフトウェアモジュールは、装置の機能及び／又は特定のアイデンティティを識別することができ、システムにおける他のソフトウェアにより詮索又は成りすますことができないデータのやり取りを可能にするため、装置との暗号化セッションを確立することができることを必要とする。
【００２２】
装置を識別し、同時に、暗号化されたセッションを確立する１つの従来技術の方法は、片側認証されたＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＨ）鍵交換プロセスを使用することである。このプロセスでは、装置には、固有の公開／秘密のＲＳＡ又はＥＣＣ鍵のペアが割り当てられる。装置は、秘密鍵を保持及びプロテクトし、認証証明書に沿って公開鍵は、ソフトウェアモジュールにリリースされる。ＤＨ鍵交換プロセスの間、装置は、その秘密鍵を使用してメッセージを署名し、これにより、ソフトウェアモジュールは、対応する公開鍵を使用して確認することができる。これにより、ソフトウェアモジュールは、メッセージが関心のある装置から実際に到来したことを認証するのを可能にする。
【００２３】
しかし、この認証プロセスがＲＳＡ又はＥＣＣ鍵を使用するため、装置は、固有かつ証明できるアイデンティティを有する。装置にその秘密鍵でメッセージを署名するソフトウェアモジュールは、この特定の固有の装置がコンピュータシステムに存在することを証明する。装置が処理システムの間でめったに移動しないとすると、これは、証明できる固有のコンピュータシステムのアイデンティティを表す。さらに、装置の公開鍵それ自身は、一定の固有値、効果的には永続性のある“cookie”である。あるケースでは、これらの特徴は、重要なプライバシーの問題として解釈される。
【００２４】
１つの代替的なアプローチは、本出願の所有者に譲渡された、“An  Apparatus  and  Method  for  Establishing  an  Authenticated  Encrypted  Session  with  a  Device  Without  Exposing  Privacy-Sensitive  Information”と題された、２００４年？月？日に提出された係属中の特許出願シリアル番号１０／？？？，？？？に記載されている。そのアプローチでは、片側認証されたＤｉｆｆｉｅ−ＨｅｌｍａｎプロセスにおけるＲＳＡ又はＥＣＣ鍵の使用は、ダイレクトプルーフ鍵で置き換えられる。このアプローチを使用する装置は、特定の装置のファミリに属するとして認証され、これは、装置の挙動又は信用度に関する保証を含む場合がある、このアプローチは、処理システムを表す固有のアイデンティティを確立するために使用される固有に識別する情報を露出しない。
【００２５】
このアプローチは良好に機能するが、ダイレクトプルーフの秘密鍵を保持するために装置において更なるストレージを必要とし、このストレージは、ＥＣＣキーよりも大きい。この更なるストレージの要件の負担を軽減するため、本発明の実施の形態は、装置における実質的な更なる鍵を必要とすることなしに、鍵を必要とするときに装置がダイレクトプルーフの秘密鍵を有することを保証するためのシステム及びプロセスを定義する。１実施の形態では、ＤＰ鍵は、署名されたグループにおいてクライアントのコンピュータシステムに伝達される。
【００２６】
本発明の少なくとも１つの実施の形態では、装置が製造ラインで生産される間に、装置メーカは、１２８ビットの擬似ランダム数を装置に記憶するのみであり、非常に大きなダイレクトプルーフの秘密鍵（ＤＰｐｒｉ）がディストリビューションＣＤを使用して暗号化及び伝達される。他の実施の形態は、１２８ビットよりも長いか短い数を装置に記憶する。このプロセスは、指定された装置のみがその割り当てられたＤＰｐｒｉ鍵を復号して使用することを保証する。
【００２７】
本発明の少なくとも１つの実施の形態では、“keyblobs”と呼ばれるＤＰｐｒｉ暗号化データ構造は、装置メーカにより署名されたグループレコードに伝達される。全体のグループレコードは、装置に伝達され、この装置は、それ自身の暗号化されたkeyblobを抽出する。装置が全体のレコードを分析することを必要とし、全体のレコードが分析されるまで抽出されたkeyblobを処理し始めるのを必要とすることなしに、アタッカーは、タイミングアタックに基づいてどのkeyblobが選択されたかを判断することができない。レコードを署名し、そのkeyblobを処理する前に装置が署名を確認するのを必要とすることで、アタッカーが装置の応答をテストするために１つのkeyblobの多数のコピーを供給することができないことを保証する。１実施の形態では、アタッカーが判定することができるのは、その装置がグループのメンバであることである。１実施の形態では、装置は、全体で近似的に４０バイトのデータについて、予め決定されたサイズの擬似ランダム値、グループ識別子（たとえば４バイト）、及び、装置メーカのグループ公開鍵の２０バイトのハッシュを記憶する。
【００２８】
図５は、本発明の実施の形態に係る署名されたグループにおけるダイレクトプルーフの鍵を配信するためにシステム５００の図である。このシステムには、装置製造プロテクト（device  manufacturing  protected）システム５０２、装置製造プロダクション（device  manufacturing  production）システム５０３、及びクライアントコンピュータシステム５０４といった３つのエンティティが存在する。装置製造プロテクトシステムは、装置５０６の製造前にセットアッププロセスで使用される処理システムを有する。プロテクトされたシステム５０２は、プロテクトされたシステムが装置製造サイト外のハッカーからのアタックから保護されるように（たとえばクローズドシステム）、装置メーカ又は他のエンティティにより動作される。製造プロダクションシステム５０３は、装置の製造において使用される。１実施の形態では、プロテクトされたシステム及びプロダクションシステムは、同じシステムである場合がある。装置５０６は、クライアントコンピュータシステム（たとえば、メモリコントローラ、グラフィックスコントローラのような周辺装置、Ｉ／Ｏ装置、他の装置等）において包含するためにハードウェア装置を有する。本発明の実施の形態では、装置は、装置の不揮発性ストレージに記憶される、擬似ランダム値ＲＡＮＤ５０８及びグループ番号５０９を有する。
【００２９】
製造プロテクトシステムは、プロテクトデータベース（protected  database）５１０及びジェネレーション機能５１２を含む。プロテクトデータベースは、以下に記載される方式でジェネレーション機能５１２により生成される（製造されるべき装置当たり少なくとも１つの）多数の擬似ランダム値を記憶するためのデータ構造を有する。ジェネレーション機能は、本明細書でkeyblob５１４と呼ばれるデータ構造を生成するために（ソフトウェア又はハードウェアのいずれかで実現される）ロジックを有する。固有のダイレクトプルーフの秘密鍵（ＤＰｐｒｉ）は、署名のために装置により使用される場合がある暗号化鍵を含む。ＤＰプライベートダイジェスト５１６（ＤＰｐｒｉ  Ｄｉｇｅｓｔ）は、ＳＨＡ−１のようなセキュアメッセージダイジェストを生成する公知の方法に従ってＤＰｐｒｉのメッセージダイジェストを有する。幾つかの実施の形態は、互換性の目的でkeyblobの一部としてビットストリームを有する擬似ランダム初期化ベクトル（ＩＶ）５１８を含む。暗号化のためにストリーム暗号が使用される場合、ストリーム暗号でＩＶを使用するために公知の方法でＩＶが使用される。ブロック暗号が暗号化のために使用される場合、ＩＶは暗号化されるべきメッセージの一部として使用され、暗号化のそれぞれの例を異ならせる。
【００３０】
本発明の実施の形態では、製造プロテクトシステムは、（以下に詳細に記載されるように）１以上のkeyblobを生成し、ＣＤ５２２のkeyblobデータベース５２０におけるグループレコード５１５にkeyblobを記憶する。１実施の形態では、それぞれのグループレコードにおいて多くのkeyblobが存在する場合があり、１つのＣＤで多くのグループレコードが存在する場合があり、何れかの組み合わせで、唯一の制限は、ＣＤの物理的な記憶の制限である。したがって、それぞれのグループレコードは、複数のkeyblobを有する。次いで、ＣＤは、典型的な物理チャネルを通してコンピュータシステムメーカ、コンピュータディストリビュータ、クライアントコンピュータシステムコンシューマ等に流通される。ＣＤは記憶媒体として本明細書では記載されるが、適切な取り外し可能な記憶媒体が使用される（たとえばデジタルバーサティルディスク（ＤＶＤ）又は他の媒体）。
【００３１】
システム５０４に含まれる装置５０６との通信セッションの認証及び鍵公開のためにダイレクトプルーフプロトコルを使用することを望むクライアントコンピュータシステム５０４は、ＣＤのkeyblobデータベース５２０外から選択されたグループレコード５１５を読み取る。Keyblobデータは、グループレコードから得られ、ダイレクトプルーフプロトコルを実現するのに使用するために（以下に記載されるような）ローカライズされたkeyblob５２４を発生するために装置により使用される。本発明の実施の形態では、複数のkeyblobを有する全体のグループレコードは、一度に装置により処理され、アタッカーは、暗号化されたローカライズされたkeyblobを生成するためにどの特定のkeyblobが実際に使用されているかを判定することができない。装置ドライバソフトウェア５２６は、装置５０６を初期化及び制御するためにクライアントコンピュータシステムにより実行される。
【００３２】
本発明の実施の形態では、動作について４つの別個のステージが存在する。図６は、本発明の実施の形態に係るダイレクトプルーフキーを配信する方法のステージを例示するフローチャート６００である。本発明の実施の形態によれば、所定のアクションは、それぞれのステージで実行される。装置メーカのサイトで、セットアップ（set-up）ステージ６０２及び製造プロダクション（manufacturing  production）ステージ６０４といった少なくとも２つのステージが存在する。セットアップステージは、図７を参照して本実施の形態で記載される。製造プロダクションステージは、図８を参照して本明細書で記載される。クライアントコンピュータシステムを有するコンシューマサイトで、セットアップ（set-up）ステージ６０６及びユース（use）ステージ６０８といった少なくとも２つのステージが存在する。クライアントコンピュータシステムのセットアップステージは、図９を参照して本明細書で記載される。クライアントコンピュータシステムのユースステージは、図１０を参照して本明細書で記載される。
【００３３】
図７及び図８は、本発明の実施の形態に係る装置製造セットアップ処理を説明するフローチャート７００及び８００である。１実施の形態では、装置メーカは、製造プロテクトシステム５０２を使用してこれらのアクションを実行する。ブロック７０１では、装置メーカは、製造されるべき装置のそれぞれのクラスについて、ダイレクトプルーフファミリの鍵のペア（Ｆｐｕｂ及びＦｐｒｉ）を生成する。それぞれ固有の装置は、ＤＰｐｒｉを使用して形成された署名がＦｐｕｂにより確認されるように、対応するＤＰｐｒｉ鍵を有する。装置のクラスは、バージョン数に基づいた選択されたプロダクトライン（すなわち装置のタイプ）又はプロダクトラインのサブセット、若しくは装置の他の特性のような、装置のセット又はサブセットを有する。ファミリの鍵のペアは、それが生成された装置のクラスによる使用を目的とする。
【００３４】
ブロック７０２で、装置メーカは、グループレコードを署名及び確認するために使用されるＲＳＡ鍵のペア（Ｇｐｒｉ，Ｇｐｕｂ）を生成する。他の実施の形態では、セキュアデジタル署名システムはＲＳＡの代わりに使用される。この鍵のペアは、ブロック７０１で生成されたファミリの鍵のペアに独立であり、装置メーカにより生成された全ての装置のグルーピングについて使用される。ブロック７０３で、装置メーカは、所望のグループサイズを選択する。グループサイズは、互いにグループ化されたファミリにおける装置の数である。グループサイズは、個々の装置がグループ内で「隠す“hide”」のを可能にするために十分に大きく、装置によるkeyblob抽出処理の間のアンデュータイム（undue  time）を消費するように大きくならないように選択される。１実施の形態では、グループサイズは、５０００の装置となるように選択される。他の実施の形態では、他のサイズが使用される場合もある。
【００３５】
次いで、装置メーカは、グループサイズにより指定される装置の鍵の数を生成する。グループサイズにより規定された装置の数を有するそれぞれのグループは、グループナンバーにより指定される。所与のグループについて製造されるべきそれぞれの装置について、ジェネレーション機能５１２又は製造プロテクトシステム５０２の他のモジュールは、図７のブロック７０４から図８のブロック８０２を実行する。はじめに、ブロック７０４で、ジェネレーション機能は、固有の擬似ランダム値（ＲＡＮＤ）５０８を生成する。１実施の形態では、ＲＡＮＤの長さは、１２８ビットである。他の実施の形態では、他の値のサイズが使用される場合がある。１実施の形態では、多数の装置の擬似ランダム値は、前もって生成される場合がある。ブロック７０６では、装置によりサポートされる片側関数ｆを使用して、ジェネレーション関数は、固有のＲＡＮＤ値（ＳＫＥＹ＝ｆ（ＲＡＮＤ））から対称な暗号化鍵ＳＫＥＹを生成する。片側関数は、この目的のために適した公知のアルゴリズムである（たとえば、ＳＨＡ−１，ＭＧＦ１，データ暗号化規格（ＤＥＳ），Ｔｒｉｐｌｅ  ＤＥＳ等）。ブロック７０８で、１実施の形態では、ジェネレーション関数は、ＳＫＥＹを使用して（たとえば少数のゼロバイトといった）  “ｎｕｌｌ  ｅｎｔｒｙ”を暗号化するためにＳＫＥＹを使用することで（Ｄｅｖｉｖｅ  ＩＤ＝Ｅｎｃｒｙｐｔ（０．．．０））、ディストリビューションＣＤ５２２のこのデバイスのkeyblob５１４を参照するために使用される識別子（ＩＤ）ラベルを生成する。他の実施の形態では、ＤｅｖｉｃｅＩＤを生成する他の方法が使用されるか、他の値がＳＫＥＹにより暗号化される。
【００３６】
つぎに、ブロック７１０で、ジェネレーション関数は、装置のファミリの公開鍵（Ｆｐｕｂ）に相関するＤＰ秘密署名鍵ＤＰｐｒｉを生成する。ブロック７１２で、ジェネレーション関数は、ＤＰｐｒｉをハッシュ（hashe）し、（たとえばＳＨＡ−１又は別のハッシュアルゴリズムといった）公知の方法を使用してＤＰｐｒｉダイジェストを生成する。ブロック７１４で、ジェネレーション関数は、装置のためのkeyblobデータ構造を構築する。keyblobは、少なくともＤＰｐｒｉ及びＤＰｐｒｉダイジェストを含む。１実施の形態では、keyblobは、複数の擬似ランダムに生成されたビットを有するランダム初期化ベクトルを含む。これらの値は、暗号化されたkeyblob５１４を生成するためにＳＫＥＹを使用して暗号化される。ブロック７１６で、ブロック７０８で生成されたデバイスＩＤ、及びブロック７１４で生成された暗号化されたkeyblob５１４は、ディストリビューションＣＤ  ５２２でリリースされるべきkeyblobデータベース５２０におけるレコードに記憶される。１実施の形態では、keyblobデータベースにおけるレコードは、デバイスＩＤにより示される。
【００３７】
処理は、図８のブロック８０１に続く。ブロック８０１で、装置が属するグループについて現在のＲＡＮＤ値及び現在のグループナンバーは、プロテクトされたデータベース５１０に記憶される。ブロック８０２で、ＳＫＥＹ及びＤＰｐｒｉは、フィールドにおいて装置により再生されるので削除される。グループナンバーは、製造されている装置のそれぞれ連続するグループについてインクリメントされる。ＳＫＥＹによるＤＰｐｒｉダイジェスト及び後続する暗号化の作成は、ＳＫＥＹの所有を有さないエンティティによりＤＰｐｒｉのコンテンツを決定することができないように、及び、ＳＫＥＹの所有を有するエンティティによる後続の検出なしに、ＳＫＥＹの所有を有さないエンティティによりKeyBlobのコンテンツが変更されないように設計される。他の実施の形態では、このセキュリティ及びインテグリティプロテクションを提供する他の方法が使用される。幾つかの実施の形態では、インテグリティプロテクションは必要とされず、秘密でのみ提供される方法が使用される。このケースでは、ＤＰｐｒｉダイジェストの値は必要ではない。
【００３８】
Keyblobの全体のデータセットが装置のグループについて形成されたとき、少なくともそのグループのkeyblobデータベース５２０は、それぞれの装置でディストリビュートされるべき、共通のディストリビューションＣＤに対して署名され（signed）、焼付けされる（burned）（１実施の形態では、１つのkeyblobデータベースのエントリは、デバイスＩＤフィールドによりインデックス付けされるように、それぞれの装置について使用される）。したがって、ブロック８０４で、装置メーカは、グループレコード５１５を作製する。グループレコードは、グループナンバー、グループの公開鍵Ｇｐｕｂ、グループサイズ、及び全体のグループのkeyblobレコードを有する（＜ＧｒｏｕｐＮｕｍｂｅｒ，Ｇｐｕｂ，ＧｒｏｕｐＳｉｚｅ，＜ＤｅｖｉｃｅＩＤ１，  Ｅｎｃｒｙｐｔｅｄ  Ｋｅｙｂｌｏｂ１＞，  ＜ＤｅｖｉｃｅＩＤ２，  Ｅｎｃｒｙｐｔｅｄ  Ｋｅｙｂｌｏｂ２＞，．．．＞）。ブロック８０６で、装置メーカは、グループの秘密鍵Ｇｐｒｉを使用してグループレコードを署名し、デジタル署名をグループレコードに添付する。ブロック８０８で、署名されたグループレコードは、ディストリビューションＣＤのkeyblobデータベースに追加される。１実施の形態では、ディストリビューションＣＤは、その使用が以下に更に詳述される、クライアントコンピュータシステムでの更なる処理のために鍵検索ユーティリティソフトウェアモジュールを有する。
【００３９】
ブロック８０２の後の何れかの時間で、ブロック８１０で、ＲＡＮＤ及びグループナンバー値のペアからなるプロテクトされたデータベースは、製造プロセスの間にＲＡＮＤ及びグループナンバーの値を装置に記憶する製造プロダクションシステム５０３に確実にアップロードされる。ひとたびこのアップロードが確かめられると、ＲＡＮＤ値は、製造プロテクトシステム５０２から確実に削除される。
【００４０】
図９は、本発明の実施の形態に係る装置製造プロダクション処理を説明するフローチャートである。装置がプロダクションラインで製造されているとき、ブロック９０２で、製造プロダクションシステムは、プロテクトされたデータベースから、不使用のＲＡＮＤ及びグループナンバーの値のペアを選択する。次いで、選択されたＲＡＮＤ及びグループナンバーの値は、装置における不揮発性ストレージに記憶される。１実施の形態では、不揮発性ストレージはＴＰＭを有する。ブロック９０４では、グループ公開鍵Ｇｐｕｂのハッシュは、装置の不揮発性ストレージに記憶される。ブロック９０６で、ひとたび、ＲＡＮＤ値の装置へのストレージが成功すると、製造プロダクションシステムは、プロテクトされたデータベースにおけるその装置のＲＡＮＤ値の何れかのレコードを破壊する。そのポイントで、ＲＡＮＤ値の唯一のコピーは、装置に記憶される。
【００４１】
代替的な実施の形態では、ＲＡＮＤ値は、装置の製造の間に作成され、次いで、keyblobの計算のための製造プロテクトシステムに送出される。
【００４２】
別の実施の形態では、ＲＡＮＤ値は装置で作成され、装置及び製造プロテクトシステムは、装置外のＤＰｐｒｉを示さない方法を使用するＤＰｐｒｉ鍵を生成するためにプロトコルにかみ合う。次いで、装置は、ＤｅｖｉｃｅＩＤ、ＳＫＥＹ及びkeyblobを作成する。装置は、プロテクトされたデータベース５１０におけるストレージのため、ＤｅｖｉｃｅＩＤ及びkeyblobを製造システムに通過させる。この方法では、製造システムは、プロテクトされたデータベースにおける同じ情報（ＤｅｖｉｃｅＩＤ，ｋｅｙｂｌｏｂ）で終了するが、ＲＡＮＤの値又はＤＰｐｒｉの値を知らない。
【００４３】
図１０及び図１１は、本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャート１０００及び１１００である。クライアントコンピュータシステムは、システムにブートアップする部分としてこれらのアクションを実行する。ブロック１００２では、クライアントコンピュータシステムは、通常の方式でブートアップされ、装置のデバイスドライバ５２６は、メインメモリにロードされる。デバイスドライバが初期化され、実行を開始したとき、デバイスドライバは、ブロック１００４で、装置５０６について大容量ストレージ装置３０８に記憶されている、暗号化され、ローカライズされたkeyblob５２４が既に存在するかを判定する。存在する場合、更なるセットアップ処理が実行される必要があり、ブロック１００６でセットアップ処理が終了する。存在しない場合、処理はブロック１００８で継続する。ブロック１００８で、デバイスドライバは、ディストリビューションＣＤ５２２の挿入を依頼する、クライアントコンピュータシステムへのメッセージの表示をさせる。ひとたびＣＤがコンピュータシステムにより読み取られると、次いで、装置ドライバは、ＣＤに記憶されている（図５に示されていない）鍵検索ユーティリティソフトウェアモジュールを始動する。鍵検索ユーティリティは、グループの公開鍵Ｇｐｕｂのハッシュ、及びグループナンバー５０９である場合がある、そのグループＩＤについて装置に尋ねる。装置はこれらの値をリターンし、ユーティリティは、これらの値を使用して、ＣＤのkeyblobデータベースからの適切に署名されたグループレコードを探す。また、このユーティリティは、鍵取得コマンドを装置５０６に発し、装置のＤＰ秘密鍵の取得プロセスを始動する。
【００４４】
これに応じて、ブロック１０１０で、装置は、その片側関数ｆを使用して、埋め込まれたＲＡＮＤ値５０８から対称鍵ＳＫＥＹ（ここでは復号において使用）を再生する（ＳＫＥＹ＝ｆ（ＲＡＮＤ））。ブロック１０１２で、装置は、“ｎｕｌｌ  ｅｎｔｒｙ”（たとえば少数のゼロバイト）を暗号化するためにＳＫＥＹを使用することで、その固有のデバイスＩＤラベルを生成する（ＳＫＥＹを使用して、ＤｅｖｉｃｅＩＤ＝Ｅｎｃｒｙｐｔ（０..０））。本発明の１実施の形態では、これら値の何れもが装置外に露出される。次いで、装置は、進行するその準備を合図する。
【００４５】
ブロック１０１４で、鍵検索ユーティリティは、整合するグループナンバーを含むグループレコードについて、ＣＤでkeyblobデータベース５２０をサーチし、グループレコードを抽出し、全体のグループレコードを装置に転送する。
【００４６】
ブロック１０１６で、装置は、全体の供給されたグループレコードを分析するが、（ブロック１０１２で生成された）グループナンバー、グループレコードのハッシュ、グループの公開鍵Ｇｐｕｂ、及び、装置のそれ自身のＤｅｖｉｃｅＩＤに整合する最初の＜ＤｅｖｉｃｅＩＤ，Ｅｎｃｒｙｐｔｅｄ  Ｋｅｙｂｌｏｂ＞フィールドのみを保持する。ブロック１０１８で、装置は、グループレコードを確認する。１実施の形態では、装置は、抽出されたグループナンバーフィールドを装置に埋め込まれたグループナンバーに比較する。これらが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は抽出されたＧｐｕｂフィールドをハッシュし、それを装置に埋め込まれたＧｐｕｂハッシュと比較する。ハッシュが整合しない場合、鍵取得プロセスが終了される。そうでない場合、装置は有効にされたＧｐｕｂ鍵を使用して、グループレコードのハッシュに供給された署名を認証する。署名を認証した場合、グループレコードが認証され、プロセスは図１１のブロック１１２０で継続する。
【００４７】
１実施の形態では、装置がkeyblobを有した後に、悪事を働くソフトウェア（rogue  software）が鍵取得コマンドを装置に送出しようとした場合、装置は、グループナンバーをもつ悪事を働くソフトウェアに応答しない。代わりに、装置は、エラーインジケータをリターンする。実際に、装置がローカライズされたkeyblobへのアクセスを有する場合、鍵取得コマンドの機能がディスエーブルにされる。このように、装置は、keyblobを有さないときを除いて、グループナンバーを示さない。
【００４８】
ブロック１１２０で、装置は、対称鍵ＳＫＥＹを使用して暗号化されたkeyblobを復号し、ＤＰｐｒｉ及びＤＰｐｒｉダイジェストを生じ、これらの値をその不揮発性のストレージに記憶する（Decrypted  Keyblob=Decrypt  (IV,  DPpri,  DPpri  Digest)）。初期化ベクトル（ＩＶ）が廃棄される場合がある。ブロック１１２２で、装置は、ＤＰｐｒｉをハッシュし、ＤＰｐｒｉダイジェストに対して結果を比較することで、ＤＰｐｒｉのインテグリティをチェックする。比較が良好である場合、装置は、ＤＰｐｒｉをその有効な鍵として受ける。また、装置は、ＤＰ秘密鍵が上手く取得されたことを示すために、鍵取得フラグを真（true）に設定する。ブロック１１２４で、装置は、新たなＩＶ（SKEYを使用して、Localized  Kblob  =  Encrypt  (IV2,  DPpri,  DPpri  Digest)）を使用して、新たなＩＶを選択し、新たに暗号化されたローカライズされたkeyblobを作成する。新たに暗号化されたローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック１１２６で、鍵検索ユーティリティは、暗号化され、ローカライズされたkeyblobを（たとえば大容量記憶装置３０８のような）クライアントコンピュータシステム内のストレージに記憶する。装置のＤＰｐｒｉは、クライアントコンピュータシステムに確実に記憶される。
【００４９】
ひとたび装置がセットアップ処理の間にＤＰｐｒｉを取得すると、装置はＤＰｐｒｉを使用する。図１２は、本発明の実施の形態に係るクライアントコンピュータシステムのフローチャートである。クライアントコンピュータシステムは、セットアップが終了した後に任意にこれらのアクションを実行する。ブロック１２０２で、クライアントコンピュータシステムは、通常のやり方でブートアップされ、装置のデバイスドライバ５２６は、メインメモリにロードされる。デバイスドライバが初期化され、実行が開始されたとき、デバイスドライバは、装置５０６の大容量記憶装置３０８に記憶されている暗号化され、ローカライズされたkeyblob５２４が既に存在するかを判定する。存在しない場合、図１０及び図１１のセットアップ処理が実行される。この装置にとって利用可能な暗号化され、ローカライズされたkeyblobが存在する場合、処理はブロック１２０６で継続する。ブロック１２０６で、デバイスドライバは、暗号化され、ローカライズされたkeyblobを検索し、そのkeyblobを装置に転送する。１実施の形態では、keyblobの転送は、Load  Keyblobコマンドを実行することで達成される。
【００５０】
ブロック１２０８で、装置は、埋め込まれたＲＡＮＤ値５０８から対称鍵ＳＫＥＹ（ここでは復号における使用）を再生する（ＳＫＥＹ＝ｆ（ＲＡＮＤ））。ブロック１２１０で、装置は、対象鍵ＳＫＥＹを使用して、暗号化され、ローカライズされたkeyblobを復号し、ＤＰｐｒｉ及びＤＰｐｒｉダイジェストを得て、これらの値を不揮発性ストレージに記憶する（ＳＫＥＹを使用して、Decrypted  Keyblob  =  Decrypt  (IV2,  DPpri,  DPpri  Digest)）。第二の初期化ベクトル（ＩＶ２）は廃棄される場合がある。ブロック１２１２で、装置は、ＤＰｐｒｉをハッシュし、結果をＤＰｐｒｉダイジェストに対して比較することで、ＤＰｐｒｉのインテグリティをチェックする。（たとえばダイジェストの整合といった）比較が良好である場合、装置は、先に取得された有効な鍵としてＤＰｐｒｉを受け、それを使用のためにイネーブルにする。また、装置は、ＤＰ秘密鍵が上手く取得されたことを示すため、鍵取得フラグを真に設定する。ブロック１２１４で、装置は、新たなＩＶを使用して、更に別のＩＶを選択し、新たな暗号化され、ローカライズされたkeyblobを作成する（Localized  Keyblob  =  Encrypt  (IV3,  DPpri,  DPpri  Digest)）。新たに暗号化され、ローカライズされたkeyblobは、鍵検索ユーティリティにリターンされる。ブロック１２１６で、鍵検索ユーティリティは、クライアントコンピュータシステム内の（たとえば、大容量ストレージ装置３０８のような）ストレージに暗号化され、ローカライズされたkeyblobを記憶する。装置のＤＰｐｒｉは、クライアントコンピュータシステムに再び確実に記憶される。
【００５１】
本発明の１実施の形態では、一度に署名されたグループの全ての装置のＤＰ秘密鍵を生成する必要はない。ディストリビューションＣＤが定期的にアップデートされるとすると、装置のＤＰプライベート鍵は、必要に応じてバッチで生成される。ディストリビューションＣＤが「焼付けされる“burned”」たびに、生成されたが装置に未だ割り当てられていない装置の鍵を含む、今まで生成されたように、keyblobデータベースについて署名されたグループを含む。
【００５２】
１実施の形態では、図１０のブロックにおけるように全体のグループレコードを処理するとき、装置がエラーを検出した場合、装置は、エラーが生じたことを示すフラグを設定するが、処理を継続する。システムセットアップについて全てのステップが完了したとき、装置は、デバイスドライバにエラーを合図する。これは、アタッカーがエラーのタイプ及びロケーションから情報を得させない。
【００５３】
１実施の形態では、本明細書で記載される方法は、装置における不揮発性ストレージの近似的に４０バイトを使用する。別の実施の形態では、これは、装置の不揮発性ストレージに記憶される代わりに、Ｇｐｕｂ鍵のハッシュが装置の暗号化されたkeyblobに含まれる場合に、近似的に２０バイトに低減される場合がある。このケースでは、装置が暗号化されたkeyblobを復号するとき、装置は、Ｇｐｕｂハッシュを検索し、ハッシュを使用してＧｐｕｂ鍵をチェックし、Ｇｐｕｂ鍵を使用して全体のグループレコードの署名をチェックする。
【００５４】
本明細書で説明された動作はシーケンシャルプロセスとして説明されているが、動作のなかには、実際に、パラレル又は同時に実行されるものがある。さらに、実施の形態の中には、動作順序は、本発明の精神から逸脱することなしに再構成される場合がある。
【００５５】
本明細書で記載される技術は、特定のハードウェア又はソフトウェアコンフィギュレーションに限定されず、計算又は処理環境で用途を見出す場合がある。技術は、ハードウェア、ソフトウェア又は２つの組み合わせで実現される場合がある。技術は、モバイル又はステーショナリコンピュータ、パーソナルデジタルアシスタント、セットトップボックス、セルラーテレフォン及びページャ、並びに他の電子装置のようなプログラマブルマシンで実行するソフトウェアで実現される場合があり、それぞれの装置は、プロセッサ、プロセッサにより読み取り可能な記憶媒体（揮発性及び不揮発性メモリ及び／又はストレージエレメントを含む）、少なくとも１つの入力装置、及び１以上の出力装置を含んでいる。プログラムコードは、記載された機能を実行し、出力情報を生成するために入力装置を使用して入力されたデータに適用される。出力情報は、１以上の出力装置に適用される場合がある。当業者であれば、本発明は、マルチプロセッサシステム、マイクロコンピュータ、メインフレームコンピュータ等を含む、様々なコンピュータシステムコンフィギュレーションで実施することができることを理解されるであろう。また、本発明は、通信ネットワークを通してリンクされたリモート処理装置によりタスクが実行される、分散されたコンピュータ環境で実施することができる。
【００５６】
それぞれのプログラムは、処理システムと通信するための高水準の手順又はオブジェクト指向のプログラム言語で実現される。しかし、プログラムは、望まれる場合、アセンブリ又はマシン言語で実現される。いずれのケースでも、言語はコンパイル又はインタープレットされる場合がある。
【００５７】
プログラム命令は、命令でプログラムされる汎用又は特定用途処理システムに本明細書で記載された動作を実行させるために使用される。代替的に、動作は、動作を実行するためのハードワイヤロジックを含む特定のハードウェアコンポーネント、又はプログラムされたコンピュータコンポーネントとカスタムハードウェアコンポーネントの組み合わせにより実行される場合がある。本明細書で記載された方法は、処理システム又は本方法を実行する他の電子装置をプログラムするために使用されるそこに記憶された命令を有するコンピュータ読み取り可能な媒体を含む場合があるコンピュータプログラムプロダクトとして提供される。本明細書で使用される用語「コンピュータ読み取り可能な媒体“machine  readable  medium”」とは、コンピュータにより実行するための命令のシーケンスを記憶又はエンコード可能なメディアであって、コンピュータに本明細書で記載された方法のうちの１つを実行させるメディアを含む。用語「コンピュータ読み取り可能な媒体」は、したがって、限定されるものではないが、固体メモリ、光及び磁気ディスク、及びデータ信号をエンコードする搬送波を含む。さらに、当該技術分野において、動作を実行し、結果を生じさせるものとして、１形式又は別の形式において（たとえば、プログラム、手順、プロセス、アプリケーション、モジュール、ロジック等）ソフトウェアと言うことは一般的なことである。かかる表現は、プロセッサに結果を生じるアクションを実行させる処理システムによりソフトウェアの実行を説明する単なる速記のやり方である。
【００５８】
本発明は、例示的な実施の形態を参照して記載されてきたが、この記載は、限定的な意味で解釈されるべきではない。本発明が属する、当業者にとって明らかな、例示的な実施の形態の様々な変更は、本発明の他の実施の形態と同様に、本発明の精神及び範囲に含まれると考えられる。
【図面の簡単な説明】
【００５９】
【図１】本発明の１実施の形態に従って動作するＴＰＭ（Trusted  Platform  Module）で実現されるプラットフォームを特徴付けるシステムを例示する図である。
【図２】図１のＴＰＭを含むプラットフォームの第一の実施の形態を例示する図である。
【図３】図１のＴＰＭを含むプラットフォームの第二の実施の形態を例示する図である。
【図４】図２のＴＰＭで実現されるコンピュータシステムの例示的な実施の形態を説明する図である。
【図５】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信するシステムの図である。
【図６】本発明の実施の形態に係る署名されたグループでダイレクトプルーフキーを配信する方法のステージを例示するフローチャートである。
【図７】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図８】本発明の実施の形態に係るセットアップ処理を形成する装置を説明するフローチャートである。
【図９】本発明の実施の形態に係るプロダクション処理を形成する装置を説明するフローチャートである。
【図１０】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図１１】本発明の実施の形態に係るクライアントコンピュータシステムのセットアップ処理のフローチャートである。
【図１２】本発明の実施の形態に係るクライアントコンピュータシステム処理のフローチャートである。
【図１】
2008507203.tif 000003
【図２】
2008507203.tif 000004
【図３】
2008507203.tif 000005
【図４】
2008507203.tif 000006
【図５】
2008507203.tif 000007
【図６】
2008507203.tif 000008
【図７】
2008507203.tif 000009
【図８】
2008507203.tif 000010
【図９】
2008507203.tif 000011
【図１０】
2008507203.tif 000012
【図１１】
2008507203.tif 000013
【図１２】
2008507203.tif 000014
【国際調査報告】
2008507203.tif 000015
2008507203.tif 000016
2008507203.tif 000017
2008507203.tif 000018