(57)【要約】【課題】  木構造を適用した暗号文提供構成において、暗号文復号を行なう機器に格納すべき情報量を削減可能とした構成を提供する。【解決手段】  階層木を構成する各ノードに対応するノードキーの設定において、上位ノードキーの値を、下位ノードキーの値に一方向性関数Ｆを適用して算出可能な値とした。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを提供する。受信機は、処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合、保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出することが可能となる。本構成により、各受信機が安全に保持すべき情報量（ノードキー）の減少が実現される。【選択図】  図１０
2005252916.tif 000002
【特許請求の範囲】
【請求項１】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とする情報処理方法。
【請求項２】
前記情報処理方法は、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記一方向木生成ステップは、
２分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の２つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Ｆの適用によって算出可能に設定した一方向木を生成するステップであることを特徴とする請求項１に記載の情報処理方法。
【請求項４】
前記一方向木生成ステップは、
末端ノード数Ｎの２分木構成を持つ階層木においてＮ個の値：ｘＮ〜ｘ２Ｎ−１を決定するステップと、
ｉ＝２Ｎ−１とする初期設定ステップと、
ｉ＝（２Ｎ−１）〜１において、ｉ＝偶数の場合に、一方向性関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットするステップと、
を有し、上記各ステップの処理によって、末端ノード数Ｎの２分木構成の全ノード数２Ｎ−１に対応するノードキーｘ１〜ｘ２Ｎ−１を決定するステップを含むことを特徴とする請求項１に記載の情報処理方法。
【請求項５】
前記提供ノードキー決定ステップは、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、
末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードｉが含まれノード２ｉが含まれないノードに対応するノードキーのみを提供するステップであることを特徴とする請求項１に記載の情報処理方法。
【請求項６】
前記一方向性関数Ｆは、
ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする請求項１に記載の情報処理方法。
【請求項７】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法。
【請求項８】
前記暗号文選択ステップは、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号ｉと一致するものを見つけるステップであることを特徴とする請求項７に記載の復号処理方法。
【請求項９】
前記ノードキー算出ステップは、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、受信機からルートに至るパス上のノードにノード番号２ｋｉが含まれるが、２ｋ＋１ｉは含まれない最小のｋを見つけるステップと、
自己の保持するノードキーＮＫ２ｋｉの値に対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出するステップと、
を含むことを有することを特徴とする請求項７に記載の復号処理方法。
【請求項１０】
前記一方向性関数Ｆは、
ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする請求項７に記載の復号処理方法。
【請求項１１】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成手段と、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定手段と、
を有することを特徴とする情報処理装置。
【請求項１２】
前記情報処理装置は、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段と、
前記暗号文を前記受信機に提供する暗号文提供手段と、
を有することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記一方向木生成手段は、
２分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の２つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Ｆの適用によって算出可能に設定した一方向木を生成する構成を有することを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記一方向木生成手段は、
末端ノード数Ｎの２分木構成を持つ階層木においてＮ個の値：ｘＮ〜ｘ２Ｎ−１を決定し、ｉ＝２Ｎ−１とする初期設定を実行し、ｉ＝（２Ｎ−１）〜１において、ｉ＝偶数の場合に、一方向性関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットする処理によって、末端ノード数Ｎの２分木構成の全ノード数２Ｎ−１に対応するノードキーｘ１〜ｘ２Ｎ−１を決定する構成であることを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
前記提供ノードキー決定手段は、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、
末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードｉが含まれノード２ｉが含まれないノードに対応するノードキーのみを提供する構成であることを特徴とする請求項１１に記載の情報処理装置。
【請求項１６】
前記一方向性関数Ｆは、
ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする請求項１１に記載の情報処理装置。
【請求項１７】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出手段と、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置。
【請求項１８】
前記暗号文選択手段は、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号ｉと一致するものを見つける処理を実行する構成であることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記ノードキー算出手段は、
階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、受信機からルートに至るパス上のノードにノード番号２ｋｉが含まれるが、２ｋ＋１ｉは含まれない最小のｋを見つける処理を実行し、自己の保持するノードキーＮＫ２ｋｉの値に対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成であることを有することを特徴とする請求項１７に記載の情報処理装置。
【請求項２０】
前記一方向性関数Ｆは、
ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする請求項１７に記載の情報処理装置。
【請求項２１】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項２２】
前記コンピュータ・プログラムは、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、階層木構造を適用したブロードキャストエンクリプション方式において現在知られているＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）に対して下位ノードキーから上位ノードキーを一方向性関数によって算出可能な構成とした一方向木を適用することにより、受信機の格納鍵情報量を削減し効率的でセキュアな情報配信を実現する情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ（以下、これらをコンテンツ（Content）と呼ぶ）が、インターネット等のネットワークを介して、あるいはＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disk)、ＭＤ(Mini Disk)等の情報記録媒体（メディア）を介して流通している。これらの流通コンテンツは、ユーザの所有するＰＣ（Personal Computer）やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。
【０００３】
音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製等が行われないようにする構成をとるのが一般的となっている。
【０００４】
特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、ＣＤ−Ｒ等の記録媒体に対する不正コピーという問題が発生している。
【０００５】
このようなコンテンツの不正利用を防止する１つの方式として、コンテンツあるいは暗号化コンテンツを復号するための鍵を暗号化して配布し、特定の正規ユーザまたは正規デバイスにおいてのみ配布データの復号を可能としたシステムがある。例えばブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した構成が知られている。
【０００６】
階層型木構造を適用した暗号鍵等の暗号データ提供処理について、図を参照して説明する。
【０００７】
図１に示す階層型木構造は２分木構造を用いており、その最下層がリーフ（葉）と呼ばれ、頂点、各分岐部およびリーフを含む部分をノードと称する。なお、頂点をルート、あるいはルートノードと呼ぶ。図１に示す２分木階層型木構造において、リーフは８〜１５、ノードは１〜１５、ルートは１である。
【０００８】
この２分木階層型木構造におけるリーフ８〜１５にコンテンツの利用機器としての再生機、受信機等の情報処理装置を１つずつ割り当てる。
【０００９】
また、木の各ノード（リーフを含む）１〜１５にそれぞれノードキーを１つずつ割り当てる。リーフ８〜１５に割り当てるノードキーはリーフキーと呼ばれる場合もある。
【００１０】
リーフに対応する各情報処理装置には、対応するリーフからルートまでの経路にあるノードに割り当てられたノードキーが与えられる。図１の構成では、リーフ８から１５までに割り当てられた８台の情報処理装置があり、ノード１から１５までにそれぞれノードキーが割り当てられており、リーフ８に対応する情報処理装置１０１には、ノード１，２，４，８に割り当てられた４個のノードキーが与えられる。また、リーフ１２に対応する情報処理装置１０２には、ノード１，３，６，１２に割り当てられた４個のノードキーが与えられる。各情報処理装置は、これらのノードキーを安全に保管する。
【００１１】
このノードキーの配布処理を伴うセッティングを用いて、選択した情報処理装置のみが取得可能な情報を送信する方法を図２を参照して説明する。たとえば、特定の音楽、画像データ等のコンテンツを暗号化した暗号化コンテンツをブロードキャスト配信、あるいはＤＶＤ等の記録媒体に格納して誰でも取得可能な状態で流通させ、その暗号化コンテンツを復号するための鍵（コンテンツキーＫｃ）を特定のユーザ、すなわち正規なコンテンツ利用権を持つユーザまたは情報処理装置にのみ提供する構成を想定する。
【００１２】
図２に示すリーフ１４に割り当てられた情報処理装置を不正な機器として、排除（リボーク）し、それ以外の情報処理装置が正規な情報処理装置であるとする。この場合、リーフ１４に割り当てられた情報処理装置ではコンテンツキーＫｃを取得できないが、他の情報処理装置ではコンテンツキーＫｃを取得できる暗号文を生成して、その暗号文をネットワークを介してあるいは記録媒体に格納して配布する。
【００１３】
この場合、リボーク（排除）される情報処理装置が持つノードキー（図２では×印で表現）以外のノードキーのうち、できるだけ多数の情報処理装置に共有されているもの、すなわち木の上部にあるものをいくつか用いて、コンテンツキーを暗号化して送信すればよい。
【００１４】
図２に示す例では、ノード２，６，１５のノードキーを用いて、コンテンツキーＫｃを暗号化した暗号文のセットを生成して提供する。すなわち、
Ｅ（ＮＫ２，Ｋｃ），Ｅ（ＮＫ６，Ｋｃ），Ｅ（ＮＫ１５，Ｋｃ）
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。またＮＫｎは、図に示す第ｎ番のノードキーを意味する。従って、上記式は、
コンテンツキーＫｃをノードキーＮＫ２で暗号化した暗号化データＥ（ＮＫ２，Ｋｃ）と、コンテンツキーＫｃをノードキーＮＫ６で暗号化した暗号化データＥ（ＮＫ６，Ｋｃ）と、コンテンツキーＫｃをノードキーＮＫ１５で暗号化した暗号化データＥ（ＮＫ１５，Ｋｃ）と、を含む３つの暗号文のセットであることを意味している。
【００１５】
上記３つの暗号文を作り、例えば同報通信路を用いて全情報処理装置に送信すれば、リボーク対象でない情報処理装置（図２示すリーフ８〜１３および１５に対応する情報処理装置）はいずれかの暗号文を自分が持つノードキーで復号することが可能であり、コンテンツキーＫｃを得ることができる。しかし、リボーク（排除）されたリーフ１４に対応する情報処理装置は、上記の３つの暗号文に適用された３つのノードキーＮＫ２、ＮＫ６、ＮＫ１５のいずれも保有していないので、この暗号文を受領しても、復号処理を行うことができずコンテンツキーＫｃを得ることはできない。
【００１６】
これまでに学会等で公開されているブロードキャストエンクリプション（Broadcast Encryption）方式としては例えば非特許文献１に記載の方式がある。上述のブロードキャストエンクリプション（Broadcast Encryption）方式は、非特許文献１に記載されている名称によれば、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と呼ばれる。
【００１７】
しかし、このような木構造を用いて情報配信を行なう場合、リーフに対応する情報処理装置（ユーザ機器）が増大すると同報送信すべきメッセージが増大し、また各情報処理装置（ユーザ機器）において安全に格納すべきノードキーなどの鍵情報も増大してしまうという問題がある。
【００１８】
例えば、上述のＣＳ方式では、システムの全受信機（受信者）数をＮとし、そのうち排除（リボーク）される、即ち、同報通信される秘密情報を受け取ることができない受信機の数をｒとしたときに、同報通信すべきメッセージ（暗号文）の数がｒｌｏｇ（Ｎ／ｒ）であり、各受信機が安全なメモリに保持すべき鍵の数が、ｌｏｇＮ＋１となる。なお、本明細書においては、特に断りのない限りｌｏｇの底は２である。
【００１９】
このように、木構造を用いた情報配信構成では、リーフに対応する情報処理装置（ユーザ機器）の増大に伴う配信メッセージの増大や、各情報処理装置（ユーザ機器）において安全に格納すべきノードキーなどの鍵情報の増大という問題が存在する。例えば、受信機において格納すべきノードキーを増大させると、各機器においてセキュアに管理すべき情報量の増大を招き、ユーザ機器のセキュアメモリ領域の増加などの処置が必要となりユーザ機器の製造コスト増大などの問題が発生する。
【非特許文献１】Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｃｒｙｐｔｏ  ２００１，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２１３９，Ｓｐｒｉｎｇｅｒ，２００１  ｐｐ．４１−６２「Ｄ．Ｎａｏｒ，Ｍ．Ｎａｏｒ  ａｎｄ  Ｊ．Ｌｏｔｓｐｉｅｃｈ著"Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  Ｔｒａｃｉｎｇ  Ｓｃｈｅｍｅｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ｒｅｃｅｉｖｅｒｓ"」
【発明の開示】
【発明が解決しようとする課題】
【００２０】
本発明は、このような状況に鑑みてなされたものであり、ブロードキャストエンクリプション（Broadcast Encryption）方式の基本的な方式として知られるＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）に対して、下位ノードキーから上位ノードキーを一方向性関数によって算出可能な構成とした一方向木を適用することにより、各受信機が安全に保持すべき鍵の数を減少させることを可能とした情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の第１の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とする情報処理方法にある。
【００２２】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする。
【００２３】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、２分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の２つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Ｆの適用によって算出可能に設定した一方向木を生成するステップであることを特徴とする。
【００２４】
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Ｎの２分木構成を持つ階層木においてＮ個の値：ｘＮ〜ｘ２Ｎ−１を決定するステップと、ｉ＝２Ｎ−１とする初期設定ステップと、ｉ＝（２Ｎ−１）〜１において、ｉ＝偶数の場合に、一方向性関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットするステップと、を有し、上記各ステップの処理によって、末端ノード数Ｎの２分木構成の全ノード数２Ｎ−１に対応するノードキーｘ１〜ｘ２Ｎ−１を決定するステップを含むことを特徴とする。
【００２５】
さらに、本発明の情報処理方法の一実施態様において、前記提供ノードキー決定ステップは、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードｉが含まれノード２ｉが含まれないノードに対応するノードキーのみを提供するステップであることを特徴とする。
【００２６】
さらに、本発明の情報処理方法の一実施態様において、前記一方向性関数Ｆは、ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする。
【００２７】
さらに、本発明の第２の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法にある。
【００２８】
さらに、本発明の復号処理方法の一実施態様において、前記暗号文選択ステップは、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号ｉと一致するものを見つけるステップであることを特徴とする。
【００２９】
さらに、本発明の復号処理方法の一実施態様において、前記ノードキー算出ステップは、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、受信機からルートに至るパス上のノードにノード番号２ｋｉが含まれるが、２ｋ＋１ｉは含まれない最小のｋを見つけるステップと、自己の保持するノードキーＮＫ２ｋｉの値に対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出するステップとを含むことを有することを特徴とする。
【００３０】
さらに、本発明の復号処理方法の一実施態様において、記一方向性関数Ｆは、ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする。
【００３１】
さらに、本発明の第３の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成手段と、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定手段と、
を有することを特徴とする情報処理装置にある。
【００３２】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段と、前記暗号文を前記受信機に提供する暗号文提供手段と、を有することを特徴とする。
【００３３】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、２分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の２つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Ｆの適用によって算出可能に設定した一方向木を生成する構成を有することを特徴とする。
【００３４】
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Ｎの２分木構成を持つ階層木においてＮ個の値：ｘＮ〜ｘ２Ｎ−１を決定し、ｉ＝２Ｎ−１とする初期設定を実行し、ｉ＝（２Ｎ−１）〜１において、ｉ＝偶数の場合に、一方向性関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットする処理によって、末端ノード数Ｎの２分木構成の全ノード数２Ｎ−１に対応するノードキーｘ１〜ｘ２Ｎ−１を決定する構成であることを特徴とする。
【００３５】
さらに、本発明の情報処理装置の一実施態様において、前記提供ノードキー決定手段は、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードｉが含まれノード２ｉが含まれないノードに対応するノードキーのみを提供する構成であることを特徴とする。
【００３６】
さらに、本発明の情報処理装置の一実施態様において、前記一方向性関数Ｆは、ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする。
【００３７】
さらに、本発明の第４の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出手段と、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置にある。
【００３８】
さらに、本発明の情報処理装置の一実施態様において、前記暗号文選択手段は、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号ｉと一致するものを見つける処理を実行する構成であることを特徴とする。
【００３９】
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、受信機からルートに至るパス上のノードにノード番号２ｋｉが含まれるが、２ｋ＋１ｉは含まれない最小のｋを見つける処理を実行し、自己の保持するノードキーＮＫ２ｋｉの値に対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成であることを有することを特徴とする。
【００４０】
さらに、本発明の情報処理装置の一実施態様において、前記一方向性関数Ｆは、ＭＤ４またはＭＤ５またはＳＨＡ−１であることを特徴とする。
【００４１】
さらに、本発明の第５の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００４２】
さらに、本発明のコンピュータ・プログラムの一実施態様において、前記コンピュータ・プログラムは、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする。
【００４３】
さらに、本発明の第６の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００４４】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００４６】
本発明の構成では、ブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応するノードキーを特定の関係を持つ値に設定した一方向木を生成し、この一方向木を適用して暗号文の生成および提供を行なう。すなわち、上位ノードキーの値を、下位ノードキーの値に一方向性関数Ｆを適用して算出可能な値に設定した一方向木を生成した。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを提供する構成とした。受信機は、受領した処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出することが可能となる。このように本発明の構成を適用することにより、各受信機が安全に保持すべき情報量（ノードキー）の削減が実現する。
【発明を実施するための最良の形態】
【００４７】
以下、図面を参照しながら本発明の情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムの詳細について説明する。
【００４８】
なお、説明は、以下の項目に従って行なう。
１．Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要
２．ＣＳ方式に対して一方向木を適用することによる鍵（ノードキー）数の削減構成の概要
３．一方向木を適用した暗号文の配信処理
【００４９】
［１．Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要］
まず既存の階層型木構造を適用したブロードキャストエンクリプション（Broadcast Encryption）方式の基本的な方式として知られているＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要について説明する。
【００５０】
なお、以下の説明においては、簡単のために、階層型木構造のリーフに対応して設定される情報処理装置（受信機）の総数Ｎは２のべき乗の数であるとする。また、以下の説明において、関数ｌｏｇの底はすべて２である。なお、階層型木構造のリーフに対応する機器は、以下に説明する秘密情報の復号処理を実行可能であれば、様々な機器、例えばＰＣ、携帯端末など、様々な情報処理装置の設定が可能である。ここでは、これらを総称して受信機として説明する。また、本発明における暗号文配信処理とは、通信ネットワークを介した通信による提供処理のみならず、記録媒体に格納した暗号文の提供処理も含むものである。
【００５１】
図３以下を参照して、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要について説明する。
【００５２】
前述の非特許文献１［  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｃｒｙｐｔｏ  ２００１，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２１３９，Ｓｐｒｉｎｇｅｒ，２００１  ｐｐ．４１−６２「Ｄ．Ｎａｏｒ，Ｍ．Ｎａｏｒ  ａｎｄ  Ｊ．Ｌｏｔｓｐｉｅｃｈ著"Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  Ｔｒａｃｉｎｇ  Ｓｃｈｅｍｅｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ｒｅｃｅｉｖｅｒｓ"」］に記載されたＣｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式では、図３に示すように、階層型木構造として各ノードが２つに分岐する形を持つ２分木を用いる。図３は、受信機数Ｎ＝１６の例である。この２分木の各リーフ（葉）に各受信機を割り当てる（図３におけるｕ１〜ｕ１６）。また、木の各ノード（節）を用いて、「そのノードを頂点とする部分木のリーフ（葉）に割り当てられた受信機からなる集合」を表す。図３におけるノードｉ２０１は、受信機ｕ５とｕ６からなる集合を表す。
【００５３】
そして、図３に示す２分木の各構成ノードに鍵（ノードキー）が定義される。各受信機には、各受信機が割り当てられているリーフ（葉）から木のルート（頂点）に至るパス上のノードに割り当てられたノードキーが与えられ、受信機はこれらのノードキーを安全なメモリに保持する。木の定義やノードキーの定義、受信機の割り当てやノードキーの配布などは、Ｔｒｕｓｔｅｄ  Ｃｅｎｔｅｒ（ＴＣ）と呼ばれる信頼される管理センタが行なう。
【００５４】
図４に示すように、階層木には１６台の受信機ｕ１〜ｕ１６が割り当てられ、ノードは１〜３１の３１個、存在する。受信機ｕ４には、ノード１，２，４，９，１９に割り当てられた５個のノードキーが与えられる。すなわち、全受信機数をＮとした場合には、各受信機はｌｏｇＮ＋１個のノードキーを保持することになる。
【００５５】
図５を用いて、このセッティングを用いて秘密情報（たとえば、暗号化されたコンテンツを復号するためのコンテンツキー）をどのようにリボークされない受信機に送信するかについて説明する。ここでは、管理センタ（ＴＣ）が秘密情報の送信者になるとする。いま、受信機ｕ２，ｕ１１，ｕ１２がリボークされる受信機とする。すなわち、受信機ｕ２，ｕ１１，ｕ１２を不正な機器として排除（リボーク）し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
【００５６】
管理センタ（ＴＣ）が秘密情報の送信を行なう場合、リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文のセットを生成して同報送信する。
【００５７】
リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のリーフまたはノードに割り当てられたノードキーを使用すると、これらは、リボークすべき受信機が持つキーであるため、リボーク機器において秘密情報を入手できてしまう。従って、これらのキーを用いずに暗号文のセットを生成して同報送信する。
【００５８】
リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードおよびパスを木から除外すると、１つ以上の部分木が残る。例えば、ノード５を頂点とする部分木、あるいはノード１２を頂点とする部分木などである。
【００５９】
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図５に示す例では、ノード５，７，９，１２，１６に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーＫｃであるとし、ノード５，７，９，１２，１６に割り当てられたノードキーをＮＫ５，ＮＫ７，ＮＫ９，ＮＫ１２，ＮＫ１６とすると、秘密情報の送信者は、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ７，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１２，Ｋｃ），Ｅ（ＮＫ１６，Ｋｃ）
の暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【００６０】
上記暗号文セットは、リボーク受信機ｕ２，ｕ１１，ｕ１２のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
【００６１】
受信機は、伝送された暗号文のうち、自分が復号できるもの、すなわち、自身が割り当てられたリーフ（葉）からルートに至るまでのパス上のノードに対応するノードキーを用いて暗号化されたものを復号して秘密情報を得ることができる。上記の例では、受信機ｕ４はノード９のノードキーを保持しているので、これを用いて暗号化された暗号文Ｅ（ＮＫ９，Ｋｃ）を復号することができる。このように、リボークされていない受信機が復号できる暗号文は受信した暗号文セット中に必ずひとつ存在する。
【００６２】
［２．ＣＳ方式に対して一方向木を適用することによる鍵（ノードキー）数の削減構成の概要］
上述したＣＳ方式を観察すると、以下のことがわかる。すなわち、ＣＳ方式において、あるノードを頂点とする部分木の葉（リーフ）は、そのノードの先祖ノードを頂点とする部分木の葉でもある。
【００６３】
例えば、図６に示すように、ノードｊ２３２を頂点とする部分木Ｐ２３５の葉（リーフ）としてのｕ５，ｕ６は、そのノードｊ２３２の先祖ノード、例えばノードｉを頂点とする部分木Ａ２３０の葉でもある。
【００６４】
このため、あるノードのノードキーを保持している受信機は、その先祖ノードのノードキーも保持する。たとえば図６に示すように、ノードｉ２３１がノードｊ２３２の先祖であるとき、ノードｊ２３２のノードキーを持つ受信機（ｕ５，ｕ６）は必ずノードｉ２３１のノードキーも持つ。ただし、この逆は必ずしも成り立たない。
【００６５】
このような特性を有しているため、例えば、木の各ノードに設定するノードキーからその先祖のノードのノードキーを計算で導出できるように各ノードキーを設定すれば、独立に複数のノードキーを持つよりも鍵数、すなわち受信機のメモリを削減することが可能となる。
【００６６】
ただし、上位のノードのノードキーからその子孫ノードのノードキーを導出できないようにする必要がある。これは、例えば図６において、ノードｉ２３１がノードｊ２３２の先祖であるとき、ノードｊ２３２のノードキーを持つ受信機（ｕ５，ｕ６）は必ずノードｉ２３１のノードキーも持つが、一方、ノードｉ２３１のノードキーを持つ受信機（ｕ１〜ｕ８）が必ずノードｊ２３２のノードキーも持つとは限らないからである。図６の構成において、受信機：ｕ１〜ｕ８中、ノードｊ２３２のノードキーを持つことが許容されている受信機はｕ５，ｕ６のみであり、他の受信機ｕ１〜ｕ４，ｕ７〜ｕ８は、ノードｊ２３２のノードキーを持つことが許容されていないノードであり、これらの受信機において、ノードｉ２３１のノードキーからノードｊ２３２のノードキーを導出できるようにすることは許容できないからである。
【００６７】
このため本発明では、ｘからｙを計算するのは簡単だが、その逆計算は困難であるような関数、すなわち一方向性関数：ｙ＝Ｆ（ｘ）を用いて各ノードのノードキーを設定した木構造を構成する。
【００６８】
このように、本発明では、一方向木を用いる。なお、「一方向木」とは、一般的な用語ではなく、本発明の説明のために用いる木構造の１つの特性を定義した言葉である。
【００６９】
「一方向木」の定義について説明する。
Ｎ個の葉を持つ完全２分木が一方向木であるとは、図７に示すように、最上位のノードであるルートを１、それ以降のノードを上位の左から順に２，３，...，２Ｎ−１と幅優先（breadth first order）で各ノードにノード番号を設定した場合に、ノードｉに対応する値、すなわちノード対応値としてそれぞれＣビット（たとえば１２８ビット）の値ｘｉ（ｉ＝１，２，...，２Ｎ−１）を設定し、ｉ＝１，２，...，Ｎ−１について、ｘｉ＝Ｆ（ｘ２ｉ）が成り立つ木構造をいうものとする。このノード対応値ｘｉ（ｉ＝１，２，...，２Ｎ−１）をノードｉのノードキーとして設定する。
【００７０】
ここで、関数Ｆは、Ｃビットの入力に対して、Ｃビットの出力を出す一方向性関数である。
【００７１】
このような関数の例として、任意の長さの入力に対し１２８ビットの出力を出すＭＤ４，ＭＤ５や、１６０ビットの出力を出すＳＨＡ−１などがあり、これらの関数を適用することができる。なお、これらの関数については、たとえば、Ａ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ Ｏｏｒｓｃｈｏｔ ａｎｄ Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，"Ｈａｎｄｂｏｏｋ ｏｆＡｐｐｌｉｅｄ Ｃｒｙｐｔｏｇｒａｐｈｙ"，ＣＲＣ Ｐｒｅｓ，１９６６に紹介されている。なお、これらの関数は一方向性関数、あるいはハッシュ関数と呼ばれる。
【００７２】
一方向木を構成する各ノードｉに対応して設定される関数Ｆとノード対応値ｘｉの関係を図で表すと、図７のようになる。この一方向木を構成する木構造は、ｘｉ＝Ｆ（ｘ２ｉ）が成り立つ木構造である。
例えば、
ｘ８＝Ｆ（ｘ１６）
ｘ４＝Ｆ（ｘ８）
ｘ２＝Ｆ（ｘ４）
ｘ１＝Ｆ（ｘ２）
のように、２分木の構成ノードｉに対応して設定されるノード対応値ｘｉは、ｘｉ＝Ｆ（ｘ２ｉ）が成り立つように設定される。
【００７３】
葉（リーフ）がＮ個である２分木において、一方向木を構成するアルゴリズムの例を下記に示す。このアルゴリズムにおいて、入力と出力は、以下のように設定される。
［入力］
２分木を構成する葉（リーフ）の数Ｎ、
Ｃビット出力の一方向性関数Ｆ、
［出力］
２分木を構成する全ノード（葉（リーフ）を含む）数：２Ｎ−１に対応する２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１
である。
【００７４】
上記の［入力］に基づいて、上記の［出力］を得るアルゴリズムは以下のようになる。
１．Ｎ個のＣビットの数ｘＮ，ｘＮ＋１，...，ｘ２Ｎ−１を独立に選択する。
２．ｉをカウンタとして２Ｎ−１から１まで１ずつ減少させながら下記の処理を行う。
（２−１）もしｉが偶数なら、関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットする。
３．２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１を出力して終了する。値ｘｉが一方向木のノードｉに対応する値、すなわちノード対応値となる。ここで、葉の数がＮである完全２分木のノードの総数は２Ｎ−１である点に注意されたい。
【００７５】
図８に、上記アルゴリズムのフローを示す。フローの各ステップについて説明する。ステップＳ１０１において、２分木を構成する葉（リーフ）の数Ｎと、Ｃビット出力の一方向性関数Ｆを入力する。
【００７６】
ステップＳ１０２において、Ｎ個のＣビットの数ｘＮ，ｘＮ＋１，...，ｘ２Ｎ−１を独立に選択する。ステップＳ１０３において、値：ｉの初期設定として、ｉ＝２Ｎ−１とする設定を行なう。
【００７７】
ステップＳ１０４において、ｉは偶数か否かを判定する。ｉが偶数の場合はステップＳ１０５に進み、ｉが奇数の場合はステップＳ１０６に進む。
【００７８】
ｉが偶数の場合は、ステップＳ１０５において、関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットする。
【００７９】
ステップＳ１０６では、ｉ＝１であるか否かを判定し、ｉ＝１でない場合は、ステップＳ１０７に進み、値ｉをｉ＝ｉ−１とする更新処理を実行し、ステップＳ１０４以下の処理を繰り返し実行する。
【００８０】
ステップＳ１０６でｉ＝１であると判定すると、ステップＳ１０８に進み、２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１を各ノードｉに対応するノード対応値ｘｉとして出力する。
【００８１】
この２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１が、２Ｎ−１個のノード（リーフを含む）の各ノードｉ（ｉ＝１〜２Ｎ−１）各々に対応するノードキーとして設定される。
【００８２】
この処理によって、一方向木を構成する各ノードｉに対応するノード対応値ｘｉが決定され、これをノードキーとして設定することで、図７のような木構造、すなわち、各ノードｉに対応するノードキーが、ｘｉ＝Ｆ（ｘ２ｉ）が満足する木構造が完成する。
【００８３】
なお、上述の一方向木の設定処理例では、図７に示すように、下位ノードから右上がりの上位ノードを一方向性関数Ｆを適用して算出可能な構成としたが、下位ノードから左上がりの上位ノードを一方向性関数Ｆを適用して算出可能な構成としてもよい。
【００８４】
［３．一方向木を適用した暗号文の配信処理］
次に、上述した処理によって２分木の各ノードｉに対応するノードキーｘｉを設定した木構造を用いて、暗号文を配信する処理について、説明する。なお、説明は、
（１）セットアップ処理
（２）情報配信処理
（３）情報受信および復号処理
の各処理毎に説明する。
【００８５】
（１）セットアップ処理
セットアップ処理は、システムの立ち上げ時に１度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したＤＶＤなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティテイとは独立した管理センタ（ＴＣ）によって実行してもよいし、また、暗号文配信を実行するエンティテイが実行してもよい。ここでは一例として、セットアップ処理を管理センタ（ＴＣ）が実行する例として説明する。
【００８６】
（１−１）ステップ１
管理センタ（ＴＣ）は、２分木でありＮ個の葉を持つ木を定義する。木中の各ノードについてｋ（ｋ＝１，２，...，２Ｎ−１）と、ノード対応の番号を設定する。ただし２分木における最上位ノードであるルートを１とし、以降を幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で番号設定を行う。すなわち、図９に示すようなノード対応番号の設定を行なう。この処理により２分木中の各ノードに１〜２Ｎ−１のノード番号が設定される。
【００８７】
受信機ｕｍ（ｍ＝１，２，...，Ｎ）を木の各葉（リーフ）に割り当てる。また、Ｃビット出力の一方向関数Ｆを選択して公開する。Ｃは任意の数であり、一方向性関数は、例えばＭＤ４、ＭＤ５、ＳＨＡ−１など既存の一方向性関数（ハッシュ関数）の適用が可能である。
【００８８】
（１−２）ステップ２
管理センタ（ＴＣ）は、先に図８のフローを参照して説明したアルゴリズムに従って、葉がＮ個である２分木における各ノードｉの対応値ｘｉを算出し、これを各ノードのノードキーとした一方向木を構成する。すなわち、
（ａ）２分木を構成する葉（リーフ）の数Ｎ、
（ｂ）Ｃビット出力の一方向性関数Ｆ、
を入力として、２分木を構成する全ノード（葉（リーフ）を含む）数：２Ｎ−１に対応する２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１
を決定する。
【００８９】
管理センタ（ＴＣ）は、図８を参照して説明したアルゴリズムに従って決定した２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１を、ステップ１で作成した木の各ノードｉに対応する鍵、すなわちノードキーＮＫｉとする。
【００９０】
図９において、関数Ｆに沿って示されている直線矢印は、下位ノードのノード対応値ｘｉ（ノードキー）を入力として一方向性関数Ｆを適用することで、上位ノードのノード対応値ｘ（１／２）ｉ（ノードキー）が求められることを示している。
例えば、
ｘ８＝Ｆ（ｘ１６）
ｘ４＝Ｆ（ｘ８）
ｘ２＝Ｆ（ｘ４）
ｘ１＝Ｆ（ｘ２）
となる。
【００９１】
（１−３）ステップ３
管理センタ（ＴＣ）は、木の末端ノードとしての葉（リーフ）に対応して設定される受信機ｕｍ（ｍ＝１，２，...，Ｎ）に対し、以下のルールに基づいてノードキーを与える。受信機は図９に示すように木の葉（リーフ）、すなわちノード番号１６〜３１に割り当てられている。図９に示す例では、受信機は、ノード番号１６〜３１に割り当てられたｕ１〜ｕ１６の１６個設定される。
【００９２】
なお、受信機ｕｍが割り当てられた葉からルートへのパスをパスｍ［ｐａｔｈ−ｍ］と表す。また、パスｍ［ｐａｔｈ−ｍ］上のノードの集合をパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］と表す。
【００９３】
図９の例では、
ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝
ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝
ＰａｔｈＮｏｄｅｓ−１１＝｛１，３，６，１３，２６｝
となる。
【００９４】
図９に示す実線ライン３０１が、受信機ｕ１のパス１［ｐａｔｈ−１］３０１であり、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝によって構成される。点線ライン３０２が、受信機ｕ４のパス４［ｐａｔｈ−４］３０２であり、ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝によって構成される。破線ライン３０３が、受信機ｕ１１のパス１１［ｐａｔｈ−１１］３０３であり、ＰａｔｈＮｏｄｅｓ−１１＝｛１，３，６，１３，２６｝によって構成される。
【００９５】
管理センタ（ＴＣ）は、各受信機ｕｍに対し、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、かつ、
（ｂ）ノード２ｉが含まれていないノード
これらの条件（ａ），（ｂ）を満足するノードｉのノードキーＮＫｉを与える。受信機は与えられたノードキーを安全に保持する。
【００９６】
図１０（ｂ）に示すように、上記の例では、
受信機ｕ１にはＮＫ１６が、
受信機ｕ４にはＮＫ４，ＮＫ９，ＮＫ１９が、
受信機ｕ１１にはＮＫ１，ＮＫ６，ＮＫ２６が、
受信機ｕ１６にはＮＫ１，ＮＫ３，ＮＫ７，ＮＫ１５，ＮＫ３１が
それぞれ与えられる。
【００９７】
例えば、受信機ｕ４において、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、
の条件を満足するノードは、ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝の各ノードである。
この中で、
（ｂ）ノード２ｉが含まれていないノード
は、ノード４，９，１９となる。ノード１，２については、
ノード１は、ノード２×１に対応するノード２が、ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝中に含まれ、また、
ノード２は、ノード２×２に対応するノード４が、ＰａｔｈＮｏｄｅｓ−４＝｛１，２，４，９，１９｝中に含まれる。
【００９８】
従って、受信機ｕ４において、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、かつ、
（ｂ）ノード２ｉが含まれていないノード
これらの条件（ａ），（ｂ）を満足するノードのノードキーは、ＮＫ４，ＮＫ９，ＮＫ１９となり、受信機ｕ４には、ノードキーＮＫ４，ＮＫ９，ＮＫ１９が与えられる。
【００９９】
また、受信機ｕ１において、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、
の条件を満足するノードは、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝の各ノードである。
この中で、
（ｂ）ノード２ｉが含まれていないノード
は、ノード１６のみ、すなわち、受信機ｕ１が設定されたノード（リーフ）１６のみとなる。ノード１，２，４，８，については、
ノード１は、ノード２×１に対応するノード２が、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝中に含まれ、また、
ノード２は、ノード２×２に対応するノード４が、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝中に含まれ、また、
ノード４は、ノード２×４に対応するノード８が、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝中に含まれ、また、
ノード８は、ノード２×８に対応するノード１６が、ＰａｔｈＮｏｄｅｓ−１＝｛１，２，４，８，１６｝中に含まれる。
【０１００】
従って、受信機ｕ１において、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、かつ、
（ｂ）ノード２ｉが含まれていないノード
これらの条件（ａ），（ｂ）を満足するノードのノードキーは、ＮＫ１６となり、受信機ｕ１には、ノードキーＮＫ１６のみが与えられる。
【０１０１】
以下、同様に各葉（リーフ）対応の受信機ｕｍに対して、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、かつ、
（ｂ）ノード２ｉが含まれていないノード
これらの条件（ａ），（ｂ）を満足するノードのノードキーを与える。
【０１０２】
図１０（ａ）に示す２分木を参照して説明すると、受信機ｕｍが割り当てられた末端ノードとしての葉（リーフ）に対応するノードキーは必ず与えられ、この葉からルートへのパスを、１段ずつ左に上がるか右に上がるかと表したときに、左に上がった先のノードに対応するノードキーが葉（リーフ）としての受信機ｕｍに与えられることになる。
【０１０３】
図１０（ａ）において、受信機ｕ１のパス１［ｐａｔｈ−１］は、すべて右上がりのみでルート（ノード１）に到達するので、受信機ｕ１のノード対応のノードキーＮＫ１６のみが与えられる。
また、受信機ｕ１１（ノード２６）のパス１１［ｐａｔｈ−１１］は、
ノード２６→ノード１３（右上がり）
ノード１３→ノード６（左上がり）
ノード６→ノード３（右上がり）
ノード３→ノード１（左上がり）
であるので、
左に上がった先のノードに対応するノードキーは、ノード６のノードキーＮＫ６と、ノード１のノードキーＮＫ１であり、受信機ｕ１１には、自己ノード２６のノードキーＮＫ２６と、ノードキーＮＫ６と、ノードキーＮＫ１が与えられる。ただし、ここで受信機が割り当てられた葉を「自己ノード」と呼んでいる。
【０１０４】
このように、各受信機ｕｍに対応するパスｍ（ｐａｔｈ−ｍ）にいくつの左上がりのパスが含まれるかによって、受信機ｕｍに与えられるノードキーの個数が変化する。この木が、葉の数Ｎの完全２分木であるため、すべての受信機のパスｍ（ｐａｔｈ−ｍ）を考えると、左上がりのパスを１、右上がりのパスを０と表したときに、ｌｏｇＮ桁（ビット）の数が００...０から１１...１まで１つずつ現れる。すなわち、パスｍ（ｐａｔｈ−ｍ）のビット表現は、
｛０，１｝ｌｏｇＮ
で表せる。
【０１０５】
例として、図１０に示す１６個の受信機ｕ１〜ｕ１６に対応するパスｍ（ｐａｔｈ−ｍ）のビット表現を図１１に示す。
【０１０６】
例えば、受信機ｕ１からルートへのパス１（ｐａｔｈ−１）は、［００００］となる。図１０を参照して説明すると、受信機ｕ１からルートへのパス１（ｐａｔｈ−１）は、すべて右上がりのパス４個（１６→８，８→４，４→２，２→１）によって設定されるので、右上がりのパスを０と表した設定では、受信機ｕ１からルートへのパス１（ｐａｔｈ−１）は、［００００］となる。
【０１０７】
受信機ｕ２からルートへのパス２（ｐａｔｈ−２）は、［１０００］となる。図１０（ａ）を参照して説明すると、受信機ｕ２からルートへのパス２（ｐａｔｈ−２）は、最初のみが、左上がりのパス（１７→８）であり、残りは、すべて右上がりのパス３個（８→４，４→２，２→１）によって設定されるので、受信機ｕ２からルートへのパス２（ｐａｔｈ−２）は、［１０００］となる。
【０１０８】
以下、同様に、図１０に示す１６個の受信機ｕ１〜ｕ１６に対応するパスｍ（ｐａｔｈ−ｍ）のビット表現が決定される。
【０１０９】
図１１は、図１０に示す１６個の受信機ｕ１〜ｕ１６に対応するパスｍ（ｐａｔｈ−ｍ）のビット表現と、受信機ｕ１〜ｕ１６が保持するノードキーの対応を示す図である。図１１に示すように、受信機ｕ１〜ｕ１６に対応するパスｍ（ｐａｔｈ−ｍ）のビット表現は、受信機毎に異なる［００００］〜［１１１１］の１６種類のビット表現となる。
【０１１０】
パスｍ（ｐａｔｈ−ｍ）のビット表現におけるビット値［１］の数をパスｍ（ｐａｔｈ−ｍ）の［重み］と定義する。
【０１１１】
本発明の構成では、葉に割り当てられた１つのノードキー（リーフキーとも呼ばれる）に加え、各葉対応の受信機ｕｍに対応するパスｍ（ｐａｔｈ−ｍ）のビット表現における重みの数（１の数）のノードキーが受信機に与えられる。
【０１１２】
例えば、図１０（ａ）に示す２分木構成とし、図１１に示すような各受信機ｕｍに対応するパスｍ（ｐａｔｈ−ｍ）のビット表現が設定される構成において、パスｍ（ｐａｔｈ−ｍ）のビット表現がオール０である受信機ｕ１には、受信機ｕ１に対応する葉（１６）に割り当てられた１つのノードキー（リーフキー）のみが与えられ、その他のノードキーは与えられない。
【０１１３】
ビット表現に含まれる１が１つだけ含むｌｏｇＮ個の受信機（ｕ２，ｕ３，ｕ５，ｕ９）には、自己ノードのノードキーに加えて１つの上位ノードのノードキーが与えられる。例えばｕ２には、受信機ｕ２に対応するノード１７に割り当てられたノードキーＮＫ１７と、１つの上位ノードキーＮＫ８が与えられる。
【０１１４】
以下同様であり、自己ノード（リーフ）のノードキーに加えて上位のノードキーをｊ個（ｊ＝０，１，...，ｌｏｇＮ）与えられる受信機の数は、下式
【数１】
2005252916.tif 000003
で表される。
なお、上記式は、ｌｏｇＮ個からｊ個を選択する場合の数を示す式である。
【０１１５】
具体的には、図１０（ａ）に示す２分木構成（Ｎ＝１６）において、
ｌｏｇ１６＝４であり、
ｊ＝１である上位ノードキーを１個のみ与えられる受信機は、（ｕ２，ｕ３，ｕ５，ｕ９）の４つとなる。
ｊ＝２である上位ノードキーを２個与えられる受信機は、（ｕ４，ｕ６，ｕ７，ｕ１０，ｕ１１，ｕ１３）の６つとなる。
ｊ＝３である上位ノードキーを３個与えられる受信機は、（ｕ８，ｕ１２，ｕ１４，ｕ１５）の４つとなる。
ｊ＝４である上位ノードキーを４個与えられる受信機は、（ｕ１６）の１つとなる。
なお、上位ノードキーを１つも与えられないノードｕ１は自己のノードキーのみを保有すればよい。
【０１１６】
このように、本発明のノードキー設定処理を行なった構成では、各葉（リーフ）に対応付けられた受信機は、自己ノード（リーフ）のノードキーに加えてｊ個、つまりトータルでｊ＋１個の鍵を保持すればよい。ただし、ｊは前述の条件（ａ）（ｂ）を共に満たすリーフ以外のノードｉの個数であり、パスｍ（ｐａｔｈ−ｍ）に含まれるリーフ以外のノードの数はｌｏｇＮであるため、ｊは０以上ｌｏｇＮ以下の数となる。
【０１１７】
前述したように、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）では、各受信機に与えられるノードキーは、受信機数をＮとした場合、
ｌｏｇＮ＋１個
である。
一方、本方式では、受信機数をＮとした場合、各受信機に与えられるノードキーは、
ｊ＋１個
である。
【０１１８】
本方式によって、各受信機の保持ノードキーは、
（ｌｏｇＮ＋１）−（ｊ＋１）
＝ｌｏｇＮ−ｊ個
の削減が可能となる。
【０１１９】
この削減された分のノードキーは、各受信機が保持するノードキーに対して一方向性関数Ｆを適用することによって取得することができる。
【０１２０】
ところで、下記式
【数２】
2005252916.tif 000004
である点に注意されたい。すなわち、受信機数Ｎの２分木構成において、鍵数をｊ個削減することのできる受信機の数も、
【数３】
2005252916.tif 000005
によって示されることになる。
【０１２１】
上述したセットアップ処理のフローを図１２に示す。図１２のフローの各ステップについて説明する。
【０１２２】
まず、ステップＳ２０１において、管理センタ（ＴＣ）は、Ｎ個の葉を持つ２分木を定義する。２分木における最上位ノードであるルートを１とし、以降を幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で番号設定を行う。すなわち、図１０（ａ）に示すようなノード対応番号の設定を行なう。
【０１２３】
さらに、受信機ｕｍ（ｍ＝１，２，...，Ｎ）を木の各葉（リーフ）に割り当てる。また、Ｃビット出力の一方向関数Ｆを選択して公開する。Ｃは任意の数であり、一方向性関数は、例えばＭＤ４、ＭＤ５、ＳＨＡ−１など既存の一方向性関数（ハッシュ関数）の適用が可能である。
【０１２４】
次にステップＳ２０２において、管理センタ（ＴＣ）は、先に図８のフローを参照して説明したアルゴリズムに従って、葉がＮ個である２分木における各ノードｉの対応値ｘｉを算出し、これを各ノードのノードキーとした一方向木を構成する。すなわち、
（ａ）２分木を構成する葉（リーフ）の数Ｎ、
（ｂ）Ｃビット出力の一方向性関数Ｆ、
を入力として、２分木を構成する全ノード（葉（リーフ）を含む）数：２Ｎ−１に対応する２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１
を決定する。
【０１２５】
管理センタ（ＴＣ）は、決定した２Ｎ−１個のＣビットの数ｘ１，ｘ２，...，ｘ２Ｎ−１を、ステップＳ２０１で作成した木の各ノードｉに対応する鍵、すなわちノードキーＮＫｉとする。
【０１２６】
ステップＳ２０３において、管理センタ（ＴＣ）は、木の末端ノードとしての葉（リーフ）に対応して設定される受信機ｕｍ（ｍ＝１，２，...，Ｎ）に対し、前述したルール、すなわち、
（ａ）ノードｉがＰａｔｈＮｏｄｅｓ−ｍに含まれ、かつ、
（ｂ）ノード２ｉが含まれていないノード
これらの条件（ａ），（ｂ）を満足するノードのノードキーを各受信機ｕｍに与える。
【０１２７】
以上の処理によって、受信機数をＮとした場合、各受信機には、
ｊ＋１個
のノードキーが付与される。
【０１２８】
（２）情報配信処理
情報配信、すなわち秘密情報の送信は、管理センタ（ＴＣ）が１つ以上の暗号文を同報送信することによってなされる。それぞれの暗号文は、秘密情報をノードキーの１つを用いて暗号化したものである。暗号化に使用するノードキーの選択方法は、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様である。
【０１２９】
たとえば図５に示した例では、５つの暗号文が送信される。図５に示す例では受信機ｕ２，ｕ１１，ｕ１２がリボークされる受信機である。すなわち、受信機ｕ２，ｕ１１，ｕ１２を不正な機器として排除（リボーク）し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
【０１３０】
情報の送信を行なう場合、リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文セットを生成して同報送信する。リボーク受信機ｕ２，ｕ１１，ｕ１２が割り当てられているリーフ（葉）から木のルートに至るパス上のノードおよびパスを木から除外すると、１つ以上の部分木が残る。例えば、ノード５を頂点とする部分木、あるいはノード１２を頂点とする部分木などである。
【０１３１】
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図５に示す例では、ノード５，７，９，１２，１６に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーＫｃであるとし、ノード５，７，９，１２，１６に割り当てられたノードキーをＮＫ５，ＮＫ７，ＮＫ９，ＮＫ１２，ＮＫ１６とすると、秘密情報の送信者は、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ７，Ｋｃ），Ｅ（ＮＫ９，Ｋｃ），Ｅ（ＮＫ１２，Ｋｃ），Ｅ（ＮＫ１６，Ｋｃ）
の５つの暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【０１３２】
上記暗号文セットは、リボーク受信機ｕ２，ｕ１１，ｕ１２のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
【０１３３】
この暗号化に使用するノードキーを見つけるための手法としては、Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ方式（ＣＳ方式）と同様の手法、あるいは、表現木を適用した方法などが適用可能である。
【０１３４】
情報配信処理の手順について、図１３のフローを参照して説明する。管理センタ（ＴＣ）は、ステップＳ３０１において、まずその情報配信においてリボーク（排除）する受信機を選択する。
【０１３５】
さらに、ステップＳ３０２において、暗号文の生成、すなわち送信秘密情報の暗号化に適用するノードキーを選択し、ステップＳ３０３において、暗号文を受信する受信機において、復号可能な暗号文を選択するための索引データとしての使用ノードキー指定情報を生成する。これは、どのノードキーを選択したかを表すタグ情報や表現コードなどである。
【０１３６】
ステップＳ３０４において、選択したノードキーで送信する秘密情報を暗号化し、ステップＳ３０５において、ノードキー指定情報とともに同報通信路を用いて送信する。あるいは情報記録媒体に格納して配布する。なお、上記の処理は、必ずしもこの順番である必要はない。
【０１３７】
なお、暗号化に利用するノードキーは、管理センタ（ＴＣ）がセットアップフェイズにおいて作成して保管しておいたものを使用するようにしてもよいし、セットアップフェイズにおいては葉のノードキーのみを保管しておき、それから一方向性関数Ｆを用いて導出してもよい。
【０１３８】
なお、リボークする受信機がない場合には、ルートのノードキーＮＫ１を秘密情報の暗号化に用いる。この場合は、すべての受信機において送信情報の復号が可能となる。
【０１３９】
（３）情報受信および復号処理
次に、上述の暗号文の受信および復号処理について説明する。上述の暗号文は同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。こり暗号文は、リボークの有無に関わらず、すべての受信機が受領可能であるが、リボークされた受信機は暗号文の復号に適用するノードキーを得ることができないので受信情報の復号を行なうことができない。
【０１４０】
リボークされていない受信機は、受領した暗号文のセットから自己が復号できる暗号文を選択する。受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノードキー、または自身が保持するノードキーから一方向性関数Ｆを用いて導出できるノードキーが含まれる。
【０１４１】
リボークされていない受信機は、このノードキーを用いて暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のノードキー指定情報を用いればよい。
【０１４２】
この暗号文抽出処理において、受信機ｕｍは、暗号化に使われたノードキーのノード番号ｉを抽出し、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号ｉと一致するものを見つける。
【０１４３】
さらに、受信機ｕｍは、暗号化に使われたノードキーのノード番号ｉの中から、２ｋｉはパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるが２ｋ＋１ｉは含まれない最小のｋを見つける。この場合、受信機ｕｍは、パスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノードのノードキーＮＫ２ｋｉを保持している。このノードキーＮＫ２ｋｉに対して一方向性関数Ｆをｋ回適用することで、暗号文の暗号化キー（＝復号キー）として適用されたノードキーＮＫｉを算出することができる。なお、ｋ＝０ならば受信機ｕｍはノードキーＮＫｉを直接保持している。
【０１４４】
具体的な例について図１４を参照して説明する。今、リボークされた受信機が図１４に示すように、ｕ３，ｕ４，ｕ９〜ｕ１６である場合、送信される暗号文は、受信機ｕ１，ｕ２とｕ５〜ｕ８によってのみ復号可能な暗号文であり、ノードキーＮＫ８とノードキーＮＫ５を適用した暗号文からなる暗号文セットとなる。秘密情報を［Ｋｃ］とすると、
Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ８，Ｋｃ）が、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、Ｅ（Ａ，Ｂ）はデータＢを鍵Ａで暗号化したデータを意味する。
【０１４５】
例えば、受信機ｕ５（ノード番号＝２０）は、まず、暗号化に使われたノードキーのノード番号ｉ（ｉ＝５，８）の中から、受信機ｕ５に対応するパスノード５［ＰａｔｈＮｏｄｅｓ−５］＝｛１，２，５，１０，２０｝に含まれるノード番号ｉと一致するものを見つける。この場合、ｉ＝５が検出される。
【０１４６】
次に、受信機ｕ５は、２ｋｉ、すなわち（２ｋ×５）はパスノード５［ＰａｔｈＮｏｄｅｓ−５］＝｛１，２，５，１０，２０｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋを見つける。
ｋ＝０→２ｋｉ＝（２０×５）＝５、２ｋ＋１ｉ＝（２０＋１×５）＝１０
ｋ＝１→２ｋｉ＝（２１×５）＝１０、２ｋ＋１ｉ＝（２１＋１×５）＝２０
ｋ＝２→２ｋｉ＝（２２×５）＝２０、２ｋ＋１ｉ＝（２２＋１×５）＝４０
４０は、パスノード５［ＰａｔｈＮｏｄｅｓ−５］＝｛１，２，５，１０，２０｝に含まれない。
【０１４７】
従って、受信機ｕ５にとって、パスノード５［ＰａｔｈＮｏｄｅｓ−５］＝｛１，２，５，１０，２０｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋは、ｋ＝２となる。この場合、受信機ｕ５は自己の保有するノードキーＮＫ２ｋｉ、すなわちノードキーＮＫ２２×５＝ＮＫ２０に対して一方向性関数Ｆを２回適用することで、暗号文に適用されたノードキーＮＫ５を取得することができる。すなわち、
Ｆ（ＮＫ２０）＝ＮＫ１０
Ｆ（ＮＫ１０）＝ＮＫ５
として暗号文に適用されたノードキーＮＫ５を取得することができる。受信機ｕ５は、この取得ノードキーＮＫ５を適用して、
暗号文セット：Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ８，Ｋｃ）
中の暗号文：Ｅ（ＮＫ５，Ｋｃ）を復号して秘密情報［Ｋｃ］を得ることができる。
【０１４８】
また、受信機ｕ６（ノード番号＝２１）は、まず、暗号化に使われたノードキーのノード番号ｉ（ｉ＝５，８）の中から、受信機ｕ６に対応するパスノード６［ＰａｔｈＮｏｄｅｓ−６］＝｛１，２，５，１０，２１｝に含まれるノード番号ｉと一致するものを見つける。この場合、ｉ＝５が検出される。
【０１４９】
次に、受信機ｕ６は、２ｋｉ、すなわち（２ｋ×５）はパスノード６［ＰａｔｈＮｏｄｅｓ−６］＝｛１，２，５，１０，２１｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋを見つける。
ｋ＝０→２ｋｉ＝（２０×５）＝５、２ｋ＋１ｉ＝（２０＋１×５）＝１０
ｋ＝１→２ｋｉ＝（２１×５）＝１０、２ｋ＋１ｉ＝（２１＋１×５）＝２０
２０は、パスノード６［ＰａｔｈＮｏｄｅｓ−６］＝｛１，２，５，１０，２１｝に含まれない。
【０１５０】
従って、受信機ｕ６にとって、パスノード６［ＰａｔｈＮｏｄｅｓ−６］＝｛１，２，５，１０，２１｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋは、ｋ＝１となる。この場合、受信機ｕ６は自己の保有するノードキーＮＫ２ｋｉ、すなわちノードキーＮＫ２１×５＝ＮＫ１０に対して一方向性関数Ｆを１回適用することで、暗号文に適用されたノードキーＮＫ５を取得することができる。すなわち、
Ｆ（ＮＫ１０）＝ＮＫ５
として暗号文に適用されたノードキーＮＫ５を取得することができる。受信機ｕ６は、この取得ノードキーＮＫ５を適用して、
暗号文セット：Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ８，Ｋｃ）
中の暗号文：Ｅ（ＮＫ５，Ｋｃ）を復号して秘密情報［Ｋｃ］を得ることができる。
【０１５１】
また、受信機ｕ７（ノード番号＝２２）は、まず、暗号化に使われたノードキーのノード番号ｉ（ｉ＝５，８）の中から、受信機ｕ７に対応するパスノード７［ＰａｔｈＮｏｄｅｓ−７］＝｛１，２，５，１１，２２｝に含まれるノード番号ｉと一致するものを見つける。この場合、ｉ＝５が検出される。
【０１５２】
次に、受信機ｕ７は、２ｋｉ、すなわち（２ｋ×５）はパスノード７［ＰａｔｈＮｏｄｅｓ−７］＝｛１，２，５，１１，２２｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋを見つける。
ｋ＝０→２ｋｉ＝（２０×５）＝５、２ｋ＋１ｉ＝（２０＋１×５）＝１０
１０は、パスノード７［ＰａｔｈＮｏｄｅｓ−７］＝｛１，２，５，１１，２２｝に含まれない。
【０１５３】
従って、受信機ｕ７にとって、パスノード７［ＰａｔｈＮｏｄｅｓ−７］＝｛１，２，５，１１，２２｝に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×５）は含まれない最小のｋは、ｋ＝０となる。この場合、受信機ｕ７は、ノードキーＮＫ２０×５＝ＮＫ５を直接保持しており、このノードキーＮＫ５を適用して、
暗号文セット：Ｅ（ＮＫ５，Ｋｃ），Ｅ（ＮＫ８，Ｋｃ）
中の暗号文：Ｅ（ＮＫ５，Ｋｃ）を復号して秘密情報［Ｋｃ］を得ることができる。
【０１５４】
受信機ｕｍの処理について、図１５のフローを参照して説明する。まず、ステップＳ４０１において、暗号文セットを受領する。この暗号文は、ネットワークを介してあるいは情報記録媒体を介して受領する。
【０１５５】
ステップＳ４０２において、受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中から、自身が直接保持しているノードキー、または自身が保持するノードキーから一方向性関数Ｆを用いて導出できるノードキーによって暗号化された暗号文を抽出する。なお、ここで、受信機が復号すべき暗号を決定できないということは、その受信機がリボークされていることを意味している。
【０１５６】
さらに、ステップＳ４０３において、暗号化に使用されたノードキーを受信機自身が保持しているか否かを判定し、保持している場合には、ステップＳ４０５に進み、保持しているノードキーを適用して暗号文を復号し、秘密情報を取得する。
【０１５７】
一方、ステップＳ４０３において、暗号化に使用されたノードキーを受信機自身が保持していないと判定した場合は、ステップＳ４０４に進み、暗号化に使われたノードキー
を保持ノードキーに一方向性関数Ｆを適用した演算処理により算出し、そののち、ステップＳ４０５に進み、算出したノードキーを適用して暗号文を復号し、秘密情報を取得する。
【０１５８】
なお、ステップＳ４０２〜Ｓ４０５の処理においては、前述したように、各受信機は、以下の処理を実行することになる。すなわち、
（ａ）受信機ｕｍは、まず、暗号化に使われたノードキーのノード番号ｉの中から、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノード番号ｉと一致するものを見つける。
（ｂ）次に、受信機ｕｍは、２ｋｉ、すなわち（２ｋ×ｉ）はパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるが、２ｋ＋１ｉ、すなわち、（２ｋ＋１×ｉ）は含まれない最小のｋを見つける。
（ｃ）自己の保持するノードキーＮＫ２ｋｉ、すなわちノードキーＮＫ２ｋ×ｉに対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出する。ｋ＝０の場合は、一方向性関数Ｆを適用した演算は不要である。
【０１５９】
このように、本発明の構成によれば、各受信機は、必要に応じて保持するノードキーから一方向性関数Ｆを適用して上位のノードキーを算出可能な設定としたので、各受信機の保持すべきノードキーの数が削減される。
【０１６０】
図１６に一例として、図１０（ａ）の２分木における受信機ｕ１〜ｕ４の保持ノードキーと、保持ノードキーから算出可能な上位ノードキーを示した。この図には、受信機ｕ１〜ｕ４のみをサンプルとして示してあるが、すべての受信機ｕｍは、自己のパスｍ（ｐａｔｈ−ｍ）にあるパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に対応するすべてのノードキーを算出可能な最低限のノードキーのみを保持するように設定される。
【０１６１】
次に、図１７、図１８を参照してノードキーの決定処理、暗号文の生成処理を実行する情報処理装置、および暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
【０１６２】
まず、図１７を参照してノードキーの決定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する。情報処理装置４１０は、一方向木生成手段４１１、提供ノードキー決定手段４１２、暗号文生成手段４１３、暗号文提供手段４１４を有する。
【０１６３】
情報処理装置４１０は、階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除（リボーク）機器を除く特定の選択機器にのみ復号可能な暗号文を提供する処理を実行する情報処理装置であり、一方向木生成手段４１１は、階層木を構成する各ノードに対応するノードキーの値を、少なくとも１つの下位ノードキーの値に対する一方向性関数Ｆの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する。
【０１６４】
一方向木生成手段４１１は、２分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の２つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Ｆの適用によって算出可能に設定した一方向木を生成する。一方向性関数Ｆは、例えばＭＤ４またはＭＤ５またはＳＨＡ−１である。一方向木生成手段４１１は、例えば、末端ノード数Ｎの２分木構成を持つ階層木においてＮ個の値：ｘＮ〜ｘ２Ｎ−１を決定し、ｉ＝２Ｎ−１とする初期設定を実行し、ｉ＝（２Ｎ−１）〜１において、ｉ＝偶数の場合に、一方向性関数Ｆを適用しＦ（ｘｉ）を計算し、これをｘｉ／２とセットする処理によって、末端ノード数Ｎの２分木構成の全ノード数２Ｎ−１に対応するノードキーｘ１〜ｘ２Ｎ−１を決定する処理を実行する。
【０１６５】
提供ノードキー決定手段４１２は、階層木の末端ノード対応の受信機に、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを提供する。提供ノードキー決定手段４１２は、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードｉが含まれノード２ｉが含まれないノードに対応するノードキーのみを受信機に対して提供する処理を実行する。
【０１６６】
暗号文生成手段４１３は、一方向木生成手段４１１の生成した一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する。暗号文提供手段４１４は、このようにして生成された暗号文をネットワークまたは媒体に格納して提供する。
【０１６７】
次に、図１８を参照して暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
【０１６８】
暗号文の復号処理を実行する受信機としての情報処理装置４２０は、暗号文選択手段４２１、ノードキー算出手段４２２、復号手段４２３、ノードキーメモリ４２４を有する。
【０１６９】
暗号文選択手段４２１は、処理対象とする暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する処理を実行する。具体的には、上述したように、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号ｉと一致するものを見つける処理を実行する。
【０１７０】
ノードキー算出手段４２２は、暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出する。一方向性関数Ｆは、例えばＭＤ４またはＭＤ５またはＳＨＡ−１である。
【０１７１】
ノードキー算出手段４２２は、上述したノードキー算出処理、すなわち、階層木の最上位ノードとしてのルートを１とし、幅優先（ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｏｒｄｅｒ）で各ノードにノード番号（ｉ）を付与した階層木において、受信機からルートに至るパス上のノードにノード番号２ｋｉが含まれるが、２ｋ＋１ｉは含まれない最小のｋを見つける処理を実行し、ノードキーメモリ４２４に保持するノードキーＮＫ２ｋｉの値に対してｋ回の一方向性関数Ｆを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成である。
【０１７２】
復号手段４２３は、ノードキーメモリ４２４に保持するノードキーまたはノードキーメモリ４２４に保持するノードキーに対してノードキー算出手段４２２において一方向性関数を適用して算出した算出ノードキーに基づいて、暗号文の復号処理を実行する。
【０１７３】
図１９に、ノードキーの設定処理、暗号文生成処理を実行する情報処理装置、および暗号文復号処理を実行する受信機としての情報処理装置のハードウェア構成例図を示す。図中で点線で囲われたブロックは必ずしも備わっているわけではない。たとえばメディアインタフェース５０７は、受信機としての情報処理装置が光ディスクプレーヤ等である場合に装備する。入出力インタフェース５０３は、他の機器と情報のやりとりをしたり、アンテナからの信号を受信したりする場合に装備される。
【０１７４】
情報処理装置５００が受信機としての情報処理装置である場合、重要なのは、セキュア記憶部５０４であり、セットアップフェイズにおいて、管理センタ（ＴＣ）から与えられるノードキーが安全に保管される。なお、一方向性関数Ｆは、セキュア記憶部５０４またはメイン記憶部５０５に記憶する。
【０１７５】
暗号文生成処理を実行する情報処理装置、または暗号文復号処理を実行する受信機としての情報処理装置５００は図１９に示すように、コントローラ５０１、演算ユニット５０２、入出力インタフェース５０３、セキュア記憶部５０４、メイン記憶部５０５、ディスプレイ装置５０６、メディアインタフェース５０７を備える。
【０１７６】
コントローラ５０１は、例えばコンピュータ・プログラムに従ったデータ処理を実行する制御部としての機能を有するＣＰＵによって構成される。演算ユニット５０２は、例えば暗号鍵の生成、乱数生成、及び暗号処理のための専用の演算部および暗号処理部として機能する。前述した一方向性関数Ｆに基づく上位ノードキーの算出処理についても実行する。
【０１７７】
入出力インタフェース５０３は、キーボード、マウス等の入力手段からのデータ入力や、外部出力装置に対するデータ出力、ネットワークを介したデータ送受信処理に対応するインタフェースである。
【０１７８】
セキュア記憶部５０４は、例えばセットアップフェイズにおいて生成するノードキー、各種ＩＤなど、安全にまたは秘密に保持すべきデータを保存する記憶部である。
【０１７９】
なお、情報処理装置５００が受信機としての情報処理装置である場合、セキュア記憶部５０４に格納されるノードキーは、受信機ｕｍに対応するパスノードｍ［ＰａｔｈＮｏｄｅｓ−ｍ］に含まれるノードのノードキー中、一方向性関数Ｆに基づいて、保持するノードキーから算出できないノードキーのみとなる。
【０１８０】
メイン記憶部５０５は、例えばコントローラ５０１において実行するデータ処理プログラム、その他、一時記憶処理パラメータ、プログラム実行のためのワーク領域等に使用されるメモリ領域である。前述の一方向性関数Ｆ情報も格納される。
【０１８１】
セキュア記憶部５０４及びメイン記憶部５０５は、例えばＲＡＭ、ＲＯＭ等によって構成されるメモリである。ディスプレイ装置５０６は復号コンテンツの出力等に利用される。メディアインタフェース５０７は、ＣＤ、ＤＶＤ、ＭＤ等のメディアに対する読出／書込機能を提供する。
【０１８２】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１８３】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１８４】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１８５】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１８６】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１８７】
以上、説明したように、本発明の構成では、ブロードキャストエンクリプション（Broadcast Encryption）方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応するノードキーを特定の関係を持つ値に設定した一方向木を生成して適用した。すなわち、上位ノードキーの値を、下位ノードキーの値に一方向性関数Ｆを適用して算出可能な値に設定した一方向木を適用して暗号文の生成、および提供を行なう。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Ｆに基づいて算出可能なノードキーを除く最小限のノードキーを提供する構成とした。受信機は、受領した処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Ｆを適用し、暗号文の適用ノードキーを算出することが可能となる。このように本発明の構成を適用することにより、各受信機が安全に保持すべき情報量（ノードキー）の減少が実現される。
【図面の簡単な説明】
【０１８８】
【図１】２分木階層型木構造について説明する図である。
【図２】２分木階層型木構造において、選択した情報処理装置のみが取得可能な情報を送信する方法を説明する図である。
【図３】Ｃｏｍｐｌｅｔｅ  Ｓｕｂｔｒｅｅ（ＣＳ）方式の概要について説明する図である。
【図４】リーフ対応の受信機の持つノードキーについて説明する図である。
【図５】秘密情報をリボークされない受信機のみに選択的に提供するかについて説明する図である。
【図６】機構造における異なる部分木の対応について説明する図である。
【図７】一方向木の構成について説明する図である。
【図８】一方向木のノードに対応する２Ｎ−１個のノード対応値としてのノードキーを設定するアルゴリズムを説明するフロー図である。
【図９】一方向木におけるノード番号設定、Ｆ関数、パスｍ、パスノードｍについて説明する図である。
【図１０】一方向木の構成おいて各受信機の保持するノードキーについて説明する図である。
【図１１】図１０に示す１６個の受信機ｕ１〜ｕ１６に対応するパスｍ（ｐａｔｈ−ｍ）のビット表現と受信機ｕ１〜ｕ１６の保持するノードキーを示す図である。
【図１２】セットアップ処理のフローを示す図である。
【図１３】情報配信処理の手順について説明するフロー図である。
【図１４】一方向木の構成において、受信機が暗号文の復号に適用するノードキーを得る処理を説明する図である。
【図１５】受信機における暗号文の復号処理手順を説明するフロー図である。
【図１６】一方向木の構成において、受信機が保持するノードキーと、一方向性関数Ｆの適用によって算出可能なノードキーを説明する図である。
【図１７】ノードキーの決定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する図である。
【図１８】暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する図である。
【図１９】情報処理装置のハードウェア構成例としてのブロック図を示す図である。
【符号の説明】
【０１８９】
１０１  情報処理装置
２０１  ノード
２３０，２３５  部分木
２３１，２３２  ノード
３０１，３０２，３０３  各受信機ｕｍ対応のパスｍ
４１０  情報処理装置
４１１  一方向木生成手段
４１２  提供ノードキー決定手段
４１３  暗号文生成手段
４１４  暗号文提供手段
４２０  情報処理装置
４２１  暗号文選択手段
４２２  ノードキー算出手段
４２３  復号手段
４２４  ノードキーメモリ
５００  情報処理装置
５０１  コントローラ
５０２  演算ユニット
５０３  入出力インタフェース
５０４  セキュア記憶部
５０５  メイン記憶部
５０６  ディスプレイ装置
５０７  メディアインタフェース
【図１】
2005252916.tif 000006
【図２】
2005252916.tif 000007
【図３】
2005252916.tif 000008
【図４】
2005252916.tif 000009
【図５】
2005252916.tif 000010
【図６】
2005252916.tif 000011
【図７】
2005252916.tif 000012
【図８】
2005252916.tif 000013
【図９】
2005252916.tif 000014
【図１０】
2005252916.tif 000015
【図１１】
2005252916.tif 000016
【図１２】
2005252916.tif 000017
【図１３】
2005252916.tif 000018
【図１４】
2005252916.tif 000019
【図１５】
2005252916.tif 000020
【図１６】
2005252916.tif 000021
【図１７】
2005252916.tif 000022
【図１８】
2005252916.tif 000023
【図１９】
2005252916.tif 000024