(57)【要約】【課題】  結託攻撃に対し耐性を確保するとともに、各スケーラビリティの階層にそれぞれ対応した暗号鍵の鍵長を低減させる。【解決手段】  階層性を有するスケーラビリティ(R,L)の最下位階層データに対応する暗号鍵(K2,2)が、マスター鍵として、スケーラビリティ(R)の階層数で分割される。分割鍵(ｅR2,ｅR1,ｅR3)ごとに生成される鍵要素マトリクス(M1〜M3)には、スケーラビリティ(L)の階層性が保持されるよう、一方向性ハッシュ関数を利用したハッシュ演算が繰り返されることにより順次得られた演算データが割り当てられる。鍵要素マトリクス(M1〜M3)間で座標一致している鍵要素を結合させることにより、スケーラビリティ(R,L)の各階層に対応した部分鍵(K1,1〜K2,2)が生成される。【選択図】  図４
2009135871.tif 000002
【特許請求の範囲】
【請求項１】
複数種類（≧２）の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティから選択された第１及び第２スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記第１及び第２スケーラビリティのうち基準スケーラビリティとして設定された第１スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第１スケーラビリティの各階層に対応した分割鍵を生成し、
前記第１及び第２スケーラビリティにおける階層値で座標表現された鍵要素マトリクスを前記第１スケーラビリティの階層ごとに生成するに当たり、前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスについて、少なくとも、該一の分割鍵に対応する第１スケーラビリティにおける階層であって前記第２スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当て、そして、
生成された前記鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、前記第１及び第２スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項２】
前記基準スケーラビリティとして、前記第1及び第２スケーラビリティのうち階層数の少ないスケーラビリティを選択することを特徴とする請求項１記載の暗号鍵生成方法。
【請求項３】
前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスは、該一の分割鍵に対応する第１スケーラビリティにおける階層よりも下位に位置する階層であって前記第２スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる一方、該一の分割鍵に対応する第１スケーラビリティにおける階層よりも上位に位置する階層であって前記第２スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第２スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項１又は２記載の暗号鍵生成方法。
【請求項４】
前記複数種類のスケーラビリティから選択可能な２種類のスケーラビリティの組み合わせ全てについて、該２種類のスケーラビリティにおける階層値で座標表現された部分鍵要素マトリクスを生成し、
前記複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルであって、組み合わされた階層値により、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現する階層テーブルを生成し、
前記階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち２つの階層値及びそのスケーラビリティの種類によって特定される、２種類のスケーラビリティの組み合わせ全てについて生成された前記部分鍵要素マトリクスそれぞれの成分を結合することにより、前記部分鍵要素マトリクスの成分である部分鍵を順次生成していくことを特徴とする請求項１〜３のいずれか一項記載の暗号鍵生成方法。
【請求項５】
複数種類（≧３）の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記複数種類のスケーラビリティから選択された第１及び第２基準スケーラビリティのうち第１基準スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第１基準スケーラビリティの各階層に対応した分割鍵を生成し、
前記複数種類のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、前記複数種類のスケーラビリティのうち前記第１及び第２基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、前記第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく工程であって、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、前記分割鍵のうち一の分割鍵に対応する第１基準スケーラビリティにおける階層であって前記第２基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てていき、そして、
前記他のスケーラビリティそれぞれの各階層について、前記第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項６】
前記他のスケーラビリティそれぞれの各階層について、前記第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスのそれぞれは、対応する前記他のスケーラビリティ及び前記第１基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって前記第２基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第１基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる一方、対応する前記他のスケーラビリティ及び前記第１基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって前記第２基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第２基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項７記載の暗号鍵生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化（暗号化）及び復号化（暗号解除）に利用される暗号鍵の生成に関し、特に、各スケーラビリティにおける階層のデータ単位それぞれに対応した部分暗号鍵を自動生成する技術に関するものである。
【背景技術】
【０００２】
近年、ネットワークを介した情報通信サービスの普及により、不特定多数の相手に対してデータ伝送を行うサービス、例えば、画像（動画像の一フレームデータを含む）などディジタルコンテンツの配信サービスも多くなっている。それに伴い、ディジタルデータの保護技術もより高度な機能が求められている。
【０００３】
一般に、符号化されたディジタル画像などは、符号化時に決定された品質（歪、解像度、色表現など）で復号される。しかしながら、通信路の多様化、通信端末の多様化、配信サービスの多様化などにより、符号化列の一部を復号することで符号化時に決定された品質とは異なる品質の画像を復号できること、すなわち、スケーラビリティが求められている。このスケーラビリティに対する要求を受け、例えば画像圧縮の国際標準であるJPEG2000（Joint Photographic Experts Group 2000）では、解像度等の尺度で、階層化されたスケーラビリティを提供している。また、このように品質の異なるデータを階層的に保護する保護技術では、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに、個別の部分鍵を用いて暗号化するのが一般的である。
【０００４】
なお、このようなディジタルデータの保護技術として、例えば、特許文献１〜２や非特許文献１〜３が知られている。
【０００５】
非特許文献１は、階層的スケーラビリティを有するディジタルデータに対し、一方向性ハッシュ関数を利用することで一つのマスター鍵から下位階層のデータ単位に対応する部分鍵を生成する技術が開示されている。また、非特許文献２には、非特許文献１の課題である、ストリーミングデータの順序に依存しない技術が開示されている。さらに、上記非特許文献３には、非特許文献１の課題である結託攻撃への耐性を向上させる技術が開示されている。
【０００６】
なお、結託攻撃とは、各スケーラビリティごとに異なる階層レベルに対応した複数種類の暗号鍵を複数のユーザ間で共有することで、予め許諾された品質よりも高い品質での画像再生を実現する行為をいう。
【特許文献１】特開２００４−３１２７４０号公報
【特許文献２】特開２００３−２０４３２１号公報
【非特許文献１】Y.Wu, D.Ma, and R.H.Deng, “Progressive protection of JPEG 2000 condestreams.” In Proc. IEEE ICIP,pp.3447-3450, 2004
【非特許文献２】M.Fuhiyoshi, S.Imaizumi, and H.Kiya, “Encryption of compositemultimedia contents for access control,” IEICE Trans. Fundamentals, Vol. E90-A,No. 3, pp.590-596, March 2007
【非特許文献３】今泉祥子，藤吉正明，安部淑人，貴家仁志,“結託攻撃耐性を有するJPEG2000符号化画像の階層的暗号化方法”信学SIPシンポジウム，２００６
【発明の開示】
【発明が解決しようとする課題】
【０００７】
発明者らは、従来のデータ保護技術について詳細に検討した結果、以下のような課題を発見した。すなわち、品質の異なるディジタルデータを階層的に保護する場合、スケーラビリティの種類ごとに別々に管理するか、あるいは、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに個別の暗号鍵（部分鍵）を用いて暗号化することになる。
【０００８】
特に、データ単位に生成された個別の部分鍵を管理する場合、階層数が増えるに従って、管理対象となる鍵の数が増加するだけでなく、結託耐性を維持するため、十分な鍵長を確保しなければならず、各スケーラビリティにおける階層増加に伴って、総鍵長が著しく多くなってしまう。
【０００９】
逆に、１つのマスター鍵から各データ単位に対応した部分鍵を生成していく場合、部分鍵の数だけマスター鍵を分割していく必要があるため、非特許文献３のように、部分鍵数が増加すると、それぞれ生成される部分鍵の長さが短くせざるを得ない。この場合、十分な結託耐性は保証され得なくなる。
【００１０】
この発明は上述のような課題を解決するためになされたものであり、階層的スケーラビリティを有するディジタルデータへの結託攻撃に対し十分な耐性を確保するとともに、各スケーラビリティの階層にそれぞれ対応した暗号鍵の鍵長を飛躍的に低減させる暗号鍵生成方法を提供することを目的としている。
【課題を解決するための手段】
【００１１】
この発明に係る暗号鍵生成方法は、複数種類（≧２）の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。当該暗号鍵生成方法は、画像圧縮の国際標準であるＪＰＥＧ２０００のパケット符号化列などのマルチメディアを使用する画像伝送システムやテレビ会議システムの他、ストリーミング配信サービスへの応用が可能である。また、当該暗号鍵生成方法は、マスター鍵から従属的により上位に位置する階層の部分鍵を生成していき、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。
【００１２】
具体的に、この発明に係る暗号鍵生成方法は、最小処理単位として、選択された２種類のスケーラビリティそれぞれにおける階層のデータ単位に対応する部分鍵を生成する。当該暗号鍵生成方法は、マスター鍵の設定、マスター鍵から分割鍵の生成、分割鍵それぞれに対応した鍵要素マトリクスの生成、生成された鍵要素マトリクスの成分結合による部分鍵の生成を行う。鍵要素マトリクスは、一方のスケーラビリティの階層ごとに、それぞれの階層に対応した分割鍵に基づいて生成される。また、各鍵要素マトリクスは、２種類のスケーラビリティそれぞれの階層値（階層レベルに相当）により各成分座標が規定され、これにより、各マトリクス成分は、２種類のスケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、当該暗号鍵生成方法は、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵をそれぞれ生成することを特徴としている。したがって、暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、例えばマルチメディア配信サービスなどでは開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。このような場合、与えられた復号鍵自体が当該暗号鍵生成方法におけるマスター鍵となり、このマスター鍵に対応した各スケーラビリティの階層がそれぞれ最下位階層である。
【００１３】
まず、用意されるマスター鍵としては、符号化対象であるディジタルデータが有する複数種類のスケーラビリティから選択された第１及び第２スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵が設定される。逆に、配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする。このマスター鍵は、第１及び第２スケーラビリティのうち基準スケーラビリティとして設定された第１スケーラビリティの階層数で分割され、該第１スケーラビリティの各階層に対応した分割鍵が生成される。
【００１４】
分割鍵に基づいてそれぞれ生成される鍵要素マトリクスは、第１及び第２スケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、得られた分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスの生成では、少なくとも、該一の分割鍵に対応する第１スケーラビリティにおける階層であって第２スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てられる。これにより、第２スケーラビリティの階層性が維持される。
【００１５】
続いて、分割鍵ごとに生成された鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、第１及び第２スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。この構成により、第１スケーラビリティの階層性も維持される。
【００１６】
なお、この発明に係る暗号鍵生成方法において、上述の基準スケーラビリティとして、第1及び第２スケーラビリティのうち階層数の少ないスケーラビリティが選択されるのが好ましい。この場合、一部のスケーラビリティの階層数増加の影響を受けにくくなる。
【００１７】
また、分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスにおいて、該一の分割鍵に対応する第１スケーラビリティにおける階層よりも下位に位置する階層であって第２スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分には、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる。一方、該一の分割鍵に対応する第１スケーラビリティにおける階層よりも上位に位置する階層であって第２スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第２スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【００１８】
以上のように、この発明に係る暗号鍵生成方法は、プログレッション順序に応じて複数の符号化列とマスター鍵を用意しなければならない従来の暗号鍵生成方法とは異なり、符号化列のプログレッション順序の制限は受けない。また、この発明に係る暗号鍵生成方法は、マスター鍵から従属的に各データ単位に対応した暗号鍵（部分鍵）を生成し、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。これにより、符号化列及び管理する暗号鍵（マスター鍵）の情報量は飛躍的に低減され、ディジタルコンテンツや暗号鍵の管理、配信における安全性を効果的に向上させることが可能になる。
【００１９】
さらに、この発明に係る暗号鍵生成方法は、符号化対象であるディジタルデータが３種類以上のスケーラビリティを有する場合、これら３種類以上のスケーラビリティから２種類のスケーラビリティを選択し、選択された２種類のスケーラビリティの組み合わせ全てについて、上述の最小処理単位を実行することにより部分鍵が生成される。
【００２０】
すなわち、２種類のスケーラビリティの組み合わせ全てについて、組み合わせごとに部分鍵要素マトリクスが生成される。その際、複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルも生成される。この階層テーブルは、階層値の組み合わせにより、複数種類のスケーラビリティにおける階層値それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現している。また、この階層テーブルは、スケーラビリティの種類と階層値の対応関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスの成分を特定することができる。
【００２１】
そこで、この発明では、階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち２つの階層値及びそのスケーラビリティの種類によって特定される、２種類のスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスそれぞれの成分を結合していく。このように階層値の組み合わせごとに結合された要素は、そのまま部分鍵要素マトリクスの成分である。したがって、部分鍵要素マトリクスそれぞれから階層テーブルによって対応付けられた各成分を結合していくことにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が順次生成されることになる。
【００２２】
３種類以上のスケーラビリティの階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵の生成において、上述の暗号鍵生成方法よりもさらに結託攻撃への耐性を向上させることも可能である。
【００２３】
具体的には、３種類以上のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意する（配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする）。このとき、３種類以上のスケーラビリティから第１及び第２基準スケーラビリティも選択される。第１基準スケーラビリティは、用意されたマスター鍵から分割鍵を生成するためのスケーラビリティであり、この第１基準スケーラビリティの階層数で用意されたマスター鍵を分割することにより、該第１基準スケーラビリティの各階層に対応した分割鍵が生成される。一方、第２基準スケーラビリティは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。
【００２４】
当該暗号鍵生成方法では、３種類以上のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、これら３種類以上のスケーラビリティのうち第１及び第２基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく。そのため、スケーラビリティ数をＳ、各スケーラビリティの階層数ＮＫ（Ｋ＝１，２，３，…，ｉ−１，ｉ）を小さいほうから順にＮ１，Ｎ２，…、Ｎｉ−１，Ｎｉで表すと、以下の数式（１）で与えられる総パケット数に対して、当該暗号鍵生成方法において生成される多次元鍵要素マトリックスの数は、以下の数式（２）になる。
【数１】
2009135871.tif 000003
【数２】
2009135871.tif 000004
【００２５】
具体的には、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、生成された分割鍵のうち一の分割鍵に対応する第１基準スケーラビリティにおける階層であって第２基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てらあれる。これにより、得られる多次元鍵要素マトリックスにおいて、少なくとも第２基準スケーラビリティの階層性が維持される。
【００２６】
続いて、第１及び第２基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。すなわち、得られた多次元鍵要素マトリックスは、第１及び第２基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第１基準スケーラビリティの階層ごとに生成されるため、得られた多次元鍵要素マトリックスから最終的に生成される部分鍵マトリックスでは、該第１基準スケーラビリティの階層性も維持される。
【００２７】
なお、第１及び第２スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、第１基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスのそれぞれは、対応する該他のスケーラビリティ及び第１基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって第２基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第１基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる。一方、対応する他のスケーラビリティ及び第１基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって第２基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第２基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【００２８】
なお、この発明に係る各実施例は、以下の詳細な説明及び添付図面によりさらに十分に理解可能となる。これら実施例は単に例示のために示されるものであって、この発明を限定するものと考えるべきではない。
【００２９】
また、この発明のさらなる応用範囲は、以下の詳細な説明から明らかになる。しかしながら、詳細な説明及び特定の事例はこの発明の好適な実施例を示すものではあるが、例示のためにのみ示されているものであって、この発明の思想及び範囲における様々な変形および改良はこの詳細な説明から当業者には自明であることは明らかである。
【発明の効果】
【００３０】
上述のようにこの発明によれば、マスター鍵から一方向性ハッシュ関数を利用して従属的に上位に位置する階層の部分鍵が生成されていくため、スケーラビリティそれぞれの階層レベルで特定される一つのデータ単位に対応する部分鍵は、いずれかのスケーラビリティの階層が上位に位置するデータ単位に対応する部分鍵からは生成できない。したがって、結託攻撃を防ぐことが可能になる。また、アクセス制御対象となるスケーラビリティを２種類のスケーラビリティの組み合わせごとに部分鍵を生成していくため、生成される部分鍵の鍵長を低減させることが可能になる。
【発明を実施するための最良の形態】
【００３１】
以下、この発明に係る暗号鍵生成方法の各実施形態を、図１〜図２０を参照しながら詳細に説明する。なお、図の説明において同一部位、同一要素には同一符号を付して重複する説明を省略する。
【００３２】
この発明に係る暗号鍵生成方法は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。また、各実施形態では、簡単のため、階層的スケーラビリティを有するディジタルデータの具体例として、画像圧縮の国際標準であるＪＰＥＧ２０００の各パケット符号列に対応する部分鍵生成について説明する。なお、ＪＰＥＧ２０００はスケーラビリティの種類に対して優先順位を与えることが可能である。符号化列においてこの順位は、データ単位であるパケットの構成順序(プログレッション順序)として表現される。このプログレッション順序を決定する要素としては、レイヤ（Ｌ）、解像度レベル（Ｒ）、コンポーネント（Ｃ）及びポジション（Ｐ）の４種類のスケーラビリティがある。
【００３３】
図１は、複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図であって、ＪＰＥＧ２０００のスケーラビリティのうちアクセス制御対象となるスケーラビリティを、レイヤ（Ｌ）及び解像度レベル（Ｒ）のみに制限したときの（濃淡画像の場合）、ＪＰＥＧ２０００におけるパケット符号化列の復号パターンを示す。具体的に、図１において、レイヤ（スケーラビリティＬ）の階層数ＮＬは３、解像度レベル（スケーラビリティＲ）の階層数ＮＲは３である。なお、レイヤは、画質レイヤとも言われ、画像再生時におけるＳＮＲ（Signal/Noise Ratio）に対応した、ディジタル画像の算術符号化データを意味する。画質への影響が高い情報ほど高位のレイヤに含まれるため、上位レイヤのデータに対して下位レイヤのデータを追加していくことで段階的に再生画像の品質を向上させることができる。
【００３４】
この図１において、Ｐｉ，ｊ（ｉ＝０，…，ＮＬ−１；ｊ＝０，…，ＮＲ−１；ｉはスケーラビリティＬの階層番号；ｊはスケーラビリティの階層番号）は、画像情報をもつＪＰＥＧ２０００パケットを表す。ある品質のＪＰＥＧ２０００符号化画像をＱＬ，Ｒで表すと、ＱＬ，Ｒを得るためには図１の枠Ａで囲まれたパケットＰｉ，ｊ（ｉ＝０，…，Ｌ；ｊ＝０，…，Ｒ）すべてを復号する必要がある。ここで、画像が正常に再生されるためには、復号されるパケットＰｉ，ｊすべてが暗号解除されなくてはならない。したがって、アクセス制御において階層性を保持するため、パケットＰｉ，ｊは個別に暗号化される必要がある。
【００３５】
上述のようなＪＰＥＧ２０００において、プログレッション順序には、ＬＲＣＰ、ＲＬＣＰ、ＲＰＣＬ、ＰＣＲＬ、及びＣＰＲＬの５種類あり、それぞれ先頭の要素から順に優先される。図２は、図１に示されたＪＰＥＧ２０００パケット符号化列を復号する際の優先順位を示すプログレッシブ順序を説明するための概念図である。特に、図２（ａ）は、スケーラビリティＬ（レイヤ）が最優先されたＬＲＣＰプログレッション順序における復号順序であり、図２（ｂ）は、スケーラビリティＲ（解像度レベル）を最優先させたＲＬＣＰのプログレッション順序における復号順序である。
【００３６】
この発明に係る暗号鍵生成方法は、暗号鍵の管理と配信にかかる安全性及び生成容易性の面から鍵長を低減し、かつ、結託攻撃に対して耐性を有する。上述のようなＪＰＥＧ２０００パケットそれぞれの暗号鍵を生成するに当たり、当該暗号鍵生成方法は、各パケットを、スケーラビリティそれぞれの階層レベルにより特定されるマトリクス成分として扱うため、ＪＰＥＧ２０００におけるプログレッション順序は問わない。一例として、図３（ａ）は、スケーラビリティＬ（レイヤ）の階層レベルとスケーラビリティＲ（解像度レベル）の階層レベルによりマトリクス表現されたパケットＰＬ，Ｒ（Ｌ：０（最上位）、１、２（最下位）；Ｒ：０（最上位）、１、２（最下位））を示す。また、図３（ｂ）は、図３（ａ）のパケットＰＬ，Ｒに対応するマトリクス表現された部分鍵ＫＬ，Ｒ（Ｌ：０、１、２；Ｒ：０、１、２）を示す。
【００３７】
ここで、結託攻撃とは、２以上のユーザが暗号鍵を不正に共有することにより、正規に許諾された画質より高い画質での再生を可能とする攻撃をいう。具体的には、ＪＰＥＧ２０００符号化画像を例として、最上位レイヤ(レイヤ０)のみ開示を許諾されたユーザと最上位解像度レベル(解像度レベル０)のみ開示を許諾されたユーザとが結託することを考える。この場合、パケットＰｉ，ｊに対する暗号鍵をＫｉ，ｊとすると、一方のユーザは３つのパケッＰ０，ｊ（ｊ＝０，１，２）に対応する暗号鍵Ｋ０，ｊ（ｊ＝０，１，２）を、他方のユーザは３つのパケッＰｉ，０（ｉ＝０，１，２）に対応する暗号鍵Ｋｉ，０（ｉ＝０，１，２）を、それぞれ正規に許諾された鍵として得る。結託攻撃に対して耐性が十分でない場合、これらユーザが結託し、両者に許諾されていない暗号鍵Ｋ２，２、Ｋ２，０、Ｋ０，２、及びＫ１，１を不正に生成する可能性がある。この発明に係る暗号鍵生成方法では、以下の各実施形態において説明するように、あるパケットに対する暗号鍵（部分鍵）は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にある階層のパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位に位置する階層のパケットからは生成可能となっている。そのため、この発明に係る暗号鍵生成方法は、結託攻撃に対して耐性を有する。
【００３８】
（第１実施形態）
以下、この発明に係る暗号鍵生成方法の第１実施形態を説明する。この第１実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティＬ（レイヤ）とスケーラビリティＲ（解像度レベル）とし、スケーラビリティＬの階層数ＮＬを３、スケーラビリティＲの階層数ＮＲを３とする。このとき、スケーラビリティＬ、Ｒにおける各階層のパケットは、３×３のマトリクス成分Ｐｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）として扱われる。なお、図４は、この発明に係る暗号鍵生成方法の第１実施形態を説明するための概念図である。また、図５は、第１実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【００３９】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図４の例では、スケーラビリティＬ、Ｒいずれにおいても最下位に位置する階層のパケットＰ２，２に対応する暗号鍵Ｋ２，２である。このマスター鍵Ｋ２，２が、スケーラビリティＬの階層数ＮＬとスケーラビリティＲの階層数ＮＲのうち小さい値（＝ｍｉｎ（ＮＬ，ＮＲ））に分割される。
【００４０】
この第１実施形態では、ＮＬ＝ＮＲ＝３であるためスケーラビリティＬ、Ｒのいずれが選択されてもよいが、一例として、スケーラビリティＲを基準スケーラビリティとして選択する。このとき、最小階層数３（スケーラビリティＲの階層数）でマスター鍵Ｋ２，２を分割することにより、分割鍵ｅＲ２、ｅＲ１、ｅＲ０が得られる。これら分割鍵ｅＲ２、ｅＲ１、ｅＲ０はスケーラビリティＲの各階層に対応したルート鍵（各マトリクス成分を生成するための鍵）であり、これらスケーラビリティＲの階層ごとに鍵要素マトリクスＭ１〜Ｍ３が生成される。
【００４１】
鍵要素マトリクスＭ１〜Ｍ３それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵ｅＲ２、ｅＲ１、ｅＲ０から、図５に示されたように、順次生成される。
【００４２】
まず、鍵要素マトリクスＭ１では、スケーラビリティＲの階層レベル２（最下位階層）に対応したマトリクスとして、（２，２）成分に分割鍵ｅＲ２が割り当てられる。なお、図中、マトリクス成分ｅの上側添え字Ｒ２は、当該鍵要素マトリクスＭ１に対応するスケーラビリティＲ（基準スケーラビリティ）の階層レベルを示し、下側添え字は、鍵要素マトリクスＭ１の成分座標を示す。以下、この第１実施形態では、鍵要素マトリクスＭ１の成分をｅＲ２（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１，２）と表記する。
【００４３】
分割鍵ｅＲ２に対応するスケーラビリティＲにおける階層（階層レベル＝２）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ２（１，２）、ｅＲ２（０，２）には、一方向性ハッシュ関数Ｈ＊を利用した分割鍵ｅＲ２のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、ｅＲ２（１，２）にはＨ＊（ｅＲ２（２，２））の演算データ、成分ｅＲ２（０，２）にはＨ＊２（ｅＲ２（２，２））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル２について、スケーラビリティＬの階層性が保持される。なお、この明細書では、一方向性ハッシュ関数Ｈ＊のｎ（ｎ＝２、３、…）回演算を、Ｈ＊ｎと表記する。
【００４４】
一方、鍵要素マトリクスＭ１において、スケーラビリティＲの階層レベル２よりも上位階層の成分ｅＲ２（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１）の全てには、成分ｅＲ２（０，２）をさらに一方向性ハッシュ関数Ｈ＊を利用してハッシュ演算することにより得られた演算データＨ＊（ｅＲ２（０，２））（＝Ｈ＊３（ｅＲ２（２，２）））が割り当てられる。このときの演算データは、スケーラビリティＬの階層数が−１（実際には存在しない）のパケットに対応する値である。
【００４５】
以上のように生成された鍵要素マトリクスＭ１は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，２（ｉ＝０，１，２）に対してアクセス制御を有効にしている。
【００４６】
鍵要素マトリクスＭ２では、スケーラビリティＲの階層レベル１に対応したマトリクスとして、（２，１）成分に分割鍵ｅＲ１が割り当てられる。以下、この第１実施形態では、鍵要素マトリクスＭ２の成分をｅＲ１（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１，２）と表記する。
【００４７】
分割鍵ｅＲ１に対応するスケーラビリティＲにおける階層（階層レベル＝１）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ１（１，１）には、Ｈ＊（ｅＲ１（２，１））の演算データ、成分ｅＲ１（０，１）にはＨ＊２（ｅＲ１（２，１））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル１について、スケーラビリティＬの階層性が保持される。
【００４８】
一方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル１よりも上位階層の成分ｅＲ１（ｉ，０）（ｉ＝０，１，２）の全てには、成分ｅＲ１（０，１）をさらに一方向性ハッシュ関数Ｈ＊を利用してハッシュ演算することにより得られた演算データＨ＊（ｅＲ１（０，１））（＝Ｈ＊３（ｅＲ１（２，１）））が割り当てられる。このときの演算データは、スケーラビリティＬの階層数が−１（実際には存在しない）のパケットに対応する値である。
【００４９】
他方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル１よりも下位階層の成分ｅＲ１（ｉ，２）（ｉ＝０，１、２）には、いずれも成分ｅＲ１（ｉ，１）（ｉ＝０，１、２）と同じ値がそれぞれ割り当てられる。なお、成分ｅＲ１（ｉ，２）（ｉ＝０，１）には、一旦、成分ｅＲ１（２，１）の値がコピーされた成分ｅＲ１（２，２）に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図５等において、“ＣＰ”はコピーを意味する。
【００５０】
以上のように生成された鍵要素マトリクスＭ２は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，１（ｉ＝０，１，２）に対してアクセス制御を有効にしている。
【００５１】
同様に、鍵要素マトリクスＭ３では、スケーラビリティＲの階層レベル０（最上位階層）に対応したマトリクスとして、（２，０）成分に分割鍵ｅＲ０が割り当てられる。以下、この第１実施形態では、鍵要素マトリクスＭ３の成分をｅＲ０（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１，２）と表記する。
【００５２】
分割鍵ｅＲ０に対応するスケーラビリティＲにおける階層（階層レベル＝０）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ０（１，０）には、Ｈ＊（ｅＲ０（２，０））の演算データ、成分ｅＲ０（０，０）にはＨ＊２（ｅＲ０（２，０））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル０について、スケーラビリティＬの階層性が保持される。
【００５３】
一方、鍵要素マトリクスＭ３において、スケーラビリティＲの階層レベル０よりも上位階層は存在しないため、成分ｅＲ０（０，０）に対する更なるハッシュ演算は行われない。
【００５４】
他方、鍵要素マトリクスＭ３において、スケーラビリティＲの階層レベル０よりも下位階層の成分ｅＲ０（ｉ，ｊ）（ｉ＝０，１、２；ｊ＝１、２）には、いずれにも成分ｅＲ０（ｉ，０）（ｉ＝０，１、２）と同じ値がそれぞれ割り当てられる。なお、成分ｅＲ０（ｉ，ｊ）（ｉ＝０，１、２；ｊ＝１，２）には、一旦、成分ｅＲ０（２，０）の値がコピーされた成分ｅＲ０（２，２）、ｅＲ０（２，１）それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。
【００５５】
この場合も、生成された鍵要素マトリクスＭ３は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，０（ｉ＝０，１，２）に対してアクセス制御を有効にしている。
【００５６】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスＭ１〜Ｍ３間で座標一致している成分を結合することにより、部分鍵マトリクスＭＰ１が生成される。すなわち、部分鍵マトリクスＭＰ１の各成分が、パケットＰｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）それぞれに対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）となる。このように、一方のスケーラビリティＲ（解像度レベル）の階層ごとに、他方のスケーラビリティＬ（レイヤ）の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットＰｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）それぞれは、対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）により符号化され、こうして暗号化されたＪＰＥＧ２０００のパケット符号化列は一般に公開される。
【００５７】
（第２実施形態）
次に、この発明に係る暗号鍵生成方法の第２実施形態を説明する。この第１実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティＬ（レイヤ）とスケーラビリティＲ（解像度レベル）とし、スケーラビリティＬの階層数ＮＬを３、スケーラビリティＲの階層数ＮＲを２とする。このとき、スケーラビリティＬ、Ｒにおける各階層のパケットは、３×２のマトリクス成分Ｐｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１）として扱われる。なお、図６は、この発明に係る暗号鍵生成方法の第２実施形態を説明するための概念図である。また、図６は、第２実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【００５８】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図６の例では、スケーラビリティＬ、Ｒいずれにおいても最下位に位置する階層のパケットＰ２，１に対応する暗号鍵Ｋ２，１である。このマスター鍵Ｋ２，１が、スケーラビリティＬの階層数ＮＬとスケーラビリティＲの階層数ＮＲのうち小さい値（＝ｍｉｎ（ＮＬ，ＮＲ））に分割される。すなわち、スケーラビリティＲの階層数（最小階層数２）でマスター鍵Ｋ２，１が分割されることにより、分割鍵ｅＲ１、ｅＲ０が得られる。これら分割鍵ｅＲ１、ｅＲ０はスケーラビリティＲの各階層に対応したルート鍵であり、これらスケーラビリティＲの階層ごとに鍵要素マトリクスＭ１、Ｍ２が生成される。
【００５９】
鍵要素マトリクスＭ１、Ｍ２それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵ｅＲ１、ｅＲ０から、図７に示されたように、順次生成される。
【００６０】
まず、鍵要素マトリクスＭ１では、スケーラビリティＲの階層レベル１（最下位階層）に対応したマトリクスとして、（２，１）成分に分割鍵ｅＲ１が割り当てられる。なお、図中、マトリクス成分ｅの上側添え字Ｒ１は、当該鍵要素マトリクスＭ１に対応するスケーラビリティＲ（基準スケーラビリティ）の階層レベルを示し、下側添え字は、鍵要素マトリクスＭ１の成分座標を示す。以下、この第２実施形態では、鍵要素マトリクスＭ１の成分をｅＲ１（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１）と表記する。
【００６１】
分割鍵ｅＲ１に対応するスケーラビリティＲにおける階層（階層レベル＝１）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ１（１，１）、ｅＲ２（０，１）には、一方向性ハッシュ関数Ｈ＊を利用した分割鍵ｅＲ１のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、ｅＲ１（１，１）にはＨ＊（ｅＲ１（２，１））の演算データ、成分ｅＲ１（０，１）にはＨ＊２（ｅＲ１（２，１））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル１について、スケーラビリティＬの階層性が保持される。
【００６２】
一方、鍵要素マトリクスＭ１において、スケーラビリティＲの階層レベル１よりも上位階層の成分ｅＲ１（ｉ，０）（ｉ＝０，１，２）の全てには、成分ｅＲ１（０，１）をさらに一方向性ハッシュ関数Ｈ＊を利用してハッシュ演算することにより得られた演算データＨ＊（ｅＲ１（０，１））（＝Ｈ＊３（ｅＲ１（２，１）））が割り当てられる。このときの演算データは、スケーラビリティＬの階層数が−１（実際には存在しない）のパケットに対応する値である。
【００６３】
以上のように生成された鍵要素マトリクスＭ１は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，１（ｉ＝０，１，２）に対してアクセス制御を有効にしている。
【００６４】
鍵要素マトリクスＭ２では、スケーラビリティＲの階層レベル０（最上位階層）に対応したマトリクスとして、（２，０）成分に分割鍵ｅＲ０が割り当てられる。以下、この第２実施形態では、鍵要素マトリクスＭ２の成分をｅＲ０（ｉ，ｊ）（ｉ＝０，１，２；ｊ＝０，１）と表記する。
【００６５】
分割鍵ｅＲ０に対応するスケーラビリティＲにおける階層（階層レベル＝０）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ０（１，０）には、Ｈ＊（ｅＲ０（２，０））の演算データ、成分ｅＲ０（０，０）にはＨ＊２（ｅＲ０（２，０））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル０について、スケーラビリティＬの階層性が保持される。
【００６６】
一方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル０よりも上位階層は存在しないため、成分ｅＲ０（０，０）に対する更なるハッシュ演算は行われない。
【００６７】
他方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル０よりも下位階層の成分ｅＲ０（ｉ，１）（ｉ＝０，１、２）には、いずれも成分ｅＲ０（ｉ，０）（ｉ＝０，１、２）と同じ値がそれぞれ割り当てられる。なお、成分ｅＲ０（ｉ，１）（ｉ＝０，１、２）には、一旦、成分ｅＲ０（２，０）の値がコピーされた成分ｅＲ０（１，１）、ｅＲ０（０，１）それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図７においてＣＰはコピー動作を示す。
【００６８】
この場合も、生成された鍵要素マトリクスＭ２は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，０（ｉ＝０，１，２）に対してアクセス制御を有効にしている。なお、図７等において、“ＣＰ”はコピーを意味する。
【００６９】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスＭ１、Ｍ２間で座標一致している成分を結合することにより、部分鍵マトリクスＭＰ２が生成される。すなわち、部分鍵マトリクスＭＰ２の各成分が、パケットＰｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１）それぞれに対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）となる。このように、一方のスケーラビリティＲ（解像度レベル）の階層ごとに、他方のスケーラビリティＬ（レイヤ）の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットＰｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１）それぞれは、対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１）により符号化され、こうして暗号化されたＪＰＥＧ２０００のパケット符号化列は一般に公開される。
【００７０】
（第３実施形態）
以下、この発明に係る暗号鍵生成方法の第３実施形態を説明する。この第３実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティＬ（レイヤ）とスケーラビリティＲ（解像度レベル）とし、スケーラビリティＬの階層数ＮＬを４、スケーラビリティＲの階層数ＮＲを３とする。このとき、スケーラビリティＬ、Ｒにおける各階層のパケットは、４×３のマトリクス成分Ｐｉ，ｊ（ｉ＝０，１，２；ｊ＝０，１，２）として扱われる。なお、図８は、この発明に係る暗号鍵生成方法の第３実施形態を説明するための概念図である。また、図９は、第３実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【００７１】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図８の例では、スケーラビリティＬ、Ｒいずれにおいても最下位に位置する階層のパケットＰ３，２に対応する暗号鍵Ｋ３，２である。このマスター鍵Ｋ３，２が、スケーラビリティＬの階層数ＮＬとスケーラビリティＲの階層数ＮＲのうち小さい値（＝ｍｉｎ（ＮＬ，ＮＲ））に分割される。すなわち、スケーラビリティＲの階層数（最小階層数３）でマスター鍵Ｋ３，２が分割されることにより、分割鍵ｅＲ２、ｅＲ１、ｅＲ０が得られる。これら分割鍵ｅＲ２、ｅＲ１、ｅＲ０はスケーラビリティＲの各階層に対応したルート鍵であり、これらスケーラビリティＲの階層ごとに鍵要素マトリクスＭ１〜Ｍ３が生成される。
【００７２】
鍵要素マトリクスＭ１〜Ｍ３それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵ｅＲ２、ｅＲ１、ｅＲ０から、図９に示されたように、順次生成される。
【００７３】
まず、鍵要素マトリクスＭ１では、スケーラビリティＲの階層レベル２（最下位階層）に対応したマトリクスとして、（３，２）成分に分割鍵ｅＲ２が割り当てられる。なお、図中、マトリクス成分ｅの上側添え字Ｒ２は、当該鍵要素マトリクスＭ１に対応するスケーラビリティＲ（基準スケーラビリティ）の階層レベルを示し、下側添え字は、鍵要素マトリクスＭ１の成分座標を示す。以下、この第３実施形態では、鍵要素マトリクスＭ１の成分をｅＲ２（ｉ，ｊ）（ｉ＝０，１，２，３；ｊ＝０，１，２）と表記する。
【００７４】
分割鍵ｅＲ２に対応するスケーラビリティＲにおける階層（階層レベル＝２）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ２（２，２）、ｅＲ２（１，２）、ｅＲ２（０，２）には、一方向性ハッシュ関数Ｈ＊を利用した分割鍵ｅＲ２のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、ｅＲ２（２，２）にはＨ＊（ｅＲ２（３，２））の演算データ、ｅＲ２（１，２）にはＨ＊２（ｅＲ２（３，２））の演算データ、成分ｅＲ２（０，２）にはＨ＊３（ｅＲ２（３，２））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル２について、スケーラビリティＬの階層性が保持される。
【００７５】
一方、鍵要素マトリクスＭ１において、スケーラビリティＲの階層レベル２よりも上位階層の成分ｅＲ２（ｉ，ｊ）（ｉ＝０，１，２，３；ｊ＝０，１）の全てには、成分ｅＲ２（０，２）をさらに一方向性ハッシュ関数Ｈ＊を利用してハッシュ演算することにより得られた演算データＨ＊（ｅＲ２（０，２））（＝Ｈ＊４（ｅＲ２（３，２）））が割り当てられる。このときの演算データは、スケーラビリティＬの階層数が−１（実際には存在しない）のパケットに対応する値である。
【００７６】
以上のように生成された鍵要素マトリクスＭ１は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，２（ｉ＝０，１，２，３）に対してアクセス制御を有効にしている。
【００７７】
鍵要素マトリクスＭ２では、スケーラビリティＲの階層レベル１に対応したマトリクスとして、（３，１）成分に分割鍵ｅＲ１が割り当てられる。以下、この第３実施形態では、鍵要素マトリクスＭ２の成分をｅＲ１（ｉ，ｊ）（ｉ＝０，１，２，３；ｊ＝０，１，２）と表記する。
【００７８】
分割鍵ｅＲ１に対応するスケーラビリティＲにおける階層（階層レベル＝１）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ１（２，１）には、Ｈ＊（ｅＲ１（３，１））の演算データ、成分ｅＲ１（１，１）には、Ｈ＊２（ｅＲ１（３，１））の演算データ、成分ｅＲ１（０，１）にはＨ＊３（ｅＲ１（３，１））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル１について、スケーラビリティＬの階層性が保持される。
【００７９】
一方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル１よりも上位階層の成分ｅＲ１（ｉ，０）（ｉ＝０，１，２，３）の全てには、成分ｅＲ２（０，１）をさらに一方向性ハッシュ関数Ｈ＊を利用してハッシュ演算することにより得られた演算データＨ＊（ｅＲ１（０，１））（＝Ｈ＊４（ｅＲ１（３，１）））が割り当てられる。このときの演算データは、スケーラビリティＬの階層数が−１（実際には存在しない）のパケットに対応する値である。
【００８０】
他方、鍵要素マトリクスＭ２において、スケーラビリティＲの階層レベル１よりも下位階層の成分ｅＲ１（ｉ，２）（ｉ＝０，１、２，３）には、いずれも成分ｅＲ１（ｉ，１）（ｉ＝０，１、２，３）と同じ値がそれぞれ割り当てられる。なお、成分ｅＲ１（ｉ，２）（ｉ＝０，１，２）には、一旦、成分ｅＲ１（３，１）の値がコピーされた成分ｅＲ１（３，２）に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図９等において、“ＣＰ”はコピーを意味する。
【００８１】
以上のように生成された鍵要素マトリクスＭ２は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，１（ｉ＝０，１，２，３）に対してアクセス制御を有効にしている。
【００８２】
同様に、鍵要素マトリクスＭ３では、スケーラビリティＲの階層レベル０（最上位階層）に対応したマトリクスとして、（３，０）成分に分割鍵ｅＲ０が割り当てられる。以下、この第３実施形態では、鍵要素マトリクスＭ３の成分をｅＲ０（ｉ，ｊ）（ｉ＝０，１，２，３；ｊ＝０，１，２）と表記する。
【００８３】
分割鍵ｅＲ０に対応するスケーラビリティＲにおける階層（階層レベル＝０）であってスケーラビリティＬにおける残りの階層のそれぞれ対応する座標成分ｅＲ０（２，０）には、Ｈ＊（ｅＲ０（３，０））の演算データ、成分ｅＲ０（１，０）には、Ｈ＊２（ｅＲ０（３，０））の演算データ、成分ｅＲ０（０，０）にはＨ＊３（ｅＲ０（３，０））の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティＲの階層レベル０について、スケーラビリティＬの階層性が保持される。
【００８４】
一方、鍵要素マトリクスＭ３において、スケーラビリティＲの階層レベル０よりも上位階層は存在しないため、成分ｅＲ０（０，０）に対する更なるハッシュ演算は行われない。
【００８５】
他方、鍵要素マトリクスＭ３において、スケーラビリティＲの階層レベル０よりも下位階層の成分ｅＲ０（ｉ，ｊ）（ｉ＝０，１、２，３；ｊ＝１、２）には、いずれも成分ｅＲ０（ｉ，０）（ｉ＝０，１，２，３）と同じ値がそれぞれ割り当てられる。なお、成分ｅＲ０（ｉ，ｊ）（ｉ＝０，１、２，３；ｊ＝１，２）には、一旦、成分ｅＲ０（３，０）の値がコピーされた成分ｅＲ０（２，２）、ｅＲ０（３，１）それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図９においてＣＰはコピー動作を示す。
【００８６】
この場合も、生成された鍵要素マトリクスＭ３は、スケーラビリティＬの階層性を保持したまま、パケットＰｉ，０（ｉ＝０，１，２，３）に対してアクセス制御を有効にしている。
【００８７】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスＭ１〜Ｍ３間で座標一致している成分を結合することにより、部分鍵マトリクスＭＰ３が生成される。すなわち、部分鍵マトリクスＭＰ３の各成分が、パケットＰｉ，ｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）それぞれに対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）となる。このように、一方のスケーラビリティＲ（解像度レベル）の階層ごとに、他方のスケーラビリティＬ（レイヤ）の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットＰｉ，ｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）それぞれは、対応した部分鍵Ｋｉ，ｊ（ｉ＝０，１，２，３；ｊ＝０，１，２）により符号化され、こうして暗号化されたＪＰＥＧ２０００のパケット符号化列は一般に公開される。
【００８８】
（結託攻撃耐性の評価）
続いて、上述のように構成された第１〜第３実施形態に係る暗号鍵生成方法により生成された暗号鍵（各階層のパケットに対応した部分鍵）の結託攻撃に対する耐性について、評価する。
【００８９】
まず、この評価では、階層数ＮＬのスケーラビリティＬと階層数ＮＲのスケーラビリティＲ（解像度レベル）を有するＪＰＥＧ２０００データを符号化する場合を前提とする。
【００９０】
ＪＰＥＧ２０００のパケットＰｉ，ｊ（ｉ＝０，１，…，ＮＬ−１；ｊ＝０，１，…，ＮＲ−１）に対する部分鍵Ｋｉ，ｊは、最下位のパレットＰＮＬ−１，ＮＲ−１に対する部分鍵ＫＮＬ−１，ＮＲ−１をマスター鍵とし、一方向性ハッシュ関数Ｈ＊を従属的に生成される。なお、階層の上位及び下位の概念は図１と同じである。すなわち、部分鍵Ｋｉ，ｊは、スケーラビリティＬ、ＲのいずれにおいてもパケットＰｉ，ｊの階層より下位又は同位の全ての階層のパケットＰａ１，ｂ１（ａ１＝ｉ，ｉ−１，…ＮＬ−１；ｂ１＝ｊ，ｊ−１，…，ＮＲ−１）に対応した部分鍵Ｋａ１，ｂ１から従属的に生成されなければならない。この条件の下で、部分鍵Ｋｉ，ｊがスケーラビリティＬ、ＲのいずれにおいてもパケットＰｉ，ｊより上位に位置する階層のパケットＰａ２，ｂ２（ａ２＝０，１，…ｉ−１；ｂ２＝０，１，…，ｊ−１）に対応する部分鍵Ｋａ２，ｂ２から、結託攻撃により不正に生成されないためには、該部分鍵Ｋｉ，ｊを構成する少なくとも一部の要素が部分鍵Ｐａ２，ｂ２よりも下位階層のパケットに対応した要素である必要がある。
【００９１】
例えば、ＮＲ＜ＮＬと仮定する。スケーラビリティＲの階層ｊ（０≦ｊ≦ＮＲ−１）である全てのパケットＰｉ，ｊ（ｉ＝０，１，…，ＮＬ−１）を対象とする部分鍵Ｋｉ，ｊの要素ｅＲｊｉ，ｊは、鍵要素マトリクスＭｊの要素演算において、ルート鍵としての要素ｅＲｊから、一方向性ハッシュ関数Ｈ＊を利用したハッシュ演算Ｈ＊（ＮＬ−１−ｉ）（ｅＲｊ）により従属的に生成される。このとき、スケーラビリティＲの下位階層ｂ１（＜ｊ）である全てのパケットＰｉ，ｂ１（ｉ＝０，１，…，ＮＬ−１）を対象とする部分鍵Ｋｉ，ｂ１の要素ｅＲｊｉ，ｂ１には、鍵要素マトリクスＭｊにおける上位階層のハッシュ演算値Ｈ＊（ＮＬ−１−ｉ）（ｅＲｊ）がそのまま反映される（コピーされる）。一方、スケーラビリティＲにおいて上位階層ｂ２（＞ｊ）である全てのパケットＰｉ，ｂ２（ｉ＝０，１，…，ＮＬ−１）を対象とする部分鍵Ｋｉ，ｂ２の要素ｅＲｊｉ，ｂ２には、ハッシュ演算値Ｈ＊ＮＬ（ｅＲｊ）が割り当てられる。
【００９２】
そのため、下位階層の部分鍵を構成する要素の少なくとも一部には、上位階層の部分鍵が反映される一方、上位階層の部分鍵を構成する要素には、下位階層の部分鍵の要素が反映されない。すなわち、この発明に係る暗号鍵生成方法により生成される部分鍵では、上位階層の部分鍵からは下位階層の部分鍵は生成されず、よって、結託攻撃に対する耐性が得られる。
【００９３】
（暗号解除における暗号鍵生成）
次に、暗号解除における暗号鍵（許可された各パケットに対応した部分鍵）の生成について説明する。上述の暗号鍵生成では、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵がそれぞれ生成された。暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。
【００９４】
具体的には、ＮＬ＝ＮＲ＝３場合、図１に示されたように、スケーラビリティＬ（レイヤ）及びスケーラビリティＲ（解像度レベル）までの濃淡画像ＱＬ，Ｒ（０≦Ｌ≦ＮＬ、０≦Ｒ≦ＮＲ）を要求したユーザは、ＪＰＥＧ２０００のパケット符号列ＰＬ，Ｒを最下位パケット（スケーラビリティＬ、Ｒそれぞれにおいて最下位に位置する階層のパケット）として画像の開示を許諾され、そのパケットに対する鍵ＫＬ，Ｒ（０≦Ｌ≦２、０≦Ｒ≦２）を受信する。なお、図１において、ユーザが符号化画像ＱＬ，Ｒを許可された場合、該符号化画像ＱＬ，Ｒに対応した鍵ＫＬ，Ｒを利用して、枠Ａ（（ＮＬ−Ｒ＋１）×（ＮＲ−Ｌ＋１））で囲まれた各パケットＰに対応した暗号解除鍵（復号鍵）が生成される。また、この場合、鍵ＫＬ，Ｒから生成される分割鍵ｅＲ２、ｅＲ１、ｅＲ０に対応した鍵要素マトリクスＭ１〜Ｍ３も（ＮＬ−Ｒ＋１）×（ＮＲ−Ｌ＋１）マトリクスとなる。
【００９５】
以下の説明では、図１において、ユーザが符号化画像Ｑ１，１を許可された場合について説明する。この場合、鍵生成は図５の一部に相当しており、該符号化画像Ｑ１，１に対応した鍵Ｋ１，１を利用して、枠Ａで囲まれた各パケットＰ１，０、Ｐ０，１、Ｐ０，０に対応した暗号解除鍵（復号鍵）が生成される。
【００９６】
そのため、ユーザ側では、まず、受信された部分鍵Ｋ１，１をマスター鍵として、スケーラビリティＲの階層数で分割することにより（３分割）、３つの分割鍵ｅＲ２、ｅＲ１、ｅＲ０を生成する。
【００９７】
続いて、スケーラビリティＲの３つの階層ごとに鍵要素マトリクスを生成する。ここで、３つの分割鍵ｅＲ２、ｅＲ１、ｅＲ０のうち、対応するスケーラビリティＲの階層が受信した鍵Ｋ１，１の対応する階層よりも下位の分割鍵は、もう一つのスケーラビリティＬの階層レベルが−１となるハッシュ演算データである。したがって、この場合には、鍵要素マトリクスの全成分に対応する部分鍵と同じ値を予め割り当てておく。
【００９８】
まず、スケーラビリティＲの階層２に対応する２×２の鍵要素マトリクスＭ１の生成において、部分鍵ｅＲ２は、スケーラビリティＬの階層−１に相当するハッシュ演算データである。すなわち、スケーラビリティＲの分割鍵ｅＲ２に対応する階層（階層レベル：２）は、受信された鍵Ｋ１，１に対応するスケーラビリティＲの階層（階層レベル：１）よりも下位にあるため、該分割鍵ｅＲ２の値はスケーラビリティＬの階層レベルが−１のときのハッシュ演算値である。この場合、分割鍵ｅＲ２に対応する２×２の鍵マトリクスＭ１の全マトリクス成分ｅＲ２（０，１）、ｅＲ２（１，１）、ｅＲ２（０，０）、ｅＲ２（１，０）には、分割鍵ｅＲ２と同じ値（スケーラビリティＬの階層レベルは−１）が割り当てられる。
【００９９】
次に、スケーラビリティＲの階層１に対応する２×２の鍵要素マトリクスＭ２の生成では、まず、ｅＲ１（１，１）成分に分割鍵ｅＲ１の値が割り当てられる。スケーラビリティＬの階層が上位に位置する成分ｅＲ１（０，１）には、一方向性ハッシュ関数Ｈ＊を利用したハッシュ演算の演算データＨ＊（ｅＲ１（１，１））が割り当てられる。また、スケーラビリティＲの分割鍵ｅＲ１に対応した階層（階層レベル：１）よりも上位階層（階層レベル：０）に対応する成分ｅＲ１（１，０）、ｅＲ１（０，０）それぞれにはスケーラビリティＬの階層レベル：−１となるハッシュ演算データＨ＊２（ｅＲ２（１，１））が割り当てられる。逆に、スケーラビリティＲの分割鍵ｅＲ１に対応した階層（階層レベル：１）よりも下位階層（階層レベル：２）は、存在しないため、ハッシュ演算は行われない。
【０１００】
一方、スケーラビリティＲの階層０に対応する２×２の鍵要素マトリクスＭ３の生成では、スケーラビリティＲの分割鍵ｅＲ０に対応した階層（階層レベル：０）よりも上位階層（階層レベル：−１）は存在しない。そこで、まず、ｅＲ０（１，０）成分に分割鍵ｅＲ０の値が割り当てられる。スケーラビリティＬの階層が上位に位置する成分ｅＲ０（０，０）には、一方向性ハッシュ関数Ｈ＊を利用したハッシュ演算の演算データＨ＊（ｅＲ１（１，０））が割り当てられる。逆に、スケーラビリティＲの分割鍵ｅＲ０に対応した階層（階層レベル：０）よりも下位階層（階層レベル：１）には、ｅＲ０（１，１）成分に成分ｅＲ０（１，０）値がコピーされ、このコピー値に基づいてハッシュ演算が順次行われる。すなわち、スケーラビリティＬの階層が上位に位置する成分ｅＲ０（０，１）には、一方向性ハッシュ関数Ｈ＊を利用したハッシュ演算の演算データＨ＊（ｅＲ０（１，１））が割り当てられる。
【０１０１】
このように生成された、スケーラビリティＲの各階層に対応した２×２の鍵要素マトリクスＭ１〜Ｍ３間で座標一致している成分を結合することにより、マスター鍵Ｋ１，１から、パケットＰ１，０、Ｐ０，１、Ｐ０，０に対応した復号鍵Ｋ１，０、Ｋ０，１、Ｋ０，０、）が生成される。
【０１０２】
上述のように、あるパケットに対する部分鍵は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にあるパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位にあるパケットからは生成可能である。そのため、結託攻撃に対して耐性を有する。
【０１０３】
（第４実施形態）
図１０は、この発明に係る暗号鍵生成方法の第４実施形態として、３種類以上の階層的スケーラビリティを有するディジタルデータについて、部分鍵の生成を説明するための概念図である。また、図１１は、図１０の部分鍵生成における階層テーブル１１ａと、部分鍵要素マトリクスＭＰａ〜ＭＰｃ及び部分鍵マトリクスＭＰ４の座標対応関係を示す図である。図１２は、図１０の部分鍵生成における部分鍵要素マトリクスＭＰａ〜ＭＰｃ及び部分鍵マトリクスＭＰ４の要素間対応関係を説明するための図である。
【０１０４】
アクセス制御対象のスケーラビリティが３種類以上の場合、まず２種類のスケーラビリティの組合せに対して上述の鍵生成手順を最小処理単位として繰返す方式が考えられる。このとき、アクセス制御対象のスケーラビリティ数をＮＳとすると、最小処理単位の繰り返し回数は、ＮＳＣ２（＝（ＮＳ（ＮＳ−１））／２）となる。
【０１０５】
図１０に示された例では、３種類のスケーラビリティとして、３階層のＬ（レイヤ）、２階層のＲ（解像度レベル）及び３階層のＣ（コンポーネント）を有するディジタルデータにおける各パケットに対応した暗号鍵を生成する。この場合、スケーラビリティＲ、Ｌの組について部分鍵要素マトリクスＭＰｂ（成分ＫＲＬ（０，０）〜成分ＫＲＬ（２，１））と、スケーラビリティＲ、Ｃの組について部分鍵要素マトリクスＭＰｃ（成分ＫＲＣ（０，０）〜成分ＫＲＣ（２，１））と、スケーラビリティＬ、Ｃの組について部分鍵要素マトリクスＭＰａ（成分ＫＬＣ（０，０）〜成分ＫＬＣ（２，２））が、上述の第１〜第３実施形態と同様の演算工程を経て順次生成される。
【０１０６】
その際、図１１に示されたように、スケーラビリティＬ、Ｒ、Ｃにおける階層値の全組み合わせを示す階層テーブル１１ａも生成される。この階層テーブル１１ａは、各組み合わせの階層値群により、スケーラビリティＬ、Ｒ、Ｃにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスＭＰ４を座標表現している。また、この階層テーブル１１ａは、スケーラビリティの種類と階層値の関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスＭＰａ〜ＭＰｃの成分を特定することができる。すなわち、階層テーブル１１ａにおける階層値の全組み合わせに対応した、部分鍵要素テーブル１１ｂが生成される。
【０１０７】
このように生成された部分鍵要素テーブル１１ｂに列挙された鍵組み合わせは、部分鍵マトリクスＭＰ４の各成分座標を示す階層テーブル１１ａの階層値組み合わせに対応している。部分鍵マトリクスＭＰ４の各成分ＫＬ、Ｒ，Ｃ（Ｌ＝０，１，２；Ｒ＝０，１；Ｃ＝０，１，２）は、図１２（ａ）に示されたように、部分鍵要素テーブル１１ｂにおいて一の組み合わせを構成する鍵要素ＫＲＬＲ，Ｌ、ＫＲＣＲ，Ｃ、ＫＬＣＬ，Ｃを結合することにより得られる。したがって、部分鍵マトリクスＭＰ４の各成分座標を示す階層テーブル１１ａの全組み合わせについて、一の組み合わせに対応した部分鍵要素テーブル１１ｂにおける鍵要素それぞれを結合していくことにより（図１２（ｂ）参照）、部分鍵マトリクスＭＰ４が得られる。
【０１０８】
このように得られた部分鍵マトリクスＭＰ４の各成分が、スケーラビリティとして、３階層のＬ（レイヤ）、２階層のＲ（解像度レベル）及び３階層のＣ（コンポーネント）を有するディジタルデータにおける各パケットに対応した暗号鍵となる。すなわち、部分鍵マトリクスＭＰ４の各成分が、その成分座標を表すスケーラビリティの階層値で特定されるパケットに対応した部分鍵である。
【０１０９】
なお、アクセス制御対象のスケーラビリティが３種類以上の場合であっても、２種類のスケーラビリティの場合と同様に、結託攻撃耐性を有している。
【０１１０】
上述の第４実施形態に係る暗号鍵生成方法は、第１〜第３実施形態と同様に、２次元マトリクス表現を用いて説明されたが、以下、３次元マトリクス表現を用いて立体化した状態で、第４実施形態を一般化した暗号鍵生成方法を説明する。なお、以下の説明では、アクセス制御対象となるスケーラビリティＬ、Ｒ、Ｃについて、該スケーラビリティＬ（レイヤ）の階層数ＮＬを６、スケーラビリティＲ（解像度レベル）の階層数ＮＲを４、スケーラビリティＣ（コンポーネント）の階層数ＮＣを３とする。このとき、スケーラビリティＬ、Ｒ、Ｃにおける各階層のパケットは、図１３（ａ）に示されたように、６×４×３のマトリクス成分Ｐｉ，ｊ，ｋ（ｉ＝０，１，２，３，４，５；ｊ＝０，１，２，３；ｋ＝０，１，２）として扱われる。なお、図１３（ａ）は、３次元部分鍵マトリックスＱＭにおける各座標成分配置の立体表示である（３次元鍵要素マトリックスも同様）。
【０１１１】
図１３（ａ）に示されたように、スケーラビリティＬ、Ｒ、Ｃそれぞれの最下位階層に対応した座標成分Ｋ５，３，２がマスター鍵となる。また、座標成分Ｋ０，０，０がスケーラビリティＬ、Ｒ、Ｃそれぞれの最上位階層に対応した座標成分である。
【０１１２】
上述の第４実施形態に係る暗号鍵生成方法に従って、図１３（ａ）のような６×４×３の３次元部分鍵マトリックスＱＭを生成する場合、まず、最下位部分鍵Ｋ５，３，２を２種類のスケーラビリティに関して行われる最小処理単位の繰り返し回数ＮＳＣ２だけ分割し、それぞれの最小処理単位用のマスター鍵ＫＲＬ、ＫＲＣ、ＫＬＣを生成する。ここで、マスター鍵ＫＲＬは、スケーラビリティＬ、Ｒに関する鍵要素生成用のマスター鍵である。マスター鍵ＫＲＣは、スケーラビリティＲ、Ｃに関する鍵要素生成用のマスター鍵である。また、マスター鍵ＫＬＣは、スケーラビリティＬ、Ｃに関する鍵要素生成用のマスター鍵である（図１３（ｂ）参照）。
【０１１３】
図１４は、第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＬ、Ｒの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。なお、スケーラビリティＬ、Ｒに関する最小処理単位において、基準スケーラビリティはＲとし、該スケーラビリティＲの階層数４でマスター鍵ＫＲＬを分割することにより、４つの分割鍵ｅＲＬＲ３、ｅＲＬＲ２、ｅＲＬＲ１、ｅＲＬＲ０が得られる（図１３（ｂ）参照）。
【０１１４】
まず、分割鍵ｅＲＬＲ３が３次元マトリックスの座標成分Ｐ５，３，２（図１４（ａ）中の斜線部分）に割り当てられると、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ３のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１４（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ３）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝３，Ｃ＝２以外の座標成分（図１４（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ３）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ３）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭＲＬ１が生成される。
【０１１５】
続いて、分割鍵ｅＲＬＲ２が３次元マトリックスの座標成分Ｐ５，２，２（図１４（ｂ）中の斜線部分）に割り当てられると、この分割鍵ｅＲＬＲ２は一旦座標成分Ｐ５，３，２にコピー（ＣＰ）される。そして、スケーラビリティＲの階層３及び階層２それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ２のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１４（ｂ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ２）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝２〜３，Ｃ＝２以外の座標成分（図１４（ｂ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ２）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ２）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭＲＬ２が生成される。
【０１１６】
上述と同様に、分割鍵ｅＲＬＲ１（斜線で示された座標成分Ｐ５，１，２として割り当てられる）のハッシュ演算により図１４（ｃ）に示された３次元鍵要素マトリックスＱＭＲＬ３も生成される。なお、図１４（ｃ）において、Ｈはハッシュ演算を示し、ＣＰは座標成分間における演算データのコピー動作を意味する。さらに、図１４（ｄ）に示されたように、分割鍵ｅＲＬＲ０（斜線で示された座標成分Ｐ５，０，２として割り当てられる）のハッシュ演算により３次元鍵要素マトリックスＱＭＲＬ４も生成される。
【０１１７】
次に、図１５は、第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＲ、Ｃの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。なお、スケーラビリティＲ、Ｃに関する最小処理単位において、基準スケーラビリティはＲとし、該スケーラビリティＲの階層数４でマスター鍵ＫＲＣを分割することにより、４つの分割鍵ｅＲＣＲ３、ｅＲＣＲ２、ｅＲＣＲ１、ｅＲＣＲ０が得られる（図１３（ｂ）参照）。
【０１１８】
分割鍵ｅＲＣＲ３が３次元マトリックスの座標成分Ｐ６，４，３（図１５（ａ）中の斜線部分）に割り当てられると、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＣＲ３のハッシュ演算がスケーラビリティＣの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１５（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＣの最上位階層に対応する座標成分には、演算データＨ＊２（ｅＲＣＲ３）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝５，Ｒ＝３，Ｃ＝０〜２以外の座標成分（図１５（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＣの最上位階層に対応する座標成分に割り当てられた演算データＨ＊２（ｅＲＣＲ３）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊３（ｅＲＣＲ３）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭＲＣ１が生成される。
【０１１９】
図１５（ｂ）に示された３次元鍵要素マトリックスＱＭＲＣ２は、基準スケーラビリティＲの階層２よりも下位階層への分割鍵ｅＲＣＲ２（斜線で示された座標成分Ｐ５，２，２として割り当てられる）のコピー動作、及びスケーラビリティＣの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＣＲ２のハッシュ演算）を繰り返すことにより生成される。同様に、図１５（ｃ）に示された３次元鍵要素マトリックスＱＭＲＣ３も、基準スケーラビリティＲの階層１よりも下位階層への分割鍵ｅＲＣＲ１（斜線で示された座標成分Ｐ５，１，２として割り当てられる）のコピー動作、及びスケーラビリティＣの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＣＲ１のハッシュ演算）を繰り返すことにより生成される。さらに、図１５（ｄ）に示された３次元鍵要素マトリックスＱＭＲＣ４も、基準スケーラビリティＲの階層０（最上位階層）よりも上位階層への分割鍵ｅＲＣＲ０（斜線で示された座標成分Ｐ５，０，２として割り当てられる）のコピー動作、及びスケーラビリティＣの最下位階層から最下位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＣＲ０のハッシュ演算）を繰り返すことにより生成される。
【０１２０】
図１６は、第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＬ、Ｃの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。なお、スケーラビリティＬ、Ｃに関する最小処理単位において、基準スケーラビリティはＣとし、該スケーラビリティＣの階層数３でマスター鍵ＫＬＣを分割することにより、３つの分割鍵ｅＬＣＣ２、ｅＬＣＣ１、ｅＬＣＣ０が得られる（図１３（ｂ）参照）。
【０１２１】
分割鍵ｅＬＣＣ２が３次元マトリックスの座標成分Ｐ６，４，３（図１６（ａ）中の斜線部分）に割り当てられると、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＬＣＣ３のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１６（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＬＣＣ２）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝３，Ｃ＝２以外の座標成分（図１６（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＬＣＣ２）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＬＣＣ２）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭＬＣ１が生成される。
【０１２２】
図１６（ｂ）に示された３次元鍵要素マトリックスＱＭＬＣ２は、基準スケーラビリティＣの階層１よりも下位階層への分割鍵ｅＬＣＣ１（斜線で示された座標成分Ｐ５，３，１として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＬＣＣ１のハッシュ演算）を繰り返すことにより生成される。同様に、図１６（ｃ）に示された３次元鍵要素マトリックスＱＭＬＣ３も、基準スケーラビリティＣの階層０（最上位階層）よりも下位階層への分割鍵ｅＬＣＣ０（斜線で示された座標成分Ｐ５，３，０として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＬＣＣ０のハッシュ演算）を繰り返すことにより生成される。
【０１２３】
以上のハッシュ演算が繰り返されることにより生成された、図１４（ａ）〜図１６（ｃ）に示された３次元鍵要素マトリックスＱＭＲＬ１〜ＱＭＲＬ４、ＱＭＲＣ１〜ＱＭＲＣ４、ＱＭＬＣ１〜ＱＭＬＣ３について、それぞれの一致する座標成分同士を結合することにより、第４実施形態を一般化した暗号鍵生成方法による３次元部分鍵マトリックスＱＭが得られる。
【０１２４】
（第５実施形態）
上述の第４実施形態に係る暗号鍵生成方法は、あくまでも２種類のスケーラビリティに関する部分鍵生成手中を最小処理単位としているため、各スケーラビリティの階層数が増加してくると得られた部分鍵では３人以上の結託攻撃は防げない（図１３（ａ）の３次元部分鍵マトリックスＱＭのような多次元部分鍵マトリックスにおいて、同一部分鍵を有する複数の座標線分が存在する）。そこで、第５実施形態では、３人以上の結託攻撃に対しても十分な耐性を有するに暗号鍵生成方法を提案する。この第５実施形態に係る暗号鍵生成方法も、図１３（ａ）に示された３次元部分かぎマトリックスＱＭを参照しながら説明することとし、アクセス制御対象となるスケーラビリティＬ、Ｒ、Ｃについて、該スケーラビリティＬ（レイヤ）の階層数ＮＬを６、スケーラビリティＲ（解像度レベル）の階層数ＮＲを４、スケーラビリティＣ（コンポーネント）の階層数ＮＣを３とする。このとき、スケーラビリティＬ、Ｒ、Ｃにおける各階層のパケットは、６×４×３のマトリクス成分Ｐｉ，ｊ，ｋ（ｉ＝０，１，２，３，４，５；ｊ＝０，１，２，３；ｋ＝０，１，２）として扱われる。また、用意されるマスター鍵は、図１３（ａ）に示されたように、スケーラビリティＬ、Ｒ、Ｃそれぞれの最下位階層に対応した座標成分Ｋ５，３，２がマスター鍵となる（座標成分Ｋ０，０，０は、スケーラビリティＬ、Ｒ、Ｃそれぞれの最上位階層に対応した座標成分）。
【０１２５】
まず、この第５実施形態に係るに暗号鍵生成方法は、図１７に示されたように、３種類以上のスケーラビリティのうち２種類のスケーラビリティを予め基準スケーラビリティに設定する。図１７に示された例では、スケーラビリティＬ、Ｒが基準スケーラビリティに設定されている。特に、基準スケーラビリティＲ（第１基準スケーラビリティ）は、用意されたマスター鍵Ｋ５，３，２から分割鍵を生成するためのスケーラビリティであり、この基準スケーラビリティＲの階層数４で用意されたマスター鍵を分割することにより、基準スケーラビリティＲの各階層に対応した４つの分割鍵ｅＲＬＲ３、ｅＲＬＲ２、ｅＲＬＲ１、ｅＲＬＲ０が生成される。一方、基準スケーラビリティＬは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。なお、図１７は、この発明に係る暗号鍵生成方法の第５実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【０１２６】
第５実施形態に係る暗号鍵生成方法では、３種類以上のスケーラビリティＬ、Ｒ、Ｃにおける階層値で座標表現された３次元鍵要素マトリクス（図１３（ａ）参照）を、基準スケーラビリティＬ、Ｒを除く他のスケーラビリティＣの各階層について、基準スケーラビリティＲの各階層に対応した一連のハッシュ演算ごとに生成していく。そのため、この第５実施形態では、３種類のスケーラビリティＬ、Ｒ、Ｃ（Ｌの階層数：６；Ｒの階層数：４；Ｃの階層数：３）について、上記数式（１）で与えられる総パケット数は７２であり、上記数式（２）で与えられる３次元鍵要素マトリックスの生成数は、１２となる。
【０１２７】
なお、図１８〜図２０は、第５実施形態に係る暗号鍵生成方法による３次元鍵要素マトリックスの生成工程を説明するための図である。特に、図１８は、基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最下位階層（階層２）について、スケーラビリティＬの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された３次元鍵要素マトリックスＱＭ１−１、ＱＭ２−１、ＱＭ３−１、ＱＭ４−１を示す。図１９は、基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最下位階層よりも１階層だけ上位の階層（階層１）について、スケーラビリティＬの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された３次元鍵要素マトリックスＱＭ１−２、ＱＭ２−２、ＱＭ３−２、ＱＭ４−２を示す。図２０は、基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最上位階層（階層０）について、スケーラビリティＬの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された３次元鍵要素マトリックスＱＭ１−３、ＱＭ２−３、ＱＭ３−３、ＱＭ４−３を示す。
【０１２８】
まず、図１８（ａ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの最下位階層２について、基準スケーラビリティＲの最下位階層に対応する分割鍵ｅＲＬＲ３を用いて生成された３次元鍵要素マトリックスＱＭ１−１を示す。
【０１２９】
分割鍵ｅＲＬＲ３が３次元マトリックスの座標成分Ｐ５，３，２（図１８（ａ）中の斜線部分）に割り当てられると、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ３のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１８（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ３）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝３，Ｃ＝２以外の座標成分（図１８（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ３）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ３）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ１−１が生成される。
【０１３０】
図１８（ｂ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの最下位階層２について、基準スケーラビリティＲの階層２（最下位階層よりも１階層だけ上位の階層）に対応する分割鍵ｅＲＬＲ２を用いて生成された３次元鍵要素マトリックスＱＭ２−１を示す。
【０１３１】
この３次元鍵要素マトリックスＱＭ２−１の生成では、分割鍵ｅＲＬＲ２が３次元マトリックスの座標成分Ｐ５，２，２（図１８（ｂ）中の斜線部分）に割り当てられる。このとき、分割鍵ｅＲＬＲ２は一旦座標成分Ｐ５，３，２にコピー（ＣＰ）される。そして、スケーラビリティＲの階層３及び階層２それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ２のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１８（ｂ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ２）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝２〜３，Ｃ＝２以外の座標成分（図１８（ｂ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ２）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ２）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ２−１が生成される。
【０１３２】
なお、図１８（ｃ）に示された３次元鍵要素マトリックスＱＭ３−１も、上述の３次元鍵要素マトリックスＱＭ１−１、ＱＭ２−１の生成と同様に、基準スケーラビリティＲの階層１よりも下位階層への分割鍵ｅＲＬＲ１（斜線で示された座標成分Ｐ５，１，２として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ１のハッシュ演算）を繰り返すことにより生成される。同様に、図１８（ｄ）に示された３次元鍵要素マトリックスＱＭ４−１も、基準スケーラビリティＣの階層０（最上位階層）よりも下位階層への分割鍵ｅＲＬＲ０（斜線で示された座標成分Ｐ５，０，２として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ０のハッシュ演算）を繰り返すことにより生成される。
【０１３３】
次に、図１９（ａ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの階層１（最下位階層よりも１階層だけ上位の階層）について、基準スケーラビリティＲの最下位階層に対応する分割鍵ｅＲＬＲ３を用いて生成された３次元鍵要素マトリックスＱＭ１−２を示す。
【０１３４】
分割鍵ｅＲＬＲ３が３次元マトリックスの座標成分Ｐ５，３，１（図１９（ａ）中の斜線部分）に割り当てられると、この分割鍵ｅＲＬＲ３は一旦座標成分Ｐ５，３，１にコピー（ＣＰ）される。そして、スケーラビリティＣの階層２（最下位階層）及び階層１（最下位階層よりも１階層だけ上位の階層）それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ３のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１９（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ３）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝３，Ｃ＝２〜３以外の座標成分（図１９（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ３）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ３）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ１−２が生成される。
【０１３５】
図１９（ｂ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの階層１について、基準スケーラビリティＲの階層２（最下位階層よりも１階層だけ上位の階層）に対応する分割鍵ｅＲＬＲ２を用いて生成された３次元鍵要素マトリックスＱＭ２−２を示す。
【０１３６】
この３次元鍵要素マトリックスＱＭ２−２の生成では、分割鍵ｅＲＬＲ２が３次元マトリックスの座標成分Ｐ５，２，１（図１９（ｂ）中の斜線部分）に割り当てられる。このとき、分割鍵ｅＲＬＲ２は一旦座標成分Ｐ５，２〜３，１〜２にコピー（ＣＰ）される。そして、スケーラビリティＣの階層２及び階層１であってスケーラビリティＲの階層３及び階層２それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ２のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図１９（ｂ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ２）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝２〜３，Ｃ＝１〜２以外の座標成分（図１９（ｂ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ２）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ２）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ２−２が生成される。
【０１３７】
なお、図１９（ｃ）に示された３次元鍵要素マトリックスＱＭ３−２も、上述の３次元鍵要素マトリックスＱＭ１−２、ＱＭ２−２の生成と同様に、スケーラビリティＣの階層１よりも下位階層であって基準スケーラビリティＲの階層１よりも下位階層それぞれへの分割鍵ｅＲＬＲ１（斜線で示された座標成分Ｐ５，１，１として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ１のハッシュ演算）を繰り返すことにより生成される。同様に、図１９（ｄ）に示された３次元鍵要素マトリックスＱＭ４−２も、基準スケーラビリティＣの階層１よりも下位階層であって基準スケーラビリティＲの階層０（最上位階層）よりも下位階層への分割鍵ｅＲＬＲ０（斜線で示された座標成分Ｐ５，０，１として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ０のハッシュ演算）を繰り返すことにより生成される。
【０１３８】
さらに、図２０（ａ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの階層０（最上位階層）について、基準スケーラビリティＲの階層３（最下位階層）に対応する分割鍵ｅＲＬＲ３を用いて生成された３次元鍵要素マトリックスＱＭ１−３を示す。
【０１３９】
分割鍵ｅＲＬＲ３が３次元マトリックスの座標成分Ｐ５，３，０（図２０（ａ）中の斜線部分）に割り当てられると、この分割鍵ｅＲＬＲ３は一旦座標成分Ｐ５，３，Ｃ＝１，２にコピー（ＣＰ）される。そして、スケーラビリティＣの階層２（最下位階層）〜階層０（最上位階層）であって基準スケーラビリティＲの階層３（最上位階層）それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ３のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図２０（ａ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ３）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝３，Ｃ＝０〜２以外の座標成分（図２０（ａ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ３）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ３）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ１−３が生成される。
【０１４０】
図２０（ｂ）は、基準スケーラビリティＬ、Ｒ以外のスケーラビリティＣの階層０（最上位階層）について、基準スケーラビリティＲの階層２（最下位階層よりも１階層だけ上位の階層）に対応する分割鍵ｅＲＬＲ２を用いて生成された３次元鍵要素マトリックスＱＭ２−３を示す。
【０１４１】
この３次元鍵要素マトリックスＱＭ２−３の生成では、分割鍵ｅＲＬＲ２が３次元マトリックスの座標成分Ｐ５，２，０（図２０（ｂ）中の斜線部分）に割り当てられる。このとき、分割鍵ｅＲＬＲ２は一旦座標成分Ｐ５，２〜３，０〜２にコピー（ＣＰ）される。そして、スケーラビリティＣの階層２（最上位階層）〜階層０（最下位階層）であってスケーラビリティＲの階層３及び階層２それぞれについて、一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ２のハッシュ演算がスケーラビリティＬの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分（図２０（ｂ）において実線で囲まれた領域に位置する全成分）に得られた演算データが割り当てられる。このとき、スケーラビリティＬの最上位階層に対応する座標成分には、演算データＨ＊５（ｅＲＬＲ２）が割り当てられる。一方、演算データが割り当てられた座標成分ＰＬ＝０〜５，Ｒ＝２〜３，Ｃ＝０〜２以外の座標成分（図２０（ｂ）において破線で囲まれた領域に位置する全成分）のそれぞれには、スケーラビリティＬの最上位階層に対応する座標成分に割り当てられた演算データＨ＊５（ｅＲＬＲ２）をさらに一方向性ハッシュ関数Ｈを利用してハッシュ演算することにより得られた演算データＨ＊６（ｅＲＬＲ２）が割り当てられる。以上の演算により、３次元鍵要素マトリックスＱＭ２−３が生成される。
【０１４２】
なお、図２０（ｃ）に示された３次元鍵要素マトリックスＱＭ３−３も、上述の３次元鍵要素マトリックスＱＭ１−３、ＱＭ２−３の生成と同様に、スケーラビリティＣの階層０（最上位階層）よりも下位階層であって基準スケーラビリティＲの階層１よりも下位階層それぞれへの分割鍵ｅＲＬＲ１（斜線で示された座標成分Ｐ５，１，０として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ１のハッシュ演算）を繰り返すことにより生成される。同様に、図２０（ｄ）に示された３次元鍵要素マトリックスＱＭ４−３も、基準スケーラビリティＣの階層０（最上位階層）よりも下位階層であって基準スケーラビリティＲの階層０（最上位階層）よりも下位階層への分割鍵ｅＲＬＲ０（斜線で示された座標成分Ｐ５，０，０として割り当てられる）のコピー動作、及びスケーラビリティＬの最下位階層から最上位階層へのハッシュ演算（一方向性ハッシュ関数Ｈを利用した分割鍵ｅＲＬＲ０のハッシュ演算）を繰り返すことにより生成される。
【０１４３】
以上のハッシュ演算が繰り返されることにより生成された、図１８（ａ）〜図２０（ｄ）に示された３次元鍵要素マトリックスＱＭ１−１〜ＱＭ４−１、ＱＭ１−２〜ＱＭ４−２、ＱＭ１−３〜ＱＭ４−３について、それぞれの一致する座標成分同士を結合することにより、第５実施形態に係る暗号鍵生成方法による３次元部分鍵マトリックスＱＭが得られる。
【０１４４】
以上の説明から、この発明を様々に変形しうることは明らかである。そのような変形は、この発明の思想および範囲から逸脱するものとは認めることはできず、すべての当業者にとって自明である改良は、以下の請求の範囲に含まれるものである。
【図面の簡単な説明】
【０１４５】
【図１】複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図である。
【図２】プログレッシブ順序を説明するための概念図である。
【図３】２種類の３階層スケーラビリティを有するディジタルデータの各データ単位（ＪＰＥＧ２０００の各パッケージに相当）と、それに対応する部分鍵をマトリクス状に表現した図である。
【図４】この発明に係る暗号鍵生成方法の第１実施形態を説明するための概念図である。
【図５】第１実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図６】この発明に係る暗号鍵生成方法の第２実施形態を説明するための概念図である。
【図７】第２実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図８】この発明に係る暗号鍵生成方法の第３実施形態を説明するための概念図である。
【図９】第３実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図１０】この発明に係る暗号鍵生成方法の第４実施形態として、３種類以上の階層的スケーラビリティを有するディジタルデータについての部分鍵の生成を説明するための概念図である。
【図１１】第４実施形態に係る暗号鍵生成方法の、部分鍵生成における階層テーブルと、部分鍵要素マトリクス及び部分鍵マトリクスの座標対応関係を示す図である。
【図１２】第４実施形態に係る暗号鍵生成方法の、部分鍵生成における部分鍵要素マトリクス及び部分鍵マトリクスの要素間対応関係を説明するための図である。
【図１３】多次元部分鍵マトリックス及び多次元鍵要素マトリックスにおける各座標成分配置の立体表示の例として例として３次元マトリックスと、第４実施形態を一般化した暗号鍵生成方法（図９及び１０）における分割鍵の割り当て動作を説明するための図である。
【図１４】第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＬ、Ｒの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。
【図１５】第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＲ、Ｃの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。
【図１６】第４実施形態を一般化した暗号鍵生成方法において、スケーラビリティＬ、Ｃの各階層に対応した鍵要素生成工程を立体表示された３次元マトリックスを用いて説明するための図である。
【図１７】この発明に係る暗号鍵生成方法の第５実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【図１８】第５実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である（基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最下位階層に対応する多次元鍵要素マトリックス群の生成）。
【図１９】第５実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である（基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最下位階層よりも１階層だけ上位の階層に対応する多次元鍵要素マトリックス群の生成）。
【図２０】第５実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である（基準スケーラビリティＬ、Ｒ以外の他のスケーラビリティＣの最上位階層に対応する多次元鍵要素マトリックス群の生成）。
【符号の説明】
【０１４６】
Ｍ１〜Ｍ３…鍵要素マトリクス、ＭＰａ〜ＭＰｃ…部分鍵要素マトリクス、ＭＰ１〜ＭＰ４…部分鍵マトリクス、ＱＭ…多次元部分鍵マトリックス、ＱＭＲＬ１〜ＱＭＲＬ４、ＱＭＲＣ１〜ＱＭＲＣ４、ＱＭＬＣ１〜ＱＭＬＣ３、ＱＭ１−１〜ＱＭ４−１、ＱＭ１−２〜ＱＭ４−２、ＱＭ１−３〜ＱＭ４−３…多次元鍵要素マトリックス。
【図１】
2009135871.tif 000005
【図２】
2009135871.tif 000006
【図３】
2009135871.tif 000007
【図４】
2009135871.tif 000008
【図５】
2009135871.tif 000009
【図６】
2009135871.tif 000010
【図７】
2009135871.tif 000011
【図８】
2009135871.tif 000012
【図９】
2009135871.tif 000013
【図１０】
2009135871.tif 000014
【図１１】
2009135871.tif 000015
【図１２】
2009135871.tif 000016
【図１３】
2009135871.tif 000017
【図１４】
2009135871.tif 000018
【図１５】
2009135871.tif 000019
【図１６】
2009135871.tif 000020
【図１７】
2009135871.tif 000021
【図１８】
2009135871.tif 000022
【図１９】
2009135871.tif 000023
【図２０】
2009135871.tif 000024