暗号鍵生成方法
【課題】 結託攻撃に対し耐性を確保するとともに、各スケーラビリティの階層にそれぞれ対応した暗号鍵の鍵長を低減させる。
【解決手段】 階層性を有するスケーラビリティ(R,L)の最下位階層データに対応する暗号鍵(K2,2)が、マスター鍵として、スケーラビリティ(R)の階層数で分割される。分割鍵(eR2,eR1,eR3)ごとに生成される鍵要素マトリクス(M1〜M3)には、スケーラビリティ(L)の階層性が保持されるよう、一方向性ハッシュ関数を利用したハッシュ演算が繰り返されることにより順次得られた演算データが割り当てられる。鍵要素マトリクス(M1〜M3)間で座標一致している鍵要素を結合させることにより、スケーラビリティ(R,L)の各階層に対応した部分鍵(K1,1〜K2,2)が生成される。
【解決手段】 階層性を有するスケーラビリティ(R,L)の最下位階層データに対応する暗号鍵(K2,2)が、マスター鍵として、スケーラビリティ(R)の階層数で分割される。分割鍵(eR2,eR1,eR3)ごとに生成される鍵要素マトリクス(M1〜M3)には、スケーラビリティ(L)の階層性が保持されるよう、一方向性ハッシュ関数を利用したハッシュ演算が繰り返されることにより順次得られた演算データが割り当てられる。鍵要素マトリクス(M1〜M3)間で座標一致している鍵要素を結合させることにより、スケーラビリティ(R,L)の各階層に対応した部分鍵(K1,1〜K2,2)が生成される。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化(暗号化)及び復号化(暗号解除)に利用される暗号鍵の生成に関し、特に、各スケーラビリティにおける階層のデータ単位それぞれに対応した部分暗号鍵を自動生成する技術に関するものである。
【背景技術】
【0002】
近年、ネットワークを介した情報通信サービスの普及により、不特定多数の相手に対してデータ伝送を行うサービス、例えば、画像(動画像の一フレームデータを含む)などディジタルコンテンツの配信サービスも多くなっている。それに伴い、ディジタルデータの保護技術もより高度な機能が求められている。
【0003】
一般に、符号化されたディジタル画像などは、符号化時に決定された品質(歪、解像度、色表現など)で復号される。しかしながら、通信路の多様化、通信端末の多様化、配信サービスの多様化などにより、符号化列の一部を復号することで符号化時に決定された品質とは異なる品質の画像を復号できること、すなわち、スケーラビリティが求められている。このスケーラビリティに対する要求を受け、例えば画像圧縮の国際標準であるJPEG2000(Joint Photographic Experts Group 2000)では、解像度等の尺度で、階層化されたスケーラビリティを提供している。また、このように品質の異なるデータを階層的に保護する保護技術では、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに、個別の部分鍵を用いて暗号化するのが一般的である。
【0004】
なお、このようなディジタルデータの保護技術として、例えば、特許文献1〜2や非特許文献1〜3が知られている。
【0005】
非特許文献1は、階層的スケーラビリティを有するディジタルデータに対し、一方向性ハッシュ関数を利用することで一つのマスター鍵から下位階層のデータ単位に対応する部分鍵を生成する技術が開示されている。また、非特許文献2には、非特許文献1の課題である、ストリーミングデータの順序に依存しない技術が開示されている。さらに、上記非特許文献3には、非特許文献1の課題である結託攻撃への耐性を向上させる技術が開示されている。
【0006】
なお、結託攻撃とは、各スケーラビリティごとに異なる階層レベルに対応した複数種類の暗号鍵を複数のユーザ間で共有することで、予め許諾された品質よりも高い品質での画像再生を実現する行為をいう。
【特許文献1】特開2004−312740号公報
【特許文献2】特開2003−204321号公報
【非特許文献1】Y.Wu, D.Ma, and R.H.Deng, “Progressive protection of JPEG 2000 condestreams.” In Proc. IEEE ICIP,pp.3447-3450, 2004
【非特許文献2】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
【非特許文献3】今泉祥子,藤吉正明,安部淑人,貴家仁志,“結託攻撃耐性を有するJPEG2000符号化画像の階層的暗号化方法”信学SIPシンポジウム,2006
【発明の開示】
【発明が解決しようとする課題】
【0007】
発明者らは、従来のデータ保護技術について詳細に検討した結果、以下のような課題を発見した。すなわち、品質の異なるディジタルデータを階層的に保護する場合、スケーラビリティの種類ごとに別々に管理するか、あるいは、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに個別の暗号鍵(部分鍵)を用いて暗号化することになる。
【0008】
特に、データ単位に生成された個別の部分鍵を管理する場合、階層数が増えるに従って、管理対象となる鍵の数が増加するだけでなく、結託耐性を維持するため、十分な鍵長を確保しなければならず、各スケーラビリティにおける階層増加に伴って、総鍵長が著しく多くなってしまう。
【0009】
逆に、1つのマスター鍵から各データ単位に対応した部分鍵を生成していく場合、部分鍵の数だけマスター鍵を分割していく必要があるため、非特許文献3のように、部分鍵数が増加すると、それぞれ生成される部分鍵の長さが短くせざるを得ない。この場合、十分な結託耐性は保証され得なくなる。
【0010】
この発明は上述のような課題を解決するためになされたものであり、階層的スケーラビリティを有するディジタルデータへの結託攻撃に対し十分な耐性を確保するとともに、各スケーラビリティの階層にそれぞれ対応した暗号鍵の鍵長を飛躍的に低減させる暗号鍵生成方法を提供することを目的としている。
【課題を解決するための手段】
【0011】
この発明に係る暗号鍵生成方法は、複数種類(≧2)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。当該暗号鍵生成方法は、画像圧縮の国際標準であるJPEG2000のパケット符号化列などのマルチメディアを使用する画像伝送システムやテレビ会議システムの他、ストリーミング配信サービスへの応用が可能である。また、当該暗号鍵生成方法は、マスター鍵から従属的により上位に位置する階層の部分鍵を生成していき、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。
【0012】
具体的に、この発明に係る暗号鍵生成方法は、最小処理単位として、選択された2種類のスケーラビリティそれぞれにおける階層のデータ単位に対応する部分鍵を生成する。当該暗号鍵生成方法は、マスター鍵の設定、マスター鍵から分割鍵の生成、分割鍵それぞれに対応した鍵要素マトリクスの生成、生成された鍵要素マトリクスの成分結合による部分鍵の生成を行う。鍵要素マトリクスは、一方のスケーラビリティの階層ごとに、それぞれの階層に対応した分割鍵に基づいて生成される。また、各鍵要素マトリクスは、2種類のスケーラビリティそれぞれの階層値(階層レベルに相当)により各成分座標が規定され、これにより、各マトリクス成分は、2種類のスケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、当該暗号鍵生成方法は、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵をそれぞれ生成することを特徴としている。したがって、暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、例えばマルチメディア配信サービスなどでは開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。このような場合、与えられた復号鍵自体が当該暗号鍵生成方法におけるマスター鍵となり、このマスター鍵に対応した各スケーラビリティの階層がそれぞれ最下位階層である。
【0013】
まず、用意されるマスター鍵としては、符号化対象であるディジタルデータが有する複数種類のスケーラビリティから選択された第1及び第2スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵が設定される。逆に、配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする。このマスター鍵は、第1及び第2スケーラビリティのうち基準スケーラビリティとして設定された第1スケーラビリティの階層数で分割され、該第1スケーラビリティの各階層に対応した分割鍵が生成される。
【0014】
分割鍵に基づいてそれぞれ生成される鍵要素マトリクスは、第1及び第2スケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、得られた分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスの生成では、少なくとも、該一の分割鍵に対応する第1スケーラビリティにおける階層であって第2スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てられる。これにより、第2スケーラビリティの階層性が維持される。
【0015】
続いて、分割鍵ごとに生成された鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、第1及び第2スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。この構成により、第1スケーラビリティの階層性も維持される。
【0016】
なお、この発明に係る暗号鍵生成方法において、上述の基準スケーラビリティとして、第1及び第2スケーラビリティのうち階層数の少ないスケーラビリティが選択されるのが好ましい。この場合、一部のスケーラビリティの階層数増加の影響を受けにくくなる。
【0017】
また、分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスにおいて、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも下位に位置する階層であって第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分には、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる。一方、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも上位に位置する階層であって第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第2スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【0018】
以上のように、この発明に係る暗号鍵生成方法は、プログレッション順序に応じて複数の符号化列とマスター鍵を用意しなければならない従来の暗号鍵生成方法とは異なり、符号化列のプログレッション順序の制限は受けない。また、この発明に係る暗号鍵生成方法は、マスター鍵から従属的に各データ単位に対応した暗号鍵(部分鍵)を生成し、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。これにより、符号化列及び管理する暗号鍵(マスター鍵)の情報量は飛躍的に低減され、ディジタルコンテンツや暗号鍵の管理、配信における安全性を効果的に向上させることが可能になる。
【0019】
さらに、この発明に係る暗号鍵生成方法は、符号化対象であるディジタルデータが3種類以上のスケーラビリティを有する場合、これら3種類以上のスケーラビリティから2種類のスケーラビリティを選択し、選択された2種類のスケーラビリティの組み合わせ全てについて、上述の最小処理単位を実行することにより部分鍵が生成される。
【0020】
すなわち、2種類のスケーラビリティの組み合わせ全てについて、組み合わせごとに部分鍵要素マトリクスが生成される。その際、複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルも生成される。この階層テーブルは、階層値の組み合わせにより、複数種類のスケーラビリティにおける階層値それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現している。また、この階層テーブルは、スケーラビリティの種類と階層値の対応関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスの成分を特定することができる。
【0021】
そこで、この発明では、階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち2つの階層値及びそのスケーラビリティの種類によって特定される、2種類のスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスそれぞれの成分を結合していく。このように階層値の組み合わせごとに結合された要素は、そのまま部分鍵要素マトリクスの成分である。したがって、部分鍵要素マトリクスそれぞれから階層テーブルによって対応付けられた各成分を結合していくことにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が順次生成されることになる。
【0022】
3種類以上のスケーラビリティの階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵の生成において、上述の暗号鍵生成方法よりもさらに結託攻撃への耐性を向上させることも可能である。
【0023】
具体的には、3種類以上のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意する(配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする)。このとき、3種類以上のスケーラビリティから第1及び第2基準スケーラビリティも選択される。第1基準スケーラビリティは、用意されたマスター鍵から分割鍵を生成するためのスケーラビリティであり、この第1基準スケーラビリティの階層数で用意されたマスター鍵を分割することにより、該第1基準スケーラビリティの各階層に対応した分割鍵が生成される。一方、第2基準スケーラビリティは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。
【0024】
当該暗号鍵生成方法では、3種類以上のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、これら3種類以上のスケーラビリティのうち第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく。そのため、スケーラビリティ数をS、各スケーラビリティの階層数NK(K=1,2,3,…,i−1,i)を小さいほうから順にN1,N2,…、Ni−1,Niで表すと、以下の数式(1)で与えられる総パケット数に対して、当該暗号鍵生成方法において生成される多次元鍵要素マトリックスの数は、以下の数式(2)になる。
【数1】
【数2】
【0025】
具体的には、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、生成された分割鍵のうち一の分割鍵に対応する第1基準スケーラビリティにおける階層であって第2基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てらあれる。これにより、得られる多次元鍵要素マトリックスにおいて、少なくとも第2基準スケーラビリティの階層性が維持される。
【0026】
続いて、第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。すなわち、得られた多次元鍵要素マトリックスは、第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの階層ごとに生成されるため、得られた多次元鍵要素マトリックスから最終的に生成される部分鍵マトリックスでは、該第1基準スケーラビリティの階層性も維持される。
【0027】
なお、第1及び第2スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスのそれぞれは、対応する該他のスケーラビリティ及び第1基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第1基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる。一方、対応する他のスケーラビリティ及び第1基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第2基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【0028】
なお、この発明に係る各実施例は、以下の詳細な説明及び添付図面によりさらに十分に理解可能となる。これら実施例は単に例示のために示されるものであって、この発明を限定するものと考えるべきではない。
【0029】
また、この発明のさらなる応用範囲は、以下の詳細な説明から明らかになる。しかしながら、詳細な説明及び特定の事例はこの発明の好適な実施例を示すものではあるが、例示のためにのみ示されているものであって、この発明の思想及び範囲における様々な変形および改良はこの詳細な説明から当業者には自明であることは明らかである。
【発明の効果】
【0030】
上述のようにこの発明によれば、マスター鍵から一方向性ハッシュ関数を利用して従属的に上位に位置する階層の部分鍵が生成されていくため、スケーラビリティそれぞれの階層レベルで特定される一つのデータ単位に対応する部分鍵は、いずれかのスケーラビリティの階層が上位に位置するデータ単位に対応する部分鍵からは生成できない。したがって、結託攻撃を防ぐことが可能になる。また、アクセス制御対象となるスケーラビリティを2種類のスケーラビリティの組み合わせごとに部分鍵を生成していくため、生成される部分鍵の鍵長を低減させることが可能になる。
【発明を実施するための最良の形態】
【0031】
以下、この発明に係る暗号鍵生成方法の各実施形態を、図1〜図20を参照しながら詳細に説明する。なお、図の説明において同一部位、同一要素には同一符号を付して重複する説明を省略する。
【0032】
この発明に係る暗号鍵生成方法は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。また、各実施形態では、簡単のため、階層的スケーラビリティを有するディジタルデータの具体例として、画像圧縮の国際標準であるJPEG2000の各パケット符号列に対応する部分鍵生成について説明する。なお、JPEG2000はスケーラビリティの種類に対して優先順位を与えることが可能である。符号化列においてこの順位は、データ単位であるパケットの構成順序(プログレッション順序)として表現される。このプログレッション順序を決定する要素としては、レイヤ(L)、解像度レベル(R)、コンポーネント(C)及びポジション(P)の4種類のスケーラビリティがある。
【0033】
図1は、複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図であって、JPEG2000のスケーラビリティのうちアクセス制御対象となるスケーラビリティを、レイヤ(L)及び解像度レベル(R)のみに制限したときの(濃淡画像の場合)、JPEG2000におけるパケット符号化列の復号パターンを示す。具体的に、図1において、レイヤ(スケーラビリティL)の階層数NLは3、解像度レベル(スケーラビリティR)の階層数NRは3である。なお、レイヤは、画質レイヤとも言われ、画像再生時におけるSNR(Signal/Noise Ratio)に対応した、ディジタル画像の算術符号化データを意味する。画質への影響が高い情報ほど高位のレイヤに含まれるため、上位レイヤのデータに対して下位レイヤのデータを追加していくことで段階的に再生画像の品質を向上させることができる。
【0034】
この図1において、Pi,j(i=0,…,NL−1;j=0,…,NR−1;iはスケーラビリティLの階層番号;jはスケーラビリティの階層番号)は、画像情報をもつJPEG2000パケットを表す。ある品質のJPEG2000符号化画像をQL,Rで表すと、QL,Rを得るためには図1の枠Aで囲まれたパケットPi,j(i=0,…,L;j=0,…,R)すべてを復号する必要がある。ここで、画像が正常に再生されるためには、復号されるパケットPi,jすべてが暗号解除されなくてはならない。したがって、アクセス制御において階層性を保持するため、パケットPi,jは個別に暗号化される必要がある。
【0035】
上述のようなJPEG2000において、プログレッション順序には、LRCP、RLCP、RPCL、PCRL、及びCPRLの5種類あり、それぞれ先頭の要素から順に優先される。図2は、図1に示されたJPEG2000パケット符号化列を復号する際の優先順位を示すプログレッシブ順序を説明するための概念図である。特に、図2(a)は、スケーラビリティL(レイヤ)が最優先されたLRCPプログレッション順序における復号順序であり、図2(b)は、スケーラビリティR(解像度レベル)を最優先させたRLCPのプログレッション順序における復号順序である。
【0036】
この発明に係る暗号鍵生成方法は、暗号鍵の管理と配信にかかる安全性及び生成容易性の面から鍵長を低減し、かつ、結託攻撃に対して耐性を有する。上述のようなJPEG2000パケットそれぞれの暗号鍵を生成するに当たり、当該暗号鍵生成方法は、各パケットを、スケーラビリティそれぞれの階層レベルにより特定されるマトリクス成分として扱うため、JPEG2000におけるプログレッション順序は問わない。一例として、図3(a)は、スケーラビリティL(レイヤ)の階層レベルとスケーラビリティR(解像度レベル)の階層レベルによりマトリクス表現されたパケットPL,R(L:0(最上位)、1、2(最下位);R:0(最上位)、1、2(最下位))を示す。また、図3(b)は、図3(a)のパケットPL,Rに対応するマトリクス表現された部分鍵KL,R(L:0、1、2;R:0、1、2)を示す。
【0037】
ここで、結託攻撃とは、2以上のユーザが暗号鍵を不正に共有することにより、正規に許諾された画質より高い画質での再生を可能とする攻撃をいう。具体的には、JPEG2000符号化画像を例として、最上位レイヤ(レイヤ0)のみ開示を許諾されたユーザと最上位解像度レベル(解像度レベル0)のみ開示を許諾されたユーザとが結託することを考える。この場合、パケットPi,jに対する暗号鍵をKi,jとすると、一方のユーザは3つのパケッP0,j(j=0,1,2)に対応する暗号鍵K0,j(j=0,1,2)を、他方のユーザは3つのパケッPi,0(i=0,1,2)に対応する暗号鍵Ki,0(i=0,1,2)を、それぞれ正規に許諾された鍵として得る。結託攻撃に対して耐性が十分でない場合、これらユーザが結託し、両者に許諾されていない暗号鍵K2,2、K2,0、K0,2、及びK1,1を不正に生成する可能性がある。この発明に係る暗号鍵生成方法では、以下の各実施形態において説明するように、あるパケットに対する暗号鍵(部分鍵)は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にある階層のパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位に位置する階層のパケットからは生成可能となっている。そのため、この発明に係る暗号鍵生成方法は、結託攻撃に対して耐性を有する。
【0038】
(第1実施形態)
以下、この発明に係る暗号鍵生成方法の第1実施形態を説明する。この第1実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを3、スケーラビリティRの階層数NRを3とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、3×3のマトリクス成分Pi,j(i=0,1,2;j=0,1,2)として扱われる。なお、図4は、この発明に係る暗号鍵生成方法の第1実施形態を説明するための概念図である。また、図5は、第1実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0039】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図4の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP2,2に対応する暗号鍵K2,2である。このマスター鍵K2,2が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。
【0040】
この第1実施形態では、NL=NR=3であるためスケーラビリティL、Rのいずれが選択されてもよいが、一例として、スケーラビリティRを基準スケーラビリティとして選択する。このとき、最小階層数3(スケーラビリティRの階層数)でマスター鍵K2,2を分割することにより、分割鍵eR2、eR1、eR0が得られる。これら分割鍵eR2、eR1、eR0はスケーラビリティRの各階層に対応したルート鍵(各マトリクス成分を生成するための鍵)であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1〜M3が生成される。
【0041】
鍵要素マトリクスM1〜M3それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR2、eR1、eR0から、図5に示されたように、順次生成される。
【0042】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル2(最下位階層)に対応したマトリクスとして、(2,2)成分に分割鍵eR2が割り当てられる。なお、図中、マトリクス成分eの上側添え字R2は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第1実施形態では、鍵要素マトリクスM1の成分をeR2(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0043】
分割鍵eR2に対応するスケーラビリティRにおける階層(階層レベル=2)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR2(1,2)、eR2(0,2)には、一方向性ハッシュ関数H*を利用した分割鍵eR2のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR2(1,2)にはH*(eR2(2,2))の演算データ、成分eR2(0,2)にはH*2(eR2(2,2))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル2について、スケーラビリティLの階層性が保持される。なお、この明細書では、一方向性ハッシュ関数H*のn(n=2、3、…)回演算を、H*nと表記する。
【0044】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル2よりも上位階層の成分eR2(i,j)(i=0,1,2;j=0,1)の全てには、成分eR2(0,2)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR2(0,2))(=H*3(eR2(2,2)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0045】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,2(i=0,1,2)に対してアクセス制御を有効にしている。
【0046】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル1に対応したマトリクスとして、(2,1)成分に分割鍵eR1が割り当てられる。以下、この第1実施形態では、鍵要素マトリクスM2の成分をeR1(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0047】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(1,1)には、H*(eR1(2,1))の演算データ、成分eR1(0,1)にはH*2(eR1(2,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0048】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2)の全てには、成分eR1(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*3(eR1(2,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0049】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも下位階層の成分eR1(i,2)(i=0,1、2)には、いずれも成分eR1(i,1)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR1(i,2)(i=0,1)には、一旦、成分eR1(2,1)の値がコピーされた成分eR1(2,2)に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図5等において、“CP”はコピーを意味する。
【0050】
以上のように生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2)に対してアクセス制御を有効にしている。
【0051】
同様に、鍵要素マトリクスM3では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(2,0)成分に分割鍵eR0が割り当てられる。以下、この第1実施形態では、鍵要素マトリクスM3の成分をeR0(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0052】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(1,0)には、H*(eR0(2,0))の演算データ、成分eR0(0,0)にはH*2(eR0(2,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0053】
一方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0054】
他方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,j)(i=0,1、2;j=1、2)には、いずれにも成分eR0(i,0)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,j)(i=0,1、2;j=1,2)には、一旦、成分eR0(2,0)の値がコピーされた成分eR0(2,2)、eR0(2,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。
【0055】
この場合も、生成された鍵要素マトリクスM3は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2)に対してアクセス制御を有効にしている。
【0056】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、部分鍵マトリクスMP1が生成される。すなわち、部分鍵マトリクスMP1の各成分が、パケットPi,j(i=0,1,2;j=0,1,2)それぞれに対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2;j=0,1,2)それぞれは、対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0057】
(第2実施形態)
次に、この発明に係る暗号鍵生成方法の第2実施形態を説明する。この第1実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを3、スケーラビリティRの階層数NRを2とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、3×2のマトリクス成分Pi,j(i=0,1,2;j=0,1)として扱われる。なお、図6は、この発明に係る暗号鍵生成方法の第2実施形態を説明するための概念図である。また、図6は、第2実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0058】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図6の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP2,1に対応する暗号鍵K2,1である。このマスター鍵K2,1が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。すなわち、スケーラビリティRの階層数(最小階層数2)でマスター鍵K2,1が分割されることにより、分割鍵eR1、eR0が得られる。これら分割鍵eR1、eR0はスケーラビリティRの各階層に対応したルート鍵であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1、M2が生成される。
【0059】
鍵要素マトリクスM1、M2それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR1、eR0から、図7に示されたように、順次生成される。
【0060】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル1(最下位階層)に対応したマトリクスとして、(2,1)成分に分割鍵eR1が割り当てられる。なお、図中、マトリクス成分eの上側添え字R1は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第2実施形態では、鍵要素マトリクスM1の成分をeR1(i,j)(i=0,1,2;j=0,1)と表記する。
【0061】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(1,1)、eR2(0,1)には、一方向性ハッシュ関数H*を利用した分割鍵eR1のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR1(1,1)にはH*(eR1(2,1))の演算データ、成分eR1(0,1)にはH*2(eR1(2,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0062】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2)の全てには、成分eR1(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*3(eR1(2,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0063】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2)に対してアクセス制御を有効にしている。
【0064】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(2,0)成分に分割鍵eR0が割り当てられる。以下、この第2実施形態では、鍵要素マトリクスM2の成分をeR0(i,j)(i=0,1,2;j=0,1)と表記する。
【0065】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(1,0)には、H*(eR0(2,0))の演算データ、成分eR0(0,0)にはH*2(eR0(2,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0066】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0067】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,1)(i=0,1、2)には、いずれも成分eR0(i,0)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,1)(i=0,1、2)には、一旦、成分eR0(2,0)の値がコピーされた成分eR0(1,1)、eR0(0,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図7においてCPはコピー動作を示す。
【0068】
この場合も、生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2)に対してアクセス制御を有効にしている。なお、図7等において、“CP”はコピーを意味する。
【0069】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1、M2間で座標一致している成分を結合することにより、部分鍵マトリクスMP2が生成される。すなわち、部分鍵マトリクスMP2の各成分が、パケットPi,j(i=0,1,2;j=0,1)それぞれに対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2;j=0,1)それぞれは、対応した部分鍵Ki,j(i=0,1,2;j=0,1)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0070】
(第3実施形態)
以下、この発明に係る暗号鍵生成方法の第3実施形態を説明する。この第3実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを4、スケーラビリティRの階層数NRを3とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、4×3のマトリクス成分Pi,j(i=0,1,2;j=0,1,2)として扱われる。なお、図8は、この発明に係る暗号鍵生成方法の第3実施形態を説明するための概念図である。また、図9は、第3実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0071】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図8の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP3,2に対応する暗号鍵K3,2である。このマスター鍵K3,2が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。すなわち、スケーラビリティRの階層数(最小階層数3)でマスター鍵K3,2が分割されることにより、分割鍵eR2、eR1、eR0が得られる。これら分割鍵eR2、eR1、eR0はスケーラビリティRの各階層に対応したルート鍵であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1〜M3が生成される。
【0072】
鍵要素マトリクスM1〜M3それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR2、eR1、eR0から、図9に示されたように、順次生成される。
【0073】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル2(最下位階層)に対応したマトリクスとして、(3,2)成分に分割鍵eR2が割り当てられる。なお、図中、マトリクス成分eの上側添え字R2は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第3実施形態では、鍵要素マトリクスM1の成分をeR2(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0074】
分割鍵eR2に対応するスケーラビリティRにおける階層(階層レベル=2)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR2(2,2)、eR2(1,2)、eR2(0,2)には、一方向性ハッシュ関数H*を利用した分割鍵eR2のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR2(2,2)にはH*(eR2(3,2))の演算データ、eR2(1,2)にはH*2(eR2(3,2))の演算データ、成分eR2(0,2)にはH*3(eR2(3,2))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル2について、スケーラビリティLの階層性が保持される。
【0075】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル2よりも上位階層の成分eR2(i,j)(i=0,1,2,3;j=0,1)の全てには、成分eR2(0,2)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR2(0,2))(=H*4(eR2(3,2)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0076】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,2(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0077】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル1に対応したマトリクスとして、(3,1)成分に分割鍵eR1が割り当てられる。以下、この第3実施形態では、鍵要素マトリクスM2の成分をeR1(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0078】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(2,1)には、H*(eR1(3,1))の演算データ、成分eR1(1,1)には、H*2(eR1(3,1))の演算データ、成分eR1(0,1)にはH*3(eR1(3,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0079】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2,3)の全てには、成分eR2(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*4(eR1(3,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0080】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも下位階層の成分eR1(i,2)(i=0,1、2,3)には、いずれも成分eR1(i,1)(i=0,1、2,3)と同じ値がそれぞれ割り当てられる。なお、成分eR1(i,2)(i=0,1,2)には、一旦、成分eR1(3,1)の値がコピーされた成分eR1(3,2)に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図9等において、“CP”はコピーを意味する。
【0081】
以上のように生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0082】
同様に、鍵要素マトリクスM3では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(3,0)成分に分割鍵eR0が割り当てられる。以下、この第3実施形態では、鍵要素マトリクスM3の成分をeR0(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0083】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(2,0)には、H*(eR0(3,0))の演算データ、成分eR0(1,0)には、H*2(eR0(3,0))の演算データ、成分eR0(0,0)にはH*3(eR0(3,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0084】
一方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0085】
他方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,j)(i=0,1、2,3;j=1、2)には、いずれも成分eR0(i,0)(i=0,1,2,3)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,j)(i=0,1、2,3;j=1,2)には、一旦、成分eR0(3,0)の値がコピーされた成分eR0(2,2)、eR0(3,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図9においてCPはコピー動作を示す。
【0086】
この場合も、生成された鍵要素マトリクスM3は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0087】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、部分鍵マトリクスMP3が生成される。すなわち、部分鍵マトリクスMP3の各成分が、パケットPi,j(i=0,1,2,3;j=0,1,2)それぞれに対応した部分鍵Ki,j(i=0,1,2,3;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2,3;j=0,1,2)それぞれは、対応した部分鍵Ki,j(i=0,1,2,3;j=0,1,2)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0088】
(結託攻撃耐性の評価)
続いて、上述のように構成された第1〜第3実施形態に係る暗号鍵生成方法により生成された暗号鍵(各階層のパケットに対応した部分鍵)の結託攻撃に対する耐性について、評価する。
【0089】
まず、この評価では、階層数NLのスケーラビリティLと階層数NRのスケーラビリティR(解像度レベル)を有するJPEG2000データを符号化する場合を前提とする。
【0090】
JPEG2000のパケットPi,j(i=0,1,…,NL−1;j=0,1,…,NR−1)に対する部分鍵Ki,jは、最下位のパレットPNL−1,NR−1に対する部分鍵KNL−1,NR−1をマスター鍵とし、一方向性ハッシュ関数H*を従属的に生成される。なお、階層の上位及び下位の概念は図1と同じである。すなわち、部分鍵Ki,jは、スケーラビリティL、RのいずれにおいてもパケットPi,jの階層より下位又は同位の全ての階層のパケットPa1,b1(a1=i,i−1,…NL−1;b1=j,j−1,…,NR−1)に対応した部分鍵Ka1,b1から従属的に生成されなければならない。この条件の下で、部分鍵Ki,jがスケーラビリティL、RのいずれにおいてもパケットPi,jより上位に位置する階層のパケットPa2,b2(a2=0,1,…i−1;b2=0,1,…,j−1)に対応する部分鍵Ka2,b2から、結託攻撃により不正に生成されないためには、該部分鍵Ki,jを構成する少なくとも一部の要素が部分鍵Pa2,b2よりも下位階層のパケットに対応した要素である必要がある。
【0091】
例えば、NR<NLと仮定する。スケーラビリティRの階層j(0≦j≦NR−1)である全てのパケットPi,j(i=0,1,…,NL−1)を対象とする部分鍵Ki,jの要素eRji,jは、鍵要素マトリクスMjの要素演算において、ルート鍵としての要素eRjから、一方向性ハッシュ関数H*を利用したハッシュ演算H*(NL−1−i)(eRj)により従属的に生成される。このとき、スケーラビリティRの下位階層b1(<j)である全てのパケットPi,b1(i=0,1,…,NL−1)を対象とする部分鍵Ki,b1の要素eRji,b1には、鍵要素マトリクスMjにおける上位階層のハッシュ演算値H*(NL−1−i)(eRj)がそのまま反映される(コピーされる)。一方、スケーラビリティRにおいて上位階層b2(>j)である全てのパケットPi,b2(i=0,1,…,NL−1)を対象とする部分鍵Ki,b2の要素eRji,b2には、ハッシュ演算値H*NL(eRj)が割り当てられる。
【0092】
そのため、下位階層の部分鍵を構成する要素の少なくとも一部には、上位階層の部分鍵が反映される一方、上位階層の部分鍵を構成する要素には、下位階層の部分鍵の要素が反映されない。すなわち、この発明に係る暗号鍵生成方法により生成される部分鍵では、上位階層の部分鍵からは下位階層の部分鍵は生成されず、よって、結託攻撃に対する耐性が得られる。
【0093】
(暗号解除における暗号鍵生成)
次に、暗号解除における暗号鍵(許可された各パケットに対応した部分鍵)の生成について説明する。上述の暗号鍵生成では、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵がそれぞれ生成された。暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。
【0094】
具体的には、NL=NR=3場合、図1に示されたように、スケーラビリティL(レイヤ)及びスケーラビリティR(解像度レベル)までの濃淡画像QL,R(0≦L≦NL、0≦R≦NR)を要求したユーザは、JPEG2000のパケット符号列PL,Rを最下位パケット(スケーラビリティL、Rそれぞれにおいて最下位に位置する階層のパケット)として画像の開示を許諾され、そのパケットに対する鍵KL,R(0≦L≦2、0≦R≦2)を受信する。なお、図1において、ユーザが符号化画像QL,Rを許可された場合、該符号化画像QL,Rに対応した鍵KL,Rを利用して、枠A((NL−R+1)×(NR−L+1))で囲まれた各パケットPに対応した暗号解除鍵(復号鍵)が生成される。また、この場合、鍵KL,Rから生成される分割鍵eR2、eR1、eR0に対応した鍵要素マトリクスM1〜M3も(NL−R+1)×(NR−L+1)マトリクスとなる。
【0095】
以下の説明では、図1において、ユーザが符号化画像Q1,1を許可された場合について説明する。この場合、鍵生成は図5の一部に相当しており、該符号化画像Q1,1に対応した鍵K1,1を利用して、枠Aで囲まれた各パケットP1,0、P0,1、P0,0に対応した暗号解除鍵(復号鍵)が生成される。
【0096】
そのため、ユーザ側では、まず、受信された部分鍵K1,1をマスター鍵として、スケーラビリティRの階層数で分割することにより(3分割)、3つの分割鍵eR2、eR1、eR0を生成する。
【0097】
続いて、スケーラビリティRの3つの階層ごとに鍵要素マトリクスを生成する。ここで、3つの分割鍵eR2、eR1、eR0のうち、対応するスケーラビリティRの階層が受信した鍵K1,1の対応する階層よりも下位の分割鍵は、もう一つのスケーラビリティLの階層レベルが−1となるハッシュ演算データである。したがって、この場合には、鍵要素マトリクスの全成分に対応する部分鍵と同じ値を予め割り当てておく。
【0098】
まず、スケーラビリティRの階層2に対応する2×2の鍵要素マトリクスM1の生成において、部分鍵eR2は、スケーラビリティLの階層−1に相当するハッシュ演算データである。すなわち、スケーラビリティRの分割鍵eR2に対応する階層(階層レベル:2)は、受信された鍵K1,1に対応するスケーラビリティRの階層(階層レベル:1)よりも下位にあるため、該分割鍵eR2の値はスケーラビリティLの階層レベルが−1のときのハッシュ演算値である。この場合、分割鍵eR2に対応する2×2の鍵マトリクスM1の全マトリクス成分eR2(0,1)、eR2(1,1)、eR2(0,0)、eR2(1,0)には、分割鍵eR2と同じ値(スケーラビリティLの階層レベルは−1)が割り当てられる。
【0099】
次に、スケーラビリティRの階層1に対応する2×2の鍵要素マトリクスM2の生成では、まず、eR1(1,1)成分に分割鍵eR1の値が割り当てられる。スケーラビリティLの階層が上位に位置する成分eR1(0,1)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR1(1,1))が割り当てられる。また、スケーラビリティRの分割鍵eR1に対応した階層(階層レベル:1)よりも上位階層(階層レベル:0)に対応する成分eR1(1,0)、eR1(0,0)それぞれにはスケーラビリティLの階層レベル:−1となるハッシュ演算データH*2(eR2(1,1))が割り当てられる。逆に、スケーラビリティRの分割鍵eR1に対応した階層(階層レベル:1)よりも下位階層(階層レベル:2)は、存在しないため、ハッシュ演算は行われない。
【0100】
一方、スケーラビリティRの階層0に対応する2×2の鍵要素マトリクスM3の生成では、スケーラビリティRの分割鍵eR0に対応した階層(階層レベル:0)よりも上位階層(階層レベル:−1)は存在しない。そこで、まず、eR0(1,0)成分に分割鍵eR0の値が割り当てられる。スケーラビリティLの階層が上位に位置する成分eR0(0,0)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR1(1,0))が割り当てられる。逆に、スケーラビリティRの分割鍵eR0に対応した階層(階層レベル:0)よりも下位階層(階層レベル:1)には、eR0(1,1)成分に成分eR0(1,0)値がコピーされ、このコピー値に基づいてハッシュ演算が順次行われる。すなわち、スケーラビリティLの階層が上位に位置する成分eR0(0,1)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR0(1,1))が割り当てられる。
【0101】
このように生成された、スケーラビリティRの各階層に対応した2×2の鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、マスター鍵K1,1から、パケットP1,0、P0,1、P0,0に対応した復号鍵K1,0、K0,1、K0,0、)が生成される。
【0102】
上述のように、あるパケットに対する部分鍵は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にあるパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位にあるパケットからは生成可能である。そのため、結託攻撃に対して耐性を有する。
【0103】
(第4実施形態)
図10は、この発明に係る暗号鍵生成方法の第4実施形態として、3種類以上の階層的スケーラビリティを有するディジタルデータについて、部分鍵の生成を説明するための概念図である。また、図11は、図10の部分鍵生成における階層テーブル11aと、部分鍵要素マトリクスMPa〜MPc及び部分鍵マトリクスMP4の座標対応関係を示す図である。図12は、図10の部分鍵生成における部分鍵要素マトリクスMPa〜MPc及び部分鍵マトリクスMP4の要素間対応関係を説明するための図である。
【0104】
アクセス制御対象のスケーラビリティが3種類以上の場合、まず2種類のスケーラビリティの組合せに対して上述の鍵生成手順を最小処理単位として繰返す方式が考えられる。このとき、アクセス制御対象のスケーラビリティ数をNSとすると、最小処理単位の繰り返し回数は、NSC2(=(NS(NS−1))/2)となる。
【0105】
図10に示された例では、3種類のスケーラビリティとして、3階層のL(レイヤ)、2階層のR(解像度レベル)及び3階層のC(コンポーネント)を有するディジタルデータにおける各パケットに対応した暗号鍵を生成する。この場合、スケーラビリティR、Lの組について部分鍵要素マトリクスMPb(成分KRL(0,0)〜成分KRL(2,1))と、スケーラビリティR、Cの組について部分鍵要素マトリクスMPc(成分KRC(0,0)〜成分KRC(2,1))と、スケーラビリティL、Cの組について部分鍵要素マトリクスMPa(成分KLC(0,0)〜成分KLC(2,2))が、上述の第1〜第3実施形態と同様の演算工程を経て順次生成される。
【0106】
その際、図11に示されたように、スケーラビリティL、R、Cにおける階層値の全組み合わせを示す階層テーブル11aも生成される。この階層テーブル11aは、各組み合わせの階層値群により、スケーラビリティL、R、Cにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスMP4を座標表現している。また、この階層テーブル11aは、スケーラビリティの種類と階層値の関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスMPa〜MPcの成分を特定することができる。すなわち、階層テーブル11aにおける階層値の全組み合わせに対応した、部分鍵要素テーブル11bが生成される。
【0107】
このように生成された部分鍵要素テーブル11bに列挙された鍵組み合わせは、部分鍵マトリクスMP4の各成分座標を示す階層テーブル11aの階層値組み合わせに対応している。部分鍵マトリクスMP4の各成分KL、R,C(L=0,1,2;R=0,1;C=0,1,2)は、図12(a)に示されたように、部分鍵要素テーブル11bにおいて一の組み合わせを構成する鍵要素KRLR,L、KRCR,C、KLCL,Cを結合することにより得られる。したがって、部分鍵マトリクスMP4の各成分座標を示す階層テーブル11aの全組み合わせについて、一の組み合わせに対応した部分鍵要素テーブル11bにおける鍵要素それぞれを結合していくことにより(図12(b)参照)、部分鍵マトリクスMP4が得られる。
【0108】
このように得られた部分鍵マトリクスMP4の各成分が、スケーラビリティとして、3階層のL(レイヤ)、2階層のR(解像度レベル)及び3階層のC(コンポーネント)を有するディジタルデータにおける各パケットに対応した暗号鍵となる。すなわち、部分鍵マトリクスMP4の各成分が、その成分座標を表すスケーラビリティの階層値で特定されるパケットに対応した部分鍵である。
【0109】
なお、アクセス制御対象のスケーラビリティが3種類以上の場合であっても、2種類のスケーラビリティの場合と同様に、結託攻撃耐性を有している。
【0110】
上述の第4実施形態に係る暗号鍵生成方法は、第1〜第3実施形態と同様に、2次元マトリクス表現を用いて説明されたが、以下、3次元マトリクス表現を用いて立体化した状態で、第4実施形態を一般化した暗号鍵生成方法を説明する。なお、以下の説明では、アクセス制御対象となるスケーラビリティL、R、Cについて、該スケーラビリティL(レイヤ)の階層数NLを6、スケーラビリティR(解像度レベル)の階層数NRを4、スケーラビリティC(コンポーネント)の階層数NCを3とする。このとき、スケーラビリティL、R、Cにおける各階層のパケットは、図13(a)に示されたように、6×4×3のマトリクス成分Pi,j,k(i=0,1,2,3,4,5;j=0,1,2,3;k=0,1,2)として扱われる。なお、図13(a)は、3次元部分鍵マトリックスQMにおける各座標成分配置の立体表示である(3次元鍵要素マトリックスも同様)。
【0111】
図13(a)に示されたように、スケーラビリティL、R、Cそれぞれの最下位階層に対応した座標成分K5,3,2がマスター鍵となる。また、座標成分K0,0,0がスケーラビリティL、R、Cそれぞれの最上位階層に対応した座標成分である。
【0112】
上述の第4実施形態に係る暗号鍵生成方法に従って、図13(a)のような6×4×3の3次元部分鍵マトリックスQMを生成する場合、まず、最下位部分鍵K5,3,2を2種類のスケーラビリティに関して行われる最小処理単位の繰り返し回数NSC2だけ分割し、それぞれの最小処理単位用のマスター鍵KRL、KRC、KLCを生成する。ここで、マスター鍵KRLは、スケーラビリティL、Rに関する鍵要素生成用のマスター鍵である。マスター鍵KRCは、スケーラビリティR、Cに関する鍵要素生成用のマスター鍵である。また、マスター鍵KLCは、スケーラビリティL、Cに関する鍵要素生成用のマスター鍵である(図13(b)参照)。
【0113】
図14は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Rの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティL、Rに関する最小処理単位において、基準スケーラビリティはRとし、該スケーラビリティRの階層数4でマスター鍵KRLを分割することにより、4つの分割鍵eRLR3、eRLR2、eRLR1、eRLR0が得られる(図13(b)参照)。
【0114】
まず、分割鍵eRLR3が3次元マトリックスの座標成分P5,3,2(図14(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図14(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図14(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRL1が生成される。
【0115】
続いて、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,2(図14(b)中の斜線部分)に割り当てられると、この分割鍵eRLR2は一旦座標成分P5,3,2にコピー(CP)される。そして、スケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図14(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=2以外の座標成分(図14(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRL2が生成される。
【0116】
上述と同様に、分割鍵eRLR1(斜線で示された座標成分P5,1,2として割り当てられる)のハッシュ演算により図14(c)に示された3次元鍵要素マトリックスQMRL3も生成される。なお、図14(c)において、Hはハッシュ演算を示し、CPは座標成分間における演算データのコピー動作を意味する。さらに、図14(d)に示されたように、分割鍵eRLR0(斜線で示された座標成分P5,0,2として割り当てられる)のハッシュ演算により3次元鍵要素マトリックスQMRL4も生成される。
【0117】
次に、図15は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティR、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティR、Cに関する最小処理単位において、基準スケーラビリティはRとし、該スケーラビリティRの階層数4でマスター鍵KRCを分割することにより、4つの分割鍵eRCR3、eRCR2、eRCR1、eRCR0が得られる(図13(b)参照)。
【0118】
分割鍵eRCR3が3次元マトリックスの座標成分P6,4,3(図15(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRCR3のハッシュ演算がスケーラビリティCの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図15(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティCの最上位階層に対応する座標成分には、演算データH*2(eRCR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=5,R=3,C=0〜2以外の座標成分(図15(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティCの最上位階層に対応する座標成分に割り当てられた演算データH*2(eRCR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*3(eRCR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRC1が生成される。
【0119】
図15(b)に示された3次元鍵要素マトリックスQMRC2は、基準スケーラビリティRの階層2よりも下位階層への分割鍵eRCR2(斜線で示された座標成分P5,2,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR2のハッシュ演算)を繰り返すことにより生成される。同様に、図15(c)に示された3次元鍵要素マトリックスQMRC3も、基準スケーラビリティRの階層1よりも下位階層への分割鍵eRCR1(斜線で示された座標成分P5,1,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR1のハッシュ演算)を繰り返すことにより生成される。さらに、図15(d)に示された3次元鍵要素マトリックスQMRC4も、基準スケーラビリティRの階層0(最上位階層)よりも上位階層への分割鍵eRCR0(斜線で示された座標成分P5,0,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最下位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR0のハッシュ演算)を繰り返すことにより生成される。
【0120】
図16は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティL、Cに関する最小処理単位において、基準スケーラビリティはCとし、該スケーラビリティCの階層数3でマスター鍵KLCを分割することにより、3つの分割鍵eLCC2、eLCC1、eLCC0が得られる(図13(b)参照)。
【0121】
分割鍵eLCC2が3次元マトリックスの座標成分P6,4,3(図16(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eLCC3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図16(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eLCC2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図16(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eLCC2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eLCC2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMLC1が生成される。
【0122】
図16(b)に示された3次元鍵要素マトリックスQMLC2は、基準スケーラビリティCの階層1よりも下位階層への分割鍵eLCC1(斜線で示された座標成分P5,3,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eLCC1のハッシュ演算)を繰り返すことにより生成される。同様に、図16(c)に示された3次元鍵要素マトリックスQMLC3も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層への分割鍵eLCC0(斜線で示された座標成分P5,3,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eLCC0のハッシュ演算)を繰り返すことにより生成される。
【0123】
以上のハッシュ演算が繰り返されることにより生成された、図14(a)〜図16(c)に示された3次元鍵要素マトリックスQMRL1〜QMRL4、QMRC1〜QMRC4、QMLC1〜QMLC3について、それぞれの一致する座標成分同士を結合することにより、第4実施形態を一般化した暗号鍵生成方法による3次元部分鍵マトリックスQMが得られる。
【0124】
(第5実施形態)
上述の第4実施形態に係る暗号鍵生成方法は、あくまでも2種類のスケーラビリティに関する部分鍵生成手中を最小処理単位としているため、各スケーラビリティの階層数が増加してくると得られた部分鍵では3人以上の結託攻撃は防げない(図13(a)の3次元部分鍵マトリックスQMのような多次元部分鍵マトリックスにおいて、同一部分鍵を有する複数の座標線分が存在する)。そこで、第5実施形態では、3人以上の結託攻撃に対しても十分な耐性を有するに暗号鍵生成方法を提案する。この第5実施形態に係る暗号鍵生成方法も、図13(a)に示された3次元部分かぎマトリックスQMを参照しながら説明することとし、アクセス制御対象となるスケーラビリティL、R、Cについて、該スケーラビリティL(レイヤ)の階層数NLを6、スケーラビリティR(解像度レベル)の階層数NRを4、スケーラビリティC(コンポーネント)の階層数NCを3とする。このとき、スケーラビリティL、R、Cにおける各階層のパケットは、6×4×3のマトリクス成分Pi,j,k(i=0,1,2,3,4,5;j=0,1,2,3;k=0,1,2)として扱われる。また、用意されるマスター鍵は、図13(a)に示されたように、スケーラビリティL、R、Cそれぞれの最下位階層に対応した座標成分K5,3,2がマスター鍵となる(座標成分K0,0,0は、スケーラビリティL、R、Cそれぞれの最上位階層に対応した座標成分)。
【0125】
まず、この第5実施形態に係るに暗号鍵生成方法は、図17に示されたように、3種類以上のスケーラビリティのうち2種類のスケーラビリティを予め基準スケーラビリティに設定する。図17に示された例では、スケーラビリティL、Rが基準スケーラビリティに設定されている。特に、基準スケーラビリティR(第1基準スケーラビリティ)は、用意されたマスター鍵K5,3,2から分割鍵を生成するためのスケーラビリティであり、この基準スケーラビリティRの階層数4で用意されたマスター鍵を分割することにより、基準スケーラビリティRの各階層に対応した4つの分割鍵eRLR3、eRLR2、eRLR1、eRLR0が生成される。一方、基準スケーラビリティLは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。なお、図17は、この発明に係る暗号鍵生成方法の第5実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【0126】
第5実施形態に係る暗号鍵生成方法では、3種類以上のスケーラビリティL、R、Cにおける階層値で座標表現された3次元鍵要素マトリクス(図13(a)参照)を、基準スケーラビリティL、Rを除く他のスケーラビリティCの各階層について、基準スケーラビリティRの各階層に対応した一連のハッシュ演算ごとに生成していく。そのため、この第5実施形態では、3種類のスケーラビリティL、R、C(Lの階層数:6;Rの階層数:4;Cの階層数:3)について、上記数式(1)で与えられる総パケット数は72であり、上記数式(2)で与えられる3次元鍵要素マトリックスの生成数は、12となる。
【0127】
なお、図18〜図20は、第5実施形態に係る暗号鍵生成方法による3次元鍵要素マトリックスの生成工程を説明するための図である。特に、図18は、基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層(階層2)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−1、QM2−1、QM3−1、QM4−1を示す。図19は、基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層よりも1階層だけ上位の階層(階層1)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−2、QM2−2、QM3−2、QM4−2を示す。図20は、基準スケーラビリティL、R以外の他のスケーラビリティCの最上位階層(階層0)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−3、QM2−3、QM3−3、QM4−3を示す。
【0128】
まず、図18(a)は、基準スケーラビリティL、R以外のスケーラビリティCの最下位階層2について、基準スケーラビリティRの最下位階層に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−1を示す。
【0129】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,2(図18(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図18(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図18(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−1が生成される。
【0130】
図18(b)は、基準スケーラビリティL、R以外のスケーラビリティCの最下位階層2について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−1を示す。
【0131】
この3次元鍵要素マトリックスQM2−1の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,2(図18(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,3,2にコピー(CP)される。そして、スケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図18(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=2以外の座標成分(図18(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−1が生成される。
【0132】
なお、図18(c)に示された3次元鍵要素マトリックスQM3−1も、上述の3次元鍵要素マトリックスQM1−1、QM2−1の生成と同様に、基準スケーラビリティRの階層1よりも下位階層への分割鍵eRLR1(斜線で示された座標成分P5,1,2として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図18(d)に示された3次元鍵要素マトリックスQM4−1も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,2として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0133】
次に、図19(a)は、基準スケーラビリティL、R以外のスケーラビリティCの階層1(最下位階層よりも1階層だけ上位の階層)について、基準スケーラビリティRの最下位階層に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−2を示す。
【0134】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,1(図19(a)中の斜線部分)に割り当てられると、この分割鍵eRLR3は一旦座標成分P5,3,1にコピー(CP)される。そして、スケーラビリティCの階層2(最下位階層)及び階層1(最下位階層よりも1階層だけ上位の階層)それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図19(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2〜3以外の座標成分(図19(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−2が生成される。
【0135】
図19(b)は、基準スケーラビリティL、R以外のスケーラビリティCの階層1について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−2を示す。
【0136】
この3次元鍵要素マトリックスQM2−2の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,1(図19(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,2〜3,1〜2にコピー(CP)される。そして、スケーラビリティCの階層2及び階層1であってスケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図19(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=1〜2以外の座標成分(図19(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−2が生成される。
【0137】
なお、図19(c)に示された3次元鍵要素マトリックスQM3−2も、上述の3次元鍵要素マトリックスQM1−2、QM2−2の生成と同様に、スケーラビリティCの階層1よりも下位階層であって基準スケーラビリティRの階層1よりも下位階層それぞれへの分割鍵eRLR1(斜線で示された座標成分P5,1,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図19(d)に示された3次元鍵要素マトリックスQM4−2も、基準スケーラビリティCの階層1よりも下位階層であって基準スケーラビリティRの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0138】
さらに、図20(a)は、基準スケーラビリティL、R以外のスケーラビリティCの階層0(最上位階層)について、基準スケーラビリティRの階層3(最下位階層)に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−3を示す。
【0139】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,0(図20(a)中の斜線部分)に割り当てられると、この分割鍵eRLR3は一旦座標成分P5,3,C=1,2にコピー(CP)される。そして、スケーラビリティCの階層2(最下位階層)〜階層0(最上位階層)であって基準スケーラビリティRの階層3(最上位階層)それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図20(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=0〜2以外の座標成分(図20(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−3が生成される。
【0140】
図20(b)は、基準スケーラビリティL、R以外のスケーラビリティCの階層0(最上位階層)について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−3を示す。
【0141】
この3次元鍵要素マトリックスQM2−3の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,0(図20(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,2〜3,0〜2にコピー(CP)される。そして、スケーラビリティCの階層2(最上位階層)〜階層0(最下位階層)であってスケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図20(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=0〜2以外の座標成分(図20(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−3が生成される。
【0142】
なお、図20(c)に示された3次元鍵要素マトリックスQM3−3も、上述の3次元鍵要素マトリックスQM1−3、QM2−3の生成と同様に、スケーラビリティCの階層0(最上位階層)よりも下位階層であって基準スケーラビリティRの階層1よりも下位階層それぞれへの分割鍵eRLR1(斜線で示された座標成分P5,1,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図20(d)に示された3次元鍵要素マトリックスQM4−3も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層であって基準スケーラビリティRの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0143】
以上のハッシュ演算が繰り返されることにより生成された、図18(a)〜図20(d)に示された3次元鍵要素マトリックスQM1−1〜QM4−1、QM1−2〜QM4−2、QM1−3〜QM4−3について、それぞれの一致する座標成分同士を結合することにより、第5実施形態に係る暗号鍵生成方法による3次元部分鍵マトリックスQMが得られる。
【0144】
以上の説明から、この発明を様々に変形しうることは明らかである。そのような変形は、この発明の思想および範囲から逸脱するものとは認めることはできず、すべての当業者にとって自明である改良は、以下の請求の範囲に含まれるものである。
【図面の簡単な説明】
【0145】
【図1】複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図である。
【図2】プログレッシブ順序を説明するための概念図である。
【図3】2種類の3階層スケーラビリティを有するディジタルデータの各データ単位(JPEG2000の各パッケージに相当)と、それに対応する部分鍵をマトリクス状に表現した図である。
【図4】この発明に係る暗号鍵生成方法の第1実施形態を説明するための概念図である。
【図5】第1実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図6】この発明に係る暗号鍵生成方法の第2実施形態を説明するための概念図である。
【図7】第2実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図8】この発明に係る暗号鍵生成方法の第3実施形態を説明するための概念図である。
【図9】第3実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図10】この発明に係る暗号鍵生成方法の第4実施形態として、3種類以上の階層的スケーラビリティを有するディジタルデータについての部分鍵の生成を説明するための概念図である。
【図11】第4実施形態に係る暗号鍵生成方法の、部分鍵生成における階層テーブルと、部分鍵要素マトリクス及び部分鍵マトリクスの座標対応関係を示す図である。
【図12】第4実施形態に係る暗号鍵生成方法の、部分鍵生成における部分鍵要素マトリクス及び部分鍵マトリクスの要素間対応関係を説明するための図である。
【図13】多次元部分鍵マトリックス及び多次元鍵要素マトリックスにおける各座標成分配置の立体表示の例として例として3次元マトリックスと、第4実施形態を一般化した暗号鍵生成方法(図9及び10)における分割鍵の割り当て動作を説明するための図である。
【図14】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Rの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図15】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティR、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図16】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図17】この発明に係る暗号鍵生成方法の第5実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【図18】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層に対応する多次元鍵要素マトリックス群の生成)。
【図19】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層よりも1階層だけ上位の階層に対応する多次元鍵要素マトリックス群の生成)。
【図20】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最上位階層に対応する多次元鍵要素マトリックス群の生成)。
【符号の説明】
【0146】
M1〜M3…鍵要素マトリクス、MPa〜MPc…部分鍵要素マトリクス、MP1〜MP4…部分鍵マトリクス、QM…多次元部分鍵マトリックス、QMRL1〜QMRL4、QMRC1〜QMRC4、QMLC1〜QMLC3、QM1−1〜QM4−1、QM1−2〜QM4−2、QM1−3〜QM4−3…多次元鍵要素マトリックス。
【技術分野】
【0001】
この発明は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化(暗号化)及び復号化(暗号解除)に利用される暗号鍵の生成に関し、特に、各スケーラビリティにおける階層のデータ単位それぞれに対応した部分暗号鍵を自動生成する技術に関するものである。
【背景技術】
【0002】
近年、ネットワークを介した情報通信サービスの普及により、不特定多数の相手に対してデータ伝送を行うサービス、例えば、画像(動画像の一フレームデータを含む)などディジタルコンテンツの配信サービスも多くなっている。それに伴い、ディジタルデータの保護技術もより高度な機能が求められている。
【0003】
一般に、符号化されたディジタル画像などは、符号化時に決定された品質(歪、解像度、色表現など)で復号される。しかしながら、通信路の多様化、通信端末の多様化、配信サービスの多様化などにより、符号化列の一部を復号することで符号化時に決定された品質とは異なる品質の画像を復号できること、すなわち、スケーラビリティが求められている。このスケーラビリティに対する要求を受け、例えば画像圧縮の国際標準であるJPEG2000(Joint Photographic Experts Group 2000)では、解像度等の尺度で、階層化されたスケーラビリティを提供している。また、このように品質の異なるデータを階層的に保護する保護技術では、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに、個別の部分鍵を用いて暗号化するのが一般的である。
【0004】
なお、このようなディジタルデータの保護技術として、例えば、特許文献1〜2や非特許文献1〜3が知られている。
【0005】
非特許文献1は、階層的スケーラビリティを有するディジタルデータに対し、一方向性ハッシュ関数を利用することで一つのマスター鍵から下位階層のデータ単位に対応する部分鍵を生成する技術が開示されている。また、非特許文献2には、非特許文献1の課題である、ストリーミングデータの順序に依存しない技術が開示されている。さらに、上記非特許文献3には、非特許文献1の課題である結託攻撃への耐性を向上させる技術が開示されている。
【0006】
なお、結託攻撃とは、各スケーラビリティごとに異なる階層レベルに対応した複数種類の暗号鍵を複数のユーザ間で共有することで、予め許諾された品質よりも高い品質での画像再生を実現する行為をいう。
【特許文献1】特開2004−312740号公報
【特許文献2】特開2003−204321号公報
【非特許文献1】Y.Wu, D.Ma, and R.H.Deng, “Progressive protection of JPEG 2000 condestreams.” In Proc. IEEE ICIP,pp.3447-3450, 2004
【非特許文献2】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
【非特許文献3】今泉祥子,藤吉正明,安部淑人,貴家仁志,“結託攻撃耐性を有するJPEG2000符号化画像の階層的暗号化方法”信学SIPシンポジウム,2006
【発明の開示】
【発明が解決しようとする課題】
【0007】
発明者らは、従来のデータ保護技術について詳細に検討した結果、以下のような課題を発見した。すなわち、品質の異なるディジタルデータを階層的に保護する場合、スケーラビリティの種類ごとに別々に管理するか、あるいは、スケーラビリティそれぞれについて各階層に位置するデータ単位ごとに個別の暗号鍵(部分鍵)を用いて暗号化することになる。
【0008】
特に、データ単位に生成された個別の部分鍵を管理する場合、階層数が増えるに従って、管理対象となる鍵の数が増加するだけでなく、結託耐性を維持するため、十分な鍵長を確保しなければならず、各スケーラビリティにおける階層増加に伴って、総鍵長が著しく多くなってしまう。
【0009】
逆に、1つのマスター鍵から各データ単位に対応した部分鍵を生成していく場合、部分鍵の数だけマスター鍵を分割していく必要があるため、非特許文献3のように、部分鍵数が増加すると、それぞれ生成される部分鍵の長さが短くせざるを得ない。この場合、十分な結託耐性は保証され得なくなる。
【0010】
この発明は上述のような課題を解決するためになされたものであり、階層的スケーラビリティを有するディジタルデータへの結託攻撃に対し十分な耐性を確保するとともに、各スケーラビリティの階層にそれぞれ対応した暗号鍵の鍵長を飛躍的に低減させる暗号鍵生成方法を提供することを目的としている。
【課題を解決するための手段】
【0011】
この発明に係る暗号鍵生成方法は、複数種類(≧2)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。当該暗号鍵生成方法は、画像圧縮の国際標準であるJPEG2000のパケット符号化列などのマルチメディアを使用する画像伝送システムやテレビ会議システムの他、ストリーミング配信サービスへの応用が可能である。また、当該暗号鍵生成方法は、マスター鍵から従属的により上位に位置する階層の部分鍵を生成していき、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。
【0012】
具体的に、この発明に係る暗号鍵生成方法は、最小処理単位として、選択された2種類のスケーラビリティそれぞれにおける階層のデータ単位に対応する部分鍵を生成する。当該暗号鍵生成方法は、マスター鍵の設定、マスター鍵から分割鍵の生成、分割鍵それぞれに対応した鍵要素マトリクスの生成、生成された鍵要素マトリクスの成分結合による部分鍵の生成を行う。鍵要素マトリクスは、一方のスケーラビリティの階層ごとに、それぞれの階層に対応した分割鍵に基づいて生成される。また、各鍵要素マトリクスは、2種類のスケーラビリティそれぞれの階層値(階層レベルに相当)により各成分座標が規定され、これにより、各マトリクス成分は、2種類のスケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、当該暗号鍵生成方法は、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵をそれぞれ生成することを特徴としている。したがって、暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、例えばマルチメディア配信サービスなどでは開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。このような場合、与えられた復号鍵自体が当該暗号鍵生成方法におけるマスター鍵となり、このマスター鍵に対応した各スケーラビリティの階層がそれぞれ最下位階層である。
【0013】
まず、用意されるマスター鍵としては、符号化対象であるディジタルデータが有する複数種類のスケーラビリティから選択された第1及び第2スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵が設定される。逆に、配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする。このマスター鍵は、第1及び第2スケーラビリティのうち基準スケーラビリティとして設定された第1スケーラビリティの階層数で分割され、該第1スケーラビリティの各階層に対応した分割鍵が生成される。
【0014】
分割鍵に基づいてそれぞれ生成される鍵要素マトリクスは、第1及び第2スケーラビリティにおける階層それぞれのデータ単位と座標対応している。なお、得られた分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスの生成では、少なくとも、該一の分割鍵に対応する第1スケーラビリティにおける階層であって第2スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てられる。これにより、第2スケーラビリティの階層性が維持される。
【0015】
続いて、分割鍵ごとに生成された鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、第1及び第2スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。この構成により、第1スケーラビリティの階層性も維持される。
【0016】
なお、この発明に係る暗号鍵生成方法において、上述の基準スケーラビリティとして、第1及び第2スケーラビリティのうち階層数の少ないスケーラビリティが選択されるのが好ましい。この場合、一部のスケーラビリティの階層数増加の影響を受けにくくなる。
【0017】
また、分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスにおいて、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも下位に位置する階層であって第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分には、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる。一方、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも上位に位置する階層であって第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第2スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【0018】
以上のように、この発明に係る暗号鍵生成方法は、プログレッション順序に応じて複数の符号化列とマスター鍵を用意しなければならない従来の暗号鍵生成方法とは異なり、符号化列のプログレッション順序の制限は受けない。また、この発明に係る暗号鍵生成方法は、マスター鍵から従属的に各データ単位に対応した暗号鍵(部分鍵)を生成し、単一の符号化列で複数のスケーラビリティに対して同時にアクセス制御を可能にする。これにより、符号化列及び管理する暗号鍵(マスター鍵)の情報量は飛躍的に低減され、ディジタルコンテンツや暗号鍵の管理、配信における安全性を効果的に向上させることが可能になる。
【0019】
さらに、この発明に係る暗号鍵生成方法は、符号化対象であるディジタルデータが3種類以上のスケーラビリティを有する場合、これら3種類以上のスケーラビリティから2種類のスケーラビリティを選択し、選択された2種類のスケーラビリティの組み合わせ全てについて、上述の最小処理単位を実行することにより部分鍵が生成される。
【0020】
すなわち、2種類のスケーラビリティの組み合わせ全てについて、組み合わせごとに部分鍵要素マトリクスが生成される。その際、複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルも生成される。この階層テーブルは、階層値の組み合わせにより、複数種類のスケーラビリティにおける階層値それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現している。また、この階層テーブルは、スケーラビリティの種類と階層値の対応関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスの成分を特定することができる。
【0021】
そこで、この発明では、階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち2つの階層値及びそのスケーラビリティの種類によって特定される、2種類のスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスそれぞれの成分を結合していく。このように階層値の組み合わせごとに結合された要素は、そのまま部分鍵要素マトリクスの成分である。したがって、部分鍵要素マトリクスそれぞれから階層テーブルによって対応付けられた各成分を結合していくことにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が順次生成されることになる。
【0022】
3種類以上のスケーラビリティの階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵の生成において、上述の暗号鍵生成方法よりもさらに結託攻撃への耐性を向上させることも可能である。
【0023】
具体的には、3種類以上のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意する(配信等により得た復号鍵をマスター鍵とする場合、当該マスター鍵に対応している各スケーラビリティの階層をそれぞれ最下位階層とする)。このとき、3種類以上のスケーラビリティから第1及び第2基準スケーラビリティも選択される。第1基準スケーラビリティは、用意されたマスター鍵から分割鍵を生成するためのスケーラビリティであり、この第1基準スケーラビリティの階層数で用意されたマスター鍵を分割することにより、該第1基準スケーラビリティの各階層に対応した分割鍵が生成される。一方、第2基準スケーラビリティは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。
【0024】
当該暗号鍵生成方法では、3種類以上のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、これら3種類以上のスケーラビリティのうち第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく。そのため、スケーラビリティ数をS、各スケーラビリティの階層数NK(K=1,2,3,…,i−1,i)を小さいほうから順にN1,N2,…、Ni−1,Niで表すと、以下の数式(1)で与えられる総パケット数に対して、当該暗号鍵生成方法において生成される多次元鍵要素マトリックスの数は、以下の数式(2)になる。
【数1】
【数2】
【0025】
具体的には、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、生成された分割鍵のうち一の分割鍵に対応する第1基準スケーラビリティにおける階層であって第2基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データが割り当てらあれる。これにより、得られる多次元鍵要素マトリックスにおいて、少なくとも第2基準スケーラビリティの階層性が維持される。
【0026】
続いて、第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵が生成される。すなわち、得られた多次元鍵要素マトリックスは、第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、該第1基準スケーラビリティの階層ごとに生成されるため、得られた多次元鍵要素マトリックスから最終的に生成される部分鍵マトリックスでは、該第1基準スケーラビリティの階層性も維持される。
【0027】
なお、第1及び第2スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された多次元鍵要素マトリックスのそれぞれは、対応する該他のスケーラビリティ及び第1基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第1基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる。一方、対応する他のスケーラビリティ及び第1基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてには、該一の分割鍵に対応する階層の鍵要素のうち第2基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられる。
【0028】
なお、この発明に係る各実施例は、以下の詳細な説明及び添付図面によりさらに十分に理解可能となる。これら実施例は単に例示のために示されるものであって、この発明を限定するものと考えるべきではない。
【0029】
また、この発明のさらなる応用範囲は、以下の詳細な説明から明らかになる。しかしながら、詳細な説明及び特定の事例はこの発明の好適な実施例を示すものではあるが、例示のためにのみ示されているものであって、この発明の思想及び範囲における様々な変形および改良はこの詳細な説明から当業者には自明であることは明らかである。
【発明の効果】
【0030】
上述のようにこの発明によれば、マスター鍵から一方向性ハッシュ関数を利用して従属的に上位に位置する階層の部分鍵が生成されていくため、スケーラビリティそれぞれの階層レベルで特定される一つのデータ単位に対応する部分鍵は、いずれかのスケーラビリティの階層が上位に位置するデータ単位に対応する部分鍵からは生成できない。したがって、結託攻撃を防ぐことが可能になる。また、アクセス制御対象となるスケーラビリティを2種類のスケーラビリティの組み合わせごとに部分鍵を生成していくため、生成される部分鍵の鍵長を低減させることが可能になる。
【発明を実施するための最良の形態】
【0031】
以下、この発明に係る暗号鍵生成方法の各実施形態を、図1〜図20を参照しながら詳細に説明する。なお、図の説明において同一部位、同一要素には同一符号を付して重複する説明を省略する。
【0032】
この発明に係る暗号鍵生成方法は、複数種類の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成する。また、各実施形態では、簡単のため、階層的スケーラビリティを有するディジタルデータの具体例として、画像圧縮の国際標準であるJPEG2000の各パケット符号列に対応する部分鍵生成について説明する。なお、JPEG2000はスケーラビリティの種類に対して優先順位を与えることが可能である。符号化列においてこの順位は、データ単位であるパケットの構成順序(プログレッション順序)として表現される。このプログレッション順序を決定する要素としては、レイヤ(L)、解像度レベル(R)、コンポーネント(C)及びポジション(P)の4種類のスケーラビリティがある。
【0033】
図1は、複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図であって、JPEG2000のスケーラビリティのうちアクセス制御対象となるスケーラビリティを、レイヤ(L)及び解像度レベル(R)のみに制限したときの(濃淡画像の場合)、JPEG2000におけるパケット符号化列の復号パターンを示す。具体的に、図1において、レイヤ(スケーラビリティL)の階層数NLは3、解像度レベル(スケーラビリティR)の階層数NRは3である。なお、レイヤは、画質レイヤとも言われ、画像再生時におけるSNR(Signal/Noise Ratio)に対応した、ディジタル画像の算術符号化データを意味する。画質への影響が高い情報ほど高位のレイヤに含まれるため、上位レイヤのデータに対して下位レイヤのデータを追加していくことで段階的に再生画像の品質を向上させることができる。
【0034】
この図1において、Pi,j(i=0,…,NL−1;j=0,…,NR−1;iはスケーラビリティLの階層番号;jはスケーラビリティの階層番号)は、画像情報をもつJPEG2000パケットを表す。ある品質のJPEG2000符号化画像をQL,Rで表すと、QL,Rを得るためには図1の枠Aで囲まれたパケットPi,j(i=0,…,L;j=0,…,R)すべてを復号する必要がある。ここで、画像が正常に再生されるためには、復号されるパケットPi,jすべてが暗号解除されなくてはならない。したがって、アクセス制御において階層性を保持するため、パケットPi,jは個別に暗号化される必要がある。
【0035】
上述のようなJPEG2000において、プログレッション順序には、LRCP、RLCP、RPCL、PCRL、及びCPRLの5種類あり、それぞれ先頭の要素から順に優先される。図2は、図1に示されたJPEG2000パケット符号化列を復号する際の優先順位を示すプログレッシブ順序を説明するための概念図である。特に、図2(a)は、スケーラビリティL(レイヤ)が最優先されたLRCPプログレッション順序における復号順序であり、図2(b)は、スケーラビリティR(解像度レベル)を最優先させたRLCPのプログレッション順序における復号順序である。
【0036】
この発明に係る暗号鍵生成方法は、暗号鍵の管理と配信にかかる安全性及び生成容易性の面から鍵長を低減し、かつ、結託攻撃に対して耐性を有する。上述のようなJPEG2000パケットそれぞれの暗号鍵を生成するに当たり、当該暗号鍵生成方法は、各パケットを、スケーラビリティそれぞれの階層レベルにより特定されるマトリクス成分として扱うため、JPEG2000におけるプログレッション順序は問わない。一例として、図3(a)は、スケーラビリティL(レイヤ)の階層レベルとスケーラビリティR(解像度レベル)の階層レベルによりマトリクス表現されたパケットPL,R(L:0(最上位)、1、2(最下位);R:0(最上位)、1、2(最下位))を示す。また、図3(b)は、図3(a)のパケットPL,Rに対応するマトリクス表現された部分鍵KL,R(L:0、1、2;R:0、1、2)を示す。
【0037】
ここで、結託攻撃とは、2以上のユーザが暗号鍵を不正に共有することにより、正規に許諾された画質より高い画質での再生を可能とする攻撃をいう。具体的には、JPEG2000符号化画像を例として、最上位レイヤ(レイヤ0)のみ開示を許諾されたユーザと最上位解像度レベル(解像度レベル0)のみ開示を許諾されたユーザとが結託することを考える。この場合、パケットPi,jに対する暗号鍵をKi,jとすると、一方のユーザは3つのパケッP0,j(j=0,1,2)に対応する暗号鍵K0,j(j=0,1,2)を、他方のユーザは3つのパケッPi,0(i=0,1,2)に対応する暗号鍵Ki,0(i=0,1,2)を、それぞれ正規に許諾された鍵として得る。結託攻撃に対して耐性が十分でない場合、これらユーザが結託し、両者に許諾されていない暗号鍵K2,2、K2,0、K0,2、及びK1,1を不正に生成する可能性がある。この発明に係る暗号鍵生成方法では、以下の各実施形態において説明するように、あるパケットに対する暗号鍵(部分鍵)は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にある階層のパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位に位置する階層のパケットからは生成可能となっている。そのため、この発明に係る暗号鍵生成方法は、結託攻撃に対して耐性を有する。
【0038】
(第1実施形態)
以下、この発明に係る暗号鍵生成方法の第1実施形態を説明する。この第1実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを3、スケーラビリティRの階層数NRを3とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、3×3のマトリクス成分Pi,j(i=0,1,2;j=0,1,2)として扱われる。なお、図4は、この発明に係る暗号鍵生成方法の第1実施形態を説明するための概念図である。また、図5は、第1実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0039】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図4の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP2,2に対応する暗号鍵K2,2である。このマスター鍵K2,2が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。
【0040】
この第1実施形態では、NL=NR=3であるためスケーラビリティL、Rのいずれが選択されてもよいが、一例として、スケーラビリティRを基準スケーラビリティとして選択する。このとき、最小階層数3(スケーラビリティRの階層数)でマスター鍵K2,2を分割することにより、分割鍵eR2、eR1、eR0が得られる。これら分割鍵eR2、eR1、eR0はスケーラビリティRの各階層に対応したルート鍵(各マトリクス成分を生成するための鍵)であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1〜M3が生成される。
【0041】
鍵要素マトリクスM1〜M3それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR2、eR1、eR0から、図5に示されたように、順次生成される。
【0042】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル2(最下位階層)に対応したマトリクスとして、(2,2)成分に分割鍵eR2が割り当てられる。なお、図中、マトリクス成分eの上側添え字R2は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第1実施形態では、鍵要素マトリクスM1の成分をeR2(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0043】
分割鍵eR2に対応するスケーラビリティRにおける階層(階層レベル=2)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR2(1,2)、eR2(0,2)には、一方向性ハッシュ関数H*を利用した分割鍵eR2のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR2(1,2)にはH*(eR2(2,2))の演算データ、成分eR2(0,2)にはH*2(eR2(2,2))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル2について、スケーラビリティLの階層性が保持される。なお、この明細書では、一方向性ハッシュ関数H*のn(n=2、3、…)回演算を、H*nと表記する。
【0044】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル2よりも上位階層の成分eR2(i,j)(i=0,1,2;j=0,1)の全てには、成分eR2(0,2)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR2(0,2))(=H*3(eR2(2,2)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0045】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,2(i=0,1,2)に対してアクセス制御を有効にしている。
【0046】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル1に対応したマトリクスとして、(2,1)成分に分割鍵eR1が割り当てられる。以下、この第1実施形態では、鍵要素マトリクスM2の成分をeR1(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0047】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(1,1)には、H*(eR1(2,1))の演算データ、成分eR1(0,1)にはH*2(eR1(2,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0048】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2)の全てには、成分eR1(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*3(eR1(2,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0049】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも下位階層の成分eR1(i,2)(i=0,1、2)には、いずれも成分eR1(i,1)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR1(i,2)(i=0,1)には、一旦、成分eR1(2,1)の値がコピーされた成分eR1(2,2)に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図5等において、“CP”はコピーを意味する。
【0050】
以上のように生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2)に対してアクセス制御を有効にしている。
【0051】
同様に、鍵要素マトリクスM3では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(2,0)成分に分割鍵eR0が割り当てられる。以下、この第1実施形態では、鍵要素マトリクスM3の成分をeR0(i,j)(i=0,1,2;j=0,1,2)と表記する。
【0052】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(1,0)には、H*(eR0(2,0))の演算データ、成分eR0(0,0)にはH*2(eR0(2,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0053】
一方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0054】
他方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,j)(i=0,1、2;j=1、2)には、いずれにも成分eR0(i,0)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,j)(i=0,1、2;j=1,2)には、一旦、成分eR0(2,0)の値がコピーされた成分eR0(2,2)、eR0(2,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。
【0055】
この場合も、生成された鍵要素マトリクスM3は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2)に対してアクセス制御を有効にしている。
【0056】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、部分鍵マトリクスMP1が生成される。すなわち、部分鍵マトリクスMP1の各成分が、パケットPi,j(i=0,1,2;j=0,1,2)それぞれに対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2;j=0,1,2)それぞれは、対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0057】
(第2実施形態)
次に、この発明に係る暗号鍵生成方法の第2実施形態を説明する。この第1実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを3、スケーラビリティRの階層数NRを2とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、3×2のマトリクス成分Pi,j(i=0,1,2;j=0,1)として扱われる。なお、図6は、この発明に係る暗号鍵生成方法の第2実施形態を説明するための概念図である。また、図6は、第2実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0058】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図6の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP2,1に対応する暗号鍵K2,1である。このマスター鍵K2,1が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。すなわち、スケーラビリティRの階層数(最小階層数2)でマスター鍵K2,1が分割されることにより、分割鍵eR1、eR0が得られる。これら分割鍵eR1、eR0はスケーラビリティRの各階層に対応したルート鍵であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1、M2が生成される。
【0059】
鍵要素マトリクスM1、M2それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR1、eR0から、図7に示されたように、順次生成される。
【0060】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル1(最下位階層)に対応したマトリクスとして、(2,1)成分に分割鍵eR1が割り当てられる。なお、図中、マトリクス成分eの上側添え字R1は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第2実施形態では、鍵要素マトリクスM1の成分をeR1(i,j)(i=0,1,2;j=0,1)と表記する。
【0061】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(1,1)、eR2(0,1)には、一方向性ハッシュ関数H*を利用した分割鍵eR1のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR1(1,1)にはH*(eR1(2,1))の演算データ、成分eR1(0,1)にはH*2(eR1(2,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0062】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2)の全てには、成分eR1(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*3(eR1(2,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0063】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2)に対してアクセス制御を有効にしている。
【0064】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(2,0)成分に分割鍵eR0が割り当てられる。以下、この第2実施形態では、鍵要素マトリクスM2の成分をeR0(i,j)(i=0,1,2;j=0,1)と表記する。
【0065】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(1,0)には、H*(eR0(2,0))の演算データ、成分eR0(0,0)にはH*2(eR0(2,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0066】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0067】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,1)(i=0,1、2)には、いずれも成分eR0(i,0)(i=0,1、2)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,1)(i=0,1、2)には、一旦、成分eR0(2,0)の値がコピーされた成分eR0(1,1)、eR0(0,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図7においてCPはコピー動作を示す。
【0068】
この場合も、生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2)に対してアクセス制御を有効にしている。なお、図7等において、“CP”はコピーを意味する。
【0069】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1、M2間で座標一致している成分を結合することにより、部分鍵マトリクスMP2が生成される。すなわち、部分鍵マトリクスMP2の各成分が、パケットPi,j(i=0,1,2;j=0,1)それぞれに対応した部分鍵Ki,j(i=0,1,2;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2;j=0,1)それぞれは、対応した部分鍵Ki,j(i=0,1,2;j=0,1)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0070】
(第3実施形態)
以下、この発明に係る暗号鍵生成方法の第3実施形態を説明する。この第3実施形態では、アクセス制御対象となるスケーラビリティをスケーラビリティL(レイヤ)とスケーラビリティR(解像度レベル)とし、スケーラビリティLの階層数NLを4、スケーラビリティRの階層数NRを3とする。このとき、スケーラビリティL、Rにおける各階層のパケットは、4×3のマトリクス成分Pi,j(i=0,1,2;j=0,1,2)として扱われる。なお、図8は、この発明に係る暗号鍵生成方法の第3実施形態を説明するための概念図である。また、図9は、第3実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【0071】
マスター鍵は、予め管理されている最下位のパケットに対応する部分鍵であり、図8の例では、スケーラビリティL、Rいずれにおいても最下位に位置する階層のパケットP3,2に対応する暗号鍵K3,2である。このマスター鍵K3,2が、スケーラビリティLの階層数NLとスケーラビリティRの階層数NRのうち小さい値(=min(NL,NR))に分割される。すなわち、スケーラビリティRの階層数(最小階層数3)でマスター鍵K3,2が分割されることにより、分割鍵eR2、eR1、eR0が得られる。これら分割鍵eR2、eR1、eR0はスケーラビリティRの各階層に対応したルート鍵であり、これらスケーラビリティRの階層ごとに鍵要素マトリクスM1〜M3が生成される。
【0072】
鍵要素マトリクスM1〜M3それぞれにおける各マトリクス成分は、対応するルート鍵である分割鍵eR2、eR1、eR0から、図9に示されたように、順次生成される。
【0073】
まず、鍵要素マトリクスM1では、スケーラビリティRの階層レベル2(最下位階層)に対応したマトリクスとして、(3,2)成分に分割鍵eR2が割り当てられる。なお、図中、マトリクス成分eの上側添え字R2は、当該鍵要素マトリクスM1に対応するスケーラビリティR(基準スケーラビリティ)の階層レベルを示し、下側添え字は、鍵要素マトリクスM1の成分座標を示す。以下、この第3実施形態では、鍵要素マトリクスM1の成分をeR2(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0074】
分割鍵eR2に対応するスケーラビリティRにおける階層(階層レベル=2)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR2(2,2)、eR2(1,2)、eR2(0,2)には、一方向性ハッシュ関数H*を利用した分割鍵eR2のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てられる。すなわち、eR2(2,2)にはH*(eR2(3,2))の演算データ、eR2(1,2)にはH*2(eR2(3,2))の演算データ、成分eR2(0,2)にはH*3(eR2(3,2))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル2について、スケーラビリティLの階層性が保持される。
【0075】
一方、鍵要素マトリクスM1において、スケーラビリティRの階層レベル2よりも上位階層の成分eR2(i,j)(i=0,1,2,3;j=0,1)の全てには、成分eR2(0,2)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR2(0,2))(=H*4(eR2(3,2)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0076】
以上のように生成された鍵要素マトリクスM1は、スケーラビリティLの階層性を保持したまま、パケットPi,2(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0077】
鍵要素マトリクスM2では、スケーラビリティRの階層レベル1に対応したマトリクスとして、(3,1)成分に分割鍵eR1が割り当てられる。以下、この第3実施形態では、鍵要素マトリクスM2の成分をeR1(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0078】
分割鍵eR1に対応するスケーラビリティRにおける階層(階層レベル=1)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR1(2,1)には、H*(eR1(3,1))の演算データ、成分eR1(1,1)には、H*2(eR1(3,1))の演算データ、成分eR1(0,1)にはH*3(eR1(3,1))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル1について、スケーラビリティLの階層性が保持される。
【0079】
一方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも上位階層の成分eR1(i,0)(i=0,1,2,3)の全てには、成分eR2(0,1)をさらに一方向性ハッシュ関数H*を利用してハッシュ演算することにより得られた演算データH*(eR1(0,1))(=H*4(eR1(3,1)))が割り当てられる。このときの演算データは、スケーラビリティLの階層数が−1(実際には存在しない)のパケットに対応する値である。
【0080】
他方、鍵要素マトリクスM2において、スケーラビリティRの階層レベル1よりも下位階層の成分eR1(i,2)(i=0,1、2,3)には、いずれも成分eR1(i,1)(i=0,1、2,3)と同じ値がそれぞれ割り当てられる。なお、成分eR1(i,2)(i=0,1,2)には、一旦、成分eR1(3,1)の値がコピーされた成分eR1(3,2)に対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図9等において、“CP”はコピーを意味する。
【0081】
以上のように生成された鍵要素マトリクスM2は、スケーラビリティLの階層性を保持したまま、パケットPi,1(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0082】
同様に、鍵要素マトリクスM3では、スケーラビリティRの階層レベル0(最上位階層)に対応したマトリクスとして、(3,0)成分に分割鍵eR0が割り当てられる。以下、この第3実施形態では、鍵要素マトリクスM3の成分をeR0(i,j)(i=0,1,2,3;j=0,1,2)と表記する。
【0083】
分割鍵eR0に対応するスケーラビリティRにおける階層(階層レベル=0)であってスケーラビリティLにおける残りの階層のそれぞれ対応する座標成分eR0(2,0)には、H*(eR0(3,0))の演算データ、成分eR0(1,0)には、H*2(eR0(3,0))の演算データ、成分eR0(0,0)にはH*3(eR0(3,0))の演算データが割り当てられる。このようなマトリクス演算操作により、スケーラビリティRの階層レベル0について、スケーラビリティLの階層性が保持される。
【0084】
一方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも上位階層は存在しないため、成分eR0(0,0)に対する更なるハッシュ演算は行われない。
【0085】
他方、鍵要素マトリクスM3において、スケーラビリティRの階層レベル0よりも下位階層の成分eR0(i,j)(i=0,1、2,3;j=1、2)には、いずれも成分eR0(i,0)(i=0,1,2,3)と同じ値がそれぞれ割り当てられる。なお、成分eR0(i,j)(i=0,1、2,3;j=1,2)には、一旦、成分eR0(3,0)の値がコピーされた成分eR0(2,2)、eR0(3,1)それぞれに対して一方向性ハッシュ関数を利用したハッシュ演算を順次行うことにより得られる値が割り当てられても同義である。なお、図9においてCPはコピー動作を示す。
【0086】
この場合も、生成された鍵要素マトリクスM3は、スケーラビリティLの階層性を保持したまま、パケットPi,0(i=0,1,2,3)に対してアクセス制御を有効にしている。
【0087】
続いて、上述のマトリクス演算により生成された鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、部分鍵マトリクスMP3が生成される。すなわち、部分鍵マトリクスMP3の各成分が、パケットPi,j(i=0,1,2,3;j=0,1,2)それぞれに対応した部分鍵Ki,j(i=0,1,2,3;j=0,1,2)となる。このように、一方のスケーラビリティR(解像度レベル)の階層ごとに、他方のスケーラビリティL(レイヤ)の階層性を保持して部分鍵を生成することで、解像度レベルにおいてもレイヤにおいても階層性が保持される。また、パケットPi,j(i=0,1,2,3;j=0,1,2)それぞれは、対応した部分鍵Ki,j(i=0,1,2,3;j=0,1,2)により符号化され、こうして暗号化されたJPEG2000のパケット符号化列は一般に公開される。
【0088】
(結託攻撃耐性の評価)
続いて、上述のように構成された第1〜第3実施形態に係る暗号鍵生成方法により生成された暗号鍵(各階層のパケットに対応した部分鍵)の結託攻撃に対する耐性について、評価する。
【0089】
まず、この評価では、階層数NLのスケーラビリティLと階層数NRのスケーラビリティR(解像度レベル)を有するJPEG2000データを符号化する場合を前提とする。
【0090】
JPEG2000のパケットPi,j(i=0,1,…,NL−1;j=0,1,…,NR−1)に対する部分鍵Ki,jは、最下位のパレットPNL−1,NR−1に対する部分鍵KNL−1,NR−1をマスター鍵とし、一方向性ハッシュ関数H*を従属的に生成される。なお、階層の上位及び下位の概念は図1と同じである。すなわち、部分鍵Ki,jは、スケーラビリティL、RのいずれにおいてもパケットPi,jの階層より下位又は同位の全ての階層のパケットPa1,b1(a1=i,i−1,…NL−1;b1=j,j−1,…,NR−1)に対応した部分鍵Ka1,b1から従属的に生成されなければならない。この条件の下で、部分鍵Ki,jがスケーラビリティL、RのいずれにおいてもパケットPi,jより上位に位置する階層のパケットPa2,b2(a2=0,1,…i−1;b2=0,1,…,j−1)に対応する部分鍵Ka2,b2から、結託攻撃により不正に生成されないためには、該部分鍵Ki,jを構成する少なくとも一部の要素が部分鍵Pa2,b2よりも下位階層のパケットに対応した要素である必要がある。
【0091】
例えば、NR<NLと仮定する。スケーラビリティRの階層j(0≦j≦NR−1)である全てのパケットPi,j(i=0,1,…,NL−1)を対象とする部分鍵Ki,jの要素eRji,jは、鍵要素マトリクスMjの要素演算において、ルート鍵としての要素eRjから、一方向性ハッシュ関数H*を利用したハッシュ演算H*(NL−1−i)(eRj)により従属的に生成される。このとき、スケーラビリティRの下位階層b1(<j)である全てのパケットPi,b1(i=0,1,…,NL−1)を対象とする部分鍵Ki,b1の要素eRji,b1には、鍵要素マトリクスMjにおける上位階層のハッシュ演算値H*(NL−1−i)(eRj)がそのまま反映される(コピーされる)。一方、スケーラビリティRにおいて上位階層b2(>j)である全てのパケットPi,b2(i=0,1,…,NL−1)を対象とする部分鍵Ki,b2の要素eRji,b2には、ハッシュ演算値H*NL(eRj)が割り当てられる。
【0092】
そのため、下位階層の部分鍵を構成する要素の少なくとも一部には、上位階層の部分鍵が反映される一方、上位階層の部分鍵を構成する要素には、下位階層の部分鍵の要素が反映されない。すなわち、この発明に係る暗号鍵生成方法により生成される部分鍵では、上位階層の部分鍵からは下位階層の部分鍵は生成されず、よって、結託攻撃に対する耐性が得られる。
【0093】
(暗号解除における暗号鍵生成)
次に、暗号解除における暗号鍵(許可された各パケットに対応した部分鍵)の生成について説明する。上述の暗号鍵生成では、唯一管理されるマスター鍵から従属的により上位に位置する階層の部分鍵がそれぞれ生成された。暗号解除の際も同様にマスター鍵から従属的に上位に位置する階層の部分鍵が生成されるが、開示を許諾されたパケット群のうち最下位のパケットに対する復号鍵のみがユーザに配信される。
【0094】
具体的には、NL=NR=3場合、図1に示されたように、スケーラビリティL(レイヤ)及びスケーラビリティR(解像度レベル)までの濃淡画像QL,R(0≦L≦NL、0≦R≦NR)を要求したユーザは、JPEG2000のパケット符号列PL,Rを最下位パケット(スケーラビリティL、Rそれぞれにおいて最下位に位置する階層のパケット)として画像の開示を許諾され、そのパケットに対する鍵KL,R(0≦L≦2、0≦R≦2)を受信する。なお、図1において、ユーザが符号化画像QL,Rを許可された場合、該符号化画像QL,Rに対応した鍵KL,Rを利用して、枠A((NL−R+1)×(NR−L+1))で囲まれた各パケットPに対応した暗号解除鍵(復号鍵)が生成される。また、この場合、鍵KL,Rから生成される分割鍵eR2、eR1、eR0に対応した鍵要素マトリクスM1〜M3も(NL−R+1)×(NR−L+1)マトリクスとなる。
【0095】
以下の説明では、図1において、ユーザが符号化画像Q1,1を許可された場合について説明する。この場合、鍵生成は図5の一部に相当しており、該符号化画像Q1,1に対応した鍵K1,1を利用して、枠Aで囲まれた各パケットP1,0、P0,1、P0,0に対応した暗号解除鍵(復号鍵)が生成される。
【0096】
そのため、ユーザ側では、まず、受信された部分鍵K1,1をマスター鍵として、スケーラビリティRの階層数で分割することにより(3分割)、3つの分割鍵eR2、eR1、eR0を生成する。
【0097】
続いて、スケーラビリティRの3つの階層ごとに鍵要素マトリクスを生成する。ここで、3つの分割鍵eR2、eR1、eR0のうち、対応するスケーラビリティRの階層が受信した鍵K1,1の対応する階層よりも下位の分割鍵は、もう一つのスケーラビリティLの階層レベルが−1となるハッシュ演算データである。したがって、この場合には、鍵要素マトリクスの全成分に対応する部分鍵と同じ値を予め割り当てておく。
【0098】
まず、スケーラビリティRの階層2に対応する2×2の鍵要素マトリクスM1の生成において、部分鍵eR2は、スケーラビリティLの階層−1に相当するハッシュ演算データである。すなわち、スケーラビリティRの分割鍵eR2に対応する階層(階層レベル:2)は、受信された鍵K1,1に対応するスケーラビリティRの階層(階層レベル:1)よりも下位にあるため、該分割鍵eR2の値はスケーラビリティLの階層レベルが−1のときのハッシュ演算値である。この場合、分割鍵eR2に対応する2×2の鍵マトリクスM1の全マトリクス成分eR2(0,1)、eR2(1,1)、eR2(0,0)、eR2(1,0)には、分割鍵eR2と同じ値(スケーラビリティLの階層レベルは−1)が割り当てられる。
【0099】
次に、スケーラビリティRの階層1に対応する2×2の鍵要素マトリクスM2の生成では、まず、eR1(1,1)成分に分割鍵eR1の値が割り当てられる。スケーラビリティLの階層が上位に位置する成分eR1(0,1)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR1(1,1))が割り当てられる。また、スケーラビリティRの分割鍵eR1に対応した階層(階層レベル:1)よりも上位階層(階層レベル:0)に対応する成分eR1(1,0)、eR1(0,0)それぞれにはスケーラビリティLの階層レベル:−1となるハッシュ演算データH*2(eR2(1,1))が割り当てられる。逆に、スケーラビリティRの分割鍵eR1に対応した階層(階層レベル:1)よりも下位階層(階層レベル:2)は、存在しないため、ハッシュ演算は行われない。
【0100】
一方、スケーラビリティRの階層0に対応する2×2の鍵要素マトリクスM3の生成では、スケーラビリティRの分割鍵eR0に対応した階層(階層レベル:0)よりも上位階層(階層レベル:−1)は存在しない。そこで、まず、eR0(1,0)成分に分割鍵eR0の値が割り当てられる。スケーラビリティLの階層が上位に位置する成分eR0(0,0)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR1(1,0))が割り当てられる。逆に、スケーラビリティRの分割鍵eR0に対応した階層(階層レベル:0)よりも下位階層(階層レベル:1)には、eR0(1,1)成分に成分eR0(1,0)値がコピーされ、このコピー値に基づいてハッシュ演算が順次行われる。すなわち、スケーラビリティLの階層が上位に位置する成分eR0(0,1)には、一方向性ハッシュ関数H*を利用したハッシュ演算の演算データH*(eR0(1,1))が割り当てられる。
【0101】
このように生成された、スケーラビリティRの各階層に対応した2×2の鍵要素マトリクスM1〜M3間で座標一致している成分を結合することにより、マスター鍵K1,1から、パケットP1,0、P0,1、P0,0に対応した復号鍵K1,0、K0,1、K0,0、)が生成される。
【0102】
上述のように、あるパケットに対する部分鍵は、そのパケットより少なくとも一方のスケーラビリティにおいて上位にあるパケットからは生成されず、かつ、いずれのスケーラビリティにおいても同位又は下位にあるパケットからは生成可能である。そのため、結託攻撃に対して耐性を有する。
【0103】
(第4実施形態)
図10は、この発明に係る暗号鍵生成方法の第4実施形態として、3種類以上の階層的スケーラビリティを有するディジタルデータについて、部分鍵の生成を説明するための概念図である。また、図11は、図10の部分鍵生成における階層テーブル11aと、部分鍵要素マトリクスMPa〜MPc及び部分鍵マトリクスMP4の座標対応関係を示す図である。図12は、図10の部分鍵生成における部分鍵要素マトリクスMPa〜MPc及び部分鍵マトリクスMP4の要素間対応関係を説明するための図である。
【0104】
アクセス制御対象のスケーラビリティが3種類以上の場合、まず2種類のスケーラビリティの組合せに対して上述の鍵生成手順を最小処理単位として繰返す方式が考えられる。このとき、アクセス制御対象のスケーラビリティ数をNSとすると、最小処理単位の繰り返し回数は、NSC2(=(NS(NS−1))/2)となる。
【0105】
図10に示された例では、3種類のスケーラビリティとして、3階層のL(レイヤ)、2階層のR(解像度レベル)及び3階層のC(コンポーネント)を有するディジタルデータにおける各パケットに対応した暗号鍵を生成する。この場合、スケーラビリティR、Lの組について部分鍵要素マトリクスMPb(成分KRL(0,0)〜成分KRL(2,1))と、スケーラビリティR、Cの組について部分鍵要素マトリクスMPc(成分KRC(0,0)〜成分KRC(2,1))と、スケーラビリティL、Cの組について部分鍵要素マトリクスMPa(成分KLC(0,0)〜成分KLC(2,2))が、上述の第1〜第3実施形態と同様の演算工程を経て順次生成される。
【0106】
その際、図11に示されたように、スケーラビリティL、R、Cにおける階層値の全組み合わせを示す階層テーブル11aも生成される。この階層テーブル11aは、各組み合わせの階層値群により、スケーラビリティL、R、Cにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスMP4を座標表現している。また、この階層テーブル11aは、スケーラビリティの種類と階層値の関係を示しており、この関係からスケーラビリティの組み合わせ全てについて生成された部分鍵要素マトリクスMPa〜MPcの成分を特定することができる。すなわち、階層テーブル11aにおける階層値の全組み合わせに対応した、部分鍵要素テーブル11bが生成される。
【0107】
このように生成された部分鍵要素テーブル11bに列挙された鍵組み合わせは、部分鍵マトリクスMP4の各成分座標を示す階層テーブル11aの階層値組み合わせに対応している。部分鍵マトリクスMP4の各成分KL、R,C(L=0,1,2;R=0,1;C=0,1,2)は、図12(a)に示されたように、部分鍵要素テーブル11bにおいて一の組み合わせを構成する鍵要素KRLR,L、KRCR,C、KLCL,Cを結合することにより得られる。したがって、部分鍵マトリクスMP4の各成分座標を示す階層テーブル11aの全組み合わせについて、一の組み合わせに対応した部分鍵要素テーブル11bにおける鍵要素それぞれを結合していくことにより(図12(b)参照)、部分鍵マトリクスMP4が得られる。
【0108】
このように得られた部分鍵マトリクスMP4の各成分が、スケーラビリティとして、3階層のL(レイヤ)、2階層のR(解像度レベル)及び3階層のC(コンポーネント)を有するディジタルデータにおける各パケットに対応した暗号鍵となる。すなわち、部分鍵マトリクスMP4の各成分が、その成分座標を表すスケーラビリティの階層値で特定されるパケットに対応した部分鍵である。
【0109】
なお、アクセス制御対象のスケーラビリティが3種類以上の場合であっても、2種類のスケーラビリティの場合と同様に、結託攻撃耐性を有している。
【0110】
上述の第4実施形態に係る暗号鍵生成方法は、第1〜第3実施形態と同様に、2次元マトリクス表現を用いて説明されたが、以下、3次元マトリクス表現を用いて立体化した状態で、第4実施形態を一般化した暗号鍵生成方法を説明する。なお、以下の説明では、アクセス制御対象となるスケーラビリティL、R、Cについて、該スケーラビリティL(レイヤ)の階層数NLを6、スケーラビリティR(解像度レベル)の階層数NRを4、スケーラビリティC(コンポーネント)の階層数NCを3とする。このとき、スケーラビリティL、R、Cにおける各階層のパケットは、図13(a)に示されたように、6×4×3のマトリクス成分Pi,j,k(i=0,1,2,3,4,5;j=0,1,2,3;k=0,1,2)として扱われる。なお、図13(a)は、3次元部分鍵マトリックスQMにおける各座標成分配置の立体表示である(3次元鍵要素マトリックスも同様)。
【0111】
図13(a)に示されたように、スケーラビリティL、R、Cそれぞれの最下位階層に対応した座標成分K5,3,2がマスター鍵となる。また、座標成分K0,0,0がスケーラビリティL、R、Cそれぞれの最上位階層に対応した座標成分である。
【0112】
上述の第4実施形態に係る暗号鍵生成方法に従って、図13(a)のような6×4×3の3次元部分鍵マトリックスQMを生成する場合、まず、最下位部分鍵K5,3,2を2種類のスケーラビリティに関して行われる最小処理単位の繰り返し回数NSC2だけ分割し、それぞれの最小処理単位用のマスター鍵KRL、KRC、KLCを生成する。ここで、マスター鍵KRLは、スケーラビリティL、Rに関する鍵要素生成用のマスター鍵である。マスター鍵KRCは、スケーラビリティR、Cに関する鍵要素生成用のマスター鍵である。また、マスター鍵KLCは、スケーラビリティL、Cに関する鍵要素生成用のマスター鍵である(図13(b)参照)。
【0113】
図14は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Rの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティL、Rに関する最小処理単位において、基準スケーラビリティはRとし、該スケーラビリティRの階層数4でマスター鍵KRLを分割することにより、4つの分割鍵eRLR3、eRLR2、eRLR1、eRLR0が得られる(図13(b)参照)。
【0114】
まず、分割鍵eRLR3が3次元マトリックスの座標成分P5,3,2(図14(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図14(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図14(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRL1が生成される。
【0115】
続いて、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,2(図14(b)中の斜線部分)に割り当てられると、この分割鍵eRLR2は一旦座標成分P5,3,2にコピー(CP)される。そして、スケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図14(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=2以外の座標成分(図14(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRL2が生成される。
【0116】
上述と同様に、分割鍵eRLR1(斜線で示された座標成分P5,1,2として割り当てられる)のハッシュ演算により図14(c)に示された3次元鍵要素マトリックスQMRL3も生成される。なお、図14(c)において、Hはハッシュ演算を示し、CPは座標成分間における演算データのコピー動作を意味する。さらに、図14(d)に示されたように、分割鍵eRLR0(斜線で示された座標成分P5,0,2として割り当てられる)のハッシュ演算により3次元鍵要素マトリックスQMRL4も生成される。
【0117】
次に、図15は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティR、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティR、Cに関する最小処理単位において、基準スケーラビリティはRとし、該スケーラビリティRの階層数4でマスター鍵KRCを分割することにより、4つの分割鍵eRCR3、eRCR2、eRCR1、eRCR0が得られる(図13(b)参照)。
【0118】
分割鍵eRCR3が3次元マトリックスの座標成分P6,4,3(図15(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRCR3のハッシュ演算がスケーラビリティCの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図15(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティCの最上位階層に対応する座標成分には、演算データH*2(eRCR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=5,R=3,C=0〜2以外の座標成分(図15(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティCの最上位階層に対応する座標成分に割り当てられた演算データH*2(eRCR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*3(eRCR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMRC1が生成される。
【0119】
図15(b)に示された3次元鍵要素マトリックスQMRC2は、基準スケーラビリティRの階層2よりも下位階層への分割鍵eRCR2(斜線で示された座標成分P5,2,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR2のハッシュ演算)を繰り返すことにより生成される。同様に、図15(c)に示された3次元鍵要素マトリックスQMRC3も、基準スケーラビリティRの階層1よりも下位階層への分割鍵eRCR1(斜線で示された座標成分P5,1,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR1のハッシュ演算)を繰り返すことにより生成される。さらに、図15(d)に示された3次元鍵要素マトリックスQMRC4も、基準スケーラビリティRの階層0(最上位階層)よりも上位階層への分割鍵eRCR0(斜線で示された座標成分P5,0,2として割り当てられる)のコピー動作、及びスケーラビリティCの最下位階層から最下位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRCR0のハッシュ演算)を繰り返すことにより生成される。
【0120】
図16は、第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。なお、スケーラビリティL、Cに関する最小処理単位において、基準スケーラビリティはCとし、該スケーラビリティCの階層数3でマスター鍵KLCを分割することにより、3つの分割鍵eLCC2、eLCC1、eLCC0が得られる(図13(b)参照)。
【0121】
分割鍵eLCC2が3次元マトリックスの座標成分P6,4,3(図16(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eLCC3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図16(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eLCC2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図16(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eLCC2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eLCC2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQMLC1が生成される。
【0122】
図16(b)に示された3次元鍵要素マトリックスQMLC2は、基準スケーラビリティCの階層1よりも下位階層への分割鍵eLCC1(斜線で示された座標成分P5,3,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eLCC1のハッシュ演算)を繰り返すことにより生成される。同様に、図16(c)に示された3次元鍵要素マトリックスQMLC3も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層への分割鍵eLCC0(斜線で示された座標成分P5,3,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eLCC0のハッシュ演算)を繰り返すことにより生成される。
【0123】
以上のハッシュ演算が繰り返されることにより生成された、図14(a)〜図16(c)に示された3次元鍵要素マトリックスQMRL1〜QMRL4、QMRC1〜QMRC4、QMLC1〜QMLC3について、それぞれの一致する座標成分同士を結合することにより、第4実施形態を一般化した暗号鍵生成方法による3次元部分鍵マトリックスQMが得られる。
【0124】
(第5実施形態)
上述の第4実施形態に係る暗号鍵生成方法は、あくまでも2種類のスケーラビリティに関する部分鍵生成手中を最小処理単位としているため、各スケーラビリティの階層数が増加してくると得られた部分鍵では3人以上の結託攻撃は防げない(図13(a)の3次元部分鍵マトリックスQMのような多次元部分鍵マトリックスにおいて、同一部分鍵を有する複数の座標線分が存在する)。そこで、第5実施形態では、3人以上の結託攻撃に対しても十分な耐性を有するに暗号鍵生成方法を提案する。この第5実施形態に係る暗号鍵生成方法も、図13(a)に示された3次元部分かぎマトリックスQMを参照しながら説明することとし、アクセス制御対象となるスケーラビリティL、R、Cについて、該スケーラビリティL(レイヤ)の階層数NLを6、スケーラビリティR(解像度レベル)の階層数NRを4、スケーラビリティC(コンポーネント)の階層数NCを3とする。このとき、スケーラビリティL、R、Cにおける各階層のパケットは、6×4×3のマトリクス成分Pi,j,k(i=0,1,2,3,4,5;j=0,1,2,3;k=0,1,2)として扱われる。また、用意されるマスター鍵は、図13(a)に示されたように、スケーラビリティL、R、Cそれぞれの最下位階層に対応した座標成分K5,3,2がマスター鍵となる(座標成分K0,0,0は、スケーラビリティL、R、Cそれぞれの最上位階層に対応した座標成分)。
【0125】
まず、この第5実施形態に係るに暗号鍵生成方法は、図17に示されたように、3種類以上のスケーラビリティのうち2種類のスケーラビリティを予め基準スケーラビリティに設定する。図17に示された例では、スケーラビリティL、Rが基準スケーラビリティに設定されている。特に、基準スケーラビリティR(第1基準スケーラビリティ)は、用意されたマスター鍵K5,3,2から分割鍵を生成するためのスケーラビリティであり、この基準スケーラビリティRの階層数4で用意されたマスター鍵を分割することにより、基準スケーラビリティRの各階層に対応した4つの分割鍵eRLR3、eRLR2、eRLR1、eRLR0が生成される。一方、基準スケーラビリティLは、上述のような一方向性ハッシュ関数を利用したハッシュ演算の演算方向を規定するためのスケーラビリティである。なお、図17は、この発明に係る暗号鍵生成方法の第5実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【0126】
第5実施形態に係る暗号鍵生成方法では、3種類以上のスケーラビリティL、R、Cにおける階層値で座標表現された3次元鍵要素マトリクス(図13(a)参照)を、基準スケーラビリティL、Rを除く他のスケーラビリティCの各階層について、基準スケーラビリティRの各階層に対応した一連のハッシュ演算ごとに生成していく。そのため、この第5実施形態では、3種類のスケーラビリティL、R、C(Lの階層数:6;Rの階層数:4;Cの階層数:3)について、上記数式(1)で与えられる総パケット数は72であり、上記数式(2)で与えられる3次元鍵要素マトリックスの生成数は、12となる。
【0127】
なお、図18〜図20は、第5実施形態に係る暗号鍵生成方法による3次元鍵要素マトリックスの生成工程を説明するための図である。特に、図18は、基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層(階層2)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−1、QM2−1、QM3−1、QM4−1を示す。図19は、基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層よりも1階層だけ上位の階層(階層1)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−2、QM2−2、QM3−2、QM4−2を示す。図20は、基準スケーラビリティL、R以外の他のスケーラビリティCの最上位階層(階層0)について、スケーラビリティLの最下位階層から最上位階層に向かって順次ハッシュ演算された演算データが所定の座標成分に割り当てられることにより生成された3次元鍵要素マトリックスQM1−3、QM2−3、QM3−3、QM4−3を示す。
【0128】
まず、図18(a)は、基準スケーラビリティL、R以外のスケーラビリティCの最下位階層2について、基準スケーラビリティRの最下位階層に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−1を示す。
【0129】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,2(図18(a)中の斜線部分)に割り当てられると、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図18(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2以外の座標成分(図18(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−1が生成される。
【0130】
図18(b)は、基準スケーラビリティL、R以外のスケーラビリティCの最下位階層2について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−1を示す。
【0131】
この3次元鍵要素マトリックスQM2−1の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,2(図18(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,3,2にコピー(CP)される。そして、スケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図18(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=2以外の座標成分(図18(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−1が生成される。
【0132】
なお、図18(c)に示された3次元鍵要素マトリックスQM3−1も、上述の3次元鍵要素マトリックスQM1−1、QM2−1の生成と同様に、基準スケーラビリティRの階層1よりも下位階層への分割鍵eRLR1(斜線で示された座標成分P5,1,2として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図18(d)に示された3次元鍵要素マトリックスQM4−1も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,2として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0133】
次に、図19(a)は、基準スケーラビリティL、R以外のスケーラビリティCの階層1(最下位階層よりも1階層だけ上位の階層)について、基準スケーラビリティRの最下位階層に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−2を示す。
【0134】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,1(図19(a)中の斜線部分)に割り当てられると、この分割鍵eRLR3は一旦座標成分P5,3,1にコピー(CP)される。そして、スケーラビリティCの階層2(最下位階層)及び階層1(最下位階層よりも1階層だけ上位の階層)それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図19(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=2〜3以外の座標成分(図19(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−2が生成される。
【0135】
図19(b)は、基準スケーラビリティL、R以外のスケーラビリティCの階層1について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−2を示す。
【0136】
この3次元鍵要素マトリックスQM2−2の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,1(図19(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,2〜3,1〜2にコピー(CP)される。そして、スケーラビリティCの階層2及び階層1であってスケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図19(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=1〜2以外の座標成分(図19(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−2が生成される。
【0137】
なお、図19(c)に示された3次元鍵要素マトリックスQM3−2も、上述の3次元鍵要素マトリックスQM1−2、QM2−2の生成と同様に、スケーラビリティCの階層1よりも下位階層であって基準スケーラビリティRの階層1よりも下位階層それぞれへの分割鍵eRLR1(斜線で示された座標成分P5,1,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図19(d)に示された3次元鍵要素マトリックスQM4−2も、基準スケーラビリティCの階層1よりも下位階層であって基準スケーラビリティRの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,1として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0138】
さらに、図20(a)は、基準スケーラビリティL、R以外のスケーラビリティCの階層0(最上位階層)について、基準スケーラビリティRの階層3(最下位階層)に対応する分割鍵eRLR3を用いて生成された3次元鍵要素マトリックスQM1−3を示す。
【0139】
分割鍵eRLR3が3次元マトリックスの座標成分P5,3,0(図20(a)中の斜線部分)に割り当てられると、この分割鍵eRLR3は一旦座標成分P5,3,C=1,2にコピー(CP)される。そして、スケーラビリティCの階層2(最下位階層)〜階層0(最上位階層)であって基準スケーラビリティRの階層3(最上位階層)それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR3のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図20(a)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR3)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=3,C=0〜2以外の座標成分(図20(a)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR3)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR3)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM1−3が生成される。
【0140】
図20(b)は、基準スケーラビリティL、R以外のスケーラビリティCの階層0(最上位階層)について、基準スケーラビリティRの階層2(最下位階層よりも1階層だけ上位の階層)に対応する分割鍵eRLR2を用いて生成された3次元鍵要素マトリックスQM2−3を示す。
【0141】
この3次元鍵要素マトリックスQM2−3の生成では、分割鍵eRLR2が3次元マトリックスの座標成分P5,2,0(図20(b)中の斜線部分)に割り当てられる。このとき、分割鍵eRLR2は一旦座標成分P5,2〜3,0〜2にコピー(CP)される。そして、スケーラビリティCの階層2(最上位階層)〜階層0(最下位階層)であってスケーラビリティRの階層3及び階層2それぞれについて、一方向性ハッシュ関数Hを利用した分割鍵eRLR2のハッシュ演算がスケーラビリティLの最下位階層から最上位階層に向かって順に行われる。すなわち、ハッシュ演算が行われるごとに対応する座標成分(図20(b)において実線で囲まれた領域に位置する全成分)に得られた演算データが割り当てられる。このとき、スケーラビリティLの最上位階層に対応する座標成分には、演算データH*5(eRLR2)が割り当てられる。一方、演算データが割り当てられた座標成分PL=0〜5,R=2〜3,C=0〜2以外の座標成分(図20(b)において破線で囲まれた領域に位置する全成分)のそれぞれには、スケーラビリティLの最上位階層に対応する座標成分に割り当てられた演算データH*5(eRLR2)をさらに一方向性ハッシュ関数Hを利用してハッシュ演算することにより得られた演算データH*6(eRLR2)が割り当てられる。以上の演算により、3次元鍵要素マトリックスQM2−3が生成される。
【0142】
なお、図20(c)に示された3次元鍵要素マトリックスQM3−3も、上述の3次元鍵要素マトリックスQM1−3、QM2−3の生成と同様に、スケーラビリティCの階層0(最上位階層)よりも下位階層であって基準スケーラビリティRの階層1よりも下位階層それぞれへの分割鍵eRLR1(斜線で示された座標成分P5,1,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR1のハッシュ演算)を繰り返すことにより生成される。同様に、図20(d)に示された3次元鍵要素マトリックスQM4−3も、基準スケーラビリティCの階層0(最上位階層)よりも下位階層であって基準スケーラビリティRの階層0(最上位階層)よりも下位階層への分割鍵eRLR0(斜線で示された座標成分P5,0,0として割り当てられる)のコピー動作、及びスケーラビリティLの最下位階層から最上位階層へのハッシュ演算(一方向性ハッシュ関数Hを利用した分割鍵eRLR0のハッシュ演算)を繰り返すことにより生成される。
【0143】
以上のハッシュ演算が繰り返されることにより生成された、図18(a)〜図20(d)に示された3次元鍵要素マトリックスQM1−1〜QM4−1、QM1−2〜QM4−2、QM1−3〜QM4−3について、それぞれの一致する座標成分同士を結合することにより、第5実施形態に係る暗号鍵生成方法による3次元部分鍵マトリックスQMが得られる。
【0144】
以上の説明から、この発明を様々に変形しうることは明らかである。そのような変形は、この発明の思想および範囲から逸脱するものとは認めることはできず、すべての当業者にとって自明である改良は、以下の請求の範囲に含まれるものである。
【図面の簡単な説明】
【0145】
【図1】複数種類の階層的スケーラビリティを有するディジタルデータのデータ構造を説明するための概念図である。
【図2】プログレッシブ順序を説明するための概念図である。
【図3】2種類の3階層スケーラビリティを有するディジタルデータの各データ単位(JPEG2000の各パッケージに相当)と、それに対応する部分鍵をマトリクス状に表現した図である。
【図4】この発明に係る暗号鍵生成方法の第1実施形態を説明するための概念図である。
【図5】第1実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図6】この発明に係る暗号鍵生成方法の第2実施形態を説明するための概念図である。
【図7】第2実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図8】この発明に係る暗号鍵生成方法の第3実施形態を説明するための概念図である。
【図9】第3実施形態に係る暗号鍵生成方法における鍵要素マトリクスの生成を説明するための概念図である。
【図10】この発明に係る暗号鍵生成方法の第4実施形態として、3種類以上の階層的スケーラビリティを有するディジタルデータについての部分鍵の生成を説明するための概念図である。
【図11】第4実施形態に係る暗号鍵生成方法の、部分鍵生成における階層テーブルと、部分鍵要素マトリクス及び部分鍵マトリクスの座標対応関係を示す図である。
【図12】第4実施形態に係る暗号鍵生成方法の、部分鍵生成における部分鍵要素マトリクス及び部分鍵マトリクスの要素間対応関係を説明するための図である。
【図13】多次元部分鍵マトリックス及び多次元鍵要素マトリックスにおける各座標成分配置の立体表示の例として例として3次元マトリックスと、第4実施形態を一般化した暗号鍵生成方法(図9及び10)における分割鍵の割り当て動作を説明するための図である。
【図14】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Rの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図15】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティR、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図16】第4実施形態を一般化した暗号鍵生成方法において、スケーラビリティL、Cの各階層に対応した鍵要素生成工程を立体表示された3次元マトリックスを用いて説明するための図である。
【図17】この発明に係る暗号鍵生成方法の第5実施形態において、マスター鍵から分割鍵の生成方法の一例を説明するための図である。
【図18】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層に対応する多次元鍵要素マトリックス群の生成)。
【図19】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最下位階層よりも1階層だけ上位の階層に対応する多次元鍵要素マトリックス群の生成)。
【図20】第5実施形態に係る暗号鍵生成方法における多次元鍵要素マトリックスの生成工程を説明するための図である(基準スケーラビリティL、R以外の他のスケーラビリティCの最上位階層に対応する多次元鍵要素マトリックス群の生成)。
【符号の説明】
【0146】
M1〜M3…鍵要素マトリクス、MPa〜MPc…部分鍵要素マトリクス、MP1〜MP4…部分鍵マトリクス、QM…多次元部分鍵マトリックス、QMRL1〜QMRL4、QMRC1〜QMRC4、QMLC1〜QMLC3、QM1−1〜QM4−1、QM1−2〜QM4−2、QM1−3〜QM4−3…多次元鍵要素マトリックス。
【特許請求の範囲】
【請求項1】
複数種類(≧2)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティから選択された第1及び第2スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記第1及び第2スケーラビリティのうち基準スケーラビリティとして設定された第1スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第1スケーラビリティの各階層に対応した分割鍵を生成し、
前記第1及び第2スケーラビリティにおける階層値で座標表現された鍵要素マトリクスを前記第1スケーラビリティの階層ごとに生成するに当たり、前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスについて、少なくとも、該一の分割鍵に対応する第1スケーラビリティにおける階層であって前記第2スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当て、そして、
生成された前記鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、前記第1及び第2スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項2】
前記基準スケーラビリティとして、前記第1及び第2スケーラビリティのうち階層数の少ないスケーラビリティを選択することを特徴とする請求項1記載の暗号鍵生成方法。
【請求項3】
前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスは、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも下位に位置する階層であって前記第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる一方、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも上位に位置する階層であって前記第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第2スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項1又は2記載の暗号鍵生成方法。
【請求項4】
前記複数種類のスケーラビリティから選択可能な2種類のスケーラビリティの組み合わせ全てについて、該2種類のスケーラビリティにおける階層値で座標表現された部分鍵要素マトリクスを生成し、
前記複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルであって、組み合わされた階層値により、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現する階層テーブルを生成し、
前記階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち2つの階層値及びそのスケーラビリティの種類によって特定される、2種類のスケーラビリティの組み合わせ全てについて生成された前記部分鍵要素マトリクスそれぞれの成分を結合することにより、前記部分鍵要素マトリクスの成分である部分鍵を順次生成していくことを特徴とする請求項1〜3のいずれか一項記載の暗号鍵生成方法。
【請求項5】
複数種類(≧3)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記複数種類のスケーラビリティから選択された第1及び第2基準スケーラビリティのうち第1基準スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第1基準スケーラビリティの各階層に対応した分割鍵を生成し、
前記複数種類のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、前記複数種類のスケーラビリティのうち前記第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく工程であって、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、前記分割鍵のうち一の分割鍵に対応する第1基準スケーラビリティにおける階層であって前記第2基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てていき、そして、
前記他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項6】
前記他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスのそれぞれは、対応する前記他のスケーラビリティ及び前記第1基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって前記第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第1基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる一方、対応する前記他のスケーラビリティ及び前記第1基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって前記第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第2基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項7記載の暗号鍵生成方法。
【請求項1】
複数種類(≧2)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティから選択された第1及び第2スケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記第1及び第2スケーラビリティのうち基準スケーラビリティとして設定された第1スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第1スケーラビリティの各階層に対応した分割鍵を生成し、
前記第1及び第2スケーラビリティにおける階層値で座標表現された鍵要素マトリクスを前記第1スケーラビリティの階層ごとに生成するに当たり、前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスについて、少なくとも、該一の分割鍵に対応する第1スケーラビリティにおける階層であって前記第2スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当て、そして、
生成された前記鍵要素マトリクス間で座標一致している鍵要素を結合させることにより、前記第1及び第2スケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項2】
前記基準スケーラビリティとして、前記第1及び第2スケーラビリティのうち階層数の少ないスケーラビリティを選択することを特徴とする請求項1記載の暗号鍵生成方法。
【請求項3】
前記分割鍵のうち一の分割鍵に基づいて生成される鍵要素マトリクスは、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも下位に位置する階層であって前記第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該一の分割鍵の階層について順次得られた演算データと同一演算データが割り当てられる一方、該一の分割鍵に対応する第1スケーラビリティにおける階層よりも上位に位置する階層であって前記第2スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第2スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項1又は2記載の暗号鍵生成方法。
【請求項4】
前記複数種類のスケーラビリティから選択可能な2種類のスケーラビリティの組み合わせ全てについて、該2種類のスケーラビリティにおける階層値で座標表現された部分鍵要素マトリクスを生成し、
前記複数種類のスケーラビリティにおける階層値の全組み合わせを示す階層テーブルであって、組み合わされた階層値により、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を成分とする部分鍵マトリクスを座標表現する階層テーブルを生成し、
前記階層テーブルにおける階層値の全組み合わせについて、一の組み合わせを構成している階層値のうち2つの階層値及びそのスケーラビリティの種類によって特定される、2種類のスケーラビリティの組み合わせ全てについて生成された前記部分鍵要素マトリクスそれぞれの成分を結合することにより、前記部分鍵要素マトリクスの成分である部分鍵を順次生成していくことを特徴とする請求項1〜3のいずれか一項記載の暗号鍵生成方法。
【請求項5】
複数種類(≧3)の階層的スケーラビリティを有するディジタルデータに対する符号化及び復号化に利用される暗号鍵を生成するための暗号鍵生成方法であって、
前記複数種類のスケーラビリティそれぞれにおいて最下位に位置する階層のデータ単位の符号化及び復号化に利用される暗号鍵を、マスター鍵として用意し、
前記複数種類のスケーラビリティから選択された第1及び第2基準スケーラビリティのうち第1基準スケーラビリティの階層数で用意された前記マスター鍵を分割することにより、該第1基準スケーラビリティの各階層に対応した分割鍵を生成し、
前記複数種類のスケーラビリティにおける階層値で座標表現された多次元鍵要素マトリクスを、前記複数種類のスケーラビリティのうち前記第1及び第2基準スケーラビリティを除く他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成していく工程であって、得られる多次元鍵要素マトリックスそれぞれにおいて、少なくとも、前記分割鍵のうち一の分割鍵に対応する第1基準スケーラビリティにおける階層であって前記第2基準スケーラビリティにおける最下位階層から最上位階層のそれぞれ対応する座標成分に、一方向性ハッシュ関数を利用した該一の分割鍵のハッシュ演算を繰り返すことにより順次得られた演算データを割り当てていき、そして、
前記他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスそれぞれの、座標一致している成分同士を結合することにより、前記複数種類のスケーラビリティにおける階層それぞれのデータ単位に対応した部分鍵を生成する暗号鍵生成方法。
【請求項6】
前記他のスケーラビリティそれぞれの各階層について、前記第1基準スケーラビリティの各階層に対応した一連の演算ごとに生成された前記多次元鍵要素マトリックスのそれぞれは、対応する前記他のスケーラビリティ及び前記第1基準スケーラビリティそれぞれの階層よりも下位に位置する階層であって前記第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分に、該対応する第1基準スケーラビリティの階層に割り当てられた一の分割鍵を用いて順次得られた演算データと同一演算データが割り当てられる一方、対応する前記他のスケーラビリティ及び前記第1基準スケーラビリティそれぞれの階層よりも上位に位置する階層であって前記第2基準スケーラビリティの最下位階層から最上位階層それぞれに相当する座標成分すべてに、該一の分割鍵に対応する階層の鍵要素のうち前記第2基準スケーラビリティの最上位階層の鍵要素について一方向性ハッシュ関数を利用したハッシュ演算により得られる演算データが割り当てられることを特徴とする請求項7記載の暗号鍵生成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2009−135871(P2009−135871A)
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願番号】特願2008−108115(P2008−108115)
【出願日】平成20年4月17日(2008.4.17)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【Fターム(参考)】
【公開日】平成21年6月18日(2009.6.18)
【国際特許分類】
【出願日】平成20年4月17日(2008.4.17)
【出願人】(000002130)住友電気工業株式会社 (12,747)
【出願人】(305027401)公立大学法人首都大学東京 (385)
【Fターム(参考)】
[ Back to top ]