(57)【特許請求の範囲】
【請求項１】
複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置であって、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、
リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付手段と、
関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付手段と、
最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御手段と、
前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、
前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当手段と、
関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当手段と
を備えることを特徴とする管理装置。
【請求項２】
前記第１関連付手段は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、
前記第２関連付手段は、前記関連付先の部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、
前記第１制御手段は、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成する
ことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記第１関連付手段は、前記最下位レイヤに対する各上位レイヤの各部分集合のうち、関連付けがなされた１以上の部分集合を除外し、残りの１以上の部分集合を用いて、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成する
ことを特徴とする請求項２に記載の管理装置。
【請求項４】
前記第２割当手段は、
前記派生的に求められる固有情報を、前記関連付元の部分集合に対応付けされた固有情報から一方向性関数を用いて生成し、生成した固有情報を、関連付けにより繋がった部分集合に対応付ける
ことを特徴とする請求項３に記載の管理装置。
【請求項５】
前記管理装置は、さらに、
前記部分集合木のルートから１以上のリーフそれぞれに至る各経路において、固有情報を配布する配布対象の端末装置の識別子が、要素として初めて出現する部分集合が存在する場合に、前部分集合に対応付けられた固有情報を１以上取得する固有情報取得手段と、
取得した固有情報と、固有情報に対応する部分集合を識別する集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布する配布手段と
を備えることを特徴とする請求項４に記載の管理装置。
【請求項６】
前記固有情報取得手段は、
部分集合木のルートからリーフに至る各経路から、前記配布対象の端末装置の識別子が、要素として初めて出現する部分集合を検索し、前記部分集合を検出すると、前記検出した部分集合が未取得である場合に、前記検出した部分集合を取得する第１取得部と、
第１取得部にて取得した前記部分集合に対応付けられた前記固有情報を取得する第２取得部と、
前記各経路に対して行われるまで、前記第１及び第２取得部が繰り返し処理するよう制御する繰返制御部と
を備えることを特徴とする請求項５に記載の管理装置。
【請求項７】
前記管理装置は、さらに、
前記部分集合木の構成要素である各部分集合と、前記各部分集合のそれぞれに対応付けられた前記固有情報とを記憶する領域を有する第１記憶手段と、
前記部分集合木を構成する複数のノードと、各ノードの子ノードとを記憶する領域を有する第２記憶手段と、
前記部分集合と、前記部分集合に対応付けられた固有情報とを対応付けて、前記第１記憶手段に書き込む第１書込手段と、
前記部分集合木を構成する前記ノードと、前記ノードの子ノードとを対応付けて、前記第２記憶手段に書き込む第２書込手段と
を備えることを特徴とする請求項５に記載の管理装置。
【請求項８】
前記第１記憶手段は、前記部分集合と前記部分集合に対応付けられた固有情報とを１の組として、複数個の組を記憶する第１テーブルを有しており、
前記第２記憶手段は、前記ノードと前記ノードに対応する子ノードとを１の組として、複数個の組を記憶する第２テーブルを有しており、
前記第１書込手段は、前記部分集合と、前記部分集合に対応付けられた固有情報とからなる組を、前記第１テーブルに書き込み、
前記第２書込手段は、前記ノードと、前記ノードの子ノードとからなる組を、前記第２記憶手段に書き込む
ことを特徴とする請求項７に記載の管理装置。
【請求項９】
前記第２制御手段は、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御して、複数の部分集合木を生成し、
前記第１記憶手段は、各部分集合木に含まれる各部分集合と、前記各部分集合のそれぞれに対応付けられた各固有情報とを記憶しており、
前記管理装置は、さらに、
前記複数の端末装置のうち、１以上の無効な端末を示す無効な識別子を記憶する領域を有する無効化識別子記憶手段と、
前記無効化識別子記憶手段にて記憶されている内容に基づいて、前記第１記憶手段より１以上の部分集合を取得し、取得した各部分集合のそれぞれに対応付けられた各固有情報に基づいて、１以上の暗号化鍵を取得し、取得した各暗号化鍵を個別に用いて、コンテンツの利用に用いるメディア鍵を暗号し、前記１以上の暗号化鍵と同数の暗号化メディア鍵を生成する暗号化鍵生成手段と、
前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合を識別する基準識別情報とからなる１以上の組を、当該管理装置に装着された記録媒体へ書き込む第３書込手段と
を備えることを特徴とする請求項７に記載の管理装置。
【請求項１０】
前記管理装置は、さらに、
無効な識別子を受け取り、受け取った無効な識別子を前記無効化識別子記憶手段へ書き込む無効化識別子受取手段
を備えることを特徴とする請求項９に記載の管理装置。
【請求項１１】
前記暗号化鍵は、前記復号鍵と同一の共通鍵であり、
前記一方向性関数は、さらに、各固有情報から前記各固有情報に基づく各共通鍵を生成し、
前記暗号化鍵生成手段は、
前記無効化識別子記憶手段にて記憶されている無効な識別子を除く１以上の有効な識別子を最も多く含む部分集合を、前記第１記憶手段より取得する部分集合取得部と、
全ての有効な識別子が、前記部分集合取得部にて取得される１以上の部分集合の何れかに属するまで、前記部分集合取得部が繰り返し処理するよう制御する制御部と、
前記一方向性関数を用いて、前記部分集合取得部にて取得した各部分集合のそれぞれに対応付けられた各固有情報から生成された１以上の共通鍵を取得する共通鍵取得部と、
前記共通鍵取得部にて取得した各共通鍵を用いて、共通鍵の数と同数の暗号化メディア鍵を生成する暗号化部と
を備えることを特徴とする請求項９に記載の管理装置。
【請求項１２】
前記基準識別情報は、前記暗号化メディア鍵に対する共通鍵の取得に用いられた部分集合であり、
前記第３書込手段は、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する共通鍵の取得に用いられた部分集合とからなる１以上の組を、前記記録媒体へ書き込み、
前記配布手段は、前記取得した固有情報が対応付けたれた部分集合を前記集合識別情報として、前記取得した固有情報と前記集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布し、
前記配布手段は、さらに、前記各部分集合木を示すデータ構造を配布する
ことを特徴とする請求項９に記載の管理装置。
【請求項１３】
前記管理装置は、さらに、
部分集合に対して、前記部分集合が属する部分集合木のルートであるルート部分集合から、前記部分集合に至るまでの経路を示す生成経路と、前記ルート部分集合と示すルート識別子とを含む経路情報を取得する経路情報取得手段を備え、
前記基準識別情報は、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合の経路情報であり、
前記第３書込手段は、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合の経路情報とからなる１以上の組を、前記記録媒体へ書き込み、
前記配布手段は、前記取得した固有情報に対する部分集合の経路情報を前記集合識別情報として、前記取得した固有情報と前記集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布する
ことを特徴とする請求項９に記載の管理装置。
【請求項１４】
複数の端末装置を識別する各装置識別子を木構造にて管理する管理装置より、暗号化されたデータを復号する復号鍵の基となる固有情報が割り当てられる端末装置であって、
前記管理装置は、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成し、リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付け、関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付け、この関連付けを最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御し、前記最下位レイヤの部分集合の全てに対して、これらの処理が繰り返し処理するよう制御し、前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当て、関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てており、
前記端末装置は、
前記管理装置から予め配布された、関連付元の各部分集合に対応付けられた各固有情報のうち、当該端末装置の装置識別子を含む固有情報を記憶している固有情報記憶手段を
備えることを特徴とする端末装置。
【請求項１５】
前記固有情報記憶手段は、さらに、記憶している前記固有情報が対応付けられた部分集合を識別する集合識別情報を記憶しており、
前記端末装置は、さらに、
前記集合識別情報が、当該端末装置が有効な装置であることを示すか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的である場合に、前記管理装置にて生成された各部分集合に対応付けられた各固有情報のうち特定の固有情報に基づく暗号化鍵により、メディア鍵が暗号化され、且つ前記暗号化鍵に関連する鍵関連情報と対応付けられた暗号化メディア鍵を取得する第１取得手段と、
前記固有情報記憶手段にて記憶している前記固有情報を用いて、前記暗号化鍵に対応する復号鍵を取得する第２取得手段と、
前記第２取得手段にて取得した前記復号鍵を用いて、前記取得手段にて取得した前記暗号化メディア鍵を復号して、前記メディア鍵を生成する復号手段と
を備えることを特徴とする請求項１４に記載の端末装置。
【請求項１６】
前記特定の固有情報は、前記暗号化メディア鍵の生成時点で有効な端末装置の識別子を１以上含む部分集合に対応付けられた基準固有情報であり、
前記暗号化鍵は、共通鍵であり、
前記鍵関連情報は、前記基準固有情報が対応付けられた部分集合を識別する基準識別情報であり、
前記暗号化メディア鍵は、前記基準識別情報と対応付けられており、
前記判断手段は、前記固有情報記憶手段にて記憶している前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在する場合に、前記集合識別情報は、当該端末装置が有効な装置であることを示す判断し、
前記第１取得手段は、前記基準識別情報に対応する前記基準固有情報に基づく暗号化鍵により暗号化された前記暗号化メディア鍵を取得し、
前記第２取得手段は、前記復号鍵を取得し、取得した前記復号鍵を前記共通鍵とし、
前記復号手段は、取得した前記共通鍵を用いて、前記暗号化メディア鍵を復号すること  を特徴とする請求項１５に記載の端末装置。
【請求項１７】
前記管理装置は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記関連付先の部分集合をそっくり含み、最小の要素数からなり、且つ未関連付けである部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付けて、前記最下位レイヤの部分集合をルートする部分集合木を生成し、
前記固有情報記憶手段は、さらに、前記管理装置にて生成された前記部分集合木を構成するデータ構造を予め記憶しており、
前記判断手段は、前記データ構造により構成される前記部分集合木を用いて、前記固有情報記憶手段にて記憶している前記固有情報が対応付けられた部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在するか否かを判断する
ことを特徴とする請求項１６に記載の端末装置。
【請求項１８】
前記管理装置は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記関連付先の部分集合をそっくり含み、最小の要素数からなり、且つ未関連付けである部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付けて、前記最下位レイヤの部分集合をルートする部分集合木を生成し、
前記基準識別情報は、前記基準固有情報が対応付けられた基準部分集合に対して、前記許可集合木のルートから、当該基準部分集合に至るまでの第１生成経路を含み、
前記集合識別情報は、前記固有情報が対応付けられた部分集合に対して、前記部分集合木のルートから、当該部分集合に至るまでの第２生成経路を含み、
前記判断手段は、前記第２生成経路が前記第１生成経路に含まれる場合に、前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在すると判断する
ことを特徴とする請求項１６に記載の端末装置。
【請求項１９】
前記管理装置は、部分集合に対応付けられた固有情報を、一方向性関数に対する入力の情報として与え、前記固有情報に基づく共通鍵、及び前記固有情報から派生する固有情報を生成し、生成した固有情報を、入力の情報として与えた前記固有情報が対応付けられた部分集合と関連付けされた部分集合に対応付けて、関連付けされた部分集合に含まれる各装置識別子に、生成した固有情報を割り当て、
前記第２取得手段は、
前記一方向性関数と同一の関数を用いて、前記固有情報記憶手段にて記憶している前記固有情報から、前記固有情報に基づくデバイス鍵と、前記固有情報から派生する固有情報とを生成して、取得するデバイス鍵取得部と、
前記基準固有情報に基づくデバイス鍵を取得するまで、前記デバイス鍵取得部にて取得した前記固有情報を、前記関数に対する次の入力の情報として与えて、前記デバイス鍵取得部の動作を繰り返すよう制御する繰返部と、
前記デバイス鍵取得部にて取得した前記基準固有情報に基づくデバイス鍵を、前記共通鍵として取得する復号鍵取得手段と
を備えることを特徴とする請求項１６に記載の端末装置。
【請求項２０】
前記端末装置は、さらに、
コンテンツを取得するコンテンツ取得手段と、
コンテンツ鍵を取得するコンテンツ鍵取得手段と、
前記コンテンツ鍵取得手段にて取得した前記コンテンツ鍵を、前記復号手段にて取得したメディア鍵を用いて、暗号化して暗号化コンテンツ鍵を生成する第１暗号化手段と、
前記コンテンツ取得手段にて取得した前記コンテンツを、前記コンテンツ鍵取得手段にて取得したコンテンツ鍵を用いて、暗号化して暗号化コンテンツを生成する第２暗号化手段と、
前記暗号化コンテンツ鍵と、前記暗号化コンテンツとを、記録媒体へ書き込む書込手段と
を備えることを特徴とする請求項１９に記載の端末装置。
【請求項２１】
前記書込手段は、
前記暗号化コンテンツ鍵と、前記暗号化コンテンツとを、ネットワーク上に存在する装置が有する前記記録媒体へ、通信媒体を介して書き込む
ことを特徴とする請求項２０に記載の端末装置。
【請求項２２】
前記端末装置は、さらに、
コンテンツ鍵が前記メディア鍵にて暗号化された暗号化コンテンツ鍵を取得する暗号化コンテンツ鍵取得手段と、
コンテンツが前記コンテンツ鍵にて暗号化された暗号化コンテンツを取得する暗号化コンテンツ取得手段と、
前記暗号化コンテンツ鍵取得手段にて取得した暗号化コンテンツ鍵を、前記メディア鍵を用いて、復号して、前記コンテンツ鍵を生成する第１復号手段と、
前記暗号化コンテンツ取得手段にて取得した暗号化コンテンツを、前記コンテンツ鍵を用いて、復号して、前記コンテンツを生成する第２復号手段と、
前記第２復号にて生成された前記コンテンツを再生する再生手段と
を備えることを特徴とする請求項１９に記載の端末装置。
【請求項２３】
前記暗号化コンテンツ鍵及び前記暗号化コンテンツは、記録媒体に記録されており、前記記録媒体は、当該端末装置に装着され、
前記暗号化コンテンツ鍵取得手段は、前記記録媒体から、前記暗号化コンテンツ鍵を取得し、
前記暗号化コンテンツ取得手段は、前記記録媒体から、前記コンテンツを取得する
ことを特徴とする請求項２２に記載の端末装置。
【請求項２４】
前記暗号化コンテンツ鍵取得手段は、通信媒体を介して、前記暗号化コンテンツ鍵を取得し、
前記暗号化コンテンツ取得手段は、通信媒体を介して、前記コンテンツを取得する
ことを特徴とする請求項２２に記載の端末装置。
【請求項２５】
複数の端末装置と、前記複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置とからなる著作権保護システムであって、
前記管理装置は、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、
リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付手段と、
関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付手段と、
最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御手段と、
前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、
前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当手段と、
関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当手段と
を備えることを特徴とする著作権保護システム。
【請求項２６】
前記第１関連付手段は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、
前記第２関連付手段は、前記関連付先の部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、
前記第１制御手段は、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成する
ことを特徴とする請求項２５に記載の著作権保護システム。
【請求項２７】
前記第１関連付手段は、前記最下位レイヤに対する各上位レイヤの各部分集合のうち、関連付けがなされた１以上の部分集合を除外し、残りの１以上の部分集合を用いて、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成する
ことを特徴とする請求項２６に記載の著作権保護システム。
【請求項２８】
前記第２割当手段は、
前記派生的に求められる固有情報を、前記関連付元の部分集合に対応付けられた固有情報から一方向性関数を用いて生成し、生成した固有情報を、関連付けにより繋がった部分集合に対応付ける
ことを特徴とする請求項２７に記載の著作権保護システム。
【請求項２９】
前記管理装置は、さらに、
前記部分集合木のルートから１以上のリーフそれぞれに至る各経路において、固有情報を配布する配布対象の端末装置の識別子が、要素として初めて出現する部分集合が存在する場合に、前部分集合に対応付けされた固有情報を１以上取得する固有情報取得手段と、
取得した固有情報と、固有情報に対応する部分集合を識別する集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布する配布手段と
を備えることを特徴とする請求項２８に記載の著作権保護システム。
【請求項３０】
前記管理装置は、さらに、
前記部分集合木の構成要素である各部分集合と、前記各部分集合のそれぞれに対応付けされた前記固有情報とを記憶する領域を有する第１記憶手段と、
前記部分集合木を構成する複数のノードと、各ノードの子ノードとを記憶する領域を有する第２記憶手段と、
前記部分集合と、前記部分集合に対応付けされた固有情報とを対応付けて、前記第１記憶手段に書き込む第１書込手段と、
前記部分集合木を構成する前記ノードと、前記ノードの子ノードとを対応付けて、前記第２記憶手段に書き込む第２書込手段と
を備えることを特徴とする請求項２９に記載の著作権保護システム。
【請求項３１】
前記第２制御手段は、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御して、複数の部分集合木を生成し、
前記第１記憶手段は、各部分集合木に含まれる各部分集合と、前記各部分集合のそれぞれに対応付けされた各固有情報とを記憶しており、
前記管理装置は、さらに、
前記複数の端末装置のうち、１以上の無効な端末を示す無効な識別子を記憶する領域を有する無効化識別子記憶手段と、
前記無効化識別子記憶手段にて記憶されている内容に基づいて、前記第１記憶手段より１以上の部分集合を取得し、取得した各部分集合のそれぞれに対応付けされた各固有情報に基づいて、１以上の暗号化鍵を取得し、取得した各暗号化鍵を個別に用いて、コンテンツの利用に用いるメディア鍵を暗号し、前記１以上の暗号化鍵と同数の暗号化メディア鍵を生成する暗号化鍵生成手段と、
前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合を識別する基準識別情報とからなる１以上の組を、当該管理装置に装着された記録媒体へ書き込む第３書込手段と
を備えることを特徴とする請求項３０に記載の著作権保護システム。
【請求項３２】
前記管理装置は、さらに、
無効な識別子を受け取り、受け取った無効な識別子を前記無効化識別子記憶手段へ書き込む無効化識別子受取手段
を備えることを請求項３１に記載の著作権保護システム。
【請求項３３】
前記暗号化鍵は、前記復号鍵と同一の共通鍵であり、
前記一方向性関数は、さらに、各固有情報から前記各固有情報に基づく各共通鍵を生成し、
前記暗号化鍵生成手段は、
前記無効化識別子記憶手段にて記憶されている無効な識別子を除く１以上の有効な識別子を最も多く含む部分集合を、前記第１記憶手段より取得する部分集合取得部と、
全ての有効な識別子が、前記部分集合取得部にて取得される１以上の部分集合の何れかに属するまで、前記部分集合取得部が繰り返し処理するよう制御する制御部と、
前記一方向性関数を用いて、前記部分集合取得部にて取得した各部分集合のそれぞれに対応付けされた各固有情報から生成された１以上の共通鍵を取得する共通鍵取得部と、
前記共通鍵取得部にて取得した各共通鍵を用いて、共通鍵の数と同数の暗号化メディア鍵を生成する暗号化部と
を備えることを特徴とする請求項３１に記載の著作権保護システム。
【請求項３４】
前記端末装置は、
前記管理装置の配布手段にて予め配布された固有情報と、前記記固有情報が対応付けされた部分集合を識別する集合識別情報とからなる１以上の組を記憶している固有情報記憶手段と、
前記集合識別情報が、当該端末装置が有効な装置であることを示すか否かを判断する判断手段と、
前記判断手段による判断結果が肯定的である場合に、前記記録媒体から暗号化メディア鍵を１個取得する第１取得手段と、
前記固有情報記憶手段にて記憶している前記固有情報を用いて、前記暗号化鍵に対応する復号鍵を取得する第２取得手段と、
前記第２取得手段にて取得した前記復号鍵を用いて、前記取得手段にて取得した前記暗号化メディア鍵を復号して、前記メディア鍵を生成する復号手段と
を備えることを特徴とする請求項３３に記載の著作権保護システム。
【請求項３５】
前記暗号化鍵は、共通鍵であり、
前記判断手段は、前記固有情報記憶手段にて記憶している前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在する場合に、前記集合識別情報は、当該端末装置が有効な装置であることを示す判断し、
前記第１取得手段は、前記基準識別情報に対応する暗号化メディア鍵を取得し、
前記第２取得手段は、前記復号鍵を取得し、取得した前記復号鍵を前記共通鍵とし、
前記復号手段は、取得した前記共通鍵を用いて、前記暗号化メディア鍵を復号する
ことを特徴とする請求項３４に記載の著作権保護システム。
【請求項３６】
前記第２取得手段は、
前記一方向性関数と同一の関数を用いて、前記固有情報記憶手段にて記憶している前記固有情報から、前記固有情報に基づくデバイス鍵と、前記固有情報から派生する固有情報とを生成して、取得するデバイス鍵取得部と、
前記基準固有情報に基づくデバイス鍵を取得するまで、前記デバイス鍵取得部にて取得した前記固有情報を、前記関数に対する次の入力の情報として与えて、前記デバイス鍵取得部の動作を繰り返すよう制御する繰返部と、
前記デバイス鍵取得部にて取得した前記基準固有情報に基づくデバイス鍵を、前記共通鍵として取得する復号鍵取得手段と
を備えることを特徴とする請求項３５に記載の著作権保護システム。
【請求項３７】
記録媒体であって、
有効な端末装置により生成される復号鍵に対応し、且つ１以上の有効な端末装置からなる集合に対応する固有情報に基づいて生成された暗号化鍵を用いて、メディア鍵が暗号化された暗号化メディア鍵を記憶している暗号化鍵記憶手段を
備えることを特徴とする記録媒体。
【請求項３８】
前記暗号化鍵記憶手段は、さらに、
前記暗号化鍵の生成に用いた固有情報に対応する集合を識別する集合識別情報を記憶している
ことを特徴とする請求項３７に記載の記録媒体。
【請求項３９】
複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置であって、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、
同一レイヤにおいて存在する部分集合のうち、最小の要素数の部分集合を含む他の部分集合を、最小の要素数の部分集合とともに１つのグループにまとめるグループ生成手段と、
同一レイヤの存在する最小の要素数の部分集合の全てに対して、前記グループ生成手段が繰り返し処理するよう制御する第１制御手段と、
全てのレイヤに対して、前記グループ生成手段及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、
前記第２制御手段にて全てのレイヤに対して、処理を行った後、異なるレイヤ間において、下位レイヤのグループの何れかの部分集合を全て含む部分集合を有する上位レイヤのグループを、当該下位レイヤのグループと１のグループに統合する統合手段と、
全てのレイヤにおいてグループの統合後に、残存する各グループ内の最小の要素数の各部分集合に対して、各固有情報を対応付けて、各部分集合に含まれる１以上の装置識別子に、対応付けられた各固有情報を割り当てる第１割当手段と、
前記第１割当手段にて各固有情報を割り当てた最小の要素数の各部分集合と異なる各部分集合に対して、部分集合が属するグループに存在する最小の要素数の部分集合に対応付けされた固有情報から派生的に求められる固有情報を対応付けて、各部分集合に含まれる１以上の装置識別子に、対応付けられた固有情報を割り当てる第２割当手段と
を備えることを特徴とする管理装置。
【請求項４０】
複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置に用いられる関連付方法であって、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成ステップと、
リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付ステップと、
関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付ステップと、
最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御ステップと、
前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御ステップと、
前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当ステップと、
関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当ステップと
を含むことを特徴とする関連付方法。
【請求項４１】
複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置に、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成ステップと、
リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付ステップと、
関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付ステップと、
最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御ステップと、
前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御ステップと、
前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当ステップと、
関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当ステップと
を実行させるための関連付プログラム。
【請求項４２】
複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置に、
前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成ステップと、
リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付ステップと、
関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付ステップと、
最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御ステップと、
前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御ステップと、
前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当ステップと、
関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当ステップと
を実行させるための関連付プログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映画や音楽などの著作物であるコンテンツのデジタル化データを、光ディスク等の大容量記録媒体に記録、あるいは再生するシステムに関し、特に不正装置を使ったコンテンツの記録、あるいは再生による著作権侵害を防止するための技術に関する。
【背景技術】
【０００２】
近年、マルチメディア関連技術の発展、大容量記録媒体の出現等を背景として、動画、音声等からなるデジタルコンテンツ（以下、コンテンツ）を生成して、光ディスク等の大容量記録媒体に格納して配布する、あるいはネットワークや放送を介して配信するシステムが現れている。
配信されたコンテンツは、コンピュータや再生装置等で読み出されて、再生、あるいはコピーの対象となる。
【０００３】
一般的に、コンテンツの著作権を保護するため、即ちコンテンツの不正再生や不正コピーといった不正利用を防止するために暗号化技術が用いられる。
具体的には、コンテンツをある暗号化鍵を用いて暗号化して光ディスク等の記録媒体に記録して配布する。これに対して、その暗号化鍵に対応する復号鍵を保有する端末のみが、記録媒体から読み出したデータをその復号鍵を用いて復号して、コンテンツの再生等を行うことができる、というものである。なお、コンテンツを暗号化して記録媒体に記録する方法としては、端末が保有する復号鍵に対応する暗号化鍵でコンテンツそのものを暗号化して記録する方法や、コンテンツをある鍵で暗号化して記録した上で、その鍵に対応する復号用の鍵を、端末が保有する復号鍵に対応する暗号化鍵で暗号化して記録する方法等がある。
【０００４】
このとき、端末が保有する復号鍵は外部に露見しないように厳重に管理される必要があるが、不正者による端末内部の解析において、ある鍵が外部に暴露される危険性がある。ある鍵が一旦不正者に暴露されてしまうと、コンテンツを不正利用する記録装置、再生装置、あるいはソフトウェアを作成し、インターネット等によりそれらを流布することが考えられる。このような場合、著作権者は一旦暴露された鍵では、次から提供するコンテンツを扱えないようにしたいと考える。これを鍵無効化技術と呼び、鍵無効化を実現するシステムとして、木構造と呼ばれる階層構造を利用した鍵無効化技術が、特許文献１、及び非特許文献１に開示されている。
【０００５】
以下、非特許文献１に記載されている従来の鍵無効化技術について説明する。
まず、「Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ」（以降、差分集合と呼ぶ）についての定義を行う。差分集合は、大きな木構造の集合から、それよりも小さな木構造の集合を取り除いたときの、各装置（リーフ）からなる集合と定義する。大きな木構造のルートと小さな木構造のルートの２つを定めることにより、差分集合は決定される。そして、各差分集合に対してそれぞれ復号鍵が割り当てられる。
【０００６】
さらに、コンテンツはコンテンツ鍵で暗号化されており、各装置は復号鍵を保持し、各装置が自身の保持する復号鍵を用いてコンテンツ鍵を求める際に必要とされるデータを鍵データと呼ぶ。一般的に、鍵データはコンテンツ共に配信され、コンテンツの配信に記録媒体を利用する場合は、鍵データは記録媒体に記録される。
無効化されない装置の集合を、差分集合でカバーすることによって、鍵データのサイズを削減することが可能となる。図４２にその概念図を示す。図４２において、大きな木構造Ｔ１０００のルートをＶｉ、小さな木構造Ｔ１００１のルートをＶｊとした場合、×印をつけた２つのリーフに割り当てられた装置を無効化する集合は、木構造Ｔ１０００から木構造Ｔ１００１を取り除いた差分集合１００１「Ｓｉ，ｊ」となる。さらに、必要となる鍵データは、前記差分集合Ｓｉ，ｊに対応した１つの暗号化鍵Ｌｉ，ｊを用いて暗号化された、１つの暗号化コンテンツ鍵となる。つまり、差分集合は、木構造Ｔ１０００を示す概念的な図である概念図Ｔ１００２から、木構造Ｔ１００１を示す概念的な図である概念図Ｔ１００３を除いた残りの部分に属するリーフの集合となる。
【０００７】
また、別の例として、装置数１６の木構造において、装置３、装置４、装置１３、装置１５が無効化されている場合の差分集合、並びにコンテンツ鍵を暗号化するための暗号化鍵Ｓｉ，ｊを図４３に示す。例えば、装置９〜装置１２は、Ｖ３をルートとする木構造Ｔ２０００から、Ｖ７をルートとする木構造Ｔ２００１を取り除いた差分集合２００１「Ｓ３，７」に属する。図４３おいては、同一の差分集合Ｓｉ，ｊに属する装置は、共通の復号鍵を保持している。例えば、差分集合２００２「Ｓ２，９」に属する装置１、装置２、装置５〜装置８は、共通の復号鍵Ｌ２，９を保持し、差分集合２００１「Ｓ３，７」に属する装置９〜装置１２は、共通の復号鍵Ｌ３，７を保持している。さらに、コンテンツ鍵は、Ｌ２，９、Ｌ３，７、Ｌ１４，２８、Ｌ１５，３１でそれぞれ暗号化されるため、いずれの復号鍵も保持していない装置３、装置４、装置１３、装置１５は、コンテンツ鍵を復号することができず、コンテンツを扱うことができない。
【０００８】
ここで、各装置は、無効化される装置の位置関係に応じた復号鍵を保持する必要があり、その基本的な考え方は次の通りである。ある装置が差分集合Ｓｉ，ｊに対応した復号鍵Ｌｉ，ｊを保持する場合、その装置は、差分集合Ｓｉ，ｋに対応した復号鍵Ｌｉ，ｋも保持する。ただし、ＶｋはＶｊの部分集合とする。このとき、Ｌｉ，ｋは、Ｌｉ，ｊから計算で求めることができるようにするが、その逆は計算では求められないようにするため一方向性関数を利用する。
【０００９】
まず、木構造の各ノードに割り当てられる暗号化鍵（この暗号化鍵は、各装置が保持する復号鍵と対応する）について、図４４に示す２分木の木構造Ｔ３０００の例を用いて説明する。なお、図４４は、合計８台の装置を管理する木構造Ｔ３０００の一部を記載している。
図４４に示す木構造Ｔ３０００の各ノードには、それぞれ個別のＴビットの「ラベル」と呼ばれる識別子が付与されている。そして、入力データ長Ｔビットに対して、３Ｔビットの乱数を生成する擬似乱数生成器Ｇを用意する。ラベル「Ａ１」を擬似乱数生成器Ｇの入力とした場合に、出力される３Ｔビットのうち、前半Ｔビットをラベル３００１「Ａ１」の左下の子のラベルとし、真ん中のＴビットをラベル３００１「Ａ１」のノードに対応する暗号化鍵とし、後半Ｔビットをラベル３００１「Ａ１」の右下の子のラベルとし、それぞれを「Ａ１Ｌ」、「Ａ１Ｍ」、「Ａ１Ｒ」と表現する。図４４では、各ノードには予めラベル「Ａ１」、「Ａ２」、「Ａ３」、「Ａ４」等が個別に割り当てられており、加えて上位のラベルから派生してきた新たなラベルが追加される。例えば、上から３層目のノード４００１においては、当該ノードに予め割り当てられたラベル「Ａ４」に加え、上位のラベル「Ａ１」から派生したラベル「Ａ１ＬＬ」、並びに同じく上位のラベル「Ａ２」から派生したラベル「Ａ２Ｌ」と計３個のラベルが割り当てられことになる。さらに、各ノードに割り当てられる暗号化鍵の数は、当該ノードに割り当てられたラベルの数と等しくなるため、ノード４００１には、Ａ１ＬＬＭ、Ａ２ＬＭ、Ａ４Ｍの計３つの暗号化鍵が割り当てられることになる。
【００１０】
ここで、差分集合Ｓｉ，ｊに対応する暗号化鍵Ｌｉ，ｊと、上記各ノードに割り当てられた暗号化鍵の関係を示す。ノードＶｉとノードＶｊを決定した場合、差分集合Ｓｉ，ｊに対応する暗号化鍵Ｌｉ，ｊは、ノードＶｉに割り当てられたラベルから派生したラベルのうち、ノードＶｊに追加されたラベルに対応する暗号化鍵となる。図４４の例において、ノードＶｉのラベルをＡ１、ノードＶｊのラベルをＡ４とすると、暗号化鍵Ｌｉ，ｊはＡ１ＬＬＭとなる。
【００１１】
次に、各装置に割り当てる復号鍵について説明する。ここでは、各装置には、ノードに割り当てられる複数のラベルが割り当てられるものとし、各装置は、装置内で、対応するラベルと擬似乱数生成器Ｇから復号鍵を生成するものとする。さらに、暗号化鍵と復号鍵が等しい秘密鍵暗号をその一例として説明する。
具体的には、各装置が割り当てられたリーフから、ルートに至る経路上に存在するノードにぶら下がるノードに着目して、当該ノードより上位に位置するノードから派生して割り当てられたラベルが、各装置に対して割り当てられる。
【００１２】
例えば、図４４に示す装置１に割り当てられるラベルは、Ａ１ＬＬＲ、Ａ２ＬＲ、Ａ４Ｒ、Ａ１ＬＲ、Ａ２Ｒ及びＡ１Ｒの計６つとなる。なお、ラベル「Ａ３」、「Ａ５」、「Ａ７」は、それぞれが対応するノードに予め割り当てられているラベルであるため、装置１に対しては、割り当てられない。
各装置に割り当てられるラベルの総数は、装置の総数をｔ台とした場合、0.5(log2ｔ)^2+0.5log2ｔ個である。これは、各装置に割り当てられるラベルの数が、２層目に１個、３層目に２個、…、最下位層にlog2ｔ個であることから、1+2+…+log2ｔ=0.5(log2ｔ)^2+0.5log2ｔとなるからである。例えば、装置の総数が８台である場合には、各装置に割り当てられるラベルの数は、６つとなる。
【００１３】
次に、図４４を用いて、実際に装置を無効化する場合の例を説明する。
何れの装置も無効化されていない初期状態では、ラベル３００２「Ａ１Ｌ」、ラベル３００３「Ａ２Ｒ」に対応する鍵「Ａ１ＬＭ」、及び「Ａ１ＲＭ」を用いてコンテンツ鍵を暗号化する。全ての装置は、ラベル３００２「Ａ１Ｌ」、あるいはラベル３００３「Ａ１Ｒ」を保持しており、それらから、復号鍵「Ａ１ＬＭ」、あるいは「Ａ１ＲＭ」を生成することができる。従って、生成した復号鍵でコンテンツ鍵を復号することができ、さらには、復号したコンテンツ鍵を利用してコンテンツを復号することができる。
【００１４】
装置１がハックされて、装置１が保持する全ての鍵が暴露された場合は、ラベル３００１「Ａ１」とラベル３００４「Ａ１ＬＬＬ」を指定して、ラベル３００１「Ａ１」をルートとする大きな木構造Ｔ３０００から、ラベル３００４「Ａ１ＬＬＬ」の小さいな木構造（リーフ）Ｔ３００１を取り除く。そして、ラベル３００４「Ａ１ＬＬＬ」に対応する暗号化鍵「Ａ１ＬＬＬＭ」を用いてコンテンツ鍵を暗号化する。これにより、装置１は、擬似乱数生成器Ｇが一方向性であることから、自身が保持するラベルからは復号鍵「ＡＬＬＬＭ」を生成することができないため、コンテンツ鍵を復号することができない。装置１以外の各装置は、ラベル３００４「Ａ１ＬＬＬ」を保持する、又は保持しているラベルから、ラベル３００４「Ａ１ＬＬＬ」を、擬似乱数生成器より生成することができる。つまり、装置１以外の各装置は、復号鍵「Ａ１ＬＬＬＭ」を生成することができる。例えば、装置２は、ラベル３００４「Ａ１ＬＬＬ」を保持しているため、保持しているラベル３００４「Ａ１ＬＬＬ」から復号鍵「Ａ１ＬＬＬＭ」を生成することができる。また、ラベル３００６「Ａ５」に対応するノードにぶら下がる２つのリーフ（図示していないが、例えば、装置３、装置４）は、ラベル３００５「Ａ１ＬＬ」を保持している。つまり、装置３及び装置４は、保持しているラベル３００５「Ａ１ＬＬ」から復号鍵「Ａ１ＬＬＬＭ」を生成することができる。ラベル「Ａ３」に対するノードが持つリーフ、つまり孫ノード（図示していないが、例えば、装置５〜装置８）は、ラベル３００２「Ａ１Ｌ」を保持している。つまり、装置５〜装置８は、ラベル３００２「Ａ１Ｌ」から復号鍵「Ａ１ＬＬＬＭ」を生成することができる。
【００１５】
以上により、非特許文献にて示されるシステムは、鍵無効化を実現している。
【特許文献１】特開２００２−２８１０１３号公報
【非特許文献１】D. Naor, M. Naor, and J. Lotspiech, "Revocation and Tracing Schemes for Stateless Receivers", Proceedings of CRYPTO2001, LNCS2139, pp.41-62, 2001.
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、非特許文献１に開示されている従来の鍵無効化技術において、リーフを含む各ノードをルートする各部分木は、それぞれ独立した関係にある。なぜなら、各部分木のルートには、予めラベルが割り当てられており、割り当てられた各ラベルは、それぞれ独立した関係にあるからである。そのため、部分木に割り当てられたラベルから同一の部分木内に割り当てられたラベルを生成することはできるが、他の部分木に割り当てられたラベルを生成することはできない。したがって、従来の技術では、管理する装置数が増大すると、管理対象となる部分木の数が多くなる、つまり、各部分木のルートに対して、他のラベルから生成されることのないラベルを予め割り当てる際に、その個数が多くなるという課題がある。
【００１７】
本発明は、前記従来の課題を解決するために、管理する装置に割り当てる鍵の基となる複数の固有情報のうち、他の固有情報から生成されることのない固有情報の個数を削減する管理装置、端末装置、著作権保護システム、記録媒体、関連付方法、関連付プログラム、プログラム記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明は、複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置であって、前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付手段と、関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付手段と、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御手段と、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当手段と、関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当手段とを備えることを特徴とする。
【発明の効果】
【００１９】
課題を解決するための手段に示した構成によると、管理装置は、第１関連付手段、第２関連付手段、第１制御手段、及び第２制御手段を用いて、最下位レイヤの部分集合から最上位レイヤの部分集合まで関連付けることができる。また、管理装置は、第２割当手段を用いて、関連付けにより繋がった部分集合に、最下位レイヤの部分集合に対応付けられた固有情報から派生的に求められる固有情報を対応付けることができる。従来の管理装置は、各レイヤの最小の要素数からなる各部分集合に対して、互いに関連性がない各固有情報を予め用意する必要があったが、本発明では、管理装置は、最下位レイヤの各部分集合のみに、互いに異なる各固有情報を用意するだけでよい。つまり、管理装置は、他の固有情報から生成されることのない固有情報を予め用意する際に、その個数を削減することができる。
【００２０】
ここで、前記第１関連付手段は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記第２関連付手段は、前記関連付先の部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記第１制御手段は、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成するとしてもよい。
【００２１】
この構成によると、管理装置は、最下位レイヤの部分集合をルートする部分集合木を生成することができる。これにより、管理装置は、部分集合間の関連付けを木構造にて管理することができる。
ここで、前記第１関連付手段は、前記最下位レイヤに対する各上位レイヤの各部分集合のうち、関連付けがなされた１以上の部分集合を除外し、残りの１以上の部分集合を用いて、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成するとしてもよい。
【００２２】
この構成によると、管理装置は、部分集合生成手段にて生成した各部分集合を１回のみ使用して、最下位レイヤの各部分集合をルートとする各部分集合木を生成することができる。
ここで、前記第２割当手段は、前記派生的に求められる固有情報を、前記関連付元の部分集合に対応付けされた固有情報から一方向性関数を用いて生成し、生成した固有情報を、関連付けにより繋がった部分集合に対応付けるとしてもよい。
【００２３】
この構成によると、管理装置は、一方向性関数を用いて、最下位レイヤの部分集合に対応付けられた固有情報から、関連付けにより繋がった部分集合に対応付ける固有情報を生成することができる。
ここで、前記管理装置は、さらに、前記部分集合木のルートから１以上のリーフそれぞれに至る各経路において、固有情報を配布する配布対象の端末装置の識別子が、要素として初めて出現する部分集合が存在する場合に、前部分集合に対応付けられた固有情報を１以上取得する固有情報取得手段と、取得した固有情報と、固有情報に対応する部分集合を識別する集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布する配布手段とを備えるとしてもよい。
【００２４】
この構成によると、管理装置は、固有情報とその固有情報に対応する集合識別情報とからなる１以上の組を、配布対象の端末装置へ配布することができる。これにより、端末装置へ配布する固有情報の数を、従来よりも少なくすることができる。従来、各レイヤにおいて、部分集合間の関連付けを行い、レイヤ毎に、配布する固有情報を取得していたが、本発明によると、配布する固有情報が対応付けられた部分集合より上位レイヤに存在し、関連付けにより繋がった部分集合に対応付けられた固有情報を配布する必要が無い。なぜなら、配布する固有情報から、上位レイヤに存在し、関連付けにより繋がった部分集合に含まれる装置識別子に割り当てられた固有情報を派生的に求めることができるからである。これにより、管理装置は、配布対象の端末装置へ配布する固有情報の数を削減することができる。つまり、管理装置は、端末装置へ割り当てる鍵の数を削減することができる。
【００２５】
ここで、前記固有情報取得手段は、部分集合木のルートからリーフに至る各経路から、前記配布対象の端末装置の識別子が、要素として初めて出現する部分集合を検索し、前記部分集合を検出すると、前記検出した部分集合が未取得である場合に、前記検出した部分集合を取得する第１取得部と、第１取得部にて取得した前記部分集合に対応付けられた前記固有情報を取得する第２取得部と、前記各経路に対して行われるまで、前記第１及び第２取得部が繰り返し処理するよう制御する繰返制御部とを備えるとしてもよい。
【００２６】
この構成によると、管理装置は、繰返制御部により、部分集合木から、配布対象の端末装置へ配布する固有情報を１以上取得することができる。
ここで、前記管理装置は、さらに、前記部分集合木の構成要素である各部分集合と、前記各部分集合のそれぞれに対応付けられた前記固有情報とを記憶する領域を有する第１記憶手段と、前記部分集合木を構成する複数のノードと、各ノードの子ノードとを記憶する領域を有する第２記憶手段と、前記部分集合と、前記部分集合に対応付けられた固有情報とを対応付けて、前記第１記憶手段に書き込む第１書込手段と、前記部分集合木を構成する前記ノードと、前記ノードの子ノードとを対応付けて、前記第２記憶手段に書き込む第２書込手段とを備えるとしてもよい。
【００２７】
この構成によると、管理装置は、部分集合と部分集合に対応付けられた固有情報とを対応付けて記憶することができる。また、管理装置は、部分集合木を構成する複数のノードと、各ノードの子ノードとを対応付けて記憶することができる。
ここで、前記第１記憶手段は、前記部分集合と前記部分集合に対応付けられた固有情報とを１の組として、複数個の組を記憶する第１テーブルを有しており、前記第２記憶手段は、前記ノードと前記ノードに対応する子ノードとを１の組として、複数個の組を記憶する第２テーブルを有しており、前記第１書込手段は、前記部分集合と、前記部分集合に対応付けられた固有情報とからなる組を、前記第１テーブルに書き込み、前記第２書込手段は、前記ノードと、前記ノードの子ノードとからなる組を、前記第２記憶手段に書き込むとしてもよい。
【００２８】
この構成によると、管理装置は、第１テーブルを用いて、部分集合と部分集合に対応付けられた固有情報とを対応付けて記憶することができる。また、管理装置は、第２テーブルを用いて、部分集合木を構成する複数のノードと、各ノードの子ノードとを対応付けて記憶することができる。
ここで、前記第２制御手段は、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御して、複数の部分集合木を生成し、前記第１記憶手段は、各部分集合木に含まれる各部分集合と、前記各部分集合のそれぞれに対応付けられた各固有情報とを記憶しており、前記管理装置は、さらに、前記複数の端末装置のうち、１以上の無効な端末を示す無効な識別子を記憶する領域を有する無効化識別子記憶手段と、前記無効化識別子記憶手段にて記憶されている内容に基づいて、前記第１記憶手段より１以上の部分集合を取得し、取得した各部分集合のそれぞれに対応付けられた各固有情報に基づいて、１以上の暗号化鍵を取得し、取得した各暗号化鍵を個別に用いて、コンテンツの利用に用いるメディア鍵を暗号し、前記１以上の暗号化鍵と同数の暗号化メディア鍵を生成する暗号化鍵生成手段と、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合を識別する基準識別情報とからなる１以上の組を、当該管理装置に装着された記録媒体へ書き込む第３書込手段とを備えるとしてもよい。
【００２９】
この構成によると、管理装置は、１以上の暗号化メディア鍵を生成し、生成した暗号化メディア鍵と、基準識別情報とからなる１以上の組を、装着された記録媒体に書き込むことができる。
ここで、前記管理装置は、さらに、無効な識別子を受け取り、受け取った無効な識別子を前記無効化識別子記憶手段へ書き込む無効化識別子受取手段を備えるとしてもよい。
【００３０】
この構成によると、管理装置は、無効な識別子を受け取り、受け取った無効な識別子を無効化識別子記憶手段へ書き込むことができる。
ここで、前記暗号化鍵は、前記復号鍵と同一の共通鍵であり、前記一方向性関数は、さらに、各固有情報から前記各固有情報に基づく各共通鍵を生成し、前記暗号化鍵生成手段は、前記無効化識別子記憶手段にて記憶されている無効な識別子を除く１以上の有効な識別子を最も多く含む部分集合を、前記第１記憶手段より取得する部分集合取得部と、全ての有効な識別子が、前記部分集合取得部にて取得される１以上の部分集合の何れかに属するまで、前記部分集合取得部が繰り返し処理するよう制御する制御部と、前記一方向性関数を用いて、前記部分集合取得部にて取得した各部分集合のそれぞれに対応付けられた各固有情報から生成された１以上の共通鍵を取得する共通鍵取得部と、前記共通鍵取得部にて取得した各共通鍵を用いて、共通鍵の数と同数の暗号化メディア鍵を生成する暗号化部とを備えるとしてもよい。
【００３１】
この構成によると、管理装置は、暗号化鍵である共通鍵を、一方向性関数を用いて、有効な識別子からなる部分集合に対応する固有情報から生成し、生成した共通鍵を用いて、暗号化メディア鍵を生成することができる。
ここで、前記基準識別情報は、前記暗号化メディア鍵に対する共通鍵の取得に用いられた部分集合であり、前記第３書込手段は、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する共通鍵の取得に用いられた部分集合とからなる１以上の組を、前記記録媒体へ書き込み、前記配布手段は、前記取得した固有情報が対応付けたれた部分集合を前記集合識別情報として、前記取得した固有情報と前記集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布し、前記配布手段は、さらに、前記各部分集合木を示すデータ構造を配布するとしてもよい。
【００３２】
この構成によると、管理装置は、基準識別情報を、暗号化鍵の取得に用いた部分集合とし、端末装置へ配布する集合識別情報を、配布する固有情報が対応付けられた部分集合とすることができる。さらに、管理装置は、端末装置へ、各部分集合木を示すデータ構造をも配布することができる。
ここで、前記管理装置は、さらに、部分集合に対して、前記部分集合が属する部分集合木のルートであるルート部分集合から、前記部分集合に至るまでの経路を示す生成経路と、前記ルート部分集合と示すルート識別子とを含む経路情報を取得する経路情報取得手段を備え、前記基準識別情報は、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合の経路情報であり、前記第３書込手段は、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合の経路情報とからなる１以上の組を、前記記録媒体へ書き込み、前記配布手段は、前記取得した固有情報に対する部分集合の経路情報を前記集合識別情報として、前記取得した固有情報と前記集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布するとしてもよい。
【００３３】
この構成によると、管理装置は、基準識別情報を、暗号化鍵の取得に用いた部分集合の経路情報とし、端末装置へ配布する集合識別情報を、配布する固有情報が対応付けられた部分集合の経路情報とすることができる。
また、本発明は、複数の端末装置を識別する各装置識別子を木構造にて管理する管理装置より、暗号化されたデータを復号する復号鍵の基となる固有情報が割り当てられる端末装置であって、前記管理装置は、前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成し、リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付け、関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付け、この関連付けを最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御し、前記最下位レイヤの部分集合の全てに対して、これらの処理が繰り返し処理するよう制御し、前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当て、関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てており、前記端末装置は、前記管理装置から予め配布された、関連付元の各部分集合に対応付けられた各固有情報のうち、当該端末装置の装置識別子を含む固有情報を記憶している固有情報記憶手段を備えることを特徴とする。
【００３４】
この構成によると、端末装置は、固有情報を記憶することができる。従来の管理装置は、レイヤ毎に各部分集合を関連付け、レイヤに存在する最小の要素数の部分集合に対して固有情報を対応付け、関連付けにて繋がった部分集合に対しては、最小の要素数の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けていた。このため、従来の端末装置は、各レイヤにて関連付けされた部分集合の集まり毎に、当該端末装置の装置識別子を含む部分集合に対応付けられた固有情報を、記憶する必要があったが、本発明によると、管理装置は、各レイヤ間の関連付けを行っているため、当該端末装置の端末識別子を含む部分集合に対応付けられた固有情報から派生的に求められる固有情報、つまり上位レイヤの部分集合に対応付けられた固有情報を記憶する必要がない。つまり、端末装置にて記憶する固有情報の数が削減される。
【００３５】
ここで、前記固有情報記憶手段は、さらに、記憶している前記固有情報が対応付けられた部分集合を識別する集合識別情報を記憶しており、前記端末装置は、さらに、
前記集合識別情報が、当該端末装置が有効な装置であることを示すか否かを判断する判断手段と、前記判断手段による判断結果が肯定的である場合に、前記管理装置にて生成された各部分集合に対応付けられた各固有情報のうち特定の固有情報に基づく暗号化鍵により、メディア鍵が暗号化され、且つ前記暗号化鍵に関連する鍵関連情報と対応付けられた暗号化メディア鍵を取得する第１取得手段と、前記固有情報記憶手段にて記憶している前記固有情報を用いて、前記暗号化鍵に対応する復号鍵を取得する第２取得手段と、前記第２取得手段にて取得した前記復号鍵を用いて、前記取得手段にて取得した前記暗号化メディア鍵を復号して、前記メディア鍵を生成する復号手段とを備えるとしてもよい。
【００３６】
この構成によると、端末装置は、当該端末装置が有効な装置である場合に、暗号化メディア鍵及び復号鍵を取得し、取得した復号鍵を用いて、暗号化メディア鍵を復号して、メディア鍵を生成することができる。
ここで、前記特定の固有情報は、前記暗号化メディア鍵の生成時点で有効な端末装置の識別子を１以上含む部分集合に対応付けられた基準固有情報であり、前記暗号化鍵は、共通鍵であり、前記鍵関連情報は、前記基準固有情報が対応付けられた部分集合を識別する基準識別情報であり、前記暗号化メディア鍵は、前記基準識別情報と対応付けられており、前記判断手段は、前記固有情報記憶手段にて記憶している前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在する場合に、前記集合識別情報は、当該端末装置が有効な装置であることを示す判断し、前記第１取得手段は、前記基準識別情報に対応する前記基準固有情報に基づく暗号化鍵により暗号化された前記暗号化メディア鍵を取得し、前記第２取得手段は、前記復号鍵を取得し、取得した前記復号鍵を前記共通鍵とし、前記復号手段は、取得した前記共通鍵を用いて、前記暗号化メディア鍵を復号するとしてもよい。
【００３７】
この構成によると、端末装置は、集合識別情報にて示される部分集合から、基準識別情報にて識別される部分集合に至る経路をもつ場合に、前記集合識別情報は、当該端末装置が有効な装置であることを示すと判断することができる。
ここで、前記管理装置は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記関連付先の部分集合をそっくり含み、最小の要素数からなり、且つ未関連付けである部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付けて、前記最下位レイヤの部分集合をルートする部分集合木を生成し、前記固有情報記憶手段は、さらに、前記管理装置にて生成された前記部分集合木を構成するデータ構造を予め記憶しており、前記判断手段は、前記データ構造により構成される前記部分集合木を用いて、前記固有情報記憶手段にて記憶している前記固有情報が対応付けられた部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在するか否かを判断するとしてもよい。
【００３８】
この構成によると、端末装置は、部分集合木を構成するデータ構造を用いて、集合識別情報にて示される部分集合から、基準識別情報にて識別される部分集合に至る経路が存在するか否かを判断することができる。
ここで、前記管理装置は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記関連付先の部分集合をそっくり含み、最小の要素数からなり、且つ未関連付けである部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付けて、前記最下位レイヤの部分集合をルートする部分集合木を生成し、前記基準識別情報は、前記基準固有情報が対応付けられた基準部分集合に対して、前記許可集合木のルートから、当該基準部分集合に至るまでの第１生成経路を含み、前記集合識別情報は、前記固有情報が対応付けられた部分集合に対して、前記部分集合木のルートから、当該部分集合に至るまでの第２生成経路を含み、前記判断手段は、前記第２生成経路が前記第１生成経路に含まれる場合に、前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在すると判断するとしてもよい。
【００３９】
この構成によると、端末装置は、基準識別情報に含まれる第１生成経路、及び各集合識別情報のそれぞれに含まれる第２生成経路を用いて、記憶している集合識別情報が、当該端末装置が有効な装置であることを示すか否かを判断することができる。
ここで、前記管理装置は、部分集合に対応付けられた固有情報を、一方向性関数に対する入力の情報として与え、前記固有情報に基づく共通鍵、及び前記固有情報から派生する固有情報を生成し、生成した固有情報を、入力の情報として与えた前記固有情報が対応付けられた部分集合と関連付けされた部分集合に対応付けて、関連付けされた部分集合に含まれる各装置識別子に、生成した固有情報を割り当て、前記第２取得手段は、前記一方向性関数と同一の関数を用いて、前記固有情報記憶手段にて記憶している前記固有情報から、前記固有情報に基づくデバイス鍵と、前記固有情報から派生する固有情報とを生成して、取得するデバイス鍵取得部と、前記基準固有情報に基づくデバイス鍵を取得するまで、前記デバイス鍵取得部にて取得した前記固有情報を、前記関数に対する次の入力の情報として与えて、前記デバイス鍵取得部の動作を繰り返すよう制御する繰返部と、前記デバイス鍵取得部にて取得した前記基準固有情報に基づくデバイス鍵を、前記共通鍵として取得する復号鍵取得手段とを備えるとしてもよい。
【００４０】
この構成によると、端末装置は、管理装置が有する一方向性関数と同一の関数を用いて、固有情報記憶手段にて記憶している固有情報から、基準固有情報に対応するデバイス鍵を共通鍵として取得することができる。
ここで、前記端末装置は、さらに、コンテンツを取得するコンテンツ取得手段と、コンテンツ鍵を取得するコンテンツ鍵取得手段と、前記コンテンツ鍵取得手段にて取得した前記コンテンツ鍵を、前記復号手段にて取得したメディア鍵を用いて、暗号化して暗号化コンテンツ鍵を生成する第１暗号化手段と、前記コンテンツ取得手段にて取得した前記コンテンツを、前記コンテンツ鍵取得手段にて取得したコンテンツ鍵を用いて、暗号化して暗号化コンテンツを生成する第２暗号化手段と、前記暗号化コンテンツ鍵と、前記暗号化コンテンツとを、記録媒体へ書き込む書込手段とを備えるとしてもよい。
【００４１】
この構成によると、端末装置は、取得した共通鍵を用いて、コンテンツ鍵を暗号化して暗号化コンテンツ鍵を生成し、コンテンツ鍵を用いて、コンテンツを暗号化して暗号化コンテンツを生成し、生成した暗号化コンテンツ鍵及び暗号化コンテンツを記録媒体へ書き込むことができる。これにより、端末装置は、当該端末装置が有効な端末であると判断する場合に、暗号化コンテンツ鍵及び暗号化コンテンツを生成することができ、コンテンツに対する著作権が保護される。
【００４２】
ここで、前記書込手段は、前記暗号化コンテンツ鍵と、前記暗号化コンテンツとを、ネットワーク上に存在する装置が有する前記記録媒体へ、通信媒体を介して書き込むとしてもよい。
この構成によると、端末装置は、生成した暗号化コンテンツ鍵及び暗号化コンテンツを、通信媒体を介して、記録媒体へ書き込むことができる。
【００４３】
ここで、前記端末装置は、さらに、コンテンツ鍵が前記メディア鍵にて暗号化された暗号化コンテンツ鍵を取得する暗号化コンテンツ鍵取得手段と、コンテンツが前記コンテンツ鍵にて暗号化された暗号化コンテンツを取得する暗号化コンテンツ取得手段と、前記暗号化コンテンツ鍵取得手段にて取得した暗号化コンテンツ鍵を、前記メディア鍵を用いて、復号して、前記コンテンツ鍵を生成する第１復号手段と、前記暗号化コンテンツ取得手段にて取得した暗号化コンテンツを、前記コンテンツ鍵を用いて、復号して、前記コンテンツを生成する第２復号手段と、前記第２復号にて生成された前記コンテンツを再生する再生手段とを備えるとしてもよい。
【００４４】
この構成によると、端末装置は、取得した共通鍵を用いて、暗号化コンテンツ鍵を復号して、コンテンツ鍵を生成し、生成したコンテンツ鍵を用いて、暗号化コンテンツを復号して、コンテンツを生成し、生成したコンテンツを再生することができる。これにより、端末装置は、当該端末装置が有効な端末であると判断する場合に、暗号化コンテンツからコンテンツを生成し、生成したコンテンツを再生することができ、コンテンツに対する著作権が保護される。
【００４５】
ここで、前記暗号化コンテンツ鍵及び前記暗号化コンテンツは、記録媒体に記録されており、前記記録媒体は、当該端末装置に装着され、前記暗号化コンテンツ鍵取得手段は、前記記録媒体から、前記暗号化コンテンツ鍵を取得し、前記暗号化コンテンツ取得手段は、前記記録媒体から、前記コンテンツを取得するとしてもよい。
この構成によると、端末装置は、暗号化コンテンツ鍵及び暗号化コンテンツを、当該端末装置に装着された記録媒体から取得し、コンテンツを生成することができる。
【００４６】
ここで、前記暗号化コンテンツ鍵取得手段は、通信媒体を介して、前記暗号化コンテンツ鍵を取得し、前記暗号化コンテンツ取得手段は、通信媒体を介して、前記コンテンツを取得するとしてもよい。
この構成によると、端末装置は、暗号化コンテンツ鍵及び暗号化コンテンツを、通信媒体を介して取得し、コンテンツを生成することができる。
【００４７】
また、本発明は、複数の端末装置と、前記複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置とからなる著作権保護システムであって、前記管理装置は、前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、リーフのレイヤを除く最下位レイヤの部分集合をそっくり含む部分集合を直上位のレイヤから検索し、関連付ける第１関連付手段と、関連付先の部分集合をそっくり含む部分集合を同一レイヤ及び直上位のレイヤの何れかから検索し、関連付ける第２関連付手段と、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御する第１制御手段と、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、前記最下位レイヤの関連付元の部分集合に、固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる装置識別子に割り当てる第１割当手段と、関連付けにより、レイヤにまたがって繋がった部分集合に、前記関連付元の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けて、当該固有情報を、当該部分集合に含まれる各装置識別子に割り当てる第２割当手段とを備えることを特徴とする。
【００４８】
この構成によると、著作権保護システムの管理装置は、第１関連付手段、第２関連付手段、第１制御手段、及び第２制御手段を用いて、最下位レイヤの部分集合から最上位レイヤの部分集合まで関連付けることができる。また、管理装置は、第２割当手段を用いて、関連付けにより繋がった部分集合に、最下位レイヤの部分集合に対応付けられた固有情報から派生的に求められる固有情報を対応付けることができる。従来の管理装置は、各レイヤの最小の要素数からなる各部分集合に対して、互いに関連性がない各固有情報を予め用意する必要があったが、本発明では、管理装置は、最下位レイヤの各部分集合のみに、互いに異なる各固有情報を用意するだけでよい。つまり、管理装置は、他の固有情報から生成されることのない固有情報を予め用意する際に、その個数を削減することができる。
【００４９】
ここで、前記第１関連付手段は、前記最下位レイヤの部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記最下位レイヤの部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記第２関連付手段は、前記関連付先の部分集合をそっくり含み、且つ最小の要素数からなる部分集合を検索し、前記関連付先の部分集合を親ノードとし、検索した部分集合を子ノードとして、関連付け、前記第１制御手段は、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成するとしてもよい。
【００５０】
この構成によると、著作権保護システムの管理装置は、最下位レイヤの部分集合をルートする部分集合木を生成することができる。これにより、管理装置は、部分集合間の関連付けを木構造にて管理することができる。
ここで、前記第１関連付手段は、前記最下位レイヤに対する各上位レイヤの各部分集合のうち、関連付けがなされた１以上の部分集合を除外し、残りの１以上の部分集合を用いて、最上位レイヤに至るまで、前記第２関連付手段が繰り返し処理するよう制御して、前記最下位レイヤの部分集合をルートする部分集合木を生成するとしてもよい。
【００５１】
この構成によると、著作権保護システムの管理装置は、部分集合生成手段にて生成した各部分集合を１回のみ使用して、最下位レイヤの各部分集合をルートとする各部分集合木を生成することができる。
ここで、前記第２割当手段は、前記派生的に求められる固有情報を、前記関連付元の部分集合に対応付けられた固有情報から一方向性関数を用いて生成し、生成した固有情報を、関連付けにより繋がった部分集合に対応付けるとしてもよい。
【００５２】
この構成によると、著作権保護システムの管理装置は、一方向性関数を用いて、最下位レイヤの部分集合に対応付けられた固有情報から、関連付けにより繋がった部分集合に対応付ける固有情報を生成することができる。
ここで、前記管理装置は、さらに、前記部分集合木のルートから１以上のリーフそれぞれに至る各経路において、固有情報を配布する配布対象の端末装置の識別子が、要素として初めて出現する部分集合が存在する場合に、前部分集合に対応付けされた固有情報を１以上取得する固有情報取得手段と、取得した固有情報と、固有情報に対応する部分集合を識別する集合識別情報とからなる１以上の組を、前記配布対象の端末装置へ配布する配布手段とを備えるとしてもよい。
【００５３】
この構成によると、著作権保護システムの管理装置は、固有情報とその固有情報に対応する集合識別情報とからなる１以上の組を、配布対象の端末装置へ配布することができる。これにより、端末装置へ配布する固有情報の数を、従来よりも少なくすることができる。従来、各レイヤにおいて、部分集合間の関連付けを行い、レイヤ毎に、配布する固有情報を取得していたが、本発明によると、配布する固有情報が対応付けられた部分集合より上位レイヤに存在し、関連付けにより繋がった部分集合に対応付けられた固有情報を配布する必要が無い。なぜなら、配布する固有情報から、上位レイヤに存在し、関連付けにより繋がった部分集合に対応付けられた固有情報を派生的に求めることができるからである。これにより、管理装置は、配布対象の端末装置へ配布する固有情報の数を削減することができる。つまり、管理装置は、端末装置へ割り当てる鍵の数を削減することができる。
【００５４】
ここで、前記管理装置は、さらに、前記部分集合木の構成要素である各部分集合と、前記各部分集合のそれぞれに対応付けされた前記固有情報とを記憶する領域を有する第１記憶手段と、前記部分集合木を構成する複数のノードと、各ノードの子ノードとを記憶する領域を有する第２記憶手段と、前記部分集合と、前記部分集合に対応付けされた固有情報とを対応付けて、前記第１記憶手段に書き込む第１書込手段と、前記部分集合木を構成する前記ノードと、前記ノードの子ノードとを対応付けて、前記第２記憶手段に書き込む第２書込手段とを備えるとしてもよい。
【００５５】
この構成によると、著作権保護システムの管理装置は、部分集合と部分集合に対応付けられた固有情報とを対応付けて記憶することができる。また、管理装置は、部分集合木を構成する複数のノードと、各ノードの子ノードとを対応付けて記憶することができる。
ここで、前記第２制御手段は、前記最下位レイヤの部分集合の全てに対して、前記第１関連付手段、前記第２関連付手段、及び前記第１制御手段が繰り返し処理するよう制御して、複数の部分集合木を生成し、前記第１記憶手段は、各部分集合木に含まれる各部分集合と、前記各部分集合のそれぞれに対応付けされた各固有情報とを記憶しており、前記管理装置は、さらに、前記複数の端末装置のうち、１以上の無効な端末を示す無効な識別子を記憶する領域を有する無効化識別子記憶手段と、前記無効化識別子記憶手段にて記憶されている内容に基づいて、前記第１記憶手段より１以上の部分集合を取得し、取得した各部分集合のそれぞれに対応付けされた各固有情報に基づいて、１以上の暗号化鍵を取得し、取得した各暗号化鍵を個別に用いて、コンテンツの利用に用いるメディア鍵を暗号し、前記１以上の暗号化鍵と同数の暗号化メディア鍵を生成する暗号化鍵生成手段と、前記暗号化メディア鍵と、前記暗号化メディア鍵に対する暗号化鍵の取得に用いられた部分集合を識別する基準識別情報とからなる１以上の組を、当該管理装置に装着された記録媒体へ書き込む第３書込手段とを備えるとしてもよい。
【００５６】
この構成によると、著作権保護システムの管理装置は、１以上の暗号化メディア鍵を生成し、生成した暗号化メディア鍵と、基準識別情報とからなる１以上の組を、装着された記録媒体に書き込むことができる。
ここで、前記管理装置は、さらに、無効な識別子を受け取り、受け取った無効な識別子を前記無効化識別子記憶手段へ書き込む無効化識別子受取手段を備えるとしてもよい。
【００５７】
この構成によると、著作権保護システムの管理装置は、無効な識別子を受け取り、受け取った無効な識別子を無効化識別子記憶手段へ書き込むことができる。
ここで、前記暗号化鍵は、前記復号鍵と同一の共通鍵であり、前記一方向性関数は、さらに、各固有情報から前記各固有情報に基づく各共通鍵を生成し、前記暗号化鍵生成手段は、前記無効化識別子記憶手段にて記憶されている無効な識別子を除く１以上の有効な識別子を最も多く含む部分集合を、前記第１記憶手段より取得する部分集合取得部と、全ての有効な識別子が、前記部分集合取得部にて取得される１以上の部分集合の何れかに属するまで、前記部分集合取得部が繰り返し処理するよう制御する制御部と、前記一方向性関数を用いて、前記部分集合取得部にて取得した各部分集合のそれぞれに対応付けされた各固有情報から生成された１以上の共通鍵を取得する共通鍵取得部と、前記共通鍵取得部にて取得した各共通鍵を用いて、共通鍵の数と同数の暗号化メディア鍵を生成する暗号化部とを備えるとしてもよい。
【００５８】
この構成によると、著作権保護システムの管理装置は、暗号化鍵である共通鍵を、一方向性関数を用いて、有効な識別子からなる部分集合に対応する固有情報から生成し、生成した共通鍵を用いて、暗号化メディア鍵を生成することができる。
ここで、前記端末装置は、前記管理装置の配布手段にて予め配布された固有情報と、前記記固有情報が対応付けされた部分集合を識別する集合識別情報とからなる１以上の組を記憶している固有情報記憶手段と、前記集合識別情報が、当該端末装置が有効な装置であることを示すか否かを判断する判断手段と、前記判断手段による判断結果が肯定的である場合に、前記記録媒体から暗号化メディア鍵を１個取得する第１取得手段と、前記固有情報記憶手段にて記憶している前記固有情報を用いて、前記暗号化鍵に対応する復号鍵を取得する第２取得手段と、前記第２取得手段にて取得した前記復号鍵を用いて、前記取得手段にて取得した前記暗号化メディア鍵を復号して、前記メディア鍵を生成する復号手段とを備えるとしてもよい。
【００５９】
この構成によると、著作権保護システムの端末装置は、固有情報を記憶することができる。従来の管理装置は、レイヤ毎に各部分集合を関連付け、レイヤに存在する最小の要素数の部分集合に対して固有情報を対応付け、関連付けにて繋がった部分集合に対しては、最小の要素数の部分集合に割り当てた固有情報から派生的に求められる固有情報を対応付けていた。このため、従来の端末装置は、各レイヤにて関連付けされた部分集合の集まり毎に、当該端末装置の装置識別子を含む部分集合に対応付けられた固有情報を、記憶する必要があったが、本発明によると、管理装置は、各レイヤ間の関連付けを行っているため、当該端末装置の端末識別子を含む部分集合に対応付けられた固有情報から派生的に求められる固有情報、つまり上位レイヤの部分集合に対応付けられた固有情報を記憶する必要がない。つまり、端末装置にて記憶する固有情報の数が削減される。
【００６０】
また、端末装置は、当該端末装置が有効な装置である場合に、暗号化メディア鍵及び復号鍵を取得し、取得した復号鍵を用いて、暗号化メディア鍵を復号して、メディア鍵を生成することができる。
ここで、前記暗号化鍵は、共通鍵であり、前記判断手段は、前記固有情報記憶手段にて記憶している前記集合識別情報にて識別される部分集合から、前記基準識別情報にて識別される部分集合に至る経路が存在する場合に、前記集合識別情報は、当該端末装置が有効な装置であることを示す判断し、前記第１取得手段は、前記基準識別情報に対応する暗号化メディア鍵を取得し、前記第２取得手段は、前記復号鍵を取得し、取得した前記復号鍵を前記共通鍵とし、前記復号手段は、取得した前記共通鍵を用いて、前記暗号化メディア鍵を復号するとしてもよい。
【００６１】
この構成によると、著作権保護システムの端末装置は、集合識別情報にて示される部分集合から、基準識別情報にて識別される部分集合に至る経路をもつ場合に、前記集合識別情報は、当該端末装置が有効な端末装置であることを示すと判断することができる。
ここで、前記第２取得手段は、前記一方向性関数と同一の関数を用いて、前記固有情報記憶手段にて記憶している前記固有情報から、前記固有情報に基づくデバイス鍵と、前記固有情報から派生する固有情報とを生成して、取得するデバイス鍵取得部と、前記基準固有情報に基づくデバイス鍵を取得するまで、前記デバイス鍵取得部にて取得した前記固有情報を、前記関数に対する次の入力の情報として与えて、前記デバイス鍵取得部の動作を繰り返すよう制御する繰返部と、前記デバイス鍵取得部にて取得した前記基準固有情報に基づくデバイス鍵を、前記共通鍵として取得する復号鍵取得手段とを備えるとしてもよい。
【００６２】
この構成によると、著作権保護システムの端末装置は、管理装置が有する一方向性関数と同一の関数を用いて、基準固有情報に対応するデバイス鍵を共通鍵として取得することができる。
また、本発明は、複数の端末装置を識別する各装置識別子を木構造のリーフに配し、各装置識別子に、暗号化されたデータを復号する復号鍵の基となる固有情報を割り当て、管理する管理装置であって、前記木構造のリーフを除く各レイヤのノードにおいて、その配下に存する装置識別子の部分集合を求めて、生成する部分集合生成手段と、同一レイヤにおいて存在する部分集合のうち、最小の要素数の部分集合を含む他の部分集合を、最小の要素数の部分集合とともに１つのグループにまとめるグループ生成手段と、同一レイヤの存在する最小の要素数の部分集合の全てに対して、前記グループ生成手段が繰り返し処理するよう制御する第１制御手段と、全てのレイヤに対して、前記グループ生成手段及び前記第１制御手段が繰り返し処理するよう制御する第２制御手段と、前記第２制御手段にて全てのレイヤに対して、処理を行った後、異なるレイヤ間において、下位レイヤのグループの何れかの部分集合を全て含む部分集合を有する上位レイヤのグループを、当該下位レイヤのグループと１のグループに統合する統合手段と、全てのレイヤにおいてグループの統合後に、残存する各グループ内の最小の要素数の各部分集合に対して、各固有情報を対応付けて、各部分集合に含まれる１以上の装置識別子に、対応付けられた各固有情報を割り当てる第１割当手段と、前記第１割当手段にて各固有情報を割り当てた最小の要素数の各部分集合と異なる各部分集合に対して、部分集合が属するグループに存在する最小の要素数の部分集合に対応付けされた固有情報から派生的に求められる固有情報を対応付けて、各部分集合に含まれる１以上の装置識別子に、対応付けられた固有情報を割り当てる第２割当手段とを備えることを特徴とする。
【００６３】
この構成によると、管理装置は、統合手段を用いて、最下位レイヤの部分集合から最上位レイヤの部分集合までの関連付けることができる。また、管理装置は、第２割当手段を用いて、関連付けにより繋がった部分集合に、最下位レイヤの部分集合に対応付けられた固有情報から派生的に求められる固有情報を対応付けることができる。従来の管理装置は、各レイヤの最小の要素数からなる各部分集合に対して、互いに関連性がない各固有情報を予め用意する必要があったが、本発明では、管理装置は、最下位レイヤの各部分集合のみに、互いに異なる各固有情報を用意するだけでよい。つまり、管理装置は、他の固有情報から生成されることのない固有情報を予め用意する際に、その個数を削減することができる。
【発明を実施するための最良の形態】
【００６４】
１．第１の実施の形態
１．１  著作権保護システム１０の構成
本発明に係る実施の形態としての著作権保護システム１０の構成を図１にて示す。
著作権保護システム１０は、鍵管理装置１００、記録媒体２００、記録装置３００ａ、３００ｂ、・・・、３００ｃ、及び再生装置４００ａ、４００ｂ、・・・、４００ｃからなる。
【００６５】
鍵管理装置１００は、ＤＶＤ−ＲＡＭ等のレコーダブルメディアであって、今だ何らの情報も記録されていない記録媒体２００に、鍵無効化データを記録して、鍵無効化データが記録された記録媒体２００を予め生成しておく。なお、何らの情報も記録されていない記録媒体２００と、鍵無効化データが記録された記録媒体２００とを区別するために、以降では、何らの情報も記録されていない記録媒体２００を記録媒体２００ａ、鍵無効化データが記録された記録媒体２００を記録媒体２００ｂと記述する。ここで、鍵無効化データとは、鍵管理装置１００が予め記憶しているメディア鍵が暗号化された暗号化メディア鍵と、記録装置３００ａ、３００ｂ、・・・、３００ｃ、再生装置４００ａ、４００ｂ、・・・、４００ｃのうち有効な装置がもつ装置識別子の集合からなる情報とを含んでいる。有効な装置がもつ装置識別子の集合は、各装置が有する装置識別子からなる集合の部分集合である。
【００６６】
また、鍵管理装置１００は、記録装置３００ａ、３００ｂ、・・・、３００ｃ及び再生装置４００ａ、４００ｂ、・・・、４００ｃのそれぞれに対して、１以上の鍵情報を割り当て、割り当てた１以上の鍵情報を、各装置へ予め配布しておく。ここで、鍵情報は、暗号化メディア鍵を復号するためのデバイス鍵を生成する基となるラベルと、ラベルを割り当てた装置が有する装置識別子の集合とを含む。
【００６７】
記録装置３００ａは、デジタル化されたコンテンツを暗号化して、暗号化コンテンツを生成し、生成した暗号化コンテンツを、当該記録装置３００ａに装着された記録媒体２００ｂに記録して、暗号化コンテンツが記録された記録媒体２００を生成する。以降では、暗号化コンテンツが記録された記録媒体２００を、記録媒体２００ｃと記述する。ここで、コンテンツは、映像情報及び音声情報からなる。
【００６８】
再生装置４００ａは、当該再生装置４００ａに装着された記録媒体２００ｃから暗号化コンテンツを取り出し、取り出した暗号化コンテンツを復号して、元のコンテンツを得る。
なお、記録装置３００ｂ、・・・、３００ｃは、記録装置３００ａと同様に動作し、再生装置４００ｂ、・・・、４００ｃは、再生装置４００ａと同様に動作する。
【００６９】
また、以降において、部分集合を、当該部分集合に含まれる全ての要素を羅列して表記する。例えば、装置識別子１、２、３からなる部分集合を、部分集合「１２３」と表記し、装置識別子３、４からなる部分集合を、部分集合「３４」と表記する。
１．２  鍵管理装置１００
鍵管理装置１００は、図２に示すように、装置情報格納部１０１、情報格納部１０２、情報生成部１０３、配布部１０４、無効化装置特定部１０５、鍵無効化データ生成部１０６、受付部１０７及び出力部１０８から構成されている。
【００７０】
鍵管理装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、鍵管理装置１００は、その機能を達成する。
【００７１】
（１）装置情報格納部１０１
装置情報格納部１０１は、具体的にはハードディスクユニットから構成されており、図３に一例として示す２分木の木構造Ｔ１００にて、各記録装置及び各再生装置のそれぞれを識別する装置識別子を管理するために、木構造Ｔ１００を表現するためのデータ構造として、図４に示す木構造テーブルＴ１０１を記憶している。
【００７２】
先ず、木構造Ｔ１００について、説明する。図３は、一例として、記録装置及び再生装置の総数を８台とした場合の木構造Ｔ１００を示している。木構造における各層をレイヤと呼び、レイヤ０のノードをルート、最下位レイヤ（図３の例では、レイヤ３）のノードをリーフと呼ぶ。また、各装置は、木構造のリーフに対して１対１に割り当てられる。リーフに割り当てられる情報は、各装置を識別する装置識別子である。木構造Ｔ１００には、８個のリーフに対して、それぞれ装置識別子１〜８が割り当てられている。
【００７３】
例えば、ノードＴ１３０「Ｅ０」は、木構造Ｔ１００のルートであり、ノードＴ１３１「Ｅ７」は、木構造Ｔ１００のリーフであり、装置識別子「装置１」が割り当てられている。
次に、木構造テーブルＴ１０１について説明する。木構造テーブルＴ１０１は、親ノードと、それに対応する子ノードと装置識別子とからなる組を１以上、予め記憶している。親ノード名は、木構造Ｔ１００が有するノードを示し、子ノード名は、親ノード名にて示されるノードの子ノードを示す。ただし、親ノードにて示されるノードがリーフである場合には、記号「−」が記録されている。装置識別子は、各リーフに割り当てられた装置を識別する識別子であり、親ノード名にて示されるノードがリーフ以外である場合には、記号「−」が記録されている。
【００７４】
例えば、木構造テーブルＴ１０１にて示される組Ｔ１７０は、親ノード名Ｔ１７１「Ｅ０」、子ノード名Ｔ１７２「Ｅ１」、及び記号Ｔ１７３「−」が記録された装置識別子からなる。また、組Ｔ１７５は、親ノード名Ｔ１７６「Ｅ７」、記号「−」が記録された子ノード名、及び装置識別子Ｔ１７８「装置１」からなる。これにより、ノード「Ｅ０」は、子ノードとして「Ｅ１」をもち、ノード「Ｅ７」は、リーフであり、且つ装置識別子「装置１」が割り当てられていることが分かる。
【００７５】
以上により、鍵管理装置１００は、装置情報格納部１０１にて各装置識別子を管理、つまり、各記録装置及び各再生装置を管理することができる。
（２）情報格納部１０２
情報格納部１０２は、具体的にはハードディスクユニットから構成されており、図５及び図６に一例として示すように、デバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を有している。
【００７６】
＜デバイス鍵テーブルＤ１００＞
デバイス鍵テーブルＤ１００は、有効な装置の装置識別子からなる部分集合と、その部分集合に対応付けられたラベル名と、ラベル名から生成されるデバイス鍵とからなる組を１以上有している。後述するように、情報生成部１０３によりデバイス鍵テーブルＤ１００が生成され、情報格納部１０２に書き込まれる。なお、デバイス鍵テーブルＤ１００は、記録装置及び再生装置の総数を８台とした場合において、情報生成部１０３にて生成された結果を示す。
【００７７】
デバイス鍵テーブルＤ１００の各項目において、上段に部分集合、中段にラベル名、下段にデバイス鍵が記載される。例えば、項目Ｄ２００において、上段に部分集合Ｄ２０１「１」、中段にラベルＤ２０２「Ａ１」及び下段にデバイス鍵Ｄ２０３「Ｋ１」が記載される。
＜相互関係テーブルＤ１０１＞
相互関係テーブルＤ１０１は、図７及び図８に一例として示す部分集合の木構造Ｔ２０１、Ｔ２０２、Ｔ２０３、Ｔ２０４、Ｔ２０５、Ｔ２０６、Ｔ２０７及びＴ２０８に対応しており、各部分集合の木構造を表現するためのデータ構造を示す。後述するように、情報生成部１０３により各部分集合の木構造を表現するためのデータ構造が、相互関係テーブルＤ１０１として生成され、情報格納部１０２に書き込まれる。なお、相互関係テーブルＤ１０１は、記録装置及び再生装置の総数を８台とした場合において、情報生成部１０３にて生成された結果を示す。
【００７８】
ここで、先ず各部分集合の木構造について説明する。
部分集合の木構造Ｔ２０１及びＴ２０５は、それぞれ部分集合「１」及び部分集合「５」をルートし、レイヤ０からレイヤ５までの６階層からなる。部分集合の木構造Ｔ２０１及びＴ２０５の各ノードは、デバイス鍵テーブルＤ１００に記録されている部分集合のうち、そのノードに対する親ノードを含み、且つ要素数が最小となる部分集合である。
【００７９】
例えば、レイヤ１に存在するノードは、ルートである部分集合「１」を含み、要素数が最小の部分集合「１２」となる。また、レイヤ２には、レイヤ１のノードである部分集合「１２」を含み、要素数が最小の部分集合である部分集合「１２３」及び部分集合「１２４」をノードとしてもつ。
部分集合の木構造Ｔ２０２、Ｔ２０４、Ｔ２０６及びＴ２０８は、それぞれ部分集合「２」、部分集合「４」、部分集合「６」及び部分集合「８」をルートし、レイヤ０の１階層からなる。つまり、ルートから子ノードの関連付けがなされていない。
【００８０】
部分集合の木構造Ｔ２０３及びＴ２０７は、それぞれ部分集合「３」及び部分集合「７」をルートし、レイヤ０からレイヤ５までの６階層からなる。部分集合の木構造Ｔ２０３及びＴ２０７の各ノードは、デバイス鍵テーブルＤ１００に記録されている部分集合のうち、そのノードに対する親ノードを含み、要素数が最小の部分集合である。
以下、相互関係テーブルＤ１０１について説明する。
【００８１】
相互関係テーブルＤ１０１は、部分集合の木構造Ｔ２０１、Ｔ２０２、Ｔ２０３、Ｔ２０４、Ｔ２０５、Ｔ２０６、Ｔ２０７及びＴ２０８に含まれるノードと同じ数のノード情報及びそのノード情報に対応するルート情報とを含んで構成されている。ここで、ノード情報は、親ノード及び子ノードからなる。各親ノードは、部分集合の木構造Ｔ２０１からＴ２０８を構成する各ノードに対応する部分集合を示し、子ノードは、当該親ノードより関連付けられる部分集合を示す。
【００８２】
なお、子ノードに記載されている「−」は、当該親ノードより関連付けされる部分集合が存在しないことを示す。また、親ノードにて同一の部分集合が２つ記録されている場合には、その部分集合に対する子ノードが２つ存在することを示している。このとき、上位に記録されている部分集合に対する子ノードは、左の子ノードを示し、下位に記録されている部分集合に対する子ノードは、右の子ノードを示す。親ノードにて、部分集合が１回のみ記録されている場合には、その部分集合に対する子ノードは１つであることを示しており、その子ノードは、右の子ノードを示す。
【００８３】
ルート情報は、対応する親ノードに記録されているノードがルートであるか否かを示す。親ノードに記録されているノードがルートである場合には、ルートであることを示す情報（ここでは、「ルート」）が記録され、ルートでない場合には、何も記録されない。
（３）情報生成部１０３
情報生成部１０３は、一方向性関数であり、入力データ長Ｘビットに対して、３Ｘビットの乱数を生成する擬似乱数生成器Ｇ１５０を予め記憶している。なお、擬似乱数生成器Ｇ１５０に対して、値ａ１を入力した場合の結果と、値ａ１とは異なる値ａ２を入力した場合の結果とは異なる。
【００８４】
ここで、擬似乱数生成器Ｇ１５０の動作について、図９を用いて説明する。擬似乱数生成器Ｇ１５０は、データ長がＸビットである入力値ｔを受け取ると、初期値Ｉｖと、ＡＥＳ関数とを利用して、Ｘビットからなるｔ１を生成し、さらに、入力値ｔと、ＡＥＳ関数と、初期値Ｉｖに生成した値ｔ１を加算した値とを利用して、Ｘビットからなるｔ２を生成し、さらに、入力値ｔと、ＡＥＳ関数と、初期値Ｉｖに生成した値ｔ２を加算した値とを利用して、Ｘビットからなるｔ３を生成し、生成したｔ１、ｔ２及びｔ３を結合して、３Ｘビットからなる値ｔ１｜｜ｔ２｜｜ｔ３を出力する。なお、記号「｜｜」は結合を意味する。ここで。値ｔ１は、入力値ｔに対するノードの子ノードを関連付ける際に、左の子ノードに対応するラベルであり、値ｔ３は、入力値ｔに対するノードの子ノードを関連付ける際に、右の子ノードに対応するラベルであり、値ｔ２は、入力値ｔに対するノードに割り当てられるデバイス鍵である。以降では、値ｔ１を左ラベル、値ｔ３を右ラベル、真ん中に位置する値ｔ２をデバイス鍵と呼ぶ。
【００８５】
情報生成部１０３は、デバイス鍵テーブルＤ１００と同様の枠組みをもち、初期状態として何ら記録されていない作業用デバイス鍵テーブルを有している。つまり、作業用デバイス鍵テーブルは、デバイス鍵テーブルＤ１００において、何ら記録されていない状態のテーブルである。
情報生成部１０３は、受付部１０７よりデバイス鍵を生成及びデバイス鍵テーブルＤ１００へ格納する旨を示す生成指示を受け取る。
【００８６】
情報生成部１０３は、生成指示を受け取ると、装置情報格納部１０１にて、２分木により管理している全装置、つまり装置識別子から、有効な装置を示すの装置識別子からなる部分集合を１以上生成し、生成した各部分集合の関連付けを行い、相互関係テーブルＤ１０１を生成し、さらには、各部分集合に対して、ラベル及びデバイス鍵を生成し、生成したラベル及びデバイス鍵を割り当てたデバイス鍵テーブルＤ１００を生成する。情報生成部１０３は、生成したデバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を、情報格納部１０２へ書き込む。
【００８７】
＜部分集合の生成＞
情報生成部１０３は、装置情報格納部１０１にて管理している木構造の高さＴを取得し、作業用デバイス鍵テーブルの行カウンタｎに初期値０をセットする。
情報生成部１０３は、次の動作（ａ１）〜（ａ６）をｉ＝０〜Ｔ−１までの間、繰り返す。
【００８８】
（ａ１）情報生成部１０３は、レイヤｉの存在するノードの数Ｎを取得する。次に、情報生成部１０３は、レイヤｉに存在するノードをルートとする部分木の高さＨを取得する。
（ａ２）次の動作（ａ３）〜（ａ６）をｊ＝０〜Ｈ−１までの間繰り返す。
（ａ３）行カウンタｎに１を加算し、加算結果をｎとする。
【００８９】
（ａ４）次の動作（ａ５）及び（ａ６）をｋ＝１〜Ｎまでの間繰り返す。
（ａ５）レイヤｉの左からｋ番目のノードをルートとする部分木を取得し、取得した部分木のリーフから、２＾ｊ個の端末識別子を除き、残り１以上の端末識別子からなる部分集合を１個以上生成する。これにより、無効な端末識別子を除いた有効な端末識別子からなる部分集合が生成される。ただし、複数の装置を除く場合、つまり複数の無効な装置識別子を除く場合には、無効な端末識別子全てが共通にもち、且つ無効な端末装置識別子だけがもつ上位ノードが存在する場合のみとする。
【００９０】
（ａ６）生成した各部分集合を、作業用デバイス鍵テーブルのｎ行目の未記録の列に対して、左から順に書き込む。
上記の動作により、情報生成部１０３は、作業用デバイス鍵テーブルから、部分集合のみが記録されたデバイス鍵テーブルＤ１００ａを生成する。以上により、上記の動作にて、部分集合を生成する部分集合生成部が構成されることになる。
【００９１】
なお、図１０に示すデバイス鍵テーブルＤ１００ａは、図３に示す木構造Ｔ１００を用いて、部分集合を生成した場合の結果である。以下に、図３に示す木構造Ｔ１００を用いて、図１０に示すデバイス鍵テーブルＤ１００ａを生成する具体的な動作について、説明する。
＜デバイス鍵テーブルＤ１００ａの生成の具体例＞
情報生成部１０３は、木構造Ｔ１００の高さＴ＝３を取得し、行カウンタｎに初期値０をセットする。
【００９２】
情報生成部１０３は、以下の動作をｉ＝０〜２まで繰り返す。
（ｉ＝０の場合）
情報生成部１０３は、動作（ａ）により、レイヤｉ＝０の存在するノードの数Ｎ＝１を取得する。次に、情報生成部１０３は、レイヤｉ＝０に存在するノードをルートとする部分木の高さＨ＝３を取得する。
【００９３】
情報生成部１０３は、動作（ａ２）において、ｊ＝０〜２までの間、動作（ａ３）〜（ａ６）を繰り返す。
ｊ＝０の場合、先ず、動作（ａ３）において、行カウンタｎ（＝０）に１加算し、ｎ＝１とする。次に、動作（ａ４）の繰り返しにより、動作（ａ５）及び（ａ６）を、ｋ＝１回行う。
【００９４】
動作（ａ５）において、レイヤ０の左から１番目をルートとする部分木、つまり木構造Ｔ１００から、２＾０（＝１）個の端末識別子を除いた部分集合「１２３４５６７」、「１２３４５６８」、「１２３４５７８」、「１２３４６７８」、「１２３５６７８」、「１２４５６７８」、「１３４５６７８」及び「２３４５６７８」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝１行目の未記録の列に対して、左から順に書き込む。
【００９５】
ｊ＝１の場合、動作（ａ３）において、現時点での行カウンタｎ（＝１）の値に１加算し、ｎ＝２とする。次に、動作（ａ４）の繰り返しにより、動作（ａ５）及び（ａ６）を、ｋ＝１回行う。
動作（ａ５）において、木構造Ｔ１００から、２＾１（＝２）個の端末識別子を除いた部分集合「１２３４５６」、「１２３４７８」、「１２５６７８」及び「３４５６７８」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝２行目の未記録の列に対して、左から順に書き込む。
【００９６】
ｊ＝２の場合、動作（ａ３）において、現時点での行カウンタｎ（＝２）の値に１加算し、ｎ＝３とする。次に、動作（ａ４）の繰り返しにより、動作（ａ５）及び（ａ６）を、ｋ＝１回行う。
動作（ａ５）において、木構造Ｔ１００から、２＾２（＝４）個の端末識別子を除いた部分集合「１２３４」及び「５６７８」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝３行目の未記録の列に対して、左から順に書き込む。
【００９７】
（ｉ＝１の場合）
情報生成部１０３は、動作（ａ）により、レイヤｉ＝１の存在するノードの数Ｎ＝２を取得する。次に、情報生成部１０３は、レイヤｉ＝１に存在するノードをルートとする部分木の高さＨ＝２を取得する。
情報生成部１０３は、動作（ａ２）において、ｊ＝０〜１までの間、動作（ａ３）〜（ａ６）を繰り返す。
【００９８】
ｊ＝０の場合、動作（ａ３）において、現時点での行カウンタｎ（＝３）の値に１加算し、ｎ＝４とする。次に、動作（ａ４）において、ｋ＝１〜２までの間、動作（ａ５）及び（ａ６）を繰り返す。
ｋ＝１の場合、動作（ａ５）において、レイヤ１の左から１番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「１２３」、「１２４」、「１３４」及び「２３４」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝４行目の未記録の列に対して、左から順に書き込む。
【００９９】
ｋ＝２の場合、動作（ａ５）において、レイヤ１の左から２番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「５６７」、「５６８」、「５７８」及び「６７８」を生成し、動作（ａ６）において、生成した各部分集合をデバイス鍵テーブルＤ１００のｎ＝４行目の未記録の列に対して、左から順に書き込む。
ｊ＝１の場合、動作（ａ３）において、現時点での行カウンタｎ（＝４）の値に１加算し、ｎ＝５とする。次に、動作（ａ４）において、ｋ＝１〜２までの間、動作（ａ５）及び（ａ６）を繰り返す。
【０１００】
ｋ＝１の場合、動作（ａ５）において、レイヤ１の左から１番目をルートとする部分木から、２＾１（＝２）個の端末識別子を除いた部分集合「１２」及び「３４」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝５行目の未記録の列に対して、左から順に書き込む。
ｋ＝２の場合、動作（ａ５）において、レイヤ１の左から２番目をルートとする部分木から、２＾１（＝２）個の端末識別子を除いた部分集合「５６」及び「７８」を生成し、動作（ａ６）において、生成した各部分集合をデバイス鍵テーブルＤ１００のｎ＝５行目の未記録の列に対して、左から順に書き込む。
【０１０１】
（ｉ＝２の場合）
情報生成部１０３は、動作（ａ）により、レイヤｉ＝２の存在するノードの数Ｎ＝４を取得する。次に、情報生成部１０３は、レイヤｉ＝２に存在するノードをルートとする部分木の高さＨ＝１を取得する。
情報生成部１０３は、動作（ａ２）において、ｊ＝０〜Ｈ−１までの間、つまり、ｊ＝０の場合のみ、動作（ａ３）〜（ａ６）を行う。
【０１０２】
ｊ＝０の場合、動作（ａ３）において、現時点での行カウンタｎ（＝５）の値に１加算し、ｎ＝６とする。次に、動作（ａ４）において、ｋ＝１〜４までの間、動作（ａ５）及び（ａ６）を繰り返す。
ｋ＝１の場合、動作（ａ５）において、レイヤ１の左から１番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「１」及び「２」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝６行目の未記録の列に対して、左から順に書き込む。
【０１０３】
ｋ＝２の場合、動作（ａ５）において、レイヤ１の左から２番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「３」及び「４」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝６行目の未記録の列に対して、左から順に書き込む。
ｋ＝３の場合、動作（ａ５）において、レイヤ１の左から３番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「５」及び「６」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝６行目の未記録の列に対して、左から順に書き込む。
【０１０４】
ｋ＝４の場合、動作（ａ５）において、レイヤ１の左から４番目をルートとする部分木から、２＾０（＝１）個の端末識別子を除いた部分集合「７」及び「８」を生成し、動作（ａ６）において、生成した各部分集合を作業用デバイス鍵テーブルのｎ＝６行目の未記録の列に対して、左から順に書き込む。
（生成結果）
上記動作を行うことにより、情報生成部１０３は、図１０に示すように、部分集合のみが記録されたデバイス鍵テーブルＤ１００ａを生成する。
【０１０５】
デバイス鍵テーブルＤ１００ａにおける１行目５０１、２行目５０２及び３行目５０３に記録される各部分集合は、木構造Ｔ１００のレイヤ０に存在するノードＴ１３０「Ｅ０」をルートする部分木から生成され、１行目５０１には、１つの端末識別子が除かれた部分集合、つまり７つの有効な端末識別子からなる部分集合が８個記録され、２行目５０２には、５つの有効な端末識別子からなる部分集合が４個記録され、３行目５０３には、４つの有効な端末識別子からなる部分集合が２個記録されている。
【０１０６】
また、４行目５０４及び５行目５０５に記録される各部分集合は、木構造Ｔ１００のレイヤ１に存在する２つのノードそれぞれをルートする２つの部分木から生成され、４行目５０４には、３つの有効な端末識別子からなる部分集合が８個記録され、５行目５０５には、２つの有効な端末識別子からなる部分集合が４個記録されている。
６行目５０６に記録される８個の部分集合は、木構造Ｔ１００のレイヤ２に存在する４つのノードそれぞれをルートする４つの部分木から生成される。
【０１０７】
＜デバイス鍵の生成＞
情報生成部１０３は、相互関係テーブルＤ１０１と同様の枠組みをもち、初期状態として何ら記録されていない作業用相互関係テーブルを予め有している。つまり、作業用相互関係テーブルは、相互関係テーブルＤ１０１において、何ら記録されていない状態のテーブルである。
【０１０８】
情報生成部１０３は、装置情報格納部１０１にて管理している木構造の高さＴを取得する。
情報生成部１０３は、次の動作（ｂ１）〜（ｂ１１）をｈ＝１〜２＾Ｔまでの間、繰り返す。
（ｂ１）Ｘビットからなる乱数Ａｈを生成して、生成した乱数Ａｈを、デバイス鍵テーブルＤ１００ａの｛（Ｔ＾２＋Ｔ）／２｝行、ｈ列へ書き込む。これにより、情報生成部１０３は、デバイス鍵テーブルＤ１００ａの｛（Ｔ＾２＋Ｔ）／２｝行、ｈ列の部分集合に対するラベルとして、乱数Ａｈを割り当てることができる。
【０１０９】
（ｂ２）擬似乱数生成器Ｇに、割り当てられたラベル、つまり乱数Ａｈを入力値として与え、その出力として３Ｘビットの乱数を生成し、取得する。
（ｂ３）取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋｍ」として、デバイス鍵テーブルＤ１００ａの｛（Ｔ＾２＋Ｔ）／２｝行、ｈ列へ書き込む。また、両端に位置するＸビットからなる２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベル（つまり、乱数Ａｈ）に対する部分集合と対応付けて、一時的に記憶しておく。ただし、デバイス鍵を示すＫｍの添字ｍは、初期値１から始まり、デバイス鍵が割り当てられる毎に１ずつ増加する値とし、Ｋｍ＋１は、Ｋｍの次に割り当てられるデバイス鍵であることを示す。
【０１１０】
（ｂ４）次の動作（ｂ５）〜（ｂ１１）を、ｉ＝｛（Ｔ＾２＋Ｔ）／２−１｝〜１までの間、繰り返す。
（ｂ５）デバイス鍵テーブルＤ１００ａのｉ＋１行目でデバイス鍵及びラベルが割り当てられた部分集合の個数Ｊを取得する。
（ｂ６）次の動作（ｂ７）〜（ｂ１１）を、ｊ＝１〜Ｊまでの間、繰り返す。
【０１１１】
（ｂ７）デバイス鍵テーブルＤ１００ａのｉ＋１行目でデバイス鍵及びラベルが割り当てられた左からｊ番目の部分集合Ｓｊを基準として、デバイス鍵テーブルＤ１００ａのｉ行目を左から順に、部分集合Ｓｊを含み、且つデバイス鍵が未だ割り当てられていない部分集合を検索する。
（ｂ８）動作（ｂ７）の検索により、部分集合Ｓｊを含み、デバイス鍵が未だ割り当てられていない部分集合が存在しない場合には、部分集合Ｓｊを親ノードとし、親ノードである部分集合Ｓｊと、その子ノードとなる部分集合が存在しないことを示す記号「−」とからなる組を、ノード情報として、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。つまり、部分集合Ｓｊは、親ノードの項目に書き込まれ、記号「−」は、子ノードの項目に書き込まれる。さらに、部分集合Ｓｊがルートである場合には、ルート情報に、ルートであることを示す情報（「ルート」）を記録し、ルートでない場合には、ルート情報には何も記録しない。部分集合Ｓｊがルートであるか否かの判断方法は、部分集合Ｓｊが記録されている行、つまりｉ＋１の値が、｛（Ｔ＾２＋Ｔ）／２｝であるか否かを判断すればよい。ｉ＋１の値が｛（Ｔ＾２＋Ｔ）／２｝である場合には、部分集合Ｓｊは、デバイス鍵テーブルＤ１００ａの最下層に存在するため、部分集合Ｓｊに含まれる部分集合は存在しないことになる。つまり、部分集合Ｓｊを子ノードとする親ノードが存在しないことになり、部分集合Ｓｊがルートのノードとなる。
【０１１２】
（ｂ９）動作（ｂ７）の検索により、部分集合Ｓｊを含み、デバイス鍵が未だ割り当てられていない部分集合が１以上存在する場合には、デバイス鍵が未だ割り当てられていない１以上の部分集合のうち最大２つの部分集合を左から順に取得する。
（ｂ１０）取得した部分集合が１つである場合には、部分集合Ｓｊに対応付けられ、一時的に記憶している左ラベル及び右ラベルのうち右ラベルを、取得した部分集合に対するラベルとして割り当て、割り当てた右ラベルを、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む。取得した部分集合が２つ（ここでは、Ｔｊ及びＵｊとする）である場合には、２つの部分集合のうち左側に位置する部分集合Ｔｊに対するラベルとして、部分集合Ｓｊに対応付けられ、一時的に記憶している左ラベル及び右ラベルのうち左ラベルを割り当て、右側に位置する部分集合Ｕｊに対するラベルとして、部分集合Ｓｊに対応付けられ、一時的に記憶している左ラベル及び右ラベルのうち右ラベルを割り当てる。割り当てた左ラベルを、デバイス鍵テーブルＤ１００ａ内の取得した部分集合Ｔｊが記録さている欄へ書き込み、割り当てた右ラベルを、取得した部分集合Ｕｊが記録さている欄へ書き込む。
【０１１３】
（ｂ１１）取得した部分集合が１つである場合には、擬似乱数生成器Ｇに、取得した部分集合に割り当てられたラベル（つまり、一時的に記憶している右ラベル）を入力値として与え、その出力として３Ｘビットの乱数を生成して取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋｍ」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む。さらに、情報生成部１０３は、当該動作（ｂ１１）にて取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合（つまり、動作（ｂ９）にて取得した部分集合）と対応付けて、一時的に記憶しておく。さらに、部分集合Ｓｊを親ノードとし、取得した部分集合をその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。さらに、部分集合Ｓｊがルートである場合には、ルート情報に、ルートであることを示す情報（「ルート」）を記録し、ルートでない場合には、ルート情報には何も記録しない。
【０１１４】
（ｂ１２）取得した部分集合が２つ（ここでは、左から順に取得した部分集合を、それぞれ部分集合Ｔｊ、部分集合Ｕｊとする。）である場合には、先ず、擬似乱数生成器Ｇに、取得した部分集合Ｔｊに割り当てられたラベル（つまり、一時的に記憶している左ラベル）を入力値として与え、その出力として３Ｘビットの乱数を生成して取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋｍ」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合Ｔｊが記録さている欄へ書き込む。さらに、情報生成部１０３は、左ラベルを入力値として、取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合Ｔｊと対応付けて、一時的に記憶しておく。さらに、部分集合Ｓｊを親ノードとし、取得した部分集合Ｔｊをその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。さらに、部分集合Ｓｊがルートである場合には、ルート情報に、ルートであることを示す情報（「ルート」）を記録し、ルートでない場合には、ルート情報には何も記録しない。次に、擬似乱数生成器Ｇに、取得した部分集合Ｕｊに割り当てられたラベル（つまり、一時的に記憶している右ラベル）を入力値として与え、その出力として３Ｘビットの乱数を生成して取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋｍ＋１」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合Ｕｊが記録さている欄へ書き込む。さらに、情報生成部１０３は、右ラベルを入力値として、取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合Ｕｊと対応付けて、一時的に記憶しておく。さらに、部分集合Ｓｊを親ノードとし、取得した部分集合Ｕｊをその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。さらに、部分集合Ｓｊがルートである場合には、ルート情報に、ルートであることを示す情報（「ルート」）を記録し、ルートでない場合には、ルート情報には何も記録しない。
【０１１５】
上記の動作により、情報生成部１０３は、図５に示すように、デバイス鍵テーブルＤ１００ａに記録されている全ての部分集合に対して、ラベルとデバイス鍵とを割り当てたデバイス鍵テーブルＤ１００を生成することができ、さらには、作業用相互関係テーブルから相互関係テーブルＤ１０１をも生成することができる。
以下に、デバイス鍵テーブルＤ１００ａを用いて、情報生成部１０３が、ラベル及びデバイス鍵の生成し、生成したラベル及びデバイス鍵を割り当てる具体的な動作について、説明する。
【０１１６】
＜デバイス鍵の生成の具体例＞                                                  
情報生成部１０３は、木構造Ｔ１００の高さＴ＝３を取得する。
情報生成部１０３は、以下の動作をｈ＝１〜２＾Ｔまで繰り返す。
（ｈ＝１の場合）
情報生成部１０３は、Ｘビットからなる乱数Ａ１を生成して、生成した乱数Ａ１を、６行、１列の部分集合「１」に対するラベルとして割り当て、割り当てられたラベルをデバイス鍵テーブルＤ１００ａの６行、１列へ書き込む。
【０１１７】
次に、情報生成部１０３は、擬似乱数生成器Ｇに、割り当てられたラベル、つまり乱数Ａ１を入力値として与え、その出力として３Ｘビットの乱数を取得する。
情報生成部１０３は、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋ１」として、デバイス鍵テーブルＤ１００ａの６行、１列へ書き込む。また、両端に位置するＸビットからなる２つの左ラベル（ここでは、Ａ１Ｌと表記する。）及び右ラベル（ここでは、Ａ１Ｒと表記する。）を、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合「１」と対応付けて、一時的に記憶しておく。
【０１１８】
情報生成部１０３は、動作（ｂ５）〜（ｂ１１）を、ｉ＝５〜１までの間、繰り返す。
ｉ＝５の場合、デバイス鍵テーブルＤ１００ａの６行目でデバイス鍵が割り当てられた部分集合の個数Ｊ＝１を取得し、（ｂ６）の繰り返しにより、動作（ｂ８）〜（ｂ１１）を、ｊ＝１回行う。情報生成部１０３は、動作（ｂ８）にて、デバイス鍵テーブルＤ１００ａの６行目でデバイス鍵が割り当てられた左から１番目の部分集合「１」を基準として、デバイス鍵テーブルＤ１００ａの５行目を左から順に、部分集合「１」を含み、且つデバイス鍵が未だ割り当てられていない部分集合を検索する。動作（ｂ９）にて、部分集合「１」を含み、デバイス鍵が未だ割り当てられていない部分集合「１２」を取得し、動作（ｂ１０）にて、一時的に記憶している右ラベル「Ａ１Ｒ」を、取得した部分集合「１２」に対するラベルとして割り当て、割り当てた右ラベルを、デバイス鍵テーブルＤ１００ａ内の取得した部分集合「１２」が記録さている欄へ書き込む。情報生成部１０３は、動作（ｂ１１）にて、擬似乱数生成器Ｇに、取得した部分集合「１２」に割り当てられたラベル「Ａ１Ｒ」を入力値として与え、その出力として３Ｘビットの乱数を取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋ２」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合「１２」が記録さている欄へ書き込む。両端に位置するＸビットからなる２つの左ラベル（Ａ１ＲＬ）及び右ラベル（Ａ１ＲＲ）を、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合「１２」と対応付けて、一時的に記憶しておく。さらに、部分集合「１」を親ノードとし、取得した部分集合をその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。さらに、部分集合「１」はルートであるので、ルートであることを示す情報（「ルート」）を記録する。
【０１１９】
ｉ＝４の場合、デバイス鍵テーブルＤ１００ａの５行目でデバイス鍵が割り当てられた部分集合の個数Ｊ＝１を取得し、（ｂ６）の繰り返しにより、動作（ｂ８）〜（ｂ１１）を、ｊ＝１回行う。情報生成部１０３は、動作（ｂ８）にて、デバイス鍵テーブルＤ１００ａの５行目でデバイス鍵が割り当てられた左から１番目の部分集合「１２」を基準として、デバイス鍵テーブルＤ１００ａの４行目を左から順に、部分集合「１２」を含み、且つデバイス鍵が未だ割り当てられていない部分集合を検索する。動作（ｂ９）にて、部分集合「１」を含み、デバイス鍵が未だ割り当てられていない部分集合「１２３」及び「１２４」を取得し、動作（ｂ１０）にて、２つの部分集合「１２３」及び「１２４」のうち左側に位置する部分集合「１２３」に対するラベルとして、一時的に記憶している左ラベル（Ａ１ＲＬ）を割り当て、右側に位置する部分集合「１２４」に対するラベルとして、一時的に記憶している右ラベル（Ａ１ＲＲ）を割り当てる。割り当てた左ラベルを、デバイス鍵テーブルＤ１００ａ内の取得した部分集合「１２３」が記録さている欄へ書き込み、割り当てた右ラベルを、取得した部分集合「１２４」が記録さている欄へ書き込む。
【０１２０】
情報生成部１０３は、動作（ｂ１２）にて、先ず、擬似乱数生成器Ｇに、取得した部分集合「１２３」に割り当てられたラベル（Ａ１ＲＬ）を入力値として与え、その出力として３Ｘビットの乱数を取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋ３」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合「１２３」が記録さている欄へ書き込む。両端に位置するＸビットからなる２つの左ラベル（Ａ１ＲＬＬ）及び右ラベル（Ａ１ＲＬＬ）を、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合「１２３」と対応付けて、一時的に記憶しておく。さらに、部分集合「１２」を親ノードとし、取得した部分集合「１２３」をその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。なお、部分集合「１２」はルートではないため、ルート情報には何も記録しない。次に、擬似乱数生成器Ｇに、取得した部分集合「１２４」に割り当てられたラベル（Ａ１ＲＲ）を入力値として与え、その出力として３Ｘビットの乱数を取得し、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、割り当てられたラベルに対応するデバイス鍵「Ｋ４」として、デバイス鍵テーブルＤ１００ａ内の取得した部分集合「１２４」が記録さている欄へ書き込む。両端に位置するＸビットからなる２つの左ラベル（Ａ１ＲＲＬ）及び右ラベル（Ａ１ＲＲＲ）を、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合「１２４」と対応付けて、一時的に記憶しておく。さらに、部分集合「１２」を親ノードとし、取得した部分集合「１２４」をその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む。なお、部分集合「１２」はルートではないため、ルート情報には何も記録しない。
【０１２１】
ｉ＝３、２及び１に対しても、上記に示す動作を行うことにより、部分集合「１」をルートする木構造Ｔ１００を示すデータ構造、及びデバイス鍵「Ｋ１」〜「Ｋ１１」と、各デバイス鍵に対応するラベルを取得することができる。
また、ｈ＝２、３、４、５、６、７及び８のそれぞれに対しても、上記に示す動作を行うことにより、部分集合「２」、「３」、「４」、「５」、「６」、「７」及び「８」をルートとする木構造Ｔ２０２、Ｔ２０３、Ｔ２０４、Ｔ２０５、Ｔ２０６、Ｔ２０７及びＴ２０８を示すデータ構造、及びデバイス鍵「Ｋ１２」〜「Ｋ３４」と、各デバイス鍵に対応するラベルを取得することができる。
【０１２２】
（生成結果）
上記動作を行うことにより、情報生成部１０３は、図５及び図６に示すように、デバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を生成する。
デバイス鍵テーブルＤ１００の１行目には、１つの端末識別子が除かれた部分集合、つまり７つの有効な端末識別子からなる部分集合、それら部分集合に割り当てられたラベル及びデバイス鍵が記録され、２行目には、５つの有効な端末識別子からなる部分集合、それら部分集合に割り当てられたラベル及びデバイス鍵が記録され、３行目には、４つの有効な端末識別子からなる部分集合、それら部分集合に割り当てられたラベル及びデバイス鍵が記録されている。以下、４行目、５行目及び６行目には、それぞれ３つの有効な端末識別子、２つの有効な端末識別子及び１つの有効な端末識別子からなる部分集合、それら部分集合に割り当てられたラベル及びデバイス鍵が記録されている。
【０１２３】
また、相互関係テーブルＤ１０１には、部分集合「１」、「２」、「３」、「４」、「５」、「６」、「７」及び「８」をルートとする木構造Ｔ２０１、Ｔ２０２、Ｔ２０３、Ｔ２０４、Ｔ２０５、Ｔ２０６、Ｔ２０７及びＴ２０８を示すデータ構造が記録されている。
ここで、上記動作により各部分集合が関連付けられた状態を、図１１のテーブルにて示す。テーブルの各要素は、部分集合であり、矢印は、２つの部分集合が関連付けられる方向を示す。部分集合の関連付けは、親ノードである部分集合に対応するラベルから、その子ノードに対応するラベルが生成できることを意味している。
【０１２４】
例えば、部分集合５１０「１」から部分集合５１１「１２」へ、矢印５１２により関連付けがなされている。これは、部分集合５１０「１」を親ノードとし、部分集合５１１「１２」をその子ノードとして２つのノードが関連付けられており、これは、部分集合５１０「１」のラベル「Ａ１」から、部分集合５１１「１２」のラベル「Ａ１Ｒ」を生成することができることを意味している。また、部分集合５１１「１２」から部分集合５１３「１２３」及び部分集合５１４「１２４」へ、それぞれ矢印５１５及び５１６により関連付け、つまり、部分集合５１１「１２」を親ノードとし、部分集合５１３「１２３」及び部分集合５１４「１２４」をその子ノードとして関連付けがなされている。
【０１２５】
ここで、部分集合の関連付けを行うことにより、ラベルの関連付けが行われていることがわかる。なぜなら、部分集合の関連付けにより、親ノードとなる部分集合に割り当てられたラベルから、子ノードに割り当てられた部分集合に対するラベルを、一方向性関数である擬似乱数生成器Ｇ１５０を用いて、生成するからである。
（４）配布部１０４
配布部１０４は、装置へ配布するラベル及びそのラベルに対応する部分集合を、一時的に記憶する鍵情報記憶領域を備えている。
【０１２６】
配布部１０４は、受付部１０７より、鍵情報の配布指示及び配布する装置を示す装置識別子とを受け取る。
配布部１０４は、配布指示及び装置識別子を受け取ると、受け取った装置識別子に対する装置へ、配布するラベルと、そのラベルに対応する部分集合とを含む鍵情報を１以上生成して取得する。なお、鍵情報の取得方法については、後述する。
【０１２７】
配布部１０４は、情報格納部１０２にて記憶している相互関係テーブルＤ１０１を読み出す。
配布部１０４は、取得した１以上の鍵情報と、読み出した相互関係テーブルＤ１０１とを受け付けた装置識別子に対応する装置へ配布する。
ここで、配布方法に一例を、以下に説明する。配布部１０４は、当該鍵管理装置１００に装着された配布用の記録媒体に、受け付けた装置識別子と、取得した１以上の鍵情報と、読み出した相互関係テーブルＤ１０１とを書き込む。鍵管理装置１００を管理する業者は、装置識別子と、１以上の鍵情報と、相互関係テーブルＤ１０１とが書き込まれた記録媒体を、装置を製造する製造業者へ配布する。製造業者は、記録媒体を受け取ると、記録媒体に記録されている装置識別子に対応する装置の製造中に、記録媒体に記録されている１以上の鍵情報と、相互関係テーブルとを読み出し、読み出した１以上の鍵情報と相互関係テーブルＤ１０１とを製造中の装置へ書き込む。これにより、装置識別子に対応する装置へ、１以上の鍵情報と相互関係テーブルＤ１０１とを配布することができる。
【０１２８】
＜鍵情報の取得＞
ここでは、鍵情報の取得の動作について説明する。
配布部１０４は、配布指示と、配布する装置の装置識別子を受け取ると、相互関係テーブルＤ１０１にて管理されている木構造の個数Ｙを取得する。
配布部１０４は、次の動作（ｃ１）〜（ｃ６）を、ｉ＝１〜Ｙまでの間繰り返す。
【０１２９】
（ｃ１）配布部１０４は、相互関係テーブルＤ１０１にて上位からｉ番目に管理されている木構造Ｖｉを示すデータ構造を取得する。
（ｃ２）取得したデータ構造から、子ノードを持たないノード（つまり、リーフ）の数Ｐを取得する。
（ｃ３）配布部１０４は、次の動作（ｃ４）〜（ｃ６）を、ｐ＝１〜Ｐまでの間繰り返す。
【０１３０】
（ｃ４）配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位ｐ番目のノードＷｐ（つまり、Ｗｐはリーフとなる。）を取得し、木構造Ｖｉのルートを起点として、リーフＷｐまでに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。
（ｃ５）動作（ｃ４）の検索により、ノードを検出すると、検出したノードが鍵情報記憶領域に記憶済みであるか否かを判断する。
【０１３１】
（ｃ６）記憶済みでないと判断する場合には、配布部１０４は、検出したノード、つまり部分集合に対応するラベルをデバイス鍵テーブルＤ１００から読み出し、読み出したラベルと検出した部分集合とを含む鍵情報を生成して取得し、取得した鍵情報を鍵情報記憶領域へ記憶する。記憶済みであると判断する場合には、鍵情報の生成及び鍵情報記憶領域へ記憶は行わない。
【０１３２】
上記の動作により、配布部１０４は、受け取った装置識別子に対応する装置へ配布するラベル及び部分集合を含む鍵情報を全て鍵情報記憶領域へ記憶する。配布部１０４は、相互関係テーブルＤ１０１を読み出し、読み出した相互関係テーブルＤ１０１と鍵情報記憶領域にて記憶している全ての鍵情報とを、配布対象の装置へ配布する。
配布部１０４は、相互関係テーブルＤ１０１と全ての鍵情報とを、受け取った装置識別子をもつ装置へ配布した後、鍵情報記憶領域にて記憶している全ての鍵情報を消去する。なお、ここで、配布とは、例えば、配布用の記録媒体に、受け付けた装置識別子と、鍵情報記憶領域にて記憶している１以上の鍵情報と、相互関係テーブルＤ１０１との書き込みが完了したことをいう。
【０１３３】
＜鍵情報の取得の具体例＞
以下に、デバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を用いて、装置識別子１が与えられた場合における、鍵情報の取得の具体的な動作について、説明する。
配布部１０４は、配布指示と装置識別子「１」とを受け取ると、相互関係テーブルＤ１０１にて管理されている木構造の個数８を取得する。
【０１３４】
配布部１０４は、動作（ｃ１）〜（ｃ６）を、ｉ＝１〜８までの間繰り返す。
（ｉ＝１の場合）
配布部１０４は、相互関係テーブルＤ１０１にて上位から１番目に管理されている木構造Ｖ１を示すデータ構造を取得する。ここでは、木構造Ｖ１を示すデータ構造は、相互関係テーブルＤ１０１の１行目から１５行目までに示されるデータ構造Ｄ３００である。
【０１３５】
配布部１０４は、取得したデータ構造から、子ノードを持たないノード（つまり、リーフ）の数５を取得する。
配布部１０４は、動作（ｃ４）〜（ｃ６）を、ｐ＝１〜５までの間繰り返す。
ｐ＝１の場合において、配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位１番目のノードＷ１（ここでは、図６における部分集合Ｄ３０２「１２４」となる。）を取得し、木構造Ｖ１のルートを起点として、リーフＷ１までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。配布部１０４は、検索により、ノード１（ここでは、図６における部分集合Ｄ３０１「１」）を検出し、検出した部分集合Ｄ３０１「１」が既に鍵情報記憶領域に記憶済みであるか否かを判断する。
【０１３６】
配布部１０４は、記憶済みでないと判断し、検出した部分集合Ｄ３０１「１」に対応するラベルＤ２０２「Ａ１」をデバイス鍵テーブルＤ１００から読み出し、読み出したラベルＤ２０２「Ａ１」と、検出した部分集合Ｄ３０１「１」とを含む鍵情報を生成して取得し、取得した鍵情報を鍵情報記憶領域へ記憶する。
ｐ＝２の場合において、配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位２番目のノードＷ２（ここでは、部分集合Ｄ３０３「１２３４５６７」となる。）を取得し、木構造Ｖ１のルートを起点として、リーフＷ２までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索して、ノード１（ここでは、部分集合Ｄ３０１「１」）を検出するが、鍵情報記憶領域に記憶済みあると判断し、鍵情報の生成及び鍵情報記憶領域への記憶は行わない。
【０１３７】
ｐ＝３〜５に対しても同様に、配布部１０４は、ノード１を検出するが、記憶済みであると判断し、鍵情報の生成及び鍵情報記憶領域への記憶は行わない。
（ｉ＝２の場合）
配布部１０４は、相互関係テーブルＤ１０１にて上位から２番目に管理されている木構造Ｖ２を示すデータ構造を取得する。ここでは、木構造Ｖ２を示すデータ構造は、相互関係テーブルＤ１０１の１６行目からなるデータ構造Ｄ３１０である。
【０１３８】
配布部１０４は、取得したデータ構造Ｄ３１０から、子ノードを持たないノード（つまり、リーフ）の数１を取得する。
配布部１０４は、動作（ｃ４）〜（ｃ６）を、ｐ＝１回、行う。
配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位１番目のノードＷ１（ここでは、部分集合Ｄ３１１「２」となる。）を取得し、木構造Ｖ２のルートを起点として、リーフＷ１までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。配布部１０４は、検索により、ノードは検出しない。
【０１３９】
（ｉ＝３の場合）
配布部１０４は、相互関係テーブルＤ１０１にて上位から３番目に管理されている木構造Ｖ３を示すデータ構造を取得する。ここでは、木構造Ｖ３を示すデータ構造は、相互関係テーブルＤ１０１の１７行目から２１行目までからなるデータ構造Ｄ３２０である。
配布部１０４は、取得したデータ構造から、子ノードを持たないノード（つまり、リーフ）の数２を取得する。
【０１４０】
配布部１０４は、動作（ｃ４）〜（ｃ６）を、ｐ＝１〜２までの間繰り返す。
ｐ＝１の場合において、配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位１番目のノードＷ１（ここでは、部分集合Ｄ３２１「１３４」となる。）を取得し、木構造Ｖ３のルートを起点として、リーフＷ１までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。配布部１０４は、検索により、ノード（ここでは、部分集合Ｄ３２１「１３４」）を検出し、検出した部分集合Ｄ３２１「１３４」が、鍵情報記憶領域に記憶済みであるか否かを判断する。
【０１４１】
配布部１０４は、記憶済みでないと判断し、検出した部分集合Ｄ３２１「１３４」に対応するラベルＤ２０４「Ａ３ＲＬ」をデバイス鍵テーブルＤ１００から読み出し、読み出したラベルＤ２０４「Ａ３ＲＬ」と、検出した部分集合Ｄ３２１「１３４」とを含む鍵情報を生成して取得し、取得した鍵情報を鍵情報記憶領域へ記憶する。
ｐ＝２の場合において、配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位２番目のノードＷ２（ここでは、部分集合Ｄ３２２「２３４」となる。）を取得し、木構造Ｖ３のルートを起点として、リーフＷ２までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。配布部１０４は、検索により、ノードは検出しない。
【０１４２】
（ｉ＝４の場合）
配布部１０４は、相互関係テーブルＤ１０１にて上位から４番目に管理されている木構造Ｖ４を示すデータ構造を取得する。ここでは、木構造Ｖ４を示すデータ構造は、相互関係テーブルＤ１０１の２２行目からなるデータ構造Ｄ３３０である。
配布部１０４は、取得したデータ構造から、子ノードを持たないノード（つまり、リーフ）の数１を取得する。
【０１４３】
配布部１０４は、動作（ｃ４）〜（ｃ６）を、ｐ＝１回行う。
配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位１番目のノードＷ１（ここでは、部分集合Ｄ３３１「４」となる。）を取得し、木構造Ｖ４のルートを起点として、リーフＷ１までに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する。配布部１０４は、検索により、ノードは検出しない。
【０１４４】
配布部１０４は、以降、ｉ＝５〜８まで、上記にて示す動作を行い、部分集合「１２５６７８」及びラベル「Ａ５ＲＬＲＬ」を含む鍵情報と、部分集合「１３４５６７８」及びラベル「Ａ５ＲＬＲＲＬ」を含む鍵情報とを生成し、鍵情報記憶領域へ記憶する。
以上により、配布部１０４は、受け取った装置識別子に対応する装置へ配布するラベル及び部分集合からなる鍵情報を全て鍵情報記憶領域へ記憶する。配布部１０４は、相互関係テーブルＤ１０１を情報格納部１０２から読み出し、読み出した相互関係テーブルＤ１０１と、鍵情報記憶領域にて記憶している全ての鍵情報とを、装置識別子１を有する装置へ配布する。
【０１４５】
配布部１０４は、相互関係テーブルＤ１０１と取得した全ての鍵情報とを、装置識別子１をもつ装置へ配布した後、鍵情報記憶領域にて記憶している全ての鍵情報を消去する。
また、図１２に示すテーブルＤ４００にて、装置１から装置８のそれぞれに配布する鍵情報、つまり各装置が保持する鍵情報の合計数及び鍵情報を示す。なお、図１２では、鍵情報を、鍵情報に含まれる部分集合の要素の数が少ないものから順に、左より記述している。例えば、従来の装置が保持するラベルの数は、各装置とも均一に６個保持していたが、装置１が保持する鍵情報の個数は４個であり、従来よりも２個少なくなる。合計の項目における括弧内の数値は、装置が保持する鍵情報の数と、従来の装置が保持するラベルの数とを比較した場合の差分を示す。
【０１４６】
また、装置１が保持する各鍵情報は、鍵情報項目Ｄ４０１にて示すように、部分集合５２０「１」とラベル５２１「Ａ１」、部分集合５２２「１３４」とラベル５２３「Ａ３ＲＬ」、部分集合５２４「１２５６７８」とラベル５２５「Ａ５ＲＬＲＬ」及び部分集合５２６「１３４５６７８」とラベル５２７「Ａ５ＲＬＲＲＬ」である。
（５）無効化装置特定部１０５
無効化された装置を識別する装置識別子を１個以上記憶する無効化装置記憶領域を有している。なお、無効化装置記憶領域は、初期状態では、何も記憶されていない。
【０１４７】
無効化装置特定部１０５は、受付部１０７より無効化する装置を登録する登録指示を受け取ると、続けて、無効化する装置の装置識別子を１以上受け取る。無効化装置特定部１０５は、受け取った１以上の装置識別子を、無効化装置記憶領域に記憶する。このとき、無効化装置特定部１０５は、これまでに記憶している装置識別子に続けて、受け取った１以上の装置識別子を記憶する。
【０１４８】
無効化装置特定部１０５は、受付部１０７より鍵無効化データの作成指示を受け取ると、受け取った作成指示を、鍵無効化データ生成部１０６へ出力する。
（６）鍵無効化データ生成部１０６
鍵無効化データ生成部１０６は、メディア鍵を予め記憶しているメディア鍵記憶領域を有している。
【０１４９】
鍵無効化データ生成部１０６は、共通鍵暗号アルゴリズム（例えば、ＤＥＳ）を有している。
鍵無効化データ生成部１０６は、無効化装置特定部１０５より作成指示を受け取ると、無効化装置特定部１０５の無効化装置記憶領域に、装置識別子が記憶されているか否かを判断、つまり無効化する装置の装置識別子（以下、無効な装置識別子という。）が無効化装置記憶領域に存在するか否かを判断する。
【０１５０】
無効な装置識別子が記憶されていないと判断する場合には、和集合により全装置の装置識別子を含むことのできる２つの部分集合と、それら部分集合に対応するデバイス鍵を、情報格納部１０２に格納されているデバイス鍵テーブルＤ１００から読み出す。例えば、鍵無効化データ生成部１０６は、図５に示すデバイス鍵テーブルＤ１００から、部分集合「１２３４５６７」とデバイス鍵「Ｋ８」とからなる組、及び部分集合「８」とデバイス鍵「Ｋ３４」とからなる組を読み出す。なお、以降の説明において、読み出した２つの部分集合を第１部分集合及び第２部分集合とし、それぞれに対応するデバイス鍵を第１デバイス鍵及び第２デバイス鍵とする。
【０１５１】
鍵無効化データ生成部１０６は、メディア鍵をメディア鍵記憶領域から読み出し、読み出したメディア鍵を、第１デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、第１暗号化メディア鍵を生成し、生成した第１暗号化メディア鍵と、第１部分集合とを対応付けて一時的に記憶する。さらに、鍵無効化データ生成部１０６は、読み出したメディア鍵を、第２デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、第２暗号化メディア鍵を生成し、生成した第２暗号化メディア鍵と、第２部分集合とを対応付けて一時的に記憶する。
【０１５２】
上記に示す例では、鍵無効化データ生成部１０６は、第１暗号化メディア鍵Ｅｎｃ（Ｋ８、メディア鍵）、及び第２暗号化メディア鍵Ｅｎｃ（Ｋ３４、メディア鍵）を生成し、それぞれ、部分集合「１２３４５６７」、及び部分集合「８」と対応付けて一時的に記憶する。ここで、Ｅｎｃ（Ａ、Ｂ）は、暗号化アルゴリズムＥを適用して、鍵Ａを用いて、データＢを暗号化することを示している。
【０１５３】
無効な装置識別子が記憶されていると判断する場合には、鍵無効化データ生成部１０６は、木構造Ｔ１００にて管理している全装置識別子から無効な装置識別子を除いた１以上の装置識別子（以下、有効な装置識別子という。）のうち、最も多くの有効な装置識別子からなる部分集合及びその部分集合に対応するデバイス鍵をデバイス鍵テーブルＤ１００から読み出す。読み出した部分集合及びデバイス鍵を一時的に記憶する。この動作を、全ての有効な装置識別子のみが部分集合の要素として選択されるまで、繰り返し行う。鍵無効化データ生成部１０６は、この動作により、部分集合とその部分集合に対応するデバイス鍵とからなる１以上の組を、読み出した順に一時的に記憶する。
【０１５４】
鍵無効化データ生成部１０６は、メディア鍵をメディア鍵記憶領域から読み出し、読み出したメディア鍵を、一時的に記憶している各デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、１個以上の暗号化メディア鍵を生成し、生成した各暗号化メディア鍵を、暗号化に利用したデバイス鍵に対応する部分集合と対応付けて一時的に記憶する。このとき、生成する暗号化メディア鍵の個数は、読み出したデバイス鍵の個数と同じである。
【０１５５】
例えば、無効化装置記憶領域に、装置識別子「１」が記憶されている場合には、鍵無効化データ生成部１０６は、部分集合「２３４５６７８」とデバイス鍵「Ｋ２８」を読み出し、読み出したデバイス鍵を用いて、暗号化メディア鍵Ｅｎｃ（Ｋ２８、メディア鍵）を生成し、生成した暗号化メディア鍵Ｅｎｃ（Ｋ２８、メディア鍵）と部分集合「２３４５６７８」とを対応付けて一時的に記憶する。また、無効化装置記憶領域に、装置識別子「１」及び「５」が記憶されている場合には、鍵無効化データ生成部１０６は、部分集合「２３４」とデバイス鍵「Ｋ１６」とからなる組、及び部分集合「６７８」とデバイス鍵「Ｋ３３」とからなる組を読み出し、読み出したデバイス鍵「Ｋ１６」及び「Ｋ３３」を用いて、暗号化メディア鍵Ｅｎｃ（Ｋ１６、メディア鍵）及びＥｎｃ（Ｋ３３、メディア鍵）を生成し、生成した暗号化メディア鍵Ｅｎｃ（Ｋ１６、メディア鍵）と部分集合「２３４」とを対応付け、暗号化メディア鍵Ｅｎｃ（Ｋ３３、メディア鍵）と部分集合「６７８」とを対応付けて、それぞれ一時的に記憶する。
【０１５６】
鍵無効化データ生成部１０６は、読み出したデバイス鍵全てから、暗号化メディア鍵の生成が終了すると、一時的に記憶している１以上の暗号化メディア鍵と部分集合との組（以下、鍵無効化データという。）を読み出し、読み出した１以上の鍵無効化データを、出力部１０８を介して記録媒体２００ａへ書き込む。鍵無効化データ生成部１０６は、次に、一時的に記憶している各情報を消去する。
【０１５７】
これにより、鍵無効化データ生成部１０６は、暗号化メディア鍵と部分集合との組からなる鍵無効化データを１以上生成し、生成した鍵無効化データを記録媒体２００ａへ記録することができる。
（７）受付部１０７
受付部１０７は、ユーザの操作により、生成指示を受け付け、受け付けた生成指示を情報生成部１０３へ出力する。
【０１５８】
受付部１０７は、ユーザの操作により、配布指示を受け付けると、続けて、配布する装置を示す装置識別子を受け付ける。受付部１０７は、受け付けた配布指示及び装置識別子を配布部１０４へ出力する。
受付部１０７は、ユーザの操作により、登録指示を受け付けると、続けて、無効化する装置の装置識別子を１以上受け付ける。受付部１０７は、受け付けた登録指示及び１以上の装置識別子を無効化装置特定部１０５へ出力する。
【０１５９】
受付部１０７は、ユーザの操作により、鍵無効化データの作成指示を受け取ると、受け取った作成指示を、無効化装置特定部１０５へ出力する。
（８）出力部１０８
出力部１０８は、鍵無効化データ生成部１０６から情報を受け取り、受け取った情報を書き込むための領域である鍵無効化データ格納部２０１を記録媒体２００ａ上に確保し、受け取った情報を、確保した鍵無効化データ格納部２０１へ書き込む。
【０１６０】
１．３  記録媒体２００
記録媒体２００は、ＤＶＤ−ＲＡＭ等のレコーダブルメディアであって初期状態として何らの情報も記録されていない。
記録媒体２００には、図１３にて示すように、鍵管理装置１００の鍵無効化データ生成部１０６の動作終了後において、鍵無効化データ格納部２０１が確保され、さらに、後述する記録装置３００の動作により、暗号化コンテンツ鍵格納部２０２及び暗号化コンテンツ格納部２０３が確保される。
【０１６１】
（１）鍵無効化データ格納部２０１
鍵無効化データ格納部２０１は、鍵管理装置１００の鍵無効化データ生成部１０６の動作により、何ら情報も記録されていない記録媒体２００ａから初めて確保される領域である。
鍵無効化データ格納部２０１には、暗号化メディア鍵と、各暗号化メディア鍵に対応付けられた部分集合とからなる組、つまり鍵無効化データが１以上記録される。
【０１６２】
なお、上述したように、鍵無効化データが１以上記録された記録媒体２００を記録媒体２００ｂを記述する。
（２）暗号化コンテンツ鍵格納部２０２及び暗号化コンテンツ格納部２０３
暗号化コンテンツ鍵格納部２０２及び暗号化コンテンツ格納部２０３は、記録装置３００の動作により、記録媒体２００ｂの状態から確保される領域である。
【０１６３】
暗号化コンテンツ格納部２０３には、コンテンツを、コンテンツ鍵を用いて共通鍵暗号アルゴリズム（例えば、ＤＥＳ）で暗号化した暗号化コンテンツが記録される。
暗号化コンテンツ鍵格納部２０２には、コンテンツ鍵を、メディア鍵を用いて共通鍵暗号アルゴリズム（例えば、ＤＥＳ）で暗号化した暗号化コンテンツ鍵が記録される。
１．４  記録装置３００
記録装置３００ａ、３００ｂ、・・・、３００ｃは、同様の構成を有しているので、ここでは、記録装置３００として説明する。
【０１６４】
記録装置３００は、図１４に示すように、鍵情報格納部３０１、コンテンツ格納部３０２、コンテンツ鍵格納部３０３、復号鍵生成部３０４、復号部３０５、第１暗号化部３０６、第２暗号化部３０７、受付部３０８及び入出力部３０９から構成されている。
記録装置３００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、記録装置３００は、その機能を達成する。
【０１６５】
記録装置３００は、当該記録装置３００を識別するための装置識別子を予め記憶している。
なお、以降の説明では、記録装置３００に記録媒体２００ｂが装着されているものとする。
（１）鍵情報格納部３０１
鍵情報格納部３０１は、鍵管理装置１００より配布された１以上の鍵情報と相互関係テーブルＤ１０１を予め記憶している。
【０１６６】
例えば、記録装置３００が、装置識別子１を予め記憶している場合には、図１２にて示す装置１が保持する４つの鍵情報を記憶し、装置識別子２を予め記憶している場合には、図１２にて示す装置２が保持する５つの鍵情報を記憶している。
（２）コンテンツ格納部３０２
コンテンツ格納部３０２は、映像情報及び音声情報からなるコンテンツを予め記憶している。
【０１６７】
（３）コンテンツ鍵格納部３０３
コンテンツ鍵格納部３０３は、コンテンツ格納部３０２にて記憶しているコンテンツを暗号化するためのコンテンツ鍵を記憶している。
（４）復号鍵生成部３０４
復号鍵生成部３０４は、鍵管理装置１００の情報生成部１０３が有する擬似乱数生成器Ｇ１５０と同一の擬似乱数生成器Ｇ１５１を予め記憶している。擬似乱数生成器Ｇ１５１は、擬似乱数生成器Ｇ１５０と同一であるため、ここでの説明は省略する。
【０１６８】
復号鍵生成部３０４は、受付部３０８より、暗号化コンテンツを記録媒体２００ｂに記録する記録指示を受け取ると、入出力部３０９を介して当該記録装置３００に装着された記録媒体２００ｂより、記録媒体２００ｂに記録されている１以上の暗号化メディア鍵のそれぞれに対応する部分集合のうち、１つの部分集合（以下、基準部分集合という。）を読み出す。
【０１６９】
復号鍵生成部３０４は、鍵情報格納部３０１から相互関係テーブルＤ１０１と１以上の鍵情報とを読み出す。
復号鍵生成部３０４は、相互関係テーブルＤ１０１を用いて、読み出した各鍵情報に含まれる部分集合から、基準部分集合に至る経路をもつ部分集合を検索する。
検索結果により、読み出した各鍵情報に含まれる各部分集合から、基準部分集合に至る経路をもつ部分集合（以下、検出部分集合という。）を検出した場合には、復号鍵生成部３０４は、以下に示すデバイス鍵の取得動作により、暗号化メディア鍵の復号鍵であるデバイス鍵を取得し、取得したデバイス鍵と、基準部分集合とを復号部３０５へ出力する。ここで、基準部分集合と一致する部分集合が、読み出した各鍵情報に含まれる各部分集合に含まれている場合には、復号鍵生成部３０４は、その一致する部分集合を検出部分集合として検出する。
【０１７０】
検索結果により、検出部分集合を検出しない場合には、未読出の基準部分集合が、記録媒体２００ｂに１つ以上存在するか否かを判断し、存在すると判断する場合には、１以上の未読出の基準部分集合のうち１つの基準部分集合を読み出し、検出部分集合の検索を行う。未読出の基準部分集合が、記録媒体２００ｂに存在しないと判断する場合には、暗号化コンテンツの記録の動作を終了する。
【０１７１】
＜デバイス鍵の取得動作＞
復号鍵生成部３０４は、検出部分集合を含む鍵情報から、Ｘビットからなるラベルを取得する。
検出部分集合から基準部分集合までの経路に存在するノードの個数Ｚを取得する。復号鍵生成部３０４は、以下のようにして、擬似乱数生成器Ｇ１５１をＺ回利用する。
【０１７２】
復号鍵生成部３０４は、取得したラベルを入力値として、擬似乱数生成器Ｇ１５１を用いて、３Ｘビットからなる乱数を生成して取得する。復号鍵生成部３０４は、検出部分集合から基準部分集合までに至る経路において、入力値として利用したラベルに対応する部分集合に対する次のノード（つまり、子ノード）が存在するか否かを判断する。存在すると判断する場合には、その次のノードが、左の子ノードであるか右の子ノードであるかを判断する。左の子ノードであると判断する場合には、取得した３Ｘビットの乱数をＸビットごとに分割することにより、左ラベルを取得し、取得した左ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値とし、右の子ノードであると判断する場合には、取得した３Ｘビットの乱数をＸビットごとに分割することにより、右ラベルを取得し、取得した右ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値とする。次のノードが存在しないと判断する場合、つまり、入力値として利用したラベルに対応する部分集合が基準部分集合である場合には、右ラベル及び左ラベルの取得は行わない。
【０１７３】
復号鍵生成部３０４は、擬似乱数生成器Ｇ１５１をＺ回利用することにより、基準部分集合に対するラベルを入力値とした場合における擬似乱数生成器Ｇ１５１の出力値である、３Ｘビットからなる乱数を生成して取得することができる。
復号鍵生成部３０４は、Ｚ回目に取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、暗号化メディア鍵の復号に用いるデバイス鍵として取得する。
【０１７４】
（デバイス鍵の取得の具体例）
ここで、デバイス鍵の取得の具体例として、記録装置３００が装置識別子１を有する場合、記録装置３００が装置識別子２を有する場合、及び記録装置３００が装置識別子３を有する場合について、説明する。このとき、記録媒体２００ｂは、図１５に示すように、鍵無効化データ格納部２０１に、部分集合「２３４５６７８」と暗号化メディア鍵（Ｋ２８、メディア鍵）とを記憶している。
【０１７５】
記録装置３００が、装置識別子１を有している場合には、記憶している４つの鍵情報のそれぞれに含まれる部分集合から基準部分集合「２３４５６７８」へ至る経路は存在しないため、復号鍵生成部３０４は、暗号化メディア鍵を復号するデバイス鍵を生成することはできない。
記録装置３００が、装置識別子２を有している場合には、記憶している５つの鍵情報のそれぞれに含まれる部分集合から基準部分集合「２３４５６７８」へ至る経路をもつ部分集合として、部分集合「２３４５６７８」を検出し、検出した部分集合「２３４５６７８」を検出部分集合とする。復号鍵生成部３０４は、検出部分集合を含む鍵情報からラベル「Ａ５ＲＬＲＲＲ」を取得する。さらに、復号鍵生成部３０４は、検出部分集合から基準部分集合までに至るノード数Ｚ＝１を取得する。復号鍵生成部３０４は、取得したラベル「Ａ５ＲＬＲＲＲ」を入力値として、擬似乱数生成器Ｇ１５１をＺ＝１回利用して、３Ｘビットからなる乱数を生成し取得する。復号鍵生成部３０４は、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、暗号化メディア鍵の復号に用いるデバイス鍵「Ｋ２８」として取得する。
【０１７６】
記録装置３００が、装置識別子３を有している場合には、記憶している４つの鍵情報のそれぞれに含まれる部分集合から基準部分集合「２３４５６７８」へ至る経路をもつ部分集合として、部分集合「３４５６７８」を検出し、検出した部分集合「３４５６７８」を検出部分集合とする。復号鍵生成部３０４は、検出部分集合を含む鍵情報からラベル「Ａ５ＲＬＲＲ」を取得する。さらに、復号鍵生成部３０４は、検出部分集合から基準部分集合までに至るノード数Ｚ＝２を取得する。復号鍵生成部３０４は、以下のようにして擬似乱数生成器Ｇ１５１をＺ＝２回利用して、デバイス鍵「Ｋ２８」を取得する。
【０１７７】
復号鍵生成部３０４は、先ず、取得したラベル「Ａ５ＲＬＲＲ」を入力値として、擬似乱数生成器Ｇ１５１を利用して、３Ｘビットからなる乱数「Ａ５ＲＬＲＲＬ｜｜Ｋ２４｜｜Ａ５ＲＬＲＲＲ」を生成し取得する。入力値として利用したラベルに対応する部分集合「３４５６７８」に対する子ノードである部分集合「２３４５６７８」が左の子ノードであるか右の子ノードであるかを判断する。この場合、右の子ノードであると判断し、取得した右ラベル「Ａ５ＲＬＲＲＲ」を、擬似乱数生成器Ｇ１５１に対する次の入力値として取得する。復号鍵生成部３０４は、取得したラベル「Ａ５ＲＬＲＲＲ」を入力値として、擬似乱数生成器Ｇ１５１を利用して、３Ｘビットからなる乱数「Ａ５ＲＬＲＲＲＬ｜｜Ｋ２８｜｜Ａ５ＲＬＲＲＲＲ」を生成し取得する。復号鍵生成部３０４は、取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、暗号化メディア鍵の復号に用いるデバイス鍵「Ｋ２８」として取得する。
【０１７８】
（５）復号部３０５
復号部３０５は、暗号化メディア鍵を生成した共通鍵暗号化アルゴリズムと同じ共通鍵暗号化アルゴリズムを有している。
復号部３０５は、復号鍵生成部３０４からデバイス鍵と、基準部分集合とを受け取ると、記録媒体２００ｂの鍵無効化データ格納部２０１から、受け取った基準部分集合に対応する暗号化メディア鍵を、入出力部３０９を介して読み出す。
【０１７９】
復号部３０５は、読み出した暗号化メディア鍵を、受け取ったデバイス鍵を用いて共通鍵暗号アルゴリズムで復号して、メディア鍵を生成し、生成したメディア鍵を第１暗号化部３０６へ出力する。
（６）第１暗号化部３０６
第１暗号化部３０６は、共通鍵暗号アルゴリズム（例えば、ＤＥＳ）を有している。
【０１８０】
第１暗号化部３０６は、復号部３０５からメディア鍵を受け取ると、コンテンツ鍵格納部３０３よりコンテンツ鍵を読み出す。
第１暗号化部３０６は、読み出したコンテンツ鍵を、メディア鍵を用いて共通鍵暗号アルゴリズムで暗号化して、暗号化コンテンツ鍵Ｅｎｃ（メディア鍵、コンテンツ鍵）を生成し、生成した暗号化コンテンツ鍵を、入出力部３０９を介して記録媒体２００ｂの暗号化コンテンツ鍵格納部２０２へ書き込む。
【０１８１】
さらに、第１暗号化部３０６は、第２暗号化部３０７へコンテンツの暗号化を指示する旨の暗号化命令を出力する。
（７）第２暗号化部３０７
第２暗号化部３０７は、共通鍵暗号アルゴリズム（例えば、ＤＥＳ）を有している。
第２暗号化部３０７は、第１暗号化部３０６から、暗号化命令を受け取ると、コンテンツ鍵格納部３０３よりコンテンツ鍵を、コンテンツ格納部３０２からコンテンツを、それぞれ読み出す。
【０１８２】
第２暗号化部３０７は、読み出したコンテンツを、読み出したコンテンツ鍵を用いて共通鍵暗号アルゴリズムで暗号化して、暗号化コンテンツＥｎｃ（コンテンツ鍵、コンテンツ）を生成し、生成した暗号化コンテンツを、入出力部３０９を介して記録媒体２００ｂの暗号化コンテンツ格納部２０３へ書き込む。
なお、第１暗号化部３０６及び第２暗号化部３０７が、各情報を記録媒体２００ｂへ書き込むことにより、記録媒体２００ｃが生成されていることに注意されたい。
【０１８３】
（８）受付部３０８
受付部３０８は、ユーザの操作により、記録指示を受け付け、受け付けた記録指示を復号鍵生成部３０４へ出力する。
（９）入出力部３０９
入出力部３０９は、基準部分集合を、記録媒体２００ｂの鍵無効化データ格納部２０１から読み出し、読み出した基準部分集合を復号鍵生成部３０４へ出力する。
【０１８４】
入出力部３０９は、基準部分集合に対応する暗号化メディア鍵を、記録媒体２００ｂの鍵無効化データ格納部２０１から読み出し、読み出した暗号化メディア鍵を復号部３０５へ出力する。
入出力部３０９は、第１暗号化部３０６から暗号化コンテンツ鍵を受け取り、受け取った暗号化コンテンツ鍵を書き込むために、暗号化コンテンツ鍵格納部２０２を記録媒体２００ｂ上に確保し、確保した暗号化コンテンツ鍵格納部２０２に受け取った暗号化コンテンツ鍵を書き込む。
【０１８５】
入出力部３０９は、第２暗号化部３０７から暗号化コンテンツを受け取り、受け取った暗号化コンテンツを書き込むために、暗号化コンテンツ格納部２０３を記録媒体２００ｂ上に確保し、確保した暗号化コンテンツ格納部２０３に受け取った暗号化コンテンツを書き込む。
１．５  再生装置４００
再生装置４００ａ、４００ｂ、・・・、４００ｃは、同様の構成を有しているので、ここでは、再生装置４００として説明する。
【０１８６】
再生装置４００は、図１６に示すように、鍵情報格納部４０１、復号鍵生成部４０２、第１復号部４０３、第２復号部４０４、第３復号部４０５、再生部４０６、受付部４０７及び読出部４０８から構成されている。
再生装置４００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、再生装置４００は、その機能を達成する。
【０１８７】
再生装置４００は、当該再生装置４００を識別するための装置識別子を予め記憶している。
なお、以降の説明では、再生装置４００に記録媒体２００ｃが装着されているものとする。
（１）鍵情報格納部４０１
鍵情報格納部４０１は、鍵管理装置１００より配布された１以上の鍵情報と相互関係テーブルＤ１０１を予め記憶している。
【０１８８】
例えば、再生装置４００が、装置識別子５を予め記憶している場合には、図１２にて示す装置５が保持する４つの鍵情報を記憶し、装置識別子６を予め記憶している場合には、図１２にて示す装置６が保持する５つの鍵情報を記憶している。
（２）復号鍵生成部４０２
復号鍵生成部４０２は、鍵管理装置１００の情報生成部１０３が有する擬似乱数生成器Ｇ１５０と同一の擬似乱数生成器Ｇ１５２を予め記憶している。擬似乱数生成器Ｇ１５２は、擬似乱数生成器Ｇ１５０と同一であるため、ここでの説明は省略する。
【０１８９】
復号鍵生成部４０２は、受付部３０８より、コンテンツの再生する再生指示を受け取ると、読出部４０８を介して当該再生装置４００に装着された記録媒体２００ｃより、記録媒体２００ｃに記録されている１以上の暗号化メディア鍵のそれぞれに対応する部分集合のうち、１つの基準部分集合を読み出す。
復号鍵生成部４０２は、鍵情報格納部４０１から相互関係テーブルＤ１０１と１以上の鍵情報とを読み出す。
【０１９０】
復号鍵生成部３０４は、相互関係テーブルＤ１０１を用いて、読み出した各鍵情報に含まれる部分集合から、基準部分集合に至る経路をもつ検出部分集合を検索する。
検索結果により、読み出した各鍵情報に含まれる部分集合から、検出部分集合を検出した場合には、復号鍵生成部４０２は、デバイス鍵の取得動作により、暗号化メディア鍵の復号鍵であるデバイス鍵を取得し、取得したデバイス鍵と、基準部分集合とを第１復号部４０３へ出力する。
【０１９１】
検索結果により、検出部分集合を検出しない場合には、未読出の基準部分集合が、記録媒体２００ｃに１つ以上存在するか否かを判断し、存在すると判断する場合には、１以上の未読出の基準部分集合のうち１つの基準部分集合を読み出し、検出部分集合の検索を行う。未読出の基準部分集合が、記録媒体２００ｃに存在しないと判断する場合には、コンテンツの再生の動作を終了する。
【０１９２】
なお、デバイス鍵の取得動作は、記録装置３００の復号鍵生成部３０４にて示す取得動作と同様であるため、説明は省略する。
＜デバイス鍵の取得の具体例＞
ここで、デバイス鍵の取得の具体例として、再生装置４００が装置識別子１を有する場合、及び再生装置４００が装置識別子７を有する場合について、説明する。このとき、記録媒体２００ｃは、図１７に示すように、鍵無効化データ格納部２０１に、部分集合「２３４５６７８」と暗号化メディア鍵（Ｋ２８、メディア鍵）とを記憶し、暗号化コンテンツ鍵格納部２０２に、暗号化コンテンツ鍵Ｅｎｃ（メディア鍵、コンテンツ鍵）を記憶し、暗号化コンテンツ格納部２０３に、暗号化コンテンツＥｎｃ（コンテンツ鍵、コンテンツ）を記憶している。
【０１９３】
再生装置４００が、装置識別子１を有している場合には、記憶している４つの鍵情報のそれぞれに含まれる部分集合から基準部分集合「２３４５６７８」へ至る経路は存在しないため、復号鍵生成部３０４は、暗号化メディア鍵を復号するデバイス鍵を生成することはできない。
再生装置４００が、装置識別子７を有している場合には、記憶している５つの鍵情報のそれぞれに含まれる部分集合から検出部分集合「５６７」を検出し、検出部分集合を含む鍵情報からラベル「Ａ５ＲＬ」を取得する。復号鍵生成部４０２は、擬似乱数生成器Ｇ１５２と、取得したラベル「Ａ５ＲＬ」とを用いて、デバイス鍵「Ｋ２８」を取得する。
【０１９４】
（３）第１復号部４０３
第１復号部４０３は、暗号化メディア鍵を生成した共通鍵暗号化アルゴリズムと同じ共通鍵暗号化アルゴリズムを有している。
第１復号部４０３は、復号鍵生成部４０２からデバイス鍵と、基準部分集合とを受け取ると、記録媒体２００ｃの鍵無効化データ格納部２０１から、受け取った基準部分集合に対応する暗号化メディア鍵を、読出部４０８を介して読み出す。
【０１９５】
第１復号部４０３は、読み出した暗号化メディア鍵を、受け取ったデバイス鍵を用いて共通鍵暗号アルゴリズムで復号して、メディア鍵を生成し、生成したメディア鍵を第２復号部４０４へ出力する。
（４）第２復号部４０４
第２復号部４０４は、暗号化コンテンツ鍵を生成した共通鍵暗号化アルゴリズムと同じ共通鍵暗号化アルゴリズムを有している。
【０１９６】
第２復号部４０４は、第１復号部４０３からメディア鍵を受け取ると、読出部４０８を介して記録媒体２００ｃの暗号化コンテンツ鍵格納部２０２から、暗号化コンテンツ鍵を読み出す。
第２復号部４０４は、読み出した暗号化コンテンツ鍵を、受け取ったメディア鍵を用いて共通鍵暗号アルゴリズムで復号して、コンテンツ鍵を生成し、生成したコンテンツ鍵を第３復号部４０５へ出力する。
【０１９７】
（５）第３復号部４０５
第３復号部４０５は、暗号化コンテンツを生成した共通鍵暗号化アルゴリズムと同じ共通鍵暗号化アルゴリズムを有している。
第３復号部４０５は、第２復号部４０４からコンテンツ鍵を受け取ると、読出部４０８を介して記録媒体２００ｃの暗号化コンテンツ格納部２０３から、暗号化コンテンツを読み出す。
【０１９８】
第３復号部４０５は、読み出した暗号化コンテンツを、受け取ったコンテンツ鍵を用いて共通鍵暗号アルゴリズムで復号して、コンテンツを生成し、生成したコンテンツを再生部４０６へ出力する。
（６）再生部４０６
再生部４０６は、第３復号部４０５からコンテンツＤＣＮＴを受け取り、受け取ったコンテンツから映像情報及び音声情報を生成し、生成した映像情報及び音声情報をアナログの映像信号及び音声信号に変換し、アナログの映像信号及び音声信号をモニタ４２０へ出力する。
【０１９９】
（７）受付部４０７
受付部４０７は、ユーザの操作により再生指示を受け付け、受け付けた再生指示を復号鍵生成部４０２へ出力する。
（８）読出部４０８
読出部４０８は、基準部分集合を、記録媒体２００ｃの鍵無効化データ格納部２０１から読み出し、読み出した基準部分集合を復号鍵生成部４０２へ出力する。
【０２００】
読出部４０８は、基準部分集合に対応する暗号化メディア鍵を、記録媒体２００ｃの鍵無効化データ格納部２０１から読み出し、読み出した暗号化メディア鍵を第１復号部４０３へ出力する。
読出部４０８は、暗号化コンテンツ鍵を、記録媒体２００ｃの暗号化コンテンツ鍵格納部２０２から読み出し、読み出した暗号化コンテンツ鍵を第２復号部４０４へ出力する。
【０２０１】
読出部４０８は、暗号化コンテンツを、記録媒体２００ｃの暗号化コンテンツ格納部２０３から読み出し、読み出した暗号化コンテンツを第３復号部４０５へ出力する。
（９）モニタ４２０
モニタ４２０は、ＣＲＴ及びスピーカを備え、再生部４０６からアナログの映像信号及び音声信号を受信し、映像信号に基づいて映像を表示し、音声信号に基づいて音声を出力する。
【０２０２】
１．６  鍵管理装置１００の動作
ここでは、鍵管理装置１００が、生成指示を受け取ったときの動作、鍵情報の配布時の動作及び鍵無効化データの生成時の動作について動作について、説明する。
（１）生成処理の動作概要
ここでは、鍵管理装置１００が生成指示を受け取ったときの動作の概要について、図１８に示す流れ図を用いて、説明する。
【０２０３】
鍵管理装置１００の情報生成部１０３は、受付部１０７より生成指示を受け取ると（ステップＳ５）、部分集合の生成処理を行い、１以上の部分集合が記録されているデバイス鍵テーブルＤ１００ａを生成する（ステップＳ１０）。
情報生成部１０３は、次に、デバイス鍵の生成処理を行い、デバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を生成する（ステップＳ１５）。
【０２０４】
（２）部分集合の生成処理の動作
ここでは、部分集合の生成処理の動作について、図１９及び図２０に示す流れ図を用いて、説明する。
情報生成部１０３は、装置情報格納部１０１にて管理している木構造の高さＴを取得し（ステップＳ５０）、作業用デバイス鍵テーブルの行カウンタｎに初期値０をセットする（ステップＳ５５）。
【０２０５】
情報生成部１０３は、ｉ＝０〜Ｔ−１までの間、ステップＳ６５〜ステップＳ１１０を繰り返す。
情報生成部１０３は、レイヤｉの存在するノードの数Ｎを取得する（ステップＳ６５）。次に、情報生成部１０３は、レイヤｉに存在するノードをルートとする部分木の高さＨを取得する（ステップＳ７０）。
【０２０６】
情報生成部１０３は、ｊ＝０〜Ｈ−１までの間、ステップＳ８０〜ステップＳ１０５を繰り返す。
情報生成部１０３は、行カウンタｎに１を加算し、加算結果をｎとする（ステップＳ８０）。
次に、情報生成部１０３は、ｋ＝１〜Ｎまでの間、ステップＳ９０〜ステップＳ１００を繰り返す。
【０２０７】
情報生成部１０３は、レイヤｉの左からｋ番目のノードをルートとする部分木を取得し（ステップＳ９０）、取得した部分木のリーフから、２＾ｊ個の端末識別子を除き、残りの端末識別子からなる部分集合を１個以上生成する（ステップＳ９５）。ただし、複数の装置を除く場合、つまり複数の無効な装置識別子を除く場合には、無効な端末識別子全てが共通にもち、且つ無効な端末装置識別子だけがもつ上位ノードが存在する場合のみとする。
【０２０８】
情報生成部１０３は、生成した各部分集合を、作業用デバイス鍵テーブルのｎ行目の未記録の列に対して、左から順に書き込む（ステップＳ１００）。
（３）デバイス鍵の生成処理の動作
ここでは、デバイス鍵の生成処理の動作について、図２１〜図２５に示す流れ図を用いて、説明する。
【０２０９】
情報生成部１０３は、装置情報格納部１０１にて管理している木構造の高さＴを取得する（ステップＳ１５０）。
情報生成部１０３は、ｈ＝１〜２＾Ｔまでの間、ステップＳ１６０〜ステップＳ３４５を繰り返す。
情報生成部１０３は、Ｘビットからなる乱数Ａｈを生成し（ステップＳ１６０）、生成した乱数Ａｈを、デバイス鍵テーブルＤ１００ａの｛（Ｔ＾２＋Ｔ）／２｝行、ｈ列へ書き込む（ステップＳ１６５）。
【０２１０】
情報生成部１０３は、擬似乱数生成器Ｇに、割り当てられたラベル、つまり乱数Ａｈを入力値として与え、その出力としてデバイス鍵「Ｋｍ」、左ラベル及び右ラベルを取得する（ステップＳ１７０）。
情報生成部１０３は、取得したデバイス鍵「Ｋｍ」を、デバイス鍵テーブルＤ１００ａの｛（Ｔ＾２＋Ｔ）／２｝行、ｈ列へ書き込む（ステップＳ１７５）。情報生成部１０３は、左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベル（つまり、乱数Ａｈ）に対する部分集合と対応付けて、一時的に記憶しておく（ステップＳ１８０）。ただし、デバイス鍵を示す「Ｋｍ」の添字ｍは、初期値１から始まり、デバイス鍵が割り当てられる毎に１ずつ増加する値とし、「Ｋｍ＋１」は、「Ｋｍ」の次に割り当てられるデバイス鍵であることを示す。
【０２１１】
情報生成部１０３は、ｉ＝｛（Ｔ＾２＋Ｔ）／２−１｝〜１までの間、ステップＳ１９０〜ステップＳ３４０を繰り返す。
情報生成部１０３は、デバイス鍵テーブルＤ１００ａのｉ＋１行目でデバイス鍵が割り当てられた部分集合の個数Ｊを取得する（ステップＳ１９０）。
情報生成部１０３は、ｊ＝１〜Ｊまでの間、ステップＳ２００〜ステップＳ３３５を繰り返す。
【０２１２】
情報生成部１０３は、デバイス鍵テーブルＤ１００ａのｉ＋１行目でデバイス鍵が割り当てられた左からｊ番目の部分集合Ｓｊを基準として、デバイス鍵テーブルＤ１００ａのｉ行目を左から順に、部分集合Ｓｊを含み、且つデバイス鍵が未だ割り当てられていない部分集合を検索する（ステップＳ２００）。
情報生成部１０３は、検索により、部分集合Ｓｊを含み、デバイス鍵が未だ割り当てられていない部分集合が存在するか否かを判断する（ステップＳ２０５）。
【０２１３】
部分集合が存在しないと判断する場合には（ステップＳ２０５における「ＮＯ」）、部分集合Ｓｊを親ノードとし、親ノードである部分集合Ｓｊと、その子ノードとなる部分集合が存在しないことを示す記号「−」とからなる組を、ノード情報として、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む（ステップＳ２１０）。さらに、部分集合Ｓｊがルートであるか否かを判断し（ステップＳ２１５）、ルートであると判断する場合には（ステップＳ２１５における「ＹＥＳ」）、ルート情報に、ルートであることを示す情報（「ルート」）を記録する（ステップＳ２２０）。ルートでないと判断する場合には（ステップＳ２１５における「ＮＯ」）、ステップＳ２２０を省略する。
【０２１４】
部分集合が１以上存在すると判断する場合には（ステップＳ２０５における「ＹＥＳ」）、デバイス鍵が未だ割り当てられていない１以上の部分集合のうち最大２つの部分集合を左から順に取得する（ステップＳ２２５）。
情報生成部１０３は、取得した部分集合が１つであるか否かを判断する（ステップＳ２３０）。
【０２１５】
取得した部分集合が１つであると判断する場合には（ステップＳ２３０における「ＹＥＳ」）、部分集合Ｓｊに対応付けられ、一時的に記憶している左ラベル及び右ラベルのうち右ラベルを、取得した部分集合に対するラベルとして割り当て、割り当てた右ラベルを、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む（ステップＳ２３５）。
【０２１６】
情報生成部１０３は、擬似乱数生成器Ｇに、取得した部分集合に割り当てられたラベル（つまり、一時的に記憶している右ラベル）を入力値として与え、その出力としてデバイス鍵「Ｋｍ」、左ラベル及び右ラベルを取得する（ステップＳ２４０）。
情報生成部１０３は、取得したデバイス鍵「Ｋｍ」を、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む（ステップＳ２４５）。さらに、情報生成部１０３は、ステップＳ２４０にて取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合（つまり、ステップＳ２２５にて取得した部分集合）と対応付けて、一時的に記憶しておく（ステップＳ２５０）。情報生成部１０３は、部分集合Ｓｊを親ノードとし、取得した部分集合をその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む（ステップＳ２５５）。さらに、部分集合Ｓｊがルートであるか否かを判断し（ステップＳ２６０）、ルートであると判断する場合には（ステップＳ２６０における「ＹＥＳ」）、ルート情報に、ルートであることを示す情報（「ルート」）を記録する（ステップＳ２６５）。ルートでないと判断する場合には（ステップＳ２６０における「ＮＯ」）、ステップＳ２６５を省略する。
【０２１７】
取得した部分集合が２つ（ここでは、Ｔｊ及びＵｊとする）であると判断する場合には（ステップＳ２３０における「ＮＯ」）、２つの部分集合のうち左側に位置する部分集合Ｔｊに対するラベルとして、部分集合Ｓｊに対応付けられ、一時的に記憶している左ラベルを割り当て、割り当てた左ラベルをデバイス鍵テーブルＤ１００ａ内の取得した部分集合Ｔｊが記録さている欄へ書き込む（ステップＳ２７０）。
【０２１８】
情報生成部１０３は、擬似乱数生成器Ｇに、取得した部分集合Ｔｊに割り当てられたラベル（つまり、部分集合Ｓｊに対応する左ラベル）を入力値として与え、その出力としてデバイス鍵「Ｋｍ」、左ラベル及び右ラベルを取得する（ステップＳ２７５）。
情報生成部１０３は、取得したデバイス鍵「Ｋｍ」を、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む（ステップＳ２８０）。さらに、情報生成部１０３は、ステップＳ２７５にて取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合Ｔｊと対応付けて、一時的に記憶しておく（ステップＳ２８５）。情報生成部１０３は、部分集合Ｓｊを親ノードとし、取得した部分集合Ｔｊをその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む（ステップＳ２９０）。さらに、部分集合Ｓｊがルートであるか否かを判断し（ステップＳ２９５）、ルートであると判断する場合には（ステップＳ２９５における「ＹＥＳ」）、ルート情報に、ルートであることを示す情報（「ルート」）を記録する（ステップＳ３００）。ルートでないと判断する場合には（ステップＳ２９５における「ＮＯ」）、ステップＳ３００を省略する。
【０２１９】
次に、情報生成部１０３は、部分集合Ｕｊに対するラベルとして、部分集合Ｓｊに対応付けられ、一時的に記憶している右ラベルを割り当て、割り当てた右ラベルをデバイス鍵テーブルＤ１００ａ内の取得した部分集合Ｕｊが記録さている欄へ書き込む（ステップＳ３０５）。
情報生成部１０３は、擬似乱数生成器Ｇに、取得した部分集合Ｕｊに割り当てられたラベル（つまり、部分集合Ｓｊに対応する右ラベル）を入力値として与え、その出力としてデバイス鍵「Ｋｍ＋１」、左ラベル及び右ラベルを取得する（ステップＳ３１０）。
【０２２０】
情報生成部１０３は、取得したデバイス鍵「Ｋｍ＋１」を、デバイス鍵テーブルＤ１００ａ内の取得した部分集合が記録さている欄へ書き込む（ステップＳ３１５）。さらに、情報生成部１０３は、ステップＳ３１０にて取得した２つの左ラベル及び右ラベルを、擬似乱数生成器Ｇへの入力に使用したラベルに対する部分集合Ｕｊと対応付けて、一時的に記憶しておく（ステップＳ３２０）。情報生成部１０３は、部分集合Ｓｊを親ノードとし、取得した部分集合Ｕｊをその子ノードとして、作業用相互関係テーブル内の未記録である最上位の領域へ書き込む（ステップＳ３２５）。さらに、部分集合Ｓｊがルートであるか否かを判断し（ステップＳ３３０）、ルートであると判断する場合には（ステップＳ３３０における「ＹＥＳ」）、ルート情報に、ルートであることを示す情報（「ルート」）を記録する（ステップＳ３３５）。ルートでないと判断する場合には（ステップＳ３３０における「ＮＯ」）、ステップＳ３３５を省略する。
【０２２１】
情報生成部１０３は、生成したデバイス鍵テーブルＤ１００及び相互関係テーブルＤ１０１を情報格納部１０２へ格納する（ステップＳ３６０）。
（４）鍵情報の配布時の動作
ここでは、鍵情報の配布時に行う鍵情報の取得処理の動作について、図２６及び図２７に示す流れ図を用いて、説明する。
【０２２２】
配布部１０４は、受付部１０７より、鍵情報の配布指示及び配布する装置を示す装置識別子とを受け取ると（ステップＳ４００）、相互関係テーブルＤ１０１にて管理されている木構造の個数Ｙを取得する（ステップＳ４０５）。
配布部１０４は、ｉ＝１〜Ｙまでの間、ステップＳ４１５〜ステップＳ４６５を繰り返す。
【０２２３】
配布部１０４は、相互関係テーブルＤ１０１にて上位からｉ番目に管理されている木構造Ｖｉを示すデータ構造を取得する（ステップＳ４１５）。
配布部１０４は、取得したデータ構造から、子ノードを持たないノード（つまり、リーフ）の数Ｐを取得する（ステップＳ４２０）。
配布部１０４は、ｐ＝１〜Ｐまでの間、ステップＳ４３０〜ステップＳ４６０を繰り返す。
【０２２４】
配布部１０４は、取得したデータ構造の親ノードの項目から、子ノードを持たない、上位ｐ番目のノードＷｐ（つまり、Ｗｐはリーフとなる。）を取得し（ステップＳ４３０）、木構造Ｖｉのルートを起点として、リーフＷｐまでに至る経路に対して、受け取った装置識別子を含む部分集合が出現する最初のノード（部分集合）を検索する（ステップＳ４３５）。
【０２２５】
配布部１０４は、検索により、部分集合を検出したか否かを判断する（ステップＳ４４０）。
部分集合を検出したと判断する場合には（ステップＳ４４０における「ＹＥＳ」）、検出した部分集合が鍵情報記憶領域に記憶済みであるか否かを判断する（ステップＳ４４５）。
【０２２６】
記憶済みでないと判断する場合には（ステップＳ４４５における「ＮＯ」）、配布部１０４は、検出した部分集合に対応するラベルをデバイス鍵テーブルＤ１００から読み出し（ステップＳ４５０）、読み出したラベルと検出した部分集合とを含む鍵情報を生成して取得し（ステップＳ４５５）、取得した鍵情報を鍵情報記憶領域へ記憶する（ステップＳ４６０）。記憶済みであると判断する場合には（ステップＳ４４５における「ＹＥＳ」）、ステップＳ４５０〜ステップＳ４６０を省略する。
【０２２７】
配布部１０４は、相互関係テーブルＤ１０１を読み出し（ステップＳ４７５）、読み出した相互関係テーブルＤ１０１と鍵情報記憶領域にて記憶している全ての鍵情報とを、配布対象の装置へ配布する（ステップＳ４８０）。
配布部１０４は、相互関係テーブルＤ１０１と全ての鍵情報とを、受け取った装置識別子をもつ装置へ配布した後、鍵情報記憶領域にて記憶している全ての鍵情報を消去する（ステップＳ４８５）。なお、ここで、配布とは、例えば、配布用の記録媒体に、受け付けた装置識別子と、鍵情報記憶領域にて記憶している１以上の鍵情報との書き込みが完了したことをいう。
【０２２８】
（５）鍵無効化データの生成時の動作
ここでは、鍵無効化データの生成時に行う鍵無効化データ生成処理の動作について、図２８に示す流れ図を用いて、説明する。
鍵無効化データ生成部１０６は、無効化装置特定部１０５を介して受付部１０７より作成指示を受け取ると（ステップＳ５００）、無効化装置特定部１０５の無効化装置記憶領域に、装置識別子が記憶されているか否かを判断、つまり無効な装置識別子が無効化装置記憶領域に存在するか否かを判断する（ステップＳ５０５）。
【０２２９】
無効な装置識別子が記憶されていないと判断する場合には（ステップＳ５０５における「ＮＯ」）、和集合により全装置の装置識別子を含むことのできる第１及び第２部分集合をデバイス鍵テーブルＤ１００から読み出す（ステップＳ５１０）。
鍵無効化データ生成部１０６は、読み出した各部分集合に対応する第１及び第２デバイス鍵を、デバイス鍵テーブルＤ１００から読み出す（ステップＳ５１５）。
【０２３０】
鍵無効化データ生成部１０６は、メディア鍵をメディア鍵記憶領域から読み出し（ステップＳ５２０）、読み出したメディア鍵を、第１デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、第１暗号化メディア鍵を生成し、生成した第１暗号化メディア鍵と、第１部分集合とを対応付けて一時的に記憶する。さらに、鍵無効化データ生成部１０６は、読み出したメディア鍵を、第２デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、第２暗号化メディア鍵を生成し、生成した第２暗号化メディア鍵と、第２部分集合とを対応付けて一時的に記憶する（ステップＳ５２５）。
【０２３１】
第１部分集合及び第１暗号化メディア鍵を、出力部１０８を介して記録媒体２００ａへ書き込む（ステップＳ５３０）。
第２部分集合及び第２暗号化メディア鍵を、出力部１０８を介して記録媒体２００ａへ書き込む（ステップＳ５３５）。
無効な装置識別子が記憶されていると判断する場合には（ステップＳ５０５における「ＹＥＳ」）、鍵無効化データ生成部１０６は、木構造Ｔ１００にて管理している全装置識別子から無効な装置識別子を除いた１以上の有効な装置識別子のうち、最も多くの有効な装置識別子からなる部分集合をデバイス鍵テーブルＤ１００から読み出す（ステップＳ５４０）。
【０２３２】
読み出した部分集合に対応するデバイス鍵をデバイス鍵テーブルＤ１００から読み出し（ステップＳ５４５）、読み出した部分集合及びデバイス鍵を一時的に記憶する（ステップＳ５５０）。鍵無効化データ生成部１０６は、全ての有効な装置識別子のみが部分集合の要素として選択されたか否かを判断する（ステップＳ５５５）。
選択されていないと判断する場合には（ステップＳ５５５における「ＮＯ」）、１以上の未選択の有効な装置識別子を用いて、ステップＳ５４以降を、再度実行する。
【０２３３】
選択されたと判断する場合には（ステップＳ５５５における「ＹＥＳ」）、鍵無効化データ生成部１０６は、メディア鍵をメディア鍵記憶領域から読み出し（ステップＳ５６０）、読み出したメディア鍵を、一時的に記憶している各デバイス鍵を用いて共通鍵暗号アルゴリズムで暗号化して、１個以上の暗号化メディア鍵を生成し、生成した各暗号化メディア鍵を、暗号化に利用したデバイス鍵に対応する部分集合と対応付けて一時的に記憶する（ステップＳ５６５）。このとき、生成する暗号化メディア鍵の個数は、読み出したデバイス鍵の個数と同じである。
【０２３４】
鍵無効化データ生成部１０６は、読み出したデバイス鍵全てから、暗号化メディア鍵の生成が終了すると、一時的に記憶している１以上の暗号化メディア鍵と部分集合との組を読み出し、読み出した１以上の組を、出力部１０８を介して記録媒体２００ａへ書き込む（ステップＳ５７０）。
１．７  記録装置３００の動作
ここでは、記録装置３００が、記録指示を受け取ったときの動作について動作について、説明する。
【０２３５】
（１）記録処理の動作
ここでは、記録装置３００が記録指示を受け取ったときに、復号鍵生成部３０４、復号部３０５、第１暗号化部３０６及び第２暗号化部３０７にて行う記録処理の動作について、図２９に示す流れ図を用いて、説明する。
記録装置３００の復号鍵生成部３０４は、受付部３０８より、記録指示を受け取ると（ステップＳ６００）、入出力部３０９を介して当該記録装置３００に装着された記録媒体２００ｂより、記録媒体２００ｂに記録されている１以上の暗号化メディア鍵のそれぞれに対応する部分集合のうち、１つの部分集合（以下、基準部分集合という。）を読み出す（ステップＳ６０５）。
【０２３６】
復号鍵生成部３０４は、鍵情報格納部３０１から相互関係テーブルＤ１０１と１以上の鍵情報とを読み出す（ステップＳ６１０）。
復号鍵生成部３０４は、相互関係テーブルＤ１０１を用いて、読み出した各鍵情報に含まれる部分集合から、検出部分集合を検索する（ステップＳ６１５）。
検索結果により、読み出した各鍵情報に含まれる部分集合から、検出部分集合を検出したか否かを判断する（ステップＳ６２０）。
【０２３７】
検出しないと判断する場合には（ステップＳ６２０における「ＮＯ」）、未読出の基準部分集合が、記録媒体２００ｂに１つ以上存在するか否かを判断する（ステップＳ６２５）。存在すると判断する場合には（ステップＳ６２５における「ＹＥＳ」）、１以上の未読出の基準部分集合のうち１つの基準部分集合を読み出し（ステップＳ６３０）、ステップＳ６１５へ戻る。未読出の基準部分集合が、記録媒体２００ｂに存在しないと判断する場合には（ステップＳ６２５における「ＮＯ」）、暗号化コンテンツの記録の動作を終了する。
【０２３８】
検出部分集合を検出したと判断する場合には（ステップＳ６２０における「ＹＥＳ」）、デバイス鍵の取得処理を行い、デバイス鍵を取得する（ステップＳ６３５）。
次に、復号部３０５は、デバイス鍵取得処理にて取得されたデバイス鍵を用いて、復号処理を行い、暗号化メディア鍵を復号して、メディア鍵を生成する（ステップＳ６４０）。
【０２３９】
第１暗号化部３０６は、復号処理にて生成されたメディア鍵を用いて、第１暗号化処理を行い、暗号化コンテンツ鍵を生成する（ステップＳ６４５）。
第２暗号化部３０７は、コンテンツ鍵を用いて、第２暗号化処理を行い、暗号化コンテンツを生成する（ステップＳ６５０）。
（２）デバイス鍵の取得処理の動作
ここでは、図２９に示す記録処理のステップＳ６３５にて行われるデバイス鍵の取得処理の動作について、図３０に示す流れ図を用いて、説明する。
【０２４０】
復号鍵生成部３０４は、検出部分集合を含む鍵情報から、Ｘビットからなるラベルを取得する（ステップＳ７００）。
検出部分集合から基準部分集合までの経路に存在するノードの個数Ｚを取得する（ステップＳ７０５）。
復号鍵生成部３０４は、ｚ＝１〜Ｚまでの間、ステップＳ７１５〜ステップＳ７３５までを、繰り返す。
【０２４１】
復号鍵生成部３０４は、取得したラベルを入力値として、擬似乱数生成器Ｇ１５１を用いて、３Ｘビットからなる乱数を生成して取得する（ステップＳ７１５）。
復号鍵生成部３０４は、検出部分集合から基準部分集合までに至る経路において、入力値として利用したラベルに対応する部分集合に対する次のノードが存在するか否かを判断する（ステップＳ７２０）。
【０２４２】
存在すると判断する場合には（ステップＳ７２０における「ＹＥＳ」）、次のノードが、左の子ノードであるか右の子ノードであるかを判断する（ステップＳ７２５）。左の子ノードであると判断する場合には（ステップＳ７２５における「ＹＥＳ」）、取得した３Ｘビットの乱数をＸビットごとに分割することにより、左ラベルを取得し（ステップＳ７３０）、取得した左ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値として、ステップＳ７１５へ戻る。右の子ノードであると判断する場合には（ステップＳ７２５における「ＮＯ」）、取得した３Ｘビットの乱数をＸビットごとに分割することにより、右ラベルを取得し（ステップＳ７３５）、取得した右ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値として、ステップＳ７１５へ戻る。
【０２４３】
次のノードが存在しないと判断する場合には（ステップＳ７２０における「ＮＯ」）、ステップＳ７２５〜ステップＳ７３５を省略する。
復号鍵生成部３０４は、Ｚ回目に取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、暗号化メディア鍵の復号に用いるデバイス鍵として取得する（ステップＳ７４５）。
【０２４４】
復号鍵生成部３０４は、取得したデバイス鍵と、基準部分集合とを復号部３０５へ出力する（ステップＳ７５０）。
（３）復号処理の動作
ここでは、図２９に示す記録処理のステップＳ６４０にて行われる復号処理の動作について、図３１に示す流れ図を用いて、説明する。
【０２４５】
復号部３０５は、復号鍵生成部３０４からデバイス鍵と、基準部分集合とを受け取ると（ステップＳ８００）、記録媒体２００ｂの鍵無効化データ格納部２０１から、受け取った基準部分集合に対応する暗号化メディア鍵を、入出力部３０９を介して読み出す（ステップＳ８０５）。
復号部３０５は、読み出した暗号化メディア鍵を、受け取ったデバイス鍵を用いて共通鍵暗号アルゴリズムで復号して、メディア鍵を生成し（ステップＳ８１０）、生成したメディア鍵を第１暗号化部３０６へ出力する（ステップＳ８１５）。
【０２４６】
（４）第１暗号化処理の動作
ここでは、図２９に示す記録処理のステップＳ６４５にて行われる第１暗号化処理の動作について、図３２に示す流れ図を用いて、説明する。
第１暗号化部３０６は、復号部３０５からメディア鍵を受け取ると（ステップＳ８３０）、コンテンツ鍵格納部３０３よりコンテンツ鍵を読み出す（ステップＳ８３５）。
【０２４７】
第１暗号化部３０６は、読み出したコンテンツ鍵を、メディア鍵を用いて共通鍵暗号アルゴリズムで暗号化して、暗号化コンテンツ鍵を生成し（ステップＳ８４０）、生成した暗号化コンテンツ鍵を、入出力部３０９を介して記録媒体２００ｂの暗号化コンテンツ鍵格納部２０２へ書き込む（ステップＳ８４５）。
さらに、第１暗号化部３０６は、第２暗号化部３０７へコンテンツの暗号化を指示する旨の暗号化命令を出力する（ステップＳ８５０）。
【０２４８】
（５）第２暗号化処理の動作
ここでは、図２９に示す記録処理のステップＳ６５０にて行われる第２暗号化処理の動作について、図３３に示す流れ図を用いて、説明する。
第２暗号化部３０７は、第１暗号化部３０６から、暗号化命令を受け取ると（ステップＳ８７０）、コンテンツ鍵格納部３０３よりコンテンツ鍵を、コンテンツ格納部３０２からコンテンツを、それぞれ読み出す（ステップＳ８７５）。
【０２４９】
第２暗号化部３０７は、読み出したコンテンツを、読み出したコンテンツ鍵を用いて共通鍵暗号アルゴリズムで暗号化して、暗号化コンテンツを生成し（ステップＳ８８０）、生成した暗号化コンテンツを、入出力部３０９を介して記録媒体２００ｂの暗号化コンテンツ格納部２０３へ書き込む（ステップＳ８８５）。
１．８  再生装置４００の動作
ここでは、再生装置４００が、再生指示を受け取ったときの動作について動作について、説明する。
【０２５０】
（１）再生処理の動作
ここでは、再生装置４００が再生指示を受け取ったときに、復号鍵生成部４０２、第１復号部４０３、第２復号部４０４、第３復号部４０５及び再生部４０６にて行う再生処理の動作について、図３４に示す流れ図を用いて、説明する。
再生装置４００の復号鍵生成部４０２は、受付部４０７より、再生指示を受け取ると（ステップＳ９００）、読出部４０８を介して当該再生装置４００に装着された記録媒体２００ｃより、記録媒体２００ｃに記録されている１以上の暗号化メディア鍵のそれぞれに対応する部分集合のうち、１つの部分集合（以下、基準部分集合という。）を読み出す（ステップＳ９０５）。
【０２５１】
復号鍵生成部４０２は、鍵情報格納部４０１から相互関係テーブルＤ１０１と１以上の鍵情報とを読み出す（ステップＳ９１０）。
復号鍵生成部４０２は、相互関係テーブルＤ１０１を用いて、読み出した各鍵情報に含まれる部分集合から、検出部分集合を検索する（ステップＳ９１５）。
検索結果により、読み出した各鍵情報に含まれる部分集合から、検出部分集合を検出したか否かを判断する（ステップＳ９２０）。
【０２５２】
検出しないと判断する場合には（ステップＳ９２０における「ＮＯ」）、未読出の基準部分集合が、記録媒体２００ｃに１つ以上存在するか否かを判断する（ステップＳ９２５）。存在すると判断する場合には（ステップＳ９２５における「ＹＥＳ」）、１以上の未読出の基準部分集合のうち１つの基準部分集合を読み出し（ステップＳ９３０）、ステップＳ９１５へ戻る。未読出の基準部分集合が、記録媒体２００ｃに存在しないと判断する場合には（ステップＳ９２５における「ＮＯ」）、コンテンツ再生の動作を終了する。
【０２５３】
検出部分集合を検出したと判断する場合には（ステップＳ９２０における「ＹＥＳ」）、デバイス鍵の取得処理を行い、デバイス鍵を取得する（ステップＳ９３５）。
次に、第１復号部４０３は、デバイス鍵取得処理にて取得されたデバイス鍵を用いて、復号処理を行い、暗号化メディア鍵を復号して、メディア鍵を生成する（ステップＳ９４０）。
【０２５４】
第２復号部４０４は、第１復号処理にて生成されたメディア鍵を用いて、第２復号処理を行い、暗号化コンテンツ鍵を復号して、コンテンツ鍵を生成する（ステップＳ９４５）。
第３復号部４０５は、第２復号処理にて生成されたコンテンツ鍵を用いて、第２暗号化処理を行い、暗号化コンテンツを復号してコンテンツを生成する（ステップＳ９５０）。
【０２５５】
再生部４０６は、第３復号処理にて生成されたコンテンツを、再生する（ステップＳ９５５）。
（２）デバイス鍵の取得処理の動作
ここでは、図３４に示す再生処理のステップＳ９３５にて行われるデバイス鍵の取得処理の動作について、図３５に示す流れ図を用いて、説明する。
【０２５６】
復号鍵生成部４０２は、検出部分集合を含む鍵情報から、Ｘビットからなるラベルを取得する（ステップＳ１０００）。
復号鍵生成部４０２は、検出部分集合から基準部分集合までの経路に存在するノードの個数Ｚを取得する（ステップＳ１００５）。
復号鍵生成部４０２は、ｚ＝１〜Ｚまでの間、ステップＳ１０１５〜ステップＳ１０３５までを繰り返す。
【０２５７】
復号鍵生成部４０２は、取得したラベルを入力値として、擬似乱数生成器Ｇ１５１を用いて、３Ｘビットからなる乱数を生成して取得する（ステップＳ１０１５）。
復号鍵生成部４０２は、検出部分集合から基準部分集合までに至る経路において、入力値として利用したラベルに対応する部分集合に対する次のノードが存在するか否かを判断する（ステップＳ１０２０）。
【０２５８】
存在すると判断する場合には（ステップＳ１０２０における「ＹＥＳ」）、次のノードが、左の子ノードであるか右の子ノードであるかを判断する（ステップＳ１０２５）。左の子ノードであると判断する場合には（ステップＳ１０２５における「ＹＥＳ」）、取得した３Ｘビットの乱数をＸビットごとに分割することにより、左ラベルを取得し（ステップＳ１０３０）、取得した左ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値として、ステップＳ１０１５へ戻る。右の子ノードであると判断する場合には（ステップＳ１０２５における「ＮＯ」）、取得した３Ｘビットの乱数をＸビットごとに分割することにより、右ラベルを取得し（ステップＳ１０３５）、取得した右ラベルを擬似乱数生成器Ｇ１５１に対する次の入力値として、ステップＳ１０１５へ戻る。
【０２５９】
次のノードが存在しないと判断する場合には（ステップＳ１０２０における「ＮＯ」）、ステップＳ１０２５〜ステップＳ１０３５を省略する。
復号鍵生成部４０２は、Ｚ回目に取得した３Ｘビットの乱数をＸビットごとに分割し、左から２番目に位置するＸビットを、暗号化メディア鍵の復号に用いるデバイス鍵として取得する（ステップＳ１０４５）。
【０２６０】
復号鍵生成部４０２は、取得したデバイス鍵と、基準部分集合とを第１復号部４０３へ出力する（ステップＳ１０５０）。
（３）第１復号処理の動作
ここでは、図３４に示す再生処理のステップＳ９４０にて行われる復号処理の動作について、図３６に示す流れ図を用いて、説明する。
【０２６１】
第１復号部４０３は、復号鍵生成部４０２からデバイス鍵と、基準部分集合とを受け取ると（ステップＳ１１００）、記録媒体２００ｃの鍵無効化データ格納部２０１から、受け取った基準部分集合に対応する暗号化メディア鍵を、読出部４０８を介して読み出す（ステップＳ１１０５）。
第１復号部４０３は、読み出した暗号化メディア鍵を、受け取ったデバイス鍵を用いて共通鍵暗号アルゴリズムで復号して、メディア鍵を生成し（ステップＳ１１１０）、生成したメディア鍵を第２復号部４０４へ出力する（ステップＳ１１１５）。
【０２６２】
（４）第２復号処理の動作
ここでは、図３４に示す再生処理のステップＳ９４５にて行われる第２復号処理の動作について、図３７に示す流れ図を用いて、説明する。
第２復号部４０４は、第１復号部４０３からメディア鍵を受け取ると（ステップＳ１１３０）、
読出部４０８を介して記録媒体２００ｃの暗号化コンテンツ鍵格納部２０２から、暗号化コンテンツ鍵を読み出す（ステップＳ１１３５）。
【０２６３】
第２復号部４０４は、読み出した暗号化コンテンツ鍵を、受け取ったメディア鍵を用いて共通鍵暗号アルゴリズムで復号して、コンテンツ鍵を生成し（ステップＳ１１４０）、生成したコンテンツ鍵を第３復号部４０５へ出力する（ステップＳ１１４５）。
（４）第３復号処理の動作
ここでは、図３４に示す再生処理のステップＳ９５０にて行われる第３復号処理の動作について、図３８に示す流れ図を用いて、説明する。
【０２６４】
第３復号部４０５は、第２復号部４０４からコンテンツ鍵を受け取ると（ステップＳ１０７０）、読出部４０８を介して記録媒体２００ｃの暗号化コンテンツ格納部２０３から、暗号化コンテンツを読み出す（ステップＳ１０７５）。
第３復号部４０５は、読み出した暗号化コンテンツを、受け取ったコンテンツ鍵を用いて共通鍵暗号アルゴリズムで復号して、コンテンツを生成し（ステップＳ１０８０）、生成したコンテンツを再生部４０６へ出力する（ステップＳ１０８５）。
【０２６５】
１．９  その他の変形例
本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）本発明では、記録媒体２００をＤＶＤ−ＲＡＭのようなレコーダブルメディアとする構成としたが、本発明はその構成に限定されるものではない。例えば、記録媒体をＤＶＤ−Ｖｉｄｅｏのようなプリレコーディッドメディアとして、各再生装置がデバイス鍵を保有して、記録媒体に記録されたコンテンツを再生する構成であってもよい。また、この場合、記録装置は、デバイス鍵を生成するための鍵情報を保有する必要はなく、鍵管理装置から直接メディア鍵を受け取り、そのメディア鍵に基づいてコンテンツを暗号化して書き込む構成であってもよい。
【０２６６】
（２）本発明では、コンテンツを暗号化するメカニズムとして、メディア鍵でコンテンツ鍵を暗号化して、コンテンツ鍵でコンテンツを暗号化する構成としたが、本発明はその構成に限定されるものではない。例えば、メディア鍵で直接コンテンツを暗号化して鍵階層を１つ減らす構成でもよく、逆にディスク鍵を導入して、メディア鍵でディスク鍵を暗号化して、ディスク鍵でコンテンツ鍵を暗号化して、コンテンツ鍵でコンテンツを暗号化して鍵階層を１つ増やす構成であってもよい。あるいは、鍵階層の途中で別途異なる情報を追加して鍵を変調するような構成であってもよい。
【０２６７】
（３）本発明では、鍵無効化データと暗号化コンテンツを同一の記録媒体２００に記録する構成としたが、本発明はその構成に限定されるものではない。例えば、鍵無効化データを記録する記録媒体と、暗号化コンテンツを記録する記録媒体を変えて配布する構成であってもよい。その場合、記録装置３００、あるいは再生装置４００では、まず、鍵無効化データが記録された記録媒体を挿入してメディア鍵を算出してから、別の記録媒体を挿入して、コンテンツの記録、あるいは再生を行う構成となる。
【０２６８】
（４）本発明では、鍵無効化データを記録媒体２００に記録して配布する構成としてが、本発明はその構成に限定されるものではない。例えば、インターネットなどの通信媒体を利用して、鍵無効化データを配布し、記録装置３００及び再生装置４００は、配布された鍵無効化データを記憶し、各装置は、暗号化メディア鍵を復号する際に、記憶している鍵無効化データを用いて復号する構成であってもよい。
【０２６９】
または、各装置は、暗号化メディア鍵の復号を行う度に、通信媒体を利用して、鍵無効化データを受け取ってもよい。
また、本発明では、記録装置３００は、生成した暗号化コンテンツ鍵及び暗号化コンテンツを、装着された記録媒体２００へ書き込んだが、これに限定されない。例えば、記録装置３００は、生成した暗号化コンテンツ鍵及び暗号化コンテンツを、通信媒体を介して、ネットワーク上のサーバが有する記録媒体へ記録するようにしてもよい。
【０２７０】
（５）本発明では、鍵無効化データ、並びに暗号化コンテンツを記録媒体２００に記録して配布する構成としてが、本発明はその構成に限定されるものではない。例えば、放送や、インターネットなどの通信媒体を利用して配布する構成であってもよい。
（６）本発明では、鍵管理装置１００が各装置を管理するための木構造を２分木として構成したが、本発明はその構成に限定されるものではない。各装置を管理する木構造はｎ分木（ｎは整数）であればよい。例えば、木構造は３分木であっても、４分木であってもよい。
【０２７１】
また、鍵管理装置１００が、鍵を管理、つまり部分集合の相互関係を管理するための木構造を２分木として構成したが、本発明はその構成に限定されるものではない。上記と同様に、部分集合の相互関係を管理する木構造はｎ分木（ｎは整数）であればよい。
（７）上記実施の形態において、鍵管理装置１００は、異なる２つの入力値に対して異なる２つの値を出力する擬似乱数生成器Ｇを利用して、部分集合の関連付けを行ったが、これに限定されない。
【０２７２】
鍵管理装置１００は、異なる２つの入力値に対して、同一の値を出力する擬似乱数生成器Ｇ＿１を利用して、部分集合の関連付けを行ってもよい。
例えば、上記の実施の形態では、部分集合「１」と部分集合「１２」とを関連付けしたが、擬似乱数生成器Ｇ＿１を利用することにより、部分集合「１２」は、部分集合「１」及び部分集合「２」のそれぞれと関連付けが可能となる。これにより、装置識別子「２」を有する装置は、部分集合「１２」を含む鍵情報を保持する必要が無くなり、保持する鍵情報の個数を削減することができる。
【０２７３】
（８）上記実施の形態において、無効化装置特定部１０５の無効化装置記憶領域に無効な装置識別子が記憶されていない場合、鍵無効化データ生成部１０６は、和集合により全装置の装置識別子を含むことのできる２つの部分集合と、それら部分集合に対応するデバイス鍵を、デバイス鍵テーブルＤ１００から読み出し、２つの暗号化メディア鍵を生成したが、これに限定されない。以下のようにして、１つの暗号化メディア鍵を生成してもよい。
【０２７４】
鍵管理装置１００は、全ての装置に共通のラベル「Ａ０」を生成し、生成したラベル「Ａ０」からデバイス鍵「Ｋ０」を生成し、ラベル「Ａ０」とデバイス鍵「Ｋ０」と全ての装置識別子からなる集合Ｓ０とからなる組を情報格納部１０２に記憶し、鍵管理装置１００は、全ての装置に対して、集合Ｓ０とラベル「Ａ０」とを予め配布する。
鍵管理装置１００は、無効化装置記憶領域に無効な装置識別子が記憶されていない場合、集合Ｓ０とデバイス鍵「Ｋ０」とを情報格納部１０２から読み出し、読み出したデバイス鍵「Ｋ０」を用いて、暗号化メディア鍵Ｅｎｃ（Ｋ０、メディア鍵）を生成する。鍵管理装置１００は、生成した暗号化メディア鍵Ｅｎｃ（Ｋ０、メディア鍵）と集合Ｓ０とを記録媒体２００ａの鍵無効化データ格納部２０１へ書き込む。
【０２７５】
これにより、全ての記録装置及び全ての再生装置は、集合Ｓ０に対応するラベル「Ａ０」を用いて、デバイス鍵「Ｋ０」を生成することができ、暗号化メディア鍵Ｅｎｃ（Ｋ０、メディア鍵）を復号して、メディア鍵を生成することができる。
（９）上記実施の形態において、鍵無効化データ生成部１０６は、無効化装置特定部１０５の無効化装置記憶領域に無効な装置識別子が記憶されていない場合と、記憶されている場合との動作を区別したが、これに限定されない。鍵無効化データ生成部１０６は、無効な装置識別子が記憶されている否かを判断することなく、上記実施にて示す無効な装置識別子が記憶されている場合の動作を行うようにしてもよい。
【０２７６】
このとき、図２８にて示す鍵無効化データの生成処理は、ステップＳ５００の実行後、ステップＳ５４０を行う。無効化装置記憶領域に無効な装置識別子が記憶されていない場合には、ステップＳ５４０からステップＳ５５５を繰り返すことにより、鍵無効化データ生成部１０６は、１以上の部分集合を読み出すことができ、全装置それぞれに対応する装置識別子は、読み出した各部分集合の何れかに含まれていることになる。
【０２７７】
（１０）上記実施の形態において、擬似乱数生成器Ｇは、Ｘビットから３Ｘビットからなる乱数を生成したが、これに限定されない。擬似乱数生成器Ｇは、Ｘビットから２Ｘビットからなる乱数を生成してもよい。
この場合における鍵管理装置１００の動作について説明する。
鍵管理装置１００は、Ｘビットからなる乱数Ａｈを生成すると、生成した乱数Ａｈをデバイス鍵として、（Ｔ＾２＋Ｔ）／２｝行、ｈ列に記録する。これにより、（Ｔ＾２＋Ｔ）／２｝行、ｈ列に記録された部分集合に、乱数Ａｈをデバイス鍵として割り当てることができる。
【０２７８】
鍵管理装置１００は、乱数Ａｈ及び擬似乱数生成器Ｇを用いて、２Ｘビットからなる乱数を生成する。ここで、生成された２Ｘビットのうち左Ｘビットは、乱数Ａｈに対応する部分集合の子ノードを関連付ける際に、左の子ノードに対応するデバイス鍵であり、右Ｘビットは、右の子ノードに対応するデバイス鍵である。
鍵管理装置１００は、部分集合Ｓに対する子ノードである１つの部分集合又は２つの部分集合を検出すると、実施の形態にて示したラベルの割り当て方法と同様の方法にて、検出した各部分集合に、擬似乱数生成器Ｇによって生成されたデバイス鍵を割り当てる。これにより、鍵管理装置１００は、部分集合と、デバイス鍵とからなるデバイス鍵テーブル、及び相互関係テーブルを生成することができる。なお、相互関係テーブルの生成は、実施の形態と同様であるため、説明は省略する。
【０２７９】
このとき、鍵管理装置１００が各装置へ配布する鍵情報は、部分集合と、その部分集合に対応するデバイス鍵とからなる。
記録装置３００は、鍵情報を用いて、暗号化メディア鍵の復号鍵を取得する場合には、検出部分集合から基準部分集合に至る経路のノード数をＺ（Ｚは２以上）とすると、擬似乱数生成器ＧをＺ―１回利用することで、復号鍵を取得することができる。記録装置３００は、擬似乱数生成器ＧをＺ−１回利用して取得した２つのデバイス鍵のうち、基準部分集合が、その親ノードに対して、左の子ノードであるか右の子ノードであるかを判断する。左の子ノードであると判断する場合には、２Ｘビットのうち左Ｘビットからなるデバイス鍵を復号鍵として取得し、右の子ノードであると判断する場合には、右Ｘビットからなるデバイス鍵を復号鍵として取得する。なお、擬似乱数生成器Ｇによって生成された２つのデバイス鍵のうち何れのデバイス鍵を次の入力に用いるかの判断は、上記実施の形態と同様であるため、説明は省略する。また、Ｚ＝１の場合、つまり検出部分集合と基準部分集合とが同一である場合には、検出部分集合に対応するデバイス鍵を暗号化メディア鍵の復号鍵とする。
【０２８０】
再生装置４００も、上記と同様の動作にて、暗号化メディア鍵の復号鍵を取得する。
（１１）上記実施の形態において、デバイス鍵テーブルＤ１００の各欄には、部分集合、その部分集合に対応するラベル及びそのラベルに対応するデバイス鍵を記録したが、これに限定されない。デバイス鍵テーブルＤ１００の各欄には、部分集合、その部分集合に対応するラベルを記録してもよい。
【０２８１】
このとき、鍵管理装置１００は、鍵無効化データを生成する際に、取得した部分集合に対応するラベルを用いて、デバイス鍵を生成し、生成したデバイス鍵を用いて、暗号化メディア鍵を生成する。生成した暗号化メディア鍵と取得した部分集合とを、鍵無効化データとして、記録媒体２００ａへ記録する。
（１２）上記実施の形態において、鍵情報は、ラベルと、そのラベルに対応する部分集合とからなるとしたが、これに限定されない。部分集合の代わりに、以下に示す経路情報としてもよい。
【０２８２】
経路情報は、ルート番号と、生成経路とからなる。
ルート番号は、配布するラベルに対応する部分集合が属する木構造のルートとなる部分集合が、相互関係テーブルＤ１０１において上位何番目に位置するかを示す。言い換えると、ルートとなる部分集合が、デバイス鍵テーブルＤ１００の最下位行において、左から何番目に位置するかを示す数である。例えば、部分集合「１」をルートする場合には、ルート番号は、「１」となり、部分集合「３」をルートする場合には、ルート番号は、「３」となる。
【０２８３】
生成経路は、ルートに対する部分集合に割り当てられたラベルから、配布するラベルが生成される経路であり、０、１、２、及び１と２の組合せにより示される。「０」は、ラベルそのもの、つまりルートのノードに割り当てられたラベルを示す。「１」は、親ノードから右へ移動したこと、つまり、子ノードに親ノードにて生成された右及び左ラベルのうち右ラベルを割り当てたことを示し、「２」は、親ノードから左へ移動したこと、つまり、子ノードに親ノードにて生成された右及び左ラベルのうち左ラベルを割り当てたことを示す。例えば、図５に示すラベル「Ａ１」の生成経路は、「０」となり、ラベル「Ａ１ＲＬ」の生成経路は、「１２」となり、ラベル「Ａ５ＲＬＲＲ」の生成経路は、「１２１１」となる。
【０２８４】
なお、以降において、経路情報を、「ルート番号−生成経路」と表記する。
鍵管理装置１００の配布部１０４は、配布指示及び装置識別子を受け取ると、受け取った装置識別子に対する装置へ、配布するラベルと、そのラベルに対応する経路情報とを含む鍵情報を１以上生成して取得する。配布部１０４は、取得した１以上の鍵情報を受け付けた装置識別子に対応する装置へ配布する。
【０２８５】
ここで、経路情報の取得の動作について、図２６及び図２７を用いて、変更点のみ説明する。
先ず、ステップＳ４４５の動作を、検出した部分集合に対応する経路情報が、鍵情報記憶領域に記憶済みであるか否かを判断する動作に変更する。このとき、配布部１０４は、ステップＳ４５０にて、検出した部分集合に対応する経路情報が記憶済みでないと判断する場合には、ステップＳ４５０を実行する。
【０２８６】
次に、ステップＳ４５５を以下のように変更する。
（変更内容）配布部１０４は、検出したノード、つまり木構造Ｖｉのルートであるか否かを判断する。ルートであると判断する場合には、生成経路を「０」とする。ルートでないと判断する場合には、ルートから検出したノードに至る生成経路を取得する。さらに、配布部１０４は、木構造Ｖｉのルートに対するルート番号を取得する。この場合、ｉが、ルート番号となる。配布部１０４は、取得したルート番号と生成経路とからなる経路情報を生成し、生成した経路情報と、読み出したラベルとを含む鍵情報を生成して取得する。
【０２８７】
次に、ステップＳ４７５を省略し、ステップＳ４８０の動作を、全ての鍵情報を、受け取った端末装置識別子に対応する装置へ配布するように変更する。なお、ここで、配布とは、例えば、配布用の記録媒体に、受け付けた装置識別子と、鍵情報記憶領域にて記憶している１以上の鍵情報との書き込みが完了したことをいう。
また、鍵管理装置１００は、鍵無効化データを生成する場合には、先ず、上記実施の形態と同様に、無効化装置記憶領域の記憶内容に基づいて、１以上の部分集合を取得する。取得した各部分集合に対応するラベル及びデバイス鍵を取得する。鍵管理装置１００は、取得した各デバイス鍵を用いて、暗号化メディア鍵をそれぞれ生成する。さらに、鍵管理装置１００は、取得した各部分集合が属するそれぞれの木構造を用いて、経路情報を取得する。取得方法は、先ず、部分集合が属するルートの部分集合を取得し、取得したルートの部分集合と、相互関係テーブルＤ１０１とを用いて、ルート番号を取得する。さらに、ルートから取得したラベルの部分集合までに至る経路より生成経路を取得し、取得したルート番号と生成経路より経路情報を生成する。生成経路の取得は、上記と同様である。鍵管理装置１００は、生成した各経路情報と、各暗号化メディア鍵とを対応付けて、鍵無効化データを生成し、生成した各鍵無効化データを、記録媒体２００ａへ書き込む。例えば、装置４及び装置５が無効化される場合には、鍵管理装置１００は、部分集合「１２３」及び部分集合「６７８」を取得し、さらには、各部分集合に対応するデバイス鍵「Ｋ３」、「Ｋ３３」と、各部分集合に対応するラベルに対する経路情報「１−１２」、「７−１１」を取得する。
【０２８８】
また、装置４及び装置５が無効化された場合に、記録媒体２００ｂにて記憶されている鍵無効化データを、図３９に示す。鍵無効化データは、上述したように、暗号化メディア鍵と、メディア鍵の暗号化の用いたデバイス鍵に対応するラベルの経路情報とからなる。装置４及び装置５が無効化された場合には、記録媒体２００ｂは、上述したように、２つの鍵無効化データを記憶することになる。
【０２８９】
また、各装置が、保持する鍵情報を図４０にて示す。鍵情報の上段は、経路情報を示し、下段には、ラベルを示す。
ここで、記録装置３００にて行われる暗号化メディア鍵の復号について、図２９、図３０及び図３１を用いて、変更点のみ説明する。なお、第１及び第２暗号化処理については、上記実施の形態と同様であるため、説明は省略する。
【０２９０】
＜記録処理の変更点＞
先ず、ステップＳ６０５の動作を、入出力部３０９を介して当該記録装置３００に装着された記録媒体２００ｂより、記録媒体２００ｂに記録されている１以上の暗号化メディア鍵のそれぞれに対応する経路情報のうち、１つの経路情報（以下、基準経路情報という。）を読み出す動作に変更する。
【０２９１】
次に、ステップＳ６１０の動作を、１以上の鍵情報の読み出す動作に変更する。
次に、ステップＳ６１５を以下のように変更する。
（変更内容）復号鍵生成部３０４は、読み出した１以上の鍵情報から、基準経路情報のルート番号（以下、基準ルート番号という。）と一致するルート番号をもち、且つ「０」からなる生成経路をもつ又は基準経路情報に含まれる生成経路（以下、基準生成経路という。）に対して左前方一致する生成経路をもつ経路情報（以下、検出経路情報という。）を検索する。ここで、左前方一致について、説明する。先ず、生成経路にて表記される数字の個数を、生成経路の長さとする。例えば、生成経路「２」は、長さ１であり、背製経路「１２１２１」は、長さ５である。左前方一致とは、基準生成経路をｐ１、生成経路をｐ２とした場合、ｐ１＝ｐ２又はｐ１＝ｐ２｜｜ｐ３となることである。ここで、ｐ３の長さは１以上である。例えば、生成経路「１」及び「１２１」は、それぞれ生成経路「１２」及び「１２１１」に対して左前方一致している。なお、検索方法については、具体例を用いて、後述する。
【０２９２】
次に、ステップＳ６２０の動作を、検出経路情報を検出したか否かを判断する動作に変更する。ステップＳ６２５の動作を、未読出の基準経路情報は存在するか否かを判断する動作に変更する。さらに、ステップＳ６３０の動作を、基準経路情報を読み出す動作に変更する。
ここで、検索方法について、具体例を用いて、説明する。なお、記録装置３００に装着される記録媒体２００ｂは、図３９に示す２つの鍵無効化データを記憶しているとする。記録装置３００は装置識別子２を有している場合には、復号鍵生成部３０４は、基準ルート番号「１」が、読み出した各鍵情報に含まれる経路情報に存在するか否かを判断する。ここでは、存在すると判断し、経路情報「１−１」を取得する。次に、生成経路が「０」である可否かを判断する。ここでは、「０」でないと判断する。次に、復号鍵生成部３０４は、取得した経路情報「１−１」の生成経路「１」が、基準生成経路に対して左前方一致しているか否かを判断する。ここでは、一致していると判断し、経路情報「１−０」を検出経路情報として検出することになる。
【０２９３】
記録装置３００は装置識別子７を有している場合には、復号鍵生成部３０４は、基準ルート番号「１」をもつ経路情報を記録装置３００は保持していないため、記録媒体２００ｂより、次の、基準経路情報「７−１１」を読み出す。復号鍵生成部３０４は、基準ルート番号「７」が、読み出した各鍵情報に含まれる経路情報に存在するか否かを判断する。ここでは、存在すると判断し、経路情報「７−０」を取得する。次に、生成経路が「０」である可否かを判断する。ここでは、「０」であると判断し、経路情報「７−０」を検出経路情報として検出することになる。
【０２９４】
＜デバイス鍵の取得処理の変更点＞
先ずステップＳ７００の動作を、検出経路情報に対応するラベルを取得する動作に変更する。
次に、ステップＳ７０５の動作を、基準生成経路の長さと、検出生成経路の長さの差分Ｚを取得する動作に変更する。
【０２９５】
ステップＳ７１０からステップＳ７４０までの繰り返しの制御を、ｚ＝１〜Ｚ＋１までの間、行うように変更する。
ステップＳ７２０の判断動作を、基準生成経路において、「検出生成経路の長さ＋ｚ」番目に数字が存在するか否かを判断する動作に変更する。
ステップＳ７２５の判断動作を、「検出生成経路の長さ＋ｚ」番目に存在する数字が２であるか否かを判断する動作に変更する。
【０２９６】
ステップＳ７４５の動作を、Ｚ＋１回目に取得した乱数よりデバイス鍵を取得する動作に変更する。
ステップＳ７５０の動作を、デバイス鍵及び基準経路情報を復号部３０５へ出力する動作に変更する。
＜復号処理の変更点＞
ステップＳ８００の動作を、デバイス鍵及び基準経路情報を受け取る動作に変更する。
【０２９７】
ステップＳ８０５の動作を、基準経路情報に対応する暗号化メディア鍵を取得する操作に変更する。
以上の点を変更することにより、記録装置３００は、ラベル及び経路情報からなる鍵情報を用いて、暗号化メディア鍵を復号して、メディア鍵を生成することができる。
なお、再生装置４００にて行われる暗号化メディア鍵の復号についても、図３４、図３５及び図３６に示す各処理に対して、上記に示す変更と同様の変更を行えばよいため、説明は省略する。
【０２９８】
（１３）上記（１２）において、鍵管理装置１００は、鍵情報の配布時、及び鍵無効化データの生成時に、経路情報を生成したが、これに限定されない。デバイス鍵の生成時に、経路情報を生成し、デバイス鍵テーブルＤ１００へ、生成した経路情報、部分集合、ラベル及びデバイス鍵からなる組を記録していもよい。これにより、鍵情報の配布時、及び鍵無効化データの生成時においては、経路情報をデバイス鍵テーブルＤ１００より読み出すだけでよい。
【０２９９】
（１４）上記実施の形態において、レイヤ０で生成された１個の部分集合とレイヤ１で生成された１個の部分集合との関連付け、及びレイヤ１で生成された１個の部分集合とレイヤ２で生成された１個の部分集合との関連付けを行ったが、これに限定されない。
例えば、レイヤ０で生成された１個の部分集合とレイヤ１で生成された１個の部分集合との関連付けのみを行ってもよい。
【０３００】
この場合、装置１へ配布するラベルは、部分集合「１」、部分集合「１２」、部分集合「１２３」、部分集合「１２５６７８」及び部分集合「１３４５６７８」と、それぞれに対応するラベルとからなる５個の鍵情報となり、配布する鍵情報の個数は、従来よりも少なくなる。
または、レイヤ１で生成された１個の部分集合とレイヤ２で生成された１個の部分集合との関連付けのみを行ってもよい。
【０３０１】
この場合も同様に、装置１へ配布する鍵情報の個数は、従来の個数よりも少なくなることが分かる。
（１５）本発明は、生成した複数の部分集合の関連付けは、上記の実施の形態にて示す方法であるとしもよい。
または、各レイヤ間にて生成した１以上の部分集合を関連付け、各レイヤにおいて部分集合の関連付けがなされた後、レイヤ間における部分集合の関連付けを行ってもよい。
【０３０２】
例えば、鍵管理装置１００は、図１０に示すデバイス鍵テーブルＤ１００ａを生成した後、先ず、レイヤ０のノードをルートする木構造から生成された各部分集合、つまりデバイス鍵テーブルＤ１００ａにおける１行目５０１、２行目５０２及び３行目５０３に記録される各部分集合を用いて、ルートとして、最小の要素数からなる部分集合とし、子ノードとして、その親ノードを含み、且つ最小の要素数からなる部分集合とする木構造を２つ生成する。つまり、部分集合「１２３４」をルートする木構造と、部分集合「５６７８」をルートする木構造とを生成する。
【０３０３】
次に、鍵管理装置１００は、レイヤ１のノードをルートする木構造から生成された各部分集合、つまりデバイス鍵テーブルＤ１００ａにおける４行目５０４及び５行目５０５に記録される各部分集合を用いて、ルートとして、最小の要素数からなる部分集合とし、子ノードとして、その親ノードを含み、且つ最小の要素数からなる部分集合とする木構造を４つ生成する。
【０３０４】
さらに、鍵管理装置１００は、レイヤ２のノードをルートする木構造から生成された各部分集合、つまりデバイス鍵テーブルＤ１００ａにおける６行目５０６に記録される各部分集合を用いて、ルートとして、最小の要素数からなる部分集合とし、子ノードとして、その親ノードを含み、且つ最小の要素数からなる部分集合とする木構造を８つ生成する。ここで生成される８つの木構造は、ルートのみからなる木構造である。
【０３０５】
次に、生成した各木構造を用いて、木構造間の関連付けを以下のように行う。先ず、部分集合「１」をルートする木構造と、部分集合「１」を含み、且つ最小の要素数からなる部分集合をルートする木構造、ここでは、部分集合「１２」をルートする木構造とを関連付ける。さらに、部分集合「１２」をルートする木構造と、当該木構造の１つのリーフ、ここでは、部分集合「１２３」を含み、且つ最小の要素数からなる部分集合をルートする木構造、ここでは、部分集合「１２３４」をルートする木構造とを関連付ける。この動作を１個の要素からなる各部分集合の個数分繰り返すことにより、図１１にて示す各部分集合の相互関連と同様の相互関連がなされる。なお、１度関連付けがなされた部分集合木構造は、他の関連付けには利用しない。
【０３０６】
（１６）上記実施の形態において、部分集合の木構造の構成中、つまり相互関係テーブルの生成中に、木構造の各ノードに対するラベルを割り当てたが、これに限定されない。各ノードに割り当てるラベルは、部分集合の木構造の構成が完了した後、つまり相互関係テーブルの作成が完了した後に、割り当ててもよい。
（１７）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３０７】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０３０８】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０３０９】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
１．１０  まとめ
鍵管理装置は、複数の端末装置から、いくつかを任意に選んで、複数の許可集合を生成し、許可集合毎に、１の鍵が割り当てられる。許可集合に割り当てられた鍵により、データが暗号化され、許可集合の含まれる端末装置は、その暗号化されたデータを利用できる。第１許可集合と他の第２許可集合とが関連付けられている。関連付けにより第１許可集合の鍵から、第２許可集合の鍵が生成される。鍵管理装置は、前記複数の端末装置を、複数のグループに分ける。１のグループについて、グループに含まれる複数の端末装置から、いくつかを任意に選んで、複数の許可集合を生成する。許可集合毎に、１の鍵が割り当てられ、許可集合に割り当てられた鍵により、データが暗号化され、許可集合の含まれる端末装置は、その暗号化されたデータを利用できる。第３許可集合と他の第４許可集合とが関連付けられている。関連付けにより第３許可集合の鍵から、第４許可集合の鍵が生成される。鍵管理装置は、第１許可集合と第４許可集合を関連付ける。
【０３１０】
ここで、非特許文献１における各部分集合の関係について、説明する。非特許文献１における各部分集合の関係は、レイヤｉ（ｉは０以上）の存在するノードをルートする部分木から生成された複数の部分集合について、本発明と同様の関連付けがなされる。例えば、図３に示すＥ１をルートする部分木からは、部分集合「１２」、「１２３」、「１２４」、「３４」、「１３４」及び「２３４」が生成され、各部分集合の関連付けは、図１１に示すように、部分集合「１２」と、部分集合「１２３」及び「１２４」とを関連付け、部分集合「３４」と、部分集合「１３４」及び「２３４」とを関連付ける。しかしながら、２つの部分木にまたがって、部分集合の関連付けがなされていない。従って、各部分木は、それぞれ独立の関係にある。
【０３１１】
つまり、非特許文献１における各部分集合の関係は、図１１に示す関係から、部分集合「１」と部分集合「１２」との関連付け、部分集合「１２３」と部分集合「１２３４」との関連付け、部分集合「３」と部分集合「３４」との関連付け、部分集合「５」と部分集合「５６」との関連付け、部分集合「５６７」と部分集合「５６７８」との関連付け、及び部分集合「７」と部分集合「７８」との関連付けがなされていない状態である。従って、従来技術では、例えば、装置１へは、部分集合「１」のラベル、部分集合「１２」のラベル、部分集合「１３４」のラベル、部分集合「１２３４」のラベル、部分集合「１２５６７８」のラベル及び部分集合「１３４５６７８」のラベルの計６個のラベルを配布する必要がある。
【０３１２】
しかしながら、本発明によると、２つのルートが親子関係となる２つのノードにおいてそれぞれをルートする２つの部分木のうち、子ノードをルートする部分木から生成される複数の部分集合のうち最大の要素数を持つ部分集合Ｆ１と、親ノードをルートとする部分から生成される複数の部分集合のうち、部分集合Ｆ１を含み、且つ最小の要素数からなる部分集合Ｆ２との間との関連付けを行っている。従って、２つの部分木にまたがって、部分集合の関連付けがなされ、部分木間の関連付けがなされる。これにより、配布するラベルの数を削減することができる。
【０３１３】
例えば、部分集合「１」と部分集合「１２」とを関連付けることにより、図４１に示すように、木構造Ｔ１００におけるノードＴ５１０「Ｅ３」をルートとする部分木Ｔ５０１と、ノードＴ５１１「Ｅ１」をルートとする部分木Ｔ５０２との関連付けがされ、部分木Ｔ５０２にて生成される部分集合「１２」、部分集合「１２３」及び部分集合「１２４」のそれぞれに対応する各ラベルは、部分木Ｔ５０１にて生成される部分集合「１」に対応するラベルから、擬似乱数生成器Ｇ１５０を用いて生成されることになる。また、部分集合「１２３」と部分集合「１２３４」とを関連付けることにより、図４１に示すように、ノードＴ５１１「Ｅ１」をルートとする部分木Ｔ５０２と、ノードＴ５１２「Ｅ０」をルートとする部分木Ｔ５０３との関連付けがされ、部分木Ｔ５０３にて生成される部分集合「１２３４」、部分集合「１２３４５６」、部分集合「１２４１２３４７８」、部分集合「１２３４５６７」、部分集合「１２３４５６８」、部分集合「１２３４５７８」及び部分集合「１２３４６７８」のそれぞれに対応する各ラベルは、部分木Ｔ５０２にて生成される部分集合「１２３」に対応するラベル、つまり部分木Ｔ５０１にて生成される部分集合「１」に対応するラベルから、擬似乱数生成器Ｇ１５０を用いて生成されることになる。従って、鍵管理装置１００は、装置１に対しては、部分集合「１２」のラベル及び部分集合「１２３４」のラベルを配布する必要が無く、部分集合「１」のラベル、部分集合「１３４」のラベル、部分集合「１２５６７８」のラベル及び部分集合「１３４５６７８」のラベルの計４個のラベルを配布すればよい。
【０３１４】
さらに、非特許文献１における技術では、各装置を管理する木構造の各ノード、つまり、部分木の各ルートに対して、異なるラベルを割り当てる必要があるが、本発明では、上述したように、部分木間の関連付けを行うため、部分木の各ルートに対して異なるラベルを割り当てる必要がない。つまり、異なるラベルの数を従来よりも少なくすることができる。
【０３１５】
さらに、鍵管理装置１００は、鍵無効化データを生成することにより、不正な装置が持つラベルでは、コンテンツの記録、あるいは再生に必要な鍵が算出できず、不正装置以外の１以上の正規装置では、各装置が有するラベルを用いて、コンテンツの記録、あるいは再生に必要な鍵が算出できる。
非特許文献１に開示されている従来の鍵無効化技術では、装置の数が増大すると、各装置が内蔵するラベルの数が膨大になるという課題がある。例えば、装置数が約１０億台（高さ３０の２分木）のシステムを考えた場合、各装置が保持するラベルの数は４６５個となる。しかしながら、本発明によれば、各装置が内蔵する鍵の数を削減することが可能である。具体的には、木構造の高さをＴ、当該システムに属する装置の総数をＱ台とした場合、Ｑ／２台の装置においてＴ−１個の鍵が削減され、Ｑ／４台の装置においてＴ−２個の鍵が削減され、Ｑ／（２＾ｋ）台の装置においてＴ−ｋ個の鍵が削減される。ただし、ｋは１以上、且つＴ−１以下の整数である。
【０３１６】
本発明にかかる鍵無効化システムは、各装置が保持するラベル、つまり鍵に対して相互関係を持たせることにより、各装置が持つラベル、つまり鍵の数を削減することができるという効果を有し、同一システムにおいて、据え置き機や携帯端末などが混在する場合に、記憶容量の小さい携帯端末に対しては保持する鍵が少なくなるように割り当てることができるため、鍵無効化を実現するシステムにおいて有用である。
【０３１７】
本発明は、特定の装置を無効化するための無効化情報の生成を行い配布する鍵管理装置と、前記無効化情報を記録する記録媒体と、前記記録媒体から前記無効化情報を読み出して処理する端末装置からなる著作権保護システムであって、前記鍵管理装置は、前記著作権保護システムに属する端末装置の部分集合を生成する部分集合生成部と、前記部分集合に対して鍵を割り当てる割当部と、前記部分集合が含まれる他の部分集合の鍵を前記割り当てた鍵から生成する鍵生成部と、前記部分集合に割り当てた鍵に基づいて無効化情報を生成する無効化情報生成部を備えることを特徴とする。
【０３１８】
また、本発明は、前記著作権保護システムであって、前記鍵管理装置の鍵生成部は、前記部分集合に割り当てられた鍵から、一方向性関数を利用して他の部分集合の鍵を生成することを特徴とする。
また、本発明は、前記著作権保護システムであって、前記鍵管理装置の鍵生成部は、前記部分集合に割り当てられた鍵から、複数の他の部分集合の鍵を生成することを特徴とする。
【０３１９】
また、本発明は、前記著作権保護システムであって、前記鍵管理装置は、前記部分集合と割り当てた鍵の対応関係、並びに生成された鍵の相互関係を記憶する記憶部を備えることを特徴とする。
また、本発明は、前記著作権保護システムであって、前記鍵管理装置の記憶部は、前記部分集合と割り当てた鍵の対応関係、並びに生成された鍵の相互関係を、テーブルを利用して管理し、前記テーブルを記憶することを特徴とする。
【０３２０】
また、本発明は、前記著作権保護システムであって、前記鍵管理装置は、前記部分集合に対して割り当てた鍵を前記端末装置に配布する鍵配布部を備え、前記鍵配布部は、鍵を配布する端末装置が含まれる部分集合のうち、最小の部分集合を選択して、前記選択した部分集合に割り当てられた鍵を配布し、さらに、前記配布した鍵から生成される鍵が割り当てられた部分集合を除く部分集合から、前記端末装置が含まれる最小の部分集合を選択して、前記選択した部分集合に割り当てられた鍵を配布することを特徴とする。
【０３２１】
また、本発明は、前記著作権保護システムであって、前記鍵管理装置の無効化情報生成部は、有効な端末装置だけが含まれる最大の部分集合を選択して、前記選択した部分集合に含まれない端末装置に対しては、さらに、それら端末装置だけが含まれる最大の部分集合を選択して、前記選択を、全ての有効な端末装置が何れかの部分集合に含まれるまで繰り返し行うことを特徴とする。
【０３２２】
また、本発明は、前記著作権保護システムであって、前記端末装置は、前記無効化情報を処理する鍵を格納する格納部を備え、前記格納部には、自身が含まれる部分集合に割り当てられた鍵を格納することを特徴とする。
また、本発明は、前記著作権保護システムであって、前記端末装置の格納部は、鍵と部分集合の対応関係を示す情報も合わせて格納することを特徴とする。
【０３２３】
また、本発明は、前記著作権保護システムであって、前記端末装置の格納部は、ある部分集合に割り当てられた鍵から、他の部分集合の鍵が生成可能な場合、前記生成可能な鍵は格納しないことを特徴とする。
また、本発明は、前記著作権保護システムであって、前記端末装置は、前記格納部に格納する鍵から、他の部分集合に割り当てられた鍵を生成する鍵生成部を備え、前記鍵生成部は、部分集合と鍵の対応関係、並びに生成された鍵の相互関係から他の部分集合に割り当てられた鍵を生成することを特徴とする。
【０３２４】
また、本発明は、前記著作権保護システムであって、前記端末装置は、前記記録媒体に対して、暗号化されたコンテンツを記録する記録部を備えることを特徴とする。
また、本発明は、前記著作権保護システムであって、前記端末装置は、前記記録媒体から暗号化されたコンテンツを読み出して復号、及び再生する再生部を備えることを特徴とする。
【０３２５】
また、本発明は、前記著作権保護システムであって、前記鍵管理装置が生成した無効化情報には、どの部分集合の鍵に基づいて生成したのかを示す情報が付与されることを特徴とする。
また、本発明は、前記著作権保護システムであって、前記記録媒体の代わりに通信媒体を利用することを特徴とする。
【０３２６】
また、本発明は、特定の装置を無効化するための無効化情報の生成を行い配布する鍵管理装置であって、前記鍵管理装置は、前記著作権保護システムに属する端末装置の部分集合を生成する部分集合生成部と、前記部分集合に対して鍵を割り当てる割当部と、前記部分集合が含まれる他の部分集合の鍵を前記割り当てた鍵から生成する鍵生成部と、前記部分集合に割り当てた鍵に基づいて無効化情報を生成する無効化情報生成部を備えることを特徴とする。
【０３２７】
また、本発明は、前記鍵管理装置であって、前記鍵生成部は、前記部分集合に割り当てられた鍵から、一方向性関数を利用して他の部分集合の鍵を生成することを特徴とする。
また、本発明は、前記鍵管理装置であって、前記鍵生成部は、前記部分集合に割り当てられた鍵から、複数の他の部分集合の鍵を生成することを特徴とする。
また、本発明は、前記鍵管理装置であって、前記部分集合と割り当てた鍵の対応関係、並びに生成された鍵の相互関係を記憶する記憶部を備えることを特徴とする。
【０３２８】
また、本発明は、前記鍵管理装置であって、前記記憶部は、前記部分集合と割り当てた鍵の対応関係、並びに生成された鍵の相互関係を、テーブルを利用して管理し、前記テーブルを記憶することを特徴とする。
また、本発明は、前記鍵管理装置であって、前記部分集合に対して割り当てた鍵を前記端末装置に配布する鍵配布部を備え、前記鍵配布部は、鍵を配布する端末装置が含まれる部分集合のうち、最小の部分集合を選択して、前記選択した部分集合に割り当てられた鍵を配布し、さらに、前記配布した鍵から生成される鍵が割り当てられた部分集合を除く部分集合から、前記端末装置が含まれる最小の部分集合を選択して、前記選択した部分集合に割り当てられた鍵を配布することを特徴とする。
【０３２９】
また、本発明は、前記鍵管理装置であって、前記無効化情報生成部は、有効な端末装置だけが含まれる最大の部分集合を選択して、前記選択した部分集合に含まれない端末装置に対しては、さらに、それら端末装置だけが含まれる最大の部分集合を選択して、前記選択を、全ての有効な端末装置が何れかの部分集合に含まれるまで繰り返し行うことを特徴とする。
【０３３０】
また、本発明は、記録媒体から無効化情報を読み出して処理する端末装置であって、前記端末装置は、前記無効化情報を処理する鍵を格納する格納部を備え、前記格納部には、自身が含まれる部分集合に割り当てられた鍵を格納することを特徴とする。
また、本発明は、前記端末装置であって、前記格納部は、鍵と部分集合の対応関係を示す情報も合わせて格納することを特徴とする。
【０３３１】
また、本発明は、前記端末装置であって、前記格納部は、ある部分集合に割り当てられた鍵から、他の部分集合の鍵が生成可能な場合、前記生成可能な鍵は格納しないことを特徴とする。
また、本発明は、前記端末装置であって、前記端末装置は、前記格納部に格納する鍵から、他の部分集合に割り当てられた鍵を生成する鍵生成部を備え、前記鍵生成部は、部分集合と鍵の対応関係、並びに生成された鍵の相互関係から他の部分集合に割り当てられた鍵を生成することを特徴とする。
【０３３２】
また、本発明は、前記端末装置であって、前記端末装置は、前記記録媒体に対して、暗号化されたコンテンツを記録する記録部を備えることを特徴とする。
また、本発明は、前記端末装置であって、前記端末装置は、前記記録媒体から暗号化されたコンテンツを読み出して復号、及び再生する再生部を備えることを特徴とする。
また、本発明は、特定の装置を無効化するための無効化情報を記録する記録媒体であって、鍵管理装置は、著作権保護システムに属する端末装置の部分集合を生成する部分集合生成部と、前記部分集合に対して鍵を割り当てる割当部と、前記部分集合が含まれる他の部分集合の鍵を前記割り当てた鍵から生成する鍵生成部と、前記部分集合に割り当てた鍵に基づいて無効化情報を生成する無効化情報生成部を備え、前記鍵管理装置により生成された無効化情報を記録することを特徴とする。
【０３３３】
また、本発明は、前記記録媒体であって、前記鍵管理装置が生成した無効化情報には、どの部分集合の鍵に基づいて生成したのかを示す情報が付与されており、前記付与された情報と共に前記鍵無効化情報を記録することを特徴とする。
【産業上の利用可能性】
【０３３４】
発明を構成する各装置及び記録媒体は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。また、本発明を構成する各装置及び記録媒体は、コンテンツを制作し、配給するコンテンツ配給産業において、経営的に、また継続的及び反復的に使用することができる。
【図面の簡単な説明】
【０３３５】
【図１】著作権保護システム１０の全体の概要を示すブロック図である。
【図２】鍵管理装置１００の構成を示すブロック図である。
【図３】木構造Ｔ１００を示す概念図である。
【図４】木構造テーブルＴ１０１のデータ構造の一例を示す一例である。
【図５】デバイス鍵テーブルＤ１００のデータ構造の一例を示す。
【図６】相互関係テーブルＤ１０１のデータ構造の一例を示す。
【図７】木構造Ｔ２０１、Ｔ２０２、Ｔ２０３及びＴ２０４を示す概念図である。
【図８】木構造Ｔ２０５、Ｔ２０６、Ｔ２０７及びＴ２０８を示す概念図である。
【図９】擬似乱数生成器Ｇ１５０の構成示す図である。
【図１０】デバイス鍵テーブルＤ１００ａのデータ構造の一例を示す。
【図１１】各部分集合の相互関係を示すテーブルである。
【図１２】各装置へ配布する鍵情報の合計数及び鍵情報を示すテーブルである。
【図１３】記録媒体２００の構成を示すブロック図である。
【図１４】記録装置３００の構成を示すブロック図である。
【図１５】鍵無効化データのみが記録された記録媒体２００ｂを示す図である。
【図１６】再生装置４００の構成を示すブロック図である。
【図１７】鍵無効化データ、暗号化コンテンツ鍵及び暗号化コンテンツが記録された記録媒体２００cを示す図である。
【図１８】生成処理の動作概要を示す流れ図である。
【図１９】部分集合の生成処理を示す流れ図である。図２０へ続く。
【図２０】部分集合の生成処理を示す流れ図である。図１９から続く。
【図２１】デバイス鍵の生成処理を示す流れ図である。図２２へ続く。
【図２２】デバイス鍵の生成処理を示す流れ図である。図２１から続き、図２３へ続く。
【図２３】デバイス鍵の生成処理を示す流れ図である。図２２から続き、図２４へ続く。
【図２４】デバイス鍵の生成処理を示す流れ図である。図２３から続き、図２５へ続く。
【図２５】デバイス鍵の生成処理を示す流れ図である。図２４から続く。
【図２６】鍵情報の取得処理を示す流れ図である。図２７へ続く。
【図２７】鍵情報の取得処理を示す流れ図である。図２６から続く。
【図２８】鍵無効化データの生成処理を示す流れ図である。
【図２９】記録処理を示す流れ図である。
【図３０】デバイス鍵の取得処理を示す流れ図である。
【図３１】復号処理を示す流れ図である。
【図３２】第１暗号化処理を示す流れ図である。
【図３３】第２暗号化処理を示す流れ図である。
【図３４】再生処理を示す流れ図である。
【図３５】デバイス鍵の取得処理を示す流れ図である。
【図３６】第１復号処理を示す流れ図である。
【図３７】第２復号処理を示す流れ図である。
【図３８】第３復号処理を示す流れ図である。
【図３９】鍵無効化データのみが記録された記録媒体２００ｂを示す図である。
【図４０】各装置へ配布する鍵情報の合計数及び鍵情報を示すテーブルである。
【図４１】木構造Ｔ１００において、ノードＥ０、ノードＥ１及びノードＥ３それぞれをルートする各部分木の関連付けを示す図である。
【図４２】従来技術における差分集合の概念を示す図である。
【図４３】従来技術において、差分集合を示す一例である。
【図４４】従来技術におけるラベルの割り当てを示す一例である。
【符号の説明】
【０３３６】
１０    著作権保護システム
１００    鍵管理装置
１０１    装置情報格納部
１０２    情報格納部
１０３    情報生成部
１０４    配布部
１０５    無効化装置特定部
１０６    鍵無効化データ生成部
１０７    受付部
１０８    出力部
２００    記録媒体
２０１    鍵無効化データ格納部
２０２    暗号化コンテンツ鍵格納部
２０３    暗号化コンテンツ格納部
３００    記録装置
３０１    鍵情報格納部
３０２    コンテンツ格納部
３０３    コンテンツ鍵格納部
３０４    復号鍵生成部
３０５    復号部
３０６    第１暗号化部
３０７    第２暗号化部
３０８    受付部
３０９    入出力部
４００    再生装置
４０１    鍵情報格納部
４０２    復号鍵生成部
４０３    第１復号部
４０４    第２復号部
４０５    第３復号部
４０６    再生部
４０７    受付部
４０８    読出部
４２０    モニタ
【図１】
0004614744.tif 000002
【図２】
0004614744.tif 000003
【図３】
0004614744.tif 000004
【図４】
0004614744.tif 000005
【図５】
0004614744.tif 000006
【図６】
0004614744.tif 000007
【図７】
0004614744.tif 000008
【図８】
0004614744.tif 000009
【図９】
0004614744.tif 000010
【図１０】
0004614744.tif 000011
【図１１】
0004614744.tif 000012
【図１２】
0004614744.tif 000013
【図１３】
0004614744.tif 000014
【図１４】
0004614744.tif 000015
【図１５】
0004614744.tif 000016
【図１６】
0004614744.tif 000017
【図１７】
0004614744.tif 000018
【図１８】
0004614744.tif 000019
【図１９】
0004614744.tif 000020
【図２０】
0004614744.tif 000021
【図２１】
0004614744.tif 000022
【図２２】
0004614744.tif 000023
【図２３】
0004614744.tif 000024
【図２４】
0004614744.tif 000025
【図２５】
0004614744.tif 000026
【図２６】
0004614744.tif 000027
【図２７】
0004614744.tif 000028
【図２８】
0004614744.tif 000029
【図２９】
0004614744.tif 000030
【図３０】
0004614744.tif 000031
【図３１】
0004614744.tif 000032
【図３２】
0004614744.tif 000033
【図３３】
0004614744.tif 000034
【図３４】
0004614744.tif 000035
【図３５】
0004614744.tif 000036
【図３６】
0004614744.tif 000037
【図３７】
0004614744.tif 000038
【図３８】
0004614744.tif 000039
【図３９】
0004614744.tif 000040
【図４０】
0004614744.tif 000041
【図４１】
0004614744.tif 000042
【図４２】
0004614744.tif 000043
【図４３】
0004614744.tif 000044
【図４４】
0004614744.tif 000045