(57)【要約】【課題】  木構造を適用し、ＣＳ方式に基づく暗号文提供構成において、暗号文復号を行なう機器に格納すべき情報量、および計算量の削減を可能とした構成を提供する。【解決手段】  階層木を構成する各ノードに対応してノード対応値を設定した一方向木としてのＲａｂｉｎ  Ｔｒｅｅを生成し、ノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定し、各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出可能な構成とした。本構成により、受信機において安全に保持することが要求される情報量が削減され、また、受信機においてノードキー算出のために必要とされる計算量を削減することが可能となり、効率的な暗号文、配信、復号処理構成が実現される。【選択図】  図１３
2006115464.tif 000002
【特許請求の範囲】
【請求項１】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー算出ステップと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定ステップと、
を有することを特徴とする情報処理方法。
【請求項２】
前記一方向木生成ステップは、
下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出可能な設定を有する一方向木を生成することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記情報処理方法は、さらに、
前記階層木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする請求項１に記載の情報処理方法。
【請求項４】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数１】
2006115464.tif 000066
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
の関係を満たす一方向木を生成することを特徴とする請求項１に記載の情報処理方法。
【請求項５】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、
末端ノード数としての葉数：Ｎと、法Ｍのサイズ：｜Ｍ｜を入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ＺＭの要素を出力するマッピング関数：Ｈを定める、
ステップ３：前記２分木の最上位ノードであるルートノードのノード対応値ＮＶ１をＮＶ１∈Ｚ＊Ｍを満足する値としてランダムに選択する、
ステップ４：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数２】
2006115464.tif 000067
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける、
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める、
ステップ５：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする請求項４に記載の情報処理方法。
【請求項６】
前記ノードキー算出ステップは、
ノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するステップであり、前記関数Ｈｃは、ノード対応値ＮＶをノードキーＮＫのサイズに応じたビット長のデータにマップするハッシュ関数であることを特徴とする請求項１に記載の情報処理方法。
【請求項７】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数３】
2006115464.tif 000068
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成することを特徴とする請求項１に記載の情報処理方法。
【請求項８】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数４】
2006115464.tif 000069
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
階層木構成に基づくブロードキャストエンクリプション方式により特定選択機器のみの復号を可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
階層木を適用したＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、選択された一部の特別サブセットに対応するラベルの値を演算処理により算出可能な値として設定した中間ラベル（ＩＬ）を、前記ノード対応値として設定する中間ラベル生成ステップと、
前記中間ラベルに基づく演算処理により、前記特別サブセット対応のラベルを生成し、さらに該生成ラベルに基づく演算により特別サブセット非対応のラベルを生成するラベル生成ステップと、
前記階層木の末端ノード対応の受信機に対する提供ラベルを決定するステップであり、
前記特別サブセットに対応しない特別サブセット非対応ラベルと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限の中間ラベルとしてのノード対応値とノード付加変数を選択する提供情報決定ステップとを有し、
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数５】
2006115464.tif 000070
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成することを特徴とする情報処理方法。
【請求項１０】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数６】
2006115464.tif 000071
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出ステップと、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法。
【請求項１２】
前記暗号文選択ステップは、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号と一致するものを見つけるステップであることを特徴とする請求項１１に記載の復号処理方法。
【請求項１３】
前記ノードキー算出ステップは、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数７】
2006115464.tif 000072
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
を適用して算出するステップを含むことを特徴とする請求項１１に記載の復号処理方法。
【請求項１４】
前記ノードキー算出ステップは、
自己の保持するノード対応値または、該ノード対応値に基づいて算出した自己ノードから最上位ノードであるルートに至るパス上のノード対応値に基づいて、下記式、
ＮＫ＝Ｈｃ（ＮＶ）
ただし、ＮＫ：ノードキー、ＮＶ：ノード対応値、Ｈｃ：マッピング関数、
に基づいて算出するステップを含むことを特徴とする請求項１１に記載の復号処理方法。
【請求項１５】
前記ノードキー算出ステップは、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数８】
2006115464.tif 000073
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出するステップを含むことを特徴とする請求項１１に記載の復号処理方法。
【請求項１６】
階層木構成に基づくブロードキャストエンクリプション方式であるＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するサブセットキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するラベル、または自己の保持する中間ラベルとしてのノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出可能なラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用サブセットキーが、保持ラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーでない場合に、前記ノード対応値ＮＶとノード付加変数ｓａｌｔとに基づく演算処理を実行して特別サブセット対応のラベルを算出するラベル算出ステップと、
保持ラベルまたは算出ラベルに基づく擬似乱数生成処理によってサブセットキーを生成するステップと、
生成サブセットキーを適用して暗号文の復号処理を実行する復号ステップとを有し、
前記ラベル算出ステップは、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数９】
2006115464.tif 000074
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出するステップを含むことを特徴とする復号処理方法。
【請求項１７】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成手段と、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー生成手段と、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定手段と、
を有することを特徴とする情報処理装置。
【請求項１８】
前記一方向木生成手段は、
下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出可能な設定を有する一方向木を生成する構成であることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記情報処理装置は、さらに、
前記階層木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段を有することを特徴とする請求項１７に記載の情報処理装置。
【請求項２０】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数１０】
2006115464.tif 000075
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
の関係を満たす一方向木を生成する構成であることを特徴とする請求項１７に記載の情報処理装置。
【請求項２１】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、
末端ノード数としての葉数：Ｎと、法Ｍのサイズ：｜Ｍ｜を入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ＺＭの要素を出力するマッピング関数：Ｈを定める、
ステップ３：前記２分木の最上位ノードであるルートノードのノード対応値ＮＶ１をＮＶ１∈Ｚ＊Ｍを満足する値としてランダムに選択する、
ステップ４：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数１１】
2006115464.tif 000076
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける、
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める、
ステップ５：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップを実行して、一方向木の生成処理を実行する構成であることを特徴とする請求項２０に記載の情報処理装置。
【請求項２２】
前記ノードキー算出手段は、
ノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出する構成であり、前記関数Ｈｃは、ノード対応値ＮＶをノードキーＮＫのサイズに応じたビット長のデータにマップするハッシュ関数であることを特徴とする請求項１７に記載の情報処理装置。
【請求項２３】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数１２】
2006115464.tif 000077
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成する構成であることを特徴とする請求項１７に記載の情報処理装置。
【請求項２４】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数１３】
2006115464.tif 000078
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップを実行して一方向木を生成する構成であることを特徴とする請求項２３に記載の情報処理装置。
【請求項２５】
階層木構成に基づくブロードキャストエンクリプション方式により特定選択機器のみの復号を可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成手段と、
階層木を適用したＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、選択された一部の特別サブセットに対応するラベルの値を演算処理により算出可能な値として設定した中間ラベル（ＩＬ）を、前記ノード対応値として設定する中間ラベル生成手段と、
前記中間ラベルに基づく演算処理により、前記特別サブセット対応のラベルを生成し、さらに該生成ラベルに基づく演算により特別サブセット非対応のラベルを生成するラベル生成手段と、
前記階層木の末端ノード対応の受信機に対する提供ラベルを決定する手段であり、
前記特別サブセットに対応しない特別サブセット非対応ラベルと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限の中間ラベルとしてのノード対応値とノード付加変数を選択する提供情報決定手段とを有し、
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数１４】
2006115464.tif 000079
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成する構成であることを特徴とする情報処理装置。
【請求項２６】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数１５】
2006115464.tif 000080
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成する構成であることを特徴とする請求項２５に記載の情報処理装置。
【請求項２７】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出手段と、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置。
【請求項２８】
前記暗号文選択手段は、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号と一致するものを見つける構成であることを特徴とする請求項２７に記載の情報処理装置。
【請求項２９】
前記ノードキー算出手段は、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数１６】
2006115464.tif 000081
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
を適用して算出する処理を実行する構成であることを特徴とする請求項２７に記載の情報処理装置。
【請求項３０】
前記ノードキー算出手段は、
自己の保持するノード対応値または、該ノード対応値に基づいて算出した自己ノードから最上位ノードであるルートに至るパス上のノード対応値に基づいて、下記式、
ＮＫ＝Ｈｃ（ＮＶ）
ただし、ＮＫ：ノードキー、ＮＶ：ノード対応値、Ｈｃ：マッピング関数、
に基づいて算出する処理を実行する構成であることを特徴とする請求項２７に記載の情報処理装置。
【請求項３１】
前記ノードキー算出手段は、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数１７】
2006115464.tif 000082
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出する処理を実行する構成であることを特徴とする請求項２７に記載の情報処理装置。
【請求項３２】
階層木構成に基づくブロードキャストエンクリプション方式であるＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するサブセットキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するラベル、または自己の保持する中間ラベルとしてのノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出可能なラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用サブセットキーが、保持ラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーでない場合に、前記ノード対応値ＮＶとノード付加変数ｓａｌｔとに基づく演算処理を実行して特別サブセット対応のラベルを算出するラベル算出手段と、
保持ラベルまたは算出ラベルに基づく擬似乱数生成処理によってサブセットキーを生成する手段と、
生成サブセットキーを適用して暗号文の復号処理を実行する復号手段とを有し、
前記ラベル算出手段は、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数１８】
2006115464.tif 000083
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出する処理を実行する構成であることを特徴とする情報処理装置。
【請求項３３】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー算出ステップと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定ステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項３４】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出ステップと、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、階層木構造を適用したブロードキャストエンクリプション方式において現在知られているＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）を一方向木として設定されるＲａｂｉｎ  Ｔｒｅｅを用いて改良し、さらに効率化を図ることで、ＲＳＡ暗号方式を用いた既存の方式より、必要な計算量を削減し、また安全に管理すべきデータ量を削減した効率的でセキュアな情報配信を実現する情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ（以下、これらをコンテンツ（Content）と呼ぶ）が、インターネット等のネットワークを介して、あるいはＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disk)、ＭＤ(Mini Disk)等の情報記録媒体（メディア）を介して流通している。これらの流通コンテンツは、ユーザの所有するＰＣ（Personal Computer）やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。
【０００３】
音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製等が行われないようにする構成をとるのが一般的となっている。
【０００４】
特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、ＣＤ−Ｒ等の記録媒体に対する不正コピーという問題が発生している。
【０００５】
このようなコンテンツの不正利用を防止する１つの方式として、コンテンツあるいは暗号化コンテンツを復号するための鍵を暗号化して配布し、特定の正規ユーザまたは正規デバイスにおいてのみ配布データの復号を可能としたシステムがある。例えばブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した構成が知られている。
【０００６】
階層型木構造を適用した暗号鍵等の暗号データ提供処理について、図を参照して説明する。
【０００７】
図１に示す階層型木構造は２分木構造を用いており、その最下層がリーフ（葉）と呼ばれ、頂点、各分岐部およびリーフを含む部分をノードと称する。なお、頂点をルート、あるいはルートノードと呼ぶ。図１に示す２分木階層型木構造において、リーフは８〜１５、ノードは１〜１５、ルートは１である。
【０００８】
この２分木階層型木構造におけるリーフ８〜１５にコンテンツの利用機器としての再生機、受信機等の情報処理装置を１つずつ割り当てる。
【０００９】
また、木の各ノード（リーフを含む）１〜１５にそれぞれノードキーを１つずつ割り当てる。リーフ８〜１５に割り当てるノードキーはリーフキーと呼ばれる場合もある。
【００１０】
リーフに対応する各情報処理装置には、対応するリーフからルートまでの経路にあるノードに割り当てられたノードキーが与えられる。図１の構成では、リーフ８から１５までに割り当てられた８台の情報処理装置があり、ノード１から１５までにそれぞれノードキーが割り当てられており、リーフ８に対応する情報処理装置１０１には、ノード１，２，４，８に割り当てられた４個のノードキーが与えられる。また、リーフ１２に対応する情報処理装置１０２には、ノード１，３，６，１２に割り当てられた４個のノードキーが与えられる。各情報処理装置は、これらのノードキーを安全に保管する。
【００１１】
このノードキーの配布処理を伴うセッティングを用いて、選択した情報処理装置のみが取得可能な情報を送信する方法を図２を参照して説明する。たとえば、特定の音楽、画像データ等のコンテンツを暗号化した暗号化コンテンツをブロードキャスト配信、あるいはＤＶＤ等の記録媒体に格納して誰でも取得可能な状態で流通させ、その暗号化コンテンツを復号するための鍵（コンテンツキーＫｃ）を特定のユーザ、すなわち正規なコンテンツ利用権を持つユーザまたは情報処理装置にのみ提供する構成を想定する。
【００１２】
図２に示すリーフ１４に割り当てられた情報処理装置を不正な機器として、排除（リボーク）し、それ以外の情報処理装置が正規な情報処理装置であるとする。この場合、リーフ１４に割り当てられた情報処理装置ではコンテンツキーＫｃを取得できないが、他の情報処理装置ではコンテンツキーＫｃを取得できる暗号文を生成して、その暗号文をネットワークを介してあるいは記録媒体に格納して配布する。
【００１３】
この場合、リボーク（排除）される情報処理装置が持つノードキー（図２では×印で表現）以外のノードキーのうち、できるだけ多数の情報処理装置に共有されているもの、すなわち木の上部にあるものをいくつか用いて、コンテンツキーを暗号化して送信すればよい。
【００１４】
図２に示す例では、ノード２，６，１５のノードキーを用いて、コンテンツキーＫｃを暗号化した暗号文のセットを生成して提供する。すなわち、
Ｅ（ＮＫ２，Ｋｃ），Ｅ（ＮＫ６，Ｋｃ），Ｅ（ＮＫ１５，Ｋｃ）
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。またＮＫｎは、図に示す第ｎ番のノードキーを意味する。従って、上記式は、
コンテンツキーＫｃをノードキーＮＫ２で暗号化した暗号化データＥ（ＮＫ２，Ｋｃ）と、コンテンツキーＫｃをノードキーＮＫ６で暗号化した暗号化データＥ（ＮＫ６，Ｋｃ）と、コンテンツキーＫｃをノードキーＮＫ１５で暗号化した暗号化データＥ（ＮＫ１５，Ｋｃ）と、を含む３つの暗号文のセットであることを意味している。
【００１５】
上記３つの暗号文を作り、例えば同報通信路を用いて全情報処理装置に送信すれば、リボーク対象でない情報処理装置（図２示すリーフ８〜１３および１５に対応する情報処理装置）はいずれかの暗号文を自分が持つノードキーで復号することが可能であり、コンテンツキーＫｃを得ることができる。しかし、リボーク（排除）されたリーフ１４に対応する情報処理装置は、上記の３つの暗号文に適用された３つのノードキーＮＫ２、ＮＫ６、ＮＫ１５のいずれも保有していないので、この暗号文を受領しても、復号処理を行うことができずコンテンツキーＫｃを得ることはできない。
【００１６】
これまでに学会等で公開されているブロードキャストエンクリプション（Broadcast Encryption）方式としては例えば非特許文献１に記載の方式がある。上述のブロードキャストエンクリプション（Broadcast Encryption）方式は、非特許文献１に記載されている名称によれば、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と呼ばれる。
【００１７】
しかし、このような木構造を用いて情報配信を行なう場合、リーフに対応する情報処理装置（ユーザ機器）が増大すると同報送信すべきメッセージが増大し、また各情報処理装置（ユーザ機器）において安全に格納すべきノードキーなどの鍵情報も増大してしまうという問題がある。
【００１８】
例えば、上述のＣＳ方式では、システムの全受信機（受信者）数をＮとし、そのうち排除（リボーク）される、即ち、同報通信される秘密情報を受け取ることができない受信機の数をｒとしたときに、同報通信すべきメッセージ（暗号文）の数がｒｌｏｇ（Ｎ／ｒ）であり、各受信機が安全なメモリに保持すべき鍵の数が、ｌｏｇＮ＋１となる。なお、本明細書においては、特に断りのない限りｌｏｇの底は２である。
【００１９】
受信機の製造コストを削減するために、この鍵の数を減らすことが課題である。鍵数削減に対する提案としては、例えば、２００４年１月に行われた学会において発表された論文として、野島らの著した論文「一方向性関数による木構造鍵管理方式の効率化」（非特許文献２）や、尾形らの著した論文「ＲＳＡ暗号を利用した効率的な木構造鍵管理方式」（非特許文献３）がある。
【００２０】
これらの論文で提案された方式は、ＲＳＡ暗号を用いてＣＳ方式の各受信機が持つ鍵の数を１つに削減する方式である。しかし、ＲＳＡ暗号を用いるための計算量が大きいという問題があり、計算量を減らすことが課題である。
【００２１】
このように、木構造を用いた情報配信構成では、リーフに対応する情報処理装置（ユーザ機器）の増大に伴う配信メッセージの増大や、各情報処理装置（ユーザ機器）において安全に格納すべきノードキーなどの鍵情報の増大という問題が存在し、さらに、受信機における鍵算出に必要とする計算量の負荷の問題が存在する。例えば、受信機において格納すべき情報量を増大させ、また必要な計算負荷を増加させてしまうと、ユーザ機器のセキュアメモリ領域の増加、演算処理能力の増加などの処置が必要となりユーザ機器の製造コストが増大するという問題が発生する。また、計算量の増大に伴う処理遅延という問題も発生する。
【非特許文献１】Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｃｒｙｐｔｏ  ２００１，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２１３９，Ｓｐｒｉｎｇｅｒ，２００１  ｐｐ．４１−６２「Ｄ．Ｎａｏｒ，Ｍ．Ｎａｏｒ  ａｎｄ  Ｊ．Ｌｏｔｓｐｉｅｃｈ著"Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  Ｔｒａｃｉｎｇ  Ｓｃｈｅｍｅｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ｒｅｃｅｉｖｅｒｓ"」
【非特許文献２】２００４年暗号と情報セキュリティシンポジウム予稿集、ｐｐ．１８９−１９４
【非特許文献３】２００４年暗号と情報セキュリティシンポジウム予稿集、ｐｐ．１９５−１９９
【発明の開示】
【発明が解決しようとする課題】
【００２２】
本発明は、このような状況に鑑みてなされたものであり、ブロードキャストエンクリプション（Broadcast Encryption）方式の基本的な方式として知られるＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）を一方向木として設定されるＲａｂｉｎ  Ｔｒｅｅを用いて改良し、さらに効率化を図ることで、ＲＳＡ暗号方式を用いた既存の方式より、必要な計算量を削減し、また安全に管理すべきデータ量を削減した効率的でセキュアな情報配信を実現する情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
【００２３】
さらに、具体的には、本発明では、ＣＳ方式に対し、Ｒａｂｉｎ暗号に基づくＲａｂｉｎ  Ｔｒｅｅを適用することにより、各受信機が安全に保持すべき鍵の数を１つに減少させる。各受信機は１つの鍵から、ＣＳ方式で必要であったｌｏｇＮ＋１個の鍵を計算により導出する。また本発明では、後に詳しく説明するが、Ｒａｂｉｎ暗号を応用することにより、ＲＳＡ暗号を応用した野島ら、および尾形らの方式に比べて計算量を著しく小さくすることを可能とした情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【００２４】
本発明の第１の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー算出ステップと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定ステップと、
を有することを特徴とする情報処理方法にある。
【００２５】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出可能な設定を有する一方向木を生成することを特徴とする。
【００２６】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記階層木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする。
【００２７】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数１９】
2006115464.tif 000003
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
の関係を満たす一方向木を生成することを特徴とする。
【００２８】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木において、末端ノード数としての葉数：Ｎと、法Ｍのサイズ：｜Ｍ｜を入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ＺＭの要素を出力するマッピング関数：Ｈを定める、
ステップ３：前記２分木の最上位ノードであるルートノードのノード対応値ＮＶ１をＮＶ１∈Ｚ＊Ｍを満足する値としてランダムに選択する、
ステップ４：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数２０】
2006115464.tif 000004
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける、
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める、
ステップ５：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする。
【００２９】
さらに、本発明の情報処理方法の一実施態様において、前記ノードキー算出ステップは、ノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するステップであり、前記関数Ｈｃは、ノード対応値ＮＶをノードキーＮＫのサイズに応じたビット長のデータにマップするハッシュ関数であることを特徴とする。
【００３０】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数２１】
2006115464.tif 000005
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成することを特徴とする。
【００３１】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木において、２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数２２】
2006115464.tif 000006
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする。
【００３２】
さらに、本発明の第２の側面は、
階層木構成に基づくブロードキャストエンクリプション方式により特定選択機器のみの復号を可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
階層木を適用したＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、選択された一部の特別サブセットに対応するラベルの値を演算処理により算出可能な値として設定した中間ラベル（ＩＬ）を、前記ノード対応値として設定する中間ラベル生成ステップと、
前記中間ラベルに基づく演算処理により、前記特別サブセット対応のラベルを生成し、さらに該生成ラベルに基づく演算により特別サブセット非対応のラベルを生成するラベル生成ステップと、
前記階層木の末端ノード対応の受信機に対する提供ラベルを決定するステップであり、
前記特別サブセットに対応しない特別サブセット非対応ラベルと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限の中間ラベルとしてのノード対応値とノード付加変数を選択する提供情報決定ステップとを有し、
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数２３】
2006115464.tif 000007
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成することを特徴とする情報処理方法にある。
【００３３】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木において、２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数２４】
2006115464.tif 000008
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成することを特徴とする。
【００３４】
さらに、本発明の第３の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出ステップと、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法にある。
【００３５】
さらに、本発明の復号処理方法の一実施態様において、前記暗号文選択ステップは、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号と一致するものを見つけるステップであることを特徴とする。
【００３６】
さらに、本発明の復号処理方法の一実施態様において、前記ノードキー算出ステップは、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数２５】
2006115464.tif 000009
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
を適用して算出するステップを含むことを特徴とする。
【００３７】
さらに、本発明の復号処理方法の一実施態様において、前記ノードキー算出ステップは、自己の保持するノード対応値または、該ノード対応値に基づいて算出した自己ノードから最上位ノードであるルートに至るパス上のノード対応値に基づいて、下記式、
ＮＫ＝Ｈｃ（ＮＶ）
ただし、ＮＫ：ノードキー、ＮＶ：ノード対応値、Ｈｃ：マッピング関数、
に基づいて算出するステップを含むことを特徴とする。
【００３８】
さらに、本発明の復号処理方法の一実施態様において、前記ノードキー算出ステップは、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数２６】
2006115464.tif 000010
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出するステップを含むことを特徴とする。
【００３９】
さらに、本発明の第４の側面は、
階層木構成に基づくブロードキャストエンクリプション方式であるＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するサブセットキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するラベル、または自己の保持する中間ラベルとしてのノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出可能なラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用サブセットキーが、保持ラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーでない場合に、前記ノード対応値ＮＶとノード付加変数ｓａｌｔとに基づく演算処理を実行して特別サブセット対応のラベルを算出するラベル算出ステップと、
保持ラベルまたは算出ラベルに基づく擬似乱数生成処理によってサブセットキーを生成するステップと、
生成サブセットキーを適用して暗号文の復号処理を実行する復号ステップとを有し、
前記ラベル算出ステップは、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数２７】
2006115464.tif 000011
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出するステップを含むことを特徴とする復号処理方法にある。
【００４０】
さらに、本発明の第５の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成手段と、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー生成手段と、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定手段と、
を有することを特徴とする情報処理装置にある。
【００４１】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出可能であり、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出可能な設定を有する一方向木を生成する構成であることを特徴とする。
【００４２】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記階層木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段を有することを特徴とする。
【００４３】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数２８】
2006115464.tif 000012
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
の関係を満たす一方向木を生成する構成であることを特徴とする。
【００４４】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Ｎの２分木構成を持つ階層木において、末端ノード数としての葉数：Ｎと、法Ｍのサイズ：｜Ｍ｜を入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ＺＭの要素を出力するマッピング関数：Ｈを定める、
ステップ３：前記２分木の最上位ノードであるルートノードのノード対応値ＮＶ１をＮＶ１∈Ｚ＊Ｍを満足する値としてランダムに選択する、
ステップ４：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数２９】
2006115464.tif 000013
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける、
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める、
ステップ５：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップを実行して、一方向木の生成処理を実行する構成であることを特徴とする。
【００４５】
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、ノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出する構成であり、前記関数Ｈｃは、ノード対応値ＮＶをノードキーＮＫのサイズに応じたビット長のデータにマップするハッシュ関数であることを特徴とする。
【００４６】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数３０】
2006115464.tif 000014
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成する構成であることを特徴とする。
【００４７】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う、
ａ．下記式、
【数３１】
2006115464.tif 000015
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップを実行して一方向木を生成する構成であることを特徴とする。
【００４８】
さらに、本発明の第６の側面は、
階層木構成に基づくブロードキャストエンクリプション方式により特定選択機器のみの復号を可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成手段と、
階層木を適用したＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、選択された一部の特別サブセットに対応するラベルの値を演算処理により算出可能な値として設定した中間ラベル（ＩＬ）を、前記ノード対応値として設定する中間ラベル生成手段と、
前記中間ラベルに基づく演算処理により、前記特別サブセット対応のラベルを生成し、さらに該生成ラベルに基づく演算により特別サブセット非対応のラベルを生成するラベル生成手段と、
前記階層木の末端ノード対応の受信機に対する提供ラベルを決定する手段であり、
前記特別サブセットに対応しない特別サブセット非対応ラベルと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限の中間ラベルとしてのノード対応値とノード付加変数を選択する提供情報決定手段とを有し、
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）が、下式、
【数３２】
2006115464.tif 000016
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
の関係を満たす一方向木を生成する構成であることを特徴とする情報処理装置にある。
【００４９】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木において、
２分木を構成する葉（リーフ）の数：Ｎと、法Ｍのサイズ：｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力とし、
ステップ１：サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する、
ステップ２：ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する、
ステップ３：ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数３３】
2006115464.tif 000017
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
ステップ４：
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力し、これらを２分木の各ノードｌ（ｌ＝１〜２Ｎ−１）のノード対応値およびノード付加変数とする、
上記ステップによって一方向木を生成する構成であることを特徴とする。
【００５０】
さらに、本発明の第７の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出手段と、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置にある。
【００５１】
さらに、本発明の情報処理装置の一実施態様において、前記暗号文選択手段は、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号と一致するものを見つける構成であることを特徴とする。
【００５２】
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数３４】
2006115464.tif 000018
ただし、Ｍは２つの大きな素数の積、Ｈは、ＺＭの要素を出力するマッピング関数である、
を適用して算出する処理を実行する構成であることを特徴とする。
【００５３】
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、自己の保持するノード対応値または、該ノード対応値に基づいて算出した自己ノードから最上位ノードであるルートに至るパス上のノード対応値に基づいて、下記式、
ＮＫ＝Ｈｃ（ＮＶ）
ただし、ＮＫ：ノードキー、ＮＶ：ノード対応値、Ｈｃ：マッピング関数、
に基づいて算出する処理を実行する構成であることを特徴とする。
【００５４】
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数３５】
2006115464.tif 000019
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出する処理を実行する構成であることを特徴とする。
【００５５】
さらに、本発明の第８の側面は、
階層木構成に基づくブロードキャストエンクリプション方式であるＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するサブセットキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するラベル、または自己の保持する中間ラベルとしてのノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出可能なラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用サブセットキーが、保持ラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーでない場合に、前記ノード対応値ＮＶとノード付加変数ｓａｌｔとに基づく演算処理を実行して特別サブセット対応のラベルを算出するラベル算出手段と、
保持ラベルまたは算出ラベルに基づく擬似乱数生成処理によってサブセットキーを生成する手段と、
生成サブセットキーを適用して暗号文の復号処理を実行する復号手段とを有し、
前記ラベル算出手段は、
２分木において上位ノードから幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で付与したノード番号ｌ（エル）の設定された各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）中、自己ノードから最上位ノードであるルートに至るパス上のノード対応値を、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて、下式、
【数３６】
2006115464.tif 000020
ただし、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す、
を適用して算出する処理を実行する構成であることを特徴とする情報処理装置にある。
【００５６】
さらに、本発明の第９の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定したノード対応値を各ノードに設定した一方向木を生成する一方向木生成ステップと、
前記一方向木を構成する各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出するノードキー算出ステップと、
前記一方向木の末端ノード対応の受信機に提供する情報として、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード対応値を算出するために必要となる最小限のノード対応値とノード付加変数を選択する提供情報決定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００５７】
さらに、本発明の第１０の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて生成可能なノードキーを適用した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーを、自己の保持するノード対応値ＮＶとノード付加変数ｓａｌｔに基づいて算出するノードキー算出ステップと、
算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００５８】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００５９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００６０】
本発明の一実施例の構成によれば、ブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応してノード対応値を設定した一方向木としてのＲａｂｉｎ  Ｔｒｅｅを生成し、ノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定し、各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出可能な構成とした。本構成により、従来のＣＳ方式では各受信機はｌｏｇＮ＋１個のノードキーを安全に保持する必要があったが、本発明を適用した構成では、各受信機が安全に保持しなければならない鍵の個数を削減することができ、また、ノード付加変数ｓａｌｔは安全に保持する必要がなく、ノード付加変数ｓａｌｔは平均２ビットという小さなサイズとすることが可能であるので、受信機において安全に保持することが要求される情報量が削減される。さらに、本発明と同様に、受信機が安全に保持すべき鍵数を１つに削減した、ＲＳＡ暗号を利用した方式と比較した場合、本発明の方式では、受信機に必要とされる計算量として大きな負荷であるべき乗剰余演算が自乗算１回で行える構成であり、ＲＳＡ暗号を利用した方式と比較すると約１／１７と非常に小さくすることができる。このように、本発明の構成を適用することにより、受信機において安全に保持することが要求される情報量が削減され、また、受信機においてノードキー算出のために必要とされる計算量を削減することが可能となり、効率的な暗号文、配信、復号処理構成が実現される。
【００６１】
さらに、本発明の一実施例の構成によれば、ノード付加変数（ｓａｌｔ）の設定を変更したＲａｂｉｎ  Ｔｒｅｅ構成例２を用いることで、受信機側においてノードキーを算出するために必要な計算量を削減することが可能となり、効率的な処理が実現される。
【発明を実施するための最良の形態】
【００６２】
以下、図面を参照しながら本発明の情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムの詳細について説明する。
【００６３】
なお、説明は、以下の項目に従って行なう。
１．Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要
２．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を適用したＣＳ方式の構成
３．ＣＳ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理
４．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を適用したＣＳ方式の暗号文配信構成における計算量の削減についての考察
５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成
６．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した暗号文配信、復号処理
７．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した効果について
８．Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式の概要
９．ＳＤ方式のラベル数削減構成
１０．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を用いたＳＤ方式のラベル数削減構成
１１．ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理
１２．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を用いたＳＤ方式に従った暗号文配信、復号処理
１３．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した効果について
１４．Ｂａｓｉｃ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ベーシックＬＳＤ）方式の概要
１５．Ｒａｂｉｎ  Ｔｒｅｅを用いたベーシックＬＳＤ方式のラベル数削減構成
１６．Ｇｅｎｅｒａｌ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（一般化ＬＳＤ）方式の概要
１７．Ｒａｂｉｎ  Ｔｒｅｅを用いた一般化ＬＳＤ方式のラベル数削減構成
１８．Ｒａｂｉｎ  Ｔｒｅｅを適用したＳＤ方式の暗号文配信構成における計算量の削減についての考察
【００６４】
［１．Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要］
まず既存の階層型木構造を適用したブロードキャストエンクリプション（Broadcast Encryption）方式として知られているＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要について説明する。
【００６５】
なお、以下の説明においては、簡単のために、階層型木構造のリーフに対応して設定される情報処理装置（受信機）の総数Ｎは２のべき乗の数であるとする。また、以下の説明において、関数ｌｏｇの底はすべて２である。なお、階層型木構造のリーフに対応する機器は、以下に説明する秘密情報の復号処理を実行可能であれば、様々な機器、例えばＰＣ、携帯端末など、様々な情報処理装置の設定が可能である。ここでは、これらを総称して受信機として説明する。また、本発明における暗号文配信処理とは、通信ネットワークを介した通信による提供処理のみならず、記録媒体に格納した暗号文の提供処理も含むものである。
【００６６】
（１．１）Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要
図３以下を参照して、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要について説明する。
【００６７】
前述の非特許文献１［  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｃｒｙｐｔｏ  ２００１，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２１３９，Ｓｐｒｉｎｇｅｒ，２００１  ｐｐ．４１−６２「Ｄ．Ｎａｏｒ，Ｍ．Ｎａｏｒ  ａｎｄ  Ｊ．Ｌｏｔｓｐｉｅｃｈ著"Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  Ｔｒａｃｉｎｇ  Ｓｃｈｅｍｅｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ｒｅｃｅｉｖｅｒｓ"」］に記載されたＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式では、図３に示すように、階層型木構造として各ノードが２つに分岐する形を持つ２分木を用いる。図３は、受信機数Ｎ＝１６の例である。この２分木の各リーフ（葉）に各受信機を割り当てる（図３におけるｕ１〜ｕ１６）。また、木の各ノード（節）を用いて、「そのノードを頂点とする部分木のリーフ（葉）に割り当てられた受信機からなる集合」を表す。図３におけるノードｉ２０１は、受信機ｕ５とｕ６からなる集合を表す。
【００６８】
そして、図３に示す２分木の各構成ノードに鍵（ノードキー）が定義される。各受信機には、各受信機が割り当てられているリーフ（葉）から木のルート（頂点）に至るパス上のノードに割り当てられたノードキーが与えられ、受信機はこれらのノードキーを安全なメモリに保持する。木の定義やノードキーの定義、受信機の割り当てやノードキーの配布などは、Ｔｒｕｓｔｅｄ  Ｃｅｎｔｅｒ（ＴＣ）と呼ばれる信頼される管理センタが行なう。
【００６９】
図４に示すように、階層木には１６台の受信機ｕ１〜ｕ１６が割り当てられ、ノードは１〜３１の３１個、存在する。受信機ｕ４には、ノード１，２，４，９，１９に割り当てられた５個のノードキーが与えられる。すなわち、全受信機数をＮとした場合には、各受信機はｌｏｇＮ＋１個のノードキーを保持することになる。
【００７０】
図５を用いて、このセッティングを用いて秘密情報（たとえば、暗号化されたコンテンツを復号するためのコンテンツキー）をどのようにリボークされない受信機に送信するかについて説明する。ここでは、管理センタ（ＴＣ）が秘密情報の送信者になるとする。いま、受信機ｕ２，ｕ１１，ｕ１２がリボークされる受信機とする。すなわち、受信機ｕ２，ｕ１１，ｕ１２を不正な機器として排除（リボーク）し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
【００７１】
管理センタ（ＴＣ）が秘密情報の送信を行なう場合、リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文のセットを生成して同報送信する。
【００７２】
リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のリーフまたはノードに割り当てられたノードキーを使用すると、これらは、リボークすべき受信機が持つキーであるため、リボーク機器において秘密情報を入手できてしまう。従って、これらのキーを用いずに暗号文のセットを生成して同報送信する。
【００７３】
リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードおよびパスを木から除外すると、１つ以上の部分木が残る。例えば、ノード５を頂点とする部分木、あるいはノード１２を頂点とする部分木などである。
【００７４】
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図５に示す例では、ノード５，７，９，１２，１６に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーＫｃであるとし、ノード５，７，９，１２，１６に割り当てられたノードキーをＮＫ５，ＮＫ７，ＮＫ９，ＮＫ１２，ＮＫ１６とすると、秘密情報の送信者は、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ７，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１２，Ｋｃ），Ｅ（ＮＫ１６，Ｋｃ）
の暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【００７５】
上記暗号文セットは、リボーク受信機ｕ２，ｕ１１，ｕ１２のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
【００７６】
受信機は、伝送された暗号文のうち、自分が復号できるもの、すなわち、自身が割り当てられたリーフ（葉）からルートに至るまでのパス上のノードに対応するノードキーを用いて暗号化されたものを復号して秘密情報を得ることができる。上記の例では、受信機ｕ４はノード９のノードキーを保持しているので、これを用いて暗号化された暗号文Ｅ（ＮＫ９，Ｋｃ）を復号することができる。このように、リボークされていない受信機が復号できる暗号文は受信した暗号文セット中に必ずひとつ存在する。
【００７７】
（１．２）ＣＳ方式における鍵数の削減
上述したＣＳ方式を観察すると、以下のことがわかる。すなわち、ＣＳ方式において、あるノードを頂点とする部分木の葉（リーフ）は、そのノードの先祖ノードを頂点とする部分木の葉でもある。
【００７８】
例えば、図６に示すように、ノードｊ２３２を頂点とする部分木Ｐ２３５の葉（リーフ）としてのｕ５，ｕ６は、そのノードｊ２３２の先祖ノード、例えばノードｉを頂点とする部分木Ａ２３０の葉でもある。
【００７９】
このため、あるノードのノードキーを保持している受信機は、その先祖ノードのノードキーも保持する。たとえば図６に示すように、ノードｉ２３１がノードｊ２３２の先祖であるとき、ノードｊ２３２のノードキーを持つ受信機（ｕ５，ｕ６）は必ずノードｉ２３１のノードキーも持つ。ただし、この逆は必ずしも成り立たない。
【００８０】
このような特性を有しているため、例えば、木の各ノードに設定するノードキーからその先祖のノードのノードキーを計算で導出できるように各ノードキーを設定すれば、独立に複数のノードキーを持つよりも鍵数、すなわち受信機のメモリを削減することが可能となる。
【００８１】
ただし、上位のノードのノードキーからその子孫ノードのノードキーを導出できないようにする必要がある。これは、例えば図６において、ノードｉ２３１がノードｊ２３２の先祖であるとき、ノードｊ２３２のノードキーを持つ受信機（ｕ５，ｕ６）は必ずノードｉ２３１のノードキーも持つが、一方、ノードｉ２３１のノードキーを持つ受信機（ｕ１〜ｕ８）が必ずノードｊ２３２のノードキーも持つとは限らないからである。図６の構成において、受信機：ｕ１〜ｕ８中、ノードｊ２３２のノードキーを持つことが許容されている受信機はｕ５，ｕ６のみであり、他の受信機ｕ１〜ｕ４，ｕ７〜ｕ８は、ノードｊ２３２のノードキーを持つことが許容されていないノードであり、これらの受信機において、ノードｉ２３１のノードキーからノードｊ２３２のノードキーを導出できるようにすることは許容できないからである。
【００８２】
このため本発明では、ｘからｙを計算するのは簡単だが、その逆計算は困難であるような関数、すなわち一方向性関数：ｙ＝Ｆ（ｘ）を用いて各ノードのノードキーを設定した木構造を構成する。
【００８３】
（１．３）ＲＳＡ暗号を用いた鍵数の削減
前述の非特許文献２「２００４年暗号と情報セキュリティシンポジウム予稿集、ｐｐ．１８９−１９４」、非特許文献３「２００４年暗号と情報セキュリティシンポジウム予稿集、ｐｐ．１９５−１９９」において、野島らおよび尾形らが提案した、ＲＳＡ暗号を用いた方式を説明する。この方式では、図７に示すように、ＲＳＡ暗号の順方向置換（ｆ）と逆方向置換（ｆ−１）を用いる。ＲＳＡ暗号の法をＭ、公開指数をｅ、秘密指数をｄとすると、法：Ｍと、公開指数：ｅとを知っていれば行えるのが順方向置換（ｆ）、秘密指数：ｄを知らないと実行困難であるのが逆方向置換（ｆ−１）である。
【００８４】
ＲＳＡ暗号についての詳細は、たとえば、Ａ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６に紹介されている。
【００８５】
ＲＳＡ暗号を用いた方式では、管理センタのみが秘密指数：ｄを秘密に保持し、法：Ｍと、公開指数：ｅとは各受信機に公開する。管理センタは、
秘密の値：Ｋ∈Ｚ＊Ｍ
を定め、これをルートの鍵ＮＫ１とする。すなわち、
ＮＫ１＝Ｋとする。なお、Ｋ∈Ｚ＊Ｍは、Ｋが、群Ｚ＊Ｍ（すなわち，群ＺＭ＝｛０，１，...，Ｍ−１｝の要素中，逆元を持つものからなる群）の元であることを意味する。
【００８６】
ルート以外のノードｌ（エル）の鍵は、その親ノードの鍵、
【数３７】
2006115464.tif 000021
と、そのノードの番号ｌから、下式、
【数３８】
2006115464.tif 000022
に従って算出する。
上記式において、Ｈは任意のサイズの入力をＺＭの要素にマッピングする公開関数である。
【００８７】
このように、親ノードの鍵から子ノードの鍵を求めることは、秘密指数：ｄを知る管理センタのみが行えるが、逆に子ノードの鍵ＮＫｌを知っている受信機は、公開されている法：Ｍと、公開指数：ｅと公開関数：Ｈとを用いて、下式、
【数３９】
2006115464.tif 000023
により親ノードの鍵（ノードキー）、
【数４０】
2006115464.tif 000024
を導出することができる。
【００８８】
［２．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を適用したＣＳ方式の構成］
（２．１）Ｒａｂｉｎ  Ｔｒｅｅの構成方法例
本発明では、一方向木として設定されるＲａｂｉｎ  Ｔｒｅｅを用いる。なお、「Ｒａｂｉｎ  Ｔｒｅｅ」とは、一般的な用語ではなく本発明の説明のために用いる言葉である。Ｎ個の葉を持つ完全２分木に対し、ルートを１、それ以降のノードを上位、左から２，３，...，２Ｎ−１と幅優先で番号付けし、下記の手順に従って、Ｒａｂｉｎ  Ｔｒｅｅを構成する。
【００８９】
ＲＳＡ暗号と同様、２つの大きな素数の積Ｍを管理センタが定め、公開する。管理センタは、
秘密の値：Ｙ∈Ｚ＊Ｍ
を定め、これを頂点（ノード１）に対応する値ＮＶ１とする。なお、Ｙ∈Ｚ＊Ｍは、Ｙが、群Ｚ＊Ｍの元であることを意味する。
【００９０】
頂点以外のノードｌ（エル）（ｌ＝２，３，・・・，２Ｎ−１）に対応する値ＮＶｌは、そのノードの番号ｌと親ノードに対応するノード対応値、
【数４１】
2006115464.tif 000025
を用いてを求める。
【００９１】
まず、下式によって、ｔｍｐｌを定義する。
【数４２】
2006115464.tif 000026
【００９２】
上記式によって定義される値ｔｍｐｌが、前述した２つの大きな素数の積Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。ｓａｌｔｌは、ノードｌ（エル）に対応して設定されるノード付加変数である。
【００９３】
なお、上記式において、ｌ‖ｓａｌｔｌは、ｌとｓａｌｔｌとの連結を表し、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍにより定まる群ＺＭにマッピングする公開関数である。このような関数の例として、任意の長さの入力に対し１６０ビットの出力を出す縮約関数としてのＳＨＡ−１ハッシュ関数を用いて、｜Ｍ｜−１６０ビットの０と、ＳＨＡ−１にｌ‖ｓａｌｔｌを入力したときの出力をビット連結した｜Ｍ｜ビットの値をＨ（ｌ‖ｓａｌｔｌ）として用いることが挙げられる。なお、縮約関数としてのＳＨＡ−１については、例えば、Ａ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６に紹介されている。
【００９４】
ここで、ある数ＫがＭを法とする平方剰余であるということは、下式、
ａ２≡Ｋ（ｍｏｄＭ）
が成立する数ａが存在することをいい、これを、
Ｋ∈ＱＲＭ
として表す。ある数ＫがＫ∈ＱＲＭを満たすかどうかは、Ｍの素因数ｐ，ｑを知っていれば、下式、
【数４３】
2006115464.tif 000027
上記両式を満たすかどうかにより判別できる。なお、上記式において、（ａ／ｐ）はルジャンドル（Ｌｅｇｅｎｄｒｅ）記号である。
すなわち、上記両式を満たした場合、またその場合のみ、ＫがＫ∈ＱＲＭを満たす。
【００９５】
さらに、Ｍの素因数ｐ，ｑを知っているものは、
ａ２≡Ｋ（ｍｏｄＭ）
なる数ａを求めることもできる。その方法は、たとえば、岡本龍明、山本博資著、「現代暗号」、産業図書の１１４ページに記されている。
Ｋ∈ＱＲＭであるとき、
ａ２≡Ｋ（ｍｏｄＭ）
なる数ａは４つある。
【００９６】
逆に、
Ｋ∈ＱＲＭであるとき、
ａ２≡Ｋ（ｍｏｄＭ）
なる数ａを求めることは、Ｍの素因数ｐ，ｑを知らないものには困難となる。実際、これはＭを素因数分解することと等価であることが証明されている。
【００９７】
上記のようにして、
ｔｍｐｌ∈ＱＲＭ
となる最小の正整数ｓａｌｔｌを見つけたら、
ｔｍｐｌ１／２ｍｏｄＭ
を計算し、この解として得られる４つの数のうちのいずれかを、ノードｌ（エル）に対応する値、すなわち、ノードｌ（エル）のノード対応値ＮＶｌとする。
【００９８】
このようにして、ルートの値ＮＶ１から、その子ノード２，３のノード対応値ＮＶ２，ＮＶ３を定め、これを繰り返してＮＶ２Ｎ−１まですべてのノードの値（ノード対応値）を決定する。
【００９９】
このようにして定められた各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）は、下式、
【数４４】
2006115464.tif 000028
・・・（数式１）
の関係を満たす。すなわち、あるノードの値であるノード対応値ＮＶｌとノード付加変数ｓａｌｔｌからその親ノードのノード対応値、
【数４５】
2006115464.tif 000029
を求めることは、関数：Ｈおよび、法：Ｍが公開されているため容易である。
【０１００】
葉がＮ個である２分木のＲａｂｉｎ  Ｔｒｅｅを構成するアルゴリズムの例を下記に示す。このアルゴリズムの入力は、
［入力］
２分木を構成する葉（リーフ）の数：Ｎと、
法Ｍのサイズ：｜Ｍ｜
であり、このアルゴリズムの出力は、
［出力］
Ｍと，
ＺＭの要素を出力するマッピング関数：Ｈと、
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１である。
【０１０１】
上記の［入力］に基づいて、上記の［出力］を得るアルゴリズムは以下のようになる。
１．サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する。
２．任意のサイズの入力をZMの要素にマッピングする関数Ｈを決定する。
３．ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する。
４．ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数４６】
2006115464.tif 000030
・・・（数式２）
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
５．Ｍと、Ｈと、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１
を出力して終了する。
【０１０２】
出力値ＮＶｌがＲａｂｉｎ  Ｔｒｅｅのノードｌ（エル）のノード対応値となる。なお、葉（リーフ）の数がＮの完全２分木のノード総数は２Ｎ−１であり、上記出力によって、すべてのノードのノード対応値が出力される。
【０１０３】
図８に、上記アルゴリズムのフローを示す。フローの各ステップについて説明する。ステップＳ１０１において、２分木を構成する葉（リーフ）の数Ｎと、法Ｍのサイズ｜Ｍ｜を入力する。
【０１０４】
ステップＳ１０２において、法Ｍとマッピング関数Ｈを定めた後に,ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する。ステップＳ１０３において、値：ｌの初期設定として、ｌ＝２とする設定を行なう。
【０１０５】
ステップＳ１０４において、上記した数式２において定義されるｔｍｐｌがＭを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。これをノード付加変数とする。
ステップＳ１０５において、ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
【０１０６】
ステップＳ１０６において、ｌ＝２Ｎ−１であるか否かを判定し、ｌ＝２Ｎ−１でない場合は、ステップＳ１０７に進み、ｌを１つインクリメントして、ステップＳ１０４，Ｓ１０５の処理を実行する。ステップＳ１０７において、ｌ＝２Ｎ−１と判定されるまで、ステップＳ１０４，Ｓ１０５を繰り返し実行して、ステップＳ１０７において、ｌ＝２Ｎ−１と判定されると、ステップＳ１０８において、法Ｍとマッピング関数Ｈと，２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力して終了する。
【０１０７】
上記処理によって各ノードのノード対応値ＮＶｌを定めたＲａｂｉｎ  Ｔｒｅｅの構成を図９に示す。上記の処理によって定めたノード対応値ＮＶｌにより構成された木は、あるノードのノード対応値ＮＶｌおよびノード付加変数ｓａｌｔｌからその親ノードのノード対応値、
【数４７】
2006115464.tif 000031
を求めることは容易だが、その逆は困難なものとなる。
【０１０８】
図９において、関数ｆに沿って示されている直線矢印は、下位ノードのノード対応値ＮＶｌを入力として関数ｆを適用することで、上位ノードのノード対応値が求められることを示している。関数ｆは、順方向演算（ｍｏｄＭ上の２乗算）Ｆを用いた演算である。あるノード（子ノード）の親ノードのノード対応値は、子ノードのノード対応値ＮＶｌおよびｓａｌｔｌからその公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式１に従って算出することができる。
【０１０９】
図９において、関数ｆ−１に沿って示されている直線矢印は、上位ノードのノード対応値を入力として関数ｆ−１を摘用することで、下位ノードのノード対応値が求められることを示している。関数ｆ−１は、逆方向演算（ｍｏｄＭ上の１／２乗算）Ｆ−１を用いた演算である。上位ノードのノード対応値から子ノードのノード対応値を求めるには、秘密情報ｐ，ｑ（Ｍの素因数）を知ることが必要であり、管理センタのみが行える。
【０１１０】
このようにノード対応値ＮＶは下位から上位の一方向については、公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式１に従って算出することができるが、逆方向は困難である一方向木が生成される。このような設定を持つノード対応値ＮＶｌにより構成された一方向木をＲａｂｉｎ  Ｔｒｅｅと呼ぶ。これはＲａｂｉｎ暗号が、暗号化（順方向演算）にｍｏｄＭ上の自乗算、復号（逆方向演算）にｍｏｄＭ上のルート（１／２乗）演算を用いているためである。
【０１１１】
すなわち、一方向木としてのＲａｂｉｎ  Ｔｒｅｅのノードに設定されるノード対応値は以下のような設定を持つ。すなわち、下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出され、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出される構成である。本構成により、下位から上位のノード対応値の算出は公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式１に従って算出することができるが、上位から下位のノード対応値の算出は公開された関数：Ｈおよび、法：Ｍのみでは算出が困難であり、秘密情報ｐ，ｑ（Ｍの素因数）を知る管理センタのみが算出できる。なお、Ｒａｂｉｎ暗号については、たとえば上述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６のｐｐ．２９２−２９４に詳しい説明がある。ところで、（数式１）の加算「＋」と（数式２）の減算「−」は、排他的論理和演算「ＸＯＲ」で置き換えてもよい。
【０１１２】
（２．２）Ｒａｂｉｎ  Ｔｒｅｅを用いた鍵数の削減構成
上記のように構成したＲａｂｉｎ  Ｔｒｅｅにおいて、ＣＳ方式と同様に木の各ノードに対しノードキーＮＫｌを定めるが、これは上記で定めたノード対応値ＮＶｌを用いて算出可能な値とする。すなわち、ノードｌ（エル）のノードキーＮＫｌは、
ＮＫｌ＝Ｈｃ（ＮＶｌ）
とする。なお、関数Ｈｃは、サイズ｜Ｍ｜の値を、サイズＣのランダムな値にマップするハッシュ関数である。たとえばＣが１６０ｂｉｔの場合、任意のサイズの入力に対し１６０ｂｉｔの値を出力する関数としては上記のＳＨＡ−１があり、また、Ｃが１２８ｂｉｔの場合、任意のサイズの入力に対し１２８ｂｉｔの値を出力する関数としては、ＭＤ５などが知られており、これらの関数を適用することができる。なお、ＭＤ５についても、上述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６に詳しい説明がある。
【０１１３】
ノードキーはセッションキーなど受信機に送信すべき情報の暗号化に用いられるため、このサイズＣの決め方は、そこに用いる暗号アルゴリズムの鍵のサイズとすればよい。たとえば暗号アルゴリズムとして１２８ｂｉｔ鍵のＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ  ＦＩＰＳ１９７）を用いる場合には、Ｃを１２８ｂｉｔとすればよい。また、暗号化関数に用いる鍵のサイズが｜Ｍ｜である場合, ＮＫｌ＝ＮＶｌとしてもよい。すなわち，Ｈｃとして無変換関数を用いてもよい。
【０１１４】
また、このＲａｂｉｎ  ＴｒｅｅのＮ個の葉を、それぞれ左からｌｅａｆ１，ｌｅａｆ２，・・・・，ｌｅａｆＮと番号づけ（つまり、左端のｌｅａｆ１のノード番号はＮであるため、ｌｅａｆｉのノード番号はＮ−１＋ｉとなる）、ｌｅａｆｉに受信機ｕｉを割り当てる。受信機ｕｉには、ｌｅａｆｉの葉（ノード）に対応する値ＮＶＮ−１＋ｉと、ｌｅａｆｉからルートへ至るパス上のノードのｌｏｇＮ個のノード付加変数ｓａｌｔｌを与える。図１０に示したように受信機を割り当てた場合、葉であるノード１９に割り当てられた受信機ｕ４には、ノード１９のノード対応値ＮＶ１９と、ノード１９からルートへのパス上のノードのノード付加変数であるｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２を与える。
【０１１５】
このような設定とすることにより、受信機ｕ４は与えられたノード対応値：ＮＶ１９と、ノード１９からルートへのパス上のノードのノード付加変数：ｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２を用いて、ノード１９からルートへのパス上の全てのノードの値、すなわちノード対応値ＮＶを求めることができる。またそれぞれのノードのノードキーＮＫｌは、前述したように、ノード対応値ＮＶｌから算出、すなわち、
ＮＫｌ＝Ｈｃ（ＮＶｌ）
によって算出することができる。
【０１１６】
図１０に示す受信機割り当て構成において、葉であるノード１９に割り当てられた受信機ｕ４には、ノード１９のノード対応値ＮＶ１９と、ノード１９からルートへのパス上のノードのノード付加変数であるｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２が与えられる。受信機ｕ４における上位ノード（ノード番号＝１，２，４，９）のノード対応値ＮＶの算出と、ノードキーＮＫの算出は、以下の処理手順で実行されることになる。
【０１１７】
（ａ１）ノード１９のノード対応値ＮＶ１９から上位ノード９のノード対応値ＮＶ９の算出、
ＮＶ９＝（（ＮＶ１９）２ ＋ Ｈ（１９||ｓａｌｔ１９））ｍｏｄＭ
（ａ２）ノード９のノード対応値ＮＶ９から上位ノード４のノード対応値ＮＶ４の算出、
ＮＶ４＝（（ＮＶ９）２ ＋ Ｈ（９||ｓａｌｔ９））ｍｏｄＭ
（ａ３）ノード４のノード対応値ＮＶ４から上位ノード２のノード対応値ＮＶ２の算出、
ＮＶ２＝（（ＮＶ４）２ ＋ Ｈ（４||ｓａｌｔ４））ｍｏｄＭ
（ａ４）ノード２のノード対応値ＮＶ２から上位ノード１のノード対応値ＮＶ１の算出、
ＮＶ１＝（（ＮＶ２）２ ＋ Ｈ（２||ｓａｌｔ２））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
【０１１８】
さらに、各ノードのノード対応値からノードキーが以下の式によって算出できる。
（ｂ１）ノード１９のノード対応値ＮＶ１９からノード１９のノードキーＮＫ１９を算出、
ＮＫ１９＝Ｈｃ（ＮＶ１９）
（ｂ２）ノード９のノード対応値ＮＶ９からノード９のノードキーＮＫ９を算出、
ＮＫ９＝Ｈｃ（ＮＶ９）
（ｂ３）ノード４のノード対応値ＮＶ４からノード４のノードキーＮＫ４を算出、
ＮＫ４＝Ｈｃ（ＮＶ４）
（ｂ４）ノード２のノード対応値ＮＶ２からノード２のノードキーＮＫ２を算出、
ＮＫ２＝Ｈｃ（ＮＶ２）
（ｂ５）ノード１のノード対応値ＮＶ１からノード１のノードキーＮＫ１を算出、
ＮＫ１＝Ｈｃ（ＮＶ１）
【０１１９】
ところで、受信機ｕ４は、ノード対応値ＮＶ１９は秘密に保管しておく必要があるが、各ノード付加変数ｓａｌｔは秘密にしておく必要はない。このため，全受信機がすべてのｓａｌｔｌを保持しておくような構成としてもよい.
【０１２０】
ここで、各ノード付加変数ｓａｌｔのサイズを考える。ある数が法Ｍの下で平方剰余になる確率は約１／４であるため、ｓａｌｔｌとして４つの値を試すと、ｔｍｐｌが平方剰余となるようなものが平均１つはあると期待されるので、ノード付加変数ｓａｌｔｌを表すのに必要なサイズは２ビットであると期待される。
【０１２１】
一方、４つの値のいずれも平方剰余にならない場合もある。たとえばノード付加変数ｓａｌｔｌとしてＬ個の値を試したとき、ｔｍｐｌがいずれも平方剰余でない（平方非剰余である）確率は３Ｌ／４Ｌであるため、Ｌ＝４の場合には、３４／４４≒４２．２％の確率でいずれのｔｍｐｌも平方剰余にならない。しかし、ノード付加変数ｓａｌｔｌとして８ビットの値を考え、２５６個の数を試したとすれば、いずれのｔｍｐｌも平方剰余にならない確率は３２５６／４２５６≒１．０×１０−３２と非常に小さくなり、たとえ葉（リーフ）の数Ｎとして、２３０≒１０９や、２４０≒１０１２などの大きな数を考えたとしても、いずれかのノードにおいてｔｍｐｌが平方剰余になるようなノード付加変数ｓａｌｔｌが見つからない確率は無視できるほど小さいものとなる。
【０１２２】
［３．ＣＳ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］
次に、上述した処理によって２分木の各ノードｌに対応するノード対応値ＮＶｌを設定した木構造であるＲａｂｉｎ  Ｔｒｅｅを用いて、暗号文を配信する処理、および暗号文の復号処理について、説明する。なお、説明は、
（３−１）セットアップ処理
（３−２）情報配信処理
（３−３）情報受信および復号処理
の各処理毎に説明する。
【０１２３】
（３−１）セットアップ処理
セットアップ処理は、システムの立ち上げ時に１度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したＤＶＤなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティテイとは独立した管理センタ（ＴＣ）によって実行してもよいし、また、暗号文配信を実行するエンティテイが実行してもよい。ここでは一例として、セットアップ処理を管理センタ（ＴＣ）が実行する例として説明する。
【０１２４】
ａ．ステップ１
管理センタ（ＴＣ）は、２分木でありＮ個の葉を持つ木を定義する。木中の各ノードについてｋ（ｋ＝１，２，...，２Ｎ−１）と、ノード対応の番号を設定する。ただし２分木における最上位ノードであるルートを１とし、以降を幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で番号設定を行う。すなわち、図１０に示す１〜３１のようなノード対応番号の設定を行なう。この処理により２分木中の各ノードに１〜２Ｎ−１のノード番号が設定される。さらに、受信機ｕｍ（ｍ＝１，２，...，Ｎ）を木の各葉（リーフ）に割り当てる。
【０１２５】
ｂ．ステップ２
管理センタ（ＴＣ）は、まず、法Ｍのサイズ｜Ｍ｜を定める。
【０１２６】
次に、木構造の葉（リーフ）数Ｎ、法Ｍのサイズ｜Ｍ｜を入力として用い、図８のフローを参照して説明したアルゴリズムに従って、Ｎ個の葉を持つ２分木のＲａｂｉｎ  Ｔｒｅｅを作成する。まず、法Ｍと，任意サイズの値をランダムなＺＭの要素にマッピングするマッピング関数Ｈを定め，次にルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択し、その後、ノード１からノード２Ｎ−１に対応するノード対応値、すなわち、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、ノード２からノード２Ｎ−１に対応する２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を定める。ｓａｌｔは秘密ではないので、管理センタ（ＴＣ）がこれらの値を公開してもよい。また管理センタ（ＴＣ）は法Ｍとマッピング関数Ｈを公開する．また、サイズ｜Ｍ｜の値をサイズＣのランダムな値にマッピングする関数Ｈｃを定め、公開する。
【０１２７】
上記処理によって各ノードのノード対応値ＮＶｌを定めたＲａｂｉｎ  Ｔｒｅｅの構成が先に説明した図９の構成として設定される。上記の処理によって定めたノード対応値ＮＶｌにより構成された木は、あるノードの値ＮＶｌおよびｓａｌｔｌからその親ノードのノード対応値を求めることは容易だが、その逆は困難なものとなる。
【０１２８】
さらに、管理センタ（ＴＣ）は、木のノードｌ（エル）のノードキーＮＫｌをノード対応値ＮＶｌから算出、すなわち、
ＮＫｌ＝Ｈｃ（ＮＶｌ）
によって算出する。
【０１２９】
ｃ．ステップ３
管理センタ（ＴＣ）は、木の末端ノードとしての葉（リーフ）に対応して設定される受信機ｕｍ（ｍ＝１，２，...，Ｎ）に対し、以下のルールに基づいてノードキーを与える。受信機は図１０に示すように木の葉（リーフ）、すなわちノード番号１６〜３１に割り当てられている。図１０に示す例では、受信機は、ノード番号１６〜３１に割り当てられたｕ１〜ｕ１６の１６個設定される。
【０１３０】
なお、受信機ｕｍが割り当てられた葉からルートへのパスをパスｍ［ｐａｔｈ−ｍ］と表す。また、パスｍ［ｐａｔｈ−ｍ］上のノードの集合をパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］と表す。
【０１３１】
図１０の例では、
ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝
ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝
ＰａｔｈＮｏｄｅｓ−１１＝｛１，３，６，１３，２６｝
となる。
【０１３２】
図１０に示すノード１，２，４，８，１６を結ぶラインが、受信機ｕ１のパス１［ｐａｔｈ−１］であり、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝によって構成される。受信機ｕ４のパス４［ｐａｔｈ−４］は、図１０に示すノード１，２，４，９，１９を結ぶラインであり、ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝によって構成される。
【０１３３】
管理センタ（ＴＣ）は、各受信機ｕｍに対し、
（ａ）受信機ｕｍの割り当てられた葉ノード（リーフ）のノード対応値ＮＶｌ
（ｂ）受信機ｕｍのパス上のルートを除くパスノード対応のｓａｌｔ値
を付与する。
【０１３４】
図１０に示す構成において、葉であるノード１９に割り当てられた受信機ｕ４には、ノード１９のノード対応値ＮＶ１９と、ノード１９からルートへのパス上のノードのノード付加変数であるｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２を与える。
【０１３５】
すなわち、受信機ｕｉには、ｌｅａｆｉの葉（ノード）に対応するノード対応値ＮＶＮ−１＋ｉと、ｌｅａｆｉからルートへ至るパス上のノードのｌｏｇＮ個のノード付加変数ｓａｌｔｌを与える。
【０１３６】
受信機は、ノード対応値を漏洩がないように、秘密に保管する。なお、ノード付加変数ｓａｌｔは公開値としてよい値であり、秘密に保持することは必要ではない。
【０１３７】
上述したセットアップ処理のフローを図１１に示す。図１１のフローの各ステップについて説明する。
【０１３８】
まず、ステップＳ２０１において、管理センタ（ＴＣ）は、Ｎ個の葉を持つ２分木を定義する。２分木における最上位ノードであるルートを１とし、以降を幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で番号設定を行う。すなわち、図９、１０に示すようなノード対応番号１〜３１の設定を行なう。さらに、受信機ｕｍ（ｍ＝１，２，...，Ｎ）を木の各葉（リーフ）に割り当てる。
【０１３９】
次にステップＳ２０２において、管理センタ（ＴＣ）は、法Ｍのサイズ｜Ｍ｜を定める。さらに、木構造の葉（リーフ）数Ｎ、法Ｍのサイズ｜Ｍ｜を入力として用い、図８のフローを参照して説明したアルゴリズムに従って、法Ｍと任意サイズの値をランダムなＺＭの要素にマッピングする関数Ｈを定め、Ｎ個の葉を持つ２分木のＲａｂｉｎ  Ｔｒｅｅを作成する。まず、ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択し、その後、ノード１からノード２Ｎ−１に対応するノード対応値、すなわち、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、ノード２からノード２Ｎ−１に対応する２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を定める。さらに法：Ｍと、マッピング関数：Ｈを公開する。また、サイズ｜Ｍ｜の値をサイズＣのランダムな値にマッピングする関数Ｈｃを定め、公開する。
【０１４０】
さらに、管理センタ（ＴＣ）は、木のノードｌ（エル）のノードキーＮＫｌをノード対応値ＮＶｌから算出、すなわち、
ＮＫｌ＝Ｈｃ（ＮＶｌ）
によって算出し、各ノードｌのノードキーＮＫｌを決定する。
【０１４１】
ステップＳ２０３において、管理センタ（ＴＣ）は、木の末端ノードとしての葉（リーフ）に対応して設定される受信機ｕｍ（ｍ＝１，２，...，Ｎ）に対し、前述したデータ、すなわち、
（ａ）受信機ｕｍの割り当てられた葉ノード（リーフ）のノード対応値ＮＶｌ
（ｂ）受信機ｕｍのパス上のルートを除くパスノード対応のｓａｌｔ値
を付与する。
【０１４２】
（３−２）情報配信処理
情報配信、すなわち秘密情報の送信は、管理センタ（ＴＣ）が１つ以上の暗号文を同報送信することによってなされる。それぞれの暗号文は、秘密情報をノードキーの１つを用いて暗号化したものである。暗号化に使用するノードキーの選択方法は、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様である。
【０１４３】
たとえば図５に示した例では、５つの暗号文が送信される。図５に示す例では受信機ｕ２，ｕ１１，ｕ１２がリボークされる受信機である。すなわち、受信機ｕ２，ｕ１１，ｕ１２を不正な機器として排除（リボーク）し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
【０１４４】
情報の送信を行なう場合、リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文セットを生成して同報送信する。リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードおよびパスを木から除外すると、１つ以上の部分木が残る。例えば、ノード５を頂点とする部分木、あるいはノード１２を頂点とする部分木などである。
【０１４５】
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図５に示す例では、ノード５，７，９，１２，１６に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーＫｃであるとし、ノード５，７，９，１２，１６に割り当てられたノードキーをＮＫ５，ＮＫ７，ＮＫ９，ＮＫ１２，ＮＫ１６とすると、秘密情報の送信者は、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ７，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１２，Ｋｃ），Ｅ（ＮＫ１６，Ｋｃ）
の５つの暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【０１４６】
上記暗号文セットは、リボーク受信機ｕ２，ｕ１１，ｕ１２のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
【０１４７】
この暗号化に使用するノードキーを見つけるための手法としては、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様の手法、あるいは、表現木を適用した方法などが適用可能である。
【０１４８】
情報配信処理の手順について、図１２のフローを参照して説明する。管理センタ（ＴＣ）は、ステップＳ３０１において、まずその情報配信においてリボーク（排除）する受信機を選択する。
【０１４９】
さらに、ステップＳ３０２において、暗号文の生成、すなわち送信秘密情報の暗号化に適用するノードキーを選択し、ステップＳ３０３において、暗号文を受信する受信機において、復号可能な暗号文を選択するための索引データとしての使用ノードキー指定情報を生成する。これは、どのノードキーを選択したかを表すタグ情報や表現コードなどである。
【０１５０】
ステップＳ３０４において、選択したノードキーで送信する秘密情報を暗号化し、ステップＳ３０５において、ノードキー指定情報とともに同報通信路を用いて送信する。あるいは情報記録媒体に格納して配布する。なお、上記の処理は、必ずしもこの順番である必要はない。
【０１５１】
なお、暗号化に利用するノードキーは、管理センタ（ＴＣ）がセットアップフェイズにおいて作成して保管しておいたものを使用するようにしてもよいし、セットアップフェイズにおいては葉のノード対応値ＮＶｌと各ノードのｓａｌｔ値のみを保管しておき、それらの値から導出してもよい。
【０１５２】
なお、リボークする受信機がない場合には、ルートのノードキーＮＫ１を秘密情報の暗号化に用いる。この場合は、すべての受信機において送信情報の復号が可能となる。
【０１５３】
（３−３）情報受信および復号処理
次に、上述の暗号文の受信および復号処理について説明する。上述の暗号文は同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。こり暗号文は、リボークの有無に関わらず、すべての受信機が受領可能であるが、リボークされた受信機は暗号文の復号に適用するノードキーを得ることができないので受信情報の復号を行なうことができない。
【０１５４】
リボークされていない受信機は、受領した暗号文のセットから自己が復号できる暗号文を選択する。受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノード対応値ＮＶｌと、ｓａｌｔから導出できるノードキーが含まれる。
【０１５５】
リボークされていない受信機は、ノード対応値ＮＶｌと、ｓａｌｔから、暗号化に適用されたノードキーＮＫｋに対応するノード対応値ＮＶｋを導出し、ノード対応値ＮＶｋからノードキーＮＫｋを導出して、導出したノードキーを用いて暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のノードキー指定情報を用いればよい。
【０１５６】
この暗号文抽出処理において、受信機ｕｍは、暗号化に使われたノードキーのノード番号ｋを抽出し、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号と一致するものを見つける。
【０１５７】
受信機ｕｍは、自身が割り当てられた葉ｌ（エル）のノード対応値ＮＶｌを保持しているので、これと同様に保持しているノード付加変数ｓａｌｔｌからｌの親ノードのノード対応値、
【数４８】
2006115464.tif 000032
を、下式、
【数４９】
2006115464.tif 000033
により求め、さらにこれを繰り返すことにより、自己ノードｌからルートまでのパス上の任意のノードｋのノード対応値ＮＶｋを導出する。そして、ノードｋのノード対応値ＮＶｋから、ノードｋのノードキーＮＫｋを、
ＮＫｋ＝Ｈｃ（ＮＶｋ）
により導出する。導出したノードキーを適用して暗号文を復号する。
【０１５８】
具体的な例について図１３を参照して説明する。今、受信機ｕ４（ノード番号＝１９）が、リボークされていないと仮定し、受信機ｕ４の処理について考察する。受信機ｕ４（ノード番号＝１９）が、リボークされていない場合、暗号化に使われたノードキーには、受信機ｕ４に対応するパスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノード番号と一致するものが必ず含まれる。
【０１５９】
秘密情報を［Ｋｃ］とすると、Ｅ（ＮＫ１，Ｋｃ），Ｅ（ＮＫ２，Ｋｃ）、Ｅ（ＮＫ４，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１９，Ｋｃ）のいずれかを含む暗号文セットが、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。受信機ｕ４は、受信暗号文セットから、この受信機ｕ４に対応するパスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノード番号と一致するものを検出する。
【０１６０】
ノードキーＮＫ１，ＮＫ２，ＮＫ４，ＮＫ９，ＮＫ１９のいずれが、暗号文の暗号化に適用されたノードキーであるかを判別した後、受信機ｕ４は、判別されたノードキーを算出するため、自己の保持するノード対応値ＮＶ４と、ノード付加変数ｓａｌｔ２、ｓａｌｔ４、ｓａｌｔ９、ｓａｌｔ１９を適用して、上位ノードのノード対応値を算出して、さらに算出したノード対応値からノードキーを算出する。算出手法は、前述したように、
ＮＶ９＝（（ＮＶ１９）２ ＋ Ｈ（１９||ｓａｌｔ１９））ｍｏｄＭ
ＮＶ４＝（（ＮＶ９）２ ＋ Ｈ（４||ｓａｌｔ４））ｍｏｄＭ
ＮＶ２＝（（ＮＶ４）２ ＋ Ｈ（２||ｓａｌｔ２））ｍｏｄＭ
ＮＶ１＝（（ＮＶ２）２ ＋ Ｈ（１||ｓａｌｔ１））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
【０１６１】
さらに、各ノードのノード対応値からノードキーを、
ＮＫ１９＝Ｈｃ（ＮＶ１９）
ＮＫ９＝Ｈｃ（ＮＶ９）
ＮＫ４＝Ｈｃ（ＮＶ４）
ＮＫ２＝Ｈｃ（ＮＶ２）
ＮＫ１＝Ｈｃ（ＮＶ１）
の各式によって算出する。
【０１６２】
受信機ｕ４は、パスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノードのノードキー：ＮＫ１９，ＮＫ９，ＮＫ４，ＮＫ２，ＮＫ１のいずれかを適用して、暗号文セットに含まれる暗号文を復号して秘密情報［Ｋｃ］を得ることができる。
【０１６３】
受信機ｕｍの処理について、図１４のフローを参照して説明する。まず、ステップＳ４０１において、暗号文セットを受領する。この暗号文は、ネットワークを介してあるいは情報記録媒体を介して受領する。
【０１６４】
ステップＳ４０２において、受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中から、自身が直接保持しているノード対応値ＮＶ、ノード付加変数ｓａｌｔから導出可能なノード対応値に基づいて算出可能なノードキーによって暗号化された暗号文を抽出する。これは、受信機ｕｍが、受信暗号文セットから、この受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号と一致するものを検出する処理に相当する。なお、ここで、受信機が復号すべき暗号を決定できないということは、その受信機がリボークされていることを意味している。
【０１６５】
さらに、ステップＳ４０３において、暗号化に使用されたノードキーを、自己が保持するノード対応値ＮＶと、ノード付加変数ｓａｌｔを適用して算出する。この算出は、前述の（数式１）によって上位ノード対応値を算出し、算出したノード対応値に基づいて、下式、
ＮＫｋ＝Ｈｃ（ＮＶｋ）
に従って、必要なノードキーＮＫｋを求める処理として実行される。
【０１６６】
暗号化に使われたノードキーが算出されると、ステップＳ４０４に進み、算出したノードキーを適用して暗号文を復号し、秘密情報を取得する。
【０１６７】
なお、秘密情報はたとえばテレビ放送システムの暗号化コンテンツを復号するためのコンテンツキーなどが想定される。この場合には受信機は暗号化コンテンツを受信し、コンテンツキーを用いて復号して出力する。なお、上記の処理は、必ずしもこの順番である必要はない。
【０１６８】
次に、図１５、図１６を参照して暗号文を提供する情報処理装置と、暗号文を受信して復号する情報処理装置の機能構成について説明する。暗号文を提供する情報処理装置は、暗号文の生成に適用するノードキーの決定処理、暗号文の生成処理を実行する。暗号文の復号処理を実行する受信機は、ノードキーの生成、生成したノードキーによる暗号文の復号処理を実行する。
【０１６９】
まず、図１５を参照して暗号文を提供する情報処理装置の構成について説明する。情報処理装置４１０は、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段４１１、ノードキー生成手段４１２、提供情報（ノード対応値：ＮＶ、ノード付加変数：ｓａｌｔ）決定手段４１３、暗号文生成手段４１４、暗号文提供手段４１５を有する。
【０１７０】
情報処理装置４１０は、階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能な暗号文を提供する処理を実行する情報処理装置であり、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段４１１は、階層木を構成する各ノードに対応するノード対応値ＮＶを、少なくとも１つの下位ノードのノード対応値ＮＶと、ノード付加変数ｓａｌｔを適用して算出可能（数式１参照）とした一方向木としてのＲａｂｉｎ  Ｔｒｅｅを生成する。
【０１７１】
ノードキー生成手段４１２は、ノード対応値ＮＶに基づいて、
ＮＫ＝Ｈｃ（ＮＶ）
により、各ノードのノードキーＮＫを算出する。
【０１７２】
提供情報決定手段４１３は、階層木の末端ノード対応の受信機に、受信機対応のノードのノード対応値ＮＶｌと、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノード付加変数：ｓａｌｔを提供する。
【０１７３】
暗号文生成手段４１４は、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段４１１の生成したＲａｂｉｎ  Ｔｒｅｅの各ノードに対応付けられたノード対応値ＮＶに基づいてノードキー生成手段４１２が生成したノードキーＮＫを選択的に適用して暗号化処理を実行して暗号文を生成する。暗号文提供手段４１５は、このようにして生成された暗号文をネットワークまたは媒体に格納して提供する。
【０１７４】
次に、図１６を参照して暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
【０１７５】
暗号文の復号処理を実行する受信機としての情報処理装置４２０は、暗号文選択手段４２１、ノードキー算出手段４２２、復号手段４２３、メモリ４２４を有する。
【０１７６】
暗号文選択手段４２１は、処理対象とする暗号文から、自己のメモリ４２４に保持するノード対応値ＮＶｌとノード対応付加変数ｓａｌｔから算出可能な上位ノードキーを適用して生成した暗号文を選択する処理を実行する。具体的には、上述したように、暗号化に使用されたノードキーを、自己が保持するノード対応値ＮＶと、ノード付加変数ｓａｌｔを適用して前述の（数式１）によって上位ノード対応値を算出し、算出したノード対応値に基づいて、下式、
ＮＫｋ＝Ｈｃ（ＮＶｋ）
に従って、必要なノードキーＮＫｋを求める処理を実行する。
【０１７７】
復号手段４２３は、ノードキー算出手段４２２において算出した算出ノードキーに基づいて、暗号文の復号処理を実行する。
【０１７８】
［４．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を適用したＣＳ方式の暗号文配信構成における計算量の削減についての考察］
【０１７９】
前述したＲＳＡ暗号に基づくＣＳ方式の鍵削減方法に対し、上述したＲａｂｉｎ  Ｔｒｅｅを用いた本発明によるＣＳ方式の暗号文配信構成は受信機が必要とする計算量が小さいという利点を持つ。これについて説明する。
【０１８０】
ＲＳＡ暗号を利用したＣＳ方式の鍵削減方法においては、受信機があるノードの鍵ＮＫｌからその親ノードの鍵、
【数５０】
2006115464.tif 000034
を導出するために、下記式、
【数５１】
2006115464.tif 000035
の計算を行う。
【０１８１】
ここで、排他論理和演算やハッシュ関数Ｈの演算はべき乗剰余演算に比べて非常に計算量が小さいため、上記で支配的なのは、
ＮＫｌｅｍｏｄＭ
のべき乗剰余演算となる。
【０１８２】
ＲＳＡ暗号を利用したシステムにおいては、計算量の削減のため、公開指数ｅをなるべく小さく、しかもｅのハミング重みがなるべく小さいものを使うことが望まれる。しかし、例えば、ｅ＝３という小さい値では安全性に問題があることが指摘されているため、
ｅ＝２１６＋１
という値が広く推奨されている。
【０１８３】
公開指数ｅとして２１６＋１という値を用いたとき、ある数ｘのｅ乗を計算方法はいくつかあるが、「自乗と乗算のアルゴリズム」（前述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６，ｐ６１４参照）を用いた場合、１６回の自乗算と１回の乗算が必要となる。ここで、自乗算は乗算の特殊な場合であり、これを利用して計算量は乗算に比べて小さくできるため、上記の計算量は自乗算１７回分よりも大きくなる。また、もしＲＳＡ暗号を用いた方式において、公開指数ｅとして３という値を用いた場合でも、ＮＫｌｅｍｏｄＭの演算には１回の乗算と１回の自乗算が必要であり、本発明の計算量は１／２より小さくなる。
【０１８４】
これに対し、上述した本発明のＲａｂｉｎ  Ｔｒｅｅを適用したＣＳ方式による暗号文配信構成では、受信機は、自己の保有するノード対応値ＮＶｌと、ノード付加変数ｓａｌｔに基づいて、前述の（数式１）に基づく演算、すなわち、
【数５２】
2006115464.tif 000036
の計算を行う。この中で支配的なのはやはりべき乗剰余演算であるが、上記式において、べき乗剰余演算は、
ＮＶｌ２ｍｏｄＭ
であり、自乗算１回で行える。よって、本発明は、ＲＳＡ暗号を用いた方式に対して、計算量を１／１７程度に小さくすることができる。
【０１８５】
このように、従来のＣＳ方式では各受信機はｌｏｇＮ＋１個のノードキーを安全に保持する必要があったが、上述した本発明を適用したＲａｂｉｎ  Ｔｒｅｅを適用したＣＳ方式による暗号文配信構成では、各受信機が安全に保持しなければならない鍵の個数を１つ（葉ノードのノード対応値ＮＶ）に削減することができる。ＣＳ方式のノードキーとは異なり、本発明の構成においては、ノード付加変数ｓａｌｔは安全に保持する必要はない。またＣＳ方式のノードキーは暗号鍵として使われるため、個々のサイズが数十ビットから数百ビットになるが、ノード付加変数ｓａｌｔは平均２ビットという小さなサイズである。
【０１８６】
さらに、本発明と同様に、受信機が安全に保持すべき鍵数を１つに削減した、ＲＳＡ暗号を利用した方式と比較した場合、本方式では、受信機に必要とされる計算量として大きな負荷であるべき乗剰余演算が自乗算１回で行える構成であり、ＲＳＡ暗号を利用した方式と比較すると約１／１７と非常に小さくすることができる。
【０１８７】
このように、本発明の構成を適用することにより、受信機において安全に保持することが要求される情報量が削減され、また、受信機においてノードキー算出のために必要とされる計算量を削減することが可能となり、効率的な暗号文、配信、復号処理構成が実現される。
【０１８８】
［５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成］
次に、上述したＲａｂｉｎ  Ｔｒｅｅ構成例１とは異なるＲａｂｉｎ  Ｔｒｅｅを適用した処理例について説明する。本実施例においても、一方向木として設定されるＲａｂｉｎ  Ｔｒｅｅを用いる。なお、「Ｒａｂｉｎ  Ｔｒｅｅ」とは、前述したように一般的な用語ではなく本発明の説明のために用いる言葉である。Ｎ個の葉を持つ完全２分木に対し、ルートを１、それ以降のノードを上位、左から２，３，...，２Ｎ−１と幅優先で番号付けし、下記の手順に従って、前述したＲａｂｉｎ  Ｔｒｅｅ構成例１とは異なるＲａｂｉｎ  Ｔｒｅｅを構成する。
【０１８９】
ＲＳＡ暗号と同様、２つの大きな素数の積Ｍを管理センタが定め、公開する。管理センタは、
秘密の値：Ｙ∈Ｚ＊Ｍ
を定め、これを頂点（ノード１）に対応する値ＮＶ１とする。なお、Ｙ∈Ｚ＊Ｍは、Ｙが、群Ｚ＊Ｍの元であることを意味する。
【０１９０】
頂点以外のノードｌ（エル）（ｌ＝２，３，・・・，２Ｎ−１）に対応する値ＮＶｌは、そのノードの番号ｌと親ノードに対応するノード対応値、
【数５３】
2006115464.tif 000037
を用いてを求める。
【０１９１】
まず、下式によって、ｔｍｐｌを定義する。
【数５４】
2006115464.tif 000038
【０１９２】
上記式によって定義される値ｔｍｐｌが、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。ｓａｌｔｌは、ノードｌ（エル）に対応して設定されるノード付加変数である。
【０１９３】
なお、上記式において、Ｈは、任意のサイズの入力を前述した２つの大きな素数の積Ｍのサイズ｜Ｍ｜にマッピングする公開関数であり、Ｈｓａｌｔｌ（ｌ）は、ｌ（エル）に対して、関数Ｈをｓａｌｔｌ回、適用した値を表す。例えば、
ｓａｌｔｌ＝３
であれば、
Ｈｓａｌｔｌ（ｌ）＝Ｈ（Ｈ（Ｈ（ｌ）））
である。
なお、マッピング関数Ｈの例として、任意の長さの入力に対し１６０ビットの出力を出す縮約関数としてのＳＨＡ−１ハッシュ関数を用いて、｜Ｍ｜−１６０ビットの０と、ＳＨＡ−１にｌ（エル）を入力したときの出力をビット連結した｜Ｍ｜ビットの値をＨ（ｌ）として用いることが挙げられる。なお、縮約関数としてのＳＨＡ−１については、例えば、Ａ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６に紹介されている。
【０１９４】
上記のようにして、
ｔｍｐｌ∈ＱＲＭ
となる最小の正整数ｓａｌｔｌを見つけたら、
ｔｍｐｌ１／２ｍｏｄＭ
を計算し、この解として得られる４つの数のうちのいずれかを、ノードｌ（エル）に対応する値、すなわち、ノードｌ（エル）のノード対応値ＮＶｌとする。
【０１９５】
このようにして、ルートの値ＮＶ１から、その子ノード２，３のノード対応値ＮＶ２，ＮＶ３を定め、これを繰り返してＮＶ２Ｎ−１まですべてのノードの値（ノード対応値）を決定する。
【０１９６】
このようにして定められた各ノードｌ（エル）のノード対応値ＮＶｌ（ｌ＝２，３，・・・，２Ｎ−１）は、下式、
【数５５】
2006115464.tif 000039
・・・（数式３）
の関係を満たす。すなわち、あるノードの値であるノード対応値ＮＶｌとノード付加変数ｓａｌｔｌからその親ノードのノード対応値、
【数５６】
2006115464.tif 000040
を求めることは、関数：Ｈおよび、法：Ｍが公開されているため容易である。
【０１９７】
本実施例に対応する葉がＮ個である２分木のＲａｂｉｎ  Ｔｒｅｅを構成するアルゴリズムの例を下記に示す。このアルゴリズムの入力は、
［入力］
２分木を構成する葉（リーフ）の数：Ｎと、
法Ｍのサイズ：｜Ｍ｜、
｜Ｍ｜ビット出力のマッピング関数Ｈ、
であり、このアルゴリズムの出力は、
［出力］
２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、
２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１である。
【０１９８】
上記の［入力］に基づいて、上記の［出力］を得るアルゴリズムは以下のようになる。
１．サイズ｜Ｍ｜／２の２つの大きな素数を定め、その積Ｍを計算する。
２．ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する。
３．ｌ（エル）をカウンタとして２から２Ｎ−１まで１ずつ増加させながら下記ａ，ｂの処理を行う。
ａ．下記式、
【数５７】
2006115464.tif 000041
・・・（数式４）
が、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。
ｂ．ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
４．２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１
を出力して終了する。
【０１９９】
出力値ＮＶｌがＲａｂｉｎ  Ｔｒｅｅのノードｌ（エル）のノード対応値となる。なお、葉（リーフ）の数がＮの完全２分木のノード総数は２Ｎ−１であり、上記出力によって、すべてのノードのノード対応値が出力される。
【０２００】
図１７に、上記アルゴリズムのフローを示す。フローの各ステップについて説明する。ステップＳ４２１において、２分木を構成する葉（リーフ）の数Ｎと、法Ｍのサイズ｜Ｍ｜と、｜Ｍ｜ビット出力のマッピング関数Ｈを入力する。
【０２０１】
ステップＳ４２２において、ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択する。ステップＳ４２３において、値：ｌの初期設定として、ｌ＝２とする設定を行なう。
【０２０２】
ステップＳ４２４において、上記した数式４において定義されるｔｍｐｌがＭを法とする平方剰余になるような最小の正整数ｓａｌｔｌを見つける。これをノード付加変数とする。
ステップＳ４２５において、ｔｍｐｌ１／２ｍｏｄＭを求め、４つの解のうちのいずれかを、ノードｌ（エル）のノード対応値ＮＶｌと定める。
【０２０３】
ステップＳ４２６において、ｌ＝２Ｎ−１であるか否かを判定し、ｌ＝２Ｎ−１でない場合は、ステップＳ４２７に進み、ｌを１つインクリメントして、ステップＳ４２４，Ｓ４２５の処理を実行する。ステップＳ４２７において、ｌ＝２Ｎ−１と判定されるまで、ステップＳ４２４，Ｓ４２５を繰り返し実行して、ステップＳ４２７において、ｌ＝２Ｎ−１と判定されると、ステップＳ４２８において、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を出力して終了する。
【０２０４】
上記処理によって各ノードのノード対応値ＮＶｌを定めたＲａｂｉｎ  Ｔｒｅｅの構成は、先に説明した図９と同様の構成となる。上記の処理によって定めたノード対応値ＮＶｌにより構成された木は、あるノードのノード対応値ＮＶｌおよびノード付加変数ｓａｌｔｌからその親ノードのノード対応値、
【数５８】
2006115464.tif 000042
を求めることは容易だが、その逆は困難なものとなる。
【０２０５】
なお、先に説明したように、図９において、関数ｆに沿って示されている直線矢印は、下位ノードのノード対応値ＮＶｌを入力として関数ｆを適用することで、上位ノードのノード対応値が求められることを示している。関数ｆは、順方向演算（ｍｏｄＭ上の２乗算）Ｆを用いた演算である。あるノード（子ノード）の親ノードのノード対応値は、子ノードのノード対応値ＮＶｌおよびｓａｌｔｌからその公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式３に従って算出することができる。
【０２０６】
図９において、関数ｆ−１に沿って示されている直線矢印は、上位ノードのノード対応値を入力として関数ｆ−１を摘用することで、下位ノードのノード対応値が求められることを示している。関数ｆ−１は、逆方向演算（ｍｏｄＭ上の１／２乗算）Ｆ−１を用いた演算である。上位ノードのノード対応値から子ノードのノード対応値を求めるには、秘密情報ｐ，ｑ（Ｍの素因数）を知ることが必要であり、管理センタのみが行える。
【０２０７】
このようにノード対応値ＮＶは下位から上位の一方向については、公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式３に従って算出することができるが、逆方向は困難である一方向木が生成される。このような設定を持つノード対応値ＮＶｌにより構成された一方向木をＲａｂｉｎ  Ｔｒｅｅと呼ぶ。これはＲａｂｉｎ暗号が、暗号化（順方向演算）にｍｏｄＭ上の自乗算、復号（逆方向演算）にｍｏｄＭ上のルート（１／２乗）演算を用いているためである。
【０２０８】
すなわち、一方向木としてのＲａｂｉｎ  Ｔｒｅｅのノードに設定されるノード対応値は以下のような設定を持つ。すなわち、下位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した暗号化処理（順方向演算）によって上位ノードのノード対応値が算出され、上位ノードのノード対応値に基づくＲａｂｉｎ暗号を適用した復号処理（逆方向演算）によって下位ノードのノード対応値が算出される構成である。本構成により、下位から上位のノード対応値の算出は公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式３に従って算出することができるが、上位から下位のノード対応値の算出は公開された関数：Ｈおよび、法：Ｍのみでは算出が困難であり、秘密情報ｐ，ｑ（Ｍの素因数）を知る管理センタのみが算出できる。なお、Ｒａｂｉｎ暗号については、たとえば上述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６のｐｐ．２９２−２９４に詳しい説明がある。
【０２０９】
［６．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した暗号文配信、復号処理］
次に、上述した処理によって２分木の各ノードｌに対応するノード対応値ＮＶｌを設定した木構造であるＲａｂｉｎ  Ｔｒｅｅ構成例２を用いて、暗号文を配信する処理、および暗号文の復号処理について説明する。処理フェーズとしては、
（６−１）セットアップ処理
（６−２）情報配信処理
（６−３）情報受信および復号処理
の各処理があるが、（６−１）セットアップ処理、（６−２）情報配信処理については、先に項目［３．ＣＳ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］において説明したセットアップおよび情報配信とほぼ同様の処理であるので、簡略化して説明する。
【０２１０】
（６−１）セットアップ処理
セットアップ処理は、上述の［５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成］において説明したＲａｂｉｎ  Ｔｒｅｅ構成を設定する処理以外は、基本的に、前述の［３．ＣＳ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］の項目（３−１）セットアップ処理において説明したと同様の処理である。このセットアップは、システムの立ち上げ時に１度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したＤＶＤなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。
【０２１１】
Ｒａｂｉｎ  Ｔｒｅｅ構成例２は、先に、図１７を参照して説明した処理シーケンスに従って設定される。この結果として、図９に示す一方向木としてのＲａｂｉｎ  Ｔｒｅｅが設定される。各ノードには、｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１が対応付けられる。あるノードの値ＮＶｌおよびｓａｌｔｌからその親ノードのノード対応値を求めることは容易だが、その逆は困難なものとなる。
【０２１２】
管理センタ（ＴＣ）は、各受信機ｕｍに対し、
（ａ）受信機ｕｍの割り当てられた葉ノード（リーフ）のノード対応値ＮＶｌ
（ｂ）受信機ｕｍのパス上のルートを除くパスノード対応のｓａｌｔ値
を付与する。
受信機は、ノード対応値を漏洩がないように、秘密に保管する。なお、ノード付加変数ｓａｌｔは公開値としてよい値であり、秘密に保持することは必要ではない。
【０２１３】
このセットアップ処理シーケンスは先に図１１を参照して説明した処理シーケンスと同様である。ただし、設定するＲａｂｉｎ  Ｔｒｅｅが前述の［５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成］において説明したＲａｂｉｎ  Ｔｒｅｅ構成となる。
【０２１４】
（６−２）情報配信処理
情報配信、すなわち秘密情報の送信は、管理センタ（ＴＣ）が１つ以上の暗号文を同報送信することによってなされる。この処理は、［３．ＣＳ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］の項目（３−２）情報配信処理において説明したと同様の処理である。それぞれの暗号文は、秘密情報をノードキーの１つを用いて暗号化したものである。暗号化に使用するノードキーの選択方法は、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様である。
【０２１５】
たとえば図５に示した例では、５つの暗号文が送信される。図５に示す例では受信機ｕ２，ｕ１１，ｕ１２がリボークされる受信機である。すなわち、受信機ｕ２，ｕ１１，ｕ１２を不正な機器として排除（リボーク）し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
【０２１６】
情報の送信を行なう場合、リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文セットを生成して同報送信する。リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードおよびパスを木から除外すると、１つ以上の部分木が残る。例えば、ノード５を頂点とする部分木、あるいはノード１２を頂点とする部分木などである。
【０２１７】
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図５に示す例では、ノード５，７，９，１２，１６に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーＫｃであるとし、ノード５，７，９，１２，１６に割り当てられたノードキーをＮＫ５，ＮＫ７，ＮＫ９，ＮＫ１２，ＮＫ１６とすると、秘密情報の送信者は、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ７，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１２，Ｋｃ），Ｅ（ＮＫ１６，Ｋｃ）
の５つの暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【０２１８】
上記暗号文セットは、リボーク受信機ｕ２，ｕ１１，ｕ１２のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
【０２１９】
この暗号化に使用するノードキーを見つけるための手法としては、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様の手法、あるいは、表現木を適用した方法などが適用可能である。情報配信処理の手順は、先に図１２のフローを参照して説明したと同様の処理となる。
【０２２０】
（６−３）情報受信および復号処理
次に、上述の暗号文の受信および復号処理について説明する。上述の暗号文は同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。こり暗号文は、リボークの有無に関わらず、すべての受信機が受領可能であるが、リボークされた受信機は暗号文の復号に適用するノードキーを得ることができないので受信情報の復号を行なうことができない。
【０２２１】
リボークされていない受信機は、受領した暗号文のセットから自己が復号できる暗号文を選択する。受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノード対応値ＮＶｌと、ｓａｌｔから導出できるノードキーが含まれる。
【０２２２】
リボークされていない受信機は、ノード対応値ＮＶｌと、ｓａｌｔから、暗号化に適用されたノードキーＮＫｋに対応するノード対応値ＮＶｋを導出し、ノード対応値ＮＶｋからノードキーＮＫｋを導出して、導出したノードキーを用いて暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のノードキー指定情報を用いればよい。
【０２２３】
この暗号文抽出処理において、受信機ｕｍは、暗号化に使われたノードキーのノード番号ｋを抽出し、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号と一致するものを見つける。
【０２２４】
受信機ｕｍは、自身が割り当てられた葉ｌ（エル）のノード対応値ＮＶｌを保持しているので、これと同様に保持しているノード付加変数ｓａｌｔｌからｌの親ノードのノード対応値、
【数５９】
2006115464.tif 000043
を、下式、
【数６０】
2006115464.tif 000044
により求め、さらにこれを繰り返すことにより、自己ノードｌからルートまでのパス上の任意のノードｋのノード対応値ＮＶｋを導出する。そして、ノードｋのノード対応値ＮＶｋから、ノードｋのノードキーＮＫｋを、
ＮＫｋ＝Ｈｃ（ＮＶｋ）
により導出する。導出したノードキーを適用して暗号文を復号する。
【０２２５】
具体的な例について図１８を参照して説明する。今、受信機ｕ４（ノード番号＝１９）が、リボークされていないと仮定し、受信機ｕ４の処理について考察する。受信機ｕ４（ノード番号＝１９）が、リボークされていない場合、暗号化に使われたノードキーには、受信機ｕ４に対応するパスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノード番号と一致するものが必ず含まれる。
【０２２６】
秘密情報を［Ｋｃ］とすると、Ｅ（ＮＫ１，Ｋｃ），Ｅ（ＮＫ２，Ｋｃ）、Ｅ（ＮＫ４，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１９，Ｋｃ）のいずれかを含む暗号文セットが、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。受信機ｕ４は、受信暗号文セットから、この受信機ｕ４に対応するパスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノード番号と一致するものを検出する。
【０２２７】
ノードキーＮＫ１，ＮＫ２，ＮＫ４，ＮＫ９，ＮＫ１９のいずれが、暗号文の暗号化に適用されたノードキーであるかを判別した後、受信機ｕ４は、判別されたノードキーを算出するため、自己の保持するノード対応値ＮＶ４と、ノード付加変数ｓａｌｔ２、ｓａｌｔ４、ｓａｌｔ９、ｓａｌｔ１９を適用して、上位ノードのノード対応値を算出して、さらに算出したノード対応値からノードキーを算出する。算出手法を図１９に示す。すなわち、以下の手順による処理が行なわれる。
ＮＶ９＝（（ＮＶ１９）２ ＸＯＲ Ｈｓａｌｔ１９（１９））ｍｏｄＭ
ＮＶ４＝（（ＮＶ９）２ ＸＯＲ Ｈｓａｌｔ９（９））ｍｏｄＭ
ＮＶ２＝（（ＮＶ４）２ ＸＯＲ Ｈｓａｌｔ４（４））ｍｏｄＭ
ＮＶ１＝（（ＮＶ２）２ ＸＯＲ Ｈｓａｌｔ２（２））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
【０２２８】
さらに、各ノードのノード対応値からノードキーを、
ＮＫ１９＝Ｈｃ（ＮＶ１９）
ＮＫ９＝Ｈｃ（ＮＶ９）
ＮＫ４＝Ｈｃ（ＮＶ４）
ＮＫ２＝Ｈｃ（ＮＶ２）
ＮＫ１＝Ｈｃ（ＮＶ１）
の各式によって算出する。
【０２２９】
受信機ｕ４は、パスノード４［ＰａｔｈＮｏｄｅｓ−４］＝｛１，２，４，９，１９｝に含まれるノードのノードキー：ＮＫ１９，ＮＫ９，ＮＫ４，ＮＫ２，ＮＫ１のいずれかを適用して、暗号文セットに含まれる暗号文を復号して秘密情報［Ｋｃ］を得ることができる。
【０２３０】
受信機ｕｍの処理について、図２０のフローを参照して説明する。まず、ステップＳ４５１において、暗号文セットを受領する。この暗号文は、ネットワークを介してあるいは情報記録媒体を介して受領する。
【０２３１】
ステップＳ４５２において、受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中から、自身が直接保持しているノード対応値ＮＶ、ノード付加変数ｓａｌｔから導出可能なノード対応値に基づいて算出可能なノードキーによって暗号化された暗号文を抽出する。これは、受信機ｕｍが、受信暗号文セットから、この受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号と一致するものを検出する処理に相当する。なお、ここで、受信機が復号すべき暗号を決定できないということは、その受信機がリボークされていることを意味している。
【０２３２】
さらに、ステップＳ４５３において、暗号化に使用されたノードキーを、自己が保持するノード対応値ＮＶと、ノード付加変数ｓａｌｔを適用して算出する。この算出は、前述の（数式３）によって上位ノード対応値を算出し、算出したノード対応値に基づいて、下式、
ＮＫｋ＝Ｈｃ（ＮＶｋ）
に従って、必要なノードキーＮＫｋを求める処理として実行される。
【０２３３】
暗号化に使われたノードキーが算出されると、ステップＳ４５４に進み、算出したノードキーを適用して暗号文を復号し、秘密情報を取得する。
【０２３４】
なお、秘密情報はたとえばテレビ放送システムの暗号化コンテンツを復号するためのコンテンツキーなどが想定される。この場合には受信機は暗号化コンテンツを受信し、コンテンツキーを用いて復号して出力する。なお、上記の処理は、必ずしもこの順番である必要はない。暗号文を提供する情報処理装置と、暗号文を受信して復号する情報処理装置の機能構成については、先に図１５、図１６を参照して説明したと同様の構成が適用できる。
【０２３５】
［７．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した効果について］
上述したＲａｂｉｎ  Ｔｒｅｅ構成例２を用いたＣＳ方式の暗号文配信構成においては、各ノードに対応して設定されるノード付加変数（ｓａｌｔ）が、前述のＲａｂｉｎ  Ｔｒｅｅ構成例１とは異なっている。すなわち、
Ｒａｂｉｎ  Ｔｒｅｅ構成例１では、
【数６１】
2006115464.tif 000045
が、ｔｍｐｌ∈ＱＲＭを満たす最小の正整数（もしくは非負整数）をｓａｌｔｌとしていた。ここで、関数ＨとしてＳＨＡ−１やＭＤ５のようなハッシュ関数を用いたものを使うことを考える。ＳＨＡ−１やＭＤ５は５１２ビットを１ブロックとして扱うため、入力のサイズが５１２ビットを超え１０２４ビット以下であれば、５１２ビット以下の入力の場合に比べて約２倍の処理時間が必要となる。
【０２３６】
ここで、ｌ（エル）のサイズが５１２ビットであった場合、ｓａｌｔｌのサイズは数ビットであったとしても、ｌ||ｓａｌｔｌのサイズは５１２ビットを超えてしまう。ｔｍｐｌｉｎＱＲＭを満たすようにｓａｌｔｌを試行し、Ａ個目のｓａｌｔｌが条件を満たすこととなった場合、上記のセッティングでは、Ｈの計算に必要な時間だけで、５１２ビット以下の入力のＨの２Ａ回分の時間が必要となる。
【０２３７】
これに対し、本実施例のように、ノード付加変数（ｓａｌｔ）の設定を、
【数６２】
2006115464.tif 000046
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌとする設定とすれば、Ｈの入力となるのはｌ（エル）のみであり、ちょうど５１２ビットである。このため、Ｈを１回計算するのに必要な時間は、前述の方法（Ｒａｂｉｎ  Ｔｒｅｅ構成例１）に比べ１／２で済む。ここで、Ｈがランダムな値を出力するとすれば、ｔｍｐｌ∈ＱＲＭとなる確率はそれぞれのｓａｌｔｌに対して約１／４と、前述の方法（Ｒａｂｉｎ  Ｔｒｅｅ構成例１）と変わらないため、ｓａｌｔｌとして試行すべき数の期待値、すなわち、関数Ｈを計算しなければならない回数の期待値も不変である点に注意されたい。
【０２３８】
［８．Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式］
上述した処理例は、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式にＲａｂｉｎ  Ｔｒｅｅを適用した処理例であったが、次に、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式と異なるＳｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式に対してＲａｂｉｎ  Ｔｒｅｅを適用した処理例について説明する。
【０２３９】
上記のように、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式においては、階層木の各ノード（節）を用いて、「そのノードを頂点とする部分木のリーフ（葉）に割り当てられた受信機からなる集合」を表していた。これに対し、Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式においては、階層木の２つのノードｉ，ｊ（ただしｉはｊの先祖であるノード）を用いて、「（ノードｉを頂点とする部分木のリーフ（葉）からなる集合）から（ノードｊを頂点とする部分木のリーフ（葉）からなる集合）を引いた集合」を表す。
【０２４０】
なお、以下の説明においては、下記の記号を用いて説明する。
Ｐ（ｉ）：ノードｉの親ノードおよびそのノード番号
Ｓ（ｉ）：ノードｉの兄弟（ｓｉｂｌｉｎｇ）であるノード（すなわち、ｉと異なるノードで、ｉと同じ親を持つノード）およびそのノード番号
ＬＣ（ｉ）：ノードｉの左側の子ノードおよびそのノード番号
ＲＣ（ｉ）：ノードｉの右側の子ノードおよびそのノード番号
【０２４１】
たとえば図２１のノードｉ５３１，とノードｊ５３２で定義される集合Ｓｉ，ｊは、受信機ｕ１〜ｕ８の集合からｕ５，ｕ６を除いたものであり、すなわち、Ｓｉ，ｊ＝｛ｕ１，ｕ２，ｕ３，ｕ４，ｕ７，ｕ８｝である。ノードｉがノードｊの先祖である（すなわち、ノードｊはノードｉと同一ではなく、ノードｊからルートへのパス上にノードｉが存在する）すべてのノードの組についてこのような集合を定義する。
【０２４２】
サブセットＳｉ，ｊに対応する鍵としてサブセットキーＳＫｉ，ｊが設定される。サブセットキーＳＫｉ，ｊは、ｕ１〜ｕ８の集合からｕ５，ｕ６を除いたサブセットＳｉ，ｊ＝｛ｕ１，ｕ２，ｕ３，ｕ４，ｕ７，ｕ８｝が共通に保有する鍵として設定され、サブセットキーＳＫｉ，ｊを暗号鍵として秘密情報を暗号化した情報を送信することにより、サブセットＳｉ，ｊ＝｛ｕ１，ｕ２，ｕ３，ｕ４，ｕ７，ｕ８｝においてのみ復号可能となり、ｕ５，ｕ６をリボーク（排除）することができる。
【０２４３】
このようなセッティングでは、ひとつの受信機が所属する集合の個数は、下式によって示される数Ｏ（Ｎ）となる。
【数６３】
2006115464.tif 000047
【０２４４】
従って、それぞれの集合（サブセット）に鍵（サブセットキー）を独立に割り当てたのでは、各受信機がＯ（Ｎ）個のサブセットキーを安全に保持する必要がある。しかし、これは、総受信機数Ｎの増大に伴い飛躍的に増大し、これらの大量の情報を各機器に安全に保管させることは現実的に困難である。
【０２４５】
このため、Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式では以下に述べる工夫を用いている。前述したＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式と同様に、管理センタ（ＴＣ）が階層木の定義やサブセットの定義、鍵の定義、配布などを行うものとする。
【０２４６】
まず、図２２（Ａ）に示すように、管理センタ（ＴＣ）は、ある内部ノード（すなわち、リーフ（葉）でないノード）ｉに注目し、そのノードｉのラベルをＬＡＢＥＬｉとしてＣビットの値Ｓをランダムに選択する。
【０２４７】
次に、図２２（Ｂ）の図に示すように、ＬＡＢＥＬｉ＝Ｓを、Ｃビット入力、３Ｃビット出力の擬似乱数生成器Ｇに入力する。この出力を左から（最上位ビット側から）Ｃビットずつに区切り、それぞれＧＬ（Ｓ），ＧＭ（Ｓ），ＧＲ（Ｓ）とする。そして、ＧＬ（Ｓ）を、図２２（Ａ）に示すノードｉの左側の子ノードｋのラベルとし、またＧＲ（Ｓ）をノードｉの右側の子ノードのラベルとする。
【０２４８】
いま、この処理により、図２２においてノードｉの左側の子であるノードｋについて、ノードｉを始点にした場合のノードｋのラベルＬＡＢＥＬｉ，ｋは、ＬＡＢＥＬｉ，ｋ＝ＧＬ（Ｓ）となった。これをＴとおく。次に、今度はノードｋのラベルＬＡＢＥＬｉ，ｋ＝ＧＬ（Ｓ）＝Ｔを、図２２（Ｂ）に示す擬似乱数生成器Ｇに入力し、その出力を左からＣビットずつに区切った、ＧＬ（Ｔ），ＧＭ（Ｔ），ＧＲ（Ｔ）を、それぞれ以下のように設定する。
ＧＬ（Ｔ）＝ノードｉを始点にした場合のノードｋの左側の子ノードＬＣ（ｋ）のラベルＬＡＢＥＬｉ，ＬＣ（ｋ）
ＧＭ（Ｔ）＝ノードｉを始点にした場合のノードｋの鍵（これを集合Ｓｉ，ｋに対応するサブセットキーＳＫｉ，ｋとする）
ＧＲ（Ｔ）＝ノードｉを始点にした場合のノードｋの右側の子ノードＲＣ（ｋ）のラベルＬＡＢＥＬｉ，ＲＣ（ｋ）
【０２４９】
この処理を繰り返すことにより、ノードｉを始点とした場合の、その子孫となるすべてのノードに対応するラベルを作り出す。なお、上記の定義によれば集合Ｓｉ，ｉは空集合であり、ノードｉを始点とした場合に、ノードｉの鍵というものは不要であるため、ＬＡＢＥＬｉを擬似乱数生成器Ｇに入力した出力の中央部分であるＧＭ（Ｓ）は使われないことに注意されたい。
【０２５０】
図２２（Ａ）の例で示すと、始点であるノードｉのラベルＳが定められ、ＧＲ（Ｓ）がノードｉを始点とした場合のｉの右の子ノードのラベルとなり、さらにそれを擬似乱数生成器Ｇに入力して得られたＧＬ（ＧＲ（Ｓ））が、ノードｉを始点とした場合のノードｊのラベルＬＡＢＥＬｉ，ｊとなる。ノードｉを始点とした場合の、その子孫となるすべてのノードに対応するラベルを作り出す処理を、すべての内部ノードｉに対して行う。
【０２５１】
これらの処理はシステムのセットアップ時に、管理センタ（ＴＣ）によって行われるが、擬似乱数生成器（あるいは擬似乱数生成関数）Ｇは、管理センタ（ＴＣ）によって定められ公開されており、これを用いることによって、ＬＡＢＥＬｉ，ｊを与えられた受信機は、ノードｉを始点とした場合の、ノードｊの子孫となるすべてのノードｎのラベルＬＡＢＥＬｉ，ｎを計算することおよび、ノードｉを始点とした場合の、ノードｊおよびその子孫ノードｎのサブセットキーＳＫｉ，ｎを計算することが可能となる。
【０２５２】
このような設定により、図２３（Ａ）に示すように、ある受信機ｕは、それが割り当てられたリーフ（葉）から木の頂点へのパス上のそれぞれの内部ノードｉについて、ノードｉを始点として、このリーフ（葉）ｕからｉへのパスから直接枝分かれしているノードであるノードａ，ｂ，ｃのラベルのみを保持しておけばよいことになる。
【０２５３】
これらのノードａ，ｂ，ｃおよびその子孫となるノードの、ノードｉを始点としたサブセットキーを作り出すことが可能となる。図２３（Ａ）では、ノードｉに注目したときに、ｕからｉへのパスから直接枝分かれしているノードはａ，ｂ，ｃの３つであり、受信機ｕはこれら３つのラベルをシステムのセットアップ時に、管理センタ（ＴＣ）から与えられて保持する。
【０２５４】
リーフｕは、ノードａのラベルＬＡＢＥＬｉ，ａに基づく擬似乱数生成器Ｇの処理によって、サブセットＳｉ，ａに対応するサブセットキーＳＫｉ，ａを求ることができる。すなわち、
ＧＭ（ＬＡＢＥＬｉ，ａ）＝ＳＫｉ，ａとなる。
サブセットＳｉ，ａは、図２３（ａ）に示すように、ノードａを頂点とした部分木のリーフをリボーク機器として設定したサブセットであり、ノードｉを頂点とした部分木のリーフのうちノードａを頂点とした部分木のリーフ以外のリーフのみを情報配信対象として設定されるサブセットである。
【０２５５】
また、リーフｕは、ノードｂのラベルＬＡＢＥＬｉ，ｂに基づく擬似乱数生成器Ｇの処理によって、サブセットＳｉ，ｂに対応するサブセットキーＳＫｉ，ｂを求めることができる。すなわち、
ＧＭ（ＬＡＢＥＬｉ，ｂ）＝ＳＫｉ，ｂとなる。
サブセットＳｉ，ｂは、図２３（ｂ）に示すように、ノードｂを頂点とした部分木のリーフをリボーク機器として設定したサブセットであり、ノードｉを頂点とした部分木のリーフのうちノードｂを頂点とした部分木のリーフ以外のリーフのみを情報配信対象として設定されるサブセットである。
【０２５６】
また、リーフｕは、ノードｃのラベルＬＡＢＥＬｉ，ｃに基づく擬似乱数生成器Ｇの処理によって、サブセットＳｉ，ｃに対応するサブセットキーＳＫｉ，ｃを求ることができる。すなわち、
ＧＭ（ＬＡＢＥＬｉ，ｃ）＝ＳＫｉ，ｃとなる。
サブセットＳｉ，ｃは、図２３（ｃ）に示すように、ノードｃ（リーフｃ）をリボーク機器として設定したサブセットであり、ノードｉを頂点とした部分木のリーフのうちリーフｃ以外のリーフのみを情報配信対象として設定されるサブセットである。
【０２５７】
ｉを始点とする階層木において、リーフｕ以外のリーフをリボークする構成は、これら３つ以外にも様々設定可能である。例えば図２３（ａ）のリーフｄ２５１のみをリボーク対象とする場合は、サブセットＳｉ，ｄを設定し、サブセットキーＳＫｉ，ｄを適用することが必要である。しかし、各ノード、リーフに対応する鍵、すなわちサブセットキーは、上位のラベルに基づく擬似乱数生成処理により生成可能である。従って、リーフｕは、リーフｄ２５１のリボークに対応するサブセットキーＳＫｉ，ｄを、リーフｕが保有するノードａのラベルＬＡＢＥＬｉ，ａに基づいて生成可能となる。
【０２５８】
その他のサブセット構成についても同様であり、図２３（Ａ）に示すように、ある受信機ｕは、それが割り当てられたリーフ（葉）から木の頂点へのパス上のそれぞれの内部ノードｉについて、ノードｉを始点として、このリーフ（葉）ｕからｉへのパスから直接枝分かれしているノードであるノードａ，ｂ，ｃのラベルのみを保持しておけばよいことになる。
【０２５９】
図２４は全受信機数Ｎ＝１６の設定の場合に各受信機が保持すべきラベルを示す図である。いま、受信機ｕ４を考えると、それが割り当てられたリーフ（葉）であるノード１９から頂点１へのパス上の内部ノード１，２，４，９が始点（ノードｉ）となる。ノード１を始点とすると、ノード１９からノード１へのパスから直接枝分かれしているノードは３，５，８，１８の４つであるため、受信機ｕ４は４つのラベル、すなわち、
ＬＡＢＥＬ１，３，
ＬＡＢＥＬ１，５，
ＬＡＢＥＬ１，８，
ＬＡＢＥＬ１，１８，
を保持する。
【０２６０】
同様に、ノード２を始点とした場合には、
ＬＡＢＥＬ２，５，
ＬＡＢＥＬ２，８，
ＬＡＢＥＬ２，１８，
の３つのラベルを保持する。
【０２６１】
ノード４を始点とした場合には、
ＬＡＢＥＬ４，８，
ＬＡＢＥＬ４，１８，
の２つのラベルを保持する。
【０２６２】
ノード９を始点とした場合には、
ＬＡＢＥＬ９，１８，
の１つのラベルを保持する。
【０２６３】
また、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合（これをサブセットＳ１，φと表すことにする）に対応するラベル
ＬＡＢＥＬ１，φ，
を１つ保持する。
【０２６４】
すなわち、図２４の構成においてｕ４が持つＬＡＢＥＬをまとめると、図２４にも記載しているように、
ｉ＝１に対してｊ＝３，５，８，１８の４つのラベル
ｉ＝２に対してｊ＝５，８，１８の３つのラベル
ｉ＝４に対してｊ＝８，１８の２つのラベル
ｉ＝９に対してｊ＝１８の１つのラベル
リボークなしの場合用のＬＡＢＥＬを１つ
の計１１個のラベルとなる。
【０２６５】
ただし、ここでは説明を統一するため、サブセットＳ１，φに対応するラベルとしているが、ラベルではなくサブセットＳ１，φに対応するに対応するサブセットキーを直接保持してもよい。
【０２６６】
上記のように、各受信機は、リーフ（葉）からルートへのパス上の各内部ノードについて、その内部ノードの高さ分だけのラベルと特別な１つのラベルを保持する必要があるから、送受信機数をＮとした場合に各受信機が保持するラベル数は、下記式によって算出される数となる。
【数６４】
2006115464.tif 000048
【０２６７】
各受信機は、上記式によって示される数のラベルを保持し、公開されている擬似乱数生成関数Ｇを用いることにより必要とするサブセットキーを作り出すことができる。受信機はこれらのラベルを安全に保持する必要がある。
【０２６８】
［９．ＳＤ方式のラベル数削減構成］
Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式のラベル数の削減構成について説明する。上述したＳｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式を観察すると、以下のことがわかる。
【０２６９】
すなわち、ラベルＬＡＢＥＬｉ，ｊは、
（Ａ）受信機に直接、管理センタ（ＴＣ）から与えられる場合と、
（Ｂ）受信機がそれ以外のラベルから擬似乱数生成器Ｇを用いて導出する場合と、
があるが、
ノードｉとノードｊが親子の関係（距離１、すなわち連続する階層にある）であるラベルについては、上記の（Ｂ）の場合は存在せず、すべて、（Ａ）受信機に直接、管理センタ（ＴＣ）から与えられる場合しかありえない。
【０２７０】
これは、ある受信機がＬＡＢＥＬｉ，ｊを擬似乱数生成器Ｇを用いて作り出すためには、ノードｊの先祖となるノードｋを用いたＬＡＢＥＬｉ，ｋを知る必要があるが、ノードｉ，ｊが親子関係であるため、ノードｊの先祖であり、ノードｉの子孫となるようなノードｋは存在せず、また、ＬＡＢＥＬｉはどの受信機にも与えられていないためである。
【０２７１】
図２５の構成例を参照して説明する。ＬＡＢＥＬ２，８は、受信機ｕ４には直接、管理センタ（ＴＣ）から与えられるが、受信機ｕ５には直接は与えられず、受信機ｕ５は、管理センタ（ＴＣ）から与えられたＬＡＢＥＬ２，４から擬似乱数生成器Ｇを用いてＧＬ（ＬＡＢＥＬ２，４）を計算することによりＬＡＢＥＬ２，８を導出する。
【０２７２】
これに対し、図２６に示すように、ノード２とノード５が親子関係になるＬＡＢＥＬ２，５は、サブセットＳ２，５に属している受信機ｕ１，ｕ２，ｕ３，ｕ４には直接与えられ、これ以外の受信機はその集合に属していないため、計算で導出することもできない。すなわち、このようなラベルは受信機に対し直接、管理センタ（ＴＳ）から与えられるだけで、擬似乱数生成器Ｇを用いて導出されることはない。
【０２７３】
また、ＳＤ方式において、あるノードｉが異なる２つのノードｊ，ｋの親ノードであり、ノードｊがそれらとは別のノードｎの親ノードであるとき、サブセットＳｊ，ｎに属する受信機は必ずサブセットＳｉ，ｋにも所属することがわかる。
【０２７４】
たとえば図２７に示すように、サブセットＳ９，１８に属している受信機Ｕ４は、サブセットＳ４，８、サブセットＳ２，５、サブセットＳ１，３のいずれにも属している。すなわち、
Ｓ９，１８＝｛ｕ４｝
Ｓ４，８＝｛ｕ３，ｕ４｝
Ｓ２，５＝｛ｕ１，ｕ２，ｕ３，ｕ４｝
Ｓ１，３＝｛ｕ１，ｕ２，ｕ３，ｕ４，ｕ５，ｕ６，ｕ７，ｕ８｝
である。
【０２７５】
またサブセットＳ４，８に属する受信機ｕ４以外の受信機である受信機ｕ３も、サブセットＳ２，５、サブセットＳ１，３のいずれにも属している。
【０２７６】
本発明では、ノードｉとノードｊが親子関係になるラベルＬＡＢＥＬｉ，ｊと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φに対して、Ｒａｂｉｎ  Ｔｒｅｅを適用することにより受信機が保持するラベル数を削減する。
【０２７７】
上述したＳｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式においては各受信機は、ノードｉとノードｊが親子関係になるラベルＬＡＢＥＬｉ，ｊを、受信機が割り当てられたリーフ（葉）から木の頂点へのパス上の内部ノード１つにつき１つずつ、合計ｌｏｇＮ個保持している。本発明では、これらのラベルと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φの合計ｌｏｇＮ＋１個のラベルを１つの値から導出可能な設定とすることで、受信機の保持すべきラベル数を削減する。
【０２７８】
なお、Ｒａｂｉｎ  Ｔｒｅｅを応用することにより、ｘからｙを計算するの（順方向の計算）は簡単だが、その逆計算は、ある秘密（落とし戸）を知っているものだけが簡単にでき、その他のものにとっては困難であるような関係である順方向変換ｙ＝Ｆ（ｘ）および逆方向変換ｘ＝Ｆ−１（ｙ）を構成することが可能になる。
【０２７９】
オリジナルのＳＤ方式では、図２４を参照して説明したように、受信機ｕ４は計１１個のラベル、すなわち、
ｉ＝１に対してｊ＝３，５，８，１８の４つのラベル
ＬＡＢＥＬ１，３，
ＬＡＢＥＬ１，５，
ＬＡＢＥＬ１，８，
ＬＡＢＥＬ１，１８，
ｉ＝２に対してｊ＝５，８，１８の３つのラベル
ＬＡＢＥＬ２，５，
ＬＡＢＥＬ２，８，
ＬＡＢＥＬ２，１８，
ｉ＝４に対してｊ＝８，１８の２つのラベル
ＬＡＢＥＬ４，８，
ＬＡＢＥＬ４，１８，
ｉ＝９に対してｊ＝１８の１つのラベル
ＬＡＢＥＬ９，１８，
リボークなしの場合用のＬＡＢＥＬを１つ
ＬＡＢＥＬ１，φ，
計１１のラベルを安全に保持する必要があったが、本発明の構成を適用することにより、ノードｉ，ｊが親子関係になるラベル、すなわち、
ＬＡＢＥＬ１，３，
ＬＡＢＥＬ２，５，
ＬＡＢＥＬ４，８，
ＬＡＢＥＬ９，１８，
さらに、リボークなしの場合用のＬＡＢＥＬである
ＬＡＢＥＬ１，φ，
これらのラベルを、受信機は保持することが必要であるが、本発明では、Ｒａｂｉｎ  Ｔｒｅｅを適用することにより、これらのラベルと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φの合計ｌｏｇＮ＋１個のラベルを１つの値から導出可能な設定とすることで、受信機の保持すべきラベル数を削減する。
【０２８０】
［１０．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を用いたＳＤ方式のラベル数削減構成］
以下、Ｒａｂｉｎ  Ｔｒｅｅを用いたＳＤ方式のラベル数削減構成について、詳細に説明する。なお、ここで適用するＲａｂｉｎ  Ｔｒｅｅは、前述のＣＳ方式において適用したＲａｂｉｎ  Ｔｒｅｅ、すなわち、［２．Ｒａｂｉｎ  Ｔｒｅｅ構成例１を適用したＣＳ方式の構成］の項目（２．１）Ｒａｂｉｎ  Ｔｒｅｅの構成方法例において、図８のフローを参照して説明したアルゴリズムに従って生成されるＲａｂｉｎ  Ｔｒｅｅである。
【０２８１】
すなわち、図８〜図１０を参照して説明したように、Ｎ個の葉（リーフ）を持つ２分木において、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を設定した木構造であり、あるノードのノード対応値ＮＶｌおよびノード付加変数ｓａｌｔｌからその親ノードのノード対応値を求めることは容易だが、その逆は困難な構成を持つ。図９において、関数ｆに沿って示されている直線矢印は、下位ノードのノード対応値ＮＶｌを入力として関数ｆを適用することで、上位ノードのノード対応値が求められることを示している。関数ｆは、順方向演算（ｍｏｄＭ上の２乗算）Ｆを用いた演算である。あるノード（子ノード）の親ノードのノード対応値は、子ノードのノード対応値ＮＶｌおよびｓａｌｔｌからその公開された関数：Ｈおよび、法：Ｍを適用して、前述の数式１に従って算出することができる。
【０２８２】
図９において、関数ｆ−１に沿って示されている直線矢印は、上位ノードのノード対応値を入力として関数ｆ−１を摘用することで、下位ノードのノード対応値が求められることを示している。関数ｆ−１は、逆方向演算（ｍｏｄＭ上の１／２乗算）Ｆ−１を用いた演算である。上位ノードのノード対応値から子ノードのノード対応値を求めるには、秘密情報：ｐ，ｑ（Ｍの素因数）を知ることが必要であり、管理センタのみが行える。
【０２８３】
このような設定を持つノード対応値ＮＶｌにより構成された木をＲａｂｉｎ  Ｔｒｅｅと呼ぶ。これはＲａｂｉｎ暗号が、暗号化（順方向演算）にｍｏｄＭ上の自乗算、復号（逆方向演算）にｍｏｄＭ上のルート（１／２乗）演算を用いているためである。なお、Ｒａｂｉｎ暗号については、たとえば上述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６のｐｐ．２９２−２９４に詳しい説明がある。
【０２８４】
以下、Ｒａｂｉｎ  Ｔｒｅｅを用いたＳＤ方式のラベル数削減構成について、詳細に説明する。
【０２８５】
本発明では、ノードｉとノードｊが親子関係（距離１、すなわち連続する階層にある）になるサブセット対応のラベルＬＡＢＥＬｉ，ｊと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φに対して、Ｒａｂｉｎ  Ｔｒｅｅを適用することにより受信機が保持するラベル数を削減する。
【０２８６】
なお、階層木に定義されるすべてのサブセットＳｉ，ｊの中で、ノードｉとノードｊが親子関係（距離１、すなわち連続する階層にある）になるサブセットを第１特別サブセット（スペシャルサブセット：Ｓｐｅｃｉａｌ  Ｓｕｂｓｅｔ）ＳＳｉ，ｊと定義するものとする。ここで、木のルートを除く各ノードは、それぞれ唯一の親ノードを持つので、ＳＳｉ，ｊのｊには、ｊ＝２，３，・・・，２Ｎ−１なるｊがただ１度ずつ使用されることに注意されたい。さらに、階層木のすべてのリーフを含むルートを頂点とする全体木の集合として定義されたサブセットＳ１，φを第２特別サブセットＳＳ１，φと定義するものとする。
【０２８７】
さらに、第１特別サブセットＳＳｉ，ｊに対応するラベルＬＡＢＥＬｉ，ｊ（ｊ＝２，３，・・・，２Ｎ−１）に対して、中間ラベル（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｌａｂｅｌ，ＩＬ）ＩＬｉ，ｊを定義し、第２特別サブセットＳＳ１，φに対して、中間ラベルＩＬ１，Φを定義する。
【０２８８】
さらに、これらの中間ラベルを上述のＲａｂｉｎ  Ｔｒｅｅのノード対応値ＮＶｊに対応付ける。すなわち、
第２特別サブセットＳＳ１，φに対応する中間ラベルＩＬ１，Φを、
ＩＬ１，Φ＝ＮＶ１
とし、
第１特別サブセットＳＳｉ，ｊ（ｊ＝２，３，・・・，２Ｎ−１）に対応する中間ラベルＩＬｉ，ｊを以下のように定義する。
ノード１から２Ｎ−１に対応するノード対応値として設定したＮＶｊ（ｊ＝２，３，・・・，２Ｎ−１）をノードｊの兄弟ノードと親ノードで指定される第１特別なサブセットＳＳＰ（ｊ），Ｓ（ｊ）に対応する中間ラベルＩＬＰ（ｊ），Ｓ（ｊ）とする。すなわち、
ＩＬＰ（ｊ），Ｓ（ｊ）＝ＮＶｊ
ただし、ｊ＝２，３，・・・，２Ｎ−１
とする。
なお、Ｐ（ｊ）はノードｊの親ノードであり、Ｓ（ｊ）はノードｊの兄弟ノードである。
【０２８９】
上記の処理について、別の表現をすれば、Ｒａｂｉｎ  Ｔｒｅｅのノード対応値ＮＶと中間ラベルＩＬとの対応を以下のように設定する。
ＩＬ１，φ＝ＮＶ１
の設定を行うとともに、ｊ＝１，２，・・・，Ｎ−１に対して、
ＩＬｊ，２ｊ＝ＮＶ２ｊ＋１
ＩＬｊ，２Ｊ＋１＝ＮＶ２ｊ
とする処理を行なう。
【０２９０】
さらに、ラベルＬＡＢＥＬｉ，ｊと中間ラベルＩＬｉ，ｊとの関係を以下のように定める。
ＬＡＢＥＬｉ，ｊ＝Ｈｃ（ＩＬｉ，ｊ）
なお、関数Ｈｃは、サイズ｜Ｍ｜の値を、サイズＣのランダムな値にマップするハッシュ関数である。たとえばＣが１６０ｂｉｔの場合、任意のサイズの入力に対し１６０ｂｉｔの値を出力する関数としては上記のＳＨＡ−１があり、また、Ｃが１２８ｂｉｔの場合、任意のサイズの入力に対し１２８ｂｉｔの値を出力する関数としては、ＭＤ５などが知られており、これらの関数を適用することができる。なお、ＭＤ５についても、上述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６に詳しい説明がある。
【０２９１】
ノードキーはセッションキーなど受信機に送信すべき情報の暗号化に用いられるため、このサイズＣの決め方は、そこに用いる暗号アルゴリズムの鍵のサイズとすればよい。たとえば暗号アルゴリズムとして１２８ｂｉｔ鍵のＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ  ＦＩＰＳ１９７）を用いる場合には、Ｃを１２８ｂｉｔとすればよい。
【０２９２】
図２８に具体的な例を示す。図２８において、ノードｊ５５１にはノード対応値としてのＮＶｊが割り当てられる。
【０２９３】
ノードｊ５５１の親ノードは、Ｐ（ｊ）５５２であり、兄弟ノードはＳ（ｊ）５５３である。ノードｊ５５１の兄弟ノードＳ（ｊ）５５３と親ノードＰ（ｊ）５５２で指定される第１の特別なサブセットＳＳＰ（ｊ），Ｓ（ｊ）は、図２８に示すサブセットＳＳＰ（ｊ），Ｓ（ｊ）５５０である。
【０２９４】
このとき、サブセットＳＳＰ（ｊ），Ｓ（ｊ）５５０に対応するラベルは、ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）となるが、
ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）を、中間ラベルＩＬＰ（ｊ），Ｓ（ｊ）（これはノードｊ５５１のノード対応値ＮＶｊに等しい）に基づいて算出される。すなわち、
ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）＝Ｈｃ（ＩＬＰ（ｊ），Ｓ（ｊ））
である。
上記式は、
ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）＝Ｈｃ（ＮＶｊ）
と等価である。
【０２９５】
図２９に、（ａ）リボークする受信機がひとつもない場合に使用する全受信機を含む全体木に対応する第２の特別なサブセットＳＳ１，φのラベルＬＡＢＥＬ１，φと、（ｂ）ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊ（ただし、上述のようにｊ＝２，３，・・・，２Ｎ−１である）に対応するラベルＬＡＢＥＬｉ，ｊとの生成元データである中間ラベル（ＩＬ）としてのノード対応値ＮＶｊの設定処理例を示す。
【０２９６】
図２９において［ｉ  ＮＶｋ  ｊ］は、
ＮＶｋ＝ＩＬｉ，ｊ
を示す。ただしｉはｊの先祖である。
例えば［１  ＮＶ３  ２］は、
ＮＶ３＝ＩＬ１，２
であることを示している。
【０２９７】
このように、ノード対応値ＮＶｊは、上述の第１の特別なサブセットＳＳｉ，ｊと、第２の特別なサブセットＳＳ１，φのラベルを算出可能な中間ラベルに対応する値として設定される。
【０２９８】
また、図２９に示すＲａｂｉｎ  ＴｒｅｅのＮ個の葉を、それぞれ左からｌｅａｆ１，ｌｅａｆ２，・・・・，ｌｅａｆＮと番号づけ（つまり、左端のｌｅａｆ１のノード番号はＮであるため、ｌｅａｆｉのノード番号はＮ−１＋ｉとなる）、ｌｅａｆｉに受信機ｕｉを割り当てる。受信機ｕｉには、ｌｅａｆｉの葉（ノード）に対応する値ＮＶＮ−１＋ｉと、ｌｅａｆｉからルートへ至るパス上のノードのｌｏｇＮ個のノード付加変数ｓａｌｔｌを与える。なお、ノード対応値は中間ラベルに等しい。図２９に示したように受信機を割り当てた場合、葉であるノード１９に割り当てられた受信機ｕ４には、ノード１９のノード対応値ＮＶ１９と、ノード１９からルートへのパス上のノードのノード付加変数であるｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２を与える。ノード対応値ＮＶ１９は、中間ラベルＩＬ９，１８に相当する。
【０２９９】
このような設定とすることにより、受信機ｕ４は与えられたノード対応値：ＮＶ１９（＝中間ラベルＩＬ９，１８）と、ノード１９からルートへのパス上のノードのノード付加変数：ｓａｌｔ１９，ｓａｌｔ９，ｓａｌｔ４，ｓａｌｔ２を用いて、ノード１９からルートへのパス上の全てのノードの値、すなわちノード対応値ＮＶ（＝中間ラベルＩＬ）を求めることができる。ノード１９からルートへのパス上のノード対応値ＮＶと中間ラベルＩＬの対応は、以下のような設定である。
ＮＶ１９＝ＩＬ９，１８
ＮＶ９＝ＩＬ４，８
ＮＶ４＝ＩＬ２，５
ＮＶ２＝ＩＬ１，３
ＮＶ１＝ＩＬ１，Φ
【０３００】
受信機ｕ４における上位ノード（ノード番号＝１，２，４，９）のノード対応値ＮＶ（中間ラベル）の算出は、以下の処理手順で実行されることになる。
【０３０１】
（ａ１）ノード１９のノード対応値ＮＶ１９（＝中間ラベルＩＬ９，１８）から上位ノード９のノード対応値ＮＶ９（＝中間ラベルＩＬ４，８）の算出、
ＮＶ９（＝中間ラベルＩＬ４，８）＝（（ＮＶ１９）２ ＋ Ｈ（１９||ｓａｌｔ１９））ｍｏｄＭ
（ａ２）ノード９のノード対応値ＮＶ９（＝中間ラベルＩＬ４，８）から上位ノード４のノード対応値ＮＶ４（＝中間ラベルＩＬ２，５）の算出、
ＮＶ４（＝中間ラベルＩＬ２，５）＝（（ＮＶ９）２ ＋ Ｈ（９||ｓａｌｔ９））ｍｏｄＭ
（ａ３）ノード４のノード対応値ＮＶ４（＝中間ラベルＩＬ２，５）から上位ノード２のノード対応値ＮＶ２（＝中間ラベルＩＬ１，３）の算出、
ＮＶ２（＝中間ラベルＩＬ１，３）＝（（ＮＶ４）２ ＋ Ｈ（４||ｓａｌｔ４））ｍｏｄＭ
（ａ４）ノード２のノード対応値ＮＶ２（＝中間ラベルＩＬ１，３）から上位ノード１のノード対応値ＮＶ１（＝中間ラベルＩＬ１，Φ）の算出、
ＮＶ１（＝中間ラベルＩＬ１，Φ）＝（（ＮＶ２）２ ＋ Ｈ（２||ｓａｌｔ２））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出する。
【０３０２】
さらに、各ノードのノード対応値（中間ラベル）からラベル（ＬＡＢＥＬ）が以下の式によって算出できる。
（ｂ１）ノード１９のノード対応値ＮＶ１９（＝中間ラベルＩＬ９，１８）からノード１９のラベル（ＬＡＢＥＬ９，１８）を算出、
ＬＡＢＥＬ９，１８＝Ｈｃ（ＩＬ９，１８）
（ｂ２）ノード９のノード対応値ＮＶ９（＝中間ラベルＩＬ４，８）からノード９のラベル（ＬＡＢＥＬ４，８）を算出、
ＬＡＢＥＬ４，８＝Ｈｃ（ＩＬ４，８）
（ｂ３）ノード４のノード対応値ＮＶ４（＝中間ラベルＩＬ２，５）からノード４のラベル（ＬＡＢＥＬ２，５）を算出、
ＬＡＢＥＬ２，５＝Ｈｃ（ＩＬ２，５）
（ｂ４）ノード２のノード対応値ＮＶ２（＝中間ラベルＩＬ１，３）からノード２のラベル（ＬＡＢＥＬ１，３）を算出、
ＬＡＢＥＬ１，３＝Ｈｃ（ＩＬ１，３）
（ｂ５）ノード１のノード対応値ＮＶ１（＝中間ラベルＩＬ１，Φ）からノード１のラベル（ＬＡＢＥＬ１，Φ）を算出、
ＬＡＢＥＬ１，Φ＝Ｈｃ（ＩＬ１，Φ）
【０３０３】
ところで、受信機ｕ４は、ノード対応値ＮＶ１９は秘密に保管しておく必要があるが、各ノード付加変数ｓａｌｔは秘密にしておく必要はない。
【０３０４】
上述した構成とすることで、リーフ（葉）数＝Ｎの２分木構成において、各リーフ（葉）に対応して設定された各受信機は、従来のＳＤ方式において、本来、自身が保持すべきラベルＬＡＢＥＬｉ，ｊのうち、ノードｉとノードｊが親子関係になるｌｏｇＮ個のラベルＬＡＢＥＬｉ，ｊと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φを１つの中間ラベルに基づいて生成することが可能となる。結果として、各受信機が秘密に保持すべきラベルの個数をｌｏｇＮ個削減することができる。
【０３０５】
ここで、各ノード付加変数ｓａｌｔのサイズを考える。ある数が法Ｍの下で平方剰余になる確率は約１／４であるため、ｓａｌｔｌとして４つの値を試すと、ｔｍｐｌが平方剰余となるようなものが平均１つはあると期待されるので、ノード付加変数ｓａｌｔｌを表すのに必要なサイズは２ビットであると期待される。
【０３０６】
一方、４つの値のいずれも平方剰余にならない場合もある。たとえばノード付加変数ｓａｌｔｌとしてＬ個の値を試したとき、ｔｍｐｌがいずれも平方剰余でない（平方非剰余である）確率は３Ｌ／４Ｌであるため、Ｌ＝４の場合には、３４／４４≒４２．２％の確率でいずれのｔｍｐｌも平方剰余にならない。しかし、ノード付加変数ｓａｌｔｌとして８ビットの値を考え、２５６個の数を試したとすれば、いずれのｔｍｐｌも平方剰余にならない確率は３２５６／４２５６≒１．０×１０−３２と非常に小さくなり、たとえ葉（リーフ）の数Ｎとして、２３０≒１０９や、２４０≒１０１２などの大きな数を考えたとしても、いずれかのノードにおいてｔｍｐｌが平方剰余になるようなノード付加変数ｓａｌｔｌが見つからない確率は無視できるほど小さいものとなる。
【０３０７】
［１１．ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］
次に、ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理例について説明する。以下、
（１１−１）セットアップ処理
（１１−２）情報配信処理
（１１−３）受信および復号処理
の各処理について順次、説明する。
【０３０８】
（１１−１）セットアップ処理
セットアップ処理はシステムの立ち上げ時に１度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じる毎に実行する。たとえば新しいコンテンツを格納したＤＶＤディスクなどのコンテンツ格納記録媒体が作成され、ユーザに対して配布される毎、あるいはインターネットを介して暗号化コンテンツが配信される毎に繰り返し行う。
【０３０９】
セットアップ処理は、以下のステップ１〜４の処理によって実行する。各ステップについて説明する。
【０３１０】
ａ．ステップ１
まず、管理センタ（ＴＣ）は、２分木でありＮ個のリーフ（葉）を持つ階層木を定義する。なお、この階層木は、上述の一方向性置換木とは別である。階層木中の各ノードに対応する識別子として、ｋ（ｋ＝１，２，・・・，２Ｎ−１）を設定する。ただしルートを１とし、以下、下層ノードについて順次、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で、識別子（番号）付与を行う。すなわち、図２７に示すようなノード番号（ｙ）の設定を行なう。この処理により２分木中の各ノードにｙ＝１〜２Ｎ−１のノード番号が設定される。
【０３１１】
受信機ｕｍ（ｍ＝１，２，...，Ｎ）を木の各葉（リーフ）に割り当てる。図２７の例では、ノード番号ｙ＝１６〜３１に受信機ｕ１〜ｕ１６の１６台の受信機が割り当てられる。
【０３１２】
次に、各内部ノードｉ（ｉ＝１，２，・・・，Ｎ−１）について、ノードｉの子孫であるノードｊに対応するサブセットＳｉ，ｊを定義する。さらに、上で定義されたすべてのサブセットＳｉ，ｊの中で、ノードｉとノードｊが親子関係になっているものを第１の特別なサブセット（スペシャルサブセット：Ｓｐｅｃｉａｌ  Ｓｕｂｓｅｔ）ＳＳｉ，ｊと表すことにする。ここで、木のルートを除く各ノードは、それぞれ唯一の親ノードを持つので、ＳＳｉ，ｊのｊには、ｊ＝２，３，・・・，２Ｎ−１なるｊがただ１度ずつ使用されることに注意されたい。さらに、リボークする受信機がひとつもない場合に使用する、全受信機を含む第２の特別なサブセットＳＳ１，φを定義する。
【０３１３】
ｂ．ステップ２
管理センタ（ＴＣ）は、まず、法Ｍのサイズ｜Ｍ｜（例えば１０２４ｂｉｔ）を定める。
【０３１４】
さらに、擬似乱数生成器Ｇを定めて公開する。擬似乱数生成器Ｇは、先に図２２を参照して説明した擬似乱数生成器Ｇであり、Ｃビット入力に対して３Ｃビットの擬似乱数を出力するものであり、前述のＳＤ方式において適用されているＮｏａｒらの論文において説明されている擬似乱数生成器と同様のものである。
【０３１５】
次に、木構造の葉（リーフ）数Ｎ、法Ｍのサイズ｜Ｍ｜を入力として用い、図８のフローを参照して説明したアルゴリズムに従って、法：Ｍと，任意サイズの値をランダムなＺＭの要素を出力するにマッピングする関数Ｈを定め、Ｎ個の葉を持つ２分木のＲａｂｉｎ  Ｔｒｅｅを作成する。まず、ルートノードのノード対応値としての値ＮＶ１∈Ｚ＊Ｍをランダムに選択し、その後、ノード１からノード２Ｎ−１に対応するノード対応値、すなわち、２Ｎ−１個の｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、ノード２からノード２Ｎ−１に対応する２Ｎ−２個の数（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１を定める。ｓａｌｔは秘密ではないので、管理センタ（ＴＣ）がこれらの値を公開してもよい。また管理センタ（ＴＣ）は法：Ｍと、マッピング関数：Ｈを公開する。また、サイズ｜Ｍ｜の値をサイズＣのランダムな値にマッピングする関数Ｈｃを定め、公開する。
【０３１６】
管理センタ（ＴＣ）は、上述の処理において定めたノード対応値ＮＶ１を、リボークする受信機がひとつもない場合に使用する全受信機を含む第２の特別なサブセットＳＳ１，φのラベルＬＡＢＥＬ１，φの生成元データとしての中間ラベル（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｌａｂｅｌ，ＩＬ）として設定する。すなわち、
ＩＬ１，φ＝ＮＶ１
とする。
【０３１７】
さらに、第２の特別なサブセットＳＳ１，φのラベルをＬＡＢＥＬ１，φを、上記の中間ラベルＩＬ１，φに対する演算（Ｈｃ）によって算出する値とする。すなわち、
ＬＡＢＥＬ１，φ＝Ｈｃ（ＩＬ１，φ）
である。
【０３１８】
さらに、すべてのサブセットＳｉ，ｊの中で、ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊ（ただし、上述のようにｊ＝２，３，・・・，２Ｎ−１である）に対応するラベルの生成元データとしての中間ラベルＩＬｉ，ｊを下記のように定める。すなわち、前述のＲａｂｉｎ  Ｔｒｅｅ生成処理（図８参照）によってノード１から２Ｎ−１に対応する値として設定したノード対応値ＮＶ１からＮＶ２Ｎ−１の中のルートのノード対応値ＮＶ１を除くＮＶｊ（ｊ＝２，３，・・・，２Ｎ−１）をノードｊの兄弟ノードと親ノードで指定される第１の特別なサブセットＳＳＰ（ｊ），Ｓ（ｊ）に対応する中間ラベルＩＬＰ（ｊ），Ｓ（ｊ）とする。すなわち、
ＮＶｊ＝ＩＬＰ（ｊ），Ｓ（ｊ）
とする。
なお、Ｐ（ｊ）はノードｊの親ノードであり、Ｓ（ｊ）はノードｊの兄弟ノードである。
【０３１９】
また、ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）を、中間ラベルＩＬＰ（ｊ），Ｓ（ｊ）（これはノードｊ５５１のノード対応値ＮＶｊに等しい）に基づいて算出される値とする。すなわち、
ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）＝Ｈｃ（ＩＬＰ（ｊ），Ｓ（ｊ））
である。
上記式は、
ＬＡＢＥＬＰ（ｊ），Ｓ（ｊ）＝Ｈｃ（ＮＶｊ）
と等価である。
【０３２０】
上記の処理について、別の表現をすれば、Ｒａｂｉｎ  Ｔｒｅｅのノード対応値ＮＶと中間ラベルＩＬとの対応を以下のように設定する。
ＩＬ１，φ＝ＮＶ１
また、ｊ＝１，２，・・・，Ｎ−１に対して、
ＩＬｊ，２ｊ＝ＮＶ２ｊ＋１
ＩＬｊ，２ｊ＋１＝ＮＶ２ｊ
とする処理を行なうとともに、これらの特別サブセットに対応するラベルＬＡＢＥＬｉ，ｊを中間ラベルＩＬｉ，ｊから以下の式によって算出し、各特別サブセットに対応するラベルＬＡＢＥＬｉ，ｊとして設定する。
ＬＡＢＥＬｉ，ｊ＝Ｈｃ（ＩＬｉ，ｊ）
【０３２１】
ｃ．ステップ３
次に、管理センタ（ＴＣ）は、ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊを擬似乱数生成器Ｇに入力し、ノードｉを始点とした、ノードｊの子ノードのラベルＬＡＢＥＬｉ，ＬＣ（ｊ）と、ＬＡＢＥＬｉ，ＲＣ（ｊ）を求める。
【０３２２】
すなわち、ビット数ＣのＬＡＢＥＬｉ，ｊを擬似乱数生成器Ｇに入力して得られる３Ｃビットの擬似乱数の上位ＣビットであるＧＬ（ＬＡＢＥＬｉ，ｊ）を、ノードｉを始点とした、ノードｊの左の子ノードＬＣ（ｊ）に対応する（特別でない）サブセットＳｉ，ＬＣ（ｊ）のラベルＬＡＢＥＬｉ，ＬＣ（ｊ）として設定し、さらに、ビット数ＣのＬＡＢＥＬｉ，ｊを擬似乱数生成器Ｇに入力して得られる３Ｃビットの擬似乱数の下位ＣビットであるＧＲ（ＬＡＢＥＬｉ，ｊ）を、ノードｉを始点とした、ノードｊの右の子ノードＲＣ（ｊ）に対応する（特別でない）サブセットＳｉ，ＲＣ（ｊ）のラベルＬＡＢＥＬｉ，ＲＣ（ｊ）として設定する。すなわち、
ＬＡＢＥＬｉ，ＬＣ（ｊ）＝ＧＬ（ＬＡＢＥＬｉ，ｊ）
ＬＡＢＥＬｉ，ＲＣ（ｊ）＝ＧＲ（ＬＡＢＥＬｉ，ｊ）
として、各ラベルを設定する。
【０３２３】
さらにこれらの出力（ラベル）を擬似乱数生成器Ｇに繰り返し入力することで、ノードｉを始点とした、ノードｊの子孫であるすべてのノードに対応するラベルを求める。これをすべての特別なサブセットＳＳｉ，ｊのラベルに対して行い、ステップ１で定義したすべてのサブセットＳｉ，ｊのラベルを求める。
【０３２４】
ｄ．ステップ４
次に管理センタ（ＴＣ）は、受信機ｕｍに対して提供するラベル、すなわち、受信機ｕｍが保管すべきラベルを決定する。
【０３２５】
まず、オリジナルのＳＤ方式において受信機ｕｍに対して与えるラベルを仮選択ラベルとして選択する。これは、受信機ｕｍが割り当てられたリーフ（葉）からルートに至るパスｍ（ｐａｔｈ−ｍ）上の内部ノードｉを始点とし、このリーフ（葉）からｉまでのパスから直接枝分かれしたノードｊに対応するサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊと、上記の第２の特別なサブセットＳＳ'１，φに対応するラベルＬＡＢＥＬ１，φである。
【０３２６】
図３０以下を参照して受信機に提供するラベルの決定処理について説明する。例えば、図３０のノード番号１９に対応する受信機ｕ４に対する仮選択ラベルとして、
ＬＡＢＥＬ１，３、ＬＡＢＥＬ１，５、ＬＡＢＥＬ１，８、ＬＡＢＥＬ１，１８、ＬＡＢＥＬ２，５、ＬＡＢＥＬ２，８、ＬＡＢＥＬ２，１８、ＬＡＢＥＬ４，８、ＬＡＢＥＬ４，１８、ＬＡＢＥＬ９，１８、ＬＡＢＥＬ１，φの１１個のラベルが選択される。
【０３２７】
管理センタ（ＴＣ）は、これらの仮選択ラベルの中から、受信機ｕｍに提供するラベルの再選択を行なう。なお、上記の１１個の仮選択ラベル中、ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊのラベルは、ＬＡＢＥＬ１，３、ＬＡＢＥＬ２，５、ＬＡＢＥＬ４，８、ＬＡＢＥＬ９，１８の４つである。
【０３２８】
管理センタ（ＴＣ）は、これらの仮選択ラベルのうち、前述した第１および第２の特別なサブセットに対応するものを除外したラベルを受信機ｕ４に対する最終選択ラベルすなわち提供ラベルとする。
【０３２９】
さらに、管理センタ（ＴＣ）は、受信機に、その受信機が割り当てられているリーフ（葉）ｊの親ノードＰ（ｊ）を始点とし、ｊの兄弟ノードＳ（ｊ）に対応する特別なサブセットＳＳＰ（ｊ），Ｓ（ｊ）の中間ラベルＩＬＰ（ｊ），Ｓ（ｊ）（＝ノード対応値ＮＶｊ）を与える。上記の例では、管理センタ（ＴＣ）は、受信機ｕ４に、ＩＬ９，１８（＝ノード対応値ＮＶ１９）を与える。受信機は与えられたラベルと中間ラベル（＝ノード対応値ＮＶ）を安全に保管する。
【０３３０】
すなわち、まず、受信機ｕ４が持つ必要のあるラベル（ＬＡＢＥＬ）として、ＬＡＢＥＬｉ，ｊのｉ，ｊの組を以下のものとしたラベルを仮選択ラベルとする。
ｉ＝１に対してｊ＝３，５，８，１８
ｉ＝２に対してｊ＝５，８，１８
ｉ＝４に対してｊ＝８，１８
ｉ＝９に対してｊ＝１８
リボークなしの場合用のＬＡＢＥＬを１つ
【０３３１】
次に、上記の１１個の仮選択ラベルから、前述した第１および第２の特別なサブセットに対応するものを除外したラベルと、１つの中間ラベルを受信機ｕ４に対する最終選択ラベルすなわち提供ラベルとする。すなわち、ＬＡＢＥＬｉ，ｊのｉ，ｊの組を以下のものとしたラベルを提供ラベルとする。
ｉ＝１に対してｊ＝５，８，１８
ｉ＝２に対してｊ＝８，１８
ｉ＝４に対してｊ＝１８
中間ラベルＩＬ９，１８（＝ノード対応値ＮＶ１９）
以上、６つのラベルと１つの中間ラベル（＝ノード対応値ＮＶ）を提供ラベルとする。
【０３３２】
なお、上記例で示した受信機ｕ４以外の他の受信機ｕｍにおいても、与えられるラベルと中間ラベル（＝ノード対応値ＮＶ）の組み合わせは変わるものの、Ｎ＝１６の設定構成においては、各受信機ｕｍに対してそれぞれ６個のラベルと１個の中間ラベル（＝ノード対応値ＮＶ）が与えられる。
【０３３３】
なお、受信機ｕｍに対する提供ラベルとして設定される１つの中間ラベル（＝ノード対応値ＮＶ）は、階層木において、受信機ｕｍに最も近い祖先によって定義される第１の特別なサブセット、すなわち、ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊ（ただし、上述のようにｊ＝２，３，・・・，２Ｎ−１である）に対応する中間ラベルＩＬｉ，ｊ（＝ノード対応値）となる。すなわち、階層木のリーフ（葉）対応の受信機に提供する１つの中間ラベルは、前述の第１特別サブセットを構成するサブセットＳｉ，ｊ中、最下層の特別サブセットに対応する中間ラベルである。
【０３３４】
図３１に、上記のセットアップで、管理センタ（ＴＣ）が行う処理のフローを示す。まず、ステップＳ５０１において、階層木の構成を定義する。ステップＳ５０２において、設定した階層木に対応してサブセットの定義を行なう。サブセット定義は、必ずしも全てのリーフを個別にリボーク可能とする設定に限らず、配信情報に応じて、例えば特定のリーフの集合をまとめてリボーク単位としたサブセットなど、任意の設定が可能である。
【０３３５】
次に、ステップＳ５０３において、パラメータの設定、一方向性木の生成を行なう。ここでは、パラメータとして、葉（リーフ）の数＝Ｎ、パラメータである法Ｍのサイズ｜Ｍ｜を入力して、先に図８のフローを参照して説明したアルゴリズムに従って葉がＮ個である２分木のＲａｂｉｎ  Ｔｒｅｅを生成し、各ノードのノード対応値ＮＶｊを算出する。なお、ここで、各ノードｊのノード対応値ＮＶｊは、前述の式（数式１）を満足する。この過程で,法Ｍおよびマッピング関数Ｈを定める.またマッピング関数Ｈｃを定める.
【０３３６】
ステップＳ５０４において、ノード対応値ＮＶｊを中間ラベルの値として設定し、中間ラベル（ＩＬ）に基づいて、特別サブセット対応のラベルを算出する。すなわち、
ＩＬ１，φ＝ＮＶ１
また、ｙ＝１，２，・・・，Ｎ−１に対して、
ＩＬｊ，２ｊ＝ＮＶ２ｊ＋１
ＩＬｊ，２ｊ＋１＝ＮＶ２ｊ
とする。
【０３３７】
なお、ここで求める中間ラベルは、
（ａ）リボークする受信機がひとつもない場合に使用する全受信機を含む第２の特別なサブセットＳＳ１，φと、
（ｂ）ノードｉとノードｊが親子関係になっている第１の特別なサブセットＳＳｉ，ｊ（ただし、上述のようにｊ＝２，３，・・・，２Ｎ−１である）と、
に対応する中間ラベルである。
さらに、これらの中間ラベルに基づいて、特別サブセット対応のラベルを算出する。特別サブセット対応のラベルは、中間ラベルに基づいて算出される。すなわち、これらの特別サブセットに対応するラベルＬＡＢＥＬｉ，ｊを中間ラベルＩＬｉ，ｊから以下の式によって算出し、各特別サブセットに対応するラベルＬＡＢＥＬｉ，ｊとして設定する。
ＬＡＢＥＬｉ，ｊ＝Ｈｃ（ＩＬｉ，ｊ）
【０３３８】
次にステップＳ５０５において、特別サブセット対応のラベルに基づいて特別サブセット非対応のラベルを算出する。例えば、第１の特別なサブセットＳＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊを擬似乱数生成器Ｇに入力し、ノードｉを始点とした、ノードｊの子ノードのラベルＬＡＢＥＬｉ，ＬＣ（ｊ）と、ＬＡＢＥＬｉ，ＲＣ（ｊ）を求め、これらの処理を繰り返し実行して、設定したサブセット対応のラベルを全て算出する。
【０３３９】
次に、ステップＳ５０６においてパラメータを公開する。公開対象のパラメータは、例えば、法Ｍである。さらに、ステップＳ５０７において擬似乱数生成器関数Ｇと、任意サイズの値をランダムなＺＭの要素にマッピングする関数Ｈと、サイズ｜Ｍ｜の値をサイズＣのランダムな値にマッピングする関数Ｈｃを公開する。
【０３４０】
ステップＳ５０８において、階層木のリーフに対応して設定される各受信機へ提供するラベルおよび中間ラベルを選択する。この処理は、前述したように仮選択ラベルの選択と提供ラベルの選択の２段階処理として実行される。
【０３４１】
すなわち、まず、受信機ｕｍが持つ必要のあるラベル（ＬＡＢＥＬ）として，オリジナルのＳＤ方式において与えるラベル、すなわち受信機ｕｍが割り当てられたリーフ（葉）からルートに至るパスｍ（ｐａｔｈ−ｍ）上の内部ノードｉを始点とし、このリーフ（葉）からｉまでのパスから直接枝分かれしたノードｊに対応するサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊと、上記の第２の特別なサブセットＳＳ'１，φに対応するラベルＬＡＢＥＬ１，φを仮選択ラベルとして選択する。その後、仮選択ラベルから、前述した第１および第２の特別なサブセットに対応するものを除外したラベルＬＡＢＥＬｉ，ｊと、１つの中間ラベル（＝ノード対応値ＮＶ）が提供ラベルとして設定される。
【０３４２】
なお、提供ラベルとして設定される１つの中間ラベルは、階層木において、受信機ｕｍが割り当てられた葉ｎの親ノードと兄弟ノードによって定義される第１の特別なサブセット、すなわち、ノードｉが葉ｎの親ノードであり，ノードｊが葉ｎの兄弟ノードであるような第１の特別なサブセットＳＳｉ，ｊ（ただし、ｊは葉であるためｊ＝Ｎ，Ｎ＋１，・・・，２Ｎ−１である）に対応する中間ラベルＩＬｉ，ｊ（＝ノード対応値ＮＶ）となる。例えば、図３０に示すノード番号１９の設定された受信機ｕ４に対して提供する中間ラベルは、中間ラベルＩＬ９，１８（＝ノード対応値ＮＶ１９）となる。
【０３４３】
ステップＳ５０９において、ステップＳ５０８で決定した受信機に対する提供ラベルを受信機に提供し、処理を終了する。なお、ラベルの提供は、予め受信機の製造時に耐タンパ型のメモリに格納するか、あるいは、情報漏れの発生しないセキュアな通信路、あるいは媒体などの手段を適用して行なう。なお、図３１に示す処理フローの各ステップは、必ずしもこの順番である必要はない。
【０３４４】
（１１−２）情報配信処理
次に、上述のセットアップ処理後に実行する秘密情報の送信処理の詳細について説明する。情報配信、すなわち秘密情報の送信は、管理センタ（ＴＣ）が１つ以上の暗号文を同報送信することによってなされる。それぞれの暗号文は、秘密情報をサブセットキーの１つを用いて暗号化したものである。例えば、管理センタが送信する秘密情報は、同じ送信秘密情報を異なるサブセットキーを用いて暗号化した複数の暗号文のセットとして構成される。
【０３４５】
例えば秘密情報を暗号化コンテンツの復号に適用する鍵：コンテンツキーＫｃとした場合、コンテンツキーＫｃを複数のサブセットキーで暗号化した暗号文のセットを生成して提供する。例えば、
Ｅ（ＳＫａ，ｂ，Ｋｃ），Ｅ（ＳＫｃ，ｄ，Ｋｃ），Ｅ（ＳＫｅ，ｆ，Ｋｃ）
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。上記例は３つの異なるサブセットキーを適用して暗号化した３つの暗号文からなる暗号文セットである。
【０３４６】
サブセットキーＳＫａ，ｂ、サブセットキーＳＫｃ，ｄ、サブセットキーＳＫｅ，ｆのそれぞれは、特定の機器をリボーク機器として設定するために管理センタ（ＴＣ）において選択されたサブセットに対応するサブセットキーである。
【０３４７】
リボーク対象以外の受信機が、暗号文の暗号化に適用されたサブセットキーのいずれかを、受信機の保有するラベル（ラベルおよび中間ラベル）に基づいて生成可能であり、リボーク機器以外の正当な選択された受信機のみが、
Ｅ（ＳＫａ，ｂ，Ｋｃ），Ｅ（ＳＫｃ，ｄ，Ｋｃ），Ｅ（ＳＫｅ，ｆ，Ｋｃ）
に含まれるいずれかの暗号文の復号によってコンテンツキーＫｃを取得することができる。
【０３４８】
図３２に総受信機数Ｎ＝１６に設定した階層木構成において、受信機ｕ５，ｕ１１，ｕ１２をリボークする際に用いるサブセットを示す。受信機ｕ５，ｕ１１，ｕ１２をリボークする際に用いるサブセットは、図３２に示す２つのサブセットＳ２，２０とＳ３，１３である。
【０３４９】
リボークされない受信機は２つのサブセットＳ２，２０とＳ３，１３のいずれかに含まれ、リボークされる受信機ｕ５，ｕ１１，ｕ１２はそのいずれにも含まれないので、これらのサブセットに対応するサブセットキーＳＫ２，２０とＳＫ３，１３を用いて秘密情報を暗号化して送信すれば、リボークされない受信機のみが暗号文を復号して秘密情報を得ることができる。
【０３５０】
情報配信処理の処理手順について、図３３に示すフローを参照して説明する。図３３に示すフロー中の各ステップについて説明する。
【０３５１】
まず管理センタ（ＴＣ）は、ステップＳ６０１において、リボーク受信機、すなわち送信秘密情報の提供対象外とする排除機器を選択する。なお、すべての受信機は、階層木構成のリーフに対応して設定されている。
【０３５２】
次にステップＳ６０２において、決定したリボーク受信機に対応する階層木のリーフ位置に基づいて、秘密情報の配信名の際に適用するサブセットを決定する。例えば図３２の例では、リボーク受信機として受信機ｕ５，ｕ１１，ｕ１２を選択しており、適用するサブセットは２つのサブセットＳ２，２０とＳ３,１３となる。
【０３５３】
ステップＳ６０３において、決定したサブセットに対応するサブセットキーを選択する。管理センタ（ＴＣ）は、予めサブセットに対応するサブセットキーを保持している。例えば図３２の例では、２つのサブセットＳ２，２０とＳ３,１３とに対応する２つのサブセットキーＳＫ２，２０とＳＫ３,１３とが選択される。
【０３５４】
次に、ステップＳ６０４において、ステップＳ６０３で選択したサブセットキーを用いて秘密情報を暗号化して暗号文セットを生成する。例えば図３２の例では、２つのサブセットキーＳＫ２，２０とＳＫ３,１３を用いて秘密情報を暗号化して暗号文セットを生成する。例えば図３２の例では、２つのサブセットキーＳＫ２，２０とＳＫ３,１３とを用いて秘密情報（例えばコンテンツキーＫｃ）を暗号化して、以下の暗号文セット、
Ｅ（ＳＫ２，２０，Ｋｃ），Ｅ（ＳＫ３，１３，Ｋｃ）
を生成する。
【０３５５】
ステップＳ６０５では、ステップＳ６０４において生成した暗号文セットを受信機に向けて送信（同報送信）する。送信される暗号文セットは、リボーク機器以外の受信機においてのみ復号可能な暗号文のみから構成され、リボーク機器においては復号できず、安全な情報配信が可能となる。
【０３５６】
なお、暗号文セットの送信に際しては、暗号文に含まれる各サブセット対応の暗号文の配列情報としてのサブセット指定情報を併せて送信してもよい。受信機は、この指定情報に基づいて、自装置で生成可能なサブセットキーを適用した暗号文を容易に抽出可能となる。この具体的な方式としては、例えば、特開２００１−３５２３２２号公報に示されている鍵指定コードを利用する構成が適用可能である。
【０３５７】
なお、暗号化に利用するサブセットキーは、管理センタ（ＴＣ）がセットアップフェイズにおいて作成して保管しておいたものを使用するようにしてもよいし、セットアップフェイズにおいて作成して保管しておいた各サブセットごとのラベルから擬似乱数生成器Ｇを用いて導出してもよい。
【０３５８】
なお、リボークする受信機がない場合には、前述の第２の特別なサブセットＳＳ１，φのサブセットキーＳＫ１，φ＝ＧＭ（ＬＡＢＥＬ１，Φ）＝ＧＭ（Ｈｃ（ＩＬ１，Φ））用いて秘密情報の暗号化に用いる。
【０３５９】
（１１−３）受信および復号処理
リボークされない受信機は、上記のサブセットのいずれかただ１つに属しているので、そのサブセットに対応するサブセットキーを用いて作られた暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のサブセット指定情報を用いればよい。暗号文を特定した後、受信機は所有するラベルまたは中間ラベルからサブセットキーを導出し、これを用いて暗号文を復号する。サブセットキーを導出する方法を以下に述べる。
【０３６０】
受信機ｕｍはまず、暗号文の復号処理に適用する求めるべきサブセットキーＳＫｉ，ｊに対応するサブセットＳｉ，ｊのノードｊが、下記（Ａ），（Ｂ）のいずれであるかを判定する。
（Ａ）受信機が直接ラベルＬＡＢＥＬｉ，ｋを持つノードｋの子孫である（ただしｊ＝ｋの場合を含む）か、
（Ｂ）ノードｉの子ノードのうち、受信機が割り当てられたリーフ（葉）ｎからルートへのパス上にないほうのノード（つまり、パス上にあるノードｉの子ノードの兄弟であるノード）ｋと一致するかその子孫であるか、（すなわち、ノードｊが、ＳＤ方式において受信機ｕｍにラベルが与えられたサブセットのうち、第１の特別なサブセットＳＳｉ，ｋを構成するノードｋの子孫であるか）を判断する。
【０３６１】
なお、リボークする受信機がなく、第２の特別なサブセットＳＳ１，φのサブセットキーＳＫ１，φが秘密情報の暗号化に用いられている場合には（Ｂ）であるとみなす。
【０３６２】
（Ｂ）の場合には、下記のように、受信機に与えられている中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）から特別なサブセットＳＳｉ，ｋの中間ラベルを導出する。
【０３６３】
まず、ｉ＝Ｐ（ｎ），ｊ＝ｋ＝Ｓ（ｎ）である場合には、受信機はすでにこの中間ラベル（＝ノード対応値ＮＶ）を持っているので特に何もする必要はない。そうでない場合は、受信機は中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）に対し公開されている関数Ｆ、すなわち前述の（数式１）によって、上位のサブセットに対応する中間ラベル（＝ノード対応値ＮＶ）を順次計算していく。受信機が持つ中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）に対し、受信機が割り当てられたリーフ（葉）ｎの親ノードＰ（ｎ）のさらに親ノードＰ（Ｐ（ｎ））を始点とし、ノードＰ（ｎ）の兄弟ノードＳ（Ｐ（ｎ））に対応する特別なサブセットＳＳＰ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ））の中間ラベルＩＬＰ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ））は、前述の数式１のノード対応値ＮＶを中間ラベルに置き換えた下式、すなわち、
【数６５】
2006115464.tif 000049
・・・（数式５）
によって求められる。
【０３６４】
これは、上述した先に説明したＲａｂｉｎ  Ｔｒｅｅのノード対応値の関係式（数式１）に基づくものである。
【０３６５】
さらに、上位ノードのノード対応値ＮＶ（中間ラベル）は、下位ノードのノード対応値ＮＶ（中間ラベル）に基づいて算出される。例えば、図３０に示す受信機ｕ４における上位ノード（ノード番号＝１，２，４，９）のノード対応値ＮＶ（中間ラベル）の算出は、以下の処理手順で実行されることになる。
【０３６６】
（ａ１）ＮＶ９（＝中間ラベルＩＬ４，８）＝（（ＮＶ１９）２ ＋ Ｈ（１９||ｓａｌｔ１９））ｍｏｄＭ
（ａ２）ＮＶ４（＝中間ラベルＩＬ２，５）＝（（ＮＶ９）２ ＋ Ｈ（９||ｓａｌｔ９））ｍｏｄＭ
（ａ３）ＮＶ２（＝中間ラベルＩＬ１，３）＝（（ＮＶ４）２ ＋ Ｈ（４||ｓａｌｔ４））ｍｏｄＭ
（ａ４）ＮＶ１（＝中間ラベルＩＬ１，Φ）＝（（ＮＶ２）２ ＋ Ｈ（２||ｓａｌｔ２））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出し、さらに、各ノードのノード対応値（中間ラベル）からラベル（ＬＡＢＥＬ）が以下の式によって算出できる。
（ｂ１）ＬＡＢＥＬ９，１８＝Ｈｃ（ＩＬ９，１８）
（ｂ２）ＬＡＢＥＬ４，８＝Ｈｃ（ＩＬ４，８）
（ｂ３）ＬＡＢＥＬ２，５＝Ｈｃ（ＩＬ２，５）
（ｂ４）ＬＡＢＥＬ１，３＝Ｈｃ（ＩＬ１，３）
（ｂ５）ＬＡＢＥＬ１，Φ＝Ｈｃ（ＩＬ１，Φ）
【０３６７】
このように、あるノードｙとその親ノードＰ（ｙがあるとき、ノードＰ（ｙ）の親ノードＰ（Ｐ（ｙ））を始点とし、ノードＰ（ｙ）の兄弟ノードＳ（Ｐ（ｙ））に対応する特別なサブセットＳＳＰ（Ｐ（ｙ）），Ｓ（Ｐ（ｙ））の中間ラベルＩＬＰ（Ｐ（ｙ）），Ｓ（Ｐ（ｙ））は、下式、
【数６６】
2006115464.tif 000050
によって求められる。
なおここで、ノードｙは受信機が割り当てられたリーフ（葉）からルートへのパス上に存在するノードである。
【０３６８】
また、中間ラベルＩＬ１，２、または、中間ラベルＩＬ１，３に対して、下式、
ＩＬ１，φ＝（（ＩＬ１，２）２＋Ｈ（３||ｓａｌｔ３））ｍｏｄＭ
ＩＬ１，φ＝（（ＩＬ１，３）２＋Ｈ（２||ｓａｌｔ２））ｍｏｄＭ
によって、第２の特別なサブセットＳＳ１，φに対応する中間ラベルＩＬ１，φ＝Ｋを求めることができる。
【０３６９】
受信機によって実行する具体的な中間ラベル取得処理について、図３２を参照して説明する。リーフ（葉）１９に割り当てられた受信機ｕ４は中間ラベルＩＬ９，１８を保持している。公開パラメータとして法Ｍ、公開指数ｅとノード番号を用いた演算により、ノード９の親ノード４と兄弟ノード８で決定されるサブセットＳ４，８の中間ラベルＩＬ４，８を、
ＩＬ４，８＝（（ＩＬ９，１８）２ ＋ （１９||ｓａｌｔ１９））ｍｏｄＭ
として求めることができる。
【０３７０】
同様に、ノード４の親ノード２と兄弟ノード５で決定されるサブセットＳ２，５の中間ラベルＩＬ２，５を、
ＩＬ２，５＝（（ＩＬ４，８）２ ＋ （９||ｓａｌｔ９））ｍｏｄＭ
として求めることができる。
【０３７１】
この処理を繰り返していくことにより、受信機ｕ４は、上位の中間ラベルＩＬ１，３、およびＩＬ１，φを求めることができる。
【０３７２】
上記のようにして、サブセットＳｉ，ｋに対応する中間ラベルＩＬｉ，ｋを導出したら、受信機はラベルＬＡＢＥＬｉ，ｋを、
ＬＡＢＥＬｉ，ｋ＝Ｈｃ（ＩＬｉ，ｋ）として求める。
【０３７３】
それから、先に図２２を用いて説明したように、擬似乱数生成器Ｇを用いて必要なサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊを求め、さらにそのサブセットのサブセットキーＳＫｉ，ｊを
ＳＫｉ，ｊ＝ＧＭ（ＬＡＢＥＬｉ，ｊ）
により求め、このサブセットキーＳＫｉ，ｊを用いて暗号文を復号する。
【０３７４】
具体的なサブセットキーの導出処理例について、図３４を参照して説明する。図３４に示すように、受信機ｕ２，ｕ１１，ｕ１２がリボークされ、サブセットＳ２，１７およびサブセットＳ３，１３に対応するサブセットキーで暗号化された暗号文が同報配信されたとする。
【０３７５】
受信機ｕ４は、ＬＡＢＥＬ１，５，ＬＡＢＥＬ１，８，ＬＡＢＥＬ１，１８，ＬＡＢＥＬ２，８，ＬＡＢＥＬ２，１８，ＬＡＢＥＬ４，１８，の６個のラベルと、ＩＬ１，φ，ＩＬ１，３，ＩＬ２，５，ＩＬ４，８を導出できる中間ラベルＩＬ９，１８（ノード対応値ＮＶ１９）を保持している。受信機ｕ４は上記の（Ａ）である。すなわち、受信機ｕ４はサブセットＳ２，１７に対し、ノード１７の先祖であるノード８を用いたラベルＬＡＢＥＬ２，８を直接保持しているため、これに擬似乱数生成器Ｇを必要な回数だけ適用することでサブセットキーＳＫ２，１７を得ることができる。
【０３７６】
また、同じセッティングで、受信機ｕ５は、ＬＡＢＥＬ１，４，ＬＡＢＥＬ１，１１，ＬＡＢＥＬ１，２１，ＬＡＢＥＬ２，１１，ＬＡＢＥＬ２，２１，ＬＡＢＥＬ５，２１の６個のラベルと、ＩＬ１，φ，ＩＬ１，３，ＩＬ２，４，ＩＬ５，１１を導出できる中間ラベルＩＬ１０，２１（ノード対応値ＮＶ２０）を保持している。受信機ｕ５は上記の（Ｂ）である。すなわち、受信機ｕ５はサブセットＳ２，１７に対し、ノード１７の先祖であるノードｋを用いたラベルＬＡＢＥＬ２，ｋを直接保持していない。このため、保持している中間ラベルＩＬ１０，２１（ノード対応値ＮＶ２０）から、ノード１７の先祖であるノード４に対応した中間ラベルＩＬ２，４（ノード対応値ＮＶ５）を先に述べた手法でまず導出し、その後にラベルＬＡＢＥＬ２，４を求め、これに擬似乱数生成器Ｇを必要な回数だけ適用することでサブセットキーＳＫ２，１７を得ることができる。
【０３７７】
もし、リボークすべき受信機が１台もなく、サブセットとして第２の特別なサブセットＳＳ'１，φが使用されていた場合、受信機ｕｍは、上記の処理により中間ラベルＩＬ１，φ（ノード対応値ＮＶ１）を求め、これを用いてラベルＬＡＢＥＬ１，φを、
ラベルＬＡＢＥＬ１，φ＝Ｈｃ（ＩＬ１，φ）として計算し、
それを擬似乱数生成器Ｇに入力して出力の中央部分のＣビットを求める、すなわち、
ＳＫ１，φ＝ＧＭ（ＬＡＢＥＬ１，φ）
によりサブセットＳ１，φに対応するサブセットキーＳＫ１，φを求め、これを暗号文の復号に用いる。
【０３７８】
受信機によって実行する暗号文受領からサブセットキーの取得、復号処理の手順を図３５のフローチャートを参照して説明する。
【０３７９】
受信機は、ステップＳ７０１において暗号文を受信すると、ステップＳ７０２において、受信機は、複数の暗号文からなる暗号文セットの中で自身が復号するものを決定する。これは、自身が生成可能なサブセットキーによって暗号化された暗号文を抽出する処理である。ここで、受信機が復号すべき暗号を決定できないということは、その受信機がリボークされていることを意味している。この暗号文選択処理は、例えば暗号文とともに送付されるサブセット指定情報に基づいて実行される。
【０３８０】
暗号文を決定したら、ステップＳ７０３において、受信機は、その暗号文の暗号化に用いられたサブセットキーを上記の手法で導出する。
【０３８１】
サブセットキーの導出処理の詳細手順について、図３６を参照して説明する。ステップＳ８０１において、受信機はまず、暗号文の復号処理に適用する求めるべきサブセットキーＳＫｉ，ｊに対応するサブセットＳｉ，ｊのノードｊが、
（Ａ）受信機が直接ラベルＬＡＢＥＬｉ，ｋを持つノードｋの子孫である（ただしｊ＝ｋの場合を含む）か、
（Ｂ）ノードｉの子ノードのうち、受信機が割り当てられたリーフ（葉）ｎからルートへのパス上にないほうのノード（つまり、パス上にあるノードｉの子ノードの兄弟であるノード）ｋと一致するかその子孫であるか（すなわち、ノードｊが、ＳＤ方式において受信機ｕｍにラベルが与えられたサブセットのうち、第１の特別なサブセットＳＳｉ，ｋを構成するノードｋの子孫であるか）
を判断する。なお、リボークする受信機がなく、第２の特別なサブセットＳＳ'１，φのサブセットキーＳＫ１，φが秘密情報の暗号化に用いられている場合には、（Ｂ）であるとみなす。
【０３８２】
（Ａ）の場合には、ステップＳ８０３に進み、受信機が持つラベルに基づいて擬似乱数生成器Ｇを必要な回数適用して必要なサブセットキーを求める。
（Ｂ）の場合には、ステップＳ８０４に進み、受信機に与えられている中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）（＝ノード対応値ＮＶｎ）に基づいて、前述した式（数式１（＝数式５））を適用して必要な特別サブセット対応の中間ラベルを算出する。さらに、ステップＳ８０５において、算出した中間ラベルにもとつく関数Ｈｃを適用した計算によって、そのサブセットに対応するラベルＬＡＢＥＬを算出し、ステップＳ８０６において算出ラベルＬＡＢＥＬに基づいて擬似乱数生成器Ｇを適用して必要なサブセットキーを求める。
【０３８３】
図３５のフローに戻る。上記処理によってサブセットキーを導出した受信機は、ステップＳ７０４において、ステップＳ７０２で暗号文セットから選択した暗号文を、ステップＳ７０３で導出したサブセットキーを適用して復号し、送信された秘密情報を得る。秘密情報はたとえばテレビ放送システムの暗号化コンテンツを復号するためのコンテンツキーであり、この場合には受信機は暗号化コンテンツを受信し、コンテンツキーを用いて復号して出力する。
【０３８４】
次に、図３７、図３８を参照してラベルの設定処理、暗号文の生成処理を実行する情報処理装置、および暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
【０３８５】
まず、図３７を参照してラベルの設定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する。情報処理装置７１０は、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段７１１、中間ラベルおよびラベル生成手段７１２、提供ラベル決定手段７１３、暗号文生成手段７１４、暗号文提供手段７１５を有する。
【０３８６】
情報処理装置７１０は、階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段７１１は、階層木を構成する各ノードに対応するノード対応値ＮＶを、少なくとも１つの下位ノードのノード対応値ＮＶと、ノード付加変数ｓａｌｔを適用して算出可能（数式１参照）とした一方向木としてのＲａｂｉｎ  Ｔｒｅｅを生成する。
【０３８７】
中間ラベルおよびラベル生成手段７１２は、階層木を適用したＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、特別サブセットに対応するラベルの値を、中間ラベルに基づくマッピング関数Ｈｃによる算出値として設定する。
【０３８８】
中間ラベルおよびラベル生成手段７１２において選択する特別サブセットは、
階層木において、ノードｉを頂点とする部分木からノードｉより下層のノードｊを頂点とする部分木を除く集合として定義されたサブセットＳｉ，ｊ中、ノードｉおよびノードｊが階層木において直結された親子関係にある第１特別サブセットと、
階層木のすべてのリーフを含むルートを頂点とする全体木の集合として定義されたサブセットＳ１，φである第２特別サブセットと、
の少なくともいずれかである。
【０３８９】
中間ラベルおよびラベル生成手段７１２は、ＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するラベル（ＬＡＢＥＬ）中、特別サブセットに対応するラベルに対応する中間ラベルをＲａｂｉｎ  Ｔｒｅｅのノード対応値ＮＶとして生成する。
【０３９０】
具体的には、一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段７１１は、先に図８のフローを参照して説明したアルゴリズムに従ってノード対応値を設定したＲａｂｉｎ  Ｔｒｅｅを生成し、各ノード対応値を算出する。中間ラベルおよびラベル生成手段７１２は、このノード対応値を特別サブセット対応の中間ラベルとする。すなわち、上述の第１特別サブセットＳＳｉ，と、第２特別サブセットＳＳ１，φのラベルを算出可能な中間ラベルの値としてノード対応値を適用する。
【０３９１】
さらに、中間ラベルに基づくマッピング関数Ｈｃにより特別サブセットのラベルを算出し、その後、これらの特別サブセット対応のラベルに対して擬似乱数生成器Ｇを適用した演算により、順次各サブセット対応のラベルを算出する。これらの処理は、先に、図２２を参照して説明した処理である。
【０３９２】
提供ラベル決定手段７１３は、階層木の末端ノード対応の受信機に対する提供ラベルを決定する処理を実行する。提供ラベル決定手段７１３は、特別サブセットに対応しない特別サブセット非対応ラベルと、特別サブセットに対応するラベルを算出可能な中間ラベル（＝ノード対応値）とを受信機に対する提供ラベルとして決定する。
【０３９３】
提供ラベル決定手段７１３の具体的処理は以下の通りである。まず、受信機ｕｍが割り当てられたリーフ（葉）からルートに至るパスｍ（ｐａｔｈ−ｍ）上の内部ノードｉを始点とし、このリーフ（葉）からｉまでのパスから直接枝分かれしたノードｊに対応するサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊと、リボーク受信機がない場合に使用する全受信機を含む全体木に対応するサブセットＳＳ１，φに対応するラベルＬＡＢＥＬ１，φとを仮選択ラベルとし、この仮選択ラベルから特別サブセットに対応しない特別サブセット非対応ラベルを提供ラベルとし、さらに、特別サブセットに対応するラベルを算出可能な中間ラベル（＝ノード対応値）を選択して、これらを受信機ｕｍに対する最終提供ラベルとして決定する。
【０３９４】
暗号文生成手段７１４は、中間ラベルおよびラベル生成手段７１２の生成したラベルから導出可能なサブセットキーを選択的に適用して暗号化処理を実行して暗号文を生成する。暗号文提供手段７１５は、このようにして生成された暗号文をネットワークまたは媒体に格納して提供する。
【０３９５】
次に、図３８を参照して暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
【０３９６】
暗号文の復号処理を実行する受信機としての情報処理装置７２０は、暗号文選択手段７２１、ラベル算出手段７２２、サブセットキー生成手段７２３、復号手段７２４、ラベルメモリ７２５を有する。
【０３９７】
暗号文の復号処理を実行する受信機としての情報処理装置７２０は、階層木構成に基づくブロードキャストエンクリプション方式であるＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に基づいて設定するサブセット各々に対応するサブセットキーによって暗号化された暗号文の復号処理を実行する情報処理装置７２０であり、暗号文選択手段７２１は、処理対象の暗号文から、自己のラベルメモリ７２５に保持するラベル、または自己の保持する中間ラベルから算出可能なラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーを適用して生成した暗号文を選択する。
【０３９８】
ラベル算出手段７２２は、暗号文の適用サブセットキーが、保持ラベルに基づく擬似乱数生成処理によって導出可能なサブセットキーでない場合に、受信機に与えられている中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）（＝ノード対応値ＮＶｎ）に基づく演算処理を実行して、必要な特別サブセット対応の中間ラベルを算出する。
【０３９９】
具体的には、受信機に与えられ、メモリ７２５に格納されている中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）（＝ノード対応値ＮＶｎ）に基づいて、前述した式（数式５）を適用して必要な特別サブセット対応の中間ラベル（＝ノード対応値ＮＶ）を算出する。さらに、算出した中間ラベルに対してマッピング関数Ｈｃを適用した計算によって、そのサブセットに対応するラベルＬＡＢＥＬを算出する。
【０４００】
サブセットキー生成手段７２３は、メモリ７２５に格納されているラベル、あるいは、ラベル算出手段７２２において中間ラベルから算出されたラベルＬＡＢＥＬに基づいて擬似乱数生成器Ｇを適用して必要なサブセットキーを求める。
【０４０１】
復号手段７２４は、サブセットキー生成手段７２３において算出したサブセットキーに基づいて、暗号文の復号処理を実行する。
【０４０２】
図３９に、暗号文生成処理を実行する情報処理装置、および暗号文復号処理を実行する受信機としての情報処理装置８００のハードウェア構成例を示す。図中で点線で囲われたブロックは必ずしも備わっているわけではない。たとえばメディアインタフェース８０７は、受信機８００が光ディスクプレーヤ等である場合に装備する。入出力インタフェース８０３は、受信機８００が他の機器と情報のやりとりをしたり、アンテナからの信号を受信したりする場合に装備される。重要なのは、セキュア記憶部８０４であり、セットアップフェイズにおいて、管理センタ（ＴＣ）から与えられたデータ、例えばノードキー、またはノード対応値、またはラベルが安全に保管される。
【０４０３】
情報処理装置８００は、図３９に示すように、コントローラ８０１、演算ユニット８０２、入出力インタフェース８０３、セキュア記憶部８０４、メイン記憶部８０５、ディスプレイ装置８０６、メディアインタフェース８０７を備える。
【０４０４】
コントローラ８０１は、例えばコンピュータ・プログラムに従ったデータ処理を実行する制御部としての機能を有するＣＰＵによって構成される。演算ユニット８０２は、例えば暗号鍵の生成、乱数生成、及び暗号処理のための専用の演算部および暗号処理部として機能する。ラベルおよび中間ラベルの算出処理、ラベルに基づくサブセットキー算出処理を実行する。さらに、情報処理装置８００が受信機としての情報処理装置である場合、サブセットキーに基づく暗号文の復号処理を実行する。
【０４０５】
入出力インタフェース８０３は、キーボード、マウス等の入力手段からのデータ入力や、外部出力装置に対するデータ出力、ネットワークを介したデータ送受信処理に対応するインタフェースである。
【０４０６】
情報処理装置８００が暗号文生成処理を実行する情報処理装置である場合、セキュア記憶部８０４は、ＣＳ方式では、例えばセットアップフェイズにおいて生成するノードキー、各種ＩＤなど、安全にまたは秘密に保持すべきデータを保存する。ＳＤ方式では、サブセットから選択された特別サブセット対応のラベル（ＬＡＢＥＬ）を生成可能な中間ラベルと、特別サブセット非対応のラベル（ＬＡＢＥＬ）とを格納される。
【０４０７】
なお、情報処理装置５００が受信機としての情報処理装置である場合、ＣＳ方式では、セキュア記憶部５０４に格納されるノードキーは、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノードのノードキー中、一方向性関数Ｆに基づいて、保持するノードキーから算出できないノードキーのみとなる。またＳＤ方式では、管理センタ（ＴＣ）から与えられたノード対応値（中間ラベル）、ラベル、各種ＩＤなど、安全にまたは秘密に保持すべきデータが保存される。中間ラベルについては、サブセットから選択された特別サブセット対応のラベル（ＬＡＢＥＬ）を生成可能な中間ラベルと、特別サブセット非対応のラベル（ＬＡＢＥＬ）とが格納される。
【０４０８】
情報処理装置８００が受信機としての情報処理装置であり、ＳＤ方式の対応を行なう構成である場合、セキュア記憶部８０４に格納される中間ラベルに基づいて生成されるラベルは、特別サブセット対応のラベル（ＬＡＢＥＬ）であり、具体的には、
（ａ）階層木において、ノードｉを頂点とする部分木からノードｉより下層のノードｊを頂点とする部分木を除く集合として定義されたサブセットＳｉ，ｊ中、ノードｉおよびノードｊが階層木において直結された親子関係にある第１特別サブセット、
（ｂ）階層木のすべてのリーフを含むルートを頂点とする全体木の集合として定義されたサブセットＳ１，φである第２特別サブセット、
上記（ａ），（ｂ）の特別サブセット対応のラベルである。
【０４０９】
メイン記憶部８０５は、例えばコントローラ８０１において実行するデータ処理プログラム、その他、一時記憶処理パラメータ、プログラム実行のためのワーク領域等に使用されるメモリ領域である。セキュア記憶部８０４及びメイン記憶部８０５は、例えばＲＡＭ、ＲＯＭ等によって構成されるメモリである。ディスプレイ装置８０６は復号コンテンツの出力等に利用される。メディアインタフェース８０７は、ＣＤ、ＤＶＤ、ＭＤ等のメディアに対する読出／書込機能を提供する。
【０４１０】
［１２．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を用いたＳＤ方式に従った暗号文配信、復号処理］
次に、ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例２を適用した暗号文配信、復号処理例について説明する。ここで適用するＲａｂｉｎ  Ｔｒｅｅは、前述のＲａｂｉｎ  Ｔｒｅｅ構成例２、すなわち、［５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成］に記述したＲａｂｉｎ  Ｔｒｅｅの構成例２であり、図１７のフローを参照して説明したアルゴリズムに従って生成されるＲａｂｉｎ  Ｔｒｅｅである。ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例２を適用した暗号文配信、復号処理の処理フェーズとしては、
（１２−１）セットアップ処理
（１２−２）情報配信処理
（１２−３）受信および復号処理
の各処理があるが、（１２−１）セットアップ処理、（１２−２）情報配信処理については、先に項目［１１．ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］において説明したセットアップおよび情報配信とほぼ同様の処理であるので、簡略化して説明する。
【０４１１】
（１２−１）セットアップ処理
セットアップ処理は、上述の［５．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式の構成］において説明したＲａｂｉｎ  Ｔｒｅｅ構成を設定する処理以外は、基本的に、前述の［１１．ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］の項目（１１−１）セットアップ処理において説明したと同様の処理である。このセットアップは、システムの立ち上げ時に１度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したＤＶＤなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。
【０４１２】
Ｒａｂｉｎ  Ｔｒｅｅ構成例２は、先に、図１７を参照して説明した処理シーケンスに従って設定される。この結果として、図９に示す一方向木としてのＲａｂｉｎ  Ｔｒｅｅが設定される。各ノードには、｜Ｍ｜ビットの数（ノード対応値）：ＮＶ１，ＮＶ２，・・・，ＮＶ２Ｎ−１と、（ノード付加変数）：ｓａｌｔ２，ｓａｌｔ３，・・・，ｓａｌｔ２Ｎ−１が対応付けられる。あるノードの値ＮＶｌおよびｓａｌｔｌからその親ノードのノード対応値を求めることは容易だが、その逆は困難なものとなる。
【０４１３】
セットアップ処理において、管理センタ（ＴＣ）が行う処理のフローは、先に説明した図３１と同様の処理となる。ただし、ステップＳ５０１において設定する階層木が、先に、図１７を参照して説明した処理シーケンスに従って設定されるＲａｂｉｎ  Ｔｒｅｅ構成例２となる点が異なる。
【０４１４】
（１２−２）情報配信処理
情報配信、すなわち秘密情報の送信は、管理センタ（ＴＣ）が１つ以上の暗号文を同報送信することによってなされる。この処理は、［１１．ＳＤ方式にＲａｂｉｎ  Ｔｒｅｅ構成例１を適用した暗号文配信、復号処理］の項目（１１−２）情報配信処理において説明したと同様の処理である。
【０４１５】
暗号文は、秘密情報をサブセットキーの１つを用いて暗号化したものである。例えば、管理センタが送信する秘密情報は、同じ送信秘密情報を異なるサブセットキーを用いて暗号化した複数の暗号文のセットとして構成される。
【０４１６】
例えば秘密情報を暗号化コンテンツの復号に適用する鍵：コンテンツキーＫｃとした場合、コンテンツキーＫｃを複数のサブセットキーで暗号化した暗号文のセットを生成して提供する。例えば、
Ｅ（ＳＫａ，ｂ，Ｋｃ），Ｅ（ＳＫｃ，ｄ，Ｋｃ），Ｅ（ＳＫｅ，ｆ，Ｋｃ）
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。上記例は３つの異なるサブセットキーを適用して暗号化した３つの暗号文からなる暗号文セットである。
【０４１７】
サブセットキーＳＫａ，ｂ、サブセットキーＳＫｃ，ｄ、サブセットキーＳＫｅ，ｆのそれぞれは、特定の機器をリボーク機器として設定するために管理センタ（ＴＣ）において選択されたサブセットに対応するサブセットキーである。
【０４１８】
リボーク対象以外の受信機が、暗号文の暗号化に適用されたサブセットキーのいずれかを、受信機の保有するラベル（ラベルおよび中間ラベル）に基づいて生成可能であり、リボーク機器以外の正当な選択された受信機のみが、
Ｅ（ＳＫａ，ｂ，Ｋｃ），Ｅ（ＳＫｃ，ｄ，Ｋｃ），Ｅ（ＳＫｅ，ｆ，Ｋｃ）
に含まれるいずれかの暗号文の復号によってコンテンツキーＫｃを取得することができる。
【０４１９】
先に図３２を参照して説明したように、総受信機数Ｎ＝１６に設定した階層木構成において、受信機ｕ５，ｕ１１，ｕ１２をリボークする際に用いるサブセットは、図３２に示す２つのサブセットＳ２，２０とＳ３，１３である。
【０４２０】
リボークされない受信機は２つのサブセットＳ２，２０とＳ３，１３のいずれかに含まれ、リボークされる受信機ｕ５，ｕ１１，ｕ１２はそのいずれにも含まれないので、これらのサブセットに対応するサブセットキーＳＫ２，２０とＳＫ３，１３を用いて秘密情報を暗号化して送信すれば、リボークされない受信機のみが暗号文を復号して秘密情報を得ることができる。
【０４２１】
情報配信処理の処理手順は、先に図３３に示すフローを参照して説明したと同様の処理となる。なお、暗号文セットの送信に際しては、暗号文に含まれる各サブセット対応の暗号文の配列情報としてのサブセット指定情報を併せて送信してもよい。受信機は、この指定情報に基づいて、自装置で生成可能なサブセットキーを適用した暗号文を容易に抽出可能となる。この具体的な方式としては、例えば、特開２００１−３５２３２２号公報に示されている鍵指定コードを利用する構成が適用可能である。
【０４２２】
なお、暗号化に利用するサブセットキーは、管理センタ（ＴＣ）がセットアップフェイズにおいて作成して保管しておいたものを使用するようにしてもよいし、セットアップフェイズにおいて作成して保管しておいた各サブセットごとのラベルから擬似乱数生成器Ｇを用いて導出してもよい。
【０４２３】
なお、リボークする受信機がない場合には、前述の第２の特別なサブセットＳＳ１，φのサブセットキーＳＫ１，φ＝ＧＭ（ＬＡＢＥＬ１，Φ）＝ＧＭ（Ｈｃ（ＩＬ１，Φ））用いて秘密情報の暗号化に用いる。
【０４２４】
（１２−３）受信および復号処理
リボークされない受信機は、上記のサブセットのいずれかただ１つに属しているので、そのサブセットに対応するサブセットキーを用いて作られた暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のサブセット指定情報を用いればよい。暗号文を特定した後、受信機は所有するラベルまたは中間ラベルからサブセットキーを導出し、これを用いて暗号文を復号する。サブセットキーを導出する方法を以下に述べる。
【０４２５】
受信機ｕｍはまず、暗号文の復号処理に適用する求めるべきサブセットキーＳＫｉ，ｊに対応するサブセットＳｉ，ｊのノードｊが、下記（Ａ），（Ｂ）のいずれであるかを判定する。
（Ａ）受信機が直接ラベルＬＡＢＥＬｉ，ｋを持つノードｋの子孫である（ただしｊ＝ｋの場合を含む）か、
（Ｂ）ノードｉの子ノードのうち、受信機が割り当てられたリーフ（葉）ｎからルートへのパス上にないほうのノード（つまり、パス上にあるノードｉの子ノードの兄弟であるノード）ｋと一致するかその子孫であるか、（すなわち、ノードｊが、ＳＤ方式において受信機ｕｍにラベルが与えられたサブセットのうち、第１の特別なサブセットＳＳｉ，ｋを構成するノードｋの子孫であるか）を判断する。
【０４２６】
なお、リボークする受信機がなく、第２の特別なサブセットＳＳ１，φのサブセットキーＳＫ１，φが秘密情報の暗号化に用いられている場合には（Ｂ）であるとみなす。
【０４２７】
（Ｂ）の場合には、下記のように、受信機に与えられている中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）から特別なサブセットＳＳｉ，ｋの中間ラベルを導出する。
【０４２８】
まず、ｉ＝Ｐ（ｎ），ｊ＝ｋ＝Ｓ（ｎ）である場合には、受信機はすでにこの中間ラベル（＝ノード対応値ＮＶ）を持っているので特に何もする必要はない。そうでない場合は、受信機は中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）に対し公開されている関数Ｆ、すなわち前述の（数式３）によって、上位のサブセットに対応する中間ラベル（＝ノード対応値ＮＶ）を順次計算していく。受信機が持つ中間ラベルＩＬＰ（ｎ），Ｓ（ｎ）に対し、受信機が割り当てられたリーフ（葉）ｎの親ノードＰ（ｎ）のさらに親ノードＰ（Ｐ（ｎ））を始点とし、ノードＰ（ｎ）の兄弟ノードＳ（Ｐ（ｎ））に対応する特別なサブセットＳＳＰ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ））の中間ラベルＩＬＰ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ））は、前述の数式３のノード対応値ＮＶを中間ラベルに置き換えた下式、すなわち、
【数６７】
2006115464.tif 000051
・・・（数式６）
によって求められる。
【０４２９】
これは、上述した先に説明したＲａｂｉｎ  Ｔｒｅｅ構成例２のノード対応値の関係式、
【数６８】
2006115464.tif 000052
に基づくものである。
【０４３０】
さらに、上位ノードのノード対応値ＮＶ（中間ラベル）は、下位ノードのノード対応値ＮＶ（中間ラベル）に基づいて算出される。例えば、図４０に示す受信機ｕ４における上位ノード（ノード番号＝１，２，４，９）のノード対応値ＮＶ（中間ラベル）の算出は、以下の処理手順で実行されることになる。
【０４３１】
（ａ１）ＮＶ９（＝中間ラベルＩＬ４，８）＝（（ＮＶ１９）２ ＸＯＲ Ｈｓａｌｔ１９（１９））ｍｏｄＭ
（ａ２）ＮＶ４（＝中間ラベルＩＬ２，５）＝（（ＮＶ９）２ ＸＯＲ Ｈｓａｌｔ９（９））ｍｏｄＭ
（ａ３）ＮＶ２（＝中間ラベルＩＬ１，３）＝（（ＮＶ４）２ ＸＯＲ Ｈｓａｌｔ４（４））ｍｏｄＭ
（ａ４）ＮＶ１（＝中間ラベルＩＬ１，Φ）＝（（ＮＶ２）２ ＸＯＲ Ｈｓａｌｔ２（２））ｍｏｄＭ
上記式に基づく演算により、下位ノードのノード対応値から上位ノードのノード対応値を算出し、さらに、各ノードのノード対応値（中間ラベル）からラベル（ＬＡＢＥＬ）が以下の式によって算出できる。
（ｂ１）ＬＡＢＥＬ９，１８＝Ｈｃ（ＩＬ９，１８）
（ｂ２）ＬＡＢＥＬ４，８＝Ｈｃ（ＩＬ４，８）
（ｂ３）ＬＡＢＥＬ２，５＝Ｈｃ（ＩＬ２，５）
（ｂ４）ＬＡＢＥＬ１，３＝Ｈｃ（ＩＬ１，３）
（ｂ５）ＬＡＢＥＬ１，Φ＝Ｈｃ（ＩＬ１，Φ）
【０４３２】
このように、あるノードｙとその親ノードＰ（ｙがあるとき、ノードＰ（ｙ）の親ノードＰ（Ｐ（ｙ））を始点とし、ノードＰ（ｙ）の兄弟ノードＳ（Ｐ（ｙ））に対応する特別なサブセットＳＳＰ（Ｐ（ｙ）），Ｓ（Ｐ（ｙ））の中間ラベルＩＬＰ（Ｐ（ｙ）），Ｓ（Ｐ（ｙ））は、下式、
【数６９】
2006115464.tif 000053
によって求められる。
なおここで、ノードｙは受信機が割り当てられたリーフ（葉）からルートへのパス上に存在するノードである。
【０４３３】
また、中間ラベルＩＬ１，２、または、中間ラベルＩＬ１，３に対して、下式、
ＩＬ１，φ＝（（ＩＬ１，２）２−Ｈｓａｌｔ３（３））ｍｏｄＭ
ＩＬ１，φ＝（（ＩＬ１，３）２−Ｈｓａｌｔ２（２））ｍｏｄＭ
によって、第２の特別なサブセットＳＳ１，φに対応する中間ラベルＩＬ１，φ＝Ｋを求めることができる。
【０４３４】
受信機によって実行する具体的な中間ラベル取得処理について、図４０を参照して説明する。リーフ（葉）１９に割り当てられた受信機ｕ４は中間ラベルＩＬ９，１８を保持している。公開パラメータとして法Ｍ、公開指数ｅとノード番号を用いた演算により、ノード９の親ノード４と兄弟ノード８で決定されるサブセットＳ４，８の中間ラベルＩＬ４，８を、
ＩＬ４，８＝（（ＩＬ９，１８）２ −Ｈｓａｌｔ１９（１９））ｍｏｄＭ
として求めることができる。
【０４３５】
同様に、ノード４の親ノード２と兄弟ノード５で決定されるサブセットＳ２，５の中間ラベルＩＬ２，５を、
ＩＬ２，５＝（（ＩＬ４，８）２ −Ｈｓａｌｔ９（９））ｍｏｄＭ
として求めることができる。
【０４３６】
この処理を繰り返していくことにより、受信機ｕ４は、上位の中間ラベルＩＬ１，３、およびＩＬ１，φを求めることができる。
【０４３７】
上記のようにして、サブセットＳｉ，ｋに対応する中間ラベルＩＬｉ，ｋを導出したら、受信機はラベルＬＡＢＥＬｉ，ｋを、
ＬＡＢＥＬｉ，ｋ＝Ｈｃ（ＩＬｉ，ｋ）として求める。
【０４３８】
それから、先に図２２を用いて説明したように、擬似乱数生成器Ｇを用いて必要なサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊを求め、さらにそのサブセットのサブセットキーＳＫｉ，ｊを
ＳＫｉ，ｊ＝ＧＭ（ＬＡＢＥＬｉ，ｊ）
により求め、このサブセットキーＳＫｉ，ｊを用いて暗号文を復号する。
【０４３９】
受信機によって実行する暗号文受領からサブセットキーの取得、復号処理の手順は、適用する算出式が異なるのみで、先に図３５のフローチャートを参照して説明した処理と同様の処理シーケンスとなる。
【０４４０】
［１３．Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した効果について］
上述したＲａｂｉｎ  Ｔｒｅｅ構成例２を用いたＳＤ方式の暗号文配信構成においては、各ノードに対応して設定されるノード付加変数（ｓａｌｔ）が、前述のＲａｂｉｎ  Ｔｒｅｅ構成例１とは異なっている。すなわち、
Ｒａｂｉｎ  Ｔｒｅｅ構成例１では、
【数７０】
2006115464.tif 000054
が、ｔｍｐｌ∈ＱＲＭを満たす最小の正整数（もしくは非負整数）をｓａｌｔｌとしていた。ここで、関数ＨとしてＳＨＡ−１やＭＤ５のようなハッシュ関数を用いたものを使うことを考える。ＳＨＡ−１やＭＤ５は５１２ビットを１ブロックとして扱うため、入力のサイズが５１２ビットを超え１０２４ビット以下であれば、５１２ビット以下の入力の場合に比べて約２倍の処理時間が必要となる。
【０４４１】
ここで、ｌ（エル）のサイズが５１２ビットであった場合、ｓａｌｔｌのサイズは数ビットであったとしても、ｌ||ｓａｌｔｌのサイズは５１２ビットを超えてしまう。ｔｍｐｌｉｎＱＲＭを満たすようにｓａｌｔｌを試行し、Ａ個目のｓａｌｔｌが条件を満たすこととなった場合、上記のセッティングでは、Ｈの計算に必要な時間だけで、５１２ビット以下の入力のＨの２Ａ回分の時間が必要となる。
【０４４２】
これに対し、本実施例のように、ノード付加変数（ｓａｌｔ）の設定を、
【数７１】
2006115464.tif 000055
上記式において、Ｍを法とする平方剰余になるような最小の正整数ｓａｌｔｌとする設定とすれば、Ｈの入力となるのはｌ（エル）のみであり、ちょうど５１２ビットである。このため、Ｈを１回計算するのに必要な時間は、前述の方法（Ｒａｂｉｎ  Ｔｒｅｅ構成例１）に比べ１／２で済む。ここで、Ｈがランダムな値を出力するとすれば、ｔｍｐｌ∈ＱＲＭとなる確率はそれぞれのｓａｌｔｌに対して約１／４と、前述の方法（Ｒａｂｉｎ  Ｔｒｅｅ構成例１）と変わらないため、ｓａｌｔｌとして試行すべき数の期待値、すなわち、関数Ｈを計算しなければならない回数の期待値も不変である点に注意されたい。
【０４４３】
［１４．Ｂａｓｉｃ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ベーシックＬＳＤ）方式の概要］
次に、Ｂａｓｉｃ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ベーシックＬＳＤ）方式の概要について説明する。
【０４４４】
すでに公開されている文献［Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｃｒｙｐｔｏ  ２００２，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２４４２，Ｓｐｒｉｎｇｅｒ，２００２，ｐｐ４７−６０「Ｄ．Ｈａｌｅｖｙ  ａｎｄ  Ａ．Ｓｈａｍｉｒ著"Ｔｈｅ  ＬＳＤ  Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｃｈｅｍｅ"」］には、ＳＤ方式を改良したＬａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ方式が提案されている。ＬＳＤ方式には、Ｂａｓｉｃ（基本）方式と、その拡張であるＧｅｎｅｒａｌ（一般化）方式がある。ここではＢａｓｉｃ方式について説明する。
【０４４５】
ＬＳＤ方式はＳＤ方式の拡張であり、レイヤという新たな概念を取り入れたものである。ＳＤ方式における木構造の中で、特定の高さを特別レベル（Ｓｐｅｃｉａｌ  Ｌｅｖｅｌ）として定義する。ベーシックＬＳＤ方式においては特別レベルは、１種類だけであるが、一般化ＬＳＤ方式においては重要度の異なる複数の特別レベルを用いる。
【０４４６】
いま、簡単のため、ｌｏｇ１／２Ｎを整数であるとする。ベーシックＬＳＤ方式では、図４１に示すように、木のルートからリーフ（葉）に至るまでのそれぞれのレベル（階）のうち、ルートとリーフ（葉）のレベルを含むｌｏｇ１／２Ｎごとのレベルを特別レベルであると決める。そして、隣り合う２つの特別レベルに挟まれた階層（両端の特別レベルを含む）を、レイヤと呼ぶ。図４１の例では、ルートのレベル、ノードｋを含むレベル、リーフ（葉）のレベルが特別レベルであり、ルートのレベルとノードｉを含むレベルとノードｋを含むレベルが１つのレイヤを構成する。またノードｋを含むレベルとノードｊを含むレベルとリーフ（葉）を含むレベルが別のレイヤを構成する。
【０４４７】
ベーシックＬＳＤ方式においては、ＳＤ方式において定義されたサブセットＳｉ，ｊのうち、（１）ノードｉとノードｊが同一レイヤにあるか、もしくは（２）ノードｉが特別レベルにあるか，少なくとも一方の条件を満たすものだけを定義する。このようにすると、ＳＤ方式において用いられたサブセットのうちのいくつかはベーシックＬＳＤ方式では定義されなくなってしまうが、このサブセットはベーシックＬＳＤ方式で定義されたサブセットの高々２つの和集合で表すことができる。たとえば図４１の例では、サブセットＳｉ，ｊは、ベーシックＬＳＤ方式では定義されないが、ノードｉからノードｊへのパス上の、ノードｉに最も近い特別レベル上のノード（ノードｋ）を用いて、
Ｓｉ，ｊ＝Ｓｉ，ｋ∪Ｓｋ，ｊ
と表すことができる。
【０４４８】
つまり、ＳＤ方式においてはサブセットＳｉ，ｋに対応するサブセットキーＳＫｉ，ｋを用いて暗号化した１つの暗号文の代わりに、ベーシックＬＳＤ方式においてはサブセットＳｉ，ｋとＳｋ，ｊに対応するサブセットキーＳＫｉ，ｋとＳＫｋ，ｊを用いて暗号化した２つの暗号文を送信する。
【０４４９】
この工夫により、送信される暗号文の数はＳＤ方式の高々２倍に増加するのみであり、一方、各受信機が保持するラベルの数は、上述したＳＤ方式よりも減らすことができる。
【０４５０】
先に図２４を参照して、ＳＤ方式において各受信機が保持するラベルの数の説明を行なったが、同じセッティングの場合のベーシックＬＳＤ方式における各受信機が保持するラベルの数について、図４２を参照して説明する。図４２中の受信機ｕ４は、ｉ，ｊが同一レイヤにあるか、ｉが特別レベルにあるラベルＬＡＢＥＬｉ，ｊのみ保持しておけばよい。すなわち、受信機ｕ４が保持するラベルは、ＬＡＢＥＬ１，３，ＬＡＢＥＬ１，５，ＬＡＢＥＬ１，８，ＬＡＢＥＬ１，１８，ＬＡＢＥＬ２，５，ＬＡＢＥＬ４，８，ＬＡＢＥＬ４，１８，ＬＡＢＥＬ９，１８となる。さらに、ＳＤ方式と同様に、リボークする受信機がない場合に用いる特別なラベルも保持する必要がある。
【０４５１】
総受信機数をＮとしたときに、各受信機が保持しておくラベルの総数は下記のように求められる。まず、レイヤ１つあたりのラベル数は、ノードｉを決めるとラベル内でのｉの高さ分だけノードｊが存在するので、下式によって算出される数となる。
【数７２】
2006115464.tif 000056
となる。
【０４５２】
階層木にレイヤは、ｌｏｇ１／２Ｎ個あるから、階層木全体のレイヤでのラベル数は下式によって算出される数となる。
【数７３】
2006115464.tif 000057
である。
【０４５３】
次にノードｉが特別レベルであるものを考えると、階層木全体におけるｉの高さ分だけノードｊが存在するので、ノードｉが特別レベルであるものを含む階層木全体のラベル数は下式によって算出される数となる。
【数７４】
2006115464.tif 000058
である。
【０４５４】
いま、ノードｉが特別レベルにあり、ノードｊが同一レイヤにあるものは重複して数えたので、その分を引く必要がある。この組み合わせは、１つのレイヤにつきｌｏｇ１／２Ｎ個あるので全体ではｌｏｇＮ個である。これらと、リボークする受信機がない場合のための特別な１つを加えると、ベーシックＬＳＤ方式において各受信機が保持するラベルの総数は、下式によって与えられる数となる。
【数７５】
2006115464.tif 000059
である。
【０４５５】
［１５．Ｒａｂｉｎ  Ｔｒｅｅを用いたベーシックＬＳＤ方式のラベル数削減構成］
次に、Ｒａｂｉｎ  Ｔｒｅｅを用いたベーシックＬＳＤ方式のラベル数削減構成について説明する。前述のＳＤ方式を基にした本発明では、ノードｉがノードｊの親である場合のサブセットＳｉ，ｊのラベルＬＡＢＥＬｉ，ｊを求めるための中間ラベルＩＬｉ，ｊを導出できる特定の中間ラベルをＲａｂｉｎ  Ｔｒｅｅにおけるノード対応値として設定して、この中間ラベル（＝ノード対応値）を１つだけ持つようにすることで、各受信機が持つラベルの数を減らした。この手法は、ベーシックＬＳＤ方式についても同様に適用することができる。
【０４５６】
具体的な構成方法は、前述の本発明の実施例とほぼ同じである。ただ、セットアップ時に、管理センタ（ＴＣ）が擬似乱数生成器Ｇを用いてラベルＬＡＢＥＬｉ，ｊを次々と作成していく際に、ノードｉが特別レベルにない場合、ｉの直下の特別レベルよりも下のノードをｊとするラベルは利用されないので、その特別レベルまででラベルの生成を止めることができる。また、作られたラベルを各受信機に配布する際も、上述の条件を満たす
ラベルのみが作成されているので、それだけを受信機に配布すればよい。
【０４５７】
図４２を参照して説明したと同様のセッティングとして、一方向性置換木を用いたベーシックＬＳＤ方式のラベル数削減構成の具体例を図４３を参照して説明する。ベーシックＬＳＤ方式において、受信機ｕ４が保持するラベルは、図４２を参照して説明したように、ＬＡＢＥＬ１，３，ＬＡＢＥＬ１，５，ＬＡＢＥＬ１，８，ＬＡＢＥＬ１，１８，ＬＡＢＥＬ２，５，ＬＡＢＥＬ４，８，ＬＡＢＥＬ４，１８，ＬＡＢＥＬ９，１８と、さらに、ＳＤ方式と同様の、リボークする受信機がない場合に用いる特別なラベルの合計９個のラベルを保持しておく必要があった。これに対し、本発明のようにノードｉ，ｊが親子関係となるものと、リボークする受信機がない場合に使われる特別なサブセットに対応する中間ラベルＩＬｉ，ｊおよびＩＬ１，φを導出できる中間ラベルＩＬ９，１８（ノード対応値ＮＶ１９）を持つようにすると、４個のラベルＬＡＢＥＬ１，５，ＬＡＢＥＬ１，８，ＬＡＢＥＬ１，１８，ＬＡＢＥＬ４，１８と、１つの中間ラベルＩＬ９，１８の合計５個を保持すればよい。
【０４５８】
総受信機数をＮとした場合に本発明により削減できるラベルの個数を考える。本発明を適用しないベーシックＬＳＤ方式において、ノードｉ，ｊが親子関係になるようなラベルＬＡＢＥＬｉ，ｊを各受信機がいくつ保持すべきかを考える。
【０４５９】
ノードｉ，ｊが親子関係になっているときには、以下の３つの場合が考えられる。
（Ａ）ノードｉが特別レベルにある。
（Ｂ）ノードｊが特別レベルにある。
（Ｃ）ノードｉもｊも特別レベルにない。
これらのいずれの場合も、ノードｉ，ｊが親子関係にある（つまり、隣り合っている）場合には、ｉとｊは同一レイヤに存在する。すなわち、サブセットＳｉ，ｊはベーシックＬＳＤ方式で定義されるための条件を満たしている。つまり、このようなサブセットはベーシックＬＳＤ方式で定義され使用されるため、受信機はそれに対応するＬＥＢＥＬｉ，ｊを保持しておく必要がある。
【０４６０】
ある受信機に対してこのようなノードｉ，ｊは、ｉの取り方が木の高さ分（すなわち、受信機が割り当てられたリーフ（葉）からルートへのパス上の、リーフ（葉）を除くノードすべて）あり、ｉを決めればｊがただ１つ決まる（ｉの子で、上記のパス上にないノード）ため、木の高さ分、すなわちｌｏｇＮ個だけ存在する。
【０４６１】
本発明を用いて、これらのｌｏｇＮ個のラベルと１つの特別なラベルを、１つの中間ラベルから作り出すようにすることにより、受信機が保持するラベルの数を、
ｌｏｇＮ＋１−１＝ｌｏｇＮ
だけ削減することが可能となる。
【０４６２】
上述のように、ベーシックＬＳＤ方式では受信機が保持するラベルの総数は、
ｌｏｇ３／２Ｎ＋１
であったため、本発明を適用することによりこれを、
ｌｏｇ３／２Ｎ−ｌｏｇＮ＋１
に削減することができる。
【０４６３】
［１６．Ｇｅｎｅｒａｌ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（一般化ＬＳＤ）方式の概要］
次に、Ｇｅｎｅｒａｌ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（一般化ＬＳＤ）方式の概要について説明する。
【０４６４】
ベーシックＬＳＤ方式では、１種類の特別レベルを用いていたが、Ｇｅｎｅｒａｌ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（一般化ＬＳＤ）方式では、重要度の異なる複数の特別レベルを用いる。
【０４６５】
ＬＳＤ方式を提案した論文と同様に、階層木において、ルートからノードｉを経てノードｊに至るパスを１本のグラフとして考える。木のルートとノードｊが端点となり、木のノードがグラフのノードとなり、端点以外のノードのひとつがノードｉとなっている。このグラフでは、各ノードはルートからの距離で表される。この距離は、ｄ桁のｂ進数（ただしｂ＝（ｌｏｇ１／ｄＮ））で表される。たとえば、ルートは０...００と表され、その隣のノード（階層木構造で、ルートの子ノードであるノード）は０...０１と表される。
【０４６６】
サブセットＳｉ，ｊは、定義された変換（ノードからノードへの遷移）を組み合わせての、ノードｉからノードｊへの最終的な遷移であると考える。定義された変換は定義されたサブセットを表し、最終的な遷移に要する個々の遷移が、サブセットＳｉ，ｊを分割して表すのに必要な定義されたサブセットを示す。もとの論文にあるように、ノードｉ，ｋ１，ｋ２，・・・，ｋｄ−１，ｊがこの順で木のパス上に存在するときには、ＳＤ方式におけるサブセットＳｉ，ｊは一般化ＬＳＤ方式においては、下式によって示される。
【数７６】
2006115464.tif 000060
【０４６７】
すなわち、ＳＤ方式におけるサブセットＳｉ，ｊは一般化ＬＳＤ方式においては、高々ｄ個のサブセットの和集合で表される。
【０４６８】
一般化ＬＳＤ方式では、ノードｉが上記のグラフで［ｘ］（→）ａ［０］（→）（ただしａは非ゼロの数字のうち一番右にある数字、［ｘ］（→）は任意の数字列、［０］（→）はゼロの列である）と表されるとき、［ｘ＋１］（→）０［０］（→）、もしくは、［ｘ］（→）ａ'［ｙ］（→）（ただしａ'＞ａであり、［ｙ］（→）は［０］（→）と同じ長さの任意の数字列）のいずれかで表されるノードｊへの遷移をすべて定義する。すなわち，そのようなｉ，ｊの組で表されるサブセットＳｉ，ｊをすべて定義する．
【０４６９】
このようにすると、ベーシックＬＳＤ方式は、一般化ＬＳＤ方式においてｄ＝２で、（一番右の）最終桁が０である２桁の数字で表されるレベルが特別レベルであるものと考えることができる。一般化ＬＳＤ方式では、ノードｉを表す数字における一番右のゼロの列の桁数が、そのレベルの重要度を表し、ノードｊはｉ＋１からｉよりも重要度の高い最初のノードまでのいずれのノード（両端のノードを含む）にもなる可能性がある。このようなセッティングで、たとえばｉ＝８２５９１７，ｊ＝８６４５６３とすると、ｉからｊへの遷移、すなわちＳＤ方式におけるサブセットＳｉ，ｊは、
８２５９１７→８２５９２０→８２６０００→８３００００→８６４５６３
という一般化ＬＳＤ方式で定義された４つの遷移によって表すことができる。
【０４７０】
すなわち、ｋ１＝８２５９２０，ｋ２＝８２６０００，ｋ３＝８３００００とおけば、サブセットＳｉ，ｊは下式によって示される。すなわち、
【数７７】
2006115464.tif 000061
となる。
【０４７１】
ＳＤ方式の上記のサブセットＳｉ，ｊに属する受信機に秘密情報を伝送するためには、一般化ＬＳＤ方式においては、下式によって示されるサブセット、
【数７８】
2006115464.tif 000062
に対応するサブセットキーで暗号化した４つの暗号文を送信する。
【０４７２】
一般化ＬＳＤ方式で各受信機が保持すべきラベル数は、パラメータｄを大きくしていくことにより減少していき、最終的には、
Ｏ（ｌｏｇ１＋εＮ）
を得る。ただしε＝１／ｄである。またこのとき、送信すべき暗号文数の上限は、
ｄ（２ｒ−１）
となる。詳細については上記の論文を参照されたい。
【０４７３】
［１７．Ｒａｂｉｎ  Ｔｒｅｅを用いた一般化ＬＳＤ方式のラベル数削減構成］
次に、Ｒａｂｉｎ  Ｔｒｅｅを用いた一般化ＬＳＤ方式のラベル数削減構成について説明する。前述の、ベーシックＬＳＤ方式にＲａｂｉｎ  Ｔｒｅｅを用いて受信機が保持すべきラベル数を削減する手法は、一般化ＬＳＤ方式についても適用できる。具体的には、ベーシックＬＳＤ方式と一般化ＬＳＤ方式は定義されるサブセットが満たすべき条件が違うのみであり、Ｒａｂｉｎ  Ｔｒｅｅを利用する部分に違いはない。
【０４７４】
一般化ＬＳＤ方式においても、受信機ｕｍは、ＳＤ方式において定義され受信機ｕｍに与えられるラベルのうち、ノードｉ，ｊが親子関係になっているサブセットＳｉ，ｊに対応するラベルＬＡＢＥＬｉ，ｊをすべて保持しておく必要がある。これは、ノードｉとしてどんな値をとっても、その子ノードｊ（すなわちｉ＋１）への遷移は、上述の定義される遷移の条件に当てはまるためである。すなわち、ベーシックＬＳＤ方式と同様に、ある受信機にとって、保持すべきラベルのうちノードｉ，ｊが親子関係になっているものはｌｏｇＮ個ある。これらのラベルと特別なラベルを１つの中間ラベルから作り出すようにすることにより、ｌｏｇＮ個のラベルの削減が可能となる。もともと一般化ＬＳＤ方式で各受信機が保持しておくべきラベルの数は、
Ｏ（ｌｏｇ１＋εＮ）
（ただしεは任意の正数）であったため、ここからｌｏｇＮ個のラベルを削減できることになる。
【０４７５】
［１８．Ｒａｂｉｎ  Ｔｒｅｅを適用したＳＤ方式の暗号文配信構成における計算量の削減についての考察］
【０４７６】
従来のＳＤ方式の鍵削減方法に対し、上述したＲａｂｉｎ  Ｔｒｅｅを用いた本発明によるＳＤ方式の暗号文配信構成は受信機が必要とする計算量が小さいという利点を持つ。これについて説明する。ＲＳＡ暗号を利用したＳＤ方式との対比による考察を行う。
【０４７７】
ＲＳＡ暗号を利用したＳＤおよびＬＳＤ方式においては、受信機があるノードの鍵ＮＫｌからその親ノードの鍵、
【数７９】
2006115464.tif 000063
を導出するために、下記式、
【数８０】
2006115464.tif 000064
の計算を行う。
【０４７８】
ここで、排他論理和演算やハッシュ関数Ｈの演算はべき乗剰余演算に比べて非常に計算量が小さいため、上記で支配的なのは、
ＮＫｌｅｍｏｄＭ
のべき乗剰余演算となる。
【０４７９】
ＲＳＡ暗号を利用したシステムにおいては、計算量の削減のため、公開指数ｅをなるべく小さく、しかもｅのハミング重みがなるべく小さいものを使うことが望まれる。しかし、例えば、ｅ＝３という小さい値では安全性に問題があることが指摘されているため、
ｅ＝２１６＋１
という値が広く推奨されている。
【０４８０】
公開指数ｅとして２１６＋１という値を用いたとき、ある数ｘのｅ乗を計算方法はいくつかあるが、「自乗と乗算のアルゴリズム」（前述のＡ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ  ａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，"ＣＲＣ  Ｐｒｅｓｓ，１９９６，ｐ６１４参照）を用いた場合、１６回の自乗算と１回の乗算が必要となる。ここで、自乗算は乗算の特殊な場合であり、これを利用して計算量は乗算に比べて小さくできるため、上記の計算量は自乗算１７回分よりも大きくなる。
【０４８１】
これに対し、上述した本発明のＲａｂｉｎ  Ｔｒｅｅを適用したＳＤ方式による暗号文配信構成では、受信機は、自己の保有するノード対応値ＮＶｌと、ノード付加変数ｓａｌｔに基づいて、前述の（数式１）に基づく演算、すなわち、
【数８１】
2006115464.tif 000065
の計算を行う。この中で支配的なのはやはりべき乗剰余演算であるが、上記式において、べき乗剰余演算は、
ＮＶｌ２ｍｏｄＭ
であり、自乗算１回で行える。よって、本発明は、ＲＳＡ暗号を用いた方式に対して、計算量を１／１７程度に小さくすることができる。
【０４８２】
上述したように、ＲＳＡ暗号を利用した方式と比較した場合、本方式では、受信機に必要とされる計算量として大きな負荷であるべき乗剰余演算が自乗算１回で行える構成であり、ＲＳＡ暗号を利用した方式と比較すると約１／１７と非常に小さくすることができる。また、もしＲＳＡ暗号を用いた方式において、公開指数ｅとして３という値を用いた場合でも、ＮＫｌｅｍｏｄＭの演算には１回の乗算と１回の自乗算が必要であり、本発明の計算量は１／２より小さくなる。
【０４８３】
さらに、従来型のＳＤ方式、基本ＬＳＤ（Ｂａｓｉｃ  ＬＳＤ）、一般化ＬＳＤ（ＧｅｎｅｒａｌＬＳＤ）の各方式では、各受信機は、上述したように、それぞれ、
ＳＤ方式：（１／２）ｌｏｇ２Ｎ＋（１／２）ｌｏｇＮ＋１個
基本ＬＳＤ方式：ｌｏｇ２／３Ｎ＋１個
一般化ＬＳＤ方式：Ｏ（ｌｏｇ１＋εＮ）
ただし、Ｎは総受信機数、εは、ε＞０を満たす任意の数、
上記式の個数のラベルを安全に保持することが必要となっていた
【０４８４】
これに対して、本発明のＲａｂｉｎ  Ｔｒｅｅを適用した構成では、受信機が安全に保持すべきラベル数の削減が可能となる。すなわち、前述したように、本発明では、ノードｉとノードｊが親子関係（距離１、すなわち連続する階層にある）になるサブセット対応のラベルＬＡＢＥＬｉ，ｊと、リボークすべき受信機がないという特別な場合に使用する全受信機を含む集合であるサブセットＳ１，φに対応するラベルであるＬＡＢＥＬ１，φに対して、Ｒａｂｉｎ  Ｔｒｅｅを適用したノード対応値に対応する中間ラベルを設定し、この中間ラベルに基づいて、上位の特別サブセット対応の中間ラベル（＝ノード対応値）を算出可能な構成としたことで、受信機が保持するラベル数の削減が達成される。
【０４８５】
なお、本発明の構成においては、ノード付加変数ｓａｌｔは安全に保持する必要はない。またノード付加変数ｓａｌｔは平均２ビットという小さなサイズであり、受信機におけるデータ保存の負担も少なくて済むというメリットがある。
【０４８６】
このように、本発明の構成を適用することにより、受信機において安全に保持することが要求される情報量が削減され、また、受信機においてノードキー算出のために必要とされる計算量を削減することが可能となり、効率的な暗号文、配信、復号処理構成が実現される。
【０４８７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０４８８】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０４８９】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０４９０】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０４９１】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０４９２】
以上、説明したように、本発明の構成によれば、ブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応してノード対応値を設定した一方向木としてのＲａｂｉｎ  Ｔｒｅｅを生成し、ノード対応値ＮＶａを、少なくとも１つの下位ノードに対応して設定されたノード対応値ＮＶｂとノード付加変数ｓａｌｔｂに基づく関数ｆの適用によって算出可能に設定し、各ノードに対応するノードキーＮＫを、各ノード対応のノード対応値ＮＶを入力とし、関数Ｈｃを適用して算出可能な構成とした。本構成により、従来のＣＳ方式では各受信機はｌｏｇＮ＋１個のノードキーを安全に保持する必要があったが、本発明を適用した構成では、各受信機が安全に保持しなければならない鍵の個数を削減することができ、また、ノード付加変数ｓａｌｔは安全に保持する必要がなく、ノード付加変数ｓａｌｔは平均２ビットという小さなサイズとすることが可能であるので、受信機において安全に保持することが要求される情報量が削減される。さらに、本発明と同様に、受信機が安全に保持すべき鍵数を１つに削減した、ＲＳＡ暗号を利用した方式と比較した場合、本発明の方式では、受信機に必要とされる計算量として大きな負荷であるべき乗剰余演算が自乗算１回で行える構成であり、ＲＳＡ暗号を利用した方式と比較すると約１／１７と非常に小さくすることができる。このように、本発明の構成を適用することにより、受信機において安全に保持することが要求される情報量が削減され、また、受信機においてノードキー算出のために必要とされる計算量を削減することが可能となり、効率的な暗号文、配信、復号処理構成が実現される。
【図面の簡単な説明】
【０４９３】
【図１】２分木階層型木構造について説明する図である。
【図２】２分木階層型木構造において、選択した情報処理装置のみが取得可能な情報を送信する方法を説明する図である。
【図３】Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式において適用するノードが２つに分岐する階層型木構造を説明する図である。
【図４】Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式においてリーフ対応の受信機の持つノードキーについて説明する図である。
【図５】ＣＳ方式において秘密情報をリボークされない受信機のみに選択的に提供する構成について説明する図である。
【図６】木構造における異なる部分木の対応について説明する図である。
【図７】ＲＳＡ暗号の順方向置換および逆方向置換を用いて定義される木構造について説明する図である。
【図８】本発明において適用する一方向置換木としてのＲａｂｉｎ  Ｔｒｅｅの生成処理、ノード対応値、ノード付加変数の算出手順を説明するフロー図である。
【図９】本発明において適用する一方向置換木としてのＲａｂｉｎ  Ｔｒｅｅの木構造について説明する図である。
【図１０】Ｒａｂｉｎ  Ｔｒｅｅを適用したＣＳ方式において、受信機に付与するデータを説明する図である。
【図１１】セットアップ処理のフローを示す図である。
【図１２】情報配信処理の手順について説明するフロー図である。
【図１３】Ｒａｂｉｎ  Ｔｒｅｅを適用したＣＳ方式において、受信機に付与するデータを説明する図である。
【図１４】受信機における暗号文の復号処理手順を説明するフロー図である。
【図１５】ＣＳ方式におけるノードキーの決定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する図である。
【図１６】ＣＳ方式における暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する図である。
【図１７】Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した場合のＲａｂｉｎ  Ｔｒｅｅの生成処理、ノード対応値、ノード付加変数の算出手順を説明するフロー図である。
【図１８】Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用したＣＳ方式において、受信機に付与するデータを説明する図である。
【図１９】Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した場合のノードキー算出手法を示す図である。
【図２０】受信機における暗号文の復号処理手順を説明するフロー図である。
【図２１】Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式におけるサブセットの定義について説明する図である。
【図２２】Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式におけるラベルの設定および構成について説明する図である。
【図２３】Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ（ＳＤ）方式におけるサブセットの設定について説明する図である。
【図２４】ＳＤ方式において、全受信機数Ｎ＝１６の設定の場合に各受信機が保持すべきラベルを示す図である。
【図２５】ＳＤ方式において、各受信機が保持すべきラベルの詳細について説明する図である。
【図２６】ＳＤ方式において、各受信機が保持すべきラベルの詳細について説明する図である。
【図２７】ＳＤ方式において、特定の受信機ｕ４が属するサブセットの詳細について説明する図である。
【図２８】ノードが親子関係になっている第１の特別なサブセットＳＳＰ（ｙ），Ｓ（ｙ）の構成例について説明する図である。
【図２９】特別なサブセット対応のラベルと、図８を参照して説明したアルゴリズムによって算出した２Ｎ−１個の中間ラベルとして利用されるノード対応値ＮＶ１，ＮＶ２，...，ＮＶ２Ｎ−１との対応を示す図である。
【図３０】受信機に提供するラベルの決定処理について説明する図である。
【図３１】セットアップ処理のフローを示す図である。
【図３２】総受信機数Ｎ＝１６に設定した階層木構成において、受信機ｕ５，ｕ１１，ｕ１２をリボークする際に用いるサブセットを示す図である。
【図３３】情報配信処理の処理手順について説明するフローを示す図である。
【図３４】具体的なサブセットキーの導出処理例について説明する図である。
【図３５】受信機によって実行する暗号文受領からサブセットキーの取得、復号処理の手順を説明するフローチャートを示す図である。
【図３６】Ｒａｂｉｎ  Ｔｒｅｅを適用したＳＤ方式において、受信機におけるサブセットキー導出処理の詳細手順について説明するフロー図である。
【図３７】ＳＤ方式において、ラベルの決定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する図である。
【図３８】ＳＤ方式において、暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する図である。
【図３９】情報処理装置のハードウェア構成例としてのブロック図を示す図である。
【図４０】Ｒａｂｉｎ  Ｔｒｅｅ構成例２を適用した場合の受信機に提供するラベルの決定処理について説明する図である。
【図４１】ベーシックＬＳＤ方式について説明する図である。
【図４２】ベーシックＬＳＤ方式における各受信機が保持するラベルの数について説明する図である。
【図４３】Ｒａｂｉｎ  Ｔｒｅｅを用いたベーシックＬＳＤ方式のラベル数削減構成について説明する図である。
【符号の説明】
【０４９４】
１０１  情報処理装置
２０１  ノード
２３０  部分木
２３１，２３２  ノード
２３５  部分木
４１０  情報処理装置
４１１  一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段
４１２  ノードキー生成手段
４１３  提供情報決定手段
４１４  暗号文生成手段
４１５  暗号文提供手段
４２０  情報処理装置
４２１  暗号文選択手段
４２２  ノードキー算出手段
４２３  復号手段
４２４  メモリ
５３１，５３２  ノード
５５０  サブセット
５５１  ノード
５５２  親ノードＰ（ｊ）
５５３  兄弟ノードＳ（ｊ）
３１０  サブセット
７１０  情報処理装置
７１１  一方向木（Ｒａｂｉｎ  Ｔｒｅｅ）生成手段
７１２  中間ラベルおよびラベル生成手段
７１３  提供ラベル決定手段
７１４  暗号文生成手段
７１５  暗号文提供手段
７２０  情報処理装置
７２１  暗号文選択手段
７２２  ラベル算出手段
７２３  復号手段
７２４  メモリ
８００  情報処理装置
８０１  コントローラ
８０２  演算ユニット
８０３  入出力インタフェース
８０４  セキュア記憶部
８０５  メイン記憶部
８０６  ディスプレイ装置
８０７  メディアインタフェース
【図１】
2006115464.tif 000084
【図２】
2006115464.tif 000085
【図３】
2006115464.tif 000086
【図４】
2006115464.tif 000087
【図５】
2006115464.tif 000088
【図６】
2006115464.tif 000089
【図７】
2006115464.tif 000090
【図８】
2006115464.tif 000091
【図９】
2006115464.tif 000092
【図１０】
2006115464.tif 000093
【図１１】
2006115464.tif 000094
【図１２】
2006115464.tif 000095
【図１３】
2006115464.tif 000096
【図１４】
2006115464.tif 000097
【図１５】
2006115464.tif 000098
【図１６】
2006115464.tif 000099
【図１７】
2006115464.tif 000100
【図１８】
2006115464.tif 000101
【図１９】
2006115464.tif 000102
【図２０】
2006115464.tif 000103
【図２１】
2006115464.tif 000104
【図２２】
2006115464.tif 000105
【図２３】
2006115464.tif 000106
【図２４】
2006115464.tif 000107
【図２５】
2006115464.tif 000108
【図２６】
2006115464.tif 000109
【図２７】
2006115464.tif 000110
【図２８】
2006115464.tif 000111
【図２９】
2006115464.tif 000112
【図３０】
2006115464.tif 000113
【図３１】
2006115464.tif 000114
【図３２】
2006115464.tif 000115
【図３３】
2006115464.tif 000116
【図３４】
2006115464.tif 000117
【図３５】
2006115464.tif 000118
【図３６】
2006115464.tif 000119
【図３７】
2006115464.tif 000120
【図３８】
2006115464.tif 000121
【図３９】
2006115464.tif 000122
【図４０】
2006115464.tif 000123
【図４１】
2006115464.tif 000124
【図４２】
2006115464.tif 000125
【図４３】
2006115464.tif 000126