(57)【特許請求の範囲】
【請求項１】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含む、
暗号システム。
【請求項２】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【請求項３】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含む、
暗号システム。
【請求項４】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【請求項５】
請求項１に記載の暗号システムにおいて、
上記暗号化装置の上記暗号化部は、上記共通鍵で平文を暗号化した暗号文も求め、
上記復号装置の上記復号部は、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理も行う、
暗号システム。
【請求項６】
請求項２に記載の暗号システムにおいて、
上記暗号化装置の上記暗号化部は、上記共通鍵で平文を暗号化した暗号文も求め、
上記復号装置の上記復号部は、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理も行う、暗号システム。
【請求項７】
請求項１から請求項６のいずれかに記載の暗号システムにおいて、
上記暗号システムは、複数の上記復号装置を含み、
複数の上記復号装置のうち少なくとも一つの上記復号装置は、当該復号装置以外の一つ以上の復号装置に上記暗号情報を転送する転送部をさらに含む
暗号システム。
【請求項８】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う、
暗号システム。
【請求項９】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、ブラウザ部と、中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行い、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【請求項１０】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う、
暗号システム。
【請求項１１】
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、ブラウザ部と、中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行い、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【請求項１２】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１３】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１４】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１５】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１６】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１７】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記第１の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記第１の復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第１の復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記第２の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記第２の復号装置の送信部が、上記第３属性情報または上記第３論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第２の復号装置から上記第３属性情報または上記第３論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
を有する暗号通信方法。
【請求項１８】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【請求項１９】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記第１の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記第１の復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第１の復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記第２の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記第２の復号装置の送信部が、上記第３属性情報または上記第３論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第２の復号装置から上記第３属性情報または上記第３論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
を有する暗号通信方法。
【請求項２０】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツとこれに対応する上記暗号情報を上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号情報と上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツと上記暗号情報を受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【請求項２１】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツとこれに対応する上記暗号情報を上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツと上記暗号情報を受信する受信ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【請求項２２】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関す暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツを上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツを受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【請求項２３】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツを上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツを受信する受信ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【請求項２４】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける暗号化装置であって、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部と
を含む暗号化装置。
【請求項２５】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける暗号化装置であって、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部と
を含む暗号化装置。
【請求項２６】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける鍵生成装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成部と
を含む鍵生成装置。
【請求項２７】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける鍵生成装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から生成された属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成部
を含む鍵生成装置。
【請求項２８】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部
を含む復号装置。
【請求項２９】
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部
を含む復号装置。
【請求項３０】
請求項２８または請求項２９に記載の復号装置において、
上記暗号システムが複数の復号装置を含む場合に、
当該復号装置以外の一つ以上の復号装置に上記暗号情報を転送する転送部をさらに含む復号装置。
【請求項３１】
少なくとも、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵でコンテンツを暗号化した暗号化コンテンツとを求める、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、上記暗号化コンテンツと上記暗号情報を記憶している一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う、
復号装置。
【請求項３２】
少なくとも、関数暗号アルゴリズムに則り、コンテンツを暗号化した暗号化コンテンツを求める、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、上記暗号化コンテンツを記憶している一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う、
復号装置。
【請求項３３】
少なくとも、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵でコンテンツを暗号化した暗号化コンテンツとを求める一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおけるコンテンツサーバ装置であって、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部と
を含むコンテンツサーバ装置。
【請求項３４】
少なくとも、関数暗号アルゴリズムに則り、コンテンツを暗号化した暗号化コンテンツを求める一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおけるコンテンツサーバ装置であって、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部と
を含むコンテンツサーバ装置。
【請求項３５】
請求項２４または請求項２５に記載の暗号化装置としてコンピュータを機能させるためのプログラム。
【請求項３６】
請求項２６または請求項２７に記載の鍵生成装置としてコンピュータを機能させるためのプログラム。
【請求項３７】
請求項２８、２９、３１、３２のいずれかに記載の復号装置としてコンピュータを機能させるためのプログラム。
【請求項３８】
請求項３３または請求項３４に記載のコンテンツサーバ装置としてコンピュータを機能させるためのプログラム。
【請求項３９】
請求項３５に記載のプログラム、請求項３６に記載のプログラム、請求項３７に記載のプログラム、請求項３８に記載のプログラム、のうち少なくともいずれかを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信技術に関し、より詳しくは、関数暗号に依拠する暗号通信技術に関する。
【背景技術】
【０００２】
これまで暗号技術として、例えば共通鍵暗号、公開鍵暗号などが知られている。【０００３】
共通鍵暗号は、メッセージの送信者が共通鍵でメッセージを暗号化して暗号化メッセージを求め、受信者が送信者と同じ共通鍵を使って暗号化メッセージを復号してメッセージを得る方式である。このため、送信者と受信者との間で安全に共通鍵を所有する手続きが必要になる。【０００４】
公開鍵暗号は、（１）受信者が一意の公開鍵とそれに対応する一意の秘密鍵を用意し、（２）送信者は受信者の公開鍵でメッセージを暗号化して暗号化メッセージを求め、（３）受信者がその秘密鍵で暗号化メッセージを復号してメッセージを得る方式である。このため、送信者がメッセージを暗号化する前に受信者の公開鍵を入手する必要がある。つまり、受信者が公開鍵を生成しないと暗号化できない。【０００５】
また、近年、述語暗号が提案されている。述語暗号は、送信者による暗号化の過程で暗号メッセージに或る情報Ｘが組み込まれ、当該情報Ｘと特定の関係を満たす情報Ｙを持つ受信者が、暗号メッセージの復号や、メッセージを知ることなくメッセージに関する情報を取得することができる方式である。送信者は、暗号化の際に、必ずしも受信者の持つ情報Ｙを知っている必要はない。また、送信者は、必ずしも、暗号化する前に受信者を特定している必要もない。送信者は、自由に、能動的に、主導権を持って、情報Ｘを決めることができる。講学的に、情報Ｘは属性Ｉ（変数）として、情報Ｙは述語ｆ（命題関数、ブール関数）として表される。復号に際し、情報Ｘと情報Ｙとが満たすべき特定の関係は、例えばｆ(Ｉ)＝Trueである。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ＮＴＴ情報流通プラットフォーム研究所情報セキュリティプロジェクト、“ＮＴＴの暗号要素技術”、インターネット〈URL: http://info.isl.ntt.co.jp/crypt/camellia/technology.html〉［平成２２年７月１５日検索］
【非特許文献２】J. Katz, A. Sahai and B. Waters, "Predicate Encryption Supporting Disjunction, Polynomial Equations, and Inner Products", EUROCRYPT 2008, 146-162.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、柔軟に運用可能な、関数暗号に依拠する暗号通信技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化処理を行う。
鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
復号装置は、復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。【０００９】
あるいは、第１の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化処理を行う。
復号装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。
鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。【００１０】
あるいは、第１の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化処理を行う。
鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
復号装置は、復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。【００１１】
あるいは、第１の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化処理を行う。
復号装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。
鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。【００１２】
第２の観点による本発明の概要は次のとおりである。
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおいて、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
そして、暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化処理を行う。
また、鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
また、復号装置は、復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。そして、この復号装置は、暗号情報を別の復号装置に転送する転送処理も行う。転送する暗号情報は、暗号化装置から送られたものであってもよいし、別の復号装置から転送されたものであってもよい。暗号システムに含まれる復号装置のうち少なくとも一部の復号装置が転送処理を行う機能を持つが、全ての復号装置がこの転送機能を持つことは要求されない。転送された暗号情報を受信した復号装置は、必要に応じて鍵生成装置に復号鍵を生成して貰い、上記復号処理を行う。【００１３】
あるいは、第２の観点による本発明の概要は次のとおりである。
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおいて、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
そして、暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化処理を行う。
また、復号装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。
また、鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
上述の復号装置は、暗号情報を別の復号装置に転送する転送処理も行う。転送する暗号情報は、暗号化装置から送られたものであってもよいし、別の復号装置から転送されたものであってもよい。暗号システムに含まれる復号装置のうち少なくとも一部の復号装置が転送処理を行う機能を持つが、全ての復号装置がこの転送機能を持つことは要求されない。転送された暗号情報を受信した復号装置は、必要に応じて鍵生成装置に復号鍵を生成して貰い、上記復号処理を行う。【００１４】
あるいは、第２の観点による本発明の概要は次のとおりである。
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおいて、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
そして、暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化処理を行う。
また、鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
また、復号装置は、復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。そして、この復号装置は、暗号情報を別の復号装置に転送する転送処理も行う。転送する暗号情報は、暗号化装置から送られたものであってもよいし、別の復号装置から転送されたものであってもよい。暗号システムに含まれる復号装置のうち少なくとも一部の復号装置が転送処理を行う機能を持つが、全ての復号装置がこの転送機能を持つことは要求されない。転送された暗号情報を受信した復号装置は、必要に応じて鍵生成装置に復号鍵を生成して貰い、上記復号処理を行う。【００１５】
あるいは、第２の観点による本発明の概要は次のとおりである。
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおいて、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
そして、暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化処理を行う。
また、復号装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、暗号情報に対する復号処理を行う。
また、鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
上述の復号装置は、暗号情報を別の復号装置に転送する転送処理も行う。転送する暗号情報は、暗号化装置から送られたものであってもよいし、別の復号装置から転送されたものであってもよい。暗号システムに含まれる復号装置のうち少なくとも一部の復号装置が転送処理を行う機能を持つが、全ての復号装置がこの転送機能を持つことは要求されない。転送された暗号情報を受信した復号装置は、必要に応じて鍵生成装置に復号鍵を生成して貰い、上記復号処理を行う。【００１６】
第３の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化処理を行う。
コンテンツサーバ装置は、各暗号化装置から送られた暗号情報および暗号化コンテンツを記憶する処理と、復号装置からの要求に応じて暗号化コンテンツとこれに対応する暗号情報を当該復号装置に送信する送信処理を行う。
鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。
復号装置は、コンテンツサーバ装置に対する暗号化コンテンツの取得要求処理と、復号鍵を用いて、関数暗号アルゴリズムに則り、コンテンツサーバ装置から取得した暗号情報に対する復号処理と、この復号処理で得られた共通鍵を用いて、コンテンツサーバ装置から取得した暗号化コンテンツを復号するコンテンツ取得処理と、暗号化コンテンツから復号されたコンテンツを表示する処理を行う。【００１７】
あるいは、第３の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化処理を行う。
コンテンツサーバ装置は、各暗号化装置から送られた暗号情報および暗号化コンテンツを記憶する処理と、復号装置からの要求に応じて暗号化コンテンツとこれに対応する暗号情報を当該復号装置に送信する送信処理を行う。
復号装置は、コンテンツサーバ装置に対する暗号化コンテンツの取得要求処理と、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、復号鍵を用いて、関数暗号アルゴリズムに則り、コンテンツサーバ装置から取得した暗号情報に対する復号処理と、この復号処理で得られた共通鍵を用いて、コンテンツサーバ装置から取得した暗号化コンテンツを復号するコンテンツ取得処理と、暗号化コンテンツから復号されたコンテンツを表示する処理を行う。
鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号情報の復号に用いる復号鍵を生成する鍵生成処理を行う。【００１８】
あるいは、第３の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化処理を行う。
コンテンツサーバ装置は、各暗号化装置から送られた暗号化コンテンツを記憶する処理と、復号装置からの要求に応じて暗号化コンテンツを当該復号装置に送信する送信処理を行う。
鍵生成装置は、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成処理を行う。
復号装置は、コンテンツサーバ装置に対する暗号化コンテンツの取得要求処理と、復号鍵を用いて、関数暗号アルゴリズムに則り、コンテンツサーバ装置から取得した暗号化コンテンツを復号する復号処理と、暗号化コンテンツから復号されたコンテンツを表示する処理を行う。【００１９】
あるいは、第３の観点による本発明の概要は次のとおりである。
関数暗号を用いる暗号システムは、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含む。
そして、各鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められている。
また、属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められている。
また、属性用変換規則情報と論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている。
暗号化装置は、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じてポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得処理と、第１属性情報または第１論理情報と、鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化処理を行う。
コンテンツサーバ装置は、各暗号化装置から送られた暗号化コンテンツを記憶する処理と、復号装置からの要求に応じて暗号化コンテンツを当該復号装置に送信する送信処理を行う。
復号装置は、コンテンツサーバ装置に対する暗号化コンテンツの取得要求処理と、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得処理と、復号鍵を用いて、関数暗号アルゴリズムに則り、コンテンツサーバ装置から取得した暗号化コンテンツを復号する復号処理と、暗号化コンテンツから復号されたコンテンツを表示する処理を行う。
鍵生成装置は、第２属性情報または第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成処理を行う。
【発明の効果】
【００２０】
本発明に拠れば、変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる属性用変換規則情報と論理式用変換規則情報のうち、暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報または論理情報を得ることから、関数暗号に依拠する暗号通信を柔軟に運用できる。
【図面の簡単な説明】
【００２１】
【図１】第１の観点による各実施形態に関る暗号システムの構成図。
【図２】第１の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その１）。
【図３】第１の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その２）。
【図４】第１の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その３）。
【図５】第１の観点による第１実施形態に関る暗号化装置の機能ブロック図。
【図６】第１の観点による第１実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図７】第１の観点による第１実施形態に関る復号装置の機能ブロック図。
【図８】第１の観点による第１実施形態に関る復号処理の処理手順の詳細を示す図。
【図９】第１の観点による第１実施形態に関る鍵生成装置の機能ブロック図。
【図１０】第１の観点による第１実施形態に関る鍵生成処理の処理手順の詳細を示す図。
【図１１】入力情報または利用者情報からポリシーに対応するスキーマを用いて、属性情報または述語情報を得ることを図解した図。
【図１２】属性指定情報から属性用スキーマを用いて、属性情報を得ることを図解した図。
【図１３】述語指定情報から述語用スキーマを用いて、述語情報を得ることを図解した図。
【図１４】ポリシーの例を示す図。
【図１５】復号鍵テーブルの例を示す図。
【図１６】認証テーブルの例を示す図。
【図１７】利用者情報テーブルの例を示す図。
【図１８】第１の観点による第２実施形態に関る復号装置の機能ブロック図。
【図１９】第１の観点による第２実施形態に関る復号処理の処理手順の詳細を示す図。
【図２０】第１の観点による第２実施形態に関る鍵生成装置の機能ブロック図。
【図２１】第１の観点による第２実施形態に関る鍵生成処理の処理手順の詳細を示す図。
【図２２】第１の観点による第３実施形態に関る暗号化装置の機能ブロック図。
【図２３】第１の観点による第３実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図２４】第１の観点による第３実施形態に関る復号装置の機能ブロック図。
【図２５】第１の観点による第３実施形態に関る復号処理の処理手順の詳細を示す図。
【図２６】第１の観点による第４実施形態に関る復号装置の機能ブロック図。
【図２７】第１の観点による第４実施形態に関る復号処理の処理手順の詳細を示す図。
【図２８】第２の観点による各実施形態に関る暗号システムの構成図。
【図２９】第２の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その１）。
【図３０】第２の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その２）。
【図３１】第２の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その３）。
【図３２】第２の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その４）。
【図３３】第２の観点による第１実施形態に関る暗号化装置の機能ブロック図。
【図３４】第２の観点による第１実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図３５】第２の観点による第１実施形態に関る第１の復号装置の機能ブロック図。
【図３６】第２の観点による第１実施形態に関る第１の復号処理の処理手順の詳細を示す図。
【図３７】第２の観点による第１実施形態に関る第２の復号装置の機能ブロック図。
【図３８】第２の観点による第１実施形態に関る第２の復号処理の処理手順の詳細を示す図。
【図３９】第２の観点による第１実施形態に関る鍵生成装置の機能ブロック図。
【図４０】第２の観点による第１実施形態に関る鍵生成処理の処理手順（第１の復号装置に対応）の詳細を示す図。
【図４１】第２の観点による第１実施形態に関る鍵生成処理の処理手順（第２の復号装置に対応）の詳細を示す図。
【図４２】第２の観点による第２実施形態に関る第１の復号装置の機能ブロック図。
【図４３】第２の観点による第２実施形態に関る第１の復号処理の処理手順の詳細を示す図。
【図４４】第２の観点による第２実施形態に関る第２の復号装置の機能ブロック図。
【図４５】第２の観点による第２実施形態に関る第２の復号処理の処理手順の詳細を示す図。
【図４６】第２の観点による第２実施形態に関る鍵生成装置の機能ブロック図。
【図４７】第２の観点による第２実施形態に関る鍵生成処理の処理手順（第１の復号装置に対応）の詳細を示す図。
【図４８】第２の観点による第２実施形態に関る鍵生成処理の処理手順（第２の復号装置に対応）の詳細を示す図。
【図４９】第２の観点による第３実施形態に関る暗号化装置の機能ブロック図。
【図５０】第２の観点による第３実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図５１】第２の観点による第３実施形態に関る第１の復号装置の機能ブロック図。
【図５２】第２の観点による第３実施形態に関る第１の復号処理の処理手順の詳細を示す図。
【図５３】第２の観点による第３実施形態に関る第２の復号装置の機能ブロック図。
【図５４】第２の観点による第３実施形態に関る第２の復号処理の処理手順の詳細を示す図。
【図５５】第２の観点による第４実施形態に関る第１の復号装置の機能ブロック図。
【図５６】第２の観点による第４実施形態に関る第１の復号処理の処理手順の詳細を示す図。
【図５７】第２の観点による第４実施形態に関る第２の復号装置の機能ブロック図。
【図５８】第２の観点による第４実施形態に関る第２の復号処理の処理手順の詳細を示す図。
【図５９】電子メールシステムやインスタントメッセージングシステムとして実施される場合における、送受信されるデータの構成の例を示す図。
【図６０】第３の観点による各実施形態に関る暗号システムの構成図。
【図６１】第３の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その１）。
【図６２】第３の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その２）。
【図６３】第３の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その３）。
【図６４】第３の観点による各実施形態に関る暗号通信方法の処理手順を示す図（その４）。
【図６５】第３の観点による第１実施形態に関る暗号化装置の機能ブロック図。
【図６６】第３の観点による第１実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図６７】第３の観点による第１実施形態に関るコンテンツサーバ装置の機能ブロック図。
【図６８】第３の観点による第１実施形態に関る復号装置の機能ブロック図。
【図６９】第３の観点による第１実施形態に関る復号処理の処理手順の詳細を示す図。
【図７０】第３の観点による第１実施形態に関る鍵生成装置の機能ブロック図。
【図７１】第３の観点による第１実施形態に関る鍵生成処理の処理手順の詳細を示す図。
【図７２】第３の観点による第２実施形態に関る復号装置の機能ブロック図。
【図７３】第３の観点による第２実施形態に関る復号処理の処理手順の詳細を示す図。
【図７４】第３の観点による第２実施形態に関る鍵生成装置の機能ブロック図。
【図７５】第３の観点による第２実施形態に関る鍵生成処理の処理手順の詳細を示す図。
【図７６】第３の観点による第３実施形態に関る暗号化装置の機能ブロック図。
【図７７】第３の観点による第３実施形態に関る暗号化処理の処理手順の詳細を示す図。
【図７８】第３の観点による第３実施形態に関る復号装置の機能ブロック図。
【図７９】第３の観点による第３実施形態に関る復号処理の処理手順の詳細を示す図。
【図８０】第３の観点による第４実施形態に関る復号装置の機能ブロック図。
【図８１】第３の観点による第４実施形態に関る復号処理の処理手順の詳細を示す図。
【図８２】コンテンツ配信システムとして実施される場合における、送受信されるデータの構成の例を示す図。
【図８３】命題変数PRO(1),PRO(2)と命題変数PRO(3)の否定¬PRO(3)と論理記号∧，∨とを含む標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)を表現する木構造データを例示する図。
【図８４】命題変数PRO(1),PRO(2),PRO(3),PRO(6),PRO(7)と命題変数PRO(4),PRO(5)の否定¬PRO(4),¬PRO(5)と論理記号∧，∨とを含む標準形論理式PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)を表現する木構造データを例示する図。
【発明を実施するための形態】
【００２２】
＜関数暗号の概要＞
近年、関数暗号と呼ばれるＩＤベース暗号の拡張暗号が話題となっている。関数暗号は下記の４つのアルゴリズム(Setup,KeyGen,Enc,Dec)から構成される。プロトコルの概略は下記のとおりである。
《プロトコルFE》
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
・Setup(1λ)→(pk,sk)：セットアップアルゴリズム
セキュリティパラメータ1λを入力とし、公開パラメータpkとマスター鍵skを出力する確率的多項式時間アルゴリズム
・KeyGen(sk,i)→ski：鍵生成アルゴリズム
マスター鍵skと鍵識別子iを入力とし、当該鍵識別子iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズム
・Enc(pk,j,x)→cj：暗号化アルゴリズム
公開パラメータpkと受信者識別子jと暗号化対象の情報（平文）xを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズム
・Dec(pk,ski,cj)→y：復号アルゴリズム
公開パラメータpkと秘密鍵skiと暗号文cjを入力とし、平文yを出力する確率的多項式時間アルゴリズム
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【００２３】
関数暗号では、ＩＤベース暗号の正当性が拡張されており、暗号文の受信者は鍵識別子iを持つ秘密鍵と受信者識別子jを持つ暗号文から平文xに関する何らかの関数fi,j(x)を評価することができるようになっている。即ち、或る関数fi,j(x)が存在し∀i，∀j，∀x∈{0,1}poly(λ)に対して式（Ａ）で表される確率Prがλに関して圧倒的（１との差が無視しうる）であるとき、その関数暗号(Setup,KeyGen,Enc,Dec)は正当であると云う。なお、poly(λ)はλで決まる多項式長を表している。
【数１】
0005422053.tif 000002
【００２４】
特に、或る関係Ｒ(・,・)が存在し、式（Ｂ）で表されるタイプの関数fi,j(x)を持つ関数暗号は様々な暗号を包含している（⊥は正常に復号できなかったことを表す記号である）。
【数２】
0005422053.tif 000003
【００２５】
例えばＩＤベース暗号は式（Ｃ）で表される関数fi,j(x)を持つ関数暗号と定義することができる。
【数３】
0005422053.tif 000004
【００２６】
より高度な関係Ｒ(・,・)を持つ様々な関数暗号が研究されている。このタイプの関数暗号のうち最も汎用性の高いものは属性ベース暗号(attribute-based encryption, ABE)あるいは述語暗号(predicate encryption, PE)等と呼ばれ、よく研究されている。2010年に岡本龍明らは多項式サイズの述語および述語変数の集合に対応し、標準的な暗号学的仮定の下で適応的識別子攻撃に対してＣＣＡ安全が証明できる比較的実用的なこのタイプの関数暗号を提案した（参考文献Ｒ１参照）。
（参考文献Ｒ１）Tatsuaki Okamoto and Katsuyuki Takashima, "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption," In: Advances in Cryptology -- CRYPTO 2010, Lecture Notes in Computer Science, Volume 6223, 191-208, Springer-Verlag, 2010, Full paper: http://eprint.iacr.org/2010/563/
【００２７】
鍵識別子iを述語、受信者識別子jを述語変数のインスタンスとして式（Ｄ）で表される関係Ｒ(・,・)を持つ関数暗号は鍵ポリシー関数暗号と呼ばれる。このとき、暗号文が平文xだけでなく述語変数のインスタンスjも秘匿する事を属性秘匿と云う。
【数４】
0005422053.tif 000005
【００２８】
鍵識別子iを述語変数、受信者識別子jを述語のインスタンスとして式（Ｅ）で表される関係Ｒ(・,・)を持つ関数暗号は暗号文ポリシー関数暗号と呼ばれる。このとき、暗号文が平文xだけでなく述語jも秘匿する事を述語秘匿と云う。
【数５】
0005422053.tif 000006
【００２９】
属性秘匿を持つ鍵ポリシー関数暗号あるいは述語秘匿を持つ暗号文ポリシー関数暗号を述語暗号と呼ばれる（参考文献Ｒ２参照）。
（参考文献Ｒ２）Tatsuaki Okamoto and Katsuyuki Takashima, "Hierarchical Predicate Encryption for Inner-Products," ASIACRYPT 2009: pp.214-231, 2009.
【００３０】
＜閾値ゲート＞
関数暗号における閾値ゲートの構成は、N個の分散情報のうち任意のt個が与えられれば秘密を復元できるが、任意のt-1個以下の分散情報が与えられても秘密を復元できない閾値秘密分散方式、即ちt-out-of-N秘密分散方式を用いて実現される。t-out-of-N秘密分散については参考文献Ｒ３などを参照されたい。t-out-of-N秘密分散方式を用いた閾値ゲートはt-out-of-N閾値ゲートと呼ばれる。t-out-of-N閾値ゲートは入力のN個の条件式のうちt個以上の条件が成立すると真を出力し、それ以外は偽を出力するゲート構造を有する。t-out-of-N閾値ゲートの（出力の）否定は（全入力の）否定の(N-t+1)-out-of-N閾値ゲートと等価である。
（参考文献Ｒ３）A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.
【００３１】
＜秘密鍵検証可能関数暗号＞
関数暗号のうち、秘密鍵skiが鍵識別子iに対して正しく作られていることが納得できるものは、秘密鍵検証可能関数暗号と呼ばれる。鍵生成手続きが正しく行われたことを証明する非対話零知識証明（参考文献Ｒ４参照）を秘密鍵に付加することによって、秘密鍵検証可能関数暗号を構成することができる。秘密鍵検証可能関数暗号を用いれば秘密鍵skiが鍵識別子iに対して正しく作られていることが納得できる。
（参考文献Ｒ４）Jens Groth and Amit Sahai, "Efficient Non-interactive Proof Systems for Bilinear Groups,"Advances in Cryptology - EUROCRYPT 2008, LNCS 4965, pp.415-432, March 2010.
【００３２】
＜暗号文公開検証可能関数暗号＞
関数暗号のうち、暗号文に対してKeyGenアルゴリズムから得られる如何なる鍵を持たなくとも、暗号文が正しく作られていることが納得できるものは暗号文公開検証可能関数暗号と呼ばれる。暗号化手続きが正しく行われたことを証明する非対話零知識証明（上記参考文献Ｒ４参照）を暗号文に付加することによって、暗号文公開検証可能関数暗号を構成することができる。暗号文公開検証可能関数暗号を用いれば暗号文に対して復号可能などの鍵を使っても同じ結果が得られることが納得できる。
【００３３】
＜電子署名＞
電子署名とは次の３つのアルゴリズム(KeyGenΣ,SignΣ,VerifyΣ)のことである。プロトコルの概略は下記のとおりである。
《プロトコルES》
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
・KeyGenΣ(1λ)→(skΣ,pkΣ)：鍵生成アルゴリズム
セキュリティパラメータ1λを入力とし、電子署名検証用公開鍵pkΣと電子署名用秘密鍵skΣを出力する確率的多項式時間アルゴリズム
・SignΣ(skΣ,m)→σ：署名アルゴリズム
電子署名用秘密鍵skΣと署名対象情報mを入力とし、署名σを出力する確率的多項式時間アルゴリズム
・VerifyΣ(pkΣ,m,σ)→0/1：署名検証アルゴリズム
電子署名検証用公開鍵pkΣと署名対象情報mと署名σを入力とし、検証結果(拒絶(0)または受理(1))を出力する確率的多項式時間アルゴリズム
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
【００３４】
なお、適当な暗号学的仮定の下、適応的選択文書攻撃に対して存在的偽造不可が証明可能な電子署名方式が提案されている（例えば、RSA-PSS（参考文献Ｒ５参照））。
（参考文献Ｒ５）藤岡淳、暗号アルゴリズム評価報告書RSA-PSS、日本電信電話株式会社、2001年
【００３５】
次に、関数暗号について概説する。説明に先立ち記号等を定義する。
〔定義〕
行列：「行列」とは演算が定義された集合の元を矩形に並べたものを表す。環の元を要素とするものだけではなく、群の元を要素とするものも「行列」と表現する。
(・)T：(・)Tは・の転置行列を表す。
(・)-1：(・)-1は・の逆行列を表す。
∧：∧は論理積（ＡＮＤ）を表す論理記号である。
∨：∨は論理和（ＯＲ）を表す論理記号である。
¬：¬は否定（ＮＯＴ）を表す論理記号である。
命題変数：命題変数は命題の「真」,「偽」（"false","true"）を要素とする集合｛真，偽｝上の変数である。命題変数及び命題変数の否定を総称してリテラル（literal）と呼ぶ。
論理式：論理式とは数理論理学における命題を表す形式的文法を有する式を意味する。具体的には「真」及び「偽」は論理式であり、命題変数は論理式であり、論理式の否定は論理式であり、論理式と論理式との論理積は論理式であり、論理式と論理式との論理和は論理式である。
Ｚ：Ｚは整数集合を表す。
sec：secはセキュリティパラメータ（sec∈Z, sec>0）を表す。
0*：0*は*個の0からなる列を表す。
1*：1*は*個の１からなる列を表す。
【００３６】
Fq：Fqは位数qの有限体を表す。位数qは１以上の整数であり、例えば、素数や素数のべき乗値を位数qとする。すなわち、有限体Fqの例は素体やそれを基礎体とした拡大体である。なお、有限体Fqが素体である場合の演算は、例えば、位数qを法とする剰余演算によって容易に構成できる。また、有限体Fqが拡大体である場合の演算は、例えば、既約多項式を法とする剰余演算によって容易に構成できる。有限体Fqの具体的な構成方法は、例えば、参考文献１「ISO/IEC 18033-2: Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers」に開示されている。
0F：0Fは有限体Fqの加法単位元を表す。
1F：1Fは有限体Fqの乗法単位元を表す。
δ(i,j)：δ(i,j)はクロネッカーのデルタ関数を表す。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0Fを満たす。
【００３７】
E：Eは有限体Fq上で定義された楕円曲線を表す。Eはアフィン（affine）座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6
（ただし、a1,a2,a3,a4,a6∈Fq）を満たすx,y∈Fqからなる点(x,y)の集合に無限遠点と呼ばれる特別な点Ｏを付加したもので定義される。楕円曲線Ｅ上の任意の２点に対して楕円加算と呼ばれる二項演算＋及び楕円曲線E上の任意の１点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている（例えば、参考文献１、参考文献２「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献３「イアン・Ｆ・ブラケ、ガディエル・セロッシ、ナイジェル・Ｐ・スマート＝著、「楕円曲線暗号」、出版＝ピアソン・エデュケーション、ISBN4-89471-431-0」等参照）。
また、楕円曲線E上の有理点からなる有限集合は位数p(p≧1)の部分群を持つ。例えば、楕円曲線E上の有理点からなる有限集合の要素数を＃Eとし、pを＃Eを割り切る大きい素数とした場合、楕円曲線Eのp等分点からなる有限集合E[p]は、楕円曲線E上の有理点からなる有限集合の部分群を構成する。なお、楕円曲線Eのp等分点とは、楕円曲線E上の点Aのうち、楕円曲線E上での楕円スカラー倍算値p・Aがp・A＝Ｏを満たす点を意味する。
【００３８】
G1, G2, GT：G1, G2,GTは位数qの巡回群を表す。巡回群G1, G2の具体例は、楕円曲線Eのp等分点からなる有限集合E[p]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。また、巡回群GTの具体例は、有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における１のｐ乗根からなる有限集合である。巡回群G1, G2,GTの位数と有限体Fqの位数とを同一とすることで安全性が向上する。
なお、本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。すなわち、χ∈Fq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ1+Ω2∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ1+Ω2∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Fq及びΩ∈GTに対するΩχ∈GTは、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω1,Ω2∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
【００３９】
Ψ：Ψは1以上の整数を表す。
ψ：ψは0以上Ψ以下の整数ψ=0,...,Ψを表す。
λ：λは1以上Ψ以下の整数λ=1,...,Ψを表す。
n(ψ)：n(ψ)は1以上の整数を表す。
ζ(ψ)：ζ(ψ)は0以上の整数を表す。
G1n(ψ)+ζ(ψ)：G1n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積を表す。
G2n(ψ)+ζ(ψ)：G2n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積を表す。
g1, g2,gT：g1, g2, gTは巡回群G, G1, G2, GTの生成元を表す。
V(ψ)：V(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
V*(ψ)：V*(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
【００４０】
eψ：eψは直積G1n(ψ)+ζ(ψ)と直積G2n(ψ)+ζ(ψ)との直積G1n(ψ)+ζ(ψ)×G2n(ψ)+ζ(ψ)を巡回群GTに写す非退化な双線形写像（bilinear map）を表す。双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ*(β=1,...,n(ψ)+ζ(ψ))とを入力とし、巡回群GTの１個の元を出力する。
eψ：G1n(ψ)+ζ(ψ)×G2n(ψ)+ζ(ψ)→GT          …(1)
【００４１】
双線形写像eψは以下の性質を満たす。
［双線形性］すべてのΓ1∈G1n(ψ)+ζ(ψ)，Γ2∈G2n(ψ)+ζ(ψ)及びν，κ∈Fqについて以下の関係を満たす。
eψ(ν・Γ1,κ・Γ2)=eψ(Γ1,Γ2)ν・κ        …(2)
［非退化性］すべてのΓ1∈G1n(ψ)+ζ(ψ)，Γ2∈G2n(ψ)+ζ(ψ)を巡回群GTの単位元に写す写像ではない。
［計算可能性］あらゆる
Γ1∈G1n(ψ)+ζ(ψ)，Γ2∈G2n(ψ)+ζ(ψ)          …(3)
についてeψ(Γ1,Γ2)を効率的に計算するアルゴリズムが存在する。
【００４２】
本形態では、巡回群G1と巡回群G2との直積G1×G2を巡回群GTに写す非退化な双線形写像
Pair:G1×G2→GT          …(4)
を用いて双線形写像eψを構成する。本形態の双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1,...,γn(ψ)+ζ(ψ))と、巡回群G2のn(ψ)+ζ(ψ)個の元γβ*(β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1*,...,γn(ψ)+ζ(ψ)*)との入力に対し、巡回群GTの１個の元を出力する。
eψ：Πβ=1n(ψ)+ζ(ψ)Pair(γβ, γβ*)          …(5)
【００４３】
なお、双線形写像Pairは、巡回群G1の１個の元と巡回群G2の１個の元との組を入力とし、巡回群GTの１個の元を出力する。双線形写像Pairは、以下の性質を満たす。
［双線形性］すべてのΩ1∈G1，Ω2∈G2及びν，κ∈Fqについて以下の関係を満たす。
Pair(ν・Ω1,κ・Ω2)=Pair(Ω1,Ω2)ν・κ      …(6)
［非退化性］すべての
Ω1∈G1，Ω2∈G2          …(7)
を巡回群GTの単位元に写す写像ではない。
［計算可能性］あらゆるΩ1∈G1，Ω2∈G2についてPair(Ω1,Ω2)を効率的に計算するアルゴリズムが存在する。
双線形写像Pairの具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である（例えば、参考文献４「Alfred. J. Menezes，ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS， KLUWER ACADEMIC PUBLISHERS，ISBN0-7923-9368-6，pp. 61-81」等参照）。また、楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))（Ω1∈G1，Ω2∈G2）を双線形写像Pairとして用いてもよい（例えば、参考文献２等参照）。また、ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム（参考文献５「V. S. Miller, “Short Programs for functions on Curves,”1986，インターネット＜http://crypto.stanford.edu/miller/miller.pdf＞」などが存在する。また、ペアリング演算を効率的に行うための楕円曲線や巡回群の構成方法はよく知られている（例えば、参考文献２、参考文献６「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」、参考文献７「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」、参考文献８「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」等参照）。
【００４４】
ai(ψ)(i=1,...,n(ψ)+ζ(ψ))：ai(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai(ψ)の一例は、κ1・g1∈G1をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G1の単位元（加法的に「0」と表現）とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1(ψ)=(κ1・g1,0,0,...,0)
a2(ψ)=(0,κ1・g1,0,...,0)          …(8)
...
an(ψ)+ζ(ψ)(ψ)=(0,0,0,...,κ1・g1)
ここで、κ1は加法単位元0F以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1Fである。基底ベクトルai(ψ)は直交基底であり、巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)は前述のベクトル空間V(ψ)を張る。
【００４５】
ai*(ψ)(i=1,...,n(ψ)+ζ(ψ))：巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai*(ψ)の一例は、κ2・g2∈G2をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G2の単位元（加法的に「0」と表現）とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、基底ベクトルai*(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1*(ψ)=(κ2・g2,0,0,...,0)
a2*(ψ)=(0,κ2・g2,0,...,0)          …(9)
...
an(ψ)+ζ(ψ)*(ψ)=(0,0,0,...,κ2・g2)
ここで、κ2は加法単位元0F以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1Fである。基底ベクトルai*(ψ)は直交基底であり、巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai*(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai*(ψ)は前述のベクトル空間V*(ψ)を張る。
なお、基底ベクトルai(ψ)と基底ベクトルai*(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について
eψ(ai(ψ), aj*(ψ))=gTτ・δ(i,j)           …(10)
を満たす。すなわち、i=jの場合には、式(5)(6)の関係から、
eψ(ai(ψ), aj*(ψ))= Pair(κ1・g1,κ2・g2)・Pair(0, 0)・...・Pair(0, 0)
= Pair(g1, g2)κ1・κ2・Pair(g1, g2)0・0・...・Pair(g1, g2)0・0
= Pair(g1, g2)κ1・κ2=gTτ
を満たす。なお、上付き添え字κ1，κ2はそれぞれκ1，κ2を表す。一方、i≠jの場合には、eψ(ai(ψ), aj*(ψ))=Πi=1n(ψ)+ζ(ψ) Pair(ai(ψ), aj*(ψ))の右辺は、Pair(κ1・g1,κ2・g2)を含まず、Pair(κ1・g1,0)と Pair(0,κ2・g2)とPair(0,0)との積になる。さらに、式(6)の関係からPair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0を満たす。そのため、i≠jの場合には、
eψ(ai(ψ), aj*(ψ))=eψ(g1, g2)0=gT0
を満たす。
特に、τ=κ1・κ2=1Fである場合（例えば、κ1=κ2=1Fの場合）、
e(ai(ψ), aj*(ψ))=gTδ(i,j)           …(11)
を満たす。ここで、gT0=1は巡回群GTの単位元であり、gT1=gTは巡回群GTの生成元である。この場合、基底ベクトルai(ψ)と基底ベクトルai*(ψ)とは双対正規直交基底であり、ベクトル空間V(ψ)とベクトル空間V*(ψ)とは、双線形写像を構成可能な双対ベクトル空間〔双対ペアリングベクトル空間（DPVS:Dual Paring Vector space)〕である。
【００４６】
A(ψ)：基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、行列A(ψ)は、
【数６】
0005422053.tif 000007
となる。
【００４７】
A*(ψ)：基底ベクトルai*(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai*(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、行列A*(ψ)は、
【数７】
0005422053.tif 000008
となる。
【００４８】
X(ψ)：X(ψ)は有限体Fqの元を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。行列X(ψ)は基底ベクトルai(ψ)の座標変換に用いられる。行列X(ψ)のi行j列(i=1,...,n(ψ)+ζ(ψ),j=1,...,n(ψ)+ζ(ψ))の要素をχi,j(ψ)∈Fqとすると、行列X(ψ)は、
【数８】
0005422053.tif 000009
となる。なお、行列X(ψ)の各要素χi,j(ψ)を変換係数と呼ぶ。
【００４９】
X *(ψ)：X*(ψ)と行列X(ψ)とはX*(ψ)=τ'・(X(ψ)-1)Tの関係を満たす。ただし、τ'∈Fqは有限体Fqに属する任意の定数であり、例えば、τ'=1Fである。X*(ψ)は基底ベクトルai*(ψ)の座標変換に用いられる。行列X*(ψ)のi行j列の要素をχi,j*(ψ)∈Fqとすると、行列Ｘ*(ψ)は、
【数９】
0005422053.tif 000010
となる。なお、行列Ｘ*(ψ)の各要素χi,j*(ψ)を変換係数と呼ぶ。
この場合、n(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の単位行列をI(ψ)とするとX(ψ)・(X*(ψ))T=τ'・I(ψ)を満たす。すなわち、単位行列
【数１０】
0005422053.tif 000011
に対し、
【数１１】
0005422053.tif 000012
を満たす。ここで、n(ψ)+ζ(ψ)次元ベクトル
χi→(ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ))        …(18)
χj→*(ψ)=(χj,1*(ψ),...,χj,n(ψ)+ζ(ψ)*(ψ))      …(19)
を定義する。すると、式(17)の関係から、n(ψ)+ζ(ψ)次元ベクトルχi→(ψ)とχj→*(ψ)との内積は、
χi→(ψ)・χj→*(ψ)=τ'・δ(i,j)          …(20)
となる。
【００５０】
bi(ψ)：bi(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi(ψ)は行列X(ψ)を用いて基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi(ψ)は、
bi(ψ)=Σj=1n(ψ)+ζ(ψ)χi,j(ψ)・aj(ψ)          …(21)
の演算によって得られる。例えば、基底ベクトルaj(ψ)(j=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、基底ベクトルbi(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi(ψ)=(χi,1(ψ)・κ1・g1,χi,2(ψ)・κ1・g1,
...,χi,n(ψ)+ζ(ψ)(ψ)・κ1・g1)          …(22)
巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)は前述のベクトル空間V(ψ)を張る。
【００５１】
bi*(ψ)：bi*(ψ)は巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi*(ψ)は行列X*(ψ)を用いて基底ベクトルai*(ψ)(i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi*(ψ)は、
bi*(ψ)=Σj=1n(ψ)+ζ(ψ)χi,j*(ψ)・aj*(ψ)          …(23)
の演算によって得られる。例えば、基底ベクトルaj*(ψ) (j=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、基底ベクトルbi*(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi*(ψ)=(χi,1*(ψ)・κ2・g2 ,χi,2*(ψ)・κ2・g2,
...,χi,n(ψ)+ζ(ψ)*(ψ)・κ2・g2)    …(24)
となる。巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi*(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi*(ψ)は前述のベクトル空間V*(ψ)を張る。
なお、基底ベクトルbi(ψ)と基底ベクトルbi*(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について
eψ(bi(ψ), bj*(ψ))=gTτ・τ'・δ(i,j)          …(25)
を満たす。すなわち、式(5)(20)(22)(24)の関係から、
【数１２】
0005422053.tif 000013
を満たす。特にτ=κ1・κ2=1F（例えば、κ1=κ2=1F）及びτ'=1Fである場合、
eψ(bi(ψ), bj*(ψ))=gTδ(i,j)          …(26)
を満たす。この場合、基底ベクトルbi(ψ)と基底ベクトルbi*(ψ)とは、双対ペアリングベクトル空間（ベクトル空間V(ψ)とベクトル空間V*(ψ)）の双対正規直交基底である。
なお、式(25)の関係を満たすのであれば、式(8)(9)で例示したもの以外の基底ベクトルai(ψ)及びai*(ψ)や、式(21)(23)で例示したもの以外の基底ベクトルbi(ψ)及びbi*(ψ)を用いてもよい。
【００５２】
B(ψ)：B(ψ)は基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列である。B(ψ)=X(ψ)・A(ψ)を満たす。例えば、基底ベクトルbi(ψ)が式(22)によって表現される場合、行列B(ψ)は、
【数１３】
0005422053.tif 000014
となる。
【００５３】
B*(ψ)：B*(ψ)は基底ベクトルbi*(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。B*(ψ)=X*(ψ)・A*(ψ)を満たす。例えば、基底ベクトルbi*(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(24)によって表現される場合、行列B*(ψ)は、
【数１４】
0005422053.tif 000015
となる。
【００５４】
v(λ)→：v(λ)→は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
v(λ)→=(v1(λ),...,vn(λ)(λ))∈Fqn(λ)          …(29)
vμ(λ)：vμ(λ)はn(λ)次元ベクトルv(λ)→のμ(μ=1,...,n(λ))番目の要素を表す。
w(λ)→：w(λ)→は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
w(λ)→=(w1(λ),...,wn(λ)(λ))∈Fqn(λ)          …(30)
wμ(λ)：wμ(λ)はn(λ)次元ベクトルw(λ)→のμ(μ=1,...,n(λ))番目の要素を表す。
Enc：Encは共通鍵暗号方式の暗号化処理を示す共通鍵暗号関数を表す。
EncK(M)：EncK(M)は、共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文を表す。
Dec：Decは、共通鍵暗号方式の復号処理を示す共通鍵復号関数を表す。
DecK(C)：DecK(C)は、共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果を表す。
【００５５】
〔関数暗号方式〕
次に、関数暗号方式の基本的な構成について説明する。
関数暗号方式とは、第１情報と第２情報との組み合わせによって定まる論理式の真理値が「真」となる場合に暗号文が復号される方式である。「第１情報」と「第２情報」の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。例えば、「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」（参考文献９）に開示された述語暗号方式は関数暗号方式の一種である。
【００５６】
これ以外にも様々な公知の関数暗号方式が存在するが、以下では未公開の新たな関数暗号方式を説明する。以下に説明する新たな関数暗号方式では秘密情報に応じた値が所定の論理式に応じた態様で階層的に秘密分散される。所定の論理式は、第１情報と第２情報との組み合わせによって真理値が定まる命題変数を含み、必要に応じてさらに論理記号∧，∨，¬の何れか又はすべてを含む。そして、各命題変数の真理値が特定されることで定まる当該所定の論理式の真理値が「真」となる場合に秘密情報に応じた値が復元され、それに基づいて暗号文が復号される。
【００５７】
＜論理式と階層的な秘密分散との関係＞
上述した所定の論理式と階層的な秘密分散との関係を説明する。
秘密分散とは、しきい値Kt(Kt≧1)個以上のシェア情報が得られた場合にのみ秘密情報が復元されるように、秘密情報をN(N≧2)個のシェア情報に分散することである。Kt=Nを満たす秘密分散の方式（SSS: Secret Sharing Scheme）をN-out-of-N分散方式（或いは「N-out-of-Nしきい値分散方式」）といい、Kt＜Nを満たす秘密分散の方式をKt-out-of-N分散方式（或いは「Kt-out-of-Nしきい値分散方式」）という（例えば、参考文献１０「黒沢馨、尾形わかは、“現代暗号の基礎数理 (電子情報通信レクチャーシリーズ)”、コロナ社 、２００４年３月、p.116-119」、参考文献１１「A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.」等参照）。
【００５８】
N-out-of-N分散方式は、すべてのシェア情報share(1),...,share(N)が与えられれば秘密情報SEを復元できるが、任意のN-1個のシェア情報share(φ1),...,share(φN-1)が与えられても秘密情報SEの情報はまったく得られない方式である。以下に、その一例を示す。
・SH1,...,SHN-1をランダムに選択する。
・SHN=SE-(SH1+...+SHN-1)の計算を行う。
・SH1,...,SHNを各シェア情報share(1),...,share(N)とする。
・すべてのシェア情報share(1),...,share(N)が与えられれば、
SE=share(1)+...+share(N)          …(31)
の復元処理によって秘密情報SEの復元が可能である。
【００５９】
Kt-out-of-N分散方式は、任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)が与えられれば秘密情報SEを復元できるが、任意のKt-1個のシェア情報share(φ1),...,share(φKt-1)が与えられても秘密情報SEの情報はまったく得られない方式である。なお、添え字のKtはKtを表す。以下にKt-out-of-N分散方式の一例を示す。
【００６０】
・f(0)=SEを満たすKt-1次の多項式f(x)=ξ0+ξ1・x+ξ2・x2+...+ξKt-1・xKt-1をランダムに選ぶ。すなわち、ξ0=SEとし、ξ1,..., ξKt-1をランダムに選ぶ。シェア情報をshare(ρ)=(ρ, f(ρ))（ρ=1,...,N）とする。なお、(ρ, f(ρ))はρ及びf(ρ)の値をそれぞれ抽出可能な情報であり、例えばρとf(ρ)とのビット結合値である。
【００６１】
・任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)（(φ1,...,φKt)⊂(1,...,N)）が得られた場合、例えば、ラグランジェ(Lagrange)の補間公式を用い、以下のような復元処理によって秘密情報SEの復元が可能である。
SE=f(0)=LA1・f(φ1)+...+ LAKt・f(φKt)          …(32)
【数１５】
0005422053.tif 000016
は先頭からρ番目の被演算子〔分母の要素(φρ-φρ)、分子の要素(x-φρ)〕が存在しないことを意味する。すなわち、式(33)の分母は、
(φρ-φ1)・...・(φρ-φρ-1)・(φρ-φρ+1)・...・(φρ-φKt)
であり、式(33)の分子は、
(x-φ1)・...・(x-φρ-1)・(x-φρ+1)・...・(x-φKt)
である。
【００６２】
上述した各秘密分散は体上でも実行可能である。また、これらを拡張して秘密情報SEに応じた値をシェア情報shareに秘密分散することもできる。秘密情報SEに応じた値とは秘密情報SEそのものや秘密情報SEの関数値であり、シェア情報shareに応じた値とはシェア情報shareそのものやシェア情報の関数値である。例えば、有限体Fqの元である秘密情報SE∈Fqに応じた巡回群GTの元gTSE∈GTを秘密情報SEの各シェア情報share(1),share(2)に応じた巡回群GTの元gTshare(1),gTshare(2)∈GTに秘密分散することもできる。また、上述した秘密情報SEはシェア情報shareの線形結合となる（式(31)(32)）。このように秘密情報SEがシェア情報shareの線形結合となる秘密分散方式を線形秘密分散方式と呼ぶ。
【００６３】
上述した所定の論理式は、秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。すなわち、ド・モルガンの法則により、上述した所定の論理式はリテラルからなる論理式、又は、論理記号∧，∨の少なくとも一部とリテラルとからなる論理式（これらを「標準形論理式」と呼ぶことにする）によって表現でき、この標準形論理式は秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。
【００６４】
標準形論理式を表現する木構造データは複数のノードを含み、少なくとも一部のノードは１個以上の子ノードの親ノードとされ、親ノードの１つはルートノードとされ、子ノードの少なくとも一部は葉ノードとされる。ルートノードの親ノードや、葉ノードの子ノードは存在しない。ルートノードには秘密情報に応じた値が対応し、各親ノードの子ノードには当該親ノードに対応する値を秘密分散したシェア情報に応じた値が対応する。各ノードでの秘密分散形態（秘密分散方式やしきい値）は標準形論理式に応じて定まる。また、各葉ノードには標準形論理式を構成する各リテラルが対応し、当該各リテラルの真理値は第１情報と第２情報との組み合わせによって定まる。
【００６５】
ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られないものとする。また、上述した秘密分散の性質により、親ノードに対応するシェア情報に応じた値（その親ノードがルートノードであれば秘密情報に応じた値）は、その子ノードに対応するシェア情報に応じた値が当該親ノードに対応するしきい値以上の個数だけ得られた場合にのみ復元される。そのため、どの葉ノードに対応するリテラルの真理値が真になったのかと木構造データの構成（各ノードでの秘密分散の形態を含む）とに応じ、最終的にルートノードに対応する秘密情報に応じた値が復元できるか否かが定まる。そして、各葉ノードに対応する各リテラルの真理値が標準形論理式の真理値を真にする場合にのみ最終的にルートノードに対応する秘密情報に応じた値が復元できるように木構造データが構成されている場合、このような木構造データは標準形論理式を表現する。このような標準形論理式を表現する木構造データは容易に設定できる。以下に具体例を示す。
【００６６】
図８３は、命題変数PRO(1),PRO(2)と命題変数PRO(3)の否定¬PRO(3)と論理記号∧，∨とを含む標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)を表現する木構造データを例示する図である。図８３に例示する木構造データは複数のノードN1,...,N5を含む。ノードN1はノードN2,N5の親ノードとされ、ノードN2はノードN3,N4の親ノードとされ、親ノードの１つノードN1がルートノードとされ、子ノードの一部であるノードN3,N4,N5が葉ノードとされる。ノードN1には秘密情報SEに応じた値が対応し、ノードN1の子ノードN2,N5には、秘密情報SEに応じた値が1-out-of-2分散方式で秘密分散された各シェア情報SE,SEに応じた値がそれぞれ対応する。ノードN2の子ノードN3,N4には、シェア情報SEに応じた値が2-out-of-2分散方式で秘密分散された各シェア情報SE-SH1,SH1に応じた値がそれぞれ対応する。すなわち、葉ノードN3にはシェア情報share(1)=SE-SH1に応じた値が対応し、葉ノードN4にはシェア情報share(2)=SH1に応じた値が対応し、葉ノードN5にはシェア情報share(3)=SEに応じた値が対応する。また、葉ノードN3,N4,N5には標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)を構成する各リテラルPRO(1),PRO(2),¬PRO(3)がそれぞれ対応し、当該各リテラルPRO(1),PRO(2),¬PRO(3)の真理値は第１情報と第２情報との組み合わせによって定まる。ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られない。この場合、第１情報と第２情報との組み合わせが標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)の真理値を真にする場合にのみ秘密情報SEに応じた値が復元される。
【００６７】
図８４は、命題変数PRO(1),PRO(2),PRO(3),PRO(6),PRO(7)と命題変数PRO(4),PRO(5)の否定¬PRO(4),¬PRO(5)と論理記号∧，∨とを含む標準形論理式PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)を表現する木構造データを例示する図である。
図８４に例示する木構造データは複数のノードN1,...,N11を含む。ノードN1はノードN2,N6,N7の親ノードとされ、ノードN2はノードN3,N4,N5の親ノードとされ、ノードN7はノードN8,N11の親ノードとされ、ノードN8はノードN9,N10の親ノードとされ、親ノードの１つであるノードN1がルートノードとされ、ノードN3,N4,N5,N6,N9,N10,N11が葉ノードとされる。ノードN1には秘密情報SEに応じた値が対応し、ノードN1の子ノードN2,N6,N7には、秘密情報SEに応じた値が1-out-of-3分散方式で秘密分散された各シェア情報SE,SE,SEに応じた値がそれぞれ対応する。ノードN2の子ノードN3,N4,N5には、シェア情報SEに応じた値が2-out-of-3分散方式で秘密分散された各シェア情報(1,f(1)),(2,f(2)),(3,f(3))に応じた値がそれぞれ対応する。ノードN7の子ノードN8,N11には、シェア情報SEに応じた値が2-out-of-2分散方式で秘密分散された各シェア情報SH4,SE-SH4に応じた値がそれぞれ対応する。ノードN8の子ノードN9,N10には、シェア情報SH4に応じた値が1-out-of-2分散方式で秘密分散された各シェア情報SH4,SH4に応じた値がそれぞれ対応する。すなわち、葉ノードN3にはシェア情報share(1)=(1,f(1))に応じた値が対応し、葉ノードN4にはシェア情報share(2)=(2,f(2))に応じた値が対応し、葉ノードN5にはシェア情報share(3)=(3,f(3))に応じた値が対応し、葉ノードN6にはシェア情報share(4)=SEに応じた値が対応し、葉ノードN9にはシェア情報share(5)=SH4に応じた値が対応し、葉ノードN10にはシェア情報share(6)=SH4に応じた値が対応し、葉ノードN11にはシェア情報share(7)=SE-SH4に応じた値が対応する。また、葉ノードであるノードN3,N4,N5,N6,N9,N10,N11には標準形論理式PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)を構成する各リテラルPRO(1),PRO(2),PRO(2),PRO(3),PRO(1),PRO(3),¬PRO(4),¬PRO(5),PRO(6),PRO(7)がそれぞれ対応し、各リテラルPRO(1),PRO(2),PRO(2),PRO(3),PRO(1),PRO(3),¬PRO(4),¬PRO(5),PRO(6),PRO(7)の真理値は第１情報と第２情報との組み合わせによって定まる。ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られない。この場合、第１情報と第２情報との組み合わせが標準形論理式PRO(1),∧PRO(2),∨PRO(2),∧PRO(3),∨PRO(1),∧PRO(3),∨¬PRO(4),∨(¬PRO(5),∧PRO(6),)∧PRO(7)の真理値を真にする場合にのみ秘密情報SEに応じた値が復元される。
【００６８】
＜アクセス構造＞
上述のように秘密情報を階層的に秘密分散して得られる木構造データによって所定の論理式を表現した場合、第１情報と第２情報との組み合わせに対して得られる葉ノードでのシェア情報に応じた値から秘密情報に応じた値を復元できるか否かによって、第１情報と第２情報との組み合わせによって定まる論理式の真理値が「真」となるか「偽」となるかを判定できる。以下、第１情報と第２情報との組み合わせによって定まる論理式の真理値が「真」となる場合に第１情報と第２情報との組み合わせを受け入れ、「偽」となる場合に第１情報と第２情報との組み合わせを拒絶する仕組みをアクセス構造と呼ぶ。
【００６９】
上述のように所定の論理式を表現した木構造データの葉ノードの総数をΨとし、各葉ノードに対応する識別子をλ=1,...,Ψとする。各葉ノードに対応するn(λ)次元ベクトルv(λ)→の集合{v(λ)→}λ=1,...,Ψを第１情報とし、n(λ)次元ベクトルw(λ)→の集合{w(λ)→}λ=1,...,Ψを第２情報とする。また、上述した木構造データをラベル付き行列LMT(MT,LAB)として実装する。
【００７０】
ラベル付き行列LMT(MT,LAB)は、Ψ行COL列（COL≧1）の行列
【数１６】
0005422053.tif 000017
と、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)とを含む。
【００７１】
行列MTの各要素mtλ,col（col=1,...,COL）は次の２つの要件を満たす。第１に、上述のように所定の論理式を表現した木構造データのルートノードに秘密情報SE∈Fqに応じた値が対応する場合、予め定められた有限体Fqの元を要素とするCOL次元ベクトル
GV→=(gv1,...,gvCOL)∈FqCOL          …(35)
と、秘密情報SEに応じた有限体Fqの元を要素とするCOL次元ベクトル
CV→=(cv1,...,cvCOL)∈FqCOL          …(36)
とに対して
SE=GV→・(CV→)T          …(37)
が成立する。COL次元ベクトルGV→の具体例は、
GV→=(1F,...,1F)∈FqCOL          …(38)
であるが、GV→=(1F,0F,...,0F)∈FqCOLなどのその他のCOL次元ベクトルであってもよい。第２に、識別子λに対応する葉ノードにシェア情報share(λ)∈Fqに応じた値が対応する場合、
(share(1),...,share(Ψ))T=MT・(CV→)T          …(39)
が成立する。上述のように所定の論理式を表現した木構造データが定まれば、これら２つの要件を満たす行列MTを選択することは容易である。また、秘密情報SEやシェア情報share(λ)が変数であったとしても、これら２つの要件を満たす行列MTを選択することは容易である。すなわち、行列MTを定めた後で秘密情報SEやシェア情報share(λ)の値が定められてもよい。
【００７２】
また、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)は、識別子λに対応する葉ノードに対応するリテラル（PRO(λ)又は¬PRO(λ)）に対応する。ここで、命題変数PRO(λ)の真理値が「真」であることと第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}が含むv(λ)→と第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}が含むw(λ)→との内積v(λ)→・w(λ)→が０となることとが等価であると扱い、命題変数PRO(λ)の真理値が「偽」であることと内積v(λ)→・w(λ)→が０とならないこととが等価であると扱う。そして、PRO(λ)に対応するラベルLAB(λ)がv(λ)→を表し、¬PRO(λ)に対応するラベルLAB(λ)が¬v(λ)→を表すものとする。なお、¬v(λ)→はv(λ)→の否定を表す論理式であり、¬v(λ)→からv(λ)→の特定が可能である。また、LAB(λ)がv(λ)→を表すことを「LAB(λ)=v(λ)→」と表記し、LAB(λ)が¬v(λ)→を表すことを「LAB(λ)=¬v(λ)→」と表記する。また、LAB(λ)（λ=1,...,Ψ）の集合{LAB(λ)}λ=1,...,ΨをLABと表記する。
【００７３】
さらに、Ψ次元ベクトル
TFV→=(tfv(1),...,tfv(Ψ))          …(40)
を定義する。要素tfv(λ)は、内積v(λ)→・w(λ)→が０のときにtfv(λ)=１となり、０以外のときにtfv(λ)=0となる。
tfv(λ)=1  （PRO(λ)が真）  if  v(λ)→・w(λ)→=0    …(41)
tfv(λ)=0  （PRO(λ)が偽）  if  v(λ)→・w(λ)→≠0   …(42)
【００７４】
さらに、論理式
{(LAB(λ)=v(λ)→)∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ)→)∧(tfv(λ)=0)}
…(43)
の真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。すなわち、識別子λに対応する葉ノードに対応するリテラルの真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。すると、行列MTが含む行ベクトルのうちLIT(λ)=1となる行ベクトルmtλ→=(mtλ,1,...,mtλ,COL)のみからなる部分行列MTTFVは以下のように表記できる。
MTTFV=(MT)LIT(λ)=1          …(44)
【００７５】
上述した秘密分散方式が線形秘密分散方式である場合、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できることと、識別子λに対応する行ベクトルmtλ→で張られるベクトル空間にCOL次元ベクトルGV→が属することとは等価である。すなわち、識別子λに対応する行ベクトルmtλ→で張られるベクトル空間にCOL次元ベクトルGV→が属するか否かを判定することで、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できるか否かが判定できる。なお、行ベクトルmtλ→で張られるベクトル空間とは、行ベクトルmtλ→の線形結合で表すことができるベクトル空間を意味する。
【００７６】
ここで、上述の部分行列MTTFVの各行ベクトルmtλ→で張られるベクトル空間span<MTTFV>にCOL次元ベクトルGV→が属する場合に第１情報と第２情報との組み合わせが受け入れられ、そうでない場合に第１情報と第２情報との組み合わせが拒絶されることにする。これにより、上述のアクセス構造が具体化される。なお、上述したようにラベル付き行列LMT(MT,LAB)が第１情報に対応する場合、アクセス構造が第１情報と第２情報との組み合わせを受け入れることを「アクセス構造が第２情報を受け入れる」といい、アクセス構造が第１情報と第２情報との組み合わせを受け入れないことを「アクセス構造が第２情報を拒絶する」という。
受け入れ  if  GV→∈span<MTTFV>
拒絶      if  ¬(GV→∈span<MTTFV>)
また、GV→∈span<MTTFV>の場合、
SE=Σμ∈SETconst(μ)・share(μ)          …(45)
{const(μ)∈Fq|μ∈SET},SET⊆{1,...,λ|LIT(λ)=1}
を満たす係数const(μ)が存在し、このような係数const(μ)は行列MTのサイズの多項式時間で求めることができる。
【００７７】
＜アクセス構造を用いた関数暗号方式の基本構成＞
以下では、アクセス構造を用いた関数暗号方式によって鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する場合の基本構成を例示する。この構成はSetup(1sec，(Ψ;n(1),...,n(Ψ)))，GenKey(PK,MSK,LMT(MT,LAB))，Enc(PK,M,{λ,v(λ)→|λ=1,...,Ψ})(v1(λ)=1F)，Dec(PK,SKS,C)を含む。また、第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされる。
【００７８】
［Setup(1sec，(Ψ;n(1),...,n(Ψ)))：セットアップ］
−入力：1sec，(Ψ;n(1),...,n(Ψ))
−出力：マスター鍵情報MSK，公開パラメータPK
Setupでは各ψ=0,...,Ψについて以下の処理が実行される。
(Setup-1) 1secを入力としてセキュリティパラメータsecでの位数q、楕円曲線E、巡回群G1, G2, GT、双線形写像eψ(ψ=0,...,Ψ)が生成される（param=(q, E, G1, G2, GT, eψ)）。
(Setup-2) τ'∈Fqが選択され、X*(ψ)=τ'・(X(ψ)-1)Tを満たす行列X(ψ)，X*(ψ)が選択される。
(Setup-3) 基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(21)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B(ψ)が生成される。
(Setup-4) 基底ベクトルai*(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(23)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi*(ψ)(i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi*(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B*(ψ)が生成される。
(Setup-5) B*(ψ)＾の集合{B*(ψ)＾}ψ=0,...,Ψをマスター鍵情報MSK={B*(ψ)＾}ψ=0,...,Ψとする。また、B(ψ)＾の集合{B(ψ)＾}ψ=0,...,Ψと1secとparamとを公開パラメータPKとする。ただし、B*(ψ)＾は行列B*(ψ)又はその部分行列であり、B(ψ)＾は行列B(ψ)又はその部分行列である。また、集合{B*(ψ)＾}ψ=0,...,Ψは、少なくとも、b1*(0),b1*(λ) …,bn(λ)*(λ)（λ=1,...,Ψ）を含む。また、集合{B(ψ)＾}ψ=0,...,Ψは、少なくとも、b1(0),b1(λ),…,bn(λ)(λ)（λ=1,...,Ψ）を含む。以下に一例を示す。
・n(0)+ζ(0)≧5, ζ(λ)=3・n(λ)
・B(0)＾=(b1(0) b3(0) b5(0))T
・B(λ)＾=(b1(λ) …bn(λ)(λ) b3・n(λ)+1(λ) … b4・n(λ)(λ))T（λ=1,...,Ψ）
・B*(0)＾=(b1*(0) b3*(0) b4*(0))T
・B*(λ)＾=(b1*(λ) … bn(λ)*(λ) b2・n(λ)+1*(λ) … b3・n(λ)*(λ))T（λ=1,...,Ψ）
【００７９】
［GenKey(PK,MSK,LMT(MT,LAB))：鍵情報生成］
−入力：公開パラメータPK，マスター鍵情報MSK，第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}に対応するラベル付き行列LMT(MT,LAB)
−出力：鍵情報SKS
(GenKey-1) 式(35)-(39)を満たす秘密情報SEに対して以下の処理が実行される。
D*(0)=-SE・b1*(0)+Σι=2Icoefι(0)・bι*(0)          …(46)
ただし、Iは2以上n(0)+ζ(0)以下の定数である。coefι(0)∈Fqは定数又は乱数である
。「乱数」とは真性乱数や擬似乱数を意味する。以下にD*(0)の一例を示す。なお、式(47)のcoef4(0)は乱数である。
D*(0)=-SE・b1*(0)+b3*(0)+coef4(0)・b4*(0)          …(47)
(GenKey-2) 式(35)-(39)を満たすshare(λ)(λ=1,...,Ψ)に対して以下の処理が実行される。
LAB(λ)=v(λ)→となるλに対して
D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1*(λ)
+Σι=2n(λ)coef(λ)・vι(λ)・bι*(λ)
+Σι=n(λ)+1n(λ)+ζ(λ)coefι(λ)・bι*(λ)    …(48)
が生成され、
LAB(λ)=¬v(λ)→となるλに対して
D*(λ)=share(λ)・Σι=1n(λ)vι(λ)・bι*(λ)
+Σι=n(λ)+1n(λ)+ζ(λ)coefι(λ)・bι*(λ)    …(49)
が生成される。ただしcoef(λ),coefι(λ)∈Fqは定数又は乱数である。以下に一例を示す。
LAB(λ)=v(λ)→となるλに対して
D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1*(λ)
+Σι=2n(λ)coef(λ)・vι(λ)・bι*(λ)
+Σι=2・n(λ)+13・n(λ)coefι(λ)・bι*(λ)    …(50)
が生成され、
LAB(λ)=¬v(λ)→となるλに対して
D*(λ)=share(λ)・Σι=1n(λ)vι(λ)・bι*(λ)
+Σι=2・n(λ)+13・n(λ)coefι(λ)・bι*(λ)    …(51)
が生成される。なお、式(50)(51)のcoef(λ)及びcoefι(λ)は乱数である。
(GenKey-3) 鍵情報
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ))          …(52)
生成される。
【００８０】
［Enc(PK,M,VSET2)：暗号化］
−入力：公開パラメータPK，平文M，第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}(w1(λ)=1F)
−出力：暗号文C
(Enc-1) 以下の処理によって共通鍵Kの暗号文C(ψ)(ψ=0,...,Ψ)が生成される。
C(0)=υ・b1(0)+Σι=2Iυι(0)・bι(0)          …(53)
C(λ)=υ・Σι=1n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1n(λ)+ζ(λ)υι(λ)・bι(λ)
…(54)
ただし、υ,υι(ψ)∈Fq(ψ=0,...,Ψ)は定数又は乱数であり、
(coef2(0),...,coefI(0))・(υ2(0),...,υI(0))=υ'       …(55)
coefι(λ)・υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ))  …(56)
を満たす。υ'の例はυ2(0),...,υI(0)の何れか１個である。例えば、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)が乱数であり、ζ(λ)=3・n(λ)、I=5であり、
(υ2(0),...,υI(0))=(0F,υ3(0),0F,υ5(0))
υ'=υ3(0)
(υn(λ)+1(λ),...,υ3・n(λ)(λ))=(0F,...,0F)
である。
(Enc-2) 共通鍵
K=gTτ・τ'・υ'∈GT          …(57)
が生成される。例えば、τ=τ'=1Fの場合、
K=gTυ'∈GT          …(58)
である。
(Enc-3) 共通鍵Kを用いて平文Mの暗号文
C(Ψ+1)=EncK(M)          …(59)
が生成される。なお、共通鍵暗号方式Encは、例えば共通鍵Kを用いて暗号化可能に構成されたカメリア（Camellia）（登録商標）やAESや共通鍵と平文との排他的論理和などでよいが、その他の簡単な例として以下のようにEncK(M)を生成してもよい。ただし、式(60)の例ではM∈GTとされる。
C(Ψ+1)=gTυ'・M          …(60)
(Enc-4) 暗号文
C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,C(Ψ+1))        …(61)
が生成される。ただし、下付き添え字の「w(λ)→」は「w(λ)→」を表す。
【００８１】
［Dec(PK,SKS,C)：復号］
−入力：公開パラメータPK，鍵情報SKS，暗号文C
−出力：平文M'
(Dec-1) λ=1,...,Ψについて、鍵情報SKSが含むラベル付き行列LMT(MT,LAB)の各ラベルLAB(λ)であるn(λ)次元ベクトルv(λ)→と暗号文CのVSET2が含むn(λ)次元ベクトルw(λ)→との内積v(λ)→・w(λ)→が0となるか否かが判定され、これによってGV→∈span<MTTFV>であるか否かが判定される。GV→∈span<MTTFV>でなければ暗号文Cが拒絶され、GV→∈span<MTTFV>であれば暗号文Cが受け入れられる。
(Dec-2) 暗号文Cが受け入れられると、SET⊆{1,...,λ|LIT(λ)=1}と式(45)を満たす係数const(μ)(μ∈SET)とが計算される。
(Dec-3) 共通鍵
【数１７】
0005422053.tif 000018
が生成される。ここで、式(6)(25)(55)から、
【数１８】
0005422053.tif 000019
を満たす。また、式(6)(25)(41)(48)(54)(56)及びw1(λ)=1Fから
【数１９】
0005422053.tif 000020
を満たす。また、式(6)(25)(42)(49)(54)(56)から
【数２０】
0005422053.tif 000021
を満たす。よって、式(45)(63)-(65)から
【数２１】
0005422053.tif 000022
を満たす。例えば、τ=τ'=1Fの場合、
K=gTυ'∈GT          …(67)
を満たす。
(Dec-4) 共通鍵Kを用いて平文
M'=DecK(C(Ψ+1))=DecK(C(Ψ+1))          …(68)
が生成される。例えば、式(60)に例示した共通鍵暗号方式の場合、
M'=C(Ψ+1)/K          …(69)
によって平文M'が生成される。
【００８２】
なお、gTをGTの生成元とする代わりにgTτやgTτ'やgTτ・τ'をGTの生成元と扱ってもよい。また、鍵情報SKSのλと暗号文のλとを対応関係を特定する写像を用いてC(λ)とD*(λ)との組み合わせを特定し、［Dec(PK,SKS,C)：復号］の処理が実行されてもよい。また、第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされるだけではなく、第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}のn(λ)番目の要素vn(λ)(λ)が1Fとされてもよい。また、要素w1(λ)が1Fでない場合にはw(λ)→の代わりにw(λ)→/w1(λ)を用いてもよく、要素vn(λ)(λ)が1Fでない場合にはv(λ)→の代わりにv(λ)→/vn(λ)(λ)を用いてもよい。また、第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}の代わりに第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}が用いられ、第２情報VSET2={λ,w(λ)→|λ=1,...,Ψ}の代わりに第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}が用いられてもよい。この場合には第１情報VSET1={λ,v(λ)→|λ=1,...,Ψ}の1番目の要素v1(λ)が1Fとされる。
【００８３】
次に、関数暗号の一形態である述語暗号の一例として内積を用いた述語暗号について説明する。なお、数式の番号は本節で改めて付け直している。また、説明の都合、上述の説明で用いた文言や記号と同じ文言や記号であっても意味が異なる場合があるので注意されたい。述語暗号は1-out-of-1分散方式を用いた関数暗号に相当する。
【００８４】
〔定義〕
行列：「行列」とは演算が定義された集合の元を矩形に並べたものを表す。環の元を要素とするものだけではなく、群の元を要素とするものも「行列」と表現する。
(・)T：(・)Tは・の転置行列を表す。
(・)-1：(・)-1は・の逆行列を表す。
∧：∧は論理積を表す。
∨：∨は論理和を表す。
Ｚ：Ｚは整数集合を表す。
ｋ：ｋはセキュリティパラメータ（k∈Z, k>0）を表す。
{0,1}*：{0,1}*は任意ビット長のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。しかし、{0,1}*は整数0及び1からなる系列に限定されない。{0,1}*は位数2の有限体又はその拡大体と同義である。
{0,1}ζ：{0,1}ζはビット長ζ（ζ∈Z, ζ>0）のバイナリ系列を表す。その一例は、整数0及び1からなる系列である。しかし、{0,1}ζは整数0及び1からなる系列に限定されない。{0,1}ζは位数2の有限体（ζ=1の場合）又はそれをζ次拡大した拡大体（ζ>1の場合）と同義である。
(+):(+)はバイナリ系列間の排他的論理和演算子を表す。例えば、10110011(+)11100001=01010010を満たす。
【００８５】
Fq：Fqは位数qの有限体を表す。位数qは１以上の整数であり、例えば、素数や素数のべき乗値を位数qとする。すなわち、有限体Fqの例は素体やそれを基礎体とした拡大体である。なお、有限体Fqが素体である場合の演算は、例えば、位数qを法とする剰余演算によって容易に構成できる。また、有限体Fqが拡大体である場合の演算は、例えば、既約多項式を法とする剰余演算によって容易に構成できる。有限体Fqの具体的な構成方法は、例えば、参考文献１「ISO/IEC 18033-2: Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers」に開示されている。
【００８６】
0F：0Fは有限体Fqの加法単位元を表す。
1F：1Fは有限体Fqの乗法単位元を表す。
δ(i,j)：δ(i,j)はクロネッカーのデルタ関数を表す。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0Fを満たす。
【００８７】
E：Eは有限体Fq上で定義された楕円曲線を表す。Eはアフィン（affine）座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6          …(1)
（ただし、a1,a2,a3,a4,a6∈Fq）を満たすx,y∈Fqからなる点(x,y)の集合に無限遠点と呼ばれる特別な点Ｏを付加したもので定義される。楕円曲線E上の任意の２点に対して楕円加算と呼ばれる二項演算＋及び楕円曲線E上の任意の１点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている（例えば、参考文献１、参考文献２「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献３「イアン・Ｆ・ブラケ、ガディエル・セロッシ、ナイジェル・Ｐ・スマート＝著、「楕円曲線暗号」、出版＝ピアソン・エデュケーション、ISBN4-89471-431-0」等参照）。
また、楕円曲線E上の有理点からなる有限集合は位数p(p≧1)の部分群を持つ。例えば、楕円曲線E上の有理点からなる有限集合の要素数を＃Eとし、pを＃Eを割り切る大きい素数とした場合、楕円曲線Eのp等分点からなる有限集合E[p]は、楕円曲線E上の有理点からなる有限集合の部分群を構成する。なお、楕円曲線Eのp等分点とは、楕円曲線E上の点Aのうち、楕円曲線E上での楕円スカラー倍算値p・Aがp・A＝Ｏを満たす点を意味する。
【００８８】
G1, G2, GT：G1, G2,GTは位数qの巡回群を表す。巡回群G1, G2の具体例は、楕円曲線Eのp等分点からなる有限集合E[p]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。また、巡回群GTの具体例は、有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における１のｐ乗根からなる有限集合である。
【００８９】
なお、本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。すなわち、χ∈Fq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ1+Ω2∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ1+Ω2∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Fq及びΩ∈GTに対するΩχ∈GTは、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω1,Ω2∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
【００９０】
G1n+1：G1n+1はn+1(n≧1)個の巡回群G1の直積を表す。
G2n+1：G2n+1はn+1個の巡回群G2の直積を表す。
g1, g2,gT：g1, g2, gTは巡回群G1, G2,GTの生成元を表す。
V：Vはn+1個の巡回群G1の直積からなるn+1次元のベクトル空間を表す。
V*：V*はn+1個の巡回群G2の直積からなるn+1次元のベクトル空間を表す。
【００９１】
e：eは直積G1n+1と直積G2n+1との直積G1n+1×G2n+1を巡回群GTに写す非退化な双線形写像（bilinear map）を計算するための関数（「双線形関数」と呼ぶ）を表す。双線形関数eは、巡回群G1のn+1個の元γL(L=1,...,n+1)(n≧1)と巡回群G2のn+1個の元γL*(L=1,...,n+1)とを入力とし、巡回群GTの１個の元を出力する。
e：G1n+1×G2n+1→GT            …(2)
【００９２】
双線形関数eは以下の性質を満たす。
［双線形性］すべてのΓ1∈G1n+1，Γ2∈G2n+1及びν，κ∈Fqについて以下の関係を満たす。
e(ν・Γ1,κ・Γ2)=e(Γ1,Γ2)ν・κ        …(3)
［非退化性］すべての
Γ1∈G1n+1，Γ2∈G2n+1          …(4)
を巡回群GTの単位元に写す関数ではない。
［計算可能性］あらゆるΓ1∈G1n+1，Γ2∈G2n+1についてe(Γ1,Γ2)を効率的に計算するアルゴリズムが存在する。
【００９３】
本形態では、巡回群G1と巡回群G2との直積G1×G2を巡回群GTに写す非退化な双線形写像を計算するための関数
Pair:G1×G2→GT            …(5)
を用いて双線形関数eを構成する。本形態の双線形関数eは、巡回群G1のn+1個の元γL(L=1,...,n+1)からなるn+1次元ベクトル(γ1,...,γn+1)と、巡回群G2のn+1個の元γL*(L=1,...,n+1)からなるn+1次元ベクトル(γ1*,...,γn+1*)との入力に対し、巡回群GTの１個の元
e=ΠL=1n+1 Pair(γL, γL*)          …(6)
を出力する関数である。
なお、双線形関数Pairは、巡回群G1の１個の元と巡回群G2の１個の元との組を入力とし、巡回群GTの１個の元を出力する関数であり、以下の性質を満たす。
［双線形性］すべてのΩ1∈G1，Ω2∈G2及びν，κ∈Fqについて以下の関係を満たす。
Pair(ν・Ω1,κ・Ω2)=Pair(Ω1,Ω2)ν・κ      …(7)
［非退化性］すべての
Ω1∈G1，Ω2∈G2          …(8)
を巡回群GTの単位元に写す関数ではない。
［計算可能性］あらゆるΩ1∈G1，Ω2∈G2についてPair(Ω1,Ω2)を効率的に計算するアルゴリズムが存在する。
【００９４】
なお、双線形関数Pairの具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である（例えば、参考文献４「Alfred. J. Menezes，ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS，KLUWER ACADEMIC PUBLISHERS，ISBN0-7923-9368-6，pp.61-81」等参照）。また、楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))（Ω1∈G1，Ω2∈G2）を双線形関数Pairとして用いてもよい（例えば、参考文献２等参照）。また、ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム（参考文献５「V. S. Miller, “Short Programs for functions on Curves,”1986，インターネット＜http://crypto.stanford.edu/miller/miller.pdf＞」などが存在する。また、ペアリング演算を効率的に行うための楕円曲線や巡回群の構成方法はよく知られている（例えば、参考文献２、参考文献６「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no.05, pp. 1234-1243, May 2001」、参考文献７「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」、参考文献８「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」等参照）。
【００９５】
ai(i=1,...,n+1)：巡回群G1のn+1個の元を要素とするn+1次元の基底ベクトルを表す。基底ベクトルaiの一例は、κ1・g1∈G1をi次元目の要素とし、残りのn個の要素を巡回群G1の単位元（加法的に「0」と表現）とするn+1次元の基底ベクトルである。この場合、n+1次元の基底ベクトルai(i=1,...,n+1)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1=(κ1・g1,0,0,...,0)
a2=(0,κ1・g1,0,...,0)           …(9)
...
an+1=(0,0,0,...,κ1・g1)
ここで、κ1は加法単位元0F以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1Fである。基底ベクトルaiは直交基底であり、巡回群G1のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルai(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルaiは前述のベクトル空間Vを張る。
【００９６】
ai*(i=1,...,n+1)：ai*は巡回群G2のn+1個の元を要素とするn+1次元の基底ベクトルを表す。基底ベクトルai*の一例は、κ2・g2∈G2をi次元目の要素とし、残りのn個の要素を巡回群G2の単位元（加法的に「0」と表現）とするn+1次元の基底ベクトルである。この場合、基底ベクトルai*(i=1,...,n+1)の各要素をそれぞれ列挙して表現すると、以下のようになる。
a1*=(κ2・g2,0,0,...,0)
a2*=(0,κ2・g2,0,...,0)           …(10)
...
an+1*=(0,0,0,...,κ2・g2)
ここで、κ2は加法単位元0F以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1Fである。基底ベクトルai*は直交基底であり、巡回群G2のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルai*(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルai*は前述のベクトル空間V*を張る。
【００９７】
なお、基底ベクトルaiと基底ベクトルai*とは、0Fを除く有限体Fqの元τ=κ1・κ2について
e(ai, aj*)=gTτ・δ(i,j)           …(11)
を満たす。すなわち、i=jの場合には、式(6)(7)の関係から、
e(ai, aj*)= Pair(κ1・g1,κ2・g2)・Pair(0, 0)・...・Pair(0, 0)
= Pair(g1, g2)κ1・κ2・Pair(g1, g2)0・0・...・Pair(g1, g2)0・0
= Pair(g1, g2)κ1・κ2=gTτ
を満たす。一方、i≠jの場合には、e(ai, aj*)は、Pair(κ1・g1,κ2・g2)を含まず、Pair(κ1・g1,0)と Pair(0,κ2・g2)とPair(0,0)との積になる。さらに、式(7)の関係からPair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0を満たす。そのため、i≠jの場合には、
e(ai, aj*)=e(g1, g2)0=gT0
を満たす。
特に、τ=κ1・κ2=1Fである場合（例えば、κ1=κ2=1Fの場合）、
e(ai, aj*)=gTδ(i,j)           …(12)
を満たす。ここで、gT0=1は巡回群GTの単位元であり、gT1=gTは巡回群GTの生成元である。この場合、基底ベクトルaiと基底ベクトルai*とは双対正規直交基底であり、ベクトル空間Vとベクトル空間V*とは、双線形写像を構成可能な双対ベクトル空間〔双対ペアリングベクトル空間（DPVS:Dual Paring Vector space)〕である。
【００９８】
A：Aは基底ベクトルai(i=1,...,n+1)を要素とするn+1行n+1列の行列を表す。例えば、基底ベクトルai(i=1,...,n+1)が式(9)によって表現される場合、行列Aは、
【数２２】
0005422053.tif 000023
となる。
【００９９】
A*：A*は基底ベクトルai*(i=1,...,n+1)を要素とするn+1行n+1列の行列を表す。例えば、基底ベクトルai*(i=1,...,n+1)が式(10)によって表現される場合、行列A*は、
【数２３】
0005422053.tif 000024
となる。
【０１００】
X：Xは有限体Fqの元を要素とするn+1行n+1列の行列を表す。行列Xは基底ベクトルaiの座標変換に用いられる。行列Xのi行j列(i=1,...,n+1,j=1,...,n+1)の要素をχi,j∈Fqとすると、行列Xは、
【数２４】
0005422053.tif 000025
となる。なお、行列Ｘの各要素χi,jを変換係数と呼ぶ。
【０１０１】
X *：X *は行列Xの逆行列の転置行列X*=( X-1)Tを表す。行列X *は基底ベクトルai*の座標変換に用いられる。行列X *のi行j列の要素をχi,j*∈Fqとすると、行列X*は、
【数２５】
0005422053.tif 000026
となる。なお、行列Ｘ*の各要素χi,j*を変換係数と呼ぶ。
この場合、n+1行n+1列の単位行列をIとするとＸ・(Ｘ*)T=Ｉを満たす。すなわち、単位行列
【数２６】
0005422053.tif 000027
に対し、
【数２７】
0005422053.tif 000028
を満たす。ここで、n+1次元ベクトル
χi→=(χi,1,...,χi,n+1)           …(19)
χj→*=(χj,1*,...,χj,n+1*)         …(20)
を定義する。すると、式(18)の関係から、n+1次元ベクトルχi→とχj→*との内積は、
χi→・χj→*=δ(i,j)          …(21)となる。
【０１０２】
bi：biは巡回群G1のn+1個の元を要素とするn+1次元の基底ベクトルを表す。基底ベクトルbiは行列Xを用いて基底ベクトルai(i=1,...,n+1)を座標変換することで得られる。具体的には、基底ベクトルbiは、
bi=Σj=1n+1χi,j・aj          …(22)
の演算によって得られる。例えば、基底ベクトルaj(j=1,...,n+1)が式(9)によって表現される場合、基底ベクトルbiの各要素をそれぞれ列挙して表現すると、以下のようになる。
bi=(χi,1・κ1・g1 ,χi,2・κ1・g1 ,...,χi,n+1・κ1・g1) …(23)
巡回群G1のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルbi(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルbiは前述のベクトル空間Vを張る。
【０１０３】
bi*：bi*は巡回群G2のn+1個の元を要素とするn+1次元の基底ベクトルを表す。行列X*を用いて基底ベクトルai*(i=1,...,n+1)を座標変換することで得られる。具体的には、基底ベクトルbi*は、
bi*=Σj=1n+1χi,j*・aj*          …(24)
の演算によって得られる。例えば、基底ベクトルaj*(j=1,...,n+1)が式(10)によって表現される場合、基底ベクトルbi*の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi*=(χi,1*・κ2・g2 ,χi,2*・κ2・g2 ,...,χi,n+1*・κ2・g2) …(25)
となる。巡回群G2のn+1個の元を要素とするすべてのn+1次元ベクトルは、n+1次元の基底ベクトルbi*(i=1,...,n+1)の線形和によって表される。すなわち、n+1次元の基底ベクトルbi*は前述のベクトル空間V*を張る。
【０１０４】
なお、基底ベクトルbiと基底ベクトルbi*とは、0Fを除く有限体Fqの元τ=κ1・κ2について
e(bi, bj*)=gTτ・δ(i,j)           …(26)
を満たす。すなわち、式(6)(21)(23)(25)の関係から、
【数２８】
0005422053.tif 000029
を満たす。特に、τ=κ1・κ2=1Fである場合（例えば、κ1=κ2=1Fの場合）、
e(bi, bj*)=gTδ(i,j)           …(27)
を満たす。この場合、基底ベクトルbiと基底ベクトルbi*とは、双対ペアリングベクトル空間（ベクトル空間Vとベクトル空間V*）の双対正規直交基底である。
なお、式(26)の関係を満たすのであれば、式(9)(10)で例示したもの以外の基底ベクトルai及びai*や、式(22)(24)で例示したもの以外の基底ベクトルbi及びbi*を用いてもよい。
【０１０５】
B：Bは基底ベクトルbi(i=1,...,n+1)を要素とするn+1行n+1列の行列を表す。B=X・Aを満たす。例えば、基底ベクトルbiが式(23)によって表現される場合、行列Bは、
【数２９】
0005422053.tif 000030
となる。
【０１０６】
B*：B*は基底ベクトルbi*(i=1,...,n+1)を要素とするn+1行n+1列の行列を表す。B*=X*・A*を満たす。例えば、基底ベクトルbi*(i=1,...,n+1)が式(25)によって表現される場合、行列B*は、
【数３０】
0005422053.tif 000031
となる。
【０１０７】
w→：w→は有限体Fqの元を要素とするn次元ベクトルを表す。
w→=(w1,...,wn)∈Fqn           …(30)
wμ：wμはn次元ベクトルのμ(μ=1,...,n)番目の要素を表す。
v→：v→は有限体Fqの元を要素とするn次元ベクトルを表す。
v→=(v1,...,vn)∈Fqn           …(31)
vμ：vμはn次元ベクトルのμ(μ=1,...,n)番目の要素を表す。
【０１０８】
衝突困難な関数：「衝突困難な関数」とは、十分大きなセキュリティパラメータkに対して以下の条件を満たす関数h、又は、それとみなせる関数を表す。
Pr[A(h)=(x,y)|h(x)=h(y)∧x≠y]<ε(k)           …(32)
ただし、Pr[・]は事象[・]の確率であり、A(h)は関数hに対してh(x)=h(y)を満たす値x,y（x≠y）を算出する確率的多項式時間アルゴリズムであり、ε(k)はセキュリティパラメータkについての多項式である。衝突困難な関数の例は、参考文献１に開示された「cryptographic hash function」などのハッシュ関数である。
【０１０９】
単射関数：「単射関数」とは、値域に属する元が何れもその定義域のただ一つの元の像として表される関数、又は、それとみなせる関数を表す。単射関数の例は、参考文献１に開示された「KDF(Key Derivation Function)」などのハッシュ関数である。
【０１１０】
擬似的なランダム関数：「擬似的なランダム関数」とは、任意の確率的多項式時間アルゴリズムが集合Φζとその部分集合φζとを区別できない場合における、当該部分集合φζに属する関数、又は、それとみなせる関数を表す。ただし、集合Φζは集合{0,1}ζの元を集合{0,1}ζの元へ写すすべての関数の集合である。擬似的なランダム関数の例は、上述のようなハッシュ関数である。
【０１１１】
H1：H1は２つのバイナリ系列（ω1,ω2）∈{0,1}k×{0,1}*を入力とし、有限体Fqの２つの元（ψ1,ψ2）∈Fq×Fqを出力する衝突困難な関数を表す。
H1：{0,1}k×{0,1}*→Fq×Fq           …(33)
このような関数H1の例は、ω1とω2とのビット連結値ω1||ω2を入力とし、参考文献１に開示された「cryptographic hash function」などのハッシュ関数と、「バイナリ系列から整数への変換関数（Octet string/integer conversion）」と、「バイナリ系列から有限体の元への変換関数（Octet string and integer/finite field conversion）」との演算を行い、有限体Fqの２つの元（ψ1,ψ2）∈Fq×Fqを出力する関数である。なお、関数H1は、擬似的なランダム関数であることが望ましい。
【０１１２】
H2：H2は巡回群GTの元とバイナリ系列（ξ,ω2）∈GT ×{0,1}*を入力とし、有限体Fqの１つの元ψ∈Fqを出力する衝突困難な関数を表す。
H2：GT×{0,1}*→Fq          …(34)
このような関数H2の例は、巡回群GTの元ξ∈GTとバイナリ系列ω2∈{0,1}*とを入力とし、巡回群GTの元ξ∈GTを参考文献１に開示された「有限体の元からバイナリ系列への変換関数（Octet string and integer/finite field conversion）」に入力してバイナリ系列を求め、そのバイナリ系列とバイナリ系列ω2∈{0,1}*とのビット連結値に対して参考文献１に開示された「cryptographic hash function」などのハッシュ関数演算を行い、さらに「バイナリ系列から有限体の元への変換関数（Octet string and integer/finite field conversion）」の演算を行い、有限体Fqの１つの元ψ∈Fqを出力する関数である。なお、安全性の観点から、関数H2は擬似的なランダム関数であることがより望ましい。
【０１１３】
R:Rは１つの巡回群GTの元ξ∈GTを入力とし、１つのバイナリ系列ω∈{0,1}kを出力する単射関数を表す。
R：GT→{0,1}k          …(35)
このような単射関数Rの例は、巡回群GTの元ξ∈GTを入力とし、参考文献１に開示された「有限体の元からバイナリ系列への変換関数（Octet string and integer/finite field conversion）」と、参考文献１に開示された「KDF(Key Derivation Function)」などのハッシュ関数との演算を行い、１つのバイナリ系列ω∈{0,1}kを出力する関数である。なお、安全性の観点から、関数Rは衝突困難な関数であることが望ましく、擬似的なランダム関数であることがより望ましい。
【０１１４】
Enc：Encは共通鍵暗号方式の暗号化処理を示す共通鍵暗号関数を表す。共通鍵暗号方式の具体例は、カメリア（Camellia（登録商標））やAESなどである。
Enck(M)：Enck(M)は、共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文を表す。
Dec：Decは、共通鍵暗号方式の復号処理を示す共通鍵復号関数を表す。
Deck(C)：Deck(C)は、共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果を表す。
【０１１５】
〔内積述語暗号〕
次に、内積述語暗号の基本的な構成について説明する。
【０１１６】
＜述語暗号＞
述語暗号（「関数暗号」と呼ぶ場合もある）とは、「属性情報」と呼ばれる情報と「述語情報」と呼ばれる情報との組み合わせが所定の論理式を「真」にする場合に暗号文が復号できる方式である。「属性情報」と「述語情報」の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。従来の述語暗号の構成は、例えば、参考文献９「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」等に開示されている。
【０１１７】
＜内積述語暗号＞
内積述語暗号は、属性情報や述語情報としてベクトルを用い、それらの内積が０となる場合に暗号文が復号される述語暗号である。内積述語暗号では、内積が０となることと論理式が「真」となることとが等価である。
【０１１８】
［論理式と多項式との関係］
内積述語暗号では、論理和や論理積からなる論理式を多項式で表現する。
まず、「xがη1である」という命題１と「xがη2である」という命題２との論理和 (x=η1)∨(x=η2)を
(x-η1)・(x-η2)          …(36)
という多項式で表現する。すると、各真理値と式(36)の関数値との関係は以下のようになる。
【表１】
0005422053.tif 000032
【０１１９】
[表1]から分かるように、論理和(x=η1)∨(x=η2)が真である場合、式(36)の関数値は0になり、論理和(x=η1)∨(x=η2)が偽である場合、式(36)の関数値は0以外の値となる。すなわち、論理和(x=η1)∨(x=η2)が真であることと、式(36)の関数値が0となることとは等価である。よって、論理和は式(36)で表現できる。
【０１２０】
また、「xがη1である」という命題１と「xがη2である」という命題２との論理積 (x=η1)∧(x=η2)を
ι1・(x-η1)+ι2・(x-η2)          …(37)
という多項式で表現する。ただし、ι1及びι2は乱数である。すると、真理値と式(37)の関数値とは以下の関係となる。
【表２】
0005422053.tif 000033
【０１２１】
[表２]から分かるように、論理積 (x=η1)∧(x=η2)が真である場合、式(37)の関数値は0になり、論理積(x=η1)∧(x=η2)が偽である場合、式(37)の関数値は0以外の値となる。すなわち、論理積 (x=η1)∧(x=η2)が真であることと、式(37)の関数値が0となることとは等価である。よって、論理積は式(37)で表現できる。
【０１２２】
以上のように、式(36)と式(37)とを用いることで論理和や論理積からなる論理式を多項式f(x)で表現できる。例えば、論理式{(x=η1)∨(x=η2)∨(x=η3)}∧(x=η4)∧(x=η5)は、多項式
f(x)=ι1・{(x-η1)・(x-η2)・(x-η3)}+ι2・(x-η4)+ι3・(x-η5)    …(38)
で表現できる。
なお、式(36）では、１つの不定元xを用いて論理和を表現したが、複数の不定元を用いて論理和を表現することも可能である。例えば、２つの不定元x0及びx1を用い、「x0がη0である」という命題１と「x1がη1である」という命題２との論理和 (x0=η0)∨(x1=η1)を
(x0-η0)・(x1-η1)
という多項式で表現することも可能であり、３つ以上の不定元を用い、論理和を多項式で表現することも可能である。
【０１２３】
また、式(37）では、１つの不定元xを用いて論理積を表現したが、複数の不定元を用いて論理積を表現することも可能である。例えば、また、「x0がη0である」という命題１と「x1がη1である」という命題２との論理積 (x0=η0)∧(x1=η1)を
ι0・(x0-η0)+ι1・(x1-η1)
という多項式で表現することも可能であり、３つ以上の不定元を用い、論理積を多項式で表現することも可能である。
【０１２４】
論理和及び／又は論理積を含む論理式をH(H≧1)種類の不定元x0,...,xH-1を用いて表現した多項式をf(x0,...,xH-1)と表現する。また、各不定元x0,...,xH-1に対応する命題を「xhがηhである」とする。ただし、ηh（h=0,...H-1）は命題ごとに定まる定数である。この場合、当該論理式を示す多項式f(x0,...,xH-1)は、不定元xhと定数ηhとの差をとる多項式によって当該不定元xhが当該定数ηhであるという命題を表現し、命題をそれぞれ表現する多項式の積によって当該命題の論理和を表現し、命題又は命題の論理和をそれぞれ表現する多項式の線形和によって当該命題又は命題の論理和の論理積を表現し、それによって論理式を表現した多項式となる。例えば、５つの不定元x0,...,x4を用い、論理式{(x0=η0)∨(x1=η1)∨(x2=η2)}∧(x3=η3)∧(x4=η4)を多項式で表現すると、
f(x0,...,x4)=ι0・{(x0-η0)・(x1-η1)・(x2-η2)}+ι1・(x3-η3)+ι2・(x4-η4)
となる。
【０１２５】
［多項式と内積の関係］
論理式を示す多項式f(x0,...,xH-1)は、２つのn次元ベクトルの内積で表現できる。すなわち、多項式f(x0,...,xH-1)は、当該多項式f(x0,...,xH-1)の各項の不定元成分を各要素とするベクトル
v→=(v1,...,vn)
と、当該多項式f(x0,...,xH-1)の各項の係数成分を各要素とするベクトル
w→=(w1,...,wn)
との内積
f(x0,...,xH-1)=w→・v→
に等しい。すなわち、論理式を示す多項式f(x0,...,xH-1)が0であるか否かと、多項式f(x0,...,xH-1)の各項の不定元成分を各要素とするベクトルv→と、多項式f(x0,...,xH-1)の各項の係数成分を各要素とするベクトルw→との内積が0であるか否かとは等価である。
f(x0,...,xH-1)=0  ←→  w→・v→=0
【０１２６】
例えば、１つの不定元xで表現された多項式f(x)=θ0・x0+θ1・x+...+θn-1・xn-1は、２つのn次元ベクトル
w→=(w1,...,wn)=(θ0,...,θn-1)        …(39)
v→=(v1,...,vn)=(x0,...,xn-1)          …(40)
の内積
f(x)= w→・v→          …(41)
で表現できる。すなわち、論理式を示す多項式f(x)が0であるか否かと、式(41)の内積が0であるか否かとは等価である。
f(x)=0  ←→  w→・v→=0          …(42)
また、多項式f(x0,...,xH-1)の各項の不定元成分を各要素とするベクトルを
w→=(w1,...,wn)
とし、多項式f(x0,...,xH-1)の各項の係数成分を各要素とするベクトル
v→=(v1,...,vn)
としても、論理式を示す多項式f(x0,...,xH-1)が0であるか否かと、ベクトルw→とベクトルv→との内積が0であるか否かとは等価である。
例えば、式(39)(40)の代わりに
w→=(w1,...,wn)=(x0,...,xn)         …(43)
v→=(v1,...,vn)=(θ0,...,θn-1)      …(44)
としても、論理式を示す多項式f(x)が0であるか否かと、式(41)の内積が0であるか否かとは等価である。
【０１２７】
内積述語暗号では、ベクトルv→=(v1,...,vn)及びw→=(w1,...,wn)の何れか一方を属性情報とし、他方を述語情報とし、属性情報と述語情報の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。例えば、n次元ベクトル(θ0,...,θn-1)が述語情報とされ、n次元ベクトル(x0,...,xn-1)が属性情報とされ、属性情報と述語情報の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。なお、以下では、鍵情報に埋め込まれるn次元ベクトルをw→=(w1,...,wn)とし、暗号文に埋め込まれるn次元ベクトルをv→=(v1,...,vn)とする。例えば、
述語情報：w→=(w1,...,wn)=(θ0,...,θn-1)
属性情報：v→=(v1,...,vn)=(x0,...,xn-1)
であるか、
述語情報：v→=(v1,...,vn)=(θ0,...,θn-1)
属性情報：w→=(w1,...,wn)=(x0,...,xn-1)
である。
【０１２８】
［内積述語暗号の基本構成］
以下では、内積述語暗号を用いて鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する場合の基本構成を例示する。この構成はSetup(1k)，GenKey(MSK,w→)，Enc(PA,v→)，Dec(SKw,C2)を含む。
【０１２９】
《Setup(1k)：セットアップ》
−入力：セキュリティパラメータk
−出力：マスター鍵情報MSK，公開パラメータPK
Setup(1k)の一例では、まず、セキュリティパラメータkをnとして、n+1次元の基底ベクトルai(i=1,...,n+1)を要素とするn+1行n+1列の行列Aと、基底ベクトルai*(i=1,...,n+1)を要素とするn+1行n+1列の行列A*と、座標変換のためのn+1行n+1列の行列X，X*とが選択される。次に、式(22)に従って座標変換されたn+1次元の基底ベクトルbi(i=1,...,n+1)が算出され、式(24)に従って座標変換されたn+1次元の基底ベクトルbi*(i=1,...,n+1)が算出される。そして、基底ベクトルbi*(i=1,...,n+1)を要素とするn+1行n+1列の行列B*がマスター鍵情報MSKとして出力され、ベクトル空間V, V*、基底ベクトルbi(i=1,...,n+1)を要素とするn+1行n+1列の行列B、セキュリティパラメータk、有限体Fq、楕円曲線E、巡回群G1, G2,GT、生成元g1, g2, gT、双線形関数eなどが公開パラメータPKとして出力される。
【０１３０】
《GenKey(MSK,w→)：鍵情報生成》
−入力：マスター鍵情報MSK，ベクトルw→
−出力：ベクトルw→に対応する鍵情報D*
GenKey(MSK,w→)の一例では、まず、有限体Fqから元α∈Fqが選択される。そして、マスター鍵情報MSKである行列B*を用い、ベクトルw→に対応する鍵情報
D*=α・(Σμ=1nwμ・bμ*)+bn+1*∈G2n+1        …(45)
が生成され、出力される。なお、巡回群G2上での離散対数問題の求解が困難である場合、鍵情報D*からwμ・bμ*やbn+1*の成分を分離抽出することは困難である。
【０１３１】
《Enc(PA,v→)：暗号化》
−入力：公開パラメータPK，ベクトルv→
−出力：暗号文C2，共通鍵K
Enc(PA,v→)の一例では、まず、共通鍵Kと有限体Fqの元である乱数υ1とが生成される。そして、行列Bなどの公開パラメータPKと、共通鍵Kを含む値に対応する有限体Fqの元υ2と、ベクトルv→と、乱数υ1とを用い、暗号文
C2=υ1・(Σμ=1nvμ・bμ)+υ2・bn+1∈G1n+1        …(46)
が生成される。そして、暗号文C2と共通鍵Kとが出力される。共通鍵Kの一例はK=gTτ・υ2∈GTである。ここで、添え字のυ2はυ2を意味する。また、前述のようにτの一例はτ=1Fである。なお、巡回群G1上での離散対数問題の求解が困難である場合、暗号文C2からvμ・bμやυ2・bn+1の成分を分離抽出することは困難である。
【０１３２】
《Dec(SKw,C2)：復号・鍵共有》
−入力：ベクトルw→に対応する鍵情報D1*，暗号文C2
−出力：共通鍵K
Dec(SKw,C2)の一例では、まず、暗号文C2と鍵情報D1*とが式(2)の双線形関数eに入力される。すると、式(3)(26)の性質から、
【数３１】
0005422053.tif 000034
を満たす。
ここで、内積w→・v→=0であれば、式(47)は、
【数３２】
0005422053.tif 000035
と変形できる。この結果から共通鍵Kが生成され出力される。共通鍵Kの一例はK=gTτ・υ2∈GTである。
【０１３３】
ここではn+1次元の基底ベクトルを用いてアルゴリズムを構成する例を示したが、次元はn+1に限定されず、Ξを２以上の所定の整数としてn+Ξ次元の基底ベクトルbi*(i=1,...,n+Ξ)を用いてアルゴリズムを構成してもよい。このとき、例えば式(45)に替えて式(49)を、式(46)に替えて式(50)を用いることができる。ここでυιは定数や変数（乱数など）などである。
D*=α・(Σμ=1nwμ・bμ*)+Σι=n+1n+Ξυι・bι*∈G2n+Ξ    …(49)
C2=υ1・(Σμ=1nvμ・bμ)+Σι=2Ξ+1υι・bι+n-1∈G1n+Ξ   …(50)
【０１３４】
なお、式(45)は、
D*=α・(Σμ=1nwμ・bμ*)+υn+1・bn+1*∈G2n+1
であってもよい。さらに、入力情報を入れ換えて、つまり、式(45)にてwをvに置換し式(46)にてvをwに置換してもよい。
【０１３５】
次に、第１の観点から、柔軟に運用可能な、関数暗号（関数暗号の一例として述語暗号を採用する）に依拠する暗号通信技術に関する実施形態を説明する。なお、数式の番号は本節で改めて付け直している。
【０１３６】
〔第１の観点による第１実施形態〕
図１から図１７を参照して、第１の観点による本発明の第１実施形態を説明する。
【０１３７】
暗号システム１は、図１に示すように、複数のクライアント装置１０、３０と、一つまたは複数の鍵生成装置２０と、一つまたは複数のユーザ情報管理装置４０（以下、管理装置と言う）、変換規則情報ペア管理装置５０（以下、登録装置と言う）、一つまたは複数の保全装置８０、一つまたは複数の認証装置９０を含んでいる。これらの各装置は、例えばインターネットである通信網５を介して相互に通信可能とされている。
【０１３８】
クライアント装置は、処理目的に応じて、暗号化装置として、あるいは復号装置として機能する。そこで、クライアント装置を機能の観点から、暗号化装置１０または復号装置３０と呼称する。なお、暗号システム１は、暗号化装置としてのみ機能するクライアント装置および／または復号装置としてのみ機能するクライアント装置を含んでもよい。
【０１３９】
暗号システム１では述語暗号を用いた暗号化と復号が行われる。第１の観点による本発明では、使用する述語暗号アルゴリズムに限定は無く、例えば上記非特許文献２に開示される述語暗号アルゴリズムを用いることが許される。第１の観点による第１実施形態では、ＫＥＭ(Key Encapsulation Mechanisms)タイプの述語暗号アルゴリズムを用いた例を示す。
【０１４０】
暗号システム１における暗号通信方法を、図２、３、４、６、８、１０を参照しながら叙述する。各装置の機能構成については、図５、７、９を参照されたい。
【０１４１】
《準備プロセス》
鍵生成装置２０のパラメータ生成部（図示せず）が、述語暗号アルゴリズムで用いられる秘密鍵とエントリを生成する（ステップＳ１）。エントリには、述語暗号アルゴリズムで用いられる公開パラメータ（図面では公開Ｐと略記される）、鍵生成装置２０のアドレス、鍵生成装置２０が使用可能なポリシーリスト、鍵生成装置２０が使用可能なスキーマリストが含まれる。
【０１４２】
公開パラメータは、例えば位数ｑの巡回群Ｇ1，Ｇ2，ＧTの生成元ｇ1，ｇ2，ｇT、非退化性を持つ双線形写像ｅ：Ｇ1×Ｇ2→ＧT（但し、e(g1,g2)=gT）、位数ｑ、（ｎ＋１）次元のベクトル空間Ｖの直交基底Ｂを含む。秘密鍵は、双対ベクトル空間Ｖ＊の直交基底Ｂ＊を含む。代数構造を有限体Ｆqとする場合、ｑは素数または素数の冪乗値である。双線形写像ｅは例えばTateペアリングやWeilペアリングである。
【０１４３】
直交基底Ｂおよび直交基底Ｂ＊について説明を加える。（ｎ＋１）次元のベクトル空間Ｖの任意の元が、式（１）のように巡回群Ｇ1の（ｎ＋１）次元直積Ｇ1n+1の元として表されるとする。（ｎ＋１）次元のベクトル空間Ｖの任意の元は、（ｎ＋１）次元のベクトル空間Ｖの標準基底Ａを用いて式（２）のように表すこともできる。ただし、ａiは（ｎ＋１）次元直積Ｇ1n+1の元、ｚiは（ｎ＋１）次元直積Ｆqn+1の元とする。また、１は加法単位元とする。
【数３３】
0005422053.tif 000036
【０１４４】
直交基底Ｂは、式（３）のように、標準基底Ａに（ｎ＋１）次正方行列Ｘを作用させたものとして得られる。記号Ｔは転置を表す。なお、行列Ｘは秘密鍵と同様に秘密とされる。
【数３４】
0005422053.tif 000037
【０１４５】
同様に、ベクトル空間Ｖと双対な双対ベクトル空間Ｖ＊の任意の元が、式（４）のように巡回群Ｇ2の（ｎ＋１）次元直積Ｇ2n+1の元として表されるとする。双対ベクトル空間Ｖ＊の任意の元は、双対ベクトル空間Ｖ＊の標準基底Ａ＊を用いて式（５）のように表すこともできる。ただし、ａi＊は（ｎ＋１）次元直積Ｇ2n+1の元、ｙi＊は（ｎ＋１）次元直積Ｆqn+1の元とする。また、１は加法単位元とする。
【数３５】
0005422053.tif 000038
【０１４６】
直交基底Ｂ＊は、式（６）のように、標準基底Ａ＊に（ｎ＋１）次正方行列T(Ｘ-1)を作用させたものとして得られる。記号Ｅは単位行列を表す。
【数３６】
0005422053.tif 000039
【０１４７】
次に、スキーマリストについて説明を加える。属性を指定する情報（属性指定情報；つまり、例えば名前、生年月日などの属性を具体的に一意に特定する情報であり、属性値ともいう）を述語暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（属性用変換規則情報；属性用スキーマともいう）と、
述語（論理式）を指定する情報（述語（論理式）指定情報；つまり、例えば年齢、権限などの属性に関する条件を論理式などで具体的に設定する情報であり、命題関数ともいう）を当該述語暗号アルゴリズムに用いられる述語情報（論理情報）に変換するための変換規則を規定している情報（述語（論理式）用変換規則情報；述語（論理式）用スキーマともいう）とのペアである変換規則情報ペアをスキーマペアと呼ぶ（図１１−図１３参照）。一つまたは複数のスキーマペアの集合体（データリスト）がスキーマリストである。各々の鍵生成装置２０はスキーマリストを自由に定めてよい。スキーマリストに含まれる各スキーマの各データ項目は、例えばＸＭＬ(eXtensible Markup Language)やＡＳＮ．１(Abstract Notation Number One)で記述される。
【０１４８】
図１２に示す属性用スキーマの例について説明を加える。ユーザの属性指定情報（属性値）は、属性名およびデータ型に対応付けられている。図１２に示す例では、例えば、属性名‘email1’にデータ型‘文字列’が設定されており、属性名‘email1’およびデータ型‘文字列’に属性値‘XXX@XXX.ntt.co.jp’が対応付けられている。
【０１４９】
属性用スキーマは、要素番号に属性名と型変換関数を対応付けた変換規則を規定している。図１２に示す例では、例えば、要素番号‘１’に属性名‘血液型’と型変換関数が対応付けられている。要素番号‘１’に対応する型変換関数は、属性値の血液型がＯ型であれば０に、属性値の血液型がA型であれば１に、属性値の血液型がB型であれば２に、属性値の血液型がAB型であれば３に変換することを規定している。また、要素番号‘２’および‘３’に属性名‘生年月日’と型変換関数が対応付けられている。要素番号‘２’および‘３’に対応する型変換関数は、要素番号２に対して属性値の生年月日の年を入力とするHash関数の値に、要素番号３に対して属性値の生年月日の月日を入力とするHash関数の値に変換することを規定している。
【０１５０】
図１２に示すユーザの属性指定情報（属性値）の例に図１２に示す属性用スキーマの例を適用した結果が、図１２に示す属性情報（ベクトル情報）の例として示されている。属性用スキーマの要素番号をベクトルの要素番号と見なして型変換関数の出力値を並べることにより、この属性情報をベクトルと考えることができる。なお、一般的に、関数暗号によると、暗号化の際に複数の属性情報を指定できる。例えば、属性用スキーマを複数の属性指定情報に適用することによって、複数の属性情報を得ることができる。あるいは、複数の属性用スキーマを一つの属性指定情報に適用することによって、複数の属性情報を得てもよい。
【０１５１】
なお、型変換関数の出力値は、この説明では整数値やHash関数の出力値として例示されたが、実際には述語暗号アルゴリズムに依拠し例えば有限体Ｆqの元である。
【０１５２】
図１３に示す述語用スキーマの例について説明を加える。述語指定情報として属性に関する条件を表す論理式が与えられる。図１３に示す例では、例えば、属性名‘名前’の属性値を‘田中太郎’とし、属性名‘年齢’の属性値を‘２０歳以上’とする述語指定情報‘名前=田中太郎かつ年齢=20歳以上’が与えられている。
【０１５３】
述語用スキーマは、要素番号に属性名と型変換関数を対応付けた変換規則を規定している。図１３に示す例では、例えば、要素番号‘１’に属性名‘血液型’と型変換関数が対応付けられている。要素番号‘１’に対応する型変換関数は、属性値の血液型がＯ型であれば０に、属性値の血液型がA型であれば１に、属性値の血液型がB型であれば２に、属性値の血液型がAB型であれば３に変換することを規定している。また、要素番号‘２’および‘３’に属性名‘生年月日’と型変換関数が対応付けられている。要素番号‘２’および‘３’に対応する型変換関数は、要素番号２に対して属性値の生年月日の年を入力とするHash関数の値に、要素番号３に対して属性値の生年月日の月日を入力とするHash関数の値に変換することを規定している。
【０１５４】
図１３に示す述語指定情報の例に図１３に示す述語用スキーマの例を適用した結果が、図１３に示す述語情報（ベクトル情報）の例として示されている。具体的には、この例では、述語用スキーマを述語指定情報に適用することにより要素番号に応じた変数を持つ多変数多項式ｆが得られ、この多変数多項式ｆをベクトル情報に変換することにより、述語情報（ベクトル情報）が得られる。図１３に示す述語指定情報の例に則して説明する。述語指定情報‘名前=田中太郎かつ年齢=20歳以上’に述語用スキーマを適用することにより、要素番号‘０’に対応した型変換関数の出力値‘Hash(田中太郎)’および要素番号‘２３’に対応した型変換関数の出力値‘１’が得られる。そして、要素番号‘０’に対応した型変換関数の出力値‘Hash(田中太郎)’を零点とする要素番号‘０’に対応した変数X0の１次式と、要素番号‘２３’に対応した型変換関数の出力値‘１’を零点とする要素番号‘２３’に対応した変数X23の１次式との線形結合により、多変数多項式ｆ=r1(X0-H(田中太郎))+r2(X23-1)が得られる。ここでｒ１とｒ２は乱数である。さらに、この多変数多項式ｆを展開して各項の係数を並べることにより、多変数多項式ｆがベクトル情報に変換され、図１３に示す述語情報（ベクトル情報）の例が得られる。なお、一般的に、関数暗号によると、暗号化の際に複数の述語情報を指定できる。例えば、述語用スキーマを複数の述語指定情報に適用することによって、複数の述語情報を得ることができる。あるいは、複数の述語用スキーマを一つの述語指定情報に適用することによって、複数の述語情報を得てもよい。
【０１５５】
なお、型変換関数の出力値は、この説明では整数値やHash関数の出力値として例示されたが、実際には述語暗号アルゴリズムに依拠し例えば有限体Ｆqの元である。
【０１５６】
また、スキーマペアを構成する両スキーマの間では、属性名と型変換関数との組み合わせ、入力となる属性値のデータ型などが統一されていることが求められる。
【０１５７】
次にポリシーリストについて図１４を参照して説明を加える。属性用スキーマと述語用スキーマのうちいずれであるかを特定するための情報をポリシー情報（以下、ポリシーと言う）と呼ぶ。このポリシーを記述したデータリストがポリシーリストである。鍵生成装置２０が属性用スキーマと述語用スキーマの両方を使用する場合には、ポリシーとして２種類のタイプが用意される。それはCipher_Text_PolicyとKey_Policyである。鍵生成装置２０が属性用スキーマのみを使用する場合には、ポリシーとして１種類のタイプが用意される。それは、Key_Policyである。鍵生成装置２０が述語用スキーマのみを使用する場合には、ポリシーとして１種類のタイプが用意される。それは、Cipher_Text_Policyである。ポリシーは、例えばＸＭＬ(eXtensible Markup Language)やASN.1(Abstract Notation Number One)で記述される。鍵生成装置２０は、ポリシーの特定対象が、属性用スキーマのみ、あるいは、述語用スキーマのみ、あるいは、属性用スキーマおよび述語用スキーマであることを自由に定めてよい。一般的に関数暗号によると、上述のように、複数の異なる属性用スキーマを一つの属性指定情報に適用することによって、複数の属性情報を得ることができるので、このような場合は、ポリシーとして複数の属性用スキーマを指定しておく。複数の異なる述語用スキーマを一つの述語指定情報に適用することによって、複数の述語情報を得ることができるので、このような場合は、ポリシーとして複数の述語用スキーマを指定しておく。
【０１５８】
ステップＳ１の処理に続いて、鍵生成装置２０の送信部はエントリを認証装置９０に送信し、認証装置９０の受信部がエントリを受信する（ステップＳ２）。認証装置９０の署名付与部（図示せず）がエントリに対して例えば従来的な手法で電子署名を付与して（ステップＳ３）、認証装置９０の送信部が署名付きエントリを鍵生成装置２０に送信し、鍵生成装置２０の受信部が署名付きエントリを受信する（ステップＳ４）。そして、鍵生成装置２０の送信部が署名付きエントリを保全装置８０に送信し、保全装置８０の受信部が署名付きエントリを受信する（ステップＳ５）。
【０１５９】
保全装置８０の送信部は鍵生成装置２０を特定する情報（例えばアドレス）を含む検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ６）。登録装置５０の検索部（図示せず）は、鍵生成装置２０に関する登録内容（エントリ）を検索し（ステップＳ７）、登録装置５０の送信部が登録の有無や登録内容を含む検索結果を保全装置８０に送信し、保全装置８０の受信部が検索結果を受信する（ステップＳ８）。
【０１６０】
保全装置８０の検査部（図示せず）は、ステップＳ５の処理で受信した署名付きエントリと、ステップＳ８の処理で受信した検索結果を比較し、重複の有無を検査する（ステップＳ９）。重複の無いことを確認できた場合、保全装置８０の送信部は、署名付きエントリを登録装置５０に送信し、登録装置５０の受信部が、署名付きエントリを受信する（ステップＳ１０）。登録装置５０の登録部（図示せず）は、署名付きエントリを鍵生成装置２０と対応付けて登録装置５０の記憶部に記憶する（ステップＳ１１）。登録装置５０の送信部は登録結果を保全装置８０に送信し、保全装置の受信部が登録結果を受信する（ステップＳ１２）。保全装置８０の送信部は、登録結果を鍵生成装置２０に送信し、鍵生成装置２０は登録結果を受信する（ステップＳ１３）。
【０１６１】
複数の鍵生成装置２０が存在する場合、各鍵生成装置２０が独自に、ステップＳ１からステップＳ１３の各処理を行う。例えば、公開パラメータと秘密鍵は鍵生成装置ごとに定められる。但し、このことは、各鍵生成装置が共通の公開パラメータと秘密鍵を持つことを妨げるものではない。また、各鍵生成装置が同じ登録装置５０にエントリを登録してもよいし、各鍵生成装置が異なる登録装置５０にエントリを登録してもよい。
【０１６２】
予め、秘密鍵、エントリ、登録装置５０へのエントリ登録などが設定されている場合には、ステップＳ１からステップＳ１３の各処理を省略することが許される。
【０１６３】
また、認証装置９０と保全装置８０は同じハードウェアエンティティであってもよい。なお、エントリ登録に認証を要求しない場合や、登録装置５０に登録されるエントリの一意性が確保されている場合などでは、暗号システム１が保全装置８０および／または認証装置９０を備えないシステム構成も許容される。
【０１６４】
これで《準備プロセス》は終了する。
【０１６５】
《暗号化プロセス》
暗号化装置１０の送信部１４は、図示しない制御部の制御を受けて、検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ１４）。登録装置５０の検索部は、登録装置５０の記憶部に登録されているエントリの一部または全部を検索して任意の一つのエントリを選び（ステップＳ１５）、登録装置５０の送信部は検索結果のエントリを暗号化装置１０に送信し、暗号化装置１０の受信部はエントリを受信する（ステップＳ１６）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、暗号化装置１０のメモリ１１に記憶される。
【０１６６】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め暗号化装置１０が所有している場合には、ステップＳ１４−Ｓ１６の処理は省略される。つまり、暗号システム１が登録装置５０を含まない形態も許容されることに注意しなければならない。
【０１６７】
暗号化装置１０の第１述語論理情報取得部１２が、メモリ１１から入力情報とポリシーとスキーマを読み込み、属性情報（以下、第１属性情報と言う）または述語情報（以下、第１述語情報と言う）を求める（ステップＳ１７ａ）。この処理の詳細について説明を加える（図１２、図１３参照）。
【０１６８】
まず、スキーマリストに複数のスキーマペアが記述されている場合、用途などに応じて一つのスキーマペアが選択される。暗号化装置１０の利用者によってスキーマペアが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がスキーマペアを選択してもよい。
【０１６９】
そして、入力情報が属性指定情報または述語指定情報のいずれであるかに応じてポリシーと共にいずれか一方のスキーマを選択する。暗号化装置１０の利用者によってポリシーといずれか一方のスキーマが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がポリシーといずれか一方のスキーマを選択する場合のいずれであってもよい。なお、鍵生成装置２０のポリシーが１種類のタイプのみ用意されている場合には、そのポリシーに従ってスキーマペアのうちの一方のスキーマが選択される。もし、選択されたスキーマが入力情報の種類に対応していない場合には、スキーマリストからスキーマペアを再選択するか、登録装置５０からエントリの提供を再度受ければよい。
【０１７０】
入力情報は、暗号化装置１０の利用者によって入力された情報または、例えばＩＣカード３９のような記憶媒体から暗号化装置１０の取得部（図示せず）が取得した情報でもよい。
【０１７１】
そして、第１述語論理情報取得部１２が、ポリシーに従ってスキーマペアの中から選択されたスキーマを用いて入力情報から第１属性情報または第１述語情報を得る。ポリシーがKey_Policyであり選択されたスキーマが属性用スキーマである場合には第１属性情報が得られる。ポリシーがCipher_Text_Policyであり選択されたスキーマが述語用スキーマである場合には第１述語情報が得られる。第１属性情報と第１述語情報は、第１の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０１７２】
次に、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる直交基底Ｂ（実質的な公開鍵）と平文Ｍを用いて、共通鍵Ｋと暗号情報Ｃ1と暗号文Ｃ2を求める（ステップＳ１７ｂ、Ｓ１７ｃ）。これらの処理の詳細について説明を加える。ただし、第１の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には暗号文Ｃ2の生成は不要である。
【０１７３】
まず、第１暗号化部１３ａが、述語暗号アルゴリズムに則り、有限体Ｆqの元である乱数ｒ、ρを生成して、式（７）のように共通鍵Ｋを設定し、式（８）に従って暗号情報Ｃ1を求める（ステップＳ１７ｂ）。Ｈは例えばハッシュ関数である。この例では第１属性情報ｖを用いているが、第１述語情報を用いる場合は式（８）においてｖをｗに置き換えればよい。また、この例では、暗号情報Ｃ1は共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報としてもよい。
【数３７】
0005422053.tif 000040
【０１７４】
次に、第２暗号化部１３ｂが、共通鍵Ｋと平文Ｍを用いて、式（９）に従って暗号文Ｃ2を求める（ステップＳ１７ｃ）。共通鍵を用いた暗号化方法EncKは周知の方法でよく、例えば上記非特許文献１に開示される方法である。既述のとおり、第１の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には、ステップＳ１７ｃの処理は省略される。つまり、暗号化装置１０は、第２暗号化部１３ｂの機能を持つとしても、ステップＳ１７ｃの処理を行わない。
【数３８】
0005422053.tif 000041
【０１７５】
次に、暗号化装置１０の送信部１４は、制御部による制御を受けて、暗号情報Ｃ1と、（必要に応じて）暗号文Ｃ2と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。そして暗号化装置１０の送信部１４は、暗号メッセージを復号装置３０に送信し、復号装置３０の受信部が暗号メッセージを受信する（ステップＳ１８）。
【０１７６】
これで《暗号化プロセス》は終了する。
【０１７７】
《復号プロセス》
復号装置３０の送信部３４は、図示しない制御部の制御を受けて、暗号メッセージに含まれる鍵生成装置のアドレスを含む検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ１９）。登録装置５０の検索部は、アドレスで指定された鍵生成装置のエントリを検索してそれを選び（ステップＳ２０）、登録装置５０の送信部は検索結果のエントリを復号装置３０に送信し、復号装置３０の受信部はエントリを受信する（ステップＳ２１）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、復号装置３０のメモリ３１に記憶される。
【０１７８】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め復号装置３０が所有している場合には、ステップＳ１９−Ｓ２１の処理は省略される。この場合、復号装置３０は、暗号メッセージに含まれるアドレスに対応する鍵生成装置のエントリを自身のメモリ３１から検索してこれを取得する。
【０１７９】
復号装置３０の検証部（図示せず）は、制御部の制御を受けて、暗号メッセージに含まれるスキーマペアとポリシーが、登録装置５０から取得したエントリに含まれるポリシーリストとスキーマリストに含まれるか否かを検証する（ステップＳ２２ａ）。この検証に失敗した場合、復号処理の失敗として処理を終了する（ステップＳ２２ｇ）。
【０１８０】
この検証に成功した場合、復号装置３０の取得部３２が、例えばＩＣカード３９のような記憶媒体から、当該復号装置３０の利用者に対応する属性指定情報または述語指定情報を読み取る（ステップＳ２２ｆ）。属性指定情報または述語指定情報のいずれを読み取るかは、暗号メッセージに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、取得部３２は記憶媒体から属性指定情報を読み取る。もしポリシーがKey_Policyである場合、取得部３２は記憶媒体から述語指定情報を読み取る。以下、読み取られた指定情報を利用者情報と呼ぶ。また、復号装置３０の取得部３２が、後述する鍵生成装置２０における処理《利用者情報取得プロセス》と同様に、管理装置４０から、当該復号装置３０の利用者に対応する属性指定情報または述語指定情報を読み取ることも許容される。なお、第１の観点による第１実施形態では、ステップＳ２６ｆの処理は任意に行われる。例えば、予め復号装置３０が利用者に対応する属性指定情報と述語指定情報を所有している場合、ポリシーに従って属性指定情報または述語指定情報のいずれかが利用者情報となる。
【０１８１】
次に、復号装置３０の検証部が、暗号メッセージに含まれる暗号情報を復号するために使用する復号鍵を持っているか否かを検証する（ステップＳ２２ｂ）。
【０１８２】
復号装置３０はメモリ３１に復号鍵テーブルを記憶している。復号鍵テーブルでは、例えば図１５に示すように、鍵生成装置の識別子に対して、公開パラメータと、スキーマペアと、復号鍵の対象と、述語指定情報と、復号鍵とが対応付けられている。そこで、検証部は、暗号メッセージに含まれるアドレスによって判別する鍵生成装置の識別子、公開パラメータと、スキーマペアと、復号鍵の対象（但し、復号鍵の対象は、暗号メッセージに含まれるポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する）に対応する復号鍵の有無を検証する。もし復号鍵が存在すれば、ステップＳ２９の処理を行う。もし復号鍵が存在しなければ、ステップＳ２３の処理を行う。
【０１８３】
ここで《復号プロセス》の説明を中断し、《鍵生成プロセス》の説明をする。
【０１８４】
上述のように復号鍵が存在しない場合、復号装置３０の送信部３４は、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、（もし在れば）利用者情報、認証情報を纏めた鍵要求メッセージを生成する。認証情報は、例えば利用者のＩＤとパスワードを含む。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する（ステップＳ２３）。受信した鍵要求メッセージは、鍵生成装置２０のメモリ２１に記憶される。
【０１８５】
鍵生成装置２０の検証部（図示せず）は、制御部の制御を受けて、鍵要求メッセージに含まれるスキーマペアとポリシーが、当該鍵生成装置２０が所有するエントリ（例えばステップＳ１で生成されたエントリである）に含まれるポリシーリストとスキーマリストに含まれるか否か、および、鍵要求メッセージに含まれる公開パラメータが当該鍵生成装置２０の公開パラメータであるか否かを検証する（ステップＳ２４ａ）。この検証に失敗した場合、鍵生成処理の失敗として処理を終了する（ステップＳ２４ｇ）。なお、ステップＳ２４ａの処理では、鍵要求メッセージに認証情報が含まれるならば、鍵要求メッセージに含まれる認証情報の検証も行われる。鍵生成装置２０は、メモリ２１に認証テーブルを記憶している。認証テーブルでは、例えば図１６に示すように、利用者のＩＤに対してパスワードが対応付けられている。そこで、検証部は、鍵要求メッセージに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。この検証に失敗した場合も、ステップＳ２４ｇの処理が行われる。
【０１８６】
この検証に成功した場合、鍵生成装置２０の検証部が、鍵要求メッセージに利用者情報が含まれているか否かを検証する（ステップＳ２４ｂ）。鍵要求メッセージに利用者情報が含まれていればステップＳ２４ｃの処理を行い、鍵要求メッセージに利用者情報が含まれていなければステップＳ２５の処理を行う。なお、必ず鍵要求メッセージに利用者情報が含まれる方法を採用する場合には、ステップＳ２４ｂの処理および後述する《利用者情報取得プロセス》は不要である。
【０１８７】
ここで《鍵生成プロセス》の説明を中断し、《利用者情報取得プロセス》の説明をする。
【０１８８】
鍵生成装置２０の送信部は、鍵要求メッセージに含まれるポリシーと（もし在れば）認証情報を含むリクエストを管理装置４０に送信し、管理装置４０がリクエストを受信する（ステップＳ２５）。受信したリクエストは、管理装置４０のメモリに記憶される。
【０１８９】
管理装置４０はメモリに認証テーブルを記憶している。この認証テーブルでは、上述の認証テーブルと同様に、利用者のＩＤに対してパスワードが対応付けられている（図１６参照）。そこで、管理装置４０の検証部（図示せず）は、リクエストに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。
【０１９０】
この検証に成功すると、管理装置４０の検索部（図示せず）がリクエストに含まれるポリシーに従って、メモリに記憶されている利用者情報テーブルから属性指定情報または述語指定情報を検索する（ステップＳ２６）。利用者情報テーブルは、例えば利用者のＩＤとこれに対応付けられた属性名および属性指定情報で構成される第１テーブルと、利用者のＩＤとこれに対応付けられた述語指定情報で構成される第２テーブルとを含んでいる（図１７参照）。属性指定情報または述語指定情報のいずれを読み取るかは、リクエストに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、検索部は第１テーブルからリクエストに含まれる利用者のＩＤに対応する属性指定情報を取得する。もしポリシーがKey_Policyである場合、検索部は第２テーブルからリクエストに含まれる利用者のＩＤに対応する述語指定情報を取得する。読み取られた指定情報を利用者情報と呼ぶ。
【０１９１】
管理装置４０の送信部は、制御部による制御を受けて、検索結果の利用者情報を鍵生成装置２０に送信し、鍵生成装置２０の受信部が利用者情報を受信する（ステップＳ２７）。受信した利用者情報は、鍵生成装置２０のメモリ２１に記憶される。
【０１９２】
以上で《利用者情報取得プロセス》を終了し、再び《鍵生成プロセス》の説明に戻る。
【０１９３】
利用者情報を既に所有している場合、あるいは、利用者情報取得プロセスによって利用者情報を受信した場合（ステップＳ２７）、鍵生成装置２０の第２述語論理情報取得部２３は、メモリ２１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２４ｃ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第１の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０１９４】
次に、鍵生成装置２０の鍵生成部２５が、述語暗号アルゴリズムに則り、公開パラメータのｑに基づき有限体Ｆqの元である乱数αを生成して、メモリ２１からの第２属性情報ｖ(p)＝(ｖ(p)1，…，ｖ(p)n)または第２述語情報ｗ(p)＝(ｗ(p)1，…，ｗ(p)n)と、当該鍵生成装置の秘密鍵Ｂ＊を用いて、式（１０）に従って復号鍵Ｒを求める（ステップＳ２４ｄ）。暗号化処理で用いられた入力情報が属性指定情報である場合に対応して、この例では第２述語情報ｗ(p)を用いているが、入力情報が述語指定情報である場合には、第２属性情報ｖ(p)が対応するので、式（１０）においてｗ(p)をｖ(p)に置き換えればよい。
【数３９】
0005422053.tif 000042
【０１９５】
次に、鍵生成装置２０の送信部２４は、制御部による制御を受けて、復号鍵Ｒを復号装置３０に送信し、復号装置３０の受信部が復号鍵Ｒを受信する（ステップＳ２８）。受信した復号鍵Ｒは、復号装置３０のメモリ３１に記憶される。
【０１９６】
以上で《鍵生成プロセス》を終了し、再び《復号プロセス》の説明に戻る。
【０１９７】
復号鍵を既に所有している場合、あるいは、鍵生成プロセスによって復号鍵を受信した場合（ステップＳ２８）、復号装置３０の復号部３３が、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1と（必要に応じて）暗号文Ｃ2を読み込んで、共通鍵Ｋと（必要に応じて）平文Ｍを求める（ステップＳ２９）。
【０１９８】
このステップＳ２９の処理の詳細について説明を加える。第１復号部３３ａは、メモリ３１から公開パラメータと暗号情報Ｃ1と復号鍵Ｒを読み込み、述語暗号アルゴリズムに則り、ｅ(Ｃ1,Ｒ)を求める。この演算結果は式（１１）に示すように、入力情報が属性指定情報である場合、双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１属性情報ｖと第２述語情報ｗ(p)の標準内積の結果に依存する。入力情報が述語指定情報である場合、式（１１）においてｖをｖ(p)に、ｗ(p)をｗに置き換えればよく、演算結果は双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１述語情報ｗと第２属性情報ｖ(p)の標準内積の結果に依存する。但し、ｅ(ｂi,ｂi*)は式（１２）のように定義される。δijは、クロネッカーのデルタ記号である。
【数４０】
0005422053.tif 000043
【０１９９】
従って、第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）の場合、式（１１）の演算結果ｇＴρが得られる。この演算結果ｇＴρが得られた場合、復号装置３０の第１復号部３３ａは、式（７）に従って“正しい”共通鍵Ｋを得る（ステップＳ２２ｃ）。もし第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）ではない場合、第１復号部３３ａは、式（７）に従って“正しくない”値を得る。この例では、ハッシュ関数Ｈはシステムに共通とするか公開パラメータに含まれるとする。この例では、暗号情報Ｃ1が共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報とする場合には、式（１１）の演算結果が共通鍵Ｋ（あるいは正しくない値）となる。つまり、復号装置３０の正当な利用者は、第１属性情報ｖとの標準内積が０となる第２述語情報ｗ(p)を与える述語指示情報、あるいは、第１述語情報ｗとの標準内積が０となる第２属性情報ｖ(p)を与える属性指示情報を持つ。
【０２００】
次に、第２復号部３３ｂが、共通鍵Ｋと暗号文Ｃ2を用いて、式（１３）に従って平文Ｍを求める（ステップＳ２２ｄ）。共通鍵を用いた復号方法DecKは暗号化方法EncKに対応する。既述のとおり、第１の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には、ステップＳ２２ｄの処理は省略される。つまり、復号装置３０は、第２復号部３３ｂの機能を持つとしても、ステップＳ２２ｄの処理を行わない。
【数４１】
0005422053.tif 000044
【０２０１】
もし、式（１１）に従った演算結果が正しくない値である場合には、式（１３）によっては正しい平文Ｍを得ることができない。
【０２０２】
なお、復号装置３０は、復号鍵Ｒを復号鍵テーブルに記憶してもよい。また、共通鍵Ｋを復号鍵テーブルに付加して記憶してもよい。
【０２０３】
これで《復号プロセス》は終了する。
【０２０４】
〔第１の観点による第２実施形態〕
第１の観点による第２実施形態では、第１の観点による第１実施形態と異なり、復号装置３０が第２属性情報または第２述語情報を生成する。この差異に伴い、第１の観点による第２実施形態は、いくつかの事項で第１の観点による第１実施形態と異なる。そこで、第１の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図１８−図２１を参照しながら第１の観点による第１実施形態と異なる部分を説明する。
【０２０５】
ステップＳ１からステップＳ２２ｂまでの処理は、第１の観点による第１実施形態と同じである。
【０２０６】
ステップＳ２２ｂの処理で復号鍵を所有していない場合、復号装置３０の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２３ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第１の観点による第２実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０２０７】
ステップＳ２３ｇの処理の後、ステップＳ２３の処理が行われる。ただし、この処理では、復号装置３０の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０２０８】
そして、ステップＳ２４ａの処理で検証に成功した場合、ステップＳ２４ｄの処理が行われる。鍵生成装置２０は復号装置３０から第２属性情報または第２述語情報を受信しているため、第１の観点による第１実施形態と異なり、この情報を生成するための機能と処理が不要である。
【０２０９】
そして、ステップＳ２４ｄの処理の後のステップＳ２８とステップＳ２９の各処理は、第１の観点による第１実施形態と同じである。
【０２１０】
〔第１の観点による第３実施形態〕
第１の観点による第３実施形態では、第１の観点による第１実施形態と異なり、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める。つまり、第１の観点による第３実施形態では、例えば上記非特許文献２に示す述語暗号アルゴリズムが用いられる。この差異に伴い、第１の観点による第３実施形態は、いくつかの事項で第１の観点による第１実施形態と異なる。そこで、第１の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図２２−図２５を参照しながら第１の観点による第１実施形態と異なる部分を説明する。
【０２１１】
ステップＳ１からステップＳ１７ａまでの処理は、第１の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第１の観点による第３実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０２１２】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める（ステップＳ１７ｂ１）。
【０２１３】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号情報Ｃ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０２１４】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ２８までの処理は、第１の観点による第１実施形態と同じである。
【０２１５】
ステップＳ２８の処理に続くステップＳ２２ｃ１の処理では、復号装置３０の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ２２ｃ１）。
【０２１６】
〔第１の観点による第４実施形態〕
第１の観点による第４実施形態は、第１の観点による第２実施形態と第１の観点による第３実施形態の組み合わせ形態に相当する。つまり、第１の観点による第４実施形態は、第１の観点による第１実施形態と異なり、（１）復号装置３０が第２属性情報または第２述語情報を生成する、（２）暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める。この差異に伴い、第１の観点による第４実施形態は、いくつかの事項で第１の観点による第１実施形態と異なる。そこで、第１の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図２６と図２７も参照して第１の観点による第１実施形態と異なる部分を説明する。
【０２１７】
ステップＳ１からステップＳ１７ａまでの処理は、第１の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第１の観点による第４実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０２１８】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める（ステップＳ１７ｂ１）。
【０２１９】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号情報Ｃ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０２２０】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ２２ｂの処理までは、第１の観点による第１実施形態と同じである。
【０２２１】
ステップＳ２２ｂの処理で復号鍵を所有していない場合、復号装置３０の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２３ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第１の観点による第４実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０２２２】
ステップＳ２３ｇの処理の後、ステップＳ２３の処理が行われる。ただし、この処理では、復号装置３０の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０２２３】
そして、ステップＳ２４ａの処理で検証に成功した場合、ステップＳ２４ｄの処理が行われる。鍵生成装置２０は、復号装置３０から第２属性情報または第２述語情報を受信しているため、この情報を生成するための機能と処理が不要である。
【０２２４】
そして、ステップＳ２４ｄの処理の後のステップＳ２８の処理は、第１の観点による第１実施形態と同じである。
【０２２５】
ステップＳ２８の処理に続くステップＳ２２ｃ１の処理では、復号装置３０の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ２２ｃ１）。
【０２２６】
次に、上述の第１の観点による暗号通信技術に留意しつつ、第２の観点から、柔軟に運用可能であって述語暗号で暗号化された暗号情報を流通させることが可能な、述語暗号に依拠する暗号通信技術に関する実施形態を説明する。この技術によると、復号装置が転送機能を持っているため、述語暗号で暗号化された暗号情報を流通させることができる。
【０２２７】
第２の観点による暗号通信技術の説明は上述の第１の観点による暗号通信技術の説明と実質的に重複する部分を多く含むが、第１の観点による暗号通信技術の説明を参照しなくてもよいように、できるだけ重複説明と重複図面を省略せずに第２の観点による暗号通信技術を説明する。このため、数式の番号、機能部を表す参照番号、ステップを表す参照番号なども両者で重複するが、文脈から混乱の虞は無いであろう。
【０２２８】
〔第２の観点による第１実施形態〕
図２８から図４１を参照して第２の観点による本発明の第１実施形態を説明する。
【０２２９】
第２の観点による暗号システム１は、図２８に示すように、複数のクライアント装置１０、３０−１、３０−２と、一つまたは複数の鍵生成装置２０と、一つまたは複数のユーザ情報管理装置４０（以下、管理装置と言う）、変換規則情報ペア管理装置５０（以下、登録装置と言う）、一つまたは複数の保全装置８０、一つまたは複数の認証装置９０を含んでいる。これらの各装置は、例えばインターネットである通信網５を介して相互に通信可能とされている。
【０２３０】
クライアント装置は、処理目的に応じて、暗号化装置として、あるいは復号装置として機能する。そこで、クライアント装置を機能の観点から、暗号化装置１０または復号装置と呼称する。復号装置は、後述する暗号メッセージの授受について暗号化装置１０との関係で当事者である第１の復号装置３０−１と、当事者ではない第２の復号装置３０−２に類別される。なお、第２の観点による暗号システム１は、暗号化装置としてのみ機能するクライアント装置および／または復号装置としてのみ機能するクライアント装置を含んでもよい。
【０２３１】
第２の観点による暗号システム１では述語暗号を用いた暗号化と復号が行われる。第２の観点による本発明では、使用する述語暗号アルゴリズムに限定は無く、例えば上記非特許文献２に開示される述語暗号アルゴリズムを用いることが許される。第２の観点による第１実施形態では、ＫＥＭ(Key Encapsulation Mechanisms)タイプの述語暗号アルゴリズムを用いた例を示す。
【０２３２】
第２の観点による暗号システム１における暗号通信方法を、図２９、３０、３１、３２、３４、３６、３８、４０、４１を参照しながら叙述する。各装置の機能構成については、図３３、３５、３７、３９を参照されたい。
【０２３３】
《準備プロセス》
第１の観点による発明の第１実施形態における《準備プロセス》の説明の全てをここに援用し、重複説明を省略する。なお、この《準備プロセス》の説明に対応する図として図２９を、スキーマペアについては図１１−１３を、ポリシーリストについては図１４を参照されたい。これで《準備プロセス》は終了する。
【０２３４】
《暗号化プロセス》
暗号化装置１０の送信部１４は、図示しない制御部の制御を受けて、検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ１４）。登録装置５０の検索部は、登録装置５０の記憶部に登録されているエントリの一部または全部を検索して一つのエントリを選び（ステップＳ１５）、登録装置５０の送信部は検索結果のエントリを暗号化装置１０に送信し、暗号化装置１０の受信部はエントリを受信する（ステップＳ１６）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、暗号化装置１０のメモリ１１に記憶される。
【０２３５】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め暗号化装置１０が所有している場合には、ステップＳ１４−Ｓ１６の処理は省略される。つまり、暗号システム１が登録装置５０を含まない形態も許容されることに注意しなければならない。
【０２３６】
暗号化装置１０の第１述語論理情報取得部１２が、メモリ１１から入力情報とポリシーとスキーマを読み込み、属性情報（以下、第１属性情報と言う）または述語情報（以下、第１述語情報と言う）を求める（ステップＳ１７ａ）。この処理の詳細について説明を加える（図１２、図１３参照）。
【０２３７】
まず、スキーマリストに複数のスキーマペアが記述されている場合、用途などに応じて一つのスキーマペアが選択される。暗号化装置１０の利用者によってスキーマペアが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がスキーマペアを選択してもよい。
【０２３８】
そして、入力情報が属性指定情報または述語指定情報のいずれであるかに応じてポリシーと共にいずれか一方のスキーマを選択する。暗号化装置１０の利用者によってポリシーといずれか一方のスキーマが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がポリシーといずれか一方のスキーマを選択する場合のいずれであってもよい。なお、鍵生成装置２０のポリシーが１種類のタイプのみ用意されている場合には、そのポリシーに従ってスキーマペアのうちの一方のスキーマが選択される。もし、選択されたスキーマが入力情報の種類に対応していない場合には、スキーマリストからスキーマペアを再選択するか、登録装置５０からエントリの提供を再度受ければよい。
【０２３９】
入力情報は、暗号化装置１０の利用者によって入力された情報または、例えばＩＣカード３９のような記憶媒体から暗号化装置１０の取得部（図示せず）が取得した情報でもよい。
【０２４０】
そして、第１述語論理情報取得部１２が、ポリシーに従ってスキーマペアの中から選択されたスキーマを用いて入力情報から第１属性情報または第１述語情報を得る。ポリシーがKey_Policyであり選択されたスキーマが属性用スキーマである場合には第１属性情報が得られる。ポリシーがCipher_Text_Policyであり選択されたスキーマが述語用スキーマである場合には第１述語情報が得られる。第１属性情報と第１述語情報は、第２の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０２４１】
次に、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる直交基底Ｂ（実質的な公開鍵）と平文Ｍを用いて、共通鍵Ｋと暗号情報Ｃ1と暗号文Ｃ2を求める（ステップＳ１７ｂ、Ｓ１７ｃ）。これらの処理の詳細について説明を加える。ただし、第２の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には暗号文Ｃ2の生成は不要である。
【０２４２】
まず、第１暗号化部１３ａが、述語暗号アルゴリズムに則り、有限体Ｆqの元である乱数ｒ、ρを生成して、上記式（７）のように共通鍵Ｋを設定し、上記式（８）に従って暗号情報Ｃ1を求める（ステップＳ１７ｂ）。Ｈは例えばハッシュ関数である。この例では第１属性情報ｖを用いているが、第１述語情報を用いる場合は上記式（８）においてｖをｗに置き換えればよい。また、この例では、暗号情報Ｃ1は共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報としてもよい。
【０２４３】
次に、第２暗号化部１３ｂが、共通鍵Ｋと平文Ｍを用いて、上記式（９）に従って暗号文Ｃ2を求める（ステップＳ１７ｃ）。共通鍵を用いた暗号化方法EncKは周知の方法でよく、例えば上記非特許文献１に開示される方法である。既述のとおり、第２の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には、ステップＳ１７ｃの処理は省略される。つまり、暗号化装置１０は、第２暗号化部１３ｂの機能を持つとしても、ステップＳ１７ｃの処理を行わない。
【０２４４】
次に、暗号化装置１０の送信部１４は、制御部による制御を受けて、暗号情報Ｃ1と、（必要に応じて）暗号文Ｃ2と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。そして暗号化装置１０の送信部１４は、暗号メッセージを第１の復号装置３０−１に送信し、第１の復号装置３０−１の受信部が暗号メッセージを受信する（ステップＳ１８）。なお、暗号化装置１０が複数の第１の復号装置３０−１に対して暗号メッセージを送信することが許容される。
【０２４５】
これで《暗号化プロセス》は終了する。
【０２４６】
《第１の復号プロセス》
第１の復号装置３０−１の送信部３４は、図示しない制御部の制御を受けて、暗号メッセージに含まれる鍵生成装置のアドレスを含む検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ１９）。登録装置５０の検索部は、アドレスで指定された鍵生成装置のエントリを検索してそれを選び（ステップＳ２０）、登録装置５０の送信部は検索結果のエントリを第１の復号装置３０−１に送信し、第１の復号装置３０−１の受信部はエントリを受信する（ステップＳ２１）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、第１の復号装置３０−１のメモリ３１に記憶される。
【０２４７】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め第１の復号装置３０−１が所有している場合には、ステップＳ１９−Ｓ２１の処理は省略される。この場合、第１の復号装置３０−１は、暗号メッセージに含まれるアドレスに対応する鍵生成装置のエントリを自身のメモリ３１から検索してこれを取得する。
【０２４８】
第１の復号装置３０−１の検証部（図示せず）は、制御部の制御を受けて、暗号メッセージに含まれるスキーマペアとポリシーが、登録装置５０から取得したエントリに含まれるポリシーリストとスキーマリストに含まれるか否かを検証する（ステップＳ２２ａ）。この検証に失敗した場合、復号処理の失敗として処理を終了する（ステップＳ２２ｇ）。
【０２４９】
この検証に成功した場合、第１の復号装置３０−１の取得部３２が、例えばＩＣカード３９のような記憶媒体から、当該第１の復号装置３０−１の利用者に対応する属性指定情報または述語指定情報を読み取る（ステップＳ２２ｆ）。属性指定情報または述語指定情報のいずれを読み取るかは、暗号メッセージに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、取得部３２は記憶媒体から属性指定情報を読み取る。もしポリシーがKey_Policyである場合、取得部３２は記憶媒体から述語指定情報を読み取る。以下、読み取られた指定情報を利用者情報と呼ぶ。また、第１の復号装置３０−１の取得部３２が、後述する鍵生成装置２０における処理《利用者情報取得プロセス》と同様に、管理装置４０から、当該第１の復号装置３０−１の利用者に対応する属性指定情報または述語指定情報を読み取ることも許容される。なお、第２の観点による第１実施形態では、ステップＳ２２ｆの処理は任意に行われる。例えば、予め第１の復号装置３０−１が利用者に対応する属性指定情報と述語指定情報を所有している場合、ポリシーに従って属性指定情報または述語指定情報のいずれかが利用者情報となる。
【０２５０】
次に、第１の復号装置３０−１の検証部が、暗号メッセージに含まれる暗号情報を復号するために使用する復号鍵を持っているか否かを検証する（ステップＳ２２ｂ）。
【０２５１】
第１の復号装置３０−１はメモリ３１に復号鍵テーブルを記憶している。復号鍵テーブルでは、例えば図１５に示すように、鍵生成装置の識別子に対して、公開パラメータと、スキーマペアと、復号鍵の対象と、述語指定情報と、復号鍵とが対応付けられている。そこで、検証部は、暗号メッセージに含まれるアドレスによって判別する鍵生成装置の識別子、公開パラメータと、スキーマペアと、復号鍵の対象（但し、これは、暗号メッセージに含まれるポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する）に対応する復号鍵の有無を検証する。もし復号鍵が存在すれば、ステップＳ２９の処理を行う。もし復号鍵が存在しなければ、ステップＳ２３の処理を行う。
【０２５２】
ここで《復号プロセス》の説明を中断し、《鍵生成プロセス》の説明をする。
【０２５３】
上述のように復号鍵が存在しない場合、第１の復号装置３０−１の送信部３４は、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、（もし在れば）利用者情報、認証情報を纏めた鍵要求メッセージを生成する。認証情報は、例えば利用者のＩＤとパスワードを含む。そして、第１の復号装置３０−１の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する（ステップＳ２３）。受信した鍵要求メッセージは、鍵生成装置２０のメモリ２１に記憶される。
【０２５４】
鍵生成装置２０の検証部（図示せず）は、制御部の制御を受けて、鍵要求メッセージに含まれるスキーマペアとポリシーが、当該鍵生成装置２０が所有するエントリ（例えばステップＳ１で生成されたエントリである）に含まれるポリシーリストとスキーマリストに含まれるか否か、および、鍵要求メッセージに含まれる公開パラメータが当該鍵生成装置２０の公開パラメータであるか否かを検証する（ステップＳ２４ａ）。この検証に失敗した場合、鍵生成処理の失敗として処理を終了する（ステップＳ２４ｇ）。なお、ステップＳ２４ａの処理では、鍵要求メッセージに認証情報が含まれるならば、鍵要求メッセージに含まれる認証情報の検証も行われる。鍵生成装置２０は、メモリ２１に認証テーブルを記憶している。認証テーブルでは、例えば図１６に示すように、利用者のＩＤに対してパスワードが対応付けられている。そこで、検証部は、鍵要求メッセージに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。この検証に失敗した場合も、ステップＳ２４ｇの処理が行われる。
【０２５５】
この検証に成功した場合、鍵生成装置２０の検証部が、鍵要求メッセージに利用者情報が含まれているか否かを検証する（ステップＳ２４ｂ）。鍵要求メッセージに利用者情報が含まれていればステップＳ２４ｃの処理を行い、鍵要求メッセージに利用者情報が含まれていなければステップＳ２５の処理を行う。なお、必ず鍵要求メッセージに利用者情報が含まれる方法を採用する場合には、ステップＳ２４ｂの処理および後述する《利用者情報取得プロセス》は不要である。
【０２５６】
ここで《鍵生成プロセス》の説明を中断し、《利用者情報取得プロセス》の説明をする。
【０２５７】
鍵生成装置２０の送信部は、鍵要求メッセージに含まれるポリシーと（もし在れば）認証情報を含むリクエストを管理装置４０に送信し、管理装置４０がリクエストを受信する（ステップＳ２５）。受信したリクエストは、管理装置４０のメモリに記憶される。
【０２５８】
管理装置４０はメモリに認証テーブルを記憶している。この認証テーブルでは、上述の認証テーブルと同様に、利用者のＩＤに対してパスワードが対応付けられている（図１６参照）。そこで、管理装置４０の検証部（図示せず）は、リクエストに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。
【０２５９】
この検証に成功すると、管理装置４０の検索部（図示せず）がリクエストに含まれるポリシーに従って、メモリに記憶されている利用者情報テーブルから属性指定情報または述語指定情報を検索する（ステップＳ２６）。利用者情報テーブルは、例えば利用者のＩＤとこれに対応付けられた属性名および属性指定情報で構成される第１テーブルと、利用者のＩＤとこれに対応付けられた述語指定情報で構成される第２テーブルとを含んでいる（図１７参照）。属性指定情報または述語指定情報のいずれを読み取るかは、リクエストに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、検索部は第１テーブルからリクエストに含まれる利用者のＩＤに対応する属性指定情報を取得する。もしポリシーがKey_Policyである場合、検索部は第２テーブルからリクエストに含まれる利用者のＩＤに対応する述語指定情報を取得する。読み取られた指定情報を利用者情報と呼ぶ。
【０２６０】
管理装置４０の送信部は、制御部による制御を受けて、検索結果の利用者情報を鍵生成装置２０に送信し、鍵生成装置２０の受信部が利用者情報を受信する（ステップＳ２７）。受信した利用者情報は、鍵生成装置２０のメモリ２１に記憶される。
【０２６１】
以上で《利用者情報取得プロセス》を終了し、再び《鍵生成プロセス》の説明に戻る。
【０２６２】
利用者情報を既に所有している場合、あるいは、利用者情報取得プロセスによって利用者情報を受信した場合（ステップＳ２７）、鍵生成装置２０の第２述語論理情報取得部２３は、メモリ２１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２４ｃ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０２６３】
次に、鍵生成装置２０の鍵生成部２５が、述語暗号アルゴリズムに則り、公開パラメータのｑに基づき有限体Ｆqの元である乱数αを生成して、メモリ２１からの第２属性情報ｖ(p)＝(ｖ(p)1，…，ｖ(p)n)または第２述語情報ｗ(p)＝(ｗ(p)1，…，ｗ(p)n)と、当該鍵生成装置の秘密鍵Ｂ＊を用いて、上記式（１０）に従って復号鍵Ｒを求める（ステップＳ２４ｄ）。暗号化処理で用いられた入力情報が属性指定情報である場合に対応して、この例では第２述語情報ｗ(p)を用いているが、入力情報が述語指定情報である場合には、第２属性情報ｖ(p)が対応するので、上記式（１０）においてｗ(p)をｖ(p)に置き換えればよい。
【０２６４】
次に、鍵生成装置２０の送信部２４は、制御部による制御を受けて、復号鍵Ｒを第１の復号装置３０−１に送信し、第１の復号装置３０−１の受信部が復号鍵Ｒを受信する（ステップＳ２８）。受信した復号鍵Ｒは、第１の復号装置３０−１のメモリ３１に記憶される。
【０２６５】
以上で《鍵生成プロセス》を終了し、再び《復号プロセス》の説明に戻る。
【０２６６】
復号鍵を既に所有している場合、あるいは、鍵生成プロセスによって復号鍵を受信した場合（ステップＳ２８）、第１の復号装置３０−１の復号部３３が、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1と（必要に応じて）暗号文Ｃ2を読み込んで、共通鍵Ｋと（必要に応じて）平文Ｍを求める（ステップＳ２９）。
【０２６７】
このステップＳ２９の処理の詳細について説明を加える。第１復号部３３ａは、メモリ３１から公開パラメータと暗号情報Ｃ1と復号鍵Ｒを読み込み、述語暗号アルゴリズムに則り、ｅ(Ｃ1,Ｒ)を求める。この演算結果は上記式（１１）に示すように、入力情報が属性指定情報である場合、双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１属性情報ｖと第２述語情報ｗ(p)の標準内積の結果に依存する。入力情報が述語指定情報である場合、上記式（１１）においてｖをｖ(p)に、ｗ(p)をｗに置き換えればよく、演算結果は双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１述語情報ｗと第２属性情報ｖ(p)の標準内積の結果に依存する。但し、ｅ(ｂi,ｂi*)は上記式（１２）のように定義される。δijは、クロネッカーのデルタ記号である。
【０２６８】
従って、第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）の場合、上記式（１１）の演算結果ｇＴρが得られる。この演算結果ｇＴρが得られた場合、第１の復号装置３０−１の第１復号部３３ａは、上記式（７）に従って“正しい”共通鍵Ｋを得る（ステップＳ２２ｃ）。もし第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）ではない場合、第１復号部３３ａは、上記式（７）に従って“正しくない”値を得る。この例では、ハッシュ関数Ｈはシステムに共通とするか公開パラメータに含まれるとする。この例では、暗号情報Ｃ1が共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報とする場合には、上記式（１１）の演算結果が共通鍵Ｋ（あるいは正しくない値）となる。つまり、第１の復号装置３０−１の正当な利用者は、第１属性情報ｖとの標準内積が０となる第２述語情報ｗ(p)を与える述語指示情報、あるいは、第１述語情報ｗとの標準内積が０となる第２属性情報ｖ(p)を与える属性指示情報を持つ。
【０２６９】
次に、第２復号部３３ｂが、共通鍵Ｋと暗号文Ｃ2を用いて、上記式（１３）に従って平文Ｍを求める（ステップＳ２２ｄ）。共通鍵を用いた復号方法DecKは暗号化方法EncKに対応する。既述のとおり、第２の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には、ステップＳ２２ｄの処理は省略される。つまり、第１の復号装置３０−１は、第２復号部３３ｂの機能を持つとしても、ステップＳ２２ｄの処理を行わない。
【０２７０】
もし、上記式（１１）に従った演算結果が正しくない値である場合には、上記式（１３）によっては正しい平文Ｍを得ることができない。
【０２７１】
なお、第１の復号装置３０−１は、復号鍵Ｒを復号鍵テーブルに記憶してもよい。また、共通鍵Ｋを復号鍵テーブルに付加して記憶してもよい。
【０２７２】
これで《第１の復号プロセス》は終了する。
【０２７３】
《転送プロセス》
第１の復号装置３０−１の転送部３７は、暗号化装置１０から受信した暗号メッセージを第２の復号装置３０−２に転送し、第２の復号装置３０−２の受信部が暗号メッセージを受信する（ステップ３０）。転送先の復号装置は、第２の復号装置（暗号メッセージの授受について暗号化装置と当事者の関係にない復号装置）に限らず、他の第１の復号装置（暗号メッセージの授受について暗号化装置と当事者の関係にある復号装置）であってもよい。また、ステップＳ３０の処理は、説明の都合、ステップＳ２９の処理に続く処理として説明するが、第１の復号装置３０−１が暗号化装置１０から暗号メッセージを受信した以降であれば何時でもよい。
【０２７４】
これで《転送プロセス》は終了する。
【０２７５】
第２の復号装置３０−２による第２の復号プロセス（鍵生成プロセスと必要に応じて利用者情報取得プロセスを含む）について説明する。この一連の処理は、第１の復号プロセスと実質的に同じである。また、第２の復号装置３０−２の機能構成は、転送部３７を必ずしも持たなくてよいという点を除いて、第１の復号装置３０−１と同じであるから、共通する機能構成要素については同一の参照番号を割り当てている。
【０２７６】
《第２の復号プロセス》
第２の復号装置３０−２の送信部３４は、図示しない制御部の制御を受けて、暗号メッセージに含まれる鍵生成装置のアドレスを含む検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ３１）。登録装置５０の検索部は、アドレスで指定された鍵生成装置のエントリを検索してそれを選び（ステップＳ３２）、登録装置５０の送信部は検索結果のエントリを第２の復号装置３０−２に送信し、第２の復号装置３０−２の受信部はエントリを受信する（ステップＳ３３）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、第２の復号装置３０−２のメモリ３１に記憶される。
【０２７７】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め第２の復号装置３０−２が所有している場合には、ステップＳ３１−Ｓ３３の処理は省略される。この場合、第２の復号装置３０−２は、暗号メッセージに含まれるアドレスに対応する鍵生成装置のエントリを自身のメモリ３１から検索してこれを取得する。
【０２７８】
第２の復号装置３０−２の検証部（図示せず）は、制御部の制御を受けて、暗号メッセージに含まれるスキーマペアとポリシーが、登録装置５０から取得したエントリに含まれるポリシーリストとスキーマリストに含まれるか否かを検証する（ステップＳ３４ａ）。この検証に失敗した場合、復号処理の失敗として処理を終了する（ステップＳ３４ｇ）。
【０２７９】
この検証に成功した場合、第２の復号装置３０−２の取得部３２が、例えばＩＣカード３９のような記憶媒体から、当該第２の復号装置３０−２の利用者に対応する属性指定情報または述語指定情報を読み取る（ステップＳ３４ｆ）。属性指定情報または述語指定情報のいずれを読み取るかは、暗号メッセージに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、取得部３２は記憶媒体から属性指定情報を読み取る。もしポリシーがKey_Policyである場合、取得部３２は記憶媒体から述語指定情報を読み取る。以下、読み取られた指定情報を利用者情報と呼ぶ。また、第２の復号装置３０−２の取得部３２が、後述する鍵生成装置２０における処理《利用者情報取得プロセス》と同様に、管理装置４０から、当該第２の復号装置３０−２の利用者に対応する属性指定情報または述語指定情報を読み取ることも許容される。なお、第２の観点による第１実施形態では、ステップＳ３４ｆの処理は任意に行われる。例えば、予め第２の復号装置３０−２が利用者に対応する属性指定情報と述語指定情報を所有している場合、ポリシーに従って属性指定情報または述語指定情報のいずれかが利用者情報となる。
【０２８０】
次に、第２の復号装置３０−２の検証部が、暗号メッセージに含まれる暗号情報を復号するために使用する復号鍵を持っているか否かを検証する（ステップＳ３４ｂ）。
【０２８１】
第２の復号装置３０−２はメモリ３１に復号鍵テーブルを記憶している。復号鍵テーブルでは、例えば図１５に示すように、鍵生成装置の識別子に対して、公開パラメータと、スキーマペアと、復号鍵の対象と、述語指定情報と、復号鍵とが対応付けられている。そこで、検証部は、暗号メッセージに含まれるアドレスによって判別する鍵生成装置の識別子、公開パラメータと、スキーマペアと、復号鍵の対象（但し、これは、暗号メッセージに含まれるポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する）に対応する復号鍵の有無を検証する。もし復号鍵が存在すれば、ステップＳ４１の処理を行う。もし復号鍵が存在しなければ、ステップＳ３５の処理を行う。
【０２８２】
ここで《復号プロセス》の説明を中断し、《鍵生成プロセス》の説明をする。
【０２８３】
上述のように復号鍵が存在しない場合、第２の復号装置３０−２の送信部３４は、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、（もし在れば）利用者情報、認証情報を纏めた鍵要求メッセージを生成する。認証情報は、例えば利用者のＩＤとパスワードを含む。そして、第２の復号装置３０−２の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する（ステップＳ３５）。受信した鍵要求メッセージは、鍵生成装置２０のメモリ２１に記憶される。この鍵生成装置２０は、第１の復号装置３０−１の相手方の鍵生成装置２０と同じである必要はない。
【０２８４】
鍵生成装置２０の検証部（図示せず）は、制御部の制御を受けて、鍵要求メッセージに含まれるスキーマペアとポリシーが、当該鍵生成装置２０が所有するエントリ（例えばステップＳ１で生成されたエントリである）に含まれるポリシーリストとスキーマリストに含まれるか否か、および、鍵要求メッセージに含まれる公開パラメータが当該鍵生成装置２０の公開パラメータであるか否かを検証する（ステップＳ３６ａ）。この検証に失敗した場合、鍵生成処理の失敗として処理を終了する（ステップＳ３６ｇ）。なお、ステップＳ３６ａの処理では、鍵要求メッセージに認証情報が含まれるならば、鍵要求メッセージに含まれる認証情報の検証も行われる。鍵生成装置２０は、メモリ２１に認証テーブルを記憶している。認証テーブルでは、例えば図１６に示すように、利用者のＩＤに対してパスワードが対応付けられている。そこで、検証部は、鍵要求メッセージに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。この検証に失敗した場合も、ステップＳ３６ｇの処理が行われる。
【０２８５】
この検証に成功した場合、鍵生成装置２０の検証部が、鍵要求メッセージに利用者情報が含まれているか否かを検証する（ステップＳ３６ｂ）。鍵要求メッセージに利用者情報が含まれていればステップＳ３６ｃの処理を行い、鍵要求メッセージに利用者情報が含まれていなければステップＳ３７の処理を行う。なお、必ず鍵要求メッセージに利用者情報が含まれる方法を採用する場合には、ステップＳ３６ｂの処理および後述する《利用者情報取得プロセス》は不要である。
【０２８６】
ここで《鍵生成プロセス》の説明を中断し、《利用者情報取得プロセス》の説明をする。
【０２８７】
鍵生成装置２０の送信部は、鍵要求メッセージに含まれるポリシーと（もし在れば）認証情報を含むリクエストを管理装置４０に送信し、管理装置４０がリクエストを受信する（ステップＳ３７）。受信したリクエストは、管理装置４０のメモリに記憶される。
【０２８８】
管理装置４０はメモリに認証テーブルを記憶している。この認証テーブルでは、上述の認証テーブルと同様に、利用者のＩＤに対してパスワードが対応付けられている（図１６参照）。そこで、管理装置４０の検証部（図示せず）は、リクエストに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。
【０２８９】
この検証に成功すると、管理装置４０の検索部（図示せず）がリクエストに含まれるポリシーに従って、メモリに記憶されている利用者情報テーブルから属性指定情報または述語指定情報を検索する（ステップＳ３８）。利用者情報テーブルは、例えば利用者のＩＤとこれに対応付けられた属性名および属性指定情報で構成される第１テーブルと、利用者のＩＤとこれに対応付けられた述語指定情報で構成される第２テーブルとを含んでいる（図１７参照）。属性指定情報または述語指定情報のいずれを読み取るかは、リクエストに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、検索部は第１テーブルからリクエストに含まれる利用者のＩＤに対応する属性指定情報を取得する。もしポリシーがKey_Policyである場合、検索部は第２テーブルからリクエストに含まれる利用者のＩＤに対応する述語指定情報を取得する。読み取られた指定情報を利用者情報と呼ぶ。
【０２９０】
管理装置４０の送信部は、制御部による制御を受けて、検索結果の利用者情報を鍵生成装置２０に送信し、鍵生成装置２０の受信部が利用者情報を受信する（ステップＳ３９）。受信した利用者情報は、鍵生成装置２０のメモリ２１に記憶される。
【０２９１】
以上で《利用者情報取得プロセス》を終了し、再び《鍵生成プロセス》の説明に戻る。
【０２９２】
利用者情報を既に所有している場合、あるいは、利用者情報取得プロセスによって利用者情報を受信した場合（ステップＳ３９）、鍵生成装置２０の第２述語論理情報取得部２３は、メモリ２１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ３６ｃ）。一般的に、第１の復号装置３０−１の利用者と第２の復号装置３０−２の利用者は異なるので、この処理で得られる第２属性情報または第２述語情報は、ステップＳ２４ｃの処理で得られる第２属性情報または第２述語情報と同じになる保証はない。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０２９３】
次に、鍵生成装置２０の鍵生成部２５が、述語暗号アルゴリズムに則り、公開パラメータのｑに基づき有限体Ｆqの元である乱数εを生成して、メモリ２１からの第２属性情報ｖ'(p)＝(ｖ'(p)1，…，ｖ'(p)n)または第２述語情報ｗ'(p)＝(ｗ'(p)1，…，ｗ'(p)n)と、当該鍵生成装置の秘密鍵Ｂ＊を用いて、式（１４）に従って復号鍵Ｒ'を求める（ステップＳ３６ｄ）。暗号化処理で用いられた入力情報が属性指定情報である場合に対応して、この例では第２述語情報ｗ'(p)を用いているが、入力情報が述語指定情報である場合には、第２属性情報ｖ'(p)が対応するので、式（１４）においてｗ'(p)をｖ'(p)に置き換えればよい。
【数４２】
0005422053.tif 000045
【０２９４】
次に、鍵生成装置２０の送信部２４は、制御部による制御を受けて、復号鍵Ｒ'を第２の復号装置３０−２に送信し、第２の復号装置３０−２の受信部が復号鍵Ｒを受信する（ステップＳ４０）。受信した復号鍵Ｒは、第２の復号装置３０−２のメモリ３１に記憶される。
【０２９５】
以上で《鍵生成プロセス》を終了し、再び《復号プロセス》の説明に戻る。
【０２９６】
復号鍵を既に所有している場合、あるいは、鍵生成プロセスによって復号鍵を受信した場合（ステップＳ４０）、第２の復号装置３０−２の復号部３３が、メモリ３１から公開パラメータと復号鍵Ｒ'と暗号情報Ｃ1と（必要に応じて）暗号文Ｃ2を読み込んで、共通鍵Ｋと（必要に応じて）平文Ｍを求める（ステップＳ４１）。
【０２９７】
このステップＳ４１の処理の詳細について説明を加える。第１復号部３３ａは、メモリ３１から公開パラメータと暗号情報Ｃ1と復号鍵Ｒ'を読み込み、述語暗号アルゴリズムに則り、ｅ(Ｃ1,Ｒ')を求める。この演算結果は式（１５）に示すように、入力情報が属性指定情報である場合、双線形性に基づき暗号情報Ｃ1と復号鍵Ｒ'から取り出された第１属性情報ｖと第２述語情報ｗ'(p)の標準内積の結果に依存する。入力情報が述語指定情報である場合、式（１５）においてｖをｖ'(p)に、ｗ'(p)をｗに置き換えればよく、演算結果は双線形性に基づき暗号情報Ｃ1と復号鍵Ｒ'から取り出された第１述語情報ｗと第２属性情報ｖ'(p)の標準内積の結果に依存する。但し、ｅ(ｂi,ｂi*)は上記式（１２）のように定義される。
【数４３】
0005422053.tif 000046
【０２９８】
従って、第１属性情報ｖと第２述語情報ｗ'(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ'(p)の標準内積が０）の場合、式（１５）の演算結果ｇＴρが得られる。この演算結果ｇＴρが得られた場合、第２の復号装置３０−２の第１復号部３３ａは、上記式（７）に従って“正しい”共通鍵Ｋを得る（ステップＳ３４ｃ）。もし第１属性情報ｖと第２述語情報ｗ'(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ'(p)の標準内積が０）ではない場合、第１復号部３３ａは、上記式（７）に従って“正しくない”値を得る。この例では、ハッシュ関数Ｈはシステムに共通とするか公開パラメータに含まれるとする。この例では、暗号情報Ｃ1が共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報とする場合には、式（１５）の演算結果が共通鍵Ｋ（あるいは正しくない値）となる。つまり、第２の復号装置３０−２の正当な利用者は、第１属性情報ｖとの標準内積が０となる第２述語情報ｗ'(p)を与える述語指示情報、あるいは、第１述語情報ｗとの標準内積が０となる第２属性情報ｖ'(p)を与える属性指示情報を持つ。
【０２９９】
次に、第２復号部３３ｂが、共通鍵Ｋと暗号文Ｃ2を用いて、上記式（１３）に従って平文Ｍを求める（ステップＳ３４ｄ）。共通鍵を用いた復号方法DecKは暗号化方法EncKに対応する。既述のとおり、第２の観点による第１実施形態が共通鍵Ｋの配送に特化した実施形態である場合には、ステップＳ３４ｄの処理は省略される。つまり、第２の復号装置３０−２は、第２復号部３３ｂの機能を持つとしても、ステップＳ３４ｄの処理を行わない。
【０３００】
もし、式（１５）に従った演算結果が正しくない値である場合には、上記式（１３）によっては正しい平文Ｍを得ることができない。
【０３０１】
なお、第２の復号装置３０−２は、復号鍵Ｒを復号鍵テーブルに記憶してもよい。また、共通鍵Ｋを復号鍵テーブルに付加して記憶してもよい。
【０３０２】
これで《第２の復号プロセス》は終了する。
【０３０３】
第２の復号装置３０−２が転送部３７を持つ場合には、第２の復号装置３０−２は、第１の復号装置３０−１から受信した暗号メッセージを別の第２の復号装置（暗号メッセージの授受について暗号化装置と当事者の関係にない復号装置）に転送してもよいし、第１の復号装置（暗号メッセージの授受について暗号化装置と当事者の関係にある復号装置）に転送してもよい。この転送処理は、第２の復号装置３０−２が第１の復号装置３０−１から暗号メッセージを受信した以降であれば何時でもよい。
【０３０４】
〔第２の観点による第２実施形態〕
第２の観点による第２実施形態では、第２の観点による第１実施形態と異なり、第１の復号装置３０−１と第２の復号装置３０−２が第２属性情報または第２述語情報を生成する。この差異に伴い、第２の観点による第２実施形態は、いくつかの事項で第２の観点による第１実施形態と異なる。そこで、第２の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図４２−図４８を参照しながら第１実施形態と異なる部分を説明する。
【０３０５】
ステップＳ１からステップＳ２２ｂまでの処理は、第２の観点による第１実施形態と同じである。
【０３０６】
ステップＳ２２ｂの処理で復号鍵を所有していない場合、第１の復号装置３０−１の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２３ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第２実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０３０７】
ステップＳ２３ｇの処理の後、ステップＳ２３の処理が行われる。ただし、この処理では、第１の復号装置３０−１の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、第１の復号装置３０−１の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０３０８】
そして、ステップＳ２４ａの処理で検証に成功した場合、ステップＳ２４ｄの処理が行われる。鍵生成装置２０は第１の復号装置３０−１から第２属性情報または第２述語情報を受信しているため、第２の観点による第１実施形態と異なり、この情報を生成するための機能と処理が不要である。
【０３０９】
そして、ステップＳ２４ｄの処理の後のステップＳ２８からステップＳ３４ａまでの各処理は、第２の観点による第１実施形態と同じである。
【０３１０】
ステップＳ３４ｂの処理で復号鍵を所有していない場合、第２の復号装置３０−２の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ３５ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第２実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０３１１】
ステップＳ３５ｇの処理の後、ステップＳ３５の処理が行われる。ただし、この処理では、第２の復号装置３０−２の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、第２の復号装置３０−２の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０３１２】
そして、ステップＳ３６ａの処理で検証に成功した場合、ステップＳ３６ｄの処理が行われる。鍵生成装置２０は第２の復号装置３０−２から第２属性情報または第２述語情報を受信しているため、第２の観点による第１実施形態と異なり、この情報を生成するための機能と処理が不要である。
【０３１３】
そして、ステップＳ３６ｄの処理の後のステップＳ４０とステップＳ４１の各処理は、第２の観点による第１実施形態と同じである。
【０３１４】
〔第２の観点による第３実施形態〕
第２の観点による第３実施形態では、第２の観点による第１実施形態と異なり、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める。つまり、第２の観点による第３実施形態では、例えば上記非特許文献２に示す述語暗号アルゴリズムが用いられる。この差異に伴い、第２の観点による第３実施形態は、いくつかの事項で第２の観点による第１実施形態と異なる。そこで、第２の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図４９−図５４を参照しながら第２の観点による第１実施形態と異なる部分を説明する。
【０３１５】
ステップＳ１からステップＳ１７ａまでの処理は、第２の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第２の観点による第３実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０３１６】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める（ステップＳ１７ｂ１）。
【０３１７】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号情報Ｃ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０３１８】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ２８までの処理は、第２の観点による第１実施形態と同じである。
【０３１９】
ステップＳ２８の処理に続くステップＳ２２ｃ１の処理では、第１の復号装置３０−１の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ２２ｃ１）。
【０３２０】
ステップＳ２２ｃ１の処理に続くステップＳ３０からステップＳ４０までの処理は、第２の観点による第１実施形態と同じである。
【０３２１】
ステップＳ４０の処理に続くステップＳ３４ｃ１の処理では、第２の復号装置３０−２の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ３４ｃ１）。
【０３２２】
〔第２の観点による第４実施形態〕
第２の観点による第４実施形態は、第２の観点による第２実施形態と第２の観点による第３実施形態の組み合わせ形態に相当する。つまり、第２の観点による第４実施形態は、第２の観点による第１実施形態と異なり、（１）第１の復号装置３０−１と第２の復号装置３０−２が第２属性情報または第２述語情報を生成する、（２）暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める。この差異に伴い、第２の観点による第４実施形態は、いくつかの事項で第２の観点による第１実施形態と異なる。そこで、第２の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図５５から図５８も参照して第１実施形態と異なる部分を説明する。
【０３２３】
ステップＳ１からステップＳ１７ａまでの処理は、第２の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第２の観点による第４実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０３２４】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵と平文Ｍを用いて、暗号情報Ｃ1を求める（ステップＳ１７ｂ１）。
【０３２５】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号情報Ｃ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０３２６】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ２２ｂの処理までは、第２の観点による第１実施形態と同じである。
【０３２７】
ステップＳ２２ｂの処理で復号鍵を所有していない場合、第１の復号装置３０−１の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２３ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第４実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０３２８】
ステップＳ２３ｇの処理の後、ステップＳ２３の処理が行われる。ただし、この処理では、第１の復号装置３０−１の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、第１の復号装置３０−１の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０３２９】
そして、ステップＳ２４ａの処理で検証に成功した場合、ステップＳ２４ｄの処理が行われる。鍵生成装置２０は、第１の復号装置３０−１から第２属性情報または第２述語情報を受信しているため、この情報を生成するための機能と処理が不要である。
【０３３０】
そして、ステップＳ２４ｄの処理の後のステップＳ２８の処理は、第２の観点による第１実施形態と同じである。
【０３３１】
ステップＳ２８の処理に続くステップＳ２２ｃ１の処理では、第１の復号装置３０−１の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ２２ｃ１）。
【０３３２】
そして、ステップＳ２２ｃ１の処理の後のステップＳ３０からステップＳ３４ａまでの各処理は、第２の観点による第１実施形態と同じである。
【０３３３】
ステップＳ３４ｂの処理で復号鍵を所有していない場合、第２の復号装置３０−２の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ３５ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第２の観点による第４実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０３３４】
ステップＳ３５ｇの処理の後、ステップＳ３５の処理が行われる。ただし、この処理では、第２の復号装置３０−２の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、第２の復号装置３０−２の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０３３５】
そして、ステップＳ３６ａの処理で検証に成功した場合、ステップＳ３６ｄの処理が行われる。鍵生成装置２０は第２の復号装置３０−２から第２属性情報または第２述語情報を受信しているため、第１実施形態と異なり、この情報を生成するための機能と処理が不要である。
【０３３６】
そして、ステップＳ３６ｄの処理の後のステップＳ４０の処理は、第２の観点による第１実施形態と同じである。
【０３３７】
ステップＳ４０の処理に続くステップＳ３４ｃ１の処理では、第２の復号装置３０−２の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1を読み込んで、平文Ｍを求める（ステップＳ３４ｃ１）。
【０３３８】
第２の観点による上述の各実施形態は、例えば電子メールシステムやインスタントメッセージングシステムとして実施される。図５９に、送受信されるデータの構成を例示する。メッセージ全体の基本的なフォーマットは例えばＳ／ＭＩＭＥ（Secure Multipurpose Internet Mail Extensions）に従うが、暗号メッセージ開始位置マーカから暗号メッセージ終了位置マーカまでのデータはＸＭＬ（eXtensible Markup Language）などで適切なデータ構成が与えられる。
【０３３９】
暗号メッセージ開始位置マーカから暗号メッセージ終了位置マーカまでが述語暗号に関する一連のデータを示す。
【０３４０】
アルゴリズム識別子ブロックには、共通鍵の暗号化に使用した述語暗号アルゴリズムとメッセージペイロードの暗号化に使用した共通鍵暗号アルゴリズムを特定するための情報が指定される。このように、アルゴリズムを表す識別子やアルゴリズムのバージョンなどを指定できる（PE/VersionX+Camellia［Camelliaは登録商標］など）。
【０３４１】
デジタル署名ブロックにはデジタル署名が記述される。署名アルゴリズムは既存の方式を使用できる。この項目は運用形態に応じて省略可能である。
【０３４２】
公開パラメータ情報ブロックには、使用した公開情報パラメータを特定する情報が指定される。公開情報パラメータを特定する識別子、もしくは公開情報パラメータのデータそのものを指定することもできる。
【０３４３】
ポリシーフィールドには、使用したポリシーを特定する識別子が指定される。
【０３４４】
スキーマフィールドには、使用したスキーマを特定する識別子が指定されるか、もしくはスキーマのデータが記述される。
【０３４５】
暗号情報フィールドにはメッセージペイロード（平文）の暗号化に使用した共通鍵を述語暗号で暗号化したデータ（暗号情報）が指定される。
【０３４６】
暗号文フィールドにはメッセージペイロード（平文）を暗号化して作成したデータ（暗号文）が記述される。
【０３４７】
属性フィールド／述語フィールドにはポリシーフィールドに対応して暗号化に使用した属性／述語を表す文字列表現を指定することができる。これらの項目は運用形態に応じては省略可能である。
【０３４８】
添付フィールドには例えばＲＳＡ暗号化した添付ファイルなどを添付することができる。この項目は運用形態に応じて省略可能である。
【０３４９】
また、例えばインストタントメッセージングに伴うセキュアな通信の場合には、共通鍵を暗号化した暗号情報を再送する必要はない。インスタントメッセージングでは通常、最初のインスタントメッセージで適切な共通鍵を取得できたならば、後続のインスタントメッセージの復号に用いるために共通鍵を受信者が保存しておいてもよい。このように後続のインスタントメッセージを送信者から受信者に送信する際には、暗号文は送るが、公開パラメータ情報、ポリシー、スキーマ、暗号情報を送らないようにしてもよい。同様に、使用される暗号アルゴリズムを変更しない運用の場合には、後続のインスタントメッセージ内の暗号アルゴリズム識別子を省略してもよい。
【０３５０】
述語暗号は、暗号化に際して、受信者に依存する情報に拘束されない方式であるから、送信者（装置）は、未知の受信者（装置）に対しても暗号メッセージを送信することができる。換言すると、送信者は、複数の受信者（装置）が存在する場合であっても暗号化処理を１回しか行わない（公開鍵暗号方式では、Ｎ回の暗号化処理が必要である）。このため、送信者（装置）は、低い処理コストで暗号メッセージを同報送信することができる。
【０３５１】
また、受信者（装置）が第三者（装置）に暗号メッセージを転送する際、暗号化装置から受信した暗号メッセージをそのまま第三者（装置）に転送することができる。公開鍵暗号方式では、受信者（装置）が一旦、暗号メッセージを復号し、第三者（装置）の公開鍵を用いて暗号化し、この暗号化された暗号メッセージを送信する処理が必要であり、処理コストの負担が大きい。しかし、上述の各実施形態では、暗号化装置から受信した暗号メッセージをそのまま第三者（装置）に転送するから、低い処理コストで暗号メッセージを転送することができる。
【０３５２】
次に、上述の第１の観点による暗号通信技術に留意しつつ、第３の観点から、柔軟に運用可能であって述語暗号で暗号化されたコンテンツ（暗号化コンテンツ）を配信することが可能な、述語暗号に依拠する暗号通信技術に関する実施形態を説明する。この技術によると、述語暗号で暗号化されたコンテンツ（暗号化コンテンツ）がコンテンツサーバ装置に蓄えられ、復号装置からの要求に応じて暗号化コンテンツを送信することによって、暗号化コンテンツを配信することができる。
【０３５３】
第３の観点による暗号通信技術の説明は上述の第１の観点による暗号通信技術の説明と実質的に重複する部分を多く含むが、第１の観点による暗号通信技術の説明を参照しなくてもよいように、できるだけ重複説明と重複図面を省略せずに第３の観点による暗号通信技術を説明する。このため、数式の番号、機能部を表す参照番号、ステップを表す参照番号なども両者で重複するが、文脈から混乱の虞は無いであろう。
【０３５４】
〔第３の観点による第１実施形態〕
図６０から図７１を参照して第３の観点による本発明の第１実施形態を説明する。
【０３５５】
第３の観点による暗号システム１は、図６０に示すように、複数のクライアント装置１０、３０と、一つまたは複数の鍵生成装置２０と、一つまたは複数のコンテンツサーバ装置６０と、一つまたは複数のユーザ情報管理装置４０（以下、管理装置と言う）、変換規則情報ペア管理装置５０（以下、登録装置と言う）、一つまたは複数の保全装置８０、一つまたは複数の認証装置９０を含んでいる。これらの各装置は、例えばインターネットである通信網５を介して相互に通信可能とされている。
【０３５６】
クライアント装置は、処理目的に応じて、コンテンツを暗号化して暗号化コンテンツを生成する暗号化装置として、あるいは暗号化コンテンツを復号する復号装置として機能する。そこで、クライアント装置を機能の観点から、暗号化装置１０または復号装置３０と呼称する。なお、第３の観点による暗号システム１は、暗号化装置としてのみ機能するクライアント装置および／または復号装置としてのみ機能するクライアント装置を含んでもよい。
【０３５７】
第３の観点による暗号システム１では述語暗号を用いた暗号化と復号が行われる。第３の観点による本発明では、使用する述語暗号アルゴリズムに限定は無く、例えば上記非特許文献２に開示される述語暗号アルゴリズムを用いることが許される。第３の観点による第１実施形態では、ＫＥＭ(Key Encapsulation Mechanisms)タイプの述語暗号アルゴリズムを用いた例を示す。
【０３５８】
暗号システム１における暗号通信方法を、図６１、６２、６３、６４、６６、６９、７１を参照しながら叙述する。各装置の機能構成については、図６５、６７、６８、７０を参照されたい。
【０３５９】
《準備プロセス》
第１の観点による発明の第１実施形態における《準備プロセス》の説明の全てをここに援用し、重複説明を省略する。なお、この《準備プロセス》の説明に対応する図として図６１を、スキーマペアについては図１１−１３を、ポリシーリストについては図１４を参照されたい。これで《準備プロセス》は終了する。
【０３６０】
《暗号化プロセス》
暗号化装置１０の送信部１４は、図示しない制御部の制御を受けて、検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ１４）。登録装置５０の検索部は、登録装置５０の記憶部に登録されているエントリの一部または全部を検索して一つのエントリを選び（ステップＳ１５）、登録装置５０の送信部は検索結果のエントリを暗号化装置１０に送信し、暗号化装置１０の受信部はエントリを受信する（ステップＳ１６）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、暗号化装置１０のメモリ１１に記憶される。
【０３６１】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め暗号化装置１０が所有している場合には、ステップＳ１４−Ｓ１６の処理は省略される。つまり、暗号システム１が登録装置５０を含まない形態も許容されることに注意しなければならない。
【０３６２】
暗号化装置１０の第１述語論理情報取得部１２が、メモリ１１から入力情報とポリシーとスキーマを読み込み、属性情報（以下、第１属性情報と言う）または述語情報（以下、第１述語情報と言う）を求める（ステップＳ１７ａ）。この処理の詳細について説明を加える（図１２、図１３参照）。
【０３６３】
まず、スキーマリストに複数のスキーマペアが記述されている場合、用途などに応じて一つのスキーマペアが選択される。暗号化装置１０の利用者によってスキーマペアが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がスキーマペアを選択してもよい。
【０３６４】
そして、入力情報が属性指定情報または述語指定情報のいずれであるかに応じてポリシーと共にいずれか一方のスキーマを選択する。暗号化装置１０の利用者によってポリシーといずれか一方のスキーマが選択されてその指示情報が入力される場合や、所定の規則に従い、第１述語論理情報取得部１２がポリシーといずれか一方のスキーマを選択する場合のいずれであってもよい。なお、鍵生成装置２０のポリシーが１種類のタイプのみ用意されている場合には、そのポリシーに従ってスキーマペアのうちの一方のスキーマが選択される。もし、選択されたスキーマが入力情報の種類に対応していない場合には、スキーマリストからスキーマペアを再選択するか、登録装置５０からエントリの提供を再度受ければよい。
【０３６５】
入力情報は、暗号化装置１０の利用者によって入力された情報または、例えばＩＣカード３９のような記憶媒体から暗号化装置１０の取得部（図示せず）が取得した情報でもよい。
【０３６６】
そして、第１述語論理情報取得部１２が、ポリシーに従ってスキーマペアの中から選択されたスキーマを用いて入力情報から第１属性情報または第１述語情報を得る。ポリシーがKey_Policyであり選択されたスキーマが属性用スキーマである場合には第１属性情報が得られる。ポリシーがCipher_Text_Policyであり選択されたスキーマが述語用スキーマである場合には第１述語情報が得られる。第１属性情報と第１述語情報は、第３の観点による第１実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０３６７】
次に、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる直交基底Ｂ（実質的な公開鍵）とコンテンツＭを用いて、共通鍵Ｋと暗号情報Ｃ1と暗号化コンテンツＣ2を求める（ステップＳ１７ｂ、Ｓ１７ｃ）。これらの処理の詳細について説明を加える。
【０３６８】
まず、第１暗号化部１３ａが、述語暗号アルゴリズムに則り、有限体Ｆqの元である乱数ｒ、ρを生成して、上記式（７）のように共通鍵Ｋを設定し、上記式（８）に従って暗号情報Ｃ1を求める（ステップＳ１７ｂ）。Ｈは例えばハッシュ関数である。この例では第１属性情報ｖを用いているが、第１述語情報を用いる場合は上記式（８）においてｖをｗに置き換えればよい。また、この例では、暗号情報Ｃ1は共通鍵Ｋの生成に用いる情報ρに対応する情報であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報としてもよい。
【０３６９】
次に、第２暗号化部１３ｂが、共通鍵ＫとコンテンツＭを用いて、上記式（９）に従って暗号化コンテンツＣ2を求める（ステップＳ１７ｃ）。共通鍵を用いた暗号化方法EncKは周知の方法でよく、例えば上記非特許文献１に開示される方法である。
【０３７０】
次に、暗号化装置１０の送信部１４は、制御部による制御を受けて、暗号情報Ｃ1と、暗号化コンテンツＣ2と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。そして暗号化装置１０の送信部１４は、暗号メッセージをコンテンツサーバ装置６０に送信し、コンテンツサーバ装置６０の受信部が暗号メッセージを受信する（ステップＳ１８）。暗号化コンテンツのアップロードは例えばＦＴＰ(File Transfer Protocol)やＷｅｂＤＡＶ(Distributed Authoring and Versioning protocol for the WWW)などの周知の方式を利
用して行われる。
【０３７１】
これで《暗号化プロセス》は終了する。
【０３７２】
《コンテンツ配信プロセス》
コンテンツサーバ装置６０は、図示しない制御部の制御の下、そのメモリ６１に各暗号化装置１０から送られた暗号メッセージを記憶する。これによって、暗号メッセージに含まれる暗号情報と暗号化コンテンツがコンテンツサーバ装置６０に登録される。コンテンツサーバ装置６０にどのような暗号化コンテンツが登録されているかは、例えばＷｅｂページ上で公開される。
【０３７３】
上記Ｗｅｂページは、例えばインターネットプロトコルに従い、復号装置３０のブラウザ部３８によって、復号装置３０のディスプレイ（図示せず）に表示される。復号装置３０の利用者は、所望の暗号化コンテンツを選択する入力操作を行う。復号装置３０のブラウザ部３８は、利用者が入力した情報に基づき、選択された暗号化コンテンツをコンテンツサーバ装置６０から取得するための取得要求を復号装置３０の復号部３３（以下、中継部という）に伝える（ステップＳ１９）。そして、復号装置３０の中継部３３はこの取得要求をコンテンツサーバ装置６０に送信し、コンテンツサーバ装置６０の受信部はこの取得要求を受信する（ステップＳ２０）。このように、ブラウザ部３８とコンテンツサーバ装置６０との例えばＨＴＴＰ(Hiper Text Transfer Protocol)に従ったやりとりは中継部３３を経由して行われる（例えばＷＷＷブラウザのプロキシ設定を使用することが許される）。コンテンツサーバ装置６０の検索部６２は、取得要求で指定された暗号化コンテンツを含む暗号メッセージを検索してそれを選び（ステップＳ２１）、検索部６２からの指示に基づき、コンテンツサーバ装置６０の送信部６４は暗号メッセージを復号装置３０に送信し、復号装置３０の受信部は暗号メッセージを受信する（ステップＳ２２）。
【０３７４】
これで《コンテンツ配信プロセス》は終了する。
【０３７５】
《復号プロセス》
復号装置３０の送信部３４は、図示しない制御部の制御を受けて、暗号メッセージに含まれる鍵生成装置のアドレスを含む検索クエリを登録装置５０に送信し、登録装置５０の受信部が検索クエリを受信する（ステップＳ２３）。登録装置５０の検索部は、アドレスで指定された鍵生成装置のエントリを検索してそれを選び（ステップＳ２４）、登録装置５０の送信部は検索結果のエントリを復号装置３０に送信し、復号装置３０の受信部はエントリを受信する（ステップＳ２５）。このエントリには、鍵生成装置のアドレス、この鍵生成装置の公開パラメータ、この鍵生成装置が使用可能なポリシーリスト、この鍵生成装置が使用可能なスキーマリストが含まれている。受信したエントリは、復号装置３０のメモリ３１に記憶される。
【０３７６】
なお、各鍵生成装置２０の公開パラメータ、スキーマリスト、ポリシーリスト、アドレスを予め復号装置３０が所有している場合には、ステップＳ１９−Ｓ２１の処理は省略される。この場合、復号装置３０は、暗号メッセージに含まれるアドレスに対応する鍵生成装置のエントリを自身のメモリ３１から検索してこれを取得する。
【０３７７】
復号装置３０の検証部（図示せず）は、制御部の制御を受けて、暗号メッセージに含まれるスキーマペアとポリシーが、登録装置５０から取得したエントリに含まれるポリシーリストとスキーマリストに含まれるか否かを検証する（ステップＳ２６ａ）。この検証に失敗した場合、復号処理の失敗として処理を終了する（ステップＳ２６ｇ）。
【０３７８】
この検証に成功した場合、復号装置３０の取得部３２が、例えばＩＣカード３９のような記憶媒体から、当該復号装置３０の利用者に対応する属性指定情報または述語指定情報を読み取る（ステップＳ２６ｆ）。属性指定情報または述語指定情報のいずれを読み取るかは、暗号メッセージに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、取得部３２は記憶媒体から属性指定情報を読み取る。もしポリシーがKey_Policyである場合、取得部３２は記憶媒体から述語指定情報を読み取る。以下、読み取られた指定情報を利用者情報と呼ぶ。また、復号装置３０の取得部３２が、後述する鍵生成装置２０における処理《利用者情報取得プロセス》と同様に、管理装置４０から、当該復号装置３０の利用者に対応する属性指定情報または述語指定情報を読み取ることも許容される。なお、第３の観点による第１実施形態では、ステップＳ２６ｆの処理は任意に行われる。例えば、予め復号装置３０が利用者に対応する属性指定情報と述語指定情報を所有している場合、ポリシーに従って属性指定情報または述語指定情報のいずれかが利用者情報となる。
【０３７９】
次に、復号装置３０の検証部が、暗号メッセージに含まれる暗号情報を復号するために使用する復号鍵を持っているか否かを検証する（ステップＳ２６ｂ）。
【０３８０】
復号装置３０はメモリ３１に復号鍵テーブルを記憶している。復号鍵テーブルでは、例えば図１５に示すように、鍵生成装置の識別子に対して、公開パラメータと、スキーマペアと、復号鍵の対象と、述語指定情報と、復号鍵とが対応付けられている。そこで、検証部は、暗号メッセージに含まれるアドレスによって判別する鍵生成装置の識別子、公開パラメータと、スキーマペアと、復号鍵の対象（但し、これは、暗号メッセージに含まれるポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する）に対応する復号鍵の有無を検証する。もし復号鍵が存在すれば、ステップＳ３３の処理を行う。もし復号鍵が存在しなければ、ステップＳ２７の処理を行う。
【０３８１】
ここで《復号プロセス》の説明を中断し、《鍵生成プロセス》の説明をする。
【０３８２】
上述のように復号鍵が存在しない場合、復号装置３０の送信部３４は、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、（もし在れば）利用者情報、認証情報を纏めた鍵要求メッセージを生成する。認証情報は、例えば利用者のＩＤとパスワードを含む。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する（ステップＳ２７）。受信した鍵要求メッセージは、鍵生成装置２０のメモリ２１に記憶される。
【０３８３】
鍵生成装置２０の検証部（図示せず）は、制御部の制御を受けて、鍵要求メッセージに含まれるスキーマペアとポリシーが、当該鍵生成装置２０が所有するエントリ（例えばステップＳ１で生成されたエントリである）に含まれるポリシーリストとスキーマリストに含まれるか否か、および、鍵要求メッセージに含まれる公開パラメータが当該鍵生成装置２０の公開パラメータであるか否かを検証する（ステップＳ２８ａ）。この検証に失敗した場合、鍵生成処理の失敗として処理を終了する（ステップＳ２８ｇ）。なお、ステップＳ２８ａの処理では、鍵要求メッセージに認証情報が含まれるならば、鍵要求メッセージに含まれる認証情報の検証も行われる。鍵生成装置２０は、メモリ２１に認証テーブルを記憶している。認証テーブルでは、例えば図１６に示すように、利用者のＩＤに対してパスワードが対応付けられている。そこで、検証部は、鍵要求メッセージに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。この検証に失敗した場合も、ステップＳ２８ｇの処理が行われる。
【０３８４】
この検証に成功した場合、鍵生成装置２０の検証部が、鍵要求メッセージに利用者情報が含まれているか否かを検証する（ステップＳ２８ｂ）。鍵要求メッセージに利用者情報が含まれていればステップＳ２８ｃの処理を行い、鍵要求メッセージに利用者情報が含まれていなければステップＳ２９の処理を行う。なお、必ず鍵要求メッセージに利用者情報が含まれる方法を採用する場合には、ステップＳ２８ｂの処理および後述する《利用者情報取得プロセス》は不要である。
【０３８５】
ここで《鍵生成プロセス》の説明を中断し、《利用者情報取得プロセス》の説明をする。
【０３８６】
鍵生成装置２０の送信部は、鍵要求メッセージに含まれるポリシーと（もし在れば）認証情報を含むリクエストを管理装置４０に送信し、管理装置４０がリクエストを受信する（ステップＳ２９）。受信したリクエストは、管理装置４０のメモリに記憶される。
【０３８７】
管理装置４０はメモリに認証テーブルを記憶している。この認証テーブルでは、上述の認証テーブルと同様に、利用者のＩＤに対してパスワードが対応付けられている（図１６参照）。そこで、管理装置４０の検証部（図示せず）は、リクエストに含まれる利用者のＩＤとパスワードと認証テーブルに含まれる利用者のＩＤとパスワードとの整合性を検証する。
【０３８８】
この検証に成功すると、管理装置４０の検索部（図示せず）がリクエストに含まれるポリシーに従って、メモリに記憶されている利用者情報テーブルから属性指定情報または述語指定情報を検索する（ステップＳ３０）。利用者情報テーブルは、例えば利用者のＩＤとこれに対応付けられた属性名および属性指定情報で構成される第１テーブルと、利用者のＩＤとこれに対応付けられた述語指定情報で構成される第２テーブルとを含んでいる（図１７参照）。属性指定情報または述語指定情報のいずれを読み取るかは、リクエストに含まれるポリシーによって決まる。つまり、読み取られる情報は、このポリシーで特定される一方のスキーマとペアになっている他方のスキーマを特定するポリシーの内容に対応する指定情報である。もしポリシーがCipher_Text_Policyである場合、検索部は第１テーブルからリクエストに含まれる利用者のＩＤに対応する属性指定情報を取得する。もしポリシーがKey_Policyである場合、検索部は第２テーブルからリクエストに含まれる利用者のＩＤに対応する述語指定情報を取得する。読み取られた指定情報を利用者情報と呼ぶ。
【０３８９】
管理装置４０の送信部は、制御部による制御を受けて、検索結果の利用者情報を鍵生成装置２０に送信し、鍵生成装置２０の受信部が利用者情報を受信する（ステップＳ３１）。受信した利用者情報は、鍵生成装置２０のメモリ２１に記憶される。
【０３９０】
以上で《利用者情報取得プロセス》を終了し、再び《鍵生成プロセス》の説明に戻る。
【０３９１】
利用者情報を既に所有している場合、あるいは、利用者情報取得プロセスによって利用者情報を受信した場合（ステップＳ３１）、鍵生成装置２０の第２述語論理情報取得部２３は、メモリ２１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２８ｃ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第３の観点による第１実施形態では、有限体Ｆqの元を成分とす
る一つ又は複数のベクトル情報とされる（図１１−１３参照）。この際、スキーマを用いて入力情報から必要な属性値の抽出や整列化が行われる。
【０３９２】
次に、鍵生成装置２０の鍵生成部２５が、述語暗号アルゴリズムに則り、公開パラメータのｑに基づき有限体Ｆqの元である乱数αを生成して、メモリ２１からの第２属性情報ｖ(p)＝(ｖ(p)1，…，ｖ(p)n)または第２述語情報ｗ(p)＝(ｗ(p)1，…，ｗ(p)n)と、当該鍵生成装置の秘密鍵Ｂ＊を用いて、上記式（１０）に従って復号鍵Ｒを求める（ステップＳ２８ｄ）。暗号化処理で用いられた入力情報が属性指定情報である場合に対応して、この例では第２述語情報ｗ(p)を用いているが、入力情報が述語指定情報である場合には、第２属性情報ｖ(p)が対応するので、上記式（１０）においてｗ(p)をｖ(p)に置き換えればよい。
【０３９３】
次に、鍵生成装置２０の送信部２４は、制御部による制御を受けて、復号鍵Ｒを復号装置３０に送信し、復号装置３０の受信部が復号鍵Ｒを受信する（ステップＳ３２）。受信した復号鍵Ｒは、復号装置３０のメモリ３１に記憶される。
【０３９４】
以上で《鍵生成プロセス》を終了し、再び《復号プロセス》の説明に戻る。
【０３９５】
復号鍵を既に所有している場合、あるいは、鍵生成プロセスによって復号鍵を受信した場合（ステップＳ３２）、復号装置３０の中継部３３が、メモリ３１から公開パラメータと復号鍵Ｒと暗号情報Ｃ1と（必要に応じて）暗号化コンテンツＣ2を読み込んで、共通鍵ＫとコンテンツＭを求める（ステップＳ３３）。
【０３９６】
このステップＳ３３の処理の詳細について説明を加える。中継部３３は、復号処理を担う第１復号部３３ａと第２復号部３３ｂを含む。
【０３９７】
第１復号部３３ａは、メモリ３１から公開パラメータと暗号情報Ｃ1と復号鍵Ｒを読み込み、述語暗号アルゴリズムに則り、ｅ(Ｃ1,Ｒ)を求める。この演算結果は上記式（１１）に示すように、入力情報が属性指定情報である場合、双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１属性情報ｖと第２述語情報ｗ(p)の標準内積の結果に依存する。入力情報が述語指定情報である場合、上記式（１１）においてｖをｖ(p)に、ｗ(p)をｗに置き換えればよく、演算結果は双線形性に基づき暗号情報Ｃ1と復号鍵Ｒから取り出された第１述語情報ｗと第２属性情報ｖ(p)の標準内積の結果に依存する。但し、ｅ(ｂi,ｂi*)は上記式（１２）のように定義される。δijは、クロネッカーのデルタ記号である。
【０３９８】
従って、第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）の場合、上記式（１１）の演算結果ｇＴρが得られる。この演算結果ｇＴρが得られた場合、復号装置３０の第１復号部３３ａは、上記式（７）に従って“正しい”共通鍵Ｋを得る（ステップＳ２６ｃ）。もし第１属性情報ｖと第２述語情報ｗ(p)の標準内積が０（あるいは第１述語情報ｗと第２属性情報ｖ(p)の標準内積が０）ではない場合、第１復号部３３ａは、上記式（７）に従って“正しくない”値を得る。この例では、ハッシュ関数Ｈはシステムに共通とするか公開パラメータに含まれるとする。この例では、暗号情報Ｃ1が共通鍵Ｋの生成に用いる情報ρに対応する情報
であるが、暗号情報Ｃ1を共通鍵Ｋに対応する情報とする場合には、上記式（１１）の演算結果が共通鍵Ｋ（あるいは正しくない値）となる。つまり、復号装置３０の正当な利用者は、第１属性情報ｖとの標準内積が０となる第２述語情報ｗ(p)を与える述語指示情報、あるいは、第１述語情報ｗとの標準内積が０となる第２属性情報ｖ(p)を与える属性指示情報を持つ。
【０３９９】
次に、第２復号部３３ｂが、共通鍵Ｋと暗号化コンテンツＣ2を用いて、上記式（１３）に従ってコンテンツＭを求める（ステップＳ２６ｄ）。共通鍵を用いた復号方法DecKは暗号化方法EncKに対応する。
【０４００】
もし、上記式（１１）に従った演算結果が正しくない値である場合には、上記式（１３）によっては正しいコンテンツＭを得ることができない。
【０４０１】
なお、復号装置３０は、復号鍵Ｒを復号鍵テーブルに記憶してもよい。また、共通鍵Ｋを復号鍵テーブルに付加して記憶してもよい。
【０４０２】
暗号化コンテンツを復号して得られたコンテンツＭは、中継部３３からブラウザ部３８に伝えられ（ステップＳ３４）、ブラウザ部３８によって、復号装置３０のディスプレイに表示される（ステップＳ３５）。
【０４０３】
これで《復号プロセス》は終了する。
【０４０４】
〔第３の観点による第２実施形態〕
第３の観点による第２実施形態では、第３の観点による第１実施形態と異なり、復号装置３０が第２属性情報または第２述語情報を生成する。この差異に伴い、第３の観点による第２実施形態は、いくつかの事項で第３の観点による第１実施形態と異なる。そこで、第３の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図７２−図７５を参照しながら第３の観点による第１実施形態と異なる部分を説明する。
【０４０５】
ステップＳ１からステップＳ２６ｂまでの処理は、第３の観点による第１実施形態と同じである。
ステップＳ２６ｂの処理で復号鍵を所有していない場合、復号装置３０の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２７ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第３の観点による第２実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０４０６】
ステップＳ２７ｇの処理の後、ステップＳ２７の処理が行われる。ただし、この処理では、復号装置３０の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０４０７】
そして、ステップＳ２８ａの処理で検証に成功した場合、ステップＳ２８ｄの処理が行われる。鍵生成装置２０は復号装置３０から第２属性情報または第２述語情報を受信しているため、第３の観点による第１実施形態と異なり、この情報を生成するための機能と処理が不要である。
【０４０８】
そして、ステップＳ２８ｄの処理の後のステップＳ３２からステップＳ３５までの各処理は、第３の観点による第１実施形態と同じである。
【０４０９】
〔第３の観点による第３実施形態〕
第３の観点による第３実施形態では、第３の観点による第１実施形態と異なり、暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵とコンテンツＭを用いて、暗号化コンテンツＣ1を求める。つまり、第３の観点による第３実施形態では、例えば上記非特許文献２に示す述語暗号アルゴリズムが用いられる。この差異に伴い、第３の観点による第３実施形態は、いくつかの事項で第３の観点による第１実施形態と異なる。そこで、第３の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図７６−図７９を参照しながら第３の観点による第１実施形態と異なる部分を説明する。
【０４１０】
ステップＳ１からステップＳ１７ａまでの処理は、第３の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第３の観点による第３実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０４１１】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵とコンテンツＭを用いて、暗号化コンテンツＣ1を求める（ステップＳ１７ｂ１）。
【０４１２】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号化コンテンツＣ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０４１３】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ３２までの処理は、第３の観点による第１実施形態と同じである。
【０４１４】
ステップＳ３２の処理に続くステップＳ２６ｃ１の処理では、復号装置３０の中継部３３に含まれる復号部３３ｃが、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号化コンテンツＣ1を読み込んで、コンテンツＭを求める（ステップＳ２６ｃ１）。
【０４１５】
ステップＳ２６ｃ１の処理に続くステップＳ３４とステップＳ３５の各処理は、第３の観点による第１実施形態と同じである。
【０４１６】
〔第３の観点による第４実施形態〕
第３の観点による第４実施形態は、第３の観点による第２実施形態と第３の観点による第３実施形態の組み合わせ形態に相当する。つまり、第３の観点による第４実施形態は、第３の観点による第１実施形態と異なり、（１）復号装置３０が第２属性情報または第２述語情報を生成する、（２）暗号化装置１０の暗号化部１３が、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵とコンテンツＭを用いて、暗号化コンテンツＣ1を求める。この差異に伴い、第３の観点による第４実施形態は、いくつかの事項で第３の観点による第１実施形態と異なる。そこで、第３の観点による第１実施形態と重複する部分については重複説明を省略し（同一の構成要素に同じ参照番号を割り当てる）、図８０と図８１も参照して第３の観点による第１実施形態と異なる部分を説明する。
【０４１７】
ステップＳ１からステップＳ１７ａまでの処理は、第３の観点による第１実施形態と同じである。但し、公開パラメータなどの情報は第３の観点による第４実施形態の述語暗号アルゴリズムに必要な情報とされる。具体的な情報については、例えば上記非特許文献２などを参考されたい。
【０４１８】
ステップＳ１７aの処理に続くステップＳ１７ｂ１の処理では、暗号化装置１０の暗号化部１３が、述語暗号アルゴリズムに則り、第１属性情報ｖ＝(ｖ1，…，ｖn)または第１述語情報ｗ＝(ｗ1，…，ｗn)と、メモリ１１からの公開パラメータに含まれる公開鍵とコンテンツＭを用いて、暗号化コンテンツＣ1を求める（ステップＳ１７ｂ１）。
【０４１９】
次に、ステップＳ１７ｂ１の処理の後、ステップＳ１７ｄの処理が行われる。但し、この処理では、暗号化装置１０の送信部１４が、制御部による制御を受けて、暗号化コンテンツＣ1と、メモリ１１からのスキーマペア、ポリシー、公開パラメータ、鍵生成装置のアドレスを纏めた暗号メッセージを生成する（ステップＳ１７ｄ）。
【０４２０】
ステップＳ１７ｄの処理に続くステップＳ１８からステップＳ２６ｂの処理までは、第３の観点による第１実施形態と同じである。
【０４２１】
ステップＳ２６ｂの処理で復号鍵を所有していない場合、復号装置３０の第２述語論理情報取得部３５が、メモリ３１からポリシーと、スキーマペアと、公開パラメータと、利用者情報を読み込み、利用者情報から、属性情報（第２属性情報と言う）または述語情報（第２述語情報と言う）を得る（ステップＳ２７ｇ）。この処理において利用者情報に適用されるスキーマは、ポリシーで特定される一方のスキーマとペアになっている他方のスキーマである。ポリシーがCipher_Text_Policyである場合、Cipher_Text_Policyで特定される一方のスキーマ（述語用スキーマ）とペアになっている他方のスキーマ（属性用スキーマ）を用いて、利用者情報（属性指定情報）から第２属性情報を得る。ポリシーがKey_Policyである場合、Key_Policyで特定される一方のスキーマ（属性用スキーマ）とペアになっている他方のスキーマ（述語用スキーマ）を用いて、利用者情報（述語指定情報）から第２述語情報を得る。このように、この処理で用いられるスキーマは、ステップＳ１７ａで用いられたスキーマとペアになっているスキーマであることに注意しなければならない。第２属性情報と第２述語情報は、第３の観点による第４実施形態では、有限体Ｆqの元を成分とする一つ又は複数のベクトル情報とされる（図１１−１３参照）。
【０４２２】
ステップＳ２７ｇの処理の後、ステップＳ２７の処理が行われる。ただし、この処理では、復号装置３０の送信部３４が、制御部による制御を受けて、メモリ３１からの公開パラメータ、ポリシー、スキーマペア、認証情報、第２属性情報または第２述語情報を纏めた鍵要求メッセージを生成する。そして、復号装置３０の送信部３４は、メモリ３１からのアドレスを持つ鍵生成装置に鍵要求メッセージを送信し、この鍵生成装置２０の受信部が、鍵要求メッセージを受信する。
【０４２３】
そして、ステップＳ２８ａの処理で検証に成功した場合、ステップＳ２８ｄの処理が行われる。鍵生成装置２０は、復号装置３０から第２属性情報または第２述語情報を受信しているため、この情報を生成するための機能と処理が不要である。
【０４２４】
そして、ステップＳ２８ｄの処理の後のステップＳ３２の処理は、第３の観点による第１実施形態と同じである。
【０４２５】
ステップＳ３２の処理に続くステップＳ２６ｃ１の処理では、復号装置３０の復号部３３が、述語暗号アルゴリズムに則り、メモリ３１から公開パラメータと復号鍵Ｒと暗号化コンテンツＣ1を読み込んで、コンテンツＭを求める（ステップＳ２６ｃ１）。
【０４２６】
ステップＳ２６ｃ１の処理に続くステップＳ３４とステップＳ３５の各処理は、第３の観点による第１実施形態と同じである。
【０４２７】
第３の観点による上述の各実施形態から明らかなように、中継部が暗号化コンテンツの復号を行う。このため、復号処理を例えばＷＷＷサーバやＷＷＷブラウザの通常のプロトコルから切り離して実施でき、既存のＷＷＷシステムを流用することが容易になる。また、利用者が暗号化コンテンツの復号処理を行うための操作をせずとも、中継部が復号処理を行うので、利用者の利便性が高い。
【０４２８】
第３の観点による上述の各実施形態では、コンテンツサーバ装置６０と復号装置３０との間の通信路にキャッシュサーバ装置等が設置される運用も許容される（この場合、暗号化コンテンツがキャッシュされる）。
【０４２９】
また、クライアント端末装置を通信網５に常時接続させない運用での利便性を考慮して、中継部が復号前の暗号化コンテンツをキャッシュしてもよい。
【０４３０】
また、ＷＷＷブラウザへの復号済みコンテンツのキャッシュを回避するため、キャッシュを無効とさせるＨＴＴＰキャッシュコントロールヘッダをＷＷＷブラウザへのレスポンスに付与させてもよい。
【０４３１】
複数の利用者が同じクライアント端末装置を使用するようなケースを考慮して、中継部が認証機能を持つシステム構成を採用してもよい。この場合には、ＷＷＷブラウザに対してＨＴＴＰのBasic認証やDigest認証を利用し、また、認証のための認証情報（ユーザＩＤ／パスワード）のテーブル等および認証情報の追加・変更・削除に関する管理機能を中継部に追加してもよい。
【０４３２】
第３の観点による上述の各実施形態は、コンテンツ配信システムとして好適に実施される。述語暗号は、暗号化に際して受信者に依存する情報に拘束されない方式であるから、不特定の者が閲覧する可能性のあるコンテンツのアクセス制御として好適である。
【０４３３】
図８２に、送受信されるデータの構成を例示する。メッセージ全体の基本的なフォーマットは例えばＳ／ＭＩＭＥ（Secure Multipurpose Internet Mail Extensions）に従うが、暗号メッセージ開始位置マーカから暗号メッセージ終了位置マーカまでのデータはＸＭＬ（eXtensible Markup Language）などで適切なデータ構成が与えられる。
【０４３４】
暗号化コンテンツに関するデータを暗号ブロックとする。以下、暗号ブロックの構成要素を示す。
【０４３５】
アルゴリズム識別子ブロックには、共通鍵の暗号化に使用した述語暗号アルゴリズムとコンテンツの暗号化に使用した共通鍵暗号アルゴリズムを特定するための情報が指定される。このように、アルゴリズムを表す識別子やアルゴリズムのバージョンなどを指定できる（PE/VersionX+Camellia［Camelliaは登録商標］など）。
【０４３６】
デジタル署名ブロックにはデジタル署名が記述される。署名アルゴリズムは既存の方式を使用できる。この項目は運用形態に応じて省略可能である。
【０４３７】
公開パラメータ情報ブロックには、使用した公開情報パラメータを特定する情報が指定される。公開情報パラメータを特定する識別子、もしくは公開情報パラメータのデータそのものを指定することもできる。
【０４３８】
ポリシーフィールドには、使用したポリシーを特定する識別子が指定される。
【０４３９】
スキーマフィールドには、使用したスキーマを特定する識別子が指定されるか、もしくはスキーマのデータが記述される。
【０４４０】
暗号情報フィールドにはコンテンツの暗号化に使用した共通鍵を述語暗号で暗号化したデータ（暗号情報）が指定される。
【０４４１】
コンテンツファイル名、コンテンツタイプ、コンテンツファイルサイズには、それぞれ、コンテンツのファイル名、コンテンツのデータタイプ（例：text/htmlなど）、コンテンツのファイルサイズが記述される。
【０４４２】
属性フィールド／述語フィールドにはポリシーフィールドに対応して暗号化に使用した属性／述語を表す文字列表現を指定することができる。これらの項目は運用形態に応じては省略可能である。
【０４４３】
暗号データにはコンテンツを暗号化して生成した暗号化コンテンツが記述される。
【０４４４】
コンテンツの基本的なデータ構成はＨＴＭＬ(Hyper Text Markup Language)で記述され、暗号ブロックはＨＴＭＬ内部のコメント文で指定される。
【０４４５】
暗号ブロックはＸＭＬ(eXtensible Markup Language)などで適切なデータ構成が与えられる。
【０４４６】
ブラウザなどで直接閲覧しようとした場合には、コメント文は表示されず、残りのＨＴＭＬの文章が表示されるので、残りのＨＴＭＬ部分には暗号化コンテンツであることを示すメッセージや、復号に失敗した場合のエラーメッセージなどを記述してもよい。
【０４４７】
上述の説明では、代数構造Ｓを有限体としたが、有限環（整数剰余環）でもよい。述語暗号アルゴリズムが例えば内積を用いる述語暗号アルゴリズムである場合、第１、第２属性情報ならびに第１、第２述語情報は、Ｓの元を成分とするベクトルとされる。
【０４４８】
また、代数構造Ｓの体系に応じて、公開鍵ＢはＳ上の加群Ｖの元の集合であり、秘密鍵Ｂ＊は、加群Ｖの双対加群Ｖ＊の元の集合であり、復号鍵Ｒは、双対加群Ｖ＊の元とされる。なお、代数構造Ｓが有限体である場合、有限体上の加群Ｖは、いわゆる有限体上のベクトル空間のことである。このとき、暗号化部は、公開鍵Ｂの元に対して第１属性情報の成分を係数とするスカラー倍を行う演算または公開鍵Ｂの元に対して第１述語情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで暗号情報を求める。そして、鍵生成部は、秘密鍵Ｂ＊の元に対して第２述語情報の成分を係数とするスカラー倍を行う演算または秘密鍵Ｂ＊の元に対して第２属性情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで復号鍵Ｒを求める。
【０４４９】
暗号システムに含まれるハードウェアエンティティ（クライアント装置、鍵生成装置、登録装置、管理装置、保全装置、認証装置、コンテンツサーバ装置）は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit）〔キャッシュメモリやレジスタなどを備えていてもよい。〕、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【０４５０】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくなどでもよい。）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「メモリ」とした。
【０４５１】
ハードウェアエンティティでは、外部記憶装置〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（例えば、暗号化部、復号部、鍵生成部、第１述語論理情報取得部、第２述語論理情報取得部、制御部など）を実現する。
【０４５２】
各実施形態で説明したハードウェアエンティティの細部においては、整数論における数値計算処理が必要となる場合があるが、整数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した（この点の技術水準を示す整数論における数値計算処理が可能なソフトウェアとしては、例えばＰＡＲＩ／ＧＰ、ＫＡＮＴ／ＫＡＳＨなどが挙げられる。ＰＡＲＩ／ＧＰについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉［平成２１年４月１４日検索］を参照のこと。ＫＡＮＴ／ＫＡＳＨについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉［平成２１年４月１４日検索］を参照のこと。）。また、この点に関する文献として、参考文献Ａを挙げることができる。
（参考文献Ａ）  H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【０４５３】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【０４５４】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【０４５５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体に記憶しておくことができる。コンピュータで読み取り可能な記憶媒体としては、例えば、磁気記憶装置、光ディスク、光磁気記憶媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記憶装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記憶媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【０４５６】
また、このプログラムの流通は、例えば、そのプログラムを記憶したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記憶媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０４５７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記憶媒体に記憶されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０４５８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【０４５９】
なお、図面に記載した氏名などの情報は、架空のものであり、実際の人物とは全く関係ない。
【０４６０】
＜総括＞
第１の観点から本発明を総括すると、下記のとおりである。
【０４６１】
［アイテム１］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含む、
暗号システム。
【０４６２】
［アイテム２］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０４６３】
［アイテム３］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含む、
暗号システム。
【０４６４】
［アイテム４］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部を含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０４６５】
［アイテム５］
アイテム１またはアイテム２に記載の暗号システムにおいて、
上記暗号化装置の上記暗号化部は、上記共通鍵で平文を暗号化した暗号文も求め、
上記復号装置の上記復号部は、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理も行う、
暗号システム。
【０４６６】
［アイテム６］
アイテム１からアイテム５のいずれかに記載の暗号システムにおいて、
上記利用者に対応する上記属性指定情報および／または上記論理式指定情報は記憶媒体に記憶されており、
上記復号装置は、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記記憶媒体から取得するユーザ情報取得部を含む、
暗号システム。
【０４６７】
［アイテム７］
アイテム１またはアイテム３に記載の暗号システムにおいて、
上記鍵生成装置が用いる、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報は、上記復号装置から取得した情報である、
暗号システム。
【０４６８】
［アイテム８］
アイテム１からアイテム６のいずれかに記載の暗号システムにおいて、
上記暗号システムは、一つまたは複数のユーザ情報管理装置をさらに含み、
各上記ユーザ情報管理装置は、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶部を含み、
上記鍵生成装置は、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記ユーザ情報管理装置から取得するユーザ情報取得部を含む、
暗号システム。
【０４６９】
［アイテム９］
アイテム１からアイテム８のいずれかに記載の暗号システムにおいて、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
上記暗号システムは、一つまたは複数の変換規則情報ペア管理装置をさらに含み、
各上記変換規則情報ペア管理装置は、各上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部を含み、
上記暗号化装置は、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得部を含み、
上記復号装置は、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得部を含む、
暗号システム。
【０４７０】
［アイテム１０］
アイテム１からアイテム８のいずれかに記載の暗号システムにおいて、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
各上記鍵生成装置は、当該鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含み、
各上記暗号化装置は、少なくとも一つ以上の上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含み、
各上記復号装置は、少なくとも一つ以上の上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含む、
暗号システム。
【０４７１】
［アイテム１１］
アイテム１からアイテム１０のいずれかに記載の暗号システムにおいて、
上記ポリシー情報の特定対象が上記属性用変換規則情報のみ、あるいは、上記論理式用変換規則情報のみ、あるいは、上記属性用変換規則情報および上記論理式用変換規則情報であることが、上記鍵生成装置ごとに予め定められている、
暗号システム。
【０４７２】
［アイテム１２］
アイテム１からアイテム１１のいずれかに記載の暗号システムにおいて、
代数構造Ｋを有限環または有限体として、
上記第１、第２属性情報ならびに上記第１、第２論理情報は、上記Ｋの元を成分とするベクトルであり、
上記復号部の上記復号処理では、上記暗号情報と上記復号鍵を入力とし、上記第１論理情報と上記第２属性情報との標準内積または上記第１属性情報と上記第２論理情報との標準内積の結果に依存する演算が行われる、
暗号システム。
【０４７３】
［アイテム１３］
アイテム１２に記載の暗号システムにおいて、
上記公開鍵は、Ｋ上の加群Ｖの元の集合であり、
上記秘密鍵は、上記加群Ｖの双対加群Ｖ＊の元の集合であり、
上記復号鍵は、上記双対加群Ｖ＊の元であり、
上記暗号化部は、上記公開鍵の元に対して上記第１属性情報の成分を係数とするスカラー倍を行う演算または上記公開鍵の元に対して上記第１論理情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記暗号情報を求め、
上記鍵生成部は、上記秘密鍵の元に対して上記第２論理情報の成分を係数とするスカラー倍を行う演算または上記秘密鍵の元に対して上記第２属性情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記復号鍵を求め、
上記復号部の上記復号処理に用いられる上記演算は、双線形性を有し、上記演算の結果が、双線形性に基づき上記暗号情報と上記復号鍵から取り出された上記第１論理情報と上記第２属性情報あるいは上記第１属性情報と上記第２論理情報の標準内積の結果に依存するように構成されている、
暗号システム。
【０４７４】
［アイテム１４］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０４７５】
［アイテム１５］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０４７６】
［アイテム１６］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０４７７】
［アイテム１７］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記復号装置の復号部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０４７８】
［アイテム１８］
アイテム１４またはアイテム１５に記載の暗号通信方法において、
上記暗号化ステップは、上記暗号化部が上記共通鍵で平文を暗号化した暗号文も求める暗号文生成ステップを含み、
上記復号ステップは、上記復号部が、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理を行う第２復号ステップを含む、
暗号通信方法。
【０４７９】
［アイテム１９］
アイテム１４からアイテム１８のいずれかに記載の暗号通信方法において、
上記復号装置の取得部が、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶媒体から、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を取得する取得ステップ
を有する暗号通信方法。
【０４８０】
［アイテム２０］
アイテム１４またはアイテム１６に記載の暗号通信方法において、
上記復号装置の送信部が、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記鍵生成装置に送信するユーザ情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記利用者に対応する上記属性指定情報または上記論理式指定情報を受信するユーザ情報受信ステップと
を有する暗号通信方法。
【０４８１】
［アイテム２１］
アイテム１４からアイテム１８のいずれかに記載の暗号通信方法において、
上記暗号システムは、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶部を備える、一つまたは複数のユーザ情報管理装置を含んでおり、
上記鍵生成装置のユーザ情報取得部が、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記ユーザ情報管理装置から取得するユーザ情報取得ステップと
を有する暗号通信方法。
【０４８２】
［アイテム２２］
アイテム１４からアイテム２１のいずれかに記載の暗号通信方法において、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
上記暗号システムは、各上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部を備える、一つまたは複数の変換規則情報ペア管理装置を含んでおり、
上記暗号化装置の変換規則情報ペア取得部が、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得ステップと、
上記復号装置の変換規則情報ペア取得部が、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得ステップと
を有する暗号通信方法。
【０４８３】
［アイテム２３］
アイテム１４からアイテム２２のいずれかに記載の暗号通信方法において、
上記ポリシー情報の特定対象が上記属性用変換規則情報のみ、あるいは、上記論理式用変換規則情報のみ、あるいは、上記属性用変換規則情報および上記論理式用変換規則情報であることが、上記鍵生成装置ごとに予め定められている、
暗号通信方法。
【０４８４】
［アイテム２４］
アイテム１４からアイテム２３のいずれかに記載の暗号通信方法において、
代数構造Ｋを有限環または有限体として、
上記第１、第２属性情報ならびに上記第１、第２論理情報は、上記Ｋの元を成分とするベクトルであり、
上記復号ステップでは、上記復号部が、上記暗号情報と上記復号鍵を入力とし、上記第１論理情報と上記第２属性情報との標準内積または上記第１属性情報と上記第２論理情報との標準内積の結果に依存する演算を行う、
暗号通信方法。
【０４８５】
［アイテム２５］
アイテム２４に記載の暗号通信方法において、
上記公開鍵は、Ｋ上の加群Ｖの元の集合であり、
上記秘密鍵は、上記加群Ｖの双対加群Ｖ＊の元の集合であり、
上記復号鍵は、上記双対加群Ｖ＊の元であり、
上記暗号化ステップでは、上記暗号化部が、上記公開鍵の元に対して上記第１属性情報の成分を係数とするスカラー倍を行う演算または上記公開鍵の元に対して上記第１論理情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記暗号情報を求め、
上記鍵生成ステップでは、上記鍵生成部が、上記秘密鍵の元に対して上記第２論理情報の成分を係数とするスカラー倍を行う演算または上記秘密鍵の元に対して上記第２属性情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記復号鍵を求め、
上記復号部の上記復号処理に用いられる上記演算は、双線形性を有し、上記演算の結果が、双線形性に基づき上記暗号情報と上記復号鍵から取り出された上記第１論理情報と上記第２属性情報あるいは上記第１属性情報と上記第２論理情報の標準内積の結果に依存するように構成されている、
暗号通信方法。
【０４８６】
［アイテム２６］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける暗号化装置であって、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部と
を含む暗号化装置。
【０４８７】
［アイテム２７］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける暗号化装置であって、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部と
を含む暗号化装置。
【０４８８】
［アイテム２８］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける鍵生成装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部と
を含む鍵生成装置。
【０４８９】
［アイテム２９］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける鍵生成装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から生成された属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部
を含む鍵生成装置。
【０４９０】
［アイテム３０］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部
を含む復号装置。
【０４９１】
［アイテム３１］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部
を含む復号装置。
【０４９２】
［アイテム３２］
アイテム２６またはアイテム２７に記載の暗号化装置としてコンピュータを機能させるためのプログラム。
【０４９３】
［アイテム３３］
アイテム２８またはアイテム２９に記載の鍵生成装置としてコンピュータを機能させるためのプログラム。
【０４９４】
［アイテム３４］
アイテム３０またはアイテム３１に記載の復号装置としてコンピュータを機能させるためのプログラム。
【０４９５】
［アイテム３５］
アイテム３２に記載のプログラム、アイテム３３に記載のプログラム、アイテム３４に記載のプログラムのうち少なくともいずれかを格納したコンピュータ読み取り可能な記憶媒体。
【０４９６】
第２の観点から本発明を総括すると、下記のとおりである。なお、アイテム番号をリセットして、１から順番にアイテム番号を割り当てる。
【０４９７】
［アイテム１］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０４９８】
［アイテム２］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記第１の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記第１の復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第１の復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記第２の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記第２の復号装置の送信部が、上記第３属性情報または上記第３論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第２の復号装置から上記第３属性情報または上記第３論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
を有する暗号通信方法。
【０４９９】
［アイテム３］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと
を有する暗号通信方法。
【０５００】
［アイテム４］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号情報を第１の復号装置に送信する暗号情報送信ステップと、
上記第１の復号装置の受信部が、上記暗号化装置から上記暗号情報を受信する暗号情報受信ステップと、
上記第１の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第１の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記第１の復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第１の復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第１の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第１の復号鍵を上記第１の復号装置に送信する復号鍵送信ステップと、
上記第１の復号装置の受信部が、上記鍵生成装置から上記第１の復号鍵を受信する復号鍵受信ステップと、
上記第１の復号装置の復号部が、上記第１の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
上記第１の復号装置の転送部が、上記暗号情報を当該第１の復号装置以外の第２の復号装置に転送する転送ステップと、
上記第２の復号装置の受信部が、上記暗号情報を上記第１の復号装置から受信する受信ステップと、
上記第２の復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該第２の復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第３属性情報と言う）または論理情報（以下、第３論理情報と言う）を得る第３命題論理情報取得ステップと、
上記第２の復号装置の送信部が、上記第３属性情報または上記第３論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記第２の復号装置から上記第３属性情報または上記第３論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第３属性情報または上記第３論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる第２の復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記第２の復号鍵を上記第２の復号装置に送信する復号鍵送信ステップと、
上記第２の復号装置の受信部が、上記鍵生成装置から上記第２の復号鍵を受信する復号鍵受信ステップと、
上記第２の復号装置の復号部が、上記第２の復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号ステップと、
を有する暗号通信方法。
【０５０１】
［アイテム５］
アイテム１またはアイテム２に記載の暗号通信方法において、
上記暗号化ステップは、上記暗号化部が上記共通鍵で平文を暗号化した暗号文も求める暗号文生成ステップを含み、
上記復号ステップは、上記復号部が、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理を行う第２復号ステップを含む、
暗号通信方法。
【０５０２】
［アイテム６］
アイテム１からアイテム５のいずれかに記載の暗号通信方法において、
上記復号装置の取得部が、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶媒体から、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を取得する取得ステップ
を有する暗号通信方法。
【０５０３】
［アイテム７］
アイテム１またはアイテム３に記載の暗号通信方法において、
上記復号装置の送信部が、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記鍵生成装置に送信するユーザ情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記利用者に対応する上記属性指定情報または上記論理式指定情報を受信するユーザ情報受信ステップと
を有する暗号通信方法。
【０５０４】
［アイテム８］
アイテム１からアイテム６のいずれかに記載の暗号通信方法において、
上記暗号システムは、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶部を備える、一つまたは複数のユーザ情報管理装置を含んでおり、
上記鍵生成装置のユーザ情報取得部が、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記ユーザ情報管理装置から取得するユーザ情報取得ステップと
を有する暗号通信方法。
【０５０５】
［アイテム９］
アイテム１からアイテム８のいずれかに記載の暗号通信方法において、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
上記暗号システムは、各上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部を備える、一つまたは複数の変換規則情報ペア管理装置を含んでおり、
上記暗号化装置の変換規則情報ペア取得部が、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得ステップと、
上記復号装置の変換規則情報ペア取得部が、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得ステップと
を有する暗号通信方法。
【０５０６】
［アイテム１０］
アイテム１からアイテム９のいずれかに記載の暗号通信方法において、
上記ポリシー情報の特定対象が上記属性用変換規則情報のみ、あるいは、上記論理式用変換規則情報のみ、あるいは、上記属性用変換規則情報および上記論理式用変換規則情報であることが、上記鍵生成装置ごとに予め定められている、
暗号通信方法。
【０５０７】
［アイテム１１］
アイテム１からアイテム１０のいずれかに記載の暗号通信方法において、
代数構造Ｋを有限環または有限体として、
上記第１、第２属性情報ならびに上記第１、第２論理情報は、上記Ｋの元を成分とするベクトルであり、
上記復号ステップでは、上記復号部が、上記暗号情報と上記復号鍵を入力とし、上記第１論理情報と上記第２属性情報との標準内積または上記第１属性情報と上記第２論理情報との標準内積の結果に依存する演算を行う、
暗号通信方法。
【０５０８】
［アイテム１２］
アイテム１１に記載の暗号通信方法において、
上記公開鍵は、Ｋ上の加群Ｖの元の集合であり、
上記秘密鍵は、上記加群Ｖの双対加群Ｖ＊の元の集合であり、
上記復号鍵は、上記双対加群Ｖ＊の元であり、
上記暗号化ステップでは、上記暗号化部が、上記公開鍵の元に対して上記第１属性情報の成分を係数とするスカラー倍を行う演算または上記公開鍵の元に対して上記第１論理情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記暗号情報を求め、
上記鍵生成ステップでは、上記鍵生成部が、上記秘密鍵の元に対して上記第２論理情報の成分を係数とするスカラー倍を行う演算または上記秘密鍵の元に対して上記第２属性情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記復号鍵を求め、
上記復号部の上記復号処理に用いられる上記演算は、双線形性を有し、上記演算の結果が、双線形性に基づき上記暗号情報と上記復号鍵から取り出された上記第１論理情報と上記第２属性情報あるいは上記第１属性情報と上記第２論理情報の標準内積の結果に依存するように構成されている、
暗号通信方法。
【０５０９】
［アイテム１３］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部とを含む、
暗号システム。
【０５１０】
［アイテム１４］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵とを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報とを求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部とを含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０５１１】
［アイテム１５］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部とを含む、
暗号システム。
【０５１２】
［アイテム１６］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、平文とを用いて、関数暗号アルゴリズムに則り、当該平文に対応する暗号情報を求める暗号化部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部とを含み、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０５１３】
［アイテム１７］
アイテム１３またはアイテム１４に記載の暗号システムにおいて、
上記暗号化装置の上記暗号化部は、上記共通鍵で平文を暗号化した暗号文も求め、
上記復号装置の上記復号部は、上記復号処理で得られた上記共通鍵を用いる上記暗号文の第２復号処理、または、上記復号処理で得られた上記共通鍵の生成に用いる上記情報から生成された共通鍵を用いる上記暗号文の第２復号処理も行う、
暗号システム。
【０５１４】
［アイテム１８］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部と
を含む復号装置。
【０５１５】
［アイテム１９］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、複数の復号装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
上記ポリシー情報で特定される一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記鍵生成装置が生成した復号鍵を用いて、関数暗号アルゴリズムに則り、上記暗号化装置が生成した暗号情報に対する復号処理を行う復号部と、
上記暗号情報を当該復号装置以外の一つ以上の復号装置に転送する転送部と
を含む復号装置。
【０５１６】
［アイテム２０］
アイテム１８またはアイテム１９に記載の復号装置としてコンピュータを機能させるためのプログラム。
【０５１７】
［アイテム２１］
アイテム２０に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【０５１８】
第３の観点から本発明を総括すると、下記のとおりである。なお、アイテム番号をリセットして、１から順番にアイテム番号を割り当てる。
【０５１９】
［アイテム１］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う、
暗号システム。
【０５２０】
［アイテム２］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、ブラウザ部と、中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行い、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０５２１】
［アイテム３］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部とを含み、
上記鍵生成装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成部とを含み、
上記復号装置は、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う、
暗号システム。
【０５２２】
［アイテム４］
関数暗号を用いる暗号システムであって、少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置は、
上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得部と、
上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化部とを含み、
上記コンテンツサーバ装置は、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部とを含み、
上記復号装置は、
上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得部と、ブラウザ部と、中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記鍵生成装置から送られた復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行い、
上記鍵生成装置は、
上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成部とを含む、
暗号システム。
【０５２３】
［アイテム５］
アイテム１からアイテム４のいずれかに記載の暗号システムにおいて、
上記利用者に対応する上記属性指定情報および／または上記論理式指定情報は記憶媒体に記憶されており、
上記復号装置は、当該復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記記憶媒体から取得するユーザ情報取得部を含む、
暗号システム。
【０５２４】
［アイテム６］
アイテム１またはアイテム３に記載の暗号システムにおいて、
上記鍵生成装置が用いる、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報は、上記復号装置から取得した情報である、
暗号システム。
【０５２５】
［アイテム７］
アイテム１からアイテム６のいずれかに記載の暗号システムにおいて、
上記暗号システムは、一つまたは複数のユーザ情報管理装置をさらに含み、
各上記ユーザ情報管理装置は、上記利用者に対応する上記属性指定情報および／または上記論理式指定情報を記憶する記憶部を含み、
上記鍵生成装置は、上記復号装置の利用者に対応する上記属性指定情報または上記論理式指定情報を上記ユーザ情報管理装置から取得するユーザ情報取得部を含む、
暗号システム。
【０５２６】
［アイテム８］
アイテム１からアイテム７のいずれかに記載の暗号システムにおいて、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
上記暗号システムは、一つまたは複数の変換規則情報ペア管理装置をさらに含み、
各上記変換規則情報ペア管理装置は、各上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部を含み、
上記暗号化装置は、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得部を含み、
上記復号装置は、上記変換規則情報ペア管理装置から上記変換規則情報ペアを取得する変換規則情報ペア取得部を含む、
暗号システム。
【０５２７】
［アイテム９］
アイテム１からアイテム７のいずれかに記載の暗号システムにおいて、
各上記鍵生成装置につき一つまたは複数の上記変換規則情報ペアが予め定められており、
各上記鍵生成装置は、当該鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含み、
各上記暗号化装置は、少なくとも一つ以上の上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含み、
各上記復号装置は、少なくとも一つ以上の上記鍵生成装置に対応する各上記変換規則情報ペアを記憶する記憶部をさらに含む、
暗号システム。
【０５２８】
［アイテム１０］
アイテム１からアイテム９のいずれかに記載の暗号システムにおいて、
上記ポリシー情報の特定対象が上記属性用変換規則情報のみ、あるいは、上記論理式用変換規則情報のみ、あるいは、上記属性用変換規則情報および上記論理式用変換規則情報であることが、上記鍵生成装置ごとに予め定められている、
暗号システム。
【０５２９】
［アイテム１１］
アイテム１からアイテム１０のいずれかに記載の暗号システムにおいて、
代数構造Ｋを有限環または有限体として、
上記第１、第２属性情報ならびに上記第１、第２論理情報は、上記Ｋの元を成分とするベクトルであり、
上記復号部の上記復号処理では、上記第１論理情報と上記第２属性情報との標準内積または上記第１属性情報と上記第２論理情報との標準内積の結果に依存する演算が行われる、
暗号システム。
【０５３０】
［アイテム１２］
アイテム１１に記載の暗号システムにおいて、
上記公開鍵は、Ｋ上の加群Ｖの元の集合であり、
上記秘密鍵は、上記加群Ｖの双対加群Ｖ＊の元の集合であり、
上記復号鍵は、上記双対加群Ｖ＊の元であり、
上記暗号化部は、上記公開鍵の元に対して上記第１属性情報の成分を係数とするスカラー倍を行う演算または上記公開鍵の元に対して上記第１論理情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記暗号情報を求め、
上記鍵生成部は、上記秘密鍵の元に対して上記第２論理情報の成分を係数とするスカラー倍を行う演算または上記秘密鍵の元に対して上記第２属性情報の成分を係数とするスカラー倍を行う演算を含む演算を行うことで上記復号鍵を求め、
上記復号部の上記復号処理に用いられる上記演算は、双線形性を有し、上記演算の結果が、双線形性に基づき上記暗号情報または上記暗号化コンテンツと上記復号鍵から取り出された上記第１論理情報と上記第２属性情報あるいは上記第１属性情報と上記第２論理情報の標準内積の結果に依存するように構成されている、
暗号システム。
【０５３１】
［アイテム１３］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツとこれに対応する上記暗号情報を上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号情報と上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツと上記暗号情報を受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【０５３２】
［アイテム１４］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵で当該コンテンツを暗号化した暗号化コンテンツとを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツとこれに対応する上記暗号情報を上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツと上記暗号情報を受信する受信ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号情報の復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【０５３３】
［アイテム１５］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツを上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツを受信する受信ステップと、
上記鍵生成装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、上記復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【０５３４】
［アイテム１６］
少なくとも、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、関数暗号を用いる暗号システムにおける暗号通信方法であって、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められており、
上記暗号化装置の第１命題論理情報取得部が、上記変換規則情報ペアの中から選択された一つの変換規則情報ペアに含まれる上記属性用変換規則情報と上記論理式用変換規則情報のうち、当該暗号化装置の入力情報が属性指定情報または論理式指定情報のいずれであるかに応じて上記ポリシー情報と共に選択されたいずれか一方の変換規則情報を用いて、当該入力情報から属性情報（以下、第１属性情報と言う）または論理情報（以下、第１論理情報と言う）を得る第１命題論理情報取得ステップと、
上記暗号化装置の暗号化部が、上記第１属性情報または上記第１論理情報と、上記鍵生成装置の公開鍵と、コンテンツとを用いて、関数暗号アルゴリズムに則り、当該コンテンツを暗号化した暗号化コンテンツを求める暗号化ステップと、
上記暗号化装置の送信部が、上記暗号化コンテンツを上記コンテンツサーバ装置に送信する送信ステップと、
上記コンテンツサーバ装置の記憶部が、各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶ステップと、
上記復号装置のブラウザ部が、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行う取得要求処理ステップと、
上記復号装置の中継部が、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信する送信ステップと、
上記コンテンツサーバ装置の送信部が、上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信ステップと、
上記復号装置の受信部が、上記コンテンツサーバ装置から上記暗号化コンテンツを受信する受信ステップと、
上記復号装置の第２命題論理情報取得部が、上記ポリシー情報で特定される上記一方の変換規則情報とペアになっている他方の変換規則情報を用いて、当該復号装置の利用者に対応する属性指定情報または論理式指定情報から、属性情報（以下、第２属性情報と言う）または論理情報（以下、第２論理情報と言う）を得る第２命題論理情報取得ステップと、
上記復号装置の送信部が、上記第２属性情報または上記第２論理情報を上記鍵生成装置に送信する論理情報送信ステップと、
上記鍵生成装置の受信部が、上記復号装置から上記第２属性情報または上記第２論理情報を受信する論理情報受信ステップと、
上記鍵生成装置の鍵生成部が、上記第２属性情報または上記第２論理情報と、当該鍵生成装置の秘密鍵とを用いて、上記暗号化コンテンツの復号に用いる復号鍵を生成する鍵生成ステップと、
上記鍵生成装置の送信部が、上記復号鍵を上記復号装置に送信する復号鍵送信ステップと、
上記復号装置の受信部が、上記鍵生成装置から上記復号鍵を受信する復号鍵受信ステップと、
上記復号装置の中継部が、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う復号ステップと、
上記復号装置のブラウザ部が、上記暗号化コンテンツから復号されたコンテンツを表示する表示ステップと
を有する暗号通信方法。
【０５３５】
［アイテム１７］
少なくとも、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵でコンテンツを暗号化した暗号化コンテンツとを求める、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、上記暗号化コンテンツと上記暗号情報を記憶している一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号情報に対する復号処理と、当該復号処理で得られた上記共通鍵を用いて、上記コンテンツサーバ装置から取得した上記暗号化コンテンツを復号するコンテンツ取得処理を行う、
復号装置。
【０５３６】
［アイテム１８］
少なくとも、関数暗号アルゴリズムに則り、コンテンツを暗号化した暗号化コンテンツを求める、一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、上記暗号化コンテンツを記憶している一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおける復号装置であって、
ブラウザ部と中継部とを含み、
上記ブラウザ部は、上記コンテンツサーバ装置に対する上記暗号化コンテンツの取得要求処理を行い、上記暗号化コンテンツから復号されたコンテンツを表示し、
上記中継部は、上記ブラウザ部からの上記取得要求を上記コンテンツサーバ装置へ送信し、上記復号鍵を用いて、関数暗号アルゴリズムに則り、上記コンテンツサーバ装置から取得した上記暗号化コンテンツに対する復号処理を行う、
復号装置。
【０５３７】
［アイテム１９］
少なくとも、関数暗号アルゴリズムに則り、共通鍵と、当該共通鍵または当該共通鍵の生成に用いる情報に対応する暗号情報と、当該共通鍵でコンテンツを暗号化した暗号化コンテンツとを求める一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおけるコンテンツサーバ装置であって、
各上記暗号化装置から送られた上記暗号情報および上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツとこれに対応する上記暗号情報を当該復号装置に送信する送信部と
を含むコンテンツサーバ装置。
【０５３８】
［アイテム２０］
少なくとも、関数暗号アルゴリズムに則り、コンテンツを暗号化した暗号化コンテンツを求める一つまたは複数の暗号化装置と、一つまたは複数の鍵生成装置と、一つまたは複数の復号装置と、一つまたは複数のコンテンツサーバ装置とを含み、
各上記鍵生成装置につき秘密鍵とこの秘密鍵に対応する公開鍵が予め定められており、
属性を指定する情報（以下、属性指定情報と言う）を関数暗号アルゴリズムに用いられる属性情報に変換するための変換規則を規定している情報（以下、属性用変換規則情報と言う）と論理式を指定する情報（以下、論理式指定情報と言う）を当該関数暗号アルゴリズムに用いられる論理情報に変換するための変換規則を規定している情報（以下、論理式用変換規則情報と言う）とのペアである変換規則情報ペアが予め一つまたは複数定められており、
上記属性用変換規則情報と上記論理式用変換規則情報のうちいずれであるかを特定するためのポリシー情報が予め定められている、関数暗号を用いる暗号システムにおけるコンテンツサーバ装置であって、
各上記暗号化装置から送られた上記暗号化コンテンツを記憶する記憶部と、
上記復号装置からの要求に応じて上記暗号化コンテンツを当該復号装置に送信する送信部と
を含むコンテンツサーバ装置。
【０５３９】
［アイテム２１］
アイテム１７またはアイテム１８に記載の復号装置としてコンピュータを機能させるためのプログラム。
【０５４０】
［アイテム２２］
アイテム１９またはアイテム２０に記載のコンテンツサーバ装置としてコンピュータを機能させるためのプログラム。
【０５４１】
［アイテム２３］
アイテム２１に記載のプログラムおよび／またはアイテム２２に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【図１】
0005422053.tif 000047
【図２】
0005422053.tif 000048
【図３】
0005422053.tif 000049
【図４】
0005422053.tif 000050
【図５】
0005422053.tif 000051
【図６】
0005422053.tif 000052
【図７】
0005422053.tif 000053
【図８】
0005422053.tif 000054
【図９】
0005422053.tif 000055
【図１０】
0005422053.tif 000056
【図１１】
0005422053.tif 000057
【図１２】
0005422053.tif 000058
【図１３】
0005422053.tif 000059
【図１４】
0005422053.tif 000060
【図１５】
0005422053.tif 000061
【図１６】
0005422053.tif 000062
【図１７】
0005422053.tif 000063
【図１８】
0005422053.tif 000064
【図１９】
0005422053.tif 000065
【図２０】
0005422053.tif 000066
【図２１】
0005422053.tif 000067
【図２２】
0005422053.tif 000068
【図２３】
0005422053.tif 000069
【図２４】
0005422053.tif 000070
【図２５】
0005422053.tif 000071
【図２６】
0005422053.tif 000072
【図２７】
0005422053.tif 000073
【図２８】
0005422053.tif 000074
【図２９】
0005422053.tif 000075
【図３０】
0005422053.tif 000076
【図３１】
0005422053.tif 000077
【図３２】
0005422053.tif 000078
【図３３】
0005422053.tif 000079
【図３４】
0005422053.tif 000080
【図３５】
0005422053.tif 000081
【図３６】
0005422053.tif 000082
【図３７】
0005422053.tif 000083
【図３８】
0005422053.tif 000084
【図３９】
0005422053.tif 000085
【図４０】
0005422053.tif 000086
【図４１】
0005422053.tif 000087
【図４２】
0005422053.tif 000088
【図４３】
0005422053.tif 000089
【図４４】
0005422053.tif 000090
【図４５】
0005422053.tif 000091
【図４６】
0005422053.tif 000092
【図４７】
0005422053.tif 000093
【図４８】
0005422053.tif 000094
【図４９】
0005422053.tif 000095
【図５０】
0005422053.tif 000096
【図５１】
0005422053.tif 000097
【図５２】
0005422053.tif 000098
【図５３】
0005422053.tif 000099
【図５４】
0005422053.tif 000100
【図５５】
0005422053.tif 000101
【図５６】
0005422053.tif 000102
【図５７】
0005422053.tif 000103
【図５８】
0005422053.tif 000104
【図５９】
0005422053.tif 000105
【図６０】
0005422053.tif 000106
【図６１】
0005422053.tif 000107
【図６２】
0005422053.tif 000108
【図６３】
0005422053.tif 000109
【図６４】
0005422053.tif 000110
【図６５】
0005422053.tif 000111
【図６６】
0005422053.tif 000112
【図６７】
0005422053.tif 000113
【図６８】
0005422053.tif 000114
【図６９】
0005422053.tif 000115
【図７０】
0005422053.tif 000116
【図７１】
0005422053.tif 000117
【図７２】
0005422053.tif 000118
【図７３】
0005422053.tif 000119
【図７４】
0005422053.tif 000120
【図７５】
0005422053.tif 000121
【図７６】
0005422053.tif 000122
【図７７】
0005422053.tif 000123
【図７８】
0005422053.tif 000124
【図７９】
0005422053.tif 000125
【図８０】
0005422053.tif 000126
【図８１】
0005422053.tif 000127
【図８２】
0005422053.tif 000128
【図８３】
0005422053.tif 000129
【図８４】
0005422053.tif 000130