明 細 書 鍵管理システム 技術分野
本発明は、 木構造を用い、 特定の受信者の無効化機能を有する鍵管理方式に関 する。 背景技術
映画、 音楽などの著作物であるコンテンツの著作権を保護するために、 情報を 利用してコンテンツを暗号化して提供することが行われている。 そのようなシス テムの一例では、 再生装置には複数のデバイス鍵を与え、 記録媒体には暗号化さ れたコンテン、 と、 再生を許可された再生装置のみがコンテンッの復号鍵を生成 できるようにした鍵生成情報とを記録する。 再生を許可された再生装置は、 鍵生 成情報からコンテンツの復号鍵を生成し、 その復号鍵を使用してコンテンツを復 号して再生する。 一方、 再生を許可されていない (無効化された) 再生装置は、 コンテンッの復号鍵を生成できないので、 暗号化されているコンテンッを再生す ることはできない。
このようなシステムで、 鍵情報を管理するための手法として木構造を用いた鍵 管理方式が提案されており、 その例として 「The Complete Subtree MethodJ、 「The Subset Difference MethodJ などが知られている (例えば、 Dalは Naor, Noni Naor, and Heff し otspiech, "Revocation and Tracing Schemes for State I ess Receivers", Lecture Notes in Computer Science, Vol.2139, pp.41-62, 2001 を参照。 ) 。 こ れらの方式では、 コンテンッの復号鍵を生成するための鍵生成情報が不正に暴露 されたり漏洩した場合には、 その鍵生成情報を無効化するための処理が可能とな つている。
また、 上記のような方式に基づいてデジタルコンテンッの保護を行う方法も提 案されている (例えば、 中野稔久、 他 3名、 "デジタルコンテンツ保護用鍵管理 方式一木構造パターン分割方式一" 、 2002 年暗号と情報セキュリティシンポジゥ
ム講演論文集、 2 0 0 2年 2月 1 日を参照。 ) 。
上述の The Subset D i fference Methodにおいては、 受信者は自分の属する全て の差分集合に割り当てられた鍵を保有しておかなければならないため、 受信者側 に多くの記憶容量を必要とする。 疑似乱数生成器を用いることでこの情報量を削 減することはできるのであるが、 それでも The Comp l ete Subtree Method と比較 すると 1 0倍以上の情報記憶容量が要求される。 一方、 The Comp l ete Subtree Method については、 受信者側に記憶すべき情報量は少ないが、 受信者へ伝送され る (情報の伝送に記録媒体を利用する場合には、 記録媒体に記録される) 鍵情報 量が大きくなリすぎてしまう。 発明の開示
本発明が解決しょうとする課題には、 上記のものが一例として挙げられる。 請求項 1 に記載の発明は、 鍵管理システムにおいて、 複数の情報受信者をリー フに割り当てた木構造を規定する手段と、 前記木構造を所定階層毎に分割して複 数の部分木を規定する手段と、 前記複数の部分木の各部分木に対して鍵情報の割 リ当てを行う手段と、 を有することを特徴とする。 図面の簡単な説明
図 1 Aと 1 Bは、 木構造を用いた鍵管理方式のモデルを示す図である。
図 2は、 鍵管理方式により用いる木構造の例を示す図である。
図 3 Aと 3 Bは、 鍵管理方式により用いる木構造の例を示す図である。
図 4は、 階層分割を伴う鍵管理方式の木構造の例を示す図である。
図 5は、 階層分割を伴う鍵管理方式の木構造の例を示す図である。
図 6は、 階層分割を伴う鍵管理方式の木構造の例を示す図である。
図 7は、 階層分割を伴う鍵管理方式の木構造の例を示す図である。
図 8は、 複数の鍵管理方式における記憶媒体側と受信機側の鍵情報サイズを比 較するグラフである。
図 9は、 本発明の実施例に係るコンテンツ記録システムの構成を示すブロック 図である。
図 1 O Aから 1 O Eは、 図 9に示すコンテンツ記録システムの各部の信号内容 を示す。
図 1 1 Aと 1 1 Bは、 図 9に示すコンテンツ記録システムの各部の信号内容を 示す。
図 1 2は、 本発明の実施例に係るコンテンツ再生システムの構成を示すブロッ ク図である。
図 1 3 Aと 1 3 Bは、 図 1 2に示すコンテンッ再生システムの各部の信号内容 を示す。
図 1 4 Aから 1 4 Dは、 図 1 2に示すコンテンッ再生システムの各部の信号内 容を示す。
図 1 5は、 コンテンツ記録処理のフローチャートである。
図 1 6は、 コンテンツ記録処理における復号鍵の選択処理のフローチャートで ¾)る。
図 1 7は、 コンテンツ再生処理のフローチャートである。
図 1 8は、 本発明の鍵管理方式により部分集合に鍵を割り当てる処理のフロー チャートである。 発明を実施するための最良の形態
以下、 図面を参照して本発明の好適な実施の形態について説明する。 まず、 鍵 管理方式について基礎的な説明を行い、 続いて本発明の方式を説明する。
(1.1) 受信者の無効化機能を有する鍵管理方式
送信者が多数の受信者に対して同一の情報を伝送するシステムにおいて、 信頼 できる鍵管理機関が、 あらかじめ全ての受信者に伝送情報を復号するための秘密 情報を配布しておき、 その秘密情報を持たない受信者が送信者からの情報を復号 できないように、 送信者側で情報を暗号化して伝送する方法がある。 この場合に 問題となるのは、 全ての受信者が同一の秘密情報を保有している場合、 悪意ある 受信者が自分の保有する秘密情報を 1 回公開してしまえば、 その後に伝送される 情報は誰にでも復号が可能になってしまうことである。
この問題の対策として、 鍵管理機関が受信者毎に異なる秘密情報を配布し、 特
定の受信者の秘密情報が漏洩した場合、 その受信者の保有していた秘密情報を用 いても伝送された情報を復号できないようにする手法、 即ち、 受信者の無効化機 能を有する鍵管理方式がある。 本発明はそのような鍵管理方式を扱う。
ここでは、 情報の伝送は特定の送信者から多数の受信者への片方向伝送のみで あり、 また受信者に最初に秘密情報 (復号鍵等) を割り当てる以外は、 受信者の 保有する秘密情報を一切変更できないようなアプリケーシヨンを想定している。 受信者の無効化機能を有する鍵管理方式を適用した情報配信システムの 1 つの モデルを図 1 Aに示す。 図示のように、 情報配信システムは、 鍵管理機関 1 、 情 報送信者 2及び情報受信者 3の 3つの要素から構成される。 以下、 各要素につい て説明する。
•鍵管理機関
鍵管理機関 1 は、 情報送信者 2が伝送する伝送情報 6 (暗号文) を復号するた めの秘密情報 (暗号文復号用鍵 4 aなど) を各受信者に割り当てる。 また、 鍵管 理機関 1 は、 伝送情報 6を復号不可能にしたい受信者 (今後、 ある特定の受信者 に対して、 伝送される情報を復号できないようにすることを 「受信者の無効化」 と呼ぶ) の集合から、 前記集合以外の受信者のみが復号できるような鍵情報 4 b を生成し、 伝送情報 6を暗号化するための鍵 (暗号化用鍵情報 5 ) とあわせて情 報送信者への配送も行う。
ここで各受信者に割り当てる秘密情報 (復号用鍵 4 aなど) と伝送情報 6の暗 ' 号化に用いられる鍵 (暗号化用鍵情報 5 ) の生成 ' 保管 ■配送は安全に行われる ものと仮定する。
•情報送信者
情報送信者 2は、 鍵管理機関 1から配送された、 伝送情報の暗号化用鍵情報 5 を用いて伝送情報 6を暗号化し、 無効化されていない受信者のみが復号できる鍵 情報 4 bと一緒に伝送情報 6 (暗号文) を受信者に伝送する。
-情報受信者
無効化されていない受信者については、伝送情報 6 (暗号文) を受信したとき、 受信者が持つ秘密情報 (暗号文復号用の鍵 4 a等) を使って受信した鍵情報 4 b を復号し、 復号された鍵を用いて暗号文から伝送情報 6を復号する。 逆に無効化
されている受信者については、 そのような受信者が複数結託しても、 伝送情報に 関して何の情報も得られない。 また、 ここでは多数の受信者の存在を想定してい る。
以下、 上記構成要素について詳しく説明する。
ϋを全ての受信者の集合とし、 その要素数を I J l = Νとする。 の部分集合 _を無効化したい受信者の集合とし、 その要素数を I _ | = rとする。 受信者の 無効化機能を有する鍵管理方式の目的は、 鍵管理機関 (又は情報送信者) が受信 を許可した受信者、 つまり Jこ含まれない全ての受信者 u
が伝送される 情報を復号でき、 逆に受信を許可されていない Jこ含まれる受信者全てが結託し ても全く伝送情報を得られないようにすることである。
(a)鍵管理機関
(i) 初期設定
受信者全体の集合 _Lの部分集合 い 、 ■ ■ ■ 、 J_w (v 』 、 S_j£ N_) を定義 する。 各 Uこは暗号 (復号) 鍵 Ljが割り当てられる。 ここで各し」.は一様に分布 しておリ、 互いに独立な値を割り当てるのが望ましい。 各受信者 (受信装置) u には、 秘密情報 I uを割り当てる。 ここで に含まれる全ての受信者リョ^』が、 自分に割り当てられた秘密情報 I uから、 自分の属する部分集合^ _』 に割り当てら れた復号鍵 Lj を求められるように秘密情報 Iリ を割り当てなければならない。 ま た、 Uこ含まれない全ての受信者 u ejs^\ 」.が結託しても復号鍵 Ljを求めるこ とができないように秘密情報 I uを割り当てなければならない。
(i i) 鍵情報生成
(1)伝送情報 Mの暗号化、 復号化に用いる鍵 (セッション鍵) Kを選ぶ。
(2)無効化する受信者の集合 _の補集合 ϋ\ こ属する受信者 u e上し\ をい くつかの部分集合 n、 S_I2 ■ ' ■ 、 S lmに分割する。 (卜1)
ここで、 初期設定で上記部分集合に割り当てられてた暗号鍵をそれぞれ L„、 L 、 ■ ' , し と 3 る。
差替え用紙 (規則 26)
(3)暗号鍵 LM、 Li2、■ Limを用いてセッション鍵 Kを m回暗号化して式(1-2) を生成、 セッション鍵 Kと一緒に情報送信者に配送する。
{ふ…, , Eenc (K, L. ), Eenc (K, L, ),..·, Eenc (K, L )) (1-2) ここで、 情報送信者へのセッション鍵の配送は安全に行われるものと仮定する。 また、 Eencは暗号化アルゴリズムである。 本システムで用いられる暗号、 復号化 アルゴリズムは 2種類あり、 以下にまとめる (ただし、 2つのアルゴリズムに全 く同じものを使用しても構わない) 。
'伝送情報 Mの暗号化アルゴリズム F enc、 復号化アルゴリズム F d ec
セッション鍵 Kを用いて暗号文 CK= Fen。(M、 K) を生成する。 高速性が要 求される。
■セッション鍵暗号化アルゴリズム Een。、 復号化アルゴリズム Ede。
セッション鍵の配送に用いる。 Fen。 よりも暗号化アルゴリズムの安全性が要 求される。
( b ) 情報送信者
セッション鍵 Kと特定の受信者のみが復号できる鍵情報を鍵管理機関から受け 取り、 セッション鍵 Kを鍵として暗号化アルゴリズム Fenc を用いて伝送情報 Mを 暗号化して、 暗号文
{[ , !·2,…, , Eenc (K, L. ), Emc (K, L, ),···, Eenc (K, Lim )] ,Fenc(M,K)) (1-3) を伝送する。 なお、 式 (1-3) の [ ] 内の部分を Fen。(M、 K) のヘッダーと呼 ぶことにする。
( c ) 情報受信者
受信者 uは、 情報送信者によリ暗号化された次の暗号文を受信する。 m,し 1 Ί,…, ], (1-4)
差替え用紙 (規則 26)
(1) u e_§_uであるような i 」を探索する。 (u の場合、 存在しない。 )
(2)自身の保有する秘密情報 I uからし;」を求める。
(3) K = Edeo (C』、 L,j) を求める。
(4) M= Fdeo (CK、 K) を求める。
上記鍵管理方式を実現するアルゴリズムと.して以下の方式がある。
■ The し ogical Key Hierarchy Method
■ CPRM Common Cryptograph i c Key Management
• The Complete Subtree Method
■ The Subset Difference Method
■ Tree Pattern Division Method
上記方式の違いとしては、 (1) 受信者の部分集合^ _ぃ ■ ■ ■ 、 wの定義、 (2) 各部分集合に対する鍵の割り当て方法、 (3) 受信を許可する (無効化しない) 受 信者の集合 \ _^の分割方法、 (4)各受信者 uが行う自分の属する部分集合^ _」の 探索方法と、 1 uから鍵 LSjの求め方等が挙げられる。
各方式は以下の 3つの観点から評価される。
■伝送情報の量
暗号文 Fenc(M、 K)に付加されるヘッダー量。 一般に]! \ _を分割した部分集合の 数 mに比例する。
■ 受信者が保有しておく秘密情報 I uの量
復号用の鍵等の秘密情報を受信者がどれだけ保持しておかなければならないか。
- 受信者が伝送された情報を復号するのに要する演算量
(1.2) 基礎となる方法 (The Subset Difference Method)
(1.2.1) 部分集合^ _,、 ■ ■ . 《の定義
最初に受信者全体の集合 の部分集合 ■ ■ を定義する。 この部分集合 に対して暗号 (復号) 鍵、 又は復号鍵を導けるような情報しい ■ ■ - Lwを割り当 てることになる。 N枚のリーフを持つ 2分木のリーフに各受信者を割り当てる (こ こで Nは 2の冪であるとしている。 ) 。
受信者の部分集合を次のように表す。 2分木中の任意のノード V , (ルートとリ —フもノードに含まれる。 ) をルートとする部分木の全てのリーフに割り当てら
れた受信者の集合を で表す。 任意のノード V , 以下のリーフに割リ当てられた 受信者の集合^ とノード V i をルートとする部分木中の (ルートを除く) ノ一ド V j をルートとする部分木の全てのリーフに割リ当てられた受信者の集合 ^jC^i について、 ^ の要素から^ jの要素を引いた差分集合を i. j とする。 つまり、 集 合 に含まれる受信者のぅち、 集合 Uこ含まれていない受信者の集合を ^_ と する。 図 2は^ を示している。 この差分集合に対して 1つの鍵しし jを割り当て る。
(1.2.2) ϋ\ _の分割方法
次に受信を許可する (無効化しない) 受信者の集合 ϋ\ を、 上記で定義され
に分割する方法を説明する。 2分木のル 一卜と無効化したい受信者に相当する各リーフを結ぶ最短のパス上のノ一ドのみ で構成される部分木 S T (R.) を考える (このような部分木は _から一意に構成 される) 。 S T (R_) については子ノードの存在しないノードをリーフと呼ぶこ とにする。 以下のアルゴリズムを S T ( R.) がルートのノードのみになるまで繰 リ返し、 _L\ を構成する差分集合を選択する。
(1) 2つのリーフからルー卜へのパスの共通部分に存在するノ一ドの中で、 リー フとの距離が最小となるノードを 2つのリーフの最小共通ノードと呼ぶことにす る。 S T ( R.) のリーフ v ,、 V jを、 それらの最小共通ノード V以下に他のリーフ が存在しないように選ぶ。 Vの 2つの子ノードの中で、 Vと V ,のパス上に存在す る子ノードを v k、 Vと V jのパス上に存在する子ノードを V , とする。 (リーフ力 S T ( R_) 中に 1つしか存在しない場合、 V i= vj、 v = V |= vkとして、 Vを S T (R.) のルートと考えればよい。 )
(2) v k≠ V ,ならば、 ϋ\ _を構成する差分集合に を加える。 V V jなら ば ϋ\ _ を構成する差分集合に uを加える。
(3) Vより下に位置するノードを全て除去する。 これにより Vがリーフになる。 上記アルゴリズムを用いることにより、 受信者の集合 J \ _ Jま、 無効化したい 受信者数 | J = rのとき、 最大 2 r— 1の差分集合に分割される。
(1.2.3) 部分集合^ _ ■ ■ ■旦_«への鍵の割り当て方法
次に、 各差分集合に対する鍵の割り当て方法について説明する。 各差分集合に
対して、 一様に分布しており、 互いに独立な値を持つ鍵を割り当てる。
(1.2.4) 受信者への秘密情報の割り当て方法
各受信者には自分の属する差分集合全ての鍵を配布しておかなければならない, これは受信者側に非常に多くの記憶量を必要とする。 受信者 uは、 自分の属する 各部分木 Tkに対して (ここで Tkの変数 kは部分木の高さを表している。 ) 、 部 分木 Tk 中に存在するノードの中で、 Tkのル一卜から uのパス上に存在するもの を除く全てのノードの数に相当する鍵を保有しなければならない。 受信者 uの属 する部分木の数は log2N個存在し、 各部分木の高さは 1 ≤ k≤ log2Nであるから、 受信者が保有しなければならない鍵の数は式 (2-1) のようになる。 log3 N
1 + (2k+1 fc-2) (2-1)
(1.2.5) 部分集合 ■ S.wへの鍵の割り当て方法 (擬似乱数生成器を 用いる場合)
受信者が保有しておく鍵を減らすため、 各差分集合 に直接鍵を割り当てる のではなく、 部分集合 に対して 1 つのラベルを割り当て、 差分集合^ (vj、 S_jC S_,) に割り当てる鍵しいが、 部分集合 uこ割り当てられたラベルを用いて 導けるようにしておく。 このとき、 差分集合 内に存在する受信者のみが鍵 L u を導けるようにしなければならない。 以下では、 擬似乱数生成器を用いて、 上 記方法を実現する方法を示す。
G : {0, 1 } " → { 0 , 1 } 3" を入力長の 3倍の長さを出力する擬似乱 数生成器とする。 擬似乱数生成器 Gの入力'を Sと したとき、 出力される値を 3等 分した左側部分を (S) で表し、 右側部分を GR (S) 、 中央部分を GM (S) で表す。 また、 Gの入力として乱数を与えたときに出力される値と、 出力と同じ 長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、 攻撃者は、 有意な確率で両者を区別できないといった特性を Gは満たしていなければならな い。
ノード V , をル一トとする部分木 を考える。 ノード V | にラベル LABEL, を割 リ当てる (簡単のため任意の部分木のリーフに割り当てられた受信者の集合への
ラベルの割り当てを、 その部分木のルートノードにラベルを割り当てると表現す る。 つまり上記表現は次のようになる。 「部分木 T |中のリーフに割り当てられた 受信者の集合 にラべルし 8£し|を割リ当てる。 J ) 。 LABELuを、 部分木 中の ノード ν」のラベルとする(割リ当てられるラベルが多変数のパラメータを持つ(こ の場合 i と j の 2変数) 場合、 それは差分集合に対して割り当てられたラベルを 示している。 このとき、 LABEL, ,」は V』をルートとする部分木のリーフに割リ当て らた受信者の集合 Uこ割り当てられるのではなく、 に含まれ、 Uこは含まれ ていない受信者の集合 (差分集合) j に対して割り当てられる。 ) 。 LABELS が差分集合 に割リ当てられるラベルである。
LABEL,,』を部分木 T ,のル一ト V iに割り当てられたラベル LABEL,から擬似乱数生 成器 Gを用いて以下の導出規則によリ導く。 ラベルを擬似乱数生成器の入力とし たとき、 その出力を次のように定義する。 G L—左側の子ノードのラベル、 G R—右 側の子ノ一ドのラベル、 G M—入力ラベルの割リ当てられたノ一ドに割リ当てる暗 号 (復号) 鍵。 この導出規則に拠れば、 部分木 T i中のある親ノードにラベル Sが 割り当てられたとき、 その 2つの子ノードのラベルは、 G L ( S ) 、 G R ( S ) が割 リ当てられる。 これより、 V i から ν」 に至るパス上のノードに割り当てるラベル を Gを用いて順次求めることで、 V ,に割リ当てられたラベル LABEL,から、 部分木 T!中のノード V jのラベル LABEL, jを求めることができる。
最後に LABELuを Gの入力としたときの出力の中央部分 G M ( LABELi J) を、 差分 集合^ jに割り当てる暗号 (復号) 鍵し として用いる。 図 3 Aに部分木 中の ノード V jに割り当てるラベルと暗号 (復号) 鍵の生成方法を示す。
このような方法を用いれば、 部分木中のあるノードのラベルが与えられたとき、 その子孫ノード全てのラベルと暗号 (復号) 鍵を計算することができる。 逆に、 あるノード V』の先祖ノ一ドのラベルを V」から求めることはできない。 さらに、 ノード v jの全ての子孫ノードのラベル (ただし、 ν」 自身のラベルは含まない) から暗号 (復号) 鍵し を求めることはできない。 部分木 T , のルートのラベル LABEL!を与えられたとき、 差分集合 に割り当てられる暗号 (復号) 鍵 l_ uを 計算するのに擬似乱数生成器 Gを最大で l og2N + 1 回用いる。
( 1 . 2. 6) 受信者への秘密情報の割り当て方法 (擬似乱数生成器を用いる場合)
各受信者 uが保有する秘密情報 I uの割り当て方法について説明する。 受信者 u は、 自分の属する各部分木 T, に対して、 T,のルートノード V , と、 部分木 中 のノードで uの先祖ノードでない全てのノード V ,により決定される差分集合 S に割リ当てられた暗号 (復号) 鍵し,」を計算できなければならない。 部分木 の ル一トノード V ,から uへのパスを考え、 そのパスに直接ぶら下がるノードを V π、 V |2、 ■ ' ■ v lkとする (図 2 (b) 参照) 。 つまり、 それらはパスに隣接するノ ードの中で、 uの先祖ノードでないノードである。 部分木 T ,中で uの先祖でない 任意のノード V ,は、 これらのノード V i1、 V |2, ■ ■ ■ 、 v ikいずれかの子孫ノ一 ドである。 ゆえに、 受信者 uが I uとして、 ν 11 v i2、 ■ ■ ■ 、 v ikに割り当てら れたラベルを保有しておけば、 最大 log2N+1 回擬似乱数生成器 Gを用いて、 部分 木 中でパス上に存在しない任意ノード V jに割り当てられた復号鍵 μ,」. を計算 することができる。
受信者 uを含む高さ kの部分木 T,中に、 受信者 uが保存しておかなければなら ないラベルは k個あるから、 これを uを含む各部分木について考えると、 受信者 uがあらかじめ保有しておかなければならない復号鍵 (ラベル) の数は式 (2-2) のようになる。 log, N
l + ∑ k^ l + (l^N^N = l(log^)2 + llog2N + 1 ( )
式 (2 - 2) で 1が足されているのは、 無効化する受信者が全く存在しない場合の 鍵が必要だからである。
(1.2.7) 複数の 2分木を用いる方法
さらに受信者 uが保有する秘密情報 I uを減らす場合は、 伝送情報 Mの量との ト レードオフとなる。 一つの方法として、 2分木を高さの低い木に限定して複数用 いる方法がある。 木構造においてノードの位置する各層をレイヤと呼び、 ルート の位置する層から順番に Layer(0)、 Layer (1), ■ ■ · と定義する。 このとき、 受 信者をリーフに割り当てられた 2分木を、 Layer(b) に存在するノードをルートと する 2b個の 2分木に分割し、 分割された 2分木に対して The Subset Difference
Method を適用する。 このとき、 Layer(0)~Layer(b - 1)に存在するノードは使用し ない。
これにより、 受信者が保有しておく情報量 I u を式 (2-3) のように減らすこと ができる。 しかし、 伝送情報 Mの量 (無効化しない受信者をカバーする部分木の 数) は、 無効化したい受信者数を I = r とすると最大で 2b+2 r― 1 と増加 する。
'oga N—b
1+ L k = ^(!oga N-b + l0g2 N-b) + i (2-3)
(1.3) 本実施形態による方法 (The Layer Division Subset Dけ ference Method) (1.3.1) 部分集合 _,、 ■ ■ '、 wの定義
最初に受信者全体の集合 の部分集合^ j、 ■ ■ , _§_wを定義する。 この部分集合 に対して暗号 (復号) 鍵、 又は復号鍵を導けるような情報し ■ ■ ■ Lwを割り当 てることになる。 N枚のリーフを持つ 2分木のリーフに各受信者を割り当てる (こ こで Nは 2の冪であるとしている。 ) 。 木構造においてノードの位置する各層を レイヤと呼び、 ルートの位置する層から順番に Layer(0)、 Layer (1) . ■ ■ ■ と定 義する。 リーフの存在する層は Layer(log2N)になる。 図 4に示すように 2分木を Layer(O)〜し ayer(d)、 Layer (d) ~Layer (2d)、 ■ ' ' といったように d+1 階層ずつ のレイヤに分割する。 図 4では d=2 の場合を示している。 分割された各層をマク 口レイヤと呼ぶことにし、 ルートを含むマクロレイヤから順番に MacroLayer (0)、 MacroLayer (1 )、■■■ ^MacroLayer (( (log2N)/d- 1 )と定義する。各 MacroLayer (s) (0 ≤s≤ ((log2N)/d- 1 ) ))は、 全体の 2分木を分割した高さ d の 2sd個の部分木 Thから構成される。全体で上記部分木 Thは(1- 211>g2W)/(l- 2d)))個存在することに なる。 各部分木 T^o /^ — 2'°g2W)/(l - 2rf))) ) を、 リーフに受信者を割り当て た 2分木と考え、 The Subset Difference Method において定義された差分集合を 部分集合^ j、 ■ ■ として定義し、 暗号 (復号) 鍵し ■ ■ ■ Lwを割り当て る 。 ( 実 際 に は 、 部 分 木 T h の リ ー フ は 、 s=(log2N)/d- 1 の 場 合 (MacroLayer((log2N)/d- 1)中の部分木) を除いて、 全体の 2分木で見た場合ただ
のノードであり、 受信者が割り当てられているわけではない。 そこで、 ある任意 の部分木 Thにおけるリーフには、 そのリーフに対応する全体の 2分木中のノード 以下に存在する全てのリーフに割り当てられた受信者の集合が割リ当てられてい ると考える。 ) 。
部分木 Th中の任意のノード V , をルートとする部分木 Th.iの全てのリーフに割 リ当てられた受信者の集合を^ で表す。 ノード V | 以下のリーフに割り当てられ た受信者の集合^ _i と ThJ 中の (ルートを除く) ノード ν」·をルートとする部分木 Th,jのリーフに割り当てられた受信者の集合^ _jC iについて、 の要素から^ _ jの要素を引いた差分集合を _いとする。 つまり、 集合 に含まれる受信者のぅ ち、 集合 Uこ含まれていない受信者の集合を^ J.Jとする。 図 5は^ ^」を示してい る。 この差分集合に対して 1 つの暗号 (復号) 鍵 Li,』を割り当てる。
(1.3.2) N.\ _の分割方法
次に受信を許可する (無効化しない) 受信者の集合 J \ を、 上記で定義され た差分集合 に分割する方法を説明する。 無効化したい受信者を割り当てられ ているリーフ、 または無効化したい受信者を 1つでも含むような受信者の集合を 割り当てられているリーフを含む全ての部分木 Thについて以下の処理を行う。 無効化したい受信者を含む部分木 Th について、 部分木 Thのルー卜と無効化し たい受信者 (又は無効化したい受信者を含む受信者の集合) に相当する各リーフ を結ぶ最短のパス上のノードのみで構成される部分木 S Th を考える (この ような部分木は _から一意に構成される) 。 S Th (R.) については子ノードの存 在しないノードをリーフと呼ぶことにする。 また、 以下の(1)~ (4)の処理におい て用いられているルー卜とリーフは、部分木 Th中のそれを表しているものとする。
(1) 2つのリーフからルー卜へのパスの共通部分に存在するノードの中で、 リ一 フとの距離が最小となるノードを 2つのリーフの最小共通ノードと呼ぶことにす る。 S Th ( R.) のリーフ V ,、 V」 を、 それらの最小共通ノ一ド V以下に他のリー フが存在しないように選ぶ。 Vの 2つの子ノードの中で、 Vと V iのパス上に存在 する子ノードを v k、 Vと ν」のパス上に存在する子ノードを V , とする。 (リーフ が S Th ( R.) 中に 1 つしか存在しない場合、 V i= v v = v j= v kとして、 Vを
S Th (R) のルートと考えればよい。 )
(2) vk≠ v ,ならば \ を構成する差分集合に k.iを加える。 V ,≠ V jならば
N.\ を構成する差分集合に^ j.」.を加える。
(3) Vより下に位置する部分木 Th中のノードを全て除去する。 これにより、 V がリーフになる。
(4) S T h ( R.) にルート以外のノードが存在する場合、 上記(1)に戻る。 S Th ( R.) がルートのノードのみなった場合、 無効化したい受信者を含む他の部分木
Thを選択し、 上記(1)に戻って同様の処理を繰り返す。 S Th ( R.) がルートのノ -ドのみなリ、 かつ無効化したい受信者を含む他の部分木 Thが存在しない場合、 処理を終了する。
上記アルゴリズムにより構成された差分集合 いの集合が を構成する差 分集合の集合である。 \ の分割数 (上し \ を構成する差分集合の数) の上限 は、 dの値により異なるが、 例えば d=2 のとき (このとき、 Nは 4の冪であると 仮定している。 ) 、 無効化したい受信者数 I _BJ = rとすると式 (3-1) のように なる。
log
4(N)-l (7=1)
log4(N) (7 = 2)
(2·4'—
log4(N/4') 1 <ゾ<4'')
log4(N/4!)-l (4'' < 7<2·4'' つ j力 S奇数)
log4(N/4') (4'" < 7<2·4''かつ jが偶数)
-1 (2.4log4iV-1 <;<4log^ =N) ここで i は 0く Klog4Nを満たす整数である。
(1.3.3) 部分集合^ _1 ■ ■ ■ 、 wへの鍵の割り当て方法
次に各差分集合に対する鍵の割り当て方法について説明する。 各差分集合^ J.J に対して、 一様に分布しており、 互いに独立な値を持つ鍵を割り当てる。 各受信 者には自分の属する差分集合に割り当てられた全ての鍵を配布しておく。
(1.3.4) 受信者への秘密情報の割り当て方法
受信者 uを割り当てられたリーフと、 全体の 2分木のル一卜とのパス上に存在
差替え用紙 (規則 26)
14/1
するノ一ドを含む各部分木 Thについて考える。 このような部分木 Thは各マク口 差替 え用紙 (規則 26)
15 レイヤ中に必ず 1つ存在する。 パス上のノードの中で部分木 Thに含まれる任意の ノードを V | とし、 V | をルートとする部分木 Τ のリーフに割り当てられた受信 者の集合を^ とする。 部分木 Th.i中のノードであり、 かつパス上に存在しないノ ードを V jとし、 ν」をルートとする部分木 Th,jのリーフに割リ当てられた受信者 の集合を ^jC^iとする。集合^ に含まれ、集合 Uこ含まれない受信者の集合(差 分集合) を で表す。 このとき受信者 uは上記の全ての差分集合 ^j, jに割り当 てられた鍵を保有しておく必要がある。 受信者 uの属する部分木 Thの数は、 マク 口レイヤ数に等しいから log2N d個存在する。 部分木 Thの高さは dであるから、 部分木 Th中に存在し、 かつパス上のノ一ド V , をル一トとする部分木 Th.i は d個 存在する (ノード V , が部分木 Thのリーフに相当する場合は、 受信者の集合を割 リ当てる必要がないため除外している。 ) 。 部分木 Th., の高さを k、 ( 1 ≤ k≤ d ) とすると、 部分木 Th,i中のノードで、 かつパス上に存在しないノード V jをル ートとする部分木 Th,j は { ( 2 k+1- 1 ) - ( k + 1 ) } 個存在する。 これより各 部分木 Th,iについて、 集合 jの数は { ( 2k+1- 1 ) - ( k + 1 ) } 個である。 よ つて差分集合 ,,』の数は式 (3-2) のようになる。 受信者 uは式 (3-2) に示すだ けの個数の鍵を保有しておかなければならない。 式 (3-2) において 1が足されて いるのは、 無効化する受信者が全く存在しない場合の鍵が必要だからである。
, , 1ο¾ N ^( ¾ ,, k ) _ 4(2" - 1) loga N (d + 5) log2 N | 1 (3_2)
(1.3.2) 部分集合 _ ^、 ■ ■ ■ 、 wへの鍵の割り当て方法 (擬似乱数生成器を 用いる場合)
受信者が保有しておく鍵を減らすため、 The Subset Difference Method と同様 に擬似乱数生成器を用いて差分集合への鍵の割り当てを行うこともできる。 つま リ、 各差分集合 に直接鍵を割り当てるのではなく、 部分木 Th,iのリーフに割 リ当てられた受信者の集合 に対して 1 っのラべルを割リ当てる。 このとき、 差 分集合^ (vj S.jC S.,) に割り当てる鍵し が、 部分集合 Uこ割り当てられ たラベルを用いて導けるようにしておく。 このとき、 差分集合 S u 内に存在する
16 受信者のみが鍵し j を導けるようにしなければならない。 以下では、 擬似乱数生 成器を用いて、 上記方法を実現する方法を示す。
G : { 0 , 1 } " → { 0 , 1 } 3" を入力長の 3倍の長さを出力する擬似乱 数生成器とする。 擬似乱数生成器 Gの入力を Sとしたとき、 出力される値を 3等 分した左側部分を GL (S) で表し、 右側部分を GR (S) 、 中央部分を GM (S) で表す。 また、 Gの入力として乱数を与えたときに出力される値と、 出力と同じ 長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、 攻撃者は、 有意な確率で両者を区別できないといった特性を Gは満たしていなければならな い。
ノード V ,をル一トとする MacroLayer(s)中の部分木 Th.iを考える。 ル一トノ一 ド V ,にラベル LABEL,を割り当てる (簡単のため任意の部分木のリーフに割り当て られた受信者の集合へのラベルの割リ当てを、 その部分木のル一トノードにラベ ルを割り当てると表現する。 つまり上記表現は次のようになる。 「部分木 Th., 中 のリーフに割り当てられた受信者の集合 にラベル LABEL,を割り当てる。 J ) 。
LABEL,, jを、 部分木丁 中のノード のラベルとする (割り当てられるラベルが 2変数のパラメータを持つ場合、 それは差分集合に対して割り当てられたラベル を示している。 このとき、 LABELSは V』 をルートとする部分木のリーフに割り当 てらた受信者の集合 Uこ割り当てられるのではなく、 Uこ含まれ、 には含ま れていない受信者の集合 (差分集合) jに対して割り当てられる。 ) 。 LABEL,,」 が差分集合 い に割り当てられるラベルである。 LABELu を部分木 Th.i のルート V iに割り当てられたラベル LABEL,から擬似乱数生成器 Gを用いて以下の導出規則 により導く。
ラベルを擬似乱数生成器の入力としたとき、 その出力を次のように定義する。
GL—左側の子ノードのラベル、 GR—右側の子ノードのラベル、 GM—入力ラベル の割り当てられたノードに割り当てる暗号 (復号) 鍵。 この導出規則に拠れば、 部分木 Th,i 中のある親ノードにラベル Sが割り当てられたとき、 その 2つの子ノ ードのラベルは、 G L (S ) 、 G R (S) が割り当てられる。 これより、 から V j に至るパス上のノードに割り当てるラベルを Gを用いて順次求めることで、 V i に割リ当てられたラベル LABEL,から、部分木 Th,i中のノード V」のラベル LABEL,, j
17 を求めることができる。最後に LABEL^を Gの入力としたときの出力の中央部分 G LABELi.j)を、 差分集合 に割り当てる暗号 (復号) 鍵 L j として用いる。 図 6に差分集合^ _ に割り当てる鍵し,.』の割り当て例を示す。
このような方法を用いれば、 部分木中のあるノードのラベルが与えられたとき、 部分木内でのその子孫ノード全てのラベルと暗号 (復号) 鍵を計算することがで きる。 逆に、 あるノード V jの先祖ノードのラベルを V jから求めることはできな い。 さらに、 ノード ν」の全ての子孫ノードのラベル (ただし、 V j 自身のラベル は含まない) から暗号 (復号) 鍵し を求めることはできない。 部分木丁^のル -卜のラベル LABEL,を与えられたとき、 差分集合 いに割り当てられる暗号 (復 号) 鍵し, を計算するのに擬似乱数生成器 Gを最大で d+1 回用いる。
(1.3.6) 受信者への秘密情報の割り当て方法 (擬似乱数生成器を用いる場合) 各受信者 uが保有する秘密情報 I uの割り当て方法について説明する。 各マク口 レイヤ中に 1 つずつ存在する uの属する部分木 Th について考える。 部分木 Thの ルー卜と uの割り当てられたリーフを結ぶパス上の d個 (リーフ部分のノ一ドは 数えていない。 ) のノードを V ,とし、 V ,をルートとする高さ k、 (1≤ k ≤ d )の 部分木 Th,iのノードの中で、 パスに直接ぶら下がるノードを V n、 v i2、 ■ ■ ■ v ikで表す (図 7 ) 。 つまり、 それらは部分木 Th.i 中のノードの中で、 パスに隣接 し、 かつ uの先祖ノ一ドでないノ一ドである。 部分木 Th>i 中のノ一ドで、 uの先 祖でない任意のノード ν』は、 これらのノード v i1¾ v i2、 ■ ■ ■ v ikのいずれかの 子孫ノードである。 ゆえに、 受信者 uが I u として、 v M、 vl2、 ■ ■ ■、 v ikに害 IJ リ当てられたラベルを保有しておけば、 最大 d+1 回擬似乱数生成器 Gを用いて、 部分木 Th,, 中でパス上に存在しない任意ノード V j に割り当てられた復号鍵 Lい を計算することができる。
受信者 uを含む部分木 Thの数は、マク口レイヤ数に等しいから log2N/dであり、 部分木 Th中にパス上のノードをル一トとする部分木 T ttd個存在する。高さ の部分木 Th,i 中に受信者 uが保有しなければならないラベルは k個あるから、 こ れを uを含む各部分木 Th,! について考えると、 受信者 uが保有しておかなければ ならない復号鍵 (ラベル) の数は式 (3-3) のようになる。
18
式 (3-3) において 1が足されているのは、 式 (3-2) と同様に無効化する受信者 が全く存在しない場合の復号鍵が必要だからである。 擬似乱数生成器を用いて差 分集合への鍵の割リ当てを行った場合、 受信者の保有する秘密情報は復号鍵では なく各部分木 Τ に割り当てられたラベルであるが、 受信者を全く無効化しない 場合に用いる復号鍵については鍵そのものを保有することになる。
(1.3.7) 複数の 2分木を用いる方法
さらに受信者 uが保有する秘密情報 I uを減らす場合は、 伝送情報 Mの量との ト レ一ドオフとなる。 一つの方法として、 2分木を高さの低い木に限定して複数用 いる方法がある。 受信者をリーフに割り当てられた 2分木を、 Layer(b)に存在す るノ一ドをルートとする 2b個の 2分木に分割し、 分割された 2分木に対して本方 式を適用する。 このとき、 Layer(O) ~ Layer (b-1)に存在するノードは使用しな い。 これにより、 受信者が保有しておく情報量 I uを式 (3-4) 、 式 (3 - 5) のよう に減らすことができる。 擬似乱数生成器を用いない場合の復号鍵 (ラベル) 保有 数が、 式 (3-4) であり、 擬似乱数生成器を用いる場合のそれが式 (3-5) である。 式 (3-4) 、 式 (3-5) において共に 1が足されているのは、 自身の割り当てられ ているリーフの属する 2分木中に、 無効化する受信者が全く存在しない場合の鍵 が必要だからである。
1
1 + log2N-^fc == (d -l)(log2N^) + 1 (3— 5)
伝送情報 Μの量 (無効化しない受信者をカバーする部分木の数) の上限は、 例 として d=2のときを考えると、無効化したい受信者数が I I = rのとき式(3-6) のよラになる。
19
(3-6)
46 +∑
7=1 log4(N/4Vl (0< j≤2-4"かつ jが奇数)
log4(N/46) (0<ゾ<2.4*かつ jが偶数)
log4(N/46+i) (2·46+Μ <ゾ≤4*+')
log4(N/46+')-l (4M.< j < 2-4k+iかつ jが奇数 )
log4(N/4 +i) (4M < j≤2-4b+iかつ Jが偶数)
(2.4 S<w-i <ゾ≤ 4i。 w = )
一 1 ここで i は 0く Klog4(N/4h)を満たす整数である。
(1.4) 各方式の性能比較
図 8に受信者総数 | ϋ_|、 無効化したい受信者数 | _Ι = rを一定にしたとき、 各方式において受信者が保有しておく秘密情報と伝送するヘッダー量の関係を示 す。 図 8に示すように、 = 230=1, 073, 741、 824= 1 0億、 r = 214= 16, 384と し、 各方式で用いる暗号化アルゴリズムの鍵長は全て 128bitとした。
横軸が受信者の保有しておく秘密情報量、 縦軸が伝送するヘッダー量の上限を 表しており、グラフの左下にある方式ほど、伝送又は蓄える情報量が少ないため、 この 2点に関しては優れた方式といえる。
実際のシステムの運用においては、受信者 uは自身が保有する秘密情報 I uから、 との復号 H (The Subset D i f f erence Method、 Theし ayer Division Subset Di f f erence Method で擬似乱数生成器を使用する場合はラベル情報) を用いて、 伝送されたへ ッダー情報を復号するのかを決定する必要がある。 その方法としては、 例えば、 全ての復号鍵で全てのヘッダー情報を復号する方法や、 復号に使用すべき復号鍵 の情報 (ヘッダーの暗号化に使用した暗号鍵のインデックス情報) を付与する方 法などが考えられる。 この場合伝送される情報はさらにィンデックス情報分増加 することになるが、 図 8では考慮していない。
The Subset D ference Methodは全部で 19点 (丸で示す) プロッ トされている が、これは、変数 bをパラメ一タとしているためである。左の点から h =18、17、·'- . 1 0 となっており、 一番お端の点が 2分木を 1つのみ用いた方式に相当する。 ま た、 差分集合へのラベルの割り当ては、 擬似乱数生成器を用いた方式のみを表示 差替え用紙 (規則 26)
20 している。
New Methodと書かれた方式が本発明の実施形態による方法 (The Layer D i v i s i on Subset Difference Method) であり、 これは、 差分集合へのラベルの割り当てに 擬似乱数生成器を用いていない。 本発明の実施形態による方法で擬似乱数生成器 を用いた方式は、 New Method using PRNG と書かれた方式である。
それぞれ複数の点がプロッ 卜されているのは、 変数 dをパラメータとしている ためで、 左から d=1、 2、 ■ ■ 'のときを表している。 d=1 のときは擬似乱数生成 器を用いたラベルの割り当てを行っても (受信者が保有する秘密情報量削減とい う意味での)性能は向上しないことがわかる。また、 The Subset Difference Method と同様に b を変数とすることもできるが、 ここでは各 dについて、 伝送するへッ ダー量が最小となるパラメータの中で、 受信者の保有する秘密情報量が最も少な くなるような b のみを選択して、 その場合のみを表示している。 図 8には表示し ていないが、 d=1、 b=0の場合、 アルゴリズムが The Complete Subtree Method と 完全に等価になる。 d=16、 b=14の場合は、 The Subset Difference Method CD b=1 とした場合と等価になる (図 8で 2つの方式の結果が重なっている点) 。 The Tree Pattern Division Method については、 アルゴリズムに使用する木を 2分木のみ でなく任意の n分木を用いる。 そのため、 図 8には、 左から使用する木を 2分木、 3分木、 4分木、 5分木とした場合の結果を表示している。 n分木のリーフに受信 者を割り当てるため、 2分木、 4分木を用いる場合を除いて、 受信者総数は 23β= 415=1, 073, 741, 824にならない。 よって、 3分木、 5分木については以下の値を用 いた。
■ 3分木 : Ν = 319=1, 162, 261,467= 1 0億
■ 5分木 : Ν = 5 '3=1, 220, 703, 125 1 0億
また、 2分木のとき The Complete Subtree Method とアルゴリズムが完全に等価 である。
(1.5) 実施形態のコンテンツ配信システム
本発明の実施形態によるコンテンツ配信システムの概略構成を図 1 Bに示す。 このシステムは、 情報提供者 7が各種の記憶媒体 9をユーザに提供する。 本実施 形態では、 記憶媒体 9は、 例えば D V D— ROMなどの光ディスクを含む各種の
21 記録媒体とすることが可能である。 ユーザは再生装置 8を所持し、 当該再生装置 8によリ記録媒体 9から情報を再生する。 再生装置 8は内部に復号鍵 4 aを有し ている。
ここで、 情報提供者 7は上記の鍵管理方式の 3要素における情報送信者に対応 し、 再生装置 8は情報受信者に対応する。 即ち、 情報提供者 7は、 映像/音声な どのコンテンツ情報を暗号化用鍵情報 5を使用して暗号化し、 伝送情報 6として 記録媒体 9に記録する。 また、 情報提供者 7は、 無効化の対象となる再生装置 8 によっては復号できないが、 無効化の対象とならない再生装置 8によれば復号可 能な鍵情報 4 bを記録媒体 9に記録する。 そして、 情報提供者 7は記録媒体 9を 各再生装置 8のュ一ザに提供する。
無効化の対象とならない再生装置 8は、 自己の有する復号用鍵 4 aで鍵情報 4 bを復号して伝送情報 6の復号鍵を取得し、 これで伝送情報 6を復号して映像 音声などの情報を再生することができる。 一方、 無効化の対象となる再生装置 8 は、 自己の復号用鍵 4 aにより記録媒体 9内の鍵情報 4 bを復号することができ ないので、 伝送情報 6を復号する鍵を得ることができず、 伝送情報 6を再生する ことができない。 こう して、 本システムでは、 記録媒体 9上に記録された伝送情 報 6を特定の再生装置 8のみにより再生可能とする。
本発明では、 上述の階層分割を伴う鍵管理方式 (The Layer D i v i s i on Subset D i fference Method) に従って、 再生装置 8側の復号用鍵 4 a及び記録媒体 9に記 録される鍵情報 4 bを生成する。 具体的には、 ある再生装置 8に対して、 その再 生装置を含むような全ての差分集合に割り当てられている復号鍵 (または復号鍵 を導けるようなラベル) と、 当該再生装置が割り当てられたリーフの属する 2分 木のルー卜に割り当てられた復号鍵 1 つを当該再生装置に復号用鍵 4 a として配 布すればよい。 こう して、 記録媒体中 9の鍵情報 4 bの情報量の増加を押さえつ つ、 再生装置 8に保持しておく復号用鍵 4 aの情報量を大幅に減少させることが できる。
次に、本発明の実施例に係るコンテンツ配信システムについて説明する。なお、 このコンテンツ配信システムは、 D V Dなどの光ディスクを記録媒体と して使用 するものであり、 ここでは特に D V D— R O Mを例にとって説明する。 このコン
22 テンッ配信システムでは、 情報送信者はコンテンツの著作権者、 光ディスク製造 工場などに相当する。一方、情報受信者はコンテンッの再生機能を有する装置 (再 生装置) であり、 ハードウェア又はソフ トゥヱァにより構成されている。
なお、 以下の実施例の説明において、 Encryption 0 は暗号化アルゴリズム、 Decryption () は復号化アルゴリズムを表すものとする。 また、 Encryption (引 数 1 、 引数 2 ) は引数 2を暗号鍵と して引数 1 を暗号化した暗号文を表し、 Decryption (引数 1、 引数 2) は引数 2を復号鍵として引数 1 を復号したデータ を表す。 また、 記号 " に' は 2つのデータの結合を表し、 (データ A) | (デ一 タ B) のように用いる。
(2.1) コンテンツ記録装置
まず、 コンテンツ記録装置について説明する。 図 9はコンテンツをディスクに 記録するコンテンツ記録装置 50の構成を示すブロック図であり、 情報送信者と しての前述のディスク製造工場などに設けられるものである。 また、 コンテンツ 記録装置 50の各部の信号 S 1 ~S 7の内容を図 1 0 A~ 1 0 E及び図 1 1 A~ 1 1 Bに示している。 なお、 ここでのコンテンツは、 情報送信者から情報受信者 へ送信される前述の伝送情報に対応するものである。
図 9において、 コンテンッ入力装置 5 1 はコンテンッを入力する装置であり、 図 1 0 Aに示すように、 コンテンッに対応する信号 S 1 を出力する。 コンテンツ としては、 通常、 音楽、 映像などのマルチメディアデータが代表的であるが、 こ こでのコンテンツはそれらに限定されるものではなく、 文書などのデータも含ま れる。 また、 コンテンッ入力装置 5 1 としては、 コンテンッのマスターデータが 記録された磁気テープや、 DV D— R、 DV D— RW、 D V D- ROM, D V D 一 RAMなどの記録媒体を読み込んで信号 S 1 を出力する回路や、 L A N、 イン タ一ネッ トなどの通信回線を経由してアクセスし、 そのデータをダウンロードし て信号 S 1 を出力する回路などが挙げられる。
復号鍵入力装置 52はコンテンツ復号用の鍵 Aを入力する装置であり、 図 1 0 Bに示すように、 コンテンツ復号鍵 Aである信号 S 2を出力する。 コンテンツ復 号鍵 Aは、 情報送信者である著作権者、 ディスク製造工場又は鍵管理機関により 決定される。
23 暗号鍵入力装置 53は、 コンテンツ暗号鍵 Aを入力する装置であり、 図 1 O C に示すように、 コンテンツ暗号鍵 Aである信号 S 3を出力する。 コンテンツ暗号 鍵 Aとコンテンッ復号鍵 Aには、 次の関係が成立することが要求される。
P =Decryption (Encryption (任意のデータ P, コンテンツ暗号鍵 A) , コ ン亍ンッ復号鍵 A)
コンテンツ暗号化装置 54は、 コンテンツ暗号鍵 A (信号 S 3) を用いてコン テンッ (信号 S 1 ) を暗号化し、 暗号化コンテンツで'ある信号 S 4を出力する。 図 1 O Dに示すように、 信号 S 4 = Encrypt ion (コンテンツ, コンテンッ暗号鍵 A) である。
なお、 この例ではコンテンツ暗号鍵 Aを用いてコンテンツを直接暗号化してい るが、 コンテンツ自体を暗号化する必要は必ずしもない。 例えば、 コンテンツ自 体は他の暗号鍵 Cで暗号化し、 暗号鍵 Cに対応する復号鍵 Cを上記のコンテンツ 暗号鍵 Aで暗号化して信号 S 4として出力してもよい。 つまり、 ここでいう 「コ ンテンッ暗号鍵を用いてコンテンツを暗号化する J とは、 コンテンツの復号化に 少なく ともコンテンッ復号鍵 Aを必要とするような方法でコンテンッを変換する ことを意味する。
暗号鍵入力装置 5 5は、 コンテンッ復号鍵 Aを暗号化するための複数の暗号鍵 B,を入力する装置であり、 N個の暗号鍵 B,、 B2、 ■ ■ ■ BN―,、 BNを、 前述の階 層分割を伴う鍵管理方式のアルゴリズムに従って選択し、 信号 S 5を出力する。 図 1 0 Eに示すように、信号 S 5 =暗号鍵 B, | 暗号鍵 B2 | ■■■ | 暗号鍵 | ■■ ■ I暗号鍵 BN | 暗号鍵 BNで表される。 これら複数の暗号鍵 B, の組み合わせによ リ、 コンテンツを再生することができる再生装置 (上述した 「無効化の対象とな らない受信者」 ) がー意に決まる。 よって、 再生を許可する権限を持つ機関 (鍵 管理機関又は情報送信者) が暗号鍵 Biを決定する。
鍵暗号化装置 56は、 信号 S 5として得られる暗号鍵 B,を用いて、 信号 S 2と して得られるコンテンツ復号鍵 Aを暗号化し、 それにヘッダー情報 Header (暗号 鍵 Β,) を付加して信号 S 6として出力する。 図 1 1 Αに示すように、
信号 S 6. =
Header (暗号鍵 Β,) | Encryption (コンテンツ復号鍵 A, 暗号鍵 B )
24
Header (暗号鍵 B2) | Encryption (コンテンツ復号鍵 A, 暗号鍵 B2) )
Header (暗号鍵 B | Encrypt i on (コンテンツ復号鍵 A , 暗号鍵 Β,)
Header (暗号鍵 | Encryption (コンテンツ復号鍵 A, 暗号鍵 BN ) Header (暗号鍵 BN) | Encryption (コンテンツ復号鍵 A , 暗号鍵 ΒΝ) で表される。 なお、 以下の説明では簡単のため、
信号 S 6 =Header (暗号鍵 Β) 1 Encrypt i on (コンテンツ復号鍵 A , 暗号鍵 B) と表す。
記録信号生成装置 57は、 暗号化されたコンテンツと、 複数の暗号鍵 で暗号 化されたコンテンツ復号鍵 Aの組み合わせとを合成して記録信号を生成する。 よ リ具体的には、 記録信号生成装置 57は、 信号 S 4 =Encryption (コンテンツ, コンテンツ暗号鍵 A) と、 信号 S 6 =Header (暗号鍵 B) | Encryption (コンテ ンッ復号鍵 A, 暗号鍵 B) を結合し、 それにエラー訂正符号を付加したものを信 号 S 7として出力する。 よって、 図 1 1 Bに示すように、 信号 S 7は、 コンテン ッ暗号鍵 Aで暗号化したコンテンツ、 N個の暗号鍵 B i で暗号化されたコンテンツ 復号鍵 A及びヘッダ一にエラー訂正符号を追加した信号であり、
S 7 =Header (暗号鍵 B) | Encrypt i on (コンテンツ復号鍵 A , 暗号鍵 B) | Encryption (コンテンツ, コンテンツ暗号鍵 A) | E C C
で示される。 なお、 E C Cはエラー訂正符号である。
記録装置 5 8は、 生成された記録信号 S 7を光ディスク Dに記録し、 又は、 光 ディスクを製造するためのマスターディスクなどに記録信号 S 7をカツティング する) に記録する装置であり、 通常レーザ光源やレーザ発信器などを備える。
(2.2) コンテンッ再生装置
次に、 上述のようにしてコンテンツが記録された光ディスク Dからコンテンツ を再生するためのコンテンツ再生装置 60について説明する。 図 1 2はコンテン ッ再生装置 60の構成を示すブロック図である。 また、 コンテンツ再生装置 60 の各部の信号の内容を図 1 3 A〜 1 3 B及び図 1 4 A~ 1 4 Dに示している。 図 1 2において、 情報読取装置 6 1 は光ピックアップなどの装置であり、 光デ
25 イスク Dに記録されている情報を読み取って信号 S 1 1 を出力する。 信号 S 1 1 は、 図 1 3 Aに示すように、
S 1 1 =Header (暗号鍵 B) | Encrypt i on (コンテンツ復号鍵 A , 暗号鍵 B ) | Encryption (コンテンツ, コンテンツ暗号鍵 A) | E C C
で表される。
エラー訂正装置 62は、 入力された信号 S 1 1のエラー訂正を行う装置であり、 信号 S 1 1 中の E C Cに基づいてエラー訂正処理を実行する。 そして、 エラー訂 正後の信号を信号 S 1 2と信号 S 1 3に分けてそれぞれ鍵復号装置 64及びコン テンッ復号装置 6 5へ供給する。 信号 S 1 2は暗号鍵 で暗号化されたコンテン ッ復号鍵 Aのデータであり、 S 1 2 =Header (暗号鍵 B) | Encrypt i on (コンテ ンッ復号鍵 A, 暗号鍵 B) で示される。 一方、 信号 S 1 3はコンテンツ暗号鍵 A で暗号化されたコンテンッのデータであリ、 S 1 3 = Encrypt ion (コンテンッ, コンテンツ暗号鍵 A) で示される。
記憶装置 63は、再生装置が保有する複数の復号鍵 B1S B2、 ■ . '、 Β』、 BM— BMとそのヘッダ Header (B,) 、 Header ( B2) 、 ■ ■ ■、 Header (B』) 、 ■ ■ '、 Header (BM— ,) 、 Header ( BH) を保存しておく装置である。 なお、 ここでは記憶 装置 63は M個の復号鍵を保有していると仮定する。 また、 鍵管理機関は、 コン テンッ復号鍵 Aの暗号化用の暗号鍵 と再生を許可されている再生装置の保有す る復号鍵 Β』のうちの少なく とも 1つは次の関係が整理するように、 予め再生装置 に復号鍵 Bjを配布している :
P = Decryption (Encryption (任意のデータ P, 暗号鍵 B i) , 復号鍵 Bj) さらに、 ヘッダーについては、 上記の関係の暗号鍵 B, と復号鍵 Β」 に付加された ヘッダーについて次の関係が成立するようにヘッダーの値が決定されている : Header (暗号鍵 Β,) = Header (暗号鍵 Bj)
上記の関係が成立するように復号鍵 Bjとそのヘッダーを各再生装置に (再生装 置製造時に) 配布するのは、 上述の鍵管理機関であり、 その際にどの再生装置に どの復号鍵 Bjを配布するかの決定は、 上述の階層分割を伴う鍵管理方式のァルゴ リズムに従って行われる。 なお、 上述のアルゴリズム中の差分集合への鍵の割り 当てにおいて、 疑似乱数生成器が用いられる場合は、 コンテンツ再生装置 6 0の
26 記憶装置 63に保有されるのは復号鍵 B jそのものではなく、 復号鍵を計算するの に必要なラベル情報である。
記憶装置 63は、 図 1 4 Bに示すように、 復号鍵 | 復号鍵 B2 | ■ ■ ■ | 復号 鍵 BM | 復号鍵 BM と、 そのヘッダ一 Header (復号鍵 B | Header (復号鍵 B2) | ■ ■ ■ I Header (復号鍵 ΒΜ ) | Header (復号鍵 BM) を出力する。
鍵復号装置 6 は、 信号 S 1 2 = Header (復号鍵 B | Encryption (コンテンッ 復号鍵 A, 暗号鍵 B) と、 信号 S 1 4= (復号鍵 B, | 復号鍵 B2 | ' ■ ■ | 復号鍵 BM., | 復号鍵 BM) とそのヘッダ一 Header (復号鍵 B | Header (復号鍵 B 2) | ■■ ■ I Header (復号鍵 Β」) | ■ ■ ■ | Header (復号鍵 BM— | Header (復号鍵 BM) を 入力とし、 光ディスク Dから読み取った Header (暗号鍵 Β,) と再生装置が保有す る Header (復号鍵 Β」) がー致するかを調べ、 一致する時には復号鍵 Bj を用いて Encryption (コンテンツ復号鍵 A, 暗号鍵 Β を復号する。 つまり、 コンテンツ 復号鍵 A=DeGryption (Encryption (コンテンツ復号鍵 A, 暗号鍵 Β,) ,復号鍵 Β j) となる。 この処理を一致するヘッダ一の組み合わせが見つかるように i 及び j の組み合わせを変えて実行し、 図 1 4 Cに示すように信号 S 1 5 =コンテンツ復 号鍵 Aを出力する。 一方、 一致するヘッダーの組み合わせがない場合は、 再生不 可能として全ての処理を終了する。
なお、 前述のように記憶装置 63に復号鍵 Bjそのものではなく、 復号鍵を計算 するのに必要なラベル情報が保存されている場合は、 鍵復号装置 64がラベル情 報から復号鍵を計算した上で同様の処理を行えばよい。 こう して、 復号されたコ ンテンッ復号鍵 Aが信号 S 1 5としてコンテンツ復号装置 65へ供給される。 コンテンッ復号装置 65は、 図 1 4 Aに示す信号 S 1 3 =Encryption (コンテ ンッ, コ ンテンツ暗号鍵 A ) と、 図 1 4 Cに示す信号 S 1 5 = Decrypt i on (Encryption (コンテンツ復号鍵 A, 暗号鍵 Β!) , 復号鍵 Β」) =コンテンツ復号 鍵 Αを入力とし、 信号 S 1 5を用いて信号 S 1 3を復号し、 その結果、 Decryption (Encryption (コンテンツ, コンテンツ暗号鍵 A) , コンテンツ復号鍵 A) =コ ンテンッを信号 S 1 6として出力する。 再生装置 6 6はコン亍ンッ復号装置 6 5 によリ復号されたコンテンツを再生する。 こう して、 再生を許可された再生装置 のみによりコンテンッの再生が行われる。
27
(2.3) コンテンッ記録処理
次に、 光ディスク Dへのコンテンツ記録処理について図 1 5を参照して説明す る。 図 1 5はコンテンツ記録処理のフローチャートである。 まず、 複数存在する 再生装置の中で、 対象となる光ディスク Dの再生を許可する 1 つ以上の再生装置 を選択する (ステップ S 1 ) 。 この処理は、 通常は鍵管理機関により行われるが、 著作権者、 ディスク製造工場などの情報送信者が行う場合もある。
次に、 ステップ S 1 で選ばれた、 再生を許可する再生装置全てについて、 少な く とも 1 つは復号鍵が存在し、 かつ、 再生を許可されていない装置については 1 つも復号鍵が存在しないような復号鍵の集合のうち最小となる集合を選択する (ステップ S 2 ) 。
次に、 コンテンツ復号鍵 Aを決定し、 ステップ S 2で選択された復号鍵の集合 に属する全ての復号鍵 Β」を、 P =DeGryption (EnGryption (任意のデータ P , 暗 号鍵 Β;) , 復号鍵 Β」) を満たす暗号鍵 B, を用いて暗号化し、 Encryption (コン テンッ復号鍵 A, 暗号鍵 Bt) を求める (ステップ S 3) 。 通常、 この処理も鍵管 理機関で行われるが、 情報送信者が行う場合もある。
次に、 ステップ S 3で選択されたコンテンッ暗号鍵 Aを用いてコンテンツを暗 号化し、 Encryption (コンテンツ, コンテンツ暗号鍵 A) を求める (ステップ S 4) 。 この処理は、 通常、 情報送信者が行う。
次に、 ステップ S 3及び S 4で求められた Encryption (コンテンツ復号鍵 A, 暗号鍵 Β;) 及び Encryption (コンテンツ, コンテンツ暗号鍵 A) に対してエラ一 訂正符号を付加する (ステップ S 5) 。 この処理は、 情報送信者である著作権者、 ディスク製造工場などで行われる。
そして、 ステップ S 3、 S 4及び S 5で計算された Encryption (コンテンツ復 号鍵 A, 暗号鍵 B 及び Encryption (コンテンツ, コンテンツ暗号鍵 A) 並びに エラー訂正符号を光ディスク Dに記録する (ステップ S 6) 。 この処理はデイス ク製造工場など、 情報送信者により行われる。 こう して、 暗号化されたコンテン ッ及びその復号鍵の情報が光ディスク Dに記録される。
次に、 上記ステップ S 2における復号鍵の集合の選択処理について図 1 6を参 照して説明する。 図 1 6は、 図 1 5におけるステップ S 2の処理、 即ち、 再生を
28 許可しない再生装置が与えられたとき、 対象ディスクの再生を許可された再生装 置の全てについて 1 つの復号 (暗号) 鍵が存在し、 かつ、 再生を許可されていな い装置については 1 つも復号 (暗号) 鍵が存在しないような復号 (暗号) 鍵の集 合のうち、 最小となる集合を選択する処理を詳細に示すフローチヤ一トである。 まず、 複数の再生装置をそれぞれリーフに割り当てた 2b個の 2分木から、 無効 化したい (再生を許可しない) 再生装置の存在しない 2分木について、 そのル一 卜に割り当てられた暗号鍵を暗号鍵 B,として選択する (ステップ S 2 1 ) 。 この とき、 無効化したい再生装置の存在しない 2分木は除去し、 その後の処理の対象 から除外する。
次に、 2分木が存在するか否かを判定する (ステップ S 22) 。 存在する場合、 無効化したい再生装置又は無効化したい再生装置を含む再生装置の集合の割り当 てられているリーフ (この 2種類のリーフをまとめて 「無効化リーフ」 と呼ぶ。 ) を含む任意の部分木 Thを 1つ選び、 S Th (R.) を構成する (ステップ S 23) 。 ここで、 S Th ( ) とは、 部分木 Thのルートと無効化リーフを結ぶ最短パス上の ノードのみで構成される部分木のことである。 また、 ここで選択される部分木 Th はどの 2分木中に含まれていても構わない。 つまり、 ステップ S 2 1 で除去され なかった全ての 2分木が対象となっている。
次に、 S Th ( ) 中の 2つの無効化リーフ v ,、 ν」 を、 それらの共通ノード V 以下に他の無効化リーフが存在しないように選択する (ステップ S 24) 。 ここ で共通ノードとは、 2つの無効化リーフからルートへのパスの共通部分に存在す るノ一ドの中で無効化リーフとの距離が最小となるノ一ドのことである。 Vの 2 つの子ノードの中で、 Vと V ,のパス上に存在する子ノードを v k、 Vと V ,のパス 上に存在する子ノードを V ,とする。 (無効化リーフが S Th ( ) 中に 1 つしか存 在しない場合、 V i= V j、 V V i V kとし、 Vは S Th ( _) のルートとなつてい る。
次に、 V v kならば、 差分集合 Sk, iに割リ当てられた暗号鍵を の 1 つとし て選択する (ステップ S 25) 。 同様に、 V ,≠ V j の場合も差分集合さい に割り 当てられた暗号鍵を の 1つとして選択する。 差分集合への鍵の割り当てに疑似 乱数生成器を用いている場合は、 集合 Sk、 に割り当てられたラベルから、 前述
29 の方法により差分集合 Sk,i、 に割り当てられている暗号鍵を計算し、 暗号鍵 を の 1つとして選択する。
次に、 ノード Vより下に位置する部分木 Th中のノードを全て除去し、 Vを無効 化リーフとする (ステップ S 26) 。 次に、 S Th ( R.) 内のルートノードが無効 化リーフであるか否かを判定し (ステップ S 27) 。 ルートノードが無効化リ一 フである場合は、 ルートノ一ド以外に無効化リーフを含む他の部分木 Thが全ての 2分木中に存在するか否かを判定する (ステップ S 28) 。 存在する場合、 処理 はステップ S 23に戻り、 ルートノ一ド以外に無効化リーフを含む他の部分木 Th を選択し、 同様の処理を繰 y返す。
—方、 ステップ S 27で S Th ( ) 内のルートノードが無効化リーフでないと 判定された場合、 処理はステップ S 24へ戻り他の無効化リーフを選択して同様 の処理を行う。
こう して、 ルートノード以外に無効化リーフを含む他の部分木 Thが全ての 2分 木中に存在しなくなったとき (ステップ S 2 8 ; No) 、 処理は終了する。 コンテ ンッ復号鍵 Aの暗号化に用いられる暗号鍵 B,の集合は、 ステップ S 2 1及びステ ップ S 25で選択され (又はラベルから計算) された暗号鍵となる。
(2.4) コンテンッ再生処理
次に、 光ディスク Dからのコンテンツ再生処理について説明する。 図 1 7はコ ンテンッ再生処理のフローチャートである。 まず、 光ディスク Dから光ピックァ ップなどの読取装置 6 1 により記録情報が読み取られる (ステップ S 3 1 ) 。 次 に、 ステップ S 3 1で得られた信号に対してエラー訂正装置 62によりエラ一訂 正を行う (ステップ S 3 2) 。
次に、 光ディスク D中に記録されている N個のヘッダ一 Header (暗号鍵 Β,) の 中に、 再生装置が保有する Μ個の復号鍵 Bjのヘッダー Header (復号鍵 Β』) の少な く とも 1 つは一致するものが存在するか否かを調べる (ステップ S 3 3 ) 。 存在 する場合、 その再生装置は再生を許可されたものであることになリ、 一致した光 ディスク D側のヘッダー Header (暗号鍵 Β,) に対応する Encryption (コンテンツ 復号鍵 A, 暗号鍵 Β,) を、 再生装置側のヘッダー Header (復号鍵 Β』) に対応する 復号鍵 Β ,で復号する(ステップ S 34)。つまリ、コンテンツ復号鍵 A = Decrypt ion
30
(Encryption (コンテンツ復号鍵 A, 暗号鍵 Β,) , 復号鍵 Β』) という処理を行い、 コンテンッ復号鍵 Αを得る。
次に、 ステップ S 3 4で復号されたコンテンツ復号鍵 Aを用いて、 光ディスク D上の暗号化コンテンツである Encryption (コンテンツ, コンテンツ暗号鍵 A) を復号する (ステップ S 3 5 ) 。 つまり、 コンテンツ = Decryption (Encryption (コンテンツ, コンテンツ暗号鍵 A) , コンテンツ復号鍵 A) という処理を行い、 コンテンツの復号を行う。 そして、 復号されたコンテンツを再生する (ステップ S 3 6 ) 。
なお、 ステップ S 3 3で一致するヘッダーが見つからない場合は (ステップ S 3 3 ; No) 、 その再生装置による再生が許可されていないことになリ、 コンテン ッの再生は行われず、 処理は終了する。
(2.5) 差分集合への暗号鍵の割り当てに疑似乱数生成器を使用する場合 次に、 本発明による階層分割を伴う鍵管理方式において差分集合へ暗号 (復号) 鍵を割り当てる際に疑似乱数生成器を用いる場合の処理を図 1 8のフローチヤ一 トを参照して説明する。
まず、 2b個の各 2分木のルートに独立な値をもつ暗号 (復号) 鍵を割り当てる (ステップ S 4 1 ) 。 次に、 2b個の 2分木中に含まれる全てのノードに独立な値 を持つラベルを割り当てる (ステップ S 4 2 ) 。 但し、 1台の再生装置のみが割 リ当てられているノード (リーフ) は除外される。 そして、 任意の部分木 Thを選 択し (ステップ S 43 ) 、 選択された部分木 Th中の任意のノード V ,をルートとす る部分木 Th.,を選択する (ステップ S 4 4) 。
次に、ステップ S 44で選択された部分木 Th,iのルートノードに割り当てられた ラベル LABEL, (ステップ S 4 2で割り当てられている) を用いて、 差分集合^ _に* に暗号 (復号) 鍵 L,,*を割り当てる (ステップ S 4 5 ) 。 ここで、 *は部分木 Th† i 中の任意のノード V *を表す。 (但し、 Th.iのルートノード V iは除く) 。 各差分集 合への暗号 (復号) 鍵の割り当ては以下のように行う。
始めに疑似乱数生成器 Gの入力をラベル LABEL,,*としたとき、その出力を 3等分 した左側部分を G LABELL*)、中央部分を GM(LABELi.*)、右側部分を G R (LABEL^*) で表す。 このとき各出力を以下のように定義する。
31
GL (LABEL,, J 入力ラベル LABEL,,*の割り当てられたノードの左側の子ノ 一ドに割り当てるラベル
GH (LABEL,,,) 入力ラベル LABEL;,*の割り当てられたノードに割り当てる 暗号鍵 .* (これが差分集合^ に割り当てられる暗号 (復号) 鍵になる)
GR (LABELS) 入力ラベル LABEL!.*の割り当てられたノードの右側の子ノ
-ドに割リ当てるラベル
部分木丁 のルートノードに割り当てられたラベル LABEL;からその 2つの子ノ 一ドのラベルを疑似乱数生成器 Gを用いて割リ当てる。 この処理を次は子ノ一ド のラベルを入力として行い、 孫ノードのラベルを求める。 以下、 同様にして部分 木 Th.i中の全てのノードにラベルを割リ当てることができる。
最後に、部分木 ,,中の各ノードに割り当てられたラベル LABEL;,*を入力として Li.*= GM (LABELS) を計算する。 この値が差分集合 ,.*に割り当てられる暗号 (復 号) 鍵である。
次に、 ステップ S 43で選択された部分木 Th中の部分木 Th,iで、 ステップ S 4 4で選択されていない部分木が存在するか否かを判定する (ステップ S 46 ) 。 存在する場合はステップ S 44へ戻り、未だ選択されていない部分木 Th,iを選択し、 同様の処理を行う。 存在しない場合は、 次に、 2b個の 2分木中に存在する全ての 部分木 Thの中で、 ステップ S 43で選択されていない部分木 Thが存在するか否か を判定する (ステップ S 47 ) 。 存在する場合は、 ステップ S 43に戻り、 まだ 選択されていない部分木 Thを選択し、 同様の処理を行う。 一方、 存在しない場合 は処理を終了する。
以上述べたように、 本実施例においては、 2分木を複数のレイヤに分割し、 分 割された各部分木に対して The Subset Difference Methodを適用するので、 記録 媒体中の鍵情報量の増加を押さえつつ、 再生装置の保有しておく復号鍵などの秘 密情報を大幅に減少させることができる。
また、 The Subset Difference Method において、 各差分集合への復号 (暗号) 鍵の割リ当てに疑似乱数生成器を用いる場合、 再生装置側で保有しているラベル 情報から復号鍵を求めるのに最大 log2 (N) + 1 回の (疑似乱数生成器の出力を 求めるという)演算を必要としていたが、本方式では最大 d + 1 回で十分となる。
32 なお、 dは部分木 Thの高さである。 よって、 ラベル情報から復号鍵を効率的かつ 迅速に得ることが可能となる。 産業上の利用可能性
本発明は、 映画、 音楽などの著作物であるコンテンツを暗号化し、 ネッ トヮー クその他の情報通信路を介して配布する環境において、 不正な処理を行った者な どの特定の受信者を無効化することが可能なシステムを提供することができる。