(57)【要約】【課題】  コンテンツ情報を連続する複数の部分コンテンツで構成されるものとし、各部分コンテンツの暗号化を別々な鍵で暗号化したとしても、１つの鍵情報のみを記憶管理するだけにする。【解決手段】  １つのコンテンツ情報が４つの部分コンテンツで構成される、もしくは、４つの部分コンテンツに分割する場合、最上位のルートの鍵から４段階の演算を経て４つの各ノード位置の鍵を生成する。このとき、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する。そして、末端層に生成された鍵情報で各部分コンテンツを暗号化する。この結果、ルートの鍵だけ保持しておけば、連続している部分コンテンツの範囲について１つの暗号化鍵をいつでも生成することが可能になる。【選択図】  図３
2006074392.tif 000002
【特許請求の範囲】
【請求項１】
所定軸に沿って並んだ部分コンテンツで構成されるコンテンツ情報を暗号化する情報暗号化装置であって、
前記コンテンツ情報のルート鍵情報を生成するルート鍵生成手段と、
第i層のi個の鍵を、上位の第i-1層のi-1個の鍵に基づき生成し、末端位置に前記部分コンテンツの数分の鍵情報を生成する生成する階層鍵生成手段と、
ここで、当該階層鍵生成手段は、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記階層鍵生成手段で生成された末端層の鍵情報を用いて、各部分コンテンツを暗号化する暗号化手段と、
該暗号化手段で暗号化した部分コンテンツで構成される暗号化済みのコンテンツ情報と、前記ルート鍵情報、並びに、各部分コンテンツの区切り位置を特定する情報を記憶する記憶手段と
を備えることを特徴とする情報暗号化装置。
【請求項２】
前記ルート鍵生成手段は、前記部分コンテンツの数に応じた個数のデータを入力する入力手段を含み、当該入力手段で入力されたデータに基づいてルート鍵情報を生成することを特徴とする請求項１に記載の情報暗号化装置。
【請求項３】
更に、前記コンテンツ情報から、各部分コンテンツの区切り位置を指定する指定手段とを備えることを特徴とする請求項１に記載の情報暗号化装置。
【請求項４】
前記コンテンツ情報は、動画情報、音響情報、文書情報を含むことを特徴とする請求項１乃至３のいずれか１つに記載の情報暗号化装置。
【請求項５】
更に、コンテンツ情報の区切り位置を指定する指定手段を備え、
前記部分コンテンツは、前記指定手段で指定された区切り位置間、或いは前記コンテンツの端部と最寄りの区切り位置間で決定されることを特徴とする請求項１に記載の情報暗号化装置。
【請求項６】
請求項１に記載の情報暗号化装置で暗号化されたコンテンツを復号するための鍵情報を配信する情報配信装置であって、
復号する部分コンテンツの範囲を決定する決定手段と、
前記記憶手段で記憶されたルート鍵情報に基づき、階層化して復号用の鍵情報を階層化して生成する第２の階層鍵生成手段と、
ここで、第２の階層鍵生成手段は、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記決定手段で決定した部分コンテンツの範囲に対応する末端位置のノードの全てが子ノードとなるノードのうち最下位に位置するノードの鍵情報と、少なくとも前記部分コンテンツの範囲内の各部分コンテンツの区切り位置を示す情報で構成される復号情報を配信する配信手段と
を備えることを特徴とする情報配信装置。
【請求項７】
所定軸に沿って並んだ部分コンテンツで構成されるコンテンツ情報を暗号化する情報暗号化装置の制御方法であって、
前記コンテンツ情報のルート鍵情報を生成するルート鍵生成工程と、
第i層のi個の鍵を、上位の第i-1層のi-1個の鍵に基づき生成し、末端位置に前記部分コンテンツの数分の鍵情報を生成する生成する階層鍵生成工程と、
ここで、階層鍵生成工程は、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記階層鍵生成工程で生成された末端層の鍵情報を用いて、各部分コンテンツを暗号化する暗号化工程と、
該暗号化工程で暗号化した部分コンテンツで構成される暗号化済みのコンテンツ情報と、前記ルート鍵情報、並びに、各部分コンテンツの区切り位置を特定する情報を所定の記憶に格納する格納工程と
を備えることを特徴とする情報暗号化装置の制御方法。
【請求項８】
請求項１に記載の情報暗号化装置で暗号化されたコンテンツを復号するための鍵情報を配信する情報配信装置の制御方法であって、
復号する部分コンテンツの範囲を決定する決定工程と、
前記記憶手段で記憶されたルート鍵情報に基づき、階層化して復号用の鍵情報を階層化して生成する第２の階層鍵生成工程と、
ここで、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記決定工程で決定した部分コンテンツの範囲に対応する末端位置のノードの全てが子ノードとなるノードのうち最下位に位置するノードの鍵情報と、少なくとも前記部分コンテンツの範囲内の各部分コンテンツの区切り位置を示す情報で構成される復号情報を配信する配信工程と
を備えることを特徴とする情報配信装置の制御方法。
【請求項９】
コンピュータが読み込み実行することで、所定軸に沿って並んだ部分コンテンツで構成されるコンテンツ情報を暗号化する情報暗号化装置として機能するコンピュータプログラムであって、
前記コンテンツ情報のルート鍵情報を生成するルート鍵生成手段と、
第i層のi個の鍵を、上位の第i-1層のi-1個の鍵に基づき生成し、末端位置に前記部分コンテンツの数分の鍵情報を生成する生成する階層鍵生成手段と、
ここで、階層鍵生成手段は、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記階層鍵生成手段で生成された末端層の鍵情報を用いて、各部分コンテンツを暗号化する暗号化手段と、
該暗号化手段で暗号化した部分コンテンツで構成される暗号化済みのコンテンツ情報と、前記ルート鍵情報、並びに、各部分コンテンツの区切り位置を特定する情報を記憶する記憶手段
として機能することを特徴とするコンピュータプログラム。
【請求項１０】
コンピュータが読み込み、請求項１に記載の情報暗号化装置で暗号化されたコンテンツの復号するための鍵情報を配信する情報配信装置として機能するコンピュータプログラムであって、
復号する部分コンテンツの範囲を決定する決定手段と、
前記記憶手段で記憶されたルート鍵情報に基づき、階層化して復号用の鍵情報を階層化して生成する第２の階層鍵生成手段と、
ここで、第２の階層鍵生成手は、段第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記決定手段で決定した部分コンテンツの範囲に対応する末端位置のノードの全てが子ノードとなるノードのうち最下位に位置するノードの鍵情報と、少なくとも前記部分コンテンツの範囲内の各部分コンテンツの区切り位置を示す情報で構成される復号情報を配信する配信手段
として機能することを特徴とするコンピュータプログラム。
【請求項１１】
請求項９又は１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信対象コンテンツ情報を暗号化する技術に関するものである。
【背景技術】
【０００２】
近年、通信回線の転送速度向上、並びに、ＤＶＤなどの大容量記録メディアを通じて、文書や画像データなどのデジタルコンテンツが流通する機会が増加している。デジタルコンテンツ配信サービスは、特定のユーザに対してコンテンツを流布するサービスであるが、当然、ユーザ以外にはコンテンツが漏洩しない仕組みが要求されている。また、大容量メディアによるコンテンツ配信においても、同様のユーザによるアクセス制御の機構が検討されている。その際には、コンテンツデータに対する暗号化やスクランブル処理などが行われており、正当な鍵情報を持つ、もしくはデスクランブル処理を知っている正当なユーザのみが復号処理を行い、正規の文書や画像データなどのコンテンツを享受できる仕組みが提供されている。
【０００３】
このようなコンテンツ配信サービスにおいては、コンテンツを配信するコンテンツプロバイダが存在する。コンテンツプロバイダでは、複数のコンテンツのそれぞれに対して異なるアクセス制御情報の設定を行う必要があり、コンテンツごと、ユーザごと、さらにはユーザのアクション（例えば、閲覧、コピーなど）ごとに異なる鍵による暗号化処理を行うことが想定されている。この処理において、鍵生成、鍵保持、鍵配信などの鍵情報に関わるマネージメントはコンテンツプロバイダにおいて非常に負荷がかかることが多い。そこで鍵管理に関して、セキュリティレベルを低下させることなく、より効率的な管理方法に関する研究が行われている。以下、従来の管理方法のいくつかに関して説明を行う。
【０００４】
[木構造管理方式]
木構造管理方式はＤＶＤプレイヤーなどのオフラインでのコンテンツ再生機器において利用されており、ユーザの無効化を行うのに適している。この方式では、暗号化データを正当なユーザのみが復号できるように、暗号化に用いた鍵情報と暗号化コンテンツと同時に配信、もしくはメディアに格納しておく。各ユーザに対して適切な組み合わせで鍵情報を事前に配布しておく必要があるが、木構造を用いることで膨大なユーザ鍵情報を効率的に管理することができる。
【０００５】
この管理方式においては、方式の良し悪しを決定するにあたり次のような指標が存在する。
１）コンテンツと同時に配信される鍵情報のデータサイズ、
２）ユーザを保持する事前配布された鍵情報のデータサイズ、
３）コンテンツプロバイダが管理する必要のある鍵情報のデータサイズ
の３つの指標がそれにあたる。
【０００６】
オンライン型配信サービスの場合にはネットワークトラフィックを左右する１）が重視されるであろうが、コンテンツプロバイダの立場から考えると３）の管理コストが最も重視されることになる。このようにシチュエーションにより指標の重みが変化することに留意しなければならない。
【０００７】
木構造管理方式の代表的なものとしては、コンテンツ配信モデルがある（例えば、非特許文献１）。このモデルにおいては、図１４のような鍵配布用の木構造を用いており各ノードには異なる鍵が配置される。ユーザ鍵（論文中ではＤＶＤなどのプレイヤーが保持する鍵を想定）は末端のノード（葉ノード）と同一視され、ルートから末端ノードまでのすべての鍵データを保持するものと仮定している。本モデルでは更新が頻繁に起きることを想定しており、このように配置することで鍵無効化の効率を改良している。
【０００８】
[階層的鍵管理方式]
一方、階層的鍵管理方式で想定している鍵管理は各ノードに鍵が配置されている点では同様であるが、ユーザには末端ノードだけでなく、ルートを含めたすべてのノードに位置する鍵が配布される点が大きく異なる（例えば、非特許文献２、３を参照）。
【０００９】
また、図１４のようなｎ分木の構造ではなく、図１５や図１６のようなアクセス構造を想定しており、局所的に見ると図１７のような関係になっている箇所が見受けられる。この場合、ノードｎ１に配置されている鍵とノードｎ２に配置されているの両者からノードｎ３の持つべき鍵を生成できるような仕組みが提供されていなければならない。Birgetらの論文（非特許文献３）によれば、この仕組みを提供する方式として次の２つの方法が提案されている。
【００１０】
[(1) User multiple keying]
各ノードが複数の鍵を保持する方式であり、親ノードは子ノードのすべての鍵を保持するように構成されている。図１８はその一例であり、各ノードに配布される鍵データの集合が記載されている。例えば｛ｋ５｝が配布されているノードの親ノードには 鍵データｋ５が含まれていることがわかる。同様に他のノードにおいても親ノードには子ノードの鍵データがすべて含まれていることがわかる。
【００１１】
[(2) One-way function based keying schemes]
Lin らの提案（非特許文献２）を拡張させた方式であり、一方向性ハッシュ関数を用いることで、各ノードが保持する鍵情報を削減することができる。但し、図１７のように複数の親ノードの鍵データから子ノードの鍵データを生成する際には、次のような操作が必要である。この操作を図１９を用いて説明する。
【００１２】
図１９において、鍵データｋ１またはｋ２からｋ３を生成するには
ｋ３：＝Ｆ（ｋ１，ｎ３） ＸＯＲ ｒ１３
ｋ３：＝Ｆ（ｋ２，ｎ３） ＸＯＲ ｒ２３
という演算を行う。ここでＸＯＲはビットごとの排他的論理和である。また Ｆ（） は一方向性ハッシュ関数であり、詳細は後述する。ｎ３は鍵データｋ３が関連付けられたノードの識別子、ｒ１３、ｒ２３はそれぞれ、ノードｎ１(鍵データｋ１)とノードｎ３により関連付けられたランダムデータ、 ノードｎ２(鍵データｋ２)とノードｎ３により関連付けられたランダムデータであり、共に公開されているデータである。
【００１３】
関数Ｆ（）は Ｆ（ｋ＿ｉ，ｎ＿ｊ）＝ｇ＾｛ｋ＿ｉ  ＋  ｎ＿ｊ｝ ｍｏｄ  ｐ (ただし、ｐは素数、ｇは原始元) で構成されており、上記ｒ１２、ｒ１３は、
Ｆ（ｋ１，ｎ３） ＸＯＲ ｒ１３＝Ｆ（ｋ２，ｎ３） ＸＯＲ ｒ２３
を満たすように生成される。
【００１４】
[時系列映像コンテンツの配信]
前述の鍵生成方式の応用例としては、コンテンツ作成側で、時系列で連続する複数のフレーム画像により構成される映像等のコンテンツデータを暗号化してから送信し、利用側では送信されてきたコンテンツデータを復号して再生する映像暗号化／復号システムが考えられる（たとえば特許文献１などに記載）。
【００１５】
図７は時系列コンテンツが、単位ごとに暗号化される場合を表す模式図である。コンテンツ作成側では、対象コンテンツ７０１は暗号化コンテンツ７０２に暗号化される。このときコンテンツ７０１はＭ１からＭ４に分割され、それぞれコンテンツ鍵７０３（ｋ１）〜７０６（ｋ４）で暗号化され、暗号化後のデータｃ１〜ｃ４を得る。一方、利用者側では、コンテンツ鍵ｋ１からｋ４のすべて、もしくは一部を秘密裏に受信し、コンテンツ鍵にあった暗号化部分を復号する。コンテンツ鍵７０３〜７０６は、暗号化コンテンツ７０２と同時に配信されることもあるが、配信者とは異なる第３者であるライセンスサーバから別途、非同期に配信される場合も考えられる。
【００１６】
このとき、時系列コンテンツの作成者は、同じ鍵で暗号化するコンテンツの最小単位を定め、その単位で区切られた単位コンテンツごとに鍵を生成する必要がある。また、受信者に対して、どの範囲を開示するかを定め、その範囲にあった鍵を配信する必要がある。あるひとつのコンテンツに対し単位コンテンツを細かいメッシュで設定する場合、管理すべき鍵情報は膨大になり、また、鍵配信コストも膨大となる。
【００１７】
この特許文献１に記載の鍵管理方式によると、ユーザごとに見せる範囲を異なるように配信制御を行う目的で異なる鍵で単位コンテンツを暗号化しているのではない点に注意する。つまり、ある正規の鍵を持つか、持たないかが、全コンテンツを享受するか、しないかに依存し、異なる複数の鍵を用いることで、部分的なアクセス制御を行っているわけではない。
【非特許文献１】「デジタルコンテンツ保護用管理方式」暗号と情報セキュリティシンポジウムSCIS2001, pp.213-218
【非特許文献２】C. H. Lin. “Dynamic key management schemes for access control in a hierarchy” Computer Communications, 20:1381-1385, 1997
【非特許文献３】J.-C. Birget, X. Zou, G. Noubir, B. Ramamurthy, “Hierarchy-Based Access Control in Distributed Environments”in the Proceedings of IEEE ICC, June 2001
【特許文献１】特開２００２−１５６９０５公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上記のように、時系列コンテンツの作成者は、同じ鍵で暗号化するコンテンツの最小単位を定め、その単位で区切られた単位コンテンツごとに鍵を生成してそれぞれの鍵で暗号化することにより、より細かい単位での配信制御を行うことができる。しかし単位コンテンツを細かいメッシュで設定する場合、管理すべき鍵情報は膨大になり、また、鍵配信コストも膨大となる。
【００１９】
本発明は上述の問題点に鑑み、コンテンツ情報を幾つかの部分コンテンツに分けて、各々を異なる鍵情報に従って暗号化する場合であっても、鍵情報の管理を容易にする技術を提供しようとするものである。
【課題を解決するための手段】
【００２０】
この課題を解決するため、例えば本発明の情報暗号化装置は以下の構成を備える。すなわち、
所定軸に沿って並んだ部分コンテンツで構成されるコンテンツ情報を暗号化する情報暗号化装置であって、
前記コンテンツ情報のルート鍵情報を生成するルート鍵生成手段と、
第i層のi個の鍵を、上位の第i-1層のi-1個の鍵に基づき生成し、末端位置に前記部分コンテンツの数分の鍵情報を生成する生成する階層鍵生成手段と、
ここで、当該階層鍵生成手段は、第ｉ層のｊ番目のノード鍵をＰ(i,j)(j=1,2,…,i）と表現した場合、両端のノード鍵Ｐ(i,1)及びＰ(i,i)については、上位の第i-1層のノード鍵Ｐ(i-1,1),Ｐ(i-1,i-1)から一方向関数に従って生成し、ノード鍵Ｐ(i,m)(m=2,3,…,i-1）については、上位の第i-1層中のノード鍵Ｐ(i-1,m-1),Ｐ(i-1,m）のいずれからも生成可能な一方向関数で生成する；
前記階層鍵生成手段で生成された末端層の鍵情報を用いて、各部分コンテンツを暗号化する暗号化手段と、
該暗号化手段で暗号化した部分コンテンツで構成される暗号化済みのコンテンツ情報と、前記ルート鍵情報、並びに、各部分コンテンツの区切り位置を特定する情報を記憶する記憶手段とを備える。
【発明の効果】
【００２１】
本発明によれば、コンテンツ情報は、連続する複数の部分コンテンツで構成されるものとし、各部分コンテンツの暗号化を別々な鍵で暗号化したとしても、１つの鍵情報のみを記憶しておけば良くなり、鍵の管理が容易になる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００２３】
＜第１の実施形態＞
図１は本発明に係る実施形態の情報処理装置のブロック構成図である。なお、本発明の実現にあたって、図１に示される全ての機能を使用することは必須ではない。
【００２４】
情報処理装置１００は、図１に示すように、公衆回線等のモデム１１８、表示部としてのモニタ１０２、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、ＨＤ（ハードディスク）１０６、ネットワークのネットワーク接続部１０７、ＣＤドライブ１０８、ＦＤ（フレキシブルディスク）ドライブ１０９、ＤＶＤ（デジタル・ビデオ・ディスク、またはDigital Versatile Disk）ドライブ１１０、プリンタ１１５のインターフェース（Ｉ／Ｆ）１１７、及び操作部としてのマウス（登録商標）等のポインティングデバイス１１２やキーボード１１３等のインターフェース（Ｉ／Ｆ）１１１が、バス１１６を介して互いに通信可能に接続されて構成されている。
【００２５】
ポインティングデバイス１１２及びキーボード１１３は、情報処理装置１００に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報（操作情報）は、インターフェース１１１を介して、情報処理装置１００内に取り込まれる。
【００２６】
情報処理装置１００での各種情報（文字情報や画像情報等）は、プリンタ１１５により印刷出力できるようになされている。
【００２７】
モニタ１０２は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
【００２８】
ＣＰＵ１０３は、情報処理装置１００全体の動作制御を司るものであり、ＨＤ（ハードディスク）１０６等から処理プログラム（ＯＳ及び各種アプリケーションプログラム）を読み出して実行することで、情報処理装置１００全体を制御する。特に、本実施の形態では、ＣＰＵ１０３は、ＨＤＤ１０６等から、鍵生成を実現する処理プログラム（実施形態におけるソフトウェアに相当する）を読み出して実行することで、後述する情報処理を行う。なお、ＨＤＤ１０６には、鍵生成のための処理プログラムや、プログラム内で用いられる各種データ（鍵生成用グラフなど）等が記憶されている。
【００２９】
ＲＯＭ１０４には、ＢＩＯＳ及びブートプログラムが格納されている。ＲＡＭ１０５は、ＣＰＵ１０３での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
【００３０】
ＨＤ１０６は、大容量記憶装置の一例としての構成要素であり、ＯＳ、各種アプリケーションプログラムファイル（実施形態における処理プログラムも含まれる）、データファイル、あるいは各種処理の実行時にＲＡＭ１０５等へ転送される情報変換処理等のための処理プログラム等を保存する。
【００３１】
ＣＤ（ＣＤドライブ）１０８は、外部記憶媒体の一例としてのＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み、また、当該ＣＤへデータを書き出す機能を有する。
【００３２】
ＦＤ（フロッピー（登録商標）（Ｒ）ディスクドライブ）１０９は、ＣＤ１０８と同様に、外部記憶媒体の一例としてのＦＤ１０９に記憶されたデータを読み出す。また、種々のデータを上記ＦＤ１０９へ書き込む機能を有している。
【００３３】
ＤＶＤ（デジタル・ビデオ・ディスク）１１０は、ＣＤ１０８やＦＤ１０９と同様に、外部記憶媒体の一例としてのＤＶＤ１１０に記憶されたデータを読み出し、また、上記ＤＶＤ１１０へデータを書き込む機能を有している。
【００３４】
なお、ＣＤ１０８、ＦＤ１０９、ＤＶＤ１１０等の外部記憶媒体に対して、例えば、編集用のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラムをＨＤ１０６へインストールしておき、必要に応じて、ＲＡＭ１０５へ転送するように構成してもよい。
【００３５】
インターフェース（Ｉ／Ｆ）１１１は、ポインティングデバイス１１２或いはキーボード１１３によるユーザからの入力を受け付けるためのものである。
【００３６】
モデム１１８は、通信モデムであり、インターフェース（Ｉ／Ｆ）１１９を介して、例えば、公衆回線等を通じて外部のネットワークに接続される。
【００３７】
ネットワーク接続部１０７は、インターフェース（Ｉ／Ｆ）１１４を介して、外部のネットワークに接続される。
【００３８】
上述した装置構成における鍵の生成・管理について以下に説明する。
【００３９】
[ハッシュ鍵管理方式]
従来技術である階層的鍵管理方式のうち（１）「User multiple keying」においては、各ノードが多くの鍵を持ち合わせていなければならず、階層が深くなるにつれて、つまり全体ノード数に比例して保持すべき鍵データが増加する問題が存在する。
【００４０】
また、（２）「One-way function based keying schemes」においては、一方向性ハッシュ関数を用いることで各ノードが保持する鍵データ量を減らしている。しかし、ｒ１２、ｒ１３などの公開ランダムデータを別途保持する必要があり、（１）と同様に階層が深くなるにつれて保持すべきデータが増加するという問題が存在する。さらに（２）においては一方向性ハッシュ関数にべき乗演算が用いられている。落とし戸付きハッシュ関数による構成も考えられるが、いずれにせよ、べき乗演算が必要な演算が含まれており、計算量が膨大である。特にＰＤＡなどの演算リソースの少ないデバイスにおいては鍵計算に多くの時間を費やすこととなり、結果としてデータ復号時にインタラクティブな処理ができなくなる可能性がある。これらの問題に対し、より計算量の少ない方式で、同様のアクセス構造を持つ鍵管理方式が必要とされている。
【００４１】
[鍵生成概要]
ハッシュ鍵管理方式における各ノードのノード鍵の生成は以下のとおりである。鍵管理の対象となるアクセス構造は、図３で記載されているように階層関係がループおよびサイクルを持たない有向グラフで表現されているとする。 
[ノードの分割]
鍵生成用データの生成するために、与えられた鍵配布グラフＧにおいて、次の条件を満たすようにノードの分割を行う。ここで、ノード全体の集合をＮｏｄｅ（Ｇ）、部分集合の組の大きさをＮ、分割された部分集合をＳｕｂＧ＿１, ＳｕｂＧ＿２, …, ＳｕｂＧ＿Ｎという表記方法を使うこととする。
・SubG_1∪ SubG_2∪…∪ SubG_N = Node(G)、
つまり部分集合全体は全ノードを網羅する。
・SubG_ｉに含まれる任意の２つの異なるノードｎ＿ａ，ｎ＿ｂは、ｎ＿ａ ＜ ｎ＿ｂ  又は  ｎ＿ａ ＞ ｎ＿ｂが成立する。つまりｎ＿ａ，ｎ＿ｂには子孫関係が存在し、一方が必ずもう一方の子孫ノードである。
【００４２】
この分割された部分集合の数Ｎを鍵配布グラフＧの鍵配布オーダーと呼び、Ｏｒｄ（Ｇ）と表記する。
【００４３】
[ノード鍵の割り当て]
部分集合ＳｕｂＧ＿ｉ（１≦ｉ≦Ｎ）に対して１つずつ初期鍵Ｋ＿ｉを計算し、ルートノードのノード鍵として割り当てる。ルートノードの配下にある子孫ノードは次のような法則でノード鍵が割り当てられる。
ｉ）各ノードはＮ個の初期鍵Ｋ_ｉ（１≦ｉ≦N）に関連付けられた番号が振られる。この番号は初期鍵Ｋ_ｉに対し一方向性関数を実行する回数であり、“なし”を意味する“Ｎ”が振られることもある。初期鍵Ｋ_ｉの当該番号が“Ｎ”のときは、初期鍵Ｋ_ｉに関連した鍵を保有しないことを意味する。
ii）ＳｕｂＧ＿ｉに含まれるノードをそれぞれの集合内で有向グラフ上での子孫関係に従って降順にソートし、０から１つずつ増加させた番号を割り付けする。この番号は初期鍵Ｋ_ｉに関連付けられた番号である。
iii）ＳｕｂＧ＿ｉに含まれるノードの初期鍵Ｋ＿ｊ（ｉ≠ｊ）に関連付けられた番号は、（初期鍵Ｋ_ｊに対する部分集合である）ＳｕｂＧ＿ｊに含まれるノードの祖先ノードではない場合には当該番号を“Ｎ”とし、祖先ノードであるノードの当該番号は子孫ノードとしてＳｕｂＧ＿ｊに含まれるノードのうち割り当てされた番号の最小値とする。
【００４４】
図２は上記のノード鍵割り当て処理をフローチャートにしたものである。ここでは、すでに全ノード集合は互いに素であり、空ではない部分集合｛ＳｕｂＧ＿ｉ｝（１≦ｉ≦N）に分割されており、それぞれの部分集合に対する初期鍵Ｋ＿ｉが計算されているものとする。
【００４５】
また、部分集合ＳｕｂＧ＿ｉに含まれるノード数を＃Ｎ（ｉ）と記述し、部分集合ＳｕｂＧ＿ｉに含まれるノードは、有向グラフ上での子孫関係に従って降順にソートされ、
ＳｕｂＧ＿ｉ＝｛ｎ（ｉ、１），ｎ（ｉ、２），…，ｎ（ｉ、＃Ｎ（ｉ））｝
と記述することとする。さらにノードｎ（ｉ、ｊ）に対するノード鍵は初期鍵Ｋ_ｋ（１≦ｋ≦N）に一方向性ハッシュ関数を規定回数施したものであるが、この規定回数をｈ（ｉ、ｊ、ｋ）と表記する。
【００４６】
ステップＳ２０１は１からＮまで変動する変数ｉのループ、ステップＳ２０２は１からＮまで変動する変数ｊのループ、ステップＳ２０３は１から＃Ｎ（ｉ）まで変動する変数ｋのループである。
【００４７】
ステップＳ２０４は変数ｉと変数ｋが一致するかどうか評価し、一致する場合には処理をステップＳ２０５に進め、一致しない場合には処理をステップＳ２０６に進める。ステップＳ２０５はｈ（ｉ、ｊ、ｋ）にｊ−１を代入し、ループ処理に戻る。
【００４８】
ステップＳ２０６はｎ（ｋ、ｍ）＜ｎ（ｉ、ｊ）、つまりｎ（ｉ、ｊ）はｎ（ｋ、ｍ）の祖先ノードであることを満たすｍが存在するか評価し、存在しない場合には処理をステップＳ２０７に進め、存在する場合には処理をステップＳ２０８に進める。ステップＳ２０７はｈ（ｉ、ｊ、ｋ）に“Ｎ”を代入し、ループ処理に戻る。
【００４９】
また、ステップＳ２０８はｈ（ｉ、ｊ、ｋ）にｍｉｎ｛ｈ（ｋ、ｍ、ｋ）|ｎ（ｋ、ｍ）＜ｎ（ｉ、ｊ）｝、つまりｎ（ｉ、ｊ）がｎ（ｋ、ｍ）の祖先ノードであるノードのうちｈ（ｋ、ｍ、ｋ）の最小値を代入し、ループ処理に戻る。
【００５０】
この鍵生成方式は次の２つの要件を満たすように構成されている。
ａ）生成可能性：対象ノードはその孫ノードの鍵を生成できる。
ｂ）結託攻撃回避性：（一方向性関数が脆弱にならない限り）任意の二つ以上のノードに位置するエンティティが結託しても、夫々のノードより上位に位置する祖先ノードの鍵は生成できない。
【００５１】
これらの条件により、安全に鍵生成と鍵配布を行うことができる階層的鍵管理方式が実現できる。例としては図３の有向グラフに対して図４のようなノード鍵が構成される。図４における各ノードのベクトルは、４つの初期鍵ｘ、ｙ、ｚ, tに対して施すハッシュ関数の回数が表現されている。例えば［２，２，Ｎ，Ｎ］と記されているセルでは、ノード鍵としてＨ(Ｈ（ｘ）)とＨ（Ｈ（ｙ））を保持するとする。“Ｎ”は“なし”を意味し、初期鍵ｚおよびｔに関する情報は全く持たないことを意味とする。今後ハッシュ演算をｎ度施す場合にはＨ＾ｎ（）と略記して表現するものとする。この表記法に基づけば、［２，２，Ｎ，Ｎ］と記されているセルはＨ＾２（ｘ）とＨ＾２（ｙ）の２つのノード鍵を持つこととなる。
【００５２】
[鍵配布]
ルート鍵配布者（ルートノードのエンティティ）による各ノードへの鍵配布方法と、ルート鍵配布者以外の個別鍵を保持するエンティティによる下位ノードへの鍵配布方法とについて、それぞれ説明する。
【００５３】
まずルート鍵配布者は、鍵配布グラフＧに応じて決まる鍵配布オーダーＯｒｄ（Ｇ）個のパラメータ｛ｘ＿ｉ｝（１≦ｉ≦Ｏｒｄ（Ｇ））をランダムに且つ安全に生成し、それらを自身の個別鍵とする。さらに前述した鍵生成手順により各ノードに複数の鍵を配置する。ルート鍵配布者は各ノードに位置するエンティティに対して、各ノードの鍵を安全に配布する。また、鍵配布グラフを公開し、各エンティティに対して、配布された鍵がグラフのどの位置の鍵であるかを識別できるデータを配布する。
【００５４】
さらに効率的なハッシュ鍵配布方法の亜種として枝切り方式がある。
【００５５】
[枝切り方式概要]
有向グラフＧに対しノード分割｛ＳｕｂＧ＿ｉ｝（１≦ｉ≦ｍ）を与えたとき、鍵生成を表すノード鍵割り当て表Ｍ（Ｇ）を算出するアルゴリズムは前述のとおり従来技術であるハッシュ鍵生成方式を用いる。この算出アルゴリズムをΓ：Ｇ→ Ｍ（Ｇ）と表記することとする。Ｍ（Ｇ）は各ノードに対するノード鍵情報が記載されており、ノード分割｛ＳｕｂＧ＿ｉ｝（１≦ｉ≦ｍ）の大きさであるｍ個のベクトルでそれぞれのノード鍵が表現されている。表現形式は前述のとおり、初期鍵に対し何度ハッシュ関数を施した値であるかが書かれている。
【００５６】
ここで、与えられた有向グラフＧを分割し、分割されたサブグラフＧ＿ｉごとにΓに施しΓ（Ｇ＿ｉ）＝Ｍ（Ｇ＿ｉ）を得る。分割の際には次の条件を満たすように分割する。
１）それぞれのサブグラフのルートノードは1つである。
２）あるサブグラフのルートノードが元のグラフＧのルートではないとき、異なる別のサブグラフのノードである。
【００５７】
上記の処理をフローチャートにすると図５のとおりである。ステップＳ５０１でアクセス構造が表現された有向グラフＧを入力する。ステップＳ５０２でグラフ分割を行い、｛Ｇ＿ｉ｝（１≦ｉ≦ｍ）を得る。ステップＳ５０３で得られた各サブグラフＧ＿ｉに対してアルゴリズムΓを施し、それぞれのノード鍵割り当て表Ｍ（Ｇ＿ｉ）を計算する。最後にステップＳ５０４でＭ（Ｇ＿ｉ）をマージしてＭ（Ｇ）を得る。Ｍ（Ｇ）は従来のノード鍵割り当て表と同様に表現できるが、サブグラフごとにベクトルの大きさが異なることと、上下をつなぐノードを認識するラベルが必要であることが相違点である。
【００５８】
本方式を図３記載の有向グラフに適用させた場合、図６が得られる。図４に比べ初期鍵をひとつ削減しており、計算コスト、通信コストともに下げていることがわかる。図６に記載のＫ１、Ｋ２は初期鍵から派生する鍵そのものが与えられるのではなく、それぞれ［２，２，２］のノード、［Ｎ，Ｎ，０］のノードが持つ鍵情報からのみ生成される。たとえばＫ１はＨ(Ｈ＾２（ｘ）|| Ｈ＾２（ｙ）||Ｈ＾２（ｚ）) などとすればよい。Ｋ２の生成に関しては、初期鍵ｘに対してのみハッシュ関数を施すだけでは他ノードの攻撃によりＫ２生成が可能であるため、全ノードが共通に持つ補正値Ｒをハッシュ対象データに持つことで回避する。たとえばＫ２= Ｈ(ｚ||Ｒ)などとすればよい。ここで記号「||」はデータの連結を意味する。
【００５９】
[系列コンテンツにおける鍵派生方式]
前述した図７は時系列コンテンツが、単位ごとに暗号化される場合を表す模式図であり、ここでは管理対象コンテンツがＭ１、Ｍ２、Ｍ３、Ｍ４の４つに分割されている例を示している。このときそれぞれの単位コンテンツごとにコンテンツ鍵ｋ１、ｋ２、ｋ３、ｋ４を利用して管理対象コンテンツが暗号化されている。
【００６０】
このとき隣り合う複数の単位コンテンツのみを復号できるレンジ鍵ｋ(ｉ、ｊ)（ただしｉ≦ｊとする）を考察する。
【００６１】
レンジ鍵ｋ(ｉ、ｊ)は単位コンテンツＭｉからＭｊに対するコンテンツ鍵ｋｉからｋｊを生成可能とする鍵である。図８は、図７におけるすべてのレンジ鍵を階層的に表現した図である。最も下位に位置する円で記載されるノードはコンテンツ鍵である。コンテンツ鍵Ｋｉはレンジ鍵Ｋ(ｉ、ｉ)と同一視することが可能である。三角で示される各ノードはレンジ鍵であり、ノードの位置として下位に存在するレンジ鍵およびコンテンツ鍵を生成することができる鍵である。ルートに位置するレンジ鍵はＫ（１、４）であり、４つの単位コンテンツのすべてを復号することが可能なレンジ鍵である。
【００６２】
このようにｎ個の管理対象コンテンツＭ１からＭｎに対して、それぞれにコンテンツ鍵ｋ１からｋｎを割り当てるとき、すべてのレンジ(Ｍｉ、Ｍｊ)（ただしｉ＜ｊとする）に対するレンジ鍵K（ｉ、ｊ）を階層的に有向グラフとして配置することができる。このように有向グラフを生成し、従来例であるハッシュ鍵管理方式に適用することで各ノードに鍵を割り当てることができる。図８に対しては、図４または図６に記載の鍵を割り当てることができる。このように、各レンジ鍵を有向グラフのノードとして取り扱うことでハッシュ鍵管理方式を利用して鍵生成を行うことができる。
【００６３】
＜コンテンツの配布＞
以上レンジ鍵の割り当てについて説明を行った。次に、コンテンツの再配布について説明する。
【００６４】
図１３は本実施形態における配信システムである。第１次配信者１３０１は第１次受信者１３０２に対し、上記のように構成した暗号化コンテンツ１３０３とそれを解くためのレンジ鍵１３０４を配信する。ここでレンジ鍵１３０４は第１次配信者１３０１からではなく、ライセンスサーバのような第３者機関から別途配布されてもよい。このとき第１次受信者１３０２はレンジ鍵１３０４を用いて暗号化コンテンツ１３０３の一部を復号することができる。ここで、第１次受信者１３０２はコンテンツを再配布することができる。つまり第１次受信者１３０２は第２次配信者として第２次受信者としての役割を持ち、第２次受信者１３０５に同じ暗号化コンテンツ１３０６を配信する。このときレンジ鍵１３０４の下位に位置する別のレンジ鍵１３０７を算出して送信することができる。
【００６５】
具体的には、レンジ鍵１３０４を図８におけるＫ（１、３）としたとき、その下位にある図８におけるＫ（１、２）とする例が挙げられる。第１次受信者１３０２はレンジ鍵１３０４であるＫ（１、３）を受領していることからコンテンツＭ１、Ｍ２、Ｍ３を得られる。このうち、Ｍ１とＭ２だけに制限して復号できるようにレンジ鍵１３０７を構成して、すなわちＫ（１、２）を算出して、第２次受信者１３０３に再配布している。このように再配布時に、自ら権限委譲された箇所よりも開示範囲を狭めてコンテンツを再配布することができる。これはコンテンツ受信者がコンテンツ配布者としての役割も持つことができることを意味しており、さらにコンテンツ受信者が自由に自分の裁量で鍵を再構成することができる機能を持ち合わせている。
【００６６】
上記をより具体的に適用した例を以下に説明する。ここでは、第１次配信者１３０１が、図１に示す装置上で、ＨＤドライブ１０６に配布しようとするコンテンツ、例えば動画像データファイルが格納されているものとする。
【００６７】
図２３は、実施形態における暗号化処理用のアプリケーションプログラム（ＨＤドライブ１０６に格納されている）の処理手順を示している。
【００６８】
先ず、ステップＳ２３０１にて、暗号化しようとするファイルを指定する。指定方法は該当する動画像ファイルのパスつきファイル名をキーボードより入力する、或いは、ファイル指定のためのダイアログウインドウを表示し、ドライブ、ディレクトリとたどって目的とするファイルを指定する等で良い。
【００６９】
次いで、ステップＳ２３０２にて、指定したコンテンツの分割位置、すなわち、暗号化単位を入力する。分割位置の入力方法としては、動画像の区切り位置を時間で指定する方法、或いは、チャプターが設定されていればそれに従っても構わない。場合によっては、同じ時間長の単位で分割するため、等分割数を入力しても構わない。いずれにしても、暗号化対象の動画像ファイル（コンテンツ）の分割位置を指定することで、幾つの暗号化単位が設定されたか判明するので、その数をＬとして設定する。なお、各分割位置間のデータを部分コンテンツと呼ぶことにする。
【００７０】
次いで、ステップＳ２３０３に進んで、分割数Ｌに基づく数の鍵パラメータをキーボードより入力、或いは予め鍵パラメータファイルとして格納しておき、それに基づき、ルート鍵を生成する。この後、ステップＳ２３０４に進んで、先に説明した手順に従って、Ｌ個の末端ノードの鍵（コンテンツ鍵）Ｋ１、Ｋ２、…ＫＬを生成する。
【００７１】
ステップＳ２３０５では、初期変数ｉに１を代入する。この変数ｉは暗号化しようとする部分コンテンツを特定すると共に、使用する鍵を特定するためのものである。
【００７２】
ステップＳ２３０６では、ｉ番目の部分コンテンツについて、鍵Ｋiを用いて暗号化する。そして、ステップＳ２３０７にて、ｉ＜Ｌの関係を満たしている、すなわち、未暗号化の部分コンテンツがあると判定した場合には、ステップＳ２３０８にて変数ｉを“１”だけ増加させ、ステップＳ２３０６の処理を行う。
【００７３】
こうして、全部分コンテンツについての暗号化が完了したと判定した場合、処理はステップＳ２３０９に進み、暗号化後のコンテンツ（ここでは暗号化動画像ファイル）、ルート鍵、並びに、暗号化コンテンツの分割位置（分割個数でもある）を示す分割情報をＨＤＤ１０６に格納する。
【００７４】
次に、暗号化コンテンツの配信処理について説明する。なお、先に説明したが、暗号化コンテンツの配信は、それ専用のサーバで行うことが望ましいが、ここでは、第１次配信者の装置が配信装置Ｗｅｂサーバ、ＦＴＰサーバとしても機能するものとして説明する。図２４のフローチャートは、サーバプログラムの一部に組み込まれる処理手順を示している。
【００７５】
先ず、ステップＳ２４０１により、ネットワークを介してコンテンツの要求があったか否かを判定する。コンテンツの要求があった場合には、ステップＳ２４０２に進み、認証処理を行う。そして、ステップＳ２４０３にて、認証結果に基づき、対象コンテンツのどの範囲（連続する部分コンテンツの開始位置と終了位置）の復号を許可するかを決定する。
【００７６】
次いで、ステップＳ２４０４に進んで、復号範囲に対応するノードの全てが子ノードとなるノードのうち最下位に位置するノードの鍵情報を、サーバが保持するコンテンツ全体のルート鍵に基づいて生成する。例えば、図８において、２番目、３番目の部分コンテンツの復号を許可する場合には、鍵Ｋ２、Ｋ３が生成できれば良いから、それらを子ノードとして持つノードのうち最下位に位置する鍵鍵Ｋ（２，３）を生成することを意味する。
【００７７】
次いで、ステップＳ２４０５に進んで、復号関連情報を生成する。復号関連情報は、例えば図２５に示すようなもので良い。すなわち、ステップＳ２４０４で生成した親鍵情報と、その親鍵情報から幾つの子鍵情報を生成するかを示す子鍵数、そして、コンテンツ分割情報（図２３で既に説明した）、そして、復号範囲を示す情報である。
【００７８】
そして、ステップＳ２４０６にて、生成した復号関連情報並びに暗号化済みのコンテンツ情報を要求元の第１次受信者の端末に向けて送信する。
【００７９】
暗号化済みのコンテンツ情報については、別途送信しても良いし、インターネットを介して独立して配信されても構わないので、ステップＳ２４０６では、復号関連情報のみを送信するようにしても良い。
【００８０】
以上の結果、第１次受信者（の端末）は、復号関連情報から、受信した親鍵情報から何回、子鍵を生成すれば良いかは勿論、生成した子鍵が暗号化されたコンテンツのどの部分コンテンツに対する鍵であるかが特定できることになり、その対象となる部分コンテンツについて復号し、再生することが可能になる。
【００８１】
なお、上記例では、暗号化対象のコンテンツとして動画像を例にしたが、音響データでも構わないし、文書ファイルでも構わない。文書ファイルの場合には、その文書を構成するページを部分コンテンツと見なして処理すればよい。ただし、この場合には文書ファイルのファイル構造が公開されているものになるであろう。このような文書ファイルの代表的なものとしては、ＰＤＦファイルが挙げられよう。
【００８２】
以上説明したように本実施形態によれば、配信対象のコンテンツを構成するデータ列を所望とする位置で区切り、その区切り位置で挟まれる各部分コンテンツを、ルート鍵から派生する鍵で暗号化することで、配信側が管理する鍵は１つで良くなり、管理が容易になると共に、所望とする連続する部分コンテンツ範囲についてのみ復号するための鍵情報を生成することも可能になる。また、暗号化コンテンツを受信する側でも、１つの鍵情報を管理すれば良いことになる。
【００８３】
＜第２の実施形態＞
上記の実施形態ではレンジ鍵を任意の範囲で構成可能な場合を取り上げた。本実施形態では、レンジ鍵に制限を設けることで鍵管理コストを下げる方法について説明する。
【００８４】
図８は図７におけるすべてのレンジ鍵を階層的に表現しているが、配信者の意図により、すべてのレンジ鍵を必要としない場合が考えられる。図９はその例であり、Ｋ（１、４）、Ｋ（１、３）およびＫ（３、４）のみをレンジ鍵として扱う場合であり、それ以外のＫ（２、４）、Ｋ（１、２）およびＫ（２、３）というレンジ鍵で鍵配布することがないことが事前にわかっている場合を意味している。図９をハッシュ鍵生成方式に適用させた場合、図６では初期鍵が３であったが、図９で表される有向グラフは、枝切り可能なノードを除くと鍵配布オーダーが２であることから、初期鍵は２で済むことがわかる。このようにレンジ鍵を制限することで有向グラフのノードを削除することで、鍵データ量と鍵生成計算量を削減することができる。
【００８５】
このように管理対象コンテンツのレンジをあらかじめ特定することで、コンテンツを分割のメッシュを通常の単位と異なるように構成することでコンテンツ鍵の総数を削減し、鍵管理コストを削減することができる。
【００８６】
＜第３の実施形態＞
第２の実施形態においては、コンテンツの最小単位ごとにコンテンツ鍵を対応付ける方式を説明したが、本実施形態では、レンジ鍵を制限したあとで、コンテンツ分割を行うことで鍵管理コストを削減する方式を説明する。
【００８７】
図９で示したレンジ鍵に制限した場合、図１０は、図９に呼応するコンテンツにおける復号対象範囲を表現している。管理対象コンテンツ１０００はＭ１からＭ４で構成され、レンジ鍵１００１から１００３はそれぞれレンジ（Ｍ１、Ｍ４）、（Ｍ１、Ｍ３）および（Ｍ３、Ｍ４）に対応している。このとき、それぞれのレンジを構成する最小コンテンツ単位を考えると、図１１のように、Ｍ１からＭ４で構成される管理対象コンテンツ１１００は、１１０１のように3つの構成で十分であることがわかる。つまりＭ１とＭ２を集約して単位コンテンツＭ１’とし、コンテンツ鍵の総数を４から３に削減することができる。このときのレンジ鍵の階層構成を表したものが図１２である。
【００８８】
＜第４の実施形態＞
第２の実施形態においては、コンテンツの最小単位ごとにコンテンツ鍵を対応付ける方式を説明し、図８で表される有向グラフから図９で表される有向グラフを生成した。図９では２つのレンジ鍵Ｋ（１、３）とＫ（３、４）が共有するコンテンツ鍵は１つ（ｋ３）であった。
【００８９】
一方、図２０のようにコンテンツ鍵が５つの場合を考える。このとき、配信者の意図により、図２１のように、Ｋ（１、５）、Ｋ（１、４）およびＫ（２、５）のみをレンジ鍵として扱う場合を考える。このとき、Ｋ（１、４）およびＫ（２、５）が共有するコンテンツ鍵はｋ２、ｋ３、ｋ４の３つ存在する。図２１記載の有向グラフは枝切り可能なノードを除くと鍵配布オーダーが３であることから、初期鍵は３となる。レンジ鍵は２つであるにも関わらず、２つのレンジ鍵が共有するコンテンツ鍵が３つとなってしまうため効率が悪いと考えることができる。そこで、レンジ鍵が共有するコンテンツ鍵をまとめるレンジ鍵を配布可能性のあるレンジ鍵として扱うことで初期鍵数を削減する方式を説明する。
【００９０】
図２２はＫ（２、４）も追記した有向グラフである。この有向グラフにおいて枝切り可能なノードを除くと鍵配布オーダーが２であることから、初期鍵は２となる。このようにコンテンツ鍵の総数を削減し、鍵管理コストを削減することができる。
【００９１】
以上、第２乃至第４の実施形態を説明した。第２乃至第４の実施形態の装置の構成及び処理手順は、第１の実施形態とほぼ同様である。また、第１の実施形態で説明したように、本発明の対象となるコンテンツは、動画像などの時系列コンテンツのみを対象とするものではなく通常のドキュメントにおけるページ番号、通し節番号など、１次元の管理軸を持ったコンテンツであれば適用可能であるのは明らかである。そのため、何からの評価軸に基づいてコンテンツを複数のサブコンテンツに分解して順序付けることができるコンテンツは本発明の範疇に含まれる。
【００９２】
なお、実施形態で説明した鍵情報は、暗号化及び復号の両方で使用する鍵として説明したが、秘密鍵、公開鍵の如く、暗号化と復号で別々な鍵を用いるようにしても構わない。
【００９３】
また、本発明は上記実施の形態を実現するための装置及び方法及び実施の形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上記システムまたは装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に、上記実施の形態を実現するためのソフトウェアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
【００９４】
また、コンピュータプログラムは、通常、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体をコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になるわけであるから、当然、このようなコンピュータ可読記憶媒体も本発明の範疇に含まれる。
【図面の簡単な説明】
【００９５】
【図１】実施形態に係る処理装置の構成を示すブロック図である。
【図２】ハッシュ鍵生成方式に係るノード鍵生成手順を表すフローチャートである。
【図３】アクセス構造が表現された有向グラフの例を説明する図である。
【図４】図３に対するノード鍵割り当て表の例を示す図である。
【図５】枝切り方式に係るノード鍵生成手順を表すフローチャートである。
【図６】図３に対するノード鍵割り当て表の例を示す図である。
【図７】実施形態に係る、時系列コンテンツが単位ごとに暗号化される場合を表す模式図である。
【図８】実施形態に係る、図７におけるすべてのレンジ鍵を階層的に表現した図である。
【図９】第２の実施形態に係る、図７における一部のレンジ鍵を階層的に表現した図である。
【図１０】第２の実施形態に係る、図９において制限したレンジ鍵のコンテンツにおける復号対象範囲を表現した図である。
【図１１】第３の実施形態に係る、図１０において制限したレンジ鍵のコンテンツにおける復号対象範囲を表現した図である。
【図１２】第３の実施形態に係る、図７における一部のレンジ鍵を階層的に表現した図である。
【図１３】実施形態に係る、コンテンツ配信システムを表現した図である。
【図１４】木構造管理方式における２分木アクセス構造を説明する概念図である。
【図１５】階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
【図１６】階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
【図１７】階層的なアクセス制御方式における局所的構造を説明する概念図である。
【図１８】User multiple keyingの例を説明する図である。
【図１９】One-way function based keying schemesを説明する図である。
【図２０】第４の実施形態に係る、５つのコンテンツ鍵に対するすべてのレンジ鍵を階層的に表現した図である。
【図２１】第４の実施形態に係る、図２０における一部のレンジ鍵を階層的に表現した図である。
【図２２】第４の実施形態に係る、図２０における一部のレンジ鍵を階層的に表現した図である。
【図２３】実施形態における暗号化処理手順を示すフローチャートである。
【図２４】実施形態における暗号化コンテンツの復号情報の配信処理手順を示すフローチャートである。
【図２５】復号情報のデータ構造を示す図である。
【図１】
2006074392.tif 000003
【図２】
2006074392.tif 000004
【図３】
2006074392.tif 000005
【図４】
2006074392.tif 000006
【図５】
2006074392.tif 000007
【図６】
2006074392.tif 000008
【図７】
2006074392.tif 000009
【図８】
2006074392.tif 000010
【図９】
2006074392.tif 000011
【図１０】
2006074392.tif 000012
【図１１】
2006074392.tif 000013
【図１２】
2006074392.tif 000014
【図１３】
2006074392.tif 000015
【図１４】
2006074392.tif 000016
【図１５】
2006074392.tif 000017
【図１６】
2006074392.tif 000018
【図１７】
2006074392.tif 000019
【図１８】
2006074392.tif 000020
【図１９】
2006074392.tif 000021
【図２０】
2006074392.tif 000022
【図２１】
2006074392.tif 000023
【図２２】
2006074392.tif 000024
【図２３】
2006074392.tif 000025
【図２４】
2006074392.tif 000026
【図２５】
2006074392.tif 000027