(57)【要約】【課題】  階層的鍵管理方式と同様のアクセス構造を持つ鍵管理方式を少ない計算量で安全に構成する。【解決手段】  鍵情報処理方法に、ランクｉの各要素に対して、一方向性ハッシュ関数の実行規定の組（，）を設定する設定工程（ステップＳ８０１〜８０８）と、前記各要素につき、２つのオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つの個別鍵を生成する鍵生成工程と、前記各要素に対し、当該要素に対する２つの個別鍵を配布する鍵配布工程とを備える。【選択図】  図８
2005051727.tif 000002
【特許請求の範囲】
【請求項１】
階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、
前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つ以上の個別鍵を生成する鍵生成工程と、
前記各要素に対し、当該要素に対する２つの個別鍵を配布する鍵配布工程と、
を有することを特徴とする鍵情報処理方法。
【請求項２】
前記実行規定は、前記一方向性関数の実行回数であることを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記鍵生成工程において、最上位の要素に対する個別鍵を前記２つ以上のオリジナル鍵とすることを特徴とする請求項１ないし２に記載の鍵情報処理方法。
【請求項４】
前記鍵生成工程において、最上位の要素が前記２つ以上のオリジナル鍵から前記各要素に対する２つ以上の個別鍵を生成し、前記鍵配布工程において、当該最上位の要素が前記各要素に対し、当該要素に対する２つ以上の個別鍵を配布することを特徴とする請求項１ないし２に記載の情報処理方法。
【請求項５】
前記鍵生成工程において、最上位以外の要素が当該要素に対する２つ以上の個別鍵から下位要素に対する２つ以上の個別鍵を生成し、前記鍵配布工程において、当該最上位以外の要素が当該下位要素に対し、当該下位要素に対する２つ以上の個別鍵を配布することを特徴とする請求項１から２に記載の情報処理方法。
【請求項６】
前記鍵生成工程において、最上位以外の要素の２つ以上の個別鍵のそれぞれに、当該最上位以外の要素に対して設定された実行回数の組と前記下位要素に対して設定された実行回数の組との差において対応する回数だけ、前記一方向性関数を実行することで、当該下位要素に対する２以上の個別鍵を生成することを特徴とする請求項２に記載の情報処理方法。
【請求項７】
前記設定工程の設定内容を表わすグラフを前記各要素に公開する公開工程と、
前記各要素に、当該要素の前記グラフ上での位置を表わす識別データを配布する識別データ配布工程とを有することを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記設定工程において、行列に最右上のセルが原点（０，０）、及び水平左方向にｘ座標が１ずつ増加し、垂直下方向にｙ座標が１ずつ増加するような座標軸を定義し、大きさがＮｘ＊Ｎｙである行列の座標（ｉ，ｊ）のセルに対する前記実行回数の組（ｘ＿ｉｊ，ｙ＿ｉｊ）として、
ｊ＝０の場合、ｘ＿ｉｊ＝ｉ、
ｊ≠０の場合、ｘ＿ｉｊ＝Ｎｘ＋ｊ−１とし、且つ、
ｉ＝０の場合、ｙ＿ｉｊ＝ｊ、
ｊ≠０の場合、ｙ＿ｉｊ＝Ｎｙ＋ｉ−１と設定することを特徴とする請求項１ないし２に記載の鍵情報処理方法。
【請求項９】
前記複数の要素が２つの階層軸を持つ格子状の階層関係にあり、
上位階層に複数の親要素を持つ要素に対して第３の個別鍵を生成する第２の鍵生成工程と、
前記複数の親要素を持つ要素に対して第３の個別鍵を配布する第２の鍵配布工程とを有することを特徴とする請求項１ないし２に記載の鍵情報処理方法。
【請求項１０】
前記第２の鍵生成工程において、前記複数の親要素の階層で共有するデータに一方向性関数を所定回数実行することで前記第３の個別鍵を生成することを特徴とする請求項９に記載の鍵情報処理方法。
【請求項１１】
前記複数の親要素を持つ要素と同階層の各要素に対して前記一方向性関数を実行する回数の組を設定する第２の設定工程を備え、前記第２の鍵生成工程において、前記複数の親要素で共有するデータに当該回数の組のそれぞれの回数だけ前記一方向性関数を実行した結果を当該同階層の各要素に対する前記第３の個別鍵として生成することを特徴とする請求項９に記載の鍵情報処理方法。
【請求項１２】
前記第２の設定工程において、行列に最右上のセルが原点（０，０）、及び水平左方向にｘ座標が１ずつ増加し、垂直下方向にｙ座標が１ずつ増加するような座標軸を定義し、大きさが（Ｎｘ−２）＊（Ｎｙ−２）である行列における座標（ｉ’，ｊ’）のセルに対する前記実行回数の組を（ｕ’＿ｉ’ｊ’，ｖ’＿ｉ’ｊ’）とした場合、大きさがＮｘ＊Ｎｙである行列における座標（ｉ，ｊ）のセルに対する前記実行回数の組（ｕ＿ｉｊ，ｖ＿ｉｊ）として、
ｉ＝０、且つｊ＝０の場合、ｕ＿ｉｊ＝０、及びｖ＿ｉｊ＝０とし、
ｉ＝Ｎｘ−１、或いはｊ＝Ｎｙ−１の場合、ｕ＿ｉｊ，及びｖ＿ｉｊとして、前記個別鍵が存在しないことを示す情報とし、
ｉ＝０、且つｊ≠０の場合、ｕ＿ｉｊ＝ｕ’＿ｉ（ｊ−１）、及びｖ＿ｉｊ＝ｖ’＿ｉ（ｊ−１）とし、
ｊ＝０、且つｉ≠０の場合の場合、ｕ＿ｉｊ＝ｕ’＿（ｉ−１）ｊ、及びｖ＿ｉｊ＝ｖ’＿（ｉ−１）ｊとし、
上記以外の場合、ｕ＿ｉｊ＝ｕ’＿（ｉ−１）（ｊ−１）、及びｖ＿ｉｊ＝ｖ’＿（ｉ−１）（ｊ−１）と設定し、
前記大きさが（Ｎｘ−２）＊（Ｎｙ−２）である行列における各セルの実行回数の組を、請求項８に記載の方法で生成することを特徴とする請求項１１に記載の鍵情報処理方法。
【請求項１３】
前記複数の親要素で共有するデータは前記２つのオリジナル鍵を用いて生成されるデータであることを特徴とする請求項９に記載の鍵情報処理方法。
【請求項１４】
前記複数の親要素で共有するデータは前記２つのオリジナル鍵とは独立な第３のオリジナル鍵から生成されるデータであることを特徴とする請求項９に記載の鍵情報処理方法。
【請求項１５】
前記２つの階層軸はそれぞれ画像の２つのパラメータの階層レベルに対応付けられており、各要素の個別鍵は、当該２つのパラメータについて当該要素の属する階層レベルに対応する画像へのアクセスを可能とすることを特徴とする請求項９に記載の鍵情報処理方法。
【請求項１６】
前記２つのパラメータは、画像の領域及び解像度であることを特徴とする請求項１５に記載の鍵情報処理方法。
【請求項１７】
前記２つのパラメータは、画像の画質及び解像度であることを特徴とする請求項１５に記載の鍵情報処理方法。
【請求項１８】
前記画像は動画であり、前記２つのパラメータは、動画の時間領域及び画質であることを特徴とする請求項１５に記載の鍵情報処理方法。
【請求項１９】
階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定手段と、
前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つ以上の個別鍵を生成する鍵生成手段と、
前記各要素に対し、当該要素に対する２つの個別鍵を配布する鍵配布手段とを有することを特徴とする鍵情報処理装置。
【請求項２０】
コンピュータにより読み取り可能なプログラムであって、階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、
前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つ以上の個別鍵を生成する鍵生成工程と、
前記各要素に対し、当該要素に対する２つの個別鍵を配布する鍵配布工程とを有する鍵情報処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵管理に関し、鍵生成に要する演算量、及び鍵の配信数に関する負荷を軽減させる方式であり、復号のための複数の鍵を管理する必要があるコンテンツ配信システムやリムーバルメディア制御方式において、好適なものであるに関するものである。
【背景技術】
【０００２】
近年、通信回線やＤＶＤなどの大容量記録メディアを通じて、文書や画像データなどのデジタルコンテンツが流通する機会が増加している。デジタルコンテンツ配信サービスは、特定のユーザに対してコンテンツを流布するサービスであるが、ユーザ以外にはコンテンツが漏洩しない仕組みが要求されている。また、大容量メディアによるコンテンツ配信においても、同様のユーザによるアクセス制御の機構が検討されている。その際には、コンテンツデータに対する暗号化やスクランブル処理などが行われており、正当な鍵情報を持つ、もしくはデスクランブル処理を知っている正当なユーザのみが復号処理を行い、正規の文書や画像データなどのコンテンツを享受できる仕組みが提供されている。
【０００３】
このようなコンテンツ配信サービスにおいては、コンテンツを配信するコンテンツプロバイダが存在する。コンテンツプロバイダでは、複数のコンテンツのそれぞれに対して異なるアクセス制御情報の設定を行う必要があり、コンテンツごと、ユーザごと、さらにはユーザのアクション（例えば、閲覧、コピーなど）ごとに異なる鍵による暗号化処理を行うことが想定されている。この処理において、鍵生成、鍵保持、鍵配信などの鍵情報に関わるマネージメントはコンテンツプロバイダにおいて非常に負荷がかかることが多い。そこで鍵管理に関して、セキュリティレベルを低下させることなく、より効率的な管理方法に関する研究が行われている。従来の管理方法のいくつかに関して説明を行う。
【０００４】
［木構造管理方式］
木構造管理方式はＤＶＤプレイヤーなどのオフラインでのコンテンツ再生機器において利用されており、ユーザの無効化を行うのに適している。この方式では、暗号化データを正当なユーザのみが復号できるように、暗号化に用いた鍵情報と暗号化コンテンツと同時に配信、もしくはメディアに格納しておく。各ユーザに対して適切な組み合わせで鍵情報を事前に配布しておく必要があるが、木構造を用いることで膨大なユーザ鍵情報を効率的に管理することができる。
【０００５】
この管理方式においては、方式の良し悪しを決定するにあたり次のような指標が存在する。１）コンテンツと同時に配信される鍵情報のデータサイズ、２）ユーザを保持する事前配布された鍵情報のデータサイズ、３）コンテンツプロバイダが管理する必要のある鍵情報のデータサイズの３つの指標がそれにあたる。オンライン型配信サービスの場合にはネットワークトラフィックを左右する１）が重視されるであろうが、コンテンツプロバイダの立場から考えると３）の管理コストが最も重視されることになる。このようにシチュエーションにより指標の重みが変化することに留意しなければならない。
【０００６】
木構造管理方式の代表的なものとしては、コンテンツ配信モデルがある（例えば、非特許文献１を参照）。このモデルにおいては、図１４のような鍵配布用の木構造を用いており各ノードには異なる鍵が配置される。ユーザ鍵（論文中ではＤＶＤなどのプレイヤーが保持する鍵を想定）は末端のノード（葉）と同一視され、ルートから末端ノードまでのすべての鍵データを保持するものと仮定している。本モデルでは更新が頻繁に起きることを想定しており、このように配置することで鍵無効化の効率を改良している。
【０００７】
［階層的鍵管理方式］
一方、階層的鍵管理方式で想定している鍵管理は各ノードに鍵が配置されている点では同様であるが、ユーザは末端ノードだけでなく、ルートを含めたすべてのノードに位置する鍵が配布される点が大きく異なる（例えば、非特許文献２、３を参照）。
【０００８】
また、図１４のようなｎ分木の構造ではなく、図１５や図１６のようなアクセス構造を想定しており、局所的に見ると図１７のような関係になっている箇所が見受けられる。この場合、ノードｎ１に配置されている鍵とノードｎ２に配置されているの両者からノードｎ３の持つべき鍵を生成できるような仕組みが提供されていなければならない。Ｂｉｒｇｅｔらの論文によれば、この仕組みを提供する方式として次の２つの方法が提案されている。
【０００９】
［（１）Ｕｓｅｒ  ｍｕｌｔｉｐｌｅ  ｋｅｙｉｎｇ］
各ノードが複数の鍵を保持する方式であり、親ノードは子ノードのすべての鍵を保持するように構成されている。図１８はその１例であり、各ノードに配布される鍵データの集合が記載されている。例えば｛ｋ５｝が配布されているノードの親ノードには鍵データｋ５が含まれていることがわかる。同様に他のノードにおいても親ノードには子ノードの鍵データがすべて含まれていることがわかる。
【００１０】
［（２）Ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ  ｂａｓｅｄ  ｋｅｙｉｎｇ  ｓｃｈｅｍｅｓ］Ｌｉｎらの提案を拡張させた方式であり、一方向性ハッシュ関数を用いることで、各ノードが保持する鍵情報を削減することができる。但し、図１７のように複数の親ノードの鍵データから子ノードの鍵データを生成する際には、次のような操作が必要である。この操作を図１９を用いて説明する。
【００１１】
図１９において、鍵データｋ１またはｋ２からｋ３を生成するには
ｋ３：＝Ｆ（ｋ１，ｎ３）ＸＯＲ  ｒ１３
ｋ３：＝Ｆ（ｋ２，ｎ３）ＸＯＲ  ｒ２３
という演算を行う。ここでＸＯＲはビットごとの排他的論理和である。またＦ（）は一方向性ハッシュ関数であり、詳細は後述する。ｎ３は鍵データｋ３が関連付けられたノードの識別子、ｒ１３，ｒ２３はそれぞれ、ノードｎ１（鍵データｋ１）とノードｎ３により関連付けられたランダムデータ、ノードｎ２（鍵データｋ２）とノードｎ３により関連付けられたランダムデータであり、共に公開されているデータである。
【００１２】
関数Ｆ（）はＦ（ｋ＿ｉ，ｎ＿ｊ）＝ｇ＾｛ｋ＿ｉ＋ｎ＿ｊ｝ｍｏｄ  ｐ（ただしｐは素数、ｇは原始元）で構成されており、上記ｒ１２，ｒ１３はＦ（ｋ１，ｎ３）ＸＯＲ  ｒ１３＝Ｆ（ｋ２，ｎ３）ＸＯＲ  ｒ２３を満たすように生成される。
【非特許文献１】「デジタルコンテンツ保護用管理方式」ＳＣＩＳ２００１，ｐｐ．２１３−２１８
【非特許文献２】Ｃ．Ｈ．Ｌｉｎ．“Ｄｙｎａｍｉｃ  ｋｅｙ  ｍａｎａｇｅｍｅｎｔ  ｓｃｈｅｍｅｓ  ｆｏｒ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ  ｉｎ  ａ  ｈｉｅｒａｒｃｈｙ”Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，２０：１３８１−１３８５，１９９７
【非特許文献３】Ｊ．−Ｃ．Ｂｉｒｇｅｔ，Ｘ．Ｚｏｕ，Ｇ．Ｎｏｕｂｉｒ，Ｂ．Ｒａｍａｍｕｒｔｈｙ，“Ｈｉｅｒａｒｃｈｙ−Ｂａｓｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ｉｎ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｅｎｖｉｒｏｎｍｅｎｔｓ”ｉｎ  ｔｈｅ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  ＩＣＣ，Ｊｕｎｅ２００１
【発明の開示】
【発明が解決しようとする課題】
【００１３】
前述したように、階層的鍵管理方式において局所的に親ノードが２つ存在する場合（図１７参照）においては、異なる親ノードから同じ鍵データを生成するための方式がすでに提案されている。しかし１）Ｕｓｅｒ  ｍｕｌｔｉｐｌｅ  ｋｅｙｉｎｇにおいては、各ノードが多くの鍵を持ち合わせていなければならず、階層が深くなるにつれて保持すべき鍵データが等比級数的に増加する問題が存在し、２）Ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ  ｂａｓｅｄ  ｋｅｙｉｎｇ  ｓｃｈｅｍｅｓにおいては、一方向性ハッシュ関数を用いることで各ノードが保持する鍵データ量を減らしているが、ｒ１２，ｒ１３などの公開ランダムデータを別途保持する必要あり、１）と同様に階層が深くなるにつれて保持すべきデータが増加するという問題が存在する。
【００１４】
さらに２）においては一方向性ハッシュ関数にべき乗演算が用いられている。落とし戸付きハッシュ関数による構成も考えられるが、いずれにせよ、べき乗演算が必要な演算が含まれており、計算コストが膨大である。特にＰＤＡなどの演算リソースの少ないデバイスにおいては鍵計算に多くの時間を費やすこととなり、結果としてデータ復号時にインタラクティブな処理ができなくなる可能性がある。
【課題を解決するための手段】
【００１５】
そこで、本発明は上述の問題点に鑑み、より計算量の少ない方式で、同様のアクセス構造を持つ鍵管理方式を安全に構成することを目的とする。
【００１６】
上記課題を解決するために、本発明によれば、鍵情報処理方法に、階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つの個別鍵を生成する鍵生成工程と、前記各要素に対し、当該要素に対する２つの個別鍵を配布する鍵配布工程とを備える。
【００１７】
また、他の態様によれば、鍵情報処理装置に、階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定手段と、前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つ以上の個別鍵を生成する鍵生成手段と、前記各要素に対し、当該要素に対する２つ以上の個別鍵を配布する鍵配布手段とを備える。
【００１８】
また、他の態様によれば、コンピュータにより読み取り可能なプログラムに、階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、前記各要素につき、２つ以上のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する２つ以上の個別鍵を生成する鍵生成工程と、前記各要素に対し、当該要素に対する２つ以上の個別鍵を配布する鍵配布工程とを備える鍵情報処理方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、復号のための複数の鍵を管理する必要があるコンテンツ配信システムやリムーバルメディア制御方式において、鍵生成における計算量の削減により、鍵管理の負荷を軽減させる方式を提供することができるという効果がある。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の好適な実施形態を説明する。
【００２１】
＜第１の実施形態＞
図１は本発明に係る各実施形態を実現する情報処理装置の電気的構成を説明するための図である。なお、本発明の実現にあたって、図１に示される全ての機能を使用することは必須ではない。
【００２２】
情報処理装置１００は、図１に示すように、公衆回線等のモデム１１８、表示部としてのモニタ１０２、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、ＨＤ（ハードディスク）１０６、ネットワークのネットワーク接続部１０７、ＣＤ１０８、ＦＤ（フレキシブルディスク）１０９、ＤＶＤ（デジタル・ビデオ・ディスク、またはＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）１１０、プリンタ１１５のインターフェース（Ｉ／Ｆ）１１７、及び操作部としてのマウス１１２やキーボード１１３等のインターフェース（Ｉ／Ｆ）１１１が、バス１１６を介して互いに通信可能に接続されて構成されている。
【００２３】
マウス１１２及びキーボード１１３は、情報処理装置１００に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報（操作情報）は、インターフェース１１１を介して、情報処理装置１００内に取り込まれる。
【００２４】
情報処理装置１００での各種情報（文字情報や画像情報等）は、プリンタ１１５により印刷出力できるようになされている。
【００２５】
モニタ１０２は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
【００２６】
ＣＰＵ１０３は、情報処理装置１００全体の動作制御を司るものであり、ＨＤ（ハードディスク）１０６等から処理プログラム（ソフトウェアプログラム）を読み出して実行することで、情報処理装置１００全体を制御する。特に、本実施の形態では、ＣＰＵ１０３は、ＨＤ１０６等から、鍵生成を実現する処理プログラムを読み出して実行することで、後述する情報処理を実施する。
【００２７】
ＲＯＭ１０４は、鍵生成のための処理プログラムや、プログラム内で用いられる各種データ（鍵生成用グラフなど）等を記憶する。
【００２８】
ＲＡＭ１０５は、ＣＰＵ１０３での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
【００２９】
ＨＤ１０６は、大容量記憶装置の一例としての構成要素であり、各種データ、あるいは各種処理の実行時にＲＡＭ１０５等へ転送される情報変換処理等のための処理プログラム等を保存する。
【００３０】
ＣＤ（ＣＤドライブ）１０８は、外部記憶媒体の一例としてのＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み、また、当該ＣＤへデータを書き出す機能を有する。
【００３１】
ＦＤ（フロッピー（Ｒ）ディスクドライブ）１０９は、ＣＤ１０８と同様に、外部記憶媒体の一例としてのＦＤ１０９に記憶されたデータを読み出す。また、種々のデータを上記ＦＤ１０９へ書き込む機能を有している。
【００３２】
ＤＶＤ（デジタル・ビデオ・ディスク）１１０は、ＣＤ１０８やＦＤ１０９と同様に、外部記憶媒体の一例としてのＤＶＤ１１０に記憶されたデータを読み出し、また、上記ＤＶＤ１１０へデータを書き込む機能を有している。
【００３３】
なお、ＣＤ１０８、ＦＤ１０９、ＤＶＤ１１０等の外部記憶媒体に対して、例えば、編集用のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラムをＨＤ１０６へインストールしておき、必要に応じて、ＲＡＭ１０５へ転送するように構成してもよい。
【００３４】
インターフェース（Ｉ／Ｆ）１１１は、マウス１１２或いはキーボード１１３によるユーザからの入力を受け付けるためのものである。
【００３５】
モデム１１８は、通信モデムであり、インターフェース（Ｉ／Ｆ）１１９を介して、例えば、公衆回線等を通じて外部のネットワークに接続される。
【００３６】
ネットワーク接続部１０７は、インターフェース（Ｉ／Ｆ）１１４を介して、外部のネットワークに接続される。
【００３７】
以下、上述した装置による鍵の生成・管理について説明する。
【００３８】
［鍵生成概要］
まず、階層的鍵管理方式における各ノードの個別鍵の生成に関する説明から行う。
【００３９】
尚、以降では、便宜上、図２に示すように、階層的鍵管理方式における木構造を行列と置き換えて説明する。図２の（Ａ）は、７つの階層から構成され、１６個のノードを有する木構造の例を示す。また、図２の（Ｂ）は、図２の（Ａ）に示した木構造を行列に置き換えた例を示す。図２の（Ａ）の各ノードに記された数字と、図２の（Ｂ）の各セルに記された数字は、同じ対応関係であることを示す。
【００４０】
まず、図２の（Ａ）に示したような木構造において、ルートノード（図中、”０”で示されるノード）を行列における一番右上のセルに対応付ける。そして、木構造における各ノードの子ノードのうち左に位置するノード、及び右に位置するノードを、夫々、行列のセルの左のセル、及び下のセルに対応付ける。この対応付けを全てのノード、及びセルに対して順に行うことにより、図２の（Ａ）に示した木構造は図２の（Ｂ）に示した行列に置き換えることができる。
【００４１】
次に、本実施形態における鍵生成について説明する。鍵生成は、図３及び４に示される鍵生成用行列、及びグラフに従って行われる。
【００４２】
各要素、及びノードごとの個別鍵は、木構造において、全ノードに共通した２つのオリジナル鍵からハッシュ関数を施して得られるタイプＡ鍵と、葉ノード（子ノードを有さないノード）以外のノードのみ得られるタイプＢ鍵の２つの種類に分けられる。
【００４３】
また、木構造においては、同階層に存在するノードの集合として「ランク」と呼ばれるグループを便宜上定義する。ルートノードをランク１とし、ランク番号は階層を経るごとに１ずつ増加することとする（図２の（Ａ）参照）。
【００４４】
更に、行列においては、各セルの座標を示すために、最も右上の要素が原点（０，０）、そして水平左方向にｘ座標が増加し、垂直下方向にｙ座標が増加するような座標軸を定義する。この定義によれば、例えば、図２の（Ｂ）の”４”と記されている要素の座標は（１，１）、また”１４”と記されている要素の座標は（２，３）と表現される（図２の（Ｂ）参照）。
【００４５】
また、以降の説明では、行列の水平方向のセル数をＮｘ、垂直方向のセル数をＮｙとする。
【００４６】
［タイプＡ鍵］
タイプＡ鍵の例として図３の（Ａ）及び図４の（Ａ）を用いて説明する。図３の（Ａ）はＮｘ＝４、Ｎｙ＝４であるタイプＡ鍵の行列、そして図４の（Ａ）はＮｘ＝５，Ｎｙ＝５であるタイプＡ鍵の行列の例を示す。すべてのタイプＡ鍵が生成される元となる２つのオリジナル鍵をそれぞれｘ，ｙとする。図３の（Ａ）及び図４の（Ａ）においてそれぞれのセルに記載されている２つの数字はｘ，ｙに対して施すハッシュ関数の回数が表現されている。例えば［１，４］と記されているセルでは、タイプＡ鍵としてＨ（ｘ）とＨ（Ｈ（Ｈ（Ｈ（ｙ））））を保持するとする。今後ハッシュ演算をｎ度施す場合にはＨ＾ｎ（）と略記して表現するものとする。この表記法に基づけば、［１，４］と記されているセルはＨ（ｘ）とＨ＾４（ｙ）の２つのタイプＡ鍵を持つこととなる。
【００４７】
［タイプＢ鍵］
タイプＢ鍵の例として図３の（Ｂ）及び図４の（Ｂ）を用いて説明する。図３の（Ｂ）及び図４の（Ｂ）は、それぞれ図３の（Ａ）及び図４の（Ａ）と同じサイズの行列を持っていることに注意する。行列における、最下行、及び最左列ではこれらの鍵は存在しない。鍵が存在しないことを示すために、以下では記号’Ｎ’を用いるものとする。また、最左列、最右列、最下行、及び最上行以外のセルには、サイズがＮｘ−２、及びＮｙ−２であるタイプＡ鍵の値がそのまま適応される。更に、これら以外の最上行のセルにはそのひとつ下のセルの値、そして最右行のセルにはその一つ左のセルの値が、夫々そのまま適応される。
【００４８】
すべてのタイプＡ鍵が生成される元となる２つのオリジナル鍵をそれぞれｕ，ｖとする。タイプＡ鍵と同様に、図３の（Ｂ）、及び図４の（Ｂ）において夫々のセルに付加されている２つの数字はｕ，ｖに対して施すハッシュ関数の回数が表現されている。
【００４９】
更に、図４の（Ｃ）に示したように、タイプＢ鍵の行列のサイズのうち大きい方のサイズが５以上である場合には、図４の（Ｃ）に示すようにサイズがＮｘ−２，及びＮｙ−２である融合鍵が適応される。融合鍵についての詳細は後述する。
【００５０】
［融合鍵］
本実施形態では、以上説明したようなタイプＡ鍵、及びタイプＢ鍵を融合して用いる。以降では、タイプＡ鍵、及びタイプＢ鍵を融合した鍵を融合鍵と呼ぶ。図５に、図３に示したようなＮｘ＝４、Ｎｙ＝４である場合の融合鍵の行列（図５（Ａ））を示す。図５に示すように、同じセルに位置するタイプＡ鍵、及びタイプＢ鍵が融合され、対応する融合鍵が生成される。例えば、図５（Ａ）において、セル（１，２）は、Ｈ＾５（ｘ）、Ｈ＾４（ｙ）、Ｈ＾２（ｕ）、及びＨ（ｖ）という融合鍵を保持することを意味する。
【００５１】
尚、前述したように、以上説明したような本実施形態における鍵行列は、木構造としても表現できる。図５（Ａ）に示した行列を木構造で表現した場合の例を、図５（Ｂ）に示す。
【００５２】
［鍵生成用グラフの生成方法］
次に、図６を用いて、本実施形態における融合鍵を生成する処理方法について説明する。
【００５３】
図６に示すように、まず、ステップＳ６０１は、融合鍵行列の水平方向、及び垂直方向のセル数を示す変数Ｎｘ，及びＮｙを初期化する。これは、アクセス制御を行う対象の数に応じて適当な値を設定するようにすればよい。例えば、６つの解像度と５つの画質を有する画像データに対して、解像度、及び画質に応じたアクセス制御を行うような場合には、Ｎｘ＝６、及びＮｙ＝５のように設定する。しかしながら、本発明はこれに限定されることなく、種々のアクセス制御に対して適応可能である。更に、処理レベルを示す変数ＰＬが０に初期化される。
【００５４】
次に、ステップＳ６０２は、融合鍵行列の各セルに格納される要素の数を初期化する。本実施形態においては、後述する融合鍵生成処理により生成される一つのセルに格納されるべき融合鍵の数が要素数として設定される。本実施形態における融合鍵生成処理においては、ひとつのセルに対してＭｉｎ（Ｎｘ，Ｎｙ）個の融合鍵が生成されるため、要素数をＭｉｎ（Ｎｘ，Ｎｙ）に設定する。尚、Ｍｉｎ（ａ，ｂ）はａ，及びｂのうち小さな値を選択する演算である。例えば、前述したようにＮｘ＝６，及びＮｙ＝５であるような場合は、一つのセルに格納される要素数を５に初期化する。
【００５５】
ステップＳ６０３は、処理レベルＰＬにおけるサイズＮｘ＊Ｎｙの融合鍵行列を生成する。本実施形態における融合鍵生成処理についての詳細は後述する。
【００５６】
そして、ステップＳ６０４は、生成された夫々の処理レベルＰＬにおける融合鍵をひとつの融合鍵行列に融合する。本実施形態においては、処理レベルＰＬ＝０のタイプＡ鍵と処理レベルＰＬ＝０のタイプＢ鍵を融合し、更に、それ以降の（処理レベルＰＬ１以上の）全ての生成されたタイプＢ鍵を融合する。
【００５７】
以上、本実施形態における融合鍵を生成する処理方法について説明した。
【００５８】
次に、本実施形態における融合鍵生成処理について図７を用いて説明する。図７は、本実施形態における融合鍵生成処理を説明するフローチャートである。
【００５９】
図７に示すように、まず、ステップＳ７０１はＭａｘ（Ｎｘ，Ｎｙ）が２以下であるか否かを判定する。尚、Ｍａｘ（ａ，ｂ）はａ，及びｂのうち大きな値を選択する演算子である。値が２以下である場合には処理をステップＳ７０２に進める。さもなければ、処理をステップＳ７０３に進める。
【００６０】
ステップＳ７０２は、処理レベルＰＬにおけるサイズＮｘ＊ＮｙのタイプＡ鍵行列を生成し、タイプＡ鍵行列を生成した後、融合鍵生成処理を終了する。
【００６１】
一方、ステップＳ７０３は、処理レベルＰＬ＋１におけるサイズ（Ｎｘ−２）＊（Ｎｙ−２）の融合鍵行列を生成する。更に、融合鍵行列を生成した後、ステップＳ７０４は、処理レベルＰＬにおけるＮｘ＊ＮｙのタイプＢ鍵行列を生成し、融合鍵生成処理を終了する。
【００６２】
以上説明したように、本実施形態においては、処理レベルＰＬにおけるサイズＮｘ＊Ｎｙの融合鍵行列を生成するために、処理レベルＰＬにおけるサイズ（Ｎｘ−２）＊（Ｎｙ−２）である融合鍵行列が再帰的に生成される。即ち、よりサイズの小さな融合鍵行列を用いて、より大きな融合鍵行列が順に生成される。
【００６３】
次に、タイプＡ鍵の行列の生成方法について図８のフローチャートを用いて説明する。
【００６４】
まず、ステップＳ８０１は、変数ｉ、及びｊを０に設定する。変数ｉ、及びｊは夫々行列の水平方向、及び垂直方向の座標を示すインデックスである。
【００６５】
そして、ステップＳ８０２は変数Ｎｙの値を評価する。もしＮｙが１であれば処理をステップＳ８１４に進める。さもなければ、処理をステップＳ８０３に進める。
【００６６】
ステップＳ８０３は変数ｊの値を評価する。もしｊが０であれば処理をステップＳ８０４に進める。さもなければ、処理をステップＳ８０５に進める。そして、ステップＳ８０４は、セル（ｉ，ｊ）のｘ鍵ｘ＿（ｉ，ｊ）に値ｉを代入する。一方、ステップＳ８０５は、セル（ｉ，ｊ）のｘ鍵ｘ＿（ｉ，ｊ）に値Ｎｘ＋ｊ−１を代入する。その後、処理をステップＳ８１４に進める。
【００６７】
ステップＳ８１４は変数Ｎｘの値を評価する。もしＮｘが１であれば処理をステップＳ８０９に進める。さもなければ、処理をステップＳ８０６に進める。
【００６８】
ステップＳ８０６は変数ｉの値を評価する。もしｉが０であれば処理をステップＳ８０７に進める。さもなければ、処理をステップＳ８０８に進める。そして、ステップＳ８０７は、セル（ｉ，ｊ）のｙ鍵ｙ＿（ｉ，ｊ）に値ｊを代入する。一方、ステップＳ８０８は、セル（ｉ，ｊ）のｙ鍵ｙ＿（ｉ，ｊ）に値Ｎｙ＋ｉ−１を代入する。その後、処理をステップＳ８０９に進める。
【００６９】
ステップＳ８０９は変数ｉを１だけ増やし、処理をステップＳ８１０に進める。そして、ステップＳ８１０において変数ｉの値が評価される。もしｉがＮｘより小さい場合には処理をステップＳ８０３に進める。さもなければ、処理をステップＳ８１３に進め、変数ｉを０に初期化した後、処理をステップＳ８１１に進める。
【００７０】
ステップＳ８１１は変数ｊを１だけ増やし、処理をステップＳ８１２に進める。そして、ステップＳ８１２において変数ｊの値が評価される。もしｊがＮｙより小さい場合には処理をステップＳ８０３に進める。さもなければ、タイプＡ鍵生成処理を終了する。
【００７１】
以上、本実施形態におけるタイプＡ鍵の行列の生成方法について説明した。以上説明したような方法により、Ｎｘ＝４、Ｎｙ＝４の場合、図３の（Ａ）に記載したタイプＡ鍵の行列を生成することができる。また、Ｎｘ＝５，Ｎｙ＝５の場合には、同様に図４の（Ａ）に記載したタイプＡ鍵の行列を生成することができる。
【００７２】
次に、タイプＢ鍵の行列の生成方法について図９のフローチャートを用いて説明する。まず、ステップＳ９０２は、変数ｉ、及びｊを０に設定する。変数ｉ、及びｊは夫々行列の水平方向、及び垂直方向の座標を示すインデックスである。
【００７３】
そして、ステップＳ９０３は変数ｉ，及びｊの値を評価する。もしｉ，及びｊが共に０である場合には、処理をステップＳ９０４に進める。さもなければ、処理をステップＳ９０５に進める。ステップＳ９０４では、セル（ｉ，ｊ）のｕ鍵ｕ＿（ｉ，ｊ）、及びセル（ｉ，ｊ）のｖ鍵ｖ＿（ｉ，ｊ）に共に０を代入する。その後、処理をステップＳ９１１に進める。尚、Ｎｘ＝３の場合はｕ鍵ｕ＿（ｉ，ｊ）は生成せず、Ｎｙ＝３の場合は、ｖ鍵ｖ＿（ｉ，ｊ）は生成しない。
【００７４】
ステップＳ９０５は変数ｉ，及びｊの値を評価する。もしｉがＮｘ−１、或いはｊがＮｙ−１に等しければ、処理をステップＳ９０６に進める。さもなければ、処理をステップＳ９０７に進める。ステップＳ９０６は、セル（ｉ，ｊ）のｕ鍵ｕ＿（ｉ，ｊ）、及びセル（ｉ，ｊ）のｖ鍵ｖ＿（ｉ，ｊ）に共に’Ｎ’を代入する。尚、前述したように’Ｎ’は鍵を設定しないことを示す符号である。その後、処理をステップＳ９１１に進める。尚、Ｎｘ＝３の場合はｕ鍵ｕ＿（ｉ，ｊ）は生成せず、Ｎｙ＝３の場合は、ｖ鍵ｖ＿（ｉ，ｊ）は生成しない。
【００７５】
ステップＳ９０７は変数ｉの値を評価する。もしｉが０なら、処理をステップＳ９０８に進める。さもなければ、処理をステップＳ９０９に進める。ステップＳ９０８は、セル（ｉ，ｊ）のｕ鍵ｕ＿（ｉ，ｊ）にｕ’＿（０，ｊ−１）を、また、セル（ｉ，ｊ）のｖ鍵ｖ＿（ｉ，ｊ）にｖ’＿（０，ｊ−１）を代入する。ここで、ｕ’、及びｖ’は処理レベルがＰＬ＋１、即ち、行列のサイズが（Ｎｘ−２）＊（Ｎｙ−２）であるタイプＡ鍵を表している。処理レベルがＰＬ＋１であるタイプＡ鍵は、タイプＢ鍵生成処理（図７におけるステップＳ７０４）の前段において、融合鍵生成処理（図７におけるステップＳ７０３）中で予め生成されている。その後、処理をステップＳ９１１に進める。尚、Ｎｘ＝３の場合はｕ鍵ｕ＿（ｉ，ｊ）は生成せず、Ｎｙ＝３の場合は、ｖ鍵ｖ＿（ｉ，ｊ）は生成しない。
【００７６】
ステップＳ９０９は変数ｊの値を評価する。もしｊが０なら、処理をステップＳ９１０に進める。さもなければ処理をステップＳ９１５に進める。ステップＳ９１０は、セル（ｉ，ｊ）のｕ鍵ｕ＿（ｉ，ｊ）にｕ’＿（ｉ−１，０）を、また、セル（ｉ，ｊ）のｖ鍵ｖ＿（ｉ，ｊ）にｖ’＿（ｉ−１，０）を代入する。一方、ステップＳ９１５は、（ｉ，ｊ）のｕ鍵ｕ＿（ｉ，ｊ）にｕ’＿（ｉ−１，ｊ−１）を、また、セル（ｉ，ｊ）のｖ鍵ｖ＿（ｉ，ｊ）にｖ’＿（ｉ−１，ｊ−１）を代入する。その後、処理をステップＳ９１１に進める。尚、Ｎｘ＝３の場合はｕ鍵ｕ＿（ｉ，ｊ）は生成せず、Ｎｙ＝３の場合は、ｖ鍵ｖ＿（ｉ，ｊ）は生成しない。
【００７７】
ステップＳ９１１は変数ｉを１だけ増やし、処理をステップＳ９１２に進める。そして、ステップＳ９１２において変数ｉの値が評価される。もしｉがＮｘより小さい場合には処理をステップＳ９０３に進める。さもなければ、処理をステップＳ９１５に進め、変数ｉを０に初期化した後、処理をステップＳ９１３に進める。
【００７８】
ステップＳ９１３は変数ｊを１だけ増やし、処理をステップＳ９１４に進める。そして、ステップＳ９１４において変数ｊの値が評価される。もしｊがＮｙより小さい場合には処理をステップＳ９０３に進める。さもなければ、タイプＢ鍵生成処理を終了する。
【００７９】
以上、本実施形態におけるタイプＢ鍵の行列の生成方法について説明した。以上説明したような方式により、Ｎｘ＝４，Ｎｙ＝４の場合、図３（Ｂ）に記載したタイプＢ鍵の行列を生成することが出来る。また、Ｎｘ＝５，Ｎｙ＝５の場合には、同様に図４（Ａ）に記載したタイプＢ鍵の行列を生成することができる。
【００８０】
［鍵生成の正当性］
上記のグラフ生成方式は次の条件を満たすように生成されている。
・ノードはその孫ノードの鍵だけを生成できること
・子ノードの鍵情報からは（一方向性関数が脆弱にならない限り）親ノードの鍵は生成できないこと
・任意の二つ以上のエンティティが結託しても、夫々のエンティティより上位に位置するノードの鍵は生成できないこと
これらの条件により、安全に鍵生成と鍵配布を行うことができる階層的鍵管理方式が実現できる。
【００８１】
［鍵配布］
ルート鍵配布者（ルートノードのエンティティ）による各ノードへの鍵配布方法と、ルート鍵配布者以外の個別鍵を保持するエンティティによる下位ノードへの鍵配布方法とについて、それぞれ説明する。まずルート鍵配布者は、鍵ｘ，ｙ，ｕ，ｖをランダムに且つ安全に生成し、それらを自身の個別鍵とする。さらに前述した鍵生成手順により各ノードに複数の鍵を配置する。ルート鍵配布者は各ノードに位置するエンティティに対して、各ノードの鍵を安全に配布する。また、図３及び４に示されているような鍵配布グラフを公開し、各エンティティに対して、配布された鍵がグラフのどの位置の鍵であるかを識別できるデータを配布する。このデータは例えば、木構造におけるランク番号と、同一ランク内の何番目かを示すランク内識別番号とにより構成したり、或いは行列における座標により構成したりするようにすれば良い。
【００８２】
次に、ルート鍵配布者以外の個別鍵を保持するエンティティによる鍵配布方法について説明する。個別鍵と鍵配布グラフにおける鍵の位置を示す識別データから、子ノードもしくは、孫ノードに対する鍵データを生成する。例えば図５の（Ａ）において、融合鍵としてｘ’，ｙ’，ｕ’，ｖ’を持ち、これが行列においてセル（１，１）、即ちグラフ上の位置でランク３の２番目であるとすると、［４，４，０，０］に対応する。このエンティティは、セル（２，１）、即ちランク４の２番目にある子ノードに対して、Ｈ＾４（ｘ）＝Ｈ＾０（Ｈ＾４（ｘ））＝ｘ’、Ｈ＾５（ｙ）＝Ｈ＾１（Ｈ＾４（ｙ））＝Ｈ＾１（ｙ’）、Ｈ（ｕ）＝Ｈ＾１（Ｈ＾０（ｕ））＝Ｈ＾１（ｕ’）、及びＨ＾２（ｖ）＝Ｈ＾２（Ｈ＾０（ｖ））＝Ｈ＾２（ｖ’）であるから、セル（２，１）の鍵として、Ｈ＾４（ｘ’）、Ｈ（ｙ’）、Ｈ＾１（ｕ’）、及びＨ＾２（ｖ’）を配布することができる。同様に別の子ノードや孫ノードに対する鍵も生成できることは明らかである。
【００８３】
［情報処理装置における鍵生成・配布処理］
前記情報処理装置１００において以上の鍵生成・配布処理を行う手順について説明する。画像などの管理対象データをＣＤ１０８もしくはネットワークのネットワーク接続部１０７を通して取得しＨＤ１０６に格納するか、もしくはＨＤ１０６に既に格納されているデータの中から選択する。ここで、ユーザはモニタ１０２に表示した一覧からマウス１１２もしくはキーボード１１３などを使って選択する。
【００８４】
管理対象データに対して何階層の階層軸を持たせるかなどのアクセス制御構造を同様の方法を用いてユーザが選択すると、その構造に応じた鍵生成用グラフをＣＰＵ１０３を用いて計算を行い、ＲＡＭ１０５やＨＤ１０６などに格納する。
【００８５】
ＲＯＭ１０４やＲＡＭ１０５やＨＤ１０６もしくはマウス１１２の動作などのデータからランダムデータを生成し、そのランダムデータを用いて、複数のオリジナル鍵を生成し、ＲＡＭ１０５やＨＤ１０６などに格納する。さらに鍵生成用グラフにおける各ノードの個別鍵をオリジナル鍵から演算し、ＲＡＭ１０５やＨＤ１０６などに格納する。
【００８６】
他の情報処理装置に対して、ＲＡＭ１０５やＨＤ１０６などに格納された個別鍵を読み出して、ネットワーク接続部１０７を通じてネットワークを介して配布を行う。
【００８７】
［階層軸ごとに異なるレベル数の階層的アクセス構造］
図３及び４ではＮｘ，及びＮｙが等しい場合の例のみを取り上げた（図３ではＮｘ＝Ｎｙ＝４、図４ではＮｘ＝Ｎｙ＝５あった）が、Ｎｘ，及びＮｙが異なる場合も同様の方法で生成できることを、タイプＡ鍵について図１０の（Ａ）に示し、タイプＢ鍵について図１０の（Ｂ）に示す。図１０では、Ｎｘ＝３，Ｎｙ＝４であるが、図８および図９に記載のフローチャートに基づき正常に処理することができることがわかる。
【００８８】
＜第２の実施形態＞
第１の実施形態における鍵配布方式により生成された階層的な構造を持つ鍵データを用いたアクセス制御の好適例を説明する。図３及び図４で表現されている鍵生成用グラフは２つの階層軸を持っている。このうち１つ（左下方向）を解像度、もう片方（右下方向）を画像領域とした場合の例を図１２に示す。
【００８９】
解像度には高、中、低の３つのレベルがあり、取得できる画像の解像度を示す。画像領域にも３つのレベルがあり、すべての領域、サブ領域Ａ、（サブ領域Ａよりも狭い）サブ領域Ｂ、の閲覧の権限が与えられるとする。このときルートに位置する権限の最も大きいノードには（解像度＝高、画像領域＝すべて）が割り当てられ、最下位のノードには（解像度＝低、画像領域＝領域Ｂ）が割り当てられている。
【００９０】
図１１に則った鍵配布を行う場合を例として、鍵配布方法および画像暗号化方法を説明する。図１１はＮｘ＝３，Ｎｙ＝３である場合のタイプＡ鍵（図１１の（Ａ））、及びタイプＢ鍵（図１１の（Ｂ））の例である。対象画像データＩＭＧは領域Ｂの画像データＩＭＧ１、領域Ａ差分データをＩＭＧ＿２、すべての画像データを得るための差分データをＩＭＧ＿３とする。つまりＩＭＧ＝ＩＭＧ＿１＋ＩＭＧ＿２＋ＩＭＧ＿３である。また、それぞれのＩＭＧ＿ｉは低解像度データをＩＭＧ＿ｉ（Ｌ）、中解像度差分データをＩＭＧ＿ｉ（Ｍ）、高解像度差分データをＩＭＧ＿ｉ（Ｈ）とする。つまりＩＭＧ＿ｉ＝ＩＭＧ＿ｉ（Ｌ）＋ＩＭＧ＿ｉ（Ｍ）＋ＩＭＧ＿ｉ（Ｈ）である。
【００９１】
まずルート鍵配布者はランダムにオリジナル鍵ｘ，ｙ，ｕを生成する。暗号化に使う鍵Ｋｅｙ（＜Ｈｉｇｈ，Ａｌｌ＞）：＝Ｈ（ｘ｜｜ｙ｜｜ｕ）とし、この鍵でＩＭＧ＿３（Ｈ）を暗号化する。ただし｜｜はデータの連結とする。それぞれの子ノードでは取得した３つのデータをルートノードと同様に連結して暗号鍵を生成し、図１３に記載のデータを暗号化する。
【００９２】
例えば、＜Ｍｉｄ，Ａｌｌ＞ノードでは、鍵データとしてＨ（ｘ），Ｈ＾３（ｙ），ｕが与えられているが、暗号鍵Ｋｅｙ（＜Ｍｉｄ，Ａｌｌ＞）：＝Ｈ（Ｈ（ｘ）｜｜Ｈ＾３（ｙ）｜｜ｕ）とし、この鍵でＩＭＧ＿３（Ｍ）を暗号化する。暗号化されたデータを復号する際には、同様の処理を行って暗号鍵を計算し復号処理をして適切な画像データを取得する。
【００９３】
本実施形態では、暗号鍵の生成方式として鍵を連結してハッシュする方式を採用したが、その他の鍵連結方式（複数の鍵データから１つの鍵を計算する方式）に従ってもかまわない。
【００９４】
また、本実施形態では解像度と画像領域を階層軸として取り上げたが、本発明はこれに限定されることなく、画質や時間軸や利用制御情報などアクセス制御の対象とすべき階層の中から、任意の二つ以上の階層を選択して利用することも可能である。
【００９５】
＜ソフトウエアなどによる他の実施の形態＞
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムの一部として適用しても、ひとつの機器（たとえば複写機、ファクシミリ装置）からなるものの一部に適用してもよい。
【００９６】
また、本発明は上記実施の形態を実現するための装置及び方法及び実施の形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上記システムまたは装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に、上記実施の形態を実現するためのソフトウエアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
【００９７】
またこの場合、前記ソフトウエアのプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【００９８】
この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９９】
また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイスを制御することにより、上記実施の形態の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【０１００】
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施の形態が実現される場合も本発明の範疇に含まれる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態に係る処理装置の構成を示すブロック図である。
【図２】第１の実施形態に係る木構造と行列の対応関係を説明する図である。
【図３】第１の実施形態に係る鍵生成用グラフの例を示す図である。
【図４】第１の実施形態に係る鍵生成用グラフの他の例を示す図である。
【図５】第１の実施形態に係る融合鍵を説明する図である。
【図６】第１の実施形態に係る融合鍵を生成するフローチャートである。
【図７】第１の実施形態に係るサイズがＮｘ＊Ｎｙの融合鍵を生成するフローチャートである。
【図８】第１の実施形態に係るタイプＡの鍵を生成する手順を示すフローチャートである。
【図９】第１の実施形態に係るタイプＢの鍵を生成する手順を示すフローチャートである。
【図１０】階層軸ごとにレベル数が異なる鍵生成用グラフの他の例を示す図である。
【図１１】第２の実施形態に係る鍵生成用グラフの例を示す図である。
【図１２】第２の実施形態に係る階層型アクセス構造を説明する概念図である。
【図１３】第２の実施形態に係る各ノードが暗号化すべき画像リストを表わす表である。
【図１４】木構造管理方式における２分木アクセス構造を説明する概念図である。
【図１５】階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
【図１６】階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
【図１７】階層的なアクセス制御方式における局所的構造を説明する概念図である。
【図１８】Ｕｓｅｒ  ｍｕｌｔｉｐｌｅ  ｋｅｙｉｎｇの例を説明する図である。
【図１９】Ｏｎｅ−ｗａｙ  ｆｕｎｃｔｉｏｎ  ｂａｓｅｄ  ｋｅｙｉｎｇ  ｓｃｈｅｍｅｓを説明する図である。
【符号の説明】
【０１０２】
１００  情報処理装置
１０２  モニタ
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ＨＤ
１０７  ネットワーク接続部
１０８  ＣＤドライブ
１０９  ＦＤドライブ
１１０  ＤＶＤドライブ
１１１  インターフェース
１１２  マウス
１１３  キーボード
１１４  インターフェース
１１５  プリンタ
１１６  バス
１１７  インターフェース
１１８  モデム
１１９  インターフェース
【図１】
2005051727.tif 000003
【図２】
2005051727.tif 000004
【図３】
2005051727.tif 000005
【図４】
2005051727.tif 000006
【図５】
2005051727.tif 000007
【図６】
2005051727.tif 000008
【図７】
2005051727.tif 000009
【図８】
2005051727.tif 000010
【図９】
2005051727.tif 000011
【図１０】
2005051727.tif 000012
【図１１】
2005051727.tif 000013
【図１２】
2005051727.tif 000014
【図１３】
2005051727.tif 000015
【図１４】
2005051727.tif 000016
【図１５】
2005051727.tif 000017
【図１６】
2005051727.tif 000018
【図１７】
2005051727.tif 000019
【図１８】
2005051727.tif 000020
【図１９】
2005051727.tif 000021