(57)【特許請求の範囲】
【請求項１】
木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、
前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部と、
を備え、
前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第１識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第２識別子をさらに含むように前記識別子を設定し、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定部をさらに備え、
前記鍵設定部は、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定し、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、
各前記部分集合間の経路長が短くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部と、
をさらに備え、
前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第２識別子を設定することを特徴とする、情報処理装置。
【請求項２】
木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、
前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部と、
を備え、
前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第１識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第２識別子をさらに含むように前記識別子を設定し、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定部をさらに備え、
前記鍵設定部は、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定し、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、
各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された経路情報を変更した上で、その変更した経路情報に含まれる最長の経路長よりも経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更部と、
をさらに備え、
前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第２識別子を設定することを特徴とする、情報処理装置。
【請求項３】
複数の端末装置が含まれる鍵配信システムにおける鍵設定方法であって、
木構造の各ノードに対応する端末装置の集合に識別子が設定される識別子設定ステップと、
前記識別子に基づいて前記端末装置に配信される鍵が設定される鍵設定ステップと、
を含み、
前記識別子設定ステップでは、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子がさらに含まれるように前記識別子が設定され、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定ステップをさらに含み、
前記鍵設定ステップでは、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵が設定され、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得ステップと、
各前記部分集合間の経路長が短くなるように前記経路情報取得ステップにおいて取得された前記経路情報を変更する経路情報変更ステップと、
をさらに含み、
前記識別子設定ステップでは、前記経路情報変更ステップにおいて変更された経路情報に基づいて前記第２識別子が設定されることを特徴とする、鍵設定方法。
【請求項４】
複数の端末装置が含まれる鍵配信システムにおける鍵設定方法であって、
木構造の各ノードに対応する端末装置の集合に識別子が設定される識別子設定ステップと、
前記識別子に基づいて前記端末装置に配信される鍵が設定される鍵設定ステップと、
を含み、
前記識別子設定ステップでは、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子がさらに含まれるように前記識別子が設定され、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定ステップをさらに含み、
前記鍵設定ステップでは、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵が設定され、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得ステップと、
各前記部分集合間の経路長が長くなるように前記経路情報取得ステップにおいて取得された経路情報を変更した上で、その変更した経路情報に含まれる最長の経路長よりも経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更ステップと、
をさらに含み、
前記識別子設定ステップでは、前記経路情報変更ステップにおいて変更された経路情報に基づいて前記第２識別子が設定されることを特徴とする、鍵設定方法。
【請求項５】
複数の端末装置が含まれる鍵配信システムにおける鍵設定方法をコンピュータに実現させるためのプログラムであって、
コンピュータに、
木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定機能、
前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定機能、
を実現させ、
前記識別子設定機能は、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、また、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子がさらに含まれるように前記識別子を設定し、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定機能をさらに実現させ、
前記鍵設定機能は、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定し、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得機能、
各前記部分集合間の経路長が短くなるように前記経路情報取得機能により取得された前記経路情報を変更する経路情報変更機能、
をさらに実現させ、
前記識別子設定機能は、前記経路情報変更機能により変更された経路情報に基づいて前記第２識別子を設定する、プログラム。
【請求項６】
複数の端末装置が含まれる鍵配信システムにおける鍵設定方法をコンピュータに実現させるためのプログラムであって、
コンピュータに、
木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定機能、
前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定機能、
を実現させ、
前記識別子設定機能は、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、また、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子がさらに含まれるように前記識別子を設定し、
所定の乗法群の情報と、当該乗法群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定機能をさらに実現させ、
前記鍵設定機能は、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定し、
所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得機能、
各前記部分集合間の経路長が長くなるように前記経路情報取得機能により取得された経路情報を変更した上で、その変更した経路情報に含まれる最長の経路長よりも経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更機能、
をさらに実現させ、
前記識別子設定機能は、前記経路情報変更機能により変更された経路情報に基づいて前記第２識別子を設定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、鍵設定方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下、ＰＣ）、携帯電話、及びデジタル家電等の情報機器が広く普及すると共に、これらの情報機器間の通信に関する技術が大きく発達してきている。また、広帯域のネットワーク等を利用し、これらの情報機器に対して音楽や映像等のコンテンツを配信するコンテンツ配信サービスが広く展開されている。例えば、ＣＡＴＶ（Ｃｏｍｍｕｎｉｔｙ  Ａｎｔｅｎｎａ  ＴｅｌｅＶｉｓｉｏｎ）、衛星放送、或いは、インターネット等を利用した有料放送、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）又はＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等物理メディアを利用したコンテンツ販売等がコンテンツ配信サービスとして展開されている。
【０００３】
こうしたコンテンツ配信サービスが提供される際、提供者（以下、システム管理者）と視聴者との間では、予め視聴契約が締結される。そして、この視聴契約に基づき、その契約者のみがコンテンツを取得できるようにする必要がある。そのため、例えば、システム管理者は、コンテンツを暗号化して配信し、このコンテンツを復号するための鍵を契約者に対して提供する。これにより、視聴契約を締結した視聴者のみがコンテンツを復号して視聴できるようになる。
【０００４】
このようなコンテンツ配信方式の一例として、ブロードキャスト・エンクリプション（Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ）方式と呼ばれる技術が知られている。このブロードキャスト・エンクリプション方式とは、各契約者を所定の集合の要素に対応付けた上で、契約者全体を表す契約者集合を複数の部分集合に分割し、特定の部分集合に属する契約者のみがコンテンツ鍵ｍｅｋを取得できるようなヘッダｈを配信する方式である。この方式を用いると、コンテンツを視聴可能な契約者の中から特定の契約者をシステム管理者が指定して排除することができるようになる（例えば、下記の非特許文献１を参照）。
【０００５】
【非特許文献１】Ｎｕｔｔａｐｏｎｇ  Ａｔｔｒａｐａｄｕｎｇ  ａｎｄ  Ｈｉｄｅｋｉ  Ｉｍａｉ，“Ｓｕｂｓｅｔ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｃｈａｉｎ  Ｂａｓｅｄ  Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｓｈｏｒｔｅｒ  Ｃｉｐｈｅｒｔｅｘｔ”，Ｔｈｅ  ２８ｔｈ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＳＩＴＡ２００５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
また、本件出願人は、上記の非特許文献１に記載のコンテンツ配信方式（以下、ＡＩ方式）よりも、各端末装置が鍵を保持するために要求されるメモリ量を低減することが可能な第１の改良方式（以下、ＲＳ方式）、各端末装置がコンテンツ鍵を生成するために要求される計算量を低減することが可能な第２の改良方式（以下、ＲＣ方式）、及び上記のメモリ量と計算量とを低減させることが可能な第３の改良方式（以下、ＲＣＳ方式）を開発し、既に日本国特許庁に特許出願している（ＲＳ方式：特願２００６−３１０１８２、ＲＣ方式：特願２００６−３１０２１３、ＲＣＳ方式：特願２００６−３１０２２６）。ところが、これらの方式に代表されるブロードキャスト・エンクリプション方式は、送信者と各契約者が共通鍵を共有する共通鍵方式の暗号化技術であるため、送信者が各契約者の秘密鍵を知る必要がない公開鍵方式で暗号化されたコンテンツを配信したい場合に適用することが難しいという問題点を抱えていた。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式の鍵配信を実現することが可能な、新規かつ改良された情報処理装置、鍵設定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部とを備える情報処理装置が提供される。また、前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第１識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第２識別子を更に含むように前記識別子を設定することを特徴とする。
【０００９】
また、前記情報処理装置は、所定の乗法群の情報と、当該情報群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定部をさらに備えていてもよい。そして、前記鍵設定部は、前記公開情報を含む所定のパラメータに基づいて前記第１識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定してもよい。
【００１０】
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部をさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報取得部により取得された経路情報に基づいて前記第２識別子を設定してもよい。
【００１１】
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第２識別子を設定してもよい。
【００１２】
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された経路情報を変更した上で、その変更した経路情報に含まれる比較的経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第２識別子を設定してもよい。
【００１３】
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が短くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第２識別子を設定してもよい。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、複数の端末装置が含まれる鍵配信システムにおける鍵設定方法が提供される。当該鍵設定方法は、木構造の各ノードに対応する端末装置の集合に識別子が設定される識別子設定ステップと、前記識別子に基づいて前記端末装置に配信される鍵が設定される鍵設定ステップとを含む。そして、前記識別子設定ステップでは、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子が更に含まれるように前記識別子が設定されることを特徴とする。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、複数の端末装置が含まれる鍵配信システムにおける鍵設定方法をコンピュータに実現させるためのプログラムが提供される。当該プログラムは、木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定機能と、前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定機能とを有し、前記識別子設定機能は、前記各ノードに対応する端末装置の集合を示す第１識別子が含まれ、また、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第２識別子が更に含まれるように前記識別子を設定する機能をコンピュータに実現させるためのプログラムである。
【００１６】
上記の装置、方法、及びプログラムを適用すると、ブロードキャスト・エンクリプション方式の鍵配信技術を公開鍵暗号方式に拡張することが可能になり、暗号化ファイルの共有化等、ブロードキャスト・エンクリプション方式の応用範囲を拡張できると同時に、ユーザの利便性を大きく向上させることができる。また、部分集合間の対応関係を規定する経路情報の選び方又は生成方法を工夫することで、各端末装置が保持すべき鍵数、鍵生成に要する演算量、或いは、鍵配信に要する通信量等を低減させることもできる。
【発明の効果】
【００１７】
以上説明したように本発明によれば、公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式の鍵配信を実現することが可能になる。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
［基盤技術の概要］
本発明の好適な実施形態について詳細に説明するに先立ち、以下で詳細に説明する実施形態に係る技術を適用することが可能なＡＩ方式、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式について簡単に説明する。もちろん、当該技術の適用範囲は、これに限定されず、現在又は未来において実現される多様なブロードキャスト・エンクリプション方式に適用可能である。
【００２０】
（ＡＩ方式の概要）
ブロードキャスト・エンクリプション方式の一例として、ＡＩ方式について簡単に説明する。ＡＩ方式の鍵配信システムは、例えば、鍵配信サーバと、複数の端末装置とにより構成される。
【００２１】
ＡＩ方式では、鍵配信システムに含まれる各端末装置を集合の要素に対応付けて端末装置全体の集合を考える。そして、当該集合を分割して得られる複数の部分集合を利用して鍵配信を実行する。まず、鍵配信サーバは、論理二分木（ＢＴ；Ｂｉｎａｒｙ  Ｔｒｅｅ）を形成して各端末装置を葉ノードに対応付ける。次いで、鍵配信サーバは、その部分集合を要素とする集合を所定の規則に則って生成する。さらに、鍵配信サーバは、生成した各集合をＢＴの根ノード、及び各中間ノードに対応付ける。そして、鍵配信サーバは、上記の集合に含まれる複数の部分集合を所定のアルゴリズムに従って対応付ける。尚、ここでは詳細な説明を省略するが、論理二分木に代えて任意の木構造を採用することも可能である。
【００２２】
このとき、各部分集合間の対応関係は、その対応関係に方向性を持たせた有向枝と呼ばれる対応情報により表現される。さらに、上記の集合は、この有向枝を連結して形成される有向グラフにより表現される。例えば、有向グラフは、水平座標軸上の各座標点を結ぶ有向枝の連結鎖として表現される。このとき、水平座標軸上の各座標点には、その有向グラフに対応する一の集合に含まれた各部分集合が対応付けられる。また、有向枝は、例えば、座標点間を結ぶ曲線又は屈折線等の連結線により表現できる。このような表現を用いると、鍵配信サーバは、上記のＢＴに含まれる根ノード、及び各中間ノードに対応する上記の各集合に対し、それぞれ有向グラフを構築して各集合の要素である部分集合間の関係を設定することができる。尚、後段において、具体例を挙げて説明する。
【００２３】
上記のグラフ生成処理が完了すると、鍵配信サーバは、各端末装置に配信する鍵を生成する。まず、鍵配信サーバは、配信先の端末装置が要素として含まれる部分集合を選択し、当該部分集合が含まれる有向グラフを特定する。次いで、鍵配信サーバは、特定された有向グラフに基づき、擬似乱数生成器（ＰＲＳＧ；Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｓｅｑｕｅｎｃｅ  Ｇｅｎｅｒａｔｏｒ）を繰り返し用いて配信先の端末装置に配信する鍵を生成する。尚、後述する実施形態において、ＰＲＳＧを使用せずに鍵を設定する技術についても説明する。このＡＩ方式は、通信量、端末装置が保持すべき鍵数、鍵生成に要する計算量が比較的低いブロードキャスト・エンクリプション方式である。
【００２４】
しかしながら、ＡＩ方式の鍵配信システムは、鍵配信サーバが鍵（共通鍵）を生成して配信するように構成されているため、公開鍵暗号方式の鍵配信システムとして運用することが困難である。こうした事情を踏まえ、本件出願人は、後述する実施形態の一つとして、ＡＩ方式の鍵配信システムを公開鍵暗号方式に拡張する技術を開示する。
【００２５】
（ＲＳ、ＲＣ、ＲＣＳ方式の概要）
ブロードキャスト・エンクリプション方式の他の例として、上記のＡＩ方式を改良したＲＳ方式、ＲＣ方式、ＲＣＳ方式について簡単に説明する。ＲＳ方式、ＲＣ方式、及びＲＣＳ方式の鍵配信システムは、上記のＡＩ方式の鍵配信システムと同様に、例えば、鍵配信サーバと、複数の端末装置とにより構成される。
【００２６】
ＲＳ方式は、有向グラフを構成する有向枝の長さを短くする処理を加えることにより、上記のＡＩ方式よりも各端末装置が保持すべき鍵数を低減させる改良が施された改良方式である。また、ＲＣ方式は、有向枝の長さが長くなるように有向グラフを形成することにより、上記のＡＩ方式よりも鍵生成に要する計算量を低減させる改良が施された改良方式である。そして、ＲＣＳ方式は、ＲＣ方式と同様にして有向枝の長い有向グラフを形成した後、ＲＳ方式と同様に所定の有向枝を短い有向枝に置換することにより、上記のＡＩ方式よりも各端末装置が保持すべき鍵数、及び鍵生成に要する計算量を低減させる改良が施された改良方式である。
【００２７】
しかしながら、ＡＩ方式と同様に、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式の鍵配信システムは、鍵配信サーバが鍵（共通鍵）を生成して配信するように構成されているため、公開鍵暗号方式のシステムとして運用することが困難である。こうした事情を踏まえ、本件出願人は、後述する実施形態として、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式の鍵配信システムを公開鍵暗号方式に拡張する技術を開示する。但し、当該技術は、その基盤となるブロードキャスト・エンクリプション方式の特性を継承するため、ＡＩ方式を基盤とするよりも、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式を適用する方が通信量、端末装置が保持すべき鍵数、及び鍵生成に要する計算量等の面で良好な特性が得られる。
【００２８】
尚、当該技術は、技術的思想の本質的な部分が共通しており、ＡＩ方式、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式のみならず、他のブロードキャスト・エンクリプション方式にも適用範囲を拡張することができる。つまり、本発明に係る技術的範囲は、当然に、ＡＩ方式、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式の公開鍵暗号方式化に限定されるものではない。
【００２９】
（解決手段の概要）
以下で説明する実施形態に係る技術は、上記のＡＩ方式、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式等のブロードキャスト・エンクリプション方式に階層化ＩＤベース暗号化方式（以下、ＨＩＢＥ方式）の要素を加え、ＡＩ方式、ＲＳ方式、ＲＣ方式、及びＲＣＳ方式等を公開鍵暗号方式に拡張する手段を提供するものである。ＨＩＢＥ方式に係る技術は、例えば、“Ｈｉｅｒａｒｃｈｉｃａｌ  Ｉｄｅｎｔｉｔｙ  Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｃｏｎｓｔａｎｔ  Ｓｉｚｅ  Ｃｉｐｈｅｒｔｅｘｔ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｅｕｒｏｃｒｙｐｔ  ２００５，  ｖｏｌｕｍｅ  ３４９４  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｐａｇｅｓ  ４４０−４５６，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，２００５等に開示されている。
【００３０】
ＨＩＢＥ方式は、所謂、ＩＤベース暗号化方式を拡張したものであり、鍵の配信者（センタ）を階層化できるようにした技術である。ＨＩＢＥ方式では、木構造の各ノードに端末装置（ユーザ）の識別子（ＩＤ）が対応付けられており、その識別子に対応する鍵が、その端末装置の親ノードに対応する端末装置により生成される。従って、上記のＡＩ方式等とは異なり、木構造のルート以外のノードに対応するユーザによって鍵の生成が可能である。
【００３１】
ＨＩＢＥ方式のように、ルート以外のユーザが鍵を生成して配信できるようになると、例えば、暗号化ファイルの共有化を利用したアプリケーションへの応用が可能になる。つまり、あるユーザは、暗号化対象のファイルを作成し、あるグループ内だけで閲覧又は編集を許可することができるようになる。
【００３２】
例えば、次のようなケースを考える。「まず、配信元のユーザは、暗号化対象のファイルを所定のブロードキャスト・エンクリプション方式に基づいて暗号化し、そのグループ内のユーザに同報送信する。そして、ファイルを受信したグループ内のユーザは、そのファイルを復号し、編集した上で再度暗号化してグループ内の他のユーザに同報送信する。」
【００３３】
こうしたケースにおいて、ＡＩ方式等の共通鍵方式のブロードキャスト・エンクリプション方式が適用される場合、十分なセキュリティを確保するためには、ファイルを編集して再送信するユーザの信頼性が十分に高いことが条件になる。しかしながら、ファイルの配信先となるユーザの信頼性を保証することは現実的に難しい場合が多い。そこで、ブロードキャスト・エンクリプション方式を公開鍵暗号方式に拡張するための技術が求められるのである。この技術に係る鍵配信サーバは、公開鍵と秘密鍵とを設定し、各端末装置（ユーザ）に秘密鍵を配信すると共に公開鍵を公開する。従って、各ユーザは、公開鍵を用いてファイルを暗号化し、自由に送信することが可能になる。以下、この技術について具体的に説明する。
【００３４】
＜第１実施形態＞
以下、本発明の第１実施形態に係る鍵配信システムのシステム構成、及び鍵配信に係る具体的な手段について詳細に説明する。本実施形態は、ＡＩ方式を公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式による鍵配信技術に関する。そこで、ＡＩ方式に係る鍵配信システム１００について説明する。
【００３５】
［ＡＩ方式に係る鍵配信システム１００の構成］
まず、図１を参照しながら、ＡＩ方式に係る鍵配信システム１００のシステム構成について説明する。図１は、ＡＩ方式に係る鍵配信システム１００のシステム構成を示す説明図である。
【００３６】
図１を参照すると、鍵配信システム１００は、主に、鍵配信サーバ１０２と、端末装置１２２と、ネットワーク１０とにより構成される。尚、鍵配信サーバ１０２は、情報処理装置の一例である。
【００３７】
（ネットワーク１０）
まず、ネットワーク１０について説明する。ネットワーク１０は、鍵配信サーバ１０２と端末装置１２２とを双方向通信又は一方向通信可能に接続する通信回線網である。ネットワーク１０は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、ワイヤレスＬＡＮ等の専用回線網により構成されており有線／無線を問わない。
【００３８】
（鍵配信サーバ１０２）
次に、鍵配信サーバ１０２について簡単に説明する。鍵配信サーバ１０２は、種々の電子データを暗号化して配信する手段である。鍵配信サーバ１０２は、例えば、コンテンツを暗号化して配信することができる。このとき、鍵配信サーバ１０２は、コンテンツを暗号化又は復号するためのコンテンツ鍵を用いる。さらに、鍵配信サーバ１０２は、所定の端末装置１２２に対してコンテンツ鍵を暗号化して配信することができる。このとき、鍵配信サーバ１０２は、所定の端末装置１２２だけがコンテンツ鍵を復号できるように、所定のアルゴリズムに従って生成された鍵を利用してコンテンツ鍵を暗号化する。そのため、コンテンツの再生を許諾していない端末装置１２２がコンテンツ鍵を取得したとしても、そのコンテンツ鍵を復号することができない。なお、コンテンツ鍵は、暗号化／復号の両対応であってもよいし、復号専用であってもよい。
【００３９】
上記の技術を実現するため、鍵配信サーバ１０２は、コンテンツ鍵の暗号化又は復号に用いるセット鍵を生成する。このとき、鍵配信サーバ１０２は、鍵配信システム１００に含まれる端末装置１２２を複数のグループに分け、グループ毎にセット鍵を生成する。但し、鍵配信サーバ１０２は、ある集合の部分集合により各グループを表現し、その部分集合間の関係（有向枝、及び有向グラフ）に基づいてセット鍵を生成する。鍵配信サーバ１０２は、有向グラフを他の装置から取得しておいてもよいし、或いは、所定のアルゴリズムに基づいて生成しておいてもよい。
【００４０】
また、鍵配信サーバ１０２は、所定のセット鍵によりコンテンツ鍵を暗号化する。このとき、鍵配信サーバ１０２は、コンテンツの再生を許諾するユーザの端末装置１２２を要素に含む１以上の部分集合を選択し、その部分集合に対応するセット鍵を利用してコンテンツ鍵を暗号化する。そして、鍵配信サーバ１０２は、暗号化されたコンテンツと、暗号化されたコンテンツ鍵と、選択された部分集合の情報とを鍵配信システム１００に含まれる端末装置１２２に配信する。尚、端末装置１２２は、自身が所属する全ての部分集合について、各部分集合に対応するセット鍵の生成に必要な１以上の鍵（セット鍵又は中間鍵）が提供されている。また、鍵配信サーバ１０２は、そのセット鍵の生成に必要な有向グラフの一部又は全部に関する情報を予め各端末装置１２２に通知しておいてもよい。
【００４１】
尚、鍵配信サーバ１０２は、セット鍵を生成する際に擬似乱数生成器（ＰＲＳＧ）を利用する。このＰＲＳＧは、所定のシード値を入力することにより長周期の擬似的な乱数列を出力することが可能な装置又はプログラムである。その擬似乱数生成ロジックは、例えば、線形合同法やメルセンヌ・ツイスター法等を用いて実現されるものである。もちろん、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、所定の特殊な擬似乱数列を利用することも可能である。また、鍵配信サーバ１０２は、サーバ機能を備えたパーソナルコンピュータ（ＰＣ；Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置により構成することが可能である。例えば、鍵配信サーバ１０２は、ネットワーク１０を介して各種の情報を外部装置に送信することが可能である。そして、鍵配信サーバ１０２は、複数の端末装置１２２にネットワーク１０を介してコンテンツやコンテンツ鍵を配信することが可能である。
【００４２】
また、鍵配信サーバ１０２は、例えば、映像配信サービス、又は電子音楽配信サービス等のコンテンツ配信サービスを提供する機能を有していてもよい。例えば、鍵配信サーバ１０２は、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画から成る映像（Ｖｉｄｅｏ）コンテンツ、音楽、講演、ラジオ番組等の音声（Ａｕｄｉｏ）コンテンツ、ゲームコンテンツ、文書コンテンツ、又はソフトウェア等のコンテンツを配信することが可能である。但し、鍵配信サーバ１０２は、暗号化されたコンテンツに代えて、暗号化されたコンテンツ鍵を配信してもよい。例えば、外部装置により暗号化されたコンテンツが配信される場合に、鍵配信サーバ１０２は、コンテンツ鍵を暗号化して配信することで、コンテンツの管理と許諾契約者の管理とを分担することができる。
【００４３】
上記の技術を適用すると、鍵配信サーバ１０２は、所定の端末装置１２２だけにコンテンツの再生を許諾することができる。さらに、鍵配信サーバ１０２は、セット鍵の組合せを変更することにより、許諾した端末装置１２２の組合せを容易に変更することができる。
【００４４】
（端末装置１２２）
次に、端末装置１２２が有する機能について簡単に説明する。端末装置１２２は、ネットワーク１０を介して鍵配信サーバ１０２から種々の情報を取得する。例えば、端末装置１２２は、暗号化されたコンテンツ及びコンテンツ鍵を取得する。また、端末装置１２２は、鍵配信サーバ１０２から提供される部分集合の情報を取得する。さらに、端末装置１２２は、自己が所属する部分集合のセット鍵を生成するのに必要な鍵と、そのセット鍵を生成するための有向グラフの情報とを保持していてもよい。尚、端末装置１２２は、その有向グラフを生成するためのアルゴリズムを保持していてもよい。端末装置１２２は、保持している有向グラフの情報、又は生成した有向グラフの情報に基づき、保持している鍵から所望のセット鍵を生成する。このとき、端末装置１２２は、擬似乱数生成器（ＰＲＳＧ）を利用してセット鍵を生成する。端末装置１２２は、生成したセット鍵を用いてコンテンツ鍵を復号し、その復号したコンテンツ鍵を用いてコンテンツを復号する。
【００４５】
尚、上記の端末装置１２２は、ネットワーク１０を介して外部装置と通信することが可能な情報処理端末であり、例えば、ＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、ＤＶＤ／ＨＤＤレコーダ、又はテレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダ、或いは、携帯型ゲーム機、携帯電話、携帯型映像／音声プレーヤ、ＰＤＡ、又はＰＨＳ等であってもよい。
【００４６】
［鍵配信サーバ１０２及び端末装置１２２のハードウェア構成］
次に、図２を参照しながら、上記の鍵配信サーバ１０２及び端末装置１２２のハードウェア構成例について説明する。図２は、上記の鍵配信サーバ１０２、又は端末装置１２２の機能を実現することが可能なハードウェア構成例を示す説明図である。
【００４７】
図２に示すように、鍵配信サーバ１０２、又は端末装置１２２は、主に、コントローラ７０２と、演算ユニット７０４と、入出力インターフェース７０６と、セキュア記憶部７０８と、メイン記憶部７１０と、ネットワークインターフェース７１２と、メディアインターフェース７１６とにより構成される。
【００４８】
（コントローラ７０２）
コントローラ７０２は、バスを介して他の構成要素に接続されており、例えば、メイン記憶部７１０に格納されたプログラム及びデータに基づいて各部を制御する機能を実現する。コントローラ７０２は、中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理装置により構成することが可能である。
【００４９】
（演算ユニット７０４）
鍵配信サーバ１０２が備える演算ユニット７０４は、例えば、コンテンツの暗号化／復号、コンテンツ鍵の暗号化／復号、有向グラフの生成、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の生成を実現することが可能である。また、演算ユニット７０４は、上記の擬似乱数生成器（ＰＲＳＧ）の機能を実現することが可能である。
【００５０】
演算ユニット７０４は、例えば、中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理装置により構成されており、メイン記憶部７１０に格納されたプログラム及びデータに基づいて上記の各機能を実現することが可能である。例えば、演算ユニット７０４は、メイン記憶部７１０に記録されているプログラムに基づいて有向グラフを生成することができる。従って、有向グラフを生成するための所定のアルゴリズムは、例えば、メイン記憶部７１０、又はセキュア記憶部７０８等に記録されたプログラムにより表現されうる。また、演算ユニット７０４は、出力結果をメイン記憶部７１０又はセキュア記憶部７０８に記録することができる。なお、演算ユニット７０４は、上記のコントローラ７０２と一体に形成されていてもよい。
【００５１】
（入出力インターフェース７０６）
入出力インターフェース７０６は、主に、ユーザがデータを入力するための入力デバイスと、演算結果又はコンテンツの中身を出力する出力デバイスとに接続されている。例えば、入力デバイスは、キーボード、マウス、トラックボール、タッチペン、キーパッド、又はタッチパネル等であってもよい。これらの入力デバイスは、入出力インターフェース７０６に対して有線又は無線により接続されていてもよい。また、入力デバイスは、有線又は無線により接続された携帯電話やＰＤＡ等の携帯情報端末であってもよい。一方、出力デバイスは、例えば、ディスプレイ等の表示装置、又はスピーカ等の音声出力デバイス等であってもよい。そして、出力デバイスは、入出力インターフェース７０６に対して有線又は無線により接続されていてもよい。
【００５２】
なお、入出力インターフェース７０６は、バスを介して他の構成要素に接続されており、入出力インターフェース７０６を介して入力されたデータをメイン記憶部７１０等に伝達することが可能である。逆に、入出力インターフェース７０６は、メイン記憶部７１０等に格納されたデータ、ネットワークインターフェース７１２等を介して入力されたデータ、又は演算ユニット７０４から出力された演算結果等を出力デバイスに出力する。
【００５３】
（セキュア記憶部７０８）
セキュア記憶部７０８は、主に、コンテンツ鍵、セット鍵、及び中間鍵等の秘匿が必要なデータを安全に格納するための記憶装置である。セキュア記憶部７０８は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、セキュア記憶部７０８は、耐タンパ性を有していてもよい。
【００５４】
（メイン記憶部７１０）
メイン記憶部７１０は、例えば、コンテンツ又はコンテンツ鍵等を暗号化するための暗号化プログラム、暗号化されたコンテンツ又はコンテンツ鍵等を復号するための復号プログラム、又はセット鍵や中間鍵を生成するための鍵生成プログラム等が格納される。また、メイン記憶部７１０は、演算ユニット７０４から出力された計算結果を一時的又は永続的に格納したり、入出力インターフェース７０６、ネットワークインターフェース７１２、又はメディアインターフェース７１６等から入力されたデータを記録することができる。メイン記憶部７１０は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。
【００５５】
（ネットワークインターフェース７１２）
ネットワークインターフェース７１２は、ネットワーク１０を介して他の通信装置等に接続されており、例えば、暗号化されたコンテンツ又はコンテンツ鍵、セット鍵、中間鍵等、暗号化に用いるパラメータ、及びコンテンツの再生が許可された端末装置１２２の部分集合に関するデータを送受信するための通信部である。ネットワークインターフェース７１２は、バスを介して他の構成要素に接続されており、ネットワーク１０上にある外部装置から受信したデータを他の構成要素に伝達し、又は他の構成要素が有するデータをネットワーク１０上にある外部装置に送信することが可能である。
【００５６】
（メディアインターフェース７１６）
メディアインターフェース７１６は、情報メディア７１８を着脱してデータを読み書きするためのインターフェースであり、バスを介して他の構成要素に接続されている。このメディアインターフェース７１６は、例えば、装着された情報メディア７１８からデータを読み出して他の構成要素に伝達し、又は他の構成要素から供給されたデータを情報メディア７１８に書き込む機能を有する。情報メディア７１８は、例えば、光ディスク、磁気ディスク、半導体メモリ等の着脱可能な記憶媒体であってもよいし、或いは、ネットワーク１０を介さずに比較的近距離で有線又は無線接続された情報端末の記憶媒体等であってもよい。
【００５７】
以上、鍵配信サーバ１０２、及び端末装置１２２の機能を実現することが可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化した専用のハードウェアにより構成されていてもよい。また、利用形態に応じて、メディアインターフェース７１６、又は入出力インターフェース７０６等の一部の構成要素を省略することも可能である。
【００５８】
［鍵配信サーバ１０２の機能構成］
次に、図３を参照しながら、上記の鍵配信サーバ１０２の機能構成について説明する。図３は、上記の鍵配信サーバ１０２の機能構成を示す説明図である。
【００５９】
図３に示すように、鍵配信サーバ１０２は、主に、木構造設定部１０４と、座標軸設定部１０６と、有向グラフ生成部１１０と、初期中間鍵設定部１１２と、鍵生成部１１４と、暗号化部１１６と、通信部１１８と、部分集合決定部１２０とにより構成される。
【００６０】
また、木構造設定部１０４と、座標軸設定部１０６と、有向グラフ生成部１１０とを纏めて「鍵生成ロジック構築ブロック」と呼ぶことにする。そして、初期中間鍵設定部１１２と、鍵生成部１１４とを纏めて「鍵生成ブロック」と呼ぶことにする。尚、説明の都合上、木構造、座標軸、有向枝、有向グラフ、集合、部分集合等の表現を用いているが、本実施形態に係る技術的思想の根幹は、こうした表現形態に依存するものではない。従って、表現形態が異なるとしても、そうした変形例は本実施形態の技術的範囲に属する。
【００６１】
（木構造設定部１０４）
まず、木構造設定部１０４の機能構成について説明する。木構造設定部１０４は、図４に示す論理二分木ＢＴを生成する機能を有する。この論理二分木ＢＴは、次のような構築方法により木構造設定部１０４により形成される。尚、以下の説明の中で、契約者ｕの端末装置１２２のことを単に契約者ｕと表現することがある。また、以下のように数学的な表現を定義する。
【００６２】
（定義）
（１）全ての契約者（１，…，ｎ）を表す集合ＮをＮ＝｛１，…，ｎ｝と定義する。
（但し、ｎは２のべき乗）
（２）自然数ｉ及びｊに対して下記の表現を定義する。
［ｉ，ｊ］＝｛ｉ，ｉ＋１，…，ｊ｝（但し、ｉ＜ｊ）
［ｊ，ｉ］＝｛ｉ，ｉ−１，…，ｊ｝（但し、ｉ＜ｊ）
（ｉ→ｉ）＝（ｉ←ｉ）＝｛｛ｉ｝｝
（ｉ→ｊ）＝｛｛ｉ｝，｛ｉ，ｉ＋１｝，…，｛ｉ，ｉ＋１，…，ｊ｝｝
＝｛［ｉ，ｉ］，［ｉ，ｉ＋１］，…，［ｉ，ｊ］｝（但し、ｉ＜ｊ）
（ｉ←ｊ）＝｛｛ｊ｝，｛ｊ，ｊ−１｝，…，｛ｊ，ｊ−１，…，ｉ｝｝
＝｛［ｊ，ｊ］，［ｊ，ｊ−１］，…，［ｊ，ｉ］｝（但し、ｉ＜ｊ）
【００６３】
また、論理二分木ＢＴ上の末端に位置するノードを葉ノード、頂点に位置するノードを根ノード（ルート）、根ノードと葉ノードとの間に位置する各ノードを中間ノードと呼ぶことにする。さらに、各葉ノードは、各契約者１，…，ｎに対応付けられている。図４の例は、ＢＴの葉ノード数ｎがｎ＝６４の場合である。
【００６４】
（論理二分木の形成）
葉ノードの数がｎ（例えば、ｎ＝６４）の論理二分木ＢＴを形成する方法について考える。
【００６５】
まず、木構造設定部１０４は、各葉ノードに対し、左端から右方向に向かって番号１，…，ｎを対応付ける。次いで、木構造設定部１０４は、番号１，…，ｎの葉ノードを契約者１，…，ｎに対応付ける。次いで、木構造設定部１０４は、中間ノードｖに対応付ける部分集合を決定するための指標ｌｖ及びｒｖを定義する。但し、ｖは、論理二分木ＢＴに含まれる各中間ノードに対して所定の順番で付された番号であり、中間ノードの位置を表す指標である。次いで、木構造設定部１０４は、中間ノードｖから伸びたブランチの末端に位置する葉ノードの中で、最左にある葉ノードの番号をｌｖ、最右にある葉ノードの番号をｒｖと設定する。
【００６６】
次いで、木構造設定部１０４は、論理二分木ＢＴを構成する各中間ノードを２つの集合（ＢＴＬ、ＢＴＲ）に分類する。木構造設定部１０４は、論理二分木ＢＴ上に存在する中間ノードの中で、その親ノードの左側に位置する中間ノードの集合をＢＴＬと定義し、親ノードの右側に位置する中間ノードの集合をＢＴＲと定義する。但し、親ノードとは、ブランチで接続された２つのノードのうち上位に位置するノードを意味する。
【００６７】
次いで、木構造設定部１０４は、論理二分木ＢＴ上の根ノードに集合（１→ｎ）と集合（２←ｎ）とを対応付ける。集合（１→ｎ）と集合（２←ｎ）とに含まれる複数の部分集合を組み合わせることにより、根ノードの下位に存在する葉ノードの一部又は全部を表す集合が設定される。例えば、集合（１→ｎ）に含まれる部分集合｛１，…，ｕ−１｝と集合（２←ｎ）に含まれる部分集合｛ｎ，…，ｕ＋１｝との和集合により、葉ノードｕ（１≦ｕ≦ｎ）を除く全ての葉ノードが表現される。
【００６８】
図４の場合、論理二分木ＢＴ（ｎ＝６４）の根ノードには、集合（１→６４）と集合（２←６４）とが対応付けられる。集合（１→６４）は、部分集合［１，１］，…，［１，６４］を要素として含んでいる。例えば、全ての葉ノード１，…，６４が含まれる葉ノードのグループは、部分集合［１，６４］＝｛１，…，６４｝により表現される。また、葉ノード１６と葉ノード１７とを除く全ての葉ノードのグループは、部分集合［１，１５］と部分集合［６４，１８］とにより表現される。但し、部分集合［１，１５］は集合（１→６４）に含まれており、部分集合［６４，１８］は集合（２←６４）に含まれている。
【００６９】
次いで、木構造設定部１０４は、論理二分木ＢＴを構成する各中間ノードに部分集合を対応付ける。木構造設定部１０４は、集合ＢＴＬに属する中間ノードｖに対して集合（ｌｖ＋１←ｒｖ）を対応付ける。また、木構造設定部１０４は、集合ＢＴＲに属する中間ノードｖに対して集合（ｌｖ→ｒｖ−１）を対応付ける。
【００７０】
図４の場合、ｌｖ＝１，ｒｖ＝４に対応する中間ノードｖには、集合（２←４）が対応付けられている。そして、中間ノードｖの末端には、ｌｖ＝１，ｒｖ＝４であるため、葉ノード１，…，４が位置している。例えば、葉ノード１，２，４の組合せは、中間ノードｖの上位に位置する根ノードの集合（１→６４）に含まれる部分集合［１，２］＝｛１，２｝と、中間ノードｖの部分集合（２←４）に含まれる部分集合［４，４］＝｛４｝との組合せにより表現される。
【００７１】
上記の具体例からも推察される通り、論理二分木ＢＴの根ノード及び各中間ノードに対応付けられる集合の部分集合を組み合わせることで、葉ノードを自由にグループ化して表現することが可能になる。つまり、複数の契約者の中から所定の契約者のみが含まれるグループを部分集合の組合せにより表現することができる。以下、論理二分木ＢＴ上の各ノードに対応付けられた集合全体を表す和集合をセットシステムＳＳと呼ぶことにし、下式（１）のように定義する。
【００７２】
【数１】
0005286748.tif 000002
【００７３】
以上、本実施形態に係る木構造設定部１０４の機能構成について説明した。上記の通り、木構造設定部１０４は、論理二分木ＢＴ上の各ノードに所定の部分集合を対応付け、契約者のグループを当該部分集合の組合せにより表現する。次に、上記の各部分集合間の対応関係を規定する有向グラフの生成手段について説明する。
【００７４】
（座標軸設定部１０６）
次に、図５を参照しながら、座標軸設定部１０６の機能について説明する。座標軸設定部１０６は、有向グラフを形成するための複数の水平座標軸を設定する手段である。図５は、図４の論理二分木ＢＴに対応する有向グラフＨを示した説明図である。
【００７５】
まず、座標軸設定部１０６は、集合（１→ｎ−１）に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（１→ｎ−１）の水平座標軸を形成する。また、座標軸設定部１０６は、論理二分木ＢＴ上のｖ∈ＢＴＲである中間ノードｖについて、中間ノードｖに対応付けられた集合（ｌｖ→ｒｖ−１）に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の座標点に対応付け、集合（ｌｖ→ｒｖ−１）に対応する水平座標軸を形成する。同様に、座標軸設定部１０６は、ｖ∈ＢＴＲである全てのｖに対して集合（ｌｖ→ｒｖ−１）に対応する水平座標軸を形成する。
【００７６】
次いで、座標軸設定部１０６は、集合（２←ｎ）に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（２←ｎ）の水平座標軸を形成する。また、座標軸設定部１０６は、集合（ｌｖ＋１←ｒｖ）に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（ｌｖ＋１←ｒｖ）の水平座標軸を形成する。同様に、座標軸設定部１０６は、ｖ∈ＢＴＲである全てのｖに対して集合（ｌｖ＋１←ｒｖ）の水平座標軸を形成する。
【００７７】
例えば、集合（５→７）＝｛［５，５］，［５，６］，［５，７］｝の水平座標軸の各座標点に対し、左から順に部分集合［５，５］，［５，６］，［５，７］が対応付けられる。
【００７８】
次いで、座標軸設定部１０６は、集合（１→ｎ−１）の水平座標軸の右端に位置する座標点の右側と、当該水平座標軸の左端に位置する座標点の左側とに各々１つの仮座標点を配置する。また、座標軸設定部１０６は、集合（ｌｖ→ｒｖ−１）の水平座標軸の右端に位置する座標点の右側と、集合（ｌｖ→ｒｖ−１）の水平座標軸の左端に位置する座標点の左側とに各々１つの仮座標点を配置する。さらに、座標軸設定部１０６は、集合（２←ｎ）の水平座標軸の右端に位置する座標点の右側と、集合（２←ｎ）の水平座標軸の左端に位置する座標点の左側とに各々１つの仮座標点を配置する。そして、座標軸設定部１０６は、集合（ｌｖ＋１←ｒｖ）の水平座標軸の右端に位置する座標点の右側と、集合（ｌｖ＋１←ｒｖ）の水平座標軸の左端に位置する座標点の左側とに各々１つの仮座標点を配置する。
【００７９】
上記のアルゴリズムに従って、座標軸設定部１０６は、ＡＩ方式の有向グラフを形成するために用いる複数の水平座標軸を生成する。次に、水平座標軸上に有向グラフを形成する方法について説明する。
【００８０】
（有向グラフ生成部１１０）
次に、有向グラフ生成部１１０の機能構成について説明する。有向グラフ生成部１１０は、各水平座標軸上に有向グラフＨを形成する手段である。
【００８１】
まず、有向グラフ生成部１１０は、パラメータｋ（ｋは整数）を設定する。次いで、有向グラフ生成部１１０は、条件ｎ（ｘ−１）／ｋ＜ｒｖ−ｌｖ＋１≦ｎｘ／ｋを満たす整数ｘを決定する。但し、ｋ｜ｌｏｇ（ｎ）（以下、ｌｏｇの底は２）と仮定する。また、パラメータｋは、端末装置１２２が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係するため、鍵配信システム１００の構成に応じて決定されるパラメータである。
【００８２】
次いで、有向グラフ生成部１１０は、集合（１→ｎ−１）の水平座標軸上、及び集合（ｌｖ→ｒｖ−１）の水平座標軸上に長さｎｉ／ｋ（ｉ＝０〜ｘ−１）の右向き有向枝を形成する。例えば、カウンタｉを０からｘ−１まで変化させ、最左の座標点の左に配置した仮座標点から長さｎｉ／ｋの右向き有向枝を連続して形成し、有向枝が最右の座標点の右に配置した仮座標点に達するか、或いは、次の有向枝がこの仮座標点を超えたところで完了する。尚、最左の座標点は、最小要素数の部分集合に対応する。
【００８３】
さらに、有向グラフ生成部１１０は、集合（２←ｎ）の水平座標軸上、及び集合（ｌｖ＋１←ｒｖ）の水平座標軸上に長さｎｉ／ｋ（ｉ＝０〜ｘ−１）を有する左向きの有向枝を形成する。同様に、有向グラフ生成部１１０は、全てのｖに対応する上記の水平座標軸上に有向枝を形成する。これは、例えば、上記方法の左右を逆にした方法により実現される。
【００８４】
次いで、有向グラフ生成部１１０は、各水平座標軸上に配置された仮座標点を始端又は終端とする全ての有向枝を消去する。さらに、有向グラフ生成部１１０は、複数の有向枝が一つの座標点に到達する場合、複数の有向枝の中から最長の有向枝のみを残し、他の有向枝を全て消去する。以上の処理により、集合（１→ｎ−１）の有向グラフＨ（１→ｎ−１）、集合（２←ｎ）の有向グラフＨ（２←ｎ）、集合（ｌｖ→ｒｖ−１）の有向グラフＨ（ｌｖ→ｒｖ−１）、及び集合（ｌｖ＋１←ｒｖ）の有向グラフＨ（ｌｖ＋１←ｒｖ）が生成される。
【００８５】
次いで、有向グラフ生成部１１０は、集合（１→ｎ−１）の水平座標軸の右側に配置された仮座標点を終端とする長さ１の右向き有向枝を有向グラフＨ（１→ｎ−１）に追加する。つまり、有向グラフ生成部１１０は、下式（２）の処理を実行して集合（１→ｎ）の有向グラフＨ（１→ｎ）を生成する。但し、Ｅ（Ｈ（…））はグラフＨ（…）に含まれる有向枝の集合を表す。
【００８６】
【数２】
0005286748.tif 000003
【００８７】
以上、有向グラフ生成部１１０の機能について説明した。上述のようにして、ＡＩ方式の有向グラフＨが形成される。
【００８８】
（有向グラフの具体例）
ここで、図５を参照しながら、有向グラフの構成について簡単な説明を加える。
【００８９】
有向グラフＨ（３３→６３）を例に挙げると、有向グラフＨ（３３→６３）は、複数のアーチ状の曲線と、各アーチ状の曲線の一端に接続されて水平方向に延伸した直線とにより構成される。このアーチ状の曲線と水平方向に延伸した直線とが有向枝である。直線は長さ１の有向枝を表し、曲線は長さ２以上の有向枝を表しているが、直線であるか曲線であるかという違いは表記上の問題であり本実施形態が有する技術的な本質部分とは無関係である。また、有向グラフＨ（３３→６３）の中央上側に表示された白抜きの矢印は有向枝の方向を示している。そして、最下段に描かれた黒丸は、左から順に有向グラフＨ（２←２），…，Ｈ（６３→６３）を表している。
【００９０】
また、図５には、有向グラフＨ（３３→６３）の他にも、論理二分木ＢＴの根ノード及び中間ノードに対応する複数の有向グラフＨと、各有向グラフＨに交差する複数の縦線ｚ（ｚ＝１〜６４）とが描かれている。縦線ｚと有向グラフＨとの交点は水平座標軸上の座標点を表す。有向グラフＨ（ｌｖ＋１←ｒｖ）と縦線ｚとの交点は部分集合［ｒｖ，ｚ］に対応する座標点を表し、有向グラフＨ（ｌｖ→ｒｖ−１）と縦線ｚとの交点は部分集合［ｌｖ，ｚ］に対応する座標点を表す。例えば、有向グラフＨ（１→６４）と縦線１０との交点は部分集合［１，１０］の座標点を表す。以下、これらの表現を用いる。
【００９１】
（鍵生成部１１４）
次に、鍵生成部１１４の機能について説明する。鍵生成部１１４は、上記の有向グラフＨに基づいて中間鍵又はセット鍵を生成する手段である。尚、以下の説明の中で、部分集合Ｓが対応付けられた座標点のことを単に座標点Ｓと表記する場合がある。また、次に示す数学的な表現を用いる場合がある。
【００９２】
（定義）
部分集合Ｓｉに対応する中間鍵    ：  ｔ（Ｓｉ）
部分集合Ｓｉに対応するセット鍵  ：  ｋ（Ｓｉ）
コンテンツ鍵                    ：  ｍｅｋ
擬似乱数生成器                  ：  ＰＲＳＧ
有向枝の集合                          ：  Ｅ
有向パス                        ：  Ｐ
【００９３】
鍵生成部１１４は、例えば、セット鍵を生成するために擬似乱数生成器ＰＲＳＧを用いる。鍵生成部１１４は、擬似乱数生成器ＰＲＳＧに部分集合Ｓ０の中間鍵ｔ（Ｓ０）を入力し、部分集合Ｓ０のセット鍵ｋ（Ｓ０）と、所定の部分集合Ｓ１，Ｓ２，…，Ｓｄに各々対応する中間鍵ｔ（Ｓ１），ｔ（Ｓ２），…，ｔ（Ｓｑ）とを取得する。但し、（入力）部分集合Ｓ０と、（出力）他の部分集合Ｓ１，…，Ｓｑとの関係は、有向グラフＨにより規定される。また、集合Ｓ０，Ｓ１，…，Ｓｑは、上記のセットシステムＳＳを構成する部分集合のいずれかである。さらに、ｑは、有向グラフＨにおいて、部分集合Ｓ０の座標点を始点とする有向枝の数である。
【００９４】
擬似乱数生成器ＰＲＳＧに中間鍵ｔ（Ｓ０）が入力され、セット鍵ｋ（Ｓ０）と、複数の中間鍵ｔ（Ｓ１），…，ｔ（Ｓｑ）とが出力される処理は下式（３）のように表現される。また、有向グラフＨが参照される際に、座標点Ｓ０を始端とするｋ本の有向枝が存在し、それらの終端を示す座標点がＳ１，Ｓ２，…，Ｓｑである場合、座標点Ｓ０から近い順に座標点Ｓ１，Ｓ２，…，Ｓｑと表記することにする。
【００９５】
【数３】
0005286748.tif 000004
【００９６】
擬似乱数生成器ＰＲＳＧは、水平座標軸上の座標点Ｓ０に対応する中間鍵ｔ（Ｓ０）が入力されると、ＡＩ方式の有向グラフＨに基づき、座標点Ｓ０を始端とする有向枝の終端に対応付けられた部分集合Ｓ１，Ｓ２，Ｓ３，…，Ｓｑに応じて、中間鍵ｔ（Ｓ１），ｔ（Ｓ２），ｔ（Ｓ３），…，ｔ（Ｓｑ）と、座標点Ｓ０に対応するセット鍵ｋ（Ｓ０）とを出力する。但し、有向グラフ生成部１１０により決定される整数ｘが１≦ｘ≦ｋであるから、有向グラフＨの各座標点を始端とする有向枝の本数は最大でｋ本である。
【００９７】
また、擬似乱数生成器ＰＲＳＧがλビットのデータ入力ｔ（Ｓ０）に対して（ｑ＋１）＊λビットのデータ出力ｔ（Ｓ１）｜｜…｜｜ｔ（Ｓｑ）｜｜ｋ（Ｓ０）←ＰＲＳＧ（ｔ（Ｓ０））を得るように設定されている場合、鍵生成部１１４は、ＰＲＳＧの出力を左からλビット毎に区切って抽出することにより、中間鍵ｔ（Ｓ１），ｔ（Ｓ２），…，ｔ（Ｓｑ）と、セット鍵ｋ（Ｓ０）とを取得することができる。
【００９８】
例えば、有向グラフＨ（１→６４）を参照すると、座標点Ｓ０＝［１，８］（左端から８番目の座標点）からは４本の有向枝が出ている。また、４本の有向枝の終端は、座標点Ｓ１＝［１，９］，Ｓ２＝［１，１０］，Ｓ３＝［１、１２］，Ｓ４＝［１、１６］である。従って、中間鍵ｔ（Ｓ０）を上記の擬似乱数生成器ＰＲＳＧに入力すると、中間鍵ｔ（Ｓ１），ｔ（Ｓ２），ｔ（Ｓ３），ｔ（Ｓ４）と、セット鍵ｋ（Ｓ０）とが生成される。さらに、得られた中間鍵ｔ（Ｓ４）をＰＲＳＧに入力すると、座標点Ｓ４を始点とする有向枝の終端座標点Ｓ１１＝［１，１７］，Ｓ１２＝［１，１８］，Ｓ１３＝［１，２０］，Ｓ１４＝［１，２４］，Ｓ１５＝［１，３２］に対応する中間鍵ｔ（Ｓ１１），ｔ（Ｓ１２），ｔ（Ｓ１３），ｔ（Ｓ１４），ｔ（Ｓ１５）と、セット鍵ｋ（Ｓ４）とが生成される。
【００９９】
鍵生成部１１４は、有向グラフＨに基づいて上記の擬似乱数生成演算を繰り返し実行することで、複数の有向枝により連絡された複数の座標点に対応するセット鍵を導出することができる。以下、複数の有向枝により構成される２つの座標点間の経路を有向パスＰと呼ぶことにする。
【０１００】
ところで、安全性に格段の注意を払わなくてもよい場面、又はセット鍵生成のための演算量を減らしたい場合には、有向グラフＨに基づいてセット鍵ｋ（Ｓ０）から別のセット鍵ｋ（Ｓ１），…，ｋ（Ｓｑ）を算出することが可能な擬似乱数生成器ＰＲＳＧを採用してもよい。この場合、セット鍵ｋ（Ｓ０）が擬似乱数生成器ＰＲＳＧに入力されると、座標点Ｓ０から伸びる有向枝の到達先に対応するセット鍵ｋ（Ｓ１），ｋ（Ｓ２），ｋ（Ｓ３），…，ｋ（Ｓｑ）が出力される。
【０１０１】
（初期中間鍵設定部１１２）
次に、初期中間鍵設定部１１２の機能について説明する。初期中間鍵設定部１１２は、鍵配信サーバ１０２が所要のセット鍵を生成するために保持すべき中間鍵を設定する手段である。
【０１０２】
上記の通り、鍵生成部１１４は、上記の擬似乱数生成器ＰＲＳＧを反復して実行することにより、入力する中間鍵ｔ（Ｓ）に対応する座標点Ｓを始点とする有向パスが到達可能な全ての座標点に対応するセット鍵を生成することができる。そのため、鍵配信サーバ１０２は、鍵生成部１１４により、論理二分木ＢＴを構成する根ノードと中間ノードとに対応付けられた全ての集合に含まれる部分集合のセット鍵を生成する際に、少なくとも、各集合の有向グラフＨの始点に対応する座標点（以下、ルートと呼ぶ）の中間鍵を保持していればよい。
【０１０３】
そこで、初期中間鍵設定部１１２は、各有向グラフＨのルートに対応する中間鍵を生成する。例えば、初期中間鍵設定部１１２は、鍵配信システム１００をセットアップする際にλビットの乱数を生成し、各有向グラフＨのルートに対応する中間鍵として設定する。なお、有向グラフＨのルートとは、その座標点から有向枝が出ているが、その座標点に到達する有向枝がない座標点として定義される。有向グラフＨ（１→６４）の場合、座標点［１，１］が有向グラフＨ（１→６４）のルートである。但し、グラフＨ（３→３）のように座標点が１つだけのグラフについては、有向枝は出ていないが、その座標点をルートと考える。
【０１０４】
（部分集合決定部１２０）
部分集合決定部１２０は、コンテンツ鍵の暗号化に用いるセット鍵を決定する手段である。部分集合決定部１２０は、コンテンツの再生を許可する契約者（以下、許諾契約者）を含む少なくとも１つの部分集合を抽出し、各契約者に配布されるセット鍵の種類（即ち、対応する部分集合）を決定する。例えば、部分集合決定部１２０は、コンテンツの再生を許可しない契約者（以下、排除契約者）の集合（Ｒ）と、全ての契約者の集合（Ｎ）から排除契約者の集合（Ｒ）を除外した許諾契約者だけの集合（Ｎ＼Ｒ）とを決定する。次いで、部分集合決定部１２０は、セットシステムＳＳに含まれる部分集合を用いて、許諾契約者の集合（Ｎ＼Ｒ）を和集合（Ｎ＼Ｒ＝Ｓ１∪Ｓ２∪…∪Ｓｍ）により形成可能な部分集合の組（Ｓ１，Ｓ２，…，Ｓｍ）を決定する。このとき、部分集合の数ｍは小さい方が好ましい。
【０１０５】
（暗号化部１１６）
次に、暗号化部１１６の機能について説明する。暗号化部１１６は、セット鍵を用いてコンテンツ鍵を暗号化して暗号文を生成する。暗号化部１１６は、セットシステムＳＳを構成する全ての部分集合のうち、所定の部分集合に対応する複数のセット鍵を用いてコンテンツ鍵を暗号化する。このとき、暗号化部１１６は、鍵生成部１１４により生成された全てのセット鍵を用いてコンテンツ鍵を暗号化してもよいが、部分集合決定部１２０により決定された部分集合の組（Ｓ１，Ｓ２，…，Ｓｍ）に対応するセット鍵ｋ（Ｓ１），ｋ（Ｓ２），…，ｋ（Ｓｍ）を用いてコンテンツ鍵を暗号化してもよい。また、暗号化部１１６は、コンテンツ鍵を用いてコンテンツを暗号化する。
【０１０６】
（通信部１１８）
次に、通信部１１８の機能構成について説明する。通信部１１８は、主にシステムセットアップ時において、有向グラフＨに基づいて所定の中間鍵を各契約者に配信する。このとき、通信部１１８は、各契約者が、自身が含まれる部分集合のセット鍵を全て導出するのに必要な中間鍵を全て配信する。また、システム運用時において、通信部１１８は、暗号化部１１６により暗号化されたコンテンツ又はコンテンツ鍵を全ての契約者に対して配信する。また、通信部１１８は、有向グラフの一部又は全部を生成するための情報を各契約者に配信する。さらに、通信部１１８は、許諾契約者の集合（Ｎ＼Ｒ）、又は許諾契約者の集合（Ｎ＼Ｒ＝Ｓ１∪Ｓ２∪…∪Ｓｍ）に関する情報（例えば、部分集合（Ｓ１，Ｓ２，…，Ｓｍ）の情報）を各契約者に配信する。
【０１０７】
以上、ＡＩ方式の鍵配信サーバ１０２の機能構成について説明した。
【０１０８】
［鍵配信方法］
次に、図６及び図７を参照しながら、ＡＩ方式の鍵配信サーバ１０２による鍵配信方法について説明する。図６は、システムセットアップ時の鍵配信処理の流れを示す説明図である。図７は、コンテンツ鍵を配信する処理の流れを示す説明図である。
【０１０９】
（システムセットアップ時の鍵配信方法）
まず、図６を参照しながら、システムセットアップ時の鍵配信方法について説明する。
【０１１０】
図６に示すように、鍵配信サーバ１０２は、契約者数ｎ、セット鍵及び中間鍵のビット数λ、所定のパラメータｋ、及びＰＲＳＧによる擬似乱数生成アルゴリズム等を決定し、全ての端末装置１２２に対して公開する（Ｓ１０２）。次いで、鍵配信サーバ１０２は、端末装置１２２の集合を所定の部分集合に分けた後、その和集合によって表現されるセットシステムＳＳ（式（１）を参照）を決定して全ての端末装置１２２に対して公開する（Ｓ１０４）。次いで、鍵配信サーバ１０２は、複数の有向枝Ｅにより形成される有向グラフＨを決定し、その情報の一部又は全部を全ての端末装置１２２に対して公開する（Ｓ１０６）。次いで、セットシステムＳＳを構成する各部分集合に対応する中間鍵を決定する（Ｓ１０８）。次いで、各端末装置１２２が有向グラフに基づいて自身が所属する全ての部分集合のセット鍵を導出するために必要な中間鍵を各端末装置１２２に対して配布する（Ｓ１１０）。
【０１１１】
上記の通り、システムセットアップの際、各契約者には、その契約者が含まれる全ての部分集合のセット鍵を導出することが可能な複数の中間鍵が予め与えられる。但し、各契約者に対し、自身が含まれていない部分集合のセット鍵を導出することが可能な中間鍵を与えてはならない。また、各契約者に与える中間鍵の数が最小限になる方が好ましい。そこで、このような中間鍵を選択する方法について簡単に説明する。
【０１１２】
まず、鍵配信サーバ１０２は、契約者ｕが含まれる部分集合の座標点に到達可能な有向グラフＨを全て抽出する。有向グラフＨのルートに対応する部分集合に契約者ｕが含まれる場合、そのルートに対応する中間鍵のみを契約者ｕに与える。
【０１１３】
また、鍵配信サーバ１０２は、有向グラフＨのルート以外の座標点に対応する部分集合のいずれかに契約者ｕが含まれる場合、契約者ｕが部分集合Ｓ０に含まれ、かつ、部分集合Ｓ０の親である部分集合ｐａｒｅｎｔ（Ｓ０）に含まれない部分集合Ｓ０を抽出する。そして、その部分集合Ｓ０に対応する中間鍵ｔ（Ｓ０）を契約者ｕに対して与える。
【０１１４】
つまり、鍵配信サーバ１０２は、有向グラフＨのルート以外の複数の座標点に対応する部分集合に契約者ｕが含まれる場合、各座標点に到達する有向枝の始端を参照し、各座標点の始端に対応する部分集合が契約者ｕを含まないような座標点を選択する。この座標点に対応する部分集合をＳ０とし、座標点Ｓ０に到達する有向枝の始端（親）に対応する部分集合をｐａｒｅｎｔ（Ｓ０）とすると、鍵配信サーバ１０２は、親座標点に対応する部分集合ｐａｒｅｎｔ（Ｓ０）は契約者ｕを含まないが、この座標点に対応する部分集合Ｓ０が契約者ｕを含むような座標点Ｓ０に対応する中間鍵ｔ（Ｓ０）を契約者ｕに与える。以下、１つの有向枝の始端ｐａｒｅｎｔ（Ｓ）をその有向枝の終端Ｓの親と表現する。また、座標点Ｓ０の親をｐａｒｅｎｔ（Ｓ０）と表記する。
【０１１５】
さらに、鍵配信サーバ１０２は、座標点Ｓ０が複数個存在する場合、それらに対応する複数の中間鍵ｔ（Ｓ０）を契約者ｕに与える。もちろん、座標点Ｓ０が有効グラフＨのルートである場合には座標点Ｓ０の親は存在しない。そして、有効グラフＨのルートではない場合には座標点Ｓ０の親はただ１つ存在する。
【０１１６】
（具体例１）
契約者１に対して配信される中間鍵について考える。まず、契約者１が含まれる部分集合に到達可能な有向グラフＨを抽出する。図５を参照すると、そのような有向グラフＨは、有向グラフＨ（１→６４）であることが分かる。そして、契約者１は、有向グラフＨ（１→６４）のルートに対応する部分集合［１，１］に属している。従って、契約者１には、中間鍵ｔ（［１，１］）が配信される。
【０１１７】
（具体例２）
契約者３に対して配信される中間鍵について考える。まず、契約者３が含まれる部分集合に到達可能な有向グラフＨを抽出する。図５を参照すると、そのような有向グラフＨは、有向グラフＨ（１→６４），Ｈ（２←６４），Ｈ（２←３２），Ｈ（２←１６），Ｈ（２←８），Ｈ（２←４），Ｈ（３→３）であることが分かる。まず、有向グラフＨ（１→６４）について検討すると、契約者３は、有向グラフＨ（１→６４）のルートに対応する部分集合［１，１］に含まれていないことが分かる。
【０１１８】
しかし、契約者３は、３番目の座標点以降の部分集合［１，３］，［１，４］，…，［１，６４］に含まれている。そこで、これらの座標点の親の部分集合を参照すると、親の部分集合に契約者３を含まない座標点は、［１，３］及び［１，４］のみであることが分かる。従って、座標点［１，３］，［１，４］の親ｐａｒｅｎｔ（［１，３］）及びｐａｒｅｎｔ（［１，４］）に該当する座標点［１，２］は、契約者３を含んでいないことが分かる。
【０１１９】
その結果、契約者３には、有向グラフＨ（１→６４）に対応する中間鍵ｔ（［１，３］）及びｔ（［１，４］）が配信される。同様に、他の有向グラフＨ（２←６４），Ｈ（２←３２），Ｈ（２←１６），Ｈ（２←８），Ｈ（２←４），Ｈ（３→３）についても中間鍵が選択されて契約者３に配信される。結局、契約者３には、合計８個の中間鍵が配信される。
【０１２０】
（コンテンツ鍵の配信方法）
次に、図７を参照しながら、コンテンツ鍵ｍｅｋの配信方法について説明する。
【０１２１】
図７に示すように、鍵配信サーバ１０２は、排除契約者の集合Ｒを決定し、許諾契約者の集合Ｎ＼Ｒを決定する（Ｓ１１２）。次いで、セットシステムＳＳを構成する部分集合から、和集合がＮ＼Ｒとなるｍ個の部分集合Ｓｉ（ｉ＝１，２，・・・，ｍ）を選択する（Ｓ１１４）。次いで、選択された各部分集合Ｓｉに対応するセット鍵ｋ（Ｓｉ）を用いてコンテンツ鍵ｍｅｋをそれぞれ暗号化する（Ｓ１１６）。次いで、集合Ｎ＼Ｒ又は各部分集合Ｓｉを表す情報と、ｍ個の暗号化されたコンテンツ鍵ｍｅｋとを全ての端末装置１２２に対して配信する（Ｓ１１８）。
【０１２２】
以上、鍵配信サーバ１０２によるセットアップ時の鍵配信方法、及びコンテンツ鍵ｍｅｋの配信方法について説明した。この配信方法によると、各許諾契約者がセット鍵を生成するために必要な中間鍵を効率的に配信することが可能になる。
【０１２３】
［コンテンツ鍵の復号方法］
次に、図８を参照しながら、端末装置１２２による暗号化されたコンテンツ鍵ｍｅｋの復号処理について説明する。図８は、端末装置１２２によるコンテンツ鍵の復号処理の流れを示す説明図である。
【０１２４】
図８に示すように、端末装置１２２は、鍵配信サーバ１０２からｍ個の暗号化されたコンテンツ鍵ｍｅｋと、集合Ｎ＼Ｒを表す情報又はｍ個の部分集合Ｓｉ（ｉ＝１，２，・・・，ｍ）を表す情報とを取得する（Ｓ１２０）。次いで、端末装置１２２は、自身が含まれる部分集合Ｓｉを検索し（Ｓ１２２）、自身がｍ個の部分集合Ｓｉのいずれかに含まれているか否かを判断する（Ｓ１２４）。自身が含まれる部分集合Ｓｉが存在する場合、端末装置１２２は、擬似乱数生成器ＰＲＳＧを利用して、その部分集合Ｓｉに対応するセット鍵ｋ（Ｓｉ）を導出する（Ｓ１２６）。次いで、端末装置１２２は、導出したセット鍵ｋ（Ｓｉ）を用いて暗号化されたコンテンツ鍵ｍｅｋを復号する（Ｓ１２８）。一方、自身がいずれの部分集合Ｓｉにも含まれない場合、端末装置１２２は、自身が排除契約者である旨を表示出力し（Ｓ１３０）、コンテンツ鍵の復号処理を終了する。
【０１２５】
上記の通り、端末装置１２２は、鍵配信サーバ１０２から取得した集合Ｎ＼Ｒ又はｍ個の部分集合Ｓｉの情報と、ｍ個の暗号化されたコンテンツ鍵ｋ（Ｓｉ）とに基づいてコンテンツ鍵ｍｅｋを復号することができる。
【０１２６】
［有向グラフＨの生成方法］
次に、図９を参照しながら、有向グラフＨの生成方法について説明する。図９は、有向グラフＨ（ｌｖ→ｒｖ−１）の生成処理の流れを示す説明図である。
【０１２７】
図９に示すように、座標軸設定部１０６は、集合（ｌｖ→ｒｖ−１）の要素を水平直線上に左から右に包含関係が大きくなるように配置する。次いで、最左の座標点の左側に１つの仮座標点Ｓｔａｒｔを配置し、最右の座標点の右側に１つの仮座標点Ｅｎｄを配置する。すると、仮座標点Ｓｔａｒｔから仮座標点Ｅｎｄまでの長さは、Ｌｖ＝ｒｖ−ｌｖ＋１となる。さらに、ｎ（ｘ−１）／ｋ＜Ｌｖ≦ｎｘ／ｋを満たす整数ｘ（１≦ｘ≦ｋ）が算定される（Ｓ１５０）。
【０１２８】
次いで、有向グラフ生成部１１０は、カウンタｉを０〜ｘ−１まで動かしながら下記の操作を行う。仮座標点Ｓｔａｒｔから開始し、その座標点からｎｉ／ｋだけ離れた座標点へのジャンプを続け、仮座標点Ｅｎｄに到達するか、次のジャンプが仮座標点Ｅｎｄを超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する（Ｓ１５２）。次いで、仮座標点Ｓｔａｒｔ又はＥｎｄに到達する有向枝を全て消去する（Ｓ１５４）。さらに、ある座標点Ｔに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝を消去する（Ｓ１５６）。
【０１２９】
以上、ＡＩ方式の有向グラフＨの生成方法について説明した。
【０１３０】
［本実施形態に係る鍵設定方法］
さて、上記のＡＩ方式による有向グラフＨの生成方法、及び鍵配信方法等を踏まえ、本実施形態に係る鍵設定方法について説明する。上述のように、本実施形態に係る鍵設定方法は、ＡＩ方式の技術に階層化ＩＤベース暗号化（ＨＩＢＥ）方式の技術的思想を取り込み、公開鍵暗号方式に拡張したものである。但し、ＨＩＢＥ方式をＡＩ方式に融合することは容易ではなく、この拡張を実現するためには工夫が必要とされる。以下、この技術的特徴部分を中心に説明する。
【０１３１】
（情報処理装置１５０の機能構成）
まず、図１０を参照しながら、本実施形態に係る情報処理装置１５０の機能構成について説明する。図１０は、本実施形態に係る情報処理装置１５０の機能構成を示す説明図である。尚、この情報処理装置１５０は、上記技術的特徴部分を実現するための設定装置であり、上記の鍵配信サーバ１０２内に設置されてもよいし、或いは、別体として構成されていてもよい。
【０１３２】
図１０に示すように、情報処理装置１５０は、主に、パラメータ設定部１５２と、秘密情報保持部１５４と、鍵設定部１５６と、有向グラフ情報取得部１５８と、識別子設定部１６０と、鍵配信部１６２と、暗号化部１６４と、通信部１６６とにより構成される。
【０１３３】
（パラメータ設定部１５２）
パラメータ設定部１５２は、有向グラフＨの各ノードに割り当てる識別子（ＩＤ）を決定するためのパラメータを設定する手段である。まず、パラメータ設定部１５２は、鍵配信サーバ１０２と同様にパラメータｎ、λ、ｋを設定する。次いで、パラメータ設定部１５２は、位数ｑ（ｑは素数）の乗法群Ｇ及びＧ１を設定する。次いで、パラメータ設定部１５２は、下記で定義される双線形マップｅ：Ｇ×Ｇ→Ｇ１を設定する。
【０１３４】
（双線形マップｅの定義）
（１）双線形性（Ｂｉｌｉｎｅａｒ）を有する。つまり、任意のＰ，Ｑ∈Ｇ、任意のａ，ｂ∈Ｚに対して、ｅ（Ｐａ，Ｑｂ）＝ｅ（Ｐ，Ｑ）ａｂが成り立つ。
（２）非縮退性（Ｎｏｎ−ｄｅｇｅｎｅｒａｔｅ）を有する。つまり、ＰがＧの生成元であるならばｅ（Ｐ，Ｐ）はＧ１の生成元となる。
（３）計算可能性（Ｃｏｍｐｕｔａｂｌｅ）を有する。つまり、任意のＰ，Ｑ∈Ｇに対して、ｅ（Ｐ，Ｑ）を計算できる効率的なアルゴリズムが存在する。
【０１３５】
次いで、パラメータ設定部１５２は、乗法群Ｇに属する任意の生成元ｇ、ランダムな値α∈Ｚｑ＊を設定する。次いで、パラメータ設定部１５２は、ｇ１＝ｇαなるｇ１を設定する。次いで、パラメータ設定部１５２は、ランダムな値ｇ２，ｇ３，ｈ１，…，ｈｌ∈Ｇを設定する。但し、ｌは、ＡＩ方式における有向グラフＨ内で最大の有向枝の長さ（２ｋ−１）（ｎ１／ｋ−１）に１を加えた数ｌ＝（２ｋ−１）（ｎ１／ｋ−１）＋１である。次いで、パラメータ設定部１５２は、ｇ２αを秘密情報保持部１５４に保存する。また、パラメータ設定部１５２は、上記の設定したパラメータのうち、公開するパラメータ（以下、ＨＩＢＥ公開パラメータ；式（４）を参照）ＨＩＢＥ−ｐａｒａｍｓを通信部１６６に入力し、通信部１６６又は他の手段を介して公開する。また、上記の各パラメータは、鍵設定部１５６に入力される。
【０１３６】
【数４】
0005286748.tif 000005
【０１３７】
（識別子設定部１６０）
識別子設定部１６０は、有向グラフ情報取得部１５８により取得されたＡＩ方式の有向グラフＨに関する情報に基づき、有向グラフＨ、及び有向グラフＨの各ノードに識別子を割り当てる手段である。
【０１３８】
ここで、図１１を参照しながら、識別子の割り当て方法について説明する。図１１は、本実施形態に係る識別子の割り当て方法を示す説明図である。図１１の例は、ｎ＝１６，ｋ＝４，ｎ１／ｋ＝２の場合におけるＡＩ方式の有向グラフＨに識別子を割り当てる方法を示したものである。
【０１３９】
図１１には、１６個の有向グラフＨが記載されている。また、各有向グラフＨは、その始点と交わる縦線の番号が各々異なっているため、この番号により特定可能である。例えば、有向グラフＨ（１→１６）は、１という番号で特定される。同様に、有向グラフＨ（２←１６）は、１６という番号で特定される。そこで、識別子設定部１６０は、各有向グラフＨの始点と交わる縦線の番号を始点ノードの識別子（以下、第１識別子）に設定する。この第１識別子により、各有向グラフＨが特定される。例えば、有向グラフＨ（２←１６）の始点ノード［１６，１６］を示す第１識別子は１６である。以下、識別子を（…）と表現する。
【０１４０】
次いで、識別子設定部１６０は、有向グラフＨについて、あるノードを識別するために、そのノードと親ノードとを結ぶ有向枝の長さを用いて識別子を表現する。例えば、識別子設定部１６０は、有向枝の長さがｎ１／ｋの何乗であるかという情報（以下、第２識別子）を上記の第１識別子に付加して各ノードの識別子を設定する。図１２の例を参照すると、有向グラフＨ（１→１６）の始点ノード［１，１］には、１つの子ノード［１，２］があり、［１，１］と［１，２］とを結ぶ有向枝の長さがｎ１／ｋ＝２０であるため、子ノード［１，２］の識別子は、第１識別子と第２識別子とを用いて（１，０）と表現される。
【０１４１】
この識別子の設定方法をより詳細に示したのが図１２である。図１２は、有向グラフＨ（１→１６）の一部を抽出したものである。図１２のＡ点を参照すると、Ａ点からは、Ｂ点、Ｃ点、Ｅ点に有向枝が延びている。また、Ｃ点からはＤ点に有向枝が延びている。
【０１４２】
Ａ点の識別子が（１，０，１）であるため、Ｂ点の識別子は、ＡＢ間の有向枝の長さ２０に基づき、（１，０，１，０）となる。同様に、Ｃ点の識別子は（１，０，１，１）、Ｅ点の識別子は（１，０，１，２）となる。Ｄ点の識別子は、その親ノードであるＣ点の識別子（１，０，１，１）に０（有向枝の長さ２０であるため）を付加して（１，０，１，１，０）となる。
【０１４３】
再び図１０を参照する。識別子設定部１６０は、上記の方法により、全ての有向グラフＨの全てのノードに対して識別子を設定する。識別子設定部１６０は、全ての識別子を設定すると、この識別子の割り当てルールを通信部１６６又は他の手段を介して公開する。
【０１４４】
尚、識別子ＩＤがＩＤ＝（Ｉ１，…，ＩＷ）と表現される場合、１番目の要素Ｉ１はＩ１∈｛１，２，…，ｎ｝であり、２番目以降の要素Ｉｗ（２≦ｗ≦Ｗ）はＩｗ∈｛０，１，，ｋ−１｝である。また、有向グラフＨ上のどのノードも（２ｋ−１）（ｎ１／ｋ−１）個以下の有向枝で形成可能であるため、Ｗ≦ｌ＝（２ｋ−１）（ｎ１／ｋ−１）＋１となる。さらに、位数ｑを大きく設定することにより、Ｉｗ∈Ｚｑとなる。
【０１４５】
（鍵設定部１５６）
鍵設定部１５６は、パラメータ設定部１５２により設定されたパラメータ、及び識別子設定部１６０により設定された識別子の情報に基づいて各部分集合に対応する鍵を導出する手段である。まず、鍵設定部１５６は、ランダムな値ｙ∈Ｚｑを設定する。次いで、鍵設定部１５６は、有向グラフＨの始点ノードに対応する部分集合の鍵ｋ（Ｓ（Ｉ１））を次のように導出する（式（５）を参照）。
【０１４６】
【数５】
0005286748.tif 000006
【０１４７】
次いで、鍵設定部１５６は、各有向グラフＨの他のノードに対応する部分集合の鍵を設定する。例えば、識別子ＩＤ＝（Ｉ１，…，Ｉｗ−１）で表現されるノードについて、このノードに対応する部分集合の鍵がｋ（Ｓ（Ｉ１，…，Ｉｗ−１））＝（ａ０，ａ１，ｂｗ，…，ｂｌ）である場合、識別子ＩＤ＝（Ｉ１，…，Ｉｗ）で表現される子ノードの鍵ｋ（Ｓ（Ｉ１，…，Ｉｗ））は、ランダムな値ｙ’∈Ｚｑを用いて次のように導出される（式（６）を参照）。
【０１４８】
【数６】
0005286748.tif 000007
【０１４９】
尚、情報処理装置１５０内では、鍵設定部１５６が子ノードの鍵導出処理を実行する。しかし、端末装置１２２内でも、あるノードの鍵から子ノードの鍵を導出することができる。一方、各有向グラフＨの始点ノードの鍵は、パラメータｇ２αを知っている情報処理装置１５０にしかできない。また、子ノードの鍵を導出する際に用いるパラメータｙ’は、端末装置１２２間、或いは、端末装置１２２と情報処理装置１５０との間で異なっていてもよい。
【０１５０】
（鍵配信部１６２）
鍵配信部１６２は、鍵設定部１５６により設定された各部分集合の鍵を端末装置１２２に配信する手段である。まず、鍵配信部１６２は、ユーザｕが属する部分集合を要素にもつ有向グラフＨを全て抽出する。有向グラフＨの始点ノードに対応する部分集合にユーザｕが含まれる場合、鍵配信部１６２は、その有向グラフＨのルートに対応する部分集合の鍵のみをユーザｕの端末装置１２２に提供する。
【０１５１】
一方、有向グラフＨの始点ノード以外のノードに対応する部分集合にユーザｕが含まれる場合、鍵配信部１６２は、ユーザｕが含まれる部分集合Ｓであって、その親ノードの部分集合ｐａｒｅｎｔ（Ｓ）にユーザｕが含まれないような部分集合Ｓを抽出する。そして、鍵配信部１６２は、抽出した部分集合Ｓの鍵ｋ（Ｓ）をユーザｕの端末装置１２２に提供する。尚、１つの有向グラフＨに複数の部分集合Ｓが存在する場合、各部分集合Ｓの鍵をユーザｕの端末装置１２２に提供する。
【０１５２】
図１１の場合（ｎ＝１６，ｋ＝４）、例えば、ユーザ１が有向グラフＨ（１→１６）の始点ノードの部分集合［１，１］＝Ｓ（１）に属しているため、鍵配信部１６２は、ユーザ１に対して部分集合［１，１］の鍵ｋ（［１，１］）＝ｋ（Ｓ（１））のみを提供する。また、ユーザ３は、ユーザ３が有向グラフＨ（１→１６）、Ｈ（２←１６）、Ｈ（２←８）、Ｈ（２←４）、Ｈ（３→３）に属している。例えば、有向グラフＨ（１→１６）を参照すると、ユーザ３が属している部分集合の中で、その親ノードの部分集合にユーザ３が属していない部分集合が２つ存在する（［１，３］＝Ｓ（１，０，０）、［１，４］＝Ｓ（１，０，１））。そのため、鍵配信部１６２は、有向グラフＨ（１→１６）に関し、ユーザ３の端末装置１２２に対して２つの部分集合の鍵を提供する。鍵配信部１６２は、他の有向グラフＨに関し、同様に、部分集合の鍵を提供する。この例の場合、鍵配信部１６２は、ユーザ３の端末装置１２２に対して合計５個の鍵を提供する。
【０１５３】
（暗号化部１６４）
再び図１０を参照する。暗号化部１６４は、コンテンツ鍵ｍｅｋ又は他の情報を暗号化して暗号文を生成する手段である。まず、暗号化部１６４は、ランダムな値ｓ∈Ｚｑを設定する。Ｍ＝ｍｅｋ、Ｍ∈Ｇ１、配信対象（鍵）の部分集合の識別子ＩＤ＝（Ｉ１，…，ＩＷ）である場合、暗号化部１６４は、次のようにして暗号文ＣＴを出力する（式（７）を参照）。暗号化部１６４は、配信対象となる各部分集合に対して同様に暗号文ＣＴを出力する。そして、出力された暗号文は、部分集合の情報と共に、通信部１６６又は他の手段を介してユーザに提供される。
【０１５４】
【数７】
0005286748.tif 000008
【０１５５】
以上、本実施形態に係る情報処理装置１５０の機能構成について説明した。尚、本実施形態に係る技術は、情報処理装置１５０の機能構成に主な特徴を有するが、鍵配信サーバ１０２の機能と組み合わせて実現される。
【０１５６】
［鍵設定処理の流れ］
ここで、図１３を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図１３は、本実施形態に係る鍵設定処理の流れを示す説明図である。
【０１５７】
図１３に示すように、公開パラメータとして、ｎ，λ，ｋ，ＨＩＢＥ−ｐａｒａｍｓが設定されて公開される（Ｓ３０２）。次いで、セットシステムＳＳが設定されて公開される（Ｓ３０４）。次いで、有向グラフＨが設定（生成）され、当該有向グラフＨの各ノードに識別子が設定されて公開される（Ｓ３０６）。次いで、各部分集合に対応する鍵が設定（導出）される（Ｓ３０８）。次いで、各ユーザの端末装置１２２に対して所定の鍵が提供（送信）される（Ｓ３１０）。以上の流れに従って鍵設定処理が実行される。
【０１５８】
［鍵配信処理の流れ］
ここで、図１４を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図１４は、本実施形態に係る鍵配信処理の流れを示す説明図である。
【０１５９】
図１４に示すように、排除契約者の集合Ｒ、及び許諾契約者の集合Ｎ＼Ｒが設定される（Ｓ３２２）。次いで、和集合が許諾契約者の集合Ｎ＼Ｒと一致するｍ個の部分集合Ｓを設定する（Ｓ３２４）。次いで、コンテンツ鍵ｍｅｋが設定され、設定された各部分集合Ｓｉについて暗号文が生成される（Ｓ３２６）。次いで、許諾契約者の集合Ｎ＼Ｒ又は各部分集合Ｓｉの情報とｍ個の暗号文が送信される（Ｓ３２８）。以上の流れに従って鍵配信処理が実行される。
【０１６０】
［復号処理について］
ここで、本実施形態に係る復号処理について説明する。本実施形態に係る復号処理は、ＡＩ方式と類似しているが、自身が所属する部分集合を検出した後に、その部分集合に対応する鍵を導出する方法と、その部分集合の鍵を用いて暗号文を復号する方法とが異なる。
【０１６１】
あるユーザの端末装置１２２は、配信対象となる部分集合の中に自身が所属する部分集合Ｓｉを検出すると、その部分集合Ｓｉに対応する鍵ｋ（Ｓｉ）を導出する。但し、その鍵ｋ（Ｓｉ）が予め端末装置１２２に提供されている場合もある。その場合、端末装置１２２は、予め提供された鍵ｋ（Ｓｉ）を用いて暗号文を復号すればよい。一方、予め鍵ｋ（Ｓｉ）が提供されていない場合、端末装置１２２は、以下の手順で鍵ｋ（Ｓｉ）を導出する。
【０１６２】
部分集合Ｓｉの識別子ＩＤが（Ｉ１，…，ＩＷ）である場合、端末装置１２２は、ＩＤ＝（Ｉ１，…，Ｉｗ）（ｗ≦Ｗ）の鍵を予め与えられている。尚、ｗ＝Ｗの場合、所望の鍵ｋ（Ｓｉ）を既に保持していることになる。そこで、端末装置１２２は、上記の式（６）に従い、ＩＤ＝（Ｉ１，…，Ｉｗ）（ｗ≦Ｗ）の鍵を用いて（Ｉ１，…，Ｉｗ，Ｉｗ＋１）の鍵を導出する。端末装置１２２は、この導出処理を繰り返すことで（Ｉ１，…，ＩＷ）の鍵ｋ（Ｓｉ）を導出する。
【０１６３】
鍵ｋ（Ｓｉ）を導出すると、端末装置１２２は、この鍵ｋ（Ｓｉ）を用いて暗号文を復号する。まず、端末装置１２２は、値ｚ∈Ｚｑを設定する。次のように鍵ｋ（Ｓｉ）（式（８）参照）、暗号文ＣＴ（式（９）参照）を表現すると、端末装置１２２は、式（１０）を用いて暗号文を復号し、コンテンツ鍵Ｍ＝ｍｅｋを導出することができる。
【０１６４】
【数８】
0005286748.tif 000009
【０１６５】
［共通鍵方式と公開鍵方式の選択について］
上記のように、本実施形態の技術を適用することで、公開鍵暗号方式のブロードキャスト・エンクリプション方式が実現される。但し、本実施形態に係る技術は、共通鍵暗号方式を基盤としているため、状況に応じて共通鍵暗号方式と公開鍵暗号方式とを選択的に利用してもよい。
【０１６６】
例えば、次のようなケースが考えられる。いま、一人の先生と複数の生徒により構成されるエンティティが互いにネットワークで接続されたクラスを考えてみよう。生徒は、何人かずつグループに分けられている。また、先生が配布した試験問題の解答をグループごとに協議して作成する状況にあるとしよう。但し、先生は信頼できるものとし、生徒が保持する鍵を知ることができると仮定する。先生が生徒に試験問題を配布する場合には、ＡＩ方式等のような共通鍵暗号方式のブロードキャスト・エンクリプション方式を利用すればよい。もちろん、公開鍵暗号方式のブロードキャスト・エンクリプション方式を利用してもよいが、共通鍵暗号方式よりも多くの計算が必要になってしまう。
【０１６７】
では、グループ内の生徒間で試験問題の解答を協議したい場合はどうであろうか。この場合、グループ内の生徒が解答ファイルを作成又は編集し、再度グループ内の生徒間で共有することになるであろう。この場合、共通鍵暗号方式を採用すると、生徒一人一人が他人の鍵を知ってしまっても良い程に信用できることが必要である。もちろん、この要求を実現するのは難しい場合が多い。こうした場合には、公開鍵暗号方式のブロードキャスト・エンクリプション方式が適している。公開鍵暗号方式であれば、送信者が受信者の秘密鍵を知る必要がないからである．
【０１６８】
このように、目的又は状況に応じて共通鍵暗号方式と公開鍵暗号方式とが使い分けられる方が良い。その点、本実施形態は、共通鍵暗号方式の技術を基盤とし、公開鍵暗号方式に拡張したものであるため、両方式間の切り替えが容易に実現可能であり、共通鍵暗号方式の装置と公開鍵暗号方式の装置とを独立に用意することに比べて装置構成を簡略化することができる。例えば、有向グラフの設定や各ユーザが所属する部分集合の設定等を共通化できるため、全体として実装コスト等を削減することが可能になる。
【０１６９】
［鍵配信システム１００の応用例］
ここで、図１５及び図１６を参照しながら、上記の各実施形態に係る鍵配信システム１００の応用例について簡単に説明する。
【０１７０】
（応用例１）
まず、鍵配信システム１００の一応用例として、放送暗号化システム８００の構成について説明する。図１５は、放送衛星を用いた放送暗号化システム（Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｙｓｔｅｍ）８００の構成を示す説明図である。
【０１７１】
図１５を参照すると、放送暗号化システム８００は、主に、衛星放送局８０２と、管理センタ８０４と、放送衛星８０６と、住居８０８と、受信機８１０とにより構成される。ここで、放送暗号化システム８００は、放送チャンネルを介して暗号化されたデータ（暗号テキスト；Ｃｉｐｈｅｒｔｅｘｔ）を住居８０８に設置された受信機８１０に対して配信するシステムである。但し、放送チャンネルとは、例えば、衛星放送配信チャンネルである。また、暗号テキストとは、例えば、暗号鍵、音声データ、映像データ、又はテキストデータ等を含むコンテンツである。
【０１７２】
まず、衛星放送局８０２には、放送衛星８０６を介して暗号テキスト等のデータを送信する管理センタ（Ｂｒｏａｄｃａｓｔ  Ｔｒｕｓｔｅｄ  Ｃｅｎｔｅｒ）８０４が設置される。管理センタ８０４は、例えば、暗号化用の鍵を選択したり、データの暗号化、及びデータの配信制御を実行する。つまり、管理センタ８０４は、上記の各実施形態に係る鍵配信サーバ１０２の一例である。また、住居８０８に設置された受信機８１０は、上記の各実施形態に係る端末装置１２２の一例である。
【０１７３】
放送衛星８０６は、管理センタ８０４と各住居８０８に設置された受信機８１０との間を媒介し、当該受信機８１０に対して暗号テキスト等のデータを放送する。また、受信機８１０は、例えば、衛星放送受信機等であり、放送衛星８０６を介して放送されたデータを受信する。なお、図１５に示すように、放送暗号化システム８００には複数の受信機８１０が含まれていてもよく、その場合、管理センタ８０４は、複数の受信機８１０から成る受信機グループに対してデータを配信する。このとき、管理センタ８０４は、認証された受信機８１０のみがデータを復号できるように放送データを暗号化して配信する。
【０１７４】
以上、鍵配信システム１００の一応用例である放送暗号化システム８００について説明した。図１５では、衛星放送の例を挙げたが、放送暗号化システム８００は、例えば、ケーブルテレビジョンやコンピュータネットワーク等の他の放送チャンネルを利用した暗号化システムに対しても容易に応用することが可能である。
【０１７５】
（応用例２）
次に、鍵配信システム１００の他の応用例として、放送暗号化システム９００の構成について説明する。図１６は、記録媒体を用いた放送暗号化システム９００の構成を示す説明図である。
【０１７６】
図１６を参照すると、放送暗号化システム９００は、主に、媒体製造業者９０２と、管理センタ９０４と、記録媒体９０６と、配布仲介者９０８と、住居９１２と、受信機９１４とにより構成される。ここで、放送暗号化システム９００における放送チャンネルはデータが記録された記録媒体９０６である。
【０１７７】
まず、媒体製造業者９０２には、記録媒体９０６を利用し、配布仲介者９０８を介して暗号テキスト等のデータを住居９１２に提供する管理センタ９０４が設置されている。但し、管理センタ９０４は、記録媒体９０６に暗号テキスト等のデータを記録するだけであり、記録媒体９０６を用いて間接的に暗号テキスト等のデータを提供する。また、記録媒体９０６は、例えば、読出専用媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）、又は書換可能媒体（例えば、ＣＤ−ＲＷ、ＤＶＤ−ＲＷ等）等である。上記の応用例１と同様、管理センタ９０４は、上記の各実施形態に係る鍵配信サーバ１０２に相当する。但し、暗号テキスト等のデータを記録媒体に記録して提供する点で若干相違するが、本発明に係る鍵配信サーバは、この応用例のように、実施形態に応じて暗号テキスト等の情報を配信する手段を適宜変更することが可能である。
【０１７８】
媒体製造業者９０２は、例えば、小売店等の配布仲介者（Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｏｕｔｌｅｔ）９０８に対して暗号テキスト等のデータが記録された記録媒体９０６を送付する。次いで、配布仲介者９０８は、媒体９０６を各住居９１２に対して提供する。例えば、配布仲介者９０８は、記録媒体９０６を各住居９１２に対応する個人に対して販売する。この個人は、記録媒体９０６を住居９１２に持ち帰り、受信機９１４を利用して記録媒体９０６に記録されたデータを再生する。この受信機９１４は、上記の各実施形態に係る端末装置１２２の一例であるが、暗号テキスト等のデータを記録媒体を介して取得する点で若干相違する。しかし、本発明に係る端末装置は、この応用例のように、実施形態に応じて暗号テキスト等の情報を取得する手段を適宜変更することが可能である。また、受信機９１４は、例えば、ＣＤプレーヤ、ＤＶＤプレーヤ、又はＤＶＤ−ＲＷドライブを備えたコンピュータ等であり、記録媒体９０６に記録されているデータを読み出して再生することが可能な装置により構成されうる。
【０１７９】
以上、鍵配信システム１００の一応用例である放送暗号化システム９００について説明した。図１６では、記録媒体９０６を介して暗号テキスト等のデータを契約者に提供する手段を例に挙げて説明した。このように、本発明に係る鍵配信サーバ及び端末装置は、実施形態に応じて、各種情報の配布手段に関する構成を変更することが可能である。
【０１８０】
＜第２実施形態＞
以下、図面を参照しながら、本発明の第２実施形態に係る鍵配信システム１００の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第１実施形態に係る鍵配信システム１００と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
【０１８１】
［第２実施形態の特徴］
ここで、本発明の第２実施形態と上記の第１実施形態とを対比して説明することで両実施形態の相違点を明確にし、当該第２実施形態の特徴を明らかにする。まず、上記の第１実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第１実施形態がＡＩ方式を基盤とするのに対し、本実施形態はＲＣ方式に適用する点が異なる。
【０１８２】
（ＡＩ方式とＲＣ方式との対比）
そこで、ＡＩ方式とＲＣ方式との相違点について簡単に説明し、ＲＣ方式の特徴を明確にする。ＡＩ方式とＲＣ方式との違いは、鍵生成に要する計算量にあることは本稿の冒頭で既に述べた。具体的には、次の通りである。
【０１８３】
上記の第１実施形態の説明において述べた通り、ＡＩ方式では、論理二分木ＢＴの根ノードに有向グラフＨ（１→ｎ）及びＨ（２←ｎ）が対応付けられ、他の中間ノードｖに対し、有向グラフＨ（ｌｖ→ｒｖ−１）又はＨ（ｌｖ＋１←ｒｖ）が対応付けられる。契約者ｕが所属し得る有向グラフＨは、論理二分木ＢＴ上の葉ノードｕから根ノードに到達する経路の中に存在するノードのうち、葉ノードと根ノードとを除くｌｏｇ（ｎ）−１個の中間ノードｖ（ｖ＝１，…，ｌｏｇ（ｎ）−１）に各１つ、および根ノードに対応付けられた２つの有向グラフのいずれかである。従って、合計で最大ｌｏｇ（ｎ）＋１個の有向グラフＨが存在する。そして、各有向グラフＨについて、契約者が保持すべき鍵数の最大値は、ある座標点を出発点とする有向パスに含まれる有向枝の最大数以下となる。従って、有向枝の最大数がパラメータｋに等しいことから、各契約者が保持すべき鍵数は、最悪でもｋ＊（ｌｏｇ（ｎ）＋１）以下になる。また、漸近的には、Ｏ（ｋ＊ｌｏｇ（ｎ））になる。
【０１８４】
より正確には、有向グラフＨを生成する際に用いる線分の長さＬｖについて、ｎ（ｘ−１）／ｋ＜Ｌｖ≦ｎｘ／ｋを満たすｘ（１≦ｘ≦ｋ）を算出することで得られる。そこで、論理二分木ＢＴ上の各中間ノードに対してｘを算出すると、各契約者が保持すべき鍵数の上限は、下式（１１）により表現することができる。その結果、ＡＩ方式では、各契約者の計算量が依然として大きいというのが一つの問題である。
【０１８５】
【数９】
0005286748.tif 000010
【０１８６】
次に、各契約者がセット鍵を生成する際に必要な計算量について考察する。各契約者に要求される計算量を決める支配的な要因は、所望の中間鍵を生成するのに要するＰＲＳＧの演算回数にある。この最悪値は、有向グラフＨのルートから最も遠いリーフ（有向枝が出ていない座標点）に至る有向パスに含まれる有向枝の本数により表現される。この最悪値が最大になるのは、有向グラフＨ（１→ｎ）の座標点［１，１］から［１，ｎ］に至る有向パスである。いま、ｔ＝ｎ１／ｋ−１とおき、距離ｂのジャンプ（有向枝に相当）をａ回連続して実行する処理をＪ（ａ，ｂ）と表現すると、この有向パスは、下式（１２）のように表現される。尚、ＰＲＳＧを利用しない方式であっても同様である。
【０１８７】
【数１０】
0005286748.tif 000011
【０１８８】
つまり、この有向パスを構成する有向枝の数（ジャンプの回数）は、下式（１３）となる。例えば、契約者数ｎ＝６４、パラメータｋ＝６の場合、有向グラフＨ（１→６４）の座標点［１，１］から［１，６４］に達する有向パスには、１１本の有向枝が存在する。結局、ＡＩ方式では、この有向枝数が多いため、各契約者が実行すべきジャンプの回数、即ち計算量が依然として多いというのがもう一つの問題である。
【０１８９】
【数１１】
0005286748.tif 000012
【０１９０】
これに対し、ＲＣ方式では、有向グラフをより長い有向枝により構成するように改良した点に特徴を有する。例えば、図１８にＲＣ方式の有向グラフＩを示したが、図５に示したＡＩ方式の有向グラフＨに比べて、長さがより長い有向枝が含まれていることが容易に分かる。もちろん、これらの有向グラフは、いずれも同じ論理二分木ＢＴに基づいて構成されており、契約者数ｎ及びパラメータｋも同じである。その結果、ＲＣ方式を適用すると、ＡＩ方式に比べて各契約者に要求される計算量を削減できることが直感的にも明らかである。
【０１９１】
そこで、上記の式（１２）と同様に、ＲＣ方式の有向グラフＩ（１→ｎ）の座標点［１，１］から［１，ｎ］に至る有向パスを表現すると、下式（１４）のように表される。但し、Ｊ（ａ，ｂ）の定義はＡＩ方式と同じである。
【０１９２】
【数１２】
0005286748.tif 000013
【０１９３】
従って、この有向パスを構成する有向枝数（ジャンプ回数）は、ｋ＊（ｎ１／ｋ−１）となり、ＡＩ方式の（２ｋ−１）＊（ｎ１／ｋ−１）に比べて約半分程度に減少していることが分かる。このように、ＲＣ方式を適用することにより、各契約者に要求される計算量を大きく減少させることが可能である。本実施形態は、上記の第１実施形態と同様に、共通鍵方式であるＲＣ方式を公開鍵方式に拡張する技術に特徴がある。また、本実施形態は、主に第１実施形態におけるＡＩ方式の有向グラフＨをＲＣ方式の有向グラフＩに変更した点が相違する。そこで、以下の説明では、この相違点を中心に説明する。
【０１９４】
［鍵配信システム１００の構成］
ここで、本実施形態に係る鍵配信システム１００の構成について説明する。但し、基本的なシステム構成は、図１に示した第１実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム１００に含まれる鍵配信サーバ２０２のハードウェア構成についても、図２に示した鍵配信サーバ１０２のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
【０１９５】
［鍵配信サーバ２０２の機能構成］
そこで、図１７を参照しながら、本実施形態に係る鍵配信サーバ２０２の機能構成について説明する。図１７は、鍵配信サーバ２０２の機能構成を示す説明図である。
【０１９６】
図１７に示すように、鍵配信サーバ２０２は、主に、木構造設定部１０４と、座標軸設定部２０６と、有向グラフ生成部２１０と、初期中間鍵設定部１１２と、鍵生成部１１４と、暗号化部１１６と、通信部１１８と、部分集合決定部１２０とにより構成される。但し、本実施形態の特徴的な構成は、主に、座標軸設定部２０６、及び有向グラフ生成部２１０であり、他の構成要素については、第１実施形態に係る鍵配信サーバ１０２の構成要素と実質的に同一である。従って、座標軸設定部２０６、及び有向グラフ生成部２１０の機能構成のみについて詳細に説明する。
【０１９７】
（座標軸設定部２０６）
まず、座標軸設定部２０６の機能構成について説明する。座標軸設定部２０６は、有向グラフＩを形成するための複数の水平座標軸を設定する手段である。
【０１９８】
まず、座標軸設定部２０６は、集合（１→ｎ−１）に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（１→ｎ−１）の水平座標軸を形成する。また、座標軸設定部２０６は、論理二分木ＢＴ上のｖ∈ＢＴＲである中間ノードｖについて、中間ノードｖに対応付けられた集合（ｌｖ→ｒｖ−１）に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の座標点に対応付け、集合（ｌｖ→ｒｖ−１）の水平座標軸を形成する。なお、座標軸設定部２０６は、ｖ∈ＢＴＲである全てのｖに対して集合（ｌｖ→ｒｖ−１）の水平座標軸を形成する。
【０１９９】
次いで、座標軸設定部２０６は、集合（２←ｎ）に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（２←ｎ）の水平座標軸を形成する。また、座標軸設定部２０６は、集合（ｌｖ＋１←ｒｖ）に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合（ｌｖ＋１←ｒｖ）の水平座標軸を形成する。なお、座標軸設定部２０６は、ｖ∈ＢＴＲである全てのｖに対して集合（ｌｖ＋１←ｒｖ）の水平座標軸を形成する。
【０２００】
次いで、座標軸設定部２０６は、集合（１→ｎ−１）の水平座標軸の右端に位置する座標点の右側に２つの仮座標点を配置する。また、座標軸設定部２０６は、集合（ｌｖ→ｒｖ−１）の水平座標軸の右端に位置する座標点の右側に２つの仮座標点を配置する。さらに、座標軸設定部２０６は、集合（２←ｎ）の水平座標軸の左端に位置する座標点の左側に２つの仮座標点を配置する。そして、座標軸設定部２０６は、集合（ｌｖ＋１←ｒｖ）の水平座標軸の左端に位置する座標点の左側に２つの仮座標点を配置する。
【０２０１】
以上、座標軸設定部２０６の機能構成について説明した。上記の構成により、座標軸設定部２０６は、ＲＣ方式の有向グラフＩを形成するために必要な複数の水平座標軸を生成することができる。
【０２０２】
（有向グラフ生成部２１０）
次に、有向グラフ生成部２１０の機能について説明する。有向グラフ生成部２１０は、上記の各水平座標軸上に有向グラフＩを生成する手段である。
【０２０３】
まず、有向グラフ生成部２１０は、パラメータｋ（ｋは整数）を設定する。また、有向グラフ生成部２１０は、ｎ（ｘ−１）／ｋ＜ｒｖ−ｌｖ＋１≦ｎｘ／ｋを満たす整数ｘを決定する。但し、ｋ｜ｌｏｇ（ｎ）（以下、ｌｏｇの底は２）と仮定してもよい。また、パラメータｋは、端末装置１２２が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係する量である。
【０２０４】
次いで、有向グラフ生成部２１０は、集合（１→ｎ−１）の水平座標軸上、及び集合（ｌｖ→ｒｖ−１）の水平座標軸上に長さｎｉ／ｋ（ｉ＝０〜ｘ−１）を有する右方向を向いた有向枝を形成する。さらに、有向グラフ生成部２１０は、集合（２←ｎ）の水平座標軸上、及び集合（ｌｖ＋１←ｒｖ）の水平座標軸上に長さｎｉ／ｋ（ｉ＝０〜ｘ−１）を有する左方向を向いた有向枝を形成する。同様にして、有向グラフ生成部２１０は、全てのｖに対応する上記の水平座標軸上に有向枝を形成する。
【０２０５】
具体的には、集合（１→ｎ−１）の水平座標軸上、及び集合（ｌｖ→ｒｖ−１）の水平座標軸上について、集合（１→ｎ−１）又は集合（ｌｖ→ｒｖ−１）の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最左の座標点を始点とする。さらに、最右の座標点の右に２つの仮座標点を配置する。次いで、カウンタｉを０〜ｘ−１まで動かしながら下記の操作を行う。始点から開始し、その座標点からｎｉ／ｋだけ離れた座標点へのジャンプを続け、仮座標点に到達するか、次のジャンプが仮座標点を超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する。集合（２←ｎ）の水平座標軸上、及び集合（ｌｖ＋１←ｒｖ）についても同様の処理を行うが左右を逆にした方法により有向枝が生成される点に注意が必要である。
【０２０６】
次いで、有向グラフ生成部２１０は、各水平座標軸上に配置された仮座標点を始端又は終端とする全ての有向枝を消去する。さらに、有向グラフ生成部２１０は、複数の有向枝が一つの座標点に到達する場合、複数の有向枝の中から最長の有向枝のみを残し、他の有向枝を全て消去する。以上の処理により、集合（１→ｎ−１）の有向グラフＨ（１→ｎ−１）、集合（２←ｎ）の有向グラフＨ（２←ｎ）、集合（ｌｖ→ｒｖ−１）の有向グラフＨ（ｌｖ→ｒｖ−１）、及び集合（ｌｖ＋１←ｒｖ）の有向グラフＨ（ｌｖ＋１←ｒｖ）が生成される。
【０２０７】
次いで、有向グラフ生成部２１０は、集合（１→ｎ−１）の水平座標軸の右側に配置された２つの仮座標点の中で、左側に位置する仮座標点を終端とする長さ１の右向き有向枝を有向グラフＨ（１→ｎ−１）に追加する。つまり、有向グラフ生成部２１０は、下式（１５）の処理を実行して集合（１→ｎ）の有向グラフＨ（１→ｎ）を生成する。但し、Ｅ（…）は有向枝の集合を表す。
【０２０８】
【数１３】
0005286748.tif 000014
【０２０９】
以上、有向グラフ生成部２１０の機能構成について説明した。上記の構成により、有向グラフ生成部２１０は、図１８又は図１９のようなＲＣ方式の有向グラフＩを形成することができる。
【０２１０】
［有向グラフＩの生成方法］
ここで、図２０を参照しながら、有向グラフＩの生成方法について説明する。図２０は、有向グラフＩ（ｌｖ→ｒｖ−１）の生成処理の流れを示す説明図である。
【０２１１】
まず、集合（ｌｖ→ｒｖ−１）の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最左の座標点を始点とする。さらに、最右の座標点の右に２つの仮座標点を配置する（Ｓ１４０）。すると、始点から最右の仮座標点までの長さは、Ｌｖ＝ｒｖ−ｌｖ＋１となる。さらに、ｎ（ｘ−１）／ｋ＜Ｌｖ≦ｎｘ／ｋを満たす整数ｘ（１≦ｘ≦ｋ）を算定する。次いで、カウンタｉを０〜ｘ−１まで動かしながら下記の操作を行う。始点から開始し、その座標点からｎｉ／ｋだけ離れた座標点へのジャンプを続け、仮座標点に到達するか、次のジャンプが仮座標点を超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する（Ｓ１４２）。次いで、仮座標点に到達する有向枝を全て消去する（Ｓ１４４）。ある座標点Ｔに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝は消去する（Ｓ１４６）。
【０２１２】
以上、本実施形態に係る鍵配信サーバ２０２の機能構成について説明した、上記の構成により、ＲＣ方式の有向グラフＩを生成することが可能である。図１８及び図１９に有向グラフＩの例を示した。図１８は、契約者数ｎ＝６４、パラメータｋ＝６の条件下で生成された有向グラフＩを示す説明図である。一方、図１９は、契約者数ｎ＝６４、パラメータｋ＝３の条件下で生成された有向グラフＩを示す説明図である。また、契約者数ｎ＝１６、パラメータｋ＝４の場合、図２１のようになる。
【０２１３】
さて、既に述べた通り、本実施形態は、上記の第１実施形態が対象とする基盤技術をＲＣ方式に置き換えた技術である。従って、第１実施形態の情報処理装置１５０に係る技術をＲＣ方式の有向グラフＩに適用させることで、ＲＣ方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置１５０の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第１実施形態の情報処理装置１５０に係る技術をＲＣ方式の有向グラフＩに適用すると、例えば、図２１に示すような有向グラフＩ、及び各ノードに対応する識別子が設定される。
【０２１４】
［鍵設定処理の流れ］
ここで、図２２を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図２２は、本実施形態に係る鍵設定処理の流れを示す説明図である。
【０２１５】
図２２に示すように、公開パラメータとして、ｎ，λ，ｋ，ＨＩＢＥ−ｐａｒａｍｓが設定されて公開される（Ｓ５０２）。次いで、セットシステムＳＳが設定されて公開される（Ｓ５０４）。次いで、有向グラフＩが設定（生成）され、当該有向グラフＩの各ノードに識別子が設定されて公開される（Ｓ５０６）。次いで、各部分集合に対応する鍵が設定（導出）される（Ｓ５０８）。次いで、各ユーザの端末装置１２２に対して所定の鍵が提供（送信）される（Ｓ５１０）。以上の流れに従って鍵設定処理が実行される。
【０２１６】
［鍵配信処理の流れ］
ここで、図２３を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図２３は、本実施形態に係る鍵配信処理の流れを示す説明図である。
【０２１７】
図２３に示すように、排除契約者の集合Ｒ、及び許諾契約者の集合Ｎ＼Ｒが設定される（Ｓ５２２）。次いで、和集合が許諾契約者の集合Ｎ＼Ｒと一致するｍ個の部分集合Ｓを設定する（Ｓ５２４）。次いで、コンテンツ鍵ｍｅｋが設定され、設定された各部分集合Ｓｉについて暗号文が生成される（Ｓ５２６）。次いで、許諾契約者の集合Ｎ＼Ｒ又は各部分集合Ｓｉの情報とｍ個の暗号文が送信される（Ｓ５２８）。以上の流れに従って鍵配信処理が実行される。
【０２１８】
＜第３実施形態＞
以下、図面を参照しながら、本発明の第３実施形態に係る鍵配信システム１００の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第１実施形態に係る鍵配信システム１００と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
【０２１９】
［第３実施形態の特徴］
ここで、本発明の第３実施形態と上記の第１実施形態との相違点について簡単に説明する。まず、上記の第１実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第１実施形態がＡＩ方式を基盤とするのに対し、本実施形態はＲＳ方式に適用する点が異なる。ＡＩ方式が抱える問題については、上記の第２実施形態に関する説明の中で詳細に説明したが、その一つである各契約者が保持すべき鍵数が大きいという問題について解決手段を提供するのがＲＳ方式である。ＲＳ方式は、ＡＩ方式の有向グラフＨにおいて有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、ＲＳ方式は、ＡＩ方式と同程度の演算量を維持しながら、各契約者が保持すべき鍵数を削減しているのである。
【０２２０】
［鍵配信システム１００の構成］
まず、本実施形態に係る鍵配信システム１００の構成について説明する。但し、基本的なシステム構成は、図１に示した第１実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム１００に含まれる鍵配信サーバ３０２のハードウェア構成についても、図２に示した鍵配信サーバ１０２のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
【０２２１】
［鍵配信サーバ３０２の機能構成］
そこで、図２４を参照しながら、本実施形態に係る鍵配信サーバ３０２の機能構成について説明する。図２４は、本実施形態に係る鍵配信サーバ３０２の機能構成を示す説明図である。
【０２２２】
図２４に示すように、鍵配信サーバ３０２は、主に、木構造設定部１０４と、座標軸設定部１０６と、仮有向グラフ生成部３０８と、有向グラフ生成部３１０と、初期中間鍵設定部１１２と、鍵生成部１１４と、暗号化部１１６と、通信部１１８と、部分集合決定部１２０とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部３０８、及び有向グラフ生成部３１０であり、他の構成要素については、第１実施形態に係る鍵配信サーバ１０２の構成要素と実質的に同一である。従って、仮有向グラフ生成部３０８、及び有向グラフ生成部３１０の機能構成のみについて詳細に説明する。
【０２２３】
（仮有向グラフ生成部３０８）
まず、仮有向グラフ生成部３０８の機能構成について説明する。仮有向グラフ生成部３０８は、上記の第１実施形態に係る有向グラフ生成部１１０と実質的に同一の機能構成を有し、ＡＩ方式の有向グラフＨと同じ形状を有する仮有向グラフＩ’を生成する機能を有する。例えば、ｎ＝６４、パラメータｋ＝６の場合、仮有向グラフＩ’は、図５に示す有向グラフＨと一致する。
【０２２４】
（有向グラフ生成部３１０）
次に、有向グラフ生成部３１０について説明する。有向グラフ生成部３１０は、仮有向グラフＩ’を構成する複数の有向枝の一部を置換して有向グラフＩを生成する機能を有する。まず、有向グラフ生成部３１０は、仮有向グラフＩ’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスＬＰ（Ｌｏｎｇｅｓｔ  Ｐａｔｈ）と呼ぶことにする。そして、有向グラフ生成部３１０は、全ての有向パスの有向枝数が最長有向パスＬＰの有向枝数を超えないという条件の下で、仮有向グラフＩ’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフＩを生成する。
【０２２５】
（有向グラフＩの生成方法）
まず、図２５〜図２９を参照しながら、有向グラフＩの生成方法について説明する。図２５は、有向グラフＩを生成する処理の全体的な流れを示した説明図である。図２６は、仮有向グラフＩ’の生成処理を示した説明図である。図２７は、最長有向パスＬＰを抽出する処理の流れを示した説明図である。図２８は、最長有向パスＬＰ以外の有向パスの中から最長の有向パスＰＬＰ（Ｐｅｒｔｉａｌｌｙ  Ｌｏｎｇｅｓｔ  Ｐａｔｈ）を抽出する処理の流れを示した説明図である。図２９は、仮有向グラフＩ’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
【０２２６】
図２５に示すように、まず、仮有向グラフ生成部３０８により、仮有向グラフＩ’が生成される（Ｓ１４０）。次いで、仮有向グラフＩ’を形成する有向パスの中から最長有向パスＬＰが抽出される（Ｓ１４２）。次いで、仮有向グラフＩ’の最長有向パスＬＰ以外の有向パスの中から最長の有向パスＰＬＰが抽出される（Ｓ１４４）。尚、各部分集合に対応する仮有向グラフＩ’について最長の有向パスＰＬＰが抽出されてもよい。次いで、仮有向グラフＩ’の有向パスを構成する有向枝がより短い有向枝に置換される（Ｓ１４６）。このとき、全ての有向パスの有向枝数が最長有向パスＬＰの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、ＡＩ方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。
【０２２７】
以下、図２５に示した各ステップについて、より詳細に説明する。
【０２２８】
（Ｓ１４０の詳細）
まず、図２６を参照しながら、仮有向グラフＩ’の生成処理について説明する。図２６は、仮有向グラフＩ’（ｌｖ→ｒｖ−１）の生成処理の流れを示す説明図である。
【０２２９】
まず、集合（ｌｖ→ｒｖ−１）の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最右の座標点の右側と左側とに各々１つの仮座標点（Ｓｔａｒｔ，Ｅｎｄ）を配置する。すると、最左の仮座標点Ｓｔａｒｔから最右の仮座標点Ｅｎｄまでの長さは、Ｌｖ＝ｒｖ−ｌｖ＋１となる。さらに、ｎ（ｘ−１）／ｋ＜Ｌｖ≦ｎｘ／ｋを満たす整数ｘ（１≦ｘ≦ｋ）を算定する（Ｓ１５０）。この処理は、主に、座標軸設定部１０６により実行される。
【０２３０】
次いで、カウンタｉを０〜ｘ−１まで動かしながら下記の操作を行う。仮座標点Ｓｔａｒｔから開始し、その座標点からｎｉ／ｋだけ離れた座標点へのジャンプを続け、仮座標点Ｅｎｄに到達するか、次のジャンプが仮座標点Ｅｎｄを超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する（Ｓ１５２）。次いで、仮座標点に到達する有向枝を全て消去する（Ｓ１５４）。さらに、ある座標点Ｔに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝は消去する（Ｓ１５６）。この処理は、主に、仮有向グラフ生成部３０８により実行される。
【０２３１】
（Ｓ１４２の詳細）
次に、図２７を参照しながら、最長有向パスＬＰを抽出するステップ（Ｓ１６０）について詳細に説明する。ここで、以下に示す２つの表記を導入する。
【０２３２】
・ＤＤＴ      ：  最長有向パスＬＰの有向枝数を示す。
・Ｊ（ａ，ｂ）：  長さｂの有向枝がａ本連続して存在することを示す。
【０２３３】
まず、ｔ＝ｎ１／ｋ−１とおく。次いで、仮有向グラフＩ’（１→ｎ）の座標点［１，１］から座標点［１，ｎ］までの有向パスＰ（［１，１］，［１，ｎ］）を考える。有向パスＰ（［１，１］，［１，ｎ］）は、Ｊ（ｔ，１），Ｊ（ｔ，ｎ１／ｋ），…，Ｊ（ｔ，ｎ（ｋ−２）／ｋ），Ｊ（ｔ−１，ｎ（ｋ−１）／ｋ），Ｊ（ｔ，ｎ（ｋ−２）／ｋ），…，Ｊ（ｔ，ｎ１／ｋ），Ｊ（ｔ＋１，１）と表現される。この有向パスを最長有向パスＬＰと呼ぶ。このとき、最長有向パスＬＰの有向枝数ＤＤＴは、ＤＤＴ＝（２ｋ−１）＊（ｎ１／ｋ−１）となる。次いで、最長有向パスＬＰを構成する全ての有向枝に対してａｃｔｉｖｅマークを設定する（Ｓ１６０）。
【０２３４】
（Ｓ１４４の詳細）
次に、図２８を参照しながら、最長有向パスＬＰを含む仮有向グラフＩ’以外の全ての部分集合に対応する仮有向グラフＩ’について、最長の有向パスＰＬＰを抽出する処理（Ｓ１６２〜Ｓ１７６）について説明する。ここで、以下に示す２つの表記を導入する。
【０２３５】
・ＣＰ（Ｃｕｒｒｅｎｔ  Ｐａｔｈ）  ：  参照中の有向パス（現在パス）
・＃ＪＰ（ＣＰ）                    ：  現在パスの有向枝数
【０２３６】
まず、有向グラフＩ’の始点から終点への現在パスＣＰを決定する。このとき、現在パスが有向グラフＩ’（ａ→ｂ）に含まれる場合は、有向パスＰ（［ａ，ａ］，［ａ，ｂ］）を現在パスＣＰとし、有向グラフＩ’（ａ←ｂ）に含まれる場合は、有向パスＰ（［ｂ，ｂ］，［ｂ，ａ］）を現在パスＣＰとする（Ｓ１６２）。次いで、現在パスＣＰを構成する有向枝のうち、最長の有向枝を選択して、その長さをＪとする（Ｓ１６４）。次いで、Ｊ≦１か否かを判断する（Ｓ１６６）。
【０２３７】
Ｊ≦１である場合、現在パスＣＰを最長の有向パスＰＬＰと決定して、現在パスＣＰに含まれる全ての有向枝にａｃｔｉｖｅマークを設定する（Ｓ１７６）。Ｊ＞１である場合、＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴか否かを判断する（Ｓ１６８）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴでない場合、現在パスＣＰを有向パスＰＬＰと決定して、現在パスに含まれる全ての有向枝にａｃｔｉｖｅマークを設定する（Ｓ１７６）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴである場合、Ｊ＝ｎｊ／ｋとなる自然数ｊを算出する（Ｓ１７０）。
【０２３８】
次いで、現在パスＣＰに含まれる長さＪの有向枝の中で現在パスＣＰの始点から最も遠い有向枝を抽出する（Ｓ１７２）。ステップＳ１７２で抽出された有向枝の始点から伸びたｔ個の長さｎ（ｊ−１）／ｋの有向枝の直後にｎ（ｊ−１）／ｋの長さを有する１つの有向枝を追加し、ステップＳ１７２で抽出された有向枝を除去し（Ｓ１７４）、ステップＳ１６２に戻って上記の処理を繰り返し実行する。
【０２３９】
なお、ステップＳ１６２〜ステップＳ１７４の間に生じるループ処理は、有向グラフＩ’の始点から終点への有向パスが全て長さ１の有向枝で構成されるか、又は、それ以上の有向枝の置換を実行することで、その有向パスを構成する有向枝数がＤＤＴを超えてしまう場合にループ処理を終了する。
【０２４０】
（Ｓ１４６の詳細）
次に、図２９を参照しながら、仮有向グラフＩ’に含まれる有向枝を短い有向枝に置換する処理（Ｓ１８０〜Ｓ２０２）について詳細に説明する。
【０２４１】
まず、グラフ中のａｃｔｉｖｅかつ、未実施（ｄｏｎｅマークが付いていない）有向枝のうち、長さＪ’が最長の有向枝を抽出する。もし、最大の有向枝が複数存在する場合は、仮有向グラフＩ’の始点から最も遠い有向枝を選択する（Ｓ１８０）。ここで選択された有向枝をＷＪ（Ｗｏｒｋｉｎｇ  Ｊｕｍｐ）と呼ぶことにする。また、有向枝ＷＪの始点をＷＪＳ、終点をＷＪＥと呼ぶことにする。さらに、仮有向グラフＩ’の始点からＷＪＳまでの有向パスに含まれる有向枝数をＤと表記する。
【０２４２】
次いで、有向枝の長さＪ’がＪ’≦１であるか否かを判断する（Ｓ１８２）。Ｊ’≦１である場合、ａｃｔｉｖｅマークの付いていない有向枝を全て消去し、ａｃｔｉｖｅマークが付いている有向枝を全て集めたものをＥ（Ｉ（ａ→ｂ））又はＥ（Ｉ（ａ←ｂ））と設定する（Ｓ２０２）。逆に、Ｊ’≦１でない場合、ＷＪＳからＷＪＥ−１までの有向パスを現在パスＣＰと設定する（Ｓ１８４）。但し、ＷＪＥ−１は、ＷＪＥの１つ手前の要素を表す。
【０２４３】
次いで、現在パスＣＰに含まれる有向枝の中から最長の有向枝を抽出し、その長さをＪとする（Ｓ１８６）。次いで、有向枝の長さＪがＪ≦１か否かを判断する（Ｓ１８８）。Ｊ≦１である場合、現在パスＣＰに含まれる全ての有向枝にａｃｔｉｖｅマークを付ける（Ｓ１９８）。そして、ＷＪにｄｏｎｅマークを付け（Ｓ２００）、ステップＳ１８０の処理に戻る。逆に、Ｊ≦１でない場合、＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄであるか否かを判断する（Ｓ１９０）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄでない場合、ステップＳ１９８及びＳ２００の処理を経てステップＳ１８０の処理に戻る。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄである場合、Ｊ＝ｎｊ／ｋを満たすｊを算出する（Ｓ１９２）。
【０２４４】
次いで、現在パスＣＰに含まれる長さＪの有向枝が複数存在する場合、現在パスＣＰの始点から最も遠い位置にある有向枝を抽出する（Ｓ１９４）。次いで、ステップＳ１９４で抽出された有向枝の始点から伸びたｎ１／ｋ−１個の長さｎ（ｊ−１）／ｋの有向枝の直後にｎ（ｊ−１）／ｋの長さを有する１つの有向枝を追加し、ステップＳ１９４で抽出された有向枝を消去する（Ｓ１９６）。そして、ステップＳ１８４の処理に戻る。
【０２４５】
但し、ステップＳ１８４〜Ｓ１９６の間に生じるループ処理は、ＷＪＳからＷＪＥ−１への有向パスが全て長さ１の有向枝で構成されるか、又は、それ以上の有向枝を置換することによってＷＪＳからＷＪＥ−１への有向パスに含まれる有向枝数がＤＤＴ−Ｄを超えてしまう場合に終了する。また、上記のステップＳ１８０〜Ｓ２００の間に生じるループ処理は、仮有向グラフＩ’に含まれる有向枝の中から、ｄｏｎｅが設定されておらず、かつ、長さが２以上の有向枝が全てなくなった時点で終了する。
【０２４６】
以上、本実施形態に係る有向グラフＩの生成方法について説明した。上記の方法を用いると、例えば、図３０に示すような有向グラフＩが生成される。また、契約者数ｎ＝１６、パラメータｋ＝４の場合、図３１に示すような有向グラフＩが生成される。
【０２４７】
さて、既に述べた通り、本実施形態は、上記の第１実施形態が対象とする基盤技術をＲＳ方式に置き換えた技術である。従って、第１実施形態の情報処理装置１５０に係る技術をＲＳ方式の有向グラフＩに適用させることで、ＲＳ方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置１５０の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第１実施形態の情報処理装置１５０に係る技術をＲＳ方式の有向グラフＩに適用すると、例えば、図３１に示すような有向グラフＩ、及び各ノードに対応する識別子が設定される。
【０２４８】
［鍵設定処理の流れ］
ここで、図３２を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図３２は、本実施形態に係る鍵設定処理の流れを示す説明図である。
【０２４９】
図３２に示すように、公開パラメータとして、ｎ，λ，ｋ，ＨＩＢＥ−ｐａｒａｍｓが設定されて公開される（Ｓ７０２）。次いで、セットシステムＳＳが設定されて公開される（Ｓ７０４）。次いで、有向グラフＩが設定（生成）され、当該有向グラフＩの各ノードに識別子が設定されて公開される（Ｓ５０６）。次いで、各部分集合に対応する鍵が設定（導出）される（Ｓ７０８）。次いで、各ユーザの端末装置１２２に対して所定の鍵が提供（送信）される（Ｓ７１０）。以上の流れに従って鍵設定処理が実行される。
【０２５０】
［鍵配信処理の流れ］
ここで、図３３を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図３３は、本実施形態に係る鍵配信処理の流れを示す説明図である。
【０２５１】
図３３に示すように、排除契約者の集合Ｒ、及び許諾契約者の集合Ｎ＼Ｒが設定される（Ｓ７２２）。次いで、和集合が許諾契約者の集合Ｎ＼Ｒと一致するｍ個の部分集合Ｓを設定する（Ｓ７２４）。次いで、コンテンツ鍵ｍｅｋが設定され、設定された各部分集合Ｓｉについて暗号文が生成される（Ｓ７２６）。次いで、許諾契約者の集合Ｎ＼Ｒ又は各部分集合Ｓｉの情報とｍ個の暗号文が送信される（Ｓ７２８）。以上の流れに従って鍵配信処理が実行される。
【０２５２】
＜第４実施形態＞
以下、図面を参照しながら、本発明の第４実施形態に係る鍵配信システム１００の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第１実施形態に係る鍵配信システム１００と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
【０２５３】
［第４実施形態の特徴］
ここで、本発明の第４実施形態と上記の第１実施形態との相違点について簡単に説明する。まず、上記の第１実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第１実施形態がＡＩ方式を基盤とするのに対し、本実施形態はＲＣＳ方式に適用する点が異なる。ＲＣＳ方式は、ＲＣ方式と同様に、より長い有向枝を用いて仮有向グラフを生成した後、仮有向グラフの中で、有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、ＲＣＳ方式は、ＡＩ方式に比べ、鍵生成に要する演算量と各契約者が保持すべき鍵数とを削減しているのである。
【０２５４】
［鍵配信システム１００の構成］
ここで、本実施形態に係る鍵配信システム１００の構成について説明する。但し、基本的なシステム構成は、図１に示した第１実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム１００に含まれる鍵配信サーバ４０２のハードウェア構成についても、図２に示した鍵配信サーバ１０２のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
【０２５５】
［鍵配信サーバ４０２の機能構成］
そこで、図３４を参照しながら、本実施形態に係る鍵配信サーバ４０２の機能構成について説明する。図３４は、本実施形態に係る鍵配信サーバ４０２の機能構成を示す説明図である。
【０２５６】
図３４に示すように、鍵配信サーバ４０２は、主に、木構造設定部１０４と、座標軸設定部２０６と、仮有向グラフ生成部４０８と、有向グラフ生成部４１０と、初期中間鍵設定部１１２と、鍵生成部１１４と、暗号化部１１６と、通信部１１８と、部分集合決定部１２０とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部４０８、及び有向グラフ生成部４１０であり、他の構成要素については、第１又は第２実施形態に係る鍵配信サーバ１０２の構成要素と実質的に同一である。従って、仮有向グラフ生成部４０８、及び有向グラフ生成部４１０の機能構成のみについて詳細に説明する。
【０２５７】
（仮有向グラフ生成部４０８）
まず、仮有向グラフ生成部４０８の機能構成について説明する。仮有向グラフ生成部４０８は、上記の第２実施形態に係る有向グラフ生成部２１０と実質的に同一の機能構成を有し、ＲＣ方式の有向グラフＩと同じ形状を有する仮有向グラフＩ’を生成する機能を有する。例えば、ｎ＝６４、パラメータｋ＝６の場合、図３５に示す仮有向グラフＩ’は、図１８に示す有向グラフＩと一致する。
【０２５８】
（有向グラフ生成部４１０）
次に、有向グラフ生成部４１０について説明する。有向グラフ生成部４１０は、仮有向グラフＩ’を構成する複数の有向枝の一部を置換して有向グラフＩを生成する機能を有する。まず、有向グラフ生成部４１０は、仮有向グラフＩ’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスＬＰ（Ｌｏｎｇｅｓｔ  Ｐａｔｈ）と呼ぶことにする。そして、有向グラフ生成部３１０は、全ての有向パスの有向枝数が最長有向パスＬＰの有向枝数を超えないという条件の下で、仮有向グラフＩ’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフＩを生成する。
【０２５９】
（有向グラフＩの生成方法）
まず、図３６〜図３９を参照しながら、有向グラフＩの生成方法について説明する。図３６は、有向グラフＩを生成する処理の全体的な流れを示した説明図である。図３７は、最長有向パスＬＰを抽出する処理の流れを示した説明図である。図３８は、最長有向パスＬＰ以外の有向パスの中から最長の有向パスＰＬＰ（Ｐｅｒｔｉａｌｌｙ  Ｌｏｎｇｅｓｔ  Ｐａｔｈ）を抽出する処理の流れを示した説明図である。図３９は、仮有向グラフＩ’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
【０２６０】
図３６に示すように、まず、仮有向グラフＩ’を形成する有向パスの中から最長有向パスＬＰが抽出される（Ｓ１４２）。次いで、仮有向グラフＩ’の最長有向パスＬＰ以外の有向パスの中から最長の有向パスＰＬＰが抽出される（Ｓ１４４）。なお、各部分集合に対応する仮有向グラフＩ’について最長の有向パスＰＬＰが抽出されてもよい。次いで、仮有向グラフＩ’の有向パスを構成する有向枝がより短い有向枝に置換される（Ｓ１４６）。このとき、全ての有向パスの有向枝数が最長有向パスＬＰの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、ＲＣ方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。以下、図３６に示した各ステップについて、より詳細に説明する。
【０２６１】
（Ｓ１４２の詳細）
図３７を参照しながら、最長有向パスＬＰを抽出するステップ（Ｓ１６０）について詳細に説明する。ここで、以下に示す２つの表記を導入する。
【０２６２】
・ＤＤＴ      ：  最長有向パスＬＰの有向枝数を示す。
・Ｊ（ａ，ｂ）：  長さｂの有向枝がａ本連続して存在することを示す。
【０２６３】
まず、ｔ＝ｎ１／ｋ−１とおく。次いで、仮有向グラフＩ’（１→ｎ）の座標点［１，１］から座標点［１，ｎ］までの有向パスＰ（［１，１］，［１，ｎ］）を考える。有向パスＰ（［１，１］，［１，ｎ］）は、Ｊ（ｔ，ｎ（ｋ−１）／ｋ），Ｊ（ｔ，ｎ（ｋ−２）／ｋ），…，Ｊ（ｔ，ｎ１／ｋ），Ｊ（ｔ，ｎ０／ｋ）と表現される。この有向パスを最長有向パスＬＰと呼ぶ。このとき、最長有向パスＬＰの有向枝数ＤＤＴは、ＤＤＴ＝ｋ＊（ｎ１／ｋ−１）となる。次いで、最長有向パスＬＰを構成する全ての有向枝に対してａｃｔｉｖｅマークを設定する（Ｓ１６０）。
【０２６４】
（Ｓ１４４の詳細）
次に、図３８を参照しながら、最長有向パスＬＰを含む仮有向グラフＩ’以外の全ての部分集合に対応する仮有向グラフＩ’について、最長の有向パスＰＬＰを抽出する処理（Ｓ１６２〜Ｓ１７６）について説明する。ここで、以下に示す２つの表記を導入する。
【０２６５】
・ＣＰ（Ｃｕｒｒｅｎｔ  Ｐａｔｈ）  ：  参照中の有向パス（現在パス）
・＃ＪＰ（ＣＰ）                    ：  現在パスの有向枝数
【０２６６】
まず、仮有向グラフＩ’の始点から終点への現在パスＣＰを決定する。このとき、現在パスが有向グラフＩ’（ａ→ｂ）に含まれる場合は、有向パスＰ（［ａ，ａ］，［ａ，ｂ］）を現在パスＣＰとし、有向グラフＩ’（ａ←ｂ）に含まれる場合は、有向パスＰ（［ｂ，ｂ］，［ｂ，ａ］）を現在パスＣＰとする（Ｓ１６２）。次いで、現在パスＣＰを構成する有向枝のうち、最長の有向枝を選択して、その長さをＪとする（Ｓ１６４）。次いで、Ｊ≦１か否かを判断する（Ｓ１６６）。
【０２６７】
Ｊ≦１である場合、現在パスＣＰを最長の有向パスＰＬＰと決定して、現在パスＣＰに含まれる全ての有向枝にａｃｔｉｖｅマークを設定する（Ｓ１７６）。Ｊ＞１である場合、＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴか否かを判断する（Ｓ１６８）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴでない場合、現在パスＣＰを有向パスＰＬＰと決定して、現在パスに含まれる全ての有向枝にａｃｔｉｖｅマークを設定する（Ｓ１７６）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴである場合、Ｊ＝ｎｊ／ｋとなる自然数ｊを算出する（Ｓ１７０）。
【０２６８】
次いで、現在パスＣＰに含まれる長さＪの有向枝の中で現在パスＣＰの始点から最も遠い有向枝を抽出する（Ｓ１７２）。ステップＳ１７２で抽出された有向枝の始点から伸びたｔ個の長さｎ（ｊ−１）／ｋの有向枝の直後にｎ（ｊ−１）／ｋの長さを有する１つの有向枝を追加し、ステップＳ１７２で抽出された有向枝を除去し（Ｓ１７４）、ステップＳ１６２に戻って上記の処理を繰り返し実行する。
【０２６９】
なお、ステップＳ１６２〜ステップＳ１７４の間に生じるループ処理は、有向グラフＩ’の始点から終点への有向パスが全て長さ１の有向枝で構成されるか、又は、それ以上の有向枝の置換を実行することで、その有向パスを構成する有向枝数がＤＤＴを超えてしまう場合にループ処理を終了する。
【０２７０】
（Ｓ１４６の詳細）
次に、図３９を参照しながら、仮有向グラフＩ’に含まれる有向枝を短い有向枝に置換する処理（Ｓ１８０〜Ｓ２０２）について詳細に説明する。
【０２７１】
まず、グラフ中のａｃｔｉｖｅかつ、未実施（ｄｏｎｅマークが付いていない）有向枝のうち、長さＪ’が最長の有向枝を抽出する。もし、最大の有向枝が複数存在する場合は、仮有向グラフＩ’の始点から最も遠い有向枝を選択する（Ｓ１８０）。ここで選択された有向枝をＷＪ（Ｗｏｒｋｉｎｇ  Ｊｕｍｐ）と呼ぶことにする。また、有向枝ＷＪの始点をＷＪＳ、終点をＷＪＥと呼ぶことにする。さらに、仮有向グラフＩ’の始点からＷＪＳまでの有向パスに含まれる有向枝数をＤと表記する。
【０２７２】
次いで、有向枝の長さＪ’がＪ’≦１であるか否かを判断する（Ｓ１８２）。Ｊ’≦１である場合、ａｃｔｉｖｅマークの付いていない有向枝を全て消去し、ａｃｔｉｖｅマークが付いている有向枝を全て集めたものをＥ（Ｉ（ａ→ｂ））又はＥ（Ｉ（ａ←ｂ））と設定する（Ｓ２０２）。逆に、Ｊ’≦１でない場合、ＷＪＳからＷＪＥ−１までの有向パスを現在パスＣＰと設定する（Ｓ１８４）。但し、ＷＪＥ−１は、ＷＪＥの１つ手前の要素を表す。
【０２７３】
次いで、現在パスＣＰに含まれる有向枝の中から最長の有向枝を抽出し、その長さをＪとする（Ｓ１８６）。次いで、有向枝の長さＪがＪ≦１か否かを判断する（Ｓ１８８）。Ｊ≦１である場合、現在パスＣＰに含まれる全ての有向枝にａｃｔｉｖｅマークを付ける（Ｓ１９８）。そして、ＷＪにｄｏｎｅマークを付け（Ｓ２００）、ステップＳ１８０の処理に戻る。逆に、Ｊ≦１でない場合、＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄであるか否かを判断する（Ｓ１９０）。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄでない場合、ステップＳ１９８及びＳ２００の処理を経てステップＳ１８０の処理に戻る。＃ＪＰ（ＣＰ）＋ｔ≦ＤＤＴ−Ｄである場合、Ｊ＝ｎｊ／ｋを満たすｊを算出する（Ｓ１９２）。
【０２７４】
次いで、現在パスＣＰに含まれる長さＪの有向枝が複数存在する場合、現在パスＣＰの始点から最も遠い位置にある有向枝を抽出する（Ｓ１９４）。次いで、ステップＳ１９４で抽出された有向枝の始点から伸びたｎ１／ｋ−１個の長さｎ（ｊ−１）／ｋの有向枝の直後にｎ（ｊ−１）／ｋの長さを有する１つの有向枝を追加し、ステップＳ１９４で抽出された有向枝を消去する（Ｓ１９６）。そして、ステップＳ１８４の処理に戻る。
【０２７５】
但し、ステップＳ１８４〜Ｓ１９６の間に生じるループ処理は、ＷＪＳからＷＪＥ−１への有向パスが全て長さ１の有向枝で構成されるか、又は、それ以上の有向枝を置換することによってＷＪＳからＷＪＥ−１への有向パスに含まれる有向枝数がＤＤＴ−Ｄを超えてしまう場合に終了する。また、上記のステップＳ１８０〜Ｓ２００の間に生じるループ処理は、仮有向グラフＩ’に含まれる有向枝の中から、ｄｏｎｅが設定されておらず、かつ、長さが２以上の有向枝が全てなくなった時点で終了する。
【０２７６】
以上、本実施形態に係る有向グラフＩの生成方法について説明した。例えば、契約者数ｎ＝６４、パラメータｋ＝６の場合、本実施形態に係る有向グラフＩは、図４０のように表現される。また、契約者数ｎ＝１６、パラメータｋ＝４の場合、本実施形態に係る有向グラフＩは、図４１のように表現される。
【０２７７】
さて、既に述べた通り、本実施形態は、上記の第１実施形態が対象とする基盤技術をＲＣＳ方式に置き換えた技術である。従って、第１実施形態の情報処理装置１５０に係る技術をＲＣＳ方式の有向グラフＩに適用させることで、ＲＣＳ方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置１５０の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第１実施形態の情報処理装置１５０に係る技術をＲＣＳ方式の有向グラフＩに適用すると、例えば、図４１に示すような有向グラフＩ、及び各ノードに対応する識別子が設定される。
【０２７８】
［鍵設定処理の流れ］
ここで、図４２を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図４２は、本実施形態に係る鍵設定処理の流れを示す説明図である。
【０２７９】
図４２に示すように、公開パラメータとして、ｎ，λ，ｋ，ＨＩＢＥ−ｐａｒａｍｓが設定されて公開される（Ｓ９０２）。次いで、セットシステムＳＳが設定されて公開される（Ｓ９０４）。次いで、有向グラフＩが設定（生成）され、当該有向グラフＩの各ノードに識別子が設定されて公開される（Ｓ９０６）。次いで、各部分集合に対応する鍵が設定（導出）される（Ｓ９０８）。次いで、各ユーザの端末装置１２２に対して所定の鍵が提供（送信）される（Ｓ９１０）。以上の流れに従って鍵設定処理が実行される。
【０２８０】
［鍵配信処理の流れ］
ここで、図４３を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図４３は、本実施形態に係る鍵配信処理の流れを示す説明図である。
【０２８１】
図４３に示すように、排除契約者の集合Ｒ、及び許諾契約者の集合Ｎ＼Ｒが設定される（Ｓ９２２）。次いで、和集合が許諾契約者の集合Ｎ＼Ｒと一致するｍ個の部分集合Ｓを設定する（Ｓ９２４）。次いで、コンテンツ鍵ｍｅｋが設定され、設定された各部分集合Ｓｉについて暗号文が生成される（Ｓ９２６）。次いで、許諾契約者の集合Ｎ＼Ｒ又は各部分集合Ｓｉの情報とｍ個の暗号文が送信される（Ｓ９２８）。以上の流れに従って鍵配信処理が実行される。
【０２８２】
以上説明したように、上記各実施形態は、その基盤となるブロードキャスト・エンクリプション方式の有向グラフ、或いは、これに相当する鍵導出規則が異なるとしても、識別子を共通のアルゴリズムに基づいて設定することにより、公開鍵暗号方式に拡張することが可能になる。また、識別子の設定方法を工夫することで公開鍵暗号方式に拡張しているため、基盤となる技術の特性を引き継ぐことが可能になり、ＡＩ方式よりも良好な特性を有するＲＣ方式、ＲＳ方式、ＲＣＳ方式等の効果を継承することができる。もちろん、より効果の高い新たな方式が開発された場合には、本発明に係る技術を適用することで、より効果的な公開鍵暗号方式が実現される。
【０２８３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０２８４】
例えば、上記の論理二分木ＢＴは、上から下に枝が広がる構造を有するものと仮定したが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向けて枝が広がるように構成することも可能である。このような配置に関わる変更は、単純に論理二分木を回転して配置することにより実現されるため、当該変更に係るいずれの構成についても実質的に同一の技術的範囲に属するものと言える。また、仮有向グラフ、及び有向グラフを形成する水平座標軸を左右反転させる変更についても同様である。
【０２８５】
さて、上記の各実施形態に係る鍵配信サーバ１０２は、自身で有向グラフを生成する構成要素を含んでいるが、必ずしもこれに限定されない。例えば、本発明に係る鍵配信サーバ１０２は、所定の有向グラフに関する情報を取得する取得部を備えていてもよく、この場合、木構造設定部１０４、座標軸設定部１０６、仮有向グラフ生成部１０８、及び有向グラフ生成部１１０の一部又は全部を備えている必要はない。
【０２８６】
また、上記の各実施形態に係る鍵配信サーバ１０２は、コンテンツ、コンテンツ鍵、セット鍵、中間鍵、許諾契約者に対応する部分集合の情報、又は有向グラフの情報等を端末装置１２２に配信する通信部１１８を備えているが、これらの情報を提供するために常にネットワークを利用するとは限らない。例えば、鍵配信サーバ１０２は、通信部１１８に代えて、記録媒体に情報を記録するための記録部を備えていてもよい。
【図面の簡単な説明】
【０２８７】
【図１】本発明の各実施形態に係る鍵配信システムの構成を示す説明図である。
【図２】同実施形態に係る鍵配信サーバ及び端末装置のハードウェア構成を示す説明図である。
【図３】本発明の第１実施形態に係る鍵配信サーバの機能構成を示す説明図である。
【図４】同実施形態に係る論理二分木の構造を示す説明図である。
【図５】同実施形態に係る有向グラフＨを示す説明図である。
【図６】同実施形態に係る鍵配信方法の流れを示す説明図である。
【図７】同実施形態に係る鍵配信方法の流れを示す説明図である。
【図８】同実施形態に係る鍵配信方法の流れを示す説明図である。
【図９】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図１０】同実施形態に係る情報処理装置の機能構成を示す説明図である。
【図１１】同実施形態に係る識別子の設定方法を示す説明図である。
【図１２】同実施形態に係る識別子の設定方法を示す説明図である。
【図１３】同実施形態に係る鍵設定方法を示す説明図である。
【図１４】同実施形態に係る鍵配信方法を示す説明図である。
【図１５】同実施形態に係る鍵配信方式の応用例を示す説明図である。
【図１６】同実施形態に係る鍵配信方式の応用例を示す説明図である。
【図１７】本発明の第２実施形態に係る鍵配信サーバの構成を示す説明図である。
【図１８】同実施形態に係る有向グラフＩを示す説明図である。
【図１９】同実施形態に係る有向グラフＩを示す説明図である。
【図２０】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図２１】同実施形態に係る識別子の設定方法を示す説明図である。
【図２２】同実施形態に係る鍵設定方法を示す説明図である。
【図２３】同実施形態に係る鍵配信方法を示す説明図である。
【図２４】本発明の第３実施形態に係る鍵配信サーバの構成を示す説明図である。
【図２５】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図２６】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図２７】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図２８】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図２９】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図３０】同実施形態に係る有向グラフＩを示す説明図である。
【図３１】同実施形態に係る識別子の設定方法を示す説明図である。
【図３２】同実施形態に係る鍵設定方法を示す説明図である。
【図３３】同実施形態に係る鍵配信方法を示す説明図である。
【図３４】本発明の第４実施形態に係る鍵配信サーバの構成を示す説明図である。
【図３５】同実施形態に係る仮有向グラフＩ’を示す説明図である。
【図３６】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図３７】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図３８】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図３９】同実施形態に係るグラフ生成方法の流れを示す説明図である。
【図４０】同実施形態に係る有向グラフＩを示す説明図である。
【図４１】同実施形態に係る識別子の設定方法を示す説明図である。
【図４２】同実施形態に係る鍵設定方法を示す説明図である。
【図４３】同実施形態に係る鍵配信方法を示す説明図である。
【符号の説明】
【０２８８】
１００    鍵配信システム
１０２    鍵配信サーバ
１０４    木構造設定部
１０６    座標軸設定部
１０８    仮有向グラフ生成部
１１０    有向グラフ生成部
１１２    初期中間鍵設定部
１１４    鍵生成部
１１６    暗号化部
１１８    通信部
１２０    部分集合決定部
１２２    端末装置
１５０    情報処理装置
１５２    パラメータ設定部
１５４    秘密情報保持部
１５６    鍵設定部
１５８    有向グラフ情報取得部
１６０    識別子設定部
１６２    鍵配信部
１６４    暗号化部
１６６    通信部
２０２    鍵配信サーバ
２０６    座標軸設定部
２１０    有向グラフ生成部
３０２    鍵配信サーバ
３０８    仮有向グラフ生成部
３１０    有向グラフ生成部
４０２    鍵配信サーバ
４０８    仮有向グラフ生成部
４１０    有向グラフ生成部
７０２    コントローラ
７０４    演算ユニット
７０６    入出力インターフェース
７０８    セキュア記憶部
７１０    メイン記憶部
７１２    ネットワークインターフェース
７１６    メディアインターフェース
７１８    情報メディア
【図１】
0005286748.tif 000015
【図２】
0005286748.tif 000016
【図３】
0005286748.tif 000017
【図４】
0005286748.tif 000018
【図５】
0005286748.tif 000019
【図６】
0005286748.tif 000020
【図７】
0005286748.tif 000021
【図８】
0005286748.tif 000022
【図９】
0005286748.tif 000023
【図１０】
0005286748.tif 000024
【図１１】
0005286748.tif 000025
【図１２】
0005286748.tif 000026
【図１３】
0005286748.tif 000027
【図１４】
0005286748.tif 000028
【図１５】
0005286748.tif 000029
【図１６】
0005286748.tif 000030
【図１７】
0005286748.tif 000031
【図１８】
0005286748.tif 000032
【図１９】
0005286748.tif 000033
【図２０】
0005286748.tif 000034
【図２１】
0005286748.tif 000035
【図２２】
0005286748.tif 000036
【図２３】
0005286748.tif 000037
【図２４】
0005286748.tif 000038
【図２５】
0005286748.tif 000039
【図２６】
0005286748.tif 000040
【図２７】
0005286748.tif 000041
【図２８】
0005286748.tif 000042
【図２９】
0005286748.tif 000043
【図３０】
0005286748.tif 000044
【図３１】
0005286748.tif 000045
【図３２】
0005286748.tif 000046
【図３３】
0005286748.tif 000047
【図３４】
0005286748.tif 000048
【図３５】
0005286748.tif 000049
【図３６】
0005286748.tif 000050
【図３７】
0005286748.tif 000051
【図３８】
0005286748.tif 000052
【図３９】
0005286748.tif 000053
【図４０】
0005286748.tif 000054
【図４１】
0005286748.tif 000055
【図４２】
0005286748.tif 000056
【図４３】
0005286748.tif 000057