(57)【要約】【課題】通信路またはメディア（媒体）を介したブロードキャストデータ配信構成において限定ユーザ機器のみデータ利用可能とするデータ配信を任意のデータ提供エンティテイが実行可能とする構成を実現する。【解決手段】通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵としての秘密ノードキーＰｒｉＮＫｉを設定し、該秘密ノードキーＰｒｉＮＫｉを認証された情報処理装置においてのみ取得可能とするとともに、秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して暗号化データＣＴｉを生成し、生成した暗号化データをブロードキャストする構成とした。【選択図】  図８
2004229128.tif 000002
【特許請求の範囲】
【請求項１】
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵としての秘密ノードキーＰｒｉＮＫｉを設定し、該秘密ノードキーＰｒｉＮＫｉを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して暗号化データＣＴｉを生成し、生成した暗号化データＣＴｉを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システム。
【請求項２】
前記秘密ノードキーＰｒｉＮＫｉを、
階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して、
【数１】
2004229128.tif 000114
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ０∈Ｚ＊Ｍであり、ｐｉは、２Ｎ−１個の素数ｐｉ（ｉ＝１，・・・，２Ｎ−１）のうちのひとつ、Ｎは全ユーザまたは受信装置数であり、Ｔは、下式、
【数２】
2004229128.tif 000115
によって定義される、
さらに、前記公開ノードキーＰｕｂＮＫｉを、
【数３】
2004229128.tif 000116
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ノードキーＰｕｂＮＫｉを適用して暗号化データＣＴｉを、
【数４】
2004229128.tif 000117
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、Ｉ  は送信する秘密データ，
前記暗号化データＣＴｉと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする請求項１に記載の暗号データ配信システム。
【請求項３】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、
自ノードにおいて適用する秘密ノードキーを、マスタキーＭＫに基づいて生成し、該生成秘密ノードキーに基づいて、前記暗号化データＣＴｉの復号処理を実行する構成であることを特徴とする請求項１に記載の暗号データ配信システム。
【請求項４】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、
自ノードにおいて適用する秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて、下記式、
【数５】
2004229128.tif 000118
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数６】
2004229128.tif 000119
により求められる、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｉに割り当てられた全ての素数ｐｉの積、
さらに、前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、前記暗号化データＣＴｉの復号処理を、
【数７】
2004229128.tif 000120
に従って実行する構成であることを特徴とする請求項２に記載の暗号データ配信システム。
【請求項５】
前記暗号化データＣＴｉを、ハッシュ関数（Ｈ）を適用して、
【数８】
2004229128.tif 000121
に基づいて生成する構成としたことを特徴とする請求項２に記載の暗号データ配信システム。
【請求項６】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、前記暗号化データＣＴｉの復号処理を、
【数９】
2004229128.tif 000122
に従って実行する構成としたことを特徴とする請求項５に記載の暗号データ配信システム。
【請求項７】
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、該サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、該秘密サブセットキーＰｒｉＳｋ，Ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システム。
【請求項８】
前記秘密サブセットキーＰｒｉＳｋ，Ｂを、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数１０】
2004229128.tif 000123
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数１１】
2004229128.tif 000124
によって定義される、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数１２】
2004229128.tif 000125
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数１３】
2004229128.tif 000126
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする請求項７に記載の暗号データ配信システム。
【請求項９】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、
自ノードにおいて適用する秘密サブセットキーを、マスタキーに基づいて生成し、該生成秘密サブセットキーに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項７に記載の暗号データ配信システム。
【請求項１０】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、
自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数１４】
2004229128.tif 000127
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１５】
2004229128.tif 000128
により求められる、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐｋ，Ｂの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数１６】
2004229128.tif 000129
に従って実行する構成であることを特徴とする請求項８に記載の暗号データ配信システム。
【請求項１１】
前記暗号化データＣＴｋ，Ｂを、ハッシュ関数（Ｈ）を適用して、
【数１７】
2004229128.tif 000130
に基づいて生成する構成としたことを特徴とする請求項８に記載の暗号データ配信システム。
【請求項１２】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数１８】
2004229128.tif 000131
に従って実行する構成としたことを特徴とする請求項１１に記載の暗号データ配信システム。
【請求項１３】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、マスタキーＭＫｊを用いて算出可能であり、前記ユーザの情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能なマスタキーを有し、該マスタキーＭＫｊに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項７に記載の暗号データ配信システム。
【請求項１４】
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、該サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、該秘密サブセットキーＰｒｉＳｋ，Ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、ユーザ機器は、リーフからルートまでのパスに含まれる各ノードに割り当てられる秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有する構成とするとともに、
前記秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システム。
【請求項１５】
前記秘密サブセットキーＰｒｉＳｋ，Ｂを、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数１９】
2004229128.tif 000132
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数２０】
2004229128.tif 000133
によって定義される、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数２１】
2004229128.tif 000134
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数２２】
2004229128.tif 000135
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする請求項１４に記載の暗号データ配信システム。
【請求項１６】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、
自ノードにおいて適用する秘密サブセットキーを、マスタキーに基づいて生成し、該生成秘密サブセットキーに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項１４に記載の暗号データ配信システム。
【請求項１７】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、
自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数２３】
2004229128.tif 000136
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数２４】
2004229128.tif 000137
により求められる、ｗｊ，ｋは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐＢの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数２５】
2004229128.tif 000138
に従って実行する構成であることを特徴とする請求項１５に記載の暗号データ配信システム。
【請求項１８】
前記暗号化データＣＴｋ，Ｂを、ハッシュ関数（Ｈ）を適用して、
【数２６】
2004229128.tif 000139
に基づいて生成する構成としたことを特徴とする請求項１５に記載の暗号データ配信システム。
【請求項１９】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数２７】
2004229128.tif 000140
に従って実行する構成としたことを特徴とする請求項１８に記載の暗号データ配信システム。
【請求項２０】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、前記ユーザの情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有し、該マスタキーＭＫｊ，ｋに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項１４に記載の暗号データ配信システム。
【請求項２１】
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、該ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、該秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システム。
【請求項２２】
前記前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータは、コンテンツファイルの復号処理に適用するメディアキーを暗号化したデータを含むテーブルデータであることを特徴とする請求項２１に記載の暗号データ配信システム。
【請求項２３】
前記秘密ブロックキーＰｒｉＫａ，ｂを、
前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して、
【数２８】
2004229128.tif 000141
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂは、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して設定された素数であり、Ｔは、下式、
【数２９】
2004229128.tif 000142
によって定義される、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを、
【数３０】
2004229128.tif 000143
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを適用して暗号化データＣＴａ，ｂを、
【数３１】
2004229128.tif 000144
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを格納したデータテーブルと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする請求項２１に記載の暗号データ配信システム。
【請求項２４】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する情報処理装置は、
適用する秘密ブロックキーを、マスタキーＭＫに基づいて生成し、該生成秘密ブロックキーに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行する構成であることを特徴とする請求項２１に記載の暗号データ配信システム。
【請求項２５】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する情報処理装置ｕｊは、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて、下記式、
【数３２】
2004229128.tif 000145
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数３３】
2004229128.tif 000146
により求められる、ｗｊは、下記式、
【数３４】
2004229128.tif 000147
により求められる、
さらに、前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を、
【数３５】
2004229128.tif 000148
に従って実行する構成であることを特徴とする請求項２３に記載の暗号データ配信システム。
【請求項２６】
前記暗号化データＣＴａ，ｂを、ハッシュ関数（Ｈ）を適用して、
【数３６】
2004229128.tif 000149
に基づいて生成する構成としたことを特徴とする請求項２３に記載の暗号データ配信システム。
【請求項２７】
前記暗号データ配信システムにおいて、
暗号化データの復号処理を実行する情報処理装置は、前記暗号化データＣＴａ，ｂの復号処理を、
【数３７】
2004229128.tif 000150
に従って実行する構成としたことを特徴とする請求項２６に記載の暗号データ配信システム。
【請求項２８】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行する構成を有することを特徴とする情報処理装置。
【請求項２９】
前記秘密ノードキーＰｒｉＮＫｉは、
階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して、
【数３８】
2004229128.tif 000151
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ０∈Ｚ＊Ｍであり、ｐｉは、２Ｎ−１個の素数ｐｉ（ｉ＝１，・・・，２Ｎ−１）のうちのひとつ、Ｎは全ユーザ機器数であり、Ｔは、下式、
【数３９】
2004229128.tif 000152
によって定義される、
前記情報処理装置は、
前記公開ノードキーＰｕｂＮＫｉを、
【数４０】
2004229128.tif 000153
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ノードキーＰｕｂＮＫｉを適用して暗号化データＣＴｉを、
【数４１】
2004229128.tif 000154
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、Ｉ  は送信する秘密データ，
前記暗号化データＣＴｉと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする請求項２８に記載の情報処理装置。
【請求項３０】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行する構成を有することを特徴とする情報処理装置。
【請求項３１】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数４２】
2004229128.tif 000155
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数４３】
2004229128.tif 000156
によって定義される、
前記情報処理装置は、
前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数４４】
2004229128.tif 000157
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数４５】
2004229128.tif 000158
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする請求項３０に記載の情報処理装置。
【請求項３２】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能で、ユーザ機器がリーフからルートまでのパスに含まれる各ノードに割り当てられる秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有する構成において、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定される秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行する構成を有することを特徴とする情報処理装置。
【請求項３３】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数４６】
2004229128.tif 000159
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐＢは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数４７】
2004229128.tif 000160
によって定義される、
前記情報処理装置は、
前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数４８】
2004229128.tif 000161
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数４９】
2004229128.tif 000162
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする請求項３２に記載の情報処理装置。
【請求項３４】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、該ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、該秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とした構成において、前記秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを配信用データとして生成する構成を有することを特徴とする情報処理装置。
【請求項３５】
前記前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータは、コンテンツファイルの復号処理に適用するメディアキーを暗号化したデータを含むテーブルデータであることを特徴とする請求項３４に記載の情報処理装置。
【請求項３６】
前記秘密ブロックキーＰｒｉＫａ，ｂは、
前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して、
【数５０】
2004229128.tif 000163
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂは、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して設定された素数であり、Ｔは、下式、
【数５１】
2004229128.tif 000164
によって定義される、
前記情報処理装置は、
前記公開ブロックキーＰｕｂＫａ，ｂを、
【数５２】
2004229128.tif 000165
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを適用して暗号化データＣＴａ，ｂを、
【数５３】
2004229128.tif 000166
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを格納したデータテーブルと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成を有することを特徴とする請求項３４に記載の情報処理装置。
【請求項３７】
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて、下記式、
【数５４】
2004229128.tif 000167
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数５５】
2004229128.tif 000168
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｉは各ノードに割り当てられる素数であり、Ｔは、下式、
【数５６】
2004229128.tif 000169
によって定義され、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｉに割り当てられた全ての素数ｐｉの積、
さらに、前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、暗号化データＣＴｉの復号処理を、
【数５７】
2004229128.tif 000170
に従って実行する構成であることを特徴とする情報処理装置。
【請求項３８】
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数５８】
2004229128.tif 000171
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数５９】
2004229128.tif 000172
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数６０】
2004229128.tif 000173
によって定義され、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐｋ，Ｂの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数６１】
2004229128.tif 000174
に従って実行する構成であることを特徴とする情報処理装置。
【請求項３９】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、マスタキーＭＫｊを用いて算出可能であり、
前記情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能なマスタキーを有し、該マスタキーＭＫｊに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項３８に記載の情報処理装置。
【請求項４０】
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数６２】
2004229128.tif 000175
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数６３】
2004229128.tif 000176
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐＢは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数６４】
2004229128.tif 000177
によって定義され、ｗｊ，ｋは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐＢの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数６５】
2004229128.tif 000178
に従って実行する構成であることを特徴とする情報処理装置。
【請求項４１】
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、
前記情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有し、該マスタキーＭＫｊ，ｋに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする請求項４０に記載の情報処理装置。
【請求項４２】
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行する情報処理装置であり、
前記情報処理装置は、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて、下記式、
【数６６】
2004229128.tif 000179
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数６７】
2004229128.tif 000180
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂはＢＫＴの各要素位置  （ａ，  ｂ）  に割り当てられる素数であり、Ｔは、下式、
【数６８】
2004229128.tif 000181
によって定義され、ｗｊは、下記式、
【数６９】
2004229128.tif 000182
により求められる、
さらに、前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、暗号化データＣＴａ，ｂの復号処理を、
【数７０】
2004229128.tif 000183
に従って実行する構成であることを特徴とする情報処理装置。
【請求項４３】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを選択するステップと、
前記選択した公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化処理を実行し、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４４】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを選択するステップと、
前記選択した公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行し、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４５】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵として設定された秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを選択するステップと、
前記選択された公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４６】
暗号化データの復号処理を実行する情報処理方法であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、復号処理において適用する公開鍵暗号方式における秘密鍵として設定され、階層型キーツリー構成における各ノードに対応付けられ秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、公開鍵暗号方式における公開鍵として設定された公開ノードキーＰｕｂＮＫｉで暗号化された暗号化データＣＴｉの復号処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４７】
暗号化データの復号処理を実行する情報処理方法であり、
復号処理において適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて算出するステップと、ただし、前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、前記秘密サブセットキーＰｒｉＳＫｋ，Ｂは、前記サブセットに対して公開鍵暗号方式における秘密鍵として設定されている、
前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、公開鍵暗号方式における公開鍵として設定されたサブセットキーＰｕｂＳＫｋ，Ｂで暗号化された暗号化データＣＴｋ，Ｂの復号処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４８】
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行する情報処理方法であり、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行するステップと、
を有することを特徴とする情報処理方法。
【請求項４９】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを選択するステップと、
前記選択した公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化処理を実行し、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項５０】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを選択するステップと、
前記選択した公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行し、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項５１】
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵として設定された秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを選択するステップと、
前記選択された公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項５２】
暗号化データの復号処理を実行するコンピュータ・プログラムであり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、復号処理において適用する公開鍵暗号方式における秘密鍵として設定され、階層型キーツリー構成における各ノードに対応付けられ秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、公開鍵暗号方式における公開鍵として設定された公開ノードキーＰｕｂＮＫｉで暗号化された暗号化データＣＴｉの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項５３】
暗号化データの復号処理を実行するコンピュータ・プログラムであり、
復号処理において適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて算出するステップと、ただし、前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、前記秘密サブセットキーＰｒｉＳＫｋ，Ｂは、前記サブセットに対して公開鍵暗号方式における秘密鍵として設定されている、
前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、公開鍵暗号方式における公開鍵として設定されたサブセットキーＰｕｂＳＫｋ，Ｂで暗号化された暗号化データＣＴｋ，Ｂの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【請求項５４】
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行するコンピュータ・プログラムであり、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、データ配信者が特定の信頼できるデータ配信者のみでなく、不特定の配信者となった場合においても、認証された特定のユーザ機器としての情報処理装置においてのみ利用可能な暗号データの通信路またはメディア（媒体）を介したブロードキャスト配信を可能とした暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
デジタルデータ処理技術の進歩により、データの品質を損なうことなく、データを用いることができるようになっている。例えばデジタルピクチャ、デジタルミュージック等の多くの種類のコンテンツがデジタルデータとして利用できるようになり、またこれらのデジタルデータに対して、例えば作成、保存、コピー、編集、交換等の様々な処理を行うことができるようになっている。同時に、コンテンツの権利の所有者にとっては、不正なコピーやその他の使用からデータを保護することが益々困難になっている。
【０００３】
データ送信者は、コンテンツ送信に際し、不正な受信機によるコンテンツ取得を防止するため、特定の決められた受信機のみがデータを取得可能とする構成を構築してデータ配信を実行することが必要となる。例えば不特定の受信機（レシーバ）が受信可能なデータ配信、すなわち、同報通信路を用いたデータ配信において、データ送信者が任意に選択した特定の受信機グループにデータを安全に送信する手法として、リボケーション方式（ｒｅｖｏｃａｔｉｏｎ  ｓｃｈｅｍｅ）、放送暗号化（ブロードキャスト・エンクリプション）方式が知られている。
【０００４】
データ送信者は、放送チャンネルを介して暗号化された情報又はコンテンツを送信する。この情報を復号するための認証を得て、所定の鍵を所有する受信機のみが、受信データの復号が可能となる。情報を復号するための認証を得ていない受信機は、リボーク受信機（ｒｅｖｏｋｅｄ  ｒｅｃｅｉｖｅｒ）と呼ばれる。リボーク受信機は、暗号化されて放送された情報を復号するための復号キーを有していない。すなわち、データ送信者からの同報通信路を用いた送信データは、不特定の受信機により受信可能となるが、受信情報を復号することができる有効な受信機は、認証を得て、所定の鍵を所有する受信機のみであり、その他の受信機は、受信情報を復号できない。
【０００５】
各受信機に対して鍵を配布するシステムとして木構造の鍵配信システムが知られている。木構造の鍵配信システムを適用することにより、任意のタイミングにおいて、各受信機の認証を取り消し、受信機の格納鍵を無効にすることができる。このような無効化処理がリボケーションスキームと呼ばれ、例えば有料テレビジョン放送や、コピー保護された媒体等を特定のユーザに配布する処理などに利用されている。
【０００６】
通常の木構造の鍵配信システムを適用した構成においては、データ送信者は受信機と同じ鍵を用いて送信データを暗号化する仕様となっている。すなわち、送信者は受信者が用いる鍵を知っている必要がある。このため、この方式で送信者となれるのは信頼のおける者のみに限られてしまう。なぜなら、信頼できない者に受信者が使用する鍵が知られてしまうと、その鍵の不正な複製が可能となり、不正な複製鍵を認証されていない受信機に格納することで、不正に情報を取得することができてしまうからである。
【０００７】
データの送信者を特定の信頼できる者に限定してしまえば問題はないが、現実世界においては、信頼できない者でも送信者として情報を送信できるほうが便利である。
【０００８】
【発明が解決しようとする課題】
本発明は上述の課題に鑑みてなされたものであり、木構造の鍵配信システムを適用した構成において、データ送信者の信頼性の有無にかかわらず、特定の認証されたユーザ機器においてのみデータを取得可能とする構成を実現する暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の第１の側面は、
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵としての秘密ノードキーＰｒｉＮＫｉを設定し、該秘密ノードキーＰｒｉＮＫｉを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して暗号化データＣＴｉを生成し、生成した暗号化データＣＴｉを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システムにある。
【００１０】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密ノードキーＰｒｉＮＫｉを、階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して、
【数７１】
2004229128.tif 000003
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ０∈Ｚ＊Ｍであり、ｐｉは、２Ｎ−１個の素数ｐｉ（ｉ＝１，・・・，２Ｎ−１）のうちのひとつ、Ｎは全ユーザまたは受信装置数であり、Ｔは、下式、
【数７２】
2004229128.tif 000004
によって定義される、
さらに、前記公開ノードキーＰｕｂＮＫｉを、
【数７３】
2004229128.tif 000005
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ノードキーＰｕｂＮＫｉを適用して暗号化データＣＴｉを、
【数７４】
2004229128.tif 000006
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｉと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする。
【００１１】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、自ノードにおいて適用する秘密ノードキーを、マスタキーＭＫに基づいて生成し、該生成秘密ノードキーに基づいて、前記暗号化データＣＴｉの復号処理を実行する構成であることを特徴とする。
【００１２】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、自ノードにおいて適用する秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて、下記式、
【数７５】
2004229128.tif 000007
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数７６】
2004229128.tif 000008
により求められる、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｉに割り当てられた全ての素数ｐｉの積、
さらに、前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、前記暗号化データＣＴｉの復号処理を、
【数７７】
2004229128.tif 000009
に従って実行する構成であることを特徴とする。
【００１３】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号化データＣＴｉを、ハッシュ関数（Ｈ）を適用して、
【数７８】
2004229128.tif 000010
に基づいて生成する構成としたことを特徴とする。
【００１４】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｉ）に対応する情報処理装置は、前記暗号化データＣＴｉの復号処理を、
【数７９】
2004229128.tif 000011
に従って実行する構成としたことを特徴とする。
【００１５】
さらに、本発明の第２の側面は、
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、該サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、該秘密サブセットキーＰｒｉＳｋ，Ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システムにある。
【００１６】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂを、階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数８０】
2004229128.tif 000012
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数８１】
2004229128.tif 000013
によって定義される、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数８２】
2004229128.tif 000014
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数８３】
2004229128.tif 000015
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする。
【００１７】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、自ノードにおいて適用する秘密サブセットキーを、マスタキーに基づいて生成し、該生成秘密サブセットキーに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００１８】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数８４】
2004229128.tif 000016
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数８５】
2004229128.tif 000017
により求められる、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐｋ，Ｂの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数８６】
2004229128.tif 000018
に従って実行する構成であることを特徴とする。
【００１９】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号化データＣＴｋ，Ｂを、ハッシュ関数（Ｈ）を適用して、
【数８７】
2004229128.tif 000019
に基づいて生成する構成としたことを特徴とする。
【００２０】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数８８】
2004229128.tif 000020
に従って実行する構成としたことを特徴とする。
【００２１】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、マスタキーＭＫｊを用いて算出可能であり、前記ユーザの情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能なマスタキーを有し、該マスタキーＭＫｊに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００２２】
さらに、本発明の第３の側面は、
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、該サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、該秘密サブセットキーＰｒｉＳｋ，Ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、ユーザ機器は、リーフからルートまでのパスに含まれる各ノードに割り当てられる秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有する構成とするとともに、
前記秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システムにある。
【００２３】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂを、階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数８９】
2004229128.tif 000021
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数９０】
2004229128.tif 000022
によって定義される、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数９１】
2004229128.tif 000023
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数９２】
2004229128.tif 000024
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする。
【００２４】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、自ノードにおいて適用する秘密サブセットキーを、マスタキーに基づいて生成し、該生成秘密サブセットキーに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００２５】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数９３】
2004229128.tif 000025
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数９４】
2004229128.tif 000026
により求められる、ｗｊ，ｋは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐＢの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数９５】
2004229128.tif 000027
に従って実行する構成であることを特徴とする。
【００２６】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号化データＣＴｋ，Ｂを、ハッシュ関数（Ｈ）を適用して、
【数９６】
2004229128.tif 000028
に基づいて生成する構成としたことを特徴とする。
【００２７】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する前記階層型キーツリー構成における各ノード（ｋ）に対応する情報処理装置は、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数９７】
2004229128.tif 000029
に従って実行する構成としたことを特徴とする。
【００２８】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、前記ユーザの情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有し、該マスタキーＭＫｊ，ｋに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００２９】
さらに、本発明の第４の側面は、
通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信し、限定ユーザの認証された情報処理装置においてのみ利用可能とする暗号データ配信システムであり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、該ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、該秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、前記秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたことを特徴とする暗号データ配信システムにある。
【００３０】
さらに、本発明の暗号データ配信システムの一実施態様において、前記前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータは、コンテンツファイルの復号処理に適用するメディアキーを暗号化したデータを含むテーブルデータであることを特徴とする。
【００３１】
さらに、本発明の暗号データ配信システムの一実施態様において、前記秘密ブロックキーＰｒｉＫａ，ｂを、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して、
【数９８】
2004229128.tif 000030
として設定し、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂは、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して設定された素数であり、Ｔは、下式、
【数９９】
2004229128.tif 000031
によって定義される、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを、
【数１００】
2004229128.tif 000032
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを適用して暗号化データＣＴａ，ｂを、
【数１０１】
2004229128.tif 000033
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを格納したデータテーブルと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成としたことを特徴とする。
【００３２】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する情報処理装置は、適用する秘密ブロックキーを、マスタキーＭＫに基づいて生成し、該生成秘密ブロックキーに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行する構成であることを特徴とする。
【００３３】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する情報処理装置ｕｊは、前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて、下記式、
【数１０２】
2004229128.tif 000034
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１０３】
2004229128.tif 000035
により求められる、ｗｊは、下記式、
【数１０４】
2004229128.tif 000036
により求められる、
さらに、前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を、
【数１０５】
2004229128.tif 000037
に従って実行する構成であることを特徴とする。
【００３４】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号化データＣＴａ，ｂを、ハッシュ関数（Ｈ）を適用して、
【数１０６】
2004229128.tif 000038
に基づいて生成する構成としたことを特徴とする。
【００３５】
さらに、本発明の暗号データ配信システムの一実施態様において、前記暗号データ配信システムにおいて、暗号化データの復号処理を実行する情報処理装置は、前記暗号化データＣＴａ，ｂの復号処理を、
【数１０７】
2004229128.tif 000039
に従って実行する構成としたことを特徴とする。
【００３６】
さらに、本発明の第５の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行する構成を有することを特徴とする情報処理装置にある。
【００３７】
さらに、本発明の情報処理装置の一実施態様において、前記秘密ノードキーＰｒｉＮＫｉは、階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して、
【数１０８】
2004229128.tif 000040
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ０∈Ｚ＊Ｍであり、ｐｉは、２Ｎ−１個の素数ｐｉ（ｉ＝１，・・・，２Ｎ−１）のうちのひとつ、Ｎは全ユーザ機器数であり、Ｔは、下式、
【数１０９】
2004229128.tif 000041
によって定義される、
前記情報処理装置は、
前記公開ノードキーＰｕｂＮＫｉを、
【数１１０】
2004229128.tif 000042
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ノードキーＰｕｂＮＫｉを適用して暗号化データＣＴｉを、
【数１１１】
2004229128.tif 000043
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、Ｉは送信する秘密データ、
前記暗号化データＣＴｉと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする。
【００３８】
さらに、本発明の第６の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行する構成を有することを特徴とする情報処理装置にある。
【００３９】
さらに、本発明の情報処理装置の一実施態様において、
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数１１２】
2004229128.tif 000044
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数１１３】
2004229128.tif 000045
によって定義される、
前記情報処理装置は、
前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数１１４】
2004229128.tif 000046
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数１１５】
2004229128.tif 000047
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする。
【００４０】
さらに、本発明の第７の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能で、ユーザ機器がリーフからルートまでのパスに含まれる各ノードに割り当てられる秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有する構成において、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定される秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行する構成を有することを特徴とする情報処理装置にある。
【００４１】
さらに、本発明の情報処理装置の一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、
階層型キーツリー構成におけるノード番号ｋの各ノード（ｋ）に対して、
【数１１６】
2004229128.tif 000048
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐＢは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数１１７】
2004229128.tif 000049
によって定義される、
前記情報処理装置は、
前記公開サブセットキーＰｕｂＳｋ，Ｂを、
【数１１８】
2004229128.tif 000050
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開サブセットキーＰｕｂＳｋ，Ｂを適用して暗号化データＣＴｋ，Ｂを、
【数１１９】
2004229128.tif 000051
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
前記暗号化データＣＴｋ，Ｂと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成であることを特徴とする。
【００４２】
さらに、本発明の第８の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理装置であり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、該ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、該秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とした構成において、前記秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを配信用データとして生成する構成を有することを特徴とする情報処理装置にある。
【００４３】
さらに、本発明の情報処理装置の一実施態様において、前記前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータは、コンテンツファイルの復号処理に適用するメディアキーを暗号化したデータを含むテーブルデータであることを特徴とする。
【００４４】
さらに、本発明の情報処理装置の一実施態様において、前記秘密ブロックキーＰｒｉＫａ，ｂは、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して、
【数１２０】
2004229128.tif 000052
として設定され、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂは、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して設定された素数であり、Ｔは、下式、
【数１２１】
2004229128.tif 000053
によって定義される、
前記情報処理装置は、
前記公開ブロックキーＰｕｂＫａ，ｂを、
【数１２２】
2004229128.tif 000054
として設定し、ただし、ｑ’は大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元、
さらに、前記公開ブロックキーＰｕｂＫａ，ｂを適用して暗号化データＣＴａ，ｂを、
【数１２３】
2004229128.tif 000055
として生成し、ただし、ｘは、ｘ∈Ｚ＊ｑ’を満足する数、
ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを格納したデータテーブルと、ｇｘ  ｍｏｄ  ｑ’とを配信する構成を有することを特徴とする。
【００４５】
さらに、本発明の第９の側面は、
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて、下記式、
【数１２４】
2004229128.tif 000056
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１２５】
2004229128.tif 000057
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｉは各ノードに割り当てられる素数であり、Ｔは、下式、
【数１２６】
2004229128.tif 000058
によって定義され、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｉに割り当てられた全ての素数ｐｉの積、
さらに、前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、暗号化データＣＴｉの復号処理を、
【数１２７】
2004229128.tif 000059
に従って実行する構成であることを特徴とする情報処理装置にある。
【００４６】
さらに、本発明の第１０の側面は、
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数１２８】
2004229128.tif 000060
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１２９】
2004229128.tif 000061
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐｋ，Ｂは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数１３０】
2004229128.tif 000062
によって定義され、ｗｊは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐｋ，Ｂの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数１３１】
2004229128.tif 000063
に従って実行する構成であることを特徴とする情報処理装置にある。
【００４７】
さらに、本発明の情報処理装置の一実施態様において、
前記秘密サブセットキーＰｒｉＳｋ，Ｂは、マスタキーＭＫｊを用いて算出可能であり、
前記情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能なマスタキーを有し、該マスタキーＭＫｊに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００４８】
さらに、本発明の第１１の側面は、
暗号化データの復号処理を実行する情報処理装置であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、自ノードにおいて適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて、下記式、
【数１３２】
2004229128.tif 000064
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１３３】
2004229128.tif 000065
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐＢは各サブセットに割り当てられる素数であり、Ｔは、下式、
【数１３４】
2004229128.tif 000066
によって定義され、ｗｊ，ｋは、ノードに設定される情報処理装置ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｋに割り当てられた全ての素数ｐＢの積、
さらに、前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、前記暗号化データＣＴｋ，Ｂの復号処理を、
【数１３５】
2004229128.tif 000067
に従って実行する構成であることを特徴とする情報処理装置にある。
【００４９】
さらに、本発明の情報処理装置の一実施態様において、前記秘密サブセットキーＰｒｉＳｋ，Ｂは、階層型キーツリー構成におけるノード位置ｋごとのグループに設定されたマスタキーＭＫｊ，ｋを用いて算出可能であり、前記情報処理装置は、リーフからルートまでのパスに含まれる各ノードに割り当てられる前記秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出可能な複数のマスタキーを有し、該マスタキーＭＫｊ，ｋに基づく前記秘密サブセットキーＰｒｉＳＫｋ，Ｂの算出処理を実行して、取得した秘密サブセットキーＰｒｉＳＫｋ，Ｂを適用した暗号化データＣＴｋ，Ｂの復号処理を実行する構成であることを特徴とする。
【００５０】
さらに、本発明の第１２の側面は、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行する情報処理装置であり、
前記情報処理装置は、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて、下記式、
【数１３６】
2004229128.tif 000068
に従って生成し、ただし、マスタキーＭＫｊは、下記式、
【数１３７】
2004229128.tif 000069
により求められる、ただし、Ｍ＝ｑ１×ｑ２であり、ｑ１及びｑ２は素数、Ｋ∈Ｚ＊Ｍであり、ｐａ，ｂはＢＫＴの各要素位置（ａ，ｂ）に割り当てられる素数であり、Ｔは、下式、
【数１３８】
2004229128.tif 000070
によって定義され、ｗｊは、下記式、
【数１３９】
2004229128.tif 000071
により求められる、
さらに、前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、暗号化データＣＴａ，ｂの復号処理を、
【数１４０】
2004229128.tif 000072
に従って実行する構成であることを特徴とする情報処理装置にある。
【００５１】
さらに、本発明の第１３の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを選択するステップと、
前記選択した公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化処理を実行し、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５２】
さらに、本発明の第１４の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを選択するステップと、
前記選択した公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行し、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５３】
さらに、本発明の第１５の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行する情報処理方法であり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵として設定された秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを選択するステップと、
前記選択された公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを生成する処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５４】
さらに、本発明の第１６の側面は、
暗号化データの復号処理を実行する情報処理方法であり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、復号処理において適用する公開鍵暗号方式における秘密鍵として設定され、階層型キーツリー構成における各ノードに対応付けられ秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、公開鍵暗号方式における公開鍵として設定された公開ノードキーＰｕｂＮＫｉで暗号化された暗号化データＣＴｉの復号処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５５】
さらに、本発明の第１７の側面は、
暗号化データの復号処理を実行する情報処理方法であり、
復号処理において適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて算出するステップと、ただし、前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、前記秘密サブセットキーＰｒｉＳＫｋ，Ｂは、前記サブセットに対して公開鍵暗号方式における秘密鍵として設定されている、
前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、公開鍵暗号方式における公開鍵として設定されたサブセットキーＰｕｂＳＫｋ，Ｂで暗号化された暗号化データＣＴｋ，Ｂの復号処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５６】
さらに、本発明の第１８の側面は、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行する情報処理方法であり、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行するステップと、
を有することを特徴とする情報処理方法にある。
【００５７】
さらに、本発明の第１９の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
前記ユーザ機器が配置される階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵として設定された秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを選択するステップと、
前記選択した公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化処理を実行し、前記秘密ノードキーＰｒｉＮＫｉを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｉを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００５８】
さらに、本発明の第２０の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、該サブセットに対して公開鍵暗号方式における秘密鍵として設定された秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを選択するステップと、
前記選択した公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行し、前記サブセットキーＰｒｉＳｋ，Ｂを取得可能な認証されたユーザ機器においてのみ利用可能な暗号化データＣＴｋ，Ｂを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００５９】
さらに、本発明の第２１の側面は、
認証されたユーザ機器においてのみ利用可能な暗号化データの生成処理を実行するコンピュータ・プログラムであり、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵として設定された秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを選択するステップと、
前記選択された公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行し、前記ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを生成する処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６０】
さらに、本発明の第２２の側面は、
暗号化データの復号処理を実行するコンピュータ・プログラムであり、
前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、復号処理において適用する公開鍵暗号方式における秘密鍵として設定され、階層型キーツリー構成における各ノードに対応付けられ秘密ノードキーＰｒｉＮＫｉを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ノードキーＰｒｉＮＫｉに基づいて、公開鍵暗号方式における公開鍵として設定された公開ノードキーＰｕｂＮＫｉで暗号化された暗号化データＣＴｉの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６１】
さらに、本発明の第２３の側面は、
暗号化データの復号処理を実行するコンピュータ・プログラムであり、
復号処理において適用する秘密サブセットキーＰｒｉＳＫｋ，Ｂを、マスタキーＭＫｊに基づいて算出するステップと、ただし、前記情報処理装置は、階層型キーツリー構成におけるノードに対応付けられ、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂが定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）され、前記秘密サブセットキーＰｒｉＳＫｋ，Ｂは、前記サブセットに対して公開鍵暗号方式における秘密鍵として設定されている、
前記生成秘密サブセットキーＰｒｉＳＫｋ，Ｂに基づいて、公開鍵暗号方式における公開鍵として設定されたサブセットキーＰｕｂＳＫｋ，Ｂで暗号化された暗号化データＣＴｋ，Ｂの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６２】
さらに、本発明の第２４の側面は、
Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）の各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂが設定され、該秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂにより暗号化された暗号化データＣＴａ，ｂの復号処理を実行するコンピュータ・プログラムであり、
前記テーブルデータのＢ個の要素ｖｂを指示するベクトルＶｊを有し、ベクトル（Ｖｂ，ｂ）に対応する暗号化データＣＴａ，ｂの復号において、
秘密ブロックキーＰｒｉＫａ，ｂを、マスタキーＭＫｊに基づいて生成するステップと、
前記生成秘密ブロックキーＰｒｉＫａ，ｂに基づいて、前記暗号化データＣＴａ，ｂの復号処理を実行するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００６３】
【作用】
本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵としての秘密ノードキーＰｒｉＮＫｉを設定し、該秘密ノードキーＰｒｉＮＫｉを認証された情報処理装置においてのみ取得可能とするとともに、秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して暗号化データＣＴｉを生成し、生成した暗号化データをブロードキャストする構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開ノードキーＰｕｂＮＫｉを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【００６４】
さらに、本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、秘密サブセットキーＰｒｉＳｋ，Ｂを認証された情報処理装置においてのみ取得可能とするとともに、秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開サブセットキーＰｕｂＳＫｋ，Ｂを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【００６５】
さらに、本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開ブロックキーＰｕｂＫａ，ｂを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【００６６】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００６７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の実施の形態】
以下、本発明に係る暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラムについて、図面を参照して詳細に説明する。
【００６８】
本発明は、例えばブロードキャスト等の放送、あるいはＣＤ、ＤＶＤ、ＭＤ等、様々な記憶媒体によるデータ提供構成、すなわち不特定多数がデータ入手可能な構成において、特定の受信機あるいは再生機においてのみ、暗号化データを復号して利用可能な構成を提供するものである。特に、データ配信またはデータ提供者を特定の信頼できるエンティテイに限ることなく、不特定の任意のエンティテイが例えば放送等のブロードキャストによるデータ配信を行った場合においても、認証されたユーザの情報処理装置、例えば受信機あるいは再生機においてのみデータを復号し再生することを可能とした構成を提供するものである。
【００６９】
以下において説明する１つの具体例においては、マスタキーとサブキーとを組み合わせて使用することにより、認証された受信機または再生機のみが、暗号化コンテンツの利用が可能となる。リボーク（無効化）された機器（すなわち、認証されていない受信機等）における暗号化コンテンツの利用を防止する。すなわち、暗号化されたコンテンツは、全ての機器に対して提供されるが、リボークされた機器は、コンテンツを利用できない構成である。
【００７０】
図１は、ブロードキャストデータ送信構成の一例としての、放送衛星を用いた放送暗号化システム（ｂｒｏａｄｃａｓｔ  ｅｎｃｒｙｐｔｉｏｎ  ｓｙｓｔｅｍ）の構成を示すブロック図である。図１に示す放送暗号化システム１００は、放送チャンネルを介して暗号化されたデータ（暗号化データ（ｃｉｐｈｅｒ  ｔｅｘｔ）とも呼ばれる。）を受信機１２０−１〜１２０−Ｎに送信する。図１に示す放送暗号化システム１００の例では、データのブロードキャスト経路は、衛星放送配信チャンネルである。暗号化データとして送信されるデータは、例えば暗号キー、オーディオ及び／又はビデオコンテンツ、テキストメッセージ等を含んでいる。
【００７１】
放送局１１０における放送データ提供センタ１０５は、例えば放送衛星１１５を介して不特定のユーザ機器にデータを送信する。放送管理センタ１０５は、例えば送信コンテンツの暗号化に適用する暗号化用のキーを選択すること等により、特定ユーザにおいてのみ利用可能な暗号化データを生成する。
【００７２】
なお、放送データ提供センタ１０５は、特定の信頼されたエンティテイであることは必要ではない。すなわち、信頼、非信頼にかかわらず任意のエンティテイがデータ提供者となり得る。これは、本発明においては、放送データ提供センタ１０５は、公開鍵を適用して暗号化データを生成し、その公開鍵に対応する秘密鍵を持つ、あるいは取得可能な受信機のみが暗号化データの復号を可能としているからである。受信機に対して提供する秘密鍵は管理センタ１０１が管理し、秘密鍵に対応する公開鍵は、管理センタ１０１が生成し公開され、不特定のデータ提供者が利用可能となる。処理の詳細については、後述する。
【００７３】
例えばコンテンツ視聴者である各ユーザの住居に設置された受信機１２０は、衛星放送受信機を備え、放送衛星１１５を介して配信されるデータを受信する。不特定多数の受信機１２０−１〜１２０−Ｎが配信データを受信すること
ができる。後述するように、放送データ提供センタ１０５は、認証されている受信機のみが提供データを復号することができるように、公開鍵に基づいて放送データを暗号化する。認証されたユーザ機器のみが、暗号化に適用した公開鍵に対応する秘密鍵を用いて配信される暗号化データの復号処理が可能となる。なお、図１には、放送衛星１１５を用いた放送システムを示しているが、ケーブルテレビジョンやコンピュータネットワーク等、この他の放送チャンネルを用いたブロードキャスト構成としてもよい。
【００７４】
図２は、例えば図１に示す放送データ提供センタ１０５を構成する情報処理装置の具体的な構成を示すブロック図である。図２に示すデータ提供センタ２００は、コントローラ２０５と、演算ユニット２１０と、入出力インタフェース２１５と、セキュア記憶部（ｓｅｃｕｒｅ  ｓｔｏｒａｇｅ）２２０と、メイン記憶部２２５とを備える。コントローラ２０５は、データ提供センタ２００の動作を制御する。一具体例においては、コントローラ２０５は、中央演算処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：以下、ＣＰＵという。）であってもよい。演算ユニット２１０は、暗号キーの生成及びデータ暗号化等、各種暗号処理のための演算機能を提供する。
【００７５】
データ提供センタ２００は、入出力インタフェース２１５を介してデータを送受信する。セキュア記憶部２２０は、例えば暗号キー等、セキュアにまたは秘密に保持すべきデータを保存する。メイン記憶部２２５は、データ提供センタ２００の動作をサポートするためのデータ、及び例えばビデオ及び／又はオーディオデータを含むコンテンツファイル等、ユーザ機器としての受信機、再生機に送信すべきデータを保存する。セキュア記憶部２２０及びメイン記憶部２２５は、例えばランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：以下、ＲＡＭという。）等のメモリ装置によって構成される。
【００７６】
図３は、例えば図１に示す受信機１２０−１〜１２０−Ｎを構成するユーザ機器としての情報処理装置の具体的な構成を示すブロック図である。図３に示す受信機３００は、コントローラ３０５と、演算ユニット３１０と、入出力インタフェース３１５と、セキュア記憶部３２０と、メイン記憶部３２５と、ディスプレイ装置３３０とを備える。
【００７７】
コントローラ３０５は、受信機３００の動作を制御する。一具体例においては、コントローラ３０５は、ＣＰＵであってもよい。演算ユニット３１０は、例えば暗号化データの復号処理に適用可能な演算機能を持つ。受信機３００は、入出力インタフェース３１５を介して、データを送受信する。
【００７８】
セキュア記憶部３２０は、例えば暗号化データの復号処理に適用する復号キー等、セキュアにまたは秘密に保持すべきデータを保存する。受信機３００用の格納する１つ以上の復号キーは、予め機器の製造者によって、セキュア記憶部３２０に保存される。あるいは、放送管理センタ１０５が受信機３００に復号キーを送信し、受信機３００が自らのセキュア記憶部３２０にこの復号キーを保存するようにしてもよい。メイン記憶部３２５は、受信機３００の動作をサポートするためのデータを保存する。一具体例においては、セキュア記憶部３２０及びメイン記憶部３２５は、ＲＡＭ等のメモリ装置により構成される。
【００７９】
ディスプレイ装置３３０は、例えばモニタ又はテレビジョン受像機であり、受信機３００において受信し復号処理のなされたデータを表示する。なお、受信機３００は、ディスプレイ装置自体を備えるのではなく、外部のディスプレイ装置に接続されるディスプレイインタフェースを備えていてもよい。
【００８０】
図４は、ＣＤ、ＤＶＤ、ＭＤ等の各種データ記憶媒体（メディア）を用いた暗号化データ提供システムの構成を示すブロック図である。図４に示す暗号化データ提供システム４００では、暗号化データはメディアに格納されて配布される。メディア製造者４１０内のメディアデータ提供センタ４０５は、例えば読出専用メディア（ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等）又は書込可能メディア（ＣＤ−ＲＷやＤＶＤ−ＲＷ等）等のメディア４１５にデータを保存する。後述するように、読出専用メディアについては、メディアデータ提供センタ４０５は、暗号化されたコンテンツキー及び暗号化されたコンテンツを記録し、認証された再生装置のみがデータを復号し、暗号化されているコンテンツ（例えば、ビデオ及び／又はオーディオ）にアクセスできるようにしている。
【００８１】
一方、書込可能メディアについては、メディアデータ提供センタ４０５は、暗号化されたコンテンツキーを記録し、認証された記録装置のみが対応するデータを記録メディアに記録できるようにしている。メディア製造者４１０は、例えば小売店等の配布センタ４２０にメディア４１５を送付する。配布センタ４２０は、ＣＤ、ＤＶＤ、ＭＤ等のメディア４１５をコンテンツ視聴者としてのユーザに提供し、ユーザは、再生機４２５に装着して利用する。
【００８２】
なお、メディアデータ提供センタ４０５は、特定の信頼されたエンティテイであることは必要ではない。すなわち、信頼、非信頼にかかわらず任意のエンティテイがデータ提供者となり得る。これは、本発明においては、メディアデータ提供センタ４０５が、公開鍵を適用して暗号化データを生成しメディアに格納して、その公開鍵に対応する秘密鍵を持つ、あるいは取得可能な受信機のみが暗号化データの復号を可能としているからである。再生機に対して提供する秘密鍵は管理センタ４０１が管理し、秘密鍵に対応する公開鍵は、管理センタ４０１が生成し公開され、不特定のデータ提供者が利用可能となる。処理の詳細については、後述する。
【００８３】
例えば、配布センタ４２０は、ＣＤ、ＤＶＤ、ＭＤ等のメディア４１５をユーザに販売し、このユーザがメディア４１５を再生機４２５に挿入する。再生機４２５は、例えばＤＶＤプレイヤ等、メディア４１５に記録されているデータを読み出して再生する装置である。なお、再生機４２５は、例えばＤＶＤ−ＲＷドライブ等、メディア４１５に対するデータ記録処理、及びメディア４１５からのデータ読み出し処理可能な記録再生装置であってもよい。後述するように、メディアデータ提供センタ４０５は、認証されている再生機４２５のみが、暗号化されているデータを復号することができるように、所定の公開鍵を適用したデータ暗号化を実行する。暗号化処理に適用した公開鍵に対応する秘密鍵を持つ再生機のみにおいて暗号化データの復号、利用が可能となる。
【００８４】
図５は、図４に示すメディアデータ提供センタ４０５を構成する情報処理装置の具体的な構成を示すブロック図である。図５に示すメディアデータ提供センタ５００は、コントローラ５０５と、演算ユニット５１０と、入出力インタフェース５１５と、セキュア記憶部５２０と、メイン記憶部５２５と、メディアインタフェース５３０とを備える。
【００８５】
コントローラ５０５は、データ提供センタ５００の動作を制御する。一具体例においては、コントローラ５０５は、ＣＰＵであってもよい。演算ユニット５１０は、例えば暗号キーの生成及び暗号化等のための専用の演算機能を提供する。また、メディアデータ提供センタ５００は、入出力インタフェース５１５を介してデータを送受信する。セキュア記憶部５２０は、例えば暗号キー等、安全又は秘密に保持すべきデータを保存する。メイン記憶部５２５は、メディアデータ提供センタ５００の動作をサポートするためのデータ、及び例えばビデオ及び／又はオーディオデータを含むコンテンツファイル等、受信機に配布すべきデータを保存する。セキュア記憶部５２０及びメイン記憶部５２５は、例えばＲＡＭ等のメモリ装置である。
【００８６】
メディアインタフェース５３０は、ＣＤ、ＤＶＤ、ＭＤ等のメディアに対する読出／書込機能を提供し、これによりデータ提供センタ５００は、例えば図４に示す暗号化データ提供システム４００によって配布されるＣＤ、ＤＶＤ、ＭＤ等のメディア４１５等の媒体にデータを書き込み、またメディア４１５からデータを読み出すことができる。
【００８７】
図６は、例えば図４に示す再生機４２５等の情報処理装置の具体的な構成を示すブロック図である。図６に示す再生機６００は、データ再生専用装置であってもよく、データ記録可能な装置であってもよい。再生機６００は、コントローラ６０５と、演算ユニット６１０と、入出力インタフェース６１５と、セキュア記憶部６２０と、メイン記憶部６２５と、ディスプレイ装置６３０と、メディアインタフェース６３５とを備える。コントローラ６０５は、再生機６００の動作を制御する。一具体例においては、コントローラ６０５は、ＣＰＵであってもよい。演算ユニット６１０は、例えば復号又は暗号化（記録装置の場合）処理に適用可能な演算機能を有する。
【００８８】
再生機６００は、入出力インタフェース６１５を介して、データを送受信する。セキュア記憶部６２０は、例えば復号キー等、安全又は秘密に保持すべきデータを保存する。再生機６００用の１つ又は複数の復号キーは、予め製造者によって、セキュア記憶部６２０に保存される。メイン記憶部６２５は、再生機６００の動作をサポートするためのデータを保存する。セキュア記憶部６２０及びメイン記憶部６２５は、例えばＲＡＭ等のメモリ装置により構成される。
【００８９】
ディスプレイ装置３３０は、例えばモニタ又はテレビジョン受像機であり、再生機６００においてメディアから読み出し、復号したデータ等の情報を表示する。なお、再生機６００は、ディスプレイ装置自体を備えるのではなく、外部のディスプレイ装置に接続されるディスプレイインタフェースを備えていてもよい。メディアインタフェース６３５は、メディア読出機能を提供する。なお、再生機６００がメディアに対するデータ記録可能な構成である場合には、書き込み機能も提供する。再生機６００は、例えば図４に示す暗号化データ提供システム４００によって配布されるＣＤ、ＤＶＤ、ＭＤ等のメディア４１５等の媒体からデータを読み出し、また再生機６００が記録装置であれば、この媒体の個体にデータを書き込むことができる。
【００９０】
図７は、データを暗号化して暗号化データを生成し、暗号化データを１つ以上の受信機または再生機等、ユーザの有する情報処理装置に提供する処理を含むブロードキャストデータ暗号化データの提供処理の手順を示すフローチャートである。
【００９１】
ブロードキャストデータ暗号化データの提供処理は、管理センタによる処理と、データ提供者による処理の２つに大きく区分される。図７の左に管理センタによる処理、右にデータ提供者による処理を示してある。
【００９２】
データ提供者による処理は、例えば、図１に示す放送暗号化システム１００であれば、不特定の受信機１２０に暗号化データを提供する放送データ提供センタ１０５の処理であり、図４に示す暗号化データ提供システム４００であれば、再生機４２５に配布するためのデータ媒体を準備するメディアデータ提供センタ４０５の処理である。
【００９３】
なお、以下においては、ブロードキャストデータ配信の代表例として、放送型のデータ配信を例として説明し、ユーザの情報処理装置を受信機として説明する。本発明は、放送型、あるいはＣＤ、ＤＶＤ、ＭＤ等のメディア配布型のいずれにおいても適用可能であり、以下の説明における受信機は、再生機に置き換えることが可能である。従って、以下の説明において受信機は、受信機、再生機を含み、暗号化コンテンツを受信またはメディアから読み出して復号し、再生する処理を実行する情報処理装置全般を意味する。
【００９４】
まず、管理センタは、ステップＳ１０１において、暗号システムをセットアップする。管理センタは、セットアップの一部として、受信機に提供される秘密鍵としてのサブキー及びマスタキーを生成する。各マスタキーは、２つ以上のサブキーを生成するために用いることができる。
【００９５】
暗号化データを提供するデータ提供センタは、秘密鍵としてのサブキーに対応する公開鍵を用いて受信機に対する提供データの暗号化処理を実行し、受信機は、サブキーを用いて暗号化データの復号化処理を実行する。
【００９６】
一具体例においては、管理センタは、各マスタキーを対応する受信機に送信する。なお、各受信機は、受信機の製造者が予め受信機に格納したマスタキーを利用する構成としてもよい。管理センタは、ステップＳ１０２において、２つ以上の受信機からなるグループの各受信機にそれぞれマスタキーを割り当てる。これに応じて、各受信機はマスタキーを保存する。なお、受信機は、サブキーのそれぞれを保存する必要はない。後述するように、受信機は、サブキー又はサブキーの一部を予め算出していてもよい。これにより、予め算出されたサブキー又はサブキーの一部を記憶するための記憶容量が必要となるが、処理速度を速めることができる。
【００９７】
管理センタは、ステップＳ１０３において、１つ以上の受信機をリボーク（無効化）する。管理センタが受信機をリボークすると、受信機の認証が取り消される。このリボーク処理を行うと、リボーク対象の受信機のみの認証が取り消され、データ提供者であるデータ提供センタから提供される暗号化データの復号が不可能になる。その他の受信機の認証は有効のまま残る。また、全ての受信機がデータを復号するための認証を管理センタから受けている場合等、管理センタが受信機を１つも無効にしない場合もある。
【００９８】
管理センタは、ステップＳ１０４において、暗号処理に使用するための秘密鍵としてのサブキーを選択し、選択した秘密鍵としてのサブキーに対応する公開鍵を設定する。後述するように、管理センタは、リボークした受信機に割り当てられているマスタキーからは生成することができないサブキーを選択する。管理センタは、各マスタキーについて、そのマスタキー及び他の多くのマスタキーから生成でき、且つ無効にされた受信機のマスタキーからは生成できないサブキーを選択する。
【００９９】
後述するように、一具体例においては、管理センタは、階層型キーツリー（ｈｉｅｒａｒｃｈｉｃａｌ  ｋｅｙ  ｔｒｅｅ）構成を用いてユーザの有する情報処理装置（受信機）に提供するサブキーの割り当て及び選択を行う。選択されたサブキーのグループは、利用可能なサブキーの全てを含んではいない。管理センタは、ステップＳ１０５において、どのサブキーが選択されたかを示す表現コード（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｃｏｄｅ）を生成する。管理センタは、この表現コードを受信機に送信する。
【０１００】
管理センタは、ステップＳ１０６において、選択されたサブキーに対応して設定した公開鍵を公開する、すなわち任意のデータ提供者に提供する。
【０１０１】
データ提供センタは、ステップＳ１５１において、提供された公開鍵、すなわち、選択された各サブキーに対応して設定された公開鍵を用いて、データを暗号化して暗号化データを作成する。データ提供センタは、例えばＲＳＡや楕円曲線暗号等の公開鍵暗号アルゴリズムを使用する。データ提供センタは、ステップＳ１５２において、暗号化データを全ての受信機に送信する。データ提供センタにおいてデータ暗号化に適用した公開鍵に対応する秘密鍵としてのサブキーを持つ受信機のみが暗号化データを復号することができる。無効にされたリボーク受信機は、暗号化データを復号することができないため、データ提供センタは、リボーク受信機を含む全ての受信機に暗号化データを送信することができる。
【０１０２】
データ提供センタは、放送暗号化システムにおいて適切なチャンネルを介して、受信機に暗号化データを送信する。例えば図１に示す放送暗号化システムでは、放送チャンネルとして衛星放送を適用可能である。なお、一具体例においては、ステップＳ１０１及びステップＳ１０２を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ１０３〜ステップＳ１５２を繰り返す。
【０１０３】
なお、データ提供センタは、選択された各サブキーに対応して設定される公開鍵を用いてコンテンツ自体を暗号化するのではなく、暗号化コンテンツの復号処理に適用するコンテンツキーを暗号化して各受信機に提供する構成としてもよい。
【０１０４】
受信機は、公開鍵に対応する秘密鍵を適用した暗号化コンテンツキーの復号処理により、コンテンツキーを取得し、取得したコンテンツキーを用いて、例えばビデオ及び／又はオーディオデータを含むファイル等である暗号化されたコンテンツファイルを復号することができる。ここで、コンテンツキーには、暗号化されたファイルを直接復号するために用いることができるものと、暗号化されたファイルを復号するための１つ以上のサブコンテンツキーを生成するために使用されるものとがある。また、コンテンツは、データストリーム又はライブコンテンツのように静的ファイルとして保存されないものもある。
図７は、管理センタとデータ提供センタとにおいて実行する１つの処理例を示した。図７では、リボーク処理を先行して実行する例を示したが、公開鍵の生成処理、公開処理を実行した後、リボークを実行して、その後、配信データの暗号化、配信処理を行ってもよい。図８を参照してこの処理手順について説明する。図８のフローについて説明する。管理センタは、ステップＳ１７１において、暗号システムをセットアップする。管理センタは、セットアップの一部として、受信機に提供される秘密鍵としてのサブキー及びマスタキーを生成する。各マスタキーは、２つ以上のサブキーを生成するために用いることができる。
管理センタは、ステップＳ１７２において、２つ以上の受信機からなるグループの各受信機にそれぞれマスタキーを割り当てる。これに応じて、各受信機はマスタキーを保存する。
管理センタは、ステップＳ１７３において、秘密鍵としてのサブキーに対応する公開鍵を生成して公開する。ここまでは、管理センタが実行する。次のステップＳ１７４〜Ｓ１７６は管理センタまたはデータ提供センタのいずれかにおいて実行する。
ステップＳ１７４では、１つ以上の受信機をリボーク（無効化）する。リボークにより受信機の認証が取り消される。ステップＳ１７５において、暗号処理に使用するための秘密鍵としてのサブキーを選択する。ステップＳ１７６において、どのサブキーが選択されたかを示す表現コード（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｃｏｄｅ）を生成する。管理センタまたはデータ提供センタは、この表現コードを受信機に送信する。
以下のステップＳ１７７、Ｓ１７８はデータ提供センタが実行する。ステップＳ１７７において、公開鍵、すなわち、選択された各サブキーに対応して設定された公開鍵を用いて、データを暗号化して暗号化データを作成する。データ提供センタは、例えばＲＳＡや楕円曲線暗号等の公開鍵暗号アルゴリズムを使用する。データ提供センタは、ステップＳ１７８において、暗号化データを全ての受信機に送信する。データ提供センタにおいてデータ暗号化に適用した公開鍵に対応する秘密鍵としてのサブキーを持つ受信機のみが暗号化データを復号することができる。無効にされたリボーク受信機は、暗号化データを復号することができないため、データ提供センタは、リボーク受信機を含む全ての受信機に暗号化データを送信することができる。
データ提供センタは、放送暗号化システムにおいて適切なチャンネルを介して、受信機に暗号化データを送信する。例えば図１に示す放送暗号化システムでは、放送チャンネルとして衛星放送を適用可能である。なお、一具体例においては、ステップＳ１７１〜ステップＳ１７３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ１７４〜ステップＳ１７８を繰り返す。
なお、データ提供センタは、選択された各サブキーに対応して設定される公開鍵を用いてコンテンツ自体を暗号化するのではなく、暗号化コンテンツの復号処理に適用するコンテンツキーを暗号化して各受信機に提供する構成としてもよい。
【０１０５】
図９は、コンテンツキー及びコンテンツファイルの暗号化を含むブロードキャストデータ暗号化処理の手順を示すフローチャートである。図９に示す処理フローにおいて、図７を用いて説明したステップと同様のステップは、図７と同様に実行されるので、図７に示す処理と異なるステップについて、以下に説明する。
【０１０６】
まず、ステップＳ２０１において、管理センタは、暗号システムをセットアップする。管理センタは、ステップＳ２０２において、２つ以上の受信機からなるグループの各受信機にそれぞれマスタキーを割り当てる。管理センタは、ステップ２０３において、１つ以上の受信機をリボーク処理により無効にする。管理センタは、ステップＳ２０４において、暗号処理に使用するための秘密鍵としてのサブキーと秘密鍵としてのサブキーを選択し、対応する公開鍵を設定する。管理センタは、ステップＳ２０５において、どのサブキーが選択されたかを示す表現コードを生成し、この表現コードを全ての受信機に送信する。
【０１０７】
管理センタは、ステップＳ２０６において、選択されたサブキーに対応して設定した公開鍵を公開する、すなわち任意のデータ提供者に提供する。
【０１０８】
データ提供センタは、ステップＳ２５１において、提供公開鍵、すなわち選択されたサブキーに対応する公開鍵を用いてコンテンツキーを個別のキー暗号化データとして暗号化する。データ提供センタは、選択された各サブキーに対応する公開鍵を用いて、同じコンテンツキーを暗号化し、選択された各サブキーについてキー暗号化データを生成する。データ提供センタは、ステップＳ２５２において、受信機にキー暗号化データ、すなわち公開鍵によって暗号化された暗号化コンテンツキーを送信する。
【０１０９】
データ提供センタは、ステップＳ２５３において、コンテンツキーを用いてコンテンツファイルを暗号化する。ここでは、無効にされたリボーク受信機は、データ提供センタが暗号処理に適用した公開鍵に対応する秘密鍵としてのサブキーを持たないため、暗号化されたコンテンツファイル又はキー暗号化データを復号できない。従って、データ提供センタは、ステップＳ２５４において、無効にされた受信機を含む全ての受信機に暗号化されたコンテンツファイル及びキー暗号化データ（各コンテンツキーを含んでいる）を送信することができる。
【０１１０】
さらに、データ提供センタは、選択されたサブキーに対応する公開鍵を用いて、コンテンツキーを個別のキー暗号化データとして、複数回暗号化及び放送することができる。一具体例においては、データ提供センタは、ステップＳ２０１及びステップＳ２０２を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ２０３〜ステップＳ２０９を繰り返す。
図９は、管理センタとデータ提供センタとにおいて実行する１つの処理例を示した。図９では、リボーク処理を先行して実行する例を示したが、公開鍵の生成処理、公開処理を実行した後、リボークを実行して、その後、配信データの暗号化、配信処理を行ってもよい。図１０を参照してこの処理手順について説明する。
図１０のフローについて説明する。管理センタは、ステップＳ２７１において、暗号システムをセットアップする。管理センタは、セットアップの一部として、受信機に提供される秘密鍵としてのサブキー及びマスタキーを生成する。各マスタキーは、２つ以上のサブキーを生成するために用いることができる。
管理センタは、ステップＳ２７２において、２つ以上の受信機からなるグループの各受信機にそれぞれマスタキーを割り当てる。これに応じて、各受信機はマスタキーを保存する。
管理センタは、ステップＳ２７３において、秘密鍵としてのサブキーに対応する公開鍵を生成して公開する。ここまでは、管理センタが実行する。次のステップＳ２７４〜Ｓ２７６は管理センタまたはデータ提供センタのいずれかにおいて実行する。
ステップＳ２７４では、１つ以上の受信機をリボーク（無効化）する。リボークにより受信機の認証が取り消される。ステップＳ２７５において、暗号処理に使用するための秘密鍵としてのサブキーを選択する。ステップＳ２７６において、どのサブキーが選択されたかを示す表現コード（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｃｏｄｅ）を生成する。管理センタまたはデータ提供センタは、この表現コードを受信機に送信する。
以下のステップＳ２７７〜Ｓ２８０はデータ提供センタが実行する。ステップＳ２７７において、公開鍵、すなわち、選択された各サブキーに対応して設定された公開鍵を用いて、コンテンツキーを暗号化して暗号化コンテンツキーを作成する。データ提供センタは、例えばＲＳＡや楕円曲線暗号等の公開鍵暗号アルゴリズムを使用する。データ提供センタは、ステップＳ２７８において、暗号化コンテンツキーを全ての受信機に送信する。
ステップＳ２７９において、コンテンツキーを用いてコンテンツファイルを暗号化し、ステップＳ２８０において、暗号化コンテンツファイルを全ての受信機に送信する。
データ提供センタにおいてデータ暗号化に適用した公開鍵に対応する秘密鍵としてのサブキーを持つ受信機のみが暗号化コンテンツキーを復号することができる。無効にされたリボーク受信機は、暗号化コンテンツキーを復号することができないため、データ提供センタは、リボーク受信機を含む全ての受信機に暗号化データを送信することができる。
データ提供センタは、放送暗号化システムにおいて適切なチャンネルを介して、受信機に暗号化データを送信する。例えば図１に示す放送暗号化システムでは、放送チャンネルとして衛星放送を適用可能である。なお、一具体例においては、ステップＳ１７１〜ステップＳ１７３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ１７４〜ステップＳ１７８を繰り返す。
【０１１１】
受信機によって実行される放送データ復号処理を説明するフローチャートを図１１に示す。一具体例においては、例えば図１に示す放送暗号化システム１００のように、受信機１２０−１〜１２０−Ｎは、放送データ提供センタ１０５から放送されてくるデータ及び暗号化データを受信する。他の具体例においては、例えば図４に示す暗号化データ提供システム４００のように、再生機４２５が、メディアデータ提供センタ４０５が配布のために準備したＣＤ、ＤＶＤ、ＭＤ等のメディアを介して、データ及び暗号化データを受け取る。以下、ユーザの持つデータ復号処理を実行する情報処理装置を受信機とした例について説明する。
【０１１２】
受信機は、ステップＳ３０１において、管理センタからマスタキーを受け取る。受信機は、マスタキーをセキュア記憶部に保存する。なお、受信機は、管理センタから直接ではなく、受信機の製造者によって受信機に予め格納されたマスタキーを利用してもよい。受信機は、ステップＳ３０２において、管理センタから表現コードを受け取る。表現コードは、管理センタがどのサブキーによって暗号化データが復号可能であるかを示している。
【０１１３】
受信機は、ステップＳ３０３において、データ提供センタから、例えば放送チャンネルを介して、１つ以上の暗号化データを受信する。一具体例においては、受信機は、表現コードを確認し、どの暗号化データを復号することができるかを判断し、受信機が復号できない暗号化データを削除又は無視する。
【０１１４】
なお、図７、図９の処理フローの説明では、表現コードの配布は管理センタから受信機に直接行われるものとして説明したが、管理センタからデータ提供センタに配布し、データ提供センタからユーザの受信機に配布する構成としてもよい。
【０１１５】
受信機は、ステップＳ３０４において、表現コードを用いて、復号に用いるターゲットサブキー（ｔａｒｇｅｔ  ｓｕｂ  ｋｅｙ）を選択する。ターゲットサブキーは、受信機のマスタキーに基づいて生成されるサブキーであり、データ提供センタが提供する暗号化データの暗号化に適用した公開鍵に対応する秘密鍵である。
【０１１６】
サブキーを選択した後、受信機は、ステップＳ３０５において、受信機のマスタキーに基づいて、選択されたサブキーを生成する。サブキーの生成処理の詳細については後述する。受信機は、ステップＳ３０６において、生成したサブキーを用いて、受信した暗号化データを復号する。この復号の後、受信機は、暗号化データに基づく復号データの利用、再生ができる。一具体例においては、受信機は、ステップＳ３０１を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ３０２〜ステップＳ３０６を繰り返す。
【０１１７】
管理センタは、受信機をリーフ（葉：ｌｅａｆ）とする階層型キーツリーに基づいて、サブキーの選択処理を行う。一具体例においては、管理センタは、ツリー（木構造）のノードにノードキーを割り当てた階層型キーツリーを用いる。他の具体例においては、管理センタは、ノードの子とサブセットキーとを指示するサブセットを階層型キーツリーのノードに割り当てる。さらに他の具体例においては、管理センタは、サブセットキーを用いて、複数のマスタキーを各受信機に割り当てる。さらに他の具体例においては、管理センタは、キー木に代えて、キーテーブルと、キーテーブルから要素を選択するためのベクトルとを使用する。以下、これらの具体例及び変形例について説明する。
【０１１８】
［ノードキーを有する階層型キーツリー］
例えば図１に示す放送暗号化システム１００又は図４に示す暗号化データ提供システム４００等、様々なデータ提供センタから複数のユーザ機器（例えば受信機、再生機）に対してデータを放送により送信、あるいはメディアを介して提供するブロードキャスト型暗号化データ提供システムの一実施例としてノードキーを有する階層型キーツリーによる管理構成について説明する。
【０１１９】
管理センタは、階層型キーツリー（ｈｉｅｒａｒｃｈｉｃａｌ  ｋｅｙ  ｔｒｅｅ：以下、ＨＫＴとも呼ぶ。）に設定されたノードキーを用いたユーザ機器管理を実行し、任意のデータ提供センタが公開鍵を適用して暗号化したデータを特定のユーザ機器においてのみ利用可能な秘密鍵で復号することができる構成を実現する。この具体例においては、階層型キーツリーの各ノードに設定されるノードキーは、上述したサブキーである。以下、図７及び図１１に示す処理をこの構造に適用した具体例について説明する。
【０１２０】
図１２は、ノードキーを有するＨＫＴを用いたセットアップ処理、マスタキーの受信機に対する割り当て処理の詳細を説明するフローチャートであり、例えば図７のステップＳ１０１及びＳ１０２の処理の詳細手順を示すフローチャートである。図１３は、１６個の受信機からなる受信機のグループを含むＨＫＴ１１００におけるノードキー１１１０のノード１１０５への割り当て構成を示す図である。
【０１２１】
管理センタは、ステップＳ４０１において、ＨＫＴを定義する。このＨＫＴは、Ｎ個のリーフを有するルートを持つ完全バイナリツリー（完全２進木：ｆｕｌｌ  ｂｉｎａｒｙ  ｔｒｅｅ）であり、リーフ（葉）と、ルート（根）と、内部ノードとを含む２Ｎ−１個のノードを有する。図１３に示すように、ノードは、Ｖｉ（ｉ＝１，・・・，２Ｎ−１）として表される。ここでＮが２の累乗ではない場合、管理センタは、Ｎより大きく且つＮに最も近い２の累乗個のリーフを有するＨＫＴを定義する。
【０１２２】
管理センタは、ステップＳ４０２において、各受信機を個々のリーフに割り当てる。受信機は、図１３に示すように、ｕｊ（ｊ＝１，・・・，Ｎ）として表される。ここで、Ｎが２の累乗ではない場合、余りのリーフには「仮想の」受信機が割り当てられる。なお、仮想の受信機は、仮想のエンティテイであり、後に無効にする必要はない。管理センタは、ステップＳ４０３において、暗号化パラメータを選択する。管理センタは、暗号化パラメータを用いて例えばキー等の暗号化のための値を生成する。
【０１２３】
暗号化パラメータのうちの一部は公開暗号化パラメータであり、管理センタは、ステップＳ４０４において、公開暗号化パラメータを公開する。管理センタは、例えば公開暗号化パラメータを各受信機に送信することにより公開暗号化パラメータを公開する。管理センタは、この他の秘密暗号化パラメータを受信機に対して秘密にする。管理センタは、２つの大きな素数ｑ１及びｑ２を選択し、Ｍ＝ｑ１×ｑ２である値Ｍを算出する。管理センタは、この値Ｍを公開暗号化パラメータとして公開する。
【０１２４】
さらに、管理センタは、パラメータｑ’、ｇを選択し、公開暗号化パラメータとして公開する。ただし、ｑ’は、例えば１０２４ビットの大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元である。
【０１２５】
さらに、管理センタは、Ｋ０∈Ｚ＊ＭであるＫ０を秘密暗号化パラメータとして選択する。さらに、管理センタは、２Ｎ−１個の素数ｐｉ（ｉ＝１，・・・，２Ｎ−１）を公開暗号化パラメータとして選択する。管理センタは、ルート及びリーフを含む対応したノードｖｉに各素数ｐｉを割り当てる（例えば、Ｐ１はｖ１に割り当てられる）。管理センタは、ノードへの素数の割り当てを公開する。管理センタは、以下の式に基づいて値Ｔを生成する。
【数１４１】
2004229128.tif 000073
【０１２６】
なお、管理センタは、値Ｔを公開しない。また、管理センタは、各受信機ｕｊに対して値ｗｊを生成する。ｗｊは、受信機ｕｊに対応するリーフからルートまでのパスに含まれる各ノードｖｉに割り当てられた全ての素数ｐｉの積である。例えば、図１３に示すＨＫＴ１１００において、ｗ１は、ｕ１に対応し、ノードｖ１６、ｖ８、ｖ４、ｖ２、ｖ１に割り当てられた素数の積であり、したがって、ｗ１＝ｐ１６×ｐ８×ｐ４×ｐ２×ｐ１である。
【０１２７】
管理センタは、ステップＳ４０５において、暗号化パラメータを用いて、公開鍵暗号方式における秘密鍵としての秘密ノードキーを生成する。秘密ノードキーは、図１３に示すように、ＰｒｉＮＫｉとして表される。管理センタは、以下の式（式ａ１）に基づいて、各ノードｖｉに対応する秘密ノードキーＰｒｉＮＫｉを算出する。
【数１４２】
2004229128.tif 000074
・・・（式ａ１）
【０１２８】
次に管理センタは、ステップＳ４０６において、上述の秘密ノードキーＰｒｉＮＫｉに対応する公開鍵として公開ノードキーＰｕｂＮＫｉを算出する。公開ノードキーは、下記式（式ａ２）に従って算出する。
【数１４３】
2004229128.tif 000075
・・・（式ａ２）
【０１２９】
さらに、管理センタは、ステップＳ４０７において、上記式に従って生成した公開ノードキー、およびノード番号ｉと、公開ノードキーＰｕｂＮＫｉとの対応を示す公開鍵ファイルとを公開する。すなわち任意のデータ提供センタに提供する。公開鍵ファイルは、図１４に示すように階層型キーツリーを構成するノード番号ｉと、公開ノードキーＰｕｂＮＫｉとの対応を示すデータである。
【０１３０】
公開ノードキーの提供を受けたデータ提供者は、特定のユーザ機器のみの復号可能な暗号化データを上述の公開ノードキーＰｕｂＮＫｉを用いた暗号化処理により生成する。暗号化データは、下式（式ａ３）に基づいて、ノード（ｉ）用の暗号文として生成する。下式において、Ｉが送信する秘密のデータである。
【数１４４】
2004229128.tif 000076
・・・（式ａ３）
【０１３１】
上記式において、ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。データ提供者は、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴｉとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開ノードキーＰｕｂＮＫｉに対応する秘密鍵としての秘密ノードキーＰｒｉＮＫｉを適用して暗号化データＣＴｉを復号する。データ復号処理については後述する。
【０１３２】
次に、管理センタは、各秘密ノードキーＰｒｉＮＫｉを対応する各ノードｖｉに割り当てる。管理センタは、ステップＳ４０８において、暗号化パラメータを用いてマスタキーを生成する。マスタキーは、図１３に示すように、ＭＫｊとして表される。ここで、管理センタは、以下の式（式ａ４）に基づいて、各受信機ｕｊに対応するマスタキーＭＫｊを算出する。
【０１３３】
【数１４５】
2004229128.tif 000077
・・・（式ａ４）
【０１３４】
管理センタは、各マスタキーＭＫｊを対応する受信機ｕｊに割り当てる。このマスタキーＭＫｊを用いて、受信機ｕｊに対応するリーフからルートまでのパスに含まれるノードｖｉに対応する全ての秘密鍵としての秘密ノードキーＰｒｉＮＫｉを導出することができる。例えば、図１３に示すＨＫＴ１１００において、ｕ１にはマスタキーＭＫ１が割り当てられており、このＭＫ１を用いて秘密ノードキーＰｒｉＮＫ１６、ＰｒｉＮＫ８、ＰｒｉＮＫ４、ＰｒｉＮＫ２、ＰｒｉＮＫ１を導出することができる。受信機ｕｊのいずれも無効にされていない場合は、ルートの秘密ノードキーＰｒｉＮＫ１は、全てのマスタキーＭＫｊから導出することができる。
【０１３５】
管理センタは、ステップＳ４０９において、各マスタキーＭＫｊを対応する受信機ｕｊに送信する。管理センタは、ステップＳ４１０において、ＨＫＴに関する情報を各受信機に送信する。ここで、管理センタは、ＨＫＴ内のノード数と、受信機に関係がある割り当てを示す情報を受信機に送信する。
【０１３６】
具体的には、管理センタは、上述した素数ｐｉ、さらに例えば１０２４ビットの大きな素数ｑ’と、巡回群Ｚｑ’＊の生成元ｇ等の公開暗号化パラメータと、どのノードｖｉに素数ｐｉが対応しているかに関する情報とを公開する。
【０１３７】
さらに、管理センタは、どのノードｖｉに受信機ｕｊが割り当てられているか、どのノードｖｉにどの受信機のマスタキーＭＫｊが割り当てられているか、及びどのノードｖｉに受信機のマスタキーＭＫｊから導出可能な秘密ノードキーＰｒｉＮＫｉが割り当てられているかを示す情報を送信する。図７のステップＳ１０２における説明において述べたように、他の具体例として、管理センタが受信機の製造業者にマスタキーを提供し、受信機の製造業者が受信機にマスタキーを組み込む構成も可能である。この場合、管理センタは、製造業者を介して、公開暗号化パラメータ及びＨＫＴ情報を受信機に提供する。
【０１３８】
図１５は、ＨＫＴを用いて受信機をリボーク（無効化）し、リボーク受信機を考慮して秘密ノードキーを選択し、表現コードを生成する処理を示すフローチャートである。なお、図１５に示すこれらの処理は、管理センタではなく、データ提供者が行ってもよい。。例えば図７のステップＳ１０３、Ｓ１０４、Ｓ１０５に対応する処理である。図１６は、図１３のＨＫＴ１１００において、無効にされた受信機１３０５及び選択されたノードキー１３１０を示す図である。
【０１３９】
管理センタは、ステップＳ５０１において、１つ以上の受信機のリボーク処理（無効化）を実行する。管理センタは、受信機が管理センタから送信している暗号化データを復号する権限を有さなくなった場合に、その受信機をリボークする。例えば、管理センタは、必要な料金を支払っていない受信機又はライセンスが有効ではなくなった受信機を無効にする。
【０１４０】
図１６では、無効にされた受信機１３０５に対応するＨＫＴ１１００の対応するノードに「×」印を付している。管理センタは、受信機ｕ１、ｕ５、ｕ９、ｕ１３を無効にしている。この他の受信機ｕ２、ｕ３、ｕ４、ｕ６、ｕ７、ｕ８、ｕ１０、ｕ１１、ｕ１２、ｕ１４、ｕ１５、ｕ１６は、無効にされていない、すなわち有効な受信機である。
【０１４１】
管理センタは、ステップＳ５０２において、リボーク受信機に割り当てられているマスタキーに基づいて生成することができる秘密ノードキーを無効にする。例えば、図１６に示す具体例では、管理センタは、受信機ｕ１を無効にしている。この受信機ｕ１にはマスタキーＭＫ１が割り当てられている。受信機ｕ１は、マスタキーＭＫ１に基づいて、秘密ノードキーＰｒｉＮＫ１６、ＰｒｉＮＫ８、ＰｒｉＮＫ４、ＰｒｉＮＫ２、ＰｒｉＮＫ１を生成することができる。したがって、管理センタは、秘密ノードキーＰｒｉＮＫ１６、ＰｒｉＮＫ８、ＰｒｉＮＫ４、ＰｒｉＮＫ２、ＰｒｉＮＫ１を無効にする。
【０１４２】
リボーク（無効化）されていない受信機の各マスタキーについては、管理センタは、ステップＳ５０３において、リボーク（無効化）されていない受信機のマスタキーに基づいて生成可能であり、かつリボーク受信機のマスタキーからは生成できない秘密ノードキーを選択する。ＨＫＴ１１００において、管理センタは、無効にされた秘密ノードキーに対応する親ノードを有する無効にされていない受信機を選択する。
【０１４３】
あるいは、管理センタは、無効にされたノードキーに対応するノードを取り除く処理を実行して、リボーク受信機を除去してもよい。ノードを取り除くことにより、１つ以上のサブツリーが残り、認証受信機のみからなるサブツリーを構成してもよい。なお、サブツリーは、単一のノードのみから構成される場合もある。
【０１４４】
管理センタは、これらのサブツリーのルートとなるノードに対応した秘密ノードキーを選択する。図１６では、ノードを囲む正方形の枠によって選択された秘密ノードキー１３１０を示している。すなわち、管理センタは、秘密ノードキーＰｒｉＮＫ１７、ＰｒｉＮＫ９、ＰｒｉＮＫ２１、ＰｒｉＮＫ１１、ＰｒｉＮＫ２５、ＰｒｉＮＫ１３、ＰｒｉＮＫ２９、ＰｒｉＮＫ１５を選択する。
【０１４５】
管理センタは、ステップＳ５０４において、ＨＫＴ及び無効にされたリボーク受信機に基づいて表現木（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｔｒｅｅ）を定義する。図１７は、図１３及び図１６に示すＨＫＴ１１００に基づく表現木１４００を示している。図１７の濃い又は太い枝（ｅｄｇｅ）は、表現木１４００の一部である枝を示している。図１７の薄い又は細い枝は、表現木１４００に含まれない。無効にされたリボーク受信機１４０５及び選択された秘密ノードキー１４１０は、図１６と同様に示されている。表現木１４００のルートは、対応するＨＫＴのルートである。表現木１４００のリーフは、選択された秘密ノードキーに対応するノードである。表現木１４００の内部ノードは、リーフとルートの間のノードである。
【０１４６】
管理センタは、ステップＳ５０５において、表現木１４００に基づく表現コードを生成する。管理センタは、ＨＫＴにおける対応するノードに子が存在する場合、どの子が表現木に含まれているかを示す値を表現木の各ノードに割り当てる。この具体例では、バイナリツリー（２進木）を用いているため、表現木の各ノードは、２つの子を有する可能性がある。したがって、２つの１ビット値を用いて、ノードが有する可能性がある各子について、表現木に子ノードが含まれているか否かを示すことができる。
【０１４７】
図１７では、表現木１４００の各ノードの隣に示す括弧で括られた２つの数によって、この値を示している。例えば、ルートの隣には、（１，１）が示されており、これは、ルートの左側の子と右側の子が表現木に含まれていることを表している。また、ノードｖ８については、左側の子（無効にされた受信機ｕ１に対応するノードｖ１６）は表現木に含まれておらず、右側の子（ノードｖ１７）は表現木に含まれているため、ノードｖ８の隣には、（０，１）が示されている。リーフは、子となるノードを有していないため、表現木１４００のリーフは、子が含まれていないことを示す値を有している。例えば、図１７に示すノードｖ１７は、（０，０）の値を有している。表現木のリーフに対応する秘密ノードキーは、選択された秘密ノードキーであり、したがって、管理センタは、リーフに対応する秘密ノードキーＰｒｉＮＫｉに対応する公開ノードキーＰｕｂＮＫｉ生成して、これを公開し、データ提供センタは、公開された公開鍵を適用して暗号化を行い、暗号化データを生成する。
【０１４８】
管理センタは、表現木のノードに割り当てられた値を一続きのシーケンスデータにすることにより、表現コードを生成する。管理センタは、各ノードに割り当てられた値を幅優先順（ｂｒｅａｄｔｈ−ｆｉｒｓｔ  ｏｒｄｅｒ）に連結する。例えば、図１７に示す具体例では、管理センタは、ノードｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７、ｖ８、ｖ９、ｖ１０、ｖ１１、ｖ１２、ｖ１３、ｖ１４、ｖ１５、ｖ１７、ｖ２１、ｖ２５、ｖ２９（この他のノードは、表現木に含まれていない。）の値を用いる。すなわち、管理センタは、値（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（０，１）、（０，０）、（０，１）、（０，０）、（０，１）、（０，０）、（０，１）、（０，０）、（０，０）、（０，０）、（０，０）、（０，０）を用いる。これにより生成される表現コードは、１１１１１１１１１１１１１１０１０００１０００１０００１００００００００００である。
【０１４９】
管理センタは、ステップＳ５０６において、各受信機に表現コードを送信する。受信機は、表現コードを用いて、表現ツリーを再構築することができる。後述するように、受信機は、検索アルゴリズム（例えば幅優先順検索法（ｂｒｅａｄｔｈ−ｆｉｒｓｔ  ｓｅａｒｃｈ））を用いて、ＨＫＴにおける受信機のノードからＨＫＴのルートまでのパス上のノードに対応する表現木のリーフを特定する。受信機は、受信機のマスタキーに基づいてそのノードの秘密ノードキーを導出し、この秘密ノードキーを用いて復号を行う。
【０１５０】
データ提供センタは、選択された各秘密ノードキーＰｒｉＮＫｉに対応する公開ノードキーＰｕｂＮＫｉを用いて、上述の式（式ａ３）を適用してデータを暗号化する（図７のステップＳ１５１参照）。データ提供センタは暗号化データをブロードキャスト送信する（図７に示すステップＳ１５２参照）。
【０１５１】
なお、一具体例においては、図９の処理フローに示したように、データ提供センタは、選択された各秘密ノードキー（式ａ１参照）に対応する公開ノードキー（式ａ２参照）を用いて、コンテンツキーをキー暗号化データとして暗号化し、このキー暗号化データを受信機に送信し、次に、コンテンツキーを用いてコンテンツファイルを暗号化し、暗号化されたコンテンツファイルを受信機に送信する。
【０１５２】
図１８は、受信機によるブロードキャスト送信された暗号化データの復号処理を示すフローチャートである。図１８に示す処理は、ユーザの情報処理装置における処理であり、例えば図１に示す放送暗号化システム１００において、放送データ提供センタ１０５から放送されたデータ及び暗号化データを受信する受信機１２０−１〜１２０−Ｎの処理である。または、図４に
示す放送暗号化システム４００において、メディアデータ提供センタ４０５が配布のために準備したデータ媒体を介して、データ及び暗号化データを読み取り再生を行う再生機４２５による処理である。
【０１５３】
受信機は、ステップＳ６０１において、管理センタから暗号化パラメータを受け取る。図１２のステップＳ１０４に関連して上述したように、管理センタは、受信機が管理センタから受信した暗号化データを復号するために使用する、例えば選択された素数ｐｉ等の公開暗号化パラメータを受信機に公開する。一具体例においては、受信機は、公開暗号化パラメータを非安全ストレージ（例えば、図２に示すメインストレージ２２５）に保存する。受信機は、ステップＳ６０２において、管理センタからマスタキーを受信する。図１２のステップＳ１０６及びステップＳ１０７に関連して上述したように、管理センタは、受信機用のマスタキーを生成し、このマスタキーを受信機に送信する。
【０１５４】
受信機は、このマスタキーに基づいて、復号のためのノードキーを導出する。さらに、受信機は、ステップＳ６０３において、管理センタから、管理センタによって定義されたＨＫＴに関する情報を受信する。先に図１２のステップＳ４０８に関連して説明したように、管理センタは、ＨＫＴ内のノードの数と、受信機に関連するノードへのキー割り当てとを示す情報を受信機に送信する。変形例においては、管理センタは、暗号化パラメータの一部又は全部と、マスタキーと、ＨＫＴ情報とを受信機に送信する。なお、受信機は、暗号化パラメータと、マスタキーと、ＨＫＴ情報とを、管理センタから受信せず、予め受信機の製造業者が受信機に格納したデータを読み取り使用してもよい。
【０１５５】
受信機は、ステップＳ６０４において、管理センタから表現コードを受け取る。図１５のステップＳ５０４及びステップＳ５０５に関連して説明したように、管理センタは、表現木（図１７参照）を定義し、この表現木から表現コードを生成する。
【０１５６】
受信機は、ステップＳ６０５において、表現コードを用いて、復号に使用する秘密ノードキーを選択する。受信機は、表現コードから表現木を再構築する。上述のように、図１７に示す表現木１４００用の表現コードは、１１１１１１１１１１１１１１０１０００１０００１０００１００００００００００である。受信機は、ＨＫＴ情報を用いて、表現コードを表現木のノードに対応する値、すなわち（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（１，１）、（０，１）、（０，０）、（０，１）、（０，０）、（０，１）、（０，０）、（０，１）、（０，０）、（０，０）、（０，０）、（０，０）、（０，０）に分離する。
【０１５７】
受信機は、これらの値に基づき、幅優先順検索法（ｂｒｅａｄｔｈ−ｆｉｒｓｔ  ａｐｐｒｏａｃｈ）を用いて、表現木内における子ノードの有無を判定する。例えば、最初の値（１，１）は、ルート（ノードｖ１）に対応し、ルートが左側の子（ノードｖ２）と右側の子（ノードｖ３）とを有していることを示している。第２の値（１，１）は、ノードｖ２に対応し、ノードｖ２が左側の子（ノードｖ４）と右側の子（ノードｖ５）とを有していることを示している。受信機は、このようなパターンに基づく判断を繰り返して表現木を完成させる。
【０１５８】
受信機は、ＨＫＴにおける受信機のノードからルートまでのパス上のノードに対応するリーフのノードを検出するまで、（例えば、幅優先順検索法を用いて）再構築された表現木を検索する（ここで、表現木のノードｖ１は、ＨＫＴのノードｖ１に対応する）。例えば、図１３及び図１６に示すＨＫＴ１１００及び図１７に示す表現木１４００において、受信機ｕ２は、ノードｖ１７をリーフであると認識し、受信機ｕ３及び受信機ｕ４は、共にノードｖ９をリーフであると認識する。ＨＫＴにおける受信機のノードからルートまでのパス上のノードに対応するリーフのノードが見付からない場合、受信機は、自らが無効にされ、有効なノードキーを導出することができないと判断する。
【０１５９】
例えば、受信機ｕ１は、無効にされており、したがって、受信機ｕ１のノードからルートまでのパス上にリーフを検出することができない。すなわち、受信機ｕ１は、ノードｖ１６に対応し、ノードｖ１６からルート（ノードｖ１）までのパスには、ノードｖ１６、ｖ８、ｖ４、ｖ２、ｖ１が含まれ、これらのノードｖ１６、ｖ８、ｖ４、ｖ２、ｖ１は、いずれも表現木のリーフに対応していない。一具体例においては、受信機は、管理センタと通信する（例えば、ネットワーク接続を介して）ことにより、受信機が無効にされたことを確認する。
【０１６０】
秘密ノードキーを選択した後、受信機は、ステップＳ６０６において、受信機のマスタキーに基づいて選択された秘密ノードキーを導出する。図１３を参照して上述したように、ノードｖｉ用の秘密ノードキーは、ＰｒｉＮＫｉと表され、受信機ｕｊのマスタキーは、ＭＫｊと表される。受信機ｕｊが受信する暗号化パラメータは、素数ｐｉと、受信機ｕｊに対応するリーフからルートまでのパス上のノードｖｉに割り当てられている全ての素数ｐｉの積であるｗｊとである。受信機は、以下の式（式ａ５）に基づいて秘密ノードキーＰｒｉＮＫｉを算出する。
【０１６１】
【数１４６】
2004229128.tif 000078
・・・（式ａ５）
【０１６２】
一具体例においては、受信機は、ｗｊ／ｐｉを予め算出しておく。
受信機は、ステップＳ６０７において、例えば放送暗号化システムの放送チャンネルを介して、データ提供センタから１つ以上の暗号化データを受信する。データ提供センタは、上述の式（式ａ２）により定義される公開鍵を適用して生成した上述の式（式ａ３）により定義される暗号化データを送信する。なお、受信機は、ノードキーを導出する前に、暗号化データを受信してもよい。
【０１６３】
ステップＳ６０８において、受信機は、上述のようにして導出したノードキーを用いて、受信した暗号化データを復号し復号データＩを取得する。データ復号処理は、下式（式ａ６）に基づいて実行する。
【数１４７】
2004229128.tif 000079
・・・（式ａ６）
【０１６４】
なお、一具体例においては、受信機は、導出したノードキーを用いて、受信した各暗号化データを復号するよう試みる。受信機は、例えばチェックサム値を用いて、復号結果が受信した暗号化データに対して正しいものであるか否かを判定する。他の具体例においては、受信機は、導出したノードキーが暗号化データの復号に有効であるか否かを判定した後、導出したノードキーに対応する暗号化データを復号する。一具体例においては、受信機は、ステップＳ６０１〜ステップＳ６０３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ６０４〜ステップＳ６０８を繰り返す。
【０１６５】
なお、一具体例においては、図９の処理フローを参照して説明したように、受信機は、コンテンツキーを暗号化データとして受信し、さらにコンテンツキーに対応する暗号化されたコンテンツファイルを受信する。コンテンツキー及びコンテンツファイルの復号を含むブロードキャスト暗号化データの復号処理のフローチャートを図１９に示す。図１９に示す具体例において、図１８を用いて説明したステップと同様のステップは、図１８に示す具体例と同様に実行されるので、変更があったステップについて、以下に説明する。
【０１６６】
受信機は、ステップＳ７０１において、管理センタから暗号化パラメータを受信する。受信機は、ステップＳ７０２において、管理センタからマスタキーを受信する。受信機は、ステップＳ７０３において、管理センタから、管理センタにより定義されたＨＫＴに関する情報を受信する。
【０１６７】
受信機は、ステップＳ７０４において、管理センタから表現コードを受信する。受信機は、ステップＳ７０５において、表現コードを用いて、復号に使用する秘密ノードキーを選択する。秘密ノードキーを選択した後、受信機は、ステップＳ７０６において、受信機のマスタキーに基づいて、選択された秘密ノードキーを導出する。
【０１６８】
受信機は、ステップＳ７０７において、例えば放送暗号化システムの放送チャンネルを介して、データ提供センタから１つ以上のコンテンツキー暗号化データを受信する。受信機が受信する各キー暗号化データは、それぞれ異なる秘密ノードキー（式ａ１参照）に対応する公開鍵（式ａ２参照）を用いて暗号化された同一のコンテンツキーである。
【０１６９】
受信機は、ステップＳ７０８において、導出した秘密ノードキーを用いて、受信したキー暗号化データを復号する。導出された秘密ノードキーは、複数のキー暗号化データのうちの１つのキー暗号化データのみの復号に有効である。復号されたキー暗号化データにより、受信機はコンテンツキーを（例えば、平文テキスト（ｃｌｅａｒｔｅｘｔ）として）得ることができる。
【０１７０】
受信機は、ステップＳ７０９において、データ提供センタから、暗号化されたコンテンツファイルを受信する。コンテンツファイルは、コンテンツキーを用いて暗号化されている。受信機は、例えばヘッダ情報又はファイルサイズに基づいて、キー暗号化データと、暗号化されているコンテンツファイルとを区別する。受信機は、ステップＳ７１０において、コンテンツキーを用いて、暗号化されているコンテンツファイルを復号する。これにより、受信機は、平文のコンテンツファイルにアクセスすることができる。
【０１７１】
例えば、コンテンツファイルがビデオファイルである場合、受信機は、コンテンツを再生することができる（図３に示す受信機３００及び図６に示す再生機６００参照）。一具体例においては、受信機はステップＳ７０１〜ステップＳ７０３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ７０４〜ステップＳ７１０を繰り返す。
【０１７２】
他の具体例においては、ユーザの情報処理装置としての受信機は、メディアに対してデータ記録処理を実行可能であり、書込可能データ媒体の個体に記録された表現コード及び１つ以上のキー暗号化データを受け取る。受信機は、データ媒体からの表現コードを用いて、上述のように、ノードキーを導出する。受信機は、導出したノードキーを用いて、データ媒体に記録されているキー暗号化データからコンテンツキーを復号する。受信機は、復号されたコンテンツキーを用いて、データ媒体にデータを記録する。受信機が有効なノードキーを導出できず、したがってデータ媒体に記録されているキー暗号化データからコンテンツキーを復号できない場合、この受信機は、データ媒体にデータを記録することはできない。管理センタ及び受信機は、後述するように、この記録技術をサブセットキーを用いる具体例にも適用することができる。
【０１７３】
上述のように、管理センタは、秘密ノードキー（式ａ１参照）および秘密ノードキーに対応する公開ノードキー（式ａ２参照）を生成し、データ提供センタは、公開ノードキーを用いてデータ暗号化を行う。受信機は、管理センタから秘密ノードキーを受け取り、これらの秘密ノードキーを用いて復号を行う。
【０１７４】
他の具体例として、データ提供センタは、ハッシュ関数を用いてハッシュキーを算出し、このハッシュキーを用いて暗号化を行う構成としてもよい。ハッシュ関数は、ノードキーの空間に亘ってランダムに分布した要素を、ハッシュキーの長さであるランダムに分布したストリングスにマッピングする。これにより、データ提供センタは、ハッシュ関数を用いて、ノードキーのサイズを暗号化アルゴリズム用のキーのサイズに調整することができる。例えば、一具体例において、ノードキーは１０２４ビットからなり、暗号化アルゴリズムは１２８ビットキーを用いる。
【０１７５】
データ提供センタによるハッシュ関数を適用した暗号化データの生成について説明する。上記した式（式ａ３）を適用した暗号文生成処理によると、各暗号文ＣＴｉのサイズはｑ’のサイズとなる。ハッシュ関数を適用することにより、各暗号文のサイズを小さくして効率化が図れる。暗号化データＣＴｉは、下式（式ａ７）に従って生成する。
【０１７６】
【数１４８】
2004229128.tif 000080
・・・（式ａ７）
【０１７７】
上記式において、ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。Ｈは、｜ｑ’｜（たとえば１０２４ｂｉｔ）のビット列を｜Ｉ｜（たとえば、１２８ｂｉｔ）のビット列にランダムにマッピングするハッシュ関数である。この、ハッシュ関数は、管理センタによって公開される。たとえば図７のステップＳ１０１のセットアップフェーズにおいて公開する。
【０１７８】
ハッシュ関数の具体例として、ＭＤ５がある（１９９７年、ＣＲＣプレス社、エー・ジェイ・メネゼス（Ａ．Ｊ．Ｍｅｎｅｚｅｓ）、ピー・シー・バン・オースコット（Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔ）、エス・エー・バンストーン（Ｓ．Ａ．Ｖａｎｓｔｏｎｅ）著、「応用暗号技術ハンドブック（Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ）」第３４７頁参照。この文献は参照により本願に援用される）。
【０１７９】
データ提供センタは、前述したと同様、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴｉとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密ノードキーを適用して暗号化データＣＴｉを復号する。
【０１８０】
受信機におけるデータ復号処理は、下式（式ａ８）に従って実行される。
【数１４９】
2004229128.tif 000081
・・・（式ａ８）
【０１８１】
［サブセットキーを有する階層型キーツリー］
次に、ブロードキャスト暗号化データの提供により、特定の認証ユーザのみのデータ利用を可能とした構成例としてサブセットキーを有する階層型キーツリーを用いた構成例について説明する。
【０１８２】
ブロードキャスト暗号化データ提供システムは、例えば図１及び図４に示すシステム１００、４００のように、データ提供センタ、管理センタとＮ個の受信機とを備え、管理センタは、階層型キーツリー（ＨＫＴ）及びサブセットキーの管理を行う。この具体例においては、サブセットキーが上述したサブキーとして機能する。図７及び図１１に示す処理をこの具体例に適用する手法について以下に述べる。
【０１８３】
図２０は、サブセット及びサブセットキーを有するＨＫＴを用いてブロードキャスト暗号化データ提供システムをセットアップし、受信機にマスタキーを割り当てる手順を示すフローチャートである（図７のステップＳ１０１及びステップＳ１０２参照）。図２１は、ＨＫＴ１８００において、サブセット１８１０のノード１８０５への割り当てを示す図である。ここで、ＨＫＴ１８００は、２７個の受信機のグループに対応する３次の木である。図２２は、図２１に示すＨＫＴ１８００において、サブセットキー１９０５のノード１８１０への割り当てを示す図である。サブセット及びサブセットキーについては、後に説明する。
【０１８４】
管理センタは、ステップＳ８０１において、ＨＫＴを定義する。ＨＫＴは、Ｎ個のリーフを有するルートの付いた完全ａ進木（ｒｏｏｔｅｄ  ｆｕｌｌ  ａ−ａｒｙ  ｔｒｅｅ）であり、リーフと、ルートと、内部ノードとを含む（Ｎ−１）／（ａ−１）＋Ｎ個のノードを有する。内部ノードは、図２１に示すように、ｖｋ（ｋ＝１，・・・，（Ｎ−１）／（ａ−１））として表される。ここで、Ｎがａの累乗ではない場合、管理センタは、Ｎより大きく且つＮに最も近いａの累乗個のリーフを有するＨＫＴを定義する。
【０１８５】
管理センタは、ステップＳ８０２において、各受信機を各リーフに割り当てる。受信機は、図２１に示すように、ｕｊ（ｊ＝１，・・・，Ｎ）として表される。ここで、Ｎがａの累乗ではない場合、余りのリーフには「仮想の」受信機が割り当てられる。なお、仮想の受信機は、仮想のエンティティであり、後に無効にする必要はない。
【０１８６】
管理センタは、ステップＳ８０３において、各内部ノードについてサブセットを定義する。管理センタは、各内部ノードｖｋについて、２ａ−２個のサブセットを定義する。サブセットは、次のように示される。
【数１５０】
2004229128.tif 000082
【０１８７】
ここで、ｋはサブセットがどの内部ノードｖｋに対応しているかを示し、ｂ１ｂ２．．．ｂｉ．．．ｂａは、サブセットに含まれているａ値（サブセットの値）のビット列を示している。サブセットの値は、サブセットに対応している内部ノードの子ノードを示し、及び、後述するように、暗号化に使用するためにどのサブセットキーが選択されたかを示す。さらに、管理センタは、ルート（ノードｖ１）について、サブセットＳ１，１１．．．１を定義する。
【０１８８】
図２１は、サブセットの内部ノードへの割り当てを示している。例えば、管理センタは、ノードｖ２にサブセットＳ２，１００、Ｓ２，０１０、Ｓ２，００１、Ｓ２，１１０、Ｓ２，１０１、Ｓ２，０１１を割り当てている。
【０１８９】
管理センタは、ステップＳ８０４において、暗号化パラメータを選択する。管理センタは、暗号化パラメータを用いて、例えばキー等の暗号化のための値を生成する。暗号化パラメータのうちの一部は公開暗号化パラメータであり、管理センタは、ステップＳ８０５において、公開暗号化パラメータを公開する。なお、管理センタは、この他の秘密暗号化パラメータを受信機に対して秘密にする。管理センタは、２つの大きな素数ｑ１及びｑ２を選択し、Ｍ＝ｑ１×ｑ２である値Ｍを算出する。管理センタは、この値Ｍを公開暗号化パラメータとして公開する。
【０１９０】
さらに、管理センタは、パラメータｑ’、ｇを選択し、公開暗号化パラメータとして公開する。ただし、ｑ’は、例えば１０２４ビットの大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元である。
【０１９１】
さらに、管理センタは、Ｋ∈Ｚ＊ＭであるＫを秘密暗号化パラメータとしてランダムに選択する。さらに、管理センタは、以下に示すような、（２ａ−２）＊（Ｎ−１）／（ａ−１）＋１個の素数を選択する。
【数１５１】
2004229128.tif 000083
【０１９２】
なお、以下、素数、サブセットおよびサブセットキーにおいて、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａをＢと表す。管理センタは、各素数Ｐｋ，Ｂを対応するサブセットＳｋ，Ｂに割り当てる（例えば、ｐ１，１００は、Ｓ１，１００に割り当てられる）。そして、管理センタは、素数Ｐｋ，Ｂ、及びその割り当てを公開する。さらに、管理センタは、以下に示すような値Ｔを算出する。
【数１５２】
2004229128.tif 000084
管理センタは、Ｔを公開しない。
【０１９３】
管理センタは、ステップＳ８０６において、暗号化パラメータを用いて公開鍵暗号方式における秘密鍵として設定される秘密サブセットキーを生成する。秘密サブセットキーは、図２２に示すように、ＰｒｉＳＫｋ，Ｂとして示される。管理センタは、各サブセットＳｋ，Ｂに対する秘密サブセットキーＰｒｉＳＫｋ，Ｂを以下の式（式ｂ１）に従って求める。
【数１５３】
2004229128.tif 000085
・・・（式ｂ１）
【０１９４】
管理センタは、上記式（式ｂ１）によって算出される各秘密サブセットキーＰｒｉＳＫｋ，Ｂを対応するサブセットＳｋ，Ｂに割り当てる。
【０１９５】
さらに、管理センタは、ステップＳ８０７において、各秘密サブセットキーを内部ノードの子ノードに割り当てる。サブセットの値は、サブセットに対応する内部ノードの子ノードを示している。管理センタは、サブセットの値が１であるサブセットの内部ノードの各子ノードに秘密サブセットキーを割り当てる。
【０１９６】
図２２は、子ノードへのサブセットキーの割り当てを示している。例えば、図２１及び図２２に示すように、サブセットＳ１，１１１は、ルート（ノードｖ１）に対応し、秘密サブセットキーＰｒｉＳＫ１，１１１は、ルートの各子ノード（ノードｖ２，ｖ３，ｖ４）に割り当てられている。秘密サブセットキーＰｒｉＳＫ１，００１は、ルートの右側の子ノード（ｖ４）のみに割り当てられている。このようにして、管理センタは、２ａ−１−１個の秘密サブセットキーを各子ノードに割り当てる（及び秘密サブセットキーＰｒｉＳＫ１，１１．．．１をルートの各子ノードに割り当てる）。
【０１９７】
管理センタは、各受信機ｕｊに対し、追加的なパラメータである値ｗｊを生成する。ｗｊは、内部ノードｖｋに割り当てられ、受信機ｕｊのノードからルートのノードまでのパス上の子ノード（後述する）に割り当てられた秘密サブセットキーＰｒｉＳＫｋ，Ｂに対応する、サブセットＳｋ，Ｂに割り当てられた全ての素数Ｐｋ，Ｂの積である。
【０１９８】
例えば、図２１に示すＨＫＴ１８００では、ｗ１は、ｕ１に対応し、ｂ１＝１の値を有する各ノードｖ５、ｖ２、ｖ１に割り当てられているサブセットに割り当てられている素数の積である。したがって、ｗ１＝ｐ５，１００ｐ５，１１０ｐ５，１０１ｐ２，１００ｐ２，１１０ｐ２，１０１ｐ１，１００ｐ１，１１０ｐ１，１０１ｐ１，１１１である。これに代えて、管理センタがｗｊを提供するのではなく、受信機が素数Ｐｋ，Ｂからｗｊを導出するようにしてもよい。
【０１９９】
さらに、管理センタは、ステップＳ８０８において、上述の秘密サブセットキー（式ｂ１参照）を公開鍵暗号方式における秘密鍵として設定した場合の対応公開鍵としての公開サブセットキーを算出する。公開サブセットキーは、下記式（式ｂ２）に従って算出する。
【０２００】
【数１５４】
2004229128.tif 000086
・・・（式ｂ２）
【０２０１】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。さらに、管理センタは、ステップＳ８０９において、上記式に従って生成した公開鍵、およびサブセットを示す値ｋ，Ｂと、公開サブセットキーとの対応を示す公開サブセットキーファイル（公開鍵ファイル）を公開する。すなわち任意のデータ提供センタに提供する。公開鍵ファイルは、図２３に示すようにサブセットを示す値ｋ，Ｂと、サブセット公開キーＰｕｂＳＫｋ，Ｂとの対応を示すデータである。
【０２０２】
公開された公開サブセットキーの提供を受けたデータ提供者は、特定のユーザ機器のみの復号可能な暗号化データを上述の公開サブセットキーを用いた暗号化処理により生成する。暗号化データは、下式（式ｂ３）に基づいて生成する。
【数１５５】
2004229128.tif 000087
・・・（式ｂ３）
【０２０３】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。Ｉが送信する秘密データである。ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。データ提供者は、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴｋ，Ｂとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密ノードキーを適用して暗号化データＣＴｋ，Ｂを復号する。データ復号処理については後述する。
【０２０４】
管理センタは、ステップＳ８１０において、暗号化パラメータを用いてマスタキーを生成する。マスタキーは、図２２に示すように、ＭＫｊとして表される。ここで、管理センタは、以下の式（式ｂ４）に基づいて、各受信機ｕｊに対応するマスタキーＭＫｊを算出する。
【数１５６】
2004229128.tif 000088
・・・（式ｂ４）
【０２０５】
管理センタは、各マスタキーＭＫｊを対応する受信機ｕｊに割り当てる。マスタキーＭＫｊを用いて、受信機ｕｊに対応するリーフ、又は受信機ｕｊに対応するリーフからルートまでのパスに含まれる内部ノードｖｋに対応する全ての秘密サブセットキーＰｒｉＳＫｋ，Ｂを導出することができる。
【０２０６】
例えば、図２２に示すＨＫＴ１８００において、ｕ１にはマスタキーＭＫ１が割り当てられており、このＭＫ１を用いて秘密サブセットキーＰｒｉＳＫ５，１００、ＰｒｉＳＫ５，１１０、ＰｒｉＳＫ５，１０１、ＰｒｉＳＫ２，１００、ＰｒｉＳＫ２，１１０、ＰｒｉＳＫ２，１０１、ＰｒｉＳＫ１，１００、ＰｒｉＳＫ１，１１０、ＰｒｉＳＫ１，１０１、ＰｒｉＳＫ１，１１１を導出することができる。受信機ｕｊのいずれも無効にされていない場合は、秘密サブセットキーＰｒｉＳＫ１，１１．．．１は、全てのマスタキーＭＫｊから導出することができる。管理センタは、ステップＳ８１１において、各マスタキーＭＫｊを対応する受信機ｕｊに送信する。
【０２０７】
管理センタは、ステップＳ８１２において、ＨＫＴに関する情報を各受信機に送信する。管理センタは、ＨＫＴの構造（例えば、ＨＫＴ内のノード数）及び受信機に関連する割り当て（例えば、サブセットキー及びサブセットのノードへの割り当て）を示す情報を受信機に送信する。上述のように、管理センタは、素数Ｐｋ，Ｂ等の公開暗号化パラメータ及びどの内部ノードがこの素数Ｐｋ，Ｂに対応しているかを示す情報を公開する。さらに、管理センタは、各サブセットＳｋ，Ｂがどの内部ノードｖｋに割り当てられており、及び受信機のマスタキーＭＫｊから導出することができる秘密サブセットキーＰｒｉＳＫｋ，Ｂがどの内部ノードｖｋ又はリーフに割り当てられているかを示す情報を送信する。
【０２０８】
図７のステップＳ１０２について上述したように、他の具体例においては、管理センタは、受信機の製造業者にマスタキーを提供し、受信機の製造業者が受信機にマスタキーを組み込む。この場合、管理センタは、製造業者を介して、公開暗号化パラメータ及びＨＫＴ情報を受信機に提供する。
【０２０９】
図２４は、ＨＫＴを用いて特定の受信機、例えば料金未払い等の受信機のリボーク処理を実行して無効にし、ノードキーを選択し、表現コードを生成する処理を示すフローチャートである。図７のステップＳ１０３、Ｓ１０４、Ｓ１０５に対応する処理である。なお、図２４に示す処理は、管理センタではなくデータ提供センタが行ってもよい。
【０２１０】
図２５は、図２１のＨＫＴ１８００において、無効にされた受信機２１０５及び選択された秘密サブセットキー２１１０に対応するサブセットのノードを示す図である。管理センタは、ステップＳ９０１において、１つ以上の受信機のリボーク処理を実行し無効にする。管理センタは、受信機が管理センタから送信している暗号化データを復号する権限を有さなくなった場合に、その受信機を無効又は有効ではなくする。例えば、管理センタは、必要な料金を支払っていない受信機又はライセンスが有効ではなくなった受信機を無効にする。
【０２１１】
図２５では、無効にされた受信機、例えば受信機２１０５に対応するＨＫＴ１８００の対応するノードに「×」印を付している。管理センタは、受信機ｕ２、ｕ１３、ｕ２７を無効にしている。この他の受信機ｕ１、ｕ３〜ｕ１２、ｕ１４〜ｕ２６は、無効にされていない、すなわち有効な受信機である。
【０２１２】
管理センタは、ステップＳ９０２において、無効にされたリボーク受信機に割り当てられているマスタキーに基づいて生成できる秘密鍵としての秘密サブセットキーを無効にする。例えば、図１５に示す具体例では、管理センタは、受信機ｕ２を無効にし、この受信機ｕ２にはマスタキーＭＫ２が割り当てられている。受信機ｕ２は、マスタキーＭＫを用いて、秘密サブセットキーＰｒｉＳＫ５，０１０、ＰｒｉＳＫ５，１１０、ＰｒｉＳＫ５，０１１、ＰｒｉＳＫ２，１００、ＰｒｉＳＫ２，１１０、ＰｒｉＳＫ２，１０１、ＰｒｉＳＫ１，１００、ＰｒｉＳＫ１，１１０、ＰｒｉＳＫ１，１０１、ＰｒｉＳＫ１，１１１を生成することができる。したがって、管理センタは、秘密サブセットキーＰｒｉＳＫ５，０１０、ＰｒｉＳＫ５，１１０、ＰｒｉＳＫ５，０１１、ＰｒｉＳＫ２，１００、ＰｒｉＳＫ２，１１０、ＰｒｉＳＫ２，１０１、ＰｒｉＳＫ１，１００、ＰｒｉＳＫ１，１１０、ＰｒｉＳＫ１，１０１、ＰｒｉＳＫ１，１１１を無効にする。
【０２１３】
無効にされていない受信機の各マスタキーについては、管理センタは、ステップＳ９０３において、これらのマスタキーに基づいて生成でき、且つ無効にされている受信機に対応するマスタキーからは生成できない秘密サブセットキーを選択する。ＨＫＴ１８００において、管理センタは、無効にされていない秘密サブセットキーを有する子ノードを示すサブセットに対応する有効なサブセットを選択する（図２１を用いて説明したように、サブセットは内部ノードに割り当てられており、また図２２を用いて説明したように、秘密サブセットキーは、子ノードに割り当てられている）。
【０２１４】
なお、他の手法において、管理センタは、無効にされた受信機に対応するリーフからルートまでのパス上の枝を取り除いてリボーク機器の排除を行うことが可能である。枝を取り除くことにより、有効機器を持つ１つ以上の切り離されたサブツリーが残る。なお、１つ以上のサブツリーは、単一の枝しか有していない場合もある。図２６は、図２１に示すＨＫＴ１８００から枝を取り除いたツリー２２００を示している。
【０２１５】
取り除かれた枝２２０５は、破線により示されている。一方、残っている枝２２１０は、実線により示されている。管理センタは、これらのサブツリーのルートとなるノードに対応し、これらのサブツリーに含まれる子ノードを示すサブセットに対応する秘密サブセットキーを選択する。例えば、図２６に示す具体例では、内部ノードｖ５は、３個の子ノードを有するサブツリーのルートである。右側の子ノード及び左側の子ノードのサブセットキーは無効にされておらず、一方、中央の子ノードのサブセットキーは無効にされている。サブセットＳ５，１０１は、ノードｖ５の左側及び右側の子を示しており、したがって、管理センタは、対応する秘密サブセットキーＰｒｉＳＫ５，１０１を選択する。
【０２１６】
図２５及び図２６では、選択された秘密サブセットキーに対応するノードを囲む正方形の枠によって選択されたサブセットキー２１１０を示している。すなわち、管理センタは、秘密サブセットキーＰｒｉＳＫ２，０１１、ＰｒｉＳＫ３，１０１、ＰｒｉＳＫ４，１１０、ＰｒｉＳＫ５，１０１、ＰｒｉＳＫ９，０１１、ＰｒｉＳＫ１３，１１０を選択している。
【０２１７】
管理センタは、ステップＳ９０４において、ＨＫＴ及び無効にされた受信機に基づいて表現木を定義する。図２７は、図２１及び図２５に示すＨＫＴ１８００に基づく表現木２３００を示している。図２７の濃い又は太い枝は、表現木２３００の一部である枝を示している。図１７の薄い又は細い枝は、表現木２３００に含まれない。無効にされた受信機２１０５及び選択されたサブセットキー２１１０は、図２５と同様に示されている。表現木２３００のルートは、対応するＨＫＴのルートである。表現木２３００のリーフは、選択されたサブセットキーに対応するサブセットである。表現木２３００の内部ノードは、リーフとルートの間のノードである。
【０２１８】
管理センタは、ステップＳ９０５において、表現木２３００に基づく表現コードを生成する。管理センタは、表現木の各ノードに２つの値を割り当てる。管理センタは、ＨＫＴ内のノードに子が存在する場合、ＨＫＴ内の対応するノードのどの子が表現木に含まれるかを示す子値（ｃｈｉｌｄ  ｖａｌｕｅ）を割り当てる。管理センタは、ノードに対応するサブセットが、選択された対応するサブセットキーを有する場合、どのサブセットがどのサブセットキーに対応しているかを示すサブセット値を割り当てる。この具体例では、ａ進木を用いているため、表現木の各ノードは、ａ個の子を有する可能性がある。したがって、管理センタは、ａ個の１ビット値を用いて、サブセット値を示すことができる。図２７では、表現木２３００の各ノードの隣に示す括弧で括られた（”子値”，”サブセット値”）のパターンを有する２つの数によって、子値及びサブセット値を示している。
【０２１９】
例えば、ルートの隣には、（１１１，０００）が示されている。「１１１」は子値であり、ルートの左側、中央、右側の子が表現木２３００に含まれていることを表している。「０００」はサブセット値であり、ルートのサブセットに対応するサブセットキーが１つも選択されていないことを表している。また、ノードｖ２の隣には、（１００，０１１）が示されている。子値「１００」は、左側の子（ノードｖ５）が表現木２３００に含まれており、中央及び右側の子（ノードｖ６及びノードｖ７）が表現木２３００に含まれていないことを表している。
【０２２０】
サブセット値「０１１」は、値０１１を有するサブセット（すなわち、ＳＫ２，０１１）に対応するサブセットキーが選択されていることを表している。表現木のリーフは、子を有していないことを示す値を有している。例えば、図２７に示す具体例では、ノードｖ５及びｖ９は、それぞれ値（０００，１０１）及び（０００，０１１）を有する。このように、表現木２３００は、ノードｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ９、ｖ１３を含み、管理センタは、秘密サブセットキーＰｒｉＳＫ２，０１１、ＰｒｉＳＫ３，１０１、ＰｒｉＳＫ４，１１０、ＰｒｉＳＫ５，１０１、ＰｒｉＳＫ９，０１１、ＰｒｉＳＫ１３，１１０を選択している。
【０２２１】
管理センタは、表現木のノードに割り当てられた値を一続きにすることにより、表現コードを生成する。管理センタは、各ノードに割り当てられた値を幅優先順に連結する。例えば、図２７に示す具体例では、管理センタは、ノードｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ９、ｖ１３（この他のノードは、表現木に含まれていない。）の値を用いる。すなわち、管理センタは、値（１１１，０００）、（１００，０１１）、（０１０，１０１）、（００１，１１０）、（０００，１０１）、（０００，０１１）、（０００，１１０）を用いる。これにより生成される表現コードは、１１１０００１０００１１０１０１０１００１１１００００１０１００００１１０００１１０である。
【０２２２】
管理センタは、ステップＳ９０６において、各受信機に表現コードを送信する。受信機は、表現コードを用いて、表現ツリーを再構築することができる。後述するように、受信機は、表現木内のサブセット値に基づく検索アルゴリズムを用いて、ＨＫＴにおける受信機のノードからＨＫＴのルートまでのパス上のノードであって、受信機のマスタキーによって導出できる対応するサブセットを持つノードを特定する。受信機は、受信機のマスタキーに基づいてそのサブセットキーを導出し、このサブセットキーを用いて復号を行う。
【０２２３】
データ提供センタは、選択された各秘密サブセットキーに対応する公開サブセットキーを用いて、上述の式（式ｂ３）を適用してデータを暗号化する（図７のステップＳ１５１参照）。データ提供センタは暗号化データをブロードキャスト送信する（図７に示すステップＳ１５２参照）。
【０２２４】
なお、一具体例においては、データ提供センタによる、選択された秘密サブセットキーに対応する公開サブセットキーによるデータ暗号化処理と、表現コードの生成処理は、いずれが先でもよい。上述のように、受信機が１つも無効にされていない場合、データ提供センタは、同一のサブセットキー（図２２におけるＳＫ１，１１．．．１）を用いて暗号化を行う。
【０２２５】
データ提供センタは、選択された秘密サブセットキーに対応する公開サブセットキーを適用して生成した暗号化データを全ての受信機に対して送信する（図７に示すステップＳ１０７参照）。なお、一具体例においては、図９の処理フローに示したように、データ提供センタは、選択されたサブセットキーを用いて、コンテンツキーをキー暗号化データとして暗号化し、このキー暗号化データを受信機に送信し、次に、コンテンツキーを用いてコンテンツファイルを暗号化し、暗号化されたコンテンツファイルを受信機に送信する。
【０２２６】
図２８は、受信機によるブロードキャスト送信された暗号化データの復号処理を示すフローチャートである。図２８に示す処理は、ユーザの情報処理装置における処理であり、例えば図１に示す放送暗号化システム１００において、放送データ提供センタ１０５から放送されたデータ及び暗号化データを受信する受信機１２０−１〜１２０−Ｎの処理である。または、図４に
示す放送暗号化システム４００において、メディアデータ提供センタ４０５が配布のために準備したデータ媒体を介して、データ及び暗号化データを読み取り再生を行う再生機４２５による処理である。
【０２２７】
受信機は、ステップＳ１００１において、管理センタから暗号化パラメータを受け取る。図２０のステップＳ８０４に関連して上述したように、管理センタは、受信機が管理センタから受信した暗号化データを復号するために使用する、例えば、サブセットＳｋ，Ｂへの素数Ｐｋ，Ｂの割り当て等の公開暗号化パラメータを受信機に公開する。
【０２２８】
一具体例においては、受信機は、公開暗号化パラメータを非安全ストレージ（例えば、図２に示すメインストレージ２２５）に保存する。受信機は、ステップＳ１００２において、管理センタからマスタキーを受信する。受信機は、マスタキーを安全ストレージに保存する。図２０のステップＳ８０８及びステップＳ８０９に関連して上述したように、管理センタは、受信機用のマスタキーを生成し、このマスタキーを受信機に送信する。受信機は、このマスタキーに基づいて、復号のためのサブセットキーを導出する。さらに、受信機は、ステップＳ１００３において、管理センタから、管理センタによって定義されたＨＫＴに関する情報を受信する。
【０２２９】
先に図２０のステップＳ８１０に関連して説明したように、管理センタは、ＨＫＴの構造と、受信機に関連する割り当てに関する情報とを受信機に送信する。変形例においては、管理センタは、暗号化パラメータの一部又は全部と、マスタキーと、ＨＫＴ情報とを受信機に送信する。なお、受信機は、暗号化パラメータと、マスタキーと、ＨＫＴ情報とを、管理センタから受信せず、予め受信機の製造業者が受信機に格納したデータを読み取り使用してもよい。
【０２３０】
受信機は、ステップＳ１００４において、管理センタから表現コードを受け取る。図２４のステップＳ９０４及びステップＳ９０５に関連して説明したように、管理センタは、表現木（図２７参照）を定義し、この表現木から表現コードを生成する。
【０２３１】
受信機は、ステップＳ１００５において、表現コードを用いて、復号に使用する秘密サブセットキーを選択する。受信機は、表現コードから表現木を再構築する。上述のように、図２７に示す表現木２３００用の表現コードは、１１１０００１０００１１０１０１０１００１１１００００１０１００００１１０００１１０である。受信機は、ＨＫＴ情報を用いて、表現コードを表現木のノードに対応する値、すなわち（１１１，０００）、（１００，０１１）、（０１０，１０１）、（００１，１１０）、（０００，１０１）、（０００，０１１）、（０００，１１０）に分離する。
【０２３２】
受信機は、これらの値に基づき、幅優先順検索法（ｂｒｅａｄｔｈ−ｆｉｒｓｔ  ａｐｐｒｏａｃｈ）を用いて、表現木内における子ノードの有無を判定する。例えば、最初の値（１１１，０００）は、ルート（ノードｖ１）に対応し、子値「１１１」は、ルートが左側の子（ノードｖ２）と、中央の子（ノードｖ３）と、右側の子（ノードｖ４）とを有していることを示している。第２の値（１００，０１１）は、ノードｖ２に対応し、ノードｖ２が左側の子（ノードｖ５）を有しているが、中央及び右側の子を有していないことを示している。受信機は、このようなパターンに基づく判断を繰り返して表現木を完成させる。サブセット値は、サブセットキーが選択されている場合、各ノードについてどのサブセットキーが選択されているかを表している。
【０２３３】
受信機は、内部ノードｖｋに対応し、及びＨＫＴにおける受信機のノードからルートまでのパス上の子ノードに割り当てられた秘密サブセットキーに対応するサブセットを検出するまで、（例えば、幅優先順検索法を用いて）再構築された表現木を検索する（ここで、表現木のノードｖ１は、ＨＫＴのノードｖ１に対応する）。上述のように、管理センタは、ＨＫＴ内の各ノードにサブセットを割り当て（図２１参照）、各サブセットは対応する秘密サブセットキーを有している。
【０２３４】
管理センタは、サブセット値を用いて、サブセットに対応するノードの１つ以上の子ノードに、対応する秘密サブセットキーを割り当てる（図２２参照）。受信機は、子ノードへの秘密サブセットキーの割り当てに関する情報に基づいて、表現木により示されているどの秘密サブセットキーを用いて復号を行うかを判断する。受信機は、表現木を検索し、ＨＫＴにおいて受信機に対応するリーフからルートまでのパス上のノードに対応する秘密サブセットキーを検出する。
【０２３５】
例えば、図２１、図２２、図２５及び図２７の表現木２３００に示すように、受信機ｕ１は、ＨＫＴ１８００における受信機ｕ１に対応するリーフからルートまでのパス上のノードに対応する選択された秘密サブセットキーとして、秘密サブセットキーＰｒｉＳＫ５，１０１を検出する。受信機ｕ１のパスには、受信機ｕ１に対応するリーフと、ノードｖ５、ｖ２、ｖ１が含まれる。受信機ｕ１に対応するリーフには、秘密サブセットキーＰｒｉＳＫ５，１０１が対応し、したがって、受信機ｕ１のパス上のノードには、秘密サブセットキーが対応している。また、秘密サブセットキーＰｒｉＳＫ５，１０１は、受信機ｕ３に対応するノードにも対応しているため、同様に、受信機ｕ３は、秘密サブセットキーＰｒｉＳＫ５，１０１を選択された秘密サブセットキーとして検出する。
【０２３６】
受信機ｕ４〜ｕ９は、秘密サブセットキーＰｒｉＳＫ２，０１１を検出する。受信機が、ＨＫＴにおける受信機に対応するリーフからルートまでのパス上のノードに対応するサブセットキーを表現木内で検出できない場合、受信機は、自らが無効にされ、有効なキーを導出することができないと判断する。例えば、受信機ｕ２は、無効にされており、したがって、受信機ｕ２は、受信機ｕ２に対応するリーフからルートまでのパス上のノードに対応する秘密サブセットキーを検出することができない。受信機ｕ２のパス上には、受信機ｕ２に対応するリーフと、ノードｖ５、ｖ２、ｖ１が存在する。これらのうち、いずれのノードも表現木におけるサブセットキーに対応していない。一具体例においては、受信機は、管理センタと通信する（例えば、ネットワーク接続を介して）ことにより、受信機が無効にされたことを確認する。
【０２３７】
秘密サブセットキーを選択した後、受信機は、ステップＳ１００６において、受信機のマスタキーに基づいて選択された秘密サブセットキーを導出する。上述のように、秘密サブセットキーは、ＰｒｉＳＫｋ，Ｂと表され、マスタキーは、図１３に示すようにＭＫｊと表される。受信器ｕｊが受信する暗号化パラメータは、素数Ｐｋ，Ｂと、ｗｊである。ｗｊは、内部ノードｖｋに割り当てられ、受信器ｕｊに対応するリーフであるノードからルートまでのパス上に存在する子ノードに割り当てられた秘密サブセットキーＰｒｉＳＫｋ，Ｂに対応するサブセットＰｒｉＳｋ，Ｂに割り当てられた全ての素数Ｐｋ，Ｂの積である。これに代えて、受信機は、ｗｊを受信するのではなく、素数Ｐｋ，Ｂからｗｊを算出してもよい。受信機は、以下の式（式ｂ５）に基づいて秘密サブセットキーＰｒｉＳＫｋ，Ｂを算出する。
【０２３８】
【数１５７】
2004229128.tif 000089
・・・（式ｂ５）
【０２３９】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。なお、一具体例においては、受信機は、ｗｊ／Ｐｋ，Ｂを予め算出しておく。
【０２４０】
受信機は、ステップＳ１００７において、例えば放送暗号化システムの放送チャンネルを介して、データ提供センタから１つ以上の暗号化データを受け取る。データ提供センタは、上述の式（式ｂ２）により定義される公開サブセットキーを適用して生成した上述の式（式ｂ３）により定義される暗号化データを送信する。なお、受信機は、秘密サブセットキーを導出する前に、暗号化データを受信してもよい。
【０２４１】
ステップＳ１００８において、受信機は、上述のようにして導出した秘密サブセットキーを用いて、受信した暗号化データを復号し復号データＩを取得する。データ復号処理は、下式（式ｂ６）に基づいて実行する。
【０２４２】
【数１５８】
2004229128.tif 000090
・・・（式ｂ６）
【０２４３】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。なお、一具体例においては、受信機は、導出したサブセットキーを用いて、受信した各暗号化データを復号するよう試みる。受信機は、例えばチェックサム値を用いて、復号結果が受信した暗号化データに対して正しいものであるか否かを判定する。他の具体例においては、受信機は、導出したサブセットキーが暗号化データの復号に有効であるか否かを判定した後、導出したサブセットキーに対応する暗号化データを復号する。一具体例においては、受信機は、ステップＳ１００１〜ステップＳ１００３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ１００４〜ステップＳ１００８を繰り返す。
【０２４４】
なお、一具体例においては、図９の処理フローを参照して説明したように、受信機は、コンテンツキーを暗号化データとして受信し、さらにコンテンツキーに対応する暗号化されたコンテンツファイルを受信する。コンテンツキー及びコンテンツファイルの復号を含むブロードキャスト暗号化データの復号処理のフローチャートを図２９に示す。図２９に示す具体例において、図２８を用いて説明したステップと同様のステップは、図２８に示す具体例と同様に実行されるので、変更があったステップについて、以下に説明する。
【０２４５】
受信機は、ステップＳ１１０１において、管理センタから暗号化パラメータを受信する。受信機は、ステップＳ１１０２において、管理センタからマスタキーを受信する。受信機は、ステップＳ１１０３において、管理センタから、管理センタにより定義されたＨＫＴに関する情報を受信する。
【０２４６】
ステップＳ１１０４において、管理センタから表現コードを受信する。受信機は、ステップＳ１１０５において、表現コードを用いて、復号に使用する秘密サブセットキーを選択する。秘密サブセットキーを選択した後、受信機は、ステップＳ１１０６において、受信機のマスタキーに基づいて、選択された秘密サブセットキーを導出する。
【０２４７】
受信機は、ステップＳ１１０７において、放送暗号化システムの放送チャンネルを介して、データ提供センタから１つ以上のコンテンツキー暗号化データを受信する。受信機が受信する各キー暗号化データは、それぞれ異なる秘密サブセットキーを用いて暗号化された同一のコンテンツキーである。
【０２４８】
受信機は、ステップＳ１１０８において、導出した秘密サブセットキーを用いて、受信したキー暗号化データを復号する。導出された秘密サブセットキーは、複数のキー暗号化データのうちの１つのキー暗号化データのみの復号に有効である。復号されたキー暗号化データにより、受信機はコンテンツキーを（例えば、平文テキストとして）得ることができる。
【０２４９】
受信機は、ステップＳ１１０９において、データ提供センタから、暗号化されたコンテンツファイルを受け取る。コンテンツファイルは、コンテンツキーを用いて暗号化されている。受信機は、例えばヘッダ情報又はファイルサイズに基づいて、キー暗号化データと、暗号化されているコンテンツファイルとを区別する。受信機は、ステップＳ１１１０において、コンテンツキーを用いて、暗号化されているコンテンツファイルを復号する。これにより、受信機は、平文のコンテンツファイルにアクセスすることができる。
【０２５０】
例えば、コンテンツファイルがビデオファイルである場合、受信機は、コンテンツを再生することができる（図３に示す受信機３００及び図６に示す再生機６００参照）。一具体例においては、受信機はステップＳ１１０１〜ステップＳ１１０３を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、暗号化データの配信毎に、ステップＳ１１０４〜ステップＳ１１１０を繰り返す。
【０２５１】
一具体例においては、受信機は、管理センタから受信した素数Ｐｋ，Ｂを暗号化パラメータとして保存する。他の具体例においては、受信機は、この素数Ｐｋ，Ｂを保存せず、必要に応じて生成する。この場合、受信機は値Ｌを保存する。ここで、Ｌは、間隔（ｉｎｔｅｒｖａｌ）（（ｋ−１）Ｌ，ｋＬ］が少なくとも２ａ−１個の素数を含むように選択される。さらに、一具体例においては、Ｌは、Ｌ＞（２ａ−１）ｌｎ（２ａＮｌｏｇ２ａＮ）を満たすように選択される。受信機は、例えばミラー・ラビンアルゴリズム（Ｍｉｌｌｅｒ−Ｒａｂｉｎ  ａｌｇｏｒｉｔｈｍ）等の素数検査アルゴリズムを用いて、（ｋ−１）Ｌより大きいｘ番目に小さい素数を検索する。ここで、ｘは、Ｂの値によって示されるバイナリ表現の十進法数である。例えば、受信機は、素数ｐ１，１１１に対して７番目に小さい奇数の素数（ｏｄｄ  ｐｒｉｍｅ）を使用する（１１１は、十進法数７のバイナリ表現である）。
【０２５２】
他の具体例として、データ提供センタは、ハッシュ関数を用いてハッシュキーを算出し、このハッシュキーを用いて暗号化を行う構成としてもよい。データ提供センタによるハッシュ関数を適用した暗号化データの生成について説明する。上記した式（式ｂ３）を適用した暗号文生成処理によると、各暗号文ＣＴｉのサイズはｑ’のサイズとなる。ハッシュ関数を適用することにより、各暗号文のサイズを小さくして効率化が図れる。暗号化データＣＴｉは、下式（式ｂ７）に従って生成する。
【０２５３】
【数１５９】
2004229128.tif 000091
・・・（式ｂ７）
【０２５４】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。Ｈは、｜ｑ’｜（たとえば１０２４ｂｉｔ）のビット列を｜Ｉ｜（たとえば、１２８ｂｉｔ）のビット列にランダムにマッピングするハッシュ関数である。この、ハッシュ関数は、管理センタによって公開される。たとえば図７のステップＳ１０１のセットアップフェーズにおいて公開する。
【０２５５】
データ提供センタは、前述したと同様、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴｋ，Ｂとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密サブセットキーを適用して暗号化データＣＴｋ，Ｂを復号する。
【０２５６】
受信機におけるデータ復号処理は、下式（式ｂ８）に従って実行される。
【数１６０】
2004229128.tif 000092
・・・（式ｂ８）
【０２５７】
［秘密サブセットキー及び各受信機用の複数のマスタキーを有する階層型キーツリー］
次に、ブロードキャスト暗号化データの提供により、特定の認証ユーザのみのデータ利用を可能とした構成例として秘密サブセットキー及び各受信機用の複数のマスタキーを有する階層型キーツリーを用いた構成例について説明する。
【０２５８】
ブロードキャスト暗号化データ提供システムは、例えば図１及び図４に示すシステム１００、４００のように、データ提供センタ、管理センタとＮ個の受信機とを備え、管理センタは、階層型キーツリー（ＨＫＴ）及び秘密サブセットキー、および各受信機用の複数のマスタキーの管理を行う。この具体例においては、図２０〜図２９を用いて説明した具体例に類似しており、異なる点を中心として以下に説明する。
【０２５９】
管理センタは、図２０〜図２２を用いて上述した処理と同様の手法により、ブロードキャスト暗号化データ提供システムをセットアップする。ただし、この具体例においては、管理センタは、各受信機に対し複数のマスタキーを生成する。後述するように、受信機は、上述の具体例のように１つのマスタキーを用いて、受信機からルートまでのパス上のノードに割り当てられている公開鍵暗号方式における秘密鍵としての秘密サブセットキーを導出するのではなく、受信した各マスタキーを用いて、各ノードに割り当てられている秘密サブセットキーを導出する。
【０２６０】
この具体例では、管理センタは、受信機からルートまでのパス上の各ノードについて１つのマスタキーを受信機に提供する（但し、ルートには秘密サブセットキーが割り当てられないので、ルート自体は除く）。
【０２６１】
図３０は、サブセット及びサブセットキーを有するＨＫＴを用いてブロードキャスト暗号化データ提供システムをセットアップし、受信機に複数のマスタキーを割り当てる手順を示すフローチャートである（図７のステップＳ１０１及びステップＳ１０２参照）。図３１は、ＨＫＴ２７００において、サブセットキー２７０５のノード２７１０への割り当てを示す図である。ここで、ＨＫＴ２７００は、２７個の受信機のグループに対応する３次の木である。図３１において、サブセットは、図２１におけるＨＫＴ１８００と同様にＨＫＴ２７００に割り当てられている。
【０２６２】
管理センタは、ステップＳ１２０１において、ＨＫＴを定義する。ＨＫＴは、Ｎ個のリーフを有するルートの付いた完全ａ進木（ｒｏｏｔｅｄ  ｆｕｌｌ  ａ−ａｒｙ  ｔｒｅｅ）であり、リーフと、ルートと、内部ノードとを含む（Ｎ−１）／（ａ−１）＋Ｎ個のノードを有する。内部ノードは、図３１に示すように、ｖｋ（ｋ＝１，・・・，（Ｎ−１）／（ａ−１））として表される。ここで、Ｎがａの累乗ではない場合、管理センタは、Ｎより大きく且つＮに最も近いａの累乗個のリーフを有するＨＫＴを定義する。
【０２６３】
管理センタは、ステップＳ１２０２において、各受信機を各リーフに割り当てる。受信機は、図３１に示すように、ｕｊ（ｊ＝１，・・・，Ｎ）として表される。Ｎがａの累乗ではない場合、余りのリーフには「仮想の」受信機が割り当てられる。なお、仮想の受信機は、仮想のエンティティであり、後に無効にする必要はない。
【０２６４】
管理センタは、ステップＳ１２０３において、各内部ノードについてサブセットを定義する。管理センタは、各内部ノードｖｋについて、２ａ−２個のサブセットを定義する。サブセットは、ａ個の値を有し、次のように示される。
【数１６１】
2004229128.tif 000093
【０２６５】
ここで、ｋはサブセットがどの内部ノードｖｋに対応しているかを示し、ｂ１ｂ２．．．ｂｉ．．．ｂａは、サブセットに含まれているａ値（サブセットの値）のビット列を示している。サブセットの値は、サブセットに対応している内部ノードの子ノードを示し、及び、後述するように、暗号化に使用するためにどのサブセットキーが選択されたかを示す。さらに、管理センタは、ルート（ノードｖ１）について、サブセットＳ１，１１．．．１を定義する。サブセットは、図２１に示すＨＫＴ１８００と同様に、図３１に示すＨＫＴ２７００に割り当てられる。例えば、管理センタは、ノードｖ２にサブセットＳ２，１００，Ｓ２，０１０，Ｓ２，００１，Ｓ２，１１０，Ｓ２，１０１，Ｓ２，０１１を割り当てている。
【０２６６】
管理センタは、ステップＳ１２０４において、暗号化パラメータを選択する。管理センタは、暗号化パラメータを用いて、例えばキー等の暗号化のための値を生成する。暗号化パラメータのうちの一部は公開暗号化パラメータであり、管理センタは、ステップＳ１２０５において、公開暗号化パラメータを公開する。なお、管理センタは、この他の秘密暗号化パラメータを受信機に対して秘密にする。管理センタは、２つの大きな素数ｑ１及びｑ２を選択し、Ｍ＝ｑ１×ｑ２である値Ｍを算出する。管理センタは、この値Ｍを公開暗号化パラメータとして公開する。
【０２６７】
さらに、管理センタは、パラメータｑ’、ｇを選択し、公開暗号化パラメータとして公開する。ただし、ｑ’は、例えば１０２４ビットの大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元である。
【０２６８】
さらに、管理センタは、各内部ノード  ｖｋ  に対し，Ｋｋ∈Ｚ＊ＭであるＫｋを秘密暗号化パラメータとしてランダムに選択する。さらに、管理センタは、下記の（２ａ−１）個の素数ＰＢを選択する。
【数１６２】
2004229128.tif 000094
【０２６９】
管理センタは、各素数ＰＢを各ノードｖｋ用の対応するサブセットＳｋ，Ｂに割り当てる（例えば、ｐ１００は、Ｓ１，１００、Ｓ２，１００、Ｓ３，１００・・・に割り当てられる）。そして、管理センタは、素数ＰＢ及びその割り当てを公開する。さらに管理センタは、全ての素数ＰＢの積として値Ｔを下記式に従って算出する。
【数１６３】
2004229128.tif 000095
【０２７０】
管理センタは、各受信機ｕｊ及び各内部ノードｖｋについて、値ｗｊ，ｋを生成する。値ｗｊ，ｋは、内部ノードｖｋに割り当てられ、受信機ｕｊからルートまでのパス上の子ノードに割り当てられている秘密サブセットキーＰｒｉＳＫｋ，Ｂに対応するサブセットＳｋ，Ｂに割り当てられている全ての素数ＰＢの積である。
【０２７１】
例えば、図３１のＨＫＴ２７００において、ｗ１，５は受信機ｕ１及びノードｖ５に対応する。ｗ１，５は、ノードｖ５に割り当てられ、受信器ｕ１に対応するリーフノード（受信機ｕ１に対応するリーフからルートまでのパス上のｖ５の子ノード）に割り当てられている秘密サブセットキーＰｒｉＳＫｋ，Ｂに対応するサブセットＳｋ，Ｂに割り当てられている素数ＰＢの積である。すなわち、ｗ１，５＝ｐ１００ｐ１１０ｐ１０１である。
【０２７２】
管理センタは、ステップＳ１２０６において、暗号化パラメータを用いて秘密サブセットキーを生成する。秘密サブセットキーは、図３１に示すように、ＰｒｉＳＫｋ，Ｂと表される。管理センタは、各サブセットＳｋ，Ｂに対する秘密サブセットキーＰｒｉＳＫｋ，Ｂを以下の式（式ｃ１）に従って求める。
【０２７３】
【数１６４】
2004229128.tif 000096
・・・（式ｃ１）
【０２７４】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。管理センタは、上記式（式ｃ１）によって算出される各秘密サブセットキーＰｒｉＳＫｋ，Ｂを対応するサブセットＳｋ，Ｂに割り当てる。
【０２７５】
さらに、管理センタは、ステップＳ１２０７において、各秘密サブセットキーを内部ノードの子ノードに割り当てる。サブセットの値は、サブセットに対応する内部ノードの子ノードを示している。管理センタは、サブセットの値が１であるサブセットの内部ノードの各子ノードに秘密サブセットキーを割り当てる。
【０２７６】
図３１は、子ノードへの秘密サブセットキーの割り当てを示している。例えば、図２１及び図２２を参照して説明したように、サブセットＳ１，１１１は、ルート（ノードｖ１）に対応し、秘密サブセットキーＰｒｉＳＫ１，１１１は、ルートの各子ノード（ノードｖ２，ｖ３，ｖ４）に割り当てられている。秘密サブセットキーＰｒｉＳＫ１，００１は、ルートの右側の子ノード（ｖ４）のみに割り当てられている。このようにして、管理センタは、２ａ−１−１個の秘密サブセットキーを各子ノードに割り当てる（及び秘密サブセットキーＰｒｉＳＫ１，１１．．．１をルートの各子ノードに割り当てる）。
【０２７７】
さらに、管理センタは、ステップＳ１２０８において、上述の秘密サブセットキー（式ｃ１参照）を公開鍵暗号方式における秘密鍵として設定した場合の対応公開鍵としての公開サブセットキーを算出する。公開サブセットキーは、下記式（式ｃ２）に従って算出する。
【０２７８】
【数１６５】
2004229128.tif 000097
・・・（式ｃ２）
【０２７９】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。さらに、管理センタは、ステップＳ１２０９において、上記式に従って生成した公開鍵、およびサブセットを示す値ｋ，Ｂと、公開サブセットキーとの対応を示す公開サブセットキーファイル（公開鍵ファイル）を公開する。すなわち任意のデータ提供センタに提供する。公開鍵ファイルは、先に説明した図２３に示すようにサブセットを示す値ｋ，Ｂと、公開サブセットキーＰｕｂＳＫｋ，Ｂとの対応を示すデータである。
【０２８０】
公開された公開サブセットキーの提供を受けたデータ提供者は、特定のユーザ機器のみの復号可能な暗号化データを上述の公開サブセットキーを用いた暗号化処理により生成する。暗号化データは、下式（式ｃ３）に基づいて生成する。
【０２８１】
【数１６６】
2004229128.tif 000098
・・・（式ｃ３）
【０２８２】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。Ｉが送信する秘密データである。ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。データ提供者は、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴｋ，Ｂとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密ノードキーを適用して暗号化データＣＴｋ，Ｂを復号する。データ復号処理については後述する。
【０２８３】
管理センタは、ステップＳ１２１０において、暗号化パラメータを用いて、複数のマスタキーを生成する。マスタキーは、図３１に示すようにＭＫｊ，ｋと表される。管理センタは、各受信機ｕｊについて、その受信機ｕｊからルートまでのパス上に存在する各ノードｖｋ毎に１つのマスタキーＭＫｊ，ｋを生成することにより、受信機ｕｊに対して複数のマスタキーＭＫｊ，ｋを生成する。したがって、マスタキーＭＫｊ，ｋは、受信機ｕｊと内部ノードｖｋに対応する。管理センタは、マスタキーＭＫｊ，ｋを以下の式（式ｃ４）に基づいて算出する。
【０２８４】
【数１６７】
2004229128.tif 000099
・・・（式ｃ４）
【０２８５】
管理センタは、各複数のマスタキーＭＫｊ，ｋを対応する受信機ｕｊに割り当てる。このマスタキーＭＫｊ，ｋに基づいて、内部ノードｖｋに割り当てられ、受信機のノードからルートまでのパス上のノードに対応するサブセットＳｋ，Ｂに対応する全ての秘密サブセットキーＰｒｉＳＫｋ，Ｂを導出することができる。
【０２８６】
例えば、図３１に示すＨＫＴ２７００において、受信機ｕ１には、マスタキーＭＫ１，１、ＭＫ１，２、ＭＫ１，５が割り当てられている。受信機ｕ１は、マスタキーＭＫ１，１を用いて、秘密サブセットキーＰｒｉＳＫ１，１００、ＰｒｉＳＫ１，１１０、ＰｒｉＳＫ１，１０１、ＰｒｉＳＫ１，１１１を導出することができ、マスタキーＭＫ１，２を用いて、ＰｒｉＳＫ２，１００、ＰｒｉＳＫ２，１１０、、ＰｒｉＳＫ２，１０１を導出することができ、マスタキーＭＫ５，１００を用いて、秘密サブセットキーＰｒｉＳＫ５，１００、ＰｒｉＳＫ５，１１０、ＰｒｉＳＫ５，１０１を導出することができる。受信機ｕｊのいずれも無効にされていない場合、各受信機ｕｊは、マスタキーＭＫｊ，１を有し、これを用いて秘密サブセットキーＰｒｉＳＫ１，１１．．．１を導出することができる。
【０２８７】
管理センタは、ステップＳ１２１１において、対応する受信機ｕｊに複数のマスタキーＭＫｊ，ｋを送信する。さらに、管理センタは、ステップＳ１２１２において、各受信機にＨＫＴに関する情報を送信する。
【０２８８】
管理センタは、図２４及び図２７を用いて説明したように、受信機を無効にし、表現コードを生成する。受信機は、図２８及び図２９を用いて説明したように、管理センタから送信されてきた暗号化データを復号する。但し、ここでは、受信機ｕｊは、選択された秘密サブセットキーＰｒｉＳＫｋ，Ｂに対応するマスタキーＭＫｊ，ｋを選択し、以下の式（式ｃ５）に基づいて、選択された秘密サブセットキーＰｒｉＳＫｋ，Ｂを導出する。
【０２８９】
【数１６８】
2004229128.tif 000100
・・・（式ｃ５）
【０２９０】
受信機は、上述のようにして導出した秘密サブセットキーＰｒｉＳＫｋ，Ｂを用いて、受信した暗号化データを復号し復号データＩを取得する。データ復号処理は、下式（式ｃ６）に基づいて実行する。
【数１６９】
2004229128.tif 000101
・・・（式ｃ６）
【０２９１】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。なお、一具体例においては、受信機は、管理センタから受信した素数ＰＢを暗号化パラメータとして保存する。他の具体例においては、受信機は、この素数ＰＢを保存せず、最も小さい２ａ−１個の素数として生成する。他の具体例においては、受信機は、素数ＰＢに対してｄ番目に小さい奇数の素数（ｏｄｄ  ｐｒｉｍｅ）を使用する。ここで、ｄは、Ｂによって示されるバイナリ表現の十進法数である。例えば、受信機は、受信機は、素数ｐ１１１に対して７番目に小さい奇数の素数（ｏｄｄ  ｐｒｉｍｅ）を使用する（１１１は、十進法数７のバイナリ表現である）。この場合、各受信機は、Ａ／２個のエントリを有する１ビット値のテーブルを保存する。ここで、Ａは、２ａ−１個の素数を含むのに十分大きな値とする。ｘ番目のエントリは、０からｘ番目の奇数に対応し、エントリのビット値は、エントリに対応している奇数が素数であるか否かを表している。
【０２９２】
他の具体例として、データ提供センタは、公開鍵にハッシュ関数を適用してハッシュキーを算出し、このハッシュキーを用いて暗号化を行う構成としてもよい。データ提供センタによるハッシュ関数を適用した暗号化データの生成について説明する。上記した式（式ｃ３）を適用した暗号文生成処理によると、各暗号文ＣＴｋ，Ｂのサイズはｑ’のサイズとなる。ハッシュ関数を適用することにより、各暗号文のサイズを小さくして効率化が図れる。暗号化データＣＴｋ，Ｂは、下式（式ｃ７）に従って生成する。
【０２９３】
【数１７０】
2004229128.tif 000102
・・・（式ｃ７）
【０２９４】
上記式において、Ｂは、ビット列ｂ１ｂ２．．．ｂｉ．．．ｂａを示す。ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。Ｈは、｜ｑ’｜（たとえば１０２４ｂｉｔ）のビット列を｜Ｉ｜（たとえば、１２８ｂｉｔ）のビット列にランダムにマッピングするハッシュ関数である。この、ハッシュ関数は、管理センタによって公開される。たとえば図７のステップＳ１０１のセットアップフェーズにおいて公開する。
【０２９５】
データ提供センタは、前述したと同様、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘｍｏｄｑ’と、上記式によって生成される暗号化データＣＴｋ，Ｂとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密サブセットキーを適用して暗号化データＣＴｋ，Ｂを復号する。
【０２９６】
受信機におけるデータ復号処理は、下式（式ｃ８）に従って実行される。
【数１７１】
2004229128.tif 000103
・・・（式ｃ８）
【０２９７】
［メディア（媒体）キーブロック及びデータ格納メディア］
次に、次に、ブロードキャスト暗号化データの提供により、特定の認証ユーザのみのデータ利用を可能とした構成例としてメディア（媒体）キーブロック（ｍｅｄｉａ  ｋｅｙ  ｂｌｏｃｋ：以下、ＭＫＢという。）及びデータ格納メディアを用いた構成例について説明する。この具体例では、ブロックキーは、上述のサブキーであり、表現コードは、ＭＫＢであり、データのブロードキャスト経路は、データ媒体の配布（ｄｉｓｔｒｉｂｕｔｉｏｎ）である。
【０２９８】
図７及び図１１に示す処理をこの具体例に適用する手法について以下に述べる。なお、この具体例は、後述するように、マスタキーを利用できるように修正された消去可能／書込可能／記録済み媒体のためのコンテンツ保護法（Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  ｆｏｒ  Ｒｅｃｏｒｄａｂｌｅ／Ｐｒｅ−ｒｅｃｏｒｄｅｄ  Ｍｅｄｉａ：以下、ＣＰＲＭ／ＣＰＰＭという。）に基づいている（なお、ＣＰＲＭ／ＣＰＰＭは、ディー・ナオール（Ｄ．Ｎａｏｒ）他著、「ステートレス受信機の取消及び追跡スキーム（Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  Ｔｒａｃｉｎｇ  Ｓｃｈｅｍｅｓ  ｆｏｒ  Ｓｔａｔｅｌｅｓｓ  Ｒｅｃｅｉｖｅｒｓ）」に開示されている）。
【０２９９】
図３２は、ＭＫＢを用いて放送暗号化システムをセットアップし、受信機にマスタキーを割り当てる手順を示すフローチャートである（図７のステップＳ１０１及びステップＳ１０２に対応する処理である）。図３３は、ブロックキーテーブル（ｂｌｏｃｋ  ｋｅｙ  ｔａｂｌｅ：以下、ＢＫＴ）２９００を示している。図３４は、ＭＫＢ３０００を示している。ＢＫＴ２９００及びＭＫＢ３０００については、後に説明する。
【０３００】
管理センタは、ステップＳ１３０１において、ＢＫＴを定義する。ＢＫＴは、図３３のＢＫＴ２９００に示すようにＡ個の列及びＢ個の行を有する（α）、（β）の２つのテーブル、すなわち、（α）秘密ブロックキーＰｒｉＫａ，ｂエントリ２９０５からなる２次元テーブルと、（β）公開ブロックキーＰｕｂＫａ，ｂエントリ２９０７からなる２次元テーブルとにより構成される。各テーブルの各エントリ（ａ，ｂ）位置にそれぞれ公開鍵暗号方式における秘密鍵と公開鍵が対応して格納される。
【０３０１】
管理センタは、ステップＳ１３０２において、暗号化パラメータを選択する。管理センタは、暗号化パラメータを用いて、例えばキー等の暗号化のための値を生成する。暗号化パラメータのうちの一部は公開暗号化パラメータであり、管理センタは、ステップＳ１３０３において、公開暗号化パラメータを公開する。管理センタは、例えば、公開暗号化パラメータを受信機の製造業者に提供し、受信機の製造業者が（製造工程において）受信機にこの公開暗号化パラメータを組み込むことにより、公開暗号化パラメータを公開する。なお、管理センタは、この他の秘密暗号化パラメータを受信機に対して秘密にする。管理センタは、２つの大きな素数ｑ１及びｑ２を選択し、Ｍ＝ｑ１×ｑ２である値Ｍを算出する。管理センタは、この値Ｍを公開暗号化パラメータとして公開する。
【０３０２】
さらに、管理センタは、パラメータｑ’、ｇを選択し、公開暗号化パラメータとして公開する。ただし、ｑ’は、例えば１０２４ビットの大きな素数であり、ｇは、巡回群Ｚｑ’＊の生成元である。
【０３０３】
さらに、管理センタは、Ｋ∈Ｚ＊ＭであるＫを秘密暗号化パラメータとしてランダムに選択する。
【０３０４】
さらに、管理センタは、ＡＢ個の素数ｐａ，ｂを選択する。管理センタは、各素数ｐａ，ｂをＢＫＴ内のエントリ（ａ，ｂ）に割り当てる（例えば、ｐ１，１はエントリ（１，１）に割り当てられる）。管理センタは、エントリへの素数の割り当てを公開する。さらに、管理センタは、以下に示すような値Ｔを算出する。
【数１７２】
2004229128.tif 000104
【０３０５】
管理センタはＴを公開しない。管理センタは、ステップＳ１３０４において、ＢＫＴ内の各エントリに対応する秘密ブロックキーを生成する。秘密ブロックキーは、公開鍵暗号方式における秘密鍵に対応する鍵として設定される。図３３のＢＫＴ２９００に示すように、ＰｒｉＫａ，ｂと表される。管理センタは、以下の式（式ｄ１）に従って秘密ブロックキーを算出する。
【０３０６】
【数１７３】
2004229128.tif 000105
・・・（式ｄ１）
【０３０７】
管理センタは、図３３のＢＫＴ２９００に示すように、秘密ブロックキーＰｒｉＫａ，ｂをＢＫＴの対応するエントリ（ａ，ｂ）に格納する。例えば、秘密ブロックキーＰｒｉＫ１，１は、エントリ（１，１）に格納される。
【０３０８】
次に管理センタは、ステップＳ１３０５において、上述の秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを算出する。公開ブロッキクキーは、下記式（式ｄ２）に従って算出する。
【０３０９】
【数１７４】
2004229128.tif 000106
・・・（式ｄ２）
【０３１０】
さらに、管理センタは、ステップＳ１３０６において、上記式に従って生成した公開ブロックキー、およびブロックを示す識別値（ａ，ｂ）と、公開ブロックキーＰｕｂＫａ，ｂとの対応を示す公開鍵ファイルとを公開する。すなわち任意のデータ提供センタに提供する。公開鍵ファイルは、図３５に示すようにブロックを示す識別値（ａ，ｂ）と、公開ブロックキーＰｕｂＫａ，ｂとの対応を示すデータである。
【０３１１】
次に、管理センタは、ステップＳ１３０７において、ＭＫＢを定義する。ＭＫＢは、ＢＫＴに基づく２次元テーブルであり、図３４に示すように、ＢＫＴの各エントリ（ａ，ｂ）に対応するエントリ３００３を含むＡ個の列とＢ個の行を有する。
【０３１２】
図３４は、図３３に示すＢＫＴ２９００に対応して設定されるメディアキーブロック（ＭＫＢ）３０００を示している。初期的には、ＭＫＢは、空である。ＭＫＢ内の各エントリ（ａ，ｂ）は、後述するように、ＢＫＴ内の対応するエントリ（ａ，ｂ）に格納されている公開ブロックキーＰｕｂＫａ，ｂを用いて暗号化されたメディアキー（ＭｅＫ：ｍｅｄｉａ  ｋｅｙ）を格納する。メディアキー（ＭｅＫ）は、ＤＶＤ、ＣＤ、ＭＤ等のメディア（媒体）に格納された暗号化コンテンツファイルの復号処理に適用される。図３４において、×印が付されているエントリ３００３は、図３６を用いて後述するように、無効にされた受信機（リボーク受信機）に対応するエントリである。
【０３１３】
次に、管理センタは、ステップＳ１３０８において、各受信機ｕｊについて、ベクトルを定義する。ベクトルは、Ｖｊと表され、Ｂ個の要素ｖｂを含む。すなわち、Ｖｊ＝（ｖ１，・・・，ｖｂ，・・・，ｖＢ）であり、ここでｖｂ∈｛１，・・・，Ａ｝である。ベクトルＶｊの各要素ｖｂは、ＭＫＢ内のエントリ（ａ，ｂ）を表している。ベクトルにおける要素の順序的な位置は、列（すなわち、ｂ）を表し、要素の値は、行（すなわち、ａ）を表している。
【０３１４】
例えば、ベクトルの第１の要素ｖ１が２である場合、第１の要素ｖ１は、ＭＫＢにおける第２行第１列のメディアキー暗号化データ（すなわち、エントリ（２，１））を表している。このように、受信機ｕｊのベクトルＶｊは、受信機ｕｊのためのＢ個のメディアキー暗号化データを指している。管理センタは、ステップＳ１３０９において、各受信機ｕｊにベクトルＶｊを与える。
【０３１５】
さらに、管理センタは、各受信機ｕｊについて、値ｗｊを生成する。ｗｊは、受信機ｕｊのベクトルＶｊによって示されるエントリに対応する素数ｐａ，ｂの積である。管理センタは、以下の式に基づいて、ｗｊを算出する。
【数１７５】
2004229128.tif 000107
【０３１６】
ここで、ｖｂは、ベクトルＶｊのｂ番目の値を表す。管理センタは、ベクトルＶｊとともに、又は例えば公開暗号化パラメータの受信時（上述のステップＳ１３０３）若しくはマスタキーの受信時（ステップＳ１３１１）等、受信機が復号を開始する前に、各値ｗｊを対応する受信機ｕｊに供給する。これに代えて、受信機がベクトルＶｊと素数ｐａ，ｂからｗｊを導出するようにしてもよい。
【０３１７】
管理センタは、ステップＳ１３１０において、暗号化パラメータを用いて、マスタキーを生成する。マスタキーは、ＭＫｊと表される。ここで、管理センタは、以下の式（式ｄ３）に基づいて、各受信機ｕｊに対応するマスタキーＭＫｊを算出する。
【０３１８】
【数１７６】
2004229128.tif 000108
・・・（式ｄ３）
【０３１９】
管理センタは、各マスタキーＭＫｊを対応する受信機ｕｊに割り当てる。管理センタは、マスタキーＭＫｊを用いて、受信機ｕｊのベクトルＶｊによって示されるメディアキー暗号化データ（公開ブロックキーで暗号化されたメディアキー）を復号するために必要となる全ての秘密ブロックキーＰｒｉＫａ，ｂを導出することができる。例えば、図３３に示すＢＫＴ２９００及び図３４に示すＭＫＢ３０００を設定した構成において、受信機ｕ１には、マスタキーＭＫ１が割り当てられており、ベクトルＶｊは、要素｛１，１，・・・１｝を含み、マスタキーＭＫｊを用いて、秘密ブロックキーＰｒｉＫ１，１、ＰｒｉＫ１，２、・・・ＰｒｉＫ１，Ｂを導出することができる。管理センタは、ステップＳ１３１１において、対応する受信機ｕｊに各マスタキーＭＫｊを送信する。
【０３２０】
データ提供センタは、ステップＳ１３２１において、ＢＫＴに格納されている秘密ブロックキーに対応する公開された公開ブロックキーを用いて、メディア（媒体）キーを暗号化する。メディアキーは、ＣＤ、ＤＶＤ、ＭＤ等のデータ格納メディア（媒体）に記録されているコンテンツファイル（例えばビデオデータ）を暗号化および復号するためのキーである。各メディアキーをＢＫＴの（ａ，ｂ）各エントリの公開ブロックキーで暗号化することにより、各ブロック位置（ａ，ｂ）のメディアキー暗号化データが生成される。なお、このステップにおいて、データ提供者は、受信機のリボケーションを行うことが可能である。すなわち、ＭＫＢに載せない暗号文の決定を行うことができる。
【０３２１】
データ提供センタが、受信機、再生機等、ユーザの有する情報処理装置に対して提供するメディアキー等のデータ（情報Ｉ）を暗号化して提供する場合には、データ提供者は、下記式（式ｄ４）に基づいて各ブロック（ａ，ｂ）用の暗号文ＣＴａ，ｂを生成する。
【０３２２】
【数１７７】
2004229128.tif 000109
・・・（式ｄ４）
【０３２３】
上記式において、Ｉが送信する秘密データである。ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。データ提供者は、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴａ，ｂとをブロードキャストする。受信機または再生機においては、データ提供センタが暗号化に適用した公開ブロックキーに対応する秘密鍵としての秘密ブロックキーを適用して暗号化データＣＴａ，ｂを復号する。復号処理については後述する。
【０３２４】
データ提供センタは、ステップＳ１３２２において、生成した各メディアキー暗号化データをＭＫＢ内の各エントリ位置（ａ，ｂ）に格納する。例えば、データ提供センタは、公開ブロックキーＰｕｂＫ１，１を用いてメディアキーを暗号化し、これにより得られるメディアキー暗号化データをＭＫＢ内のエントリ（１，１）に格納する。
【０３２５】
図３４のＭＫＢ３０００は、各エントリに格納されたメディアキー暗号化データ３００５をＥ（ＰｕｂＫａ，ｂ，ＭｅＫ）として示してある。Ｅ（ＰｕｂＫａ，ｂ，ＭｅＫ）は、公開ブロックキーＰｕｂＫａ，ｂを用いたメディアキー（ＭｅＫ）の暗号化（Ｅ）を表している。他の具体例においては、データ提供センタは、公開ブロックキーを用いて、メディアキーではなく、他のデータ、例えばコンテンツファイル等を暗号化してもよい。データ提供センタは、ステップＳ１３２３において、例えばメディアキー（ＭｅＫ）で暗号化したコンテンツファイルを格納したデータ格納メディアにＭＫＢを格納する。
【０３２６】
なお、一具体例においては、データ提供センタは、メディアキー（ＭｅＫ）で暗号化したコンテンツファイル（例えば、ビデオ及び／又はオーディオコンテンツ）と、ＭＫＢとは別の記憶媒体によってユーザの受信機、再生機に提供する構成としてもよい。
【０３２７】
データ提供センタは、ステップＳ１３２４において、ＭＫＢを格納したメディアを受信機に送付する。各受信機は、例えば受信機の製造業者を介して、公開暗号化パラメータと、ベクトルと、ブロックキーを導出するための値（ｗｊ）と、マスタキーとを受け取る。
【０３２８】
一具体例においては、管理センタは、ステップＳ１３０１〜ステップＳ１３１１を１回（又は、受信機の数が変わる等、システムに変化が生じるまで）実行し、この後は、データ提供センタが暗号化データの配信毎に、ステップＳ１３２１〜ステップＳ１３２４を繰り返す。
【０３２９】
図３６は、受信機リボーク処理により受信機を無効にし、ＭＫＢを更新する処理を示すフローチャートである（図７のステップＳ１０３、Ｓ１０４、Ｓ１０５に対応する）。なお、図３６に示す処理は、管理センタではなくデータ提供センタが行うことも可能である。管理センタは、ステップＳ１４０１において、１つ以上の受信機を無効にする。管理センタは、受信機が管理センタから送信している暗号化データを復号する権限を有さなくなった場合に、その受信機を無効又は有効ではなくする。上述のように、管理センタがいずれの受信機も無効にしない場合もある。この場合、全ての秘密ブロックキーが有効なまま残る。
【０３３０】
管理センタは、ステップＳ１４０２において、受信機に割り当てられているマスタキーから導出することができる秘密ブロックキーを無効にする。上述のように、受信機に割り当てられ、マスタキーに対応するベクトルは、マスタキーから導出することができる。したがって、管理センタが受信機を無効にする場合、管理センタは、受信機のベクトルによって指示されている秘密ブロックキーを無効にする。
【０３３１】
管理センタは、ステップＳ１４０３において、無効にされた秘密ブロックキーに対応するメディアキー暗号化データを無効にすることにより、ＭＫＢを更新する。一具体例においては、管理センタは、メディアキー暗号化データを所定の値に置換することにより、メディアキー暗号化データを無効にする。すなわち、この所定の値によっては、メディアキー暗号化データが暗号化された暗号化アルゴリズムを用いてメディアキーを復号することができない。他の具体例においては、管理センタは、ＭＫＢ内のエントリに格納されているメディアキー暗号化データを削除し、このエントリにブランクデータ又はランダムデータを格納する。図３４のＭＫＢ３０００においては、無効なメディアキー暗号化データに対応するエントリに×印を付している。
【０３３２】
管理センタは、ステップＳ１４０４において、新しいデータ格納メディアに、更新されたＭＫＢを格納する。すなわち、メディアキーで暗号化されたコンテンツファイルと、そのメディアキーを取得するために必要となるＭＫＢとを格納したデータ格納メディアをユーザに提供する。リボークされた再生機、受信機においては、新たなＭＫＢの復号処理ができないので、メディアキーを取得できず、コンテンツファイルの利用ができない。なお、メディアキーはメディア毎にことなっているので、ユーザが他のメディアから取り出したメディアキーを利用することはできない。
【０３３３】
管理センタは、新たなデータ格納メディアに格納されるＭＫＢを制御することにより、特定の受信機のみが新たなデータ格納メディアに記録されたメディアキーを復号できるかを制御する。管理センタは、ステップＳ１４０５において、受信機に新たなデータ格納メディアを送付する。
【０３３４】
図３７は、ＭＫＢを用いた、受信機によるブロードキャスト暗号化データの復号処理を示すフローチャートである（図１１に対応する処理である）。一具体例においては、例えば図４に示す暗号化データ提供システム４００のように、受信機は、管理センタが配布のために準備したデータ格納メディアを介して、暗号化データを受け取る。受信機は、ステップＳ１５０１において、管理センタから暗号化パラメータを受け取る。上述のように、管理センタは、例えば選択された素数ｐａ，ｂ等、受信機が管理センタからの暗号化データを復号するために使用する公開暗号化パラメータを受信機に公開する。
【０３３５】
一具体例においては、受信機は、公開暗号化パラメータを非安全ストレージ（例えば、図２に示すメインストレージ２２５）に保存する。さらに、受信機は、ステップＳ１５０２において、受信機ｕｊ用のベクトルＶｊとして表されるベクトルを受け取り、ステップＳ１５０３において、受信機ｕｊ用のマスタキーＭＫｊとして表されるマスタキーを受け取る。上述のように、管理センタは、受信機用のベクトル及びマスタキーを生成し、これらのベクトル及びマスタキーを受信機に送る。受信機は、マスタキーを用いて復号のためのブロックキーを導出する。他の具体例においては、管理センタは、受信機の製造業者を介して、暗号化パラメータの一部又は全部と、ベクトルと、マスタキーとを共に受信機に提供する。すなわち製造業者が受信機の記憶部内に、予めこれらのデータを格納してもよい。
【０３３６】
受信機は、ステップＳ１５０４において、管理センタあるいはデータ提供センタからＭＫＢを受け取る。図３２を参照して上述したように、管理センタは、特定のユーザの受信機においてのみメディアキーを取得可能としたＭＫＢを定義する（図３４参照）。このように定義されたＭＫＢを媒体に格納して受信機にデータ媒体を配布する。前述したように、ＭＫＢとＭＫＢから取得可能なメディアキーにより暗号化されたコンテンツファイルを併せて格納してユーザに提供可能である。特定の認証された機器においてのみＭＫＢを処理することでメディアキーを取得可能となり、取得したメディアキーで暗号化コンテンツファイルを復号しコンテンツ再生が可能となる。
【０３３７】
受信機は、ステップＳ１５０５において、ベクトルとＭＫＢとを用いて、復号のための秘密ブロックキーを選択する。上述のように、ベクトルは、複数のメディアキー暗号化データを指示し、したがって対応するブロックキーを指示している。受信機は、ベクトルの要素によって指示されているブロックキーの１つを選択する。そして、受信機は、ベクトル内のエントリ（ｖｂ，ｂ）に対応するブロックキーを導出する。ここで、ｖｂは、ベクトルＶｊ内のｂ番目の要素である。秘密ブロックキーは、ＰｒｉＫｖｂ，ｂと表される。例えば、図３３及び図３４に示す具体例では、第１の要素ｖ１の値は２であり、エントリ（２，１）におけるメディアキーを表している。秘密ブロックキーＰｒｉＫ２，１は、エントリ（２，１）に対応しており、したがって、受信機は、秘密ブロックキーＰｒｉＫ２，１を選択する。
【０３３８】
受信機は、ステップＳ１５０６において、受信機のマスタキーから選択された秘密ブロックキーを導出する。上述のように、受信機ｕｊ用のマスタキーは、ＭＫｊと表され、受信機は、ＰｒｉＫｖｂ，ｂと表されるベクタ（ｖｂ，ｂ）に対応する秘密ブロックキーを選択している。受信機ｕｊは、素数ｐａ，ｂ及び値ｗｊを含む暗号化パラメータを既に受け取っている。そして、受信機は、自己が保持するベクタ（ｖｂ，ｂ）に対応する暗号化メディアキーとしての暗号文ＣＴｖｂ，ｂを選択した後、対応するデータ提供センタが暗号化に適用した公開ブロックキーに対応する秘密ブロックキーＰｒｉＫｖｂ，ｂを下記式（式ｄ５）に基づいて算出する。
【０３３９】
【数１７８】
2004229128.tif 000110
・・・（式ｄ５）
【０３４０】
一具体例においては、受信機は、受信機のベクトル内の各要素について、ｗｊ／Ｐｖｂ，ｂを予め算出しておく。また、一具体例においては、受信機は、ｃ≠ｂとして、Ｂ−１個の素数Ｐｖｃ，ｃを乗算することにより、ｗｊ／Ｐｖｂ，ｂを算出する。
【０３４１】
受信機は、ステップＳ１５０７において、導出した秘密ブロックキーを適用してＭＫＢ内のメディアキー暗号化データ（対応する公開ブロッキーで暗号化されたメディアキー）を復号しメディアキーを取得する。一具体例においては、受信機は、例えばチェックサム値を用いて、復号結果が受信した暗号化データに対して正しいものであるか否かを判定する。復号結果が正しくない場合、受信機は、受信機のベクトル内の他の要素を用いて別の秘密ブロックキーを選択する。受信機のベクトルによって指示されている秘密ブロックキーのいずれによっても正しい復号結果が得られない場合、受信機は、自らが無効にされ、有効なノードキーを導出することができないと判断する。一具体例においては、受信機は、管理センタと通信する（例えば、ネットワーク接続を介して）ことにより、受信機が無効にされたことを確認する。
【０３４２】
一具体例においては、受信機が受け取るデータ媒体は、復号されるメディアキーに対応する暗号化されたコンテンツファイルを含む。この場合、受信機は、復号されたメディアキーを用いて、暗号化されているコンテンツファイルを復号し、コンテンツにアクセスする。
【０３４３】
受信機は、上述のようにして導出した秘密ブロックキーを用いて、受信した暗号化データを復号し復号データＩを取得する。データ復号処理は、下式（式ｄ６）に基づいて実行する。
【０３４４】
【数１７９】
2004229128.tif 000111
・・・（式ｄ６）
【０３４５】
他の具体例においては、データ媒体は、データの記録のために使用され、受信機は、復号されたメディアキーを用いてデータを暗号化して、データ格納メディアに暗号化データを記録する。受信機が有効なブロックキーを有さず、したがって、ＭＫＢからメディアキーを取得できない場合、受信機は、データをデータ格納メディアに記録することができない。
【０３４６】
他の具体例として、データ提供センタは、ハッシュ関数を用いてハッシュキーを算出し、このハッシュキーを用いてメディアキー等の暗号化を行う構成としてもよい。データ提供センタによるハッシュ関数を適用した暗号化データの生成について説明する。上記した式（式ｄ４）を適用した暗号文生成処理によると、各暗号文ＣＴａ，ｂのサイズはｑ’のサイズとなる。ハッシュ関数を適用することにより、各暗号文のサイズを小さくして効率化が図れる。暗号化データＣＴａ，ｂは、下式（式ｄ７）に従って生成する。
【０３４７】
【数１８０】
2004229128.tif 000112
・・・（式ｄ７）
【０３４８】
上記式において、ｘは、データ提供センタがランダムに選択したｘ∈Ｚ＊ｑ’を満足する数である。Ｈは、｜ｑ’｜（たとえば１０２４ｂｉｔ）のビット列を｜Ｉ｜（たとえば、１２８ｂｉｔ）のビット列にランダムにマッピングするハッシュ関数である。この、ハッシュ関数は、管理センタによって公開される。たとえば図７のステップＳ１０１のセットアップフェーズにおいて公開する。
【０３４９】
データ提供センタは、前述したと同様、管理センタから公開されているパラメータｇと上述のｘとから生成したｇｘ  ｍｏｄ  ｑ’と、上記式によって生成される暗号化データＣＴａ，ｂとをブロードキャストする。受信機においては、データ提供センタが暗号化に適用した公開鍵に対応する秘密鍵としての秘密サブセットキーを適用して暗号化データＣＴａ，ｂを復号する。
【０３５０】
受信機におけるデータ復号処理は、下式（式ｄ８）に従って実行される。
【数１８１】
2004229128.tif 000113
・・・（式ｄ８）
【０３５１】
［データメディアの製造］
図４及び図６を用いて上述したように、ブロードキャストデータ配信経路が、ＤＶＤ、ＣＤ、ＭＤ等のデータ格納メディアの配布である場合、管理センタは、データ（例えば、暗号化データ）をデータ格納メディアに格納して受信機に供給する。管理センタは、まず、メディア製造装置（例えば、図４に示すメディア製造業者の工場に設けられている）にデータを供給し、ここでメディアにデータが格納される。読出専用媒体（例えば、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭ）については、管理センタは、メディア製造装置にキー暗号化データ及び暗号化されたコンテンツを供給する。書込可能媒体（例えば、ＣＤ−ＲＷ又はＤＶＤ−ＲＷ）については、管理センタは、キー暗号化データを提供し、受信機が暗号化されたコンテンツを媒体に書き込んでもよい。
【０３５２】
図３８は、メディア製造装置３３００の具体的構成例を示すブロック図である。一具体例においては、メディア製造装置３３００は、読出専用媒体を製造し、他の具体例においては、メディア製造装置は、書込可能媒体を製造する。また、メディア製造装置３３００は、媒体そのものを製造するのではなく、データメディアにデータを書き込むことにより、データ格納メディアを準備する装置である。また、他の具体例においては、メディア製造装置は、媒体そのものを製造する装置であってもよい。メディア製造装置は、コントローラ３３０５と、入出力インタフェース３３１０と、ストレージ３３１５と、メディアインタフェース３３２０とを備える。他の具体例においては、メディア製造装置３３００は、秘密にすべきデータを保存する安全ストレージを備えていてもよい。コントローラ３３０５は、メディア製造装置３３００の動作を制御する。
【０３５３】
一具体例においては、コントローラ３３０５は、ＣＰＵであってもよい。メディア製造装置３３００は、（例えば、管理センタに対して）入出力インタフェース３３１０を介してデータを送受する。ストレージ３３１５は、メディア製造装置３３００の動作をサポートするためのデータを保存する。一具体例においては、ストレージ３３１５は、例えばＲＡＭ等のメモリ装置であってもよい。メディアインタフェース３３２０は、メディア製造装置３３００にデータ読出／書込機能を提供し、これによりメディア製造装置３３００は、媒体の個体からデータを読み出し、また、媒体が書込可能媒体であれば、媒体の個体にデータを書き込むことができる。
【０３５４】
図３９は、例えば図３８に示すメディア製造装置３３００等のメディア製造装置によって、読出専用媒体を製造する工程を示すフローチャートである。メディア製造装置は、ステップＳ１６０１において、データ媒体の空の個体を受け取る。他の具体例においては、メディア製造装置は、既にデータの一部が記録されているデータ媒体を受け取ってもよく、また、データ媒体の個体の一部又は全部を原材料から製造してもよい。メディア製造装置は、ステップＳ１６０２において、データ媒体に表現コードを記録する。上述のように、表現コードは、例えば表現木及びコード又はベクトル及びメディアキーブロック等に基づき受信機が無効にされたかを示すコードである。メディア製造装置は、ステップＳ１６０３において、データ媒体に１つ以上の暗号化データを記録する。暗号化データは、暗号化されたコンテンツキーである。
【０３５５】
各暗号化データは、上述したノードキー、サブセットキー又はブロックキー等、個別のサブキーを用いて暗号化された同一のコンテンツを含む。メディア製造装置は、ステップ３４０４において、コンテンツキーを用いてコンテンツファイルを暗号化する。変形例においては、メディア製造装置は、例えば管理センタ等の外部ソースから、暗号化されたコンテンツファイルを受け取る。メディア製造装置は、ステップＳ１６０５において、データ媒体に暗号化されたコンテンツファイルを記録する。上述のように、受信機は、表現コードを用いて、サブキーを選択し、受信機に保存されているマスタキーから、選択されたサブキーを導出する。受信機は、暗号化データを復号してコンテンツキーを生成し、このコンテンツキーを用いて、暗号化されているファイルを復号する。
【０３５６】
メディア製造装置が書込可能媒体を製造する場合、必ずしもメディア製造装置がコンテンツファイルを暗号化し、メディアに記録する必要はない。
【０３５７】
本発明は、電子ハードウェア、コンピュータソフトウェア、又はこれらの技術の組み合わせにより、様々な形式で実現することができる。多くの実現例は、プログラミング可能なコンピュータにより実行される１つ以上のコンピュータ・プログラムを含む。例えば、図１に示すように、一具体例においては、放送管理センタ１０５及び各受信機１２０−１〜１２０−Ｎは、上述した装置の機能を実現するための１つ以上のプログラミング可能なコンピュータを備える。通常、各コンピュータは１つ以上のプロセッサと、１つ以上のデータストレージ装置（例えば、揮発性又は不揮発性メモリモジュールと、例えばハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭドライブ、磁気テープドライブ等の持続的な光及び磁気記録装置）と、１つ以上の入力装置（例えば、マウス及びキーボード）と、１つ以上の出力装置（例えば、ディスプレイ及びプリンタ）とを備える。
【０３５８】
コンピュータ・プログラムは、通常、持続的なストレージ媒体（ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）に記録されており、実行時にメモリにコピーされる実行可能なコードを含む。プロセッサは、所定の順序でメモリから命令を読み出すことにより、このコードを実行する。プログラムコードを実行する際、コンピュータは、入力装置及び／又はストレージ装置からデータを受け取り、データを処理し、処理されたデータを出力装置及び／又はストレージ装置に供給する。
【０３５９】
本発明の様々な実施の形態について説明したが、当業者は、本発明の範囲を逸脱することなく、上述した以外の実施の形態を想到することができる。例えば、上述の説明では、衛星放送又はデータの配布の具体例を示しているが、データのブロードキャスト経路は、ケーブルテレビ、インターネット又はこの他の無線又は有線ネットワークであってもよい。このように、本発明は、上述の具体例によって限定されるものではない。
【０３６０】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０３６１】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ  ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０３６２】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０３６３】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【０３６４】
【発明の効果】
以上、説明したように、本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、階層型キーツリー構成におけるノード番号ｉの各ノード（ｉ）に対して公開鍵暗号方式における秘密鍵としての秘密ノードキーＰｒｉＮＫｉを設定し、該秘密ノードキーＰｒｉＮＫｉを認証された情報処理装置においてのみ取得可能とするとともに、秘密ノードキーＰｒｉＮＫｉに対応する公開鍵としての公開ノードキーＰｕｂＮＫｉを適用して配信データの暗号化を実行して暗号化データＣＴｉを生成し、生成した暗号化データをブロードキャストする構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開ノードキーＰｕｂＮＫｉを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【０３６５】
さらに、本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、階層型キーツリー構成におけるノード対して、ノード位置および子ノードの有無を示すサブセットＳｋ，Ｂを定義（ただし、ｋはノード位置を示す識別子であり、Ｂは、ｂ１，ｂ２，．．．ｂａでありｂｎは子ノードの有無を示すビット列）し、サブセットに対して公開鍵暗号方式における秘密鍵に対応する秘密サブセットキーＰｒｉＳｋ，Ｂを設定し、秘密サブセットキーＰｒｉＳｋ，Ｂを認証された情報処理装置においてのみ取得可能とするとともに、秘密サブセットキーＰｒｉＳｋ，Ｂに対応する公開鍵としての公開サブセットキーＰｕｂＳＫｋ，Ｂを適用して配信データの暗号化を実行して暗号化データＣＴｋ，Ｂを生成し、生成した暗号化データＣＴｋ，Ｂを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開サブセットキーＰｕｂＳＫｋ，Ｂを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【０３６６】
さらに、本発明の構成によれば、通信路またはメディア（媒体）を介して暗号化データをブロードキャスト配信する構成において、Ａ列Ｂ行のブロックキーテーブル（ＢＫＴ）を設定し、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応して公開鍵暗号方式における秘密鍵としての秘密ブロックキーＰｒｉＫａ，ｂを設定し、秘密ブロックキーＰｒｉＫａ，ｂを前記認証された情報処理装置においてのみ取得可能とするとともに、秘密ブロックキーＰｒｉＫａ，ｂに対応する公開鍵としての公開ブロックキーＰｕｂＫａ，ｂを適用して配信データの暗号化を実行して暗号化データＣＴａ，ｂを生成し、ブロックキーテーブルの各要素位置（ａ，ｂ）に対応する複数の暗号化データＣＴａ，ｂを含むテーブルデータを通信路またはメディア（媒体）を介してブロードキャスト配信する構成としたので、信頼、非信頼にかかわらず、各ユーザ機器の格納キーを知らない任意のエンティテイが、公開ブロックキーＰｕｂＫａ，ｂを適用してデータ配信を行い、限定ユーザ、すなわち、認証された情報処理装置においてのみ利用可能とする暗号データ配信システムが実現される。
【図面の簡単な説明】
【図１】衛星放送を用いた放送暗号化システムのアーキテクチャを示す図である。
【図２】管理センタの構成を示すブロック図である。
【図３】受信機の構成を示すブロック図である。
【図４】データ媒体を用いた放送暗号化システムのアーキテクチャを示す図である。
【図５】管理センタの具体例を示すブロック図である。
【図６】受信装置の具体例を示すブロック図である。
【図７】データを暗号化して暗号化データを生成し、１つ以上の受信機に暗号化データを送信する放送暗号化処理の手順を示すフローチャートである。
【図８】データを暗号化して暗号化データを生成し、１つ以上の受信機に暗号化データを送信する放送暗号化処理の手順を示すフローチャートである。
【図９】コンテンツキー及びコンテンツファイルを暗号化する処理を含む放送暗号化処理の手順を示すフローチャート。
【図１０】コンテンツキー及びコンテンツファイルを暗号化する処理を含む放送暗号化処理の手順を示すフローチャート。
【図１１】受信機によって放送復号処理を行う手順を示すフローチャートである。
【図１２】ノードキーを有するＨＫＴを用いて放送暗号化システムをセットアップし、受信機にマスタキーを割り当てる手順を示すフローチャートである。
【図１３】ノードへのノードキーの割り当てを説明するＨＫＴを示す図である。
【図１４】公開鍵ファイルのデータ構成を示す図である。
【図１５】ＨＫＴを用いて、受信機を無効にし、ノードキーを選択し、表現コードを生成する手順を示すフローチャートである。
【図１６】図１３のＨＫＴにおける無効にされた受信機と、選択されたノードキーとを示す図である。
【図１７】図１３及び図１６に示すＨＫＴに基づく表現木を示す図である。
【図１８】ＨＫＴ及びノードキーを用いて、受信機により放送復号処理を行う手順を示すフローチャートである。
【図１９】コンテンツキー及びコンテンツファイルの復号を含む放送復号処理の手順を示すフローチャートである。
【図２０】サブセット及びサブセットキーを有するＨＫＴを用いて放送暗号化システムをセットアップし、受信機にマスタキーを割り当てる手順を示すフローチャートである。
【図２１】サブセットのノードへの割り当てを示すＨＫＴを示す図である。
【図２２】図２１のＨＫＴにおけるサブセットキーのノードキーへの割り当てを示す図である。
【図２３】公開鍵ファイルのデータ構成を示す図である。
【図２４】ＨＫＴを用いて受信機を無効にし、サブセットキーを選択し、表現コードを生成する手順を示すフローチャートである。
【図２５】図２１に示すＨＫＴにおいて、無効にされた受信機と、選択されたサブセットキーに対応するサブセットのノードとを示す図である。
【図２６】図２１に示すＨＫＴの枝を除去した状態を示す図である。
【図２７】図２１及び図２５に示すＨＫＴに基づく表現木を示す図である。
【図２８】ＨＫＴ及びサブセットキーを用いて、受信機によって放送復号処理を行う手順を示すフローチャートである。
【図２９】コンテンツキー及びコンテンツファイルの復号を含む放送復号処理の手順を示すフローチャートである。
【図３０】サブセット及びサブセットキーを有するＨＫＴを用いて放送暗号化システムをセットアップし、マスタキーを受信機に割り当てる手順を示すフローチャートである。
【図３１】ＨＫＴにおけるサブセットキーのノードへの割り当てを示す図である。
【図３２】ＭＫＢを用いて放送暗号化システムをセットアップし、マスタキーを受信機に割り当てる手順を示すフローチャートである。
【図３３】ブロックキーテーブルを示す図である。
【図３４】メディアキーブロックを示す図である。
【図３５】公開鍵ファイルのデータ構成を示す図である。
【図３６】受信機を無効にし、ＭＫＢを更新する手順を示すフローチャートである。
【図３７】ＭＫＢを用いて、受信機によって放送復号処理を行う手順を示すフローチャートである。
【図３８】データメディア製造装置の一具体例を示すブロック図である。
【図３９】メディア製造装置によって、読出専用データ媒体を製造する手順を示すフローチャートである。
【符号の説明】
１００  放送暗号化システム
１０１  管理センタ
１０５  放送データ提供センタ
１１０  放送局
１１５  放送衛星
１２０  受信機
２０５  コントローラ
２１０  演算ユニット
２１５  入出力インタフェース
２２０  セキュア記憶部
２２５  メイン記憶部
３０５  コントローラ
３１０  演算ユニット
３１５  入出力インタフェース
３２０  セキュア記憶部
３２５  メイン記憶部
３３０  ディスプレイ装置
４０１  管理センタ
４０５  メディア提供センタ
４１０  メディア製造者
４１５  メディア
４２０  配布センタ
４２５  再生機
５０５  コントローラ
５１０  演算ユニット
５１５  入出力インタフェース
５２０  セキュア記憶部
５２５  メイン記憶部
５３０  メディアインタフェース
６０５  コントローラ
６１０  演算ユニット
６１５  入出力インタフェース
６２０  セキュア記憶部
６２５  メイン記憶部
６３０  ディスプレイ装置
６３５  メディアインタフェース
３３０５  コントローラ
３３１０  入出力インタフェース
３３１５  記憶部
３３２０  メディアインタフェース
【図１】
2004229128.tif 000184
【図２】
2004229128.tif 000185
【図３】
2004229128.tif 000186
【図４】
2004229128.tif 000187
【図５】
2004229128.tif 000188
【図６】
2004229128.tif 000189
【図７】
2004229128.tif 000190
【図８】
2004229128.tif 000191
【図９】
2004229128.tif 000192
【図１０】
2004229128.tif 000193
【図１１】
2004229128.tif 000194
【図１２】
2004229128.tif 000195
【図１３】
2004229128.tif 000196
【図１４】
2004229128.tif 000197
【図１５】
2004229128.tif 000198
【図１６】
2004229128.tif 000199
【図１７】
2004229128.tif 000200
【図１８】
2004229128.tif 000201
【図１９】
2004229128.tif 000202
【図２０】
2004229128.tif 000203
【図２１】
2004229128.tif 000204
【図２２】
2004229128.tif 000205
【図２３】
2004229128.tif 000206
【図２４】
2004229128.tif 000207
【図２５】
2004229128.tif 000208
【図２６】
2004229128.tif 000209
【図２７】
2004229128.tif 000210
【図２８】
2004229128.tif 000211
【図２９】
2004229128.tif 000212
【図３０】
2004229128.tif 000213
【図３１】
2004229128.tif 000214
【図３２】
2004229128.tif 000215
【図３３】
2004229128.tif 000216
【図３４】
2004229128.tif 000217
【図３５】
2004229128.tif 000218
【図３６】
2004229128.tif 000219
【図３７】
2004229128.tif 000220
【図３８】
2004229128.tif 000221
【図３９】
2004229128.tif 000222