本明細書で使用される表現「使用制限セット(use restriction set)」(または「使用制限セットUse Restriction Set)」は、コンテンツ(特定のタイプのもの)が対象である全ての使用制限のセットを示す。特定のコンテンツに対する使用制限セットは、任意の数の使用制限(例えば、一つの使用制限または多数の使用制限)を含むことができる。例えば、映画を特徴づける映像データおよび音声データに関する使用制限セットは、指定された場所(例えば、単一の装置またはネットワーク)内でのデータの使用をいっさい禁止することなく、その場所の外にデータを送ることを禁止することもあり得る。別の例に関して、映画を特徴づける映像データおよび音声データに関する使用制限セットは、指定の場所で映画を一回鑑賞(映像を一回鑑賞し、対応する音声データを再生)することを除いて、データの全ての使用を禁止することもあり得る(特定の装置または特定のタイプの装置セットによる一回の鑑賞および再生、あるいは特定のネットワークの任意の装置による一回の鑑賞および再生)。
本発明は、パーソナル・デジタル・ネットワーク環境でのコンテンツ保護のための方法および装置に関する。ここで、「パーソナル・デジタル・ネットワーク環境」(「PDNE」)とは「パーソナル・デジタル・ネットワーク」によって定義される環境を意味する。本明細書中での「パーソナル・デジタル・ネットワーク」(「PDN」)という表現は、使用制限セットに制約され、かつ少なくとも1つの方法(および必要に応じて、多くの、または全ての方法)でコンテンツを使用するように構成された該コンテンツ(例えば、デジタル画像データ、映像データ、および音声データ)を受信することが可能なネットワーク(複数の構成要素からなるネットワーク、各々の構成要素がハードウェアおよび必要に応じてソフトウェアまたはファームウェアの何らかの組み合わせから構成される)を意味する。PDNの一例は、ネットワーク・ユーザの家庭に設置されたネットワークであり、デジタル映像(および音声)記憶装置、レンダリング(すなわち、表示または再生)装置、ならびに処理装置と、そのような装置との通信または該装置の制御をおこなうことが可能なパーソナル・コンピュータ(またはオープン・アーキテクチャを有する他のコンピュータ・システム)を含む。単純なPDNの一例として、暗号化された映像および音声コンテンツを受信(例えば、高解像度DVDまたは他のディスクからコンテンツを読み取ることによる)し、該コンテンツの映像部分を表示し、該コンテンツの音声部分を再生するように、構成されたオープン・アーキテクチャ(例えば、周辺装置を有するパーソナル・コンピュータ)を有するコンピュータ・システムである。PDNEに入力されるコンテンツは、映像または音声データである必要はないが、デジタル的に格納されている任意の情報を示すデータ(例えば、限定されるものではないが、画像、テキスト、ゲーム、財務データ、および個人情報)そのものであるか、または該データを含むものである。
PDNは、ホーム・エンタティメント・ネットワークそのものであるか、またはそれを含むものある(しかし、必ずしもそうあるべきものではない)。例えば、財務あるいはデジタル映像またはデジタル音声でもない他のコンテンツを保護するために、PDNをビジネス環境またはその他にインプリメントすることもあり得る。
PDNは、パーソナル・コンピュータを有する場合もある一方で、それを必要としないものもある。例えば、PDNは、パーソナル・コンピュータ以外の装置の集合を含むことができるが、基本的にピア・レベルのコンシューマ・アプライアンス(例えば、音声/映像受信器、ディスク・プレーヤー、および/または記録/再生装置)であり、ネットワーク管理機能が集中型の主制御装置なしにそのような装置間に分散されている。ネットワーク管理機能の分散が必要とされるのは、例えば(例として)PDNの任意の装置(または多くの装置のうちのいずれかの装置)から基本的ネットワーク管理機能を実行する必要がある場合またはそれが要求される場合である。
オープン・アーキテクチャ(本明細書中では「オープン・アーキテクチャ・システム」または「オープン・システム」として言及される)を有するコンピュータ・システムは、エンドユーザがハードウェア構成要素および/またはソフトウェア・モジュールを付加または除去することが可能なように都合よく構成されたコンピュータ・システムである。コンシューマ・アプライアンスが設計およびインプリメンテーション機能をパーソナル・コンピュータと共有するとともに、ユーザの管理下にある(user-visible)インターフェースおよび機能性によって定義されるこれら2種類の装置間に差異がある点に留意する必要がある。
「視聴覚サブシステム」(または「視聴覚システム」)という表現は、本明細書でしばしば、映像データに応答して画像を表示することおよび/または音声データに応答して音を発することが可能なシステムまたは装置を意味する。視聴覚サブシステムは一般に、何らかの形態のシリアルリンクによって、PDNに対して連結する。視聴覚システムの一例は、HDTVモニタ(HDMIリンクを介して受信されたHDCP暗号化映像および音声データを解読することができるHDMI受信機を含む)、ラウンドスピーカー、デジタルビデオレコーダー(DVR)および音声/映像プロセッサを含む。
本発明の典型的な実施形態ではPDNに入力されるコンテンツが、それに課された規制と矛盾しない限り、PDN内で、該コンテンツに関係する知的財産権の所有者(または実施許諾者)(例えば、該コンテンツがPDNのユーザまたはオーナーによって法的に得られる合意の条件に背かない限り)によって、PDNに入力されるコンテンツをPDN内で使用することができる。例えば、PDNは、動画を定義する暗号化映像および音声データの衛星伝送を受信可能であると考えられており、またデータの使用制限セットは、データの復号を除くデータの全ての使用と、動画の任意の鑑賞回数(すなわち、映像データおよび/または対応の音声データを再生する任意の回数)とを、特定の期間(例えば、特定の日または週)内でPDNの任意の装置または複数の装置あるいは最大可能鑑賞数までの動画の鑑賞回数(PDNの任意の装置または複数の装置による)によって、禁止する。本発明の好ましい実施形態は、PDNEに入力されるコンテンツがPDNの装置によって、復号、複写、格納、表示、および/または再生され、PDNの装置間で伝送されることを可能する(ただし、このコンテンツの使用制限セットがそのような用途を規定するという条件で)。
本発明の典型的な実施形態では、PDNによって受信されたコンテンツの使用制限セットは、データ(本明細書ではしばしば、「権利データ」または「許諾使用データ」または「許諾使用フラグ」と呼ばれる)によって示され、該データはPDNEへの入力時のコンテンツに関連しており、さらにこの関連は、使用制限セットに位置する規則の基本的なセットにもとづいて、PDNE内でのコンテンツの存在を介して、安全に維持される。
本明細書中の暗号化データ(第一のプロトコルにもとづいて暗号化されたデータ)の「トランスクリプション」という表現は、暗号化データを復号化した後に第二のプロトコルにもとづいて復号化データを再度暗号化することを意味し、データが暗号化されていない形で装置の外側から決してアクセス可能にならないように、全てを物理的に安全な装置またはシステム(例えば、PDNの物理的に安全なサブシステム)内で実行した。第二のプロトコルは、概して第一のプロトコルと異なるものではあるが、第一のプロトコルと同じ場合もあり得る(例えば、元の暗号化実行で使用されたものとは異なる鍵が再暗号化で使用される場合)。本発明によれば、暗号化されたコンテンツが別のドメインから(例えば、ケーブルまたは衛星送達システム等の安全伝送ドメインから、またはDVDのようなディスクによる分配機構から)PDNEに入力される場合はいつでも、該コンテンツがPDNEの入力直後に所望のフォーマットに既に暗号化されていなければ、トランスクリプションが実行される。
現代のパーソナル・コンピュータ(PC)は、完全に計算のための機器から通信およびエンタティメントための機器へと進化した。その結果、ユーザは長編映画を含む予め録画された動画エンタティメントを自分のPCで鑑賞することが可能であることを期待している。さらに、プロセッサの性能が高まることで、ソフトウェアを使用してPC上で、例えばDVD動画をデコードおよび再生することが便利なのはあきらかである。しかし、エンタティメントに関する知的所有権(例えば、動画の著作権)の所有者は、関連コンテンツがそのようなPCに入力された場合にその特性の不正使用および複写に関して、間違いなく心配される。
コンテンツのコンシューマは、PDN(各々が、少なくとも1つのPCを含むこともあるが、多くの場合)を組み立て、各々のPDNに入力されたコンテンツが該コンテンツにおける知的財産の所有者(または許諾者)によって多少なりとも禁止されないPDN内で使用されるという了解の下で、コンテンツ・プロバイダがPDNに対してコンテンツを提供すると考えられる。しかし、そのような知的所有権の所有者は、関連したコンテンツがPDNに入力される場合に該所有者の所有権の不正使用および複写について、当然ながら心配する。このことは、PCのオープン・システム的性質が非常に価値あるコンテンツ(例えば音楽または映画)を受け取り、このコンテンツへのアクセスに対する関連かつ高価値である知的所有権の所有者の許諾を得ていない膨大な数のユーザに対してコピーを分配することを些細なことにするからである。
残念なことに、ソフトウェア・デコード(オープンまたはクローズド・サブシステム・デバイス・インプリメンテーションのいずれでも)のまさしくその性質により、コンテンツを復号するソフトウェアを用いる従来のPDNEでコンテンツを有効に保護することはできない。ソフトウェア・デコード・プロセスの間のいくつかの点で、鍵および復号コンテンツ(例えば、プレインテキスト映像および音声データ)がデバイスのレジスタおよび/またはメモリ内で使用可能であることから、関連する知的所有権の所有者の許諾なしで、鍵またはコンテンツの不正使用がおこなわれて分配される。
動画または他の作業の高品質コピーがおこなわれて広範囲に分配(例えば、インターネット)されると、そのようなコンテンツの知的所有権の価値が所有者にとっては急速に失われる。いくつかのそのようなコンテンツを保護するために、コンテンツ・スクランブリング・システム(CSS)を生成してDVDの映像コンテンツを暗号化した。CSSは、オリジナルの生映像データのMPEG圧縮バージョン上に用いられた暗号スクランブリング・メカニズムである。DVDコンテンツを再生し得る各々のデバイスは、該コンテンツを逆スクランブル(すなわち、復号)させる1つ以上の暗号化鍵を持たなければならない。
クローズド・システム(例えば、スタンドアローンDVDプレーヤーまたは他のスタンドアローンのコンシューマ周辺電子機器)は、鍵および復号化コンテンツがクローズド・システム内に留まるように構成される場合に、大幅なコンテンツ保護が提供され得る。鍵および復号化コンテンツともにクローズド・システムに留まるならば、コンテンツ保護法を「破る」ための簡単な方法は存在しない。「クローズド」システム(例えば、スタンドアローンDVDプレーヤー)は、ユーザがハードウェアまたはソフトウェアを付加または排除するための方法を提供するものではない。したがって、鍵がクローズド・システムの外に明らかになることがない方法で、該クローズド・システム内に鍵を格納および使用することを確保することは、比較的単純である。注目に値することは、意図されたクローズド・システムでさえ、オープン・システムと同様の脆弱性を被る点にある。例えば、ケーブルまたは衛星セット・トップ・ボックス(STB)がPCのものと類似のアーキテクチャを用いてインプリメントされるならば、ソフトウェアが秘密鍵を扱う場合、この秘密材料が損なわれるようにソフトウェアが修正される可能性がある。
しかしながら、クローズド・システム内でのコンテンツの保護は、他の問題を提示する。例えば、どのようにして鍵およびコンテンツが安全にクローズド・システムに送達されるか?もし、鍵およびコンテンツの両方が同一経路をたどるとするならば、良好な認証法の使用を排除するクローズド・システムへの固有の一方向の情報の流れが存在する。本発明の好ましい実施形態の重要な態様は、そのような実施形態が鍵およびコンテンツがPDN内、さらにPDN内のコンテンツ処理集積回路(例えば、本発明の異なる進入(Ingress)または退出(Egress)ノードの集積回路実施形態)内にある経路に従うことを可能にする(しかし、必要とはしない)。本発明のこれらの実施形態は、従来のクローズド・システムまたはオープン・システムにあるものよりも、秘密鍵材料が決してソフトウェアに直接可視化されることがないことを確かなものにすることで、鍵の配分および管理をより安全にすることができる。このことは、集積回路が、ソフトウェア・インプリメンテーションで達成されるものよりもかなり高い安全性と、パッケージングによる固有の物理的安全性によって、それらから情報を抽出するのに希で効果な装置により多く投資が必要になること、ならびに秘密情報を保護するために取り得る対策を提供するという、事実による。さらに、このアプローチはより安全である。なぜなら、それはより良い方法のインプリメンテーションが、デバイス(例えば、PDNのクローズド・サブシステム)が適切に許可されてコンテンツ(コンテンツのための使用制限セットに従う)の使用を可能にすることを確かめることを可能にする。本発明は、クローズド・サブシステムおよびオープン・システムでのコンテンツ保護に関する技術の現在の状態を改善する。
現在の標準精細度DVDコンテンツを、クローズド・システムよりもむしろオープン・システムであるPC上で、ソフトウェアでデコードすることができる。ソフトウェア・デコード・プロセスのある点で、CSS鍵および復号化映像コンテンツを、PCのレジスタおよび/またはメモリ中で利用可能である。PCで、ユーザが悪意のあるプログラムまたはドライバを故意に、または意図せずにロードすることもでき、またそのようなモジュールが鍵および/またはコンテンツにアクセスすることができるので、CSS保護が容易に回避される。実際、2通りの広く公表されたアタックがなされている。第一に、シン(Xing)ソフトウェア・デコーダのためのCSS鍵がソフトウェア・モジュールを逆行分析することによって見つかり、この鍵はハッカーの間で売買された。また、DeCSSと呼ばれているCSS暗号解読プログラムが作製され、配信された。
これまで、標準精細度ビデオの像質が劇場用品質より非常に低いので、コンテンツ保護システムのこれらの違反の経済損害は制限された。原動画の内在価値の多くは、精細度がより高いオリジナルから標準的TV精細度への変換で失われる。加えて、最近まで、ユーザ間で大きなファイル(復号化動画のようなもの)を転送することは非実用的であった。
今日、高精細度TV(HDTV)がよりいっそう普及するようになり、数年のうちに標準精細度TVに代わると思われる。コンシューマに対して十分な品質の予め記録された材料を提供するために、HDTV・DVD(HD−DVD)が設計されている。標準DVDプレーヤーの場合と同様に、CSSと類似の何かによるHD−DVD用のスタンドアローン・プレーヤーは、強いコンテンツ保護を提供しなければならない。
しかし、従来のオープン・システムまたは他の従来のPDNの中でコンテンツ(例えばHD−DVDコンテンツ)を復号化させることで、脆弱性が生ずる。この脆弱性は、コンテンツ保護システムで「ソフトウェア・ホール」としばしば呼ばれる。「ソフトウェア・ホール」脆弱性の本質は、オープン・システム(またはPDNの他の素子)内のソフトウェアが暗号化されていない鍵あるいはプレインテキスト・コンテンツを処理する場合、鍵またはコンテンツが不正使用のために容易に明らかにされるということである。例えば、ソフトウェアでプログラムされるオープン・コンピュータ・システムがコンテンツを復号するために使用される場合、鍵および暗号解読プログラムはプロセッサに見えなければならず、従って、他の潜在的に悪意のあるソフトウェアが該システムにロードされる。バイナリデータ(音響映像コンテンツを表す)の無許可のコピーがなされる場合、コピーが最初の劇場用リリースと本質的に同じ品質でコンテンツの表示および再生を許すので、ソフトウェア・ホールは深刻な問題である。加えて、最新のネットワーク技術は、動画のコピーのナップスターのような取引を容易に可能にする。その結果、知的所有権の所有者は、急速に所有権が役に立たなくなったことがわかる。
標準DVDのソフトウェア復号がまず最初に投入されたとき、「ソフトウェア・ホール」は完全に理解されなかった。復号ソフトウェアの範囲内の鍵は、わかりにくくされ、安全であると考えられた。シン・鍵が抜き出されたとき、この「不明瞭性を介したセキュリティ」は幻影的であることが急速に示された。それ以来、コンピュータ産業の努力の多くは、復号鍵(例えば、Microsoft Paradium Intiative, 後になって名称が変更されてNext Generation Secure Computing Base)を格納する安全な方法に使われた。しかし、これが鍵を盗むことをより難しくするにもかかわらず、それは鍵の安全を実質的には改善しているものではない。認可されたプレーヤーが手作業による介入(例えば、コンテンツ保護鍵を復号するために必要なパスワードを入力するユーザ)なしで鍵を得ることができる場合、同じ手法またはアルゴリズムを用いた他のいかなるプログラムでも鍵を得ることができる。そのようなプログラムが悪意ある方法に書かれる場合、例えば2、3秒のうちに他のインターネット越しに他の何百万人へ鍵が送られる。同様に、ソフトウェア・デコーダが鍵とプロセスまたはアルゴリズムがプロセッサに見えることを必要とするので、それは攻撃者によって観察および模倣され、結果としてコンテンツの無許可の復号になる。
上記関連の米国特許出願番号第10/679,055号(特許文献1)は、オープン・システム内のクローズド・サブシステムのコンテンツおよび鍵を保護することによってソフトウェア・ホール問題(オープン・システムで)を回避する方法および装置を説明するもので、「クローズド・サブシステム」は、サブシステム(例えば一つの集積回路)を意味し、該サブシステムは、それに対してハードウェアまたはソフトウェアを加えるか、そこからハードウェアまたはソフトウェアを削除するための便利な方法をユーザに対して提供するものではない。米国の特許出願番号第10/679,055号(特許文献1)は、クローズド・サブシステムは、クローズド・サブシステムの鍵データ(クローズド・サブシステムにより用いられる)と暗号化されていないコンテンツとがクローズド・サブシステムの外で開示されるのを防止するように設計されていなければならないことを教示している。
米国の特許出願番号第10/679,055号(特許文献1)のクローズド・サブシステムは、オープン・システムに「組み込まれる」ことといわれ、生のコンテンツを生成するためにハードウェアに入力されコンテンツを復号することによってさらに、クローズド・サブシステムの外でオープン・システムの任意の素子に生のコンテンツを明らかにすることなく異なるコンテンツ保護プロトコル(また、ハードウェア内、および生のコンテンツが発生する同一チップ内)を使用している生のコンテンツを再暗号化することによって、保護されたコンテンツを生成するように概して構成される。生のコンテンツを生成するか、再暗号化するために使用される生のコンテンツも鍵データも、クローズド・サブシステムの外でオープン・システムの任意の素子に明らかにされない。クローズド・サブシステムを、外部システム(オープン・システムに外部システム)に直接再暗号化コンテンツをアサートするように、構成することができる。外部システムは、暗号装置を含むことができ、またクローズド・サブシステムは、暗号装置が再暗号化コンテンツを復号することを可能にするために、必要に応じて鍵データを暗号装置(例えば、検証演算の一部として)に開示するように構成される。あるいは、再暗号化コンテンツを、外部システム(例えば、再暗号化コンテンツは、外部システムにオープン・システムを通して「トンネルを掘られる」)に、オープン・システムの少なくとも1つの他の素子によって、クローズド・サブシステムからアサートされる。
表示装置に対する送信側映像コンテンツのための産業における傾向は、シリアルリンク上にデジタル形式でコンテンツを送達することである。
暗号化または非暗号化データを伝達するための種々のシリアルリンクは、周知である。従来のシリアルリンクの一つは、推移最小化差次的シグナリング・インターフェース(「TMDS」リンク)として知られている。それは、主に家電(例えば、セット・トップ・ボックスからテレビジョン受信機への映像データの高速伝送)で使用され、あるいは主処理装置(例えばパーソナル・コンピュータ)からモニタへの映像データの高速伝送に用いられる。TMDSリンクの特性として以下のものが挙げられる。
1.映像データを符号化し、次に符号化されたワード(各々が8ビット・ワードのデジタル映像データを、伝送前に、符号化された10ビット・ワードに変換する)として伝送する。
a.符号化は、映像データに応答して一組の「帯域内(in−band)」語と一組の「帯域外(out−of−band)」語を決定する(符号器は映像データに応答して「帯域内」語だけを生成することができる。しかし、それは制御または同期シグナルに反応して「帯域外」語を生成することができる。各帯域内語は、1つの入力映像データ語の符号化から生じている符号化語である。帯域内語でないリンク上に伝送されるすべての語は、「帯域外」語である)。
b.映像データの符号化は、帯域内語が最小化される遷移であるように、おこなわれる(一連の帯域内語の遷移数が減少または最小化)。
c.映像データの符号化は、帯域内語がバランスの保たれたDCであるように、おこなわれる(符号化は、一連の帯域内語を伝送するために用いられる各々の伝送電圧波形が所定閾値を上回る基準電位で偏向されるのを防ぐ。具体的には、各「帯域内」語の10番目のビットは、そのその他の9つのビットのうちの8つが既に符号化されたデータ・ビットのストリーム内で1およびゼロの実行カウントの間のアンバランスを修正する符号化プロセスの間で逆転されている)。
2.符号化映像データおよび映像クロック・シグナルが異なるシグナルとして伝送される(映像クロックおよび符号化映像データをコンダクタ対上に異なるシグナルとして伝送される)。
3.3つのコンダクタ対を用いて符号化映像を伝送し、4番目のコンダクタ対を用いることで、映像クロック・シグナルを伝送する。
4.シグナル伝送は、送信器(概してデスクトップまたはポータブル・コンピュータまたは他のホストと関係)から受信器(概ねモニタまたは他のディスプレイ装置の要素)へ、一方向で生ずる。
TMDSシリアルリンクの使用は、デジタル・ディスプレイ専門調査委員会によって採用される「デジタル・ビジュアル・インターフェース(「DVI」リンク)である。DVIリンクは、2つのTMDSリンク(映像クロック・シグナルを伝送するための一般的なコンダクタ対を共有する)または1つのTMDSリンクとともに、送信器と受信器との間の付加的な制御ラインを含むようにインプリメントされている。DVIリンクは、送信器と、受信器と、該送信器と受信器とのあいだの以下のコンダクタとを有する。すなわち、4つのコンダクタ対(映像データ用のチャンネル0、チャンネル1、およびチャンネル2、ならびにビデオ・クロック・シグナル用のチャンネルC)、送信器と従来のディスプレイ・データ・チャンネル規格(Video Electronics Standard Association's “Display Data Channel Standard,” Version 2, Rev. 0, dated April 9, 1996)にもとづいて受信器に付随するモニタとのあいだの両方向通信用のディスプレイ・データ・チャンネル(「DDC」)ライン、ホット・プラグ・デテクト(HPD)ライン(その上でモニタが、送信器に付随するプロセッサがモニタの存在を確認するのを可能とさせるシグナルを送る)、アナログ・ライン(アナログ映像を受信器に送るため)、ならびに電力ライン(受信器と該受信器に付随したモニタとに対して直流電力を供給するため)である。ディスプレイ・データ・チャンネル規格は、送信器と受信器に付随したモニタとの両方向通信用プロトコルを特定するもので、モニタの種々の特徴を特定する拡張ディスプレイ識別(「EDID」)メッセージのモニタによる伝送と、該モニタに対する制御シグナルの送信器による伝送とが含まれる。
別のシリアルリンクは、シリコン・イメージ社(Silicon Image, Inc.)、松下電器(Matsushita Electric)、ロイアル・フィリプス・エレクトロニクス(Royal Philips Electronics)、ソニー社(Sony Corporation)、トムソン・マルチメディア(Thomson Multimedia)、東芝社(Toshiba Corporation)、および日立(Hitachi)が開発した「ハイ・デフィニッション・マルチメディア・インターフェース(High Definition Multimedia Interface)」(しばしば「HDMI」リンクまたはインターフェースと称される)である。
今日一般的なことは、「広帯域デジタル・コンテンツ保護(「HDCP」)プロトコルとして知られている暗号プロトコルを用いて、DVIまたはHDMIリンク越しに送られるデジタル映像を暗号化し、DVI(またはHDMI)受信器でデータを復号化することである。HDCPプロトコルは、インテル社(Intel Corporation)の文献「High-bandwidth Digital Content Protection System」Revision 1.0 (2000年2月17日付)(非特許文献1)およびインテル社(Intel Corporation)の文献「High-bandwidth Digital Content Protection System Revision 1.0 Erratum」(2001年3月19日付)(非特許文献2)に記載されている。これらの文献の両方のテキスト全体を参照により本明細書中に援用する。
HDCPプロトコルを実装しているDVI対応(またはHDMIに対応した)送信器は一連の疑似ランダム的に発生する24ビット・ワードをアサートする。そして、各々の稼働期間(すなわちDEが高いとき)中、シーアウト(cout)[23:0]として知られている。DVI対応システムでは、各々の稼働期間は稼働映像期間である。HDMI対応システムでは、各々の稼働期間は、ビデオ、オーディオ、または他のデータが送られる期間である。映像データを暗号化するために、シーアウト(cout)データの各々の24ビット・ワードは、送信器へのRGB映像データ入力の24ビット・ワードによる「排他的論理和」(送信器の論理回路)である。暗号化されたデータは、つぎに伝達のためにコード化される(TMDS標準に従う)。シーアウト(cout)語の同一シーケンスが受信器でも発生する。受信器で受信されたコード化かつ暗号化されたデータがTMDSデコーディングを経たあと、シーアウト(cout)データはデコードされたデータを解読して、最初の入力映像データを回復するために論理回路でデコードされた映像と共に処理される。
HDCP暗号化符号化映像データを送り始める前に、送信器と受信器は認証プロトコル(受信器が保護されたコンテンツを受けて、入力データの暗号化と送られた暗号化データの解読を目的として共有秘密値を確立する許可を与えられることを検証する)を実行するために二方向で互いに通信する。より詳しくは、送信器および受信器の各々は、キー選択ベクタとして知られている40ビット・ワードと多数の40個の56ビット秘密鍵で予めプログラムされる(例えば、工場で)。トランスミッタとレシーバの間で認証交換の最初の部分を開始させるために、トランスミッタはそのキー選択ベクトル(「AKSV」として知られる)とレシーバへの疑似ランダム的に発生するセッション値(「An」)とをアサートする。応答時、受信器は送信器に対して、そのキー選択ベクトル(「BKSV」として知られる)と中継器ビット(受信器が中継器であるかどうか示している)とを送り、さらに受信器も「AKSV」と40個の秘密鍵の受信器側アレイを用いた所定のアルゴリズムをインプリメントすることで秘密値(「Km」)を計算する。受信器からの値「BKSV」に応じて、送信器は値「BKSV」と40個の秘密鍵の送信器側アレイとを用いて同一のアルゴリズムをインプリメントすることで、受信器がしたように同一の秘密値(「Km」)を計算する。
各々の送信器および受信器は、共有値「Km」、セッション値「An」、および中継器ビットを用いて、共有秘密値(セッション鍵「Ks」)、認証が成功したかどうかを決定する際に使用される値(「RO」)、および認証交換の第2の部分の過程での使用のための値(「MO」)を計算する。中継器ビットが、受信器が中継器であることを示す場合だけ、認証交換の第2の部分を実行し、中継器に結合する一つ以上の下流の装置の状態が受信器の認証の取り消しを必要とするかどうか決定する。
認証交換の第1の部分の後、さらに(認証交換の第2の部分が実行されるならば)受信器の鍵選択ベクタが認証交換の第2の部分の結果として取り消されないならば、送信器および受信器の各々が56ビット・フレーム鍵Ki(暗号化を開始させるか、映像データのフレームを解読するために)、初期化値Mi、およびリンク完全性確認のために使用される値Riを生成する。Ki、Mi、およびRi値は制御信号(図1中の「ctl3」と確認される)に応じて発生し、それらは各々の垂直ブランキング期間中、送信器で適当な回路に受け取られ、DEが低い場合、送信器によって受信器にも送られる。図1のタイミング図に示すように、制御信号「ctl3」は、一つの 高稼働(high−going)パルスである。Ki、Mi、およびRi値に応じて、送信器と受信器の各々は、一連の疑似ランダム的に発生する24ビット・ワード・シーアウト(cout)[23:0]を生成する。送信器によって生成されるシーアウト(cout)データの各々の24ビット・ワードは、映像データのフレームの24ビット・ワード(映像データを暗号化する)を持つ「排他的論理和」(送信器の論理回路内)である。受信器によって生成されるシーアウト(cout)データの各々の24ビット・ワードは、暗号化された映像データ(これを解読することは、この暗号化された映像データを解読する)の第1の受信フレームの24ビット・ワードを持つ「排他的論理和」(受信器の論理回路中)である。送信器によって生成される24ビット・ワード・シーアウト(cout)[23:0]は、コンテンツ暗号化鍵(一連の入力映像データを暗号化するために)であり、また受信器によって生成される24ビット・ワード・シーアウト(cout)[23:0]は、コンテンツ解読鍵(暗号化された映像データからなる1つの受信および復号化ラインを解読するためのもの)である。
制御信号ctl3をアサートした後の各々の水平ブランキング間隔(データ使用可能信号DEの各々の立ち下がりエッジに応じて)の過程で、送信器は鍵再入力操作を実行し、受信器は次の稼働映像期間中にアサートされる同一シーアウト(cout)を変更するために同様の鍵再入力操作を実行する(所定の方法で)。これは次の垂直ブランキング期間まで続けられ、制御信号ctl3は送信器および受信器の各々がKiおよびMi値の新しいセット(制御信号ctl3の各々のアサーションに応じて増加しているインデックス「i」により)を計算するために、再びアサートされる。Ri値は、128フレームごとに1回1更新される。入力映像データの実際の暗号化または受信複合化映像データの解読(入力された映像、音声、または他のデータの暗号化あるいは受信複合化映像、音声、または他のデータの再暗号化(HDMI対応システムの場合)が、Ks、Ki、およびMi値の最新のセットに応じて生成されるシーアウト(cout)ワードを用いて、実行される(垂直または水平ブランキング期間外)。
送信器および受信器の各々は、図2に示されるタイプのHDCP暗号回路(本明細書中ではしばしば「HDCP暗号」と称する)を含む。HDCP暗号は、線形フィードバック送りレジスタ(LFSR)モジュール80と、LFSRモジュール80の出力にカップリングしたブロック・モジュール81と、ブロック・モジュール81のカップリングした出力モジュール82とを含む。LFSRモジュール80は、使用可能信号(図2に示される「再入力(ReKey)」信号)の各々のアサーションに応じて、セッション鍵(Ks)および現在のフレーム鍵(Ki)を用いて、再入力ブロック・モジュール81に使用される。ブロック・モジュール81はセッションの開始時に鍵Ksを生成し(およびモジュール80に提供)し、映像データ(フレームの最初の垂直帰線消去期間で起こる制御信号「ctl3」の立ち上がりエッジに応じて)で各々のフレームの開始時で、鍵Kiの新たな値を生成する(およびモジュール80に適用される)。「再入力(Rekey)」信号は、DE信号の各々の下降エッジ時(すなわち、各々の垂直および各々の水平ブランキング間隔の開始時)および信号「ctl3」の各々の上昇エッジ後の短い初期化期間(この期間中、モジュール81がフレーム鍵Kiの更新値を生成する)の開始時に、図2の回路に対してアサートされる。
モジュール80は4つの線形フィードバック送りレジスタ(異なる長さを持つ)と、シフト・レジスタにカップリングした結合回路とからなり、DEが低い場合に単一信号「ReKey」の各々のアサーション上で開始される一定数のクロック周期(例えば、56周期)の各々の間(すなわち、映像の各ラインの水平ブランキング間隔内)、ブロック・モジュール81に対して1クロック間隔あたり1つの出力ビットをアサートするように構成されている。この出力ビット・ストリームは、ブロック・モジュール81によって使用され、映像データの各々のラインの伝達または受信を開始する直前に、それ自体が再入力される。
図3に示すように、ブロック・モジュール81は2つの部分、すなわち「ラウンド・ファンクション(Round Function)K」および「ラウンド・ファンクションB」から構成される。ラウンド・ファンクションKは28ビットのレジスターKx、Ky、およびKzと、図3で集合的に「SボックスK」と標識された7つのSボックス(各々、ルックアップ・テーブルを含む4つの出力ビットSボックスによる4入力ビット)と、一次変換(linear transformation)ユニットKとを含み、図示どおりに接続している。ラウンド・ファンクションBは、24ビット・レジスタBx、By、およびBz、図3で集合的に「SボックスB」と標識された7つのSボックス(各々、ルックアップ・テーブルを含む4つの出力ビットSボックスによる4入力ビット)と、一次変換ユニットBとを含み、図示どおりに接続している。ラウンド・ファンクションKおよびラウンド・ファンクションBは、設計上同じであるが、ラウンド・ファンクションKは、LFSRモジュール80の出力に応じて、各クロック周期で1対の異なる28ビット・ラウンド鍵(KyおよびKz)をアサートするために、1クロック周期につきブロック暗号の1ラウンドを実行し、またラウンド・ファンクションBは、ラウンド・ファンクションKおよびLFSRモジュール80の出力からの各々の28ビット・ラウンド鍵Kyに応じて、1クロック周期につきブロック暗号の1ラウンドを実行し、各クロック周期で28ビット・ラウンド鍵(ByおよびBz)の異なる一組をアサートする。送信器は認証プロトコルの最初に値Anを生成する。また、受信器は認証手続きの間にそれに応答する。値Anはセション鍵を無作為化するために使用される。ブロック・モジュール81は、認証値(An)、および各フレーム(制御信号「ctl3」の各上昇エッジ)の最初に出力モジュール82によって更新される初期化価値(Mi)に応じて作動する。
各々の一次変換ユニットKおよびBは、1クロック周期当たり56ビットを出力する。これらの出力ビットは、各変換ユニットで8つの拡散ネットワークの結合した出力である。一次変換ユニットKの拡散ネットワークはそれぞれ、レジスタKyおよびKzの現在の出力ビットのうちの7つに応じて7つの出力ビットを生産する。一次変換ユニットBの拡散ネットワークの各々の4つは、レジスタBy、Bz、およびKyの現在の出力ビットのうちの7つに応じて7出力ビットを生産し、また一次変換ユニットBの4つの他の拡散ネットワークの各々はレジスタByおよびBzの現在の出力ビットのうちの7つに応じて7出力ビットを生産する。
ラウンド・ファンクションKでは、レジスタKyの1つのビットは、ReKey信号がアサートされる際、モジュール80によってアサートされたビット・ストリームからその入力を得る。ラウンド・ファンクションBでは、1ビットのレジスタByは、ReKey信号がアサートされ際時、モジュール80によってアサートされたビット・ストリームからその入力を得る。
出力モジュール82は、クロック周期について擬ランダム・ビット・シーアウト(cout) [23:0]の1つの24ビットのブロックを生成するために各クロック周期中にモジュール81によってそれ(合計112ビット)にアサートされた28ビット(By、Bz、Ky、およびKz)鍵上で圧縮オペレーションを行う。モジュール82の24出力ビットの各々は、9つのタームの排他的OR(「XOR」)から以下のように成る。すなわち、(B0*K0)+(B1*K1)+(B2*K2)+(B3*K3)+(B4*K4)+(B5*K5)+(B6*K6)+(B7)+(K7)、式中「*」が論理積(AND)オペレーションを表示し、「+」が論理XORオペレーションを示す。
送信器では、論理回路83(図2中に示す)は、シーアウト(cout)・データおよび各入力24ビットのRGB映像データ語の各24ビット・ワードを受け取り、映像データを暗号化するためにビットワイズ XORオペレーションを行い、それによって図2の中で示された、「データ暗号化(data_encrypted)」データの語を生成する。典型的には、受信器に送信される前に、暗号化されたデータに対して、続いてTMDS符号化がおこなわれる。受信器では、論理回路83(図2の中で示される)は、シーアウト(cout)・データおよび各回収された24ビットのRGB映像データ(回収されたデータに対してTMDS符号解読が行われた後)語の各24ビットのブロックを受け取り、回収された映像データを解読するためにビットワイズ XORオペレーションをおこなう。
明細書の全体にわたって表現「TMDS様リンク」はエンコード化データ(例えばコード化されたデジタル映像データ)を送信することができる連続するリンクを示すために使用され、送信器から受信器までのエンコード化データに関して、任意にクロックが示され、さらに任意に、TMDSリンクあるいはTMDSリンクの特性のすべてではないがいくつかを有しているリンクのいずれかである、あるいはそれを含んでいる送信器と受信器との間で1つ以上の追加の信号(例えばコード化されたデジタル音声データあるいは他のエンコード化データ)を送信することができる(二方向にあるいは一方向に)。TMDS様リンクの例として、Nビット・コード語(ここでNは10に等しくないことから、コード語が10ビットのTMDSコード語でない)として符号化データによってのみTMDSリンクと異なるリンクと、4つ以上あるいは3つ未満のコンダクタ対に対する符号化映像の送信によってのみ、TMDSリンクと異なるリンクとが挙げられる。いくつかのTMDS様リンクは、コード化された語に送られる入力映像データ(および他のデータ)をコードする。該コード化された語は、TMDSリンクの中で使用される特定のアルゴリズム以外にコーディング・アルゴリズムを使用して、入力されるデータより多くのビットを含み、帯域内文字としての符号化映像データ、および帯域外文字(HDMI準拠システムは、映像データのために使用された符号化スキームと異なる符号化スキームによる送信用の音声データをコード化)としての別のエンコード化データを送信する。それらが遷移最小化およびDC平衡基準を満たすかどうかによって基づいた帯域内あるいは帯域外文字としてその文字を分類する必要はない。もっと正確に言えば、他の分類基準を使用することができるかもしれない。符号化アルゴリズム(TMDSリンクの中で使用されるもの以外であり、TMDS様リンク内で使用することができるもの)の例は、IBM 8b10bコーディングである。その分類(帯域内および帯域外文字の間で)は、単なる遷移の数が高いか低いかに基づく必要はない。例えば、帯域内と帯域外の文字の各々の遷移の数は、単一の範囲(例えば、遷移の極小および最大数によって定義された中央の範囲)にあることもあり得る(いくつかのパッケージで)。
用語「送信器」は、リンクおよびさらに符号化に関するデータを送信することができおよび/または送信されるデータを暗号化するいずれのユニットも示されるように、広義に本明細書中で使用される。リンクを通して送信されたデータを受け取ることができる(また、任意にも、受信データを復号化および/または解読する)任意のユニットを示すために、用語「受信器」が広義に本明細書中で使用される。別段の定めがない限り、リンクはTMDS様リンクあるいは他の連続するリンクであってもよいが、そうである必要がない。用語「送信器」は、送信器の機能と同様に受信器の機能もおこなうトランシーバを示すことができる。
本明細書中で表現「コンテンツ鍵」は、コンテンツ(例えばビデオ、オーディオあるいは他のコンテンツ)を暗号化する暗号のデバイスによって使用することができるデータを示す。あるいは暗号化されたコンテンツを解読する暗号のデバイスによって使用することができるデータを示す。
本明細書中で用語「鍵」はコンテンツ鍵を示すために使用される。あるいは、生成するべき暗号のデバイスによって使用可能、さもなければ、コンテンツ鍵を得ることができる(コンテンツ保護プロトコルに従って)データを示す。表現「鍵」および「鍵データ」、本明細書中で互いに言い換えられる。
本明細書中に使用されるようなデータの用語「ストリーム」は、データがすべて同じタイプでソースから目的地デバイスに送信されることを示す。データの「ストリーム」のデータのすべてあるいはいくらかは、ともに単一の論理的な実体(例えば映像または歌、あるいはその一部分)を構成するものであってもよい。
用語「HDCPプロトコル」は、本明細書中で広義に使用されるものであり、従来のHDCPプロトコル、および非常によく従来のHDCPプロトコルに似ているが、1つ以上の点においてそこから異なる修正済のHDCPプロトコルの両方を示す。本発明の実施形態の一部は、HDCPプロトコルをインプリメントする。従来のHDCPプロトコルは稼動中の映像期間のブランク間隔ではなく稼動中の映像期間にデータを暗号化する(あるいは解読する)。改変HDCPプロトコルの例はコンテンツ保護プロトコルである。このプロトコルは、従来のHDCPプロトコルから、稼動中の映像期間(稼動中の映像期間に送信された映像データの解読と同様に)の間で送信されたデータの解読を遂行すること、あるいは、稼動中の映像期間(稼動中の映像期間に送信される映像データの暗号と同様に)の間で送信されるデータの暗号を遂行することのために必要とされる程度のみ、異なる。
従来のHDCPプロトコルの改変バージョンであるHDCPプロトコルの例は、従来のHDCPプロトコル上の「上流の」バリエーションである(「上流の」プロトコルと呼ばれる)。上流側プロトコルのバージョンは文献(Upstream Link for High-bandwidth Digital Contents Protection, Revision 1.00, by Intel Corporation, January 26, 2001)に記述されている(「上流明細書」と以下にいう)。上流側プロトコルでは、「送信器」は、グラフィックス・コントローラ(「受信器」として機能するグラフィックス・コントローラを備えた)と通信するために上流側プロトコルをインプリメントするために、ソフトウェアでプログラムされたプロセッサである。そのようなプロセッサは、「上流の」プロトコルに従って確認交換を実行した後にグラフィックス・コントローラに映像データを送ることができる。プロセッサおよびグラフィックス・コントローラは、グラフィックス・コントローラから表示装置まで暗号化された映像データを送るために形成されたパーソナル・コンピュータの要素である。グラフィックス・コントローラおよび表示装置は別の暗号プロトコル(例えば前述の従来のHDCPプロトコル(それをこのコンテキスト中で「下流の」HDCPプロトコルと呼ぶことができる))を実行するために形成すること、グラフィックス・コントローラ(ここで、「送信器」として機能する時間)が映像データを暗号化し、かつ表示装置に暗号化された映像を送ることを可能にすること、表示装置(「受信器」として機能)が暗号化された映像を解読することを可能にすることができる。
しかしながら、本発明とは対照的に、上流側プロトコルは、パーソナル・コンピュータまたはPDNのプロセッサの中にある生のコンテンツに適切な保護を提供するものではなく、プロセッサは上流側プロトコルのインプリメントのためにソフトウェアでプログラム(「送信器」として機能するプロセッサで)され、「受信器」として機能するグラフィック・コントローラと通信(および生のコンテンツを送達)すること、グラフィックス・コントローラ(この時、「送信器」として機能する)が生のコンテンツを暗号化し、かつ結果として生ずる暗号化コンテンツ(「下流」HDCPプロトコルに従って)を、オープン・システムに外部のデバイス(例えば表示装置)に送信することを可能にすることとが可能である。
上流側プロトコルに多くの構造的欠陥があり、上流側プロトコルをインプリメントするパーソナル・コンピュータまたはPDNは、攻撃者がパーソナル・コンピュータまたはPDN内に存在する生のコンテンツにアクセスすることができる少なくとも1つの攻撃に従う。そのような攻撃の例は、「仲裁者」攻撃(上流の確認要求(グラフィックス・コントローラからの)はその中で遮られる)である。また、対応する応答(グラフィックス・コントローラへの)が作り上げられる。上流側プロトコルをインプリメントするパーソナル・コンピュータは、1つの基本の理由で容易に攻撃される少なくともシステム・エレメント(アプリケーションおよびビデオドライバ)の2つは、ソフトウェアにある。それが、インターネットに迅速かつ容易に広まる可能性のある結果として生ずる任意の「ハッキング」によって、デバッグ、デコンパイル、変更、および複製される。したがって、上流側プロトコルは基本的に欠陥があり、意図したHDCP保護を当業者(および特別のハードウェアあるいはツールなしで)が回避する。さらに、これは大規模で起こるかもしれないし、容易に検知され、打ち消すことができない。
本発明の態様は、上記参照米国特許出願第10/679,055号(特許文献1)の教示の一般化である。本発明のこれらの態様およびいくつかの他の態様は、上記のソフトウェア・ホール問題の回避によることが含まれるPDNの中のコンテンツを保護する方法および装置である。本発明のいくつかの態様に従って、コンテンツの解読を遂行するために使用されるプレインテキスト・コンテンツおよび秘密は、PDNの中でハードウェア(例えば1つ以上の集積回路)内に保護され、PDN内のそのようなハードウェアに存在しようとしまいが、常に暗号化される。
米国特許出願第10/679,055号
「High-bandwidth Digital Content Protection System Revision 1.0」 (2000年2月17日付)、インテル社(Intel Corporation)
「High-bandwidth Digital Content Protection System Revision 1.0 Erratum」(2001年3月19日付)、インテル社(Intel Corporation)
一実施形態群では、本発明はパーソナル・デジタル・ネットワーク(「PDN」)であり、該ネットワークは、PDN(もし、コンテンツがPDNの入力上の所望のフォーマットで既に暗号化されていなければ)を入力するすべてのデジタル・コンテンツ(例えば、高精細度デジタル映像または他の映像データおよび/または音声データ)をトランスクリプトするように構成された「進入」回路構成(しばしば進入「ユニット」と呼ばれる)を含む。トランスクリプション(つまり内部PDNフォーマット内への再暗号化が後続する入力フォーマットからの解読)は、進入回路構成内のハードウェア内で安全におこなわれ、さらに、復号化コンテンツが進入回路構成外のハードウェアあるいはソフトウェアによって攻撃されるアクセス可能または脆弱になる前に、再暗号化が生じる。進入回路構成は、既にPDN(例えばコンテンツ分配元が創造性のあるPDNによってインプリメントされるのと同じコンテンツ保護アプローチを使用する場合)の入力上の所望の暗号化フォーマットにあるコンテンツ上でトランスクリプションをおこなわなかった。
「制御コンテンツ」という表現は、しばしば本明細書においてクラス内の暗号化されたコンテンツを示すために用いられる。このコンテンツは、「トランスクリプト・コンテンツ」(本発明にもとづくコンテンツをトランスクリプトすることによって生成されるコンテンツ)と、PDN(例えばPDNの進入回路構成内)内にあるトランスクリプションを経験していないが、PDN(例えば既にPDNの入力に際して所望の暗号化フォーマットにあるPDN内の暗号化されたコンテンツ)の回路構成によって生成されたトランスクリプト・コンテンツであるのと同じ暗号化フォーマットにあるPDNの暗号化されたコンテンツと両方を含んでいる。表現「PDN暗号化フォーマット」はPDNの進入回路構成によって生成(かつ出力)されたトランスクリプト・コンテンツの暗号化フォーマットを示すために使用される。本発明のPDNの典型的な実施形態のオペレーションでは、PDN暗号化フォーマットがあるトランスクリプト・コンテンツを生成するために、PDNの進入回路構成はコンテンツ上でトランスクリプションをおこなう。本発明のPDNのいくつかの実施形態では、PDN暗号化フォーマットがありうる(しかし必要がない)トランスクリプト・コンテンツを生成するために、PDNの退出回路構成(後述)はコンテンツ上でトランスクリプションをおこなう。
一実施形態群では、PDN(例えばPDNの進入回路構成中で生成されたトランスクリプト・コンテンツ、あるいは既にPDNの入力上のPDN暗号化フォーマット)にある暗号化されたコンテンツ内の制御コンテンツは、たとえ集積回路間で送られようと、あるいはさもなければソフトウェアによって、または任意の他の無許可の実体によって容易にアクセス可能であろうとも、PDN内および/またはPDNからの出力内での消費(例えば表示および/または再生)のためPDNの中の「退出」回路構成(しばしば退出ユニットと称される)内のハードウェアにそれが安全な形にて復号化されるまで、PDN内のPDN暗号化フォーマットで残る。任意に、プレインテキスト形態にコンテンツを入れるために、制御コンテンツ上で退出回路構成がハードウェア解読をおこなうだけでなく、プレインテキスト・コンテンツ(それは圧縮データである)上でさらなる処理をおこなう。例えば、退出回路構成は、コンテンツがPDNから外部の記録しプレイバック装置までエクスポートされることを可能にするためにプレインテキスト・コンテンツをDTCP暗号化を備えた従来のIEEE1394フォーマットに変換することができた。別の例については、退出回路構成はMPEGオーディオ、圧縮したプレインテキスト・コンテンツからの生のオーディオおよび映像データを生成するための映像減圧ハードウェアおよび生のオーディオおよび映像データ上でHDCP暗号化(またさらなる処理)をおこなうための回路構成を含むことができ、HDMIリンクによって受信器に安全に送信することができるHDCP暗号化HDMIフォーマット・データを生成する。典型的には、本発明のPDNは、使用あるいは進入または退出によるトランスファーのための進入あるいは退出回路構成中に秘密が存在しないことが、PDN内のソフトウェアによって、またはPDNの外にある任意の実体(例えばPDNによって受け取られたコンテンツのトランスクリプション用の進入回路構成、あるいは制御コンテンツの解読用の退出回路構成中で使用される鍵データ)によって解読された形式でアクセス可能であるようにして、インプリメントされる。
一実施形態群では、本発明のPDNは、ロックボックス(ロックボックス)回路構成を有する(しばしば本明細書中で「ロックボックス」と呼ぶ)少なくとも1つの装置を含んでおり、そのような装置(PDNの「ノード」と呼ばれ)はそれぞれ、ハードウェア(任意にまたソフトウェアあるいはファームウェア)を含み、さらに集積回路であるか、該集積回路を含むことができる。PDNは典型的には少なくとも2つのノード(例えば映像または音声の記録、プレイバック、および処理機能をインプリメントするノード)を含んでいる。ノードはそれぞれロックボックス回路構成と同様に進入回路構成および退出回路構成の一方または両方を含むことができる。(しかし必要がない)。進入回路構成(回路構成を含むノードは、しばしば進入ユニットとして呼ばれる)およびロックボックス回路構成を含むノードは「進入ノード」と呼ばれる。退出回路構成(退出回路構成を、本明細書中ではしばしば退出ユニットと呼ばれる)およびロックボックス回路構成を含むノードは、「退出ノード」として示される。進入ノードおよび退出のノードはそれぞれコンテンツ(例えばデジタル映像データおよびデジタル音声データのうちの1つあるいは両方)を受け取ることができ、該コンテンツは、使用制限セットに従い、使用制限セットによって禁止されない少なくとも1つの方法(任意に多数あるいはすべての方法で)でコンテンツを使用するように構成される。
本発明のPDNのいくつかの実施形態では、各ノード内のロックボックス、各進入ノード内の進入回路構成および各退出ノード内の退出回路構成は、ハードウェア中でインプリメントされる。本発明のPDNの一実施形態群では、各ロックボックス、各進入ノード内の進入回路構成および各退出ノード内の退出回路構成は、集積回路、またはマルチチップ・セット(どれがマイクロプロセッサを含むことができるかはファームウェアでプログラムされている)としてインプリメントされるが、ソフトウェアでプログラムされた外部CPUを含んでいない。いくつかの実施形態では、発明を任意に具体化するPDNのノードはそれぞれ、さらにファームウェアまたはソフトウェアでプログラムされた少なくとも1つの要素を含んでおり、これらは、秘密(解読された形式で)は、ハードウェア中にのみノード内で操作され、ノード中のソフトウェアあるいはファームウェアに対して、それらのいずれも明らかにされないように、ノードがそれぞれ構成される制限に従う。暗号化された秘密(例えば発明に従ってノード内のハードウェア中で暗号化された秘密)を、ノード内のソフトウェアあるいはファームウェア、あるいはノードの外側の実体に知らせることができる(暗号化された形式で)。したがって、各進入ノード内の進入回路構成および各退出ノード内の退出回路構成は、安全なハードウェアを含んでおり、ファームウェアまたはソフトウェアでプログラムされた少なくとも1つの要素をさらに含んでいるが、各ノード中の進入回路構成および/または退出回路構成は、ノード、あるいはノード中のソフトウェアあるいはファームウェアの外の任意の実体のそれらのうちのどれにも知らせることなく(解読された形式で)、ハードウェア中でのみ秘密(解読された形式で)を操作するように構成される。ノード内のロックボックスは典型的には安全なハードウェアを含んでおり(しかし含まれる必要はない)、ファームウェアあるいはソフトウェア(例えば、ロックボックスはファームウェアまたはソフトウェアでプログラムされたプロセッサである)でプログラムされた少なくとも1つの要素を含むことができるが、必ずしも含まれる必要はない。しかし、ノード(またノード内の各ロックボックス)は、それぞれ秘密(ノードを含むPDNの中のコンテンツ保護のために使用)を操作するように構成され、該構成は、どの秘密も、ノード(あるいはノード中のソフトウェアあるいはファームウェアに)の外の任意の実体に知らせられない(解読された形式で)ようにしてのみ、なされる。ノード(またはノード内のロックボックス)は、ノード(あるいはノード中のソフトウェアあるいはファームウェアに)外の任意の実体に対してこれが秘密のうちのどれでも明らかにされるのを(解読された形式で)防ぐ方法で遂行される場合、安全なハードウェア中で秘密(解読された形式で)を操作するように構成することができる。
進入ユニット(PDNの進入ノード内)はそれぞれ、PDNを入力する暗号化コンテンツを(ハードウェア内で)解読および再暗号化するように構成される。典型的には、解読および再暗号化(すなわち、トランスクリプション)は進入ユニット内のハードウェア内の安全なやり方でおこなわれ、復号化コンテンツが進入ユニットの外の任意の実体(ハードウェアまたはソフトウェア)による攻撃に対してアクセス可能または脆弱になる前に、再暗号化が生じる。進入ユニットを残す再暗号化されたコンテンツは、集積回路間で送られるか、さもなければ、ソフトウェア、あるいは無許可の実体によって容易にアクセス可能である場合に、PDN内の再暗号化された形式で残る。退出ユニット(PDNの退出ノード内)は、PDNによっておよび/または該PDNからの出力によって表示(および/またはプレイバック)するために、それぞれ安全な方法で再暗号化されたコンテンツを解読するように(ハードウェア中で)構成される。各ノード内のロックボックス回路構成(「ロックボックス」)は、格納をおこなうことが典型的におこなわれ、典型的には認可されたオペレーションをおこなうために少なくとも1つの進入および/または退出ユニットによって必要とされる秘密を格納する。進入ノードまたは退出ノード内のロックボックスが別のノード(例えば後のノードからコンテンツ鍵を得ること)内のロックボックスと通信する場合、それはロックボックス間で確立された安全なコミュニケーションチャンネル上でのみなされる。「コンテンツ鍵」は、PDN内のコンテンツの解読または暗号化するために使用され、PDN内でノードによって秘密にしておかれる鍵(できれば任意の暗号的に良好な源を使用して、安全に生成された鍵)である。ノード(例えば進入ノード内のロックボックスおよび進入回路構成との間で)内の通信は、任意の安全な方法(例えばノード間の通信が遂行されるのと同じ方法、あるいは異なる方法中の)で遂行することができる。PDNの別のノードに対する解読された形式で、ロックボックス、進入、および退出回路構成のいずれかによって使用(またはそれに送られる)PDNのノードに存在する秘密が送信されることはなく、また一般に、解読された形式中のそのような秘密は、PDNの外のPDNまたは任意の実体内のソフトウェアあるいはファームウェアによってアクセス可能ではない(それはノード内のハードウェアによってアクセス可能かもしれないが)。典型的な実施形態では、PDNは、コンテンツに無許可にアクセスする企てをくじくために有効な認証機構を使用するもので、攻撃者がノードをエミュレートしようとする(例えば、認証交換は、攻撃者にとって潜在的に有用な別の任意の秘密に移る前に、成功裡に進入(あるいは退出)ノードと別のノードとの間で終わらなければならず、一方、攻撃者は成功裡にそのような交換を終える能力を欠く)。本発明のPDNのそのような実施形態によって与えられた保護を回避するために、ノード内のロックボックス、進入および退出回路構成の1つ以上に分け、各々のオープン・ハードウェア・ユニット内での回路の改変(または本質的に改変)することで、非常に困難な(かつ典型的に非実用的な)オペレーションを実行することが必要である。さらに、この活動は、攻撃されることになっており、かつインターネット上に単に分配され、ダウンロードすることができない各物理システムのためにおこなわれなければならない(ソフトウェアで実施可能)。
本発明のPDNの典型的な実施形態の中で、順番に進入オペレーション(例えばコンテンツ鍵を使用するトランスクリプト・コンテンツへの)をおこなう進入ノードのために、ノードのロックボックスはその中に格納されたコンテンツ鍵を持たなければならない(または、それをローカルにキャッシュに入れて、かつそのようなキャッシュからそれを検索する能力によって、等しく、安全に外部に格納される)。あるいは、別のノードのロックボックス(ロックボックス)に安全にコンテンツ鍵を要求し得るに違いない。ノード(例えばノード内のロックボックスおよび進入回路構成間の通信)内の回路構成および通信は、任意の方法でインプリメントすることができるが、可能な限り簡易にすることが好ましい。PDN内のノード間で通信するために、ノード間に安全に通信することは、例えば、第三者は通信による通信の読み込み、修正、または応答ができない2つの認証されたノード間でのみ情報を交換することができることを保証するような方法で、可能であるに違いない。ノードがシングル・チップとしてインプリメントされる場合、チップのパッケージはノードの要素間の通信のための十分なセキュリティを提供することが可能であり、したがってそれ以上のセキュリティ対策(チップによって提供される物理的安全保護の外)が、要素間の通信に必要とされる。ノードの要素が同じPC基板上で、あるいは同じボックスあるいはキャビネット内でインプリメントされる場合、これらの要素間の安全な通信は十分な頑強性をもつ単純な暗号メカニズムを用いて実施可能と思われる(例えばセッション鍵を安全に作成し、かつ相互に同意することで)。対照的に、ノード間の通信は、標準化された方法で常におこなわれる(例えば、最初のやりとりは、エンドポイントを確証し、かつノード間の安全なチャンネルを設立するためにおこなわれ、その後、ノード間で送られる任意の秘密は安全なチャンネルで、ポイント間で、暗号化された形式で送られる)。例えば、2つのノードを含むPDN内で、複数のノードのうちの1つの製造元に所有権を主張できる暗号メカニズムを該ノードの要素間のノード間通信に使用することが可能であり、別のメカニズムを使用して他のノード内でノード間通信に使用し得る。しかし、両ノードとも標準化された方法で通信するように構成可能である。一実施形態群では、ノードは他のノードと通信するために対称な暗号化機構を使用するように構成される。また、ノードはそれについて同じ機構を要素間のノード内通信に使用するように構成される。したがって、ノードは、ノード内およびノード間通信のためのハードウェアの共有を許可する。(より具体的には、ノードは、互いが確証し、かつ後の対称的暗号化に使用される鍵を交換する非対称の機構を使用するように、典型的に構成されると考えられる。そのような認証と鍵のやりとりの後に、対象鍵を交換することが必要になるまで、対称な機構が使用され、この際に、ノードは、対象鍵の置換を遂行するために再び非対称の機構を使用すると考えられる。所望の間隔で対象鍵を最新の鍵に取り替えるために、あるタイプの鍵展開/スケジューリング方法を使用することができると考えられる)。同じ対称な機構を他のノードとの通信およびノード内通信に使用する予定があるノード製造時に、ノードのロックボックスへ同じ対象鍵を格納することが考えられる(例えば集積回路組み立て技術の結果)。また、ロックボックスを備えたノード内通信に参加することができるノードの他のすべての要素へそれを格納することが考えられる。(他のより一時的な対象鍵を転送して、鍵材料の再使用を縮小することもあり得る)。
本発明のPDNのいくつかの実施形態では、PDNのいくつかの装置はノード(ロックボックスを含む各ノード)であり、また任意に進入および(または)退出回路構成を含んでおり、さらにPDNの他の装置はロックボックスを含んでおらず、このようにノードではない。これはそうである必要がないが、本発明のPDNの典型的な実施形態の異なる要素(例えば異なるノード)は、別個に独立したサプライヤーによって製造されて提供されることが期待される。
本発明のPDNの典型的なインプリメンテーションでは、各進入(あるいは退出)ノード内の進入(あるいは退出)回路構成は単に認可されたオペレーションをおこなうように構成され、コンテンツ上で任意の認可されたオペレーション(例えば任意の認可された解読オペレーション)をおこなう前にロックボックスから少なくとも1つの秘密を得なければならない。しかし、各々のロックボックスは、他のノードが秘密によっておこなうことができることができた各オペレーションをおこなうことを他のノードが認められることを決定する第1の決定(例えば認証交換の結果の)のない別のノードに任意のそのような秘密を供給しないように、構成される。さらに、それは、適用可能なコンテンツ使用制限セットに関する情報を交換する上でノードに必要な場合もある。順番に、退出(進入)回路構成がコンテンツ上でオペレーションをおこなうために、2ノードが交渉する必要があることもあり、および/またはノードのうちの1つは他方にステータス情報を提供する必要があることもあり、および/またはノードうちの1つは、コンテンツに対する自分の権利を放棄する必要がある場合もある(例えば別のノードがコンテンツ上で特定の作業をおこなうことを可能にすること)。例えば、もし退出ノードが所定時間先ウィンドウ内の最初のノードに特定のステータス情報を提供しなければ、最初のノード内のロックボックスは、退出ノード(退出ノードに鍵あるいは他の秘密を供給した後)からのパーミッションを無効にする場合もある。例えば、退出ノードは最初のノードの中で、ロックボックスを伝える必要があってもよく、該最初のノードでは、退出ノード中の退出回路構成が、実際持っている(あるいはしていない)特定のコンテンツを与えるか、あるいは、別の場所で使用される形式にコンテンツを入れる。セキュリティおよびコスト理由の両方で、ノードの間の交換の複雑さを制限することはもちろん望ましい。いくつかの実施形態で、パーミッション取り消しを遂行するための最も複雑ではない(したがって好まれる)技術は、リクエストをアサートすることを退出か進入ノードに要求することが考えられ、該リクエストは、現状ステータスデータ(例えば、退出または進入ノードによってオペレーションのシーケンスのいくつが完了したか示すデータ)を含んでいる各リクエストで、一定間隔についてのパーミッションを継続するための第2の(パーミッション提供)ノードに対するものであり、ならびに退出または進入ノード(退出または進入ノードにおこなうべき退出または進入ノードによって必要とされる少なくとも1つの秘密を与えないでおくという意味で)に前もって定義したリクエストおよび/または状況データを受け取らない限り退出または進入ノードが実行を望むオペレーションが与えられたパーミッションを無効(自動的に)にするようにして第2のノードのロックボックスの構成するためのものである。他の実施形態では、これらの目的は退出ノードが自分のステータスおよび破棄をモニタし、コンテンツ鍵は使用制限セット条件が満たされることをもはや保証することができないことで満たされる。
前節に記述されたタイプの技術を用いることで、PDN内の退出および進入回路構成はすべて公認の方法、および公認のフォーマット以外でコンテンツを生成すること(あるいは出力)することを妨げることができる。例えば、PDNがHDCPに暗号化されたフォーマットでのHDMIリンクに関するコンテンツを出力することを認められる場合、ロックボックスから得られた1つ以上の秘密を使用するようにPDNの退出回路構成を構成することが可能であり、それによって再暗号化されたコンテンツ(PDNの進入回路構成によって生成された)を解読すること、HDCPプロトコルを用いてコンテンツを、プロトコルを再暗号化すること、およびHDMIリンクに対する送信用HDCPに暗号化されたコンテンツをフォーマットすること、さらに許可されたHDMI受信器(例えば高精細度モニタ内)が、送信されたコンテンツを解読し表示することができるように、PDNの外のHDMI受信器へのHDMIリンクに対するフォーマットされたコンテンツを送信することをおこなう。例えば、退出ノードはビデオストリームを解読し続けることができ(解凍されることを可能にする)、言い換えればHDMIリンクに対する送信用HDCPの下で再暗号化される。HDCP接続がもはや有効ではないとHDMIリンクが報告する場合、退出ノードはストリームの解読を停止し、コンテンツ鍵を廃棄し、例外を報告する。別の例では、本発明のPDNの実施形態がプレインテキスト・コンテンツの下の計られたアナログ・バージョンを出力することを認められる場合、プレインテキスト・コンテンツを示すアナログ信号の生成(PDNの進入回路構成によって生成された再暗号化コンテンツを示すデジタルデータに応じて)を許可し、PDNから受信器(例えばアナログ表示装置装置)までアナログ信号を出力するために、ロックボックスから得られた1つ以上の秘密を使用して、その退出回路構成を構成することが可能である。両方の例において、ロックボックスは、退出ユニットは秘密が退出ユニットを実行可能にする各オペレーションをおこなうことを認める最初の決定なしに((例えば認証交換の結果として)退出ユニットに任意のそのような秘密を供給しないようにして)、本発明に従って構成される。退出ノードは、コンテンツが置かれることを意図した使用を性格に報告するために、依存することができ、述べられた使用がコンテンツに関連した使用制限セットに違反するであろうロックボックスは退出ノードに概してコンテンツ鍵を供給しない(制限セットの使用)。
ロックボックス(発明にもとづくPDNのノードで使用するために)は、他のノードは秘密によって他のノードが実行される各オペレーションをおこなうことが認められることを最初に決定(例えば認証交換の結果)せずに別のノードに任意の秘密を供給しないように、概ね構成される。ロックボックスがロックボックスと同じノードに永久にインストールされた退出(あるいは進入)回路構成に秘密を供給する場合(他のノードが)、そのような認証やりとりは暗黙に行われる可能性がある(起こり得る)(例えば、ロックボックスおよび退出回路構成の両方が1つのセットトップ・ボックス内に半永久的にインストールされた、異なるチップ内にインプリメントされる場合)。共通の装置(ノードとして使用可能)に永久にインストールされたロックボックスおよび退出(あるいは進入)回路構成の間で暗黙認証交換をおこなうことが可能であり、装置製造中の場合、共有秘密は、ロックボックスおよび退出(あるいは進入)回路構成の各々に、半永久的に格納される。(例えば、シリコンへベークすることにより、あるいはそうでなければ共有秘密を焼くことによって、さもなければ退出または進入回路構成、およびロックボックスの各々に共有秘密をバーニングすることで)。その後、互いに確証するためにロックボックスおよび退出(あるいは進入)回路構成によってそのような共有秘密を使用することが可能であり、それらは、ロックボックスから退出または進入回路構成に鍵材料を分散する(例えば、鍵再使用を制限しそのために装置の様々な攻撃に対する感受率を減少させるように、コンテンツ上で作動するために退出または進入回路構成によって使用される鍵を周期的に更新すること)。
一実施形態群では、PDNを入力するコンテンツは、ハードウェア(例えばチップ内の進入回路構成中の)中の復号化であり、本発明にもとづいて、プレインテキスト・コンテンツがハードウェアの外で露出される(例えば、復号化コンテンツが進入回路構成を含むチップを残す)前に、復号化(プレインテキスト)コンテンツはハードウェア内で再暗号化される(例えば、256ビットのAESおよびCTRモード、プロトコルを使用して)。このように、単に再暗号化されたコンテンツ(コンテンツのプレインテキスト・バージョンでない)は、露出した外部の安全な解読ハードウェアである(該ハードウェアはさらに再暗号化をおこなう)。また、コンテンツはハードウェア内の最初の解読の後でさえPDN内に十分に保護されるそれは本発明にもとづくハードウェア中の発明に従って復号化され(例えばチップ内の退出回路構成の中で)、その際にそのようなハードウェアの外側での復号化(プレインテキスト)コンテンツの露出を伴わない。
別の実施形態群では、本発明は、PDNを入力し、PDNの内の再暗号化された形式でコンテンツを保存するコンテンツ上でハードウェアの中で解読および再暗号化(トランスクリプション)をおこなう方法と装置であって、それがトランスクリプション・ハードウェア(例えばチップ内の進入回路構成)を残した後に、また別のハードウェア・ユニット(例えば別のチップ内の退出回路構成)を入力する前に行われ、その中で、それがディスプレイおよび(または)PDNによる(または出力された)プレイバックに関して復号化(任意にさらなる処理を実施する)される。制御コンテンツのコンテンツトランスクリプションあるいは解読を遂行するためにPDN内で使用される秘密(例えば鍵データあるいは証明書)は、PDNの外のPDNおたは任意の実体内のソフトウェアあるいはファームウェアによる解読された形式でアクセス可能ではない。本発明PDNの多くの実施形態でロックボックス、進入、および退出回路構成は、秘密にしておかれる必要はないことは、認識すべきである。実際、もしそれらが暗号的に証明可能ならば、そのような証明書はしばしばPDN内に公かつと自由に共有される(秘密として扱われたのではなく)(信頼の源へデジタル署名を通じて追跡可能)。
いくつかの実施形態では、本発明のPDNはオープン・システム・アーキテクチャを有するコンピュータ・システム(例えばPC)である。例えば、従来のオープン・コンピュータ・システムは、本発明にもとづいて改変され、第1のノード、進入ノード、および退出ノード(各ノードは一般に、個別のチップとしてインプリメントされるが必ずしもそうであることはない)を含み、システムに入力されるコンテンツが本発明にもとづいてシステム内でコンテンツを保護するために、進入ノードの進入回路構成内でトランスクリプトされるようにしてノードが連結かつ構成された進入ノードを有する。
本発明の他の態様は、PDN(例えば、オープン・コンピュータ・システム)内のコンテンツを保護する方法であり、該方法は、本発明のPDN(またはロックボックス回路、進入回路構成、および退出回路の1つ以上)、PDNで使用されるロックボックス回路(例えば、チップ)、PDNで使用される進入回路構成(例えば、チップ)、PDNで使用される退出回路(例えば、チップ)、パーソナル・コンピュータでの使用のためにバス(例えば、PCIバス)に沿って接続された進入、ロックボックス、および退出チップを含むカード(例えば、マルチメディア・グラフィック・カード)、さらにPDNでの使用を目的として構成され、かつロックボックス回路、進入回路構成、および退出回路の少なくとも1つを含む装置(例えば、セットトップ・ボックスまたは映像受信器またはプロセッサ)をインプリメントすることができる。
一実施形態では、本発明はPDNでの使用を目的として構成された装置(例えば、遠隔の出所、あるいは映像受信器またはプロセッサからコンテンツを受信するためのセットトップ・ボックス)である。本装置は進入(あるいは退出)回路構成およびロックボックス回路構成を含んでおり、本発明のPDNの少なくとも1つの実施形態で使用するために構成された任意のタイプである。1つのタイプのそのような装置は、N個の異なるフォーマットのうちの任意のものを有するコンテツ(例えば、例えばN異なるコンテンツ・プロテクションプロトコルのうちのいずれかにもとづく暗号化されたコンテンツ)を受信して解読するように、単一フォーマット(例えば、単一コンテンツ・プロテクションプロトコルに基づいて保護)のみを有するコンテンツのトランスクリプトされたバージョン(を出力する進入回路構成を用いるように、構成されている。そのような装置の別のタイプは、退出回路を用いて、1つのフォーマットのみを有する制御コンテンツ(例えば、トランスクリプト・コンテンツ)を受信かつ復号するように構成されており、復号化コンテンツを処理して任意のM個の異なるフォーマット(M個の異なるコンテンツ保護プロトコルのいずれかに基づいて暗号化された出力コンテンツ)のいずれかを有する出力コンテンツを生成する。なぜなら、これらのタイプの装置は、本発明にもとづいて構成されており(すなわち、単一のコンテンツにもとづいて暗号化された制御コンテンツを、その進入ユニットが出力し、その退出ユニットが受信する)、2つのそのような装置が連結されることで、N個の異なるフォーマットのいずれかを有するコンテンツを受信し、それに応じてM個の異なるフォーマットのいずれかを有する出力コンテンツを生成し、さらに安全なハードウェアの外側のコンテンツのプレインテキスト・バージョンを露出せずに、コンテンツを保護(例えば1つの装置内の進入チップあるいは別の装置内の退出チップの外部で)する。対照的に、従来の装置は、N個の異なるフォーマットのいずれかを有するコンテンツを受け取ること、それに応じて、M個の異なるフォーマットのうちのいずれかを有する出力コンテンツを生成すること、その一方で装置の外側のコンテンツのプレインテキスト・バージョンを露出せずに、コンテンツを保護することが可能なものであり、より大きな複雑度を有する(すなわち、(N*M)倍の複雑度)。NおよびMの各々は、1よりも大きく、NおよびMの少なくとも1つが2よりも大きいと仮定すると、従来の装置は、従来の装置と同じ全体的な能力を持つ2つの本発明の装置(一緒に考える)よりも複雑度が高くなるだろう。従来の装置は、NおよびMの各々が2を上回る場合、そのような本発明の対をなした装置(一緒に考える)よりもかなり複雑度が高いと考えられる。
いくつかの実施形態では、いくつかの実施形態では、本発明のロックボックスは、秘密の使用が規定時間の間のみ認可され、その結果、秘密には前もって定義した終了時間があるコンテンツ・プロバイダあるいは制限を備えた他の外部の出所から受け取られた各々の秘密(例えば、鍵データの組)に対して適当な時間でアクセスできなくなるように(例えば、削除)構成される。好ましくは、ロックボックスはコスト効率の良い方法でこの機能をおこなうように構成されており、例えば、単純で安い回路構成の使用があり、該使用はN秒間隔中で最も近い整数に切り上げた前もって定義した終了時間を超えて秘密の不正使用を防ぐもので、ここで、Nは1を越える少数であり、また非常に、より高価な回路構成がロックボックスに含まれる必要があり、これによって正確な所定の終了時間を越える秘密の不正使用を防ぐ)。例えば、ロックボックスは、日数による使用許可期限を数秒でも過ぎると秘密の不正使用を防ぐ、単純で安い回路構成を含むことが好ましいと考えられ、かなり高価な回路構成が使用許可期限終了を1分以内でも超える秘密の不正使用を防ぐことが要求されるだろう。いくつかの実施形態では、ロックボックスは単調増加カウンタ(ロックボックスが電源オフの時点でカウントがゼロに復帰しない)または満了期間を有する鍵をいつ削除(またはさもなければアクセス不可能)するかを決めるために使用する不正改ざん防止クロック(ロックボックスが電源オフになってもリセットされない)を含む。あるいはロックボックスは終了時間がある鍵をいつ削除するか(あるいは、そうでなければアクセス不能)決めることでの使用を現在時間データを得るために外部の不正改ざん防止時計に周期的に(あるいはパワーアップで)アクセスするように構成される。
典型的な実施形態では、本発明のロックボックスは、PDNの内に他の装置(ノード)と通信するように、および/またはンターネット(または別の方法で)によってPDNの外にある実体と通信するように構成される。例えば、ロックボックスの集積回路インプリメンテーションはロックボックスチップおよび他のチップが接続されるPCIバス上のソフトウェアによってチップ対チップの通信をおこなうように構成することができる。別の例については、ロックボックスは遠隔装置で通信すること(インターネットおよびPDNソフトウェアによって)のためにSSL終了回路構成を含むことができる。例えば、ロックボックス内のSSL終了回路構成を使用して、ロックボックスは、PDNのソフトウェアにインターネット(例えば、PDNのPCのTCP/IP機能を使用して)にログオン可能である。また、中継は、SSL終了回路構成への、あるいはその回路構成からのメッセージ(インターネットを介して受信または送信)を暗号化する場合もある。遠隔装置は、さらにPDNのPC上の管理ソフトウェアにロックボックス内のSSL終了回路構成にインターネット上の暗号化されたメッセージを送る装置に必要なTCP層機能をおこなわせることが可能である。SSL終了回路構成は、メッセージを解読し、かつロックボックスの応答を暗号化するために必要とされるSSL層機能をおこなうことができた(PDNソフトウェアによってインターネット上に送られる)。あるいは、ロックボックスは、PDNの内に装置(ノード以外の)と通信するかつ、または、PDNの内のノードの間の通信に使用されたプロトコルの拡張を使用して、PDN(例えばインターネット上の)の外の装置と通信するように構成することができる。このプロトコルは、典型的には社会鍵暗号手法(署名およびある暗号化用の)および証明書を使用する単純なチャレンジ−レスポンスプロトコルのある形式になる。
本発明のPDNの好ましい実施形態の中で、プレインテキスト・コンテンツも再暗号化(進入ユニットで)に使用された任意の秘密(例えば鍵データ)も、再暗号化されたコンテンツ(退出ユニットで)の解読(すなわち他の機能)は、任意のノード、無許可にそれにアクセスしようと努力するユーザか実体にアクセス可能な(あるいは少なくとも、容易にアクセス可能な)PDNのリンクあるいはインターフェースで存在する。これらの実施形態の典型的なものでは、PDNに装置内部(あるいは外部)上で走るソフトウェアまたはファームウェアは、プレインテキスト・コンテンツあるいは任意のそのような秘密にアクセスしない。例えば、ソフトウェアは特定の鍵を使用して、検索されたコンテンツを解読し、かつ出力のための特定のフォーマットでの復号化コンテンツを再暗号化するためにPDNの中の記憶から特定のコンテンツ(それは以前に進入ユニットによってトランスクリプトされている)を検索するように退出ノードに命じることもあり得るが、ソフトウェアは鍵(恐らく暗号化された形式以外)を見ず、コンテンツのプレインテキスト・バージョンを見ない。より正確に言えば、退出ノードは、退出ノードのロックボックスの内に格納された秘密(鍵を含んで)の使用により、あるいは別のノードから指定されたオペレーションをおこなうのに必要なパーミッションおよび秘密(鍵を含む)をすべて求めることにより、命令に応答する。退出ノードがオペレーションをおこなうのを認められ、第2のノードが、暗号化された形式(退出ノードだけがこれらのアイテムを解読することができるそのようなもの)中にのみ退出ノードにアイテムを供給することを第2のノードが決める場合のみ、別のノードは単に退出ノードにこれらのアイテムを供給する。いくつかの実施形態では、PDNのノード内に埋込み型プロセッサ(例えばマイクロコントローラ)上で走るファームウェアは、プレインテキスト・コンテンツまたはコンテンツ(進入ユニットで)の再暗号化に使用された秘密または再暗号化されたコンテンツ(退出ユニットで)の解読(しかしプレインテキスト・コンテンツも任意のそのような秘密も任意のノードで存在しない)およびPDNのリンクあるいはインターフェース(無許可にそれにアクセスしようと努力するユーザか実体にアクセス可能である(あるいは少なくとも、容易にアクセス可能な)アクセスしてもよい。各ノード内のロックボックス回路構成は、ソフトウェアが指定された実体に伝えるメッセージ(ロックボックス回路構成のアウトボックス内)があることを示すためにソフトウェアへのフラグをアサートすることができる点を除いて、受動の実体になりえる。あるいは、ノードを備えたロックボックス回路構成は、DMAエンジンあるいは専用マイクロコントローラを使用する技術のような(しかし制限されていなかった)メッセージを他の実体(例えば他のノード)へ渡すための他のある技術をインプリメントすることができる。ロックボックス回路構成のアウトボックス内のメッセージが述べられるべきであることを示すフラグに応じて、ソフトウェアは、指定された受信者(典型的には、ソフトウェアがそれを解読することができないように、メッセージは暗号化される)のインボックスのアウトボックスからメッセージを述べることができる。他の実施形態では、ノード内のロックボックス回路構成は、アクティブエンティティ(例えばそれが積極的に他のノードへのメッセージを送信することができ、活動的に、鍵管理オペレーションおよび他のオペレーションをおこなうことができるという意味で)になりえる。秘密資料必要を含んでいるメッセージだけ(ロックボックスの間で送られた)暗号化される、しかし、ロックボックス(好ましい本発明の実施形態の中の)の間で送られたメッセージはすべて、少なくともデジタルで署名される(それらの起源を識別しそれらが変更または再現されないしことを保証すること)。
発明の別の態様は、システムのハードウェア・サブシステム内のコンテンツの暗号化および解読を安全におこなうコンテンツ保護方法および装置であり、該システムはハードウェアとソフトウェアの両方を含んでいるが、無害な実体(「仲裁者」)としてシステムのソフトウェアを使用する。この実体は、ハードウェア・サブシステム間でメッセージ(それらは典型的に暗号化されたメッセージあるいは署名されたメッセージである)を送達するが、メッセージを理解することができない(あるいは暗号化されるメッセージのものを理解することができない)。例えば、メッセージが暗号化された秘密を示す暗号化されたメッセージである場合(例えばハードウェア・サブシステムの1以上ずつの使用のためのコンテンツ鍵)、それがそれらを解読するために必要とされる鍵を持っておらず、それらをそうでなければ解読することができない場合、ソフトウェアはメッセージを理解しない場合がある。ソフトウェアは総合体系の信頼できるハードウェア・サブシステム間の安全なチャンネルをインプリメントするために使用することができる。また、これらの安全なチャンネルは、保護されるコンテンツに対する「仲裁者」攻撃に対して免疫がある。システムは、メッセージを送達するために仲裁者としてソフトウェアを使用する。
ハードウェアとソフトウェアの両方を含んでおり、発明を具体化するいくつかのシステムでは、システムのハードウェア・サブシステム間のメッセージを送達するソフトウェアはいくつかのタイプのメッセージを理解する場合がある(むしろ行う)。例えば、ソフトウェアは、特定の鍵あるいは他の特定項目がメッセージの送信者に送られることを要求するためにシステムの多くの(あるいはすべて)要素に放送されることになっている各メッセージを理解するかもしれない。メッセージを暗号化することが不必要で不適当でソフトウェアがメッセージ(例えばそれを放送するかそれをより有効に送る)を理解する必要がある場合、そのような同報通信メッセージ(あるいは別のタイプのメッセージ)は、デジタル署名を使用し、ソフトウェアへの解読された形式でアクセス可能になって保護することができる。
発明の一実施形態群では、保護されるコンテンツはあるか、あるいは最初のコンテンツ・プロテクションプロトコルを使用して暗号化された映像データ(例えば高精細度デジタル映像データ)を含んでいる。コンテンツが進入ユニットを入力する場合、それは進入ユニットでハードウェアの中に復号化(プレインテキストの形に置かれた)である。また、プレインテキスト・コンテンツは、それが進入ユニットを残す前に異なるコンテンツ・プロテクションプロトコルを使用して再暗号化される。再暗号化されたコンテンツ(時々「抑制された」コンテンツあるいは「トランスクリプトされた」コンテンツとここに呼ばれた)は、間に転送し、かつ、またはそれが退出ユニットを入力するまで、PDNの要素内に格納することができる。退出ユニットで、再暗号化されたコンテンツは再び復号化(プレインテキストの形に置かれた)である。さらに、処理されて、プレインテキスト・コンテンツは任意に一層である。また、プレインテキスト・コンテンツ(あるいはそれの処理されたバージョン)は、退出ユニットからの出力のために次に再暗号化され、そうでなければフォーマットされる。例えば、退出ユニットはHDCPプロトコルに従ってプレインテキスト・コンテンツを再暗号化し、外部視聴覚システムへのHDMIリンク(あるいはDVIリンク)による退出ユニットからの出力のためにHDMI標準(あるいはDVI標準)に従ってHDCPに暗号化されたコンテンツをフォーマットすることができる。あるいは、退出ユニットは、TMDS様リンク以外にHDMIまたはDVIのリンク以外に、連続するリンク、あるいは他のあるデジタルかアナログ・リンクに関してTMDS様リンクの上の送信のためのフォーマットでのコンテンツを出力する。
発明に従って保護されたコンテンツは映像または音声データでありうるが、である必要がない。そのようなコンテンツ(例えば、限定されるものではないが、絵、テキスト、および個人情報)はデジタルで格納することができる任意の情報を示すデータであるか、あるいはそれを含むものである。
好ましくは、本発明のロックボックスはインプリメントするのに有効なコストであるように所望のコンテンツ保護機能のインプリメントのためにハードウェア機能の最小のセットだけを含めるためにインプリメントされる。例えばロックボックスが有限回にのみ有効な任意の秘密を受け取らず格納しないアプリケーションで、ロックボックスはロックボックスに所定時間先間隔の終わりに格納された秘密の削除のためにハードウェア(例えば単調増加カウンタか不正改ざん防止時計を含むハードウェア)なしでインプリメントすることができる。
一実施形態群では、パーソナル・コンピュータは、システム・バス(例えばPCIバス)に沿って接続している3つの別個の集積回路(進入ノードをインプリメントするもの、退出ノードをインプリメントする別のもの、および別のノードをインプリメントする第三段)を含むように、本発明に従って改変される。3つのチップはパーソナル・コンピュータ中の容易な設置のために構成されたカード(例えばマルチメディア・グラフィック・カード)上でインプリメントすることができる。あるいは、3つのチップは個別のカード(各々パーソナル・コンピュータ中の容易な設置のために構成された)上でインプリメントすることができる(例えばチップが、それらが安全な方法で互いに伝達することができる安全なチャンネルを設立するために互いに明示的な認証やりとりをおこなうように構成される場合)。本発明の他の態様は、パーソナル・コンピュータで使用される、進入ノード、ロックボックスおよび退出ノード・チップである。
別のクラスの実施形態では、パーソナル・コンピュータは、1ノードのみを含める発明に従って改変である;前節中の例でのような3の個別のノードではない。このノードは、進入ノードでも退出ノードでもない進入ノード、退出ノード、あるいはノードでありえる。他の本発明の実施形態では、パーソナル・コンピュータは、それ自体PDNのノードとして機能する。
本発明のPDNの典型的な実施形態では、進入ユニットによって生成された、再暗号化されたコンテンツは、取外し可能なディスク上に格納するか、あるいはそうでなければ、PDNから容易に取外し可能であるような方法にPDNに格納することができる。
そのような実施形態の中で、ノード(例えばノードの内の進入および退出回路構成による)によって使用される秘密も、取外し可能なディスク上に格納することができ(暗号化された形式で)、あるいはさもなればPDNから取り外し可能なようにしてPDNに格納することができる。例えば、ロックボックスは、ロックボックス内に半永久的に安全に格納された鍵を使用して、記憶装置用のそのような秘密を暗号化することができる(例えば、ロックボックスのシリコンにベークされる)。PDNから取り除かれたとしても、再暗号化されたコンテンツ(あるいは秘密)は、無許可の方法で使用することができず、その理由は、PDN(つまり退出ノードのロックボックス)の単に認可されたハードウェアは持つか、あるいは秘密を得ることができ、該秘密はプレインテキスト・バージョンを生成するように再暗号化されたコンテンツを解読するために必要であるもので、PDN(つまりロックボックス)に認可されたハードウェアのみが、暗号化された秘密を解読するために必要とされる鍵(または複数の鍵)を持つ。コンテンツ(または格納される秘密の暗号化)の再暗号化は、PDNに特有の方法で遂行され、その際、再暗号化されたコンテンツは安全に格納する必要はなく、また暗号化された秘密を必要としないようにする。より正確に言えば、再暗号化されたコンテンツ(または暗号化された秘密)は、不安定な方法(例えばディスク上の)でPDNに格納し、かつ、またはPDNによって不安定な方法で進入ユニットから退出ユニットまで転送することができる。対照的に、他のものは、PDNの各装置内にコンテンツを安全にロックしPDNの装置間のリンクをすべて安全にすることにより、PDNの内のコンテンツを保護するつもりである。
それが進入ノードの中に復号化(そして再暗号化された)である前に、PDNを入力するあらかじめ暗号化されたコンテンツがPDNから取り除かれる場合、認証トランザクションが最初におこなわれるまで、コンテンツは使用されない(例えばデジタル権利管理システムで、あるいはコンテンツ所有者との他のある方法、)。そのような処理は、しばしば追加料金の支払いを含む。
典型的な本発明の実施形態によれば、コンテンツ・プロバイダ(例えばPDNのセットトップ・ボックスにサテライトによってコンテンツを送信する実体)あるいはPDNの外の他の実体は、PDN(それを確立した後に、ロックボックスは、それを受け取ることを認められる)のロックボックスに秘密をロードすることができ、適切な場合、ロックボックスは、後で退出あるいは進入回路構成(ロックボックスを含んでいるノード内の)、あるいは別のノードに秘密を供給することができる。あるいは、ロックボックスは秘密が必要な時にその内に秘密を格納しない場合もある。後者の場合、ロックボックスはPDNの内に別のロックボックス(「仲間」ロックボックス)から要求された秘密を求めることが可能であり(例えば退出か進入ノードからのリクエストに応じて)、および/または(例えば、それが仲間ロックボックスから秘密を得ない場合)、実体(例えばコンテンツ・プロバイダ、サービス・プロバイダあるいはデジタル権利管理サービス)からPDNまで秘密を求めることも可能である。すべての場合に、適切なコンテンツに当てはまる使用制限セットは、どのように、いつ秘密を交換し得るかを決定する。例えば、進入ノードは外部出所からコンテンツを受け取る準備ができており、進入ノードのロックボックスが、第2のノードのロックボックス(安全なチャンネル経由で、ノード間で確立、例えば、パワーアップでそれらの間でおこなわれた認証交換の結果)に対して、進入ノードは特定の解読およびこのコンテンツに対する再暗号化(トランスクリプション)オペレーションを実行し得るかどうかの決定として、確立される。答えがイエスでであることを第2のノードのロックボックスが決める場合(例えば、進入ノードの中で事前に蓄積された証明書は、第2のノードに対して進入ノードのロックボックスによって提供される2つのノードの間のやりとりの結果)、第2のノードのロックボックスは、指定されたトランスクリプション・オペレーションをおこなうために必要とされる秘密を進入ノードのロックボックスに供給する。進入ノードのロックボックスが第2のノードのロックボックスに証明した後だけ、第2のノードのロックボックスは進入ノードに秘密が送られ、進入ノードは許可されたデバイスである。また、第2のノードのロックボックスが進入ノードのロックボックスにそれを証明した後、第2のノードは、PDNの内の安全なリンクに対する認証交換によって、許可された装置である。受信器への退出ノード・リクエスト・パーミッションのロックボックスが、PDNの内部からのコンテンツを再暗号化し、特殊運転をその上におこなった時、そのようなやりとりが、さらに退出ノードと第2のノードのロックボックスの間に生じる(例えば異なる種類の暗号化、およびPDNからの出力用のコンテンツのフォーマットが後続する解読)。進入ユニットがロックボックスから指定されたトランスクリプション・オペレーションをおこなうために必要とされる秘密を受け取った場合、コンテンツ・プロバイダは進入ユニットにコンテンツを送ることができる。また、進入ユニットは、受け取るために秘密を使用することができ、またコンテンツをトランスクリプトし、さらにPDNに再暗号化されたコンテンツ(例えばディスク上の)を格納する。その後、退出ユニットは、格納された再暗号化されたコンテンツにアクセスし、かつ公認のオペレーションをその上におこなうために秘密(ロックボックスから得られた)を使用することができる。
本発明のPDNを入力するコンテンツは使用制限セットを持っている。(上に定義されたとともに)それはコンテンツが従属するすべての使用制限のセットである。典型的な実施形態では、PDNのロックボックスはそこにプリミティブ(例えば、本明細書中では「権利データ」として言及されるデータ)を事前に蓄積する。これらは使用制限セットを示す(例えば使用制限セットによって禁止されないコンテンツ上の指示操作によって)。ロックボックスの中で使用制限セットを示すプリミティブを事前に蓄積することができるが、使用制限セットは時間とともに変わる場合がある(例えば、それは前もって定義した出来事の発生に応じてのように、より限定的になることができるか、あるいはそれほど限定的でなくなることができ、例えばユーザがコンテンツに向上させられたアクセスに料金を払う場合等)。使用制限セットの各変化に応じて、ロックボックスに格納された対応するプリミティブも変更される(例えば、更新されたプリミティブが格納され、プリミティブが削除される)。PDNのロックボックスは、さらに使用制限セットによって禁止されないコンテンツ上で少なくとも1つのオペレーション(例えば解読)をおこなうために必要とされる少なくとも1つの秘密(例えば鍵データ)をそこに事前に蓄積した。典型的には、プリミティブ(使用制限セットを示す)および秘密(コンテンツ上で少なくとも1つのオペレーションをおこなうために必要だった)は、ロックボックス中のメモリ(例えば持久記憶装置)に格納される。あるいは、プリミティブと秘密はロックボックスの外のメモリ(例えば持久記憶装置)に格納され、その際、格納されたプリミティブおよび秘密は、ロックボックスによるのみプレインテキスト形式でアクセス可能である。典型的な実施形態では、PDNの進入(あるいは退出)ノードはコンテンツを受け取る準備ができている場合、進入(あるいは退出)ノードは、1つ以上の指定されたオペレーションをおこなうパーミッション用の別のノードのロックボックスへのリクエストをコンテンツ上でアサートする(例えばディスプレイのために再フォーマットすることが後続するトランスクリプションまたは解読)。ロックボックスがリクエストを与えることを決定する場合(例えばロックボックスの中で事前に蓄積された権利データを備えた要求されたオペレーションを示すデータを比較した後)、ロックボックスは、進入(あるいは退出)ノードが各々をおこなうことを可能にするために進入(あるいは退出)ノードの少なくとも1つの秘訣をアサートし、オペレーションを要求した。進入(あるいは退出)ノードは任意のそのような秘密を固執して格納しない。したがって、そのような秘密はそれぞれセッション鍵に似ている。1つの実施形態の中で、ノードは、それらの間の通信を保護し、かつコンテンツ鍵のセキュリティを保証するために実際のセッション鍵を使用するもので、該鍵はロックボックス・ノードに格納され、コンテンツが使用されるように(コンテンツの使用制限セットに従って)退出ノードに安全にそれを送信しなければならない。典型的に、進入(あるいは退出)ノード内のそのような秘密を使用する進入(あるいは退出)回路構成には固執して秘密を格納するメモリがないが、秘密をダブルバッファにするためにバッファメモリ容量を少し持つ場合がある(例えば秘密が秘密の最新版と容易に取り替えられることを可能にすること)。典型的に、PDNのノードの間で送信された秘密、さらに要求あるいはノード間で送信された他の非秘密データは、安全なチャンネルに対する暗号化された形式で送信されるもので、この安全なチャンネルはそれらの間の予備認証交換の結果ノードの間で設立され、ノードはそれぞれ認証交換中に他のノードにその同一性を証明したに違いない。ノードは互いに送り合うメッセージをすべて暗号化するように構成することができる(例えばこれが通信プロトコルを単純化する場合)。しかし、秘密情報を含んでいるメッセージだけを暗号化するように二者択一で構成することができる(例えば、進入ノードは、別のノードに送られるセッション鍵の要請を暗号化しないかもしれず、そのようなリクエストは、攻撃者がコンテンツに無許可にアクセスするのを助けることができる情報を含んでいない、またリクエストの暗号化がリクエストを暗号化するために使用される鍵に関して攻撃者にそれ自体情報を知らせるかもしれない)。
進入(あるいは退出)回路構成がロックボックスからコンテンツ鍵を受け取った後さえ、進入(あるいは退出)回路構成がコンテンツ鍵を使用してできることの上に典型的には制限がある。また、進入(あるいは退出)回路構成は制限に従って以外に作動することができないように構成されるべきである。例えば、コンテンツを解読し、HDCPプロトコルを使用して、コンテンツを再暗号化し、もし退出ユニットがHDCPセキュリティが違反された(つまりHDMI受信器が認可されないことを退出ユニットが決める場合に)と断定するHDCP暗号化およびHDMI送信を止めなければならなければ、HDCPセキュリティをモニタする間にHDMIリンクを通してそれを送信するために、コンテンツ鍵が退出ユニットを認可する場合を提供するように、退出ユニットは公認の方法((例えば別のノードが有効な結合証明書を所有するかどうか、後のロックボックスが判断することを可能にするデータ)を中へ正確に操作するように構成されるべきである。もしそれが周期的にHDCPセキュリティのある確認を得ないし生成しなければ、それはHDCP暗号化およびHDMI送信操作を継続することができるべきでない。
好ましい実施形態では、本発明のPDNおよび各ロックボックスはそれについて装置を許可するためにインプリメントされる。いくつかの実施形態では、PDNのロックボックスはPDNに特別の装置か能力を加えるコンテンツ所有者の承認を要求するために構成され操作される。むしろ、秘密が固執して安全にある場合があるように、ユーザがPDNに含みたいかもしれない各装置のロックボックスは構成されるが、ロックボックス(したがってそれが含まれている装置)がPDNの公認の要素(ノード)であることを示すために廃止可能にそこに格納される。典型的には、秘密はあるか証明書を含んでいる。したがって、秘密は「結合証明書」と本明細書中で呼ばれる。しかしながら、結合証明書がないかもしれないか、真実の証明書(例えば、結合証明書が真実の証明書ではなく、社会鍵でありえる)を含んでいないかもしれないことは認識されるべきである。ロックボックスは、PDNに対応付けられる時に結合証明書をそこに格納する(少なくとも一時的に)能力で構成することができる。ロックボックスはそれぞれ他のノードがPDN(つまり他のノードが有効な結合証明書を所有しこのようにPDNと「結合しているか」どうか判断すること)の認可されたメンバーかどうか判断するために必要とされる結合証明書および他のデータ(例えば証明書)の格納のためにプログラム可能な(例えば、一度だけのプログラム可能)メモリを含めるように構成することができる。ロックボックス内のフラッシュ・メモリかEEPROM(など)としてそのようなプログラム可能メモリをそれぞれインプリメントすることができるかもしれないが、ロックボックス内のフラッシュ・メモリかEEPROMほど高価でない要素としてむしろインプリメントすることができるかもしれない。いくつかの実施形態では、プログラム可能メモリは、ノード(あるいはノードのロックボックスに外部であるが、ノードに内部である)の外の持久記憶装置だがノードのロックボックス(例えば、ロックボックスは記憶装置用に外部持久記憶装置に暗号化された形式で必要データを送信することができた。また、記憶データを読むロックボックスからのリクエストに応じて、暗号化された形式でロックボックスにメモリがデータバックアップを送ることができた)による安全なやり方でアクセス可能である。他の実施形態では、プログラム可能メモリはそれぞれ、もはや必要がなくなった際に廃棄することができる(もはや使用されなかった)が、一旦それが特別の状態へ半永久的にプログラムされれば、それは改変になりえないヒューズの一度だけのプログラム可能なセットである。例えば、ロックボックスに16(あるいは他のある数)セットのヒューズがある場合がある。ヒューズのセットはそれぞれ、結合証明書を格納するように一度プログラムすることができ、ロックボックスはそれがその結合証明書にアクセスする必要がある場合に、ヒューズ(つまり互いにヒューズを無視すること)のきわめて最近プログラムされたセットだけを使用するように構成することができる。第1のノードのロックボックスに格納された結合証明書、また第2のノードのロックボックスに保存された関連のデータを、PDNの要素としての第1のノードのオペレーションに先立ってそれらの間の安全なチャンネルを設立するためにノード間の簡易認証交換の中で使用することができる)。
一実施形態群では、本発明はPDNのコンテンツ保護のための方法であって、制御コンテンツを生成して、PDNの進入ハードウェアにPDNを入力するコンテンツをトランスクリプトする工程と、復号化コンテンツを生成するためにPDNの退出ハードウェア中の制御コンテンツを解読する工程とを含み、プレインテキストの形のコンテンツも進入ハードウェアの少なくとも1つによって使用される任意の秘密も、またコンテンツと制御コンテンツのどちらか上で公認のオペレーションをおこなう退出ハードウェアも、PDNの任意の要素上で走るソフトウェアまたはファームウェアによってアクセス可能であり、またコンテンツが信頼できるハードウェア内の場合以外はPDNの内のプレインテキスト形式ではなく、それによって制御コンテンツがPDNの要素中に自由に転送し、PDの内に格納することができる。いくつかのそのような実施形態では、進入ハードウェアは集積回路である。退出ハードウェアは別の集積回路である。また、コンテンツは、コンテンツが集積回路内の場合以外はPDN内のプレインテキスト形式の中にないPDN内に維持される。
別のクラスの実施形態では、本発明はコンテンツ保護方法であって、パーソナル・デジタル・ネットワークの進入ノードにパーソナル・デジタル・ネットワークを入力するコンテンツをトランスクリプトすることで、制御コンテンツを生成する工程と、復号化コンテンツを生成するパーソナル・デジタル・ネットワークの退出ノード中の制御コンテンツを解読する工程とを含み、コンテンツも進入ノードの少なくとも1つによって使用される任意の秘密も、またコンテンツの任意のバージョン上で公認のオペレーションをおこなう退出ノードは、パーソナル・デジタル・ネットワークの安全なサブシステム内の場合以外は、パーソナル・デジタル・ネットワーク内のプレインテキスト形式にある。例えば、そのような秘密(あるいはプレインテキストの形のコンテンツ)は、安全なサブシステム内の埋込み型プロセッサ上で走るファームウェアにアクセス可能になりえる。進入ノードか、退出ノード(例えば進入か退出ノードの安全なサブシステム内のマイクロコントローラ上で走るファームウェアへの)の、しかし、プレインテキスト・コンテンツも任意のそのような秘密も、任意のノード、無許可にそれにアクセスしようと努力するユーザまたは実体にアクセス可能な(あるいは少なくとも、容易にアクセス可能な)パーソナル・デジタル・ネットワークのリンクあるいはインターフェースで存在しない。
別のクラスの実施形態では、本発明はコンテンツ保護方法であって、制御コンテンツを生成して、PDNの進入ハードウェアにPDNを入力するコンテンツをトランスクリプトする工程と、復号化コンテンツを生成するためにPDNの退出ハードウェア中の制御コンテンツを解読することとを含み、さらに、退出ハードウェアから実体(例えば装置またはシステム)、そしてPDNまで復号化コンテンツおよび復号化コンテンツの処理されたバージョンの少なくとも1つをアサートする。コンテンツおよび制御コンテンツのいずれかで公認のオペレーションをおこなう進入ハードウェアおよび退出ハードウェアのどちらかによって使用された復号化コンテンツまたは任意の秘密のいずれも、PDNの任意の要素上で走ることソフトウェアまたはファームウェアによってアクセス可能ではない。典型的に、進入ハードウェアは集積回路である。また、退出ハードウェアは別の集積回路である。
別のクラスの実施形態では、本発明は、PDNのロックボックスから得られた(退出ハードウェアによって)少なくとも1つの秘密を使用して、PDNの退出ノードの退出ハードウェア中のコンテンツを解読する工程を含み、それによって復号化コンテンツを生成するコンテンツ保護方法である。このロックボックスは退出ノードに内部である。しかし、ロックボックスは、PDN(あるいは出所からPDNまで)の別のノード内に含まれた、別のロックボックスから秘密を得ることが可能である。任意に、方法は、さらに復号化コンテンツの少なくとも1つをアサートする工程を含む。また、退出ノードから実体(例えば装置またはシステム)、またPDNまで復号化コンテンツの処理されたバージョンを含んでいる。
いくつかの実施形態では、本発明のPDNを入力するコンテンツはあるか、あるいは暗号化された映像(例えばHD DVDから読まれた高精細度映像)を含んでいる。それはCSSあるいはCSSに似ているコンテンツ保護計画によって保護し、PDNの退出ユニットは、復号化を生成し、復号化を生成する圧縮した映像上で、減圧をおこなうために映像(例えば、MPEGまたはMPEG2は映像を圧縮した)を圧縮し、解凍された映像(「生の」映像)、また生ビデオを再暗号化するように構成されており、いくつかの実施形態では、退出ユニットはHDCPプロトコルに従って再暗号化をおこない、外部の視聴覚システムに1以上のHDMIリンク上の再暗号化された生データを送信する。他の実施形態では、退出ユニットはHDCP以外にコンテンツ・プロテクションプロトコルに従って生の(復号化)データを再暗号化し、HDMIリンク以外にリンクに対する外部装置への再暗号化されたデータをアサートする。他の実施形態では、退出ユニットは、1以上のDVIリンク上の外部装置への再暗号化されたデータをアサートする。他の実施形態では、退出ユニットは、1以上TMDS様リンク(それらはいずれもHDMIまたはDVIのリンクではない)あるいは1以上の以上連続するリンク(それらはいずれもTMDS様リンクではない)の上の再暗号化されたデータをアサートする。
他の実施形態では、PDNを入力するコンテンツはトランスクリプトされて、適切な使用制限セット(あるいは、もしそれが使用制限セットで既に印をつけられていなければ、既にPDNの入力上のPDN暗号化フォーマットでのコンテンツは適切な使用制限セットで印をつけられる)で印をつけられる。また、制御コンテンツ(例えば新しくトランスクリプト・コンテンツ)は外部ハードディスクドライブ(HDD)配列に格納される。この場合、PDNは、もはやコンテンツ(例えば、それらのエンクロージャーからHDDを取り除き、汎用のPCに付けることが可能かもしれないし、それにより、様々な攻撃に格納されたコンテンツを露出することができるかもしれない)に対するコントロールを維持することが不可能かもしれない。しかしながら、コンテンツが格納される(典型的な本発明の実施形態に従って)前に暗号化される(PDN暗号化フォーマットで)ので格納されたコンテンツ(大量の格納されたコンテンツ)も安全が、長時間(例えば長年)の断固とした攻撃から保たれる。典型的な本発明の実施形態に従って、一度、制御コンテンツは、PDN(例えば、PDNを入力するコンテンツは、以前進入回路構成においてトランスクリプトされたことがある)中にある、それを使用することができる唯一つの方法(つまり、与えられた)、その関連するコンテンツ鍵が利用可能かどうかである。したがって、制御コンテンツのセキュリティは、完全にロックボックスおよび退出ノード(それはプレインテキストの形にそれを置く制御コンテンツを解読するために必要とされるコンテンツ鍵の解読されたバージョンを含むことができる)のセキュリティの機能である。その結果、制御コンテンツはコンテンツの使用制限セットが破られるかもしれないという懸念なしで、送信することができるか、任意の方法(インターネットを通じて自由に分配されること含んで)で格納することができる。
始めに、上記の米国特許出願第10/679,055号の教示を、図4−13を参照して要約する。
以下の説明では、「非保護」データの表現は、装置(例えばHD―DVDドライブ)によって受信したデータを意味し、それは知的所有権保護に制約され可能性もあり、あるいは制約されない可能性もある。しかし、この装置はオープン・コンピュータ・システムへの非暗号化形式でアサートできものとして認識するように構成される。
この「SATAインターフェース」の表現は、ここではSATA規格に従って少なくとも1つのシリアルリンク上の通信用に構成されたインターフェースを意味する。「SATA規格」の表現は、1以上のシリアルリンク上でホストコンピュータと1つ以上の記憶装置の間での通信用として2001年8月29日にシリアルATAワーキンググループによって採用されたシリアルATA(Rev.1.0)として知られている規格をここでは意味する。
米国特許出願第10/679,055号に記載されたオープン・コンピュータ・システムの一般的な実施形態では、オープン・システムのクローズド・サブシステムは、クローズユニット(時には「DDR」ユニットと呼ばれる)を含んでいる。このユニットは、暗号化コンテンツを受信し(例えば、外部ソースからオープン・システムまで)、生コンテンツを作成するために受信したコンテンツの復号化および必要に応じた解凍をおこない、さらにその生コンテンツの再暗号化を行う。受信したコンテンツは、暗号化された映像(例えば、HD−DVDから読み取られ、CSSあるいはCSSと同様のコンテンツ保護スキームによって保護されている高精細度映像)であるか、あるいは含むことができる。DDRユニットは、復号化され、圧縮された映像(例えば、MPEGまたはMPEG2圧縮映像)を作成するために暗号化された映像の復号化を行うように、復号化され、解凍された映像(「生の」映像)を作成するために圧縮映像の解凍を行うように、さらにオープン・システムからの出力(例えば、外部の視聴覚システムへ)用に生ビデオを再暗号化するように構成されることができる。
図4および5に関して下記に記述した各システムの態様は、オープン・システムの標準(非保護)グラフィックスおよび音声出力とDDRユニットの出力を組み合わせるための回路である。通常現在のPCは、2種類のグラフィックシステムのうちの1種類を有している。低価格PCは、それらのチップセット(例えば、図4のGMCHチップ6)に統合したグラフィック・コントローラを有し、バルクヘッドHDMI/DVIコネクタへのデジタル映像接続の経由を決めるためにAGPデジタル表示カード(例えば、図4のカード10と同様または同一のADDカード)を使用している。高価格PCは通常、AGPまたはPCI−エクスプレス・グラフィック・カード(例えば、図5のカード20と同様のメディア/グラフィック・カード)上でより高性能なグラフィック・コントローラを直接使用している。旧機種のPCは、AGP、PCIあるいはISAのいずれかのバス上でグラフィック・コントローラを使用している。いずれの場合でも通常、システムに映像出力を供給するシステム内には単一のボードがある。どの種類のカードにかわらず、このボードを「グラフィック・カード」と呼ぶことにする。
図4でのパーソナル・コンピュータ(PC)1は、HDTVモニタ2(HDMI受信器を含む)、およびHDTVモニタ2によって駆動されるラウンドスピーカー3を含む外部の視聴覚システムにつながれたオープン・システムである。PC1はHD−DVDドライブ4を含んでいる。ディスクドライブ4をインプリメントする図6では、ドライブ・コントローラ30は、HD−DVDディスク(図示せず)からマルチプレクサ31までのデータ読み込みをアサートする。マルチプレクサ31は、コントローラ30からのデータが非保護データ(例えば、非保護メニュー情報など)であるかどうかを検出するための回路を含むことができる。コントローラ30からのデータが非保護データであることをマルチプレクサ31が検出すると、マルチプレクサ31は、SATAインターフェース34へ該データをアサートする。別の場合(例えば、コントローラ30からのデータが、著作権を取得したコンテンツ(例えば著作権のある高精細度映像)であることをマルチプレクサ31が検出する場合)、マルチプレクサ31はコントローラ30からDVDデコーダ32までのデータをアサートする。
通常HD−DVDドライブ4は、非保護データの読み出しおよび書き込みに使用されるデータインターフェース(例えば、コネクタ34Aを備えた図6のSATAインターフェース34、または適切なコネクタを備えたATAあるいはSCSIインターフェース)に加えてHDMIインターフェース(例えば、HDMIケーブルに送信器33をつなぐためにHDMI送信器33およびコネクタ33Aを含む図6のHDMIインターフェース)を含む。HDMIインターフェースは、データインターフェース(PCのサウンドカードにCDオーディオを供給するために、CD−ROMが使用する別のアナログ・オーディオ接続と類似している)によって提供される接続とは別の接続を提供する。
しかしながら、ドライブ4とカード10の間で別のHDMI接続(非保護データの読み出しおよび書き込みためのドライブ4のデータインターフェースとは別の)は、必要でない。いくつかの実施形態(例えば図12に関して記述される実施形態)では、HDCP暗号化データは、非保護データの読み出しおよび書き込みに使用される同様のデータインターフェースを経由してDDR(オープン・コンピュータ・システムのクローズド・サブシステム)からオープン・コンピュータ・システムへ「トンネル」状態である。後者の実施形態では、HDMインターフェースは、保護されたコンテンツの暗号化(例えば再暗号化)をおこない、それによって、HDCP暗号化データを作成する。また、HDCP暗号化データは、クローズ・システム内(例えば、HDTVモニタあるいは他の表示装置内のHDMI受信器)のHDMI受信器へオープン・コンピュータ・システムを経由して伝搬する。たとえ、オープン・コンピュータ・システムがHDCP暗号化コンテンツにアクセスしても、そのような暗号化コンテンツを復号化することができず、それどころかクローズド・システム内のHDMI受信器に暗号化コンテンツをただ渡すだけである。
またPC1は、SATAインターフェース34からのデータを受信するためにつながれる入出力コントローラ・ハブ(ICH)チップ5を含む。ICHチップ5は、PC1の入出力機能(例えばUSB機能)を制御する。ICHチップ5は、グラフィックスおよびメモリコントローラ・ハブ(GMCH)チップ6を経由してCPU7につながれる。GMCHチップ6は、PCI(周辺通信の相互接続)バス機能、レベル2キャッシュの活動、およびAGP(アクセラレイテッド・グラフィック・ポート)の活動としてこれらの機能を扱う。メモリ9およびAGPデジタル表示(ADD)カード10は、GMCHチップ6につながれる。
ディスクドライブ4のSATAインターフェース34からのデータは、ICHチップ5およびGMCHチップ6を経由してメモリ9に流れることができ、CPU7によって処理され、ADDカード10およびモニタ2に出力されるグラフィックスデータあるいはコピー・プロテクトをかけられていない映像データとなる可能性がある。このようにして、素子5、6、7および9は、オープン・システム・アーキテクチャを有し、ADDカード10によってモニタ2へのアサーションデータを作成するように構成されるPC1のコンピュータ・サブシステムを含む。
カード10は、チップ6からのデジタル映像および音声データ上でHDCP暗号化をおこなうHDCP送信器(例えば、図7の送信器40)を含んでいる。カード10は、モニタ2へのHDMIリンク上で、結果として生ずるHDCP暗号化デジタル映像およびオーディオをアサートするように構成される。GMCHチップ6からADDカード10へアサートされるデータは、DVO(デジタル映像出力)フォーマットでもよい。
図6に示すように、ディスクドライブ4がインプリメントされると、DVDデコーダ32は高精細度映像データ(HD−DVDディスクから)の復号化および解凍をおこない、HDMI送信器33は、結果として生ずる生の映像データ(HDCPプロトコルに従い)を再暗号化し、かつにHDMIリンク(HDMIコネクタ33Aを含む)上で再暗号化した映像データを直接ADDカード10に送信する。通常カード10は、HDMI中継器として機能し、再暗号化した映像データを別のHDMIリンク上でモニタ2に再送信する。また、ディスクドライブ4は、HDMIリンク上(モニタ2に転送するため)でモニタ2が必要とする任意の鍵データをカード10に直接送信し、再暗号化した映像データ(例えばHDCP認証交換中に使用される鍵データ)を復号化する。PC1(ディスクドライブ4、クローズド・サブシステムに属するADDカード10の各素子、およびドライブ4とカード10間のHDMIリンク)内に組み込まれたクローズド・サブシステム以外のPC1の素子は、再暗号化された映像データまたは鍵データへアクセスできない。
図5は、図4のシステムのバリエーションのブロック図である。図4の素子と同一の図5の素子は、両方の図の中で同じ番号付けされている。図5では、ADDカード10はメディア/グラフィック・カード20と取り替えられ、GMCHチップ6(統合グラフィックス回路を含む)は、GMCHチップ16と取り替えられる。チップ16は、カード20にAGPフォーマット・データをアサートするように構成される。カード20は、HDCP暗号化されたデジタル映像をHDMIリンク上でモニタ2にアサートし、かつラウンドスピーカー3にアナログ音声データ(カード20内のDACで作成される)を直接アサートするように構成される。メディア/グラフィック・カード20は、HDMIトランシーバとしても機能する。それにより第2のHDMIリンク上でHDCP暗号化された映像データ(ドライブ4から第1のHDMIリンク上で受信)をモニタ2に再送信しかつ第1のHDMIリンク上で受信したデータからHDCP暗号化オーディオを抽出し、そのオーディオを復号化しデジタル/アナログ変換をおこない、結果として生ずるアナログ・オーディオをラウンドスピーカー3に直接アサートする。
図12は、図4のシステムの別のバリエーションのブロック図である。図4の素子と同一の図12の素子は、両方の図の中で同じ番号付けされている。図12のPC101は、ADDカード110がADDカード10(図4)に置き換わり、かつHD−DVDドライブ104がHD−DVDドライブ4に置き換わる点で、図4のPC1と異なる。図13に示すようにディスクドライブ104は、インプリメントされることができる。図6の素子と同一の図13の素子は、両方の図の中で同じ番号付けされる。ディスクドライブ104の図13のインプリメンテーションは、次の点においてディスクドライブ4の図6のインプリメンテーションと異なる。
ディスクドライブ104の図13のインプリメンテーションでは、HDMIコネクタ33Aは省略され、SATAインターフェース34はSATAインターフェース36(コネクタ36Aを持つ)と置き換わり、HDMI送信器33は、HDCP暗号化ユニット35(その出力はSATAインターフェース36の第2の入力につながれる)と取り替えられる。SATAインターフェース36は、SATAフォーマットを有し、インターフェース36によってドライブ・コントローラ30(マルチプレクサ31経由)から受信したデータを示すデータ、またはインターフェース36によって暗号化ユニット35から受信したHDCP暗号化データを示すデータをアサートする(コネクタ36Aに)ように構成される。コントローラ30からのデータが著作権のある高精細度映像データ(および/または著作権のあるオーディオデータ)であることをディスクドライブ104のマルチプレクサ31が検出すると、マルチプレクサ31はDVDデコーダ32へデータをアサートする。これを受けて、デコーダ32は、デコードし(復号化)、データ上の任意の必要な解凍をおこない、結果として生ずる生の(デコードされた、またはデコードされ解凍された)高精細度映像(および/またはオーディオ)データをHDCP暗号化ユニット35の入力へアサートする。これを受けて、暗号化ユニット35は、生の高精細度映像(および/またはオーディオ)データのHDCP暗号化されたバージョンをSATAインターフェース36の入力へアサートする。HDCP暗号化データは、SATAインターフェース36(SATAフォーマットを有するデータ・ストリーム内)と通り、およびGMCHチップ6およびADDカード110を経由してICHチップ5からモニタ2へ、「トンネル」を掘られている。コントローラ30からのデータが非保護データであることをマルチプレクサ31(ディスクドライブ104)が検出すると、マルチプレクサ31はSATAインターフェース36の別の入力へのデータをアサートする。SATAフォーマットを有し、非保護データを示すデータ・ストリームを、インターフェース36によってICHチップ5へアサートし、およびICHチップ5からGMCHチップ5およびADDカード110を経由してモニタ2にアサートする。
図12のADDカード110は、デジタル映像および/またはチップ6からのオーディオデータ上でHDCP暗号化をおこない、モニタ2へのHDMIリンク上で暗号化された映像およびオーディオをアサートするHDCP送信器を含んでいる。カード110内のHDCP送信器の暗号化回路は、チップ6がディスクドライブ104からカード110にHDCP暗号化データを送るモードで無効になるかまたは迂回される。図12のカード110は、ディスクドライブ104(一方でカード10はディスクドライブ4に直接つながれる)にカード110が直接つながれない点で図4のADDカード10とは異なる。カード110は、カード110とモニタ2の間のHDMIリンクにその出力がつながれるスイッチを含む必要はない。対照的に、図4のカード10は、モニタ2にその内部HDCP送信器(例えば図7の送信器40)からのデータあるいはHDMIフォーマット、ディスクドライブ4から直接受信したHDCP暗号化データのいずれかを選択的にアサートするためにスイッチ(例えば図7のスイッチ41)を含んでいる。
HDTVモニタ2は通常、クローズド・システムとしてインプリメントされる。図12に示すように、モニタ2は通常HDMI受信器112、および受信器112につながれた表示装置114(例えばCRTまたは発光ダイオード表示装置)を含んでいる。装置114は、受信器112で作成された復号化映像データを表示するように構成される。受信器112は、カード110から受信した、暗号化オーディオおよび映像データを復号化するように構成されたHDCP復号化回路を含んでおり、ラウンドスピーカー3に復号化オーディオ(通常、再フォーマット等の追加処理を行った後)をアサートし、表示装置114復号化映像(通常、再フォーマット等の追加処理を行った後)をアサートするように構成される。
図12の実施形態では、ディスクドライブ104内のHDCP暗号化回路は、ディスクドライブ104(例えば、ディスクドライブ104によるディスクからの読み取り)によって受信した保護コンテンツのデコードバージョンを暗号化し(再暗号化)、それによって、HDCP暗号化データを作成する。HDCP暗号化データは、外部装置(HDTVモニタ2)内のHDMI受信器112へPC101(オープン・コンピュータ・システム)を通って伝搬する。たとえ、PC101がHDCP暗号化コンテンツにアクセスしても、HDCPを復号化する鍵が欠如しているため、HDCP暗号化コンテンツを復号化できず、代わりに、単にモニタ2内のDMI受信器112までHDCP暗号化コンテンツを渡すだけである。
代替実施形態では、オープン・システム中のDDRユニットは個別であり、ディスクドライブに依存しない。例えば、受信、復号化ならびに解凍、およびインターネットからの、あるいは本発明による別のオープン・システムに外部のソースからの保護コンテンツの再暗号化を行うようにDDRユニットを構成してもよい。
DDRユニットをオープン・システムに組み込む場合、回路は通常、オープン・システムの標準(非保護)グラフィックスおよび音声出力とDDRユニットの出力を組み合わせるために提供される。例えば、PCのグラフィック・カード(例えば、図4のカード10あるいは図5のカード20)を、保護コンテンツ(標準グラフィックスおよび/またはPCの音声出力をDDRユニットの出力と組み合わせることを含む)を対処するために別のクローズド・システムで増強することが可能である。このクローズド・サブシステムは好ましくは、DDRユニット(通常、HD−DVDドライブに統合される)から供給される再暗号化データを受信するためのHDMIコネクタ、およびオープン・システムの標準グラフィックスおよび/または音声出力と再暗号化データを組み合わせるための機構(例えば時分割多重、あるいはピクチャー・イン・ピクチャーフォーマットに組み合わせる)を含む。好ましくは、増強グラフィック・カードの出力は、それ自体HDCPコピープロテクション機能とのHDMI接続である。また、増強グラフィック・カードは、グラフィック・カードの出力をHDCPもサポートする外部装置(例えばHDモニタ)に接続する場合のみ、DDRユニットから外部装置へHDCP暗号化データを転送するように構成される。これは、外部装置(端末装置)がHDCP保護機構をサポートしない場合、増強グラフィック・カードを介して保護コンテンツが流れるのを防ぐ。
増強グラフィック・カードで可能な最も単純な組み合わせ機構(「コンバイナー回路」)は、DVDビデオあるいはシステム・グラフィックス出力のいずれかを選択するように構成されるスイッチ(例えば、図7のスイッチ41)である。このスイッチは、保護コンテンツ(例えば、図7で「HDMI内」と標識された、ディスクドライブ4からの信号)を画面で見ること、あるいはPCグラフィックスの出力(図7で「(S)DVD」と標識された)を見ることの、いずれかを選択できるようユーザ作動させることが可能である。図7実施形態では、ADDカード10は図のように接続されたHDMI送信器40およびスイッチ41を含んでいる。送信器40は、図4のGMCHチップ6の出力を受信し、その上でHDCP暗号化をおこない、HDMIリンク上でHDCP暗号化データをスイッチ41へアサートする。スイッチ41は、モニタ2(別のHDMIリンク上の)から送信器40の出力またはDDR出力(例えば、図6のディスクドライブ4のHDMI送信器の出力)のいずれかに転送するHDMI中継器として機能する。本発明によるクローズド・サブシステムの一例は、ドライブ4(例えば、図6のドライブ4の素子31、32および33)内のDDRユニットおよびスイッチ41(図7のADDカード10内)である。
いくつかの実施形態では、増強グラフィック・カードは、HDCP仕様書に従い「HDCP中継器」の機能を果たす。そのような中継器は、ネゴシエーションに関与せずに、オリジナルソース(DDRユニット)および宛先(例えばモニタ)の間でHDCP認可メッセージを単純に渡す。
さらに、より精巧なコンバイナー回路(例えばカード10内の)も可能である。例えば、コンバイナー回路は、画面の一部(例えばグ、ラフィックスウインドウがある場所)に映像表示を組み込むように、あるいは保護コンテンツを別の解像度に再スケールし、非保護コンテンツ(従来のテレビ受像機のピクチャーインーピクチャー表示と同様または同一の概観を有する組み込み表示を作成するため)によって決定される表示にそれを組み込むように構成することができる。
増強グラフィック・カードのクローズド・サブシステムは、出力がHDCP可能装置に取付けられる場合のみ、保護コンテンツ(つまりHDCP暗号化コンテンツ)をその出力で確実に表示するように構成されることができる。この種類のいくつかの実施形態では、増強グラフィック・カードは、この増強グラフィック・カードがDDRユニットからのストリームの復号化を行い、許可された方法(例えば再スケールする)で復号化データを修復し、次いで修復データを再暗号化してから出力に送ることができるHDCP認証機構を含む。そのような実施形態は通常、復号化、そのデータを保持するため、1つ以上のメモリ・バッファ、オプションのスケーリングモジュール、リタイミングおよびポジショニングの複数機構等、追加のコンポーネントを必要とする。これらのコンポーネントはすべて、増強グラフィック・カードのクローズド・システム(および本発明のオープン・システムのクローズド・サブシステム)の一部と考えられ、それらは、データにHDCP暗号化を適用することなくクローズド・サブシステムから復号化データが監視されるかまたは送られることを防止するよう設計される。
例えば、図8のADDカード50(図4システム内の図7のカード10を交換することができる)は、図のように接続されたHDCPロジック53、HDMI受信器54、スケーラー55、スイッチ51およびHDMI送信器52を含んでいる。スイッチ51の1つの入力は、図4のGMCHチップ6の出力を受信する。スイッチ51がこのデータを渡す場合、HDMI送信器52はその上でHDCP暗号化をおこなうことができ、モニタ2へのHDMIリンク上でHDCP暗号化データをアサートすることができる。HDMI受信器54は、DDRユニットの出力(例えば、図6のディスクドライブ4のHDMI送信器33の出力)を受信し、このデータを復号化する。HDCPロジック53は、受信器54および送信器52と作動し、DDRユニットとHDCP認証交換を受信器54が実行し、かつ送信器52がモニタ2内のHDMI受信器とのHDCP認証交換を実行することを可能にする。受信器54からの復号化コンテンツ出力は、スイッチ51の第2の入力に直接アサートすることができるかあるいは、スケーラー55およびスケーラー55の出力にスケールされ、スイッチ51の第3の入力にアサートされることができる。スイッチ51を、その入力のうち任意の1つでデータをHDMI送信器52へ渡すようにコントロールすることができる。HDMI送信器52は、スイッチ51によって渡されたデータ上でHDCP暗号化をおこない、モニタ2へのHDMIリンク上でHDCP暗号化データをアサートする。
送信器52は、DDRユニットからHDMI受信器54へHDCP暗号化データを転送し、受信器54によるそのようなHDCP暗号化データの復号化バージョンをスイッチ51(あるいはスケーラー55への、およびスケーラー55からスイッチ51へ受信器54によって)へのアサーションの結果、データがスイッチ51に到達した場合、スイッチ51によって渡されたデータ上でHDCP暗号化をおこなうことだけが必要である。送信器52は、図4のGMCHチップ6からスイッチ51にアサートされ、スイッチ51によって送信器52(代わりに送信器52は、モニタ2へHDMIリンク上でこのデータの復号化されたバージョンのデータを送ることができる)に渡されたデータのHDCP暗号化をおこなう必要はない。
別の例については、図9のADDカード60(図4システムの図7のカード10を交換することができる)は、図のように接続されたHDCPロジック53、HDMI受信器54、スケーラー55、オーディオ・コーディック70、スイッチ71およびHDMI送信器52を含んでいる。スイッチ71の1つの入力は、コーディック70からの音声データ出力(図4のGMCHチップ6からのデータに応じてコーディック70によって作成することができる)を受信する。スイッチ71によってHDMI送信器へ渡されたデータは、送信器52内でHDCP暗号化を受け、HDCP暗号化データはモニタ2へのHDMIリンク上でアサートされる。HDMI受信器54は、DDRユニットの出力(例えば、図6のディスクドライブ4のHDMI送信器33の出力)を受信し、このデータを復号化する。HDCPロジック53は、受信器54および送信器52と作動して、DDRユニットとのHDCP認証交換を受信器52に実行させ、モニタ2内のHDMI受信器とのHDCP認証交換を送信器52に実行させることができる。受信器54から出力された復号化コンテンツは、スイッチ71の第3の入力に直接アサートされるか、あるいはスケーラー55内でスケールされることができる。次いでスケーラー55の出力はスイッチ71の第4の入力にアサートされる。スイッチ71は、HDMI送信器52への入力のいずれか1つでデータを渡すことができる。
別の例として、図10のメディア/グラフィック・カード 80(音声データをデジタル映像でモニタに送信する図5のシステム内のバリエーションでカ0ド20を交換できるが、メディア/グラフィック・カードからはアナログ音声データは出力されない)は、図のように接続されたHDCPロジック53、HDMI受信器54、スケーラー55、オーディオ・コーディック84、グラフィックアクセレータ82、フレーム・バッファ83、スイッチ71、およびHDMI送信器を含む。スイッチ71の1つの入力は、コーディック84から出力された音声データ(図5のGMCHチップ16からのデータに応じてコーディック84によって作成されることが可能)を受信する。スイッチ71の第2の入力は、グラフィックアクセレータ82から出力された映像データを受信する。そのような映像データは通常、図5のGMCHチップ16からのデータに応じてアクセレター82で作成され、フレーム・バッファ83に書き込まれ、次いでフレーム・バッファからスイッチ71にアサートされる。スイッチ71によってHDMI送信器52に渡されたデータは、送信器52でHDCP暗号化を受け、HDCP暗号化データは、モニタ2へのHDMIリンク上でアサートされる。HDMI受信器54は、DDRユニットの出力(例えば、図6のディスクドライブ4のHDMI送信器の出力)を受信し、このデータを復号化する。HDCPロジック53は、受信器54および送信器52と作動し、DDRユニットとのHDCP認証交換を受信器54に実行させ、モニタ2内でHDMI受信器とのHDCP認証交換を送信器52に実行させることができる。受信器54から出力された復号化コンテンツは、スイッチ71の第3の入力に直接アサートされるか、またはスケーラー55でスケールされ、次いでスケーラー55の出力をスイッチ71の第4の入力にアサートさせることができる。スイッチ71は、入力の任意の1つでデータをHDMI送信器52に渡すことができる。
別の分野の実施形態では、図6のマルチプレクタ31、デコーダ32、HDMI送信器33、およびSATAインターフェース34を、DVDドライブとは別であり依存しない、PCのクローズド・システムとしてインプリメントする。例えば、マルチプレクサ31を、インターネットからPC1にアサートしたデータを受信するためにつなげることができる。マルチプレクサ31がそのようなデータが非保護コンテンツであることを検出すると、マルチプレクサ31はそのデータをSATAインターフェース34にアサートする。別の場合(例えば、マルチプレクサ31がコントローラ30からのデータが著作権を有するコンテンツであると検出する場合)、マルチプレクサ31はコントローラ30からのデータをデコーダ32にアサートする。デコーダ32は、データ(例えば、高精細度映像データ、または他の映像データ)の復号化および解凍を行うよう構成される。HDMI送信器33は、HDCPプロトコルに従って生じる生データ(例えば生映像データ)を再暗号化し、再暗号化したデータをHDMIリンク上で、例えばADDカード10(あるいはその上のバリエーション)に直接、またはメディア/グラフィック・カード20(あるいはその上のバリエーション)に直接、送信する。
前段落で所与した例のバリエーションでは、SATAインターフェース34は、他の種類(例えば、PCI、ATA、あるいはSCSIインターフェース)のデータインターフェースによって交換される。さらに一般的には、多種多様なデータ送信インターフェースを米国特許出願第10/679,055号の教示を具現するオープン・システムの多種類のいずれかで、オープン・システムで具現するために米国特許出願第10/679,055号の教示に従って構成される多数の予期されるクローズド・システムのいずれにおいて、用いることが可能であると予期される。ある場合には(例えば、図4および6に関して記述される実施形態、および以下の図5、12、および13に記述される実施形態のバリエーション)、オープン・システムはSATAインターフェース以外のデータインターフェースを用い、非保護データ(または保護および非保護データの両方)を複数の素子間で(例えば、HD−DVDドライブまたは他のディスクドライブからPC〔オープン・システムがPCの場合〕)の入出力コントローラ・ハブチップへ転送する。例えば、いくつかの実施形態では、オープン・システムは、SATAインターフェース(例えば、図6に示すようにコネクタ34A付きSATAインターフェース34、または図13に示すようにコネクタ36A付きSATAインターフェース36)よりはむしろ、PCI、ATA、またはSCSIインターフェース(適切なコネクタ付き)を用いて、複数の素子間で非保護データを転送している。
上記の第2のパラグラフに記述した実施形態において、デコーダ32は、安全なデコーダ(本発明のオープン・システムのクローズド・システムのDDRユニット内)としてインプリメントされることが望ましく、その結果、DDRユニットはローカルのHD−DVDディスクと同程度に保護しインターネットベースのコンテンツを配信するために使用することができる。そのような実施形態上のバリエーションとして暗号化されたデータ及び圧縮されたデータは、上記DDRユニットのSATAポートを経由してDDRユニット(それはDVDドライブの内のではなくPCあるいは他のオープン・システムのクローズド・システム中にインプリメントされる)に提供され(例えばインターネットから)、そして上記DDRユニットは再暗号化したデータ(例えばHDMIリンクについて)をHDMIにのみ出力する。
例えば、もし顧客が最新の人気のある映画(「映画」をここでは「タイトル」と呼ぶことがある)を見たかったならば、有限回(それは一度だけ使用される)によくて、顧客のデコーダユニット(顧客のオープン・システムのDDRユニット内)は限られた時間内有効で一度だけ使用される鍵をもらうことができる。その後、映画のコピーはインターネットの上に送られ、その鍵で自動的にその場で暗号化される。そのユーザだけが、制限時間内においてのみタイトルを見ることができる。たとえ映画のデータが他の誰かによって傍受されたり、またはディスクに保存されたとしても、それは、他のいかなるデコーダ(鍵を所有していないデコーダ)や、鍵の期限が切れた後ののいかなる時であっても役に立たない。
代わりとして、配信者はタイトル毎に限られた期間の有効な鍵(例えばデイリー・鍵)を所有し、毎日(あるいは他の適切な時限の)新しい鍵を備えた各タイトルの1つのコピーを暗号化する。その日の映画を見る権限のある任意のユーザは、鍵の終了時間とともに、タイトルおよび適切な鍵が与えられる。一旦時間が通過したならば、上記映画のそのインスタンスの任意のコピーは再生不可能である。翌日、その日の顧客のために新バージョンが暗号化される。
オープン・システムのクローズド・システムの上記DDRユニットはデジタル権利管理ハブ(例えばユーザの家庭に設置されたPDN内)として使用できるであろう。例えば、図11において、DDRユニット92はオープン・コンピュータ・システム95のクローズド・システムに備えられている。オープン・システム95はさらにHD−DVDドライブ90を備えている。上記クローズド・システムはさらにインターフェース回路93を備えている。DDRユニット92内では、ドライブ90から暗号化され、圧縮された高精細度の映像は、解凍され再暗号化(HDCPプロトコルに従う)されて復号化できる。再暗号化されたデータは、その後オープン・システム95からモニタ91にHDMIリンクを介して送信できる。同様に、暗号化コンテンツ(「CPPM」データ)はインターネットからDDRユニット92にインターフェース93経由でアサートすることができる。DDRユニット92(インターフェース93経由)は交換した任意の鍵をインプリメントし、CMPデータの解読を終了するために必要な確認作業と、DDRユニット92はその後データを解読し(必要に応じて解凍する)、そして次に結果として得られたデータを再暗号化する(望ましくはHDCPプロトコルに従う)。再暗号化したデータは、その後、オープン・システムからモニタ91にHDMIリンクを介して送信することができる。本質的には、DDRユニット92は、多種多様な用途のための鍵を安全に保持し使用することができる収容場所として機能する。しかし、収容場所としてだけではなく、ハブの内部で保護されたフォーマット(例えばHD−DVDとHDCP)間で変換するリソースを備えている。この結果は、鍵も任意の非暗号化コンテンツも不正使用のために常に利用可能ではないということである。
一般に、メディア・データを解読(解読および(または)解凍)するソフトウェアは、多種多様なフォーマットがあるとき、あるいは一連のフォーマットが急速に変化するとき、ハードウェアに優る利点を有する。これが、家庭用PCのインターネットを介して利用できるストリーミングメディアの現在の世界の代表的な状況である。多くの競合するオーディオおよび映像のフォーマットがあり、また、必要なとき、ユーザは普通デコーダ・プログラムの新しいコピーをダウンロードする。
ソフトウェアで解読する一般的な欠点は、それがシステムの処理能力のかなりの部分を消費してしまうということである。システム間のアプリケーションの読み込み及び処理速度の変動によって、一様によいプレゼンテーションが必ずしも可能だとは限らない。
しかしながら、フォーマットがいつか標準化され、世界共通になる(例えばCDやDVDのフォーマット)と、ソフトウェアで解読する利点は極めて小さくなる。通常、専用デコーダは最新のPCプロセッサほど高価ではなく、また、プレゼンテーション品質は一様によいことを保証することができる。これは、PC上と違って、専用デコーダ上で作動する予期しないアプリケーションはありえないからである。
ハードウェアで解読することのもう一つの有利な領域は、コンテンツ上で知的財産権による保護を維持する際にある。ソフトウェアで解読する場合、鍵もコンテンツを解読するにも、どちらにしてもPCのメモリ・システムのプレインテキストに提示され、使用される。他のアプリケーションが同時に作動することができるので、悪意のあるプログラムは保護システムを危険にさらすことができる。さらに、ホームユーザは、通常システムの上に管理者権を持っており、「トロイの木馬」のデバイス・ドライバをロードすることができるか、鍵またはコンテンツへのアクセスを獲得するために他のバックドア攻撃を使用することができる。一旦、鍵に障害がおきるとフォーマットを大量に生産し、コンテンツ保護の戦いに本質的に負けてしまう。対照的に、専用ハードウェア・デコーダは他のプログラムをロードすることを許可することはなく、署名したファームウェア・アップデートを許可するだけなので、アクセスを得ることは、最も高度なクラッカー以外は、事実上不可能である。
専用ハードウェアの使用は、非コピー保護コンテンツを解読するソフトウェアを排除することはない。本発明で具体化したオープン・システム、および(または)米国特許出願10/679,055号で示したものは、非保護コンテンツ(例えばいくつかのホームムービー)とは異なる、コンテンツ製作者の価値のある知的財産を処理することができた。さらに、本発明および(または)オープン・システム(米国特許出願10/679,055号に記述したような)のクローズド・システムを具体化する、安全なハードウェア(例えば進入および退出回路構成)は、ソフトウェア(例えばオープン・システムによって実行される消費者映像編集ソフトウェア)がコピー保護コンテンツを修正することを防ぐために導入できる。
オープン・システム・アーキテクチャを有し、外部システムにコンテンツを供給する、米国特許出願10/679,055号でも説明している方法で、コンピュータ・システム中のコンテンツを保護する方法は、(a)コンピュータ・システムのクローズド・システム中で、解読することによって生のコンテンツを生成し、暗号化コンテンツ上で任意にさらなる処理を実行する工程と、(b)クローズド・システム中で、生のコンテンツを再暗号化することによって保護コンテンツを生成する工程と(c)保護コンテンツへのコンピューティング・サブシステム・アクセスを提供することなしにクローズド・システムから外部システムまで保護コンテンツを主張する工程とを含んでいる。上記暗号化コンテンツは、コンピュータ・システムのソースの外部(例えばインターネットを介して)から受け取ることができる。上記暗号化コンテンツはディスクから読まれたデジタル映像データでもよい。工程(a)は、復号化データを生成するために暗号化コンテンツを解読することと、生のコンテンツを生成するために復号化データで解凍を実行する工程とを含むことができる。いくつかの実施形態では、デジタル映像データはディスクから読まれた高精細度デジタル映像データであり、工程(a)は、復号化データを生成するために高精細度デジタル映像データを解読することと、生のコンテンツを生成するために復号化データで解凍を実行する工程とを含む。
本発明の特徴は米国特許出願10/679,055号で示した(上に述べた)ことを一般化したものである。これらのそして他の本発明における特徴は、PDN(図4、5、11および12を参照し説明した任意の種類のオープン・コンピュータ・システムである必要はない)の中のコンテンツを保護する方法と装置である。
本発明のいくつかの特徴に基づいて、コンテンツの解読を遂行するために使用されるプレインテキスト・コンテンツと秘密は、オープン・コンピュータ・システムあるいは他のPDNで保護され、そしてPDNのそのようなハードウェアの外部に存在するときはいつも再暗号化される。オープン・コンピュータ・システムは任意の図4、5、11および12で、本発明を具体化しており、それは下記の説明から明らかである。例えば、図4、5、11および12の任意のことのオープン・コンピュータ・システムは発明を、コンテンツトランスクリプション(解読と再暗号化)が図4あるいは5のディスクドライブ4中の単一の集積回路(チップとしてインプリメントされた「進入ノード」)中のハードウェア、図12のディスクドライブ104、あるいは図11のDDRユニット92中でインプリメントされる場合、進入ノード(トランスクリプションをおこなうことで使用するために)中に存在する秘密が、オープン・コンピュータ・システムのソフトウェアまたは進入ノードへの他の(実体)(ハードウェアまたはソフトウェア)外部へ解読された形式でアクセス可能でない場合(例えば、そのような秘密はそれぞれ進入ノード内に残るか、あるいは暗号化される進入ノードの外側に存在する場合はいつでも)、具体化することができる。例えば、図4のディスクドライブ4はシングル・チップ内に統合されたハードウェア(そのように安全なチャンネルが要素32内の解読回路構成と、要素33内の再暗号化回路構成の間で通信する必要はない)として、要素32および33がインプリメントされる図6に示される装置上のバリエーションとして本発明に従ってインプリメントされることができる。任意の秘密を既にではなく得るように(外部出所から)構成されたロックボックス回路構成を含む進入ノードが、所望の解読か再暗号化オペレーションをおこなうために必要なチップ内に示すとともに、そのようなチップを構成することができるかもしれない。*状況に応じて、図6のディスクドライブ上のそのバリエーションは、解読に続くドライブから出力するためチップ内での再暗号化のためにトランスクリプション・チップ内(要素32および33はその中で統合され、それは進入ノードとして構成される)の解読回路に転送することができる、ドライブのSATAインターフェース34で受け取った、そのような暗号化コンテンツ(外部のコンテンツ・プロバイダから)で構成される。
次に本発明を具体化することができるPDNの種類について記述する。例えば、図14のPDN100は発明を具体化することができる。PDN100は、衛星からアンテナ102に送信されたアンテナ102コンテンツから受け取るように構成された衛星受信器120(通常セットトップ・ボックスとしてインプリメントされた)と、DVDプレーヤー122(ディスク103からコンテンツを読むことができる)と、ケーブル106を介して送信されたコンテンツを受け取るように構成されたケーブル受信器124(通常セットトップ・ボックスとしてインプリメントされた)、およびチューナー126(アンテナ108に放送されたコンテンツ上の任意の必要な復調を受け取りおこなうことができる)を含んでいる。状況に応じて、チューナー126は、リモートサーバー111と相互の通信のためにインターネットを介して(例えばSSL暗号化データを送るため、そしてSSL暗号化データをリモートサーバー111から受け取るため)構成される。状況に応じて、受信器124はデジタル映像を記録する機能(例えば、それは受信器124に連結された記憶装置131にコンテンツを記録するように構成される)を有している。
PDN100はさらにオーディオ/映像受信器128も含み、任意の要素120、122および124からオーディオを受け取り処理し、そして、映像処理装置132およびモニタ116の一方もしくは両方に処理したコンテンツをアサートするために、連結され構成される。PDN100はさらにビデオプロセッサ132を含んでいて、チューナー126および受信器128の一方もしくは両方からオーディオおよび映像コンテンツを受け取り、映像コンテンツを処理し(スケーリングの実行、フォーマットの変換、および(または)さらにインターレースの解除など)、オーディオおよび処理した映像をモニタ118(またモニタ118に連結したラウンドスピーカー)にアサートするために、連結され構成される。プロセッサ132はさらに状況に応じてデジタル映像を記録する機能(例えば、プロセッサ132を連結した記憶装置133に、処理されたコンテンツを記録するように構成される)を有する。
モニタ118およびラウンドスピーカーはHDMIのシリアルリンクによってビデオプロセッサ132に連結され、モニタ116およびラウンドスピーカー(示していない)は別のHDMIのシリアルリンクによって受信器128に連結される。
PDN100はさらにパーソナル・コンピュータ(「PC」)130を含んでいて、受信器124からオーディオおよび映像コンテンツを受け取るため、そしてモニタ113や状況に応じてさらに他のディスプレイもしくは再生デバイスにオーディオおよび映像(あるいはそれを処理したバージョン)をアサートするために連結され構成される。モニタ113(およびラウンドスピーカー)は、DVIリンク、HDMIリンクあるいは別のリンクによってPC130に連結することができる。
PDN100の上記要素は、WiFi、イーサーネット、HPNA、MOCA、USB、ホームプラグおよび1334リンクの1つもしくは複数の、それらの専用の実装に適した任意の方法で互いに連結される。
PDN100が本発明の代表的な実施形態に従って備えられているとき、各々の要素120、122、124、126、128、130および132は、ロックボックス回路構成と、下記に述べる進入回路構成もしくは退出回路構成の一方あるいは両方を備えているハードウェアを含むノードである。例えば、パーソナル・コンピュータ130は、ロックボックスチップと、ロックボックスおよび進入回路構成を含むチップを含むことができる各要素120、122、124および126と、ロックボックスおよび退出回路構成を含むチップを含むことができる各要素128および132と、下記とは異なる各要素120、122、124、126、128、130および132のロックボックスとソフトウェア(PC130上で動作する)を介して通信のために連結され構成されることができる各要素120、122、124、126、128、130および132のロックボックス回路構成とを、含むことができる。図14はPC130と各要素120、122、124、126、128および132間の相互の通信用のリンクを示さないが、PDN100が典型的な本発明の実施形態)に従って実装される場合、そのようなリンクが存在する(例えば、暗号化したメッセージは、PC130のソフトウェアを介してPC130の中のPCIバスに沿って接続されたロックボックスチップと、要素128または132のロックボックスおよび進入回路構成を含むチップとの間でやりとりすることができる。
本発明の実施形態に従って備えられるPDN100の例を考慮すると、各要素128、130および132はロックボックス回路構成および退出回路構成を含むノードである。この例で、各要素128、130および132の退出回路構成は、復号化コンテンツを生成するために制御コンテンツ(例えばPDN100の別の要素から受け取ったトランスクリプト・コンテンツ、あるいはPDN100に入力されたPDN暗号化フォーマットが済んだ制御コンテンツ)を解読するために操作が可能(提供された必要な鍵データを得ている)である。むしろ、解読は、プレインテキスト形式のコンテンツでも、退出回路構成によってコンテンツの各バージョンで認可された動作を実行するために使用される任意の秘密でもなく上記コンテンツは、安全なハードウェア内のPDN100の内でプレインテキスト形式以外では存在することはなく、PDN100の任意の要素上で作動しているソフトウェアによってアクセス可能であり、そのよう方法で完了する。例えば、各要素128、130および132の退出回路構成は、PDN100外部の実体(要素116、113、あるいは118の各々)の復号化コンテンツ(あるいはその処理されたバージョン)をアサートするために操作可能でもある。例の上のバリエーションで、各要素128、130および132の退出回路構成は、ある別の目的(例えば、PDNに内部サブシステムを含む)のためにPDN100の外部の実体が、PDN100内の何らかの目的(例えば、PDNに内部サブシステムを含む)のためにあるもの(例えば要素116、113、あるいは118上のバリエーション)に復号化コンテンツ(あるいはそれ処理されたバージョン)をアサートするために操作が可能である。一般に、本発明(あるいは処理されたそのような復号化コンテンツのバージョン)に従ってPDNの退出回路構成の中で生成された復号化コンテンツは、PDNの内に表示される(あるいは言い換えるなら「消費された」)場合と、PDN外部で消費される場合がある。
もちろん、図14(例えばPDN100より単純であったり、より複合的であったりするPDN)のPDN100以外の多くのタイプのパーソナル・デジタル・ネットワークは、本発明を具体化することができる。例えば一実施形態群では、その発明は、オープン・アーキテクチャを有し、CPU(ソフトウェアでプログラムされた)と暗号化された映像および音声コンテンツ(例えば高精細度DVDあるいは他のディスクからコンテンツを読むことによる)を受け取るための少なくとも1つの周辺機器を含み、コンテンツの映像部分を表示し、コンテンツのオーディオ部分の再生を遂行するように構成されたコンピュータ・システムである。さらに、上に説明されるように、図4あるいは図5のPC1は発明を具体化することができる。
代表的な実施形態では、本発明のPDNは、装置あるいはコンポーネント(時に、ここではPDNの「ノード」または「メンバー」として触れている)で構成され、各装置あるいはコンポーネントは、回路構成がPDNの別のノードの少なくとも1つのロックボックス回路構成との相互の通信のために結合されて構成されたロックボックス回路構成を含む。
ノードはそれぞれ、状況に応じて、進入および(または)退出ハードウェアをロックボックスハードウェアと同様に(下記に述べられること)を含むことができる。ノードはそれぞれ、単独で、本発明の別の特徴である。進入回路構成(進入回路構成は進入ユニットとしてここでは指すことがある)およびロックボックス回路構成を含むノードは、「進入ノード」として示される。退出回路構成(退出回路構成は退出ユニットとしてここに示すことがある)およびロックボックス回路構成を含むノードは、「退出ノード」として示される。進入ノードおよび退出ノードはそれぞれ、使用制限セットに従うコンテンツ(例えばデジタル映像データおよびデジタル音声データの1つあるいは両方)を受け取ることができ、使用制限セットによって禁止されない少なくとも1つの方法(状況に応じて多数のあるいはすべての方法で)でコンテンツを使用するように構成される。
本発明のPDNのいくつかの実施形態では、各ノード内のロックボックス、各進入ノード内の進入回路構成および各退出ノード内の退出回路構成は、ハードウェア中でインプリメントされる。本発明のPDNの実施形態群は、各ロックボックス、各進入ノード内の進入回路構成、および各退出ノード内の退出回路構成は、集積回路もしくはマルチチップ・セット(どのマイクロプロセッサを含むことができるかはファームウェアでプログラムした)として備えられているが、ソフトウェアでプログラムされたCPUを含んでいない。他の実施形態では、発明を状況に応じて具体化するPDNのノードはそれぞれ、さらにファームウェアまたはソフトウェアでプログラムされた少なくとも1つの要素を含んでおり、ハードウェアの中でのみノード内で秘密(解読された形式で)を操作することができ、ノード中のソフトウェアあるいはファームウェアに任意の解読された秘密を知らせることがないように制限して構成されている。他の実施形態では、PDNのノード内に安全に埋め込まれたプロセッサ上で走るファームウェアは、プレインテキスト・コンテンツおよび(または)コンテンツ(進入ユニットで)の再暗号化あるいは再暗号化コンテンツ(退出ユニットで)の解読に使用された秘密にアクセスすることがあるが、プレインテキスト・コンテンツも任意のそのような秘密も、任意のノード、ユーザにアクセス可能な(あるいは少なくとも、容易にアクセス可能な)PDNのインターフェースもしくはリンク、あるいは無許可でそれにアクセスしようとする実体として存在しない。暗号化された秘密(例えば本発明に従ってノードのハードウェア中で暗号化された秘密)は、ノード内のソフトウェアあるいはファームウェア、あるいはノード外の実体に知らせる(暗号化された形式で)ことができる。各進入ノード内の進入回路構成および各退出ノード内の退出回路構成は、安全なハードウェアを含んでおり、状況に応じてファームウェアまたはソフトウェアでプログラムされた少なくとも1つの要素も含んでいるが、しかし、各ノードの進入回路構成および(または)退出回路構成は、ノードもしくはノード内のソフトウェアまたはファームウェアの外部の任意の実体にそのような秘密(解読された形式で)を知らせることなく、ハードウェアだけで秘密を操作するように構成される。
ノード内のロックボックスは通常安全なハードウェアを含んでおり(しかし含んでいる必要がない)、ファームウェアまたはソフトウェアでプログラムされた少なくとも1つの要素を含むことができるが、含んでいる必要はない。いくつかの実施形態では、ロックボックス(例えば、任意の要素120、122、124、126、128、130および132内のロックボックス)は、完全にハードウェア(あるいはファームウェアでプログラムされたマイクロプロセッサを含むハードウェア)から成る。他の実施形態では、ロックボックス(例えば、任意の要素120、122、124、126、128、130および132内のロックボックス)があるか、あるいはプロセッサあるいはファームウェアもしくはソフトウェア(例えば、図14でいくつか実装されたPC130のCPUは、要素120、122、124、126、128、130、および132のうち1つがロックボックスとして機能するソフトウェアでプログラムされることがあり、その結果PC130および要素120、122、124、126、128、132の適切な1つがともにPDNのノードとしての機能する)でプログラムされたコンピュータ・システムを含んでいる。鍵ライブラリの管理またはロックボックスと別のロックボックス双方へのメッセージを移動させるために、ソフトウェアでロックボックスをプログラムすることができるかもしれない。いくつかの実施形態では、PC自体(例えば図14で実装されているPC130)が、例えばPCが完全なハードウェアから成るロックボックスを含んでいる時や、さらにPCのCPUがロックボックスとして機能するソフトウェアでプログラムされる時などに、PDNのノードとしての機能する。より一般には、しかしながら、いずれの秘密もノード(もしくはノード内のソフトウェアまたはファームウェア)の外部の任意の実体に暴露されないように、各々のノード(ノード内の各ロックボックス)は秘密(ノードを含むPDNのコンテンツ保護に使用される)を操作するように構成される。ロックボックスがソフトウェアに実装されれば、ロックボックスソフトウェアは、重大な方法(ソフトウェアが暗号化された秘密にアクセスする場合、秘密を解読することができないように、そしてソフトウェアは、ロックボックスを含んでいるPDNによって保護されているコンテンツのために任意の使用制限セットを有効に変更することができない)で必ず制限されることになる。一実施形態群では、ノード(またはノード内のロックボックス)は、ノード(あるいはノード内にソフトウェアまたはファームウェアが存在している場合、ノード内のソフトウェアまたはファームウェア)外の任意の実体に漏えいされる(解読された形式で)から任意の秘密を防ぐ方法の安全なハードウェア内で暗号化されていないバージョンの秘密(ノードを含むPDN中のコンテンツ保護のために使用する)を操作するために構成されている。
発明の実施例の種類は、図15を参照して記述する。これらの実施形態では、本発明は、オープン・アーキテクチャを有し、バス(例えばPCIバス)に沿って接続された装置を含むコンピュータ・システムである。本システムは、暗号化された映像および音声コンテンツ(例えば高精細度DVDあるいは他のディスクからコンテンツを読み込む、あるいは放送コンテンツあるいはケーブルを介して送信されたコンテンツを受け取ることによる)を受け取るように構成され、映像部分を表示することができ、コンテンツのオーディオ部分を再生することができる。図15は、PCI(周辺の通信相互接続)バス、CPU147、PCIバスに連結したVOコントローラ(例えば「サウスブリッジ」チップあるいは「I/Oコントローラ・ハブ」)145、およびコントローラ145とCPU147の間を連結したグラフィックスとメモリのコントローラ(例えば「ノースブリッジ」チップセットあるいは「グラフィックスおよびメモリ・コントローラ・ハブ」)146を含む、そのようなシステムの一部のブロック図である。メモリ149およびグラフィック処理ユニット(「GPU」)150はコントローラ146に連結される。
GPU150は、外部の視聴覚システムに連結され、通常モニタ(例えばHDMI受信器を含むHDTVモニタ)とモニタによって駆動されるラウンドスピーカーを含む。
PCIバスによって接続される3つの追加チップ(あるいはチップセット)は、チューナーおよび復調回路構成143と回路構成144(進入およびロックボックス回路構成を含む)を含むチップ(あるいはチップセット)140、ロックボックス回路構成151および記憶回路構成152を含むチップ(あるいはチップセット)142、そして回路構成154(退出およびロックボックス回路構成を含む)およびデコーダ回路155を含むチップ(あるいはチップセット)148である。単純にするために、回路140、142および148は、マルチチップ・セットあるいはシングル・チップでもありえるが、それらを、「チップ」と呼ぶ。任意の回路140、142および148がマルチチップ・セットとして実装される場合、チップセットはそこにプレインテキスト・コンテンツでもなく、任意の暗号化されていない秘密(例えば暗号化されていない鍵データおよび(または)証明書)でもない、これまで外部にさらされている個々にセットしたチップ、あるいはセット外部の任意の実体によるアクセス(暗号化されていない形式)に対して別に保護されたものが実装されるべきである。状況に応じて、外部記憶装置153は記憶回路構成152に連結される。通常、チップ140、142および148は、パーソナル・コンピュータに便利に挿入されるように構成されたカード(例えば「マルチメディア・グラフィック・カード」)として実装される。
便宜上、ロックボックス回路構成151は、時にはここで「ロックボックス」151と呼ばれることがある。さらに、ブロック144内の進入回路構成は、時には進入ユニットと呼ばれ、ブロック154内の退出回路構成は、時には退出ユニットと呼ばれることがある。
通常の実装では、回路構成143は、放送映像を受け取り復調し、かつ回路構成144内の進入ユニットにデジタル映像およびオーディオ(受信コンテンツを示す)をアサートするように構成される。通常、進入ユニットにアサートされたデジタル・コンテンツは暗号化され、そして進入ユニットはそれ(プレインテキストの形にそれを置くこと)を解読するためと、かつプレインテキスト・コンテンツが進入ユニットの外部で露出される前にプレインテキスト・コンテンツ(すなわちそれを再暗号化することは、つまり進入ユニットによって受け取られた時に暗号化されていたと仮定される)を暗号化するために構成される。上記再暗号化コンテンツは、その後システムの別の要素へのPCIバスを介してアサートされる。以下で更に詳細に説明されるように、進入ユニット(回路構成144内)は、中間者攻撃に対して免疫のある暗号化プロトコルを使用する上記コンテンツを再暗号化する。通常の実装では、ユニット144は、従来の256ビットのアドバンスト・エンクリプション・スタンダード(「AES」)プロトコルの変異した既知のカウンタ(「CTR」)モードを使用する上記コンテンツを再暗号化する。コンテンツがハードウェア(回路構成144に)中にプレインテキスト形式内に復号化され、さらに解読ハードウェアに残す前に本発明に従って再暗号化されたので、上記コンテンツは図15システム内にしっかりと保護される。
本発明のすべての実施形態において、再暗号化(進入ユニットで)のために使用された暗号化によるプロトコルは、中間者攻撃に対して免疫がある。通常の実施形態では、暗号化によるプロトコルは、さらに再暗号化コンテンツが生成された進入ノードと直接(「リアルタイム」で)通信しない、退出ノードによる復号化を許可している。特定のアプリケーションに従い、任意の異なる暗号のプロトコルで満たすことが第一で、好ましくは基準が適切であることが第二である。例えば、進入ノードは、少なくともいくつかのアプリケーションでAESプロトコルの任意のより強く変化したものに従って再暗号化をおこなうために実装することができる。256ビットのAESプロトコルのCTRモード変形は、より強いAES変形のうちの1つになり、集積回路中のハードウェア(例えば、パイプライン型の回路構成)に実装することが容易になり、そして証明できるセキュリティ特徴を持つようになって以降、多くのアプリケーションにおいて適切であると考えられる。AESプロトコルの他の動作モードの中には、「出力フィードバック」(OFB)モード、「暗号フィードバック」(CFB)モード、「電子コードブック」(ECB)モード、および「暗号ブロック連鎖」(CBC)モードがあり、本発明のいくつかの実施形態において進入ノードを実装するのに適切な任意のものがある。本発明を具体化するノードは、他のノードと共有する再暗号化コンテンツの、少なくとも2つの異なる暗号のプロトコルのうち、任意の選択された1つを使用するために実装することができるであろう。むしろ、ノードは、各ノードを実装するコストを縮小し、かつ相互運用性を最大限にしてノードの中に共有される再暗号化コンテンツのほんの少数の異なるプロトコルしか使用しないために実装される。
図15のシステムを(チップ140を介して)入力するコンテンツは、(上記に規定された)使用制限セットを備えている。使用制限セットを示すプリミティブ(Primitives)(およびそのようなセットと関連する少なくとも1つの秘密)が、チップ142内部のロックボックス151(またはロックボックス151と関連する格納ユニット153)に永続的に事前記憶される。概ね、チップ140がコンテンツを受け取り、解読し、再暗号化し始める前に、ロックボックス151は、チップ140が上記動作を行う権限が与えられていることを確認し、チップ140に上記動作を行うために必要などんな秘密(例えば、コンテンツ鍵)も供給する。ロックボックス151により使用された上記プリミティブと秘密は、ロックボックス151内部の不揮発性メモリ(または揮発性メモリ)に格納できるか、あるいはロックボックス151からリモートしているけれどもロックボックス151によってだけでは暗号化されない形式でアクセスする(例えば、記憶回路構成152を経由した安全な方法で)ことが可能なメモリに記憶できる。例えば、サテライトプロバイダが、(ロックボックス151がプリミティブと秘密を受け取ることが認められていることを確認した後、)ロックボックス151のプリミティブと秘密を読み込むことができる。更に、ロックボックス151は、(概ね、安全なチャンネルを通じて回路構成144または154の内部のロックボックス回路構成要素とのやりとりを行った結果、)秘密に関連性のあるものをコンテンツ鍵として、回路構成144内部のロックボックス回路構成(および/または回路構成要素154内部のロックボックス回路構成)に供給することが適切であると判断した場合には、これを行うことができる。
図15システムから要素152および153を省いて、代わりにロックボックス151内部にロックボックス151の持続的な記憶用件全てを満たすのに十分な非揮発性メモリを含むことは、いくつかの実施形態では好適である場合がある。また別の実施形態では、非揮発性メモリ(または揮発性メモリ)の数がより少ないロックボックス151を使用して、更に、(PCIバスに沿って接続された)記憶回路構成152と、(回路構成152に接続された)記憶ユニット153とを設けて、安全な方法で必要に応じて、ロックボックス151が、記憶ユニット153から(回路構成152を経由して)データを読み込み、(ロックボックス151の内部のメモリに)該データを蓄えることができるようにすることは好適である。例えば、(回路構成152を経由してロックボックス151によりアクセス可能であるように)ユニット153に記憶されたデータ全ては、暗号化されたデータであってもよい。この暗号化されたデータは、ロックボックス151の内部に蓄えられるかまたはロックボックス151によって使用される前に、(ロックボックス151の内部で)復号化されてもよい。ロックボックス151が読み込み動作を開始して記憶ユニット153からそのようなデータをアクセスすると、これらデータは記憶ユニット153からロックボックス151に回路構成152を経由して暗号化されて転送される。
記憶ユニット153は、概ね非揮発性記憶ユニットであるけれども、(いくつかの実施形態では、)揮発性メモリの場合がある。いくつかの実施形態では、ロックボックス151は揮発性メモリを含み、非揮発性メモリは含まない。
概ね、電源を入れると、各安全なチャンネルを確立するプロセス(および該安全なチャンネルが一度確立されるとこの安全なチャンネルを使用する動作)が、攻撃(これに限定されるものではないが、好ましくは、マン・イン・ザ・ミドル・アタック(man in the middle attacks)、ブルート・フォース・アタック(brute force attacks)、ディファレンシャル・フォルト・アナリシス・アタック(differential fault analysis attacks)およびリプレイ・アタック(replay attacks)を含む全ての攻撃)に難攻不落であるような標準的な暗号法の手段を使用して、回路構成144の内部のロックボックス回路構成が、ロックボックス151により安全なチャンネルを確立し、また回路構成154の内部のロックボックス回路構成が、ロックボックス154の内部のロックボックス回路構成が、ロックボックス151により安全なチャンネルを確立する。このプロセスがマン・イン・ザ・ミドル・アタックに頑強である場合には、(例えば、安全なチャンネルを確立するための準備の認証交換の間に)回路構成144(または154)とロックボックス154との間で送信されたメッセージにアクセスする装置(「人」)が、上記メッセージを読み込むことも、目的の受信者に理解できる上記メッセージの改変バージョンを作り出すこともできない。リプレイ・アタックを、標準的な暗号法の手段によって、容易に防ぐことができる。この標準的な暗号法の手段は、例えば、回路構成144とロックボックス151の装置、または回路構成154とロックボックス151の装置を構成して、該装置の間に安全なチャンネルを確立するために一度だけ(1つのセッションに対して)使用されるランダム・セッション鍵を使用することによって行われる。中間者は、サービスを拒否する(即ち、安全なチャンネルの確立を中断する)とが可能な場合があるけれども、これは、中間者が導入に成功できた攻撃のみである。回路構成144が、コンテンツを受け取って処理する準備ができているときに、回路構成144内部のロックボックス回路構成が、(以下に記載されている方法で確立された安全なチャンネルを経由して)ロックボックス151への要求を送って、回路構成144がコンテンツを解読し再暗号化する権限が与えられているかどうかを決定することがある。
回路構成144からの要球がコンテンツから作られる用途を指定し、ロックボックス151はコンテンツのどんな用途が使用制限セットにより排斥されるのかを識別し、(回路構成144は、ロックボックス151との間の安全なリンクを確立したやりとりの間にロックボックス151にその身元を証明するので)ロックボックス151は回路構成144の身元と機能を識別し、更に、ロックボックス151は、使用制限セットにより排斥された用途を示すデータと要求の中の関連するデータを比較するように構成されているために、ロックボックス151はこの決定を行うことができる。もしロックボックス151が、回路構成144に要求された動作を行う(例えば、ロックボックス151がコンテンツを解読し再暗号化する)権限を与えることを決定すれば、ロックボックス151は、回路構成144内部の進入回路構成がこれら動作を行うために必要とする秘密(即ち、コンテンツ鍵)を、回路構成144に供給する。回路構成144内部の上記進入回路構成は、上記鍵を持続的に記憶できない(それを行うメモリがない)。また、上記進入回路構成は、コンテンツに関して秘密が行わせることができる動作だけを行うことができ、更に、上記鍵が有効である限られた時間に対して(即ち、セッションの間)のみこれら動作を行うことができる。
回路構成144(または、以下に説明されているように、回路構成154)は、コンテンツ鍵をロックボックス151から受け取ると、概ね、回路構成144(または154)が上記鍵を使用して行うことができることに関連した制限が行われる。各回路構成144と154は、各々がそのような制限に従わなければならないように構築されている。例えば、HDCPセキュリティが破れたと回路構成154が判断する(即ち、HDMI受信器に権利が与えられていないと、回路構成154が判断する)場合にはHDCP−暗号化とHDMI伝送動作が停止しなければならないという条件で、上記鍵は、回路構成154に、コンテンツを解読してHDCPプロトコルを使用して復号化コンテンツ(プレインテキスト・コンテンツ)を再暗号化する権限を与えて、該HDCP−暗号化コンテンツをHDMIリンクによって伝送させる場合がある。各回路構成144と154は、厳密に権利化が認められている場合にのみ動作するように構築されている。
コンテンツが図15システムを離れるためには、(再暗号化された形で)コンテンツは、回路構成154内部の退出回路構成によってチップ148の内部で暗号化を行うために、チップ148へのPCIバスでアサートされなければならない。更に、チップ148は、概ね、チップ148外側のプレインテキスト・コンテンツを公開することなしに出力するために(例えば、HDCPプロトコルを使用して)プレインテキスト・コンテンツの再暗号化を行う(例えば、上記コンテンツは、チップ148から離れる前に、図15システムからの出力のために再暗号化される)。“チップ148の内部の回路構成(例えば、デコーダ155)は、プレインテキスト・コンテンツに必要などんな解凍も行われ、更に、復号化され解凍されたプレインテキスト・コンテンツに選択的に更なる処理(例えば、フォーマット化および/または出力のための再暗号化)を行うこともする。例えば、いくつかの実施形態では、チップ148は、HDMI(またはDVI)リンクにより伝送される暗号化データに通常利用されるHDCPプロトコルを使用すること等により、グラフィック処理ユニット150(GPU150)に出力にし、更に、HDMI(またはDVI)リンクによるGPU150から外部装置またはシステムへ出力するために、プレインテキスト・コンテンツをHDMI(またはDVI)フォーマットに設置する。以下により詳細に説明されるように、チップ148は、権限が与えられた方法で、また、権限が与えられたフォーマットでのみ、コンテンツを(GPU150)に出力できる。例えば、図15システムが、HDCP−暗号化フォーマットでHDCPリンクによりコンテンツを出力する権限が認められれば、チップ148はHDCPプロトコルを使用してコンテンツを再暗号化し、HDMIリンクによりGPU150から伝送するために、HDCP暗号化HDMIフォーマットのGPU150にそのコンテンツをアサートする。そのために、例えば、(高精細度モニタの)許可されたHDMI受信機のみが、HDCP−暗号化コンテンツを解読し、該HDCP−暗号化コンテンツを表示することができる。別の実施形態では、図15システムが、上記プレインテキスト・コンテンツのアナログ版を出力する権限が与えられ、チップ148がDAC(デジタル−アナログ変換回路)を含んでいれば、チップ148はDACを使用してプレインテキスト・コンテンツを示すアナログ信号を生成し、GPU150にアナログ信号を出力するか、あるいは図15システムと無関係な装置またはシステム(例えば、アナログディスプレイ装置)によりアクセス可能なコネクタ(図示せず)にアナログ信号を出力することができる。図15システムにより利用可能となった上記プロテクションを回避するために、1つ以上のチップ140および148に進入し、各開放されたハードウェア・ユニット内部の回路構成を修正(または原則的に修正)する非常に様々な動作を実行する必要がある。
回路構成154内部の退出回路構成が、(PCIバスに沿って接続された装置から)再暗号化コンテンツを受け取って、処理する準備ができると、回路構成154は、(以下に記載された方法で確立された安全なチャンネルを経由して、回路構成154が上記コンテンツを解読し更に処理する権限が与えられているかどうかを判断するようにロックボックス151に要求できる。回路構成154からの上記要求が、コンテンツから作られた用途を指定し、上記コンテンツのどんな用途が使用制限セットによって禁じられているかを認識し、更に(ロックボックス151と回路構成154内部のロックボックスの間に安全なリンクを確立したやり取りの間に、回路構成154がロックボックス151にその身元を証明したために)回路構成154の身元と機能を認識し、更にまた、ロックボックス151は、要求に関連するデータと、使用制限セットにより禁止された用途を示すデータとを比較するように構成されているために、ロックボックス151がロックボックス151はこの判断を行うことができる。もし回路構成154が(例えば、暗号化コンテンツを解読し更に処理するような)要求された動作を行う権限が認められていることをロックボックス151が判断すると、ロックボックス151は、回路構成154がこれら動作を処理するために必要な秘密(即ち、コンテンツ鍵)を回路構成154に供給する。回路構成154の出力回路構成は、上記鍵を持続的に記憶せず(それを行うメモリを有していない)、上記秘密が可能にさせる動作のみをコンテンツに行うことができ、更に、上記かぎが有効である限られた時間(即ち、セッションの間で)の間のみで、これら動作を行うことができる。
ロックボックス151と回路構成144(または回路構成154)内部のロックボックスとの間の双方向の通信のための安全なチャンネルは、非常に多くの方法のうちの任意の方法(例えば、安全なチャンネルが図18のロックボックスの間に確立されている図18と19を参照して以下に記載される方法など)で確立できる。
図15の実施例の変形例では、チップ(またはチップセット)142が省かれている。このような別の実施形態では、各チップ140と148(それぞれチップセットでもよい)は、必要に応じて、例えば他のロックボックスから必要なかぎを得るために、それ自身のロックボックス回路構成(例えばブロック144内部のロックボックス回路構成)を使用する。
一般に、異なる2種類の認証プロトコルが、本発明のPDNの装置(例えば、ロックオンボックス)の間の通信のために使用できる。即ち、明示(例えば、ツーステージ)認証と黙視(例えば、ワンステージ)認証である。明示認証は、上記装置が互いに認識されていない場合のときはいつでも使用しなければならない。また、明示認証は、概ね、公開鍵暗号法と(証明書等の)完全な認証交換を使用する。黙視認証は、(例えば、これら装置を製造する工程の間に永続的に確立された基本的関係のために、)上記装置が互いに必ず認識している場合にはいつでも使用できる。明示認証プロトコルは、基本的にはブラックボックス間でのものである。そのため、(単一のチップ内部に導入されたノードと、更に場合によっては、単一のクローズド・システム内部に導入されたノードとを除いた)PDNのノードと、潜在的にPDNのノードとなりうる全ての装置が、互いに通信するときに同じ(標準的な)明示認証プロトコルを使用するという意味で、明示認証プロトコルは十分に標準化されなければならない。黙視認証プロトコルは、概ねチップ内部(または、場合によっては、PDNの単一のクローズド・システム内部の装置の間)で使用され、非標準化されているものでもよく、アプリケーション依存であってもよい。例えば、ロックボックスと進入回路構成が同じチップ内部にあれば、それらの間の通信は、どんな特別なプロトコルも全く必要としなくてもよい。あるいは、異なるチップに導入された2つの装置が、同じメーカーで製造されて相互に作動するように特別に設計されている、異なるチップに導入されていれば、所有者プロトコルは、十分に秘密を隠す間は、それら装置の間の通信のために使用できる。
一実施形態群では、本発明のPDNは、PDN内部のコンテンツが権限が認められないやり方でPDNの外で使用できるようにコンテンツがPDNから除去されるのを防ぐように、また、権限が認められないやり方でコンテンツがPDN内部で使用されるのを防ぐように構成されている。このようなPDNに進入するコンテンツは、トランスクリプション(復号化および再暗号化)動作の再暗号化段階に使用される同じプロトコルに応じて既に暗号化されていなければ、(概ね、集積回路に導入された)進入ハードウェアによって直にトランスクリプト(復号化および再暗号化)される。また、復号化および再暗号化を行うためにPDNにより使用されるプレインテキスト・コンテンツも暗号化されていない秘密も、PDNの集積回路の外にアクセスすることはできない。進入回路構成から上記再暗号化コンテンツ出力がPDN内部の装置の間で(安全でない方法であっても)自由に変換可能であり、PDN内部のソフトウェアに、またはPDN外部のハードウェアまたはソフトウェアのアクセス可能であり、更にPDNの装置(例えば、PDNのディスクドライブのディスク)に安全でないやり方で記憶できる。PDN内部の退出回路構成だけが、再暗号化コンテンツを解読して上記コンテンツのプレインテキスト・バージョンを生成するために必要な秘密を有している。退出回路構成は、該退出回路構成がロックボックスにその身元を示してロックボックスに指定された動作を行う権限が与えられていることをロックボックスに示した後にのみ、また、ロックボックスと退出回路構成の間にロックボックスから退出回路構成へ秘密を送信するための安全なチャンネルが確立した後に、PDN内部のロックボックスからのみにこれら秘密を得ることができる。従って、再暗号化コンテンツが、PDNから除去される(例えば、再暗号化されたデータを含むディスクがPDNから除去される)と、権限が認められないやり方で(従来の方法では)復号化または使用できない。再暗号化コンテンツはPDNに特有の形式で暗号化される。そのため、PDNは再暗号化コンテンツを保護しなくてもよい。対照的に、コンテンツを安全にPDN内部に固定しPDNの要素間のすべてのリンクを保護することにより、PDN内部のコンテンツを保護することが、本分野で提案されている。
本発明のパーソナル・デジタル・ネットワーク(PDN)の一群の実施形態は、図16および図17を参照して記載される。図16のPDNは、本発明を具体化しており、(集積回路に導入されて、ロックボックスと進入回路構成とを含む)進入ノード160と、(別の集積回路に導入され、ロックボックスと回路構成とを含む)ノード161と、(また別の集積回路に導入され、ロックボックスと退出回路構成とを含む)退出ノード162と、ビデオプロセッサ175と、記憶コントローラ176と、ビデオコントローラ177とを含み、図示されるような関係である。記憶ユニット178が、コントローラ176に、またコントローラ176により結合され、PDN168と無関係である。コンテンツ・プロバイダ163とノード161内部のロックボックス回路構成は、各々の間に安全な通信チャネル164を確立し、この安全なチャンネルで互いに通信するように構成されている。図17は、コンテンツ・プロバイダ163は正しいデータ199と鍵データ191をノード161に供給し、該データ190と191はノード161のロックボックス回路構成の非揮発性メモリに記憶され、コンテンツ・プロバイダ163とノード161の間の通信が終了していると仮定しているので、コンテンツ・プロバイダ163は図17には示されていない。
復号化コンテンツを再暗号化するために、(例えば、図15の回路構成144または図16のノード160内)進入回路構成によって、また、再暗号化コンテンツを解読するために、(例えば、図15の回路構成154または図16のノード162内)退出回路構成により、本発明に従って使用される再暗号化プロトコルは、マン・イン・ザ・ミドル・アタックに影響を受けないようにしなければいけない。概ね、再暗号化プロトコルは、暗号データの送信機と受信機(暗号データを受け取り解読する装置)の両方が、送信機と受信機の間を認証交換、そのセッションの間に使用される鍵データ(例えば、送信機と受信機での鍵データの生成、または、鍵データを必要とする各装置に与えられた鍵からの鍵データの提供)、および受信機への暗号化されたデータの送信をなどが行われる各セッションで、直接に相互にやり取りすることを必要とする接続保護プロトコル(例えばHDCPプロトコル)ではない。むしろ、再暗号化プロトコルは、概ね、トランスクリプション回路構成が、コンテンツトランスクリプションが開始する時間までに、再暗号化を行うために必要とする鍵データを得たときのみに必要とするタイプのプロトコル(例えば、CTRモードの256ビットAESプロトコル)であり、相互に直接やり取りする、鍵ギバー(giver)、トランスクリプション回路構成、およびコンテンツ・プロバイダを必要としない。本発明のPDNの好適な実施形態では、異なるノードのロックボックス間の安全なリンクを確立するために必要な許可証が、ロックボックスにあらかじめ記憶されている。また別の実施形態では、自己認証タイプの非対称暗号化が、ロックボックス間の安全な接続を確立するために使用されるときに、安全な接続を確立するために使用される許可証は、リンクを確立するやり取りを行う間、ロックボックスによって行われた数学的計算では暗黙的である。そのため、そのようなやり取りで使用するために、許可証をロックボックスにあらかじめ記憶させる必要はない。一度安全な接続が確立されると、1つのロックボックスがコンテンツ鍵を別のロックボックスに、安全な接続で送信する。鍵コンテンツは、コンテンツの受け取り、解読、再暗号化の開始の進入回路構成への指示(または、コンテンツの受け取り、解読、再暗号化の開始の退出回路構成への指示)と、許可された暗号化動作を行う進入(またな退出)回路構成によって必要とされる鍵の両方で機能することができる。(精細度によって進入回路構成を有する)各進入ノードは、ロックボックスから(例えば、鍵の形成の際に)最初に指示を受けなければ、コンテンツを受け取りトランスクリプトする動作ができないように構成されている。(精細度によって退出回路構成を有する)各退出ノードが、ロックボックスから(例えば鍵の形で)最初に指示がなければ、コンテンツを受け取り再暗号化する動作ができないように構成されている。本発明は、ロックボックス間、およびロックボックスとコンテンツ・プロバイダ間の一連の信頼を頼りにするけれども、全てのロックボックスとコンテンツ・プロバイダが、(例えば、単一のセッションの間のリアルタイムで)直接相互にやり取りを行うことを(一般的な実施では)必要としない。むしろ、本発明のPDNの好適実施形態では、ロックボックスとコンテンツ・プロバイダは、実質的に、(リアルタイムででもなければ、単一のセッションの間でもなく)間接的に相互にやり取りをすることができる。
図16の例では、許可データ170が進入ノード160に記憶され、許可データ171がノード161内部のロックボックスに記憶され、更に、許可データ172がノード162の内部のロードボックス回路構成に記憶される。許可データ171は、製造時にノード161に記憶できる。許可データ170および172は、ノード160と162の製造時に、ノード160および162にそれぞれ記憶されたデータを有しており、ノード160と162(または、それらの各々を有する装置)が、PDN168の要素として認識されるようになる(以下に記載されるタイプの)マリッジオペレーションの間に、ノード161により(製造された後)ノード160と162に、それぞれ記憶される。ノード161内部のロックボックス回路構成が、進入ノード160からの、(ノード161の内部の進入回路構成が、受け取りのためにコンテンツにトランスクリプション動作を行うのに必要な)鍵の要求に応答すると、進入ノード160とノード161は、あらかじめ記憶されている許可データ170と171を使用して認証交換を行って、(それらの間の)安全なチャンネル165を確立しなければならない。該安全なチャンネル165によって、鍵がノード161から進入ノード160に送信できる。このとき、進入ノード160がコンテンツの受け取り、解読、再暗号化を希望すれば、進入ノード160の内部のロックボックス回路構成が、安全なチャンネルで、ノード161の内部のロックボックス回路構成に鍵の要求をアサートする。鍵の要求はコンテンツに行われる動作を示す(例えば、鍵の要求は、コンテンツに行われる動作を示す正しいデータ180を有している)。このとき、ロックボックスは、例えば、(図17のノード16の範囲のクエスチョンマークの印を付けた星である)ノード160からの正しいデータ180と、進入ノード160が行うことの権限が許されている動作を示す(ノード161にあらかじめ記憶されている)正しいデータ190とを比較することによって、鍵の要求を許可するかどうかを判断する。もしノード161が鍵の要求を認めることを決断すれば、ノード161は鍵(例えば、図17の鍵データ181)を進入ノード160に安全なチャンネル165により送信する。ノード160の内部の進入構成回路構成は、鍵を記憶する非揮発性メモリを有していない。従って、ノード160の電源を入れる前に(または電源を切った後に)、進入回路構成によっては、鍵を使用することはできない。
本発明のいくつかの実施形態の動作では、外部装置(例えばコンテンツ・プロバイダにより操作される装置)は、(PDNの)ロックボックスに(PDNのどの要素がコンテンツのトランスクリプションを行う権限があたえられるかを確証するためにPDNによって必要な)正しいデータと、コンテンツにトランスクリプションを行うためにPDNの要素に必要な鍵データを送信する。ロックボックスは正しいデータと鍵データを持続的に(例えば、ロックボックス内部の非揮発性メモリに)後の使用のために記憶される。例えば、図16に示すように、コンテンツ・プロバイダ163は、正しいデータ190と鍵データ191をノード161内部のロックボックス回路構成に送信する。更に、ロックボックス回路構成要素は、このとき、図17に示すように、上記データ190と191を持続的に記憶できる。より具体的には、図16および17の例では、コンテンツ・プロバイダ163とノード161の内部の回路構成は、(信頼できる関係を確立する認証交換をおこなって、ノード161が鍵データと正しいデータを受け取る権限が与えられていると確証した後に)安全なチャンネル164を確立する。コンテンツ・プロバイダ163は、このとき、正しいデータ190と鍵データ191をノード161にチャンネル164によって送信する。ノード161内部のロックボックス回路構成は、該データ190と191をノード161内部の非揮発性メモリに記憶する。このとき、進入ノード160内部の進入回路構成が、外部の発信源(例えば、コンテンツ・プロバイダ163、またはコンテンツ・プロバイダ163によって権限が認められた発信源)からコンテンツを受け取る準備ができたときに、進入ノード160が該進入ノード160に供給される上記コンテンツに行うと該コンテンツが推測している動作を示す正しいデータ180を、(上記コンテンツ・プロバイダから)進入ノード160は得る。進入ノード160内部のロックボックス回路構成は、このとき、(ノード160の電源が入った状態でノード160と161の間に確立した)安全なチャンネルで、ノード161内部のロックボックス回路構成に対する要求をアサートする。上記要求は、正しいデータ180を含む。上記要求に応じて、ロックボックスは、正しいデータ180と、(ノード161にあらかじめ記憶されている)正しいデータ190とを比較する。正しいデータ190は、進入ノード160が行う権限が認められている(あるいは認められていない)動作を示している。もし、ノード161のロックボックス回路構成が、上記鍵の要求をデータ180と190との比較の結果であると認められると判断すれば、ノード161は、(コンテンツ鍵を示す)鍵データ181を進入ノード160に、安全なチャンネル165で送信する。進入ノード160が鍵データ181を得た後、その進入回路構成がコンテンツ・プロバイダからの暗号化コンテンツの受け取りを開始し、鍵データ181を使用して暗号化コンテンツのトランスクリプションを行う。更に、(概ね、ビデオオーディオコンテンツを含む)該トランスクリプトコンテンツをビデオプロセッサ175にアサートできる。プロセッサ175はビデオプロセッサ177を経由して、退出ノード162にトランスクリプト・コンテンツをアサートできるか、またはトランスクリプト・コンテンツを記憶コントローラ176にアサートできる。該コントローラ176は、トランスクリプト・コンテンツを、(例えば、プロセッサ177を経由した退出ノード162への連続読み出しとアサーションのための)記憶ユニット178に記憶させることができる。ノード160内部の進入回路構成は、再入力データ181を記憶する非揮発性メモリにより使用できない。従って、鍵データ181は進入ノード160の電源を入れる前(または電源を切った後)に、進入回路構成によって使用することはできない。
ノード162内部の退出回路構成が、コンテンツをドメイン168に無関係の装置にアサートする準備ができたときに(またはその前に)、退出ノード162は、該退出ノード162により上記コンテンツに行われる動作を示す正しいデータ195を得る。ノード162の内部のロックボックス回路構成は、(ノード162の電源が入っているときにノード162と161の間に確立された)安全なチャンネル166で、ノード161の内部のロックボックスへの要請をアサートする。上記要求は、正しいデータ195を含む。上記要求に応じて、上記ロックボックスは、正しいデータ195と、(ノード161に前もって記憶されている)正しいデータ190を比較する。正しいデータ190は、退出ノード162が行う権利が得られている(または、得られていない)動作を示す。もしノード161の内部のロックボックス回路構成が、鍵の要求をデータ195と190との比較の結果と認められると判断すれば、ノード161は(鍵を示す)鍵データ194を退出ノード162に、安全なチャンネル166で送信する。可能であればいつでも(使用権により許可されるときはいつでも)、正しいデータ、要請、および鍵データは、ノード162内部の退出回路構成が外部装置にコンテンツをアサートする前に、ユーザのロックボックスの間でやり取りができ、(例えば、ノード162が、ほんのたまにしかPDNに接続されない、モービルMP3、ビデオプレーヤ、またはその他の装置であるか、またはそれらのいずれかの内部に導入されている場合には、)ユーザ経験の助けとなる。退出ノード162が、鍵データ194を得たあとに、PDN178の要素からの制御コンテンツを受け取り始め、鍵データ194を使用してこのコンテンツを解読し、(更に、それについて更なる処理を選択的に行い)、所望の送信先に出力するために復号化コンテンツをフォーマット化(および/または再暗号化)する。例えば、ノード162の内部の退出回路構成は、HDMIリンクで、PDN168に無関係のモニタに関連するHDMI受信器に送信するために、復号化映像コンテンツおよび復号化オーディオコンテンツをフォーマット化する場合がある。ノード162の内部の退出回路構成は、再入力データ194を記憶する非揮発性メモリを有していない。従って、鍵データ194は、退出ノード162の電源を入れる前に(あるいは、電源を切った後に)、退出回路構成によっては使用できない。
進入ノード160が、上記ノード161に、進入回路構成160がコンテンツに特定の動作を行う権利が認められていることを示した後にのみ(例えば、進入ノード160が、それ自身が許可を受けた装置であると、ノード161に示した後にのみ)、進入ノード161が、進入ノード160に、(例えば、安全チャンネル165を確立するために、認証交換を行っている間に、)ノード161が許可を受けた装置であることを示した後にのみ、鍵データ181は進入ノード160に与えられる。同様に、退出ノード162が、コンテンツに特定の動作を行う権利が与えられていることを、ノード161に示した後にのみ(例えば、退出ノード162が、許可を受けた装置であるということを、ノード161に示した後にのみ)、また、ノード161が、(例えば、安全なチャンネル166を確立するために、認証交換を行っている間に)それ自身が許可を受けた装置であることを、退出ノード162に示した後にのみ、鍵データ194は退出ノード162に付与される。
次に、図18と19を参照して、ロックボックス間に安全なチャンネル(例えば、図16および17のチャンネル165、166)が確立されるための、本発明のいくつかの実施形態に従って行われる工程を記述する。この例は、説明に役立つだけであり、安全なチャンネルが、ロックボックス間におよび/または本発明のPDNの実施形態の他の要素間に確立できる唯一のやり方を示しているつもりはない。各図18および19は、要素200が本発明のPDNの要素のソフトウェア(例えば、図15のCPU147をプログラムするソフトウェア)を示す、論理ソフトウェア図である。また、ソフトウェア200とPDNの3つのノード(進入ノード、退出ノード、および第3ノード)との間のハードウェアインターフェイスが、点線で示されている。これらノードの各々は、(概ね、図20、21、および22のマイクロプロセッサ240、260.または280のような、ファームウェアを実行するマイクロプロセッサを有している)ハードウェアを含んでいるけれども、プログラム可能な、一般的目的のCPUまたはソフトウェアは有していない。それらノードの各々は、ロックボックス回路構成を有するけれども、進入ノードだけが進入回路構成を有しており、退出ノードだけが退出回路構成(図示せず)を有している。第3ノードは、ロードボックス回路構成を有しているけれども、進入回路構成も、退出回路構成も有していないので、第3ノードをロックボックス・ノードと呼んでいる。
より一般に、本発明のPDNの好ましい実施形態のクラスでは、少なくとも1つのノードのロックボックス回路構成は、ノード(できれば集積回路内の)のハードウェアに安全な方法で埋め込まれていた意思決定論理、またはノードに安全に埋め込まれたプロセッサ上で走る意思決定ファームウェアを含むことができる。そのようなノードでは、ロックボックス回路構成は、ノード内に安全に埋め込まれたプロセッサを含むことができた。また、プロセッサ上で走るファームウェアは、コンテンツ上で公認のオペレーションをおこなうことを支持、またはおこなうためのノード内に使用される、鍵データまたは他の秘密にアクセスすることができた。しかし、そのような秘密は、ユーザや無許可にそれにアクセスしようと努力する実体にアクセス可能な(あるいは少なくとも、容易にアクセス可能な)ようにはノードの中に存在すべきでない。
図18および19を参照すると、ソフトウェア200は、3つのノードのそれぞれの内部のロックボックス回路構成のレジスタと対話することができる。そのようなレジスタは進入ノードにメールボックス(セクション201に「イン」、セクション202に「アウト」)を含んでおり、退出ノードにメールボックス(セクション205に「イン」、セクション206に「アウト」)、ロックボックス・ノードにメールボックス(セクション203に「イン」、セクション204に「アウト」)、およびロックボックス・ノードのロックボックス回路構成の能力テーブル207を含むレジスタを含んでいる。割込ラインはレジスタに関係している。
進入ノードは、動力を供給するごとにロックボックス・ノードと通信するための安全チャンネルのセット・アップを自動的に試みるように(ファームウェアによって)プログラムすることができる。あるいは、進入ノードは、進入ノードのロックボックスの中に秘密が既にある場合ではなく秘密を必要とする場合にのみ、ロックボックス・ノードを備えたそのような安全チャンネルをセット・アップするそのようなオペレーションの第一工程として、進入ノードは、メールボックスのセクション202の「アウト」に暗号化されたメッセージを置き、割り込みをアサートする。これを受けて、ソフトウェア200は、ロックボックス・ノードのメールボックスのセクション203の「イン」にメッセージを配達する。これを受けて、ロックボックス・ノードはそのメールボックスの「アウト」セクション204に暗号化されたメッセージを置き、割り込みをアサートする。これを受けて、ソフトウェア200は進入ノードのメールボックスのセクション201の「イン」にこのメッセージを配達する。この方法を継続して、進入ノードおよびロックボックス・ノードは(図16に示すように、そこにあらかじめ保存されている認証データ170、171を用い)ソフトウェア200を介して認証交換をおこなう。認証交換の無事完了に際して、進入ノードおよびロックボックス・ノードは、あたかもそれらの間に安全チャンネル(図19に「安全チャンネル0」として示される)が存在するかのように作動する状態に入る。そのような状態で、進入ノードおよびロックボックス・ノードは、この情報を決定するためにさらなる認証動作をおこなわずに、互いの身元についての知識およびそれらの各々が許可された装置であるという知識で互いに通信する。しかしながら、ソフトウェア200を介して進入ノードおよびロックボックス・ノードの間を伝達されるすべてのメッセージ(または、秘密または「重要」と考えられる全てのメッセージ)は、(進入ノードおよびロックボックス・ノードの間に安全チャンネルを設立する交換時、および安全チャンネルが設立された後に)暗号化される。すなわち、ソフトウェア200は、そのような暗号化されたメッセージに対して何でも(例えば、それらを保存したり、後でそれらを再び行おうとしたり、修正したり、あるいは意図した目的地以外の装置へそれらを送ったり)することができるが、ソフトウェア200がそれらにおこなうことができる有用な結果を持つただ一つのオペレーションは、その意図した目的地にそれらの各々を(修正無しで)配達することである。例えば、ソフトウェア200が、ロックボックス・ノード用に意図されたメッセージを他の装置に配達したり、ロックボックス・ノードに配達する前に修正したりすると、受信者はそれらを解読できず、その結果、そのような誤配達(または壊れたメッセージの配達)は、送信側のノードとロックボックス・ノードとの間の通信の成功を妨害すること以外に何の効果も持たない。
同様に、退出ノードは動力を供給するごとにロックボックス・ノードと通信するための安全チャンネルのセット・アップを自動的に試みる。あるいは、退出ノードは、退出ノード・ロックボックス内に既に秘密がある場合ではなく秘密を必要とする場合にのみロックボックス・ノードを備えるそのような安全チャンネルのセット・アップを試みる。そのようなオペレーションの第一工程として、退出ノード内のロックボックス回路構成は暗号化されたメッセージをメールボックスのセクション206の「アウト」に入れ、割り込みをアサートする。これを受けて、ソフトウェア200はメッセージをロックボックス・ノードのメールボックスのセクション203の「イン」に配達する。これを受けて、ロックボックスは、ノードが暗号化されたメッセージをそのメールボックスのセクション204の「アウト」に置き、割り込みをアサートする。これを受けて、ソフトウェア200は、退出ノードのメールボックスのセクション205の「イン」に配達する。この方法を継続して退出ノードおよびロックボックス・ノードは(図16に示すように、そこにあらかじめ保存されている認証データ172,171を用い)ソフトウェア200を介して認証交換をおこなう。認証交換の無事完了に際して、退出ノードおよびロックボックス・ノードは、あたかもそれらの間に安全チャンネル(図19に「安全チャンネル1」として示される)が存在するかのように作動する状態に入る。そのような状態で、退出ノードおよびロックボックス・ノードは、この情報を決定するためにさらなる認証動作をおこなわずに、互いの身元についての知識およびそれらの各々が許可された装置であるという知識で互いに通信する。しかしながら、ソフトウェア200を介して退出ノードおよびロックボックス・ノードの間を伝達されるすべてのメッセージ(または、秘密または「重要」と考えられる全てのメッセージ)は、(退出ノードおよびロックボックス・ノードの間に安全チャンネルを設定する交換時、および安全チャンネルが設定された後に)暗号化される。すなわち、ソフトウェア200は、そのような暗号化されたメッセージに対して何でも(例えば、それらを保存したり、後でそれらを再び行おうとしたり、修正したり、あるいは意図した目的物以外の装置へそれらを送ったり)することができるが、ソフトウェア200がそれらにおこなうことができる有用な結果を持つただ一つのオペレーションは、その意図した目的地にそれらの各々を(修正無しで)配達することである。例えば、ソフトウェア200が、(ロックボックス・ノードに意図された)退出ノードからのメッセージを他の装置に配達したり、ロックボックス・ノードに配達する前に修正したりすると、受信者はそれらを解読できず、その結果、そのような誤配達(または壊れたメッセージの配達)は、送信側のノードとロックボックス・ノードとの間の通信の成功を妨害すること以外に何の効果も持たない。
本発明のPDNの典型的な実施形態では、安全チャンネルは、PDNの任意のノード対のロックボックス回路構成の間に設立することができる。例えば、ソフトウェアは、退出ノード向けのメッセージをメールボックスに置くことができ、(例えばソフトウェアによって)退出ノードに配達された時、メッセージは、PDNの指定されたハードウェア(例えば、進入ノード160から退出ノード162まで図16のプロセッサ177)を介して進入ノードによって退出ノードにアサートされる再暗号化コンテンツを受け取り処理するように、退出ノードに準備をさせることができる。この例において、退出ノードは、安全チャンネルを設立し、他のいくつかのノードとの安全なやりとりをおこなうことによって、メッセージによって指定されたオペレーションをおこなうために必要とされる(他のノードからの)鍵を得て、メッセージに応答することができた。
典型的な実施形態では、本発明のロックボックス回路構成(あるいは「ロックボックス」)はコンテンツに関係する1組の権利を示す(および/またはそれに結合した)データを格納する。例えば、ロックボックスは、そのようなデータを格納するレジスタ(あるいは他のメモリ)を含む能力テーブル(例えば図18および19の能力テーブル)を含む。能力テーブル中の個々の格納位置は、進入回路構成または退出回路構成が特定のタイプのコンテンツに特定のオペレーション(オペレーションの組)を実施するのを可能にする鍵データを格納することができる。たとえば、テーブル207の「N番目の」格納位置は、退出回路構成によって特定のコンテンツ・プロバイダからの再暗号化映像を複号化し、HDMIリンク上での転送するための複号化映像を再暗号化および(再フォーマット)するのに必要とされる鍵データを格納することができる。例えば、PDNの進入ノードは、特定の退出ノードにテーブル207中のN番目の格納位置のコンテンツを送ってくれるようにロックボックス・ノードに求めるメッセージを(ソフトウェア200を介して)図18のロックボックス・ノードに送信することができた。ソフトウェア200は、ロックボックス・ノードへこのメッセージを中継することができたが、テーブル207の格納位置のコンテンツにアクセスできない。このメッセージに応答してこのロックボックス・ノードは適切な鍵データ(テーブル207中のN番目の格納位置のコンテンツ)を複号化でき、ソフトウェア200が適切な退出ノードに複号化鍵データを配達させることができる。ソフトウェア(例えば図18のソフトウェア200)は暗号化された鍵データを配達することができたが、配達される暗号化データを複号化することができないので、生の(複号化された)鍵データにアクセスできない。ソフトウェア200が意図した退出ノード以外の装置、あるいはηに暗号化された鍵データを配達すると、意図した退出ノードに配達する前に暗号化鍵データを修正すると、受信者は誤配達(または修正)された暗号化鍵データを複号化できず、その結果、そのような誤配達(または修正されたメッセージの配達)は、ロックボックスと意図した受信者ノードとの間の通信の成功を妨害すること以外に何の効果も持たない。
別の例の場合では、システムユーザは、進入ノードか退出ノードに、無許可のオペレーションをおこない、ソフトウェア(例えば図18のソフトウェア200)を使用し進入ノードか退出ノードにメッセージを配達し、受信者に無許可のオペレーションをおこなわせるように命じるメッセージを発信することができなかった。もっと正確に言えば、受信者ノードはこれに応答して、他のどんな行動も起こさない前にそのようなメッセージを(受信者が安全チャンネルを設立したノードによってメッセージが生成され暗号化されたという仮定に基づいて)復号化するはずである。この複号化オペレーションは有効にメッセージのコンテンツを破壊するはずである、というのはシステムユーザがメッセージ(メッセージを受け取るノードのロックボックス回路構成によって生成された)の復号化バージョンが、受信者ノードによって認識しうる命令になるようにメッセージを暗号化するのに必要な、鍵データ(システムのノード中のハードウェアに安全に格納された)にアクセスできないはずだからである。
図20の実施形態のバリエーションでは、別のタイプの、および/または異なるアーキテクチャ(例えば、データとファームウェアの両方を格納するための共通メモリに結合されたマイクロプロセッサ)を有するマイクロプロセッサ回路構成、またはソフトウェアでプログラムされたプロセッサが含まれる。マイクロプロセッサ240(あるいはノード258内のロックボックス回路構成の別の要素)は、ノード258から転送されるメッセージを暗号化し、ノード258の外部の実体(例えば別のロックボックス)から受け取った暗号化メッセージ(例えば暗号化コンテンツ鍵データあるいは他の暗号化された秘密データを含むメッセージ)を複号化するように構成することができる。
進入ノード258は、(証明書データおよび/または他のデータを格納するための)不揮発性メモリ243、メールボックス245、入力インターフェース247、複号化エンジン249、再暗号化エンジン251、および出力インターフェース253を含み、これらの全ては図示のようにバス246に沿って接続されている。
要素240、241、242、243および245(および、任意選択で、図示しない他の要素)は、進入ノード258のロックボックス回路構成を含み、要素247、249、251および253(および、任意選択で、図示しない他の要素)は、進入ノード258の進入回路構成を含む。
メールボックス245は、セクション201に「イン」セクション202に「アウト」を有する図18のメールボックスの一例である。メールボックス245は、進入ノード258とPDNの別のノードのロックボックス回路構成との間の上に記述されたタイプの(PNDのソフトウェアを介した)通信用に用いられる。
メモリ243は、進入ノード258のオペレーションに必要とされる証明書をすべて格納する。証明書データは、図20の回路構成の製造の時に、たとえば、ノード258が関係しようとするPDN(たとえば、そのノード258が認証メンバーになろうとするPDN、すなわち、ノード258が「結合」しようとするPDN)のノードのロックボックス回路構成との認証交換で使用するためにメモリ243に格納することができる。そのような交換において、進入ノード258は、他のノードに(メモリ243に格納された認証データを使用して)自体の身元を証明し、進入ノード258がPDNのメンバーになることを認められ許可された装置であると別のノードのロックボックス回路構成が判断すると、この他のノードから「結合認証」データを得る。この結合認証データ(進入ノード258がPDNに公認されたメンバーであることを示す)も、一般的には、PDNの別のノードのロックボックス回路構成とその後認証交換(これは、たとえば、ノード258がPDNと関係した場合のノード258への動力供給時に行われる)するためにメモリ243に格納され、このPDN中で、進入ノード258は、他のノードと安全なリンクを設立し、かつ必要なら上記他のノードから(安全なリンクを通して)コンテンツ鍵を受け取るために、自体の身元を再度証明する。
より一般的には、本発明の好ましい実施形態によれば、PDNとそのノードは、インプリメントされて、外部の権威に依ろうが依るまいが、ロックボックス回路構成と進入(または退出)回路構成とを含む装置がPDNに加えられることを可能にする。たとえば、図14の任意の装置120、122、124、126、128および132は、もしそれら各々が適切に構成されたロックボックス回路構成を含んでいればそのようなPDNに加えられることができる。いくつかの実施形態では、PDNの各ノードはPDNに特別の装置(したがって少なくとも1つの特定の能力)を加えることへのコンテンツ所有者の承認を要求するように構成され操作される。ユーザがPDNに含ませたいかもしれない進入回路構成または退出回路構成を含む各装置のロックボックス回路構成は、好ましくは、そこに秘密が永続的に(安全に)しかし消去可能に格納されて装置がPDNの認証されたメンバー(ノード)であることを示すように構成してよい。一般的には、そのような秘密は認証であり、したがって、そのような秘密を示すデータはここでは結合認証データと呼ばれる結合認証データを他のノード(たとえば、進入ノードまたは退出ノード)に転送することができるロックボックス回路構成、または転送するロックボックス回路構成は、一般的に、通信している各ノードがPDNの認証メンバーかどうかを決定する(すなわち、ノードが正しい結合認証もって、PDNと「結合している」のかどうかを決定する)のに必要なデータ(たとえば、認証データ)を格納するためのそれ自身のプログラム可能な(たとえば、一度だけプログラム可能な)メモリを含む。
進入ノード258(図20)の記憶243は、プログラム可能な(たとえば、一度だけプログラム可能な)メモリ(すなわち、メモリ243の243A部分)を含むことができ、そこに、進入ノード258がPDNに関係するようになったときに結合認証が格納される。そうならば、メモリ243は、ノード258が作製される時点でノード258の身元を明らかにする認証データが格納される読み出し専用の不揮発性記憶装置部分をも含むはずである。メモリ243のプログラム可能な部分243Aはプログラム可能なフラッシュ・メモリ、またはEEPROM(など)でありえる。しかし、メモリ243のプログラム可能な部分243Aは、好ましくは、フラッシュ・メモリまたはEEPROMをインプリメントするのに必要とされるはずのものよりも高価でない方法でインプリメントされる。メモリ243の部分243Aは、必要でなくなったときにはもはや使用されないが、たとえば、一旦それが特別の状態へ半永久的にプログラムされると修正できない一度だけプログラム可能なヒューズの組であり得る。たとえば、プログラム可能メモリ部分243Aは、そのようなヒューズを16(または、他のある数の)組含むことができ、このヒューズの組のそれぞれは、一度プログラムして結合認証データの組を格納することができる。進入ノード258(すなわち、そのマイクロフロフェッサ240)は、たとえば、メールボックス245中のノード258に現在有効な結合認証を示すデータを置く場合、好ましくは、メモリ部分243Aのうち最近にプログラムされたヒューズの組だけを使用する(すなわち、他のヒューズを無視する)ように構成される。ノード258がPDNから除外され(すなわち、PDNから「分離」され)、新たなPDNに結合する(すなわち、新たなPDNと「再結合」する)と、新たなPDNのロックボックスは、メモリ部分243Aの中の別のヒューズの組をノード258’がこの新たなPDNと結合したことを示す結合認証データの新たな組でプラグラムされるようにする。
より一般には、本発明のPDNの典型的な実施形態に結合するようになった装置はすべて、ドメインに特有のデータ(認証データか認証状データ)を含んでいる。そのようなデータは、本明細書でしばしば「結合認証データ」と呼ばれる。そのようなPDNに含むことができる認証された装置は、実際にPDNと結合しているかどうかに拘わらず、自体の少なくとも1つの集積回路(たとえば、ロックボックス・チップ)に半永久的に(製造時に)格納された認証データを有して自体が認証された装置であることを示す。この後者のタイプの認証データは、前述の「結合認証データ」とは異なる。第1のPDNと結合した装置が、この第1のPDNから除去される(すなわち、第1のPDNから「分離される」)場合、この装置の結合認証データは、第1のPDNと結合しているとの理由で得ていた、全ての秘密へのアクセスを失うように、別のPDN(第2のPDN)に結合する(「再結合する」)前に、効果的に除去されるべきである。本発明の装置(PDNのノードになり得る)の好ましい実施形態は、(以前に第1のPDNに結合していた結果として)そこに格納されているどんな結合認証データも、装置が第2のPDNに結合する際、効果的に削除されるようにインプリメントすることができる。本発明の装置の好ましい実施形態は、そのような装置がたかだかあらかじめ決められた最大数のPDNに結合することができるようにインプリメントすることもできる。任意選択で、本発明の装置(たとえば、それらのロックボックス)内に他の制限を設けてこれらの装置が特定のPDNに結合する適格性を制限してもよい。
本発明のロックボックス回路構成の好ましい実施形態は、別のノードとPDNの結合が破棄される場合、ロックボックス回路構成が効果的に決定され、そのような破棄が効果的にインプリメントされ得るように、構成してもよい。
ノード258がPDNに結合されること(すなわち、PDNの認証メンバーになること)を望む場合、(PDNの)ロックボックスと進入ノード258との間で十分な認証交換(たとえば、パブリック鍵認証の署名、すなわち「PKCS」交換)が実施されるはずであることが考慮される。したがって、ノード258のメモリ243にしっかりと格納される認証データはそのような十分な認証交換をおこなうのにふさわしいタイプであるべきである。ノード258がPDNへ結合した後で、ノード258が、安全なチャンネル、その上で他のノードからコンテンツ鍵を得ることができる、を設立することを望む度に、ノード258とロックボックス回路構成との間でずっと簡単な認証交換が実施できる。メモリ243(たとえば、メモリ243のプログラム可能な部分243A)は、そのようなより簡単な認証交換を実施するのに適した少量の認証データを含むこともできる。たとえば、安全なチャンネル(コンテンツ鍵をその上で転送することができる)を設立するこのような「より簡単な」認証交換は、従来のパブリック鍵認証の署名(「PKCS」)交換を実施するのに一般に用いられる業界基準PKCS認証よりも重要度が低い認証を用いて実施することができる。そうならば、メモリ243のプログラム可能な部分243Aは、より複雑なPKCS認証データを格納可能になるように求められる場合よりもより簡単に低費用でインプリメントすることができる。あるいは、PDNの2つのノード間でどんな認証交換もしないで2つのノード間に安全なチャンネルを設立することができる。
まだ、図20に関して、コンテンツ(例えば映像および(または)オーディオ情報)はインターフェース247で進入ノード258を入力し、入力インターフェース247から解読エンジン249までの、解読エンジン249から再暗号化エンジン251、および再暗号化エンジン251から出力インターフェース253まで進入ノード258内に流れる。コンテンツは、要素247、249、251および253、ならびに任意ののうちのどの間にも流れることができない。要素247、249、251および253のマイクロプロセッサ240によって操作の制御がなされる。インターフェース247は、コンテンツを必要な形式中のノード258へもたらすコンテンツ出所を備えた必要なハンドシェーキングをすべておこなうように構成されたストリーム・ハンドラーである。インターフェース247(範囲必要へのマイクロプロセッサ240の管理の下で)は、必要なコンテンツフロー・コントロールをすべておこない、コンテンツ出所に任意の必要な受け取りあるいはその他同種のものをアサートする。いくつかの実施形態では、インターフェース247は1つのフォーマットのみ(例えばUSBリンク、1394のリンク、無線リンクあるいは他のリンクに関して受け取られたコンテンツ)でのコンテンツを受け取るように構成される。他の実施形態では、インターフェース247は2つ以上の異なるフォーマットのうちのどれもでのコンテンツを受け取るように構成される。典型的には、インターフェース247(そして解読エンジン249へのインターフェース247によってアサートされた)によって受け取られたコンテンツは、圧縮され、データが暗号化され、さらに暗号化はコンテンツ・プロバイダによって使用されている輸送および暗号化スキームにもとづいてなされる。
解読エンジン249は、典型的には進入ノード258によって以前にロックボックス(例えば図22のロックボックス・ノード298)から得られたコンテンツ鍵を使用して、それにアサートされたコンテンツを解読する。ロックボックスおよび進入ノード258は、個別のチップとして典型的にインプリメントされる。また、それがエンジン249によって使用することができる形式にそれを入れるために、コンテンツ鍵は、ノード258以内の適切な回路構成によってロックボックス(ソフトウェアによる)からノード258のメールボックス245まで暗号化された形式そして次に復号化で典型的に送られる。解読エンジン249は、典型的にはコンテンツの圧縮したプレインテキスト・バージョンを出力するが、圧縮したコンテンツ上で減圧をおこなわない。その後、再暗号化エンジン251は、典型的には進入ノード258によって以前にロックボックス(例えば図22のロックボックス・ノード298)から得られたコンテンツ鍵を使用して、プレインテキスト・コンテンツを暗号化する。エンジン251によって生成された再暗号化ed(トランスクリプトされた)コンテンツは、出力インターフェース253、およびインターフェース253からPDNの任意の要素へアサートされる。インターフェース253は、トランスクリプト・コンテンツを受け取る装置を備えた必要なハンドシェーキングをすべておこなうように構成されたストリーム・ハンドラーである。
次に、図21に関して、我々は典型的に単一の集積回路としてインプリメントされる本発明の退出ノードの実施形態について記述する。図21の退出ノード278は、バス266に沿って接続しているマイクロプロセッサ260、およびマイクロプロセッサ260につながれた命令メモリ261およびデータ・メモリ262を含んでいる。メモリ261はマイクロプロセッサ260によって実行可能なファームウェアを格納する。また、データ・メモリ262は、マイクロプロセッサ260が作動するデータを格納する。マイクロプロセッサ260は汎用CPUでなく、ソフトウェアでプログラム可能ではない。代わりに、マイクロプロセッサ260は、典型的に単純な状態機械をインプリメントする単純なマイクロプロセッサ(例えばコントローラ)である。図21の実施形態上のバリエーションは、別のタイプのマイクロプロセッサ回路構成および(または)異なるアーキテクチャ(例えばデータとファームウェアの両方の格納のために共通メモリと結び付けられたマイクロプロセッサ)、あるいはソフトウェアでプログラムされたプロセッサを持つことを含んでいる。マイクロプロセッサ260(あるいはノード278以内のロックボックス回路構成の別の要素)は、ノード278から転送されることになっており、実体(例えば別のロックボックス)からノード278まで受け取られた、暗号化されたメッセージ(例えば暗号化コンテンツ鍵データあるいは他の暗号化された秘密データを含むメッセージ)を解読するメッセージを暗号化するように構成することができる。
退出ノード278は、図に示すように、不揮発性のメモリ263(証明書データおよび(または)他のデータの格納用)、メールボックス265、入力インターフェース267、解読エンジン269、回路構成271のデコード、デマルチプレクサ273、およびHDMI送信器277を有しており、またバス266を介して接続されている。デマルチプレクサ273の1つの出力はHDMI送信器277の入力につながれる。デマルチプレクサ273の別の出力はスケーラー275の入力につながれる。また、スケーラー275の出力は符号化およびDAC回路構成279の入力につながれる。
要素260、261、262、263および265(任意に示されない他の要素)は、退出ノード278のロックボックス回路構成を含む。また、要素267、269、271、273、275、279(任意に示されない他の要素)は、退出ノード278の退出回路構成を含む。
メールボックス265は、「イン」セクション205および「アウト」セクション206を有する図18のメールボックスの例である。メールボックス265は、PDNのソフトウェアによって退出ノード278とロックボックス(PDNにノード278で含まれていた)の間で上に記述されたタイプの通信に使用される。
メモリ263は、退出ノード278のオペレーションに必要とされた認証をすべて格納する。認証データは、ノード278が対応付けたように(他の語(ノード278はそれに「結合される」ようになろうと努力する)の中で)なろうと努力するPDNのノードのロックボックス回路構成を備えた認証交換での使用を、図21回路構成の製造の時にメモリ263に例えば保存することができる。そのような交換に、退出ノード278は他のノード(認証データの使用はメモリ263に格納した)にその同一性を証明し、他のノードから「結合証明書」データを得る。別のノードのロックボックス回路構成がその退出を決定する場合、ノード278はPDNのメンバーになることを認められた、許可された装置である。結合証明書データ(それらは退出ノード278がPDNの公認のメンバーであることを示す)も、ノード278とPDNの他のノードの間の後の認証やりとりでの使用をメモリ273に典型的に保存されるだろう(ノード278がPDNに関係している時、を確立し、上記のような他のノードの必要性に応じて、コンテンツ鍵(安全な上の)を受け取るために別のノードにそれをその同一性であると証明するノード278のパワーアップで、例えばおこなわれた各々)。
メモリ263は、プログラムな可能(例えば、ワンタイムプログラマブル)メモリ(つまりメモリ263の部分263A)を含むことができ、そこで退出ノード278がPDNと対応付けられたようになる時点で、結合証明書データが保存される。そうであるならば、メモリ263はまた、読み出し専用の不揮発性メモリ部分を含み、そこでノード278が作成される時点でノード278が識別する証明書データが記憶される。メモリ263のプログラム可能な部分263Aは、プログラム可能なフラッシュ・メモリまたはEEPROM(あるいはその類)であり得る。しかしながら、メモリ263のプログラム可能な部分263Aは、フラッシュ・メモリまたはEEPROMをインプリメントするために必要とされるより安価な方法で好ましくはインプリメントされる。例えば、メモリ263の部分263Aは、ワンタイム・ヒューズ・プログラミング可能なセットであり得る。それはもはや必要でなくなると使用されないが、一旦それが特定の状態に半永久的にプログラムされると修正できない。例えば、プログラム可能なメモリの部分263Aは、そのようなヒューズを16セット(あるいはその他数量)を含むことができ、各ヒューズのセットは、結合証明書データ一式を記憶するように一度プログラムすることができる。例えば、メールボックス265のノード278に現在有効な結合証明書を示すデータを置く場合、退出ノード278(すなわち、それのマイクロプロセッサ260)は、メモリの部分263Aのヒューズで最新にプログラムされたセットだけ(すなわち、相互のヒューズを無視するために)を使用するように好ましくは構成される。ノード278がPDNから取り除かれ(すなわち、それがPDNと「離婚」する場合)、新規PDNと係わり合いを持つようになる(すなわち、新しいPDNと「再婚」する)と、新規PDNの別ノードのロックボックス回路は、メモリの部分263Aでヒューズの別セットに、新規PDNとノード278の関連を示す結合証明書データの新たな一式でプログラムさせる原因となる。
ノード278がPDNの正式会員になろうすると、完全な認証交換(例えば、交換に署名する公開鍵証明書)は、退出ノード278およびPDNのノードのロックボックス回路の間でおこなわれることが考えられる。従って、ノード278のメモリ263に持続的に保存された証明書データは、そのような完全な認証交換をおこなうのに適した種類でなければならない。ノード278がPDNへ関連するようになった後、ノード278が他のノードと安全なチャンネル(例えば、ノード278がコンテンツ鍵を得ることができる、安全なチャンネル)を設立しようとするたびに、ノード278と、別のPDNノードとの間の認証交換がはるかに簡単におこなうことが可能である。メモリ263(例えば、メモリ263のプログラム可能な部分263A)は、そのような簡単な認証交換をおこなうのに適した少量の証明書データを含むことができる。例えば、安全なチャンネル(そのチャンネル上でコンテンツ鍵を転送できる)を設立するためのそのような「より簡単な」認証交換は、交換に署名する(「PKCS」)従来の公開鍵証明書をおこなうために通常用いられる業界基準PKCS証明書より軽量な証明書を用いて、おこなえる。そうであれば、メモリ263のプログラム可能な部分263Aは、より複雑なPKCS証明書データを記憶できるのに必要とされる場合より、より間単にしかも低価格でインプリメントすることができる。
依然として図21に関して、コンテンツ(例えば、映像および/または音声データ)がインターフェース267で退出ノード278に入力し、入力インターフェース267から復号化エンジン269まで、復号化エンジン269からデコーティング回路271まで、および回路271からデマルチプレクサ273まで流れるように、退出ノード278は構成される。コンテンツは、素子267、269、271および273のいずれと、ならびにマイクロプロセッサ260、メモリ263、およびメールボックッス265のいずれとの間にも流れることができない。マイクロプロセッサ260は、素子267、269、271および273の操作を制御する。インターフェース267は、必要な形式でコンテンツをノード278に運ぶため、コンテンツのソースと必要なすべてのハンドシェーキングをおこなうよう構成されたトリームハンドラーである。インターフェース267(必要範囲でマイクロプロセッサ260の管理の下で)は、必要なコンテンツ・フロー制御をすべておこない、確認等の必要とされるコンテンツにアサートする。いくつかの実施形態では、インターフェース267はPDNの素子からコンテンツ(1つのフォーマットのみで)を受信ように構成される。他の実施形態では、インターフェース267はPDNの1つ以上の素子から2つ以上の異なるフォーマットのいずれでもコンテンツを受信するように構成される。一般的に、インターフェース267によって受信され、復号化エンジン269へアサートされるコンテンツは、退出ノード278が属するPDNの進入ノードでトランスクリプトされ、圧縮、トランスクリプトされたデータである。
復号化エンジン269は、一般的に退出ノード278によって以前に別のノード(例えば、図22のロックボックス298)のロックボックスから得られたコンテンツ鍵を使用して、それにアサートされたコンテンツを復号化する。退出ノード278および他のノードのロックボックスが、個別のチップとしてインプリメントされる場合、コンテンツ鍵は、通常他のノード(ソフトウェアによる)のロックボックスから暗号化された形式でノード278のメールボックス265に送られ、次いで復号化エンジン269によって使用することができる形式にそれを入れるために、ノード278内の適切な回路によって復号化される。復号化エンジン269は通常、コンテンツの圧縮したプレインテキスト・バージョンを出力するように構成される。デコーディング回路271は、圧縮コンテンツ上で任意の必要な解凍をおこない、生(解凍された)のプレインテキスト・コンテンツをデマルチプレクサ273へアサートする。
マイクロプロセッサ260がデマルチプレクサ273を第1の状態に置いた場合、生のプレインテキスト・コンテンツは、デマルチプレクサ273からHDMI送信器277にアサートされる。送信器277は、生のプレインテキスト・コンテンツ(HDCPプロトコルによる)を再暗号化し、HDMI受信器(例えば、表示装置を含む視聴覚システム内の)へのHDMIリンク上で再暗号化コンテンツを送信する。マイクロプロセッサ260がデマルチプレクサ273を第2の状態に置いた場合、デマルチプレクサ273は、生のプレインテキスト・コンテンツをスケーラー275へアサートする。スケーラー275は、コンテンツ上で(例えば、別の解像度へ映像コンテンツを再スケールする)任意の必要なスケーリングをおこなう。その後、コンテンツ(通常、スケーラー275内のスケーリングを受けたもの)は、エンコーディングおよびDAC回路279にアサートされ、そこで必要に応じて(出力のため)、エンコードされ、フォーマット化され、かつ退出ノード278から出力するアナログ方式に変換される。
マイクロプロセッサ260は(従って、退出ノード278も)、その内部のファームウェア、および、それがロックボックスから受信した任意のコンテンツキー(および/または入場許可データ等)が、マイクロプロセッサに実行を許可する操作のみの実行が可能であるという意味で、認可されたやり方でしか動作しないように構成されることに注意されたい。退出ノード278は、別ノードのロックボックス回路から安全チャンネルを通じてこのようなコンテンツキー(および/または入場許可データ)を受信する。ただし、受信は、他方ノードに対し、退出ノードは、該コンテンツキー(および/または入場許可データ)によって実行することが可能となる操作を実行する認可を受けていることを、その別のノードに証明して初めて行われる。例えば、別のノードのロックボックス回路から安全チャンネルを通じて受信された許可データによって、マイクロプロセッサ260は、デマルチプレクサー273を、生の、プレインテキスト・コンテンツをHDMI送信器277に送信する(送信器277から、コンテンツのHDCP−符号化バージョンを、HDMIリンクを通じて外部受信器への送信を可能とする)状態に置く。代わりに、外部実体が、マイクロプロセッサ260に対し、デマルチプレクサー273を、生の、プレインテキスト・コンテンツをスケーラー275に送信する状態に置くようにすることはない。従って、どのような外部実体も、退出ノード278に対し、符号化およびDAC回路279を用いて、コンテンツの、プレインテキスト、アナログバージョンの未認可出力を実行させることはない。
図21の退出ノードの構造については多くの変異種が考えられる。例えば、いくつかのそのような変異種では、退出ノードは、復号化エンジン269からの圧縮されたプレインテキスト出力を、退出ノードの復号器に対してアサートするのではなく、セーブさせる(例えば、MPEGビデオデータとして、退出ユニットの外部のメモリの中に)ようにすることも可能である。
次に、図22を参照しながら、我々は、単一集積回路として導入することが可能(通常はそのようにして導入される)であり、かつ、PDNのノード(ここでも、場合によって、「ロックボックス・ノード」と呼ばれる)となることも可能な、本発明のロックボックス回路の実施態様を説明する。図22のロックボックス回路(「ロックボックス」)298は、バス286に接続されるマイクロプロセッサ280、指令メモリ281、およびマイクロプロセッサ280に結合するデータ・メモリ282を含む。メモリ281は、マイクロプロセッサ280によって実行可能なファームウェアを保存し、データ・メモリ282は、マイクロプロセッサ280が操作するためのデータを保存する。マイクロプロセッサ280は汎用CPUではなく、ソフトウェアによってプログラマブルではない。ではなくて、マイクロプロセッサ280は、通常、単純状態のマシンを容れる単純なマイクロプロセッサ(例えば、コントローラ)である。図22の実施態様に対する変異種としては、別のタイプのマイクロプロセッサ回路および/または異なる構造を持つマイクロプロセッサ回路(例えば、データをファームウェア両方を保存するための共通メモリと結合したマイクロプロセッサ)、あるいは、ソフトウェアによってプログラムされるプロセッサが挙げられる。マイクロプロセッサ280(または、ロックボックス298の別の要素)は、ロックボックス298から外部に転送される予定のメッセージを暗号化し、ロックボックス298の外部の実体(例えば、別のロックボックス)から受信した暗号化メッセージ(例えば、暗号化秘密データを含むメッセージ)を復号化するように構成される。
ロックボックス298はまた、ランダム数ジェネレータ283、不揮発メモリ285(確証データを保存するための)、不揮発メモリ284(キーデータを保存するための)、さらに別の不揮発メモリ289、メールボックス287、非下降カウンター(またはタイマー)291、SSL終了回路293、およびインターフェース回路295を含む。これらは全て、図示のようにバス286に接続する。
メールボックス287は、「イン」セクション203および「アウト」セクション204を有する、図18のメールボックスの一例である。メールボックス287は、ロックボックス298と、PDNの進入または退出ノードとの間で行われる(PDNのソフトウェアを介して)、前述のタイプの通信のために使用される。
メモリ289は、コンテンツに関する1組の権利を示す(および/または相関する)データ、および要すれば任意に、ロックボックス298によって使用される追加データをも保存する。例えば、メモリ289における個別の保存位置は、他のノードに対し、該他のノードの進入または退出回路が、特定のタイプのコンテンツに対して特定の操作(複数組の操作)を実行可能とするように送信される(暗号化形式で)キーデータを保存することが可能である。例えば、メモリ289における「N番目」の保存位置は、退出回路が、ある特定のプロバイダーからの暗号化ビデオを復号化し、その復号化ビデオを、HDMIリンクを通じて送信用として(フォーマットし直す)のに必要なキーデータを保存することも可能である。
メモリ285は、ロックボックス298の動作に必要な確証を保存する。確証データは、図21の回路の製造時に、例えば、ロックボックス298を含むPDNと結合する(「結婚する」)ことを求める進入または退出ノードとの認証交信において使用されるよう、メモリ285に保存される。このような交信において、ロックボックス298は、その本体を進入または退出ノードに証明し、該進入または退出ノードが、PDNのメンバーとなることが認可された免許付き装置であるかどうかを(メモリ285および/またはメモリ289に保存される確証データを用いて)決定し、結婚確認データ(メモリ285および/またはメモリ289に保存することが可能である)を、進入または退出ノードが、PDNのメンバーとなることが認可された免許付き装置であることを決定した時点で、該進入または退出ノードに提供する。メモリ285(および/またはメモリ289)はまた、(PDNと連結された)進入または退出ノードとの認証交信において、進入(退出)ノードが、ロックボックス298が、該進入(退出)ノードに対しコンテンツキーを送信することが可能な、ロックボックス298との安全リンクを確立することを求めている場合、その際に使用される確証データを保存することも可能である。
メモリ284は、ロックボックス298に対してユニークな秘密である装置キーを保存する。ロックボックス298は装置キーを用いて、ロックボックス298の外部で保存されるよう秘密を暗号化するように構成される。この暗号化は、ロックボックス298だけが秘密を取り出し、複合化することができるようなやり方で行われる。ロックボックス298は、その内部の不揮発保存容量を拡張することが可能である。ロックボックス298の外部で暗号化された形式(メモリ284に保存される装置キーを用いて暗号化される)で保存される秘密は安全に維持されると考えられる。従って、この外部保存体は、ロックボックス内部の不揮発保存体と機能的に等価と考えられる。ロックボックス298がアクセス可能な外部保存体の例としては、図15の保存ユニット153がある。このユニットに対しロックボックス298(図15のロックボックス151の役割において)は、暗号化秘密の書き込みが可能であり(保存回路152を介して)、かつ、該ユニットから、ロックボックス298は、暗号化秘密を読み取ることが可能である(この場合も保存回路152を介して)。図22の実施態様の変異種では、ロックボックスは、メモリ284を含まず、全ての秘密を保存するのに内部メモリに依存する。
いくつかの実施態様では、本発明のロックボックス(例えば、図22のロックボックスのある実施態様)は、製造時に、下記を含む(例えば、恒久的に保存する)ように初期化される。すなわち、共有されたり、暴露されることが決して無いプライベートキー、自由に共有され、暴露される適合的パブリックキー、信用された確証当局のための1個以上のパブリックキー、装置タイプを定義する情報(例えば、PDNのノードとして使用することが可能であり、ロックボックスが含まれる装置のタイプ)、および、装置の基本的性質、認可された確証当局(例えば、ロックボックスが含まれる、PDNの、認可された確認当局)によって発行される確認証、装置の他の要素(ロックボックスが含まれ、PDNのノードとして使用することが可能である)を特定し、安全に通信するのに必要な、全ての暗号情報、および、他のロックボックスを特定し、安全に通信するのに必要な、全ての暗号情報である。
ロックボックス298は、任意のランダムな、または擬似ランダムなキーデータ(または、他のランダムな、または擬似データ)を生成するためにランダム数発生回路283を用いる。このデータは、認証交信を実行するために必要である。回路283は、統計的に優れたランダム数供給源であり、アタッカーによって打ち負かされること(例えば、ランダム数ではなく、予測可能な数字を生成することによって)がないように(例えば、回路の動作する温度または電圧条件を調節することによって)構成されることが好ましい。回路283は、多様なやり方の内の中の任意のやり方で、例えば、出力によって示されるランダムまたは擬似ランダム数が、多様な長さの内の任意の長さを持つように稼動されてもよい。例えば、回路283の一つの実施態様は、Nが小さい数である、N−ビットのランダムまたは擬似ランダム数を示すデータを出力することも可能である。かつ、回路283の別の実施態様は、Nが大きな数である、N−ビットのランダムまたは擬似ランダム数を示すデータを出力することも可能である。
別態様として、回路283は、シークェンサーで置換することも可能であるし、または、ロックボックス298は、回路283とシークェンサーの両方を含むことも可能である。シークェンサーは、ランダマイザーと似ており、事実上同じ機能を実現する。しかしながら、シークェンサーは、ランダムまたは擬似ランダムなやり方では動作せず、あらかじめ指定された順序に従う。単純なカウンターがシークェンサーの一例である。ロックアウトボックスによって実施される暗号化プロトコルに内在する分散は、事実上シークェンサーの影響をランダム化することが可能であるから、再生および既知テキスト攻撃に対しては所望の保護を実現する。このような保護は、順序が十分に長く、かつ、順序における位置が秘密にされ、かつ、アタッカーによってリセットしたり、再初期化することができない場合にはもっとも効果的である。シークェンサーは、複数のブロックおよび/またはキーの序列または同期に関連する情報を伝えるのに用いることも可能である。シークェンサーはまた、キーは保存されないが、必要に応じて再回収することが可能な、各種ローリングコード機構を実現するために使用することも可能である。
非降下(すなわち、単調に上昇する)カウンター291は、ロックボックス298に対する再生アタックを阻止し、かつ、アタッカーが、キー(コンテンツにアクセスするのに必要な)の期限切れが予定される時点の後で不認可アクセスを実現しようとする試みにおいて、適切なタイミングでロックボックス298を電力低下(または電力上昇)させる、その他のアタックを阻止するために供給される。ある再生アタックが試みられた場合、PDN内のソフトウェアは、ソフトウェアがロックボックス298に輸送されたことを示すメッセージ(例えば、進入または退出ノードからの、法的で、署名されたメッセージ)を、進入または退出ノードを模倣する形でセーブすることも考えられる。非降下カウンター291(別態様として、計略耐性を持つクロックまたはその他のタイマーで置換されてもよい)は、このような再生アタックを阻止するために、標準的暗号手段に従って用いることも可能である。
非降下カウンター291(または、その代わりに、計略耐性を持つクロックまたはその他のタイマー)は、指定の時点で秘密(例えば、キーデータ)を消去するために、ロックボックス298によって(例えば、ロックボックス298のマイクロプロセッサ280によって)使用されることも可能である。例えば、ロックボックス298が、外部ソース(例えば、コンテンツ・プロバイダ)から秘密を、その使用はある指定の時間のみ認可されるという制限付きで受信し、従って、秘密は、ある指定の期限を持つ場合がそれである。カウンター291は、ロックボックス298が、上記機能をコスト的に有効なやり方で実行可能とするように、できるだけ単純に構成されるのが好ましい。例えば、カウンター291は、ロックボックス298が、複数秒(例えば、10秒)という直近の整数に四捨五入された指定の期限を超えた、秘密の不認可使用を阻止することを可能とする、単純で安価な回路を用いて導入されてよい。すなわち、カウンター291は、ロックボックスが、1秒の数分の1だけ正確な指定期限を超えた、秘密の不認可使用を阻止することを可能とする、はるかに複雑で、高価なやり方で導入される必要はない。別の例では、カウンター291は、ロックボックス298が、数日の桁の認可使用期間の期限を数秒以下超えた、秘密の不認可使用を阻止することを可能とする、単純で安価な回路を用いて導入されてよい。すなわち、カウンター291は、ロックボックスが、前記認可使用期間の期限を1秒の数分の1以下超えた、秘密の不認可使用を阻止することを可能とする、はるかに高価な回路として導入される必要はない。カウンター291は、前述のタイプのアッタクに対しほんの僅かな保護しか提供しないように導入されてもよい。例えば、カウンター291は、電力上昇(または電力低下)に対してリセットしないもっとも重要な数字と、電力上昇または電力低下に対してリセットしないもっとも些末な数字を持ち、そのために、アタッカーは、適切なタイミングでロックボックスを電力上昇および電力低下することによっても短い量の(例えば、数秒の価値の)余分な、不認可アクセスしか実現することができないようになっていてもよい。
カウンター291は、そのカウントは、ロックボックスの電力低下時にもゼロに戻ることがない、単調増加カウンターであてもよい。別態様として、ロックボックス298は、カウンター291の代替として、計略耐性クロック(ロックボックスの電力低下に対してリセットしない)を含んでもよい。
別態様として、ロックボックス298は、カウンター291もタイマーも含まず、代わりに、外部の、計略耐性クロックに定期的に(または電力上昇時に)アクセスし、例えば、期限切れ時間を持つキーを消去する時点を定めるために、または、再生アタックを阻止するために、現在の時間データを獲得するように構成される。例えば、ロックボックス298は、ロックボックス298が電力上昇した場合はいつでも、PDNのソフトウェアにインターネットにログインさせて適正な時間にアクセスさせ、かつ、所望の「時間データ」を受信し、復号化し、ソフトウェアによって、インターネットからロックボックス298に手渡されるよう、SSL終了回路293を用いるように構成される。
SSL終了回路293は、ロックボックス298に、他の装置と、それがPDNの内側にあるか外側にあるかを問わず、通信する能力を付与する。回路293の典型的実施態様によって、ロックボックス298は、PDNソフトウェアを介して(例えば、ロックボックス298と、ソフトウェアを実行するPCが、バスにそって接続される場合は、PCIバスを通じて)通信することが可能となる。例えば、ロックボックス298は、SSL終了回路293を用いて、ロックボックス298の外部にあるPDN能力(例えば、PDNのPCのTCP/IP機能)を用いて、PDNソフトウェアをインターネットにログインさせ、インターネットを通じてロックボックス298にメッセージを送信させることも可能である。あるいは、ロックボックス298は、SSL終了回路293を用いて、PDNソフトウェアに対し他のやり方で、ロックボックス298と、PDNの内部または外部にある1個以上の装置との間の通信を中継するようにさせることも可能である。ロックボックス298は、SSL終了回路293を用いて、PDNソフトウェアに対し、ロックボックス298と、PDN内の別のロックボックスとの間で通信を中継するようにさせることも可能である。PDNのパーソナル・コンピュータは、必要に応じて通信を確立するため、暗号機能(例えば、任意の必要な認証)を実行するよう通信およびSSL層を設定するためにTCP層を用い、従来どおりのやり方でインターネットを通じて通信するように構成される。ロックボックス298の外部の装置は、PC(PDNの)の上で動作するオペレーティングシステム・ソフトウェア(例えば、ウィンドウズ・オペレーティングシステム)に対し、該装置が、インターネットを通じて、暗号化メッセージを、ロックボックス298のSSL終了回路293に送信するのに必要なTCP層機能を実行させるようにすることも可能である。回路293は、メッセージを復号化し、ロックボックス298の応答(オペレーティングシステムを介してインターネットを通じて送信される)を暗号化するのに必要なSSL層機能を実行することが考えられる。回路293は、TCP/IP層を実行するように構成される必要はない。むしろ、PDNソフトウェアが、必要に応じてTCPスタックを実行し、TCPスタックからペイロードを回路293に進めてもよい。この場合、回路293は、SSLプロトコルのトップ層を実行するだけでよい。インターフェース回路295は、回路293とPDNソフトウェアを介して、ロックボックス293の外部の装置と通信を開始するように構成されてもよい。
インターフェース回路295は、ロックボックス298と、他の装置(PDNの内部か、外部かを問わない)との間の通信能力を供給する。例えば、インターフェース回路295は、ロックボックス298と、外部装置との間の、単一リンク(例えば、USBリンク、1394リンク、WiFi、またはその他の無線リンク、およびイーサーネット・リンクの内の一つ)を介する通信を可能とするように構成される。別の実施態様では、インターフェース回路295は、ロックボックス298と、外部装置との間の、2本以上の異なるリンク(例えば、USBリンク、1394リンク、WiFi、またはその他の無線リンク、およびイーサーネット・リンクの内の一つ)から選ばれる任意のリンクを介する通信を可能とするように構成される。
図22のロックボックスの構造については多くの変異種が考えられる。例えば、いくつかのそのような変異種では、要素283、284、291、293、および295の内の1個以上が省かれる。
あるクラスの実施態様では、本発明は、PDNにおいて使用される(例えば、PDNのノードとして)ように構成される装置(例えば、遠隔ソース、またはビデオ受信器、またはプロセッサからコンテンツを受信するためのセットトップ・ボックス)である。このような装置はそれぞれ、ロックボックス、および、本発明のPDNの、少なくとも一つの実施態様で使用されるように構成される進入(または退出)回路を含む。図23の装置300は、このような装置の一例である。最大N個の異なる遠隔ソースからコンテンツを受信するセットトップ・ボックスであってもよいが、そうである必要はない装置300は、インターフェース回路301と、図示のように接続される回路302とを含む。回路302は、ロックボックス回路と、進入回路(および、時に進入ユニット302とも呼ばれる)とを含む。デバイス300はまた、要すれば任意に他の成分(図示せず)を含む。インターフェース回路301は、N個のインプットコンテンツ流(I1、I2、...、およびIN)の内の任意のものを受信し、要すれば任意にそれに対して初回処理を実行し、インプットコンテンツ流の内の受信されたものに応じて、ユニット302内の進入回路に対し、コンテンツ流PI1、PI2、...、およびPINの内の一つをアサートするように構成される。回路301は、インプットコンテンツ流の「m番目」のもの(“Im”)に応じて、進入ユニット302のインプットに対し「m番目」のコンテンツ流(“PIm”)をアサートする。インプットコンテンツ流はそれぞれ異なるフォーマットを持ち、それぞれは、異なるコンテンツ保護プロトコルに従って暗号化される。例えば、一つのインプットコンテンツ流は、衛星から受信したデジタルビデオであり、もう一つは、HMDIリンクを通じて受信したHDMIフォーマットのコンテンツ、等であってもよい。進入ユニット302に対してアサートされた各コンテンツ流“PIm”は、対応するインプットコンテンツ流(“Im”)と同じであってもよいし、あるいは、対応するインプットコンテンツ流の処理バージョンであってもよい。進入ユニット302内のインプットインターフェイス(例えば、図20のインターフェース247の実施態様)は、回路301から進入ユニット302に対してアサートされたコンテンツ流の内の任意のものを受信し、各受信コンテンツ流を、進入ユニット302内のトランスクリプション回路に対してアサートするように構成される。ユニット302内のトランスクリプション回路は、コンテンツ流PImの内の任意のものに応じて、単一フォーマットを持つトランスクリプトされたコンテンツ流を出力する(“OUTPUT”)するように構成される。このトランスクリプトされたコンテンツ流は、N個の異なるコンテンツ流PImの内のどれが進入ユニット302によってトランスクリプトされたかには無関係に、同じフォーマットを持つ。
図24の装置310は、前段に記載されたクラスに属する別の例示の装置である。ビデオプロセッサであってもよいが、そうである必要はない装置310は、回路311と、図示のように接続されるインターフェース312を含む。回路311は、ロックボックス回路と、退出回路(および、時に退出ユニット311とも呼ばれる)とを含む。デバイス310はまた、要すれば任意に他の成分(図示せず)を含んでもよい。退出ユニット311は、単一制御コンテンツ流(“INPUT”)を受信し、複合化して、そのコンテンツ流のプレインテキスト・バージョンを生成するように構成される。ユニット311にアサートされる制御コンテンツ流は、図23の進入ユニット302からの、トランスクリプトされたコンテンツ流アウトプットであってもよい。退出ユニット311は、装置310によって受信される単一インプット流に応じて、M個のコンテンツ流(O1、O2、...、およびOM)を出力するように構成される回路を含む。通常、M個のアウトプット流O1、O2、...、およびOMはそれぞれ異なるフォーマットを持ち、退出ユニット311は、複合化し、フォーマットを改めてアウトプット流O1、O2、...、およびOMを生成することに加えて、操作(例えば、再暗号化)を実行するように構成される。インターフェース回路312は、それが、退出ユニット311から受信したコンテンツ流O1、O2、...、およびOMのそれぞれを受信し、それに対して操作を施し(例えば、再フォーマットおよび/または増幅し)、ユニット311から受信したコンテンツ流に応じて、M個の処理済アウトプット流PO1、PO2、...、およびPOMを出力するように構成される。回路312は、ユニット311からの「m番目」のコンテンツ流(“Om”)に応じて、「m番目」のコンテンツ流“POm”をアサートする。「m番目」のコンテンツ流“POm”は、対応するインプット流(“Om”)と同じであってもよいし、あるいは、対応するインプット流(“Om”)の処理バージョンであってもよい。通常、アウトプット流(PO1、PO2、...、およびPOM)はそれぞれ異なるフォーマットを持ち(例えば、そのような一つのアウトプット流は、DVIリンクを通じて送信されるDVIフォーマットのコンテンツであってもよいし、別に、HDMIリンクを通じて受信されるHDMIフォーマットコンテンツのコンテンツであってもよい)、アウトプット流はそれぞれ、異なるコンテンツ保護プロトコルに従って暗号化されてもよい。従って、装置310は、単一フォーマットを持つ制御コンテンツを受信し、該制御コンテンツの復号化(プレインテキスト)バージョンを生成し、かつ、このプレインテキスト・コンテンツに追加の操作(例えば、フォーマット、および要すれば任意に再度の暗号化)を実行し、M個のアウトプットコンテンツ流を生成するように構成される退出回路を含む。M個のアウトプットコンテンツ流はそれぞれ異なるフォーマットを持っていてもよく、かつ、異なるコンテンツ保護プロトコルに従って暗号化されてもよい。
装置300および301は、それぞれ、本発明に従って構成されるので(その各進入ユニットは、単一コンテンツ保護プロトコルに従って暗号化される制御コンテンツを受信し、かつ、その各退出ユニットは、該制御コンテンツを受信するように構成される)、これらの装置は結合されて、N個の異なるフォーマットの内の任意のものを持つコンテンツを受信し、M個の異なるフォーマットの内の任意のものを持つアウトプットコンテンツに応じて、コンテンツを生成し、かつ、コンテンツのプレインテキスト・バージョンを、安全ハードウェアの外部(例えば、一方の装置の中の集積進入回路、または、他方の装置の中の集積退出回路の外側)に決して暴露しないようにすることによって保護することが可能な装置ペアを生成することが可能である。このような装置ペアの各装置は、それはN−倍以下の複雑度(単一フォーマットを持つインプットに応じてN個のフォーマットの内の任意のものを持つアウトプットを生成する能力、または、N個のフォーマットを持つインプットに応じて単一フォーマットを持つアウトプットを生成する能力)、あるいは、M−倍以下の複雑度(単一フォーマットを持つインプットに応じてM個のフォーマットの内の任意のものを持つアウトプットを生成する能力、または、M個のフォーマットを持つインプットに応じて単一フォーマットを持つアウトプットを生成する能力)しか持たない。一方、N個の異なるフォーマットの内の任意のものを持つコンテンツを受信し、M個の異なるフォーマットの内の任意のものを持つアウトプットコンテンツに応じて、コンテンツを生成し、かつ、該コンテンツのプレインテキスト・バージョンを、装置の外部に決して暴露しないようにすることによって保護することが可能な、従来型の装置は、より大きな複雑度を持つ(すなわち(N*M)−倍の複雑度)。従って、NとMがそれぞれ1よりも大きく、NとMの少なくとも一つが2よりも大きいと仮定するならば、従来型の装置は、従来型の装置と同じ全体複雑度を持つ、二つの、本発明の装置(まとめて考える)よりも複雑と考えられる。従来型の装置は、NとMのそれぞれが2よりもはるかに大きい場合は、そのような、本発明の装置ペア(まとめて考える)よりもはるかに複雑になると考えられる。
PDNを本発明に従って導入した場合、PDNにおいて保護されるコンテンツのプレインテキスト・バージョンは、PDNの、任意の外部に見える(アクセス可能な)リンク、インターフェース、またはノードには決して存在しない。PDNはまた、その進入または退出回路に存在し、進入または退出回路によって使用または転送される秘密(例えば、PDNによって受信されたコンテンツのトランスクリプションのために進入回路において使用されるキーデータ、または、制御コンテンツの復号化のために退出回路において使用されるキーデータ)は、非暗号化形式では、PDN内のソフトウェアまたはハードウェアに対し、あるいは、PDNの外部の任意の実体に対しても、アクセス不能となるように導入されることが好ましい。もしそうでなければ、PDNは、アタックに対して脆いであろう。好ましい実施態様では、PDNの任意の装置の上で動作するソフトウェアは、保護されるコンテンツのプレインテキスト・バージョンに対して、あるいは、PDNにおいてコンテンツを保護するために用いられるキーデータのプレインテキスト・バージョンに対して決してアクセスすることができない。
本発明の別の局面は、コンテンツ保護法、および、システム(システムは、ハードウェアとソフトウェアの両方を含む)のハードウェア・サブシステムにおいて安全にコンテンツを暗号化および復号化を実行するが、システムのソフトウェアは、メッセージを、ハードウェア・サブシステム間のおいて輸送するが、メッセージ(通常、暗号化メッセージ)を理解することができない無害な実体(「中道の人」)として使用するための装置を提供する。このメッセージは、暗号化された秘密(例えば、1種以上のハードウェア・サブシステムによって使用されるコンテンツキー)を示す暗号化メッセージであってもよいが、ソフトウェアは、メッセージを復号化するのに必要なキーを持たず、従ってそのままではメッセージを復号化できない。このソフトウェアを用いて、全体システムの、安全なハードウェア・サブシステムの間に安全チャンネルを導入してもよく、これらの安全チャンネルは、保護されるコンテンツに対する「中道の人」によるアタック対しても冒されない。一方、システムは、ソフトウェアを、メッセージを運ぶ中道の人として利用する。
あるクラスの実施態様では、本発明は、PDNにおけるコンテンツ保護のための方法であり、該方法は、PDNの進入ハードウェアにおいてPDNに入るコンテンツをトランスクリプトして制御コンテンツを生成する工程;および、PDNの退出ハードウェアにおいて制御コンテンツを復号化して複合化コンテンツを生成する工程を含み、プレイン形式のコンテンツも、コンテンツおよび制御コンテンツのいずれかに対して認可操作を実施する際に、進入ハードウェアおよび退出ハードウェアの少なくとも一方によって使用される任意の秘密も、PDNの任意の要素の上で動作するソフトウェアまたはファームウェアによってアクセスされることなく、かつ、コンテンツは、安全なハードウェア内部を除いては、PDN内において決してプレインテキスト形式では存在せず、従って、制御コンテンツは、PDNの要素の間を自由に転送されかつPDN内に保存されることを特徴とする方法である。いくつかのこのような実施態様では、進入ハードウェアは集積回路であり、退出ハードウェアも集積回路であり、コンテンツは、コンテンツが、集積回路内を除いては、PDNにおいてプレインテキスト形式では決して存在しないようにPDN内において維持される。
別のクラスの実施態様では、本発明は、コンテンツ保護法であって、PDNの進入ハードウェアにおいてPDNに入るコンテンツをトランスクリプトして制御コンテンツを生成する工程;PDNの退出ハードウェアにおいて制御コンテンツを復号化して複合化コンテンツを生成する工程;および、退出ハードウェアからの復号化コンテンツ、および復号化コンテンツの復号化バージョンの内の少なくとも一方を、PDNの外部の実体(例えば、装置またはシステム)に対してアサートする工程を含み、復号化コンテンツも、コンテンツおよび制御コンテンツのいずれかに対して認可操作を実施する際に、進入ハードウェアおよび退出ハードウェアの少なくとも一方によって使用される任意の秘密も、ソフトウェアまたはファームウェア(このような秘密の暗号化バージョンは、ソフトウェアまたはファームウェアによってアクセス可能であることは除く)によってアクセスされることがないことを特徴とする方法である。通常、進入ハードウェアは集積回路であり、退出ハードウェアも集積回路である。
本発明の別の局面は、PDN(例えば、オープン・コンピューティング・システム)においてコンテンツを保護する方法であり、本発明のPDN(または、ロックボックス回路、進入回路、および退出回路の内の1個以上)、PDNで使用されるロックボックス回路(例えば、ロックボックスチップ)、PDNで使用される進入回路(例えば、進入チップ)、PDNで使用される退出回路(例えば、退出チップ)、パーソナル・コンピュータで使用されるバス(例えば、PCIバス)に接続される進入、ロックボックス、および退出チップを含むカード(例えば、マルチメディア・グラフィックスカード)、PDNで使用されるように構成され、ロックボックス回路、進入回路、および退出回路の内の少なくとも一つを含む装置(例えば、セットトップ・ボックス、ビデオ受信器、またはビデオプロセッサ)の内の任意の実施態様によって実行される方法である。
次に、我々は、本発明に従ってロックボックス間で(例えば、ボックス間に安全チャンネルを確立するために)実行される交信の特異的例を記述する。ロックボックスは、自身の間にリンク、チャンネル、またはコネクションを形成することが可能である(例えば、ロックボックスを含むノードを相互に認証し、データを交換するために)。このようなリンク、チャンネル、またはコネクション(「関係」)は、所望の目的を達成するために、必要に応じて、形成、変更、破壊、および再構成される。
下記の表示法は、実施例のいくつかに用いられる。
“PuKi[text]”は、テキストが、イニシエータのパブリックキーによって暗号化されたことを示す。
“PrKi[text]”は、テキストが、イニシエータのプライベイトキーによって暗号化されたことを示す。
“PuKr[text]”は、テキストが、リスポンダーのパブリックキーによって暗号化されたことを示す。
“PrKr[text]”は、テキストが、リスポンダーのプライベイトキーによって暗号化されたことを示す。
“SHA−1[text]”は、テキストのSHA−1消化物が形成されたことを示す。
いくつかの実施態様では、メッセージ消化物は、CBC−MAC−AESモード(SHA−1モードではなく)のある改変版によって生成される。そのような実施態様では、メッセージ(例えば、ノード間でやり取りされるメッセージ)を暗号化するために用いられるAES暗号器はまた、各メッセージの「メッセージ認証コード」(消化物)を生成するためにも使用される。「CBC−MAC−AES」という表現では、「CBC」は、「暗号ブロック連鎖」を指す。これは、一つのブロックからの暗号が、次のブロックのキーとして使われることを考えたものである。
いくつかの実施態様では、ロックボックスは、一つのロックボックスが、別のロックボックスと通信したいと思った場合、初回の「相互紹介」交信を行う。このような交信は、公表相、続いて起動相、および応答相を含む。
この公刊相では、一つのロックボックスは、自身についてある情報を、その情報を必要とする他のロックボックス(PDNの他のノードにおける)にもアクセス可能なやり方で、「公表」する。この情報は、該ロックボックスを含むノードの「パブリック」キー、および、ネットワークアドレス情報(例えば、IPアドレス、ポート、プロキシ情報等)を含んでもよい。この公表情報は下記のように署名される。
[PuKi+情報+PrKi[SHA−1[情報]]]
公表される情報のいずれも秘密を維持する必要はないのであるから、これは、できれば、無差別にプライバシーおよび安全理由のために一緒に取り扱うべきではない。従って、いくつかの実施態様では、情報の「公表」は、特に世界全体に対する公表を意味せず、単に、第1ノードから、第1ノードが通信したいと願う、少なくとも一つの他のノードに対する公表を意味するにすぎない。これは、コントロールユーザーの要求に従って行われてよい。該ユーザーは、操作を確認するためには、ボタンを押すか、キーを回すか、またはパスワードをタイプすればよい。
公表後、一つのノードは、起動メッセージを送信することによって、別のノードとの関係を開始する。この起動メッセージは、下記の情報を含むことが好ましい。
イニシエータノードのパブリックキー、
要すれば任意に、イニシエータノードの確認証(起動相が、以前の関係の再現であることが既知でない限り、確認証は含めるべきである)、
イニシエータノードの能力、
所望の関係の種類(例えば、情報交換、「共同作業」関係、以前の関係の再現(例えば、新しいキーデータの交換、状態の更新、または持続時間の更新)、または、以前の関係の放棄)、および、
要求される持続時間(例えば、一寸(この交信だけ)、一時的(短い期間または時間間隔)、または、持続的(打ち切られるまで))。
開始メッセージでは、パブリックキーと確認証(含める場合は)は暗号化されない。残りのデータは、非対称的に暗号化することが可能である。従って、最終形は下記のようになる。
[PuKi+PrKi[PuKr[PuKi+メッセージ]]+確認証(含める場合)]
開始メッセージを受信すると、レスポンダントノードは、メッセージを復号化し、コンテンツを確認する(期待される形式かどうかをチェック)。要求が適正な形式であることに満足したならば、レスポンダントは、要求を分析し、下記の結果の内の任意のものを返送する。すなわち、
はい(接続が受容されたことを意味する)、
いいえ(接続が拒絶された)、または、
再度試みてください(接続は、この度は、一時的な理由、例えば、確認証の確認が必要なため、または、コントロールユーザーにガイドを依頼する必要のあるため等によって受容されない)
このような「はい」という返答は、その後の通信で使われるセッションキー、セッションキーの範囲を限定する間隔コード、および、(要すれば任意に)レスポンダントの確認証を含んでもよい。返答が以前の関係の再現であることが既知でない限り、確認証は含めるべきである。
「いいえ」という返答は、釈明コードを含んでもよいし、および/または、接続が受容可能のなる別の状態/能力を示すようにしてもよい。
「再試行」という返答は、釈明コード、および/または、予想される間隔コードを含んでもよい。
各返答(「はい」であれ、「いいえ」であれ、かつ、「再試行」返答であれ)、下記のように署名され、暗号化される。
[PuKr+PrKr[PuKi[PuKr+メッセージ]]+確認証(含める場合は)]
別のタイプの、ロックボックス間の交信では、確認証が要求されるか、少なくとも一つの確認証が交換される。このような交換は階層的に実行される(例えば、一つのロックボックスは、第2のロックボックスに対して確認証を請求することが可能であり、第2ロックボックスは、要求を第3ロックボックスに中継し、第3ロックボックスの返答を仲介することが可能である)。確認証請求/交信タイプの交換は、PDNにおける取り消しを実行するための方法を単純化するために、例えば、全ての確認証に期限切れ日付を付着させる(チップに事実上ハード的にコードされる最終的確認証は除く)ことによって、実行することも可能である。この最終的確認証は、確認証当局のパブリックキーであってもよく、また、一つを超える最終確認証があってもよい。
ロックボックスによって用いられる確認証は、下記の情報を含んでもよい。すなわち、
確認された実体のパブリックキー、
確認された実体の装置タイプを特定する情報、
確認証当局によって生成される、各確認証用のデジタル署名。
別のタイプの、ロックボックス間の交信では、情報が請求されるか、または交換される。PDNに酸化する任意のノードは、通常、コンテンツおよびキーの共有を効率的に促進するために、PDNの他のメンバーについてより多くのことを知る必要がある。この過程は、「ブートストラッピング」と呼ばれ、各ノードが、PDNの他のノードに紹介される度毎に(容認された場合)起こり、各ノードペアは、認証交換を実行することが許される。ノードを定義する情報は、PDN内部において(保護される)コンテンツと同様に取り扱われることが好ましい(例えば、この情報は、コンテンツをトランスクリプトするのに用いられる同じプロトコルに従って暗号化され、コンテンツに適用されるのと同じ使用ルールによって保護されてもよい)。
PDNのロックボックスによって請求され、互いに交換される、特異的タイプの情報の例としては下記が挙げられる。すなわち、
ネットワークツリー構造の情報(例えば、PDNにおけるノードの数と種類、およびそれらの地理的位置)、
ノードIDおよびアドレス情報(例えば、IPアドレス、代理実体、e−メイルおよびドメイン、装置名と詳細、および地理的位置)、
ユーザーIDおよび個人情報(例えば、「両親」コントロールの実施またはその他のアクセスコントロールに関する情報、および/または、個人の見解履歴)、および、
コントローラーユーザーのIDに関する情報およびアドレス情報(例えば、その場取引において支払いに用いられるクレジットカードメンバー)。
本発明の実施態様は、多様なタイプの内の一つ以上のコンテンツをトランスクリプトするように構成され、トランスクリプトされたコンテンツは、多様なフォーマットの内の任意のものを持つことが可能である。本発明の実施態様は、共通に使用されるフォーマット(単複)を持つコンテンツを取り扱い可能とするように構成することも可能であるが、同時に、(時間の経過と共に)、この実施態様は、コンテンツの他のフォーマットを取り扱い、かつ、コンテンツフォーマット間のより多くの変換を、例えば、新しい形式のコンテンツを保護し、および/または、コンテンツに対し新しいタイプの知的財産保護を提供することが必要となるにつれて、実行可能とすることが考えられる。
第1項が第2項を「含む」という表現は、本明細書では、第1項は、第2項であるか、または、第2項を含むことを示すために使用される。
本発明のいくつかの実施態様が、本明細書で具体的に例示され、説明されたのであるから、本発明は、請求項によって定義され、ここに記述され、図示された特定の実施態様に限定されてはならないということが了解されるであろう。