(57)【要約】  キー管理は、スケーラブルなコードストリーム内の複数のアクセスタイプの権限のあるすべてのレベルを復号化することを許可する単一のキーを生成するために実行される。アクセスノード集合は、解像度およびレイヤレベルなどの全順序集合により表現可能な階層、およびタイルおよびプリシンクトレベルなどの半順序集合により表現可能な階層を有するアクセスタイプを表す集合から導かれる。導かれたアクセスノード集合は、コードストリーム内に含まれるアクセスタイプの複数のレベルの組合せを表す半順序集合である。階層型キー管理システムは、アクセスノード集合に適用され、これにより、キーをアクセスノードのそれぞれに割り当て、コンテンツ暗号化キーを生成し、コードストリームを暗号化する。コードストリーム、アクセスノード集合、および他の公開情報を受け取るクライアントは、このキーを使用して追加のキーを導き出し、コードストリームを復号化する。
2009500989.tif 000002
【特許請求の範囲】
【請求項１】
複数のスケーラブルなアクセスタイプを含むコードストリーム内の複数のレベルへのアクセスを保護する方法であって、
全順序ノード集合により、それぞれの順位の低い第１のレベルが常にそれぞれの順位の高い第１のレベル内に含まれる、全順序アクセスタイプの第１のレベルの第１の集合を表すステップと、
半順序ノード集合により、それぞれの順位の低い第２のレベルが常にはそれぞれの順位の高い第２のレベル内に含まれるわけではない、半順序アクセスタイプの第２のレベルの第２の集合を表すステップと、
全順序ノード集合と半順序ノード集合とを組み合わせて、それぞれのアクセスノードが前記第１のレベルおよび前記第２のレベルの組合せを表す半順序集合を含むアクセスノード集合を生成するステップと、
前記アクセスノード集合内のそれぞれのノードと対応するキーを含むキー集合を生成するステップと、
前記コードストリームを暗号化するステップとを備えることを特徴とする方法。
【請求項２】
追加の全順序アクセスタイプと追加の半順序アクセスタイプは、追加のノード集合により表され、前記アクセスノード集合を生成する際に前記全順序ノード集合および前記半順序ノード集合と組み合わせられることを特徴とする請求項１に記載の方法。
【請求項３】
前記アクセスノード集合、および複数のレベルの所望の組合せを表す所望のアクセスノードと対応する前記キー集合からの所望のキーを与えることにより前記複数のスケーラブルなアクセスタイプのうちから前記複数のレベルの所望の組合せへのアクセス権を付与するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記全順序ノード集合および前記半順序ノード集合は、それぞれのノードの積を求めることにより組み合わされることを特徴とする請求項１に記載の方法。
【請求項５】
前記コードストリームは、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２０００コードストリームを含み、
前記全順序アクセスタイプは、
解像度によるアクセス、
レイヤによるアクセス、および
色成分によるアクセスのうちの１つを含み、
前記半順序アクセスタイプは、
タイルによるアクセス、および
プリシンクトによるアクセスのうちの１つを含むことを特徴とする請求項１に記載の方法。
【請求項６】
非連続的データ要素へのアクセスを表す少なくとも１つの外部の第２のレベルを識別するステップと、
前記アクセス集合が、前記外部の第２のレベルを伴う組合せを含まないように前記外部の第２のレベルを除去するステップとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記複数のキーは、半順序集合とともに使用するように動作可能な階層型キースキームを使用して生成されることを特徴とする請求項１に記載の方法。
【請求項８】
前記階層型キースキームは、
前記アクセスノード集合からの少なくとも１つのルートノードを識別し、前記ルートノードは最高の第１のレベルのアクセスと最高の第２のレベルのアクセスの組合せを表すステップと、
ルートキーを前記ルートノードに割り当てるステップと、
前記少なくとも１つのルートノード以外のアクセスノードを子ノードとして識別するステップと、
複数の子ノードのそれぞれに対する少なくとも１つの親ノードを識別し、前記親ノードは前記第１および前記第２のレベルのいずれかの１つが前記子ノードと関連付けられているレベルの組合せと比べて次に高い順位のレベルを含むレベルの組合せを表すステップと、
前記子ノードのそれぞれについて、前記子ノードの前記少なくとも１つの親ノードの少なくとも１つの親キーから子キーを計算するステップとを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ルートキーが前記ルートノードに割り当てられた乱数を含む方法であって、
乱数を子ノードのそれぞれに割り当てるステップと、
前記子ノードのそれぞれについて、前記子ノードに関連付けられている前記乱数と前記子ノードの前記少なくとも１つの親ノードの前記少なくとも１つの親キーとを使用し、Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループプロトコルを使用して、前記子キーを計算するステップとをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
暗号ハッシュ関数を使用して対応するアクセスノードに関連付けられている前記キーをハッシュすることにより前記対応するアクセスノードに関連付けられている前記第１のレベルおよび前記第２のレベルの前記組合せにより指定されたコンテンツを提示することに関わるデータを含む複数のパケットのそれぞれについてコンテンツ暗号キーを生成するステップと、
前記コンテンツ暗号化キーで前記コードストリームを暗号化するステップとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
請求項１に記載の方法を実行するためコンピュータ使用可能命令が具現化されていることを特徴とするコンピュータ媒体。
【請求項１２】
複数のスケーラブルなアクセスタイプを含むコードストリーム内のレベルにアクセスするための方法であって、
それぞれの順位の低い第１のレベルが常にそれぞれの順位の高い第１のレベル内に含まれる、全順序アクセスタイプの第１のレベルの集合のうちでアクセスの第１の所望のレベルを識別するステップと、
それぞれの順位の低い第２のレベルが常にはそれぞれの順位の高い第２のレベル内に含まれるわけではない、半順序アクセスタイプの第２のレベルの第２の集合のうちのアクセスの第２の所望のレベルを識別するステップと、
前記第１の所望のレベルおよび前記第２の所望のレベルを含む所望のレベルの組合せで前記コードストリームにアクセスする権限を保護するステップと、
前記全順序アクセスタイプを表す全順序ノード集合と前記半順序アクセスタイプを表す半順序ノード集合の組合せを表すアクセスノードの半順序集合を含むアクセスノード集合を受け取るステップと、
前記所望のレベルの組合せで前記コードストリームへのアクセスを可能にする単一のキーを受け取ることと、前記アクセスノード集合を使用することにより、順位の低い第１のレベルおよび順位の低い第２のレベルのうちの少なくとも一方を含む少なくとも１つの低い組合せにアクセスするステップとを備えることを特徴とする方法。
【請求項１３】
前記所望のレベルの組合せ、および前記アクセスノード集合および前記単一キーからの前記少なくとも１つの低い組合せへのアクセスを可能にする複数の追加のキーを導き出すステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記複数のキーは、Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループプロトコルを使用して、前記アクセスノード集合および前記単一キーから導き出されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記所望のレベルの組合せおよび前記少なくとも１つの低い組合せのうちの１つでコンテンツを提示することに関わるデータを含む複数のパケットのそれぞれについてコンテンツ暗号化キーを導き出すために、ハッシュ関数を前記単一キーおよび前記複数のキーのうちの少なくとも１つに適用するステップをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記コードストリームは、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２０００コードストリームを含み、
前記全順序アクセスタイプは、
解像度によるアクセス、
レイヤによるアクセス、および
色成分によるアクセスのうちの１つを含み、
前記半順序アクセスタイプは、
タイルによるアクセス、および
プリシンクトによるアクセスのうちの１つを含むことを特徴とする請求項１２に記載の方法。
【請求項１７】
請求項１２に記載の方法を実行するためコンピュータ使用可能命令が具現化されていることを特徴とするコンピュータ媒体。
【請求項１８】
複数のスケーラブルなアクセスタイプを含むコードストリーム内の複数のレベルへのアクセスを制御するシステムであって、
サーバーであって、
複数のスケーラブルなアクセスタイプに対するレベルの組合せの半順序集合の元をそれぞれ表す複数のアクセスノードを含むアクセスノード集合を保持するステップと、
それぞれのキーはアクセスノードに関連付けられているレベルの組合せおよび少なくとも１つの順位の低いレベルを含むレベルの任意の組合せへのアクセスを可能にするために、前記複数のアクセスノードのそれぞれについてキーを保持するステップと、
前記複数のスケーラブルなアクセスタイプのそれぞれについて所望のアクセスレベルを示す所望のレベルの組合せに対する権限付与要求を受け取るステップと、
前記所望のレベルの組合せに対する所望のアクセスノードの集合を識別し、前記所望のアクセスノードで所望のキーを取り出すステップと、
前記アクセスノード集合および前記所望のキーを伝達するステップとを含むアクションを実行するようにプログラムされた１つまたは複数のコンピュータを備えるサーバーと、
クライアントであって、
前記所望のレベルの組合せを選択するステップと、
前記アクセスノード集合および前記所望のキーを受け取るステップと、
前記所望のレベルの組合せで前記コードストリームへの前記所望のキーアクセスを使用することと、前記アクセスノード集合および前記所望のキーを使用することにより、少なくとも１つの順位の低いレベルを含むレベルの組合せへのアクセスを可能にする少なくとも１つの追加のキーを導き出すステップとを含むアクションを実行するようにプログラムされた１つまたは複数のコンピュータを備えるクライアントとを備えることを特徴とするシステム。
【請求項１９】
前記サーバーは、さらに、前記複数のアクセスノードのそれぞれについて前記キーを生成するようにプログラムされ、
前記アクセスノード集合からのルートノードを識別するステップであって、前記ルートノードは前記複数のスケーラブルなアクセスタイプに対する最高のレベルの組合せを表すステップと、
ルートキーを前記ルートノードに割り当てるステップと、
ルートノード以外のアクセスノードを子ノードとして識別するステップと、
複数の子ノードのそれぞれに対する少なくとも１つの親ノードを識別するステップであって、前記親ノードはレベルの組合せのうちの１つが前記子ノードと比べて次に順位の高いレベルであるレベルの組合せを表すステップと、
前記子ノードのそれぞれについて、前記子ノードの前記少なくとも１つの親ノードの少なくとも１つの親キーから子キーを計算するステップとを含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記サーバーは、さらに、前記複数のアクセスノードのそれぞれについて前記キーを生成するようにプログラムされ、
乱数を子ノードのそれぞれに割り当てるステップと、
前記子ノードのそれぞれについて、前記子ノードに関連付けられている前記乱数と前記子ノードの前記少なくとも１つの親ノードの前記少なくとも１つの親キーとを使用し、Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループプロトコルを使用して、前記子キーを計算するステップとを含むことを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
人々はインターネットおよびその他のネットワーク上のサービスにアクセスするために多くの異なる種類のデジタルデバイスを使用している。広く理解されているように、これらのサービスの多くは、ニュースサービスからオンラインショッピングおよび娯楽に至るまでさまざまなものがあり、写真およびその他の画像、ビデオ、およびオーディオを広範に利用する。
【背景技術】
【０００２】
図１は、インターネット１１４を介してサービス１１０および１１２上に保持されているサービスおよびコンテンツにアクセスするために使用できる多くの異なるデジタルデバイス１０２〜１０８を例示している。デスクトップコンピュータ１０２は、大型の高解像度ディスプレイ１２２を備え、したがって、そのユーザーは、ディスプレイ１２２の能力を活かすために画像またはビデオをその最高解像度で表示させたいと考えそうである。その一方で、ポータブルコンピュータ１０４のポータブルディスプレイ１２４は、デスクトップコンピュータ１０２の高解像度ディスプレイ１２２の解像度に匹敵する解像度を持ち得ない。それとは別に、ポータブルディスプレイ１２４が高解像度グラフィックスをサポートしている場合でも、ポータブルコンピュータ１０４は、グラフィックスサポートに共有システムメモリを使用することができ、そのユーザーは、高解像度グラフィックスをサポートするためにシステムメモリを割り当てることを望まない場合がある。
【０００３】
デスクトップコンピュータ１０２およびポータブルコンピュータ１０４に加えて、ハンドヘルドデバイスも、インターネットまたは他のマルチメディアサービスにアクセスするために使用される。例えば、パーソナルデジタルアシスタント１０６は、解像度の一部がデスクトップコンピュータ１０２およびポータブルコンピュータ１０４とともに利用できる小さな画像またはビデオフレームを表示するために、それぞれの辺が数インチ（１０数ｃｍ）程度のタッチスクリーンディスプレイ１２６を備える。無線電話１０８などのさらに小さなデバイスであっても、インターネットまたは他のマルチメディアサービスにアクセスし、非常に小さな画像および他のマルチメディアコンテンツをユーザーに提示するために使用可能な電話用ディスプレイ１２８を備える。
【０００４】
サーバー１１０および１１２上のコンテンツにアクセスするさまざまなデバイス１０２〜１０８は、コンテンツプロバイダにとって問題になっている。より具体的には、さまざまなディスプレイ１２２から１２８がデバイス１０２から１０８によりそれぞれ使用されるため、コンテンツプロバイダは、マルチメディアコンテンツを異なるフォーマットで利用できるようにしなければならなかった。例えば、高解像度画像または高精細度ビデオは、高解像度ディスプレイ１２２を使用するユーザーにより利用できるものでなければならない。他方で、高解像度画像または高精細度ビデオに比べてわずか数分の１の解像度または色粒状度を有する圧縮された画像またはビデオを、低い処理能力、および低い解像度のディスプレイ１２６および１２８をそれぞれ有するパーソナルデジタルアシスタント１０６および無線電話１０８などのデバイスを使ってユーザーから利用できるようにしなければならない。適切なフォーマットのマルチメディアコンテンツにアクセスするために、ユーザーは、解像度および画質などの所望のパラメータを手入力で指定する。それとは別に、サーバー１１０〜１１２は、デバイス１０２〜１０８をポーリングして、それらのデバイス１０２〜１０８のそれぞれがデバイス１０２〜１０８に送信すべきマルチメディアコンテンツのフォーマットを決定するためにサポートすることができるグラフィックス、ビデオ、またはオーディオデータの種類を決定することができる。
【０００５】
サーバー１１０〜１１２が複数の異なるマルチメディアフォーマットを保持し、選択的に伝達しなければならないという問題は、スケーラブルなマルチメディアフォーマットにより解決される。例えば、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２０００（「ＪＰＥＧ  ２０００」）フォーマットでは、タイル、解像度、レイヤ、色成分、およびプリシンクトを含む多数の異なるアクセスタイプのそれぞれについてスケーラブルな画像コードストリームを指定する。コードストリームは、これらのアクセスタイプのそれぞれにおける多数のレベルでスケーラブルである。単一のコードストリームは、異なるデバイスによりアクセス可能であり、それらのデバイスのそれぞれがサポートするように構成されているそれぞれのアクセスタイプのレベルに適合させたマルチメディアを提示することができる。したがって、１つのマルチメディアコードストリームを格納し、スケーラブルなコードストリームをサポートする任意のデバイスに供給することができる。
【０００６】
スケーラブルなコードストリームを使用することで、特定のマルチメディアコンテンツに対し複数のコードストリームを維持する必要がなくなるが、スケーラブルなコードストリームへのアクセスを制御するには、煩雑なキー管理が必要である。複数の異なるマルチメディアコードストリームが維持される場合、特定のコードストリーム毎にキーが生成され、そのキーがマルチメディアにアクセスする権限を有するユーザーに発行される。データパケットを復号化するために使用されるコンテンツ暗号化キーは、知られている方法を使用してキーから導くことができ、これにより、ユーザーは暗号化されたマルチメディアにアクセスすることができる。
【０００７】
スケーラブルなコードストリームを使用して、適切なキーを生成し、供給することには、かなり問題があると思われる。特定のレベルのアクセスの権限を有するユーザーは、複数のキーを発行されなければならず、ユーザーが許可されているアクセスのレベルだけでなく、ユーザーの権限のあるアクセスレベルに包含される順位の低いレベルのアクセスについてもキーを用意することになる。
【０００８】
図２Ａ〜２Ｆは、ＪＰＥＧ２０００コードストリームの特質を例示する一連のブロック図である。図２Ａは、ユーザーが見たときの画像２００を示しており、画像２００は、複数の要素の配列２０２からなる。しかし、スケーラブルなコードストリームの実際の構造は、それほど単純に編成されていない。
【０００９】
図２Ｂは、異なる解像度レベルがコードストリーム中にどのように表されるかを示す、異なるサイズのデータブロック２１２の配列２１０である。離散ウェーブレット変換の機能として、異なる解像度レベルにアクセスする場合には、コードストリーム中のデータの異なるブロック２１２にアクセスする必要がある。図２Ｃに示されているように、サポートされている最低の解像度レベルにアクセスするために、配列２２０の第１のデータブロック２２２のみがアクセスされる。図２Ｄに示されているように、次に高い解像度レベルにアクセスするために、データブロック２２２および一連の隣接する第２のデータブロック２３２がアクセスされる。図２Ｅに示されているように、次に高い解像度レベルにアクセスするために、第１のデータブロック２２２、第２のデータブロック２３２、および一連の隣接する第３のデータブロック２４２がすべてアクセスされなければならない。データブロックの隣接するグループは、利用可能な最高の画像解像度に達するまでアクセスされる。したがって、さらに高いレベルの解像度を提示する際に使用されるデータブロックは、低いレベルの解像度を提示する際に使用されるデータを包含する。
【００１０】
最高解像度で画像を表示する権限のあるユーザーについては、ユーザーは、最高レベルの解像度に関連付けられているデータブロックを復号化できるキーとともに、低いレベルの解像度に関連付けられているデータブロックすべてを復号化できるキーを提供されなければならない。それとは別に、階層型キーシステムを使用することで、ユーザーに、低いレベルのアクセスに対するキーを導くことができる１つのキーを与えることができる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
残念なことに、スケーラブルなコードストリーム中のすべてのアクセスタイプが、階層型キーシステムに役立つ階層型構造を有するわけではない。例えば、タイルアクセスでは、ユーザーは画像の１つまたは複数の部分にアクセスすることができるが、データの階層的に包含する部分にアクセスすることを伴わない。図２Ｆに示されているように、配列２５０は、高解像度で画像の一部を表示するために使用されるデータブロック２５２〜２５８の一部を示している。画像の選択された部分を提示するために、異なる解像度レベルを表すデータブロック２５２〜２５８の部分はすべてアクセスされなければならない。使用すべきデータは階層構造に従っていないため、複数のキーを生成し、保持し、分配して、画像内での異なる解像度へのアクセスを選択的に制御しなければならない。
【課題を解決するための手段】
【００１２】
キー管理は、スケーラブルなコードストリーム内の複数のアクセスタイプの権限のあるすべてのレベルを復号化することを許可する単一のキーを生成するために実行される。アクセスノード集合は、解像度およびレイヤレベルなどの全順序集合により表現可能な階層、およびタイルおよびプリシンクトなどの半順序集合により表現可能な階層を有するアクセスタイプを表す集合から導かれる。導かれたアクセスノード集合は、コードストリーム内に含まれるアクセスタイプの複数のレベルの組合せを表す半順序集合である。階層型キー管理システムは、アクセスノード集合に適用され、これにより、キーをアクセスノードのそれぞれに割り当て、コンテンツ暗号化キーを生成し、コードストリームを暗号化する。コードストリーム、アクセスノード集合、および他の公開情報を受け取るクライアントは、このキーを使用して追加のキーを導き出し、コードストリーム内のアクセス可能なデータを復号化する。
【００１３】
アクセスノードのそれぞれに対するキーを含むキー集合は、利用可能な異なるレベルアクセスの組合せを表すアクセスノードのそれぞれについてキーが利用できるように生成される。Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループのキー交換プロトコルなどの階層型キースキームは、コードストリームを機密保護し、権限のあるレベルのアクセス、および単一のキーのみの包含されるアクセスの低いレベルへのアクセスを可能にするキーを生成する。
【００１４】
詳細な説明は、付属の図面を参照しつつ説明される。図中、参照番号の一番左の数字で、その参照番号が最初に出現する図面を識別する。異なる図中で同じ参照番号を使用している場合は、類似または同一の項目を示している。
【発明を実施するための最良の形態】
【００１５】
半順序集合を使用してアクセスのレベルの組合せを表すこと
図２Ａ〜２Ｅに関してすでに説明されているように、スケーラブルなコードストリーム内のいくつかのアクセスタイプの順位の高いレベルは、他のレベルを含む。ＪＰＥＧ２０００のスケーラブルなコードストリームでは、例えば、解像度アクセス、レイヤアクセス、および色成分アクセスの順位の高いレベルは、すべて、それよりも低いレベルを含む。これらのアクセスタイプにおけるそれぞれの低いレベルは、それに続くより高いレベルに含まれるので、これらのアクセスタイプ内のレベルは、全順序集合により表現可能な全順序階層である。
【００１６】
対照的に、タイルアクセスまたはプリシンクトアクセスなどのアクセスタイプは、タイルアクセスまたはプリシンクトアクセスの他のレベルを完全には含まない。言い換えると、コードストリーム内の一方のタイルを表すデータは、コードストリーム内の他方のタイルを表すデータを含むことも、依存することもないが、タイルのグループは、両方のタイルを表すデータを含むことができる。したがって、ファイルによるアクセスおよびプリシンクトタイプによるアクセスなどのアクセスタイプは、個々のブロックの相異なる組合せとして編成される。これらのアクセスタイプにおけるレベルは、半順序集合により表現可能な半順序階層をなす。
【００１７】
数学的には、半順序集合は、記号（Ｐ，＜）により表すことができるが、ただし、Ｐは、有限集合であり、＜は、２項関係である。ａとｂが両方とも、Ｐの元であり、ａ＜ｂならば、元ａのすべての構成要素は、元ｂの構成要素であるが、部分集合ｂのすべての構成要素が、部分集合ａの構成要素であるわけではない。そのため、ａおよびｂがコードストリーム内のタイルへのアクセスを表す場合、タイルｂへのアクセス権を有するユーザーは、さらに、タイルａへのアクセス権も有するが、タイルａへのアクセス権を有するユーザーは、タイルｂへのユーザーアクセスを与えない。
【００１８】
半順序集合によりタイルアクセスおよびプリシンクトアクセスなどのアクセスタイプを表すことは、スケーラブルなコードストリームの暗号化およびキー生成において有用である。例えば、部分集合ａが、スケーラブルなアクセスタイプにおける１つのレベルに関連付けられているデータパケットを表し、部分集合ｂが、同じスケーラブルなアクセスタイプにおける順位の高いレベルである場合、部分集合ｂへのアクセスを許すキーで、部分集合ａへのアクセスを許可される。したがって、部分集合ｂに単一キーを与えることにより、包含されるすべてのレベルを復号化するために使用されるキーを生成することができる。
【００１９】
図３Ａ〜３Ｃは、スケーラブルなコードストリームにおける３つの異なるアクセスタイプのレベルを表すハッセ図である。ハッセ図において、それぞれの頂点は、アクセスタイプのアクセスレベルを表す。頂点と頂点との間に伸びるそれぞれの直線は、より低いアクセスレベルまたは頂点に関するより高いアクセスレベルまたは頂点の包含的アクセス優先度を表す辺である。
【００２０】
図３Ａは、空のレベルφ３０２および２つの解像度レベルｒ０３０４およびｒ１３０６を含む、解像度に対するハッセ図３００である。解像度レベルは、すでに説明されているように、全順序階層をなし、したがって、全順序集合として表現可能である。言い換えると、解像度レベルｒ０３０４により表される解像度データの部分集合に含まれるデータは、解像度データｒ１３０６の部分集合内に包含される。他方で、解像度レベルｒ１３０６内に含まれるすべてのデータが、解像度レベルｒ０３０４に含まれるわけではない。
【００２１】
図３Ａと同様に、図３Ｂは、空のレベルφ３１２および２つのレイヤレベルｌ０３０４よびｌ１３１６を含む、レイヤアクセスレベルに対するハッセ図である。ここでもまた、空のレベルφ３１２は、図３Ｂにおける最低レベルである。レイヤレベルも、全順序集合として表現可能な全順序階層を表す。
【００２２】
解像度アクセスレベルおよびレイヤアクセスレベルの全順序階層とは対照的に、タイルアクセスレベルは、図３Ｃで例示されているように、半順序集合として表現可能な半順序階層である。図３Ｃは、画像の１行分の一部を構成する、３つの隣接するタイルｔ０、ｔ１、およびｔ２のグループの一例に対するハッセ図３２０である。空のレベルφ３２２の上で、ハッセ図３２０は、ｔ０３２４、ｔ１３２６、およびｔ２３２８のそれぞれに対する３つの頂点を含む。次に高いレベルでは、ハッセ図３２０は、ｔ０、ｔ１３３０、ｔ０、ｔ２３３２、およびｔ１、ｔ２３３４を含むタイルの２つの集合の可能な組合せを表す頂点を含む。最上位レベルでは、ハッセ図３２０は、３つのタイルｔ０、ｔ１、およびｔ２３３６の組合せを表す頂点を含む。
【００２３】
ハッセ図３００および３１０において、どの組合せも、ハッセ図３２０で表されているように表されていなかったと理解される。ハッセ図３００および３１０で表されているアクセスタイプ、解像度アクセスおよびレイヤアクセスにおいて、表されているアクセスタイプは、より高い順位の部分集合を表すそれぞれのさらに高い順位の頂点が要素のより低い部分集合のすべての要素を含む全順序階層を有する。
【００２４】
ハッセ図３００、３１０、および３２０を整理して、いくつかのスケーラブルなコードストリームに対する不要なレベルをなくすことができる。いくつかのスケーラブルなコードストリームでは、１つまたは複数のアクセスタイプに対する空のレベルを使用することができるが、ＪＰＥＧ２０００コードストリームは、そのスケーラブルなアクセスタイプのどれかにおいて空のレベルを含まない。したがって、ＪＰＥＧ２０００コードストリームにアクセスするために、アクセスレベルが指定され、解像度アクセス、レイヤアクセス、タイルアクセス、およびその他のアクセスタイプ（図に示されていない）の空でない少なくとも１つのレベルに与えられなければならない。
【００２５】
したがって、図３Ａ〜３Ｃに例示されているＪＰＥＧ２０００の例において、空のレベルφ３０２、φ３１２、およびφ３２２、ハッセ図３００、３１０、および３２０内の最低レベルは、それぞれ、そのそれぞれのアクセスタイプに対するアクセス可能なレベルを表さず、省くことができる。同様に、φ頂点３０２、３１２、および３２２を他の頂点に連結する辺も、省くことができる。図３Ａ、３Ｂ、および３Ｃのハッセ図３００、３１０、および３２０から余剰頂点を省くことで、それぞれ、図３Ｄ、３Ｅ、および３Ｆのハッセ図３４０、３５０、および３６０が得られる。
【００２６】
さらに、半順序集合および半順序階層でアクセスタイプを表すそのそれぞれのハッセ図をさらに整理して、ユーザーからは決してアクセスすることができない不必要な組合せを除去することができる。ハッセ図３２０は、１行分の中の３つの連続するタイルｔ０、ｔ１、ｔ２へのタイルアクセスに対する半順序集合の階層表現である。非連続タイルｔ０、ｔ１、およびｔ２の組合せへのアクセス権を付与することは、アプリケーションによっては不要である。そのため、この組合せを表す頂点３３２も、それらのアプリケーションにおいて図３Ｆのハッセ図３６０から除去できる。
【００２７】
スケーラブルなコードストリームへのアクセスのレベルを表すために、それぞれのアクセスタイプのレベルを表す全順序集合および半順序集合が組み合わされる。数学的には、全順序集合および半順序集合は、それぞれの集合内の要素の積を計算することにより組み合わされる。スケーラブルなアクセス制御の半順序集合（Ｐ，≦）は、式１
【００２８】
【数１】
2009500989.tif 000003
【００２９】
により表されるように、ちょうどすべてのスケーラブルなタイプの全順序集合および半順序集合（Ｐｉ，≦）の積である。
【００３０】
その結果得られる半順序集合内の頂点の個数は、式２
｜Ｐ｜＝Πｉ｜Ｐｉ｜    （２）
により表されるスケーラブルなタイプのそれぞれにおける頂点の個数の積に等しい。
【００３１】
式２で使用されているように、演算子｜Ｘ｜は、集合Ｘの濃度を表す。積のハッセ図中の辺の個数は、式３
【００３２】
【数２】
2009500989.tif 000004
【００３３】
により与えられる。
【００３４】
式３において、ｅｉは、ｉ番目のスケーラブルなタイプのハッセ図内の辺の個数である。
【００３５】
結果として得られる半順序集合の例示的な部分は、図４Ａおよび４Ｂのハッセ図４００および４５０によりそれぞれ表される。図４Ａは、ハッセ図３４０（図３Ｄ）および３５０（図３Ｆ）の組合せを表すハッセ図４００を示し、それにより、解像度アクセスおよびタイルアクセスのレベルの可能な組合せを表す。ハッセ図４００は、解像度アクセスの２つの異なるレベルに対するタイルアクセスのそれぞれのレベルを表すハッセ図３６０の２つの反復を含む。対応する頂点は、複数の辺により結合され、解像度レベルｒ０とｒ１との間の階層関係を表す。ハッセ図４００に含まれるハッセ図３６０の反復は、表される組合せの次元性をうまく示すように縦に揃えられるのではなくむしろオフセットされる。
【００３６】
例えば、頂点４０２は、解像度レベルｒ０およびタイルアクセスレベルｔ０、ｔ１、ｔ２に対するレベルの組合せを表す。頂点４０４は、解像度レベルｒ１およびタイルアクセスレベルｔ０、ｔ１、ｔ２に対するレベルの組合せを表す。辺４０６は、頂点４０２と４０４との間に引かれ、頂点４０４により表されるレベルの組合せへのアクセスが、頂点４０２により表されるレベルへ、さらにはアクセスのより低いレベルのすべての組合せのアクセスを含むことを示す。したがって、最高解像度ｒ１のすべてのタイルへのアクセス権を有するユーザーは、より低い解像度のすべてのタイルへのアクセス権も有する。
【００３７】
他の例を示すと、頂点４０８は、解像度レベルｒ０およびタイルアクセスレベルｔ０およびｔ１に対するレベルの組合せを表す。このレベルの組合せへのアクセスは、さらに、解像度レベルｒ０およびタイルアクセスレベルｔ０に対する順位の低いレベルの組合せを表す頂点４１０へのアクセス、および解像度レベルｒ０およびタイルアクセスレベルｔ１に対するレベルの組合せを表す頂点４１２へのアクセスも含む。しかし、頂点４０６へのアクセスでは、タイルｔ２への追加のタイルアクセスを含むレベルの組合せ４０２、またはより高い解像度レベルｒ１へのアクセスを含む頂点４１４へのアクセスが許容されない。
【００３８】
図４Ｂは、ハッセ図３４０（図３Ｄ）および３６０（図３Ｆ）とハッセ図３５０（図３Ｅ）との組合せを表すハッセ図４５０を示し、それにより、レイヤアクセス、解像度アクセス、およびタイルアクセスのレベルの可能な組合せを表す。視覚的に明瞭にするために、大半の頂点により表されるレベルの組合せに対するラベルは省かれるが、例えば、少数の頂点にラベルが付けられる。
【００３９】
例えば、ハッセ図４５０は、レイヤレベルｌ０、解像度レベルｒ０、およびタイルｔ０、ｔ１、ｔ２へのタイルアクセスの組合せを表す頂点４５２を含む。ハッセ図４５０は、さらに、レイヤレベルｌ０、解像度レベルｒ１、およびタイルｔ０、ｔ１、ｔ２へのタイルアクセスの組合せを表す頂点４５４も含む。より高い解像度レベルを含む、頂点４５４により表されるレベルへのアクセスは、頂点４５２により表されるレベルの組合せを含むより低いレベルと両方の頂点４５２および４５４よりも下にあるすべての頂点のすべての組合せへのアクセスを含む。その一方で、頂点４５４により表されるレベルの組合せにアクセスする権限を有するユーザーは、頂点４５６により表されるレベルの組合せへのアクセス権を持たないが、それは、ユーザーが、解像度レベルｒ０およびタイルｔ０、ｔ１、およびｔ２へのタイルアクセスとｌ１のレベルの組合せを表す、レイヤレベルｌ１へのアクセスについて権限を有しないからである。
【００４０】
ハッセ図４Ａおよび４Ｂで視覚的に表されるレベルの組合せは、示されているアクセスタイプのアクセスノード集合を表す。アクセスノード集合は、ユーザーがアクセスできるコードストリーム内のアクセスレベルの利用可能な組合せのそれぞれを表すアクセスノードを含む。
【００４１】
アクセスノードの半順序集合および階層型キースキームを使用することで、それぞれのアクセスノードにより表されるレベルの組合せへのアクセス権を与えるキーの集合が生成される。さらに、それぞれのアクセスノードに関連付けられているキーを使用すると、アクセスノードに関連付けられている順位の低いすべてのレベルの組合せにアクセスすることができる。そのため、ユーザーにアクセスノード集合、特定のレベルの組合せを表すアクセスノードに対応する単一のキー、および何らかの関係する公開情報を提供することにより、ユーザーは、順位の低い包含されるすべてのアクセスレベルに対するキーを導くことができる。以下でさらに詳しく説明するように、順位の低いレベルの組合せに対するキーを導き出すために、ユーザーに追加のキーを与える必要はない。
【００４２】
アクセスノード集合および対応するキー集合を生成すること
図５は、スケーラブルなコードストリームにおけるアクセスタイプに対するレベルの組合せを表し、キーとそれぞれの組合せとを関連付ける論理的ステップを例示する流れ図５００である。これらの組合せは、アクセスノードの集合により表され、キーは、アクセスノードのそれぞれに関連付けられる。それぞれのキーにより、ユーザーは、ユーザーが権限を有するそれぞれのアクセスタイプのレベル、さらには順位の低いすべてのレベルの組合せでコードストリームにアクセスすることができる。
【００４３】
流れ図５００は、ブロック５０２から始まる。ブロック５０４において、次のアクセスタイプは、スケーラブルなコードストリームに含まれるアクセスタイプのうちから表されるように選択される。決定ブロック５０６において、アクセスタイプが、全順序集合により表現可能な全順序階層を含む、全順序アクセスタイプであるかどうかが判定される。例えば、すでに説明されているように、ＪＰＥＧ２０００のスケーラブルなコードストリームでは、解像度、レイヤ、および色成分に対するアクセスタイプは、全順序階層である。ブロック５０６において、アクセスタイプが全順序階層であると判定された場合、ブロック５０８で、アクセスタイプに対する利用可能なレベルを表す全順序集合が作成される。
【００４４】
その一方で、決定ブロック５０６において、アクセスタイプが全順序階層ではないと判定された場合、アクセスタイプは、半順序階層を表さなければならない。ＪＰＥＧ２０００のスケーラブルなコードストリームの例においてすでに説明されているように、タイルアクセスおよびプリシンクトアクセスに対するアクセスタイプは、半順序階層である。ブロック５１０で、そのアクセスタイプに対する利用可能なレベルを表す半順序集合が作成される。
【００４５】
決定ブロック５１２では、コードストリーム中のすべてのアクセスタイプが表されているかどうかの判定が行われる。表されていない場合、流れ図５００は、ブロック５０４にループし、表される次のアクセスタイプを選択する。しかし、決定ブロック５１２で、すべてのアクセスタイプが表されたと判定されると、ブロック５１４で、アクセスタイプのそれぞれを表すすべての全順序および半順序集合が組み合わされ、アクセスノードの半順序集合が作成される。アクセスノードの集合を使用することで、ブロック５１６において、それぞれのアクセスノードに対するキーを含むキー集合が生成され、ブロック５１８において、図６に関して以下でさらに説明されるように、コードストリームが暗号化される。ブロック５１８で暗号化が完了すると、流れ図５００は、ブロック５２０で終了する。
【００４６】
流れ図５００のレベルの組合せおよびキー関連付けのモードにより、コードストリーム毎に１回だけコンテンツの暗号化およびキー生成が実行される。キー集合は、コードストリーム内で利用可能なそれぞれのレベルの組合せに対し利用可能なキーを含む。したがって、スケーラブルなコードストリームのデジタル権利管理は、一般に、動的なレベルの組合せの要求のため権限を与え、キーを生成するのに繰り返さなくて済む静的プロセスである。アクセスノード集合およびキー集合は、支払いが受け取られるか、または他の条件が満たされた後に、キーを配布できるように権限またはライセンスサーバー上に格納される。
【００４７】
キーをアクセスノードに割り当てる階層型キー生成スキーム
図６は、アクセスノードに対するキーを生成するモードを表す流れ図６００である。流れ図６００は、ブロック６０２から始まる。ブロック６０４で、アクセスノード集合のうちから１つまたは複数のルートノードが識別される。図４Ａおよび４Ｂにすでに例示されているように、それらの１つまたは複数のルートノードは、アクセスタイプのそれぞれに対する最高のアクセスレベルの組合せに関連付けられているアクセスノードを表す。ブロック６０６において、ルートノード毎に、乱数が生成され、キーとして割り当てられる。キー生成の一モードにおいて、適切な素数ｐが選択され、
【００４８】
【数３】
2009500989.tif 000005
【００４９】
となる生成元αが選択されるが、ただし、αは、式４
【００５０】
【数４】
2009500989.tif 000006
【００５１】
により定義される。
【００５２】
ブロック６０８で、次の子ノードが識別される。ルートノードから始めて、子ノードは、下降する順位で次のアクセスノードを表す。ブロック６０８では、すでに説明されているように、乱数が生成され、子ノードに割り当てられる。ブロック６１０において、式２に関してすでに説明されているように、乱数が生成され、子ノードに割り当てられる。ブロック６１２で、子ノードの親ノードが識別される。それぞれの子ノードの親ノードは、アクセスタイプのうちの１つに対するアクセスレベルが１レベル高いアクセスノードである。例えば、図４Ａのハッセ図４００を再び参照すると、アクセスレベルｒ０，（ｔ０，ｔ１）に関連付けられている頂点４０８は、アクセスレベルｒ０，（ｔ０，ｔ１，ｔ２）に関連付けられている頂点４０２およびアクセスレベルｒ１，（ｔ０，ｔ１）に関連付けられている頂点４１４の子ノードである。したがって、頂点４０２および４１４は、頂点４０２および４１４がそれぞれ、１つのアクセスタイプに対する、頂点４０８により表されるのよりも１つ高いアクセスレベルを表すため、頂点４０８の親ノードである。
【００５３】
ブロック６１４において、ブロック６１０で子ノードに割り当てられた乱数、およびブロック６１２で識別された親ノードのキーの値を使用して子ノードに対するキーが計算される。キー生成の一モードでは、Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループのキー交換の同意が、それぞれの子キーの計算に使用される。それぞれの子ノードｉについて、それぞれ子キーｋｉは、子ノードｒｉに割り当てられた乱数に基づいており、Ｒｉは、式５
【００５４】
【数５】
2009500989.tif 000007
【００５５】
により定義されているように子ノードｉに対する親ノードのすべてのキーの積である。
【００５６】
それぞれの子キーｋｉは、式６
【００５７】
【数６】
2009500989.tif 000008
【００５８】
を使用して計算される。
【００５９】
決定ブロック６１６で、キーが、ルートノードおよびすべての子ノードを含む、アクセスノード集合中のアクセスノードのすべてについて割り当てられているかどうかが判定される。割り当てられていない場合、流れ図６００は、ブロック６０８にループし、次の子ノードを識別する。決定ブロック６１６で、すべての子ノードが割り当てられたと判定されると、ブロック６１８において、生成されたキーがアクセスノード集合と対応するキー集合内に格納される。キーのそれぞれがキー集合内に格納されている状態で、コードストリーム中のアクセスタイプのそれぞれに対するさまざまなレベルの組合せへのアクセスの要求が受け取られると、追加のキーを生成することなく、または他の計算を実行することなく、キー集合から適切なキーを引き出すことができる。
【００６０】
キーが導き出され、格納された後、ブロック６２０において、それぞれのアクセスノードに関連付けられているデータパケットのそれぞれに対するコンテンツ暗号化キーが導き出される。暗号化およびキー生成の一モードにおいて、関連付けられているアクセスノードに対するキーが、暗号ハッシュ関数によりハッシュされる。ハッシュ関数は、所望のサイズのコンテンツ暗号化キーを生成する。ブロック６２２において、コンテンツ暗号化キーを使用して、コードストリーム中のデータパケットが暗号化される。
【００６１】
ブロック６２４において、暗号化されたコンテンツは、コードストリームを復号化するキーを導き出すために使用される公開情報とともに格納される。キー生成の一モードにより、半順序アクセスノード集合、素数ｐ、αに対し、またそれぞれの子ノードについて、式７
【００６２】
【数７】
2009500989.tif 000009
【００６３】
の値が得られる。
【００６４】
式７において、ｒｉは、それぞれのノードｉに関連付けられている乱数であり、Ｒｉは、親ノードのキーの積であり、ｋは、ノードｉの親ノードのキーである。暗号化されたコンテンツは、ユーザーが、暗号化されたコードストリームをダウンロードすることができるようにサーバー上に格納されうる。流れ図６００は、ブロック６２６で終了する。
【００６５】
アクセスノード集合および単一キーを使用して暗号化されたコードストリームにアクセスすること
図７は、流れ図５００（図５）および６００（図６）により符号化されたコードストリームにアクセスするモードを例示する流れ図７００である。流れ図７００は、ブロック７０２から始まる。ブロック７０４において、コードストリームのそれぞれのスケーラブルなアクセスタイプの所望のレベルを指定するレベルの組合せが識別される。より具体的には、レベルの組合せは、インターネット上で、または他のアクセス方法を使用してサーバーに対して指定される。ブロック７０６では、所望のレベルの組合せでコードストリームにアクセスする権限が、保護される。ブロック７０８で、コードストリームおよびコードストリームに対するアクセスノード集合が受け取られる。暗号化されたコードストリームを符号化する一モードにおいて、アクセスノード集合は、コードストリームの指定部分に含まれる。
【００６６】
ブロック７１２で、所望のレベルの組合せを表すアクセスノードに関連付けられている単一キーが受け取られる。ブロック７１４において、キーおよびアクセスノード集合を使用し、アクセスの順位の低いレベルのキーを導く。例えば、Ｄｉｆｆｉｅ  Ｈｅｌｌｍａｎグループのキー交換を使用し、アクセスノード、キー、および関係する公開情報を使用して、データパケットに対するコンテンツ符号化キーを導き出すことができる。ブロック７１６で、コードストリームが復号化される。流れ図７００は、ブロック７００で終了する。
【００６７】
例示的な実施形態を実装するためのコンピューティングシステム
図８は、スケーラブルなキー管理システムのいくつかの実施形態を実装するための例示的なコンピューティングシステム８００を例示している。コンピューティングシステム８００は、好適な動作環境の一例にすぎず、すでに説明されているキー管理プロセスの例示的な実施形態または他の実施形態の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティングシステム８００は、例示的なコンピューティングシステム８００に例示されている１つのコンポーネントまたはその組合せに関係する何らかの依存関係または要求条件を有するものと解釈すべきでない。
【００６８】
キー管理システムプロセスならびに関連する暗号化および復号化プロセスは、コンピューティングシステム８００によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者であれば、キー管理プロセスは、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む、さまざまなコンピュータシステム構成を使用して実施できることを理解するであろう。また、キー管理プロセスは、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
【００６９】
図８を参照すると、キー管理プロセスを実装する例示的なコンピューティングシステム８００は、演算処理装置８２０、システムメモリ８３０、およびシステムメモリ８３０を含むさまざまなシステムコンポーネントを演算処理装置８２０に結合するシステムバス８２１を備える。
【００７０】
コンピュータ８１０は、典型的には、さまざまなコンピュータ可読媒体を備える。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体の実施例は、限定はしないが、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電子的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたはその他のメモリ技術、ＣＤ  ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）またはその他の光記憶またはホログラフィックディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができコンピュータ８１０によりアクセスできるその他の媒体を含む。システムメモリ８３０は、ＲＯＭ  ８３１およびＲＡＭ  ８３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を備える。（起動時などに）コンピュータ８１０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム８３３（ＢＩＯＳ）は、典型的には、ＲＯＭ  ８３１に格納される。通常、ＲＡＭ  ８３２は、演算処理装置８２０に直接アクセス可能な、および／または演算処理装置８２０によって現在操作されているデータおよび／またはプログラムモジュールを格納する。例えば、限定はしないが、図８は、オペレーティングシステム８３４、アプリケーションプログラム８３５、その他のプログラムモジュール８３６、およびプログラムデータ８３７を例示している。
【００７１】
コンピュータ８１０はさらに、その他の取り外し可能／固定揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが、図８は、固定不揮発性磁気媒体の読み書きを行うハードディスクドライブ８４１、取り外し可能な不揮発性磁気ディスク８５２の読み書きを行う磁気ディスクドライブ８５１、およびＣＤ−ＲＯＭまたはその他の光媒体などの取り外し可能な不揮発性光ディスク８５６の読み書きを行う光ディスクドライブ８５５を例示している。例示的な動作環境において使用できる他の取り外し可能／固定揮発性／不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリユニット、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがある。ハードディスクドライブ８４１は、典型的には、インターフェイス８４０などの固定メモリインターフェイスを通じてシステムバス８２１に接続される。磁気ディスクドライブ８５１および光ディスクドライブ８５５は、典型的には、インターフェイス８５０などの取り外し可能なメモリインターフェイスを通じてシステムバス８２１に接続される。
【００７２】
図８に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ８１０用のコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、ハードディスクドライブ８４１は、オペレーティングシステム８４４、アプリケーションプログラム８４５、その他のプログラムモジュール８４６、およびプログラムデータ８４７を格納するものとして例示されている。これらのコンポーネントは、オペレーティングシステム８３４、アプリケーションプログラム８３５、その他のプログラムモジュール８３６、およびプログラムデータ８３７と同じである場合もあれば異なる場合もあることに留意されたい。典型的には、ＲＡＭに格納されるオペレーティングシステム、アプリケーションプログラムなどは、ハードディスクドライブ８４１から読み出される対応するシステム、プログラム、またはデータの一部であり、それらの部分のサイズおよび範囲は必要とされる機能に応じて変わる。オペレーティングシステム８４４、アプリケーションプログラム８４５、その他のプログラムモジュール８４６、およびプログラムデータ８４７に対しては、ここで、異なる番号を割り当てて、最低でも、それらが異なるコピーでありうることを示している。ユーザーは、キーボード８６２、マウス、トラックボール、またはタッチパッドと一般的には呼ばれるポインティングデバイス８６１、無線入力受信コンポーネント８６３、またはリモートコントロールなどの無線ソースなどの入力デバイスを介してコンピュータ８１０にコマンドおよび情報を入力できる。他の入力デバイス（図に示されていない）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスおよびその他の入力デバイスは、システムバス８２１に結合されているユーザー入力インターフェイス８６０を通じて演算処理装置８２０に接続されることが多いが、パラレルポート、ゲームポート、ＩＥＥＥ１３９４ポート、またはユニバーサルシリアルバス（ＵＳＢ）８９８、または赤外線（ＩＲ）バス８９９などの他のインターフェイスおよびバス構造により接続されることも可能である。すでに述べているように、入出力機能は、通信ネットワークを介した分散方式により円滑にされうる。
【００７３】
表示デバイス８９１も、ビデオインターフェイス８９０などのインターフェイスを介してシステムバス８２１に接続される。表示デバイス８９１は、コンピュータ８１０の出力を表示する任意のデバイスとすることができ、モニタ、ＬＣＤ画面、ＴＦＴ画面、フラットパネルディスプレイ、従来のテレビ、またはスクリーンプロジェクタに限定されない。表示デバイス８９１に加えて、コンピュータはさらにスピーカー８９７およびプリンタ８９６などの他の周辺出力デバイスも備えることができ、これらは出力周辺機器インターフェイス８９５を介して接続することができる。
【００７４】
コンピュータ８１０は、リモートコンピュータ８８０などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作する。リモートコンピュータ８８０は、パーソナルコンピュータであってよく、典型的には、コンピュータ８１０に関して上で説明されている要素の多くまたはすべてを含むが、図８では、メモリ記憶装置デバイス８８１だけが例示されている。図８に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）８７１およびワイドエリアネットワーク（ＷＡＮ）８７３を含むが、都市圏ネットワーク（ＭＡＮ）、イントラネット、またはインターネットとの接続など、他のネットワークを含むこともできる。
【００７５】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ８１０は、ネットワークインターフェイスまたはアダプタ８７０を介してＬＡＮ  ８７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ８１０は、典型的には、インターネットなどのＷＡＮ  ８７３上で通信を確立するためモデム８７２またはその他の手段を備える。モデム８７２は、内蔵でも外付けでもよいが、ネットワークインターフェイス８７０または他の適切な機構を介してシステムバス８２１に接続されうる。モデム８７２は、ケーブルモデム、ＤＳＬモデム、または他のブロードバンドデバイスとすることも可能であろう。ネットワーク接続環境では、コンピュータ８１０またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶装置デバイスに格納されうる。例えば、限定はしないが、図８は、リモートアプリケーションプログラム８８５がメモリデバイス８８１に置かれているように例示している。図に示されているネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
【００７６】
コンピュータ８１０の他の多くの内部コンポーネントは図に示されていないが、当業者であれば、そのようなコンポーネントおよび相互接続はよく知られていることを理解するであろう。例えば、コンピュータ８１０内にＴＶチューナーカードおよびネットワークインターフェイスカードなどのさまざまな拡張カードを装着することは、標準的なことである。したがって、コンピュータ８１０の内部構造に関するさらなる詳細は、キー管理プロセスの例示的な実施形態を説明するうえで開示される必要はない。
【００７７】
コンピュータ８１０が電源オンされるか、またはリセットされると、ＲＯＭ  ８３１に格納されているＢＩＯＳ  ８３３は、ハードディスクドライブ８４１からＲＡＭ  ８３２にオペレーティングシステム、またはその必要な部分をロードするように演算処理装置８２０に指令を出す。オペレーティングシステム８４４として指定されている、オペレーティングシステムのコピーされた部分が、ＲＡＭ  ８３２内にロードされると、演算処理装置８２０は、オペレーティングシステムのコードを実行し、オペレーティングシステム８３４のユーザーインターフェイスに関連付けられている視覚的要素を表示デバイス８９１に表示させる。典型的には、アプリケーションプログラム８４５が、ユーザーにより開かれると、プログラムコードおよび関連するデータが、ハードディスクドライブ８４１から読み込まれ、必要な部分が、ＲＡＭ  ８３２にコピーされ、そのコピーされた部分は、本明細書では参照番号８３５で表されている。
【００７８】
スケーラブルなコードストリームの符号化および復号化を行うサーバーおよびクライアントシステム
図９は、ネットワーク９０５上で機密保護されたスケーラブルなコードストリームを、本発明の複数のモードに従ってコードストリームを復号化することができるクライアント９６０に供給するように動作可能なサーバー９１０を備えるシステム９００の機能ブロック図を例示している。システム９００は、コンテンツを供給する１つまたは複数のサーバー、および暗号化、キー管理、クライアント権限付与、およびその他の機能を実行する１つまたは複数の追加のサーバーを含む、１つまたは複数のサーバー９１０を使用して実装することができる。さらに、ネットワーク９５０上で１つまたは複数のそれらのサーバー９１０にアクセスする多数のクライアント９６０がありうる。そうであるけれども、説明を簡単にするため、図９では、コンテンツを提供し、単一のクライアント９６０によりネットワーク９５０上でアクセス可能なキー管理機能を実行するように動作可能な単一のサーバー９１０を示している。
【００７９】
サーバー９１０は、さまざまなレベルの組合せに対する権限付与要求を受け取り、さらに以下で説明されるように、サーバー９１０からのコードストリームを復号化できる権限をクライアントに付与するアクセスレベル識別および権限付与サブシステム９１２を備える。サーバーは、さらに、アクセスノードサブシステム９１４を備える。アクセスノードサブシステムは、図５に関して説明されているようにスケーラブルなコードストリームにおいて利用することができるアクセスのレベルの組合せに対応するアクセスノードを導き出すアクセスノード生成器９１６を備える。生成されたアクセスノードは、キー集合の作成および復号化を目的とするコードストリームの提供のためにアクセスノード集合記憶域９１８内に格納される。
【００８０】
キーサブシステム９２０は、図６に関して説明されているようにキーを作成するために使用されるルートノード識別子９２２ならびに子および親ノード識別子９２２を備える。さらに、図６に関して説明されているように、乱数生成器９２６は、ルートノードキーとして使用し、また子ノードキーを作成するために子ノードのそれぞれに関連付ける乱数を生成する。キー生成器９２８は、図６に関して説明されているようにキーを生成し、キー割り当て器９３０は、適切なキーをアクセスノードのそれぞれに関連付ける。生成されたキーは、キー集合記憶域９３２内に格納され、すべてのアクセスノードに対するキーが、１回だけ生成され、権限付与要求への応答としてキー集合記憶域９３２からキーが引き出されうる。
【００８１】
キーが生成され、キーサブシステム９２０に格納された後、暗号化サブシステム９３４は、コードストリームを暗号化する。図６に関して説明されているように、コンテンツ暗号化キー生成器９３６は、パケットが関連付けられているアクセスノードに関連付けられているキーに基づいてデータパケットに対するコンテンツ暗号化キーを導き出す。コンテンツキーを使用することで、コードストリーム暗号化サブシステム９３８は、コードストリーム記憶域９４０内に格納されているスケーラブルなコードストリームを暗号化する。クライアント権限付与要求、権限付与承認、キー、およびコードストリームは、ネットワーク９５０と通信する通信制御サブシステム９４５を介して交換される。
【００８２】
クライアント９６０は、アクセスレベル選択サブシステム９６２を使って安全でスケーラブルなコードストリームにアクセスする要求を開始し、これにより、スケーラブルなコードストリーム内のアクセスタイプ毎にアクセスの所望のレベルを示すレベルの組合せを識別する。権限付与要求が成功した場合、キーは、キー制御サブシステム９６４によりサーバー９１０から受け取られる。キーは、キー記憶域９６６に格納され、受け取ったキーおよびアクセスノード集合を使用して、キー処理サブシステム９６８が、コードストリーム内の順位の低いレベルに関連付けられているキーとともにコードストリームを復号化するコンテンツ暗号化キーを導き出す。コードストリームは、コードストリーム／アクセスノード記憶域９７０内に格納され、復号器９７２により復号化される。クライアント通信制御サブシステム９８０は、権限付与要求を送信し、キーおよびコードストリームを受信するように動作可能である。
【００８３】
結論
例示的な実施形態は、構造的特徴および／または方法論的活動に特有の言語で説明されているが、付属の請求項は、すでに説明されている特定の特徴または活動に必ずしも限られないことは理解されるであろう。むしろ、特定の特徴および活動は、例示的な実施形態として開示されている。
【図面の簡単な説明】
【００８４】
【図１】（従来技術）異なるデバイスが同じサーバー上のコンテンツにアクセスするために異なる表示機能を使用するネットワークの図である。
【図２Ａ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図２Ｂ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図２Ｃ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図２Ｄ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図２Ｅ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図２Ｆ】（従来技術）異なるアクセスタイプの異なるレベルで画像コンテンツを提示する際に使用されるデータブロックを例示する図である。
【図３Ａ】スケーラブルなコードストリームに含まれる異なるアクセスタイプの潜在的に異なるレベルを表すハッセ図である。
【図３Ｂ】スケーラブルなコードストリームに含まれる異なるアクセスタイプの潜在的に異なるレベルを表すハッセ図である。
【図３Ｃ】スケーラブルなコードストリームに含まれる異なるアクセスタイプの潜在的に異なるレベルを表すハッセ図である。
【図３Ｄ】示されているアクセスタイプのそれぞれにおいて使用できないレベルを取り除くように図３Ａ〜３Ｃを整理したハッセ図である。
【図３Ｅ】示されているアクセスタイプのそれぞれにおいて使用できないレベルを取り除くように図３Ａ〜３Ｃを整理したハッセ図である。
【図３Ｆ】示されているアクセスタイプのそれぞれにおいて使用できないレベルを取り除くように図３Ａ〜３Ｃを整理したハッセ図である。
【図４Ａ】図３Ｄ〜３Ｆのハッセ図から導かれるアクセスタイプのレベルの組合せを表すハッセ図である。
【図４Ｂ】図３Ｄ〜３Ｆのハッセ図から導かれるアクセスタイプのレベルの組合せを表すハッセ図である。
【図５】アクセスノードを生成し、スケーラブルなコードストリームを暗号化する方法を例示する流れ図である。
【図６】スケーラブルなコードストリームを暗号化し、コードストリームを復号化するためのキーの集合を生成する方法を例示する流れ図である。
【図７】アクセスノードの集合および単一のキーを使用して暗号化されたスケーラブルなコードストリームを復号化する方法を例示する流れ図である。
【図８】コードストリームの暗号化および復号化で使用するのに適しているコンピューティングシステム環境の機能図である。
【図９】符号化されたスケーラブルなコードストリームへのアクセスを制御するためにアクセスノードおよびキーを分配する際に使用されるサーバーおよびクライアントを含むシステムの機能ブロック図である。
【図１】
2009500989.tif 000010
【図２Ａ】
2009500989.tif 000011
【図２Ｂ】
2009500989.tif 000012
【図２Ｃ】
2009500989.tif 000013
【図２Ｄ】
2009500989.tif 000014
【図２Ｅ】
2009500989.tif 000015
【図２Ｆ】
2009500989.tif 000016
【図３Ａ】
2009500989.tif 000017
【図３Ｂ】
2009500989.tif 000018
【図３Ｃ】
2009500989.tif 000019
【図３Ｄ】
2009500989.tif 000020
【図３Ｅ】
2009500989.tif 000021
【図３Ｆ】
2009500989.tif 000022
【図４Ａ】
2009500989.tif 000023
【図４Ｂ】
2009500989.tif 000024
【図５】
2009500989.tif 000025
【図６】
2009500989.tif 000026
【図７】
2009500989.tif 000027
【図８】
2009500989.tif 000028
【図９】
2009500989.tif 000029
【国際調査報告】
2009500989.tif 000030