JP2008131076A - 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム - Google Patents

情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム Download PDF

Info

Publication number
JP2008131076A
JP2008131076A JP2006310208A JP2006310208A JP2008131076A JP 2008131076 A JP2008131076 A JP 2008131076A JP 2006310208 A JP2006310208 A JP 2006310208A JP 2006310208 A JP2006310208 A JP 2006310208A JP 2008131076 A JP2008131076 A JP 2008131076A
Authority
JP
Japan
Prior art keywords
root
node
key
basic
subset
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.)
Pending
Application number
JP2006310208A
Other languages
English (en)
Other versions
JP2008131076A5 (ja
Inventor
Tomoyuki Asano
智之 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006310208A priority Critical patent/JP2008131076A/ja
Priority to EP07829127A priority patent/EP2086161A1/en
Priority to CN200780042754.1A priority patent/CN101542966B/zh
Priority to PCT/JP2007/069388 priority patent/WO2008059673A1/ja
Priority to US12/515,235 priority patent/US8300814B2/en
Priority to KR1020097009872A priority patent/KR20090090308A/ko
Publication of JP2008131076A publication Critical patent/JP2008131076A/ja
Publication of JP2008131076A5 publication Critical patent/JP2008131076A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】端末装置で保持すべき鍵数、及び、暗号化データの復号に要する計算量を低減することが可能な情報処理装置を提供すること。
【解決手段】情報処理装置は、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、この全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割して、y階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成する。さらに、上記各基本部分木の各ノードに、上記端末装置の部分集合を割り当てて、座標軸上の座標点を相互に結ぶ有向枝が設定された有向グラフを生成する。
【選択図】図11

Description

本発明は、情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラムに関する。
近年、ネットワーク等を介したコンテンツ配信に関する暗号化技術の発展には非常に大きな関心が寄せられている。その中でも、暗号化されたコンテンツを復号するための暗号鍵をより安全かつ効率的に配信する方法に関して特に注目が集まっている。通常、暗号化されたコンテンツを配信する1人の配信者に対して、正当な受信権を有するn(nは2以上の自然数)人の受信者が存在し、ネットワーク上に存在する無数の傍受者の中で、当該n人の受信者のみが、暗号化されたコンテンツを復号できる仕組みが必要となる。さらに、上記の正当な受信権を有する受信者数nが時間と共に変化するため、受信者を要素とする集合の変化に対してフレキシブルに対応できる仕組みが求められる。
また、当然の事ながら、こうした仕組みを実現するにあたって、配信者側には、暗号鍵の生成、保持、配信、及びコンテンツの暗号化等に関する処理負荷が発生し、受信者には、復号鍵の保持、受信、及びコンテンツの復号等に関する処理負荷が発生する。確かに、最近は、情報処理機器が有する演算処理能力及び記憶容量等の向上、情報伝送経路が有する通信速度の向上等の種々の技術的発展に支えられ、上記の暗号配信コストに掛かる負荷が相対的に低減している。しかし、コンテンツ配信サービスの需要者が劇的に増加している上、熟達した悪意の傍受者に対抗できるだけの高い堅牢性を持った暗号化技術が要求されるため、弥が上にも暗号配信に伴う処理負荷が増加してしまう。
このような状況において、同報通信路を用いて、配信者が任意に選択した受信者のグループに情報を安全に送信する手法として、revocation schemeやbroadcast encryption scheme等の方式が提案されている。このうちbroadcast encryption schemeの一例として、以下の非特許文献1に開示されている暗号鍵配信方式があり、この方式の特徴は、従来の階層化木構造を用いた鍵配信方式から更に、鍵の導出経路を改良した点にある。つまり、この方式では、受信者の集合を複数の部分集合に分けて考えるが、ある部分集合に当該部分集合に含まれない受信者を加えて新たな部分集合を作り、これを繰り返すことにより部分集合の鎖を作り、それぞれの部分集合に対応する暗号鍵を鎖に沿って導出する。これにより、受信者が保持すべき鍵数、暗号鍵を生成するための計算量、及び鍵配信に係る通信量を低減することが可能である。
Nuttapong Attrapadung and Hideki Imai,"Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext",The 28th Symposium on Information Theory and Its Applications(SITA2005)
確かに、上記の非特許文献1の暗号鍵配信方式には、従来のCS方式(Complete Subtree scheme)やSD方式(Subset Difference scheme)等の鍵配信方式に比較すると大きなアドバンテージがあった。しかし、実施を想定した実際的な観点からすると、受信者数が多い場合には、受信者側の端末装置で保持すべき鍵数、及び、暗号鍵を用いた復号時に要する端末装置の計算量が、依然として大きいという問題を有していた。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、端末装置で保持すべき鍵数、及び、暗号化データの復号に要する計算量を低減することが可能な、新規かつ改良された情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成し、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付ける木構造設定部と、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する有向グラフ生成部と、を備えることを特徴とする、情報処理装置が提供される。
また、上記有向グラフ生成部は、下位階層の基本部分木に対応する有向グラフから、上位階層の基本部分木に対応する有向グラフへの有向枝を設定する部分木間有向枝設定部をさらに備えるようにしてもよい。
また、上記部分木間有向枝設定部は、下位階層の基本部分木に対応する有向グラフにおける第1座標点から、上位階層の基本部分木に対応する有向グラフにおける第2座標点への有向枝を設定し、第2座標点に対応する部分集合は、第1座標点に対応する部分集合を包含するようにしてもよい。
また、上記有向グラフ作成部は、座標軸設定部と、有向枝設定部とを含み、座標軸設定部は、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点を左から右に向かって包含関係が大きくなるように配列した第1水平座標軸、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点を左から右に向かって包含関係が大きくなるように配列した第2水平座標軸をそれぞれ設定し、第1及び第2水平座標軸の各々の左端及び/又は右端に、少なくとも合計2つの仮座標点を追加設定し、有向枝設定部は、所定の整数k(kはlog(n1/y)の約数)を設定し、n(x−1)/k・y<(rv’−lv’+1)≦nx/k・yを満たす整数xを算定した上で、各第1水平座標軸上の左端にある座標点から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる右向きの有向枝の設定を繰り返し行い、各第2水平座標軸上の右端にある座標点から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる左向きの有向枝の設定を繰り返し行い、各第1及び第2水平座標軸について、仮座標点を始点又は終点とする全ての有向枝を除外し、各第1及び第2座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外するようにしてもよい。
また、上記有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部をさらに備えるようにしてもよい。
また、上記鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(Si)の入力に応じて、当該座標点に対応する部分集合Siに対応するセット鍵k(Si)と、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力するようにしてもよい。
また、上記鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力するようにしてもよい。
また、上記セット鍵を用いて、コンテンツ又はコンテンツ鍵を暗号化する暗号化部をさらに備えるようにしてもよい。
また、上記全体木構造の葉ノード1〜nの一部又は全部にそれぞれ対応付けられた端末装置に、暗号化部により暗号化されたコンテンツ又はコンテンツ鍵を送信する送信部をさらに備えるようにしてもよい。
また、上記全体木構造の葉ノード1〜nの部分集合をSiと定義したときに、セット鍵またはコンテンツ鍵で暗号化されたコンテンツの復号を許可する端末装置の集合(N\R)を決定し、集合(N\R)={S1∪S2∪・・・∪Sm}を満たすm個の部分集合S1〜Smを決定する部分集合決定部をさらに備えるようにしてもよい。
また、上記部分集合決定部は、mが最小となるように、前期部分集合S1〜Smを決定するようにしてもよい。
また、上記送信部は、集合(N\R)を表す情報、又は、集合(N\R)を構成する部分集合S1〜Smを表す情報を、端末装置に送信するようにしてもよい。
また、上記送信部は、暗号化部により各部分集合S1〜Smに対応するセット鍵でそれぞれ暗号化されたコンテンツ又はコンテンツ鍵を、端末装置に送信するようにしてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備え、有向グラフは、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成し、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、ことによって得られることを特徴とする、端末装置が提供される。
また、上記下位階層の基本部分木に対応する有向グラフから、上位階層の基本部分木に対応する有向グラフへの有向枝が設定されているようにしてもよい。
また、上記下位階層の基本部分木に対応する有向グラフにおける第1座標点から、上位階層の基本部分木に対応する有向グラフにおける第2座標点への有向枝が設定され、第2座標点に対応する部分集合は、第1座標点に対応する部分集合を包含するようにしてもよい。
また、上記鍵生成部により生成されたセット鍵を用いて、暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備えるようにしてもよい。
また、上記鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(Si)の入力に応じて、当該座標点に対応する部分集合Sに対応するセット鍵k(Si)と、当該座標点を始点とする有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力するようにしてもよい。
また、上記鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力するようにしてもよい。
また、上記復号部は、セット鍵を用いて、暗号化されたコンテンツ鍵を復号し、当該復号されたコンテンツ鍵を用いて、暗号化されたコンテンツを復号するようにしてもよい。
また、上記全体木構造の葉ノード1〜nの部分集合をSiと定義したときに、セット鍵またはコンテンツ鍵で暗号化されたコンテンツの復号を許可する端末装置の集合(N\R)が決定され、集合(N\R)={S1∪S2∪・・・∪Sm}を満たすm個の部分集合S1〜Smが決定されたときに、集合(N\R)を表す情報、又は、集合(N\R)を構成する部分集合S1〜Smを表す情報を受信する受信部と、受信した情報に基づいて、当該端末装置が部分集合S1〜Smのいずれかに属しているか否かを判断し、当該判断結果に基づいて、暗号化されたコンテンツの復号が許可されているか否かを判断する判断部と、を備えるようにしてもよい。
また、上記鍵生成部により生成されたセット鍵を用いて、暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備え、復号部は、判断部により端末装置が部分集合S1〜Smのいずれかに属していると判断された場合に、セット鍵を用いて、暗号化されたコンテンツ又はコンテンツ鍵を復号するようにしてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成するステップと、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付けるステップと、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成するステップと、を含むことを特徴とする、情報処理方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成し、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、ことによって得られた有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成することを特徴とする、鍵生成方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成するステップと、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付けるステップと、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成するステップと、をコンピュータに実行させることを特徴とする、プログラムが提供される。
また、上記課題を解決するために、本発明の別の観点によれば、n個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の基本部分木の根ノードが上位階層の基本部分木の葉ノードとなるように構成し、全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、最上位階層の基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、各基本部分木の根ノード及び中間ノードvの各々について、集合(lroot’→rroot’)又は集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、集合(lroot(+1)←rroot’)又は集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、ことによって得られた有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成するステップをコンピュータに実行させることを特徴とする、プログラムが提供される。
以上説明したように本発明によれば、受信者側の端末装置で保持すべき鍵数、及び、暗号化データの復号に要する計算量を低減することができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
[暗号鍵配信システム100構成]
まず、本発明の一実施形態に係る暗号鍵配信システム100の構成について説明する。図1は、本実施形態にかかる暗号鍵配信システム100の構成を示す説明図である。
図1を参照すると、暗号鍵配信システム100は、本実施形態にかかる情報処理装置の一例として構成された鍵配信サーバ10と、複数のユーザがそれぞれ所有する複数の端末装置20と、これらの鍵配信サーバ10と端末装置20とを接続するネットワーク5とから構成される。
ネットワーク5は、鍵配信サーバ10と端末装置20を双方向通信又は一方向通信可能に接続する通信回線網である。このネットワーク5は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。
鍵配信サーバ10は、サーバ機能を備えたコンピュータ装置などで構成され、ネットワーク5を介して各種の情報を外部装置に装置可能である。例えば、鍵配信サーバ10は、broadcast encryption scheme方式の暗号鍵を生成して、この暗号鍵を端末装置20に配信できる。また、本実施形態にかかる鍵配信サーバ10は、映像配信サービスや、電子音楽配信サービス等のコンテンツ配信サービスを提供するコンテンツ配信サーバとしての機能を具備しており、端末装置20にコンテンツを配信可能である。なお、鍵配信サーバ10とコンテンツ配信サーバとを別装置として構成することも勿論可能である。
ここで、コンテンツは、例えば、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画からなる映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツや、ゲームコンテンツ、文書コンテンツ、ソフトウェアなど、任意のコンテンツデータであってよい。映像コンテンツは、映像データのみならず、音声データを含んでもよい。
端末装置20は、ネットワーク5を介して外部装置とデータ通信可能な情報処理装置であり、各ユーザによって所有される。この端末装置20は、例えば、図示のようにパーソナルコンピュータ(Personal Computer:以下「PC」という。)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)で構成されるが、かかる例に限定されず、ネットワーク5を介した通信機能を有する機器であれば、例えばPDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナーやデコーダーなどで構成することもできる。また、端末装置20は、ユーザが持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。
この端末装置20は、鍵配信サーバ10から種々の情報を受信することができる。例えば、端末装置20は、鍵配信サーバ10から配信されたコンテンツを受信できる。このコンテンツ配信時には、鍵配信サーバ10は、種々の電子データを暗号化して配信することが可能である。例えば、鍵配信サーバ10は、コンテンツを暗号化するコンテンツ鍵を生成して配信することが可能である。このコンテンツ鍵は、例えば、擬似乱数生成器により算出された乱数(擬似乱数)、所定の文字列又は数列等により表現されていてもよい。そして、鍵配信サーバ10は、このコンテンツ鍵を用いて、所定の暗号化ロジックによりコンテンツを暗号化することができる。そして、鍵配信サーバ10は、このコンテンツ鍵又はコンテンツ鍵に対応する復号鍵を、任意の端末装置20に対して配信することが可能である。一方で、端末装置20は、鍵配信サーバ10から受信した当該コンテンツ鍵又はコンテンツ鍵に対応する復号鍵を用いて、暗号化されたコンテンツを復号することができる。
なお、コンテンツ鍵を生成するために用いる擬似乱数生成器は、所定のシード値を入力することによって、長周期の擬似的な乱数列を出力することが可能な装置又はプログラムであり、一般に、線形合同法やメルセンヌ・ツイスター法等のロジックを用いて実現されるものである。もちろん、本実施形態に適用可能な擬似乱数生成器は、これに限定されるものではなく、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、特殊な情報又は条件を含んだ擬似乱数列を生成することが可能な装置又はプログラムであってもよい。
さらに、本実施形態にかかる鍵配信サーバ10は、コンテンツ自体のみならず、コンテンツ鍵をも暗号化して配信するようになっている。確かに、コンテンツ自体を暗号化して配信することにより、ある程度のセキュリティレベルを確保できる。しかし、多数のユーザの中から、コンテンツの利用権限を許諾するユーザ(以下「許諾ユーザ」という。)を追加又は削除する際にフレキシブルに対応するためには、コンテンツ鍵自体を暗号化して配信する方式が有利である。この場合、本実施形態では、まず、鍵配信サーバ10は、コンテンツ鍵を暗号化・復号するための複数のセット鍵を生成する。後段において詳述するが、この複数のセット鍵は、それぞれ、多数のユーザの中から抽出された、複数の許諾ユーザの部分集合群に対応付けされている。つまり、鍵配信サーバ10は、許諾ユーザの集合だけがコンテンツ鍵を復号できるように設定されたセット鍵により、コンテンツ鍵を暗号化し、全てのユーザの端末装置20に対して暗号化されたコンテンツ鍵を配信するのである。かかる構成により、許諾ユーザの端末装置20のみが、暗号化されたコンテンツ鍵を復号することが可能になり、このコンテンツ鍵を用いて暗号化コンテンツを復号し、当該コンテンツを視聴等することができるようになる。もし、許諾ユーザの集合が変更された場合には、鍵配信サーバ10は、コンテンツ鍵の暗号化に用いるセット鍵を変更することにより対応可能である。上記の暗号鍵配信ロジックが成立するためには、セット鍵の生成や配信に係るアルゴリズムを実現できるように、鍵配信サーバ10等を構成する必要がある。
以下では、第1に、本実施形態にかかる鍵配信サーバ10及び端末装置20のハードウェア構成例について説明する。第2に、本実施形態に係る暗号鍵配信ロジックに関連する基盤技術について説明する。第3に、本実施形態に係る鍵配信サーバ10及び端末装置20の構成について詳細に説明し、その構成及び効果に関する基盤技術との相違点を明確に述べる。そして、最後に、本実施形態に係る暗号鍵配信システムの応用例について説明する。
[鍵配信サーバ10及び端末装置20のハードウェア構成]
まず、図2を参照しながら、本実施形態にかかる鍵配信サーバ10及び端末装置20のハードウェア構成例について説明する。図2は、本実施形態にかかる鍵配信サーバ10又は端末装置20の機能を実現可能なハードウェア構成の一例である。
鍵配信サーバ10及び端末装置20は、例えば、コントローラ202と、演算ユニット204と、入出力インタフェース206と、セキュア記憶部208と、メイン記憶部210と、ネットワークインタフェース212と、メディアインタフェース216と、を備える。
(コントローラ202)
コントローラ202は、バスを介して他の構成要素に接続されており、主に、メイン記憶部210に格納されたプログラム及びデータに基づいて、装置内の各部を制御する役割を担う。なお、コントローラ202は、CPU(Central Processing Unit)等の演算処理装置により構成されていてもよい。
(演算ユニット204(鍵配信サーバ10))
鍵配信サーバ10が備える演算ユニット204は、例えば、コンテンツの暗号化、コンテンツ鍵の暗号化、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の導出を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を暗号化することが可能である。なお、上記所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、上記所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されてもよい。
(演算ユニット204(端末装置20))
一方、端末装置20が備える演算ユニット204は、例えば、コンテンツの復号、コンテンツ鍵の復号、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の生成を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を復号することが可能である。なお、所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されていてもよい。
(入出力インタフェース206)
入出力インタフェース206は、主に、ユーザが情報を入力するための入力デバイスと、演算結果又はコンテンツの中身を出力する出力デバイスと、に接続されている。例えば、入力デバイスは、キーボード、マウス、トラックボール、タッチペン、キーパッド、又はタッチパネル等であってもよく、入出力インタフェース206に対して、有線又は無線により接続されていてもよい。場合によっては、入力デバイスは、有線又は無線により接続された携帯電話やPDA(Personal Digiral Assistant)等の携帯型電子機器であってもよい。一方、出力デバイスは、例えば、ディスプレイ等の表示装置、又はスピーカ等の音声出力デバイス等であってもよく、入出力インタフェース206に対して、有線又は無線により接続されていてもよい。なお、上記入出力デバイスは、鍵配信サーバ10又は端末装置20に内蔵或いは一体化されていてもよい。
なお、入出力インタフェース206は、バスを介して他の構成要素に接続されており、入出力インタフェース206を介して入力された情報をメイン記憶部210等に伝達することが可能である。逆に、入出力インタフェース206は、メイン記憶部210等に格納された情報、ネットワークインタフェース212等を介して入力された情報、又は演算ユニット204がこれらの情報を演算して得られた結果等を出力デバイスに出力することができる。
(セキュア記憶部208)
セキュア記憶部208は、主に、コンテンツ鍵、セット鍵、及び中間鍵等の秘匿が必要な情報を安全に格納する。セキュア記憶部208は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、セキュア記憶部208は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。
(メイン記憶部210)
メイン記憶部210は、例えば、他の構成要素を制御するための制御プログラム、コンテンツ又はコンテンツ鍵等を暗号化するための暗号化プログラム、暗号化されたコンテンツ又はコンテンツ鍵等を復号するための復号プログラム、又は、セット鍵又は中間鍵を生成するための鍵生成プログラム等が格納されていてもよい。また、メイン記憶部210は、演算ユニット204により出力された計算結果を一時的又は永続的に格納したり、入出力インタフェース206、ネットワークインタフェース212、又はメディアインタフェース216等から入力された情報を格納してもよい。なお、メイン記憶部210は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、メイン記憶部210は、セキュア記憶部208と一体に構成されていてもよい。
(ネットワークインタフェース212)
ネットワークインタフェース212は、例えば、ネットワーク5上の他の通信装置等に接続されており、例えば、暗号化されたコンテンツ又はコンテンツ鍵、セット鍵、中間鍵等の情報、暗号化に関するパラメータ情報、及び許諾ユーザの集合に関する情報を送受信するためのインタフェース手段である。ネットワークインタフェース212は、バスを介して他の構成要素に接続されており、ネットワーク5上の外部装置から受信した情報を他の構成要素に伝達し、又は他の構成要素が有する情報をネットワーク5上の外部装置に送信することが可能である。
(メディアインタフェース216)
メディアインタフェース216は、情報メディア218を着脱して情報を読み書きするためのインタフェースであり、バスを介して他の構成要素に接続されている。このメディアインタフェース216は、例えば、装着された情報メディア218から情報を読み出して他の構成要素に伝達し、又は他の構成要素から供給された情報を情報メディア218に書き込むことが可能である。情報メディア218は、例えば、光ディスク、磁気ディスク、半導体メモリ等のポータブル記憶媒体(着脱可能な記憶媒体)であってもいし、又はネットワーク5を介せずに比較的近距離で有線/無線接続された情報端末の記憶媒体等であってもよい。
以上、本実施形態にかかる鍵配信サーバ10及び端末装置20の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的なハードウェアを用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、コントローラ202と演算ユニット204とを同一の演算装置により構成してもよいし、セキュア記憶部208とメイン記憶部210とを同一の記憶装置により構成してもよい。また、利用形態によっては、メディアインタフェース216、又は入出力インタフェース206等を省略する構成も可能である。以下、上記のようなハードウェア構成を有する鍵配信サーバ10及び端末装置20により実現される暗号鍵配信方式について詳述する。
[基盤技術に係る暗号鍵配信方式]
まず、本実施形態にかかる暗号鍵配信方式について詳細なる説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
以下で説明する基盤技術に係る暗号鍵配信方式のことを基盤方式と呼ぶことにする。この基盤方式は、コンテンツが配信されるユーザの端末装置の集合を、複数の部分集合に分け、各部分集合に割り当てられたセット鍵によってコンテンツ鍵を暗号化して配信する方式である。この基盤方式は、暗号鍵配信に伴う通信量、各ユーザが保持すべき復号鍵の数、又は各ユーザが復号鍵を生成するための計算量等を削減する為に、どのような部分集合を選択するか、どのようにセット鍵を生成するか、どのようにセット鍵を配信するか、という課題に対して一つの解決手段を提供している。そこで、図3〜図7を参照しながら、この基盤方式について説明する。
(木構造の設定)
まず、基盤方式では、コンテンツ配信の対象となる端末装置(ユーザ)の集合を複数の部分集合に分けて考える。そこで、図3を参照しながら、基盤方式に係る部分集合の分け方について説明する。もちろん、部分集合の分け方は一通りではないが、基盤方式では、2分木構造を用いた部分集合の分け方を採用している。以下で詳細に説明するが、概略的に説明すると、基盤方式は、2分木構造を構成する各結節点(ノード)に対し、ノード間の位置関係を考慮して所定の部分集合を割り当てることにより、所定の組合せを有するユーザの部分集合を網羅的に選択しているのである。この選択方法の妙は、図3に示した2分木構造の具体例により、より明確に理解されるものと思われる。そこで、図3を参照しながら、2分木構造の構築方法について述べる。
まず、以下の説明に用いる集合を定義する。
・全ての端末装置(ユーザ)の集合N={1,2,・・・,n}(nは2のべき乗)
自然数i及びj(i≦j)について、
・[i,j]={i,i+1,i+2,・・・,j}
・(i→i)=(i←i)={{i}}
・(i→j)={{i},{i,i+1},・・・,{i,i+1,・・・,j}}
={[i,i],[i,i+1],[i,i+2],・・・,[i,j]}
・(i←j)={{j},{j,j−1},・・・,{j,j−1,・・・,i}}
={[j,j],[j−1,j],[j−2,j],・・・,[i,j]}
以下では、2分木構造(BT;Binary Tree)上の末端に位置するノードを葉ノード、頂点に位置するノードを根ノード、根ノードと葉ノードとの間に位置する各ノードを中間ノードと呼ぶことにする。また、葉ノードが各端末装置に対応する。また、以下では、説明の便宜上、端末装置とユーザとが1:1対応していると仮定し、葉ノードに対応付けられる「端末装置」を「ユーザ」と表記して説明する場合もある。なお、図3は、BTの葉ノード数n64の例である。
まず、葉ノードの数がn(=64)となるようにBTを作成する。そして、各葉ノードに対し、左端から右方向に向かって番号1,2,・・・,nを割り当てる。
次に、ある中間ノードvに割り当てる部分集合を規定するための指標lv、rvを定義する。ある中間ノードvの下位に位置する葉ノードのうち、最左にある葉ノードの番号をlv、最右にある葉ノードの番号をrvと定義する。但し、vは、各中間ノードに割り当てられた連続する番号であると考えてもよい。つまり、中間ノードvは、vを指標とするBT上の中間ノードを示すものである。
次に、BT上の中間ノードを2つの集合に分類して定義する。BT上の中間ノードのうち、親ノードの左側に位置する中間ノードの集合をBTLと定義し、親ノードの右側に位置する中間ノードの集合をBTRと定義する。なお、ここで言う親子関係とは、BT上で接続されたノード間の上下関係を意味し、親ノードが上位に位置して子ノードが下位に位置する関係を示している。
次に、BT上の根ノードに、各葉ノードに対応付けられたユーザ集合の部分集合を対応付ける。まず、根ノードに対して集合(1→n)と集合(2←n)とを対応付ける。根ノードは、その下位に全ての葉ノードが連結されているため、これらの葉ノードを網羅的又は選択的に包含する集合により表現されるのである。具体的には、図3の根ノードには、集合(1→64)と集合(2←64)とが対応付けられている。そこで、集合(1→64)について考える。集合(1→64)は、その要素として、部分集合[1,1],[1,2],・・・,[1,64]を含んでいる。例えば、全てのユーザ(葉ノード)を表現するには、部分集合[1,64]を用いればよく、これは集合(1→64)の要素として含まれる。また、番号16のユーザを除く全てのユーザを表現するには、部分集合[1,15]及び[17,64]を用いればよく、それぞれ、集合(1→64)及び集合(2←64)の要素として含まれる。このように、根ノードの下位に位置する葉ノード(ユーザ)の組合せを、対応付けられた集合の部分集合により表現できるのである。
次に、BT上の中間ノードにユーザ集合の部分集合を対応付ける。まず、上記の集合BTLに属する中間ノードvに対して、集合(lv+1←rv)を対応付ける。一方、上記の集合BTRに属する中間ノードvに対して、集合(lv→rv−1)を対応付ける。もちろん、BT上の全ての中間ノードvに対して、これらの集合を対応付ける。図3を参照すると、各中間ノードの脇にこれらの集合が記載されていることが分かる。例えば、集合(2←4)が対応付けられた中間ノードを見ると、この中間ノードの下位には、集合(2←2)と集合(3→3)とが対応付けられた2つの中間ノードがあり、さらに、番号1〜4までの葉ノードが連結されている。そこで、これらの葉ノードから番号3を除く葉ノードの組合せを表現しようとすれば、{[1,1][2,2],[4,4]}又は{[1,2],[4,4]}という部分集合の組により表現することができる。部分集合[1,1]及び[1,2]は、根ノードに割り当てられた集合(1→64)の要素であるが、部分集合[2,2]及び[4,4]は、それぞれ、集合(2←2)及び(2←4)の要素である。
このように、基盤方式では、2分木構造BTを用いてユーザ集合の部分集合を定義している。この方法によって様々な組合せを有するユーザの部分集合を表現することが可能になる。なお、これらの部分集合により構築された全体集合のことをセットシステムΦと呼び、下式(1)のように定義する。つまり、下式(1)は、上記の方法で構築した2分木構造を数学的に表現したものである。
Figure 2008131076
以上、部分集合を規定する2分木構造の設定方法について述べた。基盤方式の基本コンセプトは、これらの各部分集合に対して、コンテンツ鍵を暗号化するためのセット鍵を設定し、各セット鍵によりコンテンツ鍵を暗号化して全ユーザに配信することにある。上記のように部分集合を定義したことにより、少なくともユーザの組合せを分類する一手段が規定された。以下では、これらの部分集合を利用してセット鍵を生成するアルゴリズムについて説明する。
(有向グラフの生成)
ここでは、図4を参照しながら、セット鍵を生成するアルゴリズムを表現した有向グラフの生成方法について説明する。しかし、これに先立って、コンテンツ鍵を暗号化するセット鍵と、セット鍵を生成するための中間鍵と、の関係について述べる。
先に簡単に触れたが、基盤方式では、セット鍵を生成するために特殊な擬似乱数生成器PRSG(Pseudo−Random Sequence Generator)を用いる。このPRSGは、ある部分集合S0に対応する中間鍵t(S0)が入力されると、部分集合S0に対応するセット鍵k(S0)と、部分集合S0に関連する部分集合S1、S2、・・・、Skに対応する中間鍵t(S1)、t(S2)、・・・、t(Sk)と、を出力する。もちろん、集合S0及びS1、・・・、Skは、上記のセットシステムΦを構成する部分集合のいずれかである。つまり、このPRSGこそが鍵生成装置なのである。基盤方式の特徴は、PRSGの入力と出力との関係を規定するロジックにある。そこで、上記の集合S0と集合S1、S2、・・・、Skとの関係を規定する有向グラフについて説明する。
ここで、以下の説明に用いる記号を定義する。
・部分集合Siに対応する中間鍵 : t(Si)
・部分集合Siに対応するセット鍵: k(Si)
・コンテンツ鍵 : mek
・擬似乱数生成器 : PRSG
(但し、t(S0)を入力することをPRSG(t(S0))と表記する。
一方、PRSGの出力を
t(S1)||・・・||t(Sk)||k(S0)←PRSG(t(S0))
のように表記する。)
・有向グラフ : H
(但し、集合(i←j)に対応する有向グラフをH(i←j)と表記する。)
・有向枝 : E
・有向パス : V
まず、パラメータk(kは自然数)を決める。ここでは簡単のために、k|log(n)(以下、logの底は2)とする。このパラメータkは、結果的に端末装置20が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係するため、状況に応じて、適宜、設定されるべきパラメータである。図4では、例えば、k=6が設定されている。
次に、具体的な有向グラフの描き方について述べる。まず、一例として、BTRに属する中間ノードvに対応した有向グラフH(lv→rv−1)について説明する。
(S1)有向グラフH(lv→rv−1)を構成するための水平座標軸を設定する。この座標軸には、集合(lv→rv−1)の要素を成す部分集合Siが座標点として割り当てられる。これらの座標点を成す部分集合Siは、左から右向かって包含関係が大きくなるように配列される。例えば、有向グラフH(5→7)=H({[5,5],[5,6],[5,7]})を例に挙げると、座標軸は、左から順に部分集合[5,5],[5,6],[5,7]が割り当てられた3つの座標点を有する。
なお、第1水平座標軸上の右向きの有向グラフHにおいてその始点が位置する縦線がxである場合、この有効グラフHと縦線yとの交点は[x,y]を表し、また、第2水平座標軸上の左向きの有向グラフHにおいてその始点が位置する縦線がzである場合、この有効グラフHと縦線yとの交点は[y,z]を表す。
その後、座標軸の最左に位置する座標点の左側に始点となる仮座標点を設定して始点とし、座標軸の最右に位置する座標点の右側に終点となる仮座標点を設定して、終点とする。このように設定された座標軸は、左端の仮座標点(始点)から右端の仮座標点(終点)までの長さLvが、Lv=rv−lv+1となる。
(S2)有向グラフH(lv→rv−1)を構成する有向枝を設定する。
(S2−1)n(x−1)/k<Lv≦nx/kを満たす整数xを算出する。この整数xは、1≦x≦kを満たす。
(S2−2)カウンタiを0からx−1まで動かしながら、次の操作を繰り返し行う。水平座標軸の左端にある始点から開始し、その座標点からni/k(i=0〜x−1)だけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/kだけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端にある終点に到達するか、或いは、次に設定される有向枝の終端が当該終点を超えるまで、繰り返し行う。
(S3)仮座標点を始点又は終点とする有向枝を全て削除する。
(S4)ある座標点に到達する有向枝が複数ある場合には、最長の有向枝のみを残し、この最長の有向枝以外の有向枝を全て削除する。
以上のステップ(S1)〜(S4)を実行すると、有向グラフH(lv→rv−1)が完成する。例えば、図4の上から3段目の右側に位置する有向グラフH(33→63)を一例として参照すると、アーチ状の曲線の有効枝と、アーチ状の曲線の一端に接続され、水平方向に延伸した直線と、により構成される線の組が有向グラフH(33→63)の実体である。また、有向グラフH(33→63)を構成する各曲線及び直線が有向枝である。そして、有向枝の端部と縦線との交点が座標点である。図4には水平座標軸を明示していないが、縦線と有向枝の端部との交点の組により水平座標軸が構成されている。さらに、有向グラフH(33→63)の上部には、白抜き矢印が描画されているが、これが有向枝の方向を示すものである。つまり、有向グラフH(33→63)を構成する有向枝は全て右向きであることを示している。
上記有向グラフH(lv→rv−1)と同様にして、BTLに属する中間ノードvに対応付けられた有向グラフH(lv+1←rv)、及び根ノードに対応付けられた有向グラフH(1→n)及びH(2←n)を設定する。但し、有向グラフH(lv+1←rv)及びH(2←n)の座標軸を設定する際には、水平座標軸上に右から左に向かって包含関係が大きくなるように部分集合Siを配列し、有向枝の向きを左向きにする。また、有向グラフH(1→n)は、有向グラフH(1→n−1)に有向枝E([1,n−1],[1,n])を付加して生成される。一方、有向グラフH(2←n)は、有向グラフH(lv+1←rv)と同一の方法により設定される。
ここで、図4の有向グラフH(1→64)を例に挙げて説明を加える。まず、有向グラフH(1→64)の水平座標軸は、最左にある座標点(縦線1との交点)が[1,1]={1}、その右隣の座標点(縦線2との交点)が[1,2]={1,2}、その右隣の座標点が[1,3]={1,2,3}となる。また、各有向グラフの直上又は直下に描いた矢印は、その有向グラフHを構成する全ての有向枝が示す向きを表している。例えば、有向グラフH(1→64)には、座標点[1,1]から[1,2]への有向枝があり、座標点[1,2]から[1,3]と[1,4]とへ伸びる2本の有向枝がある。また、図4の最下段に描かれた黒丸は、左からそれぞれ、有向グラフH(2→2)、H(3→3)、・・・、H(63→63)を表している。
以上、有向グラフHの設定方法について説明した。上記の方法により、BT上の各中間ノード及び根ノードにそれぞれ対応する有向グラフHを描画したものが図4である。この例は、n=64、k=6の場合である。以下では、この有向グラフHを用いてセット鍵を生成するロジックについて述べる。
(セット鍵の生成)
既に述べたように、基盤方式では、上記のセットシステムΦを構成する各部分集合Siに割り当てられたセット鍵k(Si)を用いて、コンテンツ鍵mekを暗号化して配信する。つまり、上記の有向グラフHの各座標点は、それぞれ、1人以上のユーザから構成される部分集合Siに対応しており、セット鍵k(Si)が割り当てられる。また、中間鍵t(Si)についても、上記の各部分集合Siに割り当てられ、セット鍵k(Si)を生成するために利用される。
ところで、上述した有効グラフH生成時のステップ(S2−2)の処理における繰り返し回数がx回であり、1≦x≦kであるため、有向グラフHの各座標点からは、最大でk本の有向枝が出ている。ある座標点(部分集合S0)から出ている1又は2以上の有向枝の到達先の座標点の部分集合を、上記ある座標点に近い順(有向枝が短い順)に、S1,S2,・・・,Skとする。ただし、座標点(部分集合S0)から出ている有向枝の数がq本(q<k)である場合には、Sq+1,Sq+2,・・・,Skはダミーとし、実際には使用しない。
基盤方式では、セット鍵k(Si)を生成するために、λビットの入力に対して(k+1)λビットの出力を出す上述のPRSGを利用する。このPRSGは、ある座標点(部分集合S0)に対応する中間鍵t(S0)を入力すると、当該座標点を始点とする有向枝の終点の各座標点(部分集合S1、S2、・・・、Sk)に対応する中間鍵t(S1)、t(S2)、・・・、t(Sk)と、当該部分集合S0のセット鍵k(S0)と、を出力する。つまり、t(S1)||・・・||t(Sk)||k(S0)←PRSG(t(S0))である。このPRSGの出力を左からλビットごとに区切ることで、中間鍵t(S1)、t(S2)、・・・、t(Sk)と、セット鍵k(S0)とが得られる。
例えば、図4の有向グラフH(1→64)を参照し、座標点(部分集合S0)=[1,8](左端から8番目の座標点)に注目すると、この座標点S0からは4本の有向枝が出ており、その終点は、それぞれ、S1=[1,9],S2=[1,10],S3=[1,12],S4=[1,16]である。このため、中間鍵t(S0)をPRSGに入力すると、k(S0)、t(S1)、t(S2)、t(S3)、t(S4)を得ることができる。さらに、得られたt(S4)をPRSGに入力すると、k(S4)と、S11=[1,17],S12=[1,18],S13=[1,20],S14=[1,24],S15=[1,32]に対応したt(S11)、t(S12)、t(S13)、t(S14)、t(S15)と、を得ることができる。このように、PRSGを繰り返し用いることにより、複数のセット鍵k(Si)を算出することができる。
上記の例から容易に推察される通り、ある中間鍵は、PRSGを反復して用いることにより、その中間鍵に対応する座標点から伸びた有向枝の鎖によって到達可能な座標点に対応する中間鍵とセット鍵とを導き出すことができるのである。従って、各ユーザは、自身が含まれる部分集合に対応する中間鍵を全て導出できる最低限の数の中間鍵を保持していればよいのである。一方、コンテンツ鍵を暗号化するためのセット鍵を生成する鍵配信サーバは、少なくとも各有向グラフHの先頭座標点に対応する中間鍵のみを保持していれば、PRSGによる演算を繰り返し行うことで、当該有向グラフの他の座標点に対応するセット鍵を導出することができる。
従って、鍵配信システムの管理者は、鍵配信システムのセットアップ時に、鍵配信サーバにおいて各有向グラフHの先頭座標点(ルート)の中間鍵として、例えばλビットの乱数を設定する。ここで、有向グラフHの先頭座標点(ルート)とは、その座標点から有向枝が出ているが、その座標点に到達することのない座標点である。例えば、図4の有向グラフH(1→64)の先頭座標点は、水平座標軸の左端の[1,1]座標点である。
なお、中間鍵は、安全性を高める目的で使用している。安全性に格段の注意を払わなくてもよいが、セット鍵生成のための演算量を減らしたい場合には、中間鍵を使わず、あるセット鍵から別のセット鍵を直接計算するようにしてもよい。たとえば、上記の例では、部分集合S0のセット鍵k(S0)をPRSGに入力した場合の出力を,k(S1)、k(S2)、k(S3)、k(S4)とし、それぞれの部分集合S1〜4のセット鍵としてもよい。
以上、セット鍵の生成方法について説明した。上記のセット鍵生成方法は、コンテンツ鍵の送信者側の鍵生成サーバで用いられるだけでなく、受信者側の端末装置でも用いられる。
(中間鍵の配信)
ここで、鍵配信サーバから、各ユーザの端末装置への中間鍵の配信について述べる。既に簡単に述べたが、各ユーザの端末装置に対しては、そのユーザの端末装置が含まれる全ての部分集合に対応するセット鍵を導出可能な複数の中間鍵を与えねばならない。もちろん、そのユーザの端末装置が含まれない部分集合に対応するセット鍵を導出可能な中間鍵を与えてはならないし、与える中間鍵の数は、メモリ量の効率化の観点から最小限であることが好ましい。
そこで、中間鍵の配信者は、ユーザuの端末装置が所属する部分集合(以下、「ユーザuが属する部分集合」や、「ユーザuが含まれる部分集合」と表記する場合もある。)を要素に有する有向グラフHを全て抽出する。そして、有向グラフHの先頭座標点(ルート)に対応する部分集合にユーザuが含まれる場合には、その先頭座標点に対応する中間鍵のみをユーザuの端末装置に与える。また、有向グラフHの先頭座標点以外の座標点に対応する部分集合のいずれかにユーザuが属する場合には、ユーザuが部分集合S0には含まれるが、その部分集合S0の親である部分集合parent(S0)には含まれないような、部分集合S0を見つけ、この部分集合S0の中間鍵S0を、ユーザuの端末装置に与える。換言すると、有向グラフHにおいて、先頭座標点以外の座標点の中で、その座標点に対応する部分集合にユーザuが含まれる座標点が複数存在する場合には、その中から、部分集合S0に対応する座標点に到達する有向枝の始点に対応した部分集合parent(S0)にユーザuを含まないような座標点S0を抽出し、その座標点S0の中間鍵t(S0)を、ユーザuの端末装置に与える。もし、そのような座標点S0が複数個存在する場合には、それぞれの中間鍵t(S0)を与える。ここで、座標点の親子関係は、有向枝によって定められ、有向枝の始点座標点が終点座標点の親となり、有向枝の終点座標点が始点座標点の子となる。以下、ある座標点S0に到達する有向枝の始点座標点parent(S0)を親座標点と呼ぶことにする。ある座標点S0が,有効グラフHの始点である場合、親座標点は存在せず、有効グラフHの始点ではない場合、親座標点がただ1つ存在する。1つの有効グラフHについて、自分自身に対応する部分集合にユーザuを含み、その親座標点に対応する部分集合にはユーザuを含まない座標点は、複数存在する場合もある。
図4の例を参照しながら、上記の中間鍵の配信方法について具体的に述べる。
(例1)ユーザ1に対して配信される中間鍵について考える。まず、ユーザ1が属する部分集合を要素に持つ有向グラフHを検索すると、有向グラフH(1→64)のみであることが分かる。そして、ユーザ1は、有向グラフH(1→64)の先頭座標点である部分集合[1,1]に属している。従って、ユーザ1には、中間鍵t([1,1])のみが与えられる。
(例2)ユーザ3に対して配信される中間鍵について考える。まず、ユーザ3が属する部分集合を要素に持つ有向グラフHを検索すると、有向グラフH(1→64)、H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3)が該当する。そこで、有向グラフH(1→64)について検討すると、ユーザ3は、先頭座標点の部分集合[1,1]には属しておらず、3番目の座標点以降の部分集合[1,3],[1,4],・・・,[1,64]に属していることが分かる。これらの座標点のうち、親座標点にユーザ3を含まない座標点は、[1,3],[1,4]のみである。つまり、ユーザ3を含む座標点[1,3],[1,4]の親座標点parent([1,3])およびparent([1,4])である座標点「1,2」には、ユーザ3は含まれない。従って、ユーザ3には、有向グラフH(1→64)に対応する中間鍵として、t([1,3])及びt([1,4])が与えられる。これと同様にして、他の有向グラフH(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3)についても該当する中間鍵が選択され、ユーザ3に与えられる。その結果、ユーザ3には、合計8個の中間鍵が与えられる。
ここで、図5を参照しながら、中間鍵を各ユーザの端末装置に配布するまでの処理について簡単に整理する。図5は、システムセットアップ時の鍵配信サーバにおける中間鍵配信に関する処理フローを表すフローチャートである。
図5に示すように、まず、鍵配信システムの鍵配信サーバは、各種パラメータ等を設定する。例えば、ユーザ数n、セット鍵及び中間鍵のビット数λ、所定のパラメータk、及びPRSGによる擬似乱数生成アルゴリズム等を決定し、全ユーザの端末装置に公開する(S102)。次に、鍵配信サーバは、ユーザの集合を所定の部分集合に分けて、その和集合により表現されるセットシステムΦ(上記式(1)参照。)を決定して公開する(S104)。そして、有向グラフHと、有向グラフHを構成する有向枝Tとを決定して公開する(S106)。さらに、セットシステムΦを構成する各部分集合に対応する中間鍵を決定する(S108)。その後、各ユーザの端末装置20に対し、各ユーザが自身を含む部分集合に対応するセット鍵を導出できるように、必要な中間鍵を配布する(S110)。
以上、中間鍵の配信方法について説明した。この配信方法を用いると、各許諾ユーザの端末装置がセット鍵を生成するために必要な最低限の中間鍵が配信され、鍵配信サーバと端末装置と間の通信量、及び各ユーザの端末装置における中間鍵のメモリ量を節約することができる。
(コンテンツ鍵の配信)
ここで、鍵配信サーバによる、暗号化されたコンテンツ鍵mekの配信方法について説明する。まず、鍵配信サーバは、許諾ユーザの端末装置20のみが生成可能なセット鍵を用いてコンテンツ鍵mekを暗号化する。より具体的には、鍵配信サーバは、排除すべきユーザ(以下、排除ユーザ)の端末装置の集合Rを決定し、全ユーザの端末装置1〜nの集合Nから、排除ユーザの端末装置の集合R(以下「排除ユーザの集合(R)」)を除外した許諾ユーザの端末装置の集合N\R(以下、「許諾ユーザの集合(N\R)」)を決定する。そして、セットシステムΦを構成する部分集合の中から選択された部分集合Si(i=1,2,・・・,m)の和集合により、許諾ユーザの集合(N\R)=S1∪S2∪・・・∪Smを表現する。このとき、部分集合Siの組合せは多数存在するが、mが最小となるような部分集合Siを選択する。このように部分集合Siを選択した後、各部分集合Siに対応するセット鍵k(Si)により、コンテンツ鍵mekを暗号化する。つまり、コンテンツ鍵mekは、セット鍵k(S1)、k(S2)、・・・、k(Sm)によって暗号化され、m個の暗号化されたコンテンツ鍵mekとなる。そして、m個の暗号化されたコンテンツ鍵mekが全ユーザの端末装置1〜nに対して配信される。このとき、許諾ユーザの集合(N\R)を表す情報、又はm個の部分集合Siを表す情報も全ユーザの端末装置1〜nに対して配信される。
ここで、図6を参照しながら、暗号化されたコンテンツ鍵mekの配信に係る処理フローについて簡単に整理する。図6は、コンテンツ鍵の配信に係る処理フローを表すフローチャートである。
図6に示すように、まず、鍵配信サーバは、排除ユーザの集合(R)を決定し、許諾ユーザの集合(N\R)を求める(S112)。次に、セットシステムΦを構成する部分集合から、和集合がN\Rとなるm個の部分集合Si(i=1,2,・・・,m)を、mが最小となるように選択する(S114)。そして、選択された各部分集合Siに対応するセット鍵k(Si)を用いてコンテンツ鍵mekをそれぞれ暗号化する(S116)。さらに、許諾ユーザの集合(N\R)又は各部分集合Siを表す情報と、m個の暗号化されたコンテンツ鍵mekと、を全ユーザの端末装置1〜nに対して配信する(S118)。
以上、コンテンツ鍵mekの暗号化方法、及び配信方法について説明した。この暗号化方法を用いると、セット鍵数が必要最小限となるように効率的に部分集合Siを選択する。このため、必要最小限のセット鍵でコンテンツ鍵mekを暗号化するので、暗号化に要する計算量を節減できると同時に、配信すべき暗号化されたコンテンツ鍵mekの数を低減させ、通信量を削減することが可能になる。
(コンテンツ鍵の復号)
次に、各ユーザの端末装置における、暗号化されたコンテンツ鍵の復号処理について説明する。この復号処理は、端末装置が、上記鍵配信サーバから受信した、許諾ユーザの集合N\R又はm個の部分集合Siを表す情報と、m個の暗号文とに基づいて、コンテンツ鍵mekを得る処理である。
端末装置は、上記鍵配信サーバから、暗号化されたコンテンツ鍵と、許諾ユーザの集合N\Rを表す情報、又はm個の部分集合Siを表す情報と、を受信する。さらに、端末装置は、当該情報を解析して、自身がm個の部分集合Siのいずれかに所属しているか否かを判断する。もし、自身がいずれの部分集合にも所属していない場合には、自身は排除ユーザの端末装置であることになるので、復号処理を終了する。一方、自身が所属する部分集合Siを発見したら、端末装置は、上記のPRSGを用いて、その部分集合Siに対応するセット鍵k(Si)を導出する。PRSGの構成については既に述べた通りである。
このとき、端末装置は、事前のシステムセットアップ時に鍵配信サーバから上記部分集合Siに対応する中間鍵t(Si)を与えられ、予め保持していれば、この中間鍵t(Si)をPRSGに入力すれば、上記部分集合Siに対応するセット鍵k(Si)を導出することが可能である。一方、上記中間鍵t(Si)を保持していない場合には、端末装置は、保持している中間鍵をPRSGに繰り返し入力することにより所望のセット鍵k(Si)を導出することができる。さらに、端末装置は、このようにして導出したセット鍵k(Si)を用いて、暗号化されたコンテンツ鍵mekを復号する。
ここで、端末装置における上記セット鍵k(Si)の導出について図4の例で具体的に説明する。ユーザ3の端末装置において、自身が属する部分集合として「1,8」が選択されたと仮定する。ユーザ3の端末装置は、上述のように、部分集合[1,4]の中間鍵を保持している。図4の有向グラフH(1→64)を参照すると、[1,4]の座標点から、[1,8]の座標点に延びる有向枝が設定されており、この有向枝は、[1,4]の座標点を始点とする有向枝のうち3番目に長さ(ジャンプの距離)が短いものである。このため、[1,4]の中間鍵t([1,4])をPRSGに入力した際の出力のうち、先頭から第3番目のλビットの部分が、部分集合[1,8]の中間鍵t([1,8])となっている。端末装置は、PRSGの出力から、この中間鍵t([1,8])を抽出し、再度PRSGに入力した際の最終部分のλビットを抽出することにより、所望のセット鍵k([1,8])を得ることができる。
同様に、ユーザ1の端末装置において、自身が属する部分集合として「1,8」が選択されたと仮定する。ユーザ1の端末装置は、部分集合[1,1]の中間鍵を保持している。この場合、端末装置20は、[1,1]の中間鍵t([1,1])をPRSGに入力した際の出力のうち、先頭から第1番目のλビットの部分(中間鍵t([1,2])に相当する。)を抽出し、次いで、この中間鍵t([1,2])をPRSGに入力した際の出力のうち、先頭から第2番目のλビットの部分(中間鍵t([1,4])に相当する。)を抽出し、さらに、この中間鍵t([1,4])をPRSGに入力した際の出力のうち、先頭から第3番目のλビットの部分(中間鍵t([1,8])に相当する。)を抽出し、最後に、この中間鍵t([1,8])をPRSGに入力した際の出力のうち、最終部分(セット鍵k([1,8])に相当する。)を抽出することで、所望のセット鍵k([1,8])を得ることができる。
ここで、図7を参照しながら、各ユーザの端末装置における、暗号化されたコンテンツ鍵mekを復号する処理フローについて整理する。図7は、各ユーザの端末装置における、コンテンツ鍵の復号に関する鍵生成処理フローを示したフローチャートである。
図7に示すように、まず、各ユーザの端末装置は、鍵配信サーバから、m個の暗号化されたコンテンツ鍵mekと、許諾ユーザの集合N\Rを表す情報、又はm個の部分集合Si(i=1,2,・・・,m)を表す情報と、を受信する(S120)。次いで、端末装置は、当該情報に基づき、自身が所属する部分集合Siを検索し(S122)、自身がm個の部分集合Siのいずれかに所属しているか否かを判断する(ステップS124)。
この結果、自身が所属する部分集合Siを発見したら、上記のPRSGを用いて、その部分集合Siに対応するセット鍵k(Si)を導出する(S126)。PRSGの構成については既に述べた通りである。もし、その部分集合Siに対応する中間鍵t(Si)を、セットアップ時に鍵配信サーバから与えられて予め保持していれば、一度PRSGを利用することによりセット鍵k(Si)を導出することが可能であるし、一方、当該中間鍵t(Si)を保持していない場合には、PRSGを繰返し利用することにより所望のセット鍵k(Si)を導出することができる。次いで、端末装置は、このようにして導出したセット鍵k(Si)を用いて、暗号化されたコンテンツ鍵mekを復号する(S128)。
一方、上記S124で、自身がいずれの部分集合Siにも所属していないと判断した場合には、端末装置は、自身が、コンテンツを利用可能な端末装置から排除されている旨(排除ユーザである旨)を表示出力して(S130)、コンテンツ鍵の復号処理を終了する。
以上、端末装置におけるコンテンツ鍵の復号方法について説明した。上記の復号方式は、有向グラフHの情報に基づいて中間鍵及びセット鍵を生成するPRSGを用いて実行される。従って、各ユーザの端末装置側にも、有向グラフの情報とPRSGとが必要とされる。しかし、このPRSGを用いる方法であれば、各ユーザの端末装置が保持する中間鍵の数を最小限にすることができる。
以上までで、本実施形態の基盤技術に係る暗号鍵配信方式について説明してきた。この基盤方式を用いると、各ユーザの端末装置が保持すべき中間鍵の個数はO(k*log(n))であり、セット鍵の生成に要する計算量(PRSGの動作回数)は(2k−1)*(n1/k−1)を超えないとされている。しかし、基盤技術に係る暗号鍵配信方式では、後述の図13(A)に示すように、各ユーザの端末装置が保持すべき中間鍵の個数が依然として大きいとう問題があった。
また、暗号化されたコンテンツ鍵mekの復号時に、端末装置が必要とする計算量のうち支配的なものは、所望の中間鍵を導出するためにPRSGを何回実行させるかに依存している。この最悪値は、有向グラフHにおける先頭座標点(ルート)から最も遠い末尾座標点(有向枝が出ていないリーフ)までの、有向枝の本数(即ち、ジャンプ回数)により表される。図4で示した例では、有向グラフH(1→64)の先頭座標点[1,1]から末尾座標点[1,64]まで到達するために、11本の有向枝を経由(11回のジャンプを実行)しなければならず、これは、PRSGを11回も実行しなければならないことを示している。このように、基盤技術に係る暗号鍵配信方式では、PRSGの実行回数多いため、中間鍵を導出するための計算量が多いという問題もあった。
そこで、本願発明者らは上記問題を解決すべく鋭意努力して、以下に説明するような、本発明の一実施形態にかかる暗号鍵配信方式を開発した。この本実施形態にかかる暗号化配信方式は、上記全ユーザの端末装置を示す大きな2分木構造BTを、複数の小さな基本部分木に分割して階層構造化し、各基本部分木に対して上記基盤方式の鍵導出方法を用いるとともに、これらの基本部分木間で有向枝を設定している。これにより、端末装置20が保持する中間鍵数及び端末装置20の計算量の双方の低減を実現できる。以下では、本実施形態にかかる暗号鍵配信方式を実現する鍵配信サーバ10及び端末装置20の機能構成とともに、この暗号鍵配信方式の特徴及び作用効果について詳述する。
[鍵配信サーバ10の構成]
まず、図8を参照しながら、本実施形態に係る鍵配信サーバ10の機能構成について詳細に説明する。図8は、本実施形態に係る鍵配信サーバ10及び端末装置20の機能構成を示すブロック図である。
図8に示すように、鍵配信サーバ10は、木構造設定部102と、座標軸設定部104と、有向枝設定部106と、部分木間有向枝設定部108と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、送信部118と、部分集合決定部120とを備える。このうち、座標軸設定部104、有向枝設定部106及び部分木間有向枝設定部108は、有向グラフ生成部を構成する。また、木構造設定部102と、有向グラフ設定部110とを纏めて、鍵生成ロジック構築ブロックと呼ぶことにする。同様に、初期中間鍵設定部112と、鍵生成部114とを纏めて、鍵生成ブロックと呼ぶことにする。
まず、鍵生成ロジック構築ブロックを構成する各構成要素について説明する。この鍵生成ロジック構築ブロックは、上記の[基盤技術の説明]における(木構造の設定)及び(有向グラフの生成)に対応する処理を行う。
(木構造設定部102)
木構造設定部102は、n(nは2のべき乗)個の端末装置20に対応する番号1〜n(nは自然数)が割り当てられたn個の葉ノードを有する全体木構造BTを、複数の基本部分木に分割してy階層に階層化した木構造を設定する。このように、本実施形態では、木構造設定部102において、基本部分木で階層化された木構造を設定する点が特徴である。なお、以下では、説明の便宜上、端末装置20の全数nが2のべき乗個であるとして説明するが、かかる例に限定されず、例えば、端末装置20の全数が2のべき乗個に一致しない場合には、その端末装置20の全数を超えるような、n(=2のべき乗)個の葉ノードを有する全体木構造を設定すればよい。
本実施形態では、上記の基盤技術で用いた各種のパラメータに加えて、全体木構造BTの階層数を示すパラメータyを新たに用いる。ただし、y|log(n)、即ち、yはlog(n)の約数である。そして、木構造設定部102は、各ユーザの端末装置20の全てを表す2分木の全体木構造BTを、n1/y個の葉ノードを有する基本部分木を用いて階層化する。
全体木構造BTは、上記基盤技術の2分木構造BT(図3参照)に相当する高さlog(n)の完全2分木構造である。この全体木構造BTは、端末装置20が割り当てられたn個の葉ノードと、全体木構造BTの頂点にある根ノードと、これら根ノード及び葉ノード以外の複数の中間ノードと、から構成される。一方、基本部分木は、高さ((log(n))/y)の完全2分木構造である。この基本部分木は、n1/y個の葉ノードと、基本部分木の頂点にある根ノードと、これら根ノード及び葉ノード以外の複数の中間ノードとから構成される。
木構造設定部102は、まず、葉ノードの数nが、端末装置20の全数以上となるように全体木構造を作成し、各葉ノードに対し、左端から右方向に向かって番号1,2,・・・,nを割り当てる。
さらに、木構造設定部102は、上記の全体木構造BTを複数の基本部分木で分割して、y階層に階層化し、下位階層の基本部分木の根ノードが、その上位階層の基本部分木の葉ノードと一致するように基本部分木を組み合わせて、全体木構造BTを構成する。
このように階層化された木構造の具体例を図9に示す。図9の例では、端末装置20の数n=64、パラメータy=2に設定されている。図9に示すように、全体木構造BT(高さ6,葉ノード数64)は、9個の基本部分木(高さ3、葉ノード数8)に分割されており、2階層構造となっている。このうち、上位階層の基本部分木は1個であり、下位階層の基本部分木は8個である。上位階層の基本部分木の根ノードは、全体木構造BTの根ノード(root)と同一であり、この上位階層の基本部分木の葉ノードは、a,b,c,・・・,hの8個である。また、下位階層の各基本部分木の根ノードは、それぞれ、上記上位階層の基本部分木の各葉ノードa,b,c,・・・,hと一致しており、下位階層の基本部分木の葉ノードは、上記全体木構造BTの葉ノード1〜64の一部である8個の葉ノード(例えば、1〜8,9〜16,17〜24,・・・,57〜64)である。
このように、図9中のa,b,c,・・・,hは、上位階層の基本部分木の葉ノード並びに下位階層の基本部分木の根ノードを表すとともに、当該根ノードの下位に位置する葉ノードの集合{Aa},{Ab},{Ac},・・・,{Ah}も表している。例えば、aは、集合{Aa}=部分集合{1,2,・・・,8}を,bは、集合{Ab}=部分集合部分{9,・・・,16}を表している。
なお、最下位階層の基本部分木の各葉ノードが各端末装置20にそれぞれ対応する。また、以下では、説明の便宜上、端末装置20とユーザとが1:1対応していると仮定し、全体木構造BTの葉ノード(最下位階層の各基本部分木の葉ノード)1〜nに対応付けられる「端末装置20」を「ユーザ」と表記して説明する場合もある。なお、図9は、BTの葉ノード数がn=64、y=2の例であるが、かかる例に限定されず、n=4(=2),8(=2),16(=2),32(=2),128(=2),・・・など、nは任意の2のべき乗数であってよい。また、階層化パラメータyも、図のy=2の例以外にも、log(n)の約数であれば、任意に設定可能である。
さらに、木構造設定部102は、上記のように設定した全体木構造BTを構成する各結節点(ノード)、即ち、各基本部分木の根ノード及び中間ノードに対し、ノード間の位置関係を考慮して、各ユーザの端末装置20に対応する葉ノード1〜nを組み合わせた集合をそれぞれ対応付ける。このように、木構造設定部102は集合対応付け部としても機能する。以下に、この集合の対応付けについて詳述する。
まず、以下の説明に用いる集合、記号を定義する。
N : 全ての端末装置20(ユーザ)の集合{1,2,・・・,n}
Aw : 全体木構造BTのノードwの下位に位置する葉ノードの集合。ただし、ノードwが全体木構造BTの葉ノードである場合(即ち、ノードwが最下位階層の基本部分木の葉ノードである場合)には、Awは当該葉ノード(即ち、ノードw)のみの集合を表す。以下、これらの葉ノードを総称して、「Awに属する葉ノードの集合」という。
pw : Awに属する葉ノードの集合のうち最左に位置する葉ノード
qw : Awに属する葉ノードの集合のうち最右に位置する葉ノード
[pw,qw] : {pw,pw+1,pw+2,・・・,qw−1,qw}
(−i) : 各基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノード
(+i) : 各基本部分木の葉ノードのうち、ある葉ノードvよりもi個右に位置する葉ノード
基本部分木の2つの葉ノードu,v(vはuの右にある)について、
集合(u→v)={Au,Au∪Au(+1),・・・,Au∪・・・∪Av}
={[pu,qu],[pu,qu(+1)],・・・,[pu,qv(−1)],[pu,qv]}
集合(u←v) : {Av,Av∪Av(−1),・・・,Av∪・・・∪Au}
lv’ : 基本部分木のノードv(根ノード又は中間ノード)の下位に位置する複数の葉ノードのうち、左端に位置する葉ノード
rv’ : 基本部分木のノードv(根ノード又は中間ノード)の下位に位置する複数の葉ノードのうち、右端に位置する葉ノード
A : 基本部分木の根ノードの集合から、全体木構造の根ノード(root)を除いた集合
BTL : 基本部分木の中間ノードのうち、親ノードの左側に位置する中間ノードの集合
BTR : 基本部分木の中間ノードのうち、親ノードの右側に位置する中間ノードの集合
なお、ここで言う親子関係とは、基本部分木上で接続されたノード間の上下関係を意味し、親ノードが上位に位置して子ノードが下位に位置する関係を示している。
上記定義された集合及び記号を用いて、木構造設定部102は、上記のように階層構造化した全体木構造BTの各ノード、即ち、各基本部分木の根ノード及び中間ノードに対し、ノード間の位置関係を考慮して、端末装置20に対応する葉ノード1〜nを組み合わせた集合をそれぞれ対応付ける。
詳細には、木構造設定部102は、最上位階層の基本部分木の根ノードroot(全体木構造BTの根ノードrootに対応する。)に対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付ける。図9の例では、上位階層の基本部分木の根ノードrootに対して、集合(a→h)と集合(b←h)が対応付けられている。
また、木構造設定部102は、最下位階層以外の基本部分木の中間ノードに対しては、各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、一方、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付ける。図9の例では、上位階層の基本部分木の6つの中間ノードvに対して、それぞれ、集合(b←d)、集合(e→g)、集合(b←b)、集合(c→c)、集合(f←f)、集合(g→g)が対応付けられている。例えば、e,f,gはそれぞれ、部分集合{33,・・・,40},部分集合{41,・・・,48},部分集合{49,・・・,56}を表しているので、集合(e→g)は、これらの部分集合の集合{Ae,Ae∪Af,Ae∪Af∪Ag}={{33,・・・,40},{33,・・・,48},{33,・・・,56}}を表す。
このように、本実施形態では、上位階層の基本部分木のノードに対しては、全体木構造の葉ノード1〜n単位ではなく、当該上位階層の基本部分木の葉ノードa〜h単位で、部分集合が対応付けられる。なお、図9の例では、2階層構造であるため中間階層の基本部分木は存在しないが、例えば、3階層以上に階層構造化した場合には、中間階層の基本部分木のノードに対しても、当該中間階層の基本部分木の葉ノード単位で、部分集合が対応付けられる。
また、木構造設定部102は、最上位階層以外の階層の基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び(lv’(+1)←rv’)を対応付ける。図9の例では、下位階層の8つの基本部分木の根ノードa,b,c,・・・,hに対して、それぞれ2つの集合が対応付けられている。例えば、根ノードaに対しては集合(2←8)及び集合(1→7)が対応付けられている。このように本実施形態では、根ノードroot以外であっても、基本部分木の根ノードであれば、2つの集合が対応付けられる。
また、木構造設定部102は、最下位階層の各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、一方、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付ける。例えば、図9の下位階層の左端の基本部分木の各中間ノードについてはそれぞれ、集合(2←4),集合(5→7),集合(2→2)などが対応付けられている。
以上のように、本実施形態にかかる暗号鍵配信方式では、複数の基本部分木で階層化された2分木構造BTを用いてユーザ集合の部分集合を定義している。この方法によって様々な組合せ持つユーザの部分集合を表現することが可能になる。なお、これらの部分集合により構築された全体集合のことをセットシステムΨと呼び、下式(2)のように定義する。つまり、下式(2)は、上記の方法で構築した2分木の全体木構造BTを数学的に表現したものである。
Figure 2008131076
以上、本実施形態にかかる木構造設定部102により、ユーザの端末装置20の部分集合を規定する2分木構造を設定する方法について述べた。本実施形態にかかる暗号鍵配信方式の基本コンセプトは、これらの各部分集合に対して、コンテンツ鍵を暗号化するためのセット鍵を設定し、各セット鍵によりコンテンツ鍵を暗号化して全ユーザに配信することにある。上記のように部分集合を定義したことにより、少なくともユーザの組合せを分類する一手段が規定された。以下では、これらの部分集合を利用した有向グラフを作成し、この有向グラフに基づきセット鍵を生成するアルゴリズムについて説明する。
有向グラフ生成部110は、上記木構造設定部102により設定された階層型の全体木構造BTの各ノードに対応付けられた集合(lroot’→rroot’)、集合(lv’→rv’(−1))、集合(lroot(+1)←rroot’)及び集合(lv’(+1)←rv’)に対応する有向グラフH’をそれぞれ作成する。有向グラフH’は、これらの集合に含まれる部分集合に対応する座標点を、部分集合の包含関係が大きくなるように順次配列した水平座標軸と、この水平座標軸上の座標点を相互に結ぶ有向枝と、からなる。
この有向グラフ生成部110は、各有向グラフH’の水平座標軸を設定する座標軸設定部104と、各有向グラフH’の水平座標軸上に有向枝を設定する有向枝設定部106と、相異なる基本部分木に対応する有向グラフH’間に有向枝を追加設定する部分木間有向枝設定部108と、を備える。以下に有向グラフ生成部110の各部について説明する。
(座標軸設定部104)
座標軸設定部104は、上記最上位階層の基本部分木の根ノードrootに対応付けられた集合(lroot’→rroot’)に含まれる各部分集合に対応する座標点を、左から右に向かって包含関係が大きくなるように配列した第1水平座標軸(例えば、図10のH’(a→h)の座標軸)を設定する。また、座標軸設定部104は、上記最上位階層以外の基本部分木の根ノードv、又は、各基本部分木の中間ノードvに対応付けられた集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点を、左から右に向かって包含関係が大きくなるように配列した第1水平座標軸(例えば、図10のH’(e→g)、H’(1→7)、H’(5→7)等の座標軸)をそれぞれ設定する。
また、座標軸設定部104は、上記最上位階層の基本部分木の根ノードrootに対応付けられた集合(lroot(+1)←rroot’)に含まれる各部分集合に対応する座標点を、右から左に向かって包含関係が大きくなるように配列した第2水平座標軸(例えば、図10のH’(b←h)の座標軸)を設定する。また、座標軸設定部104は、上記最上位階層以外の基本部分木の根ノードv、又は、各基本部分木の中間ノードvに対応付けられた集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点を、右から左に向かって包含関係が大きくなるように配列した第2水平座標軸(例えば、図10のH’(b←d)、H’(2←8)、H’(2←4)等の座標軸)をそれぞれ設定する。
上記のように、座標軸設定部104は、木構造設定部102により設定された基本部分木の各ノードに対応する有向グラフH’を構築するための座標軸を設定する。このとき、第1水平座標軸は右向きの座標軸であり、第2水平座標軸は左向きの座標軸である。これらの第1及び第2水平座標軸は、各基本部分木の各根ノードや中間ノードvに対して設定されるため、それぞれ、複数の座標軸が設定される。
さらに、座標軸設定部104は、これらの第1及び第2水平座標軸の各々の左端及び/又は右端に、少なくとも合計2つの仮座標点を追加設定する。本実施形態では、例えば、第1及び第2水平座標軸の各々の左端にある座標点の更に左側と、右端端にある座標点の更に右側とに、仮座標点をそれぞれ1つずつ追加設定する。この場合、第1水平座標軸の左端に設定された仮座標点は有向枝設定時の始点となり、第1水平座標軸の右端に設定された仮座標点は、有向枝設定時の終点となる。一方、第2水平座標軸の左端に設定された仮座標点は有向枝設定時の終点となり、第2水平座標軸の右端に設定された仮座標点は、有向枝設定時の始点となる。なお、仮座標点の設定手法は、上記例に限定されず、例えば、第1及び第2水平座標軸の左端又は右端のいずれか一方に、少なくとも2つの仮座標点を設定してもよい。
(有向枝設定部106)
有向枝設定部106は、上記座標軸設定部104により設定された座標点間に、有効グラフIを構成する有効枝を設定する機能を有する。
詳細には、有向枝設定部106は、まず、所定の整数k(ただし、k|log(n1/y)。即ち、kはlog(n1/y)の約数)を設定し、n(x−1)/k・y<(rv’−lv’+1)≦nx/k・yを満たす整数xを算定する。
さらに、有向枝設定部106は、上記第1水平座標軸を有する有効グラフIについては、各第1水平座標軸上の左端にある仮座標点(始点)から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる右向きの有向枝の設定を繰り返し行う。また、有向枝設定部106は、上記第2水平座標軸を有する有効グラフIについては、各第2水平座標軸上の右端にある仮座標点から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる左向きの有向枝の設定を繰り返し行う。
次いで、有向枝設定部106は、上記各第1及び第2水平座標軸について、座標軸左端および右端に1つずつある仮座標点を始点又は終点とする全ての有向枝を除外する。さらに、有向枝設定部106は、各第1及び第2座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外する。このようにして、有効枝設定部106は、上記各基本部分木の各根ノードおよび中間ノードの各々に対応づけられた各有効グラフIの各水平座標軸上に、座標点間を結ぶ鎖である複数の有効枝を設定する。
以上のような本実施形態にかかる座標軸設定部104及び有効枝設定部106による有効グラフIの生成手法は、葉ノード数がn1/yであることを除けば、上記の基盤技術にかかる有効グラフHの生成手法と、略同一である。以下に、その具体例について説明する。ここでは、有効グラフIの生成手法の一例として、図9に示す最上位階層の基本部分木の根ノード(全体木構造BTの根ノードroot)に対応づけられた有向グラフI(lroot’→rroot’)=有向グラフI(a→h)の例について説明する。
上記基盤技術と同様に,根ノードrootに対応付けられる右向きのグラフである有向グラフI(a→h)は、まず、集合(lv’→rv’(−1))に対応する有向グラフI(a→g)を作成し、その後に有向枝E([a,g],[a,h])を加えることで作成する。このため、まず、有向グラフI(a→g)を下記のように作成する。
(S10)まず、座標軸設定部104により、有向グラフI(a→g)を構成するための第1水平座標軸を設定する。この第1水平座標軸には、集合(a→g)の要素を成す部分集合Siが座標点として割り当てられる。これらの座標点を成す部分集合Siは、左から右向かって包含関係が大きくなるように配列される。例えば、有向グラフH(a→h)=H({[a,a],[a,b],・・・,[a,g]})では、座標軸は、左から順に部分集合[a,a],[a,b],・・・,[a,g]が割り当てられた7つの座標点を有する。その後、座標軸の最左に位置する座標点の左側に始点となる仮座標点を設定して始点とし、座標軸の最右に位置する座標点の右側に終点となる仮座標点を設定して、終点とする。このように設定された座標軸は、左端の仮座標点(始点)から右端の仮座標点(終点)までの長さLvが、Lv=rv’−lv’+1=h−a+1=8となる。
(S20)有効枝設定部106により、有向グラフI(a→g)を構成する有向枝を設定する。
(S20−1)n(x−1)/k・y<(h−a+1)≦nx/k・yを満たす整数xを算出する。この整数xは、1≦x≦kを満たす。
(S20−2)カウンタiを0からx−1まで動かしながら、次の操作を繰り返し行う。第1水平座標軸の左端にある始点(仮座標点)から開始し、その座標点からni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/(k・y)だけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端にある終点(仮座標点)に到達するか、或いは、次に設定される有向枝の終端が当該終点を超えるまで、繰り返し行う。
(S30)第1水平座標軸の両端にある仮座標点を始点又は終点とする有向枝を全て削除する。
(S40)ある座標点に到達する有向枝が複数ある場合には、最長の有向枝のみを残し、この最長の有向枝以外の有向枝を全て削除する。
以上のステップ(S10)〜(S40)を実行すると、有向グラフI(a→g)が完成する。そして、この有向グラフI(a→g)に有向枝E([a,g],[a,h])を加えることで,有向グラフI(a→h)が完成する。例えば、図10に示す有向グラフI(a→h)を参照すると、部分集合[a,a](“a”のボックスで表示),[a,b](“b”のボックスで表示),・・・,[a,h](“h”のボックスで表示)に対応する座標点と、これらの座標点を相互に結ぶ直線状の有効枝又はアーチ状の曲線の有効枝とが設定されている。図10には水平座標軸を明示していないが、座標点と有向枝の端部との交点の組により水平座標軸が構成されている。さらに、有向グラフI(a→h)の上部には、右向きの白抜き矢印が描画されているが、これが有向枝の方向を示すものである。つまり、有向グラフI(a→h)を構成する有向枝は全て右向きであることを示している。よって、有向グラフI(a→h)では、例えば、部分集合[a,a]の座標点aからは、部分集合[a,b]の座標点bに到達する右向きの有効枝が1本だけ設定され、部分集合[a,b]の座標点bからは、部分集合[a,c]の座標点cと部分集合[a,d]の座標点dとに到達する右向きの有効枝が2本設定されている。
上記有向グラフI(a→g)と同様にして、最上位階層の基本部分木の根ノードrootに対応づけられた有効グラフI(lroot(+1)←rroot’)や、他の各基本部分木の根ノード又は各基本部分木の核中間ノードに対応づけられた有効グラフI(lv’→rv’(−1))、有効グラフI(lv’(+1)←rv’)が生成される。但し、有効グラフI(lv’→rv’(−1))、有効グラフI(lv’(+1)←rv’)の座標軸を設定する際には、第2水平座標軸上に右から左に向かって包含関係が大きくなるように部分集合Siを配列し、有向枝の向きを左向きにする。
以上のようにして、各々の有効グラフIが生成される。図10は、図9で示したセットシステムΨを、これらの有効グラフIで表したものである。ただし、図10は、y=2、k=3と設定したときのものである。
図10に示す有向グラフI(a→h)及びI(b←h)は、最上位階層の基本部分木の根ノードrootに対応づけられた有効グラフIである。また、有向グラフI(b←d)及びI(e→g)は、最上位階層の基本部分木の上位の中間ノードに対応づけられた有効グラフIであり、有向グラフI(b←b)、I(c→c)、I(f←f)、I(g→g)は、最上位階層の基本部分木の下位の中間ノードに対応づけられた有効グラフIである。
また、有向グラフI(1→7)及びI(2←8)、有向グラフI(9→15)及びI(10←16)、・・・、有向グラフI(57→63)及びI(58←64)は、それぞれ、下位階層の8つの基本部分木の根ノードvに対応づけられた有効グラフIである。また、有向グラフI(2←4)、I(5→7)、・・・、I(58←60)、I(61→63)は、それぞれ、当該下位階層の8つの基本部分木の上位の中間ノードvに対応づけられた有効グラフIである。さらに、1つの座標点(黒丸)で表す有向グラフI(2←2)、I(3→3)、・・・、I(62←62)、I(63→63)は、それぞれ、当該下位階層の8つの基本部分木の下位の中間ノードvに対応づけられた有効グラフIである。
この図10のように、全体木構造BTを複数の基本部分木に分割、階層化して、これに対応する有効グラフIを生成することで、各有効グラフIの長さを短くできるとともに、各有効グラフIにおける有効枝の本数及び長さ(ジャンプ回数及び距離)を小さくできる。従って、端末装置20が保持すべき鍵数と、端末装置20の計算量を低減できる。
(部分木間有向枝設定部108)
図8に示す部分木間有向枝設定部108は、階層構造化された全体木構造BTにおける下位階層の基本部分木に対応する有向グラフIから、上位階層の基本部分木に対応する有向グラフIへの有向枝を追加設定する。詳細には、部分木間有向枝設定部108は、上記下位階層の基本部分木に対応する有向グラフIにおける第1座標点(例えば、図11の有効グラフI(1→7)の部分集合[1,7]の座標点)から、上位階層の基本部分木に対応する有向グラフIにおける第2座標点(例えば、図11の有効グラフI(a→h)の部分集合[a,a]の座標点)への有向枝を設定する。この第2座標点が表す部分集合(例えば[a,a])は、第1座標点に対応する部分集合(例えば[1,7])を包含する関係にある。
図11は、部分木間有向枝設定部108により、相異なる基本部分木に対応する有向グラフI間に、部分集合Siが包含関係を有するように有向枝を設定した状態の有向グラフIを示す。
図10及び図11に示すように、“a”のボックスで表示される第2座標点の部分集合[a,a]={1,2,・・・,8}は、部分集合{1,2,・・・,7}を含んでいる、即ち、部分集合[a,a]は部分集合[1,7]の親集合となっている。そこで、部分木間有向枝設定部108は、有効グラフI(1→7)における部分集合[1,7]に対応する座標点(第1座標点)から、有効グラフI(a→h)における部分集合[a,a]に対応する座標点(第2座標点)まで、有効枝を追加設定する。
同様に、部分木間有向枝設定部108は、有効グラフI(58←64)における部分集合[64,58]に対応する座標点(第1座標点)から、有効グラフI(b←h)における部分集合[h,h]に対応する座標点(第2座標点)まで、有効枝を追加設定する。さらに同様に、部分木間有向枝設定部108は、有効グラフI(26←32)における部分集合[32,26]に対応する座標点(第1座標点)から、有効グラフI(b←d)における部分集合[d,d]に対応する座標点(第2座標点)まで、有効枝を追加設定し、また、有効グラフI(33→39)における部分集合[33,39]に対応する座標点(第1座標点)から、有効グラフI(e→g)における部分集合[e,e]に対応する座標点(第2座標点)まで、有効枝を追加設定する。さらに同様に、部分木間有向枝設定部108は、有効グラフI(10←16)、I(17→23)、I(42←48)、I(49→55)の部分集合[16,10]、[17,23]、[48,42]、[49,55]の座標点(第1座標点)から、それらを包含する、有効グラフI(10←16)、I(17→23)、I(42←48)、I(49→55)の部分集合[b,b]、[c,c]、[f,f]、[g,g]の座標点(第2座標点)に対して、それぞれ有効枝を追加設定する。
このように、有効グラフI間で有効枝を追加設定することで、端末装置20の保持すべき中間鍵の鍵数を更に低減できる。例えば、有効グラフI(1→7)の部分集合[1,7]から、有効グラフI(a→h)の部分集合[a,a]まで有効枝を追加設定することにより、1〜7番の端末装置20は、部分集合[a,a]等の中間鍵を保持していなくても、自身の保持する中間鍵(例えば、中間鍵t([1,7]))をPRSGに入力することで、8つの部分集合[a,a]、[a,b]、・・・、[a,h]の中間鍵t([a,a])、t([a,b])、・・・、t([a,h])を導出することができる。このため。これらの端末装置20は、保持する中間鍵t(S)の鍵数を低減できる。他の基本部分木間の有効枝についても同様に、端末装置20の保持すべき中間鍵t(S)の鍵数を低減する作用を奏する。
以上、鍵配信サーバ10の鍵生成ロジック構築ブロックの各部について説明した。さらに、図8を参照すると、鍵配信サーバ10は、上記の鍵生成ロジック構築ブロックの他に、初期中間鍵設定部112及び鍵生成部114を有する鍵生成ブロックと、暗号化部116と、送信部118と、部分集合決定部120と、を備える。
(初期中間鍵設定部112)
初期中間鍵設定部112は、基本部分木の各ノードに対応する各有向グラフIについて、有向グラフIの先頭座標点に対応する中間鍵を生成する。先頭座標点とは、右向きの第1水平座標軸を有する有効グラフIでは、左端に位置する座標点(例えば、有効グラフI(1→7)では、部分集合[1,1]の座標点)であり、一方、左向きの第2水平座標軸を有する有効グラフIでは、右端に位置する座標点(例えば、有効グラフI(58←64)では、部分集合[64,64]の座標点)である。初期中間鍵は、この先頭座標点の中間鍵t(S)である。この初期中間鍵が得られれば、例えば擬似乱数生成器PRSGを用いて、当該初期中間鍵に対応する有効グラフIに基づき、有効グラフIに含まれる他の座標点の中間鍵を順次、導出できる。初期中間鍵設定部112は、例えば、擬似乱数生成器PRSGにより乱数を発生させて、各中間鍵として当該乱数を設定してもよいし、又は所定の数値を各中間鍵に設定してもよい。
(鍵生成部114)
鍵生成部114は、上記グラフ生成部110により生成された有向グラフIに基づいて、コンテンツ鍵mekを暗号化するためのセット鍵K(Si)を、有効グラフI内の座標点に対応する部分集合Siごとに生成する。詳細には、鍵生成部114は、有向グラフIにおけるある座標点に対応する部分集合Sの中間鍵t(S0)が入力されると、当該部分集合S0に対応するセット鍵k(S0)と、当該座標点Sを始点とする各有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力する。つまり、鍵生成部114は、有向グラフIを構成するある有向枝について、その有向枝の始点が示す座標点に対応する所定の中間鍵t(S0)が入力されると、その有向枝の始点が示す座標点に対応するセット鍵k(S0)と、その有向枝の始点から伸びる、多くともk本の全ての有向枝の終点に対応する中間鍵t(S1),t(S2),・・・,t(Sk)を出力する。
この鍵生成部114は、例えば、上記基盤技術にかかる疑似乱数生成器(PRSG)と、このPRSGを制御する制御部とから構成される。鍵生成部114のPRSGとしては、セット鍵k(Si)を生成するために、例えば、λビットの入力に対して(k+1)λビットの出力を出す上述のPRSGを利用する。このPRSGは、ある座標点(部分集合S0)に対応する中間鍵t(S0)を入力すると、当該座標点を始点とする有向枝の終点の各座標点(部分集合S1、S2、・・・、Sk)に対応する中間鍵t(S1)、t(S2)、・・・、t(Sk)と、当該部分集合S0のセット鍵k(S0)と、を出力する。つまり、t(S1)||・・・||t(Sk)||k(S0)←PRSG(t(S0))である。このPRSGの出力を左からλビットごとに区切ることで、中間鍵t(S1)、t(S2)、・・・、t(Sk)と、セット鍵k(S0)とが得られる。
(暗号化部116)
暗号化部116は、セット鍵k(Si)を用いて、コンテンツを暗号化するためのコンテンツ鍵mekを暗号化する。コンテンツ鍵mekは一つであるが、セット鍵k(Si)はセットシステムΨを構成する部分集合Siの数だけ存在する。暗号化部116は、セットシステムSを構成する全ての部分集合のうち、後述する部分集合決定部120において選択された部分集合に対応する各セット鍵を用いてコンテンツ鍵を暗号化する。つまり、暗号鍵116は、各セット鍵k(Si)に対応する暗号化されたコンテンツ鍵mekを生成する。その為、選択された部分集合の数がmであれば、暗号化されたコンテンツ鍵mekもm個作成される。なお、暗号化部116は、コンテンツ自体を暗号化することもできる。例えば、暗号化部116は、コンテンツ鍵mekを用いてコンテンツ自体を暗号化してもよいし、上記の各セット鍵k(Si)を用いてコンテンツ自体を暗号化してもよい。但し、セット鍵k(Si)を用いてコンテンツ自体を暗号化する構成は、本実施形態の一変形例である。
(送信部118)
送信部118は、ネットワーク5を介して、各端末装置20に各種情報を送信する。例えば、送信部118は、全体木構造BTの葉ノード1〜nに対応付けられた全ての端末装置20に対し、上記暗号部116により各セット鍵k(Si)で暗号化されたコンテンツ鍵mekを送信する。なお、送信部118は、上記暗号化されたコンテンツ鍵mekの代わりに、各セット鍵k(Si)で暗号化されたコンテンツ自体を端末装置20に送信してもよい。
また、送信部118は、セットアップ時に、各端末装置20に中間鍵を配信する。例えば、送信部118は、上記の有向グラフIを参照しながら、各端末装置20に対して、その端末装置20が属する部分集合Siの中間鍵t(Si)を配信してもよい。このとき、送信部118は、各端末装置20が、自身の所属する全ての部分集合Siの中間鍵を導出できるように、必要最低限の中間鍵を配信してもよい。つまり、送信部118は、セットシステムΨを構成する部分集合の中から、端末装置20が所属する部分集合Siを抽出し、その抽出された部分集合Siに対応する有向グラフIの座標点のうち、その座標点に到達する有向枝の始点に対応する部分集合Sjに当該端末装置20が含まれないような座標点を選択して、その選択された座標点に対応する中間鍵t(Sj)のみを当該端末装置20に配信してもよい。但し、送信部118は、中間鍵t(Si)の配信先の端末装置20が所属する部分集合Siが、有向グラフIの先頭座標点に対応する場合には、当該先頭座標点に対応する中間鍵t(Si)のみを当該配信先ユーザに配信してもよい。
また、送信部118は、例えば、セットシステムΨに関する情報(例えば、n,λ、k,y、PRSGの情報など)、及び、有向グラフIに関する情報(例えば、上記有向グラフ生成部110により生成された複数の有向グラフI自体など)を、各端末装置20に配信する有向グラフ情報配信部としても機能することができる。具体的には、例えば、送信部118は、各中間鍵t(Si)を入力することにより、有向グラフIに基づいて所定の中間鍵t(Si)とセット鍵k(Si)とを出力するPRSGの鍵生成アルゴリズムに関する情報(例えば、鍵生成プログラム)を配信してもよい。
なお,この送信部118による中間鍵t(Si)の配布は、コンテンツの配布に先立ち,コンテンツの配信とは別の通信路を用いて行ってもよい。例えば、鍵配信サーバ10が各端末装置20用の中間鍵t(Si)を出力して記録媒体に記録し,端末装置20を製造する工場において,端末装置20の製造時に、この記録媒体から読み出した各端末装置20ごとの中間鍵t(Si)を各端末装置20に格納してもよい。
(部分集合決定部120)
部分集合決定部120は、セット鍵k(Si)によるコンテンツ鍵mek又はコンテンツの復号を不能にすべき排除対象の端末装置20の集合(R)(以下「排除ユーザの集合(R)」という。)を決定し、全体木構造BTの葉ノード1〜nに割り当てられた全ての端末装置20の集合(N)から、上記排除ユーザの集合(R)を除外することで、セット鍵k(Si)によるコンテンツ鍵mek又はコンテンツの復号を許可する端末装置20の集合(N\R)(以下「許諾ユーザの集合(N\R)」という。)を決定する。さらに、部分集合決定部120は、許諾ユーザの集合(N\R)={S1∪S2∪・・・∪Sm}を満たすm個(mは自然数)の部分集合S1〜Smを、mが最小となるように決定する。
なお、部分集合決定部120は、許諾ユーザの集合(N\R)を決定する許諾ユーザ集合決定部と、許諾ユーザの集合(N\R)を構成する部分集合Siの組を決定する許諾ユーザ部分集合決定部とから構成されていてもよい。このようにmを最小化するように部分集合Siを決定することで、保持すべき中間鍵t(Sm)およびセット鍵k(Sm)の鍵数およびこれらの鍵の生成に要する計算量を低減できる。
上記のように、部分集合決定部120により許諾ユーザの集合(N\R)={S1∪S2∪・・・∪Sm}を満たす部分集合(S1、S2、・・・、Sm)が決定されると、送信部118は、コンテンツ鍵mek等の復号が許諾された端末装置20を識別するための許諾端末識別情報を、各端末装置20に送信する。この許諾端末識別情報は、例えば、許諾ユーザの集合(N\R)を表す情報、排除ユーザの集合(R)を表す情報、許諾ユーザの集合(N\R)を構成する部分集合(S1、S2、・・・、Sm)を示す情報、又は、コンテンツ鍵mekを暗号化するために用いた1又は2以上のセット鍵k(Sj)を示す情報などである。かかる許諾端末識別情報に基づき、端末装置20は、自身が排除されているか否かを判断できる。
また、暗号化部116は、部分集合決定部120により決定された部分集合(S1、S2、・・・、Sm)に対応するセット鍵を用いてコンテンツ鍵mekを暗号化し、そして、送信部118は、その暗号化されたコンテンツ鍵mekを各端末装置20に配信する。
以上、本発明の好適な実施形態に係る鍵配信サーバ10の構成について説明した。このように、本実施形態の特徴は、主に、鍵生成ロジック構築ブロックの構成にある。特に、鍵生成ロジックを決定する有向グラフIを生成するための部分木間有向枝設定部108を、基本部分木で階層化する点に特徴を有している。本実施形態に係る部分木間有向枝設定部108は、各ユーザの端末装置20がセット鍵k(Si)を生成する際に要する計算量を増加させずに、それぞれの端末装置20が保持すべき中間鍵t(Si)の鍵数を低減させることが可能な鍵生成ロジック(有向グラフ)を生成することができる。その結果、各端末装置20が中間鍵t(Si)を保持するために必要とするメモリ量を削減できるとともに、端末装置20に中間鍵t(Si)を配信するための配信コストを低減することが可能になる。
以上、鍵配信サーバ10の各部の機能構成について説明した。本実施形態では、上記鍵配信サーバ10の各部は、上記各機能を実現するプログラムを鍵配信サーバ10にインストールすることにより構成されるが、かかる例に限定されず、上記各部の一部又は全部を専用のハードウェアで構成してもよい。なお、上記プログラムは、ポータブル記憶媒体等のコンピュータ読み取り可能な記憶媒体に記憶されて鍵配信サーバ10に提供されてもよいし、或いは、外部装置からネットワーク5等の通信路を介して鍵配信サーバ10に伝送されてもよい。
[端末装置20の構成]
次に、さらに図8を参照しながら、本実施形態に係る端末装置20の機能構成について説明する。図8は、本実施形態にかかる端末装置20の機能構成を示すブロック図である。
図8に示すように、端末装置20は、受信部124と、判断部126と、鍵生成部128と、復号部130とを備える。なお、端末装置20は、全体木構造の末端の各葉ノード1〜nのいずれかに割り当てられている。
(受信部124)
受信部124は、鍵配信サーバ10が備える送信部118からネットワーク5を介して送信された各種の情報を受信する。例えば、受信部124は、鍵配信サーバ10から、コンテンツ鍵mek又は各セット鍵k(Si)で暗号化されたコンテンツ、各セット鍵k(Si)で暗号化されたコンテンツ鍵mek、所定の1又は2以上の中間鍵t(Si)、セットシステムΨ又は有向グラフIに関する情報、又は上記の許諾端末識別情報(例えば、上記許諾ユーザの集合(N\R)を表す情報、又は許諾ユーザの集合(N\R)を構成する部分集合(S1、S2、・・・、Sm)を示す情報等)などを受信する。
また、受信部124は、一つの情報源から情報を受信するだけでなく、複数の情報源から情報を収集してもよい。例えば、受信部124は、有線又は無線のネットワーク5に接続された複数の情報源(例えば、鍵配信サーバ10)、又はネットワーク5を介さずに直接的又は間接的に接続された情報源(例えば、光ディスク装置、磁気ディスク装置、又は携帯型端末装置等の情報メディア)から情報を取得してもよい。もちろん、受信部124は、他の端末装置20から情報を受信してもよいため、例えば、有向グラフIの情報を、同一の配信先グループに属する他の端末装置20との間で共有するように構成されていてもよい。この場合、同一の配信先グループとは、例えば、同一又は複数の鍵配信サーバ10から配信されるコンテンツの視聴者ユーザグループとして認定された複数の端末装置20のグループを意味し、上記の全体木構造BTの葉ノード1〜nのいずれかに対応する。なお、中間鍵は、上述のように、あらかじめ端末装置20に与えられ、端末装置20が保持しておいてもよい。
(判断部126)
判断部126は、上記受信部124により、上記の許諾端末識別情報が受信された場合に、当該受信された許諾端末識別情報に基づいて、当該端末装置20が、上記許諾ユーザの集合(N\R)に含まれる部分集合S1〜Smのいずれかに属しているか否かを判断する。この許諾端末識別情報は、許諾ユーザの集合(N\R)を表す情報、又は、この集合(N\R)を構成する部分集合S1〜Smを表す情報などである。さらに、判断部126は、当該判断結果に基づいて、端末装置20が、暗号化されたコンテンツの復号を許可されているか否かを判断する。
つまり、端末装置20は、自身が所属する部分集合Siに対応するセット鍵k(Si)を生成するための中間鍵t(Si)しか保持していない。このため、鍵配信サーバ10が、上記許諾ユーザの集合(N\R)を表す情報、又は、この集合(N\R)を構成する部分集合S1〜Smを表す情報に基づいて、この集合(N\R)を構成する部分集合S1〜Smの中に、端末装置20自身が所属する部分集合Siが含まれるか否かを予め判断する必要がある。この判断を行うのが判断部126である。なお、この判断基準となる鍵配信サーバ10からの受信情報は、上記以外にも、例えば、コンテンツ鍵mekを暗号化するために用いた1又は2以上のセット鍵k(Sj)を示す情報であってもよい。
なお、上記許諾端末識別情報等は、例えば、鍵配信サーバ10から予め又はコンテンツ鍵mekと同時に配信されており、受信部124により受信されている。もし、記許諾ユーザの集合(N\R)を構成する部分集合S1〜Smの中に、端末装置20自身が所属する部分集合Siが含まれていないと判断された場合には、自身の保持する中間鍵t(Si)からセット鍵k(Sj)を生成する処理を実行できないので、コンテンツ鍵mekの復号処理を終了する。逆に、端末装置20自身の所属する部分集合S1〜Smの中に、端末装置20自身が所属する部分集合Siが含まれていると判断された場合には、端末装置20の鍵生成部128は、PRSGを用いて自身の保持する中間鍵t(Si)からそのセット鍵k(Si)を生成する。
(鍵生成部128)
鍵生成部128は、鍵配信サーバ10から受信した有向グラフIの情報等に基づいて、暗号化されたコンテンツ又はコンテンツ鍵mekを復号するためのセット鍵を生成する。鍵生成部128は、上記鍵配信サーバ10から受信した有向グラフIに基づいて、コンテンツ鍵mekを暗号化するためのセット鍵k(Si)を、有効グラフI内の座標点に対応する部分集合Siごとに生成する。詳細には、鍵生成部128は、有向グラフIにおけるある座標点に対応する部分集合Sの中間鍵t(S0)が入力されると、当該部分集合S0に対応するセット鍵k(S0)と、当該座標点Sを始点とする各有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力する。この鍵生成部128は、上記の鍵配信サーバ10の鍵生成部114と略同一の機能構成を有するので、詳細説明は省略する。
(復号部130)
復号部130は、セット鍵k(Si)を用いてコンテンツ鍵mekを復号する。具体的には、復号部130は、セット鍵k(Si)に対応する部分集合Siの中から、自身が要素として含まれる部分集合Siiを抽出し、当該部分集合Siiに対応するセット鍵k(Sii)を用いてコンテンツ鍵mekを復号する。
以上、端末装置20の各部の機能構成について説明した。本実施形態では、上記端末装置20の各部は、上記各機能を実現するプログラムを端末装置20にインストールすることにより構成されるが、かかる例に限定されず、上記各部の一部又は全部を専用のハードウェアで構成してもよい。なお、上記プログラムは、ポータブル記憶媒体等のコンピュータ読み取り可能な記憶媒体に記憶されて端末装置20に提供されてもよいし、或いは、外部装置からネットワーク5等の通信路を介して端末装置20に伝送されてもよい。
以上のように、本実施形態にかかる端末装置20は、上記の鍵配信サーバ10が備える有向グラフ生成部110により生成された特殊な鍵生成ロジック(有向グラフI)に基づいて、所望のセット鍵k(Si)を生成することができる。その結果、端末装置20は、コンテンツ鍵mek等の復号に用いるセット鍵k(Si)を生成するために保持すべき中間鍵t(Si)の鍵数を抑えることが可能になる。また、上記全体木構造BTの階層構造化により、有向グラフIにおける有向枝が効率的に設定されているので、セット鍵k(Si)を生成するための鍵生成部128による計算量をも低減することができる。
[鍵配信サーバ10及び端末装置20の動作]
(中間鍵の配信)
次に、鍵配信サーバ10から、各ユーザの端末装置20への中間鍵の配信動作について説明する。上記のように、多数の排除ユーザや許諾ユーザの追加/削除に柔軟に対処するためには、各端末装置20に対しては、その端末装置20が含まれる全ての部分集合Siに対応するセット鍵k(Si)を導出可能な複数の中間鍵t(Si)を与える必要がある。もちろん、その端末装置20が含まれない部分集合Siに対応するセット鍵k(Si)を導出可能な中間鍵t(Si)を与えてはならないし、与える中間鍵t(Si)の鍵数は、端末装置20のメモリ量の効率化の観点から最小限であることが好ましい。
そこで、鍵配信システム100のセットアップ時に、鍵配信サーバ10から端末装置20に中間鍵t(Si)を配信する場合には、各端末装置20が所属する部分集合Siを要素に有する有向グラフIを全て抽出する。そして、有向グラフIの先頭座標点(ルート)に対応する部分集合Siに端末装置20が含まれる場合には、その先頭座標点に対応する中間鍵t(Si)のみを端末装置20に与える。また、有向グラフIの先頭座標点以外の座標点に対応する部分集合Siのいずれかに端末装置20が属する場合には、端末装置20が部分集合S0には含まれるが、その部分集合S0の親である部分集合parent(S0)には含まれないような、部分集合S0を見つけ、この部分集合S0の中間鍵S0を、当該端末装置20に与える。もし、そのような部分集合S0が複数個存在する場合には、それぞれの中間鍵t(S0)を与える。ここで、部分集合Siの親子関係は、有向枝によって定められ、有向枝の始点座標点が終点座標点の親となり、有向枝の終点座標点が始点座標点の子となる。以下、ある座標点S0に到達する有向枝の始点座標点parent(S0)を親座標点と呼ぶことにする。ある座標点S0が,有効グラフIの始点である場合,親座標点は存在せず,有効グラフIの始点ではない場合,親座標点がただ1つ存在する。1つの有効グラフIについて,自分自身に対応する部分集合にユーザuを含み,その親座標点に対応する部分集合にはユーザuを含まない座標点は,複数存在する場合もある。
図11の例を参照しながら、上記の中間鍵の配信方法について具体的に述べる。
(例1)ユーザ1の端末装置20に対して配信される中間鍵t(Si)について考える。まず、ユーザ1が属する部分集合Siを要素に持つ有向グラフIを検索すると、有向グラフI(1→7)と有向グラフI(a→h)であることが分かる。そして、ユーザ1の端末装置20は、有向グラフI(1→7)の先頭座標点である部分集合[1,1]に属している。従って、ユーザ1には、中間鍵t([1,1])が与えられる。
また、ユーザ1の端末装置20は、有向グラフI(a→h)の部分集合[a,a]に属しているが、有向グラフI(1→7)から有向グラフI(a→h)にグラフ間有向枝が設定されているので、ユーザ1の端末装置20は、上記中間鍵t([1,1])を保持していれば、有向グラフI(1→7)と上記グラフ間有向枝とに基づいて、中間鍵t([a,a])を導出可能である。よって、ユーザ1の端末装置20に中間鍵t([a,a])を与える必要はない。従って、ユーザ1の端末装置20が保持すべき中間鍵は、中間鍵t([1,1])の1つでよい。
このユーザ1の端末装置20と同様、ユーザ1〜7の端末装置20には、有向グラフI(1→7)に関し、部分集合[1,7]={1,2,・・・,7}の中間鍵、又は、PRSGを用いて当該部分集合[1,7]の中間鍵を導出可能な中間鍵が与えられる。この場合、上記のように、有向グラフI(1→7)から有向グラフI(a→h)にグラフ間有向枝が設定されているので、ユーザ1〜7の端末装置20は、当該部分集合[1,7]の中間鍵をPRSGに適用することで、中間鍵t([a,a])を導出可能であり、さらにこの中間鍵t([a,a])から、中間鍵t([a,*])を導出することができる(ただし、*はb〜hのいずれかである。)。このため、ユーザ1〜7の端末装置20に、有向グラフI(a→h)に関する中間鍵を与える必要はない。
(例2)次に、ユーザ12の端末装置20に対して配信される中間鍵について考える。まず、ユーザ12の端末装置20が属する部分集合Siを要素に持つ有向グラフIを検索すると、有向グラフI(a→h)、I(b←h)、I(b←d)、I(b←b)、I(9→15)、I(10←16)、I(10←12)が該当する。そこで、有向グラフI(10←16)について検討すると、ユーザ12の端末装置20は、先頭座標点の部分集合[16,16]には属しておらず、5番目の座標点以降の部分集合[16,12],[16,11],[16,10]に属していることが分かる。これらの座標点のうち、親座標点にユーザ12を含まない座標点は、[16,12],[16,11]のみである。つまり、ユーザ12を含む座標点[16,12],[16,11]の親座標点parent([16,12]),parent([16,11])である座標点「16,13」には、ユーザ12は含まれない。従って、ユーザ12には、有向グラフI(10←16)に対応する中間鍵として、t([16,12])およびt([16,11])が与えられる。
これと同様にして、他の有向グラフI(a→h)、I(b←h)、I(b←d)、I(9→15)、I(10←12)についても該当する中間鍵が選択され、ユーザ12に与えられる。ところが、I(b←b)については、I(10←16)からグラフ間有向枝が設定されているので、ユーザ12の端末装置20は、上記中間鍵t([16,13])を用いて、中間鍵t([b,b])を導出可能であるので、当該中間鍵t([b,b])はユーザ12の端末装置20に与えなくてよい。この結果、ユーザ12には、合計7個の中間鍵が与えられる。
次に、図12を参照しながら、システムセットアップ時に、中間鍵を各ユーザの端末装置20に配布するまでの処理について簡単に整理する。図12は、本実施形態にかかるシステムセットアップ時の鍵配信サーバ10における中間鍵配信に関する処理フローを表すフローチャートである。
図12に示すように、まず、鍵配信システム100の鍵配信サーバ10は、各種パラメータ等を設定する。例えば、各端末装置20を割り当てるための全体木構造BTの葉ノードの数(ユーザ数)n、セット鍵及び中間鍵のビット数λ、全体木構造BTの階層数を示すパラメータy、所定のパラメータk、及びPRSGによる擬似乱数生成アルゴリズム等を決定し、全ユーザの端末装置20に公開する(S202)。このように本実施形態では、上記の基盤技術で公開されたn、λ、k及びPRSGのアルゴリズムに加えて、全体木構造BTの階層数を示すパラメータyも決定して公開する。
次いで、鍵配信サーバ10は、葉ノードに割り当てられた各端末装置20の集合を所定の部分集合Siに分けて、その和集合により表現されるセットシステムΨ(上記式(2)参照。)を決定し、このセットシステムΨを公開する(S204)。
さらに、鍵配信サーバ10は、上記の複数の有向グラフIを生成し、これら有向グラフIの集合で構成された構成Τを決定し、かかる複数の有向グラフIの構成Τを公開する(S206)。さらに、鍵配信サーバ10は、セットシステムΨを構成する各部分集合に対応する中間鍵を決定する(S208)。その後、鍵配信サーバ10は、この決定した中間鍵と鍵生成部114のPRSGとを用いて、その他の座標点に対応する中間鍵を導出し、各ユーザの端末装置20に対し、各端末装置20を含む全ての部分集合に対応するセット鍵を導出できるように、必要な中間鍵を配信する(S210)。すると、端末装置20は、鍵配信サーバ10からこれらの中間鍵等の情報を受信して、セキュア記憶部208等に安全に保存しておく。
以上、本実施形態にかかるセットアップ時における、中間鍵の配信方法について説明した。この配信方法を用いると、各許諾ユーザの端末装置20がセット鍵を生成するために必要な最低限の中間鍵が配信され、鍵配信サーバ10と端末装置20と間の通信量、及び各ユーザの端末装置20における中間鍵のメモリ量を節約することができる。
(コンテンツ鍵の配信)
次に、本実施形態にかかる鍵配信サーバ10における、暗号化されたコンテンツ鍵mekの配信に係る処理フローについて簡単に整理する。なお、本実施形態にかかるコンテンツ鍵の配信方法は、上述した基盤技術にかかるコンテンツ配信方法と略同一であるので、図6を再び参照して説明する。
図6に示すように、コンテンツ鍵の配信時に、本実施形態にかかる鍵配信サーバ10は、まず、排除ユーザの集合(R)を決定し、許諾ユーザの集合(N\R)を求める(S112)。次に、セットシステムΨを構成する部分集合から、和集合が(N\R)となるm個の部分集合Si(i=1,2,・・・,m)を、mが最小となるように選択する(S114)。そして、選択された各部分集合Siに対応するm個のセット鍵k(Si)を用いてコンテンツ鍵mekをそれぞれ暗号化する(S116)。さらに、許諾ユーザの集合(N\R)又はこの各部分集合Siを表す情報等の許諾端末識別情報と、m個の暗号化されたコンテンツ鍵mekとを、全ユーザの端末装置20に対して配信する(S118)。
以上、本実施形態にかかる鍵配信サーバ10における、コンテンツ鍵mekの暗号化方法、及び配信方法について説明した。この暗号化方法を用いると、セット鍵数が必要最小限となるように効率的に部分集合Siを選択する。このため、必要最小限の個数mのセット鍵でコンテンツ鍵mekを暗号化するので、暗号化に要する計算量を節減できると同時に、配信すべき暗号化されたコンテンツ鍵mekの数を低減させ、通信量を削減することができる。
(コンテンツ鍵の復号)
次に、本実施形態にかかる各ユーザの端末装置20における、暗号化されたコンテンツ鍵の復号処理フローについて説明する。なお、本実施形態にかかるコンテンツ鍵の復号方法は、上述した基盤技術にかかるコンテンツ鍵の復号方法と略同一であるので、図7を再び参照して説明する。
図7に示すように、まず、各ユーザの端末装置は20、鍵配信サーバ10から、m個の暗号化されたコンテンツ鍵mekと、許諾ユーザの集合(N\R)を表す情報、又はm個の部分集合Si(i=1,2,・・・,m)を表す情報などの許諾端末識別情報を受信する(S120)。次いで、端末装置20は、当該許諾端末識別情報に基づき、自身が所属する部分集合Siを検索し(S122)、自身がm個の部分集合Siのいずれかに所属しているか否かを判断する(ステップS124)。
この結果、端末装置20は、自身が所属する部分集合Siを発見したら、上記の鍵生成部128のPRSGを用いて、予め鍵配信サーバ10から与えられた中間鍵と有向グラフIとに基づいて、上記部分集合Siに対応するセット鍵k(Si)を導出する(S126)。PRSGの構成については既に述べた通りである。もし、その部分集合Siに対応する中間鍵t(Si)を、セットアップ時に鍵配信サーバから与えられて予め保持していれば、端末装置20は、一度PRSGを利用することによりセット鍵k(Si)を導出することが可能である。一方、当該中間鍵t(Si)を保持していない場合には、端末装置20は、PRSGを繰返し利用することにより所望のセット鍵k(Si)を導出することができる。次いで、端末装置20は、このようにして導出したセット鍵k(Si)を用いて、暗号化されたコンテンツ鍵mekを復号し、暗号化コンテンツを復号可能となる(S128)。
一方、上記S124で、自身がいずれの部分集合Siにも所属していないと判断した場合には、端末装置は、自身が、コンテンツを利用可能な端末装置20から排除されている旨(排除ユーザである旨)を表示出力して(S130)、コンテンツ鍵mekの復号処理を終了する。
以上のような、本実施形態にかかるコンテンツ鍵復号処理では、全体木構造BTを基本部分木に階層化して、有向グラフIの有向枝を好適に構成しているのみならず、グラフ間有向枝も設定されているので、端末装置20は、上記の基盤技術と比べて、中間鍵やセット鍵を得るためのPRSGを用いた計算量を低減できる。
[本実施形態の効果]
以上、本実施形態にかかる鍵配信システム100について詳細に説明した。本実施形態では、上記の基盤技術と比べて、端末装置20の部分集合からなるセットシステムΨを上記式(2)のように変更し、有向グラフIを改良している。これは、全ての端末装置20が割り当てられた大きな全体木構造BTを、小さな基本部分木に分割してy階層に階層化し、各基本部分木の中で、上記の基盤技術にかかる鍵導出方法を利用し、さらに、基本部分木間にまたがる部分集合間にも、有向グラフIの有向枝を設定して、疑似乱数生成器PRSGを用いた鍵導出方法を適用するものである。
かかる構成により、各ユーザの端末装置20が保持すべき中間鍵の鍵数を低減することができるとともに、鍵導出に要する端末装置20の計算量も低減することができる。端末装置20が保持すべき中間鍵の鍵数は、k・log(n)と正の相関があり、また、鍵導出のための端末装置20の計算量は、k・n(1/k)と正の相関がある。本実施形態では大きな全体木構造BTを、葉ノード数がn(1/y)の小さな基本部分木に分割し、木構造の葉ノード数nを小さくして、セットシステムΨや有向グラフIを設定しているので、端末装置20の保持すべき鍵数や、鍵導出に要する計算量を低減することができる。
ここで、図13を参照して、上記の基盤技術にかかる鍵配信方式と、本実施形態にかかる鍵配信方式とにおける、端末装置20の保持すべき中間鍵の鍵数を比較する。なお、図13(A)は、上記基盤技術の鍵配信方式(図4のn=64、k=6の例)において各端末装置が保持すべき中間鍵の鍵数を示し、図13(B)は、本実施形態の鍵配信方式(図11のn=64、y=2、k=3の例)において各端末装置20が保持すべき中間鍵の鍵数を示す表である。
図13に示すように、本実施形態の鍵配信方式と基盤技術の鍵配信方式とを比較すると、ユーザ1と64の端末装置20では、いずれの方式も、中間鍵の鍵数は1つ、2つであり差異はないものの、それ以外の全てのユーザ2〜63の端末装置20では、本実施形態の鍵配信方式の方が基盤技術の鍵配信方式よりも鍵数が少なくなっている。また、全ての端末装置20が保持すべき鍵数の合計は、基盤技術の鍵配信方式が705個であるのに対し、本実施形態の鍵配信方式が400個である。また、端末装置20の1つ当たりの鍵数平均値は、基盤技術の鍵配信方式が約11.02個であるのに対し、本実施形態の鍵配信方式が6.25個である。このように、本実施形態の鍵配信方式は、基盤技術の鍵配信方式と比べて、約56.7%にまで鍵数を低減することができ、各端末装置20の保持すべき鍵数を大幅に削減して、端末装置20のメモリの負担を低減できる。
次に、端末装置20におけるコンテンツ鍵mek等の復号時に必要な、端末装置20の計算量について検討する。当該計算量の最悪値は、有向グラフにおいて、有向グラフの先頭座標点(ルート)から最も遠い末尾座標点(有向枝リーフ)までの有向枝の本数(即ち、有向枝設定時のジャンプ回数)で表される。図4で示した例の基盤技術の鍵配信方式では、有向グラフH(1→64)の先頭座標点[1,1]から末尾座標点[1,64]まで到達するために、11本の有向枝を経由(11回のジャンプを実行)しなければならず、これは、PRSGを11回も実行しなければならないことを示している。
これに対し、図11で示した例の本実施形態の鍵配信方式では、有向グラフI(1→7)及びI(a→h)において、先頭座標点[1,1]から末尾座標点[1,h]までが最も遠くなるが、このとき必要な有向枝の本数(ジャンプ回数)は10回であり、上記基盤技術の鍵配信方式の11回よりも少ない。このように、本実施形態の鍵配信方式では、上記基盤技術の鍵配信方式と比べて、復号時等における鍵計算のための各端末装置20の計算量も低減することが可能である。
なお、上記基盤技術の鍵配信方式では、パラメータkを小さくすれば、図4における長い有向枝(長い距離のジャンプ)を消去して、短い有向枝(短いジャンプ)のみを残るため、各端末装置20の保持すべき鍵数は削減できるが、各有向グラフHで先頭座標点から末尾座標点までの有向枝の本数で表される、端末装置20の計算量が増加してしまうという問題が生じてしまう。
以上のように、本実施形態の鍵配信方式では、端末装置20(受信者)数が多い場合であっても、端末装置20で保持すべき鍵数、及び、暗号鍵を用いた復号時に要する端末装置の計算量の双方を低減することができるといえる。
[暗号鍵配信システム100の応用例]
最後に、上記の暗号鍵配信システム100の応用例を示す。
(応用例1)
まず、応用例1として、放送暗号化システム300の構成を図14に示す。
図14は、放送衛星を用いた放送暗号化システム(broadcast encryption system)の構成を示すブロック図である。放送暗号化システム300は、放送チャンネルを介して暗号化されたデータ(所謂、暗号テキスト;ciphertext)を受信機310に送信する。ここで、放送暗号化システム300における放送チャンネルは、例えば、衛星放送配信チャンネルである。また、暗号テキストとして送信されるデータは、例えば、暗号鍵、音声データ、映像データ、又はテキストデータ等を含むコンテンツである。衛星放送局302における管理センタ(broadcast trustedcenter)304は、放送衛星306にデータを送信する。放送管理センタ304は、例えば、暗号化用の鍵を選択したり、データの暗号化、及びデータ配信を制御する。放送衛星306は、データを放送する。住居308に設置された受信機310は、例えば、衛星放送受信機を備え、放送されてくるデータを受信する。他の複数の受信機310も放送されてくるデータを受信することができる。このようにして、管理センタ304は、受信機310から成る受信機グループ内の各受信機310にデータを送信することができる。後述するように、管理センタ304は、認証されている受信機310のみが放送されたデータを復号することができるように、放送データを暗号化する。なお、図14には、放送衛星306を用いた放送システムを示しているが、ケーブルテレビジョンやコンピュータネットワーク等、この他の放送チャンネルを用いてもよい。
以上、暗号鍵配信システム100の一応用例である放送暗号化システム300の構成について述べた。簡単に暗号鍵配信システム100との関係を整理しておくと、管理センタ304が鍵配信サーバ10(本発明の情報処理装置)に対応し、受信機310が端末装置20(本発明の端末装置)に対応する。そして、これらを接続するネットワークを仲介するのが放送衛星306である。
(応用例2)
次に、応用例2として、放送暗号化システム400の構成を図15に示す。
図15は、データ媒体を用いた放送暗号化システム400の構成を示すブロック図である。放送暗号化システム400において、放送チャンネルは、データ記憶媒体の配布である。媒体製造業者402内の管理センタ404は、例えば、読出専用記憶媒体(例えば、CD−ROM、DVD−ROM等)、又は書換可能記憶媒体(例えば、CD−RW、DVD−RW等)等の記憶媒体406の各個体(article of data media)にデータを保存する。読出専用記憶媒体については、管理センタ404は、暗号化されたコンテンツ鍵及び暗号化されたコンテンツを記録し、認証されたユーザのみがデータを復号し、暗号化されているコンテンツ(例えば、音声、映像、又はテキスト等)にアクセスできるようにしている。一方、書換可能記憶媒体に対し、管理センタ404は、暗号化されたコンテンツ鍵を記録し、認証された記録装置のみが対応するデータを記録媒体に記録できるようにしている。媒体製造業者402は、例えば、小売店等の配布仲介者(distribution outlet)408に記憶媒体406を送付する。配布仲介者408は、記憶媒体410を住居412の受信機414に提供する。例えば、配布仲介者408は、記憶媒体410を個人に販売し、この個人が記憶媒体410を住居412に持ち帰り、記憶媒体410を受信機414に挿入する。例えば、受信機414は、CDプレーヤ、DVDプレーヤ、又はコンピュータ等、記憶媒体410に記録されているデータを読み出して再生する装置であってもよい。他の具体例としては、受信機414は、例えば、DVD−RWドライブ等、記憶媒体410にデータを記録し、及び記憶媒体410からデータを読み出すことが可能なディスク装置であってもよい。管理センタ404は、認証されている受信機414のみが、暗号化されているデータを復号することができるように、データを暗号化する。
以上、暗号鍵配信システム100の一応用例である放送暗号化システム400の構成について述べた。簡単に暗号鍵配信システム100との関係を整理しておくと、管理センタ404が鍵配信サーバ10(本発明の情報処理装置)に対応し、受信機414が端末装置20(本発明の端末装置)に対応する。そして、これらを接続するネットワークの代わりに、配布仲介者408により配布される記憶媒体406、410が介在している。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記の木構造設定部102は、上から下に枝が広がった木構造を想定していたが、必ずしもこれに限定されず、下から上、左から右、又は右から左など、任意の方向に向かって枝が広がった木構造を有していてもよい。この場合、各中間ノードに対応付けされる部分集合の定義は、これに適合するように変更されねばならない。しかし、この変更は、上記の木構造設定部102が設定した木構造を回転して配置するだけであり、いずれの場合においても意味するところは完全に同一である。また、上記の有向枝設定部106及び部分木間有向枝設定部108は、左から右、又は右から左に座標軸を設定して有向グラフI’及びIを構築したが、この座標軸の方向を反転させたり、左右方向以外にも上下方向等の任意の方向に変更したりすることも可能である。つまり、上記の説明においては、便宜的に上下方向、又は左右方向を基準にして各種パラメータの定義を行ったが、一般庶民又は当業者の有すべき常識に照らして考えると、仮に木構造又は有向グラフを回転又は反転して上下左右の関係を変更したとしても、完全に同一の技術的範囲に属するものと了解される。
また、上記実施形態では、図9のように、葉ノード数n=64の全体木構造BTをy=2階層に階層化したが、本発明は、かかる例に限定されず、階層数を表すパラメータyは、任意の自然数に設定可能であり、3以上の階層に階層化してもよい。例えば、n=64の全体木構造BTを、4個の葉ノードを有する高さ2の基本部分木に分割して、y=3階層に階層化しもよい。この場合、全体木構造BTを、1つの最上位階層の基本部分木と、4つの中間階層の基本部分木と、16つの最下位階層の基本部分木とに分割し、最上位階層の基本部分木の葉ノードに各中間階層の基本部分木の根ノードを一致させ、各中間階層の基本部分木の葉ノードに各最下位階層の基本部分木の根ノードを一致させるように木構造を構成することができる。
また、部分木間有向枝設定部108によって、相異なる基本部分木の有向グラフI間に跨って設定される有向枝の設定手法は、図11の例に限定されず、多様に設計変更可能である。このとき、下位階層の基本部分木の有向グラフIの部分集合が、上位階層の基本部分木の有向グラフIの部分集合に包含されるように、部分集合間に有向枝を設定することが鍵数低減の観点から好ましいが、かかる例に限定されず、包含関係とは無関係に有向枝を設定することも可能である。
本発明の一実施形態に係る暗号鍵配信システムを示す説明図である。 同実施形態に係る鍵配信サーバ及び端末装置のハードウェア構成を示すブロック図である。 基盤方式に係る2分木構造を示す説明図である。 基盤方式に係る有向グラフを示す説明図である。 基盤方式に係る有向グラフ算出方法を示す流れ図である。 基盤方式に係るコンテンツ鍵の配信方法を示す流れ図である。 基盤方式に係るセット鍵生成方法を示す流れ図である。 本発明の一実施形態に係る鍵配信サーバ及び端末装置の機能構成を示すブロック図である。 同実施形態に係る2分木の全体木構造を示す説明図である。 同実施形態に係る有向グラフを示す説明図である。 同実施形態に係る部分木間の有向枝が設定された有向グラフを示す説明図である。 同実施形態に係るコンテンツ鍵の配信方法を示す流れ図である。 基盤方式と同実施形態に係る鍵配信方式との比較を示した比較表である。 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。
符号の説明
5 ネットワーク
10 鍵配信サーバ
20 端末装置
100 暗号鍵配信システム
102 木構造設定部
104 座標軸設定部
106 有向枝設定部
108 部分木間有向枝設定部
110 有向グラフ生成部
112 初期中間鍵設定部
114 鍵生成部
116 暗号化部
118 送信部
120 部分集合決定部
124 受信部
126 判断部
128 鍵生成部
130 復号部
202 コントローラ
204 演算ユニット
206 入出力インタフェース
208 セキュア記憶部
210 メイン記憶部
212 ネットワークインタフェース
216 メディアインタフェース
218 情報メディア

Claims (26)

  1. n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成し、
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付ける木構造設定部と;
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する有向グラフ生成部と;
    を備えることを特徴とする、情報処理装置。
  2. 前記有向グラフ生成部は、
    前記下位階層の基本部分木に対応する前記有向グラフから、前記上位階層の基本部分木に対応する前記有向グラフへの有向枝を設定する部分木間有向枝設定部をさらに備えることを特徴とする、請求項1に記載の情報処理装置。
  3. 前記部分木間有向枝設定部は、
    前記下位階層の基本部分木に対応する前記有向グラフにおける第1座標点から、前記上位階層の基本部分木に対応する前記有向グラフにおける第2座標点への有向枝を設定し、
    前記第2座標点に対応する部分集合は、前記第1座標点に対応する部分集合を包含することを特徴とする、請求項2に記載の情報処理装置。
  4. 前記有向グラフ作成部は、座標軸設定部と、有向枝設定部とを含み、
    前記座標軸設定部は、
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点を左から右に向かって包含関係が大きくなるように配列した第1水平座標軸、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点を左から右に向かって包含関係が大きくなるように配列した第2水平座標軸をそれぞれ設定し、前記第1及び第2水平座標軸の各々の左端及び/又は右端に、少なくとも合計2つの仮座標点を追加設定し、
    前記有向枝設定部は、
    所定の整数k(kはlog(n1/y)の約数)を設定し、
    (x−1)/k・y<(rv’−lv’+1)≦nx/k・yを満たす整数xを算定した上で、
    前記各第1水平座標軸上の左端にある座標点から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる右向きの有向枝の設定を繰り返し行い、
    前記各第2水平座標軸上の右端にある座標点から開始して、ni/(k・y)(i=0〜x−1)だけ離れた座標点へ延びる左向きの有向枝の設定を繰り返し行い、
    前記各第1及び第2水平座標軸について、前記仮座標点を始点又は終点とする全ての前記有向枝を除外し、
    前記各第1及び第2座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することを特徴とする、請求項1に記載の情報処理装置。
  5. 前記有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部をさらに備えることを特徴とする、請求項1に記載の情報処理装置。
  6. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(Si)の入力に応じて、当該座標点に対応する部分集合Siに対応する前記セット鍵k(Si)と、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項5に記載の情報処理装置。
  7. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項5に記載の情報処理装置。
  8. 前記セット鍵を用いて、前記コンテンツ又は前記コンテンツ鍵を暗号化する暗号化部をさらに備えることを特徴とする、請求項5に記載の情報処理装置。
  9. 前記全体木構造の葉ノード1〜nの一部又は全部にそれぞれ対応付けられた端末装置に、前記暗号化部により暗号化された前記コンテンツ又は前記コンテンツ鍵を送信する送信部をさらに備えることを特徴とする、請求項8に記載の情報処理装置。
  10. 前記全体木構造の葉ノード1〜nの部分集合をSiと定義したときに、
    前記セット鍵または前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)を決定し、前記集合(N\R)={S1∪S2∪・・・∪Sm}を満たすm個の部分集合S1〜Smを決定する部分集合決定部をさらに備えることを特徴とする、請求項1に記載の情報処理装置。
  11. 前記部分集合決定部は、前記mが最小となるように、前期部分集合S1〜Smを決定することを特徴とする、請求項10に記載の情報処理装置。
  12. 前記送信部は、
    前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を、前記端末装置に送信することを特徴とする、請求項10に記載の情報処理装置。
  13. 前記送信部は、
    前記暗号化部により前記各部分集合S1〜Smに対応する前記セット鍵でそれぞれ暗号化された前記コンテンツ又は前記コンテンツ鍵を、前記端末装置に送信することを特徴とする、請求項9に記載の情報処理装置。
  14. 有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備え、
    前記有向グラフは、
    n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成し、
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、
    ことによって得られることを特徴とする、端末装置。
  15. 前記下位階層の基本部分木に対応する前記有向グラフから、前記上位階層の基本部分木に対応する前記有向グラフへの有向枝が設定されていることを特徴とする、請求項14に記載の端末装置。
  16. 前記下位階層の基本部分木に対応する前記有向グラフにおける第1座標点から、前記上位階層の基本部分木に対応する前記有向グラフにおける第2座標点への有向枝が設定され、
    前記第2座標点に対応する部分集合は、前記第1座標点に対応する部分集合を包含することを特徴とする、請求項15に記載の端末装置。
  17. 前記鍵生成部により生成された前記セット鍵を用いて、前記暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備えることを特徴とする、請求項14に記載の端末装置。
  18. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(Si)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(Si)と、当該座標点を始点とする前記有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項14に記載の端末装置。
  19. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項14に記載の端末装置。
  20. 前記復号部は、前記セット鍵を用いて、前記暗号化されたコンテンツ鍵を復号し、当該復号されたコンテンツ鍵を用いて、前記暗号化されたコンテンツを復号することを特徴とする、請求項17に記載の端末装置。
  21. 前記全体木構造の葉ノード1〜nの部分集合をSiと定義したときに、
    前記セット鍵または前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)が決定され、前記集合(N\R)={S1∪S2∪・・・∪Sm}を満たすm個の部分集合S1〜Smが決定されたときに、前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を受信する受信部と、
    前記受信した情報に基づいて、当該端末装置が前記部分集合S1〜Smのいずれかに属しているか否かを判断し、当該判断結果に基づいて、前記暗号化されたコンテンツの復号が許可されているか否かを判断する判断部と、
    を備えることを特徴とする、請求項14に記載の端末装置。
  22. 前記鍵生成部により生成された前記セット鍵を用いて、前記暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備え、
    前記復号部は、前記判断部により前記端末装置が前記部分集合S1〜Smのいずれかに属していると判断された場合に、前記セット鍵を用いて、前記暗号化されたコンテンツ又はコンテンツ鍵を復号することを特徴とする、請求項21に記載の端末装置。
  23. n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成するステップと;
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付けるステップと;
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成するステップと;
    を含むことを特徴とする、情報処理方法。
  24. n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成し、
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、
    ことによって得られた有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成することを特徴とする、鍵生成方法。
  25. n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成するステップと;
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付けるステップと;
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成するステップと;
    をコンピュータに実行させることを特徴とする、プログラム。
  26. n個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードとから構成される2分木の全体木構造を設定し、前記全体木構造を、n1/y個の葉ノードを有する複数の基本部分木に分割してy階層(yはlog(n)の約数)に階層化し、下位階層の前記基本部分木の根ノードが上位階層の前記基本部分木の葉ノードとなるように構成し、
    前記全体木構造のノードwの下位に位置する葉ノードの集合をAwと定義し、
    前記基本部分木の葉ノードのうち、ある葉ノードvよりもi個左に位置する葉ノードをv(−i)、i個右に位置する葉ノードをv(+i)と定義し、
    前記基本部分木の2つの葉ノードu,v(vはuの右にある)に関し、集合(u→v)を{Au,Au∪Au(+1),・・・,Au∪・・・∪Av}、集合(u←v)を{Av,Av∪Av(−1),・・・,Av∪・・・∪Au}と定義し、
    前記基本部分木のノードvの下位に位置する複数の葉ノードのうち、左端に位置する葉ノードをlv’、右端に位置する葉ノードをrv’と定義したときに、
    最上位階層の前記基本部分木の根ノードrootに対して、集合(lroot’→rroot’)及び集合(lroot(+1)←rroot’)を対応付け、
    前記最上位階層以外の階層の前記基本部分木の根ノードvに対して、集合(lv’→rv’(−1))及び集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードvに対して集合(lv’(+1)←rv’)を対応付け、
    前記各基本部分木の中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードvに対して集合(lv’→rv’(−1))を対応付け、
    前記各基本部分木の根ノード及び中間ノードvの各々について、前記集合(lroot’→rroot’)又は前記集合(lv’→rv’(−1))に含まれる各部分集合に対応する座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフ、及び/又は、前記集合(lroot(+1)←rroot’)又は前記集合(lv’(+1)←rv’)に含まれる各部分集合に対応する座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、当該座標点を相互に結ぶ有向枝が設定された有向グラフを生成する、
    ことによって得られた有向グラフに基づいて、暗号化されたコンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成するステップ
    をコンピュータに実行させることを特徴とする、プログラム。
JP2006310208A 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム Pending JP2008131076A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006310208A JP2008131076A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
EP07829127A EP2086161A1 (en) 2006-11-16 2007-10-03 Information processing device
CN200780042754.1A CN101542966B (zh) 2006-11-16 2007-10-03 信息处理装置
PCT/JP2007/069388 WO2008059673A1 (fr) 2006-11-16 2007-10-03 Dispositif de traitement d'informations
US12/515,235 US8300814B2 (en) 2006-11-16 2007-10-03 Information processing unit, terminal unit, information processing method, key generation method and program
KR1020097009872A KR20090090308A (ko) 2006-11-16 2007-10-03 정보처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006310208A JP2008131076A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2008131076A true JP2008131076A (ja) 2008-06-05
JP2008131076A5 JP2008131076A5 (ja) 2009-12-03

Family

ID=39556539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006310208A Pending JP2008131076A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP2008131076A (ja)
CN (1) CN101542966B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015097834A1 (ja) * 2013-12-26 2015-07-02 株式会社東芝 通信制御装置、通信制御方法およびプログラム
JP2018139406A (ja) * 2018-02-19 2018-09-06 株式会社東芝 通信装置、通信方法、プログラムおよび通信システム
US10673624B2 (en) 2014-10-31 2020-06-02 Kabushiki Kaisha Toshiba Communication control device, communication control method, and computer program product

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092537B (zh) * 2014-07-03 2017-07-14 飞天诚信科技股份有限公司 一种实现密钥信息编解码的装置及其工作方法
CN107291725B (zh) * 2016-03-31 2020-12-22 北京京东尚科信息技术有限公司 生成多向树的方法和装置
CN110138559B (zh) * 2019-06-03 2022-02-01 北京智芯微电子科技有限公司 对台区内的终端进行量子密钥分配的方法及系统
CN111131144B (zh) * 2019-11-05 2021-11-16 远景智能国际私人投资有限公司 IoT设备管理方法、装置、服务器及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005018136A1 (ja) * 2003-07-11 2005-02-24 Canon Kabushiki Kaisha 鍵情報処理方法及びその装置、並びにプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015097834A1 (ja) * 2013-12-26 2015-07-02 株式会社東芝 通信制御装置、通信制御方法およびプログラム
JP6100922B2 (ja) * 2013-12-26 2017-03-22 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム
US10700934B2 (en) 2013-12-26 2020-06-30 Kabushiki Kaisha Toshiba Communication control device, communication control method, and computer program product
US10673624B2 (en) 2014-10-31 2020-06-02 Kabushiki Kaisha Toshiba Communication control device, communication control method, and computer program product
JP2018139406A (ja) * 2018-02-19 2018-09-06 株式会社東芝 通信装置、通信方法、プログラムおよび通信システム

Also Published As

Publication number Publication date
CN101542966A (zh) 2009-09-23
CN101542966B (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
US7340054B2 (en) Information processing method, decrypting method, information processing apparatus, and computer program
US7308583B2 (en) Data distribution system
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
WO2008059673A1 (fr) Dispositif de traitement d'informations
US20050210014A1 (en) Information-processing method, decryption method, information-processing apparatus and computer program
US20070133806A1 (en) Information processing method, decryption method, information processing device, and computer program
JP4162237B2 (ja) 複数の復号化装置に対し選択的にメッセージを配信する暗号化通信システム、暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラム、及び復号化プログラム
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
US8300816B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
US8229121B2 (en) Method of tracing device keys for broadcast encryption
JP2008131072A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
US8150040B2 (en) Key providing system, terminal device, and information processing method
US20090177888A1 (en) Information processing device, key setting method, and program
JP2007189597A (ja) 暗号化装置および暗号化方法、並びに復号化装置および復号化方法
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2005123678A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2009065345A (ja) Sd法におけるクライアント端末被覆方法およびプログラム
JP2008131078A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
WO2009157050A1 (ja) 情報処理装置及びプログラム
JP2008113203A (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091015

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626