JP2008131072A - 情報処理装置、端末装置、情報処理方法、及び鍵生成方法 - Google Patents

情報処理装置、端末装置、情報処理方法、及び鍵生成方法 Download PDF

Info

Publication number
JP2008131072A
JP2008131072A JP2006310182A JP2006310182A JP2008131072A JP 2008131072 A JP2008131072 A JP 2008131072A JP 2006310182 A JP2006310182 A JP 2006310182A JP 2006310182 A JP2006310182 A JP 2006310182A JP 2008131072 A JP2008131072 A JP 2008131072A
Authority
JP
Japan
Prior art keywords
key
directional
directed graph
horizontal coordinate
coordinate
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
JP2006310182A
Other languages
English (en)
Other versions
JP2008131072A5 (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 JP2006310182A priority Critical patent/JP2008131072A/ja
Priority to PCT/JP2007/069387 priority patent/WO2008059672A1/ja
Priority to EP07829126A priority patent/EP2086160A1/en
Priority to KR1020097009871A priority patent/KR20090089313A/ko
Priority to CN200780042720.2A priority patent/CN101536401B/zh
Priority to US12/515,298 priority patent/US8300816B2/en
Publication of JP2008131072A publication Critical patent/JP2008131072A/ja
Publication of JP2008131072A5 publication Critical patent/JP2008131072A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ユーザが保持すべき鍵数を低減することが可能な情報処理装置、端末装置、情報処理方法、鍵生成方法を提供すること。
【解決手段】コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を導出する暗号鍵生成ロジックを表現した有向グラフを生成することが可能な情報処理装置を提供する。これは、ユーザ(端末装置)の集合を複数の部分集合に分け、各部分集合にセット鍵及び中間鍵を割り当て、ある部分集合に対応付けられた中間鍵が入力されると、その部分集合に対応するセット鍵と有向枝で関連付けられた部分集合に対応する中間鍵と、を出力することができる。本発明は、所定の置換規則に基づいて、有向グラフに含まれる有向枝をより短い有向枝に置換することにより、各ユーザが保持すべき中間鍵の鍵数を低減可能な情報処理装置、端末装置、情報処理方法、鍵生成方法に関する。
【選択図】図1

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)等の鍵配信方式に比較すると大きなアドバンテージがあった。しかし、実施を想定した実際的な観点からすると、受信者数が多い場合には、受信者側の端末装置で保持すべき鍵数、及び、コンテンツ復号に要する計算量が、依然として大きいという問題を有していた。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、受信者側の端末装置で保持すべき鍵数を低減することが可能な、新規かつ改良された情報処理装置、端末装置、情報処理方法、及び鍵生成方法を提供することにある。
上記課題を解決するために、本発明のある観点によれば、複数の有向枝により構成される仮有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得部と、有向グラフ取得部により取得された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化または復号するためのセット鍵を生成する鍵生成部と、を備えることを特徴とする、情報処理装置が提供される。
また、上記課題を解決するために、本発明のある観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードの中で左端に位置する葉ノードの番号がlv、そして右端に位置する葉ノードの番号がrvと定義されており,さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第1水平座標軸が設定され、また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第2水平座標軸が設定されており,さらに,中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第3水平座標軸が設定され、そして集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で,所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を第1〜4水平座標軸上に配置して形成された仮有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して生成された有向グラフを取得する有向グラフ取得部と、有向グラフ取得部が取得した有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成部と、を備えることを特徴とする、情報処理装置が提供される。
また、上記課題を解決するために、本発明のある観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定部を備えることを特徴とし、
さらに、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定する座標軸設定部を備えることを特徴とし、
さらに、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成部を備えることを特徴とし、
さらに、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定部を備えることを特徴とし、
さらに、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成部を備えることを特徴とする情報処理装置が提供される。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
また、上記の最長有向パス決定部は、集合(1→n)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフのうち、最長有向パスを含まない各仮有向グラフについて、仮有向グラフ毎の最長有向パスを決定してもよい。さらに、上記の有向グラフ生成部は、各仮有向グラフに対し、各有向パスの有向枝数が仮有向グラフ毎の最長有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成してもよい。
さらに、上記の情報処理装置は、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部を備えてもよい。
また、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応するセット鍵k(S)と、当該座標点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を表す情報を、端末装置に送信する送信部を備えてもよい。
さらに、上記の情報処理装置は、セット鍵を用いてコンテンツ又はコンテンツ鍵を復号する復号部を備えていてもよい。
さらに、上記の情報処理装置は、所定の2分木構造を構成する葉ノード1〜n(nは自然数)の1つ以上に対応付けられ,セット鍵を用いて暗号化されたコンテンツ又はコンテンツ鍵を受信する受信部をさらに備えていてもよい。
受信部が受信する暗号化されたコンテンツ又はコンテンツ鍵は,葉ノード1〜nの部分集合として定義された集合Siの中で,自身に対応付けられた葉ノードを含む集合Sの要素である葉ノードに対応付けられた1つ以上の情報処理装置が復号可能であってもよい。
また、上記課題を解決するために、本発明の別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備えることを特徴とする端末装置が提供される。
上記の端末装置が参照する有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換することによって得られるものである。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
さらに、上記の端末装置は、セット鍵を用いて、暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部を備えていてもよい。
また、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応するセット鍵k(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の部分集合をSiと定義したときに、セット鍵又はコンテンツ鍵で暗号化されたコンテンツの復号を許可する端末装置の集合(N\R)が決定され、集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smが決定され、集合(N\R)を表す情報、又は、集合(N\R)を構成する部分集合S1〜Smを表す情報を受信した場合に、端末装置は、受信した情報に基づいて、当該端末装置が部分集合S1〜Smのいずれかに属しているか否か判断し、当該判断結果に基づいて、暗号化されたコンテンツの復号が許可されているか否かを判断する判断部を備えていてもよい。
また、上記の復号部は、端末装置が部分集合S1〜Smのいずれかに属していると判断された場合に、当該端末装置が属する部分集合に対応したセット鍵を用いて、コンテンツ又はコンテンツ鍵を復号してもよい。
また、上記課題を解決するために、本発明のさらに別の観点によれば、複数の有向枝により構成される仮有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得ステップと、有向グラフ取得部により取得された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化または復号するためのセット鍵を生成する鍵生成ステップと、を含むことを特徴とする、情報処理方法が提供される。
また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードの中で左端に位置する葉ノードの番号がlv、そして右端に位置する葉ノードの番号がrvと定義されており,さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第1水平座標軸が設定され、また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第2水平座標軸が設定されており,さらに,中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第3水平座標軸が設定され、そして集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で,所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を第1〜4水平座標軸上に配置して形成された仮有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して生成された有向グラフを取得する有向グラフ取得ステップと、有向グラフ取得部が取得した有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成ステップと、を含むことを特徴とする、情報処理方法が提供される。
また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定ステップと、
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定する座標軸設定ステップと、
所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、第1水平座標軸及び第3水平座標軸上の仮座標点を含む各座標点について、当該各座標点からni/k(i=0〜x−1)個離れた座標点へ向けて右向きの有向枝を設定し、第2水平座標軸及び第4水平座標軸上の仮座標点を含む各座標点について、当該各座標点からni/k(i=0〜x−1)個離れた座標点へ向けて左向きの有向枝を設定し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成ステップと、
連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定ステップと、
各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成ステップと、を含むことを特徴とする、情報処理方法が提供される。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
また、上記課題を解決するために、本発明のさらに別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成ステップを含む鍵生成方法が提供される。
上記の鍵生成方法に用いられる有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換することによって得られるものである。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定機能と、
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定する座標軸設定機能と、
所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、 整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成機能と、
連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定機能と、
各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成機能と、をコンピュータに実現させるためのプログラムが提供される。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
また、上記課題を解決するために、本発明のさらに別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成機能をコンピュータに実現させるためのプログラムが提供される。
上記のプログラムに係る有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第1〜4水平座標軸上の左端に位置する座標点の左側と、第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を仮座標点として設定し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換することによって得られるものである。
このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を増加させることなく、各ユーザが保持すべき鍵数を低減することが可能になる。
以上説明したように本発明によれば、受信者側の端末装置で保持すべき鍵数を低減することが可能になる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、表記上、下付き文字を通常の字体により表現している部分があるが、これらは同じものである。例えば、BTRとBTとは同じものを表現していることに注意されたい。
[暗号鍵配信システム100構成]
まず、本発明の一実施形態に係る暗号鍵配信システム100の構成について説明する。図1は、本実施形態にかかる暗号鍵配信システム100の構成を示す説明図である。
図1を参照すると、暗号鍵配信システム100は、本実施形態にかかる情報処理装置の一例として構成された鍵配信サーバ102と、複数のユーザがそれぞれ所有する複数の端末装置122と、これらの鍵配信サーバ102と端末装置122とを接続するネットワークとから構成される。
上記のネットワークは、鍵配信サーバ102と端末装置122を双方向通信又は一方向通信可能に接続する通信回線網である。このネットワークは、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。
鍵配信サーバ102は、サーバ機能を備えたコンピュータ装置などで構成され、ネットワークを介して各種の情報を外部装置に送信可能である。例えば、鍵配信サーバ102は、broadcast encryption scheme方式の暗号鍵を生成して、この暗号鍵を端末装置122に配信できる。また、本実施形態にかかる鍵配信サーバ102は、映像配信サービスや、電子音楽配信サービス等のコンテンツ配信サービスを提供するコンテンツ配信サーバとしての機能を具備しており、端末装置122にコンテンツを配信可能である。なお、鍵配信サーバ102とコンテンツ配信サーバとを別装置として構成することも勿論可能である。
ここで、コンテンツは、例えば、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画からなる映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツや、ゲームコンテンツ、文書コンテンツ、ソフトウェアなど、任意のコンテンツデータであってもよい。映像コンテンツは、映像データのみならず、音声データを含んでいてもよい。
端末装置122は、ネットワークを介して外部装置とデータ通信が可能な鍵配信サーバであり、各ユーザによって所有される。この端末装置122は、例えば、図示のようにパーソナルコンピュータ(Personal Computer;以下「PC」という。)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)で構成されるが、かかる例に限定されず、ネットワークを介した通信機能を有する機器であれば、例えばPDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、端末装置122は、ユーザが持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。
この端末装置122は、鍵配信サーバ102から種々の情報を受信することができる。例えば、端末装置122は、鍵配信サーバ102から配信されたコンテンツを受信できる。このコンテンツ配信時には、鍵配信サーバ102は、種々の電子データを暗号化して配信することが可能である。例えば、鍵配信サーバ102は、コンテンツを暗号化するコンテンツ鍵を生成して配信することが可能である。このコンテンツ鍵は、例えば、擬似乱数生成器により算出された乱数(擬似乱数)、所定の文字列又は数列等により表現されていてもよい。そして、鍵配信サーバ102は、このコンテンツ鍵を用いて、所定の暗号化ロジックによりコンテンツを暗号化することができる。そして、鍵配信サーバ102は、当該コンテンツ鍵又はコンテンツ鍵に対応する復号鍵を、任意の端末装置122に対して配信することが可能である。一方で、端末装置122は、鍵配信サーバ102から受信した当該コンテンツ鍵又はコンテンツ鍵に対応する復号鍵を用いて、暗号化されたコンテンツを復号することができる。
なお、コンテンツ鍵を生成するために用いる擬似乱数生成器は、所定のシード値を入力することによって、長周期の擬似的な乱数列を出力することが可能な装置又はプログラムであり、一般に、線形合同法やメルセンヌ・ツイスター法等のロジックを用いて実現されるものである。もちろん、本実施形態に適用可能な擬似乱数生成器は、これに限定されるものではなく、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、特殊な情報又は条件を含んだ擬似乱数列を生成することが可能な装置又はプログラムであってもよい。
さらに、本実施形態にかかる鍵配信サーバ102は、コンテンツ自体のみならず、コンテンツ鍵をも暗号化して配信するようになっている。確かに、コンテンツ自体を暗号化して配信することにより、ある程度のセキュリティレベルを確保できる。しかし、多数のユーザの中から、コンテンツの利用権限を許諾するユーザ(以下「許諾ユーザ」という。)を追加又は削除する際にフレキシブルに対応するためには、コンテンツ鍵自体を暗号化して配信する方式が有利である。この場合、本実施形態では、まず、鍵配信サーバ102は、コンテンツ鍵を暗号化・復号するための複数のセット鍵を生成する。後段において詳述するが、この複数のセット鍵は、それぞれ、多数のユーザの中から抽出された、複数の許諾ユーザの部分集合群に対応付けされている。つまり、鍵配信サーバ102は、許諾ユーザの集合だけがコンテンツ鍵を復号できるように設定されたセット鍵により、コンテンツ鍵を暗号化し、全てのユーザの端末装置122に対して暗号化されたコンテンツ鍵を配信するのである。かかる構成により、許諾ユーザの端末装置122のみが、暗号化されたコンテンツ鍵を復号することが可能になり、このコンテンツ鍵を用いて暗号化コンテンツを復号し、当該コンテンツを視聴等することができるようになる。もし、許諾ユーザの集合が変更された場合には、鍵配信サーバ102は、コンテンツ鍵の暗号化に用いるセット鍵を変更することにより対応可能である。上記の暗号鍵配信ロジックが成立するためには、セット鍵の生成や配信に係るアルゴリズムを実現できるように、鍵配信サーバ102等を構成する必要がある。
以下では、第1に、本実施形態にかかる鍵配信サーバ102及び端末装置122のハードウェア構成例について説明する。第2に、本実施形態に係る暗号鍵配信ロジックに関連する基盤技術について説明する。第3に、本実施形態に係る鍵配信サーバ102及び端末装置122の構成について詳細に説明し、その構成及び効果に関する基盤技術との相違点を明確に述べる。最後に、本実施形態に係る暗号鍵配信システムの応用例について説明する。
[鍵配信サーバ102及び端末装置122のハードウェア構成]
まず、図2を参照しながら、本実施形態にかかる鍵配信サーバ102及び端末装置122のハードウェア構成例について説明する。図2は、本実施形態にかかる鍵配信サーバ102又は端末装置122の機能を実現可能なハードウェア構成の一例である。
鍵配信サーバ102及び端末装置122は、例えば、コントローラ202と、演算ユニット204と、入出力インターフェース206と、セキュア記憶部208と、メイン記憶部210と、ネットワークインターフェース212と、メディアインターフェース216と、を備える。
(コントローラ202)
コントローラ202は、バスを介して他の構成要素に接続されており、主に、メイン記憶部210に格納されたプログラム及びデータに基づいて、装置内の各部を制御する役割を担う。なお、コントローラ202は、CPU(Central Processing Unit)等の演算処理装置により構成されていてもよい。
(演算ユニット204(鍵配信サーバ102))
鍵配信サーバ102が備える演算ユニット204は、例えば、コンテンツの暗号化、コンテンツ鍵の暗号化、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の導出を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を暗号化することが可能である。なお、上記所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、上記所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されてもよい。
(演算ユニット204(端末装置122))
一方、端末装置122が備える演算ユニット204は、例えば、コンテンツの復号、コンテンツ鍵の復号、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の生成を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を復号することが可能である。なお、所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されていてもよい。
(入出力インターフェース206)
入出力インターフェース206は、主に、ユーザが情報を入力するための入力デバイスと、演算結果又はコンテンツの中身を出力する出力デバイスと、に接続されている。例えば、入力デバイスは、キーボード、マウス、トラックボール、タッチペン、キーパッド、又はタッチパネル等であってもよく、入出力インターフェース206に対して、有線又は無線により接続されていてもよい。場合によっては、入力デバイスは、有線又は無線により接続された携帯電話やPDA(Personal Digiral Assistant)等の携帯型電子機器であってもよい。一方、出力デバイスは、例えば、ディスプレイ等の表示装置、又はスピーカ等の音声出力デバイス等であってもよく、入出力インターフェース206に対して、有線又は無線により接続されていてもよい。なお、上記入出力デバイスは、鍵配信サーバ102又は端末装置122に内蔵或いは一体化されていてもよい。
なお、入出力インターフェース206は、バスを介して他の構成要素に接続されており、入出力インターフェース206を介して入力された情報をメイン記憶部210等に伝達することが可能である。逆に、入出力インターフェース206は、メイン記憶部210等に格納された情報、ネットワークインターフェース212等を介して入力された情報、又は演算ユニット204がこれらの情報を演算して得られた結果等を出力デバイスに出力することができる。
(セキュア記憶部208)
セキュア記憶部208は、主に、コンテンツ鍵、セット鍵、及び中間鍵等の秘匿が必要な情報を安全に格納する。セキュア記憶部208は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、セキュア記憶部208は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。
(メイン記憶部210)
メイン記憶部210は、例えば、他の構成要素を制御するための制御プログラム、コンテンツ又はコンテンツ鍵等を暗号化するための暗号化プログラム、暗号化されたコンテンツ又はコンテンツ鍵等を復号するための復号プログラム、又は、セット鍵又は中間鍵を生成するための鍵生成プログラム等が格納されていてもよい。また、メイン記憶部210は、演算ユニット204により出力された計算結果を一時的又は永続的に格納したり、入出力インターフェース206、ネットワークインターフェース212、又はメディアインターフェース216等から入力された情報を格納してもよい。なお、メイン記憶部210は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、メイン記憶部210は、セキュア記憶部208と一体に構成されていてもよい。
(ネットワークインターフェース212)
ネットワークインターフェース212は、例えば、ネットワーク上の他の通信装置等に接続されており、例えば、暗号化されたコンテンツ又はコンテンツ鍵、セット鍵、中間鍵等の情報、暗号化に関するパラメータ情報、及び許諾ユーザの集合に関する情報を送受信するためのインターフェース手段である。ネットワークインターフェース212は、バスを介して他の構成要素に接続されており、ネットワーク上の外部装置から受信した情報を他の構成要素に伝達し、又は他の構成要素が有する情報をネットワーク上の外部装置に送信することが可能である。
(メディアインターフェース216)
メディアインターフェース216は、情報メディア218を着脱して情報を読み書きするためのインターフェースであり、バスを介して他の構成要素に接続されている。このメディアインターフェース216は、例えば、装着された情報メディア218から情報を読み出して他の構成要素に伝達し、又は他の構成要素から供給された情報を情報メディア218に書き込むことが可能である。情報メディア218は、例えば、光ディスク、磁気ディスク、半導体メモリ等のポータブル記憶媒体(着脱可能な記憶媒体)であってもよいし、又はネットワークを介さずに比較的近距離で有線/無線接続された情報端末の記憶媒体等であってもよい。
以上、本実施形態に係る鍵配信サーバ102及び端末装置122の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、コントローラ202と演算ユニット204とを同一の演算装置により構成してもよいし、セキュア記憶部208とメイン記憶部210とを同一の記憶装置により構成してもよい。また、利用形態によっては、メディアインターフェース216、又は入出力インターフェース206等を省略する構成も可能である。以下、上記のようなハードウェア構成を有する鍵配信サーバ102及び端末装置122により実現される暗号鍵配信方式について詳述する。
[基盤技術に係る暗号鍵配信方式]
まず、本実施形態にかかる暗号鍵配信方式について詳細なる説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
以下で説明する基盤技術に係る暗号鍵配信方式のことを基盤方式と呼ぶことにする。この基盤方式は、コンテンツが配信されるユーザの端末装置の集合を、複数の部分集合に分け、各部分集合に割り当てられたセット鍵によってコンテンツ鍵を暗号化して配信する方式である。この基盤方式は、暗号鍵配信に伴う通信量、各ユーザが保持すべき復号鍵の数、又は各ユーザが復号鍵を生成するための計算量等を削減する為に、どのような部分集合を選択するか、どのようにセット鍵を生成するか、どのようにセット鍵を配信するか、という課題に対して一つの解決手段を提供している。そこで、図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の葉ノード数n=64の例である。
まず、葉ノードの数が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 2008131072
以上、部分集合を規定する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
・有向パス : P
まず、パラメータk(kは自然数)を決める。ここでは簡単のために、k|log(n)(以下、logの底は2)とする。このパラメータkは、結果的に端末装置122が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係するため、状況に応じて、適宜、設定されるべきパラメータである。図4では、例えば、k=6が設定されている。
次に、具体的な有向グラフの描き方について述べる。まず、一例として、BTRに属する中間ノードvに対応した有向グラフH(lv→rv−1)について説明する。
(工程1)有向グラフ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及び第3水平座標軸上の右向きの有向グラフHにおいてその始点が位置する縦線がxである場合、この有効グラフHと縦線yとの交点は[x,y]を表し、また、第2及び第4水平座標軸上の左向きの有向グラフHにおいてその始点が位置する縦線がzである場合、この有効グラフHと縦線yとの交点は[y,z]を表す。
その後、座標軸の最左に位置する座標点の左側に始点となる仮座標点を設定し、座標軸の最右に位置する座標点の右側に終点となる仮座標点を設定する。このように設定された座標軸は、左端の仮座標点(始点)から右端の仮座標点(終点)までの長さLvが、Lv=rv−lv+1となる。
(工程2)有向グラフH(lv→rv−1)を構成する有向枝を設定する。
(2−1)n(x−1)/k<Lv≦nx/kを満たす整数xを算出する。この整数xは、1≦x≦kを満たす。
(2−2)カウンタiを0からx−1まで動かしながら、次の操作を繰り返し行う。水平座標軸の左端にある始点から開始し、その座標点からni/kだけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/kだけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端にある終点に到達するか、或いは、次に設定される有向枝の終端が当該終点を超えるまで、繰り返し行う。
(工程3)仮座標点を始点又は終点とする有向枝を全て削除する。
(工程4)ある座標点に到達する有向枝が複数ある場合には、最長の有向枝のみを残し、この最長の有向枝以外の有向枝を全て削除する。
以上の(工程1)〜(工程4)を実行すると、有向グラフ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)を生成するために利用される。
ところで、上述した(2−2)の処理における繰り返し回数がx回であり、1≦x≦kであるため、有向グラフHの各座標点からは、最大でk本の有向枝が出ている。ある座標点(部分集合S0)から出ている1又は2以上の有向枝の到達先の座標点の部分集合を、上記ある座標点に近い順(有向枝が短い順)に、S1,S2,・・・,Skとする。ただし、座標点(部分集合S0)から出ている有向枝の数がq本(q<k)である場合には、S(q+1),S(q+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を繰り返し用いることにより、複数のセット鍵を算出することができる。
なお、中間鍵は、安全性を高める目的で使用している。安全性に格段の注意を払わなくてもよいが、セット鍵生成のための演算量を減らしたい場合には、中間鍵を使わず、あるセット鍵から別のセット鍵を直接計算するようにしてもよい。たとえば、上記の例では、部分集合S0のセット鍵k(S0)をPRSGに入力した場合の出力を,k(S1)、k(S2)、k(S3)、k(S4)とし、それぞれの部分集合S1〜S4のセット鍵としてもよい。
上記の例から容易に推察される通り、ある中間鍵は、PRSGを反復して用いることにより、その中間鍵に対応する座標点から伸びた有向枝の鎖によって到達可能な座標点に対応する中間鍵とセット鍵とを導き出すことができるのである。従って、各ユーザは、自身が含まれる部分集合に対応する中間鍵を全て導出できる最低限の数の中間鍵を保持していればよいのである。一方、コンテンツ鍵を暗号化するためのセット鍵を生成する鍵配信サーバは、少なくとも各有向グラフHの先頭座標点に対応する中間鍵のみを保持していれば、PRSGによる演算を繰り返し行うことで、当該有向グラフの他の座標点に対応するセット鍵を導出することができる。
従って、鍵配信システムの管理者は、鍵配信システムのセットアップ時に、鍵配信サーバにおいて各有向グラフHの先頭座標点(ルート)の中間鍵として、例えばλビットの乱数を設定する。ここで、有向グラフHの先頭座標点(ルート)とは、その座標点から有向枝が出ているが、その座標点に到達することのない座標点である。例えば、図4の有向グラフH(1→64)の先頭座標点は、水平座標軸の左端の[1,1]座標点である。
以上、セット鍵の生成方法について説明した。上記のセット鍵生成方法は、コンテンツ鍵の送信者側の鍵生成サーバで用いられるだけでなく、受信者側の端末装置でも用いられる。
(中間鍵の配信)
ここで、鍵配信サーバから、各ユーザの端末装置への中間鍵の配信について述べる。既に簡単に述べたが、各ユーザの端末装置に対しては、そのユーザの端末装置が含まれる全ての部分集合に対応するセット鍵を導出可能な複数の中間鍵を与えねばならない。もちろん、そのユーザの端末装置が含まれない部分集合に対応するセット鍵を導出可能な中間鍵を与えてはならないし、与える中間鍵の数は、メモリ量の効率化の観点から最小限であることが好ましい。
そこで、中間鍵の配信者は、ユーザuの端末装置が所属する部分集合(以下、「ユーザuが属する部分集合」や、「ユーザuが含まれる部分集合」と表記する場合もある。)を要素に有する有向グラフHを全て抽出する。そして、有向グラフHの先頭座標点(ルート)に対応する部分集合にユーザuが含まれる場合には、その先頭座標点に対応する中間鍵のみをユーザuの端末装置に与える。また、有向グラフHの先頭座標点以外の座標点に対応する部分集合のいずれかにユーザuが属する場合には、ユーザuが部分集合S0には含まれるが、その部分集合S0の親である部分集合parent(S0)には含まれないような、部分集合S0を見つけ、この部分集合S0の中間鍵t(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])o及び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)。その後、各ユーザの端末装置122に対し、各ユーザが自身を含む部分集合に対応するセット鍵を導出できるように、必要な中間鍵を配布する(S110)。
以上、中間鍵の配信方法について説明した。この配信方法を用いると、各許諾ユーザの端末装置がセット鍵を生成するために必要な最低限の中間鍵が配信され、鍵配信サーバと端末装置と間の通信量、及び各ユーザの端末装置における中間鍵のメモリ量を節約することができる。
(コンテンツ鍵の配信)
ここで、鍵配信サーバによる暗号化されたコンテンツ鍵mekの配信方法について説明する。まず、鍵配信サーバは、許諾ユーザの端末装置122のみが生成可能なセット鍵を用いてコンテンツ鍵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]の中間鍵を保持している。この場合、端末装置122は、[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に示すように、各ユーザの端末装置が保持すべき中間鍵の個数が依然として大きいという問題があった。
また、暗号化されたコンテンツ鍵mekの復号時に、端末装置が必要とする計算量のうち支配的なものは、所望の中間鍵を導出するためにPRSGを何回実行させるかに依存している。この最悪値は、有向グラフHにおける先頭座標点(ルート)から最も遠い末尾座標点(有向枝が出ていないリーフ)までの、有向枝の本数(即ち、ジャンプ回数)により表される。図4で示した例では、有向グラフH(1→64)の先頭座標点[1,1]から末尾座標点[1,64]まで到達するために、11本の有向枝を経由(11回のジャンプを実行)しなければならず、これは、PRSGを11回も実行しなければならないことを示している。このように、基盤技術に係る暗号鍵配信方式では、PRSGの実行回数が多いため、中間鍵を導出するための計算量が多いという問題もあった。
そこで、本願発明者らは上記問題を解決すべく鋭意努力して、以下に説明するような、本発明の一実施形態にかかる暗号鍵配信方式を開発した。この本実施形態にかかる暗号鍵配信方式は、有向グラフを構成する有効枝をより短い有向枝に置換して、有向グラフを再構成することにより、端末装置122が保持する中間鍵数の低減を実現できる。以下では、本実施形態にかかる暗号鍵配信方式を実現する鍵配信サーバ102及び端末装置122の機能構成とともに、この暗号鍵配信方式の特徴及び作用効果について詳述する。
[鍵配信サーバ102の構成]
まず、図8を参照しながら、本実施形態に係る鍵配信サーバ102の構成について詳細に説明する。図8は、本実施形態に係る鍵配信サーバ102及び端末装置122の構成を示すブロック図である。
図8に示すように、鍵配信サーバ102は、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部108と、有向グラフ生成部110と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、送信部118と、部分集合決定部120と、により構成される。特に、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部108と、有向グラフ生成部110と、を纏めて、鍵生成ロジック構築ブロックと呼ぶことにする。同様に、初期中間鍵設定部112と、鍵生成部114と、を纏めて、鍵生成ブロックと呼ぶことにする。
まず、鍵生成ロジック構築ブロックを構成する各構成要素について説明する。この鍵生成ロジック構築ブロックは、上記の[基盤技術の説明]における(木構造の設定)及び(有向グラフの生成)に対応する処理を実行する。
(木構造設定部104)
木構造設定部104は、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する。また、木構造設定部104は、根ノードに対して集合(1→n)と集合(2←n)とを割り当て、ある中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードに対して集合(lv+1←rv)を割り当て、中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードに対して集合(lv→rv−1)を割り当てる。
上記のように、木構造設定部104は、m分木構造を構築可能な構成を有しているが、例えば、m=2(2分木構造)の場合を想定すると、基盤方式に係る2分木構造(図3)に一致する木構造を構築することができる。従って、木構造設定部104が構築する木構造の各ノードが持つ意味は、上記の基盤方式により構築された2分木構造の各ノードが持つ意味と実質的に同一である。以下、説明の都合上、2分木構造に限定して説明するが、これに限定されるものではない。
(座標軸設定部106)
座標軸設定部106は、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸を設定する。次いで、座標軸設定部106は、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸を設定する。そして、座標軸設定部106は、前記中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定する。さらに、座標軸設定部106は、前記第1〜4水平座標軸上の左端に位置する座標点の左側と、前記第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、前記第1水平座標軸上の右端に位置する座標点を仮座標点として設定する。
上記のように、座標軸設定部106は、木構造設定部104により設定された木構造の各ノードに対応する有向グラフを構築するための座標軸を設定する。第1水平座標軸は、集合(1→n)に対応する座標軸を、第2水平座標軸は、集合(2←n)に対応する座標軸を、第3水平座標軸は、集合(lv→rv−1)に対応する座標軸を、第4水平座標軸は、集合(lv+1←rv)に対応する座標軸を示す。もちろん、第3水平座標軸及び第4水平座標軸は、各中間ノードvに対して設定されるため、それぞれ、複数の座標軸が設定される。つまり、中間ノードの数だけ、第3水平座標軸と第4水平座標軸とが設定される。
(仮有向グラフ生成部108)
仮有向グラフ生成部108は、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定する。次に、仮有向グラフ生成部108は、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、さらに、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成する。そして、仮有向グラフ生成部108は、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外する。さらに、仮有向グラフ生成部108は、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフI’(1→n−1)、I’(2←n)、I’(lv+1←rv)、I’(lv→rv−1)をそれぞれ生成する。その後、仮有向グラフ生成部108は、集合(1→n−1)に関する仮有向グラフI’(1→n−1)に対し、第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフI’(1→n)を生成する。
上記のように、仮有向グラフ生成部108は、所望の有向グラフIを生成する前段として仮有向グラフI’を生成する。このとき、仮有向グラフI’は、基盤方式の有向グラフHに対応する。
(有向グラフ生成部110)
有向グラフ生成部110は、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する。この最長有向パスを決定する処理は、例えば、有向グラフ生成部110が備える最長有向パス決定部により実行されてもよい。また、有向グラフ生成部110は、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する。
上記のように、有向グラフ生成部110は、仮有向グラフI’を構成する有向枝をより短い有向枝に置換し、仮有向グラフI’を再構成して所望の有向グラフIを生成する。そこで、有向グラフ生成部110が実行する仮有向グラフI’の再構成に係る技術的思想、及び処理フローについて詳細に説明する。
まず、図9を参照しながら、有向グラフ生成部110の処理に関する基本コンセプトを示す。図9は、有向グラフ生成部110の処理過程を模式的に示した説明図である。
図9を参照すると、説明用に作成した2つの有向グラフQ’(A→G)及びQ(A→G)が描画されている。有向グラフQ’(A→G)は基盤方式に対応し、有向グラフQ(A→G)は本実施形態に対応する。また、各有向グラフに併せて複数の縦線が描画されており、各縦線には、指標A〜Gのいずれかが割り当てられている。この指標A〜Gは、それぞれ、ユーザの端末装置を表している。上記の基盤技術の説明においては、ユーザに対して指標1〜nを割り当てて説明したが、これに対応するものである。従って、各座標軸の座標点には、左から、部分集合[A,A],[A,B],...,[A,G]が割り当てられている。また、各座標点の下側には、各縦線に対応するユーザが保持すべき中間鍵の鍵数が記載されている。
基盤技術の説明で述べた事項の復習になるが、まず、有向グラフQ’(A→G)について簡単に説明する。有向グラフQ’(A→G)は、長さ1の有向枝4本(A⇒B、B⇒C、D⇒E、F⇒G)と、長さ2の有向枝1本(B⇒D)と、長さ4の有向枝1本(B⇒F)により構成されている。もし、座標点[A,A]から座標点[A,G]に至る有向パスP([A,A],[A,G])を考えるならば、有向パスP([A,A],[A,G])は、長さ1の有向枝(A⇒B)と、長さ4の有向枝(B⇒F)と、長さ1の有向枝(F⇒G)と、により形成される有向枝の鎖により表現される。
従って、中間鍵t([A,A])を持っているユーザAは、(1)中間鍵t([A,A])をPRSGに入力することにより、中間鍵t([A,B])を、(2)中間鍵t([A,B])をPRSGに入力することにより、中間鍵t([A,C])、t([A,D])、t([A,F])を、(3)中間鍵t([A,F])をPRSGに入力することにより、中間鍵t([A,G])を導出することができる。つまり、ユーザAは、有向パスP([A,A],[A,G])の終点に対応する中間鍵t([A,G])を導出するために、有向パスP([A,A],[A,G])を構成する有向枝の本数と同じ回数(3回)だけPRSGを実行する必要がある。そして、この回数こそが、ユーザの計算量を決めるのである。有向グラフQ’(A→G)の場合は、有向パスP([A,A],[A,G])と、有向パスP([A,A],[A,E])と、が最大の有向枝数を有しているため、これらの有向パスの長さが、ユーザの計算量の最悪値に対応する。
一方、各ユーザは、自身が所属する部分集合に対応する全ての中間鍵を生成できなくてはならない。そのため、ユーザが予め所持すべき中間鍵は、PRSGを繰返し用いて生成される複数の中間鍵が、自身が所属する部分集合に対応した中間鍵の全てを含むような中間鍵でなくてはならない。さらに、各ユーザが保持する中間鍵は、その数が最小になるように選択されなくてはならない。従って、ユーザは、有向グラフを参照して、自身が所属する部分集合に対応した座標点の中から、その座標点に到達する有向枝の始点に対応する部分集合に自身を含まないような座標点を選択し、それらの座標点に対応する中間鍵を保持すればよい。
例えば、有向グラフQ’(A→G)を参照し、ユーザCが保持すべき中間鍵について考察する。ユーザCが所属する部分集合は、[A,C],[A,D],...,[A,G]である。そこで、有向グラフQ’(A→G)に注目すると、部分集合[A,C],[A,D],[A,F]に到達する有向枝の始点は、いずれも座標点[A,B]であり、ユーザCを含まない。従って、ユーザCは、中間鍵t([A,C])、t([A,D])、t([A,F])を保持すればよい。実は、各ユーザが保持すべき中間鍵の鍵数は、各ユーザに対応する縦線と有向グラフとの交点の数で表される。例えば、ユーザDは、交点が2つなので、2つの中間鍵を保持すればよいということが分かる。上記の方法により、各ユーザが保持すべき中間鍵の鍵数を算出して、各有向グラフの下方に記載した。
以上の説明は、有向グラフの意味するところを簡単に述べたに過ぎない。そこで、以上の説明を踏まえ、ここからは本実施形態の基本コンセプトについて説明する。既に述べたように、本実施形態は、計算量を増加させずに、鍵数を減少させることが目的である。そこで、鍵数を減少させるために、どのようなアプローチを採るかについて以下に述べる。
再び図9を参照する。有向グラフQ’(A→G)に基づく鍵配信方式を採用すると、最大で3つの鍵を持つユーザCが存在する。また、全ユーザの持つ鍵数は11である。そこで、有向グラフQ’(A→G)を有向グラフQ(A→G)のように変更する。具体的には、座標点[A,B]から[A,F]に伸びた有向枝E([A,B],[A,F])を、座標点[A,D]から[A,F]に伸びた有向枝E([A,D],[A,F])に置換すればよい。このように変更すると、各ユーザが保持すべき鍵数の最大値は、ユーザCとユーザEとに対応する鍵数2である。また、全ユーザの持つ鍵数は9である。従って、変更の前後で鍵数が減少している。但し、この変更例では計算量を考慮しなかった。そのため、有向グラフQ(A→G)は、座標点[A,A]から[A,G]に到達する有向パスP([A,A],[A,G])に4つの有向枝を含んでおり、有向グラフQ’(A→G)に比べて計算量の最悪値が若干増加している。
そこで、本実施形態は、計算量の最悪値を超えてしまうような有向グラフの変更を行わないという条件の下、図9に示した基本コンセプトに基づいて鍵数を減少することが可能な有向グラフ生成部110の構成を提供する。以下、図10〜図14を参照しながら、有向グラフ生成部110による有向グラフIの生成方法について具体的に説明する。
まず、図10を参照しながら、有向グラフ生成部110による有向グラフ生成方法の概略について簡単に説明する。図10は、有向グラフを生成する処理フローの一例を示した流れ図である。
まず、有向グラフ生成部110は、所望の有向グラフIを生成するために、仮有向グラフ生成部108により生成された仮有向グラフI’を用いる。既に述べたように、仮有向グラフI’は、基盤方式による有向グラフHと同様の方法で生成される。そこで、仮有向グラフ生成部108による仮有向グラフI’の生成を第1ステップ(S140)とする。
そして、有向グラフ生成部110は、生成されたすべての仮有向グラフI’を構成する有向パスの中から、最長の有向パスLP(Longest Path)を抽出する(S142)。なお、有向パスLPを抽出する工程は、例えば、有向グラフ生成部110が備える最長有向パス生成部により実行されてもよい。さらに、生成されたすべての仮有向グラフI’のうち、最長の有向パスLPを含まないものについて、それぞれ、最長の有向パスPLP(Pertially Longest Path)を抽出する(S144)。つまり、各仮有向グラフI’毎に、有向パスPLPが抽出される。その後、仮有向グラフI’を構成する有向枝の中から所定の有向枝を選択し、より短い有向枝により置換する(S146)。このとき、有向グラフ生成部110は、抽出された有向パスLP及び有向パスPLPの長さに基づいて、上記の計算量の最悪値が増加しないという条件の下、有向枝の置換を実行する。また、上記の有向枝の置換工程は、例えば、有向グラフ生成部110が備える有向枝置換部により実行されてもよい。
以上、有向グラフ生成部110による有向グラフの生成工程について概要を説明した。このように、有向グラフ生成部110は、仮有向グラフ生成部108により生成された仮有向グラフI’から、有向パスLP及び有向パスPLPを抽出し、これらの有向パスの長さに基づいて所定の有向枝を選択して置換することにより、所望の有向グラフを生成することができる。以下では、上記の各工程に対応するより詳細な説明を行う。
まず、図11を参照しながら、仮有向グラフI’の生成工程について説明する。但し、ここでは仮有向グラフI’のうち、中間ノードvに対応する有向グラフI’(lv→rv−1)についてのみ説明する。まず、仮有向グラフ生成部108は、所定の整数kを設定し、Lv=rv−lv+1を定義した上で、n(x−1)/k<Lv≦nx/kを満たす整数xを算定する(S150)。仮有向グラフ生成部108は、カウンタiを0からx−1まで動かしながら、次の操作を繰り返し行う。水平座標軸の左端にある始点から開始し、その座標点からni/kだけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/kだけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端にある終点に到達するか、或いは、次に設定される有向枝の終端が当該終点を超えるまで繰り返し行う(S152)。そして、仮有向グラフ生成部108は、仮座標点を始点又は終点とする全ての有向枝を除外する(S154)。さらに、仮有向グラフ生成部108は、座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外する(S156)。
次に、図12を参照しながら、最長有向パスLPを抽出する工程(S160)について説明する。まず、最長有向パスLPについて説明するに当たり、以下に2つの表現を定義する。
・DDT :最長有向パスLPの長さを示す。
・J(a,b):ある有向パスに長さbの有向枝がa本連続して存在することを示す。
(例えば、図9に示した有向グラフQ’(A→G)を例に挙げると、有向パスP([A,A],[A,G])は、長さ1の有向枝1本と、長さ4の有向枝1本と、長さ1の有向枝1本と、により構成されるため、J(1,1)、J(1,4)、J(1,1)と表現される。)
有向グラフ生成部110は、仮有向グラフI’を構成する有向パスの各々について、J(a,b)を算出することができる。例えば、仮有向グラフI’(1→n)の座標点[1,1]から[1,n]までの有向パスP([1,1],[1,n])を考えると、有向パスP([1,1],[1,n])は、J(n1/k−1,1)、J(n1/k−1,n1/k)、...、J(n1/k−1,n(k−2)/k)、J(n1/k−2,n(k−1)/k)、J(n1/k−1,n(k−2)/k)、...、J(n1/k−1,n1/k)、J(n1/k,1)と表現される。上述の仮有向グラフ生成部108により生成された仮生成グラフI’の場合、最長有向パスLPは、仮有向グラフI’(1→n)を構成する有向パスP([1,1],[1,n])である。有向グラフ生成部110は、最長有向パスLPを抽出してもよいし、仮有向グラフI’(1→n)を構成する有向パスP([1,1],[1,n])を一意に抽出してもよいが、場合によっては、有向グラフ生成部110が仮有向グラフI’を構成する全ての有向パスの長さを算出し、その中から最長の有向パスLPを選択してもよい。このとき、最長有向パスLPの長さDDTは、DDT=(2k−1)*(n1/k−1)により表現される。その後、有向グラフ生成部110は、最長有向パスLPを構成する全ての有向枝に対し、有効であることを示すactiveマークを設定する。
次に、図13を参照しながら、根ノードおよび各中間ノードに対応する仮有向グラフI’(ただし,最長有向パスLPを含むグラフを除く)毎の最長有向パスPLPを算出する工程について説明する。図13は、有向パスPLPの算出工程を示す流れ図である。
まず、有向グラフ毎の最長有向パスPLPを抽出する工程を説明するに当たり、以下の2つの表現を定義する。
・CP(Current Path):考慮中の有向パス(現在パスと呼ぶ)
・#JP(CP) :その有向パスに含まれる有向枝の数
有向グラフ生成部110は、以下に示すアルゴリズムに基づいて、有向パスPLPを抽出する。
(工程1)有向グラフ生成部110は、有向グラフI’の始点から終点への現在パスCPを決定する。このとき、考慮する有向グラフが、有向グラフI’(a→b)である場合には、有向パスP([a,a],[a,b])を現在パスCPとして設定し、有向グラフI’(a←b)である場合には、有向パスP([b,b],[a,b])を現在パスCPとして設定する(S162)。
(工程2)有向グラフ生成部110は、現在パスCPを構成する有向枝のうち、最長の有向枝を抽出し、その長さをJと設定する(S164)。
(工程3)有向グラフ生成部110は、J≦1か否かを判断し(S166)、J≦1である場合、現在パスCPを有向パスPLPと決定して、この有向パスPLPを構成する全ての有向枝にactiveマークを設定する(S176)。
(工程4)J>1である場合、有向グラフ生成部110は、#JP(CP)+n1/k−1≦DDTか否かを判断し(S168)、#JP(CP)+n1/k−1≦DDTでない場合、現在パスCPを有向パスPLPと決定して、この有向パスPLPを構成する全ての有向枝にactiveマークを設定する(S176)。
(工程5)#JP(CP)+n1/k−1≦DDTである場合、有向グラフ生成部110は、J=nj/kとなる自然数jを算出する(S170)。
(工程6)有向グラフ生成部110は、現在パスCPを構成する長さJの有向枝の中で、現在パスCPの始点から最も遠い有向枝を抽出する(S172)。
(工程7)有向グラフ生成部110は、(工程6)で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、(工程6)で抽出された有向枝を除去する(S174)。その後、(工程1)に移行して、上記の各工程を繰り返す。
なお、上記の(工程1)〜(工程6)の間に生じる処理のループは、有向グラフI’の始点から終点への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を行うことによって、この有向パスを構成する有効枝数がDDTを超えてしまう場合に、このループを終了する。以上の処理により、有向グラフ毎の最長有向パスPLPを設定することができる。
次に、図14を参照しながら、所定の有向枝を置換する工程について説明する。この工程は、各有向グラフについて、有向パスを構成する有効枝の数がDDTを超えないという条件の下で、所定の有向枝をより短い有向枝に置換する処理のアルゴリズムを構成する。
有向グラフ生成部110は、以下のアルゴリズムに基づいて、有向枝を置換する。
(工程1)有向グラフ生成部110は、有向グラフI’を構成する有向枝のうち、activeと設定され、かつ、処理が済んでおらず(doneが未設定)、かつ、最長の有向枝を抽出する。さらに、有向グラフ生成部110は、抽出された有向枝の長さをJ’とおく。もし、長さJ’の有向枝が複数ある場合、有向グラフ生成部110は、有向グラフI’の始点から最も遠い有向枝を選択する(S180)。このとき、選択した有向枝をWJ(Working Jump)と呼び、有向枝WJの始点をWJS、終点をWJEと呼ぶことにする。また、有向グラフI’の始点からWJSに到達する有向パスを構成する有向枝の数をDと表記することにする。
(工程2)有向グラフ生成部110は、有向枝WJの長さJ’がJ’≦1であるか否かを判断し(S182)、J’≦1である場合、activeと設定された有効枝のみにより構成される有向グラフを、所望の有向グラフIとして設定する(S202)。J’>1である場合、(工程3)へ移行する。
(工程3)有向枝WJの長さJ’>1である場合、有向グラフ生成部110は、WJSから(WJE−1)に到達する有効パスを現在パスCPとして設定する(S184)。但し、(WJE−1)は、WJEの一つ手前の座標点である。
(工程4)有向グラフ生成部110は、現在パスCPを構成する有向枝の中から、最長の有向枝を抽出し、その長さをJとおく(S186)。
(工程5)有向グラフ生成部110は、抽出された有向枝の長さJが、J≦1であるか否かを判断し(S188)、J≦1である場合、現在パスCPを構成する全ての有向枝にactiveを設定し(S198)、有向枝WJにdoneを設定する(S200)。その後、再び(工程1)の処理からスタートする。J>1である場合、(工程6)に移行する。
(工程6)J>1である場合、有向グラフ生成部110は、#JP(CP)+n1/k−1≦DDT−Dであるか否かを判断し(S190)、#JP(CP)+n1/k−1>DDT−Dである場合には、現在パスCPを構成する全ての有向枝にactiveを設定して(S198)、有向枝WJにdoneを設定する(S200)。その後、再び(工程1)の処理からスタートする。#JP(CP)+n1/k−1≦DDT−Dである場合、(工程7)に移行する。
(工程7)#JP(CP)+n1/k−1≦DDT−Dである場合、有向グラフ生成部110は、J=nj/kを満たす自然数jを算出する(S192)。
(工程8)有向グラフ生成部110は、現在パスCPを構成する長さJの有向枝のうち、現在パスCPの始点から最も遠くに位置するものを抽出する(S194)。
(工程9)有向グラフ生成部110は、(工程8)で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、(工程8)で抽出された有向枝を除去する(S196)。その後、(工程3)に戻って上記の各工程を繰り返す。
なお、上記の(工程3)〜(工程9)の間に生じる処理のループは、WJSからWJE−1への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を行うことによって、WJSからWJE−1への有向パスを構成する有効枝数がDDTを超えてしまう場合に、このループを終了する。一方、上記の(工程1)〜(工程5)又は(工程6)の間に生じる処理のループは、有向グラフI’を構成する有効枝の中に、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。以上の処理により、所望の有向グラフIを生成することができる。
最後に、上記の有向グラフ生成方法を用いて生成した有向グラフIの例を示す。図3に示した葉ノード数n=64の完全2分木構造に基づいて、パラメータk=6を設定した場合の有向グラフIを図15に示した。
まず、基盤方式に基づいて生成された有向グラフH(図4)と、本実施形態に係る有向グラフI(図15)と、を比較すると以下の2点が容易に分かる。(1)有向グラフIは、有向グラフHに比べて長さ2以上の有向枝の数が減少し、1つの座標点から伸びる有向枝の数が減少したこと。(2)有向グラフIを構成する有向パスのいずれも、有向グラフHの最長有向パスLP(P([1,1],[1,64]))の長さを超えないこと。従って、セット鍵の生成に必要な計算量の最悪値を増加させることなく、ユーザが保持すべき中間鍵の鍵数を低減することが可能な有向グラフIが生成されることが確認された。
同様に、パラメータkをk=3にした場合についても比較する。基盤方式に基づく鍵配信方法では、各ユーザに配布すべき中間鍵の鍵数がO(k*log(n))となり、パラメータkが減少すると、各ユーザが保持すべき鍵数が減少する。しかし、パラメータkが減少したことによって計算量が増加するという問題がある。そこで、具体的にパラメータkが減少した場合の効果についても検討してみよう。図16には、基盤方式に基づいて生成された有向グラフHを、図17には、本実施形態に係る有向グラフIを示した。
同じ基盤方式を採用して生成した有向グラフH(図4:k=6、図16:k=3)を比較すると、k=3の有向グラフHは、長さ2以上の有向枝の数が減少し、1つの座標点から伸びる有向枝の数が減少している。しかし、k=3の場合は、有向グラフHの最長有向パスLP(P([1,1],[1,64]))を構成する有向枝の数が15となり、k=6の場合(有向枝数=11)よりも大きくなっている。次に、同じk=3の場合について、基盤方式に係る有向グラフH(図16)と、本実施形態に係る有向グラフI(図17)とを比較すると、最長有向パスLPを構成する有向枝の数は共に15と変わらないが、長さ2以上の有向枝の本数は有向グラフIの方が少ない。従って、パラメータkに依らず本実施形態の効果が得られることが確認できた。
本実施形態に係る鍵数削減効果をより定量的に理解するため、基盤方式(従来方式と表記)と本実施形態との比較結果を表形式で図18に示した。図18を参照すると、k=6の場合には、全ユーザについて保持すべき鍵数が低減されている。もちろん、総鍵数、平均鍵数においても同様である。さらに、基盤方式(k=3)と本実施形態の方式(k=6)とを比較すると、各ユーザが保持すべき鍵数は、ほぼ同程度になることが分かる。この比較は、本実施形態を適用することにより、鍵数を同程度に保ちながら、計算量を削減できるという効果を示している。以上の結果は、ユーザ数nがn=64という小さな数で実施されたものであるため、削減される鍵数の絶対値はそれほど大きくないように思われるかもしれないが、実施環境においては、ユーザ数が桁違いに大きいため、その削減効果は極めて顕著であると言える。
以上、セット鍵を生成するのに必要な計算量の最悪値を増加させることなく、ユーザが保持すべき中間鍵の鍵数を低減することが可能な有向グラフの生成ロジックについて説明した。上記の鍵生成ロジック(有向グラフ)の構築は、主に、鍵配信サーバ102を構成する鍵生成ロジック構築ブロックにより実行される。しかし、上記の鍵生成ロジックに基づいて暗号鍵配信を実行するためには、他の構成要素が必要である。そこで、再び図8を参照しながら、他の構成要素についても説明する。
再度、図8を参照すると、鍵配信サーバ102は、上記の鍵生成ロジック構築ブロックの他に、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、送信部118と、部分集合決定部120と、により構成される。
(初期中間鍵設定部112)
初期中間鍵設定部112は、木構造の各中間ノードに対応する各有向グラフIについて、有向グラフIの先頭座標点に対応する中間鍵を生成する。例えば、初期中間鍵設定部112は、擬似乱数生成器により乱数を発生させて、上記の先頭座標点(ルート)に対応する各中間鍵に対して乱数を設定してもよいし、又は所定の数値を各中間鍵に設定してもよい。
(鍵生成部114)
鍵生成部114は、有向グラフIを構成するある有向枝について、その有向枝の始点が示す座標点に割り当てられた所定の中間鍵が入力されると、その有向枝の始点が示す座標点に対応するセット鍵と、その有向枝の始点から伸びる全ての有向枝の終点に対応する中間鍵と、を出力する。つまり、鍵生成部114は、基盤方式のPRSGに対応するものである。但し、鍵生成部114は、有向グラフ生成部110により生成された有向グラフIに基づいて中間鍵を出力する点で、基盤方式のPRSGとは異なる。もし、鍵生成部114を同じPRSGと表現するならば、有向グラフIのある座標点S0に対応する中間鍵t(S0)を入力すると、座標点(部分集合S0に対応)を始点とする有向枝の終点に対応する中間鍵t(S1)、t(S2)、...、t(Sm)と、セット鍵k(S0)と、を出力する。但し、mは、ある座標点S0を始点とする有向枝の本数を表している。
(送信部118)
送信部118は、葉ノードに対応する全ユーザに対し、後述する暗号部116により暗号化されたコンテンツ鍵を配信する。送信部118は、上記の有向グラフIを参照しながら、各ユーザに対して中間鍵を配信する。このとき、送信部118は、各ユーザが、自身の所属する部分集合に対応する中間鍵を全て導出できるように、必要最低限の中間鍵を配信してもよい。つまり、送信部118は、セットシステムΦ(上式(1)参照)を構成する部分集合の中から、中間鍵の配信先ユーザが所属する部分集合を抽出し、その抽出された部分集合に対応する有向グラフIの座標点のうち、その座標点に到達する有向枝の始点に対応する部分集合に当該配信先ユーザが含まれないような座標点を選択して、その選択された座標点に対応する中間鍵のみを当該配信先ユーザに配信してもよい。但し、送信部118は、中間鍵の配信先ユーザが所属する部分集合が、有向グラフIの先頭座標点に対応する場合には、当該先頭座標点に対応する中間鍵のみを当該配信先ユーザに配信してもよい。また、送信部118は、有向グラフIの情報を各ユーザに配信する有向グラフ情報配信部として機能してもよい。つまり、送信部118は、各中間鍵を入力することにより、有向グラフIに基づいて所定の中間鍵とセット鍵とを出力するPRSGの鍵生成アルゴリズムに関する情報(例えば、鍵生成プログラム)を配信してもよい。
なお,この中間鍵の配布は、コンテンツの配布に先立ってコンテンツの配信とは別の通信路を用いて行ってもよい。例えば、鍵配信サーバ102が各端末用の中間鍵を出力して記録媒体に記録し、端末装置を製造する工場において、端末の製造時に、この記録媒体から読み出した各端末装置の中間鍵をそれぞれ対応する端末装置に格納してもよい。
(暗号化部116)
暗号化部116は、セット鍵を用いてコンテンツ鍵を暗号化する。コンテンツ鍵は一つであるが、セット鍵はセットシステムΦを構成する部分集合の数だけ存在する。暗号化部116は、セットシステムΦを構成する全ての部分集合のうち、後述する部分集合決定部120において選択された部分集合に対応する各セット鍵を用いてコンテンツ鍵を暗号化する。つまり、暗号鍵116は、各セット鍵に対応する暗号化されたコンテンツ鍵を生成する。その為、選択された部分集合の数がmであれば、暗号化されたコンテンツ鍵もm個作成される。なお、暗号化部116は、コンテンツ自体を暗号化してもよい。例えば、暗号化部116は、コンテンツ鍵を用いてコンテンツ自体を暗号化してもよいし、上記の各セット鍵を用いてコンテンツ自体を暗号化してもよい。但し、セット鍵を用いてコンテンツ自体を暗号化する構成は、本実施形態の一変形例である。
(部分集合決定部120)
部分集合決定部120は、コンテンツ又はコンテンツ鍵を復号不能にすべき排除ユーザの集合(R)を決定し、有向グラフIの座標点に対応する部分集合の中から、選択された所定の部分集合の和集合により、ユーザの集合(N)から排除ユーザの集合(R)を除外した許諾ユーザの集合(N\R)を定義した上で、許諾ユーザの集合(N\R)を構成する部分集合の数が最小となるように、許諾ユーザの集合(N\R)を構成する部分集合の組を決定する。なお、部分集合決定部120は、許諾ユーザの集合(N\R)を決定する許諾ユーザ集合決定部と、許諾ユーザの集合(N\R)を構成する部分集合の組を決定する許諾ユーザ部分集合決定部と、により構成されていてもよい。
上記のように、部分集合決定部120により許諾ユーザの集合(N\R=S1∪S2∪...∪Sm;mは自然数)を構成する部分集合(S1、S2、...、Sm)が決定されると、送信部118は、許諾ユーザの集合(N\R)又は許諾ユーザの集合(N\R)を構成する部分集合(S1、S2、...、Sm)を示す情報を各ユーザに対して配信する。また、暗号化部116は、部分集合決定部120により決定された部分集合(S1、S2、...、Sm)に対応するセット鍵を用いてコンテンツ又はコンテンツ鍵を暗号化し、そして、送信部118は、その暗号化されたコンテンツ又はコンテンツ鍵を各ユーザに対して配信する。
以上、本発明の好適な実施形態に係る鍵配信サーバ102の構成について説明した。このように、本実施形態の特徴は、主に、鍵生成ロジック構築ブロックの構成にある。特に、鍵生成ロジックを決定する有向グラフを生成するための有向グラフ生成部110の構成に特徴を有している。本実施形態に係る有向グラフ生成部110は、各ユーザがセット鍵を生成する際に要する計算量を増加させることなく、各ユーザが保持すべき中間鍵の鍵数を低減させることが可能な鍵生成ロジック(有向グラフ)を生成することができる。その結果、各ユーザの端末装置が中間鍵を保持するために必要とするメモリ量を削減できると同時に、各ユーザの端末装置に中間鍵を配信するための配信コストを低減することが可能になる。
[端末装置122の構成]
次に、図8を参照しながら本実施形態に係る端末装置122の構成について説明する。
図8を参照すると、端末装置122は、受信部124と、判断部126と、鍵生成部128と、復号部130と、により構成される。
(受信部124)
受信部124は、鍵配信サーバ102が備える送信部118から送信された情報を受信する。例えば、受信部124は、鍵配信サーバ102から配信されたコンテンツ、暗号化されたコンテンツ鍵、所定の中間鍵、有向グラフIに関する情報、又は許諾ユーザに関する情報等を受信する。また、受信部124は、一つの情報源から情報を受信するだけでなく、複数の情報源から情報を収集してもよい。例えば、受信部124は、有線又は無線のネットワークに接続された複数の情報源(例えば、鍵配信サーバ102)、又はネットワークを介さずに直接的又は間接的に接続された情報源(例えば、光ディスク装置、磁気ディスク装置、又は携帯型端末装置等の情報メディア)から情報を取得してもよい。もちろん、受信部124は、他の端末装置122から情報を受信してもよいため、例えば、有向グラフIの情報を、同一の配信先グループに属する他の端末装置122との間で共有するように構成されていてもよい。この場合、同一の配信先グループとは、同一又は複数の鍵配信サーバ102から配信されるコンテンツの視聴者ユーザとして認定されたグループを意味し、上記の木構造の葉ノードに対応するユーザの集合に対応する。また、上記の中間鍵は、予め端末装置に与えられ、端末装置により保持されていてもよい。
(判断部126)
判断部126は、暗号化に利用されたセット鍵に対応する部分集合のいずれかに自身が要素として含まれるか否かを判断する。端末装置122は、自身が所属する部分集合に対応するセット鍵を生成するための中間鍵しか保持していないため、鍵配信サーバ102がコンテンツ又はコンテンツ鍵を暗号化するために用いたセット鍵の情報から、それらのセット鍵に対応する部分集合の中に、自身が所属する部分集合が含まれるか否かを予め判断する必要がある。この判断を行うのが判断部126である。なお、暗号化に利用されたセット鍵の情報は、鍵配信サーバ102からコンテンツ鍵と同時又は別のタイミングで配信されており、受信部124により受信されている。もし、暗号化に利用されたセット鍵の中に、自身が所属する部分集合に対応したセット鍵が含まれていないと判断された場合には、自身の保持する中間鍵からセット鍵を生成する処理を実行せずにコンテンツ鍵の復号処理を終了する。逆に、端末装置122は、自身の所属する部分集合に対応したセット鍵が発見された場合には、PRSGを用いて自身の保持する中間鍵からそのセット鍵を生成する。
(鍵生成部128)
鍵生成部128は、有向グラフIを構成するある有向枝について、その有向枝の始点が示す座標点に割り当てられた所定の中間鍵が入力されると、その有向枝の始点が示す座標点に対応するセット鍵と、その有向枝の始点から伸びる全ての有向枝の終点に対応する中間鍵と、を出力する。つまり、鍵生成部128は、鍵配信サーバ102が備える鍵生成部114に対応するものである。もし、鍵生成部128をPRSGと表現するならば、有向グラフIのある座標点S0に対応する中間鍵t(S0)を入力すると、座標点S0を始点とする有向枝の終点に対応する中間鍵t(S1)、t(S2)、...、t(Sm)と、セット鍵k(S0)と、を出力する。但し、mは、ある座標点S0を始点とする有向枝の本数を表している。なお、有向グラフIの情報は、鍵配信サーバ102から取得してもよいし、端末装置122が備える記憶部(図示せず)に格納されていてもよい。
(復号部130)
復号部130は、セット鍵を用いてコンテンツ鍵を復号する。具体的には、復号部130は、セット鍵に対応する部分集合の中から、自身が要素として含まれる部分集合を抽出し、当該部分集合に対応するセット鍵を用いてコンテンツ又はコンテンツ鍵を復号する。
以上、本実施形態に係る端末装置122の構成について説明した。このように、端末装置122は、上記の鍵配信サーバ102が備える有向グラフ生成部110により生成された特殊な鍵生成ロジック(有向グラフI)に基づいて、所望のセット鍵を生成することができる。その結果、端末装置122は、コンテンツ鍵を復号するために利用するセット鍵を生成するために必要な保持すべき中間鍵の鍵数を抑えることが可能になる。
[暗号鍵配信システム100の応用例]
最後に、上記の暗号鍵配信システム100の応用例を示す。
(応用例1)
まず、応用例1として、放送暗号化システム300の構成を図19示す。
図19は、放送衛星を用いた放送暗号化システム(broadcast encryption system)の構成を示すブロック図である。放送暗号化システム300は、放送チャンネルを介して暗号化されたデータ(所謂、暗号テキスト;ciphertext)を受信機310に送信する。ここで、放送暗号化システム300における放送チャンネルは、衛星放送配信チャンネルである。また、暗号テキストとして送信されるデータは、例えば、暗号鍵、音声データ、映像データ、又はテキストデータ等を含むコンテンツである。衛星放送局302における管理センタ(broadcast trusted center)304は、放送衛星306にデータを送信する。放送管理センタ304は、例えば、暗号化用の鍵を選択したり、データの暗号化、及びデータ配信を制御する。放送衛星306は、データを放送する。住居308に設置された受信機310は、例えば、衛星放送受信機を備え、放送されてくるデータを受信する。他の複数の受信機310も放送されてくるデータを受信することができる。このようにして、管理センタ304は、受信機310から成る受信機グループ内の各受信機310にデータを送信することができる。後述するように、管理センタ304は、認証されている受信機310のみが放送されたデータを復号することができるように、放送データを暗号化する。なお、図19には、放送衛星306を用いた放送システムを示しているが、ケーブルテレビジョンやコンピュータネットワーク等、この他の放送チャンネルを用いてもよい。
以上、暗号鍵配信システム100の一応用例である放送暗号化システム300の構成について述べた。簡単に暗号鍵配信システム100との関係を整理しておくと、管理センタ304が鍵配信サーバ102に対応し、受信機310が受信機122に対応する。そして、これらを接続するネットワークを仲介するのが放送衛星306である。
(応用例2)
次に、応用例2として、放送暗号化システム400の構成を図20に示す。
図20は、データ媒体を用いた放送暗号化システム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が鍵配信サーバ102に対応し、受信機414が受信機122に対応する。そして、これらを接続するネットワークの代わりに、媒体406、410を配布する配布仲介者408が介在している。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記の木構造設定部104は、上から下に枝が広がった木構造を形成するものと想定していたが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向かって枝が広がった木構造を有していてもよい。この場合、各中間ノードに対応付けされる部分集合の定義は、これに適合するように変更されねばならない。しかし、この変更は、上記の木構造設定部104が設定した木構造を回転して配置するだけであり、いずれの場合においても意味するところは完全に同一である。また、上記の仮有向グラフ生成部108及び有向グラフ生成部110は、左から右、又は右から左に座標軸を設定して有向グラフI’及びIを構築したが、この左右を反転させる変更についても同様である。つまり、上記の説明においては、便宜的に上下方向、又は左右方向を基準にして各種パラメータの定義を行ったが、一般庶民又は当業者の有すべき常識に照らして考えると、仮に木構造又は有向グラフを回転又は反転して上下左右の関係を変更したとしても、完全に同一の技術的範囲に属するものと了解される。
例えば、本発明の実施形態に係る仮有向グラフ生成部108は、上記の基盤技術に準じた仮有向グラフを生成するだけでなく、他の方式に基づいて仮有向グラフを生成してもよい。例えば、仮有向グラフとして、長さ1の有向枝と長さ2の有向枝とを単純に組み合わせて構成された有向グラフであってもよいし、有向パスの始点に近い方又は遠い方に向かって、より長い有向枝が配置された有向グラフであってもよい。もちろん、上記の基盤方式よりも複雑なロジックに基づいて生成された仮有向グラフであってもよい。このように、本発明の基本コンセプトを適用可能な範囲は、上記の基盤技術に限定されるものではなく、様々な方式により生成された有向グラフに及ぶものである。もちろん、本実施形態に係る情報処理装置は、他の情報処理装置により生成された有向グラフを取得する又は受信する取得部をさらに備え、この有向グラフを所定の条件に基づいて再構成することも可能である。
本発明の好適な実施形態に係る暗号鍵配信システムを示す説明図である。 同実施形態に係る鍵配信サーバ及び受信機の構成を示すブロック図である。 基盤方式に係る2分木構造を示す説明図である。 基盤方式に係る有向グラフを示す説明図である。 基盤方式に係る有向グラフ算出方法を示す流れ図である。 基盤方式に係る中間鍵配信方法を示す流れ図である。 基盤方式に係るセット鍵生成方法を示す流れ図である。 本発明の好適な実施形態に係る鍵配信サーバ及び端末装置の構成を示すブロック図である。 同実施形態に係る有向グラフ生成方法の基本コンセプトを示す説明図である。 同実施形態に係る有向グラフ生成方法を示す流れ図である。 同実施形態に係る(仮)有向グラフ生成方法を示す流れ図である。 同実施形態に係る有向グラフ生成方法(LP決定)を示す流れ図である。 同実施形態に係る有向グラフ生成方法(PLP決定)を示す流れ図である。 同実施形態に係る有向グラフ生成方法を示す流れ図である。 同実施形態に係る有向グラフ(k=6)の一例を示す説明図である。 基盤方式に係る有向グラフ(k=3)の一例を示す説明図である。 同実施形態に係る有向グラフ(k=3)の一例を示す説明図である。 基盤方式と同実施形態に係る鍵配信方式との比較を示した比較表である。 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。
符号の説明
100 暗号鍵配信システム
102 鍵配信サーバ
104 木構造設定部
106 座標軸設定部
108 仮有向グラフ生成部
110 有向グラフ生成部
112 初期中間鍵設定部
114 鍵生成部
116 暗号化部
118 送信部
120 部分集合決定部
122 端末装置
124 受信部
126 判断部
128 鍵生成部
130 復号部
202 コントローラ
204 演算ユニット
206 入出力インターフェース
208 セキュア記憶部
210 メイン記憶部
212 ネットワークインターフェース
216 メディアインターフェース
218 情報メディア

Claims (30)

  1. 複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する少なくとも1つの前記有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得部と;
    前記有向グラフ取得部により取得された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化または復号するためのセット鍵を生成する鍵生成部と;
    を備えることを特徴とする、情報処理装置。
  2. 前記有向グラフは,前記仮有向グラフを構成する前記複数の有向枝の中で,前記連続する有向枝の最大数を超えないように、前記仮有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して生成されることを特徴とする、請求項1に記載の情報処理装置。
  3. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項1に記載の情報処理装置。
  4. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項1に記載の情報処理装置。
  5. さらに、各前記有向グラフの始点に対応する中間鍵として所定の乱数を設定する初期中間鍵設定部を備えることを特徴とする、請求項1に記載の情報処理装置。
  6. さらに、前記セット鍵を用いてコンテンツ又はコンテンツ鍵を暗号化する暗号化部を備えることを特徴とする、請求項1に記載の情報処理装置。
  7. 所定の2分木構造を構成する葉ノード1〜n(nは自然数)の一部又は全部にそれぞれ対応付けられた端末装置に対し、前記暗号化部により暗号化された前記コンテンツ又は前記コンテンツ鍵を送信する送信部をさらに備えることを特徴とする、請求項6に記載の情報処理装置。
  8. 前記有向グラフ取得部は、
    連続する前記有向枝により構成される各有向パスの終点方向に向かって、より短い有向枝が配置されるように置換された前記有向グラフを取得することを特徴とする、請求項1に記載の情報処理装置。
  9. 前記葉ノード1〜nの部分集合をSiと定義して、前記セット鍵又は前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)を決定し、前記集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smを決定する部分集合決定部をさらに備えることを特徴とする、請求項7に記載の情報処理装置。
  10. 前記部分集合決定部は、
    前記mが最小となるように、前記部分集合S1〜Smを決定することを特徴とする、請求項9に記載の情報処理装置。
  11. 前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を、前記端末装置に送信する送信部をさらに備えることを特徴とする、請求項9に記載の情報処理装置。
  12. さらに、前記セット鍵を用いてコンテンツ又はコンテンツ鍵を復号する復号部を備えることを特徴とする、請求項1に記載の情報処理装置。
  13. 所定の2分木構造を構成する葉ノード1〜n(nは自然数)の1つ以上に対応付けられ,前記セット鍵を用いて暗号化されたコンテンツ又はコンテンツ鍵を受信する受信部をさらに備えることを特徴とする、請求項12に記載の情報処理装置。
  14. 前記受信部が受信する前記暗号化されたコンテンツ又はコンテンツ鍵は,前記葉ノード1〜nの部分集合として定義された集合Siの中で,自身に対応付けられた前記葉ノードを含む集合Sの要素である前記葉ノードに対応付けられた1つ以上の情報処理装置が復号可能であることを特徴とする、請求項13に記載の情報処理装置。
  15. 番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードの中で左端に位置する前記葉ノードの番号がlv、そして右端に位置する前記葉ノードの番号がrvと定義されており,
    さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第1水平座標軸が設定され、
    また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第2水平座標軸が設定されており,
    さらに,前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第3水平座標軸が設定され、
    そして集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で,
    所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を前記第1〜4水平座標軸上に配置して形成された仮有向グラフを構成する少なくとも1つの前記有向枝をより短い有向枝に置換して生成された有向グラフを取得する有向グラフ取得部と;
    前記有向グラフ取得部が取得した前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成部と;
    を備えることを特徴とする、情報処理装置。
  16. 番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する木構造設定部と;
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
    集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
    前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
    集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
    前記第1〜4水平座標軸上の左端に位置する座標点の左側と、前記第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、前記第1水平座標軸上の右端に位置する座標点を仮座標点として設定する座標軸設定部と;
    所定の整数kを設定し、
    (x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、
    整数i=0〜x−1の各々について、
    i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
    i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
    前記第1〜4水平座標軸の各々について、前記仮座標点を始点又は終点とする全ての前記有向枝を除外し、
    前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
    集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
    集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成部と;
    残存する前記有向枝をより短い有向枝に置換して有向グラフを生成する有向グラフ生成部と;
    を備えることを特徴とする、情報処理装置。
  17. 前記有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部を備えることを特徴とする、請求項16に記載の情報処理装置。
  18. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項17に記載の情報処理装置。
  19. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項17に記載の情報処理装置。
  20. 有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備え、
    前記有向グラフは、
    番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定し、
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
    集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
    前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
    集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
    前記第1〜4水平座標軸上の左端に位置する座標点の左側と、前記第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、前記第1水平座標軸上の右端に位置する座標点を仮座標点として設定し、
    所定の整数kを設定し、
    (x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、
    整数i=0〜x−1の各々について、
    i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
    i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
    前記第1〜4水平座標軸の各々について、前記仮座標点を始点又は終点とする全ての前記有向枝を除外し、
    前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
    集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
    集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、
    残存する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、
    前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換することによって得られることを特徴とする、端末装置。
  21. 前記セット鍵を用いて、前記暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備えることを特徴とする、請求項20に記載の端末装置。
  22. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点を始点とする前記有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項20に記載の端末装置。
  23. 前記鍵生成部は、
    前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項20に記載の端末装置。
  24. 前記復号部は、
    前記セット鍵を用いて、前記暗号化されたコンテンツ鍵を復号し、当該復号されたコンテンツ鍵を用いて、前記暗号化されたコンテンツを復号することを特徴とする、請求項21に記載の端末装置。
  25. 前記木構造の葉ノード1〜nの部分集合をSiと定義したときに、
    前記セット鍵又は前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)が決定され、前記集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smが決定され、前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を受信した場合に、
    前記端末装置は、前記受信した情報に基づいて、当該端末装置が前記部分集合S1〜Smのいずれかに属しているか否か判断し、当該判断結果に基づいて、前記暗号化されたコンテンツの復号が許可されているか否かを判断する判断部を備えることを特徴とする、請求項20に記載の端末装置。
  26. 前記復号部は、
    前記端末装置が前記部分集合S1〜Smのいずれかに属していると判断された場合に、当該端末装置が属する前記部分集合に対応した前記セット鍵を用いて、前記コンテンツ又はコンテンツ鍵を復号することを特徴とする、請求項25に記載の端末装置。
  27. 複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する少なくとも1つの前記有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得ステップと;
    前記有向グラフ取得部により取得された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化または復号するためのセット鍵を生成する鍵生成ステップと;
    を含むことを特徴とする、情報処理方法。
  28. 番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードの中で左端に位置する前記葉ノードの番号がlv、そして右端に位置する前記葉ノードの番号がrvと定義されており,
    さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第1水平座標軸が設定され、
    また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第2水平座標軸が設定されており,
    さらに,前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第3水平座標軸が設定され、
    そして集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で,
    所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を前記第1〜4水平座標軸上に配置して形成された仮有向グラフを構成する少なくとも1つの前記有向枝をより短い有向枝に置換して生成された有向グラフを取得する有向グラフ取得ステップと;
    前記有向グラフ取得部が取得した前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成ステップと;
    を含むことを特徴とする、情報処理方法。
  29. 番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する木構造設定ステップと;
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
    集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
    前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
    集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
    前記第1〜4水平座標軸上の左端に位置する座標点の左側と、前記第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、前記第1水平座標軸上の右端に位置する座標点を仮座標点として設定する座標軸設定ステップと;
    所定の整数kを設定し、
    (x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、
    整数i=0〜x−1の各々について、
    i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
    i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
    前記第1〜4水平座標軸の各々について、前記仮座標点を始点又は終点とする全ての前記有向枝を除外し、
    前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
    集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
    集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成ステップと;
    連続する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定ステップと;
    前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成ステップと;
    を含むことを特徴とする、情報処理方法。
  30. 有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成ステップを含み、
    前記有向グラフは、
    番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定し、
    集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
    集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
    前記中間ノードの各々について、
    集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
    集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
    前記第1〜4水平座標軸上の左端に位置する座標点の左側と、前記第2〜4水平座標軸上の右端に位置する座標点の右側と、にそれぞれ1個の仮座標点を配置し、前記第1水平座標軸上の右端に位置する座標点を仮座標点として設定し、
    所定の整数kを設定し、
    (x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xを算定した上で、
    整数i=0〜x−1の各々について、
    i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
    i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
    前記第1〜4水平座標軸の各々について、前記仮座標点を始点又は終点とする全ての前記有向枝を除外し、
    前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
    集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
    集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上の右端に位置する座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、
    残存する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、
    前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換することによって得られることを特徴とする、鍵生成方法。
JP2006310182A 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法 Pending JP2008131072A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006310182A JP2008131072A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
PCT/JP2007/069387 WO2008059672A1 (fr) 2006-11-16 2007-10-03 Dispositif de traitement d'informations
EP07829126A EP2086160A1 (en) 2006-11-16 2007-10-03 Information processing device
KR1020097009871A KR20090089313A (ko) 2006-11-16 2007-10-03 정보처리 장치
CN200780042720.2A CN101536401B (zh) 2006-11-16 2007-10-03 信息处理设备
US12/515,298 US8300816B2 (en) 2006-11-16 2007-10-03 Information processing unit, terminal unit, information processing method, key generation method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006310182A JP2008131072A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Publications (2)

Publication Number Publication Date
JP2008131072A true JP2008131072A (ja) 2008-06-05
JP2008131072A5 JP2008131072A5 (ja) 2009-12-10

Family

ID=39556535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006310182A Pending JP2008131072A (ja) 2006-11-16 2006-11-16 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Country Status (2)

Country Link
JP (1) JP2008131072A (ja)
CN (1) CN101536401B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131079A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2010193226A (ja) * 2009-02-19 2010-09-02 Mitsubishi Electric Corp 通信装置及び通信方法及び通信プログラム
US8300816B2 (en) 2006-11-16 2012-10-30 Sony Corporation Information processing unit, terminal unit, information processing method, key generation method and program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833271B (zh) * 2012-09-20 2014-11-26 桂林电子科技大学 虚拟专用网络中安全隐患的解决方法
CN106664202B (zh) * 2014-06-13 2020-04-03 百可德罗德公司 提供多个设备上的加密的方法、系统和计算机可读介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131079A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131079A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131079A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
US8300816B2 (en) 2006-11-16 2012-10-30 Sony Corporation Information processing unit, terminal unit, information processing method, key generation method and program
JP2010193226A (ja) * 2009-02-19 2010-09-02 Mitsubishi Electric Corp 通信装置及び通信方法及び通信プログラム

Also Published As

Publication number Publication date
CN101536401B (zh) 2013-06-05
CN101536401A (zh) 2009-09-16

Similar Documents

Publication Publication Date Title
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
US20070133806A1 (en) Information processing method, decryption method, information processing device, and computer program
US8300814B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
US20050210014A1 (en) Information-processing method, decryption method, information-processing apparatus and computer program
US8300816B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
JP2006086568A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
US8229121B2 (en) Method of tracing device keys for broadcast encryption
JP2006074392A (ja) 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2008131072A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP4561074B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4161859B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP5286748B2 (ja) 情報処理装置、鍵設定方法、及びプログラム
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
US8150040B2 (en) Key providing system, terminal device, and information processing method
JP2007189597A (ja) 暗号化装置および暗号化方法、並びに復号化装置および復号化方法
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2008131078A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP4576824B2 (ja) 情報処理装置および情報処理方法
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007020025A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
WO2009157050A1 (ja) 情報処理装置及びプログラム
KR100879083B1 (ko) 2 부분 차집합을 이용한 동보 메세지 암호화 방법

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091023

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