JP2004120008A - 鍵管理システム - Google Patents
鍵管理システム Download PDFInfo
- Publication number
- JP2004120008A JP2004120008A JP2002276306A JP2002276306A JP2004120008A JP 2004120008 A JP2004120008 A JP 2004120008A JP 2002276306 A JP2002276306 A JP 2002276306A JP 2002276306 A JP2002276306 A JP 2002276306A JP 2004120008 A JP2004120008 A JP 2004120008A
- Authority
- JP
- Japan
- Prior art keywords
- key
- information
- encryption
- content
- decryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
【課題】記録媒体中の鍵情報量の増加を押さえ、再生装置の保有すべき秘密情報量を減少することが可能な木構造を用いた鍵管理方式、および、システムの提供。
【解決手段】情報提供者は、第1の暗号鍵により暗号化コンテンツを生成し、第1の暗号鍵に対応する第1の復号鍵を、第2の暗号鍵により暗号化して暗号化鍵情報を生成する。暗号化コンテンツ及び暗号化鍵情報を記録媒体等の形態で情報受信者に提供する。情報受信者は、予め第2の暗号鍵に対応した第2の復号鍵を生成する為の情報を有し、それを用いて第1の復号鍵を取得し、コンテンツを復号化する。第1の復号鍵及び第2の復号鍵は、情報受信者をリーフに割り当てた木構造を利用した鍵管理方式に基づいて情報受信者に配布する。上記木構造を複数の階層に分割して複数の部分木を規定し、部分木単位で鍵情報の割り当てを行うことで、情報受信者が保有すべき鍵情報の情報量を減少させることができる。
【選択図】 図1
【解決手段】情報提供者は、第1の暗号鍵により暗号化コンテンツを生成し、第1の暗号鍵に対応する第1の復号鍵を、第2の暗号鍵により暗号化して暗号化鍵情報を生成する。暗号化コンテンツ及び暗号化鍵情報を記録媒体等の形態で情報受信者に提供する。情報受信者は、予め第2の暗号鍵に対応した第2の復号鍵を生成する為の情報を有し、それを用いて第1の復号鍵を取得し、コンテンツを復号化する。第1の復号鍵及び第2の復号鍵は、情報受信者をリーフに割り当てた木構造を利用した鍵管理方式に基づいて情報受信者に配布する。上記木構造を複数の階層に分割して複数の部分木を規定し、部分木単位で鍵情報の割り当てを行うことで、情報受信者が保有すべき鍵情報の情報量を減少させることができる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、木構造を用い、特定の受信者の無効化機能を有する鍵管理方式に関する。
【0002】
【従来の技術】
映画、音楽などの著作物であるコンテンツの著作権を保護するために、情報を利用してコンテンツを暗号化して提供することが行われている。そのようなシステムの一例では、再生装置には複数のデバイス鍵を与え、記録媒体には暗号化されたコンテンツと、再生を許可された再生装置のみがコンテンツの復号鍵を生成できるようにした鍵生成情報とを記録する。再生を許可された再生装置は、鍵生成情報からコンテンツの復号鍵を生成し、その復号鍵を使用してコンテンツを復号して再生する。一方、再生を許可されていない(無効化された)再生装置は、コンテンツの復号鍵を生成できないので、暗号化されているコンテンツを再生することはできない。
【0003】
このようなシステムで、鍵情報を管理するための手法として木構造を用いた鍵管理方式が提案されており、その例として「The Complete Subtree Method」、「The Subset Difference Method」などが知られている(例えば非特許文献1参照。)。これらの方式では、コンテンツの復号鍵を生成するための鍵生成情報が不正に暴露されたり漏洩した場合には、その鍵生成情報を無効化するための処理が可能となっている。
【0004】
また、上記のような方式に基づいてデジタルコンテンツの保護を行う方法も提案されている(例えば非特許文献2参照。)。
【0005】
【非特許文献1】
Dalit Naor, Noni Naor, and Heff Lotspiech,”Revocation and Tracing Schemes for Stateless Receivers”, Lecture Notes in Computer Science, Vol.2139, pp.41−62, 2001
【非特許文献2】
中野稔久、他3名、“デジタルコンテンツ保護用鍵管理方式−木構造パターン分割方式−”、2002年暗号と情報セキュリティシンポジウム講演論文集、2002年2月1日
【0006】
【発明が解決しようとする課題】
上述のThe Subset Difference Methodにおいては、受信者は自分の属する全ての差分集合に割り当てられた鍵を保有しておかなければならないため、受信者側に多くの記憶容量を必要とする。疑似乱数生成器を用いることでこの情報量を削減することはできるのであるが、それでもThe Complete Subtree Methodと比較すると10倍以上の情報記憶容量が要求される。一方、The Complete Subtree Methodについては、受信者側に記憶すべき情報量は少ないが、受信者へ伝送される(情報の伝送に記録媒体を利用する場合には、記録媒体に記録される)鍵情報量が大きくなりすぎてしまう。本発明が解決しようとする課題には、上記のものが一例として挙げられる。
【0007】
【課題を解決するための手段】
請求項1に記載の発明は、鍵管理システムにおいて、複数の情報受信者をリーフに割り当てた木構造を規定する手段と、前記木構造を所定階層毎に分割して複数の部分木を規定する手段と、前記複数の部分木の各部分木に対して鍵情報の割り当てを行う手段と、を有することを特徴とする。
【0008】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態について説明する。まず、鍵管理方式について基礎的な説明を行い、続いて本発明の方式を説明する。
【0009】
(1.1)受信者の無効化機能を有する鍵管理方式
送信者が多数の受信者に対して同一の情報を伝送するシステムにおいて、信頼できる鍵管理機関が、あらかじめ全ての受信者に伝送情報を復号するための秘密情報を配布しておき、その秘密情報を持たない受信者が送信者からの情報を復号できないように、送信者側で情報を暗号化して伝送する方法がある。この場合に問題となるのは、全ての受信者が同一の秘密情報を保有している場合、悪意ある受信者が自分の保有する秘密情報を1回公開してしまえば、その後に伝送される情報は誰にでも復号が可能になってしまうことである。
【0010】
この問題の対策として、鍵管理機関が受信者毎に異なる秘密情報を配布し、特定の受信者の秘密情報が漏洩した場合、その受信者の保有していた秘密情報を用いても伝送された情報を復号できないようにする手法、即ち、受信者の無効化機能を有する鍵管理方式がある。本発明はそのような鍵管理方式を扱う。
【0011】
ここでは、情報の伝送は特定の送信者から多数の受信者への片方向伝送のみであり、また受信者に最初に秘密情報(復号鍵等)を割り当てる以外は、受信者の保有する秘密情報を一切変更できないようなアプリケーションを想定している。
【0012】
受信者の無効化機能を有する鍵管理方式を適用した情報配信システムの1つのモデルを図1(a)に示す。図示のように、情報配信システムは、鍵管理機関1、情報送信者2及び情報受信者3の3つの要素から構成される。以下、各要素について説明する。
【0013】
・鍵管理機関
鍵管理機関1は、情報送信者2が伝送する伝送情報6(暗号文)を復号するための秘密情報(暗号文復号用鍵4aなど)を各受信者に割り当てる。また、鍵管理機関1は、伝送情報6を復号不可能にしたい受信者(今後、ある特定の受信者に対して、伝送される情報を復号できないようにすることを「受信者の無効化」と呼ぶ)の集合から、前記集合以外の受信者のみが復号できるような鍵情報4bを生成し、伝送情報6を暗号化するための鍵(暗号化用鍵情報5)とあわせて情報送信者への配送も行う。
【0014】
ここで各受信者に割り当てる秘密情報(復号用鍵4aなど)と伝送情報6の暗号化に用いられる鍵(暗号化用鍵情報5)の生成・保管・配送は安全に行われるものと仮定する。
【0015】
・情報送信者
情報送信者2は、鍵管理機関1から配送された、伝送情報の暗号化用鍵情報5を用いて伝送情報6を暗号化し、無効化されていない受信者のみが復号できる鍵情報4bと一緒に伝送情報6(暗号文)を受信者に伝送する。
【0016】
・情報受信者
無効化されていない受信者については、伝送情報6(暗号文)を受信したとき、受信者が持つ秘密情報(暗号文復号用の鍵4a等)を使って受信した鍵情報4bを復号し、復号された鍵を用いて暗号文から伝送情報6を復号する。逆に無効化されている受信者については、そのような受信者が複数結託しても、伝送情報に関して何の情報も得られない。また、ここでは多数の受信者の存在を想定している。
【0017】
以下、上記構成要素について詳しく説明する。
【0018】
Nを全ての受信者の集合とし、その要素数を|N|=Nとする。Nの部分集合Rを無効化したい受信者の集合とし、その要素数を|R|=rとする。受信者の無効化機能を有する鍵管理方式の目的は、鍵管理機関(又は情報送信者)が受信を許可した受信者、つまりRに含まれない全ての受信者u∈N\Rが伝送される情報を復号でき、逆に受信を許可されていないRに含まれる受信者全てが結託しても全く伝送情報を得られないようにすることである。
【0019】
(a)鍵管理機関
(i)初期設定
受信者全体の集合Nの部分集合S 1、S 2、・・・、S w(∀j、S j⊆N)を定義する。各S jには暗号(復号)鍵Ljが割り当てられる。ここで各Ljは一様に分布しており、互いに独立な値を割り当てるのが望ましい。各受信者(受信装置)uには、秘密情報Iuを割り当てる。ここでS jに含まれる全ての受信者u∈S jが、自分に割り当てられた秘密情報Iuから、自分の属する部分集合S jに割り当てられた復号鍵Ljを求められるように秘密情報Iuを割り当てなければならない。また、S jに含まれない全ての受信者u∈N\S jが結託しても復号鍵Ljを求めることができないように秘密情報Iuを割り当てなければならない。
【0020】
(ii)鍵情報生成
(1)伝送情報Mの暗号化、復号化に用いる鍵(セッション鍵)Kを選ぶ。
【0021】
(2)無効化する受信者の集合Rの補集合N\Rに属する受信者u∈N\Rをいくつかの部分集合S i1、S i2、・・・、S imに分割する。
【0022】
【数1】
【0023】
ここで、初期設定で上記部分集合に割り当てられてた暗号鍵をそれぞれLi1、Li2、・・・Limとする。
【0024】
(3)暗号鍵Li1、Li2、・・・Limを用いてセッション鍵Kをm回暗号化して式(1−2)を生成、セッション鍵Kと一緒に情報送信者に配送する。
【0025】
【数2】
【0026】
ここで、情報送信者へのセッション鍵の配送は安全に行われるものと仮定する。また、Eencは暗号化アルゴリズムである。本システムで用いられる暗号、復号化アルゴリズムは2種類あり、以下にまとめる(ただし、2つのアルゴリズムに全く同じものを使用しても構わない)。
【0027】
・伝送情報Mの暗号化アルゴリズムFenc、復号化アルゴリズムFdec
セッション鍵Kを用いて暗号文CK=Fenc(M、K)を生成する。高速性が要求される。
【0028】
・セッション鍵暗号化アルゴリズムEenc、復号化アルゴリズムEdec
セッション鍵の配送に用いる。Fencよりも暗号化アルゴリズムの安全性が要求される。
【0029】
(b)情報送信者
セッション鍵Kと特定の受信者のみが復号できる鍵情報を鍵管理機関から受け取り、セッション鍵Kを鍵として暗号化アルゴリズムFencを用いて伝送情報Mを暗号化して、暗号文
【0030】
【数3】
【0031】
を伝送する。なお、式(1−3)の[ ]内の部分をFenc(M、K)のヘッダーと呼ぶことにする。
【0032】
(c)情報受信者
受信者uは、情報送信者により暗号化された次の暗号文を受信する。
【0033】
【数4】
【0034】
(1)u∈S ijであるようなijを探索する。(u∈Rの場合、存在しない。)
(2)自身の保有する秘密情報IuからLijを求める。
【0035】
(3)K=Edec(Cj、Lij)を求める。
【0036】
(4)M=Fdec(CK、K)を求める。
【0037】
上記鍵管理方式を実現するアルゴリズムとして以下の方式がある。
・The Logical Key Hierarchy Method
・CPRM Common Cryptographic Key Management
・The Complete Subtree Method
・The Subset Difference Method
・Tree Pattern Division Method
上記方式の違いとしては、(1) 受信者の部分集合S 1、・・・、S wの定義、(2) 各部分集合に対する鍵の割り当て方法、(3) 受信を許可する(無効化しない)受信者の集合N\Rの分割方法、(4)各受信者uが行う自分の属する部分集合S jの探索方法と、Iuから鍵LSjの求め方等が挙げられる。
【0038】
各方式は以下の3つの観点から評価される。
【0039】
・伝送情報の量
暗号文Fenc(M、K)に付加されるヘッダー量。一般にN\Rを分割した部分集合の数mに比例する。
【0040】
・受信者が保有しておく秘密情報Iuの量
復号用の鍵等の秘密情報を受信者がどれだけ保持しておかなければならないか。
【0041】
・受信者が伝送された情報を復号するのに要する演算量
(1.2) 基礎となる方法(The Subset Difference Method)
(1.2.1) 部分集合S 1、・・・S wの定義
最初に受信者全体の集合Nの部分集合S 1、・・・S wを定義する。この部分集合に対して暗号(復号)鍵、又は復号鍵を導けるような情報L1、・・・Lwを割り当てることになる。N枚のリーフを持つ2分木のリーフに各受信者を割り当てる(ここでNは2の冪であるとしている。)。
【0042】
受信者の部分集合を次のように表す。2分木中の任意のノードvi(ルートとリーフもノードに含まれる。)をルートとする部分木の全てのリーフに割り当てられた受信者の集合をS iで表す。任意のノードvi以下のリーフに割り当てられた受信者の集合S iとノードviをルートとする部分木中の(ルートを除く)ノードvjをルートとする部分木の全てのリーフに割り当てられた受信者の集合S j⊂S iについて、S iの要素からS jの要素を引いた差分集合をS i,jとする。つまり、集合S iに含まれる受信者のうち、集合S jに含まれていない受信者の集合をS i,jとする。図2はS i,jを示している。この差分集合に対して1つの鍵Li,jを割り当てる。
【0043】
(1.2.2) N\Rの分割方法
次に受信を許可する(無効化しない)受信者の集合N\Rを、上記で定義された差分集合S i1,j1、S i2,j2、・・・、S imjmに分割する方法を説明する。2分木のルートと無効化したい受信者に相当する各リーフを結ぶ最短のパス上のノードのみで構成される部分木ST(R)を考える(このような部分木はRから一意に構成される)。ST(R)については子ノードの存在しないノードをリーフと呼ぶことにする。以下のアルゴリズムをST(R)がルートのノードのみになるまで繰り返し、N\Rを構成する差分集合を選択する。
【0044】
(1)2つのリーフからルートへのパスの共通部分に存在するノードの中で、リーフとの距離が最小となるノードを2つのリーフの最小共通ノードと呼ぶことにする。ST(R)のリーフvi、vjを、それらの最小共通ノードv以下に他のリーフが存在しないように選ぶ。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとvjのパス上に存在する子ノードをvlとする。(リーフがST(R)中に1つしか存在しない場合、vi=vj、v=vl=vkとして、vをST(R)のルートと考えればよい。)
(2)vk≠viならば、N\Rを構成する差分集合にS k,iを加える。vl≠vjならばN\Rを構成する差分集合にS l,jを加える。
【0045】
(3)vより下に位置するノードを全て除去する。これによりvがリーフになる。
【0046】
上記アルゴリズムを用いることにより、受信者の集合N\Rは、無効化したい受信者数|R|=rのとき、最大 2r−1の差分集合に分割される。
【0047】
(1.2.3)部分集合S 1、・・・S wへの鍵の割り当て方法
次に、各差分集合に対する鍵の割り当て方法について説明する。各差分集合に対して、一様に分布しており、互いに独立な値を持つ鍵を割り当てる。
【0048】
(1.2.4)受信者への秘密情報の割り当て方法
各受信者には自分の属する差分集合全ての鍵を配布しておかなければならない。これは受信者側に非常に多くの記憶量を必要とする。受信者uは、自分の属する各部分木Tkに対して(ここでTkの変数kは部分木の高さを表している。)、部分木Tk中に存在するノードの中で、Tkのルートからuのパス上に存在するものを除く全てのノードの数に相当する鍵を保有しなければならない。受信者uの属する部分木の数はlog2N個存在し、各部分木の高さは1≦k≦log2Nであるから、受信者が保有しなければならない鍵の数は式(2−1)のようになる。
【0049】
【数5】
【0050】
(1.2.5)部分集合S 1、・・・、S wへの鍵の割り当て方法(擬似乱数生成器を用いる場合)
受信者が保有しておく鍵を減らすため、各差分集合S i,jに直接鍵を割り当てるのではなく、部分集合S iに対して1つのラベルを割り当て、差分集合S i,j(∀j、S j⊂S i)に割り当てる鍵Li,jが、部分集合S iに割り当てられたラベルを用いて導けるようにしておく。このとき、差分集合S i,j内に存在する受信者のみが鍵Li,jを導けるようにしなければならない。以下では、擬似乱数生成器を用いて、上記方法を実現する方法を示す。
【0051】
G:{0,1}n → {0,1}3n を入力長の3倍の長さを出力する擬似乱数生成器とする。擬似乱数生成器Gの入力をSとしたとき、出力される値を3等分した左側部分をGL(S)で表し、右側部分をGR(S)、中央部分をGM(S)で表す。また、Gの入力として乱数を与えたときに出力される値と、出力と同じ長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、攻撃者は、有意な確率で両者を区別できないといった特性をGは満たしていなければならない。
【0052】
ノードviをルートとする部分木Tiを考える。ノードviにラベル LABELiを割り当てる(簡単のため任意の部分木のリーフに割り当てられた受信者の集合へのラベルの割り当てを、その部分木のルートノードにラベルを割り当てると表現する。つまり上記表現は次のようになる。「部分木Ti中のリーフに割り当てられた受信者の集合S iにラベルLABELiを割り当てる。」)。LABELi,jを、部分木Ti中のノードvjのラベルとする(割り当てられるラベルが多変数のパラメータを持つ(この場合iとjの2変数)場合、それは差分集合に対して割り当てられたラベルを示している。このとき、LABELi,jは vjをルートとする部分木のリーフに割り当てらた受信者の集合S jに割り当てられるのではなく、S iに含まれ、S jには含まれていない受信者の集合(差分集合)S i,jに対して割り当てられる。)。LABELi,jが差分集合S i,jに割り当てられるラベルである。
【0053】
LABELi,jを部分木Tiのルートviに割り当てられたラベルLABELiから擬似乱数生成器Gを用いて以下の導出規則により導く。ラベルを擬似乱数生成器の入力としたとき、その出力を次のように定義する。GL−左側の子ノードのラベル、GR−右側の子ノードのラベル、GM−入力ラベルの割り当てられたノードに割り当てる暗号(復号)鍵。この導出規則に拠れば、部分木Ti中のある親ノードにラベルSが割り当てられたとき、その2つの子ノードのラベルは、GL(S)、GR(S)が割り当てられる。これより、viからvjに至るパス上のノードに割り当てるラベルをGを用いて順次求めることで、viに割り当てられたラベルLABELiから、部分木Ti中のノードvjのラベル LABELi,jを求めることができる。
【0054】
最後にLABELi,jをGの入力としたときの出力の中央部分GM(LABELi,j)を、差分集合S i,jに割り当てる暗号(復号)鍵Li,jとして用いる。図3(a)に部分木Ti中のノードvjに割り当てるラベルと暗号(復号)鍵の生成方法を示す。
【0055】
このような方法を用いれば、部分木中のあるノードのラベルが与えられたとき、その子孫ノード全てのラベルと暗号(復号)鍵を計算することができる。逆に、あるノードvjの先祖ノードのラベルをvjから求めることはできない。さらに、ノードvjの全ての子孫ノードのラベル(ただし、vj自身のラベルは含まない)から暗号(復号)鍵Li,jを求めることはできない。部分木TiのルートのラベルLABELiを与えられたとき、差分集合S i,jに割り当てられる暗号(復号)鍵Li,jを計算するのに擬似乱数生成器Gを最大でlog2N+1回用いる。
【0056】
(1.2.6)受信者への秘密情報の割り当て方法(擬似乱数生成器を用いる場合)
各受信者uが保有する秘密情報Iuの割り当て方法について説明する。受信者uは、自分の属する各部分木Tiに対して、Tiのルートノードviと、部分木Ti中のノードでuの先祖ノードでない全てのノードviにより決定される差分集合Si,jに割り当てられた暗号(復号)鍵Li,jを計算できなければならない。部分木Tiのルートノードviからuへのパスを考え、そのパスに直接ぶら下がるノードをvi1、vi2、・・・vikとする(図2(b)参照)。つまり、それらはパスに隣接するノードの中で、uの先祖ノードでないノードである。部分木Ti中でuの先祖でない任意のノードviは、これらのノードvi1、vi2、・・・、vikいずれかの子孫ノードである。ゆえに、受信者uがIuとして、vi1、vi2、・・・、vikに割り当てられたラベルを保有しておけば、最大log2N+1回擬似乱数生成器Gを用いて、部分木Ti中でパス上に存在しない任意ノードvijに割り当てられた復号鍵Li,jを計算することができる。
【0057】
受信者uを含む高さkの部分木Ti中に、受信者uが保存しておかなければならないラベルはk個あるから、これをuを含む各部分木について考えると、受信者uがあらかじめ保有しておかなければならない復号鍵(ラベル)の数は式(2−2)のようになる。
【0058】
【数6】
【0059】
式(2−2)で1が足されているのは、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0060】
(1.2.7)複数の2分木を用いる方法
さらに受信者uが保有する秘密情報Iuを減らす場合は、伝送情報Mの量とのトレードオフとなる。一つの方法として、2分木を高さの低い木に限定して複数用いる方法がある。木構造においてノードの位置する各層をレイヤと呼び、ルートの位置する層から順番に Layer(0)、Layer(1)、・・・と定義する。このとき、受信者をリーフに割り当てられた2分木を、Layer(b) に存在するノードをルートとする2b個の2分木に分割し、分割された2分木に対して The Subset Difference Method を適用する。このとき、Layer(0)〜Layer(b−1)に存在するノードは使用しない。
【0061】
これにより、受信者が保有しておく情報量Iuを式(2−3)のように減らすことができる。しかし、伝送情報Mの量(無効化しない受信者をカバーする部分木の数)は、無効化したい受信者数を|R|=rとすると最大で2b+2r−1と増加する。
【0062】
【数7】
【0063】
(1.3)本実施形態による方法(The Layer Division Subset Difference Method)
(1.3.1)部分集合S 1、・・・、S wの定義
最初に受信者全体の集合Nの部分集合S 1、・・・S wを定義する。この部分集合に対して暗号(復号)鍵、又は復号鍵を導けるような情報L1、・・・Lwを割り当てることになる。N枚のリーフを持つ2分木のリーフに各受信者を割り当てる(ここでNは2の冪であるとしている。)。木構造においてノードの位置する各層をレイヤと呼び、ルートの位置する層から順番に Layer(0)、Layer(1)、・・・と定義する。リーフの存在する層は Layer(log2N)になる。図4に示すように2分木をLayer(0)〜Layer(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は
【数8】
個存在することになる。各部分木
【数9】
を、リーフに受信者を割り当てた2分木と考え、The Subset Difference Methodにおいて定義された差分集合を部分集合S 1、・・・S wとして定義し、暗号(復号)鍵L1、・・・Lwを割り当てる。(実際には、部分木Thのリーフは、s=(log2N)/d−1の場合(MacroLayer((log2N)/d−1)中の部分木)を除いて、全体の2分木で見た場合ただのノードであり、受信者が割り当てられているわけではない。そこで、ある任意の部分木Thにおけるリーフには、そのリーフに対応する全体の2分木中のノード以下に存在する全てのリーフに割り当てられた受信者の集合が割り当てられていると考える。)。
【0064】
部分木Th中の任意のノードviをルートとする部分木Th,iの全てのリーフに割り当てられた受信者の集合をS iで表す。ノードvi以下のリーフに割り当てられた受信者の集合S iとTh,i中の(ルートを除く)ノードvjをルートとする部分木Th,jのリーフに割り当てられた受信者の集合S j⊂S iについて、S iの要素からS jの要素を引いた差分集合をS i,jとする。つまり、集合S iに含まれる受信者のうち、集合S jに含まれていない受信者の集合をS i,jとする。図5はS i,jを示している。この差分集合に対して1つの暗号(復号)鍵Li,jを割り当てる。
【0065】
(1.3.2)N\Rの分割方法
次に受信を許可する(無効化しない)受信者の集合N\Rを、上記で定義された差分集合S i,jに分割する方法を説明する。無効化したい受信者を割り当てられているリーフ、または無効化したい受信者を1つでも含むような受信者の集合を割り当てられているリーフを含む全ての部分木Thについて以下の処理を行う。
【0066】
無効化したい受信者を含む部分木Thについて、部分木Thのルートと無効化したい受信者(又は無効化したい受信者を含む受信者の集合)に相当する各リーフを結ぶ最短のパス上のノードのみで構成される部分木STh(R)を考える(このような部分木はRから一意に構成される)。STh(R)については子ノードの存在しないノードをリーフと呼ぶことにする。また、以下の(1)〜(4)の処理において用いられているルートとリーフは、部分木Th中のそれを表しているものとする。
【0067】
(1)2つのリーフからルートへのパスの共通部分に存在するノードの中で、リーフとの距離が最小となるノードを2つのリーフの最小共通ノードと呼ぶことにする。STh(R)のリーフvi、vjを、それらの最小共通ノードv以下に他のリーフが存在しないように選ぶ。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとvjのパス上に存在する子ノードをvlとする。(リーフがSTh(R)中に1つしか存在しない場合、vi=vj、v=vj=vkとして、vをSTh(R)のルートと考えればよい。)
(2)vk≠viならばN\Rを構成する差分集合にS k,iを加える。vl≠vjならばN\Rを構成する差分集合にS l,jを加える。
【0068】
(3)vより下に位置する部分木Th中のノードを全て除去する。これにより、vがリーフになる。
【0069】
(4)STh(R)にルート以外のノードが存在する場合、上記(1)に戻る。STh(R)がルートのノードのみなった場合、無効化したい受信者を含む他の部分木Thを選択し、上記(1)に戻って同様の処理を繰り返す。STh(R)がルートのノードのみなり、かつ無効化したい受信者を含む他の部分木Thが存在しない場合、処理を終了する。
【0070】
上記アルゴリズムにより構成された差分集合S i,jの集合がN\Rを構成する差分集合の集合である。N\Rの分割数(N\Rを構成する差分集合の数)の上限は、dの値により異なるが、例えばd=2のとき(このとき、Nは4の冪であると仮定している。)、無効化したい受信者数|R|=rとすると式(3−1)のようになる。
【0071】
【数10】
【0072】
ここでiは0<i<log4Nを満たす整数である。
【0073】
(1.3.3)部分集合S 1、・・・、S wへの鍵の割り当て方法
次に各差分集合に対する鍵の割り当て方法について説明する。各差分集合S i,jに対して、一様に分布しており、互いに独立な値を持つ鍵を割り当てる。各受信者には自分の属する差分集合に割り当てられた全ての鍵を配布しておく。
【0074】
(1.3.4)受信者への秘密情報の割り当て方法
受信者uを割り当てられたリーフと、全体の2分木のルートとのパス上に存在するノードを含む各部分木Thについて考える。このような部分木Thは各マクロレイヤ中に必ず1つ存在する。パス上のノードの中で部分木Thに含まれる任意のノードをviとし、viをルートとする部分木Th,iのリーフに割り当てられた受信者の集合をS iとする。部分木Th,i中のノードであり、かつパス上に存在しないノードをvjとし、vjをルートとする部分木Th,jのリーフに割り当てられた受信者の集合をS i⊂S jとする。集合S iに含まれ、集合S jに含まれない受信者の集合(差分集合)をS i,jで表す。このとき受信者uは上記の全ての差分集合S i,jに割り当てられた鍵を保有しておく必要がある。受信者uの属する部分木Thの数は、マクロレイヤ数に等しいからlog2N/d個存在する。部分木Thの高さはdであるから、部分木Th中に存在し、かつパス上のノードviをルートとする部分木Th,iはd個存在する(ノードviが部分木Thのリーフに相当する場合は、受信者の集合を割り当てる必要がないため除外している。)。部分木Th,iの高さをk、(1≦k≦d)とすると、部分木Th,i中のノードで、かつパス上に存在しないノードvjをルートとする部分木Th,jは{(2k+1−1)−(k+1)}個存在する。これより各部分木Th,iについて、集合S jの数は{(2k+1−1)−(k+1)}個である。よって差分集合S i,jの数は式(3−2)のようになる。受信者uは式(3−2)に示すだけの個数の鍵を保有しておかなければならない。式(3−2)において1が足されているのは、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0075】
【数11】
【0076】
(1.3.2)部分集合S 1、・・・、S wへの鍵の割り当て方法(擬似乱数生成器を用いる場合)
受信者が保有しておく鍵を減らすため、The Subset Difference Method と同様に擬似乱数生成器を用いて差分集合への鍵の割り当てを行うこともできる。つまり、各差分集合S i,jに直接鍵を割り当てるのではなく、部分木Th,iのリーフに割り当てられた受信者の集合S iに対して1つのラベルを割り当てる。このとき、差分集合S i,j(∀j、S j⊂S i)に割り当てる鍵Li,jが、部分集合S iに割り当てられたラベルを用いて導けるようにしておく。このとき、差分集合S i,j内に存在する受信者のみが鍵Li,jを導けるようにしなければならない。以下では、擬似乱数生成器を用いて、上記方法を実現する方法を示す。
【0077】
G:{0,1}n → {0,1}3n を入力長の3倍の長さを出力する擬似乱数生成器とする。擬似乱数生成器Gの入力をSとしたとき、出力される値を3等分した左側部分を GL(S)で表し、右側部分をGR(S)、中央部分をGM(S)で表す。また、Gの入力として乱数を与えたときに出力される値と、出力と同じ長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、攻撃者は、有意な確率で両者を区別できないといった特性をGは満たしていなければならない。
【0078】
ノードviをルートとするMacroLayer(s)中の部分木Th,iを考える。ルートノードviにラベルLABELiを割り当てる(簡単のため任意の部分木のリーフに割り当てられた受信者の集合へのラベルの割り当てを、その部分木のルートノードにラベルを割り当てると表現する。つまり上記表現は次のようになる。「部分木Th,i中のリーフに割り当てられた受信者の集合S iにラベル LABELiを割り当てる。」)。LABELi,jを、部分木Th,i中のノードvjのラベルとする(割り当てられるラベルが2変数のパラメータを持つ場合、それは差分集合に対して割り当てられたラベルを示している。このとき、LABELi,jはvjをルートとする部分木のリーフに割り当てらた受信者の集合S jに割り当てられるのではなく、S iに含まれ、S jには含まれていない受信者の集合(差分集合)S i,jに対して割り当てられる。)。LABELi,jが差分集合S i,jに割り当てられるラベルである。LABELi,jを部分木Th,iのルートviに割り当てられたラベルLABELiから擬似乱数生成器Gを用いて以下の導出規則により導く。
【0079】
ラベルを擬似乱数生成器の入力としたとき、その出力を次のように定義する。GL−左側の子ノードのラベル、GR−右側の子ノードのラベル、GM−入力ラベルの割り当てられたノードに割り当てる暗号(復号)鍵。この導出規則に拠れば、部分木Th,i中のある親ノードにラベルSが割り当てられたとき、その2つの子ノードのラベルは、GL(S)、GR(S)が割り当てられる。これより、viからvjに至るパス上のノードに割り当てるラベルをGを用いて順次求めることで、viに割り当てられたラベルLABELi から、部分木Th,i中のノードvjのラベルLABELi,jを求めることができる。最後にLABELi,jをGの入力としたときの出力の中央部分GM(LABELi,j)を、差分集合S i,jに割り当てる暗号(復号)鍵Li,jとして用いる。図6に差分集合S i,jに割り当てる鍵Li,jの割り当て例を示す。
【0080】
このような方法を用いれば、部分木中のあるノードのラベルが与えられたとき、部分木内でのその子孫ノード全てのラベルと暗号(復号)鍵を計算することができる。逆に、あるノードvjの先祖ノードのラベルをvjから求めることはできない。さらに、ノードvjの全ての子孫ノードのラベル(ただし、vj自身のラベルは含まない)から暗号(復号)鍵Li,jを求めることはできない。部分木Th,iのルートのラベル LABELiを与えられたとき、差分集合S i,jに割り当てられる暗号(復号)鍵Li,jを計算するのに擬似乱数生成器Gを最大でd+1回用いる。
【0081】
(1.3.6)受信者への秘密情報の割り当て方法(擬似乱数生成器を用いる場合)
各受信者uが保有する秘密情報Iuの割り当て方法について説明する。各マクロレイヤ中に1つずつ存在するuの属する部分木Thについて考える。部分木Thのルートとuの割り当てられたリーフを結ぶパス上のd個(リーフ部分のノードは数えていない。)のノードをviとし、viをルートとする高さk、(1≦k≦d)の部分木Th,iのノードの中で、パスに直接ぶら下がるノードをvi1、vi2、・・・vikで表す(図7)。つまり、それらは部分木Th,i中のノードの中で、パスに隣接し、かつuの先祖ノードでないノードである。部分木Th,i中のノードで、uの先祖でない任意のノードvjは、これらのノードvi1、vi2、・・・vikのいずれかの子孫ノードである。ゆえに、受信者uがIuとして、vi1、vi2、・・・、vikに割り当てられたラベルを保有しておけば、最大d+1回擬似乱数生成器Gを用いて、部分木Th,i中でパス上に存在しない任意ノードvjに割り当てられた復号鍵Li,jを計算することができる。
【0082】
受信者uを含む部分木Thの数は、マクロレイヤ数に等しいから log2N/dであり、部分木Th中にパス上のノードをルートとする部分木Th,iはd個存在する。高さkの部分木Th,i中に受信者uが保有しなければならないラベルはk個あるから、これをuを含む各部分木Th,iについて考えると、受信者uが保有しておかなければならない復号鍵(ラベル)の数は式(3−3)のようになる。
【0083】
【数12】
【0084】
式(3−3)において1が足されているのは、式(3−2)と同様に無効化する受信者が全く存在しない場合の復号鍵が必要だからである。擬似乱数生成器を用いて差分集合への鍵の割り当てを行った場合、受信者の保有する秘密情報は復号鍵ではなく各部分木Th,iに割り当てられたラベルであるが、受信者を全く無効化しない場合に用いる復号鍵については鍵そのものを保有することになる。
【0085】
(1.3.7)複数の2分木を用いる方法
さらに受信者uが保有する秘密情報Iuを減らす場合は、伝送情報Mの量とのトレードオフとなる。一つの方法として、2分木を高さの低い木に限定して複数用いる方法がある。受信者をリーフに割り当てられた2分木を、Layer(b)に存在するノードをルートとする2b個の2分木に分割し、分割された2分木に対して本方式を適用する。このとき、Layer(0) 〜 Layer(b−1)に存在するノードは使用しない。これにより、受信者が保有しておく情報量Iuを式(3−4)、式(3−5)のように減らすことができる。擬似乱数生成器を用いない場合の復号鍵(ラベル)保有数が、式(3−4)であり、擬似乱数生成器を用いる場合のそれが式(3−5)である。式(3−4)、式(3−5)において共に1が足されているのは、自身の割り当てられているリーフの属する2分木中に、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0086】
【数13】
【0087】
伝送情報Mの量(無効化しない受信者をカバーする部分木の数)の上限は、例としてd=2のときを考えると、無効化したい受信者数が|R|=rのとき式(3−6)のようになる。
【0088】
【数14】
【0089】
ここで iは 0<i<log4(N/4h)を満たす整数である。
【0090】
(1.4)各方式の性能比較
図8に受信者総数|N|、無効化したい受信者数|R|=rを一定にしたとき、各方式において受信者が保有しておく秘密情報と伝送するヘッダー量の関係を示す。図8に示すように、N=230=1,073,741、824≒10億、r=214=16,384とし、各方式で用いる暗号化アルゴリズムの鍵長は全て128bitとした。
【0091】
横軸が受信者の保有しておく秘密情報量、縦軸が伝送するヘッダー量の上限を表しており、グラフの左下にある方式ほど、伝送又は蓄える情報量が少ないため、この2点に関しては優れた方式といえる。
【0092】
実際のシステムの運用においては、受信者uは自身が保有する秘密情報Iuから、どの復号鍵(The Subset Difference Method、The Layer Division Subset Difference Methodで擬似乱数生成器を使用する場合はラベル情報)を用いて、伝送されたヘッダー情報を復号するのかを決定する必要がある。その方法としては、例えば、全ての復号鍵で全てのヘッダー情報を復号する方法や、復号に使用すべき復号鍵の情報(ヘッダーの暗号化に使用した暗号鍵のインデックス情報)を付与する方法などが考えられる。この場合伝送される情報はさらにインデックス情報分増加することになるが、図8では考慮していない。
【0093】
The Subset Difference Methodは全部で19点(丸で示す)プロットされているが、これは、変数bをパラメータとしているためである。左の点からh=18、17、・・・ 、1、0 となっており、一番右端の点が2分木を1つのみ用いた方式に相当する。また、差分集合へのラベルの割り当ては、擬似乱数生成器を用いた方式のみを表示している。
【0094】
New Method と書かれた方式が本発明の実施形態による方法(The Layer Division Subset Difference Method)であり、これは、差分集合へのラベルの割り当てに擬似乱数生成器を用いていない。本発明の実施形態による方法で擬似乱数生成器を用いた方式は、New Method using PRNG と書かれた方式である。
【0095】
それぞれ複数の点がプロットされているのは、変数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のh=14とした場合と等価になる(図8で2つの方式の結果が重なっている点)。The Tree Pattern Division Method については、アルゴリズムに使用する木を2分木のみでなく任意のn分木を用いる。そのため、図8には、左から使用する木を2分木、3分木、4分木、5分木とした場合の結果を表示している。n分木のリーフに受信者を割り当てるため、2分木、4分木を用いる場合を除いて、受信者総数は230=415=1、073、741、824にならない。よって、3分木、5分木については以下の値を用いた。
【0096】
・3分木:N=319=1,162,261,467≒10億
・5分木:N=513=1,220,703,125≒10億
また、2分木のとき The Complete Subtree Method とアルゴリズムが完全に等価である。
【0097】
(1.5)実施形態のコンテンツ配信システム
本発明の実施形態によるコンテンツ配信システムの概略構成を図1(b)に示す。このシステムは、情報提供者7が各種の記憶媒体9をユーザに提供する。本実施形態では、記憶媒体9は、例えばDVD−ROMなどの光ディスクを含む各種の記録媒体とすることが可能である。ユーザは再生装置8を所持し、当該再生装置8により記録媒体9から情報を再生する。再生装置8は内部に復号鍵4aを有している。
【0098】
ここで、情報提供者7は上記の鍵管理方式の3要素における情報送信者に対応し、再生装置8は情報受信者に対応する。即ち、情報提供者7は、映像/音声などのコンテンツ情報を暗号化用鍵情報5を使用して暗号化し、伝送情報6として記録媒体9に記録する。また、情報提供者7は、無効化の対象となる再生装置8によっては復号できないが、無効化の対象とならない再生装置8によれば復号可能な鍵情報4bを記録媒体9に記録する。そして、情報提供者7は記録媒体9を各再生装置8のユーザに提供する。
【0099】
無効化の対象とならない再生装置8は、自己の有する復号用鍵4aで鍵情報4bを復号して伝送情報6の復号鍵を取得し、これで伝送情報6を復号して映像/音声などの情報を再生することができる。一方、無効化の対象となる再生装置8は、自己の復号用鍵4aにより記録媒体9内の鍵情報4bを復号することができないので、伝送情報6を復号する鍵を得ることができず、伝送情報6を再生することができない。こうして、本システムでは、記録媒体9上に記録された伝送情報6を特定の再生装置8のみにより再生可能とする。
【0100】
本発明では、上述の階層分割を伴う鍵管理方式(The Layer Division Subset Difference Method)に従って、再生装置8側の復号用鍵4a及び記録媒体9に記録される鍵情報4bを生成する。具体的には、ある再生装置8に対して、その再生装置を含むような全ての差分集合に割り当てられている復号鍵(または復号鍵を導けるようなラベル)と、当該再生装置が割り当てられたリーフの属する2分木のルートに割り当てられた復号鍵1つを当該再生装置に復号用鍵4aとして配布すればよい。こうして、記録媒体中9の鍵情報4bの情報量の増加を押さえつつ、再生装置8に保持しておく復号用鍵4aの情報量を大幅に減少させることができる。
【0101】
【実施例】
次に、本発明の実施例に係るコンテンツ配信システムについて説明する。なお、このコンテンツ配信システムは、DVDなどの光ディスクを記録媒体として使用するものであり、ここでは特にDVD−ROMを例にとって説明する。このコンテンツ配信システムでは、情報送信者はコンテンツの著作権者、光ディスク製造工場などに相当する。一方、情報受信者はコンテンツの再生機能を有する装置(再生装置)であり、ハードウェア又はソフトウェアにより構成されている。
【0102】
なお、以下の実施例の説明において、Encryption()は暗号化アルゴリズム、Decryption()は復号化アルゴリズムを表すものとする。また、Encryption(引数1、引数2)は引数2を暗号鍵として引数1を暗号化した暗号文を表し、Decryption(引数1、引数2)は引数2を復号鍵として引数1を復号したデータを表す。また、記号“|”は2つのデータの結合を表し、(データA)|(データB)のように用いる。
【0103】
(2.1)コンテンツ記録装置
まず、コンテンツ記録装置について説明する。図9はコンテンツをディスクに記録するコンテンツ記録装置50の構成を示すブロック図であり、情報送信者としての前述のディスク製造工場などに設けられるものである。また、コンテンツ記録装置50の各部の信号S1〜S7の内容を図10及び図11に示している。なお、ここでのコンテンツは、情報送信者から情報受信者へ送信される前述の伝送情報に対応するものである。
【0104】
図9において、コンテンツ入力装置51はコンテンツを入力する装置であり、図10(a)に示すように、コンテンツに対応する信号S1を出力する。コンテンツとしては、通常、音楽、映像などのマルチメディアデータが代表的であるが、ここでのコンテンツはそれらに限定されるものではなく、文書などのデータも含まれる。また、コンテンツ入力装置51としては、コンテンツのマスターデータが記録された磁気テープや、DVD−R、DVD−RW、DVD−ROM、DVD−RAMなどの記録媒体を読み込んで信号S1を出力する回路や、LAN、インターネットなどの通信回線を経由してアクセスし、そのデータをダウンロードして信号S1を出力する回路などが挙げられる。
【0105】
復号鍵入力装置52はコンテンツ復号用の鍵Aを入力する装置であり、図10(b)に示すように、コンテンツ復号鍵Aである信号S2を出力する。コンテンツ復号鍵Aは、情報送信者である著作権者、ディスク製造工場又は鍵管理機関により決定される。
【0106】
暗号鍵入力装置53は、コンテンツ暗号鍵Aを入力する装置であり、図10(c)に示すように、コンテンツ暗号鍵Aである信号S3を出力する。コンテンツ暗号鍵Aとコンテンツ復号鍵Aには、次の関係が成立することが要求される。
【0107】
P=Decryption(Encryption(任意のデータP,コンテンツ暗号鍵A),コンテンツ復号鍵A)
コンテンツ暗号化装置54は、コンテンツ暗号鍵A(信号S3)を用いてコンテンツ(信号S1)を暗号化し、暗号化コンテンツである信号S4を出力する。図10(d)に示すように、信号S4=Encryption(コンテンツ,コンテンツ暗号鍵A)である。
【0108】
なお、この例ではコンテンツ暗号鍵Aを用いてコンテンツを直接暗号化しているが、コンテンツ自体を暗号化する必要は必ずしもない。例えば、コンテンツ自体は他の暗号鍵Cで暗号化し、暗号鍵Cに対応する復号鍵Cを上記のコンテンツ暗号鍵Aで暗号化して信号S4として出力してもよい。つまり、ここでいう「コンテンツ暗号鍵を用いてコンテンツを暗号化する」とは、コンテンツの復号化に少なくともコンテンツ復号鍵Aを必要とするような方法でコンテンツを変換することを意味する。
【0109】
暗号鍵入力装置55は、コンテンツ復号鍵Aを暗号化するための複数の暗号鍵Biを入力する装置であり、N個の暗号鍵B1、B2、・・・BN−1、BNを、前述の階層分割を伴う鍵管理方式のアルゴリズムに従って選択し、信号S5を出力する。図10(e)に示すように、信号S5=暗号鍵B1|暗号鍵B2|・・・|暗号鍵Bi|・・・|暗号鍵BN−1|暗号鍵BNで表される。これら複数の暗号鍵Biの組み合わせにより、コンテンツを再生することができる再生装置(上述した「無効化の対象とならない受信者」)が一意に決まる。よって、暗号鍵Biは再生を許可する権限を持つ機関(鍵管理機関又は情報送信者)が暗号鍵Biを決定する。
【0110】
鍵暗号化装置56は、信号S5として得られる暗号鍵Biを用いて、信号S2として得られるコンテンツ復号鍵Aを暗号化し、それにヘッダー情報Header(暗号鍵Bi)を付加して信号S6として出力する。図11(a)に示すように、
信号S6 =
Header(暗号鍵B1)|Encryption(コンテンツ復号鍵A,暗号鍵B1))
|Header(暗号鍵B2)|Encryption(コンテンツ復号鍵A,暗号鍵B2))
|・・・
|Header(暗号鍵Bi)|Encryption(コンテンツ復号鍵A,暗号鍵Bi)
|・・・
|Header(暗号鍵BN−1|Encryption(コンテンツ復号鍵A,暗号鍵BN−1)
|Header(暗号鍵BN)|Encryption(コンテンツ復号鍵A,暗号鍵BN)
で表される。なお、以下の説明では簡単のため、
信号S6=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)と表す。
【0111】
記録信号生成装置57は、暗号化されたコンテンツと、複数の暗号鍵Biで暗号化されたコンテンツ復号鍵Aの組み合わせとを合成して記録信号を生成する。より具体的には、記録信号生成装置57は、信号S4=Encryption(コンテンツ,コンテンツ暗号鍵A)と、信号S6=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)を結合し、それにエラー訂正符号を付加したものを信号S7として出力する。よって、図11(b)に示すように、信号S7は、コンテンツ暗号鍵Aで暗号化したコンテンツ、N個の暗号鍵Biで暗号化されたコンテンツ復号鍵A及びヘッダーにエラー訂正符号を追加した信号であり、
S7 =Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)|Encryption(コンテンツ,コンテンツ暗号鍵A)|ECC
で示される。なお、ECCはエラー訂正符号である。
【0112】
記録装置58は、生成された記録信号S7を光ディスクDに記録し、又は、光ディスクを製造するためのマスターディスクなどに記録信号S7をカッティングする)に記録する装置であり、通常レーザ光源やレーザ発信器などを備える。
【0113】
(2.2)コンテンツ再生装置
次に、上述のようにしてコンテンツが記録された光ディスクDからコンテンツを再生するためのコンテンツ再生装置60について説明する。図12はコンテンツ再生装置60の構成を示すブロック図である。また、コンテンツ再生装置60の各部の信号の内容を図13及び図14に示している。
【0114】
図12において、情報読取装置61は光ピックアップなどの装置であり、光ディスクDに記録されている情報を読み取って信号S11を出力する。信号S11は、図13(a)に示すように、
S11 =Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)|Encryption(コンテンツ,コンテンツ暗号鍵A)|ECC
で表される。
【0115】
エラー訂正装置62は、入力された信号S11のエラー訂正を行う装置であり、信号S11中のECCに基づいてエラー訂正処理を実行する。そして、エラー訂正後の信号を信号S12と信号S13に分けてそれぞれ鍵復号装置64及びコンテンツ復号装置65へ供給する。信号S12は暗号鍵Biで暗号化されたコンテンツ復号鍵Aのデータであり、S12=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)で示される。一方、信号S13はコンテンツ暗号鍵Aで暗号化されたコンテンツのデータであり、S13=Encryption(コンテンツ,コンテンツ暗号鍵A)で示される。
【0116】
記憶装置63は、再生装置が保有する複数の復号鍵B1、B2、・・・、Bj、BM−1、BMとそのヘッダHeader(B1)、Header(B2)、・・・、Header(Bj)、・・・、Header(BM−1)、Header(BM)を保存しておく装置である。なお、ここでは記憶装置63はM個の復号鍵を保有していると仮定する。また、鍵管理機関は、コンテンツ復号鍵Aの暗号化用の暗号鍵Biと再生を許可されている再生装置の保有する復号鍵Bjのうちの少なくとも1つは次の関係が整理するように、予め再生装置に復号鍵Bjを配布している:
P = Decryption(Encryption(任意のデータP,暗号鍵Bi),復号鍵Bj)
さらに、ヘッダーについては、上記の関係の暗号鍵Biと復号鍵Bjに付加されたヘッダーについて次の関係が成立するようにヘッダーの値が決定されている:
Header(暗号鍵Bi)=Header(暗号鍵Bj)
上記の関係が成立するように復号鍵Bjとそのヘッダーを各再生装置に(再生装置製造時に)配布するのは、上述の鍵管理機関であり、その際にどの再生装置にどの復号鍵Bjを配布するかの決定は、上述の階層分割を伴う鍵管理方式のアルゴリズムに従って行われる。なお、上述のアルゴリズム中の差分集合への鍵の割り当てにおいて、疑似乱数生成器が用いられる場合は、コンテンツ再生装置60の記憶装置63に保有されるのは復号鍵Bjそのものではなく、復号鍵を計算するのに必要なラベル情報である。
【0117】
記憶装置63は、図14(b)に示すように、復号鍵B1|復号鍵B2|・・・|復号鍵BM−1|復号鍵BMと、そのヘッダーHeader(復号鍵B1)|Header(復号鍵B2)|・・・|Header(復号鍵BM−1)|Header(復号鍵BM)を出力する。
【0118】
鍵復号装置64は、信号S12=Header(復号鍵B|Encryption(コンテンツ復号鍵A,暗号鍵B)と、信号S14=(復号鍵B1|復号鍵B2|・・・|復号鍵BM−1|復号鍵BM)とそのヘッダーHeader(復号鍵B1)|Header(復号鍵B2)|・・・|Header(復号鍵Bj)|・・・|Header(復号鍵BM−1)|Header(復号鍵BM)を入力とし、光ディスクDから読み取ったHeader(暗号鍵Bi)と再生装置が保有するHeader(復号鍵Bj)が一致するかを調べ、一致する時には復号鍵Bjを用いてEncryption(コンテンツ復号鍵A,暗号鍵Bi)を復号する。つまり、コンテンツ復号鍵A=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)となる。この処理を一致するヘッダーの組み合わせが見つかるようにi及びjの組み合わせを変えて実行し、図14(c)に示すように信号S15=コンテンツ復号鍵Aを出力する。一方、一致するヘッダーの組み合わせがない場合は、再生不可能として全ての処理を終了する。
【0119】
なお、前述のように記憶装置63に復号鍵Bjそのものではなく、復号鍵を計算するのに必要なラベル情報が保存されている場合は、鍵復号装置64がラベル情報から復号鍵を計算した上で同様の処理を行えばよい。こうして、復号されたコンテンツ復号鍵Aが信号S15としてコンテンツ復号装置65へ供給される。
【0120】
コンテンツ復号装置65は、図14(a)に示す信号S13=Encryption(コンテンツ,コンテンツ暗号鍵A)と、図14(c)に示す信号S15=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)=コンテンツ復号鍵Aを入力とし、信号S15を用いて信号S13を復号し、その結果、Decryption(Encryption(コンテンツ,コンテンツ暗号鍵A),コンテンツ復号鍵A)=コンテンツを信号S16として出力する。再生装置66はコンテンツ復号装置65により復号されたコンテンツを再生する。こうして、再生を許可された再生装置のみによりコンテンツの再生が行われる。
【0121】
(2.3)コンテンツ記録処理
次に、光ディスクDへのコンテンツ記録処理について図15を参照して説明する。図15はコンテンツ記録処理のフローチャートである。まず、複数存在する再生装置の中で、対象となる光ディスクDの再生を許可する1つ以上の再生装置を選択する(ステップS1)。この処理は、通常は鍵管理機関により行われるが、著作権者、ディスク製造工場などの情報送信者が行う場合もある。
【0122】
次に、ステップS1で選ばれた、再生を許可する再生装置全てについて、少なくとも1つは復号鍵が存在し、かつ、再生を許可されていない装置については1つも復号鍵が存在しないような復号鍵の集合のうち最小となる集合を選択する(ステップS2)。
【0123】
次に、コンテンツ復号鍵Aを決定し、ステップS2で選択された復号鍵の集合に属する全ての復号鍵Bjを、P=Decryption(Encryption(任意のデータP,暗号鍵Bi),復号鍵Bj)を満たす暗号鍵Biを用いて暗号化し、Encryption(コンテンツ復号鍵A,暗号鍵Bi)を求める(ステップS3)。通常、この処理も鍵管理機関で行われるが、情報送信者が行う場合もある。
【0124】
次に、ステップS3で選択されたコンテンツ暗号鍵Aを用いてコンテンツを暗号化し、Encryption(コンテンツ,コンテンツ暗号鍵A)を求める(ステップS4)。この処理は、通常、情報送信者が行う。
【0125】
次に、ステップS3及びS4で求められたEncryption(コンテンツ復号鍵A,暗号鍵Bi)及びEncryption(コンテンツ,コンテンツ暗号鍵A)に対してエラー訂正符号を付加する(ステップS5)。この処理は、情報送信者である著作権者、ディスク製造工場などで行われる。
【0126】
そして、ステップS3、S4及びS5で計算されたEncryption(コンテンツ復号鍵A,暗号鍵Bi)及びEncryption(コンテンツ,コンテンツ暗号鍵A)並びにエラー訂正符号を光ディスクDに記録する(ステップS6)。この処理はディスク製造工場など、情報送信者により行われる。こうして、暗号化されたコンテンツ及びその復号鍵の情報が光ディスクDに記録される。
【0127】
次に、上記ステップS2における復号鍵の集合の選択処理について図16を参照して説明する。図16は、図15におけるステップS2の処理、即ち、再生を許可しない再生装置が与えられたとき、対象ディスクの再生を許可された再生装置の全てについて1つの復号(暗号)鍵が存在し、かつ、再生を許可されていない装置については1つも復号(暗号)鍵が存在しないような復号(暗号)鍵の集合のうち、最小となる集合を選択する処理を詳細に示すフローチャートである。
【0128】
まず、複数の再生装置をそれぞれリーフに割り当てた2b個の2分木から、無効化したい(再生を許可しない)再生装置の存在しない2分木について、そのルートに割り当てられた暗号鍵を暗号鍵Biとして選択する(ステップS21)。このとき、無効化したい再生装置の存在しない2分木は除去し、その後の処理の対象から除外する。
【0129】
次に、2分木が存在するか否かを判定する(ステップS22)。存在する場合、無効化したい再生装置又は無効化したい再生装置を含む再生装置の集合の割り当てられているリーフ(この2種類のリーフをまとめて「無効化リーフ」と呼ぶ。)を含む任意の部分木Thを1つ選び、STh(R)を構成する(ステップS23)。ここで、STh(R)とは、部分木Thのルートと無効化リーフを結ぶ最短パス上のノードのみで構成される部分木のことである。また、ここで選択される部分木Thはどの2分木中に含まれていても構わない。つまり、ステップS21で除去されなかった全ての2分木が対象となっている。
【0130】
次に、STh(R)中の1つの無効化リーフvi、vjを、それらの共通ノードv以下に他の無効化リーフが存在しないように選択する(ステップS24)。ここで共通ノードとは、2つの無効化リーフからルートへのパスの共通部分に存在するノードの中で無効化リーフとの距離が最小となるノードのことである。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとviのパス上に存在する子ノードをvlとする。(無効化リーフがSTh(R)中に1つしか存在しない場合、vi=vj、v=vl=vkとし、vはSTh(R)のルートとなっている。
【0131】
次に、vi≠vkならば、差分集合Sk,iに割り当てられた暗号鍵をBiの1つとして選択する(ステップS25)。同様に、vl≠vjの場合も差分集合Sl,jに割り当てられた暗号鍵をBiの1つとして選択する。差分集合への鍵の割り当てに疑似乱数生成器を用いている場合は、集合Sk、Slに割り当てられたラベルから、前述の方法により差分集合Sk,i、Sl,jに割り当てられている暗号鍵を計算し、暗号鍵をBiの1つとして選択する。
【0132】
次に、ノードvより下に位置する部分木Th中のノードを全て除去し、vを無効化リーフとする(ステップS26)。次に、STh(R)内のルートノードが無効化リーフであるか否かを判定し(ステップS27)。ルートノードが無効化リーフである場合は、ルートノード以外に無効化リーフを含む他の部分木Thが全ての2分木中に存在するか否かを判定する(ステップS28)。存在する場合、処理はステップS23に戻り、ルートノード以外に無効化リーフを含む他の部分木Thを選択し、同様の処理を繰り返す。
【0133】
一方、ステップS27でSTh(R)内のルートノードが無効化リーフでないと判定された場合、処理はステップS24へ戻り他の無効化リーフを選択して同様の処理を行う。
【0134】
こうして、ルートノード以外に無効化リーフを含む他の部分木Thが全ての2分木中に存在しなくなったとき(ステップS28;No)、処理は終了する。コンテンツ復号鍵Aの暗号化に用いられる暗号鍵Biの集合は、ステップS21及びステップS25で選択され(又はラベルから計算)された暗号鍵となる。
【0135】
(2.4)コンテンツ再生処理
次に、光ディスクDからのコンテンツ再生処理について説明する。図17はコンテンツ再生処理のフローチャートである。まず、光ディスクDから光ピックアップなどの読取装置61により記録情報が読み取られる(ステップS31)。次に、ステップS31で得られた信号に対してエラー訂正装置62によりエラー訂正を行う(ステップS32)。
【0136】
次に、光ディスクD中に記録されているN個のヘッダーHeader(暗号鍵Bi)の中に、再生装置が保有するM個の復号鍵BjのヘッダーHeader(復号鍵Bj)の少なくとも1つは一致するものが存在するか否かを調べる(ステップSS33)。存在する場合、その再生装置は再生を許可されたものであることになり、一致した光ディスクD側のヘッダーHeader(暗号鍵Bi)に対応するEncryption(コンテンツ復号鍵A,暗号鍵Bi)を、再生装置側のヘッダーHeader(復号鍵Bj)に対応する復号鍵Bjで復号する(ステップS34)。つまり、コンテンツ復号鍵A=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)という処理を行い、コンテンツ復号鍵Aを得る。
【0137】
次に、ステップS34で復号されたコンテンツ復号鍵Aを用いて、光ディスクD上の暗号化コンテンツであるEncryption(コンテンツ,コンテンツ暗号鍵A)を復号する(ステップS35)。つまり、コンテンツ=Decryption(Encryption(コンテンツ,コンテンツ暗号鍵A),コンテンツ復号鍵A)という処理を行い、コンテンツの復号を行う。そして、復号されたコンテンツを再生する(ステップS36)。
【0138】
なお、ステップS33で一致するヘッダーが見つからない場合は(ステップS33;No)、その再生装置による再生が許可されていないことになり、コンテンツの再生は行われず、処理は終了する。
【0139】
(2.5)差分集合への暗号鍵の割り当てに疑似乱数生成器を使用する場合
次に、本発明による階層分割を伴う鍵管理方式において差分集合へ暗号(復号)鍵を割り当てる際に疑似乱数生成器を用いる場合の処理を図18のフローチャートを参照して説明する。
【0140】
まず、2b個の各2分木のルートに独立な値をもつ暗号(復号)鍵を割り当てる(ステップS41)。次に、2b個の2分木中に含まれる全てのノードに独立な値を持つラベルを割り当てる(ステップS42)。但し、1台の再生装置のみが割り当てられているノード(リーフ)は除外される。そして、任意の部分木Thを選択し(ステップS43)、選択された部分木Th中の任意のノードviをルートとする部分木Th,iを選択する(ステップS44)。
【0141】
次に、ステップS44で選択された部分木Th,iのルートノードに割り当てられたラベルLABELi(ステップS42で割り当てられている)を用いて、差分集合S i,*に暗号(復号)鍵Li,*を割り当てる(ステップS45)。ここで、*は部分木Th,i中の任意のノードv*を表す。(但し、Th,iのルートノードviは除く)。各差分集合への暗号(復号)鍵の割り当ては以下のように行う。
【0142】
始めに疑似乱数生成器Gの入力をラベルLABELi,*としたとき、その出力を3等分した左側部分をGL(LABELi,*)、中央部分をGM(LABELi,*)、右側部分をGR(LABELi,*)で表す。このとき各出力を以下のように定義する。
【0143】
GL(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードの左側の子ノードに割り当てるラベル
GM(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードに割り当てる暗号鍵Li,*(これが差分集合S i,*に割り当てられる暗号(復号)鍵になる)
GR(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードの右側の子ノードに割り当てるラベル
部分木Th,iのルートノードに割り当てられたラベルLABELiからその2つの子ノードのラベルを疑似乱数生成器Gを用いて割り当てる。この処理を次は子ノードのラベルを入力として行い、孫ノードのラベルを求める。以下、同様にして部分木Th,i中の全てのノードにラベルを割り当てることができる。
【0144】
最後に、部分木Th,i中の各ノードに割り当てられたラベルLABELi,*を入力としてLi,*=GM(LABELi,*)を計算する。この値が差分集合S i,*に割り当てられる暗号(復号)鍵である。
【0145】
次に、ステップS43で選択された部分木Th中の部分木Th,iで、ステップS44で選択されていない部分木が存在するか否かを判定する(ステップS46)。存在する場合はステップS44へ戻り、未だ選択されていない部分木Th,iを選択し、同様の処理を行う。存在しない場合は、次に、2b個の2分木中に存在する全ての部分木Thの中で、ステップS43で選択されていない部分木Thが存在するか否かを判定する(ステップS47)。存在する場合は、ステップS43に戻り、まだ選択されていない部分木Thを選択し、同様の処理を行う。一方、存在しない場合は処理を終了する。
【0146】
以上述べたように、本実施例においては、2分木を複数のレイヤに分割し、分割された各部分木に対してThe Subset Difference Methodを適用するので、記録媒体中の鍵情報量の増加を押さえつつ、再生装置の保有しておく復号鍵などの秘密情報を大幅に減少させることができる。
【0147】
また、The Subset Difference Methodにおいて、各差分集合への復号(暗号)鍵の割り当てに疑似乱数生成器を用いる場合、再生装置側で保有しているラベル情報から復号鍵を求めるのに最大log2(N)+1回の(疑似乱数生成器の出力を求めるという)演算を必要としていたが、本方式では最大d+1回で十分となる。なお、dは部分木Thの高さである。よって、ラベル情報から復号鍵を効率的かつ迅速に得ることが可能となる。
【図面の簡単な説明】
【図1】木構造を用いた鍵管理方式のモデルを示す図である。
【図2】鍵管理方式により用いる木構造の例を示す図である。
【図3】鍵管理方式により用いる木構造の例を示す図である。
【図4】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図5】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図6】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図7】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図8】複数の鍵管理方式における記憶媒体側と受信機側の鍵情報サイズを比較するグラフである。
【図9】本発明の実施例に係るコンテンツ記録システムの構成を示すブロック図である。
【図10】図9に示すコンテンツ記録システムの各部の信号内容を示す。
【図11】図9に示すコンテンツ記録システムの各部の信号内容を示す。
【図12】本発明の実施例に係るコンテンツ再生システムの構成を示すブロック図である。
【図13】図12に示すコンテンツ再生システムの各部の信号内容を示す。
【図14】図12に示すコンテンツ再生システムの各部の信号内容を示す。
【図15】コンテンツ記録処理のフローチャートである。
【図16】コンテンツ記録処理における復号鍵の選択処理のフローチャートである。
【図17】コンテンツ再生処理のフローチャートである。
【図18】本発明の鍵管理方式により部分集合に鍵を割り当てる処理のフローチャートである。
【符号の説明】
1 鍵管理機関
2 情報送信者
3 情報受信者
4a 復号用鍵
4b 鍵情報
5 暗号化用鍵情報
6 伝送情報
7 情報提供者
8 再生装置
9 記録媒体
50 コンテンツ記録装置
60 コンテンツ再生装置
【発明の属する技術分野】
本発明は、木構造を用い、特定の受信者の無効化機能を有する鍵管理方式に関する。
【0002】
【従来の技術】
映画、音楽などの著作物であるコンテンツの著作権を保護するために、情報を利用してコンテンツを暗号化して提供することが行われている。そのようなシステムの一例では、再生装置には複数のデバイス鍵を与え、記録媒体には暗号化されたコンテンツと、再生を許可された再生装置のみがコンテンツの復号鍵を生成できるようにした鍵生成情報とを記録する。再生を許可された再生装置は、鍵生成情報からコンテンツの復号鍵を生成し、その復号鍵を使用してコンテンツを復号して再生する。一方、再生を許可されていない(無効化された)再生装置は、コンテンツの復号鍵を生成できないので、暗号化されているコンテンツを再生することはできない。
【0003】
このようなシステムで、鍵情報を管理するための手法として木構造を用いた鍵管理方式が提案されており、その例として「The Complete Subtree Method」、「The Subset Difference Method」などが知られている(例えば非特許文献1参照。)。これらの方式では、コンテンツの復号鍵を生成するための鍵生成情報が不正に暴露されたり漏洩した場合には、その鍵生成情報を無効化するための処理が可能となっている。
【0004】
また、上記のような方式に基づいてデジタルコンテンツの保護を行う方法も提案されている(例えば非特許文献2参照。)。
【0005】
【非特許文献1】
Dalit Naor, Noni Naor, and Heff Lotspiech,”Revocation and Tracing Schemes for Stateless Receivers”, Lecture Notes in Computer Science, Vol.2139, pp.41−62, 2001
【非特許文献2】
中野稔久、他3名、“デジタルコンテンツ保護用鍵管理方式−木構造パターン分割方式−”、2002年暗号と情報セキュリティシンポジウム講演論文集、2002年2月1日
【0006】
【発明が解決しようとする課題】
上述のThe Subset Difference Methodにおいては、受信者は自分の属する全ての差分集合に割り当てられた鍵を保有しておかなければならないため、受信者側に多くの記憶容量を必要とする。疑似乱数生成器を用いることでこの情報量を削減することはできるのであるが、それでもThe Complete Subtree Methodと比較すると10倍以上の情報記憶容量が要求される。一方、The Complete Subtree Methodについては、受信者側に記憶すべき情報量は少ないが、受信者へ伝送される(情報の伝送に記録媒体を利用する場合には、記録媒体に記録される)鍵情報量が大きくなりすぎてしまう。本発明が解決しようとする課題には、上記のものが一例として挙げられる。
【0007】
【課題を解決するための手段】
請求項1に記載の発明は、鍵管理システムにおいて、複数の情報受信者をリーフに割り当てた木構造を規定する手段と、前記木構造を所定階層毎に分割して複数の部分木を規定する手段と、前記複数の部分木の各部分木に対して鍵情報の割り当てを行う手段と、を有することを特徴とする。
【0008】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態について説明する。まず、鍵管理方式について基礎的な説明を行い、続いて本発明の方式を説明する。
【0009】
(1.1)受信者の無効化機能を有する鍵管理方式
送信者が多数の受信者に対して同一の情報を伝送するシステムにおいて、信頼できる鍵管理機関が、あらかじめ全ての受信者に伝送情報を復号するための秘密情報を配布しておき、その秘密情報を持たない受信者が送信者からの情報を復号できないように、送信者側で情報を暗号化して伝送する方法がある。この場合に問題となるのは、全ての受信者が同一の秘密情報を保有している場合、悪意ある受信者が自分の保有する秘密情報を1回公開してしまえば、その後に伝送される情報は誰にでも復号が可能になってしまうことである。
【0010】
この問題の対策として、鍵管理機関が受信者毎に異なる秘密情報を配布し、特定の受信者の秘密情報が漏洩した場合、その受信者の保有していた秘密情報を用いても伝送された情報を復号できないようにする手法、即ち、受信者の無効化機能を有する鍵管理方式がある。本発明はそのような鍵管理方式を扱う。
【0011】
ここでは、情報の伝送は特定の送信者から多数の受信者への片方向伝送のみであり、また受信者に最初に秘密情報(復号鍵等)を割り当てる以外は、受信者の保有する秘密情報を一切変更できないようなアプリケーションを想定している。
【0012】
受信者の無効化機能を有する鍵管理方式を適用した情報配信システムの1つのモデルを図1(a)に示す。図示のように、情報配信システムは、鍵管理機関1、情報送信者2及び情報受信者3の3つの要素から構成される。以下、各要素について説明する。
【0013】
・鍵管理機関
鍵管理機関1は、情報送信者2が伝送する伝送情報6(暗号文)を復号するための秘密情報(暗号文復号用鍵4aなど)を各受信者に割り当てる。また、鍵管理機関1は、伝送情報6を復号不可能にしたい受信者(今後、ある特定の受信者に対して、伝送される情報を復号できないようにすることを「受信者の無効化」と呼ぶ)の集合から、前記集合以外の受信者のみが復号できるような鍵情報4bを生成し、伝送情報6を暗号化するための鍵(暗号化用鍵情報5)とあわせて情報送信者への配送も行う。
【0014】
ここで各受信者に割り当てる秘密情報(復号用鍵4aなど)と伝送情報6の暗号化に用いられる鍵(暗号化用鍵情報5)の生成・保管・配送は安全に行われるものと仮定する。
【0015】
・情報送信者
情報送信者2は、鍵管理機関1から配送された、伝送情報の暗号化用鍵情報5を用いて伝送情報6を暗号化し、無効化されていない受信者のみが復号できる鍵情報4bと一緒に伝送情報6(暗号文)を受信者に伝送する。
【0016】
・情報受信者
無効化されていない受信者については、伝送情報6(暗号文)を受信したとき、受信者が持つ秘密情報(暗号文復号用の鍵4a等)を使って受信した鍵情報4bを復号し、復号された鍵を用いて暗号文から伝送情報6を復号する。逆に無効化されている受信者については、そのような受信者が複数結託しても、伝送情報に関して何の情報も得られない。また、ここでは多数の受信者の存在を想定している。
【0017】
以下、上記構成要素について詳しく説明する。
【0018】
Nを全ての受信者の集合とし、その要素数を|N|=Nとする。Nの部分集合Rを無効化したい受信者の集合とし、その要素数を|R|=rとする。受信者の無効化機能を有する鍵管理方式の目的は、鍵管理機関(又は情報送信者)が受信を許可した受信者、つまりRに含まれない全ての受信者u∈N\Rが伝送される情報を復号でき、逆に受信を許可されていないRに含まれる受信者全てが結託しても全く伝送情報を得られないようにすることである。
【0019】
(a)鍵管理機関
(i)初期設定
受信者全体の集合Nの部分集合S 1、S 2、・・・、S w(∀j、S j⊆N)を定義する。各S jには暗号(復号)鍵Ljが割り当てられる。ここで各Ljは一様に分布しており、互いに独立な値を割り当てるのが望ましい。各受信者(受信装置)uには、秘密情報Iuを割り当てる。ここでS jに含まれる全ての受信者u∈S jが、自分に割り当てられた秘密情報Iuから、自分の属する部分集合S jに割り当てられた復号鍵Ljを求められるように秘密情報Iuを割り当てなければならない。また、S jに含まれない全ての受信者u∈N\S jが結託しても復号鍵Ljを求めることができないように秘密情報Iuを割り当てなければならない。
【0020】
(ii)鍵情報生成
(1)伝送情報Mの暗号化、復号化に用いる鍵(セッション鍵)Kを選ぶ。
【0021】
(2)無効化する受信者の集合Rの補集合N\Rに属する受信者u∈N\Rをいくつかの部分集合S i1、S i2、・・・、S imに分割する。
【0022】
【数1】
【0023】
ここで、初期設定で上記部分集合に割り当てられてた暗号鍵をそれぞれLi1、Li2、・・・Limとする。
【0024】
(3)暗号鍵Li1、Li2、・・・Limを用いてセッション鍵Kをm回暗号化して式(1−2)を生成、セッション鍵Kと一緒に情報送信者に配送する。
【0025】
【数2】
【0026】
ここで、情報送信者へのセッション鍵の配送は安全に行われるものと仮定する。また、Eencは暗号化アルゴリズムである。本システムで用いられる暗号、復号化アルゴリズムは2種類あり、以下にまとめる(ただし、2つのアルゴリズムに全く同じものを使用しても構わない)。
【0027】
・伝送情報Mの暗号化アルゴリズムFenc、復号化アルゴリズムFdec
セッション鍵Kを用いて暗号文CK=Fenc(M、K)を生成する。高速性が要求される。
【0028】
・セッション鍵暗号化アルゴリズムEenc、復号化アルゴリズムEdec
セッション鍵の配送に用いる。Fencよりも暗号化アルゴリズムの安全性が要求される。
【0029】
(b)情報送信者
セッション鍵Kと特定の受信者のみが復号できる鍵情報を鍵管理機関から受け取り、セッション鍵Kを鍵として暗号化アルゴリズムFencを用いて伝送情報Mを暗号化して、暗号文
【0030】
【数3】
【0031】
を伝送する。なお、式(1−3)の[ ]内の部分をFenc(M、K)のヘッダーと呼ぶことにする。
【0032】
(c)情報受信者
受信者uは、情報送信者により暗号化された次の暗号文を受信する。
【0033】
【数4】
【0034】
(1)u∈S ijであるようなijを探索する。(u∈Rの場合、存在しない。)
(2)自身の保有する秘密情報IuからLijを求める。
【0035】
(3)K=Edec(Cj、Lij)を求める。
【0036】
(4)M=Fdec(CK、K)を求める。
【0037】
上記鍵管理方式を実現するアルゴリズムとして以下の方式がある。
・The Logical Key Hierarchy Method
・CPRM Common Cryptographic Key Management
・The Complete Subtree Method
・The Subset Difference Method
・Tree Pattern Division Method
上記方式の違いとしては、(1) 受信者の部分集合S 1、・・・、S wの定義、(2) 各部分集合に対する鍵の割り当て方法、(3) 受信を許可する(無効化しない)受信者の集合N\Rの分割方法、(4)各受信者uが行う自分の属する部分集合S jの探索方法と、Iuから鍵LSjの求め方等が挙げられる。
【0038】
各方式は以下の3つの観点から評価される。
【0039】
・伝送情報の量
暗号文Fenc(M、K)に付加されるヘッダー量。一般にN\Rを分割した部分集合の数mに比例する。
【0040】
・受信者が保有しておく秘密情報Iuの量
復号用の鍵等の秘密情報を受信者がどれだけ保持しておかなければならないか。
【0041】
・受信者が伝送された情報を復号するのに要する演算量
(1.2) 基礎となる方法(The Subset Difference Method)
(1.2.1) 部分集合S 1、・・・S wの定義
最初に受信者全体の集合Nの部分集合S 1、・・・S wを定義する。この部分集合に対して暗号(復号)鍵、又は復号鍵を導けるような情報L1、・・・Lwを割り当てることになる。N枚のリーフを持つ2分木のリーフに各受信者を割り当てる(ここでNは2の冪であるとしている。)。
【0042】
受信者の部分集合を次のように表す。2分木中の任意のノードvi(ルートとリーフもノードに含まれる。)をルートとする部分木の全てのリーフに割り当てられた受信者の集合をS iで表す。任意のノードvi以下のリーフに割り当てられた受信者の集合S iとノードviをルートとする部分木中の(ルートを除く)ノードvjをルートとする部分木の全てのリーフに割り当てられた受信者の集合S j⊂S iについて、S iの要素からS jの要素を引いた差分集合をS i,jとする。つまり、集合S iに含まれる受信者のうち、集合S jに含まれていない受信者の集合をS i,jとする。図2はS i,jを示している。この差分集合に対して1つの鍵Li,jを割り当てる。
【0043】
(1.2.2) N\Rの分割方法
次に受信を許可する(無効化しない)受信者の集合N\Rを、上記で定義された差分集合S i1,j1、S i2,j2、・・・、S imjmに分割する方法を説明する。2分木のルートと無効化したい受信者に相当する各リーフを結ぶ最短のパス上のノードのみで構成される部分木ST(R)を考える(このような部分木はRから一意に構成される)。ST(R)については子ノードの存在しないノードをリーフと呼ぶことにする。以下のアルゴリズムをST(R)がルートのノードのみになるまで繰り返し、N\Rを構成する差分集合を選択する。
【0044】
(1)2つのリーフからルートへのパスの共通部分に存在するノードの中で、リーフとの距離が最小となるノードを2つのリーフの最小共通ノードと呼ぶことにする。ST(R)のリーフvi、vjを、それらの最小共通ノードv以下に他のリーフが存在しないように選ぶ。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとvjのパス上に存在する子ノードをvlとする。(リーフがST(R)中に1つしか存在しない場合、vi=vj、v=vl=vkとして、vをST(R)のルートと考えればよい。)
(2)vk≠viならば、N\Rを構成する差分集合にS k,iを加える。vl≠vjならばN\Rを構成する差分集合にS l,jを加える。
【0045】
(3)vより下に位置するノードを全て除去する。これによりvがリーフになる。
【0046】
上記アルゴリズムを用いることにより、受信者の集合N\Rは、無効化したい受信者数|R|=rのとき、最大 2r−1の差分集合に分割される。
【0047】
(1.2.3)部分集合S 1、・・・S wへの鍵の割り当て方法
次に、各差分集合に対する鍵の割り当て方法について説明する。各差分集合に対して、一様に分布しており、互いに独立な値を持つ鍵を割り当てる。
【0048】
(1.2.4)受信者への秘密情報の割り当て方法
各受信者には自分の属する差分集合全ての鍵を配布しておかなければならない。これは受信者側に非常に多くの記憶量を必要とする。受信者uは、自分の属する各部分木Tkに対して(ここでTkの変数kは部分木の高さを表している。)、部分木Tk中に存在するノードの中で、Tkのルートからuのパス上に存在するものを除く全てのノードの数に相当する鍵を保有しなければならない。受信者uの属する部分木の数はlog2N個存在し、各部分木の高さは1≦k≦log2Nであるから、受信者が保有しなければならない鍵の数は式(2−1)のようになる。
【0049】
【数5】
【0050】
(1.2.5)部分集合S 1、・・・、S wへの鍵の割り当て方法(擬似乱数生成器を用いる場合)
受信者が保有しておく鍵を減らすため、各差分集合S i,jに直接鍵を割り当てるのではなく、部分集合S iに対して1つのラベルを割り当て、差分集合S i,j(∀j、S j⊂S i)に割り当てる鍵Li,jが、部分集合S iに割り当てられたラベルを用いて導けるようにしておく。このとき、差分集合S i,j内に存在する受信者のみが鍵Li,jを導けるようにしなければならない。以下では、擬似乱数生成器を用いて、上記方法を実現する方法を示す。
【0051】
G:{0,1}n → {0,1}3n を入力長の3倍の長さを出力する擬似乱数生成器とする。擬似乱数生成器Gの入力をSとしたとき、出力される値を3等分した左側部分をGL(S)で表し、右側部分をGR(S)、中央部分をGM(S)で表す。また、Gの入力として乱数を与えたときに出力される値と、出力と同じ長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、攻撃者は、有意な確率で両者を区別できないといった特性をGは満たしていなければならない。
【0052】
ノードviをルートとする部分木Tiを考える。ノードviにラベル LABELiを割り当てる(簡単のため任意の部分木のリーフに割り当てられた受信者の集合へのラベルの割り当てを、その部分木のルートノードにラベルを割り当てると表現する。つまり上記表現は次のようになる。「部分木Ti中のリーフに割り当てられた受信者の集合S iにラベルLABELiを割り当てる。」)。LABELi,jを、部分木Ti中のノードvjのラベルとする(割り当てられるラベルが多変数のパラメータを持つ(この場合iとjの2変数)場合、それは差分集合に対して割り当てられたラベルを示している。このとき、LABELi,jは vjをルートとする部分木のリーフに割り当てらた受信者の集合S jに割り当てられるのではなく、S iに含まれ、S jには含まれていない受信者の集合(差分集合)S i,jに対して割り当てられる。)。LABELi,jが差分集合S i,jに割り当てられるラベルである。
【0053】
LABELi,jを部分木Tiのルートviに割り当てられたラベルLABELiから擬似乱数生成器Gを用いて以下の導出規則により導く。ラベルを擬似乱数生成器の入力としたとき、その出力を次のように定義する。GL−左側の子ノードのラベル、GR−右側の子ノードのラベル、GM−入力ラベルの割り当てられたノードに割り当てる暗号(復号)鍵。この導出規則に拠れば、部分木Ti中のある親ノードにラベルSが割り当てられたとき、その2つの子ノードのラベルは、GL(S)、GR(S)が割り当てられる。これより、viからvjに至るパス上のノードに割り当てるラベルをGを用いて順次求めることで、viに割り当てられたラベルLABELiから、部分木Ti中のノードvjのラベル LABELi,jを求めることができる。
【0054】
最後にLABELi,jをGの入力としたときの出力の中央部分GM(LABELi,j)を、差分集合S i,jに割り当てる暗号(復号)鍵Li,jとして用いる。図3(a)に部分木Ti中のノードvjに割り当てるラベルと暗号(復号)鍵の生成方法を示す。
【0055】
このような方法を用いれば、部分木中のあるノードのラベルが与えられたとき、その子孫ノード全てのラベルと暗号(復号)鍵を計算することができる。逆に、あるノードvjの先祖ノードのラベルをvjから求めることはできない。さらに、ノードvjの全ての子孫ノードのラベル(ただし、vj自身のラベルは含まない)から暗号(復号)鍵Li,jを求めることはできない。部分木TiのルートのラベルLABELiを与えられたとき、差分集合S i,jに割り当てられる暗号(復号)鍵Li,jを計算するのに擬似乱数生成器Gを最大でlog2N+1回用いる。
【0056】
(1.2.6)受信者への秘密情報の割り当て方法(擬似乱数生成器を用いる場合)
各受信者uが保有する秘密情報Iuの割り当て方法について説明する。受信者uは、自分の属する各部分木Tiに対して、Tiのルートノードviと、部分木Ti中のノードでuの先祖ノードでない全てのノードviにより決定される差分集合Si,jに割り当てられた暗号(復号)鍵Li,jを計算できなければならない。部分木Tiのルートノードviからuへのパスを考え、そのパスに直接ぶら下がるノードをvi1、vi2、・・・vikとする(図2(b)参照)。つまり、それらはパスに隣接するノードの中で、uの先祖ノードでないノードである。部分木Ti中でuの先祖でない任意のノードviは、これらのノードvi1、vi2、・・・、vikいずれかの子孫ノードである。ゆえに、受信者uがIuとして、vi1、vi2、・・・、vikに割り当てられたラベルを保有しておけば、最大log2N+1回擬似乱数生成器Gを用いて、部分木Ti中でパス上に存在しない任意ノードvijに割り当てられた復号鍵Li,jを計算することができる。
【0057】
受信者uを含む高さkの部分木Ti中に、受信者uが保存しておかなければならないラベルはk個あるから、これをuを含む各部分木について考えると、受信者uがあらかじめ保有しておかなければならない復号鍵(ラベル)の数は式(2−2)のようになる。
【0058】
【数6】
【0059】
式(2−2)で1が足されているのは、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0060】
(1.2.7)複数の2分木を用いる方法
さらに受信者uが保有する秘密情報Iuを減らす場合は、伝送情報Mの量とのトレードオフとなる。一つの方法として、2分木を高さの低い木に限定して複数用いる方法がある。木構造においてノードの位置する各層をレイヤと呼び、ルートの位置する層から順番に Layer(0)、Layer(1)、・・・と定義する。このとき、受信者をリーフに割り当てられた2分木を、Layer(b) に存在するノードをルートとする2b個の2分木に分割し、分割された2分木に対して The Subset Difference Method を適用する。このとき、Layer(0)〜Layer(b−1)に存在するノードは使用しない。
【0061】
これにより、受信者が保有しておく情報量Iuを式(2−3)のように減らすことができる。しかし、伝送情報Mの量(無効化しない受信者をカバーする部分木の数)は、無効化したい受信者数を|R|=rとすると最大で2b+2r−1と増加する。
【0062】
【数7】
【0063】
(1.3)本実施形態による方法(The Layer Division Subset Difference Method)
(1.3.1)部分集合S 1、・・・、S wの定義
最初に受信者全体の集合Nの部分集合S 1、・・・S wを定義する。この部分集合に対して暗号(復号)鍵、又は復号鍵を導けるような情報L1、・・・Lwを割り当てることになる。N枚のリーフを持つ2分木のリーフに各受信者を割り当てる(ここでNは2の冪であるとしている。)。木構造においてノードの位置する各層をレイヤと呼び、ルートの位置する層から順番に Layer(0)、Layer(1)、・・・と定義する。リーフの存在する層は Layer(log2N)になる。図4に示すように2分木をLayer(0)〜Layer(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は
【数8】
個存在することになる。各部分木
【数9】
を、リーフに受信者を割り当てた2分木と考え、The Subset Difference Methodにおいて定義された差分集合を部分集合S 1、・・・S wとして定義し、暗号(復号)鍵L1、・・・Lwを割り当てる。(実際には、部分木Thのリーフは、s=(log2N)/d−1の場合(MacroLayer((log2N)/d−1)中の部分木)を除いて、全体の2分木で見た場合ただのノードであり、受信者が割り当てられているわけではない。そこで、ある任意の部分木Thにおけるリーフには、そのリーフに対応する全体の2分木中のノード以下に存在する全てのリーフに割り当てられた受信者の集合が割り当てられていると考える。)。
【0064】
部分木Th中の任意のノードviをルートとする部分木Th,iの全てのリーフに割り当てられた受信者の集合をS iで表す。ノードvi以下のリーフに割り当てられた受信者の集合S iとTh,i中の(ルートを除く)ノードvjをルートとする部分木Th,jのリーフに割り当てられた受信者の集合S j⊂S iについて、S iの要素からS jの要素を引いた差分集合をS i,jとする。つまり、集合S iに含まれる受信者のうち、集合S jに含まれていない受信者の集合をS i,jとする。図5はS i,jを示している。この差分集合に対して1つの暗号(復号)鍵Li,jを割り当てる。
【0065】
(1.3.2)N\Rの分割方法
次に受信を許可する(無効化しない)受信者の集合N\Rを、上記で定義された差分集合S i,jに分割する方法を説明する。無効化したい受信者を割り当てられているリーフ、または無効化したい受信者を1つでも含むような受信者の集合を割り当てられているリーフを含む全ての部分木Thについて以下の処理を行う。
【0066】
無効化したい受信者を含む部分木Thについて、部分木Thのルートと無効化したい受信者(又は無効化したい受信者を含む受信者の集合)に相当する各リーフを結ぶ最短のパス上のノードのみで構成される部分木STh(R)を考える(このような部分木はRから一意に構成される)。STh(R)については子ノードの存在しないノードをリーフと呼ぶことにする。また、以下の(1)〜(4)の処理において用いられているルートとリーフは、部分木Th中のそれを表しているものとする。
【0067】
(1)2つのリーフからルートへのパスの共通部分に存在するノードの中で、リーフとの距離が最小となるノードを2つのリーフの最小共通ノードと呼ぶことにする。STh(R)のリーフvi、vjを、それらの最小共通ノードv以下に他のリーフが存在しないように選ぶ。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとvjのパス上に存在する子ノードをvlとする。(リーフがSTh(R)中に1つしか存在しない場合、vi=vj、v=vj=vkとして、vをSTh(R)のルートと考えればよい。)
(2)vk≠viならばN\Rを構成する差分集合にS k,iを加える。vl≠vjならばN\Rを構成する差分集合にS l,jを加える。
【0068】
(3)vより下に位置する部分木Th中のノードを全て除去する。これにより、vがリーフになる。
【0069】
(4)STh(R)にルート以外のノードが存在する場合、上記(1)に戻る。STh(R)がルートのノードのみなった場合、無効化したい受信者を含む他の部分木Thを選択し、上記(1)に戻って同様の処理を繰り返す。STh(R)がルートのノードのみなり、かつ無効化したい受信者を含む他の部分木Thが存在しない場合、処理を終了する。
【0070】
上記アルゴリズムにより構成された差分集合S i,jの集合がN\Rを構成する差分集合の集合である。N\Rの分割数(N\Rを構成する差分集合の数)の上限は、dの値により異なるが、例えばd=2のとき(このとき、Nは4の冪であると仮定している。)、無効化したい受信者数|R|=rとすると式(3−1)のようになる。
【0071】
【数10】
【0072】
ここでiは0<i<log4Nを満たす整数である。
【0073】
(1.3.3)部分集合S 1、・・・、S wへの鍵の割り当て方法
次に各差分集合に対する鍵の割り当て方法について説明する。各差分集合S i,jに対して、一様に分布しており、互いに独立な値を持つ鍵を割り当てる。各受信者には自分の属する差分集合に割り当てられた全ての鍵を配布しておく。
【0074】
(1.3.4)受信者への秘密情報の割り当て方法
受信者uを割り当てられたリーフと、全体の2分木のルートとのパス上に存在するノードを含む各部分木Thについて考える。このような部分木Thは各マクロレイヤ中に必ず1つ存在する。パス上のノードの中で部分木Thに含まれる任意のノードをviとし、viをルートとする部分木Th,iのリーフに割り当てられた受信者の集合をS iとする。部分木Th,i中のノードであり、かつパス上に存在しないノードをvjとし、vjをルートとする部分木Th,jのリーフに割り当てられた受信者の集合をS i⊂S jとする。集合S iに含まれ、集合S jに含まれない受信者の集合(差分集合)をS i,jで表す。このとき受信者uは上記の全ての差分集合S i,jに割り当てられた鍵を保有しておく必要がある。受信者uの属する部分木Thの数は、マクロレイヤ数に等しいからlog2N/d個存在する。部分木Thの高さはdであるから、部分木Th中に存在し、かつパス上のノードviをルートとする部分木Th,iはd個存在する(ノードviが部分木Thのリーフに相当する場合は、受信者の集合を割り当てる必要がないため除外している。)。部分木Th,iの高さをk、(1≦k≦d)とすると、部分木Th,i中のノードで、かつパス上に存在しないノードvjをルートとする部分木Th,jは{(2k+1−1)−(k+1)}個存在する。これより各部分木Th,iについて、集合S jの数は{(2k+1−1)−(k+1)}個である。よって差分集合S i,jの数は式(3−2)のようになる。受信者uは式(3−2)に示すだけの個数の鍵を保有しておかなければならない。式(3−2)において1が足されているのは、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0075】
【数11】
【0076】
(1.3.2)部分集合S 1、・・・、S wへの鍵の割り当て方法(擬似乱数生成器を用いる場合)
受信者が保有しておく鍵を減らすため、The Subset Difference Method と同様に擬似乱数生成器を用いて差分集合への鍵の割り当てを行うこともできる。つまり、各差分集合S i,jに直接鍵を割り当てるのではなく、部分木Th,iのリーフに割り当てられた受信者の集合S iに対して1つのラベルを割り当てる。このとき、差分集合S i,j(∀j、S j⊂S i)に割り当てる鍵Li,jが、部分集合S iに割り当てられたラベルを用いて導けるようにしておく。このとき、差分集合S i,j内に存在する受信者のみが鍵Li,jを導けるようにしなければならない。以下では、擬似乱数生成器を用いて、上記方法を実現する方法を示す。
【0077】
G:{0,1}n → {0,1}3n を入力長の3倍の長さを出力する擬似乱数生成器とする。擬似乱数生成器Gの入力をSとしたとき、出力される値を3等分した左側部分を GL(S)で表し、右側部分をGR(S)、中央部分をGM(S)で表す。また、Gの入力として乱数を与えたときに出力される値と、出力と同じ長さの真の乱数を多項式時間の計算能力をもつ攻撃者に与えたとき、攻撃者は、有意な確率で両者を区別できないといった特性をGは満たしていなければならない。
【0078】
ノードviをルートとするMacroLayer(s)中の部分木Th,iを考える。ルートノードviにラベルLABELiを割り当てる(簡単のため任意の部分木のリーフに割り当てられた受信者の集合へのラベルの割り当てを、その部分木のルートノードにラベルを割り当てると表現する。つまり上記表現は次のようになる。「部分木Th,i中のリーフに割り当てられた受信者の集合S iにラベル LABELiを割り当てる。」)。LABELi,jを、部分木Th,i中のノードvjのラベルとする(割り当てられるラベルが2変数のパラメータを持つ場合、それは差分集合に対して割り当てられたラベルを示している。このとき、LABELi,jはvjをルートとする部分木のリーフに割り当てらた受信者の集合S jに割り当てられるのではなく、S iに含まれ、S jには含まれていない受信者の集合(差分集合)S i,jに対して割り当てられる。)。LABELi,jが差分集合S i,jに割り当てられるラベルである。LABELi,jを部分木Th,iのルートviに割り当てられたラベルLABELiから擬似乱数生成器Gを用いて以下の導出規則により導く。
【0079】
ラベルを擬似乱数生成器の入力としたとき、その出力を次のように定義する。GL−左側の子ノードのラベル、GR−右側の子ノードのラベル、GM−入力ラベルの割り当てられたノードに割り当てる暗号(復号)鍵。この導出規則に拠れば、部分木Th,i中のある親ノードにラベルSが割り当てられたとき、その2つの子ノードのラベルは、GL(S)、GR(S)が割り当てられる。これより、viからvjに至るパス上のノードに割り当てるラベルをGを用いて順次求めることで、viに割り当てられたラベルLABELi から、部分木Th,i中のノードvjのラベルLABELi,jを求めることができる。最後にLABELi,jをGの入力としたときの出力の中央部分GM(LABELi,j)を、差分集合S i,jに割り当てる暗号(復号)鍵Li,jとして用いる。図6に差分集合S i,jに割り当てる鍵Li,jの割り当て例を示す。
【0080】
このような方法を用いれば、部分木中のあるノードのラベルが与えられたとき、部分木内でのその子孫ノード全てのラベルと暗号(復号)鍵を計算することができる。逆に、あるノードvjの先祖ノードのラベルをvjから求めることはできない。さらに、ノードvjの全ての子孫ノードのラベル(ただし、vj自身のラベルは含まない)から暗号(復号)鍵Li,jを求めることはできない。部分木Th,iのルートのラベル LABELiを与えられたとき、差分集合S i,jに割り当てられる暗号(復号)鍵Li,jを計算するのに擬似乱数生成器Gを最大でd+1回用いる。
【0081】
(1.3.6)受信者への秘密情報の割り当て方法(擬似乱数生成器を用いる場合)
各受信者uが保有する秘密情報Iuの割り当て方法について説明する。各マクロレイヤ中に1つずつ存在するuの属する部分木Thについて考える。部分木Thのルートとuの割り当てられたリーフを結ぶパス上のd個(リーフ部分のノードは数えていない。)のノードをviとし、viをルートとする高さk、(1≦k≦d)の部分木Th,iのノードの中で、パスに直接ぶら下がるノードをvi1、vi2、・・・vikで表す(図7)。つまり、それらは部分木Th,i中のノードの中で、パスに隣接し、かつuの先祖ノードでないノードである。部分木Th,i中のノードで、uの先祖でない任意のノードvjは、これらのノードvi1、vi2、・・・vikのいずれかの子孫ノードである。ゆえに、受信者uがIuとして、vi1、vi2、・・・、vikに割り当てられたラベルを保有しておけば、最大d+1回擬似乱数生成器Gを用いて、部分木Th,i中でパス上に存在しない任意ノードvjに割り当てられた復号鍵Li,jを計算することができる。
【0082】
受信者uを含む部分木Thの数は、マクロレイヤ数に等しいから log2N/dであり、部分木Th中にパス上のノードをルートとする部分木Th,iはd個存在する。高さkの部分木Th,i中に受信者uが保有しなければならないラベルはk個あるから、これをuを含む各部分木Th,iについて考えると、受信者uが保有しておかなければならない復号鍵(ラベル)の数は式(3−3)のようになる。
【0083】
【数12】
【0084】
式(3−3)において1が足されているのは、式(3−2)と同様に無効化する受信者が全く存在しない場合の復号鍵が必要だからである。擬似乱数生成器を用いて差分集合への鍵の割り当てを行った場合、受信者の保有する秘密情報は復号鍵ではなく各部分木Th,iに割り当てられたラベルであるが、受信者を全く無効化しない場合に用いる復号鍵については鍵そのものを保有することになる。
【0085】
(1.3.7)複数の2分木を用いる方法
さらに受信者uが保有する秘密情報Iuを減らす場合は、伝送情報Mの量とのトレードオフとなる。一つの方法として、2分木を高さの低い木に限定して複数用いる方法がある。受信者をリーフに割り当てられた2分木を、Layer(b)に存在するノードをルートとする2b個の2分木に分割し、分割された2分木に対して本方式を適用する。このとき、Layer(0) 〜 Layer(b−1)に存在するノードは使用しない。これにより、受信者が保有しておく情報量Iuを式(3−4)、式(3−5)のように減らすことができる。擬似乱数生成器を用いない場合の復号鍵(ラベル)保有数が、式(3−4)であり、擬似乱数生成器を用いる場合のそれが式(3−5)である。式(3−4)、式(3−5)において共に1が足されているのは、自身の割り当てられているリーフの属する2分木中に、無効化する受信者が全く存在しない場合の鍵が必要だからである。
【0086】
【数13】
【0087】
伝送情報Mの量(無効化しない受信者をカバーする部分木の数)の上限は、例としてd=2のときを考えると、無効化したい受信者数が|R|=rのとき式(3−6)のようになる。
【0088】
【数14】
【0089】
ここで iは 0<i<log4(N/4h)を満たす整数である。
【0090】
(1.4)各方式の性能比較
図8に受信者総数|N|、無効化したい受信者数|R|=rを一定にしたとき、各方式において受信者が保有しておく秘密情報と伝送するヘッダー量の関係を示す。図8に示すように、N=230=1,073,741、824≒10億、r=214=16,384とし、各方式で用いる暗号化アルゴリズムの鍵長は全て128bitとした。
【0091】
横軸が受信者の保有しておく秘密情報量、縦軸が伝送するヘッダー量の上限を表しており、グラフの左下にある方式ほど、伝送又は蓄える情報量が少ないため、この2点に関しては優れた方式といえる。
【0092】
実際のシステムの運用においては、受信者uは自身が保有する秘密情報Iuから、どの復号鍵(The Subset Difference Method、The Layer Division Subset Difference Methodで擬似乱数生成器を使用する場合はラベル情報)を用いて、伝送されたヘッダー情報を復号するのかを決定する必要がある。その方法としては、例えば、全ての復号鍵で全てのヘッダー情報を復号する方法や、復号に使用すべき復号鍵の情報(ヘッダーの暗号化に使用した暗号鍵のインデックス情報)を付与する方法などが考えられる。この場合伝送される情報はさらにインデックス情報分増加することになるが、図8では考慮していない。
【0093】
The Subset Difference Methodは全部で19点(丸で示す)プロットされているが、これは、変数bをパラメータとしているためである。左の点からh=18、17、・・・ 、1、0 となっており、一番右端の点が2分木を1つのみ用いた方式に相当する。また、差分集合へのラベルの割り当ては、擬似乱数生成器を用いた方式のみを表示している。
【0094】
New Method と書かれた方式が本発明の実施形態による方法(The Layer Division Subset Difference Method)であり、これは、差分集合へのラベルの割り当てに擬似乱数生成器を用いていない。本発明の実施形態による方法で擬似乱数生成器を用いた方式は、New Method using PRNG と書かれた方式である。
【0095】
それぞれ複数の点がプロットされているのは、変数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のh=14とした場合と等価になる(図8で2つの方式の結果が重なっている点)。The Tree Pattern Division Method については、アルゴリズムに使用する木を2分木のみでなく任意のn分木を用いる。そのため、図8には、左から使用する木を2分木、3分木、4分木、5分木とした場合の結果を表示している。n分木のリーフに受信者を割り当てるため、2分木、4分木を用いる場合を除いて、受信者総数は230=415=1、073、741、824にならない。よって、3分木、5分木については以下の値を用いた。
【0096】
・3分木:N=319=1,162,261,467≒10億
・5分木:N=513=1,220,703,125≒10億
また、2分木のとき The Complete Subtree Method とアルゴリズムが完全に等価である。
【0097】
(1.5)実施形態のコンテンツ配信システム
本発明の実施形態によるコンテンツ配信システムの概略構成を図1(b)に示す。このシステムは、情報提供者7が各種の記憶媒体9をユーザに提供する。本実施形態では、記憶媒体9は、例えばDVD−ROMなどの光ディスクを含む各種の記録媒体とすることが可能である。ユーザは再生装置8を所持し、当該再生装置8により記録媒体9から情報を再生する。再生装置8は内部に復号鍵4aを有している。
【0098】
ここで、情報提供者7は上記の鍵管理方式の3要素における情報送信者に対応し、再生装置8は情報受信者に対応する。即ち、情報提供者7は、映像/音声などのコンテンツ情報を暗号化用鍵情報5を使用して暗号化し、伝送情報6として記録媒体9に記録する。また、情報提供者7は、無効化の対象となる再生装置8によっては復号できないが、無効化の対象とならない再生装置8によれば復号可能な鍵情報4bを記録媒体9に記録する。そして、情報提供者7は記録媒体9を各再生装置8のユーザに提供する。
【0099】
無効化の対象とならない再生装置8は、自己の有する復号用鍵4aで鍵情報4bを復号して伝送情報6の復号鍵を取得し、これで伝送情報6を復号して映像/音声などの情報を再生することができる。一方、無効化の対象となる再生装置8は、自己の復号用鍵4aにより記録媒体9内の鍵情報4bを復号することができないので、伝送情報6を復号する鍵を得ることができず、伝送情報6を再生することができない。こうして、本システムでは、記録媒体9上に記録された伝送情報6を特定の再生装置8のみにより再生可能とする。
【0100】
本発明では、上述の階層分割を伴う鍵管理方式(The Layer Division Subset Difference Method)に従って、再生装置8側の復号用鍵4a及び記録媒体9に記録される鍵情報4bを生成する。具体的には、ある再生装置8に対して、その再生装置を含むような全ての差分集合に割り当てられている復号鍵(または復号鍵を導けるようなラベル)と、当該再生装置が割り当てられたリーフの属する2分木のルートに割り当てられた復号鍵1つを当該再生装置に復号用鍵4aとして配布すればよい。こうして、記録媒体中9の鍵情報4bの情報量の増加を押さえつつ、再生装置8に保持しておく復号用鍵4aの情報量を大幅に減少させることができる。
【0101】
【実施例】
次に、本発明の実施例に係るコンテンツ配信システムについて説明する。なお、このコンテンツ配信システムは、DVDなどの光ディスクを記録媒体として使用するものであり、ここでは特にDVD−ROMを例にとって説明する。このコンテンツ配信システムでは、情報送信者はコンテンツの著作権者、光ディスク製造工場などに相当する。一方、情報受信者はコンテンツの再生機能を有する装置(再生装置)であり、ハードウェア又はソフトウェアにより構成されている。
【0102】
なお、以下の実施例の説明において、Encryption()は暗号化アルゴリズム、Decryption()は復号化アルゴリズムを表すものとする。また、Encryption(引数1、引数2)は引数2を暗号鍵として引数1を暗号化した暗号文を表し、Decryption(引数1、引数2)は引数2を復号鍵として引数1を復号したデータを表す。また、記号“|”は2つのデータの結合を表し、(データA)|(データB)のように用いる。
【0103】
(2.1)コンテンツ記録装置
まず、コンテンツ記録装置について説明する。図9はコンテンツをディスクに記録するコンテンツ記録装置50の構成を示すブロック図であり、情報送信者としての前述のディスク製造工場などに設けられるものである。また、コンテンツ記録装置50の各部の信号S1〜S7の内容を図10及び図11に示している。なお、ここでのコンテンツは、情報送信者から情報受信者へ送信される前述の伝送情報に対応するものである。
【0104】
図9において、コンテンツ入力装置51はコンテンツを入力する装置であり、図10(a)に示すように、コンテンツに対応する信号S1を出力する。コンテンツとしては、通常、音楽、映像などのマルチメディアデータが代表的であるが、ここでのコンテンツはそれらに限定されるものではなく、文書などのデータも含まれる。また、コンテンツ入力装置51としては、コンテンツのマスターデータが記録された磁気テープや、DVD−R、DVD−RW、DVD−ROM、DVD−RAMなどの記録媒体を読み込んで信号S1を出力する回路や、LAN、インターネットなどの通信回線を経由してアクセスし、そのデータをダウンロードして信号S1を出力する回路などが挙げられる。
【0105】
復号鍵入力装置52はコンテンツ復号用の鍵Aを入力する装置であり、図10(b)に示すように、コンテンツ復号鍵Aである信号S2を出力する。コンテンツ復号鍵Aは、情報送信者である著作権者、ディスク製造工場又は鍵管理機関により決定される。
【0106】
暗号鍵入力装置53は、コンテンツ暗号鍵Aを入力する装置であり、図10(c)に示すように、コンテンツ暗号鍵Aである信号S3を出力する。コンテンツ暗号鍵Aとコンテンツ復号鍵Aには、次の関係が成立することが要求される。
【0107】
P=Decryption(Encryption(任意のデータP,コンテンツ暗号鍵A),コンテンツ復号鍵A)
コンテンツ暗号化装置54は、コンテンツ暗号鍵A(信号S3)を用いてコンテンツ(信号S1)を暗号化し、暗号化コンテンツである信号S4を出力する。図10(d)に示すように、信号S4=Encryption(コンテンツ,コンテンツ暗号鍵A)である。
【0108】
なお、この例ではコンテンツ暗号鍵Aを用いてコンテンツを直接暗号化しているが、コンテンツ自体を暗号化する必要は必ずしもない。例えば、コンテンツ自体は他の暗号鍵Cで暗号化し、暗号鍵Cに対応する復号鍵Cを上記のコンテンツ暗号鍵Aで暗号化して信号S4として出力してもよい。つまり、ここでいう「コンテンツ暗号鍵を用いてコンテンツを暗号化する」とは、コンテンツの復号化に少なくともコンテンツ復号鍵Aを必要とするような方法でコンテンツを変換することを意味する。
【0109】
暗号鍵入力装置55は、コンテンツ復号鍵Aを暗号化するための複数の暗号鍵Biを入力する装置であり、N個の暗号鍵B1、B2、・・・BN−1、BNを、前述の階層分割を伴う鍵管理方式のアルゴリズムに従って選択し、信号S5を出力する。図10(e)に示すように、信号S5=暗号鍵B1|暗号鍵B2|・・・|暗号鍵Bi|・・・|暗号鍵BN−1|暗号鍵BNで表される。これら複数の暗号鍵Biの組み合わせにより、コンテンツを再生することができる再生装置(上述した「無効化の対象とならない受信者」)が一意に決まる。よって、暗号鍵Biは再生を許可する権限を持つ機関(鍵管理機関又は情報送信者)が暗号鍵Biを決定する。
【0110】
鍵暗号化装置56は、信号S5として得られる暗号鍵Biを用いて、信号S2として得られるコンテンツ復号鍵Aを暗号化し、それにヘッダー情報Header(暗号鍵Bi)を付加して信号S6として出力する。図11(a)に示すように、
信号S6 =
Header(暗号鍵B1)|Encryption(コンテンツ復号鍵A,暗号鍵B1))
|Header(暗号鍵B2)|Encryption(コンテンツ復号鍵A,暗号鍵B2))
|・・・
|Header(暗号鍵Bi)|Encryption(コンテンツ復号鍵A,暗号鍵Bi)
|・・・
|Header(暗号鍵BN−1|Encryption(コンテンツ復号鍵A,暗号鍵BN−1)
|Header(暗号鍵BN)|Encryption(コンテンツ復号鍵A,暗号鍵BN)
で表される。なお、以下の説明では簡単のため、
信号S6=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)と表す。
【0111】
記録信号生成装置57は、暗号化されたコンテンツと、複数の暗号鍵Biで暗号化されたコンテンツ復号鍵Aの組み合わせとを合成して記録信号を生成する。より具体的には、記録信号生成装置57は、信号S4=Encryption(コンテンツ,コンテンツ暗号鍵A)と、信号S6=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)を結合し、それにエラー訂正符号を付加したものを信号S7として出力する。よって、図11(b)に示すように、信号S7は、コンテンツ暗号鍵Aで暗号化したコンテンツ、N個の暗号鍵Biで暗号化されたコンテンツ復号鍵A及びヘッダーにエラー訂正符号を追加した信号であり、
S7 =Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)|Encryption(コンテンツ,コンテンツ暗号鍵A)|ECC
で示される。なお、ECCはエラー訂正符号である。
【0112】
記録装置58は、生成された記録信号S7を光ディスクDに記録し、又は、光ディスクを製造するためのマスターディスクなどに記録信号S7をカッティングする)に記録する装置であり、通常レーザ光源やレーザ発信器などを備える。
【0113】
(2.2)コンテンツ再生装置
次に、上述のようにしてコンテンツが記録された光ディスクDからコンテンツを再生するためのコンテンツ再生装置60について説明する。図12はコンテンツ再生装置60の構成を示すブロック図である。また、コンテンツ再生装置60の各部の信号の内容を図13及び図14に示している。
【0114】
図12において、情報読取装置61は光ピックアップなどの装置であり、光ディスクDに記録されている情報を読み取って信号S11を出力する。信号S11は、図13(a)に示すように、
S11 =Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)|Encryption(コンテンツ,コンテンツ暗号鍵A)|ECC
で表される。
【0115】
エラー訂正装置62は、入力された信号S11のエラー訂正を行う装置であり、信号S11中のECCに基づいてエラー訂正処理を実行する。そして、エラー訂正後の信号を信号S12と信号S13に分けてそれぞれ鍵復号装置64及びコンテンツ復号装置65へ供給する。信号S12は暗号鍵Biで暗号化されたコンテンツ復号鍵Aのデータであり、S12=Header(暗号鍵B)|Encryption(コンテンツ復号鍵A,暗号鍵B)で示される。一方、信号S13はコンテンツ暗号鍵Aで暗号化されたコンテンツのデータであり、S13=Encryption(コンテンツ,コンテンツ暗号鍵A)で示される。
【0116】
記憶装置63は、再生装置が保有する複数の復号鍵B1、B2、・・・、Bj、BM−1、BMとそのヘッダHeader(B1)、Header(B2)、・・・、Header(Bj)、・・・、Header(BM−1)、Header(BM)を保存しておく装置である。なお、ここでは記憶装置63はM個の復号鍵を保有していると仮定する。また、鍵管理機関は、コンテンツ復号鍵Aの暗号化用の暗号鍵Biと再生を許可されている再生装置の保有する復号鍵Bjのうちの少なくとも1つは次の関係が整理するように、予め再生装置に復号鍵Bjを配布している:
P = Decryption(Encryption(任意のデータP,暗号鍵Bi),復号鍵Bj)
さらに、ヘッダーについては、上記の関係の暗号鍵Biと復号鍵Bjに付加されたヘッダーについて次の関係が成立するようにヘッダーの値が決定されている:
Header(暗号鍵Bi)=Header(暗号鍵Bj)
上記の関係が成立するように復号鍵Bjとそのヘッダーを各再生装置に(再生装置製造時に)配布するのは、上述の鍵管理機関であり、その際にどの再生装置にどの復号鍵Bjを配布するかの決定は、上述の階層分割を伴う鍵管理方式のアルゴリズムに従って行われる。なお、上述のアルゴリズム中の差分集合への鍵の割り当てにおいて、疑似乱数生成器が用いられる場合は、コンテンツ再生装置60の記憶装置63に保有されるのは復号鍵Bjそのものではなく、復号鍵を計算するのに必要なラベル情報である。
【0117】
記憶装置63は、図14(b)に示すように、復号鍵B1|復号鍵B2|・・・|復号鍵BM−1|復号鍵BMと、そのヘッダーHeader(復号鍵B1)|Header(復号鍵B2)|・・・|Header(復号鍵BM−1)|Header(復号鍵BM)を出力する。
【0118】
鍵復号装置64は、信号S12=Header(復号鍵B|Encryption(コンテンツ復号鍵A,暗号鍵B)と、信号S14=(復号鍵B1|復号鍵B2|・・・|復号鍵BM−1|復号鍵BM)とそのヘッダーHeader(復号鍵B1)|Header(復号鍵B2)|・・・|Header(復号鍵Bj)|・・・|Header(復号鍵BM−1)|Header(復号鍵BM)を入力とし、光ディスクDから読み取ったHeader(暗号鍵Bi)と再生装置が保有するHeader(復号鍵Bj)が一致するかを調べ、一致する時には復号鍵Bjを用いてEncryption(コンテンツ復号鍵A,暗号鍵Bi)を復号する。つまり、コンテンツ復号鍵A=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)となる。この処理を一致するヘッダーの組み合わせが見つかるようにi及びjの組み合わせを変えて実行し、図14(c)に示すように信号S15=コンテンツ復号鍵Aを出力する。一方、一致するヘッダーの組み合わせがない場合は、再生不可能として全ての処理を終了する。
【0119】
なお、前述のように記憶装置63に復号鍵Bjそのものではなく、復号鍵を計算するのに必要なラベル情報が保存されている場合は、鍵復号装置64がラベル情報から復号鍵を計算した上で同様の処理を行えばよい。こうして、復号されたコンテンツ復号鍵Aが信号S15としてコンテンツ復号装置65へ供給される。
【0120】
コンテンツ復号装置65は、図14(a)に示す信号S13=Encryption(コンテンツ,コンテンツ暗号鍵A)と、図14(c)に示す信号S15=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)=コンテンツ復号鍵Aを入力とし、信号S15を用いて信号S13を復号し、その結果、Decryption(Encryption(コンテンツ,コンテンツ暗号鍵A),コンテンツ復号鍵A)=コンテンツを信号S16として出力する。再生装置66はコンテンツ復号装置65により復号されたコンテンツを再生する。こうして、再生を許可された再生装置のみによりコンテンツの再生が行われる。
【0121】
(2.3)コンテンツ記録処理
次に、光ディスクDへのコンテンツ記録処理について図15を参照して説明する。図15はコンテンツ記録処理のフローチャートである。まず、複数存在する再生装置の中で、対象となる光ディスクDの再生を許可する1つ以上の再生装置を選択する(ステップS1)。この処理は、通常は鍵管理機関により行われるが、著作権者、ディスク製造工場などの情報送信者が行う場合もある。
【0122】
次に、ステップS1で選ばれた、再生を許可する再生装置全てについて、少なくとも1つは復号鍵が存在し、かつ、再生を許可されていない装置については1つも復号鍵が存在しないような復号鍵の集合のうち最小となる集合を選択する(ステップS2)。
【0123】
次に、コンテンツ復号鍵Aを決定し、ステップS2で選択された復号鍵の集合に属する全ての復号鍵Bjを、P=Decryption(Encryption(任意のデータP,暗号鍵Bi),復号鍵Bj)を満たす暗号鍵Biを用いて暗号化し、Encryption(コンテンツ復号鍵A,暗号鍵Bi)を求める(ステップS3)。通常、この処理も鍵管理機関で行われるが、情報送信者が行う場合もある。
【0124】
次に、ステップS3で選択されたコンテンツ暗号鍵Aを用いてコンテンツを暗号化し、Encryption(コンテンツ,コンテンツ暗号鍵A)を求める(ステップS4)。この処理は、通常、情報送信者が行う。
【0125】
次に、ステップS3及びS4で求められたEncryption(コンテンツ復号鍵A,暗号鍵Bi)及びEncryption(コンテンツ,コンテンツ暗号鍵A)に対してエラー訂正符号を付加する(ステップS5)。この処理は、情報送信者である著作権者、ディスク製造工場などで行われる。
【0126】
そして、ステップS3、S4及びS5で計算されたEncryption(コンテンツ復号鍵A,暗号鍵Bi)及びEncryption(コンテンツ,コンテンツ暗号鍵A)並びにエラー訂正符号を光ディスクDに記録する(ステップS6)。この処理はディスク製造工場など、情報送信者により行われる。こうして、暗号化されたコンテンツ及びその復号鍵の情報が光ディスクDに記録される。
【0127】
次に、上記ステップS2における復号鍵の集合の選択処理について図16を参照して説明する。図16は、図15におけるステップS2の処理、即ち、再生を許可しない再生装置が与えられたとき、対象ディスクの再生を許可された再生装置の全てについて1つの復号(暗号)鍵が存在し、かつ、再生を許可されていない装置については1つも復号(暗号)鍵が存在しないような復号(暗号)鍵の集合のうち、最小となる集合を選択する処理を詳細に示すフローチャートである。
【0128】
まず、複数の再生装置をそれぞれリーフに割り当てた2b個の2分木から、無効化したい(再生を許可しない)再生装置の存在しない2分木について、そのルートに割り当てられた暗号鍵を暗号鍵Biとして選択する(ステップS21)。このとき、無効化したい再生装置の存在しない2分木は除去し、その後の処理の対象から除外する。
【0129】
次に、2分木が存在するか否かを判定する(ステップS22)。存在する場合、無効化したい再生装置又は無効化したい再生装置を含む再生装置の集合の割り当てられているリーフ(この2種類のリーフをまとめて「無効化リーフ」と呼ぶ。)を含む任意の部分木Thを1つ選び、STh(R)を構成する(ステップS23)。ここで、STh(R)とは、部分木Thのルートと無効化リーフを結ぶ最短パス上のノードのみで構成される部分木のことである。また、ここで選択される部分木Thはどの2分木中に含まれていても構わない。つまり、ステップS21で除去されなかった全ての2分木が対象となっている。
【0130】
次に、STh(R)中の1つの無効化リーフvi、vjを、それらの共通ノードv以下に他の無効化リーフが存在しないように選択する(ステップS24)。ここで共通ノードとは、2つの無効化リーフからルートへのパスの共通部分に存在するノードの中で無効化リーフとの距離が最小となるノードのことである。vの2つの子ノードの中で、vとviのパス上に存在する子ノードをvk、vとviのパス上に存在する子ノードをvlとする。(無効化リーフがSTh(R)中に1つしか存在しない場合、vi=vj、v=vl=vkとし、vはSTh(R)のルートとなっている。
【0131】
次に、vi≠vkならば、差分集合Sk,iに割り当てられた暗号鍵をBiの1つとして選択する(ステップS25)。同様に、vl≠vjの場合も差分集合Sl,jに割り当てられた暗号鍵をBiの1つとして選択する。差分集合への鍵の割り当てに疑似乱数生成器を用いている場合は、集合Sk、Slに割り当てられたラベルから、前述の方法により差分集合Sk,i、Sl,jに割り当てられている暗号鍵を計算し、暗号鍵をBiの1つとして選択する。
【0132】
次に、ノードvより下に位置する部分木Th中のノードを全て除去し、vを無効化リーフとする(ステップS26)。次に、STh(R)内のルートノードが無効化リーフであるか否かを判定し(ステップS27)。ルートノードが無効化リーフである場合は、ルートノード以外に無効化リーフを含む他の部分木Thが全ての2分木中に存在するか否かを判定する(ステップS28)。存在する場合、処理はステップS23に戻り、ルートノード以外に無効化リーフを含む他の部分木Thを選択し、同様の処理を繰り返す。
【0133】
一方、ステップS27でSTh(R)内のルートノードが無効化リーフでないと判定された場合、処理はステップS24へ戻り他の無効化リーフを選択して同様の処理を行う。
【0134】
こうして、ルートノード以外に無効化リーフを含む他の部分木Thが全ての2分木中に存在しなくなったとき(ステップS28;No)、処理は終了する。コンテンツ復号鍵Aの暗号化に用いられる暗号鍵Biの集合は、ステップS21及びステップS25で選択され(又はラベルから計算)された暗号鍵となる。
【0135】
(2.4)コンテンツ再生処理
次に、光ディスクDからのコンテンツ再生処理について説明する。図17はコンテンツ再生処理のフローチャートである。まず、光ディスクDから光ピックアップなどの読取装置61により記録情報が読み取られる(ステップS31)。次に、ステップS31で得られた信号に対してエラー訂正装置62によりエラー訂正を行う(ステップS32)。
【0136】
次に、光ディスクD中に記録されているN個のヘッダーHeader(暗号鍵Bi)の中に、再生装置が保有するM個の復号鍵BjのヘッダーHeader(復号鍵Bj)の少なくとも1つは一致するものが存在するか否かを調べる(ステップSS33)。存在する場合、その再生装置は再生を許可されたものであることになり、一致した光ディスクD側のヘッダーHeader(暗号鍵Bi)に対応するEncryption(コンテンツ復号鍵A,暗号鍵Bi)を、再生装置側のヘッダーHeader(復号鍵Bj)に対応する復号鍵Bjで復号する(ステップS34)。つまり、コンテンツ復号鍵A=Decryption(Encryption(コンテンツ復号鍵A,暗号鍵Bi),復号鍵Bj)という処理を行い、コンテンツ復号鍵Aを得る。
【0137】
次に、ステップS34で復号されたコンテンツ復号鍵Aを用いて、光ディスクD上の暗号化コンテンツであるEncryption(コンテンツ,コンテンツ暗号鍵A)を復号する(ステップS35)。つまり、コンテンツ=Decryption(Encryption(コンテンツ,コンテンツ暗号鍵A),コンテンツ復号鍵A)という処理を行い、コンテンツの復号を行う。そして、復号されたコンテンツを再生する(ステップS36)。
【0138】
なお、ステップS33で一致するヘッダーが見つからない場合は(ステップS33;No)、その再生装置による再生が許可されていないことになり、コンテンツの再生は行われず、処理は終了する。
【0139】
(2.5)差分集合への暗号鍵の割り当てに疑似乱数生成器を使用する場合
次に、本発明による階層分割を伴う鍵管理方式において差分集合へ暗号(復号)鍵を割り当てる際に疑似乱数生成器を用いる場合の処理を図18のフローチャートを参照して説明する。
【0140】
まず、2b個の各2分木のルートに独立な値をもつ暗号(復号)鍵を割り当てる(ステップS41)。次に、2b個の2分木中に含まれる全てのノードに独立な値を持つラベルを割り当てる(ステップS42)。但し、1台の再生装置のみが割り当てられているノード(リーフ)は除外される。そして、任意の部分木Thを選択し(ステップS43)、選択された部分木Th中の任意のノードviをルートとする部分木Th,iを選択する(ステップS44)。
【0141】
次に、ステップS44で選択された部分木Th,iのルートノードに割り当てられたラベルLABELi(ステップS42で割り当てられている)を用いて、差分集合S i,*に暗号(復号)鍵Li,*を割り当てる(ステップS45)。ここで、*は部分木Th,i中の任意のノードv*を表す。(但し、Th,iのルートノードviは除く)。各差分集合への暗号(復号)鍵の割り当ては以下のように行う。
【0142】
始めに疑似乱数生成器Gの入力をラベルLABELi,*としたとき、その出力を3等分した左側部分をGL(LABELi,*)、中央部分をGM(LABELi,*)、右側部分をGR(LABELi,*)で表す。このとき各出力を以下のように定義する。
【0143】
GL(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードの左側の子ノードに割り当てるラベル
GM(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードに割り当てる暗号鍵Li,*(これが差分集合S i,*に割り当てられる暗号(復号)鍵になる)
GR(LABELi,*) 入力ラベルLABELi,*の割り当てられたノードの右側の子ノードに割り当てるラベル
部分木Th,iのルートノードに割り当てられたラベルLABELiからその2つの子ノードのラベルを疑似乱数生成器Gを用いて割り当てる。この処理を次は子ノードのラベルを入力として行い、孫ノードのラベルを求める。以下、同様にして部分木Th,i中の全てのノードにラベルを割り当てることができる。
【0144】
最後に、部分木Th,i中の各ノードに割り当てられたラベルLABELi,*を入力としてLi,*=GM(LABELi,*)を計算する。この値が差分集合S i,*に割り当てられる暗号(復号)鍵である。
【0145】
次に、ステップS43で選択された部分木Th中の部分木Th,iで、ステップS44で選択されていない部分木が存在するか否かを判定する(ステップS46)。存在する場合はステップS44へ戻り、未だ選択されていない部分木Th,iを選択し、同様の処理を行う。存在しない場合は、次に、2b個の2分木中に存在する全ての部分木Thの中で、ステップS43で選択されていない部分木Thが存在するか否かを判定する(ステップS47)。存在する場合は、ステップS43に戻り、まだ選択されていない部分木Thを選択し、同様の処理を行う。一方、存在しない場合は処理を終了する。
【0146】
以上述べたように、本実施例においては、2分木を複数のレイヤに分割し、分割された各部分木に対してThe Subset Difference Methodを適用するので、記録媒体中の鍵情報量の増加を押さえつつ、再生装置の保有しておく復号鍵などの秘密情報を大幅に減少させることができる。
【0147】
また、The Subset Difference Methodにおいて、各差分集合への復号(暗号)鍵の割り当てに疑似乱数生成器を用いる場合、再生装置側で保有しているラベル情報から復号鍵を求めるのに最大log2(N)+1回の(疑似乱数生成器の出力を求めるという)演算を必要としていたが、本方式では最大d+1回で十分となる。なお、dは部分木Thの高さである。よって、ラベル情報から復号鍵を効率的かつ迅速に得ることが可能となる。
【図面の簡単な説明】
【図1】木構造を用いた鍵管理方式のモデルを示す図である。
【図2】鍵管理方式により用いる木構造の例を示す図である。
【図3】鍵管理方式により用いる木構造の例を示す図である。
【図4】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図5】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図6】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図7】階層分割を伴う鍵管理方式の木構造の例を示す図である。
【図8】複数の鍵管理方式における記憶媒体側と受信機側の鍵情報サイズを比較するグラフである。
【図9】本発明の実施例に係るコンテンツ記録システムの構成を示すブロック図である。
【図10】図9に示すコンテンツ記録システムの各部の信号内容を示す。
【図11】図9に示すコンテンツ記録システムの各部の信号内容を示す。
【図12】本発明の実施例に係るコンテンツ再生システムの構成を示すブロック図である。
【図13】図12に示すコンテンツ再生システムの各部の信号内容を示す。
【図14】図12に示すコンテンツ再生システムの各部の信号内容を示す。
【図15】コンテンツ記録処理のフローチャートである。
【図16】コンテンツ記録処理における復号鍵の選択処理のフローチャートである。
【図17】コンテンツ再生処理のフローチャートである。
【図18】本発明の鍵管理方式により部分集合に鍵を割り当てる処理のフローチャートである。
【符号の説明】
1 鍵管理機関
2 情報送信者
3 情報受信者
4a 復号用鍵
4b 鍵情報
5 暗号化用鍵情報
6 伝送情報
7 情報提供者
8 再生装置
9 記録媒体
50 コンテンツ記録装置
60 コンテンツ再生装置
Claims (2)
- 複数の情報受信者をリーフに割り当てた木構造を規定する手段と、
前記木構造を所定階層毎に分割して複数の部分木を規定する手段と、
前記複数の部分木の各部分木に対して鍵情報の割り当てを行う手段と、
を有することを特徴とする鍵管理システム。 - 前記鍵情報の割り当てを行う手段は、
前記部分木のリーフに割り当てられた複数の情報受信者全てにより構成される集合と、前記部分木中の特定のノード以下のリーフに割り当てられた情報受信者との差分集合を、前記部分木中の全てのノードについて特定する手段と、
前記差分集合の各々に鍵情報を割り当てる手段と、
前記複数の情報受信者の各々に対して、当該情報受信者が属する全ての差分集合に割り当てられた鍵情報を割り当てる手段と、
からなることを特徴とする請求項1記載の鍵管理システム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002276306A JP2004120008A (ja) | 2002-09-20 | 2002-09-20 | 鍵管理システム |
PCT/JP2003/012022 WO2004028073A1 (ja) | 2002-09-20 | 2003-09-19 | 鍵管理システム |
AU2003264528A AU2003264528A1 (en) | 2002-09-20 | 2003-09-19 | Key management system |
US10/527,992 US20060101267A1 (en) | 2002-09-20 | 2003-09-19 | Key management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002276306A JP2004120008A (ja) | 2002-09-20 | 2002-09-20 | 鍵管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004120008A true JP2004120008A (ja) | 2004-04-15 |
Family
ID=32025099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002276306A Abandoned JP2004120008A (ja) | 2002-09-20 | 2002-09-20 | 鍵管理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060101267A1 (ja) |
JP (1) | JP2004120008A (ja) |
AU (1) | AU2003264528A1 (ja) |
WO (1) | WO2004028073A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006025589A1 (en) * | 2004-09-01 | 2006-03-09 | Canon Kabushiki Kaisha | Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium |
JP2006237689A (ja) * | 2005-02-22 | 2006-09-07 | Kyocera Mita Corp | データ管理装置およびそのプログラム |
JP2006253822A (ja) * | 2005-03-08 | 2006-09-21 | Toshiba Corp | 復号装置、復号方法、及びプログラム |
JP2008524939A (ja) * | 2004-12-22 | 2008-07-10 | サーティコム コーポレーション | 部分リボケーション・リスト |
KR100964386B1 (ko) | 2008-02-15 | 2010-06-17 | 주식회사 케이티 | 디지털 영화 관리 장치 및 그 방법 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925895B2 (en) * | 2005-02-22 | 2011-04-12 | Kyocera Mita Corporation | Data management apparatus, data management method, and storage medium |
US8171282B2 (en) * | 2007-11-15 | 2012-05-01 | International Business Machines Corporation | Encryption data integrity check with dual parallel encryption engines |
US10620927B2 (en) * | 2008-06-06 | 2020-04-14 | International Business Machines Corporation | Method, arrangement, computer program product and data processing program for deploying a software service |
US8396896B2 (en) * | 2010-11-10 | 2013-03-12 | International Business Machines Corporation | Assigning resources to a binary tree structure |
US8848919B2 (en) * | 2011-06-17 | 2014-09-30 | Assa Abloy Ab | Revocation status using other credentials |
TWI809545B (zh) * | 2021-10-29 | 2023-07-21 | 律芯科技股份有限公司 | 混合式樹狀加解密系統 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001358707A (ja) * | 2000-06-15 | 2001-12-26 | Sony Corp | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 |
JP4199472B2 (ja) * | 2001-03-29 | 2008-12-17 | パナソニック株式会社 | 暗号化を施すことによりデータを保護するデータ保護システム |
-
2002
- 2002-09-20 JP JP2002276306A patent/JP2004120008A/ja not_active Abandoned
-
2003
- 2003-09-19 US US10/527,992 patent/US20060101267A1/en not_active Abandoned
- 2003-09-19 WO PCT/JP2003/012022 patent/WO2004028073A1/ja active Application Filing
- 2003-09-19 AU AU2003264528A patent/AU2003264528A1/en not_active Abandoned
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006025589A1 (en) * | 2004-09-01 | 2006-03-09 | Canon Kabushiki Kaisha | Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium |
US8000472B2 (en) | 2004-09-01 | 2011-08-16 | Canon Kabushiki Kaisha | Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium |
JP2008524939A (ja) * | 2004-12-22 | 2008-07-10 | サーティコム コーポレーション | 部分リボケーション・リスト |
JP4897701B2 (ja) * | 2004-12-22 | 2012-03-14 | サーティコム コーポレーション | 部分リボケーション・リスト |
JP2006237689A (ja) * | 2005-02-22 | 2006-09-07 | Kyocera Mita Corp | データ管理装置およびそのプログラム |
JP4498946B2 (ja) * | 2005-02-22 | 2010-07-07 | 京セラミタ株式会社 | データ管理装置およびそのプログラム |
JP2006253822A (ja) * | 2005-03-08 | 2006-09-21 | Toshiba Corp | 復号装置、復号方法、及びプログラム |
JP4599194B2 (ja) * | 2005-03-08 | 2010-12-15 | 株式会社東芝 | 復号装置、復号方法、及びプログラム |
KR100964386B1 (ko) | 2008-02-15 | 2010-06-17 | 주식회사 케이티 | 디지털 영화 관리 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2004028073A1 (ja) | 2004-04-01 |
US20060101267A1 (en) | 2006-05-11 |
AU2003264528A1 (en) | 2004-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340603B2 (en) | Efficient revocation of receivers | |
KR100692344B1 (ko) | 공개 키 방식의 매체 키 블록 | |
EP1253738B1 (en) | Information processing system and method | |
EP1253739B1 (en) | Information processing system and method | |
US7346170B2 (en) | Information processing system and method | |
US20020076204A1 (en) | Key management device/method/program, recording medium, reproducing device/method, recording device, and computer-readable, second recording medium storing the key management program for copyright protection | |
JP2001358707A (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
JP2004520743A (ja) | ブロードキャスト暗号化およびステートレス・レシーバの鍵取消の方法 | |
US20030081786A1 (en) | Key management apparatus | |
RU2369024C2 (ru) | Система защиты информационного содержания, устройство генерации данных ключей и устройство воспроизведения | |
US8180059B2 (en) | Management apparatus, terminal apparatus, and copyright protection system | |
JP2001352321A (ja) | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体 | |
US20040076404A1 (en) | Region restrictive playback system | |
JP2002077131A (ja) | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体 | |
US20050271211A1 (en) | Key management system and playback apparatus | |
JP2005286959A (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
US20050273618A1 (en) | Information recording medium, information recording device, information reproduction device, information delivery device, their methods, their programs, and recording medium recording programs thereon | |
JP2004120008A (ja) | 鍵管理システム | |
KR101485460B1 (ko) | 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법 | |
US20060002565A1 (en) | Key management system and playback apparatus | |
JP2001358705A (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
JP2003204321A (ja) | 著作物保護システム及び鍵管理装置 | |
JP4635459B2 (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2005191805A (ja) | 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2004248272A (ja) | コンテンツ再生のための鍵を管理する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050803 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20070803 |