ブロードキャスト暗号化のためのユーザキー管理方法
【課題】線形構造を使用して各ノード別に順次一方向キーチェーンを形成し、キー値を分配するブロードキャスト暗号化のためのユーザキー管理方法を提供する。
【解決手段】本発明のキー管理方法は、順次配列された各ノードにノードパスID(Node Path ID)を与えるステップと、各ノードにノードパスIDに応じて任意のシードキー(seed value key)を与えるステップと、与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、生成されたキー値を各ノードに順次与えるステップと、を含む。
【解決手段】本発明のキー管理方法は、順次配列された各ノードにノードパスID(Node Path ID)を与えるステップと、各ノードにノードパスIDに応じて任意のシードキー(seed value key)を与えるステップと、与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、生成されたキー値を各ノードに順次与えるステップと、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロードキャスト暗号化方法に関し、詳細にはブロードキャスト暗号化のための効率的なユーザキー管理方法に関する。
【背景技術】
【0002】
ブロードキャスト暗号化(Broadcast Encryption:以下、BEと称する)は、全ユーザのうち送信先(即ち、放送センター)が希望するユーザにのみ情報を効率よく伝える方法であって、情報の受け取るユーザの集合が任意的かつ動的に変化する場合に効率よく使用されるべきである。BEで最も重要な性質は、希望しないユーザ(例えば、不法ユーザあるいは期間切れユーザ)の排除または除外である。
【0003】
図1には、一般のブロードキャスト暗号化によるデータ伝送システムのネットワーク構造が示されている。同図に示すように、コンテンツ生産者100は、オーディオまたはビデオデータを始めた種々の有効なデータを生産し、生産されたデータをサービス提供者110に提供する。サービス提供者110はコンテンツ生産者からのデータを種々の有無線通信ネットワークを介して該当のデータに対するコストを支払っている正当ユーザ(例えば、モバイルDRM(Digital Right Management)ネットワーク140、スマートホームDRMネットワーク150))にブロードキャストする。
【0004】
つまり、サービス提供者110は衛星120を介して色々な衛星受信機の備えられたセットトップボックス141のようなユーザ装置にデータ伝送が可能になり、移動通信網を介して移動通信端末142にも伝送できる。さらに、インターネットネットワーク130を介してスマートホームネットワーク150の端末150、151,152,153,154,155に伝送できる。
【0005】
一方、この際に該当データに対する正当なコストを支払っていない不法ユーザ160がデータの利用を防ぐためにブロードキャスト暗号化によりデータの暗号化を行う。
【0006】
かかる暗号化および復号化システムにおける安定性は暗号化キーを管理しているシステムにかかっていると言える。そして暗号化キーシステムにおいて最も重要なのが暗号化キーをどのように生成するか、また、生成された暗号化キーをどのように管理し、更新するかである。
【0007】
1991年BEの概念が提案された以来に数多い変化を経て、今のBEは支配されない受信者(stateless receiver)を仮定する。この概念はセッション(session)が変わることにより、それぞれのユーザの暗証キーが変えられることなく、また更新されないことを意味する。なお、安定性においては「k−復旧(k−resilient)」という用語を使用するが、これは除外されたユーザのうちk名が共謀攻撃をしても情報を復旧し切れないことを意味する。大体rは除外されたユーザの数を示しているので、「r−復旧(r−resilient)」は除外されたユーザ全てが集まって共謀攻撃しても安全であることを意味する。
【0008】
一方、BEでは伝送量、保存量、計算量を重要視しているが、それぞれの伝送側から伝送すべきヘッダー量、ユーザが保存しなければならない暗証キーの量、およびユーザがセッションキーを獲得するために求められる計算の量を意味する。この中からも伝送量の軽減が最も大きい課題とも言える。伝送量は初期に全ユーザの数であるN値に比例したのが、今は主に除外されたユーザの数であるrに比例し、減少している。伝送量がrに比例する技術が出現してから伝送量rの未満に減少させることがBEにおける大きいな課題となっている。
【0009】
かかるBE問題を基盤にして、今まで発表された結果において「Naor-Naor-Lotspiech」によって発表された「Subset Difference(SD)Method」が優れた結果を挙げている。SD方法では全ユーザがn名である場合、O(log3/2n)の保存量とO(2r−1)の伝送量を要する。
【0010】
しかしながら、このようなSD方法に基づいても多数のユーザが使用するには効率的な限界が残っているという問題がある。
【0011】
前述のように、1991年BerkovitsがBEに関する論文を最初発表した以来、今まで様々なアルゴリズムが提示されていきた。そのうちアルゴリズムについて整理してみると、暗証キー共有(secret sharing)方法、サブネットカバーフリシステムモデル(Subset Cover−Free Model)方法、ツリー構造を用いた方法などが提案されてきた。
【0012】
最初に、暗証キー共有に基づいたモデルについて概略的に説明する。暗証キー共有モデルは、1991年「S.Berkovits」により初提案され、2000年「M.Noar」と「B.Pinkas」が「Efficient Trace and Revoke Schemes」という論文でより効率よく改善された。S.Berkovitsの「How to Broadcast a Secret」では、多項式補間(polynomial interpolation)を用いた方法とベクトル基盤暗証キー共有(vector based secret sharing)を用いた方法が提示された。
【0013】
多項式補間方法によると、センタ(center;放送センターまたは送信先)から各ユーザに暗証チャネルに点(xi、yi)を伝送する。なお、 xiは全て異なる値であり、(xi、yi)は各ユーザの暗証キーである。それから、各セッションの正当なユーザt名に暗証情報Sをブロードキャストするために、ランダム整数jと次数t+j+1である多項式Pを選択する。多項式Pはt名の正当なユーザ暗証キー(xi、yi)と別のユーザの暗証キーでもない任意のj個の点(x、y)と(O,S)を介する多項式である。そして、センタでは多項式P上のt+j個の上記点とは異なる点を伝送する。すると、t名の正当ユーザはt+j個以外に1つの点(自分の暗証キー)を知っているので、次数t+j+1である多項式Pを復旧することができ、暗証情報Sも求めることができる。しかし、除外されたユーザは単にt+j個の点のみを知っていることから、絶対多項式Pを復旧することができない。
【0014】
かかる方法は、伝送量がO(t+j+1)、保存量がO(1)、計算量が約t3番の乗算である。さらに、廃棄が容易でかつ共謀を防止することができ、共謀追跡も可能である長所がある。しかし、数多いユーザに対しては非効率的であり、繰り返して使用する場合安全ではないので、実際には使用できない問題がある。
【0015】
M.NoarとB.Pinkasの「Efficient Trace and Revoke Schemes」については、ラグランジュの補間方式(lagrange’s interpolation formula)を用いた閾値暗証キー共有方式を使用する。Noar−Pinkas方法では、r次多項式をr+1個の多項式上の点を知っていればその復旧が可能であるが、1つ足りないr個の点をもっては復旧できないという性質を用いる。即ち、センタは任意のt次多項式Pを選択し、その上の相異なる点を各ユーザに暗証キーとして提供する。r名のユーザが除外されると、センタは除外されたr名の暗証キーと任意に選択されたt−r個の点を和して、総t個の点に対する情報をブロードキャストする。その結果、除外されたユーザは自分の秘密情報を加えても依然としてt個の点しか知らない一方、除外されないユーザはt+1個の点を知っていることから、多項式Pの復旧が可能になる。この多項式を用いてセッションキーP(0)値を求めることができる。
【0016】
かかる方法も廃棄し易く、かつ共謀も防止できるので、共謀追跡も可能である。特に、新たなユーザを追加(add)できるという大きな長所があり、伝送量がO(t)で保存量はO(1)であるという効率性を有する。しかし、このような方法によると、最初に定められたtより多いユーザを除外することはできない問題がある。さらに、伝送する点の数や多項式を算出するために求められる計算量がtに依存することになり、非効率的になる。また、tが大きくなるほど算出時間が増大してしまい、多数のユーザを含んでいる場合には不都合である。
【0017】
第2に、サブセットカバーフリシステムモデルは、全てのユーザの集合をSであるとすると、Sのサブセットを元素としてする集合でサブセットカバーフリシステムという概念を定義する。かかるシステムを探すことができればそのシステムを用いてBEを行うことができる。しかし、保存量と伝送量がO(r log n)程度になり効率ではないという短所がある。さらに、1−resilient モデルを拡張してk−resilientモデルにする方法も紹介された。効率的な1−resilient方法は考案し易いことから、そのような拡張が意味のあるようにみえるが、今まで提示された方法としては拡張する過程でその効率性が落ちてしまう問題がある。
【0018】
第3に、最近にはツリー構造を用いる方法が注目を浴びている。1998年にC.K.Wong, M.Gouda, G.S.LamからLTH(Logical-tree-hierarchy)方法が提案されたが、一回のセッションから数多いユーザを除外するには無理が伴う。さらに、ユーザの暗証キーはセッションの変化により共に変化するので、支配されない受信先(stateless receiver)を仮定する現代的なBEとは距離感がある。その後、2001年D.Naor, M.Naou, J.Lotspiechが 「Complete Subset(CS) Cover Scheme」と「Subset Difference(SD) Scheme」を提案した。2つの方法共にユーザの数はn名、除外されたユーザの数はrであると仮定し、センタは高さのlog nである2進ツリー(binary tree)をつくり、全てのノードにはそれに対応する暗証キーを割り当てる。そして、葉ノード(leaf node)にユーザを一人ずつ割り当てる。
【0019】
最初に、CS Cover方法について説明すると、各ユーザはルーツノード(root node)から自分の葉ノードまでの経路に位置する全てのノードの暗証キーをセンタから受けて保存する。ここで、サブツリーのうち除外されたユーザを1名も含まない完全なサブツリーを「complete Subtree(CS)」というが、このようなCSを適当に集めると、除外されないユーザのみを全て含ませることができる。なお、使用されたCSのルーツノードに当たる暗証キーでセッションキーを暗号化し伝送すると、正当なユーザはセッションキーを復旧することはできるものの、除外されたユーザは上に使用されたいずれのCSにも含まれないことから、セッションキーの復旧をすることができない。
【0020】
図2は従来のツリー構造でキーの割り当てを行うブロードキャスト暗号化の概念を示す図面である。同図に示すように、ブロードキャスト暗号化方式を介してデータの提供された各ユーザ220はそれぞれ自分の固有のキー値(32ないし47)を有すると同時に、ツリー構造上で自分と連結した各ノードのキー値を有することになる。
【0021】
例えば、34番ユーザは自分の34番キー値と共に17番ノード209のキー値、8番ノード204のキー値、4番ノード202のキー値、2番ノード201のキー値を有することとなる。この際に、前記34番ユーザが有する17番目ノード209のキー値は35番ユーザも共に共有される。同様に、前記34番ユーザが有する8番ノード204のキー値は32,33,35番ユーザも共に共有する。
【0022】
一方、32番ないし47番ユーザが全て正当なユーザである場合、好ましくは伝送しようとするデータのヘッダ部分に2番ノード201キー値を含んで全てのユーザへ同一に伝送することによってセキュリティの保障されたデータ伝送が行われる。
【0023】
しかし、もし36番ユーザ221のキーを有するユーザが正当なユーザではない不法ユーザ(revoked user)である場合、前記36番ユーザ221と関連したノードのキー値を有する他のユーザが共有していることから、該当のキー値を更新してくれる過程が必要とされる。即ち、18番ノード210、9番ノード205、4番ノード202、および2番ノード201のキー値を更新しなければならない。なお、前記キー値を更新するためには下位ノードから上位ノードの順で行われる。
【0024】
まず、前記18番ノード210のキー値は37番ユーザが共有しているので、サーバから18番ノード210の更新されたキー値を37番ユーザのキー値で暗号化し37番ユーザに伝送する。それから、9番ノード205のキー値は37番ユーザと共に、19番ノード211下にある38番ユーザおよび39番ユーザが共に共有しているので、9番ノード205の更新されたキー値を37番ユーザには予め更新された18ノード210のキー値で暗号化して伝送し、38番および39番ユーザには19番ノード211のキー値で暗号化して伝送する。
【0025】
同様の方法で、4番ノード202のキー値は8番ノード204の下にある32,33,34,35番ユーザと共に、9番ノード205の下にある37,38,39番ユーザが共に共有しているので、4番ノード202の更新されたキー値を32ないし35番ユーザには8番ノード204のキー値で暗号化して伝送し、37,38,39番ユーザには予め更新された9番ノード205のキー値で暗号化して伝送する。
【0026】
最後に、2番ノード201のキー値は4番ノード202の下にある32ないし39番ユーザのうち36番ユーザ221を除いたユーザが共有し、5番ノード203の下にある40ないし47番ユーザが共に共有しているので、2番ノード201の更新されたキー値を32、33,34,35,37,38,39番ユーザには予め更新された4番ノード202のキー値で暗号化して伝送し、40ないし47番ユーザには5番ノード203のキー値で暗号化して伝送する。かかるキー更新過程を介して不法(あるいは廃止された)ユーザの接近を遮断することが可能となる。
【0027】
前述した方法(つまり、CSモデル)における伝送量は全て除外されないユーザのみを含ませるCSの個数であるO(r log(n/r))であり、保存オーバーヘッドはO(log n)である。
【0028】
一方、SD(Subset difference)モデルは、前述のCSモデルの変形であって、 O(log2 n)の保存量とO(2r−1)の伝送量を要求し伝送力の画期的な改善を図った。SDモデルでは、1つのノードvをルーツとするサブツリーから該当サーブツリーに含まれた他の1つのノードwをルーツとするサブツリーを引いたサブツリーについて考案する。このサブツリーの下の葉ノードは正当なユーザであり、wをルーツとしてするサブツリーの下の葉ノードは除外されたユーザである。かかる方法は適当な数の正当ユーザとの間に除外されたユーザが存在する場合、CSモデルが必ず2つ以上のサブセットを必要とするのとは相違に、1つのサブセットでカバーすることができる。SD方法は、ノードvに割り当てられたキーのハッシュ(hash)値から始まってノードwまでのハッシュ値を求め、その値に対応する値をセッションキーとしてする。各ユーザはルーツノードから自分の葉ノードまでのパス上の各ノードに対する兄弟ノード(sibling node)に対するハッシュ値を暗証キーとして有している。従って、ハッシュ関数の一方向性により正当なユーザのみがセッションキーの復旧を行うことができる。なお、SDモデルの伝送量はO(2r−1)、保存量はO(log2n)であり、計算量は最大O(log n)のハッシュにしか及ばない。
【0029】
その後、2002年にはSDモデルの改善されたLSDモデルが提案された。LSDモデルでは各サブツリーにレイヤーを用いて保存量をO(log3/2n)に減らした変わりに伝送量がSDモデルの2倍となった。
【0030】
前述したBEモデルのうち優れた効率をみせたのがLSDやSDなどのツリー構造を使用したモデルであった。しかし、前記ツリー構造を用いた方法は、ブロードキャストに求められるサブセットの数がユーザの位置に大きく依存することから、それ以上の改善は期待し難い。さらに、ツリー構造の場合、メンテナンスにも相当なコストがかかってしまう短所があるので、前述したツリー構造ではないより効率のよいBE技術が求められている実情がある。
【先行技術文献】
【特許文献】
【0031】
【特許文献1】特開平15−273858号公報
【特許文献2】特開平07−005808号公報
【特許文献3】特開平14−124952号公報
【発明の概要】
【発明が解決しようとする課題】
【0032】
本発明は前述した問題点を解決するために案出されたもので、本発明の目的は、線形構造を用いて各ノード別に順次に一方向キーチェーンを形成してキー値を分配するブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【0033】
さらに、本発明の目的は、線形構造を用いて直線上のノードから毎c番目ノードを選択し特別ノードとして設定し、特別ノードキーから開始する特別ノードチェーンを生成するブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【0034】
さらに、本発明の目的は一人の除外されたユーザを含んでいる区間を追加して伝送区間を設定し、伝送量を減らすことのできるブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【課題を解決するための手段】
【0035】
前述の目的を達成するための本発明にかかるキー管理方法は、順次配列された各ノードにノードパスID(Node Path ID)を与えるステップと、前記各ノードに前記ノードパスIDに応じて任意のシードキー(seed value key)を与えるステップと、前記与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、
前記生成されたキー値を前記各ノードに順次与えるステップと、を含む。
【0036】
好ましくは、前記順次配列されたノードのうちN個のノードからなる区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0037】
さらに、前記区間は認証されたノードからなった連続区間であることを特徴とする。
また、前記区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的にハッシュ関数を適用することを特徴とする。
【0038】
一方、本発明に係るキー管理方法は、順次配列された各ノードに任意のシードキーを与えるステップと、前記与えられた任意のシードキーに第1ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各ノードに順次与えるステップと、前記順次配列されたノードのうち一定の間隔に応じて特別ノードを設定するステップと、前記各特別ノードには任意の特別シードキーを与えるステップと、前記与えられた任意の特別シードキーに第2ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各特別ノードに順次与えるステップと、を含む。
【0039】
好ましくは、前記特別ノードのうち第1特別ノードにKという特別ノードキーが与えられると、前記第1特別ノードから前記一定の間隔だけ離れた第2特別ノードには前記Kに前記第2ハッシュ関数を適用したキー値が与えられることを特徴とする。
【0040】
また、前記順次配列されたノードのうちN個のノードからなる区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0041】
また、前記区間は認証されたノードからなった連続区間であることを特徴とする。
【0042】
また、前記区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的に新たなハッシュ関数を適用することを特徴とする。
【0043】
一方、本発明に係るキー管理方法は、環状のグループを形成する各ノードにノードパスIDを与えるステップと、前記各ノードに前記ノードパスIDに応じて任意のシードキーを与えるステップと、前記与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、を含む。
【0044】
好ましくは、前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0045】
また、前記循環区間は認証されたノードからなった連続区間であることを特徴とする。
【0046】
また、前記環状のグループを形成する各ノードの下方に新たな環状のグループを形成するノードを下部構造としてリンクさせることにより、環状のグループの階層構造を形成することを特徴とする。
【0047】
前記階層構造は16層であることを特徴とし、前記各環状のグループを形成している各ノードの個数は同一であることを特徴とする。
【0048】
さらに、前記環状のグループ内のN個のノードからなる循環区間は、1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的なハッシュ関数を適用することを特徴とする。
【0049】
また、前記環状のグループを形成するノードはN個であり、前記ノードパスIDとして0からN−1までが与えられることを特徴とする。
【0050】
さらに、前記階層構造において少なくとも1つの除外された子ノードを有するノードは、除外されたノードとしてみなされることを特徴とする。
【0051】
一方、本発明に係るキー管理方法は、環状のグループを形成する各ノードに任意のシードキーを与えるステップと、前記与えられた任意のシードキーに第1ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、前記環状のグループを形成するノードのうち一定の間隔に応じて特別ノードを設定するステップと、前記各特別ノードには任意の特別シードキーを与えるステップと、前記与えられた任意の特別シードキーに第2ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各特別ノードに順次与えるステップと、を含む。
【0052】
好ましくは、前記特別ノードのうち第1特別ノードにKという特別ノードキーが与えられると、前記第1特別ノードから前記一定の間隔だけ離れた第2特別ノードには前記Kに前記第2ハッシュ関数を適用したキー値が与えられることを特徴とする。
【0053】
また、前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、前記循環区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0054】
また、前記循環区間は認証されたノードからなった連続区間であることを特徴とする。
【0055】
また、前記循環区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的に新たなハッシュ関数を適用することを特徴とする。
【発明の効果】
【0056】
本発明によると、ブロードキャスト暗号化にて最も重要な伝送量をr未満に減らすことができる。さらに、本発明の実施形態では今まで優先的な方法として知られたSDと比較して伝送量を大いに減らし得る長所がある。
【0057】
さらに、本発明によると、多数のユーザが共謀しても新たなキーを作り出すことができず、不法デコーダが作られた場合に共謀したユーザキーがそのまま使用されるので追跡できる長所がある。最後に、シーケンスの後ろ部分に、希望するだけのユーザを自在に追加できる。
【図面の簡単な説明】
【0058】
【図1】一般のブロードキャスト暗号化によるデータ伝送システムのネットワーク構造を示す図面である。
【図2】従来のツリー構造であって、キーを割り当てるブロードキャスト暗号化の概念を示す図面である。
【図3】本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングしてキー値を与える手続きを示すフローチャートである。
【図4】本発明の実施形態に係る線形構造の各ノードに任意のシードキーを与える方法を示す図面である。
【図5】本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングする方法を示す図面である。
【図6】本発明の実施形態に係る線形構造の各ノードにキー値を対応させる方法を示す図面である。
【図7】本発明の実施形態に係る線形構造の各ノードにキー値が対応された結果を示す図面である。
【図8】本発明の実施形態に係る不法ユーザとの間の区間へのセッションキー伝達手続きを示すフローチャートである。
【図9】本発明の実施形態に係る線形構造での区間の定義を示す図面である。
【図10】本発明の実施形態に係る線形構造の区間であって、セッションキーを伝達する方法を示す図面である。
【図11】本発明の実施形態に係る各ノードのユーザが受信されたセッションキーによりデータを復号化する手続きを示すフローチャートである。
【図12】本発明の変形された第1の実施形態に係る線形構造での特別ノードの定義を示す図面である。
【図13】本発明の変形された第1の実施形態に係る線形構造での各ノードにキー値を対応させる方法を示す図面である。
【図14】本発明の変形された第1の実施形態に係るセッションキー伝送のために区間を分ける方法を示す図面である。
【図15】本発明の変形された第1の実施形態に係る多数の区間に分けられた場合にセッションキーを伝送する方法を示す図面である。
【図16】本発明の変形された第2の実施形態に係る区間設定方法を示す図面である。
【図17】本発明の変形された第2の実施形態に係る線形構造での各ノードにキー値を対応させる方法を示す図面である。
【図18】本発明の変形された第4の実施形態に係る環状構造の各ノードにキー値が対応された結果を示す図面である。
【図19】本発明の一実施形態に係る環状構造の各ノードグループの階層構造を示す図面である。
【発明を実施するための形態】
【0059】
以下、添付の図面に基づいて本発明の好適な実施形態を詳述する。
<基本実施形態>
【0060】
図3は、本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングしてキー値を与える手続きを示すフローチャートである。同図に示すように、まず、それぞれのノードにノードパスIDを与える(S301)。ここで、ノードパスIDは各ノードに該当するユーザを区分するためのIDである。
【0061】
それから、線形構造上の各ノード別にノードパスIDに応じて任意のシードキー(seed value key)を与える(S302)。本発明を実施するに当たり、任意のシードキーはそれぞれ独立的に、かつランダムに決定され得る。
【0062】
それから、各ノード別に与えられた任意のシードキーを一方向ハッシュ関数に代入した結果であるキー値を生成する。さらに、生成されたキー値を一方向ハッシュ関数に繰り返して代入することでキー値が連続的に生成され、各任意のシードキーに応じて各所定のキーチェーンを生成する(S303)。
【0063】
ここで、一方向ハッシュ関数とは、任意の長さの入力値を定められた長さの出力値として圧縮する関数であって、次のような性質を持つ。一方向ハッシュ関数上では、与えられた出力値について入力値を求めることが計算上できず、与えられた入力値を出す更なる入力値を探し出すことは計算上できない。また、一方向ハッシュ関数上では同一出力値を出す任意の相異なる2つの入力値を探すことも計算上できない。
【0064】
前述のような性質を満たすハッシュ関数は、データの完全性、認証、否認防止などで応用される重要な関数の1つであって、本発明を実施するための一方向ハッシュ関数は「HBES SHA−1」になり得る。
【0065】
S303における各シードキー別に生成されたキー値を各シードキーの与えられたノードの次ノードから順次与えられる(S304,305)。本発明を実施するにあたって、キー値が与えられる方法は各ノードにおいて一定性を有するべきである。
【0066】
以下、図4ないし図6に基づいて前述したキー値が各ノードに与えられる手続きについて詳説する。
【0067】
図4には本発明の実施形態に係る線形構造の各ノードに任意のシードキーを与える方法が図面されている。同図に示すように、各ノード別任意のシードキーは直線状の各ノードに前の方から順次マッピングされることができる。
【0068】
例えば、同一空間にN個のノードが配列されたと仮定し、各ノードにはランダムに選択されたシードキー値であるK1,K2,...KN値が1つずつ対応される。即ち、第1ノード401にはK1値、第2ノード402にはK2値、第3ノード403にはK3値、第4ノード404にはK4値...、第N−1ノード405にはKN−1値、第Nノード406にはKN値のランダムに選択されたシード値が対応される。
【0069】
この時、前述した各シードキーから一方向ハッシュ関数を用いて一方向キーチェーンが生成されるようになる。一方向キーチェーンを生成する方法は次の通りである。
【0070】
もし、hが{0,1}128→{0,1}128である一方向ハッシュ関数であると、Kからの長さcである一方向キーチェーンは{K,h(K)、h(h(K))=h(2)(K)、...h(c−1)(K)}になる。前記生成された一方向キーチェーン値は前の方から順次に直線状の各ノードへ対応される。
【0071】
図5は本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングする方法を示す図面である。同図に示すように、一方向ハッシュ関数であるhを用いて各ノードで始まる長さcである一方向キーチェーンを生成してマッピングする。ここで、前記cはチェーンのサイズを意味する。
【0072】
即ち、第iノード501にはシードキー値であるK1値がマッピングされ、第i+1ノード502にはh(Ki)値がマッピングされ、第i+2ノード503にはh(h(Ki))値がマッピングされ、...、第i+c-1ノード504にはh(c−1)(Ki)値がマッピングされる。
【0073】
一方、本発明の実施形態において、一方向キーチェーンの長さを決定する値としてc値を予め設定し、前記c値に応じて各ユーザが保存しなければならないキーの数が決定されるのである。従って、各ノードに与えられた全てのシードキーから長さcである一方向キーチェーンを生成することができ、生成された一方向キーチェーン値は各ノードに与えられる。
【0074】
その結果、それぞれのノードには全てc個のキー値が与えられることになる。但し、直線の開始部分と終了部分の一部ノードにはより少ない数のキーが割り当てられる。即ち、各ユーザの保存量はO(c)になる。
【0075】
図6には本発明の実施形態に係る線形構造の各ノードにキー値を対応させる方法が図示されている。同図に示すように、第iノード601には自分のシードキーであるKi値が与えられ、第i+1ノード602にはKiを一方向ハッシュ関数演算値であるh(Ki)と予め与えられた自分のキー値であるKi+1が与えられる。さらに、第i+2ノード603には、第i+1ノード602に与えられたキー値を一方向関数演算した値と予め与えられた自分のキー値とが与えられる。
【0076】
即ち、Kiを2回一方向ハッシュ関数演算した値であるh(h(Ki))と、Ki+1を一方向ハッシュ関数演算した値であるh(Ki+1)と、自分のシードキー値であるKi+2が与えられる。同じ方法に基づいて、c番目ノードである第i+c−1ノード605はh(c−1)(Ki)、h(c−2)(Ki+1)、h(c−3)(Ki+2)、...Ki+c−1が与えられる。
【0077】
従って、各ノード別に対応されるユーザは各ユーザの位置に応じて1個からc個までのキーがユーザの暗証キーとして与えられるようになる。
【0078】
なお、Ki、i= Kiとし、i≦jにおいてKi, j= h(j-i)(Ki,j)と定義すると、ユーザuiが保存しているキーセットは下記数式の通りである。
【0079】
【数1】
【0080】
また、上記数1に基づいて、各ノードに割り当てられるキー値は図7に示す表の通りである。図7は本発明の実施形態に係る線形構造の各ノードにキー値が対応された結果である。
【0081】
同図を参照すると、ユーザucのキー値701は、図示されたようにc個のキー値が割り当てられていることが分かる。それと共に、本発明では全体のユーザを1つ以上の小さい部分集合として分割し、前記分割された各部分集合にセッションキーを1つのイメージを用いて伝える方式が用いられる。
【0082】
図8には本発明の実施形態に係る不法ユーザ間の区間へのセッションキー伝達手続きが示されたフローチャートである。同図を参照すると、最初に、二人の除外されたユーザ(revoked user)との間に位置した正当なユーザの連続された配列を区間として定義し、セッションキーを伝達するために除外されたユーザ間における区間を設定する(S801)。それから、前記設定された各区間を部分集合にしてセッションキーを伝達する(S802)。
【0083】
この時、除外されたユーザが連続的に位置する場合を除けば、二人の除外されたユーザとの間に1つの区間が作られる。よって、最大r+1個の区間を用いてセッションキーが伝えられることになる。しかし、本発明の実施形態により、1つの区間当たり最大の長さがcと制限された場合に、区間の長さがcより大きい区間についてはより多い伝送量が求められる。
【0084】
正当なユーザの連続した配列区間を設定する方法について例を挙げて説明すると、まず、U1ないしU10までのユーザがいて、彼らのうちU5が除外されたユーザであり、1つの区間の最大長さを5に制限する場合に、U1ないしU4までの1つの区間と、U6ないしU10までの1つの区間が設定される。
【0085】
さらに、U1ないしU10までのユーザがいて、彼らのうちU1およびU10が除外されたユーザであり、1つの区間の最大長さを5に制限する場合に、U2ないしU6までの1つの区間と、U7ないしU9までの1つの区間が設定される。
【0086】
図9は、本発明の実施形態に係る線形構造における区間の定義を示した図面である。同図を参照すると、二人の除外されたユーザ(revoked user)901、903との間に位置した連続的に印加されたユーザ(privileged user)の集まりを区間902として定義する。
【0087】
一方、前述した区間を設定してから、Uiに当たるノードキーKiから開始される一方向キーチェーンを確認し(S803)、h(S)(Ki)の値をキーとして使用してセッションキー(SK)を暗号化し送信する(S804)。結局、前記暗号化されたメッセージが伝送されるのである(S805)。
【0088】
より詳細に説明すると、区間{ui、ui+1、ui+2、...ui+S}について(但し、sはcより小さい値である場合)セッションキー(SK)を伝達するために、センターはuiに該当するノードキーKiから開始する一方向キーチェーンを用いる。前記一方向キーチェーンの値からui+Sに対応するキー値であるh(s)(Ki)の値をキーとして用いて、前記セッションキーを暗号化し送信する。即ち、E(K,M)がKをキーとする暗証キー暗号アルゴリズムであるとき、E(h(s)(Ki)、SK)のメッセージを全ユーザに伝送する。
【0089】
一方、前述したように予め与えられたキー値により前記伝送されたメッセージを復号化できるユーザはキーh(s)(Ki)を求めることのできるユーザだけである。従って、区間{ui、ui+1、ui+2、...ui+S}に含まれたユーザのみが該当キーを求めることができる。
【0090】
即ち、前記区間に含まれたユーザはKiから開始する一方向キーチェーンのうち1つの値を知っていて、前記値がh(s)(Ki)より左側に位置しているので、一方向関数hを自分の値に適用することでh(s)(Ki)が求めるのである。
【0091】
一方、前記区間に含まれていないユーザのうち区間より左側に位置しているユーザはKiに関した値を求めることができないので、h(s)(Ki)も求められない。さらに、区間の右側に位置しているユーザは、たとえ一方向キーチェーンの一部値を求め得るものの、一方向関数の一方向の性質のことで一方向キーチェーンの左側値は求められない。
【0092】
これにより、前記該当の区間に含まれていない、いずれのユーザが共謀をするとしてもh(s)(Ki)を求めることは不可能で、これによりセッションキーも復旧できない。
【0093】
図10は本発明の実施形態に係る線形構造の区間であって、セッションキーを伝達する方法が図示されている。同図を参照すると、前述したような本発明の実施形態により1つの区間に含まれたユーザにセッションキー(SK)を同時に伝えることができる。
【0094】
即ち、除外されたユーザが第iノード1001と第i+t+jノード1005に位置し、前記二人の除外されたユーザの間にt+1名の印加されたユーザ1002、1003、1004があると仮定すれば、前記印加されたユーザのために1つの暗証キーを伝送することができる。つまり、E(K、m)がKをキーとしてする暗証キー暗号方式であるとすれば、前記ユーザui、...ui+tのためのセッションキーのヘッダーは次の数式2のように表われる。
【0095】
【数2】
【0096】
図11は、本発明の実施形態に係る各ノードのユーザが受信されたセッションキーによりデータ復号化の手続きを示すフローチャートである。同図に示すように、前述した方法に基づいて伝送されたキー値により印加されたユーザのみが受信データを復号することができる。即ち、暗号化された前記ヘッダーの含まれたメッセージを受信(S1101)した各ユーザは該当区間内のユーザである場合(S1102)、自分の有しているキー値で前記h(s)(Ki)を演算し復号化する(S1103)。一方、該当区間内のユーザでない場合は前記h(s)(Ki)の演算ができないことから、受信データの復号化も行うことができない(S1104)。
【0097】
詳細には、第iノード以前のユーザ1002はKiの値が分からないのでキー値を求めることができず、第i+t以来のユーザは、たとえKiの一方向キーチェーンの後ろ部分は知っているものの、一方向ハッシュ関数の一方向性質のことでh(s)(Ki)を求めることはできない。
【0098】
一方、前記区間に含まれた正当な全ユーザは自分の有しているキー値のうちKiから作られた値にhを繰り返して適用することで、h(s)(Ki)値を求めることができる。
【0099】
なお、前述した本発明の実施形態において全てのN名のユーザからr名の除外されたユーザが含まれた場合の伝送量を算出すると次のとおりである。
【0100】
まず、各ユーザが保存すべきなのが最大にc個のキー値である。そのとき伝送量は最悪の場合にr+(N−2r)/c個であって、これは全て除外されたユーザが直線の一方に集まり、残り部分は正当なユーザのみが集まっている場合である。
【0101】
さらに、除外されたユーザが2以上で連続に表れる場合は伝送量が減少するので、除外されたユーザと正当なユーザが交番に位置する場合について考える。このときに、N/cが追加に必要な理由は、1回の伝送でキー伝達可能な区間の最大長さをcとして設定したからである。
【0102】
また、ユーザの計算量は、最大にc番の一方向関数計算と暗証キー暗号アルゴリズム1回であって、これをN=1,000,000、r=50,000である状況で算出してみると下記の結果値が獲得される。
【0103】
【表1】
【0104】
以下、前述した本発明の実施形態の変形例について説明する。最初に、変形された第1の実施形態は、前述した実施形態で区間の長さをcとして設定することにより伝送量がrより大になることを補完するため、長い区間について1回の伝送のみでキー値を伝送する方法である。
【0105】
更に、変形された第2の実施形態は伝送量をrより減少させるために除外されたユーザの位置から新たな一方向関数を適用する方法である。それと共に、変形された第3の実施形態は前記変形された第1の実施形態および変形された第2の実施形態を組み合わせた方法である。
【0106】
<変形された第1の実施形態>
前述の実施形態において伝送量がrより大になる理由は、区間の長さをcに限定したからである。従って、伝送量がrに近づくためには前述した区間限定に応じて求められる伝送量を減らさなければならない。従って、前述した基本概念の拡張により、長い区間について1回の伝送でキーを伝送することのできる拡張された実施形態を提案する。
【0107】
本発明の変形された第1の実施形態は、直線上のノードのうち一定間隔(例えば、毎c番目ノード)に応じて特別ノードを設定する。
【0108】
前記特別ノード毎に既存のシードキーとは独立的な特別シードキーを再度ランダムに選択して対応させ、前記特別ノードキーから開始する特別ノードチェーンを生成する。
【0109】
図12は本発明の変形された第1の実施形態に係る線形構造における特別ノードが定義されている。同図を参照すると、c番目ノード1204、1205毎に特別ノード1201,1202,1203を設定する。前記設定されたc番目ノード毎に設定された特別ノード1201,1202,1203にそれぞれ特別シードキーを与え、前記キーから長さのc×c2である一方向チェーンが構成される。
【0110】
より詳細に説明すると、各特別ノード1201,1202,1203毎に既存のシードキーとは独立的な特別シードキーを再度ランダムに選択して対応させ、新たな一方向ハッシュ関数を用いて各特別シードキー別に、前記特別シードキーから始まる特別ノードチェーンを形成する。
【0111】
この際、c2が新たな定数であると、前記特別ノードチェーンは前述したようにc×c2の長さを有する。
【0112】
以下、図13に基づいて特別ノードに特別ノードチェーンを対応させる方法について説明する。
【0113】
図13には本発明の変形された第1の実施形態に係る線形構造における各ノードにキー値を対応させる方法が図示されている。変形された第1実施形態においてチェーンを形成する方法は、基本的に前述した基本実施形態と同様な方法に基づく。しかし、次の区間{ui、ui+1、ui+2、...ui+S}が特別ノードから始まる長さがcを超える区間であるとするとき、前記区間に対するキー伝送はuiから開始される特別ノードチェーンによりなされる。この時、SKを暗号化する方式は前述の基本実施形態から同様である。即ち、uiから開始されるチェーンのui+sに対応する値を用いてSKを暗号化し伝送する。
【0114】
図13に基づくと、第cノードである第1特別ノード1301にKという特別ノードキーが割り当てられると、長さcが超えた第2cノードである第2特別ノード1302には前記Kを新たな一方向関数h21304に一方向関数演算したh2(K)の特別ノードキー1305が割り当てられる。同様に、第3cノードである第3特別ノード1303には前記Kを新たな一方向関数h21304に2回一方向関数演算(つまり、h2(2)1306)したh2(2)(K)が与えられる。
【0115】
従って、第c+1ノードでは第cノードの特別シードキーKをhにより一方向関数演算したh(K)が与えられ、第c+2ノードでは第cノードの特別シードキーKをhにより2回一方向関数演算したh(2)(K)が与えられる。同様に、第2c+1ノードでは第2cノードに与えられたh2(K)をhにより一方向関数演算したh(h2(K))が与えられ、第3c+1ノードでは第3cノードに与えられたh2(2)(K)をhにより一方向関数演算したたh(h2(2)(K))が与えられる。
【0116】
この際、1≦t<cに対して、c+t番目ユーザは自分のシードキーとh2(K)を共に保存する。従って、各ノード毎に合わせてc2個のキーが加えて保存される。
【0117】
前述したように、本発明の変形された第1の実施形態では各ノードに保存されているキー値の数が増加されるが、伝送すべきセッションキーのサイズは減少される。
【0118】
図14は本発明の変形された第1実施形態に係るセッションキー伝送のために区間を分ける方法が図示されている。同図に示すように、多く印加されたユーザ(privileged user)らが集まっている場合に、2つの区間1401,1402のみに分けてセッションキーを伝送することができる。
【0119】
図15は本発明の変形された第1の実施形態に係る多数の区間で分けられた場合セッションキーを伝送する方法が図示されている。同図に示すように、4つの区間1501,1502、1503、1504から分けられている場合に、E(h(2)h2(2)(K),SK)のようにセッションキーを構成して伝送することによって、印加されたユーザのみが復号化されることができるよう具現される。
【0120】
従って、本発明の変形された第1の実施形態に係るh2関数を用いることによって計算量を減らし得る。つまり、このときには最大c+c2回の一方向関数演算の計算が求められる。
【0121】
前述した変形された第1の実施形態によると、ユーザの保存量は基本実施形態に比べてやや増加しているが、除外されたユーザの数が少ない場合にはその伝送量が著しく減少される。
【0122】
<変形された第2の実施形態>
前述した変形された実施形態における結果として伝送量rに近似させた結果を得ることができた。これは今まで知られた方法のうちSDの場合に伝送量が2r−1であるのと比較すると、相当改善された結果であることが分かる。後述する変形された第2の実施形態では前記伝送量をrより減少する方法について提案する。
【0123】
変形された第2の実施形態の基本概念は次の通りである。除外されたユーザ(revoked user)二人との間に位置しているユーザの集合を区間としてするとき、最悪の場合を考える場合に区間の全体数はrより小さくはならない。なお、各区間について1回ずつ伝送が行われるので、かかる区間のみを考える場合には伝送量がrより小さくなることは考えられない。従って、基本的な区間に様々な形の区間を加えなければならない場合が発生する。
【0124】
従って、本発明の変形された第2の実施形態では、1つ以上の除外されたユーザを含んでいる区間を加えて伝送区間を設定する。以下、説明では一人の除外されたユーザを含む区間が加えられる例について説明し、同一方法に基づいて二人以上の除外されたユーザを含む区間が加えられる場合も拡張して適用され得る。例えば、合わせて3人の除外されたユーザにより1つの区間が作られるため、理想的にはr/2までに伝送量を減らすことができる。
【0125】
図16は本発明の変形された第2の実施形態に係る区間設定の方法を示す図面である。本発明の変形された第2の実施形態では区間内に除外されたユーザを含ませるべく区間を設定することによって、伝送量は減少し、かつ保存量は増大される。つまり、二人の除外されたユーザについて一回にキーを伝送することができるようになる。
【0126】
なお、一人の除外されたユーザが加えられた形態については図16に図示されたように、2つ場合が発生する。前記2つ場合のうち(1)の場合は前述した基本実施形態でその解決が可能であり、(2)の場合には後述する変形された第2の実施形態により効率よく解決できる。
【0127】
前記(2)のような区間に対するセッションキーの伝送は次のように行われる。本発明の変形された第2の実施形態により新たな一方向ハッシュ関数であるg関数が必要となる。つまり、区間{ui、ui+1、ui+2、...ui+S}の除外されたユーザui+jを含んだ区間であるとする時(尚、全体の区間の長さがcを超えないと仮定する)、センターはh(s−j)gh(j−2)(Ki)を用いてSKを暗号化する。
【0128】
図16は一人の除外されたユーザが加えられた形態について説明したが、前述のように複数の除外されたユーザが加えられる場合でも本発明が同一に適用できる。
【0129】
図17は本発明の変形された第2の実施形態に係る線形構造における各ノードにキー値を対応させる方法を示す図面である。同図に示すように、除外されたユーザが出現する前までには1701,1702,1703,1704は基本実施形態と同じ一方向キーチェーンに沿って右方向にハッシュ関数hを適用し、除外されたユーザui+jの位置1705では一方向ハッシュ関数hの代わりに更なる一方向ハッシュ関数であるgを用いて一方向キーチェーンを変形させる。
【0130】
それから、除外されたユーザを通過した後1706,1707には再度一方向ハッシュ関数hを用いてキー値を生成し一方向キーチェーンを作っていく。そして、セッションキーを伝送する際には最後のユーザの位置に該当する値でSKを暗号化して伝送する。
【0131】
なお、前記2つの一方向関数hとgは全て公開された関数であるので、除外されたユーザの左側に位置するユーザは暗号化に用いられたキーを容易に算出ことができる。しかし、除外されたユーザui+jはgh(j−1)(Ki)の値を把握しなければその後の値の算出を行うことができないので、センタではgh(j−1)(Ki)の値を秘密にする。
【0132】
一方、除外されたユーザの右側に位置するユーザの場合にはそれぞれ前記チェーンの中から自分の位置に該当する値を加えて保存していなければならない。なお、区間の長さをcとして設定する場合、その数を算出してみると、1+2+3+...+(c−2)となる。つなり、各ユーザは(c−1)(c−2)/2のキーを加えて保存すべきである。
【0133】
前述した本発明の変形された第2の実施形態によると、総保存量はc+(c−1)(c−2)/2、即ち、O(c2)であるが、伝送量はr/2+(N−2r)/cであって、前のr部分がr/2に減少されたことが分かる。さらに、計算量は基本実施形態のように最大c回の一方向演算の算出となる。
【0134】
前述したN=1,000,000およびr=50,000である場合について算出してみると、下記の表2の結果が獲得される。
【0135】
【表2】
【0136】
前記表2によると、伝送量において前のr部分はr/2に示すように減少したが、後に加えられる(N−2r)/cが大になったことが分かる。
【0137】
一方、前述した変形された第2の実施形態の方法は一般的な場合であって、拡張することが可能である。即ち、保存量がO(c3)に増加し、三人の除外されたユーザを含んだ区間に一回の伝送でキーを伝送することができるよう具現される。従って、前述したように1つのみならず複数の除外されたユーザを含む区間に対しても適用可能である。
【0138】
<変形された第3の実施形態>
最後の実施形態として、本発明の変形された第3の実施形態は、前述の変形された第1の実施形態および第2の実施形態を同時に適用した実施形態である。かかる場合、最悪の場合が、長さがcである区間にて除外されたユーザが一人ずつ含まれている場合である。その理由は、長さがcより小さい区間に2人以上の除外されたユーザが含まれている場合には前述の変形された第2の実施形態に基づいて除外されたユーザ2人を一回の伝送で解決することができるからである。かかる最悪の場合における伝送量を計算してみると、r/2+(N−2r)/2(c−2)であり、保存量はc+c2+(c−1)(c−2)/2である。
【0139】
この伝送量に対する式は、rがN/cより大きい場合に適用される。もし、rがN/cより小さければ更なる結果が得られる。例えば、r=0であれば、必要な伝送量はN/(c×c2)である。なお、rが次第に増大しながら除外されたユーザの含まれた長さcである区間に対しては一回の伝送が求められ、残り部分に対しては変形された第1の実施形態における方法が適用されるので、大略的にr+(N−cr)/(c×c2)の伝送量が求められることが分かる。
【0140】
即ち、N/(c×c2)を初期値にして勾配が2である直線をなすことになる。同じ方法で、増加した伝送量はrがN/cである時点を転換点にして、r/2+(N−2r)/2(c−2)の方に変わる。
【0141】
前述した変形された第3の形態によると、ユーザの保存量は基本実施形態に比べて多少増加するが、除外されたユーザの数が少ない場合は伝送量が著しく減少する。
【0142】
<変形された第4の実施形態>
本発明の変形された第4の実施形態は前述した線形構造における基本実施形態および変形された第1実施形態ないし変形された第3の実施形態を環状構造で適用した方法である。
【0143】
最初に、前述した実施形態での線形構造(straight line structure)を環状構造で容易に再構成することができる。即ち、u1からuNまでのN名のユーザを有する直線Lを考慮する際に、前記Lの2つの終り点を連結させると前記直線は環状となる。
【0144】
前記環状から予め設定された区間に対して、前述した基本実施形態のような全ての一方向キーチェーン方法が適用され得る。例えば、ユーザuNノードから開始される一方向キーチェーンが構成されるのである。
【0145】
前記線形構造を有する基本実施形態では、前記ユーザuNノードから開始される一方向キーチェーンはKN、Nの1つのキーを有する。一方、本発明の変形された第4の実施形態に係る環状構造では前記uNとu1を連結して引き続き一方向キーチェーンを形成するので、ユーザuNノードから開始される一方向キーチェーンは下記の数3のようなc個のキー値を有する。
【0146】
【数3】
【0147】
これを一般化してuiノードから開始される一方向キーチェーンを次の数4のように表すことができる。
【0148】
【数4】
【0149】
即ち、変形された第4の実施形態の場合、連続した正当ユーザからなる区間の最大長さをcとすると、線形構造ではそれぞれのユーザの位置に応じて1からc個までのキーが保存されるが、環状構造ではそれぞれのユーザはそれぞれc個のキーが保存されるべきである。
【0150】
図18は本発明の変形された第4の実施形態に係る環状の各ノードにキー値の対応された結果を表した図面である。同図に示すように、変形された第4の実施形態では、環状グループを構成しているノードが10個であり、連続した正当なユーザから構成された区間の最大長さが5個である場合に、各ノードが5個のキーを保存していることが確認できる。
【0151】
これによって、環状構造においても前述した変形された第1の実施形態における区間の長さをcと設定することによって伝送量がrより大になることを補完するために、長い区間について一回の伝送のみでキー値を伝送できる方法が適用可能である。それと共に、環状構造においても前述した変形された第2の実施形態における伝送量をrより減少させるために、除外されたユーザの位置から新たな一方向関数を適用する方法が適用可能であり、さらに、前述した変形された第3の実施形態における変形された第1の実施形態および変形された第2の実施形態の組み合わせた方法に基づいてもその適用が可能となる。
【0152】
<変形された第5の実施形態>
本発明の変形された第5の実施形態は階層構造を有する環状構造を提案する。
【0153】
図19は本発明の一実施の形態に係る環状構造のノードグループの階層構造を示している。
【0154】
同図を参照すると、階層構造上の各環状構造のノードグループはc個のノードからなっている。このときに、各ユーザは前記階層構造の全てのノード(即ち、環状構造)における各点に対応する。もし、前記階層構造がルーツノードを除いて16階層から構成されていれば、前記階層構造ではc16のユーザを対応することができるようになる。
【0155】
従って、各階層でのグループノード別に前述したようなキーチェーンを有する環状構造が構成されることができる。このとき、前記各ノードに対応するユーザは自分の親ノードに割り当てられた全てのキー値を有するようになる。
【0156】
前記構造から、少なくとも1つの除外されたユーザを含んでいる子ノードを有する各ノードは、除外されたノードとして見なされる。従って、暗号化する際に、まずセンタでは前記除外されたノードを表示する。それから、前記センタでは前記除外されたノードの親ノードを階層構造に従って表示していく。
【0157】
かかる過程がルーツノードまで完了され、もし、少なくとも1つの除外されたノードがあればルーツノードは除外されたノードとなる。
【0158】
前記除外されたノードを確認してから、センタでは各階層における区間を設定する。図示されたように第0階層の上では1つのノードのみが含まれる。
【0159】
最初に、センタでは第0階層の環状グループから循環区間を設定し、前記設定された各循環区間に対して区間キーとしてセッションキーを暗号化する。それから、センタでは第1階層について前記第0階層で除外されたノードの子ノードに該当する環状グループのみを考慮する。前述のような過程は第15階層までに進行される。
【0160】
例えば、1つの除外されたユーザを有す場合、前記表示する過程にて全ての階層から1つの除外されたノードが発生されるようになる。さらに、暗号化ステップにては第0階層にて1つの除外されたノードがあることから、前記センタでは1つのノードを除外した循環区間に対する区間キーとしてセッションキーが暗号化される。一方、第1階層についてセンタは前記第0階層での除外されたノードの子ノードに該当する1つの環状グループのみを考慮する。
【0161】
認証されたノードの子ノードに該当する環状グループを構成している各ノードは前記自分の親ノードから与えられアセッションキーを得ることができる。結果的にはセンタでは16回暗号化することによって、全体の階層構造に対する暗号化の処理を行うことができる。
【0162】
前述した変形された第4の実施形態では、前の実施形態より数多いユーザに対する暗号化処理を行うことができる一方、より多いキーが求められるようになる。しかし、前述の第2の実施形態よりも伝送オーバーヘッド(TO)を著しく減少させることができる。
【0163】
即ち、変形された第4の実施形態の階層をk階層とし、各環状グループに含まれたノードの個数をそれぞれc個とすると、前記変形された第4の実施形態にて各ユーザの保存オーバーヘッドはkc+(c−1)(c−2)/2であって、(k−1)c個のキーが増加する。
【0164】
一方、伝送オーバーヘッドはck−1/2<rである場合、約r/2+3N/4cとなる。これはr<N/6である場合、前記変形された第4の実施形態が前述した変形された第2の実施形態よりも少ない伝送オーバーヘッドを有していることが分かる。
【0165】
また、前の説明では1つの除外されたユーザを含んでいる区間(1−punctured)について適用しているが、前記変形された第2の実施形態では前述のように複数の除外されたユーザを含んでいる区間(p−punctured)についても適用できることは自明である。さらに、前述の階層構造におけるより多い階層に対しても前記除外されたユーザに対する区間設定および伝送方法を使用することができる。
【0166】
以上、本発明に係る各実施形態について説明したが、この実施形態がブロードキャスト暗号化に実際適用されることにあたって、全てのユーザがシステムの初期に同時加入することは難しい。つまり、センタは将来に加えられるユーザのために、予めキーを設定しておくべきであるが、このようなキーは基本的に除外された状態として維持されなければならない。そうでなければ、新たに加入したユーザが過去に伝達されたメッセージを復旧する恐れがあるからである。
【0167】
ほとんどのブロードキャスト暗号化の場合、伝送量がrに依存することを考えると、これはセンタに大きい負担になりかねない。従って、新たなユーザのキーを予め作らずに後で追加する機能というのは極めて重要である。前記で提案された実施形態はいつでも新たなユーザが追加されるたびに直線の右側に新たなノードを追加すれば容易に解決される。このときに、計算量は、新たなランダム値を選択すること、一方向関数の演算を数回程度行うことが加えられるので、効率よくユーザの追加を行うことができる。勿論、他のユーザのキーにいずれの影響も及ぼさない。
【0168】
一方、ユーザの代替側面からみると、これはシステムが長時間の間に使用された後のメンテナンスに関わりがある。システムが長時間維持された場合に、永久的に除外されたユーザは常に除外されたままの状態であるため、伝送量がrに依存するほとんどの方法において伝送量を増加させてしまう、という大きな要因に繋がる。
【0169】
かかる場合に、永久除外されたユーザのキーを取り除いた後、新たなユーザをその位置に加えることで除外されたユーザの数を減少させる必要がある。従来の補間などの方法では、このようなユーザ代替が割合自在に実行され得るものの、階層などの構造を用いた方法によると難しい作業である。SDの場合は、一人のユーザを代替するために、ルーツノードのキーを新たに変えなければならないので、全てのユーザのキーを更新せざるを得ない不都合がある。
【0170】
一方、前述した本発明に係る実施形態では、前記SDなどのツリーを用いた方法よりも比較的に容易に適用できる。つまり、一人のユーザを代替したい場合は基本実施形態の場合、合わせて2c名のユーザのキーを更新すればよい。
【0171】
謀反人(traitor)は、正当なユーザの中で自分の暗証キーを流出し不法的なユーザにメッセージを見せるよう手伝うユーザである。謀反人追跡は、このような不法なユーザが存在する場合、彼らが有しているキーからキーを流出させたユーザを探し出すアルゴリズムのことをいう。
【0172】
かかる謀反人追跡に対する結果は色々であるが、各ユーザのキーが全て区別可能であり、多数のユーザのキーから新たなキーを生成することができない場合は基本的に謀反人追跡が可能であると知られている。一方、前提案された本発明の実施形態は、かかる性質を満足させるため、謀反人の追跡が可能になる。
【0173】
また、基本実施形態を、公開キーを利用する方式に変形することで、各ユーザの暗証キーを2つに減らすことができる。この場合に、必要な公開キーはO(c2)となる。かかる変形は公開キーのサイズが制限的ではない応用分野において使用するとき有用である。
【0174】
結論的に、様々なブロードキャスト暗号化方法のうち現在最も効果的なCSおよびSC方法と本発明との比較結果が下記の表3に表れている。なお、前述した結果のようにN=1,000,000及びr=50,000である場合である。
【0175】
【表3】
【0176】
上記の表3を参照すると、本発明の実施形態に基づくとブロードキャスト暗号化で最も重要な伝送量がr未満に減ることが分かる。つまり、本発明の実施形態は今まで最も好ましい方法であると知られているSDと比較して伝送量が著しく減ったことが分かる。また、前述した実際の適用に必要な様々な特性をも含んでいる。
【0177】
以上、図面に基づいて本発明の好適な実施形態を図示および説明してきたが本発明の保護範囲は、前述の実施形態に限定するものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【産業上の利用可能性】
【0178】
本発明はブロードキャスト暗号化のような暗号化に用いられる。
【符号の説明】
【0179】
100 コンテンツ生産者
110 サービス提供者
120 衛星
130 インタネットネットワーク
140 ネットワーク
141 セットトップボックス
142 移動通信端末
150 スマートホームネットワーク
151,152,153,154,155 端末
160 不法ユーザ
【技術分野】
【0001】
本発明は、ブロードキャスト暗号化方法に関し、詳細にはブロードキャスト暗号化のための効率的なユーザキー管理方法に関する。
【背景技術】
【0002】
ブロードキャスト暗号化(Broadcast Encryption:以下、BEと称する)は、全ユーザのうち送信先(即ち、放送センター)が希望するユーザにのみ情報を効率よく伝える方法であって、情報の受け取るユーザの集合が任意的かつ動的に変化する場合に効率よく使用されるべきである。BEで最も重要な性質は、希望しないユーザ(例えば、不法ユーザあるいは期間切れユーザ)の排除または除外である。
【0003】
図1には、一般のブロードキャスト暗号化によるデータ伝送システムのネットワーク構造が示されている。同図に示すように、コンテンツ生産者100は、オーディオまたはビデオデータを始めた種々の有効なデータを生産し、生産されたデータをサービス提供者110に提供する。サービス提供者110はコンテンツ生産者からのデータを種々の有無線通信ネットワークを介して該当のデータに対するコストを支払っている正当ユーザ(例えば、モバイルDRM(Digital Right Management)ネットワーク140、スマートホームDRMネットワーク150))にブロードキャストする。
【0004】
つまり、サービス提供者110は衛星120を介して色々な衛星受信機の備えられたセットトップボックス141のようなユーザ装置にデータ伝送が可能になり、移動通信網を介して移動通信端末142にも伝送できる。さらに、インターネットネットワーク130を介してスマートホームネットワーク150の端末150、151,152,153,154,155に伝送できる。
【0005】
一方、この際に該当データに対する正当なコストを支払っていない不法ユーザ160がデータの利用を防ぐためにブロードキャスト暗号化によりデータの暗号化を行う。
【0006】
かかる暗号化および復号化システムにおける安定性は暗号化キーを管理しているシステムにかかっていると言える。そして暗号化キーシステムにおいて最も重要なのが暗号化キーをどのように生成するか、また、生成された暗号化キーをどのように管理し、更新するかである。
【0007】
1991年BEの概念が提案された以来に数多い変化を経て、今のBEは支配されない受信者(stateless receiver)を仮定する。この概念はセッション(session)が変わることにより、それぞれのユーザの暗証キーが変えられることなく、また更新されないことを意味する。なお、安定性においては「k−復旧(k−resilient)」という用語を使用するが、これは除外されたユーザのうちk名が共謀攻撃をしても情報を復旧し切れないことを意味する。大体rは除外されたユーザの数を示しているので、「r−復旧(r−resilient)」は除外されたユーザ全てが集まって共謀攻撃しても安全であることを意味する。
【0008】
一方、BEでは伝送量、保存量、計算量を重要視しているが、それぞれの伝送側から伝送すべきヘッダー量、ユーザが保存しなければならない暗証キーの量、およびユーザがセッションキーを獲得するために求められる計算の量を意味する。この中からも伝送量の軽減が最も大きい課題とも言える。伝送量は初期に全ユーザの数であるN値に比例したのが、今は主に除外されたユーザの数であるrに比例し、減少している。伝送量がrに比例する技術が出現してから伝送量rの未満に減少させることがBEにおける大きいな課題となっている。
【0009】
かかるBE問題を基盤にして、今まで発表された結果において「Naor-Naor-Lotspiech」によって発表された「Subset Difference(SD)Method」が優れた結果を挙げている。SD方法では全ユーザがn名である場合、O(log3/2n)の保存量とO(2r−1)の伝送量を要する。
【0010】
しかしながら、このようなSD方法に基づいても多数のユーザが使用するには効率的な限界が残っているという問題がある。
【0011】
前述のように、1991年BerkovitsがBEに関する論文を最初発表した以来、今まで様々なアルゴリズムが提示されていきた。そのうちアルゴリズムについて整理してみると、暗証キー共有(secret sharing)方法、サブネットカバーフリシステムモデル(Subset Cover−Free Model)方法、ツリー構造を用いた方法などが提案されてきた。
【0012】
最初に、暗証キー共有に基づいたモデルについて概略的に説明する。暗証キー共有モデルは、1991年「S.Berkovits」により初提案され、2000年「M.Noar」と「B.Pinkas」が「Efficient Trace and Revoke Schemes」という論文でより効率よく改善された。S.Berkovitsの「How to Broadcast a Secret」では、多項式補間(polynomial interpolation)を用いた方法とベクトル基盤暗証キー共有(vector based secret sharing)を用いた方法が提示された。
【0013】
多項式補間方法によると、センタ(center;放送センターまたは送信先)から各ユーザに暗証チャネルに点(xi、yi)を伝送する。なお、 xiは全て異なる値であり、(xi、yi)は各ユーザの暗証キーである。それから、各セッションの正当なユーザt名に暗証情報Sをブロードキャストするために、ランダム整数jと次数t+j+1である多項式Pを選択する。多項式Pはt名の正当なユーザ暗証キー(xi、yi)と別のユーザの暗証キーでもない任意のj個の点(x、y)と(O,S)を介する多項式である。そして、センタでは多項式P上のt+j個の上記点とは異なる点を伝送する。すると、t名の正当ユーザはt+j個以外に1つの点(自分の暗証キー)を知っているので、次数t+j+1である多項式Pを復旧することができ、暗証情報Sも求めることができる。しかし、除外されたユーザは単にt+j個の点のみを知っていることから、絶対多項式Pを復旧することができない。
【0014】
かかる方法は、伝送量がO(t+j+1)、保存量がO(1)、計算量が約t3番の乗算である。さらに、廃棄が容易でかつ共謀を防止することができ、共謀追跡も可能である長所がある。しかし、数多いユーザに対しては非効率的であり、繰り返して使用する場合安全ではないので、実際には使用できない問題がある。
【0015】
M.NoarとB.Pinkasの「Efficient Trace and Revoke Schemes」については、ラグランジュの補間方式(lagrange’s interpolation formula)を用いた閾値暗証キー共有方式を使用する。Noar−Pinkas方法では、r次多項式をr+1個の多項式上の点を知っていればその復旧が可能であるが、1つ足りないr個の点をもっては復旧できないという性質を用いる。即ち、センタは任意のt次多項式Pを選択し、その上の相異なる点を各ユーザに暗証キーとして提供する。r名のユーザが除外されると、センタは除外されたr名の暗証キーと任意に選択されたt−r個の点を和して、総t個の点に対する情報をブロードキャストする。その結果、除外されたユーザは自分の秘密情報を加えても依然としてt個の点しか知らない一方、除外されないユーザはt+1個の点を知っていることから、多項式Pの復旧が可能になる。この多項式を用いてセッションキーP(0)値を求めることができる。
【0016】
かかる方法も廃棄し易く、かつ共謀も防止できるので、共謀追跡も可能である。特に、新たなユーザを追加(add)できるという大きな長所があり、伝送量がO(t)で保存量はO(1)であるという効率性を有する。しかし、このような方法によると、最初に定められたtより多いユーザを除外することはできない問題がある。さらに、伝送する点の数や多項式を算出するために求められる計算量がtに依存することになり、非効率的になる。また、tが大きくなるほど算出時間が増大してしまい、多数のユーザを含んでいる場合には不都合である。
【0017】
第2に、サブセットカバーフリシステムモデルは、全てのユーザの集合をSであるとすると、Sのサブセットを元素としてする集合でサブセットカバーフリシステムという概念を定義する。かかるシステムを探すことができればそのシステムを用いてBEを行うことができる。しかし、保存量と伝送量がO(r log n)程度になり効率ではないという短所がある。さらに、1−resilient モデルを拡張してk−resilientモデルにする方法も紹介された。効率的な1−resilient方法は考案し易いことから、そのような拡張が意味のあるようにみえるが、今まで提示された方法としては拡張する過程でその効率性が落ちてしまう問題がある。
【0018】
第3に、最近にはツリー構造を用いる方法が注目を浴びている。1998年にC.K.Wong, M.Gouda, G.S.LamからLTH(Logical-tree-hierarchy)方法が提案されたが、一回のセッションから数多いユーザを除外するには無理が伴う。さらに、ユーザの暗証キーはセッションの変化により共に変化するので、支配されない受信先(stateless receiver)を仮定する現代的なBEとは距離感がある。その後、2001年D.Naor, M.Naou, J.Lotspiechが 「Complete Subset(CS) Cover Scheme」と「Subset Difference(SD) Scheme」を提案した。2つの方法共にユーザの数はn名、除外されたユーザの数はrであると仮定し、センタは高さのlog nである2進ツリー(binary tree)をつくり、全てのノードにはそれに対応する暗証キーを割り当てる。そして、葉ノード(leaf node)にユーザを一人ずつ割り当てる。
【0019】
最初に、CS Cover方法について説明すると、各ユーザはルーツノード(root node)から自分の葉ノードまでの経路に位置する全てのノードの暗証キーをセンタから受けて保存する。ここで、サブツリーのうち除外されたユーザを1名も含まない完全なサブツリーを「complete Subtree(CS)」というが、このようなCSを適当に集めると、除外されないユーザのみを全て含ませることができる。なお、使用されたCSのルーツノードに当たる暗証キーでセッションキーを暗号化し伝送すると、正当なユーザはセッションキーを復旧することはできるものの、除外されたユーザは上に使用されたいずれのCSにも含まれないことから、セッションキーの復旧をすることができない。
【0020】
図2は従来のツリー構造でキーの割り当てを行うブロードキャスト暗号化の概念を示す図面である。同図に示すように、ブロードキャスト暗号化方式を介してデータの提供された各ユーザ220はそれぞれ自分の固有のキー値(32ないし47)を有すると同時に、ツリー構造上で自分と連結した各ノードのキー値を有することになる。
【0021】
例えば、34番ユーザは自分の34番キー値と共に17番ノード209のキー値、8番ノード204のキー値、4番ノード202のキー値、2番ノード201のキー値を有することとなる。この際に、前記34番ユーザが有する17番目ノード209のキー値は35番ユーザも共に共有される。同様に、前記34番ユーザが有する8番ノード204のキー値は32,33,35番ユーザも共に共有する。
【0022】
一方、32番ないし47番ユーザが全て正当なユーザである場合、好ましくは伝送しようとするデータのヘッダ部分に2番ノード201キー値を含んで全てのユーザへ同一に伝送することによってセキュリティの保障されたデータ伝送が行われる。
【0023】
しかし、もし36番ユーザ221のキーを有するユーザが正当なユーザではない不法ユーザ(revoked user)である場合、前記36番ユーザ221と関連したノードのキー値を有する他のユーザが共有していることから、該当のキー値を更新してくれる過程が必要とされる。即ち、18番ノード210、9番ノード205、4番ノード202、および2番ノード201のキー値を更新しなければならない。なお、前記キー値を更新するためには下位ノードから上位ノードの順で行われる。
【0024】
まず、前記18番ノード210のキー値は37番ユーザが共有しているので、サーバから18番ノード210の更新されたキー値を37番ユーザのキー値で暗号化し37番ユーザに伝送する。それから、9番ノード205のキー値は37番ユーザと共に、19番ノード211下にある38番ユーザおよび39番ユーザが共に共有しているので、9番ノード205の更新されたキー値を37番ユーザには予め更新された18ノード210のキー値で暗号化して伝送し、38番および39番ユーザには19番ノード211のキー値で暗号化して伝送する。
【0025】
同様の方法で、4番ノード202のキー値は8番ノード204の下にある32,33,34,35番ユーザと共に、9番ノード205の下にある37,38,39番ユーザが共に共有しているので、4番ノード202の更新されたキー値を32ないし35番ユーザには8番ノード204のキー値で暗号化して伝送し、37,38,39番ユーザには予め更新された9番ノード205のキー値で暗号化して伝送する。
【0026】
最後に、2番ノード201のキー値は4番ノード202の下にある32ないし39番ユーザのうち36番ユーザ221を除いたユーザが共有し、5番ノード203の下にある40ないし47番ユーザが共に共有しているので、2番ノード201の更新されたキー値を32、33,34,35,37,38,39番ユーザには予め更新された4番ノード202のキー値で暗号化して伝送し、40ないし47番ユーザには5番ノード203のキー値で暗号化して伝送する。かかるキー更新過程を介して不法(あるいは廃止された)ユーザの接近を遮断することが可能となる。
【0027】
前述した方法(つまり、CSモデル)における伝送量は全て除外されないユーザのみを含ませるCSの個数であるO(r log(n/r))であり、保存オーバーヘッドはO(log n)である。
【0028】
一方、SD(Subset difference)モデルは、前述のCSモデルの変形であって、 O(log2 n)の保存量とO(2r−1)の伝送量を要求し伝送力の画期的な改善を図った。SDモデルでは、1つのノードvをルーツとするサブツリーから該当サーブツリーに含まれた他の1つのノードwをルーツとするサブツリーを引いたサブツリーについて考案する。このサブツリーの下の葉ノードは正当なユーザであり、wをルーツとしてするサブツリーの下の葉ノードは除外されたユーザである。かかる方法は適当な数の正当ユーザとの間に除外されたユーザが存在する場合、CSモデルが必ず2つ以上のサブセットを必要とするのとは相違に、1つのサブセットでカバーすることができる。SD方法は、ノードvに割り当てられたキーのハッシュ(hash)値から始まってノードwまでのハッシュ値を求め、その値に対応する値をセッションキーとしてする。各ユーザはルーツノードから自分の葉ノードまでのパス上の各ノードに対する兄弟ノード(sibling node)に対するハッシュ値を暗証キーとして有している。従って、ハッシュ関数の一方向性により正当なユーザのみがセッションキーの復旧を行うことができる。なお、SDモデルの伝送量はO(2r−1)、保存量はO(log2n)であり、計算量は最大O(log n)のハッシュにしか及ばない。
【0029】
その後、2002年にはSDモデルの改善されたLSDモデルが提案された。LSDモデルでは各サブツリーにレイヤーを用いて保存量をO(log3/2n)に減らした変わりに伝送量がSDモデルの2倍となった。
【0030】
前述したBEモデルのうち優れた効率をみせたのがLSDやSDなどのツリー構造を使用したモデルであった。しかし、前記ツリー構造を用いた方法は、ブロードキャストに求められるサブセットの数がユーザの位置に大きく依存することから、それ以上の改善は期待し難い。さらに、ツリー構造の場合、メンテナンスにも相当なコストがかかってしまう短所があるので、前述したツリー構造ではないより効率のよいBE技術が求められている実情がある。
【先行技術文献】
【特許文献】
【0031】
【特許文献1】特開平15−273858号公報
【特許文献2】特開平07−005808号公報
【特許文献3】特開平14−124952号公報
【発明の概要】
【発明が解決しようとする課題】
【0032】
本発明は前述した問題点を解決するために案出されたもので、本発明の目的は、線形構造を用いて各ノード別に順次に一方向キーチェーンを形成してキー値を分配するブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【0033】
さらに、本発明の目的は、線形構造を用いて直線上のノードから毎c番目ノードを選択し特別ノードとして設定し、特別ノードキーから開始する特別ノードチェーンを生成するブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【0034】
さらに、本発明の目的は一人の除外されたユーザを含んでいる区間を追加して伝送区間を設定し、伝送量を減らすことのできるブロードキャスト暗号化のためのユーザキー管理方法を提供することにある。
【課題を解決するための手段】
【0035】
前述の目的を達成するための本発明にかかるキー管理方法は、順次配列された各ノードにノードパスID(Node Path ID)を与えるステップと、前記各ノードに前記ノードパスIDに応じて任意のシードキー(seed value key)を与えるステップと、前記与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、
前記生成されたキー値を前記各ノードに順次与えるステップと、を含む。
【0036】
好ましくは、前記順次配列されたノードのうちN個のノードからなる区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0037】
さらに、前記区間は認証されたノードからなった連続区間であることを特徴とする。
また、前記区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的にハッシュ関数を適用することを特徴とする。
【0038】
一方、本発明に係るキー管理方法は、順次配列された各ノードに任意のシードキーを与えるステップと、前記与えられた任意のシードキーに第1ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各ノードに順次与えるステップと、前記順次配列されたノードのうち一定の間隔に応じて特別ノードを設定するステップと、前記各特別ノードには任意の特別シードキーを与えるステップと、前記与えられた任意の特別シードキーに第2ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各特別ノードに順次与えるステップと、を含む。
【0039】
好ましくは、前記特別ノードのうち第1特別ノードにKという特別ノードキーが与えられると、前記第1特別ノードから前記一定の間隔だけ離れた第2特別ノードには前記Kに前記第2ハッシュ関数を適用したキー値が与えられることを特徴とする。
【0040】
また、前記順次配列されたノードのうちN個のノードからなる区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0041】
また、前記区間は認証されたノードからなった連続区間であることを特徴とする。
【0042】
また、前記区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的に新たなハッシュ関数を適用することを特徴とする。
【0043】
一方、本発明に係るキー管理方法は、環状のグループを形成する各ノードにノードパスIDを与えるステップと、前記各ノードに前記ノードパスIDに応じて任意のシードキーを与えるステップと、前記与えられた任意のシードキーにハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、を含む。
【0044】
好ましくは、前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、前記区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0045】
また、前記循環区間は認証されたノードからなった連続区間であることを特徴とする。
【0046】
また、前記環状のグループを形成する各ノードの下方に新たな環状のグループを形成するノードを下部構造としてリンクさせることにより、環状のグループの階層構造を形成することを特徴とする。
【0047】
前記階層構造は16層であることを特徴とし、前記各環状のグループを形成している各ノードの個数は同一であることを特徴とする。
【0048】
さらに、前記環状のグループ内のN個のノードからなる循環区間は、1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的なハッシュ関数を適用することを特徴とする。
【0049】
また、前記環状のグループを形成するノードはN個であり、前記ノードパスIDとして0からN−1までが与えられることを特徴とする。
【0050】
さらに、前記階層構造において少なくとも1つの除外された子ノードを有するノードは、除外されたノードとしてみなされることを特徴とする。
【0051】
一方、本発明に係るキー管理方法は、環状のグループを形成する各ノードに任意のシードキーを与えるステップと、前記与えられた任意のシードキーに第1ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、前記環状のグループを形成するノードのうち一定の間隔に応じて特別ノードを設定するステップと、前記各特別ノードには任意の特別シードキーを与えるステップと、前記与えられた任意の特別シードキーに第2ハッシュ関数を繰り返し適用してキー値を生成するステップと、前記生成されたキー値を前記各特別ノードに順次与えるステップと、を含む。
【0052】
好ましくは、前記特別ノードのうち第1特別ノードにKという特別ノードキーが与えられると、前記第1特別ノードから前記一定の間隔だけ離れた第2特別ノードには前記Kに前記第2ハッシュ関数を適用したキー値が与えられることを特徴とする。
【0053】
また、前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、前記循環区間内の一番目ノードに与えられた前記シードキーに前記ハッシュ関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする。
【0054】
また、前記循環区間は認証されたノードからなった連続区間であることを特徴とする。
【0055】
また、前記循環区間は1つ以上の除外されたノードを含み、前記除外されたノードではそれぞれ独立的に新たなハッシュ関数を適用することを特徴とする。
【発明の効果】
【0056】
本発明によると、ブロードキャスト暗号化にて最も重要な伝送量をr未満に減らすことができる。さらに、本発明の実施形態では今まで優先的な方法として知られたSDと比較して伝送量を大いに減らし得る長所がある。
【0057】
さらに、本発明によると、多数のユーザが共謀しても新たなキーを作り出すことができず、不法デコーダが作られた場合に共謀したユーザキーがそのまま使用されるので追跡できる長所がある。最後に、シーケンスの後ろ部分に、希望するだけのユーザを自在に追加できる。
【図面の簡単な説明】
【0058】
【図1】一般のブロードキャスト暗号化によるデータ伝送システムのネットワーク構造を示す図面である。
【図2】従来のツリー構造であって、キーを割り当てるブロードキャスト暗号化の概念を示す図面である。
【図3】本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングしてキー値を与える手続きを示すフローチャートである。
【図4】本発明の実施形態に係る線形構造の各ノードに任意のシードキーを与える方法を示す図面である。
【図5】本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングする方法を示す図面である。
【図6】本発明の実施形態に係る線形構造の各ノードにキー値を対応させる方法を示す図面である。
【図7】本発明の実施形態に係る線形構造の各ノードにキー値が対応された結果を示す図面である。
【図8】本発明の実施形態に係る不法ユーザとの間の区間へのセッションキー伝達手続きを示すフローチャートである。
【図9】本発明の実施形態に係る線形構造での区間の定義を示す図面である。
【図10】本発明の実施形態に係る線形構造の区間であって、セッションキーを伝達する方法を示す図面である。
【図11】本発明の実施形態に係る各ノードのユーザが受信されたセッションキーによりデータを復号化する手続きを示すフローチャートである。
【図12】本発明の変形された第1の実施形態に係る線形構造での特別ノードの定義を示す図面である。
【図13】本発明の変形された第1の実施形態に係る線形構造での各ノードにキー値を対応させる方法を示す図面である。
【図14】本発明の変形された第1の実施形態に係るセッションキー伝送のために区間を分ける方法を示す図面である。
【図15】本発明の変形された第1の実施形態に係る多数の区間に分けられた場合にセッションキーを伝送する方法を示す図面である。
【図16】本発明の変形された第2の実施形態に係る区間設定方法を示す図面である。
【図17】本発明の変形された第2の実施形態に係る線形構造での各ノードにキー値を対応させる方法を示す図面である。
【図18】本発明の変形された第4の実施形態に係る環状構造の各ノードにキー値が対応された結果を示す図面である。
【図19】本発明の一実施形態に係る環状構造の各ノードグループの階層構造を示す図面である。
【発明を実施するための形態】
【0059】
以下、添付の図面に基づいて本発明の好適な実施形態を詳述する。
<基本実施形態>
【0060】
図3は、本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングしてキー値を与える手続きを示すフローチャートである。同図に示すように、まず、それぞれのノードにノードパスIDを与える(S301)。ここで、ノードパスIDは各ノードに該当するユーザを区分するためのIDである。
【0061】
それから、線形構造上の各ノード別にノードパスIDに応じて任意のシードキー(seed value key)を与える(S302)。本発明を実施するに当たり、任意のシードキーはそれぞれ独立的に、かつランダムに決定され得る。
【0062】
それから、各ノード別に与えられた任意のシードキーを一方向ハッシュ関数に代入した結果であるキー値を生成する。さらに、生成されたキー値を一方向ハッシュ関数に繰り返して代入することでキー値が連続的に生成され、各任意のシードキーに応じて各所定のキーチェーンを生成する(S303)。
【0063】
ここで、一方向ハッシュ関数とは、任意の長さの入力値を定められた長さの出力値として圧縮する関数であって、次のような性質を持つ。一方向ハッシュ関数上では、与えられた出力値について入力値を求めることが計算上できず、与えられた入力値を出す更なる入力値を探し出すことは計算上できない。また、一方向ハッシュ関数上では同一出力値を出す任意の相異なる2つの入力値を探すことも計算上できない。
【0064】
前述のような性質を満たすハッシュ関数は、データの完全性、認証、否認防止などで応用される重要な関数の1つであって、本発明を実施するための一方向ハッシュ関数は「HBES SHA−1」になり得る。
【0065】
S303における各シードキー別に生成されたキー値を各シードキーの与えられたノードの次ノードから順次与えられる(S304,305)。本発明を実施するにあたって、キー値が与えられる方法は各ノードにおいて一定性を有するべきである。
【0066】
以下、図4ないし図6に基づいて前述したキー値が各ノードに与えられる手続きについて詳説する。
【0067】
図4には本発明の実施形態に係る線形構造の各ノードに任意のシードキーを与える方法が図面されている。同図に示すように、各ノード別任意のシードキーは直線状の各ノードに前の方から順次マッピングされることができる。
【0068】
例えば、同一空間にN個のノードが配列されたと仮定し、各ノードにはランダムに選択されたシードキー値であるK1,K2,...KN値が1つずつ対応される。即ち、第1ノード401にはK1値、第2ノード402にはK2値、第3ノード403にはK3値、第4ノード404にはK4値...、第N−1ノード405にはKN−1値、第Nノード406にはKN値のランダムに選択されたシード値が対応される。
【0069】
この時、前述した各シードキーから一方向ハッシュ関数を用いて一方向キーチェーンが生成されるようになる。一方向キーチェーンを生成する方法は次の通りである。
【0070】
もし、hが{0,1}128→{0,1}128である一方向ハッシュ関数であると、Kからの長さcである一方向キーチェーンは{K,h(K)、h(h(K))=h(2)(K)、...h(c−1)(K)}になる。前記生成された一方向キーチェーン値は前の方から順次に直線状の各ノードへ対応される。
【0071】
図5は本発明の実施形態に係る線形構造の各ノードに一方向キーチェーンをマッピングする方法を示す図面である。同図に示すように、一方向ハッシュ関数であるhを用いて各ノードで始まる長さcである一方向キーチェーンを生成してマッピングする。ここで、前記cはチェーンのサイズを意味する。
【0072】
即ち、第iノード501にはシードキー値であるK1値がマッピングされ、第i+1ノード502にはh(Ki)値がマッピングされ、第i+2ノード503にはh(h(Ki))値がマッピングされ、...、第i+c-1ノード504にはh(c−1)(Ki)値がマッピングされる。
【0073】
一方、本発明の実施形態において、一方向キーチェーンの長さを決定する値としてc値を予め設定し、前記c値に応じて各ユーザが保存しなければならないキーの数が決定されるのである。従って、各ノードに与えられた全てのシードキーから長さcである一方向キーチェーンを生成することができ、生成された一方向キーチェーン値は各ノードに与えられる。
【0074】
その結果、それぞれのノードには全てc個のキー値が与えられることになる。但し、直線の開始部分と終了部分の一部ノードにはより少ない数のキーが割り当てられる。即ち、各ユーザの保存量はO(c)になる。
【0075】
図6には本発明の実施形態に係る線形構造の各ノードにキー値を対応させる方法が図示されている。同図に示すように、第iノード601には自分のシードキーであるKi値が与えられ、第i+1ノード602にはKiを一方向ハッシュ関数演算値であるh(Ki)と予め与えられた自分のキー値であるKi+1が与えられる。さらに、第i+2ノード603には、第i+1ノード602に与えられたキー値を一方向関数演算した値と予め与えられた自分のキー値とが与えられる。
【0076】
即ち、Kiを2回一方向ハッシュ関数演算した値であるh(h(Ki))と、Ki+1を一方向ハッシュ関数演算した値であるh(Ki+1)と、自分のシードキー値であるKi+2が与えられる。同じ方法に基づいて、c番目ノードである第i+c−1ノード605はh(c−1)(Ki)、h(c−2)(Ki+1)、h(c−3)(Ki+2)、...Ki+c−1が与えられる。
【0077】
従って、各ノード別に対応されるユーザは各ユーザの位置に応じて1個からc個までのキーがユーザの暗証キーとして与えられるようになる。
【0078】
なお、Ki、i= Kiとし、i≦jにおいてKi, j= h(j-i)(Ki,j)と定義すると、ユーザuiが保存しているキーセットは下記数式の通りである。
【0079】
【数1】
【0080】
また、上記数1に基づいて、各ノードに割り当てられるキー値は図7に示す表の通りである。図7は本発明の実施形態に係る線形構造の各ノードにキー値が対応された結果である。
【0081】
同図を参照すると、ユーザucのキー値701は、図示されたようにc個のキー値が割り当てられていることが分かる。それと共に、本発明では全体のユーザを1つ以上の小さい部分集合として分割し、前記分割された各部分集合にセッションキーを1つのイメージを用いて伝える方式が用いられる。
【0082】
図8には本発明の実施形態に係る不法ユーザ間の区間へのセッションキー伝達手続きが示されたフローチャートである。同図を参照すると、最初に、二人の除外されたユーザ(revoked user)との間に位置した正当なユーザの連続された配列を区間として定義し、セッションキーを伝達するために除外されたユーザ間における区間を設定する(S801)。それから、前記設定された各区間を部分集合にしてセッションキーを伝達する(S802)。
【0083】
この時、除外されたユーザが連続的に位置する場合を除けば、二人の除外されたユーザとの間に1つの区間が作られる。よって、最大r+1個の区間を用いてセッションキーが伝えられることになる。しかし、本発明の実施形態により、1つの区間当たり最大の長さがcと制限された場合に、区間の長さがcより大きい区間についてはより多い伝送量が求められる。
【0084】
正当なユーザの連続した配列区間を設定する方法について例を挙げて説明すると、まず、U1ないしU10までのユーザがいて、彼らのうちU5が除外されたユーザであり、1つの区間の最大長さを5に制限する場合に、U1ないしU4までの1つの区間と、U6ないしU10までの1つの区間が設定される。
【0085】
さらに、U1ないしU10までのユーザがいて、彼らのうちU1およびU10が除外されたユーザであり、1つの区間の最大長さを5に制限する場合に、U2ないしU6までの1つの区間と、U7ないしU9までの1つの区間が設定される。
【0086】
図9は、本発明の実施形態に係る線形構造における区間の定義を示した図面である。同図を参照すると、二人の除外されたユーザ(revoked user)901、903との間に位置した連続的に印加されたユーザ(privileged user)の集まりを区間902として定義する。
【0087】
一方、前述した区間を設定してから、Uiに当たるノードキーKiから開始される一方向キーチェーンを確認し(S803)、h(S)(Ki)の値をキーとして使用してセッションキー(SK)を暗号化し送信する(S804)。結局、前記暗号化されたメッセージが伝送されるのである(S805)。
【0088】
より詳細に説明すると、区間{ui、ui+1、ui+2、...ui+S}について(但し、sはcより小さい値である場合)セッションキー(SK)を伝達するために、センターはuiに該当するノードキーKiから開始する一方向キーチェーンを用いる。前記一方向キーチェーンの値からui+Sに対応するキー値であるh(s)(Ki)の値をキーとして用いて、前記セッションキーを暗号化し送信する。即ち、E(K,M)がKをキーとする暗証キー暗号アルゴリズムであるとき、E(h(s)(Ki)、SK)のメッセージを全ユーザに伝送する。
【0089】
一方、前述したように予め与えられたキー値により前記伝送されたメッセージを復号化できるユーザはキーh(s)(Ki)を求めることのできるユーザだけである。従って、区間{ui、ui+1、ui+2、...ui+S}に含まれたユーザのみが該当キーを求めることができる。
【0090】
即ち、前記区間に含まれたユーザはKiから開始する一方向キーチェーンのうち1つの値を知っていて、前記値がh(s)(Ki)より左側に位置しているので、一方向関数hを自分の値に適用することでh(s)(Ki)が求めるのである。
【0091】
一方、前記区間に含まれていないユーザのうち区間より左側に位置しているユーザはKiに関した値を求めることができないので、h(s)(Ki)も求められない。さらに、区間の右側に位置しているユーザは、たとえ一方向キーチェーンの一部値を求め得るものの、一方向関数の一方向の性質のことで一方向キーチェーンの左側値は求められない。
【0092】
これにより、前記該当の区間に含まれていない、いずれのユーザが共謀をするとしてもh(s)(Ki)を求めることは不可能で、これによりセッションキーも復旧できない。
【0093】
図10は本発明の実施形態に係る線形構造の区間であって、セッションキーを伝達する方法が図示されている。同図を参照すると、前述したような本発明の実施形態により1つの区間に含まれたユーザにセッションキー(SK)を同時に伝えることができる。
【0094】
即ち、除外されたユーザが第iノード1001と第i+t+jノード1005に位置し、前記二人の除外されたユーザの間にt+1名の印加されたユーザ1002、1003、1004があると仮定すれば、前記印加されたユーザのために1つの暗証キーを伝送することができる。つまり、E(K、m)がKをキーとしてする暗証キー暗号方式であるとすれば、前記ユーザui、...ui+tのためのセッションキーのヘッダーは次の数式2のように表われる。
【0095】
【数2】
【0096】
図11は、本発明の実施形態に係る各ノードのユーザが受信されたセッションキーによりデータ復号化の手続きを示すフローチャートである。同図に示すように、前述した方法に基づいて伝送されたキー値により印加されたユーザのみが受信データを復号することができる。即ち、暗号化された前記ヘッダーの含まれたメッセージを受信(S1101)した各ユーザは該当区間内のユーザである場合(S1102)、自分の有しているキー値で前記h(s)(Ki)を演算し復号化する(S1103)。一方、該当区間内のユーザでない場合は前記h(s)(Ki)の演算ができないことから、受信データの復号化も行うことができない(S1104)。
【0097】
詳細には、第iノード以前のユーザ1002はKiの値が分からないのでキー値を求めることができず、第i+t以来のユーザは、たとえKiの一方向キーチェーンの後ろ部分は知っているものの、一方向ハッシュ関数の一方向性質のことでh(s)(Ki)を求めることはできない。
【0098】
一方、前記区間に含まれた正当な全ユーザは自分の有しているキー値のうちKiから作られた値にhを繰り返して適用することで、h(s)(Ki)値を求めることができる。
【0099】
なお、前述した本発明の実施形態において全てのN名のユーザからr名の除外されたユーザが含まれた場合の伝送量を算出すると次のとおりである。
【0100】
まず、各ユーザが保存すべきなのが最大にc個のキー値である。そのとき伝送量は最悪の場合にr+(N−2r)/c個であって、これは全て除外されたユーザが直線の一方に集まり、残り部分は正当なユーザのみが集まっている場合である。
【0101】
さらに、除外されたユーザが2以上で連続に表れる場合は伝送量が減少するので、除外されたユーザと正当なユーザが交番に位置する場合について考える。このときに、N/cが追加に必要な理由は、1回の伝送でキー伝達可能な区間の最大長さをcとして設定したからである。
【0102】
また、ユーザの計算量は、最大にc番の一方向関数計算と暗証キー暗号アルゴリズム1回であって、これをN=1,000,000、r=50,000である状況で算出してみると下記の結果値が獲得される。
【0103】
【表1】
【0104】
以下、前述した本発明の実施形態の変形例について説明する。最初に、変形された第1の実施形態は、前述した実施形態で区間の長さをcとして設定することにより伝送量がrより大になることを補完するため、長い区間について1回の伝送のみでキー値を伝送する方法である。
【0105】
更に、変形された第2の実施形態は伝送量をrより減少させるために除外されたユーザの位置から新たな一方向関数を適用する方法である。それと共に、変形された第3の実施形態は前記変形された第1の実施形態および変形された第2の実施形態を組み合わせた方法である。
【0106】
<変形された第1の実施形態>
前述の実施形態において伝送量がrより大になる理由は、区間の長さをcに限定したからである。従って、伝送量がrに近づくためには前述した区間限定に応じて求められる伝送量を減らさなければならない。従って、前述した基本概念の拡張により、長い区間について1回の伝送でキーを伝送することのできる拡張された実施形態を提案する。
【0107】
本発明の変形された第1の実施形態は、直線上のノードのうち一定間隔(例えば、毎c番目ノード)に応じて特別ノードを設定する。
【0108】
前記特別ノード毎に既存のシードキーとは独立的な特別シードキーを再度ランダムに選択して対応させ、前記特別ノードキーから開始する特別ノードチェーンを生成する。
【0109】
図12は本発明の変形された第1の実施形態に係る線形構造における特別ノードが定義されている。同図を参照すると、c番目ノード1204、1205毎に特別ノード1201,1202,1203を設定する。前記設定されたc番目ノード毎に設定された特別ノード1201,1202,1203にそれぞれ特別シードキーを与え、前記キーから長さのc×c2である一方向チェーンが構成される。
【0110】
より詳細に説明すると、各特別ノード1201,1202,1203毎に既存のシードキーとは独立的な特別シードキーを再度ランダムに選択して対応させ、新たな一方向ハッシュ関数を用いて各特別シードキー別に、前記特別シードキーから始まる特別ノードチェーンを形成する。
【0111】
この際、c2が新たな定数であると、前記特別ノードチェーンは前述したようにc×c2の長さを有する。
【0112】
以下、図13に基づいて特別ノードに特別ノードチェーンを対応させる方法について説明する。
【0113】
図13には本発明の変形された第1の実施形態に係る線形構造における各ノードにキー値を対応させる方法が図示されている。変形された第1実施形態においてチェーンを形成する方法は、基本的に前述した基本実施形態と同様な方法に基づく。しかし、次の区間{ui、ui+1、ui+2、...ui+S}が特別ノードから始まる長さがcを超える区間であるとするとき、前記区間に対するキー伝送はuiから開始される特別ノードチェーンによりなされる。この時、SKを暗号化する方式は前述の基本実施形態から同様である。即ち、uiから開始されるチェーンのui+sに対応する値を用いてSKを暗号化し伝送する。
【0114】
図13に基づくと、第cノードである第1特別ノード1301にKという特別ノードキーが割り当てられると、長さcが超えた第2cノードである第2特別ノード1302には前記Kを新たな一方向関数h21304に一方向関数演算したh2(K)の特別ノードキー1305が割り当てられる。同様に、第3cノードである第3特別ノード1303には前記Kを新たな一方向関数h21304に2回一方向関数演算(つまり、h2(2)1306)したh2(2)(K)が与えられる。
【0115】
従って、第c+1ノードでは第cノードの特別シードキーKをhにより一方向関数演算したh(K)が与えられ、第c+2ノードでは第cノードの特別シードキーKをhにより2回一方向関数演算したh(2)(K)が与えられる。同様に、第2c+1ノードでは第2cノードに与えられたh2(K)をhにより一方向関数演算したh(h2(K))が与えられ、第3c+1ノードでは第3cノードに与えられたh2(2)(K)をhにより一方向関数演算したたh(h2(2)(K))が与えられる。
【0116】
この際、1≦t<cに対して、c+t番目ユーザは自分のシードキーとh2(K)を共に保存する。従って、各ノード毎に合わせてc2個のキーが加えて保存される。
【0117】
前述したように、本発明の変形された第1の実施形態では各ノードに保存されているキー値の数が増加されるが、伝送すべきセッションキーのサイズは減少される。
【0118】
図14は本発明の変形された第1実施形態に係るセッションキー伝送のために区間を分ける方法が図示されている。同図に示すように、多く印加されたユーザ(privileged user)らが集まっている場合に、2つの区間1401,1402のみに分けてセッションキーを伝送することができる。
【0119】
図15は本発明の変形された第1の実施形態に係る多数の区間で分けられた場合セッションキーを伝送する方法が図示されている。同図に示すように、4つの区間1501,1502、1503、1504から分けられている場合に、E(h(2)h2(2)(K),SK)のようにセッションキーを構成して伝送することによって、印加されたユーザのみが復号化されることができるよう具現される。
【0120】
従って、本発明の変形された第1の実施形態に係るh2関数を用いることによって計算量を減らし得る。つまり、このときには最大c+c2回の一方向関数演算の計算が求められる。
【0121】
前述した変形された第1の実施形態によると、ユーザの保存量は基本実施形態に比べてやや増加しているが、除外されたユーザの数が少ない場合にはその伝送量が著しく減少される。
【0122】
<変形された第2の実施形態>
前述した変形された実施形態における結果として伝送量rに近似させた結果を得ることができた。これは今まで知られた方法のうちSDの場合に伝送量が2r−1であるのと比較すると、相当改善された結果であることが分かる。後述する変形された第2の実施形態では前記伝送量をrより減少する方法について提案する。
【0123】
変形された第2の実施形態の基本概念は次の通りである。除外されたユーザ(revoked user)二人との間に位置しているユーザの集合を区間としてするとき、最悪の場合を考える場合に区間の全体数はrより小さくはならない。なお、各区間について1回ずつ伝送が行われるので、かかる区間のみを考える場合には伝送量がrより小さくなることは考えられない。従って、基本的な区間に様々な形の区間を加えなければならない場合が発生する。
【0124】
従って、本発明の変形された第2の実施形態では、1つ以上の除外されたユーザを含んでいる区間を加えて伝送区間を設定する。以下、説明では一人の除外されたユーザを含む区間が加えられる例について説明し、同一方法に基づいて二人以上の除外されたユーザを含む区間が加えられる場合も拡張して適用され得る。例えば、合わせて3人の除外されたユーザにより1つの区間が作られるため、理想的にはr/2までに伝送量を減らすことができる。
【0125】
図16は本発明の変形された第2の実施形態に係る区間設定の方法を示す図面である。本発明の変形された第2の実施形態では区間内に除外されたユーザを含ませるべく区間を設定することによって、伝送量は減少し、かつ保存量は増大される。つまり、二人の除外されたユーザについて一回にキーを伝送することができるようになる。
【0126】
なお、一人の除外されたユーザが加えられた形態については図16に図示されたように、2つ場合が発生する。前記2つ場合のうち(1)の場合は前述した基本実施形態でその解決が可能であり、(2)の場合には後述する変形された第2の実施形態により効率よく解決できる。
【0127】
前記(2)のような区間に対するセッションキーの伝送は次のように行われる。本発明の変形された第2の実施形態により新たな一方向ハッシュ関数であるg関数が必要となる。つまり、区間{ui、ui+1、ui+2、...ui+S}の除外されたユーザui+jを含んだ区間であるとする時(尚、全体の区間の長さがcを超えないと仮定する)、センターはh(s−j)gh(j−2)(Ki)を用いてSKを暗号化する。
【0128】
図16は一人の除外されたユーザが加えられた形態について説明したが、前述のように複数の除外されたユーザが加えられる場合でも本発明が同一に適用できる。
【0129】
図17は本発明の変形された第2の実施形態に係る線形構造における各ノードにキー値を対応させる方法を示す図面である。同図に示すように、除外されたユーザが出現する前までには1701,1702,1703,1704は基本実施形態と同じ一方向キーチェーンに沿って右方向にハッシュ関数hを適用し、除外されたユーザui+jの位置1705では一方向ハッシュ関数hの代わりに更なる一方向ハッシュ関数であるgを用いて一方向キーチェーンを変形させる。
【0130】
それから、除外されたユーザを通過した後1706,1707には再度一方向ハッシュ関数hを用いてキー値を生成し一方向キーチェーンを作っていく。そして、セッションキーを伝送する際には最後のユーザの位置に該当する値でSKを暗号化して伝送する。
【0131】
なお、前記2つの一方向関数hとgは全て公開された関数であるので、除外されたユーザの左側に位置するユーザは暗号化に用いられたキーを容易に算出ことができる。しかし、除外されたユーザui+jはgh(j−1)(Ki)の値を把握しなければその後の値の算出を行うことができないので、センタではgh(j−1)(Ki)の値を秘密にする。
【0132】
一方、除外されたユーザの右側に位置するユーザの場合にはそれぞれ前記チェーンの中から自分の位置に該当する値を加えて保存していなければならない。なお、区間の長さをcとして設定する場合、その数を算出してみると、1+2+3+...+(c−2)となる。つなり、各ユーザは(c−1)(c−2)/2のキーを加えて保存すべきである。
【0133】
前述した本発明の変形された第2の実施形態によると、総保存量はc+(c−1)(c−2)/2、即ち、O(c2)であるが、伝送量はr/2+(N−2r)/cであって、前のr部分がr/2に減少されたことが分かる。さらに、計算量は基本実施形態のように最大c回の一方向演算の算出となる。
【0134】
前述したN=1,000,000およびr=50,000である場合について算出してみると、下記の表2の結果が獲得される。
【0135】
【表2】
【0136】
前記表2によると、伝送量において前のr部分はr/2に示すように減少したが、後に加えられる(N−2r)/cが大になったことが分かる。
【0137】
一方、前述した変形された第2の実施形態の方法は一般的な場合であって、拡張することが可能である。即ち、保存量がO(c3)に増加し、三人の除外されたユーザを含んだ区間に一回の伝送でキーを伝送することができるよう具現される。従って、前述したように1つのみならず複数の除外されたユーザを含む区間に対しても適用可能である。
【0138】
<変形された第3の実施形態>
最後の実施形態として、本発明の変形された第3の実施形態は、前述の変形された第1の実施形態および第2の実施形態を同時に適用した実施形態である。かかる場合、最悪の場合が、長さがcである区間にて除外されたユーザが一人ずつ含まれている場合である。その理由は、長さがcより小さい区間に2人以上の除外されたユーザが含まれている場合には前述の変形された第2の実施形態に基づいて除外されたユーザ2人を一回の伝送で解決することができるからである。かかる最悪の場合における伝送量を計算してみると、r/2+(N−2r)/2(c−2)であり、保存量はc+c2+(c−1)(c−2)/2である。
【0139】
この伝送量に対する式は、rがN/cより大きい場合に適用される。もし、rがN/cより小さければ更なる結果が得られる。例えば、r=0であれば、必要な伝送量はN/(c×c2)である。なお、rが次第に増大しながら除外されたユーザの含まれた長さcである区間に対しては一回の伝送が求められ、残り部分に対しては変形された第1の実施形態における方法が適用されるので、大略的にr+(N−cr)/(c×c2)の伝送量が求められることが分かる。
【0140】
即ち、N/(c×c2)を初期値にして勾配が2である直線をなすことになる。同じ方法で、増加した伝送量はrがN/cである時点を転換点にして、r/2+(N−2r)/2(c−2)の方に変わる。
【0141】
前述した変形された第3の形態によると、ユーザの保存量は基本実施形態に比べて多少増加するが、除外されたユーザの数が少ない場合は伝送量が著しく減少する。
【0142】
<変形された第4の実施形態>
本発明の変形された第4の実施形態は前述した線形構造における基本実施形態および変形された第1実施形態ないし変形された第3の実施形態を環状構造で適用した方法である。
【0143】
最初に、前述した実施形態での線形構造(straight line structure)を環状構造で容易に再構成することができる。即ち、u1からuNまでのN名のユーザを有する直線Lを考慮する際に、前記Lの2つの終り点を連結させると前記直線は環状となる。
【0144】
前記環状から予め設定された区間に対して、前述した基本実施形態のような全ての一方向キーチェーン方法が適用され得る。例えば、ユーザuNノードから開始される一方向キーチェーンが構成されるのである。
【0145】
前記線形構造を有する基本実施形態では、前記ユーザuNノードから開始される一方向キーチェーンはKN、Nの1つのキーを有する。一方、本発明の変形された第4の実施形態に係る環状構造では前記uNとu1を連結して引き続き一方向キーチェーンを形成するので、ユーザuNノードから開始される一方向キーチェーンは下記の数3のようなc個のキー値を有する。
【0146】
【数3】
【0147】
これを一般化してuiノードから開始される一方向キーチェーンを次の数4のように表すことができる。
【0148】
【数4】
【0149】
即ち、変形された第4の実施形態の場合、連続した正当ユーザからなる区間の最大長さをcとすると、線形構造ではそれぞれのユーザの位置に応じて1からc個までのキーが保存されるが、環状構造ではそれぞれのユーザはそれぞれc個のキーが保存されるべきである。
【0150】
図18は本発明の変形された第4の実施形態に係る環状の各ノードにキー値の対応された結果を表した図面である。同図に示すように、変形された第4の実施形態では、環状グループを構成しているノードが10個であり、連続した正当なユーザから構成された区間の最大長さが5個である場合に、各ノードが5個のキーを保存していることが確認できる。
【0151】
これによって、環状構造においても前述した変形された第1の実施形態における区間の長さをcと設定することによって伝送量がrより大になることを補完するために、長い区間について一回の伝送のみでキー値を伝送できる方法が適用可能である。それと共に、環状構造においても前述した変形された第2の実施形態における伝送量をrより減少させるために、除外されたユーザの位置から新たな一方向関数を適用する方法が適用可能であり、さらに、前述した変形された第3の実施形態における変形された第1の実施形態および変形された第2の実施形態の組み合わせた方法に基づいてもその適用が可能となる。
【0152】
<変形された第5の実施形態>
本発明の変形された第5の実施形態は階層構造を有する環状構造を提案する。
【0153】
図19は本発明の一実施の形態に係る環状構造のノードグループの階層構造を示している。
【0154】
同図を参照すると、階層構造上の各環状構造のノードグループはc個のノードからなっている。このときに、各ユーザは前記階層構造の全てのノード(即ち、環状構造)における各点に対応する。もし、前記階層構造がルーツノードを除いて16階層から構成されていれば、前記階層構造ではc16のユーザを対応することができるようになる。
【0155】
従って、各階層でのグループノード別に前述したようなキーチェーンを有する環状構造が構成されることができる。このとき、前記各ノードに対応するユーザは自分の親ノードに割り当てられた全てのキー値を有するようになる。
【0156】
前記構造から、少なくとも1つの除外されたユーザを含んでいる子ノードを有する各ノードは、除外されたノードとして見なされる。従って、暗号化する際に、まずセンタでは前記除外されたノードを表示する。それから、前記センタでは前記除外されたノードの親ノードを階層構造に従って表示していく。
【0157】
かかる過程がルーツノードまで完了され、もし、少なくとも1つの除外されたノードがあればルーツノードは除外されたノードとなる。
【0158】
前記除外されたノードを確認してから、センタでは各階層における区間を設定する。図示されたように第0階層の上では1つのノードのみが含まれる。
【0159】
最初に、センタでは第0階層の環状グループから循環区間を設定し、前記設定された各循環区間に対して区間キーとしてセッションキーを暗号化する。それから、センタでは第1階層について前記第0階層で除外されたノードの子ノードに該当する環状グループのみを考慮する。前述のような過程は第15階層までに進行される。
【0160】
例えば、1つの除外されたユーザを有す場合、前記表示する過程にて全ての階層から1つの除外されたノードが発生されるようになる。さらに、暗号化ステップにては第0階層にて1つの除外されたノードがあることから、前記センタでは1つのノードを除外した循環区間に対する区間キーとしてセッションキーが暗号化される。一方、第1階層についてセンタは前記第0階層での除外されたノードの子ノードに該当する1つの環状グループのみを考慮する。
【0161】
認証されたノードの子ノードに該当する環状グループを構成している各ノードは前記自分の親ノードから与えられアセッションキーを得ることができる。結果的にはセンタでは16回暗号化することによって、全体の階層構造に対する暗号化の処理を行うことができる。
【0162】
前述した変形された第4の実施形態では、前の実施形態より数多いユーザに対する暗号化処理を行うことができる一方、より多いキーが求められるようになる。しかし、前述の第2の実施形態よりも伝送オーバーヘッド(TO)を著しく減少させることができる。
【0163】
即ち、変形された第4の実施形態の階層をk階層とし、各環状グループに含まれたノードの個数をそれぞれc個とすると、前記変形された第4の実施形態にて各ユーザの保存オーバーヘッドはkc+(c−1)(c−2)/2であって、(k−1)c個のキーが増加する。
【0164】
一方、伝送オーバーヘッドはck−1/2<rである場合、約r/2+3N/4cとなる。これはr<N/6である場合、前記変形された第4の実施形態が前述した変形された第2の実施形態よりも少ない伝送オーバーヘッドを有していることが分かる。
【0165】
また、前の説明では1つの除外されたユーザを含んでいる区間(1−punctured)について適用しているが、前記変形された第2の実施形態では前述のように複数の除外されたユーザを含んでいる区間(p−punctured)についても適用できることは自明である。さらに、前述の階層構造におけるより多い階層に対しても前記除外されたユーザに対する区間設定および伝送方法を使用することができる。
【0166】
以上、本発明に係る各実施形態について説明したが、この実施形態がブロードキャスト暗号化に実際適用されることにあたって、全てのユーザがシステムの初期に同時加入することは難しい。つまり、センタは将来に加えられるユーザのために、予めキーを設定しておくべきであるが、このようなキーは基本的に除外された状態として維持されなければならない。そうでなければ、新たに加入したユーザが過去に伝達されたメッセージを復旧する恐れがあるからである。
【0167】
ほとんどのブロードキャスト暗号化の場合、伝送量がrに依存することを考えると、これはセンタに大きい負担になりかねない。従って、新たなユーザのキーを予め作らずに後で追加する機能というのは極めて重要である。前記で提案された実施形態はいつでも新たなユーザが追加されるたびに直線の右側に新たなノードを追加すれば容易に解決される。このときに、計算量は、新たなランダム値を選択すること、一方向関数の演算を数回程度行うことが加えられるので、効率よくユーザの追加を行うことができる。勿論、他のユーザのキーにいずれの影響も及ぼさない。
【0168】
一方、ユーザの代替側面からみると、これはシステムが長時間の間に使用された後のメンテナンスに関わりがある。システムが長時間維持された場合に、永久的に除外されたユーザは常に除外されたままの状態であるため、伝送量がrに依存するほとんどの方法において伝送量を増加させてしまう、という大きな要因に繋がる。
【0169】
かかる場合に、永久除外されたユーザのキーを取り除いた後、新たなユーザをその位置に加えることで除外されたユーザの数を減少させる必要がある。従来の補間などの方法では、このようなユーザ代替が割合自在に実行され得るものの、階層などの構造を用いた方法によると難しい作業である。SDの場合は、一人のユーザを代替するために、ルーツノードのキーを新たに変えなければならないので、全てのユーザのキーを更新せざるを得ない不都合がある。
【0170】
一方、前述した本発明に係る実施形態では、前記SDなどのツリーを用いた方法よりも比較的に容易に適用できる。つまり、一人のユーザを代替したい場合は基本実施形態の場合、合わせて2c名のユーザのキーを更新すればよい。
【0171】
謀反人(traitor)は、正当なユーザの中で自分の暗証キーを流出し不法的なユーザにメッセージを見せるよう手伝うユーザである。謀反人追跡は、このような不法なユーザが存在する場合、彼らが有しているキーからキーを流出させたユーザを探し出すアルゴリズムのことをいう。
【0172】
かかる謀反人追跡に対する結果は色々であるが、各ユーザのキーが全て区別可能であり、多数のユーザのキーから新たなキーを生成することができない場合は基本的に謀反人追跡が可能であると知られている。一方、前提案された本発明の実施形態は、かかる性質を満足させるため、謀反人の追跡が可能になる。
【0173】
また、基本実施形態を、公開キーを利用する方式に変形することで、各ユーザの暗証キーを2つに減らすことができる。この場合に、必要な公開キーはO(c2)となる。かかる変形は公開キーのサイズが制限的ではない応用分野において使用するとき有用である。
【0174】
結論的に、様々なブロードキャスト暗号化方法のうち現在最も効果的なCSおよびSC方法と本発明との比較結果が下記の表3に表れている。なお、前述した結果のようにN=1,000,000及びr=50,000である場合である。
【0175】
【表3】
【0176】
上記の表3を参照すると、本発明の実施形態に基づくとブロードキャスト暗号化で最も重要な伝送量がr未満に減ることが分かる。つまり、本発明の実施形態は今まで最も好ましい方法であると知られているSDと比較して伝送量が著しく減ったことが分かる。また、前述した実際の適用に必要な様々な特性をも含んでいる。
【0177】
以上、図面に基づいて本発明の好適な実施形態を図示および説明してきたが本発明の保護範囲は、前述の実施形態に限定するものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【産業上の利用可能性】
【0178】
本発明はブロードキャスト暗号化のような暗号化に用いられる。
【符号の説明】
【0179】
100 コンテンツ生産者
110 サービス提供者
120 衛星
130 インタネットネットワーク
140 ネットワーク
141 セットトップボックス
142 移動通信端末
150 スマートホームネットワーク
151,152,153,154,155 端末
160 不法ユーザ
【特許請求の範囲】
【請求項1】
暗号化のためのユーザキー管理方法において、
環状のグループを形成する各ノードにノードパスIDを与えるステップと、
前記ノードパスIDに応じて前記各ノードに任意のシードキーを与えるステップと、
前記与えられた任意のシードキーに任意の長さの入力値を定められた長さの出力値に圧縮する関数を繰り返し適用してキー値を生成するステップと、
前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、
を含むことを特徴とするユーザキー管理方法。
【請求項2】
前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、
前記区間内の一番目ノードに与えられた前記シードキーに前記関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項3】
前記循環区間は認証されたノードからなる連続区間であることを特徴とする請求項2に記載のユーザキー管理方法。
【請求項4】
前記環状のグループを形成する各ノードの下方に新たな環状のグループを形成するノードを下部構造としてリンクさせることにより、環状のグループの階層構造を形成することを特徴とする請求項1に記載のユーザキー管理方法。
【請求項5】
前記階層構造は16層であることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項6】
前記各環状のグループを形成している各ノードの個数は同一であることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項7】
前記環状のグループ内のN個のノードからなる循環区間は、1つ以上の除外されたノードを含み、前記除外されたノードでは任意の長さの入力値を定められた長さの出力値に圧縮する関数をそれぞれ独立的に適用することを特徴とする請求項1に記載のユーザキー管理方法。
【請求項8】
前記環状のグループを形成するノードはN個であり、前記ノードパスIDとして0からN−1までが与えられることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項9】
前記階層構造において少なくとも1つの除外された子ノードを有するノードは、除外されたノードとしてみなされることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項10】
前記関数は、HBES SHA−1であることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項11】
キー割り当て方法において、
環状のグループを形成する各ノードにノードパスIDを割り当てるステップと、
前記環状のグループの第1ノードの複数の第1キーのうちの一つで第1シードを割り当てる第1割り当てステップと、
前記環状のグループの第2ノードで割り当てられた第2シードに任意の長さの入力値を定められた長さの出力値に圧縮する関数を少なくとも一回適用した結果を、前記環状のグループの前記第1ノードの前記複数の第1キーのうちの他の一つに割り当てる第2割り当てステップと、
を含むことを特徴とするキー割り当て方法。
【請求項12】
前記第1シード及び前記第2シードは、ランダムに生成され、互いに独立していることを特徴とする請求項11に記載のキー割り当て方法。
【請求項13】
前記関数は、HBES SHA−1であることを特徴とする請求項11に記載のキー割り当て方法。
【請求項14】
前記環状のグループは、t個のノードを含み、
前記第1ノードは前記環状のグループの第1位置に配列され、前記第2ノードは前記環状のグループの第2位置に配列され、前記第2割り当てステップは、前記第2シードにハッシュ関数を(t−1)回適用するステップを含むことを特徴とする請求項11に記載のキー割り当て方法。
【請求項15】
前記環状のグループで前記第1ノードと第2ノードとは、同一の親(Parent)ノードを有することを特徴とする請求項11に記載のキー割り当て方法。
【請求項1】
暗号化のためのユーザキー管理方法において、
環状のグループを形成する各ノードにノードパスIDを与えるステップと、
前記ノードパスIDに応じて前記各ノードに任意のシードキーを与えるステップと、
前記与えられた任意のシードキーに任意の長さの入力値を定められた長さの出力値に圧縮する関数を繰り返し適用してキー値を生成するステップと、
前記生成されたキー値を前記環状のグループを形成する各ノードに順次与えるステップと、
を含むことを特徴とするユーザキー管理方法。
【請求項2】
前記環状のグループ内のN個のノードからなる循環区間に対する暗号化キーは、
前記区間内の一番目ノードに与えられた前記シードキーに前記関数をN−1回繰り返し適用して生成されたキー値にすることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項3】
前記循環区間は認証されたノードからなる連続区間であることを特徴とする請求項2に記載のユーザキー管理方法。
【請求項4】
前記環状のグループを形成する各ノードの下方に新たな環状のグループを形成するノードを下部構造としてリンクさせることにより、環状のグループの階層構造を形成することを特徴とする請求項1に記載のユーザキー管理方法。
【請求項5】
前記階層構造は16層であることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項6】
前記各環状のグループを形成している各ノードの個数は同一であることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項7】
前記環状のグループ内のN個のノードからなる循環区間は、1つ以上の除外されたノードを含み、前記除外されたノードでは任意の長さの入力値を定められた長さの出力値に圧縮する関数をそれぞれ独立的に適用することを特徴とする請求項1に記載のユーザキー管理方法。
【請求項8】
前記環状のグループを形成するノードはN個であり、前記ノードパスIDとして0からN−1までが与えられることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項9】
前記階層構造において少なくとも1つの除外された子ノードを有するノードは、除外されたノードとしてみなされることを特徴とする請求項4に記載のユーザキー管理方法。
【請求項10】
前記関数は、HBES SHA−1であることを特徴とする請求項1に記載のユーザキー管理方法。
【請求項11】
キー割り当て方法において、
環状のグループを形成する各ノードにノードパスIDを割り当てるステップと、
前記環状のグループの第1ノードの複数の第1キーのうちの一つで第1シードを割り当てる第1割り当てステップと、
前記環状のグループの第2ノードで割り当てられた第2シードに任意の長さの入力値を定められた長さの出力値に圧縮する関数を少なくとも一回適用した結果を、前記環状のグループの前記第1ノードの前記複数の第1キーのうちの他の一つに割り当てる第2割り当てステップと、
を含むことを特徴とするキー割り当て方法。
【請求項12】
前記第1シード及び前記第2シードは、ランダムに生成され、互いに独立していることを特徴とする請求項11に記載のキー割り当て方法。
【請求項13】
前記関数は、HBES SHA−1であることを特徴とする請求項11に記載のキー割り当て方法。
【請求項14】
前記環状のグループは、t個のノードを含み、
前記第1ノードは前記環状のグループの第1位置に配列され、前記第2ノードは前記環状のグループの第2位置に配列され、前記第2割り当てステップは、前記第2シードにハッシュ関数を(t−1)回適用するステップを含むことを特徴とする請求項11に記載のキー割り当て方法。
【請求項15】
前記環状のグループで前記第1ノードと第2ノードとは、同一の親(Parent)ノードを有することを特徴とする請求項11に記載のキー割り当て方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−182844(P2012−182844A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2012−134570(P2012−134570)
【出願日】平成24年6月14日(2012.6.14)
【分割の表示】特願2011−82596(P2011−82596)の分割
【原出願日】平成17年11月12日(2005.11.12)
【出願人】(503447036)サムスン エレクトロニクス カンパニー リミテッド (2,221)
【Fターム(参考)】
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願日】平成24年6月14日(2012.6.14)
【分割の表示】特願2011−82596(P2011−82596)の分割
【原出願日】平成17年11月12日(2005.11.12)
【出願人】(503447036)サムスン エレクトロニクス カンパニー リミテッド (2,221)
【Fターム(参考)】
[ Back to top ]