(57)【要約】【課題】　多種多様の攻撃に対して安全な分散オペレーティング環境を提供する。【解決手段】　分散ネットワーク内でのデータの取り扱いを安全にするための装置および方法が、安全なチャンネル１６により１次通信ユニット１２と２次通信ユニット１８とクライアント２０とに接続された安全なエージェント１４により実施される。１次通信ユニット１２および２次通信ユニット１８は、鍵を有する別個の鍵記憶装置に接続される。分散された鍵を用いた暗号化および暗号解読方法が開示される。他の方法は、多数回鍵を利用する。【選択図】　図１
2004064783.tif 000002
【特許請求の範囲】
【請求項１】
　ネットワーク内でのデータの取り扱いを安全にするための装置であって、
　少なくとも２つの通信ユニットから供給されたデータについて暗号法演算を実行するために、少なくとも２つの鍵集合から供給された複数の鍵を組み合わせるための安全なエージェントを具備することを特徴とする装置方法。
【請求項２】
　前記暗号法演算は、暗号化演算と暗号解読演算とからなるグループから選択されることを特徴とする請求項１に記載の装置。
【請求項３】
　前記２つの通信ユニットは、少なくとも２つの鍵記憶装置と関連することを特徴とする請求項１に記載の装置。
【請求項４】
　前記少なくとも２つの鍵記憶装置は、少なくとも２つの鍵集合を記憶することを特徴とする請求項３に記載の装置。
【請求項５】
　前記２つの通信ユニットは、安全な通信チャンネルにより、前記少なくとも２つの鍵記憶装置と関連することを特徴とする請求項３に記載の装置。
【請求項６】
　前記安全なエージェントは、安全な通信チャンネルにより前記少なくとも２つの通信ユニットと少なくとも１つのクライアントとに接続され、前記安全なエージェントは、全ての主要な暗号化および暗号解読タスクを実行することを特徴とする請求項１に記載の装置。
【請求項７】
　前記少なくとも１つのクライアントは、劇場投影システム、コンピュータ接続された出力装置、携帯用投影システム、テレビ、個人用オーディオ−ビジュアルシステム、オーディオ出力装置、および、ビデオ出力装置からなるグループから選択される媒体出力装置を含むことを特徴とする請求項６に記載の装置。
【請求項８】
　前記安全なエージェントは、前記暗号法演算を実行した後に、前記鍵を廃棄することを特徴とする請求項１に記載の装置。
【請求項９】
　前記安全なエージェントは、最小限のハードウェア構成要素を有することを特徴とする請求項１に記載の装置。
【請求項１０】
　前記安全なエージェントは、暗号化および暗号解読タスクを実行するための少なくとも１つのプログラムモジュールを含むことを特徴とする請求項１に記載の装置。
【請求項１１】
　前記安全なエージェントは、秘密鍵を有する暗号化および暗号解読タスクを実行するための少なくとも１つの専用回路素子を有することを特徴とする請求項１に記載の装置。
【請求項１２】
　前記少なくとも２つの通信ユニットは、主要なコンテンツソースとして機能する第１通信ユニットと、代理通信ユニットとして機能する少なくとも１つの第２通信ユニットとを具備することを特徴とする請求項１に記載の装置。
【請求項１３】
　前記安全なエージェントは、暗号化された形式で少なくとも１つのハードウェア構成要素に記憶された複数の開始コードを具備することを特徴とする請求項１に記載の装置。
【請求項１４】
　前記２つの通信ユニットと関連し、少なくとも２つの鍵集合を記憶する少なくとも２つの鍵記憶装置と、
　前記通信ユニットを前記鍵記憶装置と接続する安全なチャンネルと
をさらに具備し、
　前記安全なエージェントは、前記安全なチャンネルにより前記通信ユニットと少なくとも１つのクライアントとに接続され、
　前記安全なエージェントは、全ての主要な暗号化および暗号解読タスクを実行することを特徴とする請求項１に記載の装置。
【請求項１５】
　ネットワークを介して実施されるデータの取り扱いを安全にするための暗号化方法であって、
　少なくとも２つの鍵集合から選択された少なくとも２つの鍵の組み合わせを用いて、少なくとも１つのデータブロックに対応する少なくとも１つの暗号化鍵を生成する段階と、
　暗号化されたデータブロックを生成するために、前記データブロックを、前記暗号化鍵によって暗号化する段階と
を具備することを特徴とする方法。
【請求項１６】
　安全なチャンネルを用いて、前記２つの鍵集合を、少なくとも２つの通信ユニットから、少なくとも１つの安全なエージェントへ送信する段階をさらに具備し、
　前記鍵集合の各々は、別個の前記通信ユニットに１つずつ記憶され、
　前記２つの通信ユニットは、第１通信ユニットと第２通信ユニットとを具備することを特徴とする請求項１５に記載の方法。
【請求項１７】
　前記少なくとも２つの鍵集合は、公開鍵暗号化方法を用いて、前記安全なエージェントへ送信されることを特徴とする請求項１６に記載の方法。
【請求項１８】
　前記公開鍵暗号化方法は、ディフィー−へルマン方法の変形であるＥＩＧａｍａｌ方法であることを特徴とする請求項１７に記載の方法。
【請求項１９】
　前記安全なチャンネルを用いて、前記第１通信ユニットから、前記安全なエージェントへ転送されたデータ集合から、前記データブロックを選択する段階をさらに具備することを特徴とする請求項１６に記載の方法。
【請求項２０】
　前記安全なチャンネルを用いて、前記暗号化されたデータブロックを、前記安全なエージェントから、前記第２通信ユニットへ送信する段階をさらに具備することを特徴とする請求項１９に記載の方法。
【請求項２１】
　前記データブロックと、これに対応する前記暗号化鍵とを廃棄する段階をさらに具備することを特徴とする請求項１５に記載の方法。
【請求項２２】
　前記データブロックの暗号化は、暗号化スループットを強化するために、少なくとも１つのハードウェア構成要素を用いて実行されることを特徴とする請求項１５に記載の方法。
【請求項２３】
　ネットワークを介して実施されるデータの取り扱いを安全にするための暗号解読方法であって、
　少なくとも２つの鍵集合から選択された少なくとも２つの鍵の組み合わせを用いて、暗号化された少なくとも１つのデータブロックに対応する少なくとも１つの暗号解読鍵を生成する段階と、
　解読されたデータブロックを生成するために、前記データブロックを、前記暗号解読鍵によって解読する段階と
を具備することを特徴とする方法。
【請求項２４】
　安全なチャンネルを用いて、前記少なくとも２つの鍵集合を、少なくとも２つの通信ユニットから、少なくとも１つの安全なエージェントへ送信する段階をさらに具備し、
　前記鍵集合の各々は、別個の前記通信ユニットに１つずつ記憶され、
　前記２つの通信ユニットは、第１通信ユニットと第２通信ユニットとを具備し、
　前記鍵集合は、２つの別個の前記通信ユニット上に記憶されることを特徴とする請求項２３に記載の方法。
【請求項２５】
　前記安全なチャンネルを用いて、暗号化されたコンテンツを記憶する所定の通信ユニットから、前記安全なエージェントへ転送されたデータ集合から、前記データブロックを１つ選択する段階をさらに具備することを特徴とする請求項２４に記載の方法。
【請求項２６】
　前記安全なチャンネルを用いて、前記解読されたデータブロックを、前記安全なエージェントから、出力装置へ送信する段階をさらに具備することを特徴とする請求項２５に記載の方法。
【請求項２７】
　前記データブロックの各々と、これに対応する前記暗号解読鍵とを廃棄する段階をさらに具備することを特徴とする請求項２３に記載の方法。
【請求項２８】
　前記データブロックの暗号化は、暗号解読スループットを強化するために、少なくとも１つのハードウェア構成要素を用いて実行されることを特徴とする請求項２３に記載の方法。
【請求項２９】
　人を欺くような通信への干渉に対するセキュリティを提供するための暗号化方法であって、
　暗号化されたデータブロックを生成するために、データブロックを、少なくとも１つの暗号化鍵によって暗号化する段階と
　前記暗号化されたデータブロックの部分集合を、少なくとも１つの２次鍵によって暗号化する段階と
を具備することを特徴とする方法。
【請求項３０】
　少なくとも２つの鍵集合から選択された少なくとも２つの鍵の組み合わせに基づいて、前記暗号化鍵を計算する段階をさらに具備することを特徴とする請求項２９に記載の方法。
【請求項３１】
　前記鍵集合は、少なくとも２つの別個の通信ユニット上に記憶され、
　前記少なくとも２つの鍵集合は、安全なチャンネルを介して、前記少なくとも２つの通信ユニットから受信され、
　前記２つの通信ユニットは、第１通信ユニットと第２通信ユニットとを具備することを特徴とする請求項２９に記載の方法。
【請求項３２】
　前記２次鍵は、セキュリティを高めるために、別個の前記通信ユニットを介して分散されることを特徴とする請求項３１に記載の方法。
【請求項３３】
　前記安全なチャンネルを用いて、前記第１通信ユニットから、前記安全なエージェントへ転送されたデータ集合から、少なくとも１つのデータブロックを選択する段階をさらに具備することを特徴とする請求項３１に記載の方法。
【請求項３４】
　前記データ集合から選択され、所定回数複製された所定数の選択されたブロックを具備する少なくとも１つの選択されたブロック集合を決定する段階と、
　所定数の前記２次鍵を生成する段階と
を具備し、
　前記２次鍵の１つは、前記選択されたブロックの１つにそれぞれ対応することを特徴とする請求項３３に記載の方法。
【請求項３５】
　前記部分集合は、所定の選択されたブロックと前記データブロックとの空ではない共通部分を示すことを特徴とする請求項３４に記載の方法。
【請求項３６】
　前記暗号化されたデータブロックのサイズを縮小するために、前記選択されたブロックを最適に選択する段階をさらに具備することを特徴とする請求項３５に記載の方法。
【請求項３７】
　前記暗号化されたデータブロックを、前記第２通信ユニットへ送信する段階をさらに具備することを特徴とする請求項３４に記載の方法。
【請求項３８】
　前記データブロックと、これに対応する前記暗号化鍵とを廃棄する段階をさらに具備することを特徴とする請求項２９に記載の方法。
【請求項３９】
　人を欺くような通信への干渉に対するセキュリティを提供するための暗号解読方法であって、
　暗号化されないデータブロックを生成するために、暗号化されたデータブロックを、少なくとも１つの暗号解読鍵によって解読する段階と
　前記データブロックの部分集合を、少なくとも１つの２次鍵によって暗号化する段階と
を具備することを特徴とする方法。
【請求項４０】
　少なくとも２つの鍵集合から選択された少なくとも２つの鍵の組み合わせに基づいて、前記暗号解読鍵を計算する段階をさらに具備することを特徴とする請求項３９に記載の方法。
【請求項４１】
　前記鍵集合は、少なくとも２つの別個の通信ユニット上に記憶され、
　前記少なくとも２つの鍵集合は、安全なチャンネルを介して、前記少なくとも２つの通信ユニットから受信され、
　前記２つの通信ユニットは、第１通信ユニットと第２通信ユニットとを具備することを特徴とする請求項３９に記載の方法。
【請求項４２】
　前記２次鍵は、セキュリティを高めるために、別個の前記通信ユニットを介して分散されることを特徴とする請求項４１に記載の方法。
【請求項４３】
　前記安全なチャンネルを用いて、前記第１通信ユニットから、前記安全なエージェントへ転送されたデータ集合から、少なくとも１つのデータブロックを選択する段階をさらに具備することを特徴とする請求項４１に記載の方法。
【請求項４４】
　前記データ集合から選択され、所定回数複製された所定数の選択されたブロックを具備する少なくとも１つの選択されたブロック集合を決定する段階と、
　所定数の前記２次鍵を生成する段階と
を具備し、
　前記２次鍵の１つは、前記選択されたブロックの１つにそれぞれ対応することを特徴とする請求項４３に記載の方法。
【請求項４５】
　前記部分集合は、所定の選択されたブロックと前記データブロックとの空ではない共通部分を示すことを特徴とする請求項４４に記載の方法。
【請求項４６】
　前記暗号化されたデータブロックを、前記第２通信ユニットへ送信する段階をさらに具備することを特徴とする請求項４４に記載の方法。
【請求項４７】
　前記データブロックと、これに対応する前記暗号化鍵とを廃棄する段階をさらに具備することを特徴とする請求項３９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、ネットワークデータを安全にすることに関するものであり、より詳細には、分散ネットワーキング環境内でデータの記憶および通信を安全にすることに関するものである。
【背景技術】
【０００２】
　機密を扱うデータは、ネットワーク接続された環境内で、ますます記憶かつ処理されている。ネットワークは、通常は、小規模かつプライベートなローカルエリアネットワークから、インターネットのような大規模な分散公衆ネットワークまでの範囲に及ぶ。ネットワークの広い可用性および利用は、データの著作権侵害（data-piracy）の危険性の増大につながってきた。データの著作権侵害者は、容認できない形で貴重なデータにアクセスするために、ネットワーク内に侵入しようとする。このようなデータの著作権侵害は、ネットワークによって記憶かつ送信されるデータの所有者にとって、常に存在してセキュリティを脅かすものである。さらに、サイバーテロ（cyber-terrorism）は、セキュリティ管理者に対するより広い挑戦を提示する。サイバーテロリストは、インターネットまたは他のネットワークを利用して国境を越えて活動し、ネットワーク、および、ネットワークによって記憶されかつ送信されるデータの両方を標的にする。
【０００３】
　大規模なネットワークの進化は、分散ファイルシステムの必要性につながってきた。典型的な分散ファイルシステムは、大量のデータベース記憶および検索を容易にするように設計されている。分散ファイルシステムについての主要な重要性は、分散されたコンテンツのための最適なセキュリティを保証することよりは、分散されたコンテンツの記憶およびアクセスを組織化することである。分散ファイルシステムを安全にするための既知のシステムは、一般には、比較的簡単なクライアントサーバーアーキテクチャの範囲内で動作し、かつ、全ての形式の分散ファイルシステムにわたって動作するものではない。したがって、あらゆるオペレーティング環境（特に、分散オペレーティング環境）内で安全なデータの記憶およびアクセスを提供するシステムおよび方法の必要性が存在する。
【０００４】
　ネットワークセキュリティ機構に対する多種多様の攻撃が、所定の分散された環境内で起こり得る。次に、このようなネットワーク攻撃の典型的な例について説明する。ディジタルコンテンツは、暗号化鍵を用いて暗号化される暗号化形式で頻繁に記憶される。攻撃をする者は、通常は、データを暗号化するために用いられる秘密鍵を得ようとする。いったん攻撃をする者が秘密鍵を得ると、この人物は、暗号化されたデータを容易に解読することができる。
【０００５】
　他の形式の攻撃は、暗号解読プロセス中にデータを傍受することによりデータを盗むことを含む。このような攻撃に対して考えられ得る解決法は、１回限りの（one-time）パスワード機構を用いることである。この場合に、ネットワーク内の信頼された安全なエージェントは、主要な情報サーバーおよび代理サーバーにアクセスする毎に、最新の１回限りのパスワード機構を用いる。この方法は、通信のみを独自のものにするが、通信されるデータを独自のものにはしない。攻撃をする者は、１回限りのパスワードを生成するために用いられる関数を打破するために、安全なエージェントまたは主要な情報サーバーのいずれかに侵入することができ、かつ、両方のシステムに侵入する必要はない。さらに、攻撃をする者が安全な通信チャンネルを破り、かつ、安全な通信を生成するために用いられる関数を見つけ出す可能性が常に存在する。したがって、多種多様の攻撃に対して安全な分散オペレーティング環境であることが好ましいオペレーティング環境の必要性が存在する。
【０００６】
　分散ネットワークが一般にはセキュリティの問題に直面する一方で、ある特定の形式の分散ネットワークは正確さの問題に直面する。このような特定の形式の分散ネットワークは、分散された媒体（media）を記憶および検索するネットワークである。映画や音楽や画像などのような媒体は、データの著作権侵害者にとってお気に入りの領域の１つであるので、媒体コンテンツを記憶または検索するために有用である安全な分散環境の必要性を生じさせる。したがって、一般には、安全な分散ネットワーク環境の必要性が存在する。詳細には、ネットワークの基本的部分としての安全な分散媒体サーバーの必要性が存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　本発明は、分散ネットワーク内でのデータの取り扱いを安全にするための装置および方法である。前記装置は、１次情報通信ユニットと２次通信ユニットとに接続される安全なエージェントからなる。通信ユニットについては、多数の方法で構成設定することができる。前記通信ユニットは、所定のネットワーク内でメッセージを受信し、処理し、および／または、送信するために、少なくとも２方向のネットワーク通信能力を有する任意の電子装置であってもよい。前記安全なエージェントは、クライアントにも接続される。前述したシステムの構成要素の全ては、最新式のセキュリティ機構を用いる安全な通信チャンネルによって接続される。前記１次および２次通信ユニットは、自身と関連した独自の鍵記憶装置を有する。
【０００８】
　前記システムおよび方法は、多数の形式の攻撃を防ぎかつこれに抵抗するように計画される。第１の典型的な形式の攻撃は、攻撃をする者が秘密鍵を盗むことを含む。分散された鍵による方法が、このような攻撃に抵抗するために用いられる。鍵情報を分散することは、実際のデータを暴くために、全ての分散された鍵情報と、暗号化関数と、鍵生成関数とを盗むことを、攻撃をする者に余儀なくさせる。他の形式の攻撃は、人を欺くように通信に干渉することを含む。ｋ回鍵による方法が、このような攻撃に抵抗するために用いられる。
【０００９】
　本発明の実施例は、媒体分散環境内で機能し、かつ、ネットワーク接続された環境内で記憶されかつ分散される媒体を保護する。
【００１０】
　本発明のさらなる適用領域は、本明細書において以後提供される詳細な説明から明らかとなるであろう。詳細な説明および特定の例は、本発明の好ましい実施例を示す一方で、実例を示す目的のためにのみ意図されており、かつ、本発明の範囲を制限するようには意図されていないことを理解すべきである。
【発明を実施するための最良の形態】
【００１１】
　本発明については、詳細な説明および添付図面から、より完全に理解されるであろう。
【００１２】
　好ましい実施例についての以下の説明は、事実上例示的なものに過ぎず、かつ、決して本発明およびその用途または使用を制限するように意図されるものではない。
【００１３】
　ネットワーク環境は、これらの安全性を標的とする攻撃を受け易い。本明細書において以後説明する攻撃のシナリオは、本発明により包含される様々な形式の攻撃についての非制限的な例である。例えば、分散ネットワーク環境が直面する典型的な形式の攻撃において、攻撃をする者は、秘密鍵を盗もうとし、その結果、攻撃をする者は、盗んだ秘密鍵を用いて、ネットワーク上に記憶された暗号化データを解読することができる。攻撃をする者が１つの鍵集合のみを用いてデータを解読する可能性を排除するために、本発明は、秘密鍵情報を多数の鍵集合にわたって空間的に分散する技術を用いる。他の形式の攻撃において、攻撃をする者は、人を欺くように（deceptively）通信に干渉しようとする。本発明は、このような攻撃に抵抗するために本明細書において以後説明する‘ｋ回鍵（k-time keys）’を利用する。
【００１４】
　図１は、安全なシステム１０の表示を示す。前記システム内で用いられる通信ユニットは、所定のネットワーク内でメッセージを受信し、処理し、および／または、送信するために、少なくとも２方向のネットワーク通信能力を有する任意の電子装置であってもよい。例えば、通信ユニットは、所定のネットワーク内のサーバーであってもよい。１次通信ユニット１２は、記憶された情報の主要なソースとして動作する。１次通信ユニット１２上におけるデータ記憶の中で最も小さな単位はブロックであり、多数のブロックは、全体的なデータ集合の部分集合である記憶集合（storage set）を具備する。
【００１５】
　安全なエージェント（secure agent）１４は、安全なチャンネル（secure channel）１６により１次通信ユニット１２に接続される。安全なチャンネル１６は、安全なエージェント１４を、２次通信ユニット１８にさらに接続する。２次通信ユニット１８の機能の１つは、代理通信ユニットとして動作することである。１次通信ユニット１２は、情報またはコンテンツのソースとして構成設定されることが好ましい。安全なチャンネル１６は、クライアント２０を、安全なエージェント１４にさらに接続する。
【００１６】
　安全なシステム１０は、多数の安全なエージェント１４を含むことができる。安全なエージェント１４は、様々な方法で、例えば、パケットベースの（packet based）プロトコル、ストリーミング（streaming）プロトコル、または、混合（mixed）プロトコルを用いることにより、他のシステム１０の要素と通信することができる。当業者であれば、システムの特定の構成設定に応じて送信方法を選択できることを、および、どのような特定の送信機構を選択しようとも本発明を制限しないことを理解するだろう。本発明は、安全なエージェント１４を、必要な暗号化および暗号解読の大部分（または全て）が行われる節点（nodal point）として指定する。したがって、情報コンテンツについてのセキュリティの重要性は、１次通信ユニット１２および２次通信ユニット１８から、安全なエージェント１４へと移動する。
【００１７】
　安全なエージェント１４は、セキュリティの重要性のための焦点（focal point）であるので、次に説明するように構成設定されることが好ましい。安全なエージェント上のハードドライブ空間は、最小限であるべきであり、かつ、オペレーティング／制御プログラムを記憶するだけで十分であるべきである。暗号化／暗号解読プロセスは、揮発性ランダムアクセスメモリ内で行われるべきであり、かつ、処理されているデータは、ハードドライブ上に記憶される必要がない。ハードウェアは、悪戯ができないように（tamper-resistant）されるべきである。独自の秘密鍵を含みかつ専用の暗号化／暗号解読を提供する専用の集積回路（例えば、ＶＬＳＩチップ）が用いられるべきである。ブートアップ（boot-up）コードをロードするために、安全なブートストラップ（bootstrap）装置が用いられるべきである。ブートアップコードについては、暗号化された形式でハードウェア内に記憶することができる。暗号化されたブートアップコードについては、システム全体およびオペレーティングシステムを認証するために用いることができる。
【００１８】
　安全なチャンネル１６については、様々な方法により補強することができる。例えば、チャンネル１６を安全にするために、セキュア・ソケット・レイヤ（ＳＳＬ）を用いることができる。あるいは、チャンネル１６を安全にするために、仮想プライベートネットワーク（ＶＰＮ）ベースの機構を用いることができる。チャンネル１６を安全にするために、セキュリティ特性を最良に提供する最新式の機構が用いられることが好ましい。様々なプロトコルまたはセキュリティ機構により、安全なチャンネル１６の様々なセクションを安全にすることができる。
【００１９】
　１次通信ユニット１２は、Ｋ個の鍵（K-keys）（図示せず）を記憶するためのＫ鍵記憶装置（K-keys storage）２０に接続される。２次通信ユニット１８は、Ｓ個の鍵（S-keys）（図示せず）を記憶するためのＳ鍵記憶装置（S-keys storage）２２に接続される。２次通信ユニット１８は、データストア（data-store）２４に接続される。１次通信ユニット１２は、データストア２４を内部に組み込むことができるか、または、安全なチャンネルを経て外部のデータストアに接続され得る。サーバー１２を‘１次’と指定し、かつ、通信ユニット１８を‘２次’と指定することは、明瞭さのためであり、かつ、両方の通信ユニットを区別するためである。当業者であれば、通信ユニットを１次および２次として指定することが非制限的であることを理解するだろう。
【００２０】
　次に、安全なシステム１０の動作について説明する。クライアント２０は、情報の要請を、安全なエージェント１４に対して行う。安全なシステム１０は、安全なエージェント１４を通して２次通信ユニット１８上に記憶された情報にアクセスすることにより、クライアント２０の要請を履行する。２次通信ユニット１８は、１次通信ユニット１２からの情報を転送しかつデータストア２４上に記憶するプロセスにより、クライアント２０の要請の履行に先行する。転送プロセスは暗号化を含むが、これについては後述する。あるいは、１次通信ユニット１２からの情報を記憶するための要請については、１次通信ユニット１２自身から開始することができる。典型的なシナリオでは、１次通信ユニット１２は、コンテンツプロバイダからのコンテンツを供給する。１次通信ユニット１２は、選択された自身のコンテンツを２次通信ユニット１８上に記憶するプロセスを開始する。転送プロセスについては後述する。
【００２１】
　１次通信ユニット１２は、情報を２次通信ユニット１８へ直接的には転送しない。代わりに、１次通信ユニット１２は、安全なエージェント１４を経て、情報を２次通信ユニット１８へ転送するように動作する。１次通信ユニット１２は、安全なチャンネル１６を用いて、安全な通信セッションを安全なエージェント１４に対して開放する。安全なエージェント１４は、転送すべきファイルまたはデータ集合に関する情報について、１次通信ユニット１２に質問する（query）。安全なエージェント１４は、現在の記憶集合を暗号化形式で記憶するための特別な要請を、２次通信ユニット１８へ送信する。
【００２２】
　２次通信ユニット１８は、現在の暗号化された記憶集合を記憶するために用いられることになるデータストア２４上の物理的な記憶位置（storage locations）を決定する。次に、２次通信ユニット１８は、全体的なデータ集合を構成する各記憶集合のための秘密鍵ｓｊ（ここで、ｓｊ∈Ｓ個の鍵の集合｛Ｓ｝）を決定する。２次通信ユニット１８は、各鍵ｓｊおよび各記憶集合の位置情報を、安全なエージェント１４へ送信する。
【００２３】
　安全なエージェント１４は、Ｓ個の鍵の集合｛Ｓ｝内の鍵の数と等しい数の鍵を有するＫ個の鍵の集合｛Ｋ｝を生成するように、１次通信ユニット１２に要請する。１次通信ユニット１２は、暗号化すべき情報（すなわち、データ集合｛Ｄ｝）およびＫ個の鍵の集合｛Ｋ｝を、安全なエージェント１４へ送信する。次に、安全なエージェント１４は、適切な方法を用いて、データ集合Ｄを暗号化し始める。安全なエージェント１４は、暗号化されたデータを２次通信ユニット１８へ送信し、該２次通信ユニット１８は、入力してくる暗号化データを記憶する。最終的に、２次通信ユニット１８は、暗号化されたコンテンツの記憶に成功したことを確認する署名された証明書（certificate）を、安全なチャンネル１６を介して、１次通信ユニット１２へ送信する。
【００２４】
　本明細書でのシステム１０についての説明は、２つの鍵集合からの鍵の分散を示す例に関連するものである。本発明は、２つ以上の鍵集合を多数の位置にわたって分散する方法を包含する。分散される鍵のための位置を追加する毎に、多少のセキュリティがさらに追加される。多数の位置にわたって鍵を分散することは、安全なエージェント１４を、現実味のある唯一の攻撃目標にさせる。安全なエージェント１４におけるセキュリティが十分に増加するにつれて、鍵を多数の位置にわたって分散すべきである。理想的には、安全なエージェント１４または鍵分散のいずれかを破る難易度は、ほぼ同じであるべきである。本発明が、多数の位置にわたって分散された多数の鍵を用いた実施例を包含することを、当業者であれば容易に理解するだろう。
【００２５】
　次に、暗号化方法のための実例となるフローチャートについて説明する。当業者であれば、データ集合Ｄを暗号化するために様々な方法を利用できることを、および、ある特定の方法が本発明を決して制限するものではないことを理解するだろう。
【００２６】
　図２は、鍵分散を用いた実施例における暗号化プロセスについてのフローチャートである。段階２６，２８は、ゼロから集合｛Ｓ｝内の要素数（すなわち、|Ｓ|）までのＪの値について反復するループを示す。段階３０において、ｋｅｙｊは、１組の鍵ｓｊ，ｋｊから計算される。段階３２において選択されたｂｌｏｃｋｊは、段階３４において暗号化される。この暗号化プロセスは、通常は、秘密鍵ｋｅｙｊを用いてｂｌｏｃｋｊを暗号化するためのブロック暗号文（block cipher）を用いるが、他の暗号化方法を用いることもできる。暗号化プロセスは、所定の用途のために必要なスループットを提供するために、さらなるハードウェアを必要とし得る。本発明の重要な特徴は、いったんｂｌｏｃｋｊが暗号化されると、データブロックを暗号化するために用いられた鍵ｓｊ，ｋｊが、段階３６において廃棄される点である。ｂｌｏｃｋｊが暗号化された後に鍵ｓｊ，ｋｊを廃棄することは、セキュリティを強化する。最終的に、段階３８において、暗号化されたブロックは送信され、その後に削除される。段階４０において、ループは、必要があればさらに反復を継続する。
【００２７】
　図１に戻ってこれを参照すると、いったん暗号化セッションが完了すると、安全なエージェント１４は、いかなる秘密鍵もデータも持たない。鍵を盗むことを狙いとするネットワーク攻撃は、いったんブロックが暗号化されると廃棄される１組の鍵を用いることにより、強力な抵抗を受ける。ネットワークセキュリティは、暗号化鍵およびデータがネットワーク内の１つの場所には決して記憶されないという事実により、さらに強化される。鍵情報は、１次通信ユニット１２と関連したＫ鍵記憶装置２０上にＫ個の鍵を記憶することにより、かつ、２次通信ユニット１８と関連したＳ鍵記憶装置２２上にＳ個の鍵を記憶することにより、空間の隅々まで分散される。攻撃をする者は、１種類の鍵のみを盗むことができたとしても、暗号化されたデータを解読することができない。
【００２８】
　暗号解読プロセスは、クライアント２０が解読されたコンテンツの要請を安全なエージェント１４に対して行った場合に発生し、該安全なエージェント１４は、鍵集合｛Ｓ｝を求める特別な暗号解読要請を、２次通信ユニット１８へ送信する。さらに、安全なエージェント１４は、鍵集合｛Ｋ｝の提供を求める要請を、１次通信ユニット１２へ送信する。いったん鍵集合｛Ｋ｝，｛Ｓ｝が１次通信ユニット１２および２次通信ユニット１８からそれぞれ得られると、暗号解読プロセスを開始することができる。これら２つの鍵集合｛Ｋ｝，｛Ｓ｝を介して拡がる鍵情報が空間の隅々まで分散される（すなわち、物理的に様々な通信ユニット上に保持される）ので、鍵｛Ｋ｝，｛Ｓ｝を得ることが必要である。
【００２９】
　図３は、鍵分散を用いた実施例における暗号解読プロセスについてのフローチャートである。暗号解読プロセスは、暗号化プロセスと非常に類似している。段階４２，４４は、１から集合｛Ｓ｝内の要素数（すなわち、|Ｓ|）までのＪの値について反復するループを示す。段階４６において、ｋｅｙｊは、１組の鍵ｓｊ，ｋｊから計算される。ｂｌｏｃｋｊは、段階４８において２次通信ユニット１８から受信され、次に、段階５０において解読される。本発明の重要な特徴は、いったんｂｌｏｃｋｊが解読されると、データブロックを解読するために用いられた鍵ｓｊ，ｋｊが、段階５２において廃棄される点である。最終的に、段階５４において、解読されたブロックは（図１に示されるような）クライアント２０へ送信され、その後に削除される。段階５６において、ループは、必要があればさらに反復を継続する。暗号解読プロセスは、所定の用途のために必要なスループットを提供するために、さらなるハードウェアを必要とし得る。
【００３０】
　（図１に示されるような）クライアント２０は、劇場投影システム、コンピュータ接続された出力装置、携帯用投影システム、テレビ、個人用オーディオ−ビジュアルシステム、オーディオ出力装置、および、ビデオ出力装置のような出力装置を含むことが好ましい。本発明は、用いられる出力装置の形式により制限されるものではなく、かつ、あらゆる適切な出力装置を包含する。あるいは、クライアント２０は、何らかの非出力関数のために受信される情報をさらに記憶しかつ処理することができる。
【００３１】
　図１に示されるように、鍵集合｛Ｓ｝，｛Ｋ｝は、安全なチャンネル１６を介して送信される。安全なチャンネル１６は最新式のセキュリティ機構を用いるが、安全なチャンネルの裂け目は、どんなに些細なものであっても、常に存在する可能性がある。攻撃をする者が安全なチャンネル１６のためのセキュリティ機構を破ったと仮定すると、攻撃をする者は、ネットワーク内の通信ユニットおよび記憶素子のいずれにも侵入することを必要とせずに、鍵情報にアクセスすることができてしまう。さらに、攻撃をする者に暗号化関数が知られる可能性があり、この人物は、秘密鍵を生成することができ、かつ、保護されたデータを解読することができてしまう。安全な鍵送信のために、様々な方法を用いることができる。次に、考えられ得るこのような方法の１つについて説明する。
【００３２】
　ＥＩＧａｍａｌ鍵協定は、ディフィー−へルマン（Diffie-Hellman）暗号化方法の変形であり、かつ、ＥＩＧａｍａｌ鍵協定は、受信者の公開鍵が発信者に予め知られている場合に、片側のみの鍵認証を備えたワンパス（one-pass）プロトコルを提供する。‘ｎ’を、集合｛Ｓ｝，｛Ｋ｝内の各秘密鍵のビット長とする。以下の説明における主要な概念は、集合｛Ｓ｝，｛Ｋ｝を安全なエージェント１４へ伝えるために、ＥＩＧａｍａｌを用いることである。２次通信ユニット１８および１次通信ユニット１２は、安全なエージェント１４のＥＩＧａｍａｌ公開鍵を最初に得て、次に、計算を実行して値Φを生じさせ、該値Φは、安全なエージェント１４へ伝えられる。次に、安全なエージェント１４は、独自の計算を実行して、秘密鍵を回復する。
【００３３】
　ＥＩＧａｍａｌ方法による以下に説明する方法において、‘Ａ’は１次通信ユニット１２または２次通信ユニット１８のいずれかを示し、かつ、‘Ｂ’は安全なエージェント１４を示す。Ａは、１つのメッセージをＢに送信し、該メッセージは、ワンパス鍵協定を許容し、この結果、共有秘密鍵ＫがエンティティＡ，Ｂの両方に知られる。
【００３４】
　〈ＥＩＧａｍａｌ方法〉
　１．１回限りのセットアップ（鍵の生成および公開）
　　Ｂは以下のことを行う：
　　　Ｚｐ＊の適切な素数ｐおよび生成元（generator）αを選ぶ。
　　　ｐ／４≦ｂ≦ｐ−２であるように乱数整数（random integer）ｂを選択し、かつ、αｂ ｍｏｄ ｐを計算する。
　　Ｂは、秘密鍵ｂを秘密に保ちながら、自身の公開鍵（ｐ，α，αｂ）を公開する。
　２．プロトコルメッセージ
　　Ａ → Ｂ：　αｘ ｍｏｄ ｐ　　（１）
　３．プロトコルの作用
　　（ａ）Ａは、Ｂの公開鍵（ｐ，α，αｂ）の認証されたコピーを得る。
　　　　　Ａは、ｐ／４≦ｘ≦ｐ−２であるように乱数整数ｘを選択し、かつ、Ｂにメッセージ（１）を送信する。
　　　　　Ａは、鍵を、Ｕ＝(αｂ)ｘ ｍｏｄ ｐとして計算する。
　　（ｂ）Ｂは、メッセージ（１）を受信すると、同じ鍵を、Ｕ＝(αｘ)ｂ ｍｏｄ ｐとして計算する。
【００３５】
　集合Ｓを伝えるために、上記の段階（３ａ）においてｘが生成される際に、２次通信ユニット１８は、各ｓｊ∈Ｓをランダムに生成する。２次通信ユニット１８は、各ｓｊをランダムに１回生成し、かつ、結果をセーブする。２次通信ユニット１８は、α＾(ｓｊ) ｍｏｄ ｐを、安全なエージェントへ単に送信し、次に、該安全なエージェントは、Ｕｊｓ＝(α＾(ｓｊ))ｂ ｍｏｄ ｐを計算する。１次通信ユニット１２についても同様であり、この場合に、結果は、Ｕｊｋ＝(α＾(ｋｊ))ｂ ｍｏｄ ｐとなる。次に、信頼を受けたエージェントは、最終的な秘密鍵（すなわち、ｋｅｙｊ＝ＵｊｓとＵｊｋとの排他的論理和（ＸＯＲ））を計算する。
【００３６】
　前述したアプローチの利点は、１次通信ユニット１２または２次通信ユニット１８と、安全なエージェント１４との間で共有される秘密が不必要であり、かつ、秘密ｂのみが安全なエージェント１４において安全に保護されればよいという点である。
【００３７】
　このシステムの弱点は、攻撃をする者が、時には、公開鍵の集合を自身の鍵に置き換えることができるという点（典型的な仲介者攻撃（man-in-the-middle-attack））である。このような攻撃を防止する標準的な方法は、公開鍵を認証エージェントによって記憶させることである。値α＾(ｓｊ)，α＾(ｋｊ)が安全なチャンネルを経て送信されることが提案されており、このことは、安全なチャンネルおよび公開鍵の両方への攻撃が成功する必要があることを意味する。このアプローチは、攻撃の成功のために必要な労力および専門的知識を少なくとも２倍にし、これにより、攻撃をする者にとってシステムのセキュリティを危険にさらすことをより困難にする。最終的に、ＵｊｓおよびＵｊｋは１次通信ユニット１２によっても２次通信ユニット１８によっても決して用いられないので、安全なエージェント１４は、信頼を受けたエージェントのみに知られている秘密関数ｆによって、各々のＵｊｓおよびＵｊｋを変更することもできる。基本的に、最終的な秘密鍵ｋｅｙｊはｆ(Ｕｊｓ)とｆ(Ｕｊｋ)との排他的論理和（ＸＯＲ）となり、このことは、コンテンツを暗号化するために用いられる秘密鍵の決定を成功させるためには、攻撃をする者が関数ｆをさらに得るかまたは勝ち取る必要があることを意味する。
【００３８】
　分散ネットワークに対する他の強力な形式の攻撃は、人を欺くように通信に干渉することを含む。攻撃をする者は、人を欺くように通信に干渉することにより、秘密鍵、暗号化されたデータ、または、これらの両方にアクセスすることができる。全てのこのような攻撃は、通常は、攻撃をする者が通信の再生（replay）を通して偽の要請を行うために様々なネットワーク要素間の送信を捕捉することを含む。このような攻撃を防止するために、通信および暗号解読プロセスの一部を、各々の要請されたコンテンツ利用について独自のものにすることが必要である。
【００３９】
　本発明は、人を欺くように通信に干渉することを含む攻撃に対する高いセキュリティを提供するために、‘ｋ回鍵（k-time keys）’を用いる。‘ｋ’個の２次鍵（secondary keys）の集合（すなわち、ＳｅｃＫｅｙｓ＝｛ｓｋ１，…，ｓｋｋ｝）が生成される。‘ｋ’個の２次鍵は、コンテンツＣの‘ｋ’個の選択されたブロックを暗号化するために用いられる。選択されたブロックの集合Ｂは、Ｂ＝｛ｂ１，…，ｂｋ｝として構成され、この場合に、Ｂ⊂コンテンツＣである。集合Ｂのブロックはｋ回複製（duplicate）されて、集合Ｂｄｕｐ＝｛ｂ１１，ｂ１２，…，ｂ１ｋ，ｂ１１，ｂ２１，…，ｂ２ｋ，…，ｂｋ１，…，ｂｋｋ｝を形成する。ＳｅｃＫｅｙｓからの２次鍵ｓｋｊは、複製されたブロックｂ１ｊ，…，ｂｋｊを暗号化するために用いられる。次に、（図１に示されるような）安全なエージェント１４は、次に説明するような暗号化プロセスを用いる。
【００４０】
　図４ａおよび図４ｂは、‘ｋ回鍵’を用いた実施例における暗号化プロセスについてのフローチャートである。ループは、段階５８，６０に示されるように、ゼロから|Ｓ|（集合｛Ｓ｝内の要素数）までの変数Ｊの値について反復する。段階６２において、ｓｊ∈Ｓとｋｊ∈Ｋとを引数（arguments）として利用する鍵計算関数により、鍵はｋｅｙｊとして計算される。段階６４において、ｂｌｏｃｋｊは、全体的なデータ集合Ｄの部分集合として選択され、かつ、通常は、１ストライプのサイズ（the size of one stripe）である。生成されたｋｅｙｊを用いて、現在選択されているブロックｂｌｏｃｋｊは、段階６６において暗号化される。ある‘ｂ’について、ｂ∩ｂｌｏｃｋｊ≠φが当てはまれば条件ブロックが実行されるという条件が、段階６８においてチェックされる。通常は、ｂ＝ｂｌｏｃｋｊは真であるが、効率上の理由により、このことが常に真である必要はない。したがって、‘ｂ’とｂｌｏｃｋｊとの共通部分を示すｅｎｃ＿ｂｌｏｃｋｊのサブセクションのみが、２次鍵ｓｋｊによって暗号化される。条件ブロックにおいて、２次鍵ｓｋｊは、段階７０において、ブロック‘ｂ’のために取ってこられる。新たなｅｎｃ＿ｂｌｏｃｋｊは、ｂ∩ｂｌｏｃｋｊと、ｓｋｊと、ｅｎｃ＿ｂｌｏｃｋｊとを引数として利用するｋ回暗号化（k_time_Encryption）関数により、段階７２において生成される。ｋｅｙｊおよびｂｌｏｃｋｊは、段階７４において廃棄される。ループは、段階７６において戻る。ループが終了した後に、２次鍵の集合ＳｅｃＫｅｙｓは、段階７８において廃棄される。
【００４１】
　説明した方法は、ファイルサイズの増加という結果となり得るが、ファイルサイズについては、複製すべきブロックを慎重に選択することにより容易に最小化することができる。例えば、ＭＰＥＧ２スキームにおいて、複製のためのより重要な復号化定数（decoding constant）の一部を定義するブロックを選択することができる。
【００４２】
　図１に戻ってこれを参照して、ｋ回鍵のための暗号解読プロセスについて、次に説明する。クライアント２０は、情報コンテンツを求める要請を、安全なエージェント１４に対して行う。安全なエージェント１４は、鍵集合｛Ｋ｝と、現在の鍵総数‘ｊ’（ｊ≦ｋ）と、２次鍵ｓｋｊと、データブロックの集合｛Ｂ｝とを求める要請を、１次通信ユニット１２に対して行う。１次通信ユニット１２は、要請された情報を、安全なエージェント１４へ送信する。次に、安全なエージェント１４は、鍵集合｛Ｓ｝を２次通信ユニット１８に要請し、かつ、２次通信ユニット１８は、鍵集合｛Ｓ｝を送信する。安全なエージェント１４は、鍵集合｛Ｓ｝，｛Ｋ｝および２次鍵ｓｋｊからの鍵を用いて、データを解読する。
【００４３】
　各暗号解読段階は、各通信のために２次鍵を用い、これにより、安全なエージェントと１次通信ユニット１２との間の各通信を、独自のものにする。前述した鍵Ｓ，Ｋのための空間と同様の空間の隅々まで２次鍵を分散することにより、セキュリティを強化することが可能である。２次鍵ｓｋｊと関連した複製ブロックを削除することにより、データブロックもまた、各暗号化段階について独自のものとなる。
【００４４】
　図５ａおよび図５ｂは、‘ｋ回鍵’を用いた実施例における暗号解読プロセスについてのフローチャートである。ループは、段階８０，８２に示されるように、ゼロから|Ｓ|（集合｛Ｓ｝内の要素数）までの変数Ｊの値について反復する。段階８４において、ｓｊ∈Ｓとｋｊ∈Ｋとを引数として利用する鍵計算関数により、鍵はｋｅｙｊとして計算される。暗号化されたブロック（ｅｎｃ＿ｂｌｏｃｋｊ）は、通常は媒体サーバーである２次通信ユニットから受信される。生成されたｋｅｙｊを用いて、現在選択されているブロックｂｌｏｃｋｊは、段階８８において解読される。
【００４５】
　暗号化されたブロック（ｅｎｃ＿ｂｌｏｃｋｊ）がさらに２次鍵によって部分的にまたは全体的に暗号化されたならば条件ブロックが実行されるという条件が、段階９０においてチェックされる。通常は、ｂ＝ｂｌｏｃｋｊは真であるが、効率上の理由により、このことが常に真である必要はない。したがって、‘ｂ’とｂｌｏｃｋｊとの共通部分を示すｅｎｃ＿ｂｌｏｃｋｊのサブセクションのみが、２次鍵ｓｋｊによって解読される。条件ブロックにおいて、２次鍵ｓｋｊは、段階９２において、ブロック‘ｂ’のために取ってこられる。新たなｄｅｃ＿ｂｌｏｃｋｊは、ｂ∩ｂｌｏｃｋｊと、ｓｋｊと、ｄｅｃ＿ｂｌｏｃｋｊとを引数として利用するｋ回２次暗号解読（k_time_Secondary_Decryption）関数により、段階９４において生成される。ｋｅｙｊおよびｂｌｏｃｋｊは、段階９６において廃棄される。段階９８において、解読されたブロックは宛先へ送信され、かつ、解読されたブロックの受信確認が宛先から受信されるとｅｎｃ＿ｂｌｏｃｋｊが削除される。ループは、段階１００において戻る。ループが終了した後に、２次鍵の集合ＳｅｃＫｅｙｓは、段階１０２において廃棄される。
【００４６】
　ｋ回鍵を用いた本発明のセキュリティ方法は、人を欺くような通信への干渉を含む攻撃に対して、高いレベルのセキュリティを提供する。本発明のｋ回鍵セキュリティ方法は、人を欺くような通信への干渉を含む攻撃に対して、低コストの保護を提供する。さらに、ｋ回スキームは、コンテンツプロバイダが、そのコンテンツにアクセスされる回数を追跡しかつ制御することを許容する。
【００４７】
　好ましい実施例において、本発明は、媒体分散環境内で用いられる。分散された環境は、分散された一式の記憶素子と、中央調整エンティティ（central co-ordination entity）としての安全なエージェント１４とを具備する。媒体分散環境は、実例として示されているのみである。媒体分散環境は、多数の安全なエージェントを有し得る。媒体分散環境のクライアントは、通常は、コンテンツへの自由なアクセスを認められていない。クライアントからの全ての要請は、安全なエージェントを経てルーティングされる必要がある。
【００４８】
　典型的な媒体分散環境は、全ての暗号化されない（non-encrypted）媒体コンテンツを供給するコンテンツプロバイダを含む。通常は、媒体通信ユニットは、劇場内に配置できる、または、ビデオオンデマンド（video-on-demand）中間サービスプロバイダにおける通信ユニットとして配置できる２次通信ユニットである。通常は、クライアントは、コンテンツが最終的に消費される劇場、テレビ、または、ホームコンピュータであってもよい。
【００４９】
　本発明についての説明は、本質的には例示的なものに過ぎず、したがって、本発明の要点から逸脱しない変形例は、本発明の範囲内にあるように意図される。このような変形例は、本発明の真意および範囲から逸脱するものとして考えられるべきではない。
【図面の簡単な説明】
【００５０】
【図１】安全なシステム１０の表示を示す図である。
【図２】鍵分散を用いた実施例における暗号化プロセスについてのフローチャートである。
【図３】鍵分散を用いた実施例における暗号解読プロセスについてのフローチャートである。
【図４ａ】‘ｋ回鍵’を用いた実施例における暗号化プロセスについてのフローチャートである。
【図４ｂ】図４ａと同様のフローチャートである。
【図５ａ】‘ｋ回鍵’を用いた実施例における暗号解読プロセスについてのフローチャートである。
【図５ｂ】図５ａと同様のフローチャートである。
【符号の説明】
【００５１】
　１０　安全なシステム
　１２　１次通信ユニット
　１４　安全なエージェント
　１６　安全なチャンネル
　１８　２次通信ユニット
　２０　Ｋ鍵記憶装置
　２２　Ｓ鍵記憶装置
　２４　データストア
【図１】
2004064783.tif 000003
【図２】
2004064783.tif 000004
【図３】
2004064783.tif 000005
【図４ａ】
2004064783.tif 000006
【図４ｂ】
2004064783.tif 000007
【図５ａ】
2004064783.tif 000008
【図５ｂ】
2004064783.tif 000009