(57)【要約】【課題】複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法を提供する。【解決手段】管理装置２が、受信装置ｕ１〜ｕ１６について複数の集合を規定し、同じ集合に属する受信装置が共通の鍵データを取得するために用いるラベルデータおよび中間ラベルデータを生成する。管理装置２は、上記生成したラベルデータおよび中間ラベルデータを、セキュアな状態で、対応する受信装置に提供する。管理装置２は、何れの受信装置をリボークするかに応じて、リボークしない受信装置のみを要素とする単数または複数の上記集合を特定し、当該特定した集合を指定する集合指定データと、暗号データを受信装置に送信する。【選択図】      図１
2005005806.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理方法であって、
相互に異なる前記処理装置を要素とする複数の第１の前記集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の前記集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、
前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の工程と、
前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の工程で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の工程と、
前記第１の工程で生成した前記第２の復号用データと、前記第２の工程で生成した前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の工程と
を有するデータ処理方法。
【請求項２】
前記第３の工程は、
前記複数の処理装置のうち一部の前記処理装置を前記指定し、当該指定した前記処理装置が要素となり前記指定を行わない処理装置を要素としない第１の集合がある場合に、当該第１の集合について前記第１の工程で生成した前記第２の復号用データを基に暗号化した前記暗号データを前記処理装置に提供し、
前記複数の処理装置のうち一部の前記処理装置を前記指定し、当該指定した前記処理装置が要素となり、前記指定を行わない処理装置を要素としない前記第１の集合がなく、前記指定した処理装置が要素となり、前記指定を行わない前記処理装置を要素としない前記第２の集合がある場合に、当該第２の集合の要素となる前記処理装置に対して提供される前記第３の復号用データを基に暗号化した前記暗号データを前記処理装置に提供する
請求項１に記載のデータ処理方法。
【請求項３】
少なくとも前記第１の集合を一つの階層に含み、最下層の集合である前記第２の集合の要素が単数の前記処理装置となり、同じ階層の複数の集合が相互に異なる前記処理装置を要素とするように階層的に複数の集合が規定される場合に、
前記第２の工程は、各階層の複数の集合のそれぞれについて、当該複数の集合間で相互に異なり前記処理装置に公開された一方向性関数の逆関数を基に、当該集合が規定された一つ上位の階層の集合について生成された復号用データから復号用データを生成する
請求項１に記載のデータ処理方法。
【請求項４】
最上層が前記第１の集合であり、最下層の集合である前記第２の集合の要素が単数の前記処理装置となり、同じ階層の複数の集合が相互に異なる前記処理装置を要素とするように階層的に複数の集合が規定される場合に、
前記第１の工程は、前記複数の処理装置の全てを前記指定する場合に用いられる前記第１の復号用データから前記第２の復号用データを生成し、
前記第２の工程は、前記最上層の下層にある各階層の複数の集合のそれぞれについて、当該複数の集合間で相互に異なり前記処理装置に公開された一方向性関数の逆関数を基に、当該集合が規定された一つ上位の階層の集合について生成された前記復号用データから復号用データを生成する
請求項１に記載のデータ処理方法。
【請求項５】
各リーフに単数の前記処理装置が対応付けられ、前記リーフとルートとの間で前記ルートからの距離に応じて前記階層が規定されたツリーを基に、前記ツリーのルート、ノードおよびリーフのうちルートからあるリーフへのパス上に存在する２つの要素からなる組を規定し、各組について、当該組の要素のうちルートに近い一方の要素から分岐したリーフから、他方の要素から分岐したリーフを除いたリーフに割り当てられた前記処理装置を要素とする第３の集合を規定し、
前記第３の集合のうち、前記第１の工程および前記第２の工程で前記復号用データが生成された集合以外の集合に割り当てた復号用データを、当該集合の要素となる前記処理装置に提供する第４の工程
をさらに有する請求項４に記載のデータ処理方法。
【請求項６】
前記選択された復号用データを当該復号用データの識別データを用いて指定する指定データを前記処理装置に提供する第５の工程をさらに有する
請求項１に記載のデータ処理方法。
【請求項７】
前記処理装置が、前記第５の工程で受けた前記指定データが前記第２の復号用データを指定する場合に、前記２の工程で受けた前記第３の復号用データと、前記公開された一方向性関数とを基に、前記第２の復号用データを生成する第６の工程と、
前記処理装置が、前記第３の工程で受けた暗号データを、前記第６の工程で生成した前記第２の復号用データを用いて復号する第７の工程と
を有する請求項６に記載のデータ処理方法。
【請求項８】
複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理装置が実行するプログラムであって、
相互に異なる前記処理装置を要素とする複数の第１の集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、
前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の手順と、
前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の手順で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の手順と、
前記第１の手順で生成した前記第２の復号用データと、前記第２の手順で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の手順と
を前記データ処理装置に実行させるプログラム。
【請求項９】
複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理装置であって、
相互に異なる前記処理装置を要素とする複数の第１の集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、
前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の手段と、
前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の手段で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の手段と、
前記第１の手段で生成した前記第２の復号用データと、前記第２の手段で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の手段と
を有するデータ処理装置。
【請求項１０】
復号用データを基に暗号データを復号するデータ処理装置が実行するプログラムであって、
指定された復号用データを保持している場合に、前記指定された復号用データを基に前記暗号データを復号する第１の手順と、
前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に前記指定された復号用データを生成し、当該生成した復号用データを基に前記暗号データを復号する第２の手順と
をデータ処理装置に実行させるプログラム。
【請求項１１】
前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に復号用データを生成し、当該復号用データを用いて、前記指定された復号用データを生成する第３の手順
をさらに有する請求項１０に記載のプログラム。
【請求項１２】
復号用データを基に暗号データを復号するデータ処理装置であって、
指定された復号用データを保持している場合に、前記指定された復号用データを基に前記暗号データを復号する第１の手段と、
前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に前記指定された復号用データを生成し、当該生成した復号用データを基に前記暗号データを復号する第２の手段と
有するデータ処理装置。
【請求項１３】
前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に復号用データを生成し、当該復号用データを用いて、前記指定された復号用データを生成する第３の手段
をさらに有する請求項１２に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号データの復号に係わる処理を行うデータ処理方法、そのプログラムおよびその装置に関する。
【０００２】
【従来の技術】
例えば、管理装置が、複数の受信装置に暗号データを送信し、リボークしない受信装置でのみ、当該暗号データを復号させる場合がある。
このような方式に、下記非特許文献１，２に記載されているＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）  がある。
このＳＤ方式では、２分木によって構成されるツリーの各リーフに受信装置を対応付け、前記ツリーのルート、ノードおよびリーフのうちルートからあるリーフへのパス上に存在する２つの要素からなる組を規定する。そして、各組について、当該組の要素のうちルートに近い一方の要素から分岐したリーフから、他方の要素から分岐したリーフを除いたリーフに対応付けられた受信装置を要素とする複数の集合を規定する。
これにより、各受信装置は、各々要素が異なる複数の集合の要素となる。
【０００３】
また、管理装置が、各集合にラベルデータを割り当て、各受信装置に、当該受信装置が要素となる集合に割り当てたラベルデータのうち、所定のラベルデータをセキュアな状態で提供する。
そして、管理装置が、リボークしない受信装置のみを要素とする単数または複数の集合を特定し、当該集合に割り当てたそれぞれラベルデータから取得した鍵データを基に、コンテンツデータをそれぞれ暗号化して単数または複数の暗号データを生成し、これを全ての受信装置に送信すると共に、上記特定した集合を受信装置に指定する。
受信装置は、指定を受けた集合の要素である場合に、当該集合に対応するラベルデータを基に鍵データを生成し、管理装置から受信した暗号データを、当該鍵データを用いて復号する。
【０００４】
【非特許文献１】
Ｄ．Ｈａｌｅｖｙ  ａｎｄ  Ａ  Ｓｈａｍｉｒ，  ”Ｔｈｅ  ＬＣＤ  ｂｒｏａｄｃａｓｔ  ｅｎｃｒｙｐｔｉｏｎ  ｓｃｈｅｍｅ”，  ＣＲＹＰＴＯ  ２００２，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｖｏｌ．２４４２．  ｐｐ．４７−６０，２００２
【非特許文献２】
Ｄ．Ｎａｏｒ，Ｍ．Ｎａｏｒ  ａｎｄ  Ｊ．Ｌｏｔｓｐｉｅｃｈ，”Ｒｅｖｏｃａｔｉｏｎ  ａｎｄ  ｔｒａｃｉｎｇ  ｓｃｈｅｍｅｓ  ｆｏｒ  ｓｔａｔｅｌｅｓｓ  ｒｅｃｅｉｖｅｒｓ”，  ＣＲＹＰＴＯ  ２００１．Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ．ｖｏｌ  ２１３９．ｐｐ．４１−６２，２００１．
【０００５】
【発明が解決しようとする課題】
上述した従来のＳＤ方式では、後述するように、各受信装置について、当該受信装置が割り当てられたツリー上のリーフとルートとの間に位置するルートおよび各ノードについて、当該ルートおよびノードと、これらに対してリーフ側に位置すると共に上記パス上のノードから当該パス以外の方向に直接分岐したノードまたはリーフとの組によって規定される集合に割り当てたラベルデータを、当該受信装置にセキュアな状態で提供して保持させる。受信装置は、上記規定した組の集合のうち、ラベルデータを受けていない集合のラベルデータを、上記提供を受けたラベルデータを基に演算を行って取得する。
ここで、受信装置の数をＮとした場合に、管理装置が各受信装置に提供して保持させるラベルデータの数は、下記式（１）で示される。
【０００６】
【数１】
2005005806.tif 000003
【０００７】
ところで、上述した従来のＳＤ方式では、各受信装置に保持させるラベルデータの数（データ量）をさらに削減したいという要請がある。
上記非特許文献１に記載されたＬＳＤ方式についても、同様な要請がある。
また、上述した例の他に、暗号データの復号に複数の復号用データが用いられる場合に、復号を行う処理装置が保持する復号用データの数を削減したいという要請がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述した目的を達成するために、第１の発明のデータ処理方法は、複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理方法であって、相互に異なる前記処理装置を要素とする複数の第１の前記集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の前記集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の工程と、前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の工程で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の工程と、前記第１の工程で生成した前記第２の復号用データと、前記第２の工程で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の工程とを有する。
【００１０】
第１の発明のデータ処理方法の作用は以下のようになる。
先ず、第１の工程において、前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する。
次に、第２の工程において、前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の工程で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する。
次に、第３の工程において、前記第１の工程で生成した前記第２の復号用データと、前記第２の工程で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する。
【００１１】
第２の発明のプログラムは、複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理装置が実行するプログラムであって、相互に異なる前記処理装置を要素とする複数の第１の集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の手順と、前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の手順で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の手順と、前記第１の手順で生成した前記第２の復号用データと、前記第２の手順で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の手順とを前記データ処理装置に実行させる。
【００１２】
第３の発明のデータ処理装置は、複数の処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるデータ処理装置であって、相互に異なる前記処理装置を要素とする複数の第１の集合と、前記複数の第１の集合の各々について規定され当該第１の集合の要素となる相互に異なる前記処理装置を要素とする複数の第２の集合とのそれぞれに、前記複数の処理装置の各々を割り当てた場合に、前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向性関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する第１の手段と、前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の手段で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する第２の手段と、前記第１の手段で生成した前記第２の復号用データと、前記第２の手段で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する第３の手段とを有する。
【００１３】
第３の発明のデータ処理装置の作用は以下のようになる。
先ず、第１の手段が、前記複数の第１の集合のそれぞれについて、前記処理装置に公開され前記複数の第１の集合間で相互に異なる一方向関数の逆関数を基に、第１の復号用データから第２の復号用データを生成する。
次に、第２の手段が、前記複数の第２の集合のそれぞれについて、前記処理装置に公開され前記複数の第２の集合間で相互に異なる一方向性関数の逆関数を基に、当該第２の集合が規定された前記第１の集合について前記第１の手段で生成された前記第２の復号用データを用いて、当該第２の集合の要素となる前記処理装置にセキュアな状態で提供される第３の復号用データを生成する。
次に、第３の手段が、前記第１の手段で生成した前記第２の復号用データと、前記第２の手段で生成された前記第３の復号用データとのうち、前記暗号データを復号させる前記処理装置の前記指定に応じて選択した復号用データを基に暗号化した暗号データを前記処理装置に提供する。
【００１４】
第４の発明のプログラムは、復号用データを基に暗号データを復号するデータ処理装置が実行するプログラムであって、指定された復号用データを保持している場合に、前記指定された復号用データを基に前記暗号データを復号する第１の手順と、前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に前記指定された復号用データを生成し、当該生成した復号用データを基に前記暗号データを復号する第２の手順とをデータ処理装置に実行させる。
【００１５】
第５の発明のデータ処理装置は、復号用データを基に暗号データを復号するデータ処理装置であって、指定された復号用データを保持している場合に、前記指定された復号用データを基に前記暗号データを復号する第１の手段と、前記指定された復号用データを保持しない場合に、予め保持している復号用データと公開されている一方向性関数とを基に前記指定された復号用データを生成し、当該生成した復号用データを基に前記暗号データを復号する第２の手段と有する。
【００１６】
第５の発明のデータ処理装置の作用は以下のようになる。
指定された復号用データを保持している場合には、第１の手段が、前記指定された復号用データを基に前記暗号データを復号する。
一方、前記指定された復号用データを保持しない場合には、第２の手段が、予め保持している復号用データと公開されている一方向性関数とを基に前記指定された復号用データを生成し、当該生成した復号用データを基に前記暗号データを復号する。
【００１７】
【発明の実施の形態】
第１実施形態
以下、本発明の実施形態に係わる通信システムについて説明する。
図１は、本発明の実施形態に係わる通信システム１の全体構成図である。
図１に示すように、通信システム１は、例えば、管理装置２と、１６個の受信装置ｕ１〜ｕ１６を有する。
ここで、受信装置ｕ１〜ｕ１６が第１〜第３の発明の処理装置、並びに第４および第５の発明のデータ処理装置に対応している。
また、管理装置２が、第２および第３の発明のデータ処理装置に対応している。
なお、受信装置ｕの数は、１６個に限定されず、複数であれば任意である。
【００１８】
通信システム１では、管理装置２から受信装置ｕ１〜ｕ１６には、例えば、無線で暗号データが送信（提供）される。
なお、本発明では、受信装置の代わりに、再生装置などの処理装置を用い、管理装置（送信装置）から処理装置への暗号データの提供を、光ディスク、磁気ディスクあるいは半導体記憶装置などの記録媒体を介して行ってもよい。
【００１９】
通信システム１では、管理装置２が、前処理において、受信装置ｕ１〜ｕ１６について複数の集合を規定し、同じ集合に属する受信装置ｕ１〜ｕ１６が共通の鍵データを取得するために用いるラベルデータＬＡＢＥＬおよび中間ラベルデータＩＬ（本発明の第３の復号用データ）を生成する。
そして、管理装置２は、上記生成したラベルデータＬＡＢＥＬおよび中間ラベルデータＩＬを、セキュアな状態で、対応する受信装置ｕ１〜ｕ１６に提供する。
管理装置２は、リボケーション処理において、何れの受信装置をリボークするかに応じて、リホークしない受信装置のみを要素とする単数または複数の上記集合を特定し、当該特定した集合を指定する集合指定データと、当該特定した単数または複数の集合に割り当てたラベルデータを基に暗号化した単数または複数の暗号データを受信装置ｕ１〜ｕ１６に送信する。
【００２０】
以下、図１に示す管理装置２および受信装置ｕ１〜ｕ１６について説明する。
〔管理装置２〕
図２は、図１に示す管理装置２のハードウェア構成図である。
図２に示すように、管理装置２は、例えば、通信部１１、メモリ１２および処理部１３を有する。
通信部１１は、処理部１３が生成したデータを無線方式で送信する。当該送信は、例えば、放送などのプッシュ（ＰＵＳＨ）方式で、ソフトウェア無線（ＳＤＲ：Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｒａｄｉｏ）によるＳＤＲ・セキュア・ダウンロードを行う。
メモリ１２は、処理部１３によって実行されるプログラムＰＲＧ１と、プログラムＰＲＧ１の実行に用いられる種々データを記憶する。
ここで、プログラムＰＲＧ１が第２の発明のプログラムに対応している。
メモリ１２は、例えば、後述するツリー、当該ツリーのリーフへの受信装置ｕ１〜ｕ１６の割り当て、一方向置換ＦＬ  ，ＦＲ  （本発明の一方向関数）、その逆置換ＦＬ −１，ＦＲ −１（本発明の逆関数）、疑似乱数生成器Ｇ、ハッシュ関数Ｈ、ラベルデータＬＡＢＥＬ（ｉ，ｊ）、中間ラベルデータＩＬ（ｉ，ｊ）に関する情報をセキュアな状態で記憶している。
本明細書において、セキュアな状態とは、データや内容を外部から監視、改竄できない状態をいう。
管理装置２は、一方向置換ＦＬ  ，ＦＲ  、疑似乱数生成器Ｇ、関数Ｈに関する情報を受信装置ｕ１〜ｕ１６に公開する。
【００２１】
ここで、一方向置換とは、入力ｘが与えられたときにｙ＝Ｆ（ｘ）を計算するのは容易であるが、ｙが与えられたときにｙ＝Ｆ（ｘ）を満たすｘを見つけること（すなわち逆置換Ｆ−１（ｙ）を計算すること）は、Ｆを作成したときに用いた秘密を知る場合のみ容易に行え、秘密を知らないものには計算量的に困難であるような置換である。
一方向置換としてよく知られているものに、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）関数がある。
本実施形態では、ＲＳＡ関数を用いて、一方向置換ＦＬ  ，ＦＲ  とそれぞれの逆置換ＦＬ −１，ＦＲ −１を下記式（２）〜（５）のように定める。
【００２２】
【数２】
ＦＬ  （ｘ）＝ＸｅＬ＋ｃＬ  ｍｏｄＭ                  …（２）
【００２３】
【数３】
ＦＬ −１（ｘ）＝（ｘ−ｃＬ）ｄＬ  ｍｏｄ  Ｍ          …（３）
【００２４】
【数４】
ＦＲ  （ｘ）＝ＸｅＲ＋ｃＲ    ｍｏｄＭ                                    …（４）
【００２５】
【数５】
ＦＲ −１（ｘ）＝（ｘ−ｃＲ）ｄＲ    ｍｏｄ    Ｍ                    …（５）
【００２６】
ここで，Ｍは２つの素数ｐ，ｑの積であり、ｅＬ，ｅＲはそれぞれＭより小さく、（ｐ−１）（ｑ−１）と互いに素になるようなｅＬ≠ｅＲを満たす整数、ｄＬ，ｄＲは（ｐ−１）（ｑ−１）を法としたときのそれぞれｅＬ，ｅＲの逆数である。また係数ｃＬ≠係数ｃＲを満たす。
本実施形態では、管理装置２は、上記ｐ，ｑ，ｄＬ，ｄＲをセキュアな状態でメモリ１２に記憶する。
また、管理装置２は、一方向置換ＦＬ  ，ＦＲ  を計算するのに必要なＭ，ｅＬ，ｅＲ，ｃＬ，ｃＲを受信装置ｕ１〜ｕ１６に公開する。
なお、落とし戸つき一方向置換としてのＲＳＡ関数の解説は、たとえばＯ．Ｇｏｌｄｒｅｉｃｈ著，岡本龍明，藤崎英一郎訳，「現代暗号・確率的証明・擬似乱数」，シュプリンガー・フェアラーク，２００１年，ｐｐ．１６８−１６９に記されている。
メモリ１２は、後述するようにして生成したラベルデータＬＡＢＥＬ（ｉ，ｊ）、中間ラベルデータＩＬ（ｉ，ｊ）、並びに必要に応じて各集合Ｓ（ｉ，ｊ）の鍵データＳＫ（ｉ，ｊ）をセキュアな状態で記憶する。
【００２７】
処理部１３は、メモリ１２に記憶されたプログラムＰＲＧ１を実行し、その実行に応じて管理装置２の処理を統括して制御する。本実施形態において、管理装置２の処理は、処理部１３が実行するプログラムＰＲＧ１によって規定される。
【００２８】
処理部１３は、プログラムＰＲＧ１の実行に応じて、受信装置ｕ１〜ｕ１６に所定のラベルデータＬＡＢＥＬおよび中間ラベルデータＩＬを提供する前処理と、何れの受信装置をリボークするかに応じて選択した集合を指定する集合指定データと、リボークしない受信装置ｕ１〜ｕ１６のみが復号可能な暗号データを送信するリボケーション処理とを行う。
【００２９】
以下、管理装置２が行う各処理について説明する。
〔前処理〕
図３は、管理装置２が行うリボケーション処理の前処理を説明するためのフローチャートである。
図３において、ステップＳＴ７が第１の発明の第１の工程および第２の工程に対応し、ステップＳＴ１２が第１の発明の第３の工程および第５の工程に対応している。
また、ステップＳＴ８が第１の発明の第４の工程に対応している。
また、第３の発明の第１手段および第２手段は、処理部１３がステップＳＴ７を実行することで実現され、第３の発明の第３の手段は処理部１３がステップＳＴ１２を実行することで実現される。
【００３０】
ステップＳＴ１：
管理装置２は、先ず、例えば、図４に示す２分木によって構成されるツリー２０を定義し、その情報をメモリ１２に記憶する。
ステップＳＴ２：
管理装置２は、図４に示すように、ツリー２０の１６個のリーフの各々に１６個の受信装置ｕ１〜ｕ１６を割り当て、その情報をメモリ１２に記憶する。
る。
【００３１】
ステップＳＴ３：
管理装置２は、各ノードについて、ノード（ｉ）の子孫であるノード（ｊ）に対応する集合Ｓ（ｉ，ｊ）を定義する。
本実施形態では、リーフ、並びに２分木の分岐点（ルートを含む）をノードとする。
上記集合Ｓ（ｉ，ｊ）は、ツリー２０の２つのノード（ｉ），（ｊ）を用いて、「（ノード（ｉ）から分岐したリーフからなる集合）から（ノード（ｉ）から分岐したリーフからなる集合）を除いた集合」として定義する。
ノード（ｉ）がノード（ｊ）の先祖である（すなわち、ノードｊはノードｉと同一ではなく、ノード（ｊ）からルートへのパス上にノード（ｉ）が存在する）全てのノードの組についてこのような集合（ｉ，ｊ）を定義する。
例えば、図４に示すツリー２０において、集合Ｓ（２，８）は、ノード「２」から分岐したリーフに割り当てられた受信装置の集合｛ｕ１，ｕ２，ｕ３，ｕ４，ｕ５，ｕ６，ｕ７，ｕ８｝から、ノード「８」から分岐したリーフに割り当てられた受信装置の集合｛ｕ１，ｕ２｝を除いた集合｛ｕ３，ｕ４，ｕ５，ｕ６，ｕ７，ｕ８｝となる。
【００３２】
また、管理装置２は、さらに，集合Ｓ（ｉ，ｊ）の中で、ノード（ｉ）とノード（ｊ）が親子関係になっているものを第１の特別な集合ＳＳ（ｉ，ｊ）とする。
さらに、リボークする受信装置がひとつもない場合に使用する、全受信装置ｕ１〜ｕ１６を要素とする第２の特別な集合ＳＳ（１，Φ）を定義する。
【００３３】
ステップＳＴ４：
管理装置２は、定義域および値域が等しい２つの落とし戸つき一方向置換ＦＬ，ＦＲ  を選択し、これを受信装置ｕ１〜ｕ１６に公開する。
【００３４】
管理装置２は、上述したように、一方向置換ＦＬ  ，ＦＲ  に関する情報をメモリ１２に記憶する。
管理装置２は、上述したように、一方向置換ＦＬ  ，ＦＲ  の逆置換ＦＬ −１，ＦＲ−１に関する情報をメモリ１２にセキュアな状態で保持する。
【００３５】
ステップＳＴ５：
管理装置２は、ハッシュ関数Ｈと擬似乱数生成器Ｇの構成を選択し、それを公開する。また、管理装置２は、これらの情報をメモリ１２に記憶する。
ハッシュ関数Ｈは，任意長の入力に対してあらかじめ定められた長さの出力を出す関数である。たとえば１２８ビット出力のハッシュ関数としてはＭＤ５が、１６０ビット出力のハッシュ関数としてはＳＨＡ−１がよく知られている。ＭＤ５は、Ａ．Ｊ．Ｍｅｎｅｚｅｓ，Ｐ．Ｃ．ｖａｎ  Ｏｏｒｓｃｈｏｔａｎｄ  Ｓ．Ａ．Ｖａｎｓｔｏｎｅ著，Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ，  ＣＲＣ  Ｐｒｅｓｓ  １９９７のｐ．３４７に、ＳＨＡ−１は同書のｐ．３４８にアルゴリズムが紹介されている。
また擬似乱数生成器Ｇは、図５に示すように、Ｃビットの入力に対し３Ｃビットの擬似乱数を出力する。
【００３６】
ステップＳＴ６：
管理装置２は、一方向置換ＦＬ  ，ＦＲ  の定義域からランダムな値Ｋを選択し、第２の特別な集合ＳＳ（１，Φ）のラベルデータＬＡＢＥＬ（１，Φ）を生成するために用いられる中間ラベルデータＩＬ（１，Φ）の値を「Ｋ」とし、その情報をメモリ１２にセキュアな状態に記憶する。
また、管理装置２は、ハッシュ関数Ｈを用いて、Ｈ（Ｋ）を演算し、その結果をラベルデータＬＡＢＥＬ（１，Φ）とする。
【００３７】
ステップＳＴ７：
管理装置２は、第１の特別な集合ＳＳ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）を生成するために用いられる中間ラベルデータＩＬ（ｉ，ｊ）を生成する。
具体的には、管理装置２は、図４に示す例において、図６に示すように、ノード「１」を始点としたノード「２」に対応する第１の特別な集合ＳＳ（１、２）の中間ラベルデータＩＬ（１，２）を、逆置換ＦＬ −１（Ｋ）により生成する。
また、ノード「１」を始点としたノード「３」に対応する第１の特別な集合ＳＳ（１、３）の中間ラベルデータＩＬ（１，３）を、逆置換ＦＲ −１（Ｋ）により生成する。
【００３８】
さらに、第１の特別な集合ＳＳ（３，６）の中間ラベルデータＩＬ（３，６）を、中間ラベルデータＩＬ（１，２）を用いて、逆置換ＦＬ −１（ＩＬ（１，２））により生成する。
また、第１の特別な集合ＳＳ（３，７）の中間ラベルデータＩＬ（３，７）を、中間ラベルデータＩＬ（１，２）を用いて、逆置換ＦＲ −１（ＩＬ（３，７））により生成する。
また、第１の特別な集合ＳＳ（２，４）の中間ラベルデータＩＬ（２，４）を、中間ラベルデータＩＬ（１，３）を用いて、逆置換ＦＬ −１（ＩＬ（１，３））により生成する。
また、第１の特別な集合ＳＳ（２，５）の中間ラベルデータＩＬ（２，５）を、中間ラベルデータＩＬ（１，３）を用いて、逆置換ＦＲ −１（ＩＬ（１，３））により生成する。
【００３９】
これを繰り返すことにより，ルート以外のすべてのノードｊに対して第１の特別なＳＳ（Ｐ（ｊ），ｊ）の中間ラベルデータＩＬ（Ｐ（ｊ），ｊ）を生成する。
ここで、Ｐ（ｊ）を、ノードｊの親ノードとする。
また、ノード（ｊ）に対して２分木の左側（一方）に位置する子ノードをＣＬ（ｊ）とし、右側（他方）に位置する子ノードをＣＲ（ｊ）とする。
また、ノード（ｊ）と、同じ親ノードを持つ他方のノードをＳ（ｊ）とする。
管理装置２は、中間ラベルデータＩＬ（ｊ，ＣＬ（ｊ））を、ＦＬ −１（ＩＬ（Ｐ（ｊ），Ｓ（ｊ））によって生成する。
また、管理装置２は、中間ラベルデータＩＬ（ｊ，ＣＲ（ｊ））を、ＦＲ −１（ＩＬ（Ｐ（ｊ），Ｓ（ｊ））によって生成する。
具体的には、管理装置２は、例えば、図４に示すツリー２０において、中間ラベルデータＩＬ（２，４）を、ＦＬ −１（ＩＬ（１，３））によって生成する。
【００４０】
図４に示すツリー２０において、ルート「１」とリーフ「１９」との間のパスにおける受信装置４における処理に用いられる中間ラベルデータＩＬ（ｉ，ｊ）の生成は、例えば、図６に示すように行われる。
図６の例において、例えば、第１の特別な集合ＳＳ（４，８）が本発明の第１の集合に対応し、第１の特別な集合ＳＳ（９，１８）が本発明の第２の集合に対応する。
また、中間ラベルデータＩＬ（２，５）が本発明の第１の復号用データに対応し、中間ラベルデータＩＬ（４，８）が本発明の第２の復号用データに対応し、中間ラベルデータＩＬ（９，１８）が本発明の第３の復号用データに対応している。
なお、図６において、第１の特別な集合ＳＳ（４，８）を要素とし、その上位にある第１の特別な集合ＳＳ（２，５）あるいはＳＳ（１，３）を本発明の第１の集合とし、それに対応する中間ラベルデータＩＬ（２，５）あるいはＩＬ（１，３）を第２の復号用データとしてもよい。
【００４１】
また、管理装置２は、上記生成した第１の特別な集合ＳＳ（ｉ，ｊ）の中間ラベルデータＩＬ（ｉ，ｊ）について、ハッシュ関数Ｈを用いて、Ｈ（ＩＬ（ｉ，ｊ））を演算し、その結果であるラベルデータＬＡＢＥＬ（ｉ，ｊ）をメモリ１２に記憶する。
【００４２】
ステップＳＴ８：
管理装置２は、ステップＳＴ７で生成した第１の特別な集合ＳＳ（ｉ，ｊ）の中間ラベルデータＩＬ（ｉ，ｊ）を基に、その下層に位置する特別でない集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）を生成する。
具体的には、管理装置２は、図５および図７に示すように、ステップＳＴ７で生成した第１の特別な集合ＳＳ（ｉ，ｊ）のＣビットのラベルＬＡＢＥＬ（ｉ，ｊ）を擬似乱数生成器Ｇに入力し，その結果である３Ｃビットのデータのうち上位Ｃビット（＝ＧＬ（ＬＡＢＥＬ（ｉ，ｊ））を、ノード「ｉ」を始点としたノード「ｊ」の左側（一方）の子ノードＣＬ（ｊ）のラベルデータＬＡＢＥＬ（ｉ，ＣＬ（ｊ））とする。
また、管理装置２は、ステップＳＴ７で生成した第１の特別な集合ＳＳ（ｉ，ｊ）のラベルＬＡＢＥＬ（ｉ，ｊ）を擬似乱数生成器Ｇに入力し、その結果である３Ｃビットのデータのうち下位Ｃビット（＝ＧＲ（ＬＡＢＥＬ（ｉ，ｊ））を、ノード「ｉ」を始点としたノード「ｊ」の右側（他方）の子ノードＣＲ（ｊ）のラベルデータＬＡＢＥＬ（ｉ，ＣＲ（ｊ））とする。
そして、管理装置２は、上記生成したラベルデータＬＡＢＥＬ（ｉ，ＣＬ（ｊ）），ＬＡＢＥＬ（ｉ，ＣＲ（ｊ））を擬似乱数生成器Ｇに繰り返し入力することで、ノードｉを始点とした、ノードｊの子孫であるすべてのノードに対応するラベルデータを求める。
管理装置２は、ステップＳＴ７で生成した全ての特別な集合ＳＳ（ｉ，ｊ）のラベルデータに対して上記処理を行う。
上述したステップＳＴ７およびＳＴ８の処理により、ステップＳＴ３で規定した全ての集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）が生成される。
管理装置２は、集合Ｓ（ｉ，ｊ）の要素である受信装置が暗号データの復号に用いる鍵データＳＫ（ｉ，ｊ）を、例えば、ＳＫ（ｉ，ｊ）＝ＧＭ（ＬＡＢＥＬ（ｉ，ｊ））によって生成する。
すなわち、管理装置２は、ステップＳＴ７で生成した第１の特別な集合ＳＳ（ｉ，ｊ）のラベルＬＡＢＥＬ（ｉ，ｊ）を擬似乱数生成器Ｇに入力し，その結果である３Ｃビットのデータのうち中位Ｃビット（＝ＧＭ（ＬＡＢＥＬ（ｉ，ｊ））を、集合Ｓ（ｉ，ｊ）の要素である受信装置が暗号データの復号に用いる鍵データＳＫ（ｉ，ｊ）とする。
【００４３】
ステップＳＴ９：
管理装置２は、全ての受信装置ｕ１〜ｕ１６の各々に対して、当該受信装置が要素となる集合に対応するラベルデータを選択する。
具体的には、管理装置２は、受信装置ｕｍについて、受信装置ｕｍ（ｍは１〜１６の整数）が割り当てられたリーフからルートに至るパスｐａｔｈ（ｍ）上の内部のノード「ｉ」を始点とし、当該リ−フからノード「ｉ」までのパスから直接分岐した（枝分かれした）ノード「ｊ」に対応する集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）と、上記の第２の特別な集合ＳＳ（１，Φ）に対応するラベルデータＬＡＢＥＬ（１，Φ）を選択する。
図４に示すツリー２０の例では、管理装置２は、受信装置ｕ４について、図８の「従来のＳＤ」の欄に示すように、ラベルデータＬＡＢＥＬ（１，３），ＬＡＢＥＬ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（２，５），ＬＡＢＥＬ（２，８），ＬＡＢＥＬ（２，１８），ＬＡＢＥＬ（４，８），ＬＡＢＥＬ（４，１８），ＬＡＢＥＬ（９，１８），ＬＡＢＥＬ（１，Φ）の１１個のラベルデータＬＡＢＥＬ（ｉ，ｊ）を選択する。
これらの１１個のラベルデータＬＡＢＥＬ（ｉ，ｊ）のち、図９に示すように、ＬＡＢＥＬ（１，３），ＬＡＢＥＬ（２，５），ＬＡＢＥＬ（４，８）およびＬＡＢＥＬ（９，１８）が第１の集合ＳＳ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）となる。
【００４４】
ステップＳＴ１０：
管理装置２は、各受信装置ｕｍについて、ステップＳＴ９で選択したラベルデータ（ｉ，ｊ）のうち、前述した第１の特別な集合および第２の特別な集合に対応するラベルデータ（ｉ，ｊ）を除いたラベルデータ（ｉ，ｊ）を選択する。
図４に示すツリー２０の例では、管理装置２は、受信装置ｕ４について、ラベルデータＬＡＢＥＬ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（２，８），ＬＡＢＥＬ（２，１８），ＬＡＢＥＬ（４，１８）を選択する。
【００４５】
ステップＳＴ１１：
管理装置２は、受信装置ｕｍが割り当てられているリーフ「ｊ」の親ノードＰ（ｊ）を始点とし、リーフ「ｊ」の兄弟ノード「Ｓ（ｊ）」に対応する中間ラベルデータＩＬ（Ｐ（ｊ），Ｓ（ｊ））を選択し、これをメモリ１２にセキュアな状態で記憶する。
図４に示すツリー２０の例では、管理装置２は、受信装置ｕ４について、中間ラベルデータＩＬ（９，１８）を選択し、これをメモリ１２にセキュアな状態で記憶する。
【００４６】
ステップＳＴ１２：
管理装置２は、各受信装置ｕｍについて、ステップＳＴ１０で選択したラベルデータＬＡＢＥＬ（ｉ，ｊ）と、ステップＳＴ１１で選択した中間ラベルデータＩＬとを、当該受信装置ｕｍにセキュアな状態で提供する。
受信装置ｕｍは、当該受けたラベルデータＬＡＢＥＬ（ｉ，ｊ）と中間ラベルデータＩＬとをセキュアな状態で記憶する。
受信装置ｕ４の例では、図８に示す「第１実施形態」の欄のように、ラベルデータＬＡＢＥＬ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（２，８），ＬＡＢＥＬ（２，１８），ＬＡＢＥＬ（４，１８）と、中間ラベルデータＩＬ（９，１８）との合計７個のラベルデータを、受信装置ｕ４にセキュアな状態で提供する。
このように、通信システム１によれば、従来のＳＤ方式に比べて、管理装置２から受信装置ｕｍに提供して記憶させるラベルデータの数（データ量）を削減できる。
また、通信システム１では、上述したように、一方向置換の逆置換を基に中間ラベルデータＩＬを生成し、そのうち最下層の中間ラベルデータＩＬを受信装置ｕｍにセキュアな状態で提供することにより、各受信装置ｕｍは、自らが属する第１の特別な集合の中間ラベルデータＩＬは生成できるが、自らが属しない第１の特別な集合の中間ラベルデータＩＬは生成できないようにできる。
例えば、図６の例で説明すると、受信装置ｕ４は、管理装置２から受けた中間ラベルデータＩＬ（９，１８）を保持し、後述するように、中間ラベルデータＩＬ（９，１８）を基に公開された一方向置換ＦＬ  ，ＦＲ  から、中間ラベルデータＩＬ（４，８），ＩＬ（２，５），ＩＬ（１，３），ＩＬ（１，Φ）を生成できるが、それ以外の中間ラベルデータＩＬを生成するには、一方向置換の逆置換ＦＬ −１，ＦＲ −１が必要になり、逆置換ＦＬ −１，ＦＲ −１は一方向置換ＦＬ  ，ＦＲ  から取得することが困難である。
【００４７】
〔リボケーション処理〕
管理装置２は、上述した前処理を行った後に、例えば、コンテンツデータを暗号化した暗号データを受信装置ｕｍに送信する際に、当該リボケーション処理を行う。
図１０は、管理装置２が行うリボケーション処理を説明するためのフローチャートである。
ステップＳＴ２１：
管理装置２は、受信装置ｕ１〜ｕ１６のうち、リボークしない受信装置を特定する（暗号データを復号できる受信装置を指定する）。
ステップＳＴ２２：
管理装置２は、ステップＳＴ２１で特定したリボークしない受信装置を要素とし、かつ、リボークする受信装置を要素としない集合のうち、リボークしない受信装置がいずれかの集合の要素となりかつ、最も上位の階層の単数または複数の集合Ｓ（ｉ，ｊ）を特定する。
管理装置２は、例えば、図１１に示すように、受信装置ｕ２，ｕ１１，ｕ１２をリボークする場合には、集合Ｓ（２，１７）およびＳ（３，１３）を特定する。
【００４８】
ステップＳＴ２３：
管理装置２は、ステップＳＴ２２で特定した集合Ｓ（ｉ，ｊ）を指定する集合指定データを生成する。当該集合指定データは、例えば、集合Ｓ（ｉ，ｊ）の識別データを用いて、当該集合Ｓ（ｉ，ｊ）を指定する。
ステップＳＴ２４：
管理装置２は、ステップＳＴ２３で特定した集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）を用いて、鍵データＳＫ（ｉ，ｊ）（＝ＧＭ（ＬＡＢＥＬ（ｉ，ｊ）））を生成する。
【００４９】
ステップＳＴ２５：
管理装置２は、送信するデータを、ステップＳＴ２４で生成した鍵データＳＫ（ｉ，ｊ）のそれぞれで暗号化して暗号データを生成する。
図１１に示す例では、管理装置２は、上記データを鍵データＳＫ（２，１７）で暗号化した暗号データと、上記データを鍵データＳＫ（３，１３）で暗号化した暗号データとを生成する。
ステップＳＴ２６：
管理装置２は、ステップＳＴ２５で生成した暗号データを、図２に示す通信部１１を介して受信装置ｕ１〜ｕ１６に送信する。
なお、本実施形態では、図３に示す前処理はシステム立ち上げ時の一度だけ行い、図１０に示すリボケーション処理は送信したい情報があるたびに（たとえばコンテンツを放送するとかＲＯＭディスクを生産する場合などに）行う。受信装置もシステム立ち上げ時または自身がシステムに参加するときにラベルを受け取り，下記の受信処理は繰り返して行う。
【００５０】
〔受信装置ｕ１〜ｕ１６〕
図１２は、図１に示す受信装置ｕｍのハードウェア構成図である。
図１２に示すように、受信装置ｕｍは、例えば、通信部５１、メモリ５２および処理部５３を有する。
通信部５１は、前述したように管理装置２が送信した暗号データおよび集合指定データを受信する。
メモリ５２は、処理部５３によって実行されるプログラムＰＲＧ２と、プログラムＰＲＧ２の実行に用いられる種々データを記憶する。
ここで、プログラムＰＲＧ２が第４の発明のプログラムに対応している。
例えば、メモリ５２は、例えば、図４に示すツリー２０、ツリー２０の何れのリーフに受信装置ｕｍが割り当てられているかを示す情報、一方向置換ＦＬ  ，ＦＲ  に関する情報、疑似乱数生成器Ｇに関する情報、ハッシュ関数Ｈに関する情報を記憶している。
【００５１】
処理部５３は、メモリ５２に記憶されたプログラムＰＲＧ２を実行し、その実行に応じて受信装置ｕｍの処理を統括して制御する。本実施形態において、受信装置ｕｍの処理は、処理部５３が実行するプログラムＰＲＧ２によって規定される。
【００５２】
処理部５３は、プログラムＰＲＧ２の実行に応じて、集合指定データによって指定された集合のラベルデータＬＡＢＥＬの生成、中間ラベルデータＩＬの生成、中間ラベルデータＩＬからラベルデータＬＡＢＥＬの生成、並びにラベルデータＬＡＢＥＬから鍵データＳＫの生成、鍵データＳＫを用いた暗号データの復号などの処理を行う。
【００５３】
図１３は、図１２に示す受信装置ｕｍの処理を説明するためのフローチャートである。
ステップＳＴ３１：
受信装置ｕｍの通信部５１は、管理装置２から、前述した集合指定データと、単数または複数の暗号データを受信する。
ステップＳＴ３２：
受信装置ｕｍの処理部５３は、当該受信装置ｕｍが、ステップＳＴ３１で受信した集合指定データが指定する単数または複数の集合のいずれかの要素であるか否かを判断し、要素であると判断するとステップＳＴ３３に進み、そうでない場合には処理を終了する。
なお、受信装置ｕｍは、管理装置２によってリボークされない場合に、管理装置２からの集合指定データが示す単数または複数の集合のうち一つの集合の要素となっている。
【００５４】
ステップＳＴ３３：
受信装置ｕｍの処理部５３は、後述するように、鍵データＳＫ（ｉ，ｊ）を生成する。
ステップＳＴ３４：
受信装置ｕｍは、ステップＳＴ３３で生成した鍵データＳＫ（ｉ，ｊ）を用いて、自らが要素となる集合に対応した暗号データを復号する。
【００５５】
以下、図１３に示す鍵データの生成処理（ステップＳＴ３３）を詳細に説明する。
図１４は、図１３に示すステップＳＴ３３の処理を説明するためのフローチャートである。
図１４に示すステップＳＴ４６，ＳＴ４７，ＳＴ４８が第１の発明の第６の工程に対応し、図１３に示すステップＳＴ３４が第１の発明の第７の工程に対応している。
また、第５の発明の第１の手段は、処理部５３が図１４に示すステップＳＴ４３，ＳＴ４５および図１３に示すステップＳＴ３４を実行して実現され、第２の手段は、処理部５３が図１４に示すステップＳＴ４６，ＳＴ４７，ＳＴ４８および図１３に示すステップＳＴ３４を実行して実現される。
【００５６】
ステップＳＴ４１：
受信装置ｕｍは、集合指定データが指定する自らが要素となる集合Ｓ（ｉ，ｊ）が、第１あるいは第２の特別な集合であるか否かを判断し、特別な集合であると判断するとステップＳＴ４８に進み、そうでない場合にはステップＳＴ４２に進む。
ステップＳＴ４２：
受信装置ｕｍは、集合指定データが指定する自らが要素となる集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬが、メモリ５２に記憶されているか否かを判断し、記憶されていると判断すると、ステップＳＴ４３に進み、そうでない場合にはステップＳＴ４４に進む。
ステップＳＴ４３：
受信装置ｕｍの処理部５３は、上記指定された集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）をメモリ５２から読み出し、これを擬似乱数生成器Ｇに入力し、その結果の中位ＣビットＧＭ（ＬＡＢＥＬ（ｉ，ｊ））を、鍵データＳＫ（ｉ，ｊ）とする。
【００５７】
ステップＳＴ４４：
受信装置ｕｍは、集合指定データが指定する自らが要素となる集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬを得るのに第１または第２の特別な集合のラベルデータＬＡＢＥＬが必要か否かを判断し、必要であると判断するとステップＳＴ４６に進み、そうでない場合にはステップＳＴ４５に進む。
ステップＳＴ４５：
受信装置ｕｍの処理部５３は、メモリ５２から、上記指定された集合Ｓ（ｉ，ｊ）を含む上位階層の集合のラベルデータＬＡＢＥＬを読み出し、これを擬似乱数生成器Ｇに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Ｇに入力して、ラベルデータＬＡＢＥＬ（ｉ，ｊ）を生成する。
当該処理は、図３のＳＴ８および図５で示した処理と同様である。
そして、処理部５３は、上記生成したラベルデータＬＡＢＥＬ（ｉ，ｊ）を擬似乱数生成器Ｇに入力し、その結果の中位ＣビットＧＭ（ＬＡＢＥＬ（ｉ，ｊ））を、鍵データＳＫ（ｉ，ｊ）とする。
【００５８】
ステップＳＴ４６：
受信装置ｕｍの処理部５３は、メモリ１２から図３を用いて前述したステップＳＴ１２で管理装置２から提供を受けて書き込まれた中間ラベルデータＩＬを読み出し、これを基に一方向置換ＦＬ  ，ＦＲ  を用いて、図６に示すリーフからルートに向かって演算を行って、受信装置ｕｍが要素となる第１あるいは第２の特別な集合の中間ラベルデータＩＬを生成する。
また、処理部５３は、上記生成した特別な集合の中間ラベルデータＩＬを用いて、ハッシュ関数Ｈを基に、上記特別な集合のラベルデータＬＡＢＥＬを生成する。
【００５９】
ステップＳＴ４７：
受信装置ｕｍの処理部５３は、ステップＳＴ４６で生成したラベルデータＬＡＢＥＬを擬似乱数生成器Ｇに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Ｇに入力して、ラベルデータＬＡＢＥＬ（ｉ，ｊ）を生成する。
そして、処理部５３は、上記生成したラベルデータＬＡＢＥＬ（ｉ，ｊ）を擬似乱数生成器Ｇに入力し、その結果の中位ＣビットＧＭ（ＬＡＢＥＬ（ｉ，ｊ））を、鍵データＳＫ（ｉ，ｊ）とする。
【００６０】
ステップＳＴ４８：
受信装置ｕｍの処理部５３は、必要に応じて、メモリ１２から前述したステップＳＴ１２で書き込まれた中間ラベルデータＩＬを読み出し、これを基に一方向置換ＦＬ  ，ＦＲ  を用いて、図６に示すリーフからルートに向かって演算を行って、受信装置ｕｍが要素となる第１の特別な集合の中間ラベルデータＩＬを生成する。
そして、処理部５３は、当該中間ラベルデータＩＬを用いて、ハッシュ関数Ｈを基に、上記第１あるいは第２の特別な集合のラベルデータＬＡＢＥＬを生成する。
そして、処理部５３は、当該生成したラベルデータＬＡＢＥＬを擬似乱数生成器Ｇに入力し、その結果の中位ＣビットＧＭ（ＬＡＢＥＬ（ｉ，ｊ））を、鍵データＳＫ（ｉ，ｊ）とする。
【００６１】
以下、上述した受信装置ｕｍの処理をさらに説明する。
処理部５３は、ノード（ｊ）が、ノード（ｉ）の子ノードのうち、受信装置ｕｍが割り当てられたリーフからルートへのパス上に存在しない側のノード（つまり、パス上にあるノード（ｉ）の子ノードの兄弟であるノード）と一致するか、その子孫である（ノード（ｊ）が受信装置ｕｍが要素となる集合のうち、第１あるいは第２の特別な集合を構成するノードの組の２番目のノードの子孫である）場合には、以下のように処理を行う。
受信装置ｕｍが記憶する中間ラベルＩＬ（Ｐ（ｎ），Ｓ（ｎ））から特別な集合の中間ラベルデータＩＬを導出する。
先ず、指定された集合（ｉ，ｊ）が、集合（Ｐ（ｎ），Ｓ（ｎ））である場合には、受信装置ｕｍは、既に、その中間ラベルデータＩＬをメモリ１２に記憶しているので演算は不要である。
そうでない場合は、受信装置ｕｍの処理部５３は、メモリ１２から読み出した中間ラベルＩＬ（Ｐ（ｎ），Ｓ（ｎ））に対して、既に、公開されている一方向置換ＦＬ  ，ＦＲ  を適用することで、その上位階層の特別な集合のラベルデータＬＡＢＥＬを順次計算する。
上記中間ラベルＩＬ（Ｐ（ｎ），Ｓ（ｎ））に対し、受信装置ｕｍが割り当てられたリーフ（ｎ）の兄弟ノードＳ（ｎ）が親ノードＰ（ｎ）の左側の子ノードであるとき、すなわちＳ（ｎ）＝ＣＬ（Ｐ（ｎ））であるとき、ノードＰ（ｎ）の親ノードＰ（Ｐ（ｎ））を始点とし、ノードＰ（ｎ）の兄弟ノードＳ（Ｐ（ｎ））に対応する特別な集合ＳＳ（Ｐ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ）））の中間ラベルＩＬ（Ｐ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ）））はＦＬ  （ＩＬ（Ｐ（ｎ），Ｓ（ｎ）））によって求められる。
逆に、ノードＳ（ｎ）が親ノードＰ（ｎ）の右側の子ノードであるとき、すなわちＳ（ｎ）＝ＣＲ（Ｐ（ｎ））であるとき、ノードＰ（ｎ）の親ノードＰ（Ｐ（ｎ））を始点とし、ノードＰ（ｎ）の兄弟ノードＳ（Ｐ（ｎ））に対応する特別な集合ＳＳ（Ｐ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ）））の中間ラベルデータＩＬ（Ｐ（Ｐ（ｎ）），Ｓ（Ｐ（ｎ）））は、ＦＲ  （ＩＬ（Ｐ（ｎ），Ｓ（ｎ）））によって求められる。
これらの出力にさらに一方向置換ＦＬ  ，ＦＲ  を繰り返し行うことにより、受信装置ｕｍは、特別な集合ＳＳ（１，２）またはＳＳ（１，３）を含む自らが必要となる全ての特別な集合の中間ラベルデータＩＬを得ることができる。
【００６２】
また，中間ラベルデータＩＬ（１，２）に対しては一方向置換ＦＬ  を、中間ラベルＩＬ（１，３）に対しては一方向置換ＦＲ  を適用することにより、第２の特別な集合ＳＳ（１，Φ）に対応する中間ラベルデータＩＬ（１，Φ）＝Ｋを求めることができる。
【００６３】
前述した図６に示す例で説明すると、受信装置ｕ４は中間ラベルデータＩＬ（９，１８）を保持している。
ノード（１８）はノード（９）の左側の子ノードであるから、一方向置換ＦＬを用いることにより、ノード（９）の親ノード（４）と兄弟ノード（８）で規定される第１の特別な集合ＳＳ（４，８）の中間ラベルデータＩＬ（４，８）をＩＬ（４，８）＝ＦＬ  （ＩＬ（９，１８））として求めることができる。
また、ノード（８）はノード（４）の左側の子ノードであるから、一方向置換ＦＬ  を用いることにより，ノード（４）の親ノード（２）と兄弟ノード（５）で決定される集合ＳＳ（２，５）の中間ラベルデータＩＬ（２，５）を、ＩＬ（２、５）＝ＦＬ  （ＩＬ（４，８））として求めることができる。
この処理を繰り返していくことにより，受信装置ｕ４は、ＩＬ（１，３）＝ＦＲ  （ＩＬ（２，５））およびＩＬ（１，Φ）＝ＦＲ  （ＩＬ（１，３））を求めることができる。
【００６４】
図１５は、受信装置ｕｍ４が、メモリ１２に記憶する中間ラベルデータＩＬ（９，１８）から、中間ラベルデータＩＬ（４，８），（２，５），（１，３），（１，Φ）を順に生成する場合を説明するための図である。
図１５に示すように、処理部５３は、集合Ｓ（ｉ，ｋ）に対応する中間ラベルデータＩＬ（ｉ，ｋ）を導出したら，ラベルデータＬＡＢＥＬ（ｉ，ｋ）をＬＡＢＥＬ（ｉ，ｋ）＝Ｈ（ＩＬ（ｉ，ｋ））として求める。
それから，図５および図７を参照して前述したように、擬似乱数生成器Ｇを用いて必要な集合Ｓ（ｉ，ｊ）のラベルデータＬＡＢＥＬ（ｉ，ｊ）を求め、さらにその集合の鍵データＳＫ（ｉ，ｊ）を、ＧＭ（  ＬＡＢＥＬ（ｉ，ｊ））により求め，これを用いて、管理装置２から受信した暗号データを復号する。
【００６５】
また、図１１に示すように、受信装置ｕ２，ｕ１１，ｕ１２がリボークされ，集合Ｓ（２，１７），Ｓ（３，１３）に対応する鍵データＳＫ（２，１７），ＳＫ（３，１３）で暗号化された暗号データを管理装置２が送信する場合を考える。
この場合には、受信装置ｕ４は，ラベルデータＬＡＢＥＬ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（２，８），ＬＡＢＥＬ（２、１８），ＬＡＢＥＬ（４，１８）の６個のラベルデータと、中間ラベルデータＩＬ（１，Φ），ＩＬ（１，３），ＩＬ（２，５），ＩＬ（４，８）を導出できる中間ラベルデータＩＬ（９，１８）をメモリ５２に記憶する。
【００６６】
受信装置ｕ４は、集合Ｓ（２，１７）の要素であり、ノード（１７）の先祖であるノード（８）を用いたラベルデータＬＡＢＥＬ（２，８）を直接保持しているため、これに擬似乱数生成器Ｇを必要な回数だけ適用することで鍵データＳＫ（２，１７）を得ることができる。
一方、受信装置ｕ５は、ＬＡＢＥＬ（１，４），ＬＡＢＥＬ（１，１１），ＬＡＢＥＬ（１，２１），ＬＡＢＥＬ（２，１１），ＬＡＢＥＬ（２，２１），ＬＡＢＥＬ（５，２１）の６個のラベルデータと、中間ラベルデータＩＬ（１，Φ），ＩＬ（１，３），ＩＬ（２，４），ＩＬ（５，１１）を導出できる中間ラベルデータＩＬ（１０，２１）を、メモリ１２に記憶している。
受信装置ｕ５は、集合Ｓ（２，１７）に対し、ノード（１７）の先祖であるノード（ｋ）を用いたラベルデータＬＡＢＡＬ（２，ｋ）をメモリ１２に保持していない。
そのため、受信装置ｕ５は、メモリ１２に記憶している中間ラベルデータＩＬ（１０，２１）から、ノード（１７）の先祖であるノード（４）に対応した中間ラベルデータＩＬ（２，４）を先に述べた手法でまず導出し、その後にラベルデータＬＡＢＡＬ（２，４）を求め、これに擬似乱数生成器Ｇを必要な回数だけ適用することで鍵データＳＫ（２，１７）を得る。
【００６７】
なお、リボークすべき受信装置ｕｍが１台もなく、集合として第２の特別な集合ＳＳ（１，Φ）が使用されていた場合、受信装置ｕｍは、上記の処理により中間ラベルデータＩＬ（１，Φ）を求め、これを用いてラベルデータＬＡＢＡＬ（１，Φ）を計算し、それを擬似乱数生成器Ｇに入力して出力の中央部分のＣビットを求めることにより、鍵データＳＫ（１，Φ）を導出し、これを基に暗号データを復号する。
【００６８】
以上説明したように、通信システム１によれば、図６に示すように、中間ラベルデータＩＬを規定し、最下層の集合の中間ラベルデータＩＬを受信装置ｕｍに保持させることで、受信装置ｕｍが記憶（保持）するラベルデータおよび中間ラベルデータの数を、従来のＳＤ方式に比べて削減できる。
また、通信システム１によれば、受信装置ｕｍは、自らが保持する中間ラベルデータＩＬを基に、図１５に示すように、その上位階層の必要な中間ラベルデータＩＬを生成でき、自らが割り当てられた集合のラベルデータおよび鍵データを適切に取得できる。そのため、リボークされない受信装置ｕｍは、管理装置２から受信した暗号データを当該鍵データを基に適切に復号できる。
【００６９】
第２実施形態
本実施形態の管理装置２ａおよび受信装置ｕｍａは、以下に示す処理以外は、第１実施形態の管理装置２および受信装置ｕｍと同じである。
以下、上述したＳＤ方式を基礎としたＬＳＤ（  Ｂａｓｉｃ  Ｌａｙｅｒｅｄ  Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式に本発明を適用した場合を例示する。
ＬＳＤ方式には、Ｂａｓｉｃ（基本）方式と、その拡張であるＧｅｎｅｒａｌ（一般化）方式がある。
ここではＢａｓｉｃ＿ＬＳＤに本発明を適用した場合について説明する。
本実施形態の通信システムは、上述した第１の実施形態の通信システムにおいて、特別レベル（Ｓｐｅｃｉａｌ  Ｌｅｖｅｌ）と、特別レベル間の階層であるレイヤという新たな概念を取り入れたものである。
例えば、第１実施形態で説明したツリー２０内で、図１６に示すように、特定の階層を特別レベルとして定義する。
本実施形態では、特別ラベルデータは１種類だけであるが、後述する第２実施形態においては重要度の異なる複数の特別レベルを用いる。
ここで、簡単のため、ｌｏｇ１／２  Ｎ（Ｎは受信装置ｕｍの数）は整数であるとする。
【００７０】
本実施形態では、図１６に示すように、ツリー２０のルートからリーフに至るまでのそれぞれの階層のうち、ルートとリーフのレベルを含む、ｌｏｇ１／２  Ｎごとの階層を特別レベルと規定する。
そして、隣り合う２つの特別レベルに挟まれた単数または複数の階層（両方の特別レベルを含む）を、レイヤと呼ぶ。
図１６の例では、ルートの階層、ノードｋを含む階層、リーフの階層が特別レベルであり、ルートの階層とノードｉを含む階層とノードｋを含む階層が１つのレイヤを構成する。またノードｋを含む階層とノードｊを含む階層とリーフを含む階層が別のレイヤを構成する。
【００７１】
本実施形態では、管理装置２ａは、第１実施形態で規定した集合Ｓ（ｉ，ｊ）のうち、ノードｉとノードｊが同一レイヤにあるか、もしくはノードｉが特別レベルにあるものだけを規定し、当該規定した集合（ｉ，ｊ）についてのみ、図３を用いて説明したようにラベルデータＬＡＢＥＬおよび中間ラベルデータＩＬの生成を行う。
すなわち、本実施形態では、第１実施形態で規定した集合のうちのいくつかは規定されなくなるが、この規定されない集合は、本実施形態で規定される集合の高々２つの和集合で表すことができる。
例えば、図１６の例では、集合Ｓ（ｉ，ｊ）は、本実施形態では規定されないが、ノードｉからノードｊへのパス上の、ノードｉに最も近い特別レベル上のノード（ノードｋ）を用いて、Ｓ（ｉ，ｊ）＝Ｓ（ｉ，ｋ）∪Ｓ（ｋ，ｊ）と表すことができる。
前述した第１実施形態の管理装置２は、特定（選択）した集合Ｓ（ｉ，ｊ）について、それに対応する鍵データＳＫ（ｉ，ｊ）を用いて暗号化した１つの暗号データを生成して受信装置ｕｍに提供したが、本実施形態の管理装置２ａは、集合Ｓ（ｉ，ｋ）とＳ（ｋ，ｊ）に対応する集合キーＳＫ（ｉ，ｋ），ＳＫ（ｋ，ｊ）を用いてそれぞれ暗号化した２つの暗号データを生成して受信装置ｕｍａに送信（提供）する。
【００７２】
これにより、管理装置２ａでは、送信する暗号データの数（通信量）は、第１の実施形態の管理装置２の高々２倍に増加するが、各受信装置ｕｍａが保持するラベルデータの数を第１実施形態の受信装置ｕｍに比べて減らすことができる。
【００７３】
管理装置２ａでは、擬似乱数生成器Ｇを用いてラベルデータＬＡＢＥＬ（ｉ，ｊ）を順に生成する過程で、ノード（ｉ）が特別レベルにない場合、ノード（ｉ）の一つ下の特別レベルよりも下のノードをｊとするラベルデータは利用されないので、当該一つ下の特別レベルまででラベルデータの生成を止める。
管理装置２ａは、前述した前処理において、ラベルデータを各受信装置ｕｍａにセキュアな状態で提供する場合にも、上述した条件で生成したラベルデータのなかから選択して受信装置ｕｍａに提供する。
【００７４】
図１７および図１８は、図９のツリー２０を基に受信装置ｕｍが割り当てられている場合に、本実施形態の受信装置ｕ４ａが記憶するラベルデータＬＡＢＥＬを説明するための図である。
図１７および図１８に示すように、従来のＢＡＳＩＣ＿ＬＳＤを採用した場合には、提供して記憶させたラベルデータＬＡＢＥＬ（１，３），ＬＡＢＥＬＥ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（２，５），ＬＡＢＥＬ（４，８），ＬＡＢＥＬ（４，１８），ＬＡＢＥＬ（９，１８）と特別なラベルの合計９個のラベルデータを受信装置ｕ４が保持する必要がある。
これに対して、本実施形態の管理装置２ａでは、上述したように中間ラベルデータＩＬを用いることで、ノード（ｉ），（ｊ）が親子関係にある場合の中間ラベルデータＩＬ（ｉ，ｊ）と、前述した第２の特別な集合の中間ラベルデータＩＬ（１，Φ）を、一つの中間ラベルデータＩＬから導出する。
そのため、管理装置２ａは、受信装置ｕ４ａに対して、前処理において、図１８に示すように、ラベルデータＬＡＢＥＬ（１，５），ＬＡＢＥＬ（１，８），ＬＡＢＥＬ（１，１８），ＬＡＢＥＬ（４，１８）と、中間ラベルデータＩＬ（９，１８）との合計５個のラベルデータを提供して保持させる。
【００７５】
以下、受信装置ｕｍａの数をＮとした場合に、従来のＢＡＳＩＣ＿ＬＳＤに比べて、本実施形態において受信装置ｕｍａに記憶させるラベルデータの数を削減できることを説明する。
すなわち、ノード（ｉ），（ｊ）が親子関係になるようなラベルデータＬＡＢＥＬ（ｉ，ｊ）を各受信装置ｕｍａがいくつ保持すべきかを考える。
ノード（ｉ），（ｊ）が親子関係になっているときには，以下の３つの場合が考えられる。
（Ａ）ノード（ｉ）が特別レベルにある。
（Ｂ）ノード（ｊ）が特別レベルにある。
（Ｃ）ノード（ｉ），（ｊ）の双方が特別レベルにない。
【００７６】
上記（Ａ）〜（Ｃ）のいずれの場合も、ノード（ｉ），（ｊ）が親子関係にある（つまり、ツリー上で隣り合っている）以上、ノード（ｉ），（ｊ）は同一レイヤに存在する。すなわち，集合Ｓ（ｉ，ｊ）はＢａｓｉｃ＿ＬＳＤ方式で定義されるための条件を満たしている。
つまり、このような集合はＢａｓｉｃ＿ＬＳＤで定義され使用されるため、受信装置ｕｍａはそれに対応するＬＡＢＥＬ（ｉ，ｊ）を保持しておく必要がある。
このようなノード（ｉ），（ｊ）は、受信装置ｕｍａについては、ノード（ｉ）の位置がツリーの高さ分（すなわち，受信装置が割り当てられたリーフからルートへのパス上の、リーフを除くノードすべて）あり、ノード（ｉ）を決めればノード（ｊ）がただ１つ決まる（ノード（ｉ）の子で、上記のパス上にないノード）ため、ツリー２０の高さ分，すなわちｌｏｇＮ個だけ存在する。
【００７７】
本実施形態では、受信装置ｕｍａが、これらのｌｏｇＮ個の第１の特別なラベルデータと１つの第２の特別なラベルデータを、第１実施形態で図１５を用いて説明したように、一方向置換を基に、１つの中間ラベルデータから作り出すように規定し、この中間ラベルデータＩＬを受信装置ｕｍａにセキュアな状態で提供して保持させる。
これにより、受信装置ｕｍａが保持するラベルデータの数をｌｏｇＮ（＝ｌｏｇＮ＋１−１）だけ削減できる。
従来のＢａｓｉｃ＿ＬＳＤ方式では受信装置ｕｍが保持するラベルデータの総数はｌｏｇ３／２Ｎ＋１であるが、本実施形態では、上述のように、受信装置ｕｍａが保持するラベルデータの数を、ｌｏｇ３／２Ｎ−ｌｏｇＮ＋１に削減できる。
【００７８】
第３実施形態
本実施形態の管理装置２ｂおよび受信装置ｕｍｂは、以下に示す処理以外は、第１および第２実施形態の管理装置２，２ａおよび受信装置ｕｍ，ｕｍａと同じである。
本実施形態では、Ｇｅｎｅｒａｌ＿ＬＳＤに本発明を適用した場合を説明する。
上述した従来のＢａｓｉｃ＿ＬＳＤ方式では，１種類の特別レイヤを用いたが、本実施形態では、Ｇｅｎｅｒａｌ＿ＬＳＤと同様に、重要度の異なる複数の特別レベルを用いる。
すなわち、前述したように受信装置ｕｍｂをリーフに対応付けたツリー２０において、ルートからノード（ｉ）を経てノード（ｊ）に至るパスを１本のグラフとして考える。
ツリー２０のルートとノード（ｊ）が端点となり，ツリー２０のノードがグラフのノードとなり，端点以外のノードのひとつがノード（ｊ）となっている。このグラフでは，各ノードはルートからの距離で表される。この距離は，ｄ桁のｂ進数（ただしｂ＝Ｏ（ｌｏｇ１／ｄＮ）で表される。
たとえば，ルートは「０．．．００」と表され，その隣のノード（ツリー２０において、ルートの子ノードであるノード）は「０．．．０１」と表される。
【００７９】
この場合に、第１実施形態で規定した集合Ｓ（ｉ，ｊ）は、規定された変換（ノードからノードへの遷移）を組み合わせることで、ノード（ｉ）からノード（ｊ）への最終的な遷移であると考える。
上記規定された変換は上記集合に対応し、最終的な遷移に要する個々の遷移が、集合Ｓ（ｉ，ｊ）を分割して表すのに必要な集合を示す。
【００８０】
例えば、ノード（ｉ），（ｋ１），（ｋ２），（ｋ（ｄ−１）），（ｊ）がこの順で、ツリー２０のパス上に存在する場合に、集合Ｓ（ｉ，ｊ）は、本実施形態では、下記式（６）に示すように、高々ｄ個の集合の和集合で表される。
【００８１】
【数６】
Ｓ（ｉ，ｊ）＝Ｓ（ｉ，ｋ１）∪Ｓ（ｋ１，ｋ２）∪．．．∪Ｓ（ｋ（ｄ−１，ｊ）                                              …（６）
【００８２】
本実施形態では、ノード（ｉ）が上記のグラフにおいて、（ｘ）ａ（０）と表されるとき、（ｘ＋１）０（ベクトル０）あるいは（ｘ）ａ’（ｙ）で表されるノード（ｊ）への遷移を全て規定する。
ここで、ａは非ゼロの数字のうち１番右にある数字、（ｘ）は任意の数字列、（０）はゼロの列、ａ’≧ａ、（ｙ）は（０）と同じ長さの任意の数字列である。
【００８３】
すなわち、第２実施形態は、当該第３実施形態においてｄ＝２、（一番右の）最終桁が０である２桁の数字で表されるレベルを特別レベルとしたものである。
本実施形態では、ノード（ｉ）を表す数字における一番右のゼロの列の桁数が、そのレベルの重要度を表し、本実施形態で定義される集合Ｓ（ｉ，ｊ）を表すノード（ｊ）は、ノード（ｉ＋１）からノード（ｉ）よりも重要度の高い最初のノードまでのいずれのノード（両端のノードを含む）にもなる可能性がある。
例えば、ｉ＝８２５１９７，ｊ＝８６４５６３とすると、ノード（ｉ）からノード（ｊ）への遷移、すなわち集合Ｓ（ｉ，ｊ）は、「８２５９１７→８２５９２０→８２６０００→８３００００→８６４５６３」という上述した４つの遷移によって表すことができる。
すなわち、ｋ１＝８２５９２０，ｋ２＝８２６０００，ｋ３＝８３００００とおけば、下記式（７）が成り立つ。
【００８４】
【数７】
Ｓ（ｉ，ｊ）＝Ｓ（ｉ，ｋ１）∪Ｓ（ｋ１，ｋ２）∪Ｓ（ｋ２，ｋ３）∪Ｓ（ｋ３，ｊ）                                          …（７）
【００８５】
本実施形態では、管理装置２ｂは、サブセットＳ（ｉ，ｊ）の要素となる受信装置ｕｍｂに復号させる暗号データとして、集合Ｓ（ｉ，ｋ１），Ｓ（ｋ１，ｋ２），Ｓ（ｋ２，ｋ３），Ｓ（ｋ３，ｊ）に対応するラベルデータＬＡＢＥＬから生成した鍵データを用いて暗号化した４つの暗号データを生成および送信する。
【００８６】
本実施形態によれば、受信装置ｕｍｂが保持すべきラベルデータの数は、パラメータｄが大きくなるに従って減少し、最終的には下記式（８）となる。
このとき，送信すべき暗号データの数は、ｄ（２ｒ−１）となる。ここで、ｒはリボークする受信装置の数を示している。
【００８７】
【数８】
2005005806.tif 000004
【００８８】
従来のＧｅｎｅｒａｌ＿ＬＳＤでは，受信装置ｕｍｂは、受信装置ｕｍｂが復号に使用するラベルデータＬＡＢＥＬのうち、ノード（ｉ），（ｊ）が親子関係になっている集合Ｓ（ｉ，ｊ）に対応するラベルデータＬＡＢＡＬ（ｉ，ｊ）を全てセキュアな状態で保持する。
これは、ノード（ｉ）としてどんな値をとっても，その子ノード（ｊ）、すなわちノード（ｉ＋１）への遷移は，上述した遷移の条件に当てはまるためである。
すなわち、受信装置ｕｍについて、当該受信装置ｕｍが利用するラベルデータのうちノード（ｉ），（ｊ）が親子関係になっているものはｌｏｇＮ個ある。
本実施形態では，受信装置ｕｍｂは、これらｌｏｇＮ個の第１の特別なラベルデータと１個の第２の特別なラベルデータを、第１実施形態と同様に、一方向置換を基に、１つの中間ラベルデータから作り出す．受信装置ｕｍｂが当該中間ラベルデータを保持することで、受信装置ｕｍｂが保持するラベルデータを、従来のＧｅｎｅｒａｌ＿ＬＳＤに比べてｌｏｇＮ個削減できる。
【００８９】
本発明は上述した実施形態には限定されない。
上述した実施形態では、２分木を基に構成されたツリーのリーフに受信装置ｕｍを対応付けた場合を例示したが、３分木以上の木を少なくとも一つ含むツリーのフーフに受信装置ｕｍを対応付けた場合にも本発明は同様に適用可能である。
【００９０】
【発明の効果】
以上説明したように、本発明によれば、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置を提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明の第１実施形態に係わる通信システムの全体構成図である。
【図２】図２は、図１に示す管理装置のハードウェア構成図である。
【図３】図３は、図１に示す管理装置のリボケーション処理に先立って行う前処理を説明するためのフローチャートである。
【図４】図４は、図１に示す管理装置が前処理等に使用するツリーを説明するための図である。
【図５】図５は、図１に示す管理装置による中間ラベルデータの生成処理を説明するための図である。
【図６】図６は、本発明の第１実施形態におけるラベルデータの生成方法を説明するための図である。
【図７】図７は、本発明の第１実施形態におけるラベルデータの生成方法を説明するための図である。
【図８】図８は、図１に示す受信装置に前処理で提供するラベルデータおよび中間ラベルデータを説明するための図である。
【図９】図９は、図１に示す管理装置によるリボケーション処理を説明するための図である。
【図１０】図１０は、図１に示す管理装置によるリボケーション処理を説明するためのフローチャートである。
【図１１】図１１は、図１に示す管理装置によるリボケーション処理を行う際に選択する集合を説明するための図である。
【図１２】図１２は、図１に示す受信装置のハードウェア構成図である。
【図１３】図１３は、図１に示す受信装置の全体動作を説明するためのフローチャートである。
【図１４】図１４は、図１３に示すステップＳＴ３３の処理を説明するためのフローチャートである。
【図１５】図１５は、図１に示す受信装置における中間ラベルデータの生成方法を説明するための図である。
【図１６】図１６は、本発明の第１実施形態に係わる通信システムのリボケーション処理の前処理を説明するための図である。
【図１７】図１７は、本発明の第２実施形態の通信システムを説明するための図である。
【図１８】図１８は、本発明の第２実施形態の通信システムを説明するための図である。
【符号の説明】
２…管理装置、ｕ１〜ｕ１６…受信装置、１１…通信部、１２…メモリ、１３…処理部、５１…通信部、５２…メモリ、５３…処理部
【図１】
2005005806.tif 000005
【図２】
2005005806.tif 000006
【図３】
2005005806.tif 000007
【図４】
2005005806.tif 000008
【図５】
2005005806.tif 000009
【図６】
2005005806.tif 000010
【図７】
2005005806.tif 000011
【図８】
2005005806.tif 000012
【図９】
2005005806.tif 000013
【図１０】
2005005806.tif 000014
【図１１】
2005005806.tif 000015
【図１２】
2005005806.tif 000016
【図１３】
2005005806.tif 000017
【図１４】
2005005806.tif 000018
【図１５】
2005005806.tif 000019
【図１６】
2005005806.tif 000020
【図１７】
2005005806.tif 000021
【図１８】
2005005806.tif 000022