(57)【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、前記コンピュータはメモリにロードしたプログラムをプロセッサにより実行することにより読み取る手段、第１の受け取る手段、第２の受け取る手段、選択する手段、第１の特定する手段、適用する手段、第２の特定する手段、および取得する手段を有し、
前記方法は、前記コンピュータが、
前記読み取る手段により、第１の暗号鍵、関連する第１の鍵識別子、および関連する第１の暗号関数識別子を含む鍵束を読み取るステップと、
前記第１の受け取る手段により、暗号化されたコンテンツを受け取るステップと、
前記第２の受け取る手段により、それぞれが識別子を有する複数の暗号化された鍵を受け取るステップと、
前記選択する手段により、前記複数の暗号化された鍵から第１の暗号化された鍵を、前記第１の暗号化された鍵の前記識別子が前記第１の鍵識別子と等しくなるように選択するステップと、
前記第１の特定する手段により、前記第１の暗号関数識別子に対応する第１の暗号関数を特定するステップと、
前記適用する手段により、前記第１の暗号鍵を使用して前記第１の暗号化された鍵に前記第１の暗号関数を適用して、第１の中間暗号鍵を取得するステップと、
前記第２の特定する手段により、前記第１の中間暗号鍵を使用して、コンテンツ暗号鍵を特定するステップと、
前記取得する手段により、前記暗号化されたコンテンツに前記コンテンツ暗号鍵を適用して、復号されたコンテンツを取得するステップと
を含む、方法。    
【請求項２】
前記復号されたコンテンツが、マルチメディア・データを含む、請求項１に記載の方法。    
【請求項３】
前記第１の暗号関数識別子が、ソルト値である、請求項１に記載の方法。    
【請求項４】
前記第１の暗号関数識別子が、ランダム・シードである、請求項１に記載の方法。    
【請求項５】
前記第１の暗号関数が、ブロック暗号、ＡＥＳ、Ｂｌｏｗｆｉｓｈ、Ｃ２ブロック暗号、Ｃａｍｅｌｌｉａ、ＣＡＳＴ−１２８、ＣＡＳＴ−２５６、ＣＬＥＦＩＡ、Ｃｒｙｐｔｏｍｅｒｉａ、ＤＥＳ、ＦＥＡＬ、ＧＯＳＴ  ２８１４７−８９、ＩＣＥ、ＩＤＥＡ、ＫＡＳＵＭＩ、ＬＯＫＩ９７、Ｌｕｃｉｆｅｒ、ＭａｃＧｕｆｆｉｎ、ＭＡＧＥＮＴＡ、ＭＡＲＳ、ＭＩＳＴＹ１、ＲＣ２、ＲＣ５、ＲＣ６、Ｓｋｉｐｊａｃｋ、ＳＭＳ４、ＴＥＡ、Ｔｒｉｐｌｅ  ＤＥＳ、Ｔｗｏｆｉｓｈ、およびＸＴＥＡからなる群から選択される、請求項１に記載の方法。    
【請求項６】
前記第１の鍵識別子および前記複数の暗号化された鍵の前記識別子が、列および行ペアである、請求項１に記載の方法。    
【請求項７】
前記第１の鍵識別子および前記複数の暗号化された鍵の前記識別子が、ｎ−ベクトルである、請求項１に記載の方法。    
【請求項８】
前記鍵束が、第２の暗号鍵、関連する第２の鍵識別子、および関連する第２の暗号関数識別子を含み、
前記第１の中間暗号鍵を使用してコンテンツ暗号鍵を特定するステップが、    
前記複数の暗号化された鍵から第２の暗号化された鍵を、前記第２の暗号化された鍵の前記識別子が前記第２の鍵識別子と等しくなるように選択するステップと、
前記第２の暗号関数識別子に対応する第２の暗号関数を特定するステップと、
前記第２の暗号鍵を使用して前記第２の暗号化された鍵に前記第２の暗号関数を適用して、第２の中間暗号鍵を取得するステップと、
前記第２の中間暗号鍵を使用して、前記コンテンツ暗号鍵を特定するステップとを含む、請求項１に記載の方法。    
【請求項９】
前記第１の中間暗号鍵を使用してコンテンツ暗号鍵を特定するステップが、前記第１の中間暗号鍵に第３の暗号関数を適用するステップを含む、請求項１に記載の方法。    
【請求項１０】
コンピュータにより実施される方法であって、前記コンピュータはメモリにロードしたプログラムをプロセッサにより実行することにより第１の提供する手段、第２の提供する手段、および第３の提供する手段を有し、
前記方法は、前記コンピュータが、
前記第１の提供する手段により、第１の暗号鍵、関連する第１の鍵識別子、および関連する第１の暗号関数識別子を含む鍵束を提供するステップと、
前記第２の提供する手段により、暗号化されたコンテンツを提供するステップと、
前記第３の提供する手段により、それぞれが鍵識別子を有する複数の暗号化された鍵を提供するステップとを含み、
ここで前記暗号化されたコンテンツは、
前記複数の暗号化された鍵から第１の暗号化された鍵を、前記第１の暗号化された鍵の前記識別子が前記第１の鍵識別子と等しくなるように選択し、
前記第１の暗号関数識別子に対応する第１の暗号関数を特定し、
前記第１の暗号鍵を使用して前記第１の暗号化された鍵に前記第１の暗号関数を適用して、第１の中間暗号鍵を取得し、
前記第１の中間暗号鍵を使用して、コンテンツ暗号鍵を特定し、
前記コンテンツ暗号鍵を前記暗号化されたコンテンツに適用することによって復号できる、方法。    
【請求項１１】
前記暗号化されたコンテンツが、暗号化されたマルチメディア・データを含む、請求項１０に記載の方法。    
【請求項１２】
前記第１の暗号関数識別子が、ソルト値である、請求項１０に記載の方法。
【請求項１３】
前記第１の暗号関数識別子が、ランダム・シードである、請求項１０に記載の方法。    
【請求項１４】
前記第１の暗号関数が、ブロック暗号、ＡＥＳ、Ｂｌｏｗｆｉｓｈ、Ｃ２ブロック暗号、Ｃａｍｅｌｌｉａ、ＣＡＳＴ−１２８、ＣＡＳＴ−２５６、ＣＬＥＦＩＡ、Ｃｒｙｐｔｏｍｅｒｉａ、ＤＥＳ、ＦＥＡＬ、ＧＯＳＴ  ２８１４７−８９、ＩＣＥ、ＩＤＥＡ、ＫＡＳＵＭＩ、ＬＯＫＩ９７、Ｌｕｃｉｆｅｒ、ＭａｃＧｕｆｆｉｎ、ＭＡＧＥＮＴＡ、ＭＡＲＳ、ＭＩＳＴＹ１、ＲＣ２、ＲＣ５、ＲＣ６、Ｓｋｉｐｊａｃｋ、ＳＭＳ４、ＴＥＡ、Ｔｒｉｐｌｅ  ＤＥＳ、Ｔｗｏｆｉｓｈ、およびＸＴＥＡからなる群から選択される、請求項１０に記載の方法。    
【請求項１５】
前記第１の鍵識別子および前記複数の暗号化された鍵の前記識別子が、列および行ペアである、請求項１０に記載の方法。    
【請求項１６】
前記第１の鍵識別子および前記複数の暗号化された鍵の前記識別子が、ｎ−ベクトルである、請求項１０に記載の方法。    
【請求項１７】
前記鍵束が、第２の暗号鍵、関連する第２の鍵識別子、および関連する第２の暗号関数識別子を含み、前記第１の中間暗号鍵を使用してコンテンツ暗号鍵を特定するステップが、前記複数の暗号化された鍵から第２の暗号化された鍵を、前記第２の暗号化された鍵の前記識別子が前記第２の鍵識別子と等しくなるように選択するステップと、
前記第２の暗号関数識別子に対応する第２の暗号関数を特定するステップと、
前記第２の暗号鍵を使用して前記第２の暗号化された鍵に前記第２の暗号関数を適用して、第２の中間暗号鍵を取得するステップと、
前記第２の中間暗号鍵を使用して、前記コンテンツ暗号鍵を特定するステップとを含む、請求項１０に記載の方法。    
【請求項１８】
前記第１の中間暗号鍵を使用してコンテンツ暗号鍵を特定するステップが、前記第１の中間暗号鍵に第３の暗号関数を適用するステップを含む、請求項１０に記載の方法。    
【請求項１９】
ブロードキャスト暗号化のためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータのメモリに読み出されてプロセッサにより実行されることにより前記コンピュータに、読み取る手段、第１の読み取り手段、第２の読み取り手段、第３の読み取り手段、選択する手段、第１の特定する手段、適用する手段、第２の特定する手段、および取得する手段を提供し、
前記コンピュータ・プログラムは、前記コンピュータに、
前記第１の読み取り手段により、第１の暗号鍵と、関連する第１の鍵識別子と、関連する第１の暗号関数識別子とを含む鍵束を読み取り、
前記第２の読み取り手段により、暗号化されたコンテンツを読み取り、
前記第３の読み取り手段により、それぞれが識別子を有する複数の暗号化された鍵を読み取り、
前記選択する手段により、前記複数の暗号化された鍵から第１の暗号化された鍵を、前記第１の暗号化された鍵の前記識別子が前記第１の鍵識別子と等しくなるように選択し、
前記第１の特定する手段により、前記第１の暗号関数識別子に対応する第１の暗号関数を特定し、
前記適用する手段により、前記第１の暗号鍵を使用して前記第１の暗号化された鍵に前記第１の暗号関数を適用して、第１の中間暗号鍵を取得し、
前記第２の特定する手段により、前記第１の中間暗号鍵を使用して、コンテンツ暗号鍵を特定し、
前記取得する手段により、前記暗号化されたコンテンツに前記コンテンツ暗号鍵を適用して、復号されたコンテンツを取得する
ことを実行させる、ブロードキャスト暗号化のためのコンピュータ・プログラム。    
【請求項２０】
前記鍵束が、コンピュータ可読記憶媒体においてコード化される、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ブロードキャスト暗号化に関し、より詳細には、ブロードキャスト暗号化システムにおける空間効率のよい鍵割当てに関する。
【背景技術】
【０００２】
ブロードキャスト暗号化システムにおいて空間効率のよい鍵割当てのために、鍵行列が使用され得る。鍵行列手法では、許可されたコンテンツ消費者（たとえば、デジタル・メディア・プレーヤ）が、鍵行列の列から列へトラバースするために、一方向性暗号化関数を適用する。トラバーサルの各ステップにおいて、暗号化鍵が導出され、プロセスは、目的の鍵が取得されるまで繰り返される。許可されたクライアントは、鍵行列の特定の列における特定の行に関係しているデバイス鍵の一意の小さいセットを割り当てられる。許可されたクライアントが、そのデバイス鍵の１つを使用して暗号化関数を適用するとき、新しい鍵が生成される。この新しい鍵は、後続の列においてセルに適用できる。このプロセスの繰り返しが最終的には、保護されたコンテンツを復号するために使用され得る最終復号鍵を生み出す。鍵行列手法は、鍵の組合せが、その後配布される保護されたコンテンツとともに含まれるデータ（メディア鍵ブロック：Media Key Block、以下に説明する）の変更によって取り消されることを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
単一のあらかじめ定められた一方向性関数が、行列において後続の鍵を生成するために適用され得る。この関数が事前にわかっている場合、攻撃者が総当たり（brute force）によりさらなる鍵を導出できる可能性がある。特に、わかっている一方向性関数の結果は、すべての考えられる入力に対して計算され得る。結果がいずれかのわかっている暗号化鍵に一致すると、攻撃者は、鍵行列により後方に効果的にトラバースすることによって、所有することを許可されていなかった鍵を導出する。このような総当たり計算の結果は、並行して鍵の列全体と比較され得る。攻撃者が、破られた最終暗号化鍵の複数のセットを有する場合、この並列処理はさらに増える。
【０００４】
いずれか１つの列が解読されると、攻撃者は、暗号化鍵束における列のすべてに遡って、それを指す列などを続けて解読することができる。攻撃者は、その後、攻撃者がもともと所有していなかった鍵のセットを所有することになり、コンテンツの許可されていない復号または他の復号デバイスの偽装が可能になる。
【０００５】
このような攻撃の危険を最小限にするために、一方向性関数は、総当たり攻撃が実行不可能となるように選択され得る。特に、総当たりにより解読するには法外な時間を要することになる関数が選択され得る。たとえば、ＡＥＳ−１２８を使用する一方向性関数が、現時点で解読が不可能であると一般的に考えられている。しかしながら攻撃者は、１８ヶ月ごとにその平均個別計算能力が倍増している複数のコンピュータを含む、ますます大きくなったクラウド（または、ボットネット）にアクセスできる。計算能力が継続して増加することにより、攻撃者は、毎年暗号化強度のおよそさらなる１ビット分を総当たりにより解読することができる。また、解読効率を桁違いに跳ね上げることができる技術（ハードウェアまたはアルゴリズムに関する）発展（たとえば、レインボー・テーブル、ＡＥＳのためのＣＰＵ支援、マルチコア並列処理、ＧＰＵ、ＦＰＧＡ、量子計算における超並列処理）が時々ある。これらの進行中の進化を考えると、現在は実際に解読できない一方向性関数が、近い将来に解読される可能性がある。
【課題を解決するための手段】
【０００６】
本発明の１つの実施形態によれば、ブロードキャスト暗号化の方法およびそのためのコンピュータ・プログラム製品が提供される。この実施形態では、鍵束（key bundle）が読み取られる。鍵束は、第１の暗号鍵と、関連する第１の鍵識別子と、関連する第１の暗号関数識別子とを含む。暗号化されたコンテンツが受け取られる。複数の暗号化された鍵が受け取られる。各暗号化された鍵が、関連する識別子を有する。複数の暗号化された鍵から第１の暗号化された鍵が、第１の暗号化された鍵の識別子が第１の鍵識別子と等しくなるように選択される。第１の暗号関数識別子に対応して、第１の暗号関数が特定される。第１の暗号関数は、第１の暗号鍵を使用して第１の暗号化された鍵に適用されて、第１の中間暗号鍵を取得する。第１の中間暗号鍵を使用して、コンテンツ暗号鍵が特定される。コンテンツ暗号鍵は、暗号化されたコンテンツに適用されて、復号されたコンテンツを取得する。
【０００７】
本発明の別の実施形態によれば、ブロードキャスト暗号化の方法およびそのためのコンピュータ・プログラム製品が提供される。この実施形態では、鍵束が提供される。鍵束は、第１の暗号鍵と、関連する第１の鍵識別子と、関連する第１の暗号関数識別子とを含む。暗号化されたコンテンツが提供される。複数の暗号化された鍵が提供される。各暗号化された鍵が、関連する鍵識別子を有する。複数の暗号化された鍵から第１の暗号化された鍵を、第１の暗号化された鍵の識別子が第１の鍵識別子と等しくなるように選択することと、第１の暗号関数識別子に対応する第１の暗号関数を特定することと、第１の暗号鍵を使用して第１の暗号化された鍵に第１の暗号関数を適用して、第１の中間暗号鍵を取得することと、第１の中間暗号鍵を使用してコンテンツ暗号鍵を特定することと、コンテンツ暗号鍵を暗号化されたコンテンツに適用することとによって、暗号化されたコンテンツが復号できるように、複数の暗号化された鍵は選択される。
【図面の簡単な説明】
【０００８】
【図１】本開示の一実施形態による、ブロードキャスト暗号化方式の概略図である。
【図２】本開示の一実施形態による、例示的デバイス鍵束の図である。
【図３】本開示の一実施形態による、例示的メディア鍵ブロックの図である。
【図４】本開示の一実施形態による、コンテンツを復号する方法の図である。
【図５】本発明の一実施形態による、計算ノードを示す図である。
【発明を実施するための形態】
【０００９】
ブロードキャスト暗号化システムにおいて空間効率のよい鍵割当てのために、鍵行列が使用され得る。鍵行列手法では、許可されたコンテンツ消費者（たとえば、デジタル・メディア・プレーヤ）が、鍵行列の列から列へトラバースするために、一方向性暗号化関数を適用する。トラバーサルの各ステップにおいて、暗号化鍵が導出され、プロセスは、目的の鍵が取得されるまで繰り返される。許可されたクライアントは、鍵行列の特定の列における特定の行に関係しているデバイス鍵の一意の小さいセットを割り当てられる。許可されたクライアントが、そのデバイス鍵の１つを使用して暗号化関数を適用するとき、新しい鍵が生成される。この新しい鍵は、後続の列においてセルに適用できる。このプロセスの繰り返しが最終的には、保護されたコンテンツを復号するために使用され得る最終復号鍵を生み出す。鍵行列手法は、鍵の組合せが、その後配布される保護されたコンテンツとともに含まれるデータ（メディア鍵ブロック：Media Key Block、以下に説明する）の変更によって取り消されることを可能にする。
【００１０】
単一のあらかじめ定められた一方向性関数が、行列において後続の鍵を生成するために適用され得る。この関数が事前にわかっている場合、攻撃者が総当たり（brute force）によりさらなる鍵を導出できる可能性がある。特に、わかっている一方向性関数の結果は、すべての考えられる入力に対して計算され得る。結果がいずれかのわかっている暗号化鍵に一致すると、攻撃者は、鍵行列により後方に効果的にトラバースすることによって、所有することを許可されていなかった鍵を導出する。このような総当たり計算の結果は、並行して鍵の列全体と比較され得る。攻撃者が、破られた最終暗号化鍵の複数のセットを有する場合、この並列処理はさらに増える。
【００１１】
いずれか１つの列が解読されると、攻撃者は、暗号化鍵束における列のすべてに遡って、それを指す列などを続けて解読することができる。攻撃者は、その後、攻撃者がもともと所有していなかった鍵のセットを所有することになり、コンテンツの許可されていない復号または他の復号デバイスの偽装が可能になる。
【００１２】
このような攻撃の危険を最小限にするために、一方向性関数は、総当たり攻撃が実行不可能となるように選択され得る。特に、総当たりにより解読するには法外な時間を要することになる関数が選択され得る。たとえば、ＡＥＳ−１２８を使用する一方向性関数が、現時点で解読が不可能であると一般的に考えられている。しかしながら攻撃者は、１８ヶ月ごとにその平均個別計算能力が倍増している複数のコンピュータを含む、ますます大きくなったクラウド（または、ボットネット）にアクセスできる。計算能力が継続して増加することにより、攻撃者は、毎年暗号化強度のおよそさらなる１ビット分を総当たりにより解読することができる。また、解読効率を桁違いに跳ね上げることができる技術（ハードウェアまたはアルゴリズムに関する）発展（たとえば、レインボー・テーブル、ＡＥＳのためのＣＰＵ支援、マルチコア並列処理、ＧＰＵ、ＦＰＧＡ、量子計算における超並列処理）が時々ある。これらの進行中の進化を考えると、現在は実際に解読できない一方向性関数が、近い将来に解読される可能性がある。
【００１３】
ブロードキャスト暗号化における総当たり攻撃の危険に対処するために、本開示は、行列における個々の鍵に適用できる暗号化関数のバリエーションを提供する。暗号化関数がシステム内で変化するとき、効果的な総当たり攻撃を開始することはできない。単一の既知の関数に総当たりすることができる場合でも、適用できる暗号化関数がわからない場合、総当たり攻撃を行うことはできない。また、暗号化関数が変化することを可能にすることによって、同じ効果的暗号化強度を維持しながら、鍵の長さを縮小することができる。
【００１４】
図１を参照すると、ブロードキャスト暗号化方式の概略図が提供されている。一般的に、暗号化されるコンテンツ１０１は、メディア鍵１０２を用いて暗号化される。メディア鍵（Ｋｍ）１０２は、デバイス鍵（Ｋｄ）１０３のセットを使用してメディア鍵ブロック（ＭＫＢ）１０４を処理することによって、許可されたコンテンツ消費者によって特定される。メディア鍵１０２は、暗号化されたコンテンツに固有であり、デバイス鍵１０３は、許可されたコンテンツ消費者（デジタル・メディア・プレーヤなど）に含まれ、メディア鍵ブロック１０４は、たとえば、ＤＶＤなどの光メディアのリードイン領域に、暗号化されたコンテンツとともに含まれる。
【００１５】
このようなブロードキャスト暗号化方式では、鍵生成機関（ＫＧＦ：KeyGeneration Facility）が、メディア鍵１０２、およびデバイス鍵１０３など、複数の暗号化鍵を生成する責任を負っている。鍵生成機関はまた、メディア鍵ブロック１０４を生成する責任を負い、メディア鍵ブロック１０４から、許可されたコンテンツ消費者によって所与のメディア鍵１０２が導出され得る。
【００１６】
暗号化されるコンテンツは、ネットワークを介してであっても、ＤＶＤなどの光メディア上であっても、配布される前に一意のメディア鍵１０２を使用して暗号化される。暗号化されたコンテンツと併せて、適切なメディア鍵ブロック１０２が提供される。いくつかの実施形態では、メディア鍵ブロック１０４は、暗号化されたコンテンツ１０１とともに光メディア上に置かれている。他の実施形態では、メディア鍵ブロック１０４は、暗号化されたコンテンツの配布前に、配布後に、または配布中に、ネットワークを通じて配布される。いくつかの実施形態では、暗号化されたコンテンツおよびメディア鍵ブロック１０４は、異なる機構によって配布され、いくつかの実施形態では、これらは同じ機構により配布される。
【００１７】
メディア・プレーヤなど、暗号化されたコンテンツの許可された消費者が、デバイス鍵（Ｋｄ）１０３の束を提供される。メディア鍵ブロック（ＭＫＢ）１０４をそのデバイス鍵１０３で処理すること１０５によって、許可されたプレーヤは、メディア鍵（Ｋｍ）１０２を特定することができる。メディア鍵（Ｋｍ）１０２は、その後、暗号化されたコンテンツ１０１を復号するために使用される。ＣＰＲＭ／ＣＰＰＭで行われる方法など、メディア鍵１０２を取得するためにメディア鍵ブロック１０４を処理するためのいくつかの方法が知られていることは、当業者には認識されよう。
【００１８】
鍵生成機関は、許可されたコンテンツ消費者、または消費者のグループに、デバイス鍵の異なる束を与える。メディア鍵ブロックは、許可されたデバイス鍵のみが、メディア鍵ブロックから所与のメディア鍵を特定することができるように、鍵生成機関によって生成される。所与の消費者またはメディア・プレーヤが、もはや暗号化されたコンテンツを消費することを許可されない場合、鍵生成機関によって生成されるその後のメディア鍵ブロックは、そのような取り消されたプレーヤがメディア鍵を取得すること可能にしない。このようにして、取り消された消費者は、その取り消し後に提供されたコンテンツを復号することができなくなる。
【００１９】
図２は、本開示の一実施形態による、例示的デバイス鍵束を示す。デバイス鍵束２００は、（行として示される）複数のエントリを含み、エントリのそれぞれが列識別子２０１と、行識別子２０２と、鍵２０３とを含む。いくつかの実施形態では、鍵２０３は、１２８ビット（１６バイト）のＡＥＳ鍵であり、関数識別子２０４は省略され、適用できる関数は、許可されたコンテンツ消費者には推測的に（a priori）わかっている。いくつかの実施形態では、代替的ブロック暗号が使用される。ＡＥＳ、Ｂｌｏｗｆｉｓｈ、Ｃ２ブロック暗号、Ｃａｍｅｌｌｉａ、ＣＡＳＴ−１２８、ＣＡＳＴ−２５６、ＣＬＥＦＩＡ、Ｃｒｙｐｔｏｍｅｒｉａ、ＤＥＳ、ＦＥＡＬ、ＧＯＳＴ  ２８１４７−８９、ＩＣＥ、ＩＤＥＡ、ＫＡＳＵＭＩ、ＬＯＫＩ９７、Ｌｕｃｉｆｅｒ、ＭａｃＧｕｆｆｉｎ、ＭＡＧＥＮＴＡ、ＭＡＲＳ、ＭＩＳＴＹ１、ＲＣ２、ＲＣ５、ＲＣ６、Ｓｋｉｐｊａｃｋ、ＳＭＳ４、ＴＥＡ、Ｔｒｉｐｌｅ  ＤＥＳ、Ｔｗｏｆｉｓｈ、およびＸＴＥＡなどの、ただしこれらに限らない、様々な暗号および対応する鍵の長さが使用され得る。
【００２０】
いくつかの実施形態では、各エントリが、関数識別子２０４を含む。関数識別子２０４は、どの暗号関数が鍵２０３に適用できるかを示す。いくつかの実施形態では、関数識別子２０４は、知られている暗号関数へのソルト（すなわち、暗号関数への追加入力を提供するランダム値）である。いくつかの実施形態では、関数識別子２０４は、適用される関数の表示と、ソルト値の両方を含む。いくつかの実施形態では、関数識別子２０４は、関数またはソルト値を導出するのに十分な情報を含む。たとえば、関数識別子２０４は、その後暗号関数へのソルト値または他のパラメータを生成するために使用される、擬似乱数生成器へのシードを含むことができる。いくつかの実施形態では、関数識別子２０４は、ＭａｔｈＭＬなど、数学関数のコード化に適した言語で適用され、コード化される暗号関数の記述を含む。
【００２１】
いくつかの実装では、デバイス鍵束２００が、考えられる各列識別子（たとえば、０から１６３８３）に対して正確に１つの鍵を含む。デバイス鍵束２００に含まれている論理データを記憶するために利用できる様々な物理表現があることは、当業者には認識されよう。たとえば、列および行識別子は、単一の明示的な識別子に結合され得る。列および行は、多次元配列など、エントリを含んだデータ構造のレイアウトによって示すことができる。いくつかの実施形態では、鍵は、３次元行列における位置を識別するために、列値および行値の代わりに、ｘ値、ｙ値、およびｚ値と関連付けられる。いくつかの実施形態では、鍵は、ｎ次元空間における点を識別するｎ−ベクトルと関連付けられる。
【００２２】
図３は、本開示の一実施形態による、例示的メディア鍵ブロックを示す。メディア鍵ブロック３００は、複数の列３０１、３０２を含む。第１の列３０１は、ヘッダ３１０と、複数の暗号化された値３１１・・・３１７とを含む。ヘッダ３１０は、列識別子（たとえば、列＝６）を含む。代替的実施形態では、列ヘッダ３１０の代わりに、各暗号化された値３１１・・・３１７が、セル識別子とペアにされることが可能であり、セル識別子は、列および行番号を含むことができる。メディア鍵ブロック３００に含まれている論理データを記憶するために利用できる様々な物理表現があることは、当業者には認識されよう。たとえば、各鍵が、明示的な行識別子と関連付けられることがあり、または行識別子は、配列などのデータ構造内の鍵の位置の結果として生じることがある。
【００２３】
第２の列３０２は、ヘッダ３２０と、複数の暗号化された値３２１・・・３２７とを含む。ヘッダ３２０は、暗号化された列識別子を含む。いくつかの実施形態では、メディア鍵ブロック３００にさらなる列が含まれる。また、いくつかの実施形態は、列ヘッダ３１０、３２０に、またはメディア鍵ブロック３００に、さらなる情報を含めることができる。たとえば、列ヘッダ３１０、３２０は、目的の鍵が取得されたかどうかを確認するために使用され得る検証値（verification value）を含むことができる。
【００２４】
図４は、本開示の一実施形態による、暗号化されたコンテンツを復号する方法を示す。４０１において、コンテンツ消費者が、暗号化されたコンテンツおよびメディア鍵ブロック（たとえば、３００）を受け取る。いくつかの実施形態では、メディア鍵ブロックおよび暗号化されたコンテンツは、たとえばＤＶＤなどのマシン可読媒体で、一緒に受け取られる。他の実施形態では、暗号化されたコンテンツおよびメディア鍵ブロックは、別々に受け取られる。４０２において、コンテンツ消費者は、メディア鍵ブロックを調べて、ＭＫＢに含まれる第１の列（たとえば、３１０）の列識別子を特定する。４０３において、コンテンツ消費者は、同じ列識別子（たとえば、列６）を有するデバイス鍵束から、デバイス鍵（たとえば、２４３）、行識別子（たとえば、行４、２４２）、および関数識別子（たとえば、ＡＥＳ−１２８、２４４）を選択する。いくつかの実施形態では、デバイス鍵束は、ＤＶＤメディア・プレーヤなど、許可されたコンテンツ消費者にある。他の実施形態では、デバイス鍵束は、ネットワークを介して、またはマシン可読媒体を介して、コンテンツ消費者に伝えられる。
【００２５】
４０４において、コンテンツ消費者は、以前に特定された行識別子に対応するＭＫＢのセル（たとえば、列６、行４、３１４）にデバイス鍵（たとえば、２４３）を適用する。４０５において、コンテンツ消費者は、結果として生じた鍵を取得する。４０６において、結果として生じた鍵は、端末鍵（terminal key）であるかどうかを特定するためにテストされる。いくつかの実施形態では、端末鍵は、ＭＫＢに含まれる検証フィールドに端末鍵を適用して、あらかじめ定められた値（たとえば、0xDEADBEEF）を取得することによって識別される。端末鍵が見つけられた場合、端末鍵が使用されて、コンテンツ鍵４０７を取得する。いくつかの実施形態では、端末鍵は、コンテンツ鍵である。他の実施形態では、端末鍵は、コンテンツ鍵を復号するために使用される。さらに他の実施形態では、コンテンツ鍵を取得するために、一連の関数が端末鍵に適用される。
【００２６】
結果として生じた鍵が、端末ではない場合、４０９においてメディア消費者は、結果として生じた鍵をＭＫＢの後続の列のヘッダ（たとえば、３２０）に適用する。４１０において、コンテンツ消費者は、列ヘッダへの鍵の適用から、復号された列識別子を取得する。この新しい列識別子を使用して、端末鍵が得られるまで、一連の次の鍵を取得するために、ステップ４０３〜４０６が繰り返される。ステップ４０４のいくつかの実施形態では、コンテンツ消費者のデバイス鍵と先の結果として生じた鍵の両方が、ＭＫＢの識別されたセルに適用される。たとえば、４０３において関連する列に対してデバイス鍵が特定されると、結果として生じた鍵は、ＭＫＢの対応する列および行に適用されて、中間値を特定する。デバイス鍵は、その後次の鍵を特定するために適用される。いくつかの実施形態では、デバイス鍵は、結果として生じた鍵より前に適用され得る。いくつかの実施形態では、デバイス鍵および先の結果として生じた鍵から次の鍵を取得するために、一連のさらなる関数が適用される。いくつかの実施形態では、先の結果として生じた鍵と併せて使用される暗号関数は、ヘッダ３２０に含まれる関数識別子によって特定される。
【００２７】
上述のように、ポリモーフィック（polymorphic）鍵行列手法は、多くの暗号化関数が同じブロードキャスト暗号化方式で使用されることを可能にする。コンテンツの許可された消費者が、暗号化関数の記述と結合されたデバイス鍵のセット、および関数と鍵とのマッピングを提供される。記述は、関数識別子、ソルト値、またはコンテンツ消費者が必要な関数を適用するのに十分な何らかの他の情報であってよい。消費者は、そのトラバーサルに必要とされない（すなわち、その行／列の組合せ用ではない）関数の記述を与えられない。関数は変化するので、攻撃者には、未知の鍵を導出するためにどの一方向性関数を解読しなければならないかがわからない。攻撃者がある関数にマッチする答えを取得する場合、攻撃者は、それが正しい関数であるかどうかがわからず、したがって、総当たり攻撃を事実上実施することができない。所与の鍵のための正しい関数についての正確な推測でも、さらなる列へのトラバースに必要な関数に関する情報を攻撃者に提供しない。したがって、本開示のポリモーフィック鍵行列の適用は、未知の鍵を取得することに向けられた総当たり攻撃を事実上不可能にする。いくつかの実施形態では、コンテンツ提供者は、以後の鍵を生成するために、実在のメディア鍵ブロックに適用される関数のすべてを知る。しかしながら、いくつかの実施形態では、既存のコンテンツをアクセスできない状態にすることなく、コンテンツ提供者を変更することによって、既存のシステムにさらなる関数が適用され得る。いくつかの実施形態では、コンテンツ提供者ごとに、異なる関数を割り当てられる。いくつかの実施形態では、使用中の関数は、フォレンジクス・システム（forensics system）に知られ、欠陥を生じた鍵を検出するために使用され得る。
【００２８】
さらに、ブロードキャスト暗号化システムの効果的な暗号化強度のいくつかは、ポリモーフィック・トラバーサル関数に再配置することができ、所与の長さの鍵の強度は、大いに増加する。いくつかの応用では、未知の鍵の保護は、個々のコンテンツ（または、単一メッセージ）の保護よりも重要である。ブロードキャスト暗号化技法は、このような環境において適用され得る。したがって、起動鍵のサイズを削減することができ、その結果として、ＭＫＢを使用するシステムにおいてＭＫＢサイズが削減され得る。たとえば、適用される暗号化の強度は、個々のコンテンツをその有効期間（たとえそれがわずか数時間または数日であっても）の間保護するように選択され得る。その結果、集約された復号鍵束サイズは、著しく削減され得る。いくつかの実装において、復号鍵束サイズは、半分以上削減され得る。復号鍵束は、（クライアントではワンタイムの静的鍵および関数ストレージに含まれているのとは対照的に）ブロードキャスト伝送と結合されるので、進行中の伝送オーバヘッドを著しく削減する。
【００２９】
いくつかの実施形態では、行列における各セルのためのトラバーサル関数は異なる。これは、コンテンツ消費者によって要求される空間に関してより大きい鍵を配布することと等しくなる。コンテンツ消費者の空間要求は高いが、暗号化されたコンテンツとともに提供される復号鍵束は小さい。したがって、暗号化されたコンテンツの適切な保護を維持しながら、利用できる帯域幅から有効利用が行われる。
【００３０】
いくつかの実施形態では、トラバーサル関数は、行列において複数のセルに使用される。このような部分ポリモーフィック行列（Partial Polymorphic Matrix）手法では、セルへの関数の様々な割当てを使用することができる。たとえば、各列または各行に異なる関数を使用することができる。別の例として、いくつかの列が１つの関数を有することができると同時に、他の列は行ごとに１つの関数を有する。この開示に従って、セルへの関数の任意の割当てを採用することができる。
【００３１】
上述のように、本開示の主題は、ブロードキャスト暗号化方式において使用されるのに適している。本開示は、ＣＰＲＭ／ＣＰＰＭなど、既存のブロードキャスト暗号化方式に適用できる。コンテンツ消費者に提供される鍵束に、本開示に従った関数識別子を加えることによって、既存のブロードキャスト暗号化方式が変更され得る。
【００３２】
次に図５を参照すると、本発明の一実施形態による計算ノードの一例の概略図が提供されている。計算ノード１０は、好適な計算ノードの一例にすぎず、本明細書に記載する本発明の実施形態の使用または機能の範囲に関していかなる制限を提案することも意図していない。それとは関係なく、計算ノード１０は、実装されること、または以上に示す機能のいずれかを行うこと、あるいはその両方が可能である。
【００３３】
計算ノード１０には、コンピュータ・システム／サーバ１２があり、数多くの他の汎用または特殊用途のコンピューティング・システム環境または構成で動作可能である。コンピュータ・システム／サーバ１２とともに使用するのに適している可能性がある、よく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、これらに限らない。
【００３４】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどの、コンピュータ・システム実行可能命令の一般的な文脈で説明されることがある。一般的に、プログラム・モジュールは、特定のタスクを行うまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践され得る。分散コンピューティング環境では、プログラム・モジュールが、メモリ記憶デバイスを含んだローカルとリモートの両方のコンピュータ・システム記憶媒体に置かれることがある。
【００３５】
図５に示すように、計算ノード１０におけるコンピュータ・システム／サーバ１２が、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ１２の構成要素は、１つもしくは複数のプロセッサまたは処理ユニット１６と、システム・メモリ２８と、システム・メモリ２８を含む様々なシステム構成要素をプロセッサ１６に結合するバス１８とを含むことができるが、これらに限らない。
【００３６】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート（accelerated graphics port）、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスなど、いくつかのタイプのバス構造のいずれかの１つまたは複数を表わす。例として、限定ではなく、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Micro Channel Architecture）バス、拡張ＩＳＡ（ＥＩＳＡ：EnhancedISA）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ：VideoElectronics Standards Association）ローカル・バス、および周辺構成要素相互接続（ＰＣＩ：Peripheral Component Interconnect）バスが含まれる。
【００３７】
コンピュータ・システム／サーバ１２は、一般に様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能であるいかなる利用可能媒体であってもよく、揮発媒体と不揮発媒体、取り外し可能な媒体と取り外し不可能な媒体をともに含む。
【００３８】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０、またはキャッシュ・メモリ３２、あるいはその両方など、揮発性メモリの形式のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不可能、揮発性／不揮発性の、コンピュータ・システム記憶媒体をさらに含むことができる。単に例として、取り外し不可能な、不揮発性磁気媒体（図示せず、一般に「ハード・ドライブ」と呼ばれる）からの読み取りおよびこれへの書き込みのために、ストレージ・システム３４を設けることができる。図示していないが、取り外し可能な不揮発性磁気ディスク（たとえば、「フロッピー（Ｒ）・ディスク」）からの読み取りまたはこれへの書き込みのための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭもしくは他の光媒体など、取り外し可能な不揮発性光ディスクからの読み取りまたはこれへの書き込みのための光ディスク・ドライブを設けることができる。このような場合、１つまたは複数のデータ媒体のインタフェースによって、それぞれがバス１８に接続され得る。以下にさらに示して説明するように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（たとえば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００３９】
プログラム・モジュール４２のセット（少なくとも１つ）を有するプログラム／ユーティリティ４０は、例として、限定ではなくメモリ２８に、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データに、記憶することができる。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはその何らかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール４２は、一般に、本明細書に記載する本発明の実施形態の機能または方法、あるいはその両方を実行する。
【００４０】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などのような１つもしくは複数の外部デバイス１４、またはユーザがコンピュータ・システム／サーバ１２と対話できるようにする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（たとえば、ネットワーク・カード、モデムなど）、あるいはその組合せと通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース２２を介して行うことができる。さらにコンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、または一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（たとえば、インターネット）、あるいはその組合せのような、１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。図示するように、ネットワーク・アダプタ２０は、コンピュータ・システム／サーバ１２の他の構成要素とバス１８を介して通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素、あるいはその両方を、コンピュータ・システム／サーバ１２と併せて使用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限らない。
【００４１】
当業者には理解されるように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されることが可能である。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、これらを本明細書ではすべて一般的に「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、本発明の諸態様は、コンピュータ可読プログラム・コードを包含した１つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることができる。
【００４２】
１つまたは複数のコンピュータ可読媒体の任意の組合せが使用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体が、たとえば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のさらなる具体例（非網羅的リスト）には、１つもしくは複数の配線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶デバイス、磁気記憶デバイス、または上記の任意の好適な組合せが含まれる。この文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらと関連させて使用するためのプログラムを収めるまたは記憶することができる任意の有形媒体とすることができる。
【００４３】
コンピュータ可読信号媒体は、たとえば、ベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードを包含した伝搬データ信号を含むことができる。このような伝搬信号は、電磁気、光、またはその任意の好適な組合せなどの、ただしこれらに限らない、様々な形のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためにプログラムを伝える、伝搬する、または伝送することができる任意のコンピュータ可読媒体であってもよい。
【００４４】
コンピュータ可読媒体に包含されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、または上記の任意の好適な組合せを含む、ただしこれらに限らない、任意の適切な媒体を使用して送信されてもよい。
【００４５】
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの、従来の手続きプログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、すべてユーザのコンピュータ上で実行する、スタンドアロン型ソフトウェア・パッケージとして、一部はユーザのコンピュータ上で実行する、一部はユーザのコンピュータ上で実行し、一部はリモート・コンピュータ上で実行する、またはすべてリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）などの、任意のタイプのネットワークを通じてユーザのコンピュータに接続することができ、または（たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータへの接続を行うことができる。
【００４６】
本発明の諸実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図、あるいはその両方を参照して、本発明の諸態様を以下に述べる。フローチャート図またはブロック図、あるいはその両方の各ブロック、およびフローチャート図またはブロック図、あるいはその両方におけるブロックの組合せは、コンピュータ・プログラム命令によって実施され得ることは理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。
【００４７】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に格納された命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行為を実施する命令を組み込んだ製品を作り出すように、コンピュータ可読媒体に記憶されて、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに、特定の方法で機能するように指示するものであってもよい。
【００４８】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートまたはブロック図、あるいはその両方の１つまたは複数のブロックに指定される機能／行為を実施するためのプロセスを提供するように、コンピュータ実施プロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させるものであってもよい。
【００４９】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、（１つまたは複数の）指定された論理機能を実施するための１つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表わすことができる。いくつかの代替的な実装では、ブロックに示した機能が図に示した順序を外れて行われ得ることにも留意されたい。たとえば、連続して示した２つのブロックは、実際には実質的に同時に実行されることがあり、またはブロックは、関連する機能に応じて、時には逆の順序で実行されることがある。ブロック図またはフローチャート図、あるいはその両方の各ブロック、およびブロック図またはフローチャート図、あるいはその両方におけるブロックの組合せは、指定された機能または行為を行う専用ハードウェアベースのシステム、あるいは専用ハードウェアおよびコンピュータ命令の組合せによって実施され得ることにも注意されたい。
【００５０】
本発明の様々な実施形態の説明を、例示の目的で提示したが、網羅的であること、または開示する実施形態に限定することを意図していない。説明した実施形態の範囲および趣旨を逸脱することなく、多くの変更形態および変形形態が当業者には明らかとなるであろう。本明細書で使用する用語は、実施形態の原理、実際の応用、または市場で見つけられる技術を超える技術改善を最も良く説明するように、または、当業者が本明細書に開示する実施形態を理解できるように選択した。
【図１】
0006282343.tif 000002
【図２】
0006282343.tif 000003
【図３】
0006282343.tif 000004
【図４】
0006282343.tif 000005
【図５】
0006282343.tif 000006