(57)【特許請求の範囲】
【請求項１】
属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、
使用する属性の数をＷ、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をｎｍａｘ、レンジエンコード関数の出力として取り得るノードの要素数をｕｍａｘとしたとき、
素数位数ｐと、当該素数位数ｐの巡回群Ｇ，ＧＴと、当該巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、ｅ（ｇ，ｇ）を乱数α（α∈Ｚｐ）乗した演算結果と、前記生成元ｇを乱数ａ（ａ∈Ｚｐ）乗した演算結果と、前記生成元ｇをｈｊ，ｘ，ｕ（∀ｊ∈［１，ｎｍａｘ］，∀ｘ∈［１，Ｗ］，∀ｕ∈［１，ｕｍａｘ］）乗した演算結果とを公開鍵として生成する公開鍵生成手段と、
前記生成元ｇを前記乱数α乗した演算結果をマスタ鍵として生成するマスタ鍵生成手段と、
前記マスタ鍵をＭＫとし、Ｚｐから選択した前記ｎｍａｘ分の乱数ｔ１，…，ｔｎｍａｘと、前記公開鍵の一部であるｇおよびｇのａ乗とにより、
【数１】
0006384149.tif 000032
を演算するとともに、前記属性の種別を示す属性種別ｘｉとそれに対応する属性値ｓｉとを対とした属性ペアＳ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝と、ポイントエンコード関数ｆとにより、
【数２】
0006384149.tif 000033
を演算し、その演算結果Ｋ，Ｌｉ，Ｋｉ，ｕを秘密鍵として生成する秘密鍵生成手段と、
この秘密鍵生成手段で生成された秘密鍵に、前記属性ペアを関連付けて、属性付き秘密鍵を生成する属性関連付け手段と、
を備えることを特徴とする鍵生成装置。
【請求項２】
使用する属性の数をＷ、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をｎｍａｘ、レンジエンコード関数の出力として取り得るノードの要素数をｕｍａｘとし、素数位数ｐと、当該素数位数ｐの巡回群Ｇ，ＧＴと、当該巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、ｅ（ｇ，ｇ）を乱数α（α∈Ｚｐ）乗した演算結果と、前記生成元ｇを乱数ａ（ａ∈Ｚｐ）乗した演算結果と、前記生成元ｇをｈｊ，ｘ，ｕ（∀ｊ∈［１，ｎｍａｘ］，∀ｘ∈［１，Ｗ］，∀ｕ∈［１，ｕｍａｘ］）乗した演算結果とを含む公開鍵を用いて、属性ベース暗号によりデータを暗号化する暗号化装置であって、
暗号化の対象となる前記データを入力するデータ入力手段と、
復号条件となるポリシーとして、前記アクセス行列Ｍと、当該アクセス行列Ｍの各行ｊに対応する属性を属性種別π（ｊ）１と属性値の範囲π（ｊ）２に変換する写像πとを入力するポリシー入力手段と、
前記データをＤとし、前記アクセス行列の列の数ｎ分の乱数ｖ＝（ｓ，ｙ２，…，ｙｎ）をＺｐｎから選択し、前記公開鍵により、
【数３】
0006384149.tif 000034
を演算するとともに、レンジエンコード関数をＦ、前記アクセス行列Ｍをｍ行ｎ列としたとき、前記公開鍵により、
【数４】
0006384149.tif 000035
を演算し、その演算結果Ｃ，Ｃ′，Ｃｉ，ｊ，ｕを暗号化データとして生成する暗号化データ生成手段と、
この暗号化データ生成手段で生成された暗号化データに、前記ポリシーを関連付けて、ポリシー付き暗号化データを生成するポリシー関連付け手段と、
を備えることを特徴とする暗号化装置。
【請求項３】
使用する属性の数をＷ、線形秘密分散法により復号条件を表したアクセス行列の列の最大数をｎｍａｘ、レンジエンコード関数の出力として取り得るノードの要素数をｕｍａｘとし、素数位数ｐと、当該素数位数ｐの巡回群Ｇ，ＧＴと、当該巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、ｅ（ｇ，ｇ）を乱数α（α∈Ｚｐ）乗した演算結果と、前記生成元ｇを乱数ａ（ａ∈Ｚｐ）乗した演算結果と、前記生成元ｇをｈｊ，ｘ，ｕ（∀ｊ∈［１，ｎｍａｘ］，∀ｘ∈［１，Ｗ］，∀ｕ∈［１，ｕｍａｘ］）乗した演算結果とからなる公開鍵、および、前記生成元ｇを前記乱数α乗した演算結果をマスタ鍵ＭＫとし、Ｚｐから選択した前記ｎｍａｘ分の乱数ｔ１，…，ｔｎｍａｘと、前記属性の種別を示す属性種別ｘｉとそれに対応する属性値ｓｉとを対とした属性ペアＳ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝と、ポイントエンコード関数ｆと、前記公開鍵とにより演算した
【数５】
0006384149.tif 000036
と、
【数６】
0006384149.tif 000037
とからなる秘密鍵に前記属性ペアを関連付けた属性付き秘密鍵を用いて、暗号化の対象となるデータＤを、線形秘密分散法により復号条件となるポリシーを表したｍ行ｎ列のアクセス行列Ｍと、当該アクセス行列Ｍの各行ｊに対応する属性を属性種別π（ｊ）１と属性値の範囲π（ｊ）２に変換する写像πと、Ｚｐｎから選択した前記アクセス行列の列の数ｎ分の乱数ｖ＝（ｓ，ｙ２，…，ｙｎ）と、レンジエンコード関数Ｆと、前記公開鍵とにより演算した
【数７】
0006384149.tif 000038
と、
【数８】
0006384149.tif 000039
とからなる暗号化データに前記ポリシーを関連付けたポリシー付き暗号化データから、前記データＤを復号する属性ベース暗号の復号装置であって、
前記属性ペアが前記ポリシーを満たすか否かを判定するポリシー判定手段と、
このポリシー判定手段で前記属性ペアが前記ポリシーを満たすと判定された場合に、前記公開鍵と前記秘密鍵とにより、前記暗号化データから、すべてのｊ∈［１，ｎｍａｘ］において、
【数９】
0006384149.tif 000040
を満たす前記属性ペアＳの中の属性種別および属性値を指し示すインデックスをｉｊ、前記レンジエンコード関数Ｆおよび前記ポイントエンコード関数ｆにより、
【数１０】
0006384149.tif 000041
を満たすノードをｚｊ、前記属性ペアＳ分の要素からなるベクトルｗ＝（ｗ１，ｗ２，…，ｗｋ）と、前記アクセス行列Ｍから前記属性ペアＳに含まれる各属性に対応する行のみを抽出した行列Ｍｓとにおいて、ｗ・Ｍｓ＝（１，０，…，０）を満たす前記ベクトルｗのインデックスｉｊ番目の要素をｗｉｊとして、
【数１１】
0006384149.tif 000042
を演算し、元のデータをＤとして復号する暗号化データ復号手段と、
を備えることを特徴とする復号装置。
【請求項４】
コンピュータを、請求項１に記載の鍵生成装置として機能させるための鍵生成プログラム。
【請求項５】
コンピュータを、請求項２に記載の暗号化装置として機能させるための暗号化プログラム。
【請求項６】
コンピュータを、請求項３に記載の復号装置として機能させるための復号プログラム。
【請求項７】
ユーザの個人情報を保護して、サービス事業者がユーザにサービスを提供する個人情報保護システムであって、ネットワーク上に、
前記サービス事業者に与える属性として、属性種別であるユーザ評価およびその属性値の範囲である評価値から、属性付き秘密鍵を生成する請求項１に記載の鍵生成装置と、
前記個人情報をデータ、前記個人情報を復号可能なサービス事業者のユーザ評価および評価値をポリシーとして、前記データからポリシー付き暗号化データを生成する前記ユーザの装置である請求項２に記載の暗号化装置と、
この暗号化装置で生成されたポリシー付き暗号化データを蓄積するデータ管理装置と、
このデータ管理装置に蓄積されているポリシー付き暗号化データを取得し、前記鍵生成装置で生成された属性付き秘密鍵で復号する前記サービス事業者の装置である請求項３に記載の復号装置と、
を備えることを特徴とする個人情報保護システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、属性情報を利用して、データの暗号化および復号を行うための鍵生成装置、暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システムに関する。
【背景技術】
【０００２】
近年、秘密鍵や暗号文にユーザの属性（居住地、性別等）を関連付け、復号条件（ポリシー）を満たすユーザのみが暗号文を復号可能な暗号方式である属性ベース暗号（ＡＢＥ：Attribute-Based Encryption）に関して種々の方式が提案されている。
【０００３】
この属性ベース暗号には、大きく２つの方式が存在する。第１の方式は、属性に基づいてデータを暗号化し、ポリシーに基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な鍵ポリシー属性ベース暗号（ＫＰ−ＡＢＥ：Key-Policy Attribute-Based Encryption）である。第２の方式は、ポリシーに基づいてデータを暗号化し、属性に基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な暗号文ポリシー属性ベース暗号（ＣＰ−ＡＢＥ：Ciphertext-Policy Attribute-Based Encryption）である。
このような属性ベース暗号は、１つの暗号文を復号することができるユーザを複数存在させることができるため、ファイル共有システムのアクセス制御、コンテンツ配信サービス等への応用が期待されている。
【０００４】
以下、本発明が対象とするＣＰ−ＡＢＥに関連する従来技術について説明する。
従来のＣＰ−ＡＢＥでは、例えば、非特許文献１に記載されているように、各々の属性に対応する属性値（固定値）を、ＡＮＤ（論理積）やＯＲ（論理和）で結合したブール代数形式または木構造でポリシーを記述する。
一般的なコンテンツ配信サービスでは、コンテンツの視聴制限を行う場合、例えば、ユーザの会員種別（プレミアム会員、一般会員等）、性別、年齢等により行っている。その場合、視聴制限を示すポリシーは、『‘プレミアム会員’ＯＲ（‘女性’ＡＮＤ‘成人’）』のように表すことができる。
この視聴制限を従来のＣＰ−ＡＢＥで指定する場合、ＣＰ−ＡＢＥは、ポリシーに記述可能な属性値が固定値のみであるため、ポリシーを、『‘プレミアム会員’ＯＲ（‘女性’ＡＮＤ（年齢：２０ ＯＲ 年齢：２１ … 年齢：９９ ＯＲ 年齢：１００））』のように、属性値を列挙して指定することになる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】B. Waters, “Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization,”Proc. of PKC’11, LNCS 6571, pp. 53-70, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前記したように、従来のＣＰ−ＡＢＥは、範囲指定可能な属性であっても、個々の属性値を列挙して記述しなければならないため、ポリシーの記述が複雑になるとともに、暗号文サイズが、指定した範囲に含まれる属性値の数のオーダで増加してしまうという問題がある。
【０００７】
本発明は、このような問題に鑑みてなされたもので、属性値の範囲指定を可能とすることで、暗号文サイズの増加量を抑えることが可能な属性ベース暗号システムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明に係る鍵生成装置は、属性ベース暗号の公開鍵および秘密鍵を生成する鍵生成装置であって、公開鍵生成手段と、マスタ鍵生成手段と、秘密鍵生成手段と、属性関連付け手段と、を備える構成とした。
【０００９】
かかる構成において、鍵生成装置は、公開鍵生成手段によって、使用する属性の数をＷ、アクセス行列の列の最大数をｎｍａｘ、レンジエンコード関数の出力として取り得るノードの要素数をｕｍａｘとしたとき、素数位数ｐと、当該素数位数ｐの巡回群Ｇ，ＧＴと、当該巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、ｅ（ｇ，ｇ）を乱数α（α∈Ｚｐ）乗した演算結果と、生成元ｇを乱数ａ（ａ∈Ｚｐ）乗した演算結果と、生成元ｇをｈｊ，ｘ，ｕ（∀ｊ∈［１，ｎｍａｘ］，∀ｘ∈［１，Ｗ］，∀ｕ∈［１，ｕｍａｘ］）乗した演算結果と、を公開鍵として生成する。さらに、鍵生成装置は、マスタ鍵生成手段によって、生成元ｇを乱数α乗した演算結果をマスタ鍵として生成する。
ここで、アクセス行列は、線形秘密分散法によるポリシー（復号条件）を表した行列である。後記する暗号化装置において、このアクセス行列と、アクセス行列の各行から属性種別と属性値の範囲に変換する写像とにより、属性値を範囲指定することが可能になる。
【００１０】
そして、鍵生成装置は、秘密鍵生成手段によって、マスタ鍵をＭＫとし、Ｚｐから選択したｎｍａｘ分の乱数ｔ１，…，ｔｎｍａｘと、公開鍵の一部であるｇおよびｇのａ乗とにより、
【数１】
0006384149.tif 000002
を演算するとともに、属性の種別を示す属性種別ｘとそれに対応する属性値ｓとを対とした属性ペアＳ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝と、ポイントエンコード関数ｆとにより、
【数２】
0006384149.tif 000003
を演算し、その演算結果Ｋ，Ｌｉ，Ｋｉ，ｕを秘密鍵として生成する。
【００１１】
そして、鍵生成装置は、属性関連付け手段によって、秘密鍵に属性ペアを関連付けて、属性付き秘密鍵を生成する。なお、この関連付けは、予め定めたデータフォーマットで、秘密鍵と属性ペアとを連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
これによって、鍵生成装置は、アクセス行列を用いてポリシーを指定してデータの暗号化／復号を行う際に使用する公開鍵と秘密鍵（属性付き秘密鍵）を生成することができる。
【００１２】
また、本発明に係る暗号化装置は、鍵生成装置で生成された公開鍵を用いて、属性ベース暗号によりデータを暗号化する暗号化装置であって、データ入力手段と、ポリシー入力手段と、暗号化データ生成手段と、ポリシー関連付け手段と、を備える構成とした。
【００１３】
かかる構成において、暗号化装置は、データ入力手段によって、暗号化の対象となるデータを入力する。また、暗号化装置は、ポリシー入力手段によって、ポリシーとして、線形秘密分散法により復号条件を表したアクセス行列Ｍと、当該アクセス行列Ｍの各行ｊから属性種別π（ｊ）１と属性値の範囲π（ｊ）２に変換する写像πとを入力する。
【００１４】
そして、暗号化装置は、暗号化データ生成手段によって、データをＤとし、アクセス行列の列の数ｎ分の乱数ｖ＝（ｓ，ｙ２，…，ｙｎ）をＺｐｎから選択し、公開鍵の一部であるｅ（ｇ，ｇ）のα乗およびｇにより、
【数３】
0006384149.tif 000004
を演算するとともに、レンジエンコード関数をＦ、アクセス行列Ｍをｍ行ｎ列としたとき、公開鍵の一部であるｇのａ乗およびｇのｈｊ，ｘ，ｕ乗により、
【数４】
0006384149.tif 000005
を演算し、その演算結果Ｃ，Ｃ′，Ｃｉ，ｊ，ｕを暗号化データとして生成する。
【００１５】
このように、暗号化装置は、レンジエンコード関数Ｆにより、属性値の範囲π（ｊ）２を符号化した要素（ノード）ｕを用いて暗号化データを生成するため、属性値を個々に指定するよりも少ない情報量で暗号化データを生成することができる。
【００１６】
そして、暗号化装置は、ポリシー関連付け手段によって、暗号化データにポリシーを関連付けて、ポリシー付き暗号化データを生成する。なお、この関連付けは、予め定めたデータフォーマットで、暗号化データとポリシーとを連結することとしてもよいし、予め定めた固有の識別子で対応付けることとしてもよい。
【００１７】
これによって、暗号化装置は、ポリシーを関連付けた属性ベース暗号方式による暗号化データを生成することができ、さらに、属性値を範囲指定する場合に、その情報量を抑えた暗号化データを生成することができる。
【００１８】
また、本発明に係る復号装置は、鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、暗号化装置で暗号化されたポリシー付き暗号化データを復号する属性ベース暗号の復号装置であって、ポリシー判定手段と、暗号化データ復号手段と、を備える構成とした。
【００１９】
かかる構成において、復号装置は、属性付き秘密鍵として関連付けられている、属性の種別を示す属性種別ｘｉとそれに対応する属性値ｓｉとを対とした属性ペアＳ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝と、秘密鍵である
【数５】
0006384149.tif 000006
と、ポリシー付き暗号化データとして関連付けられている、ポリシーと、暗号化データである
【数６】
0006384149.tif 000007
とにおいて、ポリシー判定手段によって、属性ペアがポリシーを満たすか否かを判定する。
【００２０】
そして、復号装置は、属性ペアがポリシーを満たすと判定された場合に、暗号化データ復号手段によって、公開鍵と秘密鍵とにより、暗号化データＣＴから、すべてのｊ∈［１，ｎｍａｘ］において、
【数７】
0006384149.tif 000008
を満たす属性ペアＳの中の属性種別および属性値を指し示すインデックスをｉｊ、暗号化装置と同じレンジエンコード関数Ｆおよび鍵生成装置と同じポイントエンコード関数ｆにより、
【数８】
0006384149.tif 000009
を満たすノードをｚｊとして、
【数９】
0006384149.tif 000010
を演算し、元のデータをＤとして復号する。
これによって、復号装置は、暗号化装置において、属性値を範囲指定して暗号化されたデータを、元データに復号することができる。
【発明の効果】
【００２１】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、ポリシー（復号条件）の属性値を、線形秘密分散法（ＬＳＳＳ）のアクセス行列により範囲指定することができる。
これによって、本発明は、属性値の範囲が大きくなった場合でも、個々の属性値を列挙して記述する従来の手法に比べて、暗号化データの情報量を抑えることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る属性ベース暗号システムの構成を示すシステム構成図である。
【図２】アクセス行列の生成手法の例を説明するための図であって、ポリシーのツリー構造を示す構造図である。
【図３】本発明の実施形態に係る鍵生成装置の構成を示すブロック構成図である。
【図４】ポイントエンコード関数の例を説明するための説明図である。
【図５】本発明の実施形態に係る暗号化装置の構成を示すブロック構成図である。
【図６】レンジエンコード関数の例を説明するための説明図である。
【図７】本発明の実施形態に係る復号装置の構成を示すブロック構成図である。
【図８】本発明の実施形態に係る属性ベース暗号システムにおける鍵生成および鍵配信の動作を示すフローチャートである。
【図９】図８の動作において、基本情報を生成する動作を詳細に示すフローチャートである。
【図１０】図８の動作において、公開鍵・マスタ鍵を生成する動作を詳細に示すフローチャートである。
【図１１】図８の動作において、秘密鍵を生成する動作を詳細に示すフローチャートである。
【図１２】本発明の実施形態に係る属性ベース暗号システムにおけるデータの暗号化および復号の動作を示すフローチャートである。
【図１３】図１２の動作において、暗号化データを生成する動作を詳細に示すフローチャートである。
【図１４】図１２の動作において、暗号化データを復号する動作を詳細に示すフローチャートである。
【図１５】本発明の実施形態に係る属性ベース暗号システムを個人情報保護システムとして構成した例を示すシステム構成図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について図面を参照して説明する。
［属性ベース暗号システムの構成］
まず、図１を参照して、本発明の実施形態に係る属性ベース暗号システム１００の構成について説明する。
属性ベース暗号システム１００は、復号条件となる属性の属性値を示すポリシーに基づいてデータを暗号化し、ユーザ（受信者）の属性の属性値が、ポリシーに適合した場合だけ、暗号化データを復号するシステムである。
【００２４】
ここでは、属性ベース暗号システム１００は、鍵生成装置１と、暗号化装置３と、復号装置５とを、ネットワーク（通信回線）Ｎを介して接続して構成している。なお、ここでは、説明を簡略化するため、暗号化装置３および復号装置５を１台ずつ図示しているが、これらは、ネットワークＮに複数接続することとしてもよい。
【００２５】
鍵生成装置１は、属性ベース暗号によりデータを暗号化するための公開鍵を生成するとともに、暗号化データを復号するためのユーザ（復号装置５）固有の秘密鍵を生成するものである。公開鍵は、暗号化装置３および復号装置５に対して公開される情報であって、ここでは、ネットワークＮを介して暗号化装置３および復号装置５に送信される。また、秘密鍵は、暗号化データを復号する復号装置５ごとに秘密情報として送信される情報である。
なお、ここでは、鍵生成装置１は、属性の種別を示す属性種別と、それに対応するユーザの属性値とを対とした属性ペアを秘密鍵に関連付け、属性付き秘密鍵として、復号装置５に送信する。
【００２６】
暗号化装置３は、属性ベース暗号により、データを暗号化するものである。なお、ここでは、暗号化装置３は、ポリシー（復号条件）を暗号化データに関連付け、ポリシー付き暗号化データとして、復号装置５に送信する。
【００２７】
復号装置５は、属性ベース暗号により暗号化装置３において生成されたポリシー付き暗号化データを元のデータに復号するものである。
この復号装置５は、暗号化装置３で生成されたポリシー付き暗号化データとして暗号化データに関連付けられているポリシー（復号条件）が、鍵生成装置１で生成される属性付き秘密鍵で特定される属性の属性値に適合する場合のみ復号を行う。
【００２８】
〔属性およびポリシーについて〕
以下、属性ベース暗号システム１００の各構成について説明する前に、属性ベース暗号システム１００で使用する属性およびポリシーについて、具体例を挙げて説明する。
【００２９】
（属性）
属性は、ユーザを区分するための個別情報である。例えば、会員種別、居住地、性別、年齢等である。
この属性は、属性内容を特定する属性値で区分される。例えば、ユーザの会員の種類を示す「会員種別」を属性とする場合、その属性を区分する通常会員およびプレミアム会員は、数値｛１，２｝、文字列｛通常会員、プレミアム会員｝等の属性値で区分することができる。
また、例えば、ユーザの「居住地」を属性とする場合、その属性は、郵便番号の上２桁を用いて１０〜９９の属性値によって区分することができる。
また、例えば、ユーザの「性別」を属性とする場合、その属性を区分する男性および女性は、数値｛１，２｝、文字列｛男性，女性｝等の属性値で区分することができる。
また、例えば、ユーザの「年齢」を属性とする場合、その属性は、年齢の値をそのまま属性値として用いることができる。
【００３０】
（ポリシー）
ポリシーは、暗号化データを復号するための条件（復号条件）を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
ここでは、ポリシーは、線形秘密分散法（Linear Secret Sharing Scheme：ＬＳＳＳ）によって生成されるアクセス行列Ｍと、アクセス行列Ｍの各行に対応する属性を属性種別と属性値の範囲（単一の属性値を含む）に変換する写像πとで構成される。
【００３１】
このアクセス行列は、例えば、「A. Lewkoand B. Waters, “Decentralizing Attribute-Based Encryption,” Proc. of Eurocrypt’ 11, LNCS 6632, pp. 568-588, 2011.」に記載の方法によって生成される行列である。
ここで、アクセス行列Ｍと写像πの内容について具体的に説明する。
ここでは、前記した属性を例とし、ポリシーを以下の式（１）に示す論理形式で示す条件とする。
【００３２】
【数１０】
0006384149.tif 000011
【００３３】
まず、図２を参照して、アクセス行列Ｍの生成手法の例について説明する。
なお、説明を簡略化するため、式（１）の条件を、ポリシーの属性をＡ〜Ｄで表した以下の式（２）に示す簡略表現とする。
【００３４】
【数１１】
0006384149.tif 000012
【００３５】
図２は、式（２）で示した論理形式を、「Ａ」〜「Ｄ」，「ＡＮＤ」，「ＯＲ」をノードとするツリー構造で記述したものである。
初めに、ツリーのルートノードにベクトルｖ＝（１）を設定する。
そして、親ノードが「ＡＮＤ」の場合、子ノード同士に設定されるベクトルの和が（ｖ，０）となるように子ノードのベクトルを拡張していく。図２の例では、親ノード（ここでは、ルートノード「ＡＮＤ」）の子ノード「Ａ」に設定するベクトルと、子ノード「ＯＲ」に設定するベクトルの和が（１，０）になるように、子ノード「Ａ」には（１，１）、子ノード「ＯＲ」には（０，−１）を設定する。
【００３６】
一方、親ノードが「ＯＲ」の場合、子ノードに親ノードのベクトルｖをそのまま引き継ぐ。図２の例では、親ノード（ここでは、ノード「ＯＲ」）の子ノード「Ｂ」および「ＡＮＤ」にそれぞれノード「ＯＲ」と同じベクトル（０，−１）を設定する。
そして、ベクトル（０，−１）が設定されたノード「ＡＮＤ」は、前記と同様に、子ノード「Ｃ」に設定するベクトルと、子ノード「Ｄ」に設定するベクトルの和が（０，−１，０）になるように、子ノード「Ｃ」には（０，−１，１）、子ノード「Ｄ」には（０，０，−１）を設定する。
【００３７】
このように設定されたベクトルのうちで、各属性（Ａ〜Ｄ）に設定されたベクトルについて、同じ要素数となるように、要素数が少ないベクトル（ここでは、Ａ，Ｂ）に値“０”の要素を付加し、行列の行ベクトルとすることで、以下の式（３）に示すアクセス行列Ｍを生成する。
【００３８】
【数１２】
0006384149.tif 000013
【００３９】
これによって、ポリシーの属性の論理形式を行列形式で表すことができる。
次に、写像πについて説明する。
この写像πは、式（３）に示したアクセス行列Ｍの各行に対応する属性を属性種別と属性値の範囲（単一の属性値を含む）に変換する写像である。
すなわち、写像πは、アクセス行列Ｍの行のインデックスをｊとしたとき、π（ｊ）１の属性種別と、π（ｊ）２の属性値の範囲に変換する写像である。
具体的には、前記式（１）で示したポリシーに対応する写像πは、以下の式（４）に示すように表現される。ここで、［ｘ，ｙ］は、ｘ以上ｙ以下の整数の集合を示す（以下、同じ）。
【００４０】
【数１３】
0006384149.tif 000014
【００４１】
なお、属性π（ｊ）１には、‘会員種別’等の属性を特定する文字列を設定する。また、属性値の範囲π（ｊ）２には、プレミアム会員等の単一の属性値か、［１０，２０］等の範囲指定の属性値かを示す識別情報に続けて、固定の属性値、あるいは、範囲指定の属性値（先頭値、最終値）を設定する。
ここでは、以上説明したように、アクセス行列Ｍと写像πとでポリシーを構成する。
以下、図１に示した属性ベース暗号システム１００の各構成について説明する。
【００４２】
〔鍵生成装置の構成〕
まず、図３を参照（適宜図１参照）して、本発明の実施形態に係る鍵生成装置１の構成について説明する。ここでは、鍵生成装置１は、第一鍵生成手段１０と、第二鍵生成手段２０と、を備える。
【００４３】
第一鍵生成手段１０は、外部から入力されるセキュリティパラメータおよび属性情報に基づいて、属性ベース暗号方式における公開鍵およびマスタ鍵を生成するものである。ここでは、第一鍵生成手段１０は、パラメータ入力手段１１と、基本情報生成手段１２と、公開鍵生成手段１３と、マスタ鍵生成手段１４と、公開鍵記憶手段１５と、マスタ鍵記憶手段１６と、公開鍵送信手段１７と、を備える。
【００４４】
パラメータ入力手段１１は、セキュリティパラメータおよび属性情報を外部からパラメータとして入力するものである。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値（例えば、鍵長）である。より具体的には、セキュリティパラメータは、後記する基本情報生成手段１２で使用される素数位数ｐの大きさ（ビット長）である。
【００４５】
また、属性情報は、属性を特定する情報であって、属性ベース暗号システム１００で使用する属性の数（システムの属性数Ｗ）、アクセス行列Ｍの列の最大数ｎｍａｘ、および、レンジエンコード（Range Encode）関数の出力として取り得るノードの要素数ｕｍａｘである。
このレンジエンコード関数は、属性値を葉ノードとして含む完全二分木において、属性値の範囲を、当該範囲を覆う完全二分木のルートノードに近いノード（カバーノード）に写す写像関数である。すなわち、レンジエンコード関数の出力として取り得るノードの要素数ｕｍａｘは、この完全二分木の総ノード数である。このレンジエンコード関数については、当該関数を用いる暗号化装置３において、詳細に説明する。
【００４６】
なお、ここでは、説明を簡単にするため、すべての属性において、要素数ｕｍａｘを同じ値として説明するが、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
このパラメータ入力手段１１は、入力されたセキュリティパラメータおよび属性情報を、基本情報生成手段１２に出力する。
【００４７】
基本情報生成手段１２は、公開鍵生成手段１３およびマスタ鍵生成手段１４において、それぞれ、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成するものである。
具体的には、基本情報生成手段１２は、セキュリティパラメータで特定される大きさ（ビット長）の素数ｐを選択し、当該素数ｐを位数（素数位数ｐ）とする巡回群Ｇ，ＧＴを選択する。そして、基本情報生成手段１２は、巡回群ＧおよびＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅを選択する。例えば、基本情報生成手段１２は、ｅ：Ｇ×Ｇ→ＧＴとなる双線形写像ｅとして、一般的な“Ｗｅｉｌ  Ｐａｉｒｉｎｇ”、“Ｔａｔｅ  Ｐａｉｒｉｎｇ”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像ｅは、２つの引数を持つｅ（・，・）で表される写像である。
【００４８】
さらに、基本情報生成手段１２は、巡回群Ｇの中からランダムに１つの生成元ｇを選択（ｇ∈Ｇ）する。
また、基本情報生成手段１２は、乱数ａ，α，ｈｊ，ｘ，ｕを、Ｚｐからランダムに選択する。ここで、乱数ｈｊ，ｘ，ｕは、すべてのｊ∈［１，ｎｍａｘ］，すべてのｘ∈［１，Ｗ］，すべてのｕ∈［１，ｕｍａｘ］に対して選択されるものとする。なお、Ｚｐは、｛０，…，ｐ−１｝の整数の集合である。
【００４９】
この基本情報生成手段１２は、生成した各種の基本情報（ｐ，Ｇ，ＧＴ，ｅ，ａ，α，ｈｊ，ｘ，ｕ）を、公開鍵生成手段１３に出力する。また、基本情報生成手段１２は、生成した基本情報（ｇ，α）を、マスタ鍵生成手段１４に出力する。もちろん、この基本情報は、図示を省略したメモリに記憶しておき、公開鍵生成手段１３およびマスタ鍵生成手段１４が、それぞれ必要な情報を参照することとしてもよい。
【００５０】
公開鍵生成手段１３は、基本情報生成手段１２で生成された基本情報に基づいて、属性ベース暗号における公開鍵を生成するものである。
ここでは、公開鍵生成手段１３は、基本情報に基づいて、ｅ（ｇ，ｇ）のα乗，ｇのａ乗およびｇのｈｊ，ｘ，ｕ乗を演算し、以下の式（５）に示すように、基本情報生成手段１２で生成された素数位数ｐ、巡回群Ｇ，ＧＴ、双線形写像ｅおよび生成元ｇとともに、公開鍵ＰＫを生成する。
【００５１】
【数１４】
0006384149.tif 000015
【００５２】
なお、本実施形態では、パラメータ入力手段１１に入力される属性情報（Ｗ，ｎｍａｘ，ｕｍａｘ）が、属性ベース暗号システム１００の各装置（鍵生成装置１、暗号化装置３および復号装置５）において予め設定された既知の情報であることとするが、既知の情報としない場合、当該属性情報も公開鍵ＰＫとして、公開すればよい。
この公開鍵生成手段１３は、生成した公開鍵ＰＫを公開鍵記憶手段１５に書き込み記憶する。
【００５３】
マスタ鍵生成手段１４は、基本情報生成手段１２で生成された基本情報に基づいて、属性ベース暗号におけるマスタ鍵を生成するものである。
ここでは、マスタ鍵生成手段１４は、以下の式（６）に示すように、基本情報に基づいて、生成元ｇのα乗を演算してマスタ鍵ＭＫを生成する。
【００５４】
【数１５】
0006384149.tif 000016
【００５５】
このマスタ鍵生成手段１４は、生成したマスタ鍵ＭＫをマスタ鍵記憶手段１６に書き込み記憶する。
【００５６】
公開鍵記憶手段１５は、公開鍵生成手段１３で生成された公開鍵を記憶するものである。この公開鍵記憶手段１５は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この公開鍵記憶手段１５に記憶された公開鍵は、公開鍵送信手段１７および第二鍵生成手段２０によって読み出される。
【００５７】
マスタ鍵記憶手段１６は、マスタ鍵生成手段１４で生成されたマスタ鍵を記憶するものである。このマスタ鍵記憶手段１６は、半導体メモリ等の一般的な記憶媒体で構成することができる。
このマスタ鍵記憶手段１６に記憶されたマスタ鍵は、第二鍵生成手段２０によって読み出される。
【００５８】
公開鍵送信手段１７は、公開鍵生成手段１３で生成され、公開鍵記憶手段１５に記憶された公開鍵を、暗号化装置３や復号装置５に公開するものである。
ここでは、公開鍵送信手段１７は、公開鍵記憶手段１５から公開鍵を読み出し、ネットワークＮを介して、読み出した公開鍵を暗号化装置３や復号装置５に送信する。この公開鍵送信手段１７は、例えば、暗号化装置３や復号装置５から、公開鍵を要求されたタイミングで、公開鍵を送信する。
【００５９】
第二鍵生成手段２０は、外部から入力される個別の復号装置５のユーザの属性ペアに基づいて、個別の復号装置５が使用する、属性ベース暗号方式における秘密鍵を生成するものである。ここでは、第二鍵生成手段２０は、属性入力手段２１と、属性付き秘密鍵生成手段２２と、属性付き秘密鍵送信手段２３と、を備える。
【００６０】
属性入力手段２１は、個別の復号装置５のユーザに対する属性ペアを入力するものである。ここで、属性ペアは、属性の種別を示す属性種別と、それに対応するユーザの属性値とを対とした情報である。
例えば、属性種別を、「会員種別」、「居住地」、「性別」、「年齢」とした場合、属性ペアＳは、以下に示すように、それぞれの属性種別に、ユーザ固有の属性値を対応付けたものである。
Ｓ＝｛（‘会員種別’，通常会員），（‘居住地’，１５），（‘性別’，男性），
（‘年齢’，３７）｝
なお、以下では、属性種別をｘｉ、属性値をｓｉ（ｉ＝１，…，ｋ；ｋは１以上の整数）としたとき、属性ペアＳを、Ｓ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝と表すこととする。
この属性入力手段２１は、入力された属性ペアを、属性付き秘密鍵生成手段２２に出力する。
【００６１】
属性付き秘密鍵生成手段２２は、属性入力手段２１で入力された属性ペアと、第一鍵生成手段１０で生成された公開鍵およびマスタ鍵とに基づいて、属性ベース暗号における秘密鍵を生成し、入力された属性ペアを関連付けることで属性付き秘密鍵を生成するものである。ここでは、属性付き秘密鍵生成手段２２は、秘密鍵生成手段２２１と、属性関連付け手段２２２と、を備える。
【００６２】
秘密鍵生成手段２２１は、属性入力手段２１で入力された属性ペアに対応する属性ベース暗号方式における秘密鍵を生成するものである。
具体的には、秘密鍵生成手段２２１は、以下の演算を行うことで、秘密鍵を生成する。
まず、秘密鍵生成手段２２１は、アクセス行列Ｍ（例えば、前記式（３））の列の最大数ｎｍａｘ分の乱数ｔ１，…，ｔｎｍａｘをＺｐからランダムに選択する。
そして、秘密鍵生成手段２２１は、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇａと、マスタ鍵記憶手段１６に記憶されているマスタ鍵ＭＫ（＝ｇα）を用いて、以下の式（７）の演算を行い、秘密鍵の要素となるＫを求める。
【００６３】
【数１６】
0006384149.tif 000017
【００６４】
また、秘密鍵生成手段２２１は、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇを用いて、すべてのｉ∈［１，ｎｍａｘ］に対して、以下の式（８）の演算を行い、秘密鍵の要素となるＬｉを求める。
【００６５】
【数１７】
0006384149.tif 000018
【００６６】
さらに、秘密鍵生成手段２２１は、属性ペアＳ（＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝）において、すべてのｉ∈［１，ｋ］と、すべてのｕ∈ｆ（ｓｉ）とに対して、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇを用いて、以下の式（９）の演算を行い、秘密鍵の要素となるＫｉ，ｕを求める。
【００６７】
【数１８】
0006384149.tif 000019
【００６８】
ここで、ｆは、ポイントエンコード（Point Encode）関数である。このポイントエンコード関数ｆは、完全二分木の葉ノードを、当該葉ノードのすべての先祖ノードの集合に写す写像関数であって、「E. Shi, J. Bethencourt, H. Chan, D. Song, A. Perrig,“Multi-Dimensional Range Query over Encrypted Data,” Proc. of the 2007 IEEE Symposium on Security and Privacy, pp. 350-364」に記載されている符号化関数である。
【００６９】
なお、このポイントエンコード関数ｆにおいて出力として取り得るノードの要素数は、パラメータ入力手段１１に入力されるレンジエンコード関数において出力として取り得るノードの要素数ｕｍａｘと同じである。なお、ポイントエンコード関数ｆにおける要素数も、レンジエンコード関数と同様に、属性ごとにそれぞれ属性値の範囲を最小限にカバーする完全二分木の要素数を設定することが望ましい。
【００７０】
ここで、図４を参照して、ポイントエンコード関数の具体例について説明する。
図４に示すように、ポイントエンコード関数は、葉ノード（ここでは、“１”〜“８”）を含んだ完全二分木において、ある葉ノードを、当該葉ノードのすべての先祖ノードの集合に写す写像関数である。すなわち、ポイントエンコード関数は、完全二分木において、葉ノードからルートノードまで辿るノードの集合を出力する。
例えば、図４の例では、ある葉ノード（“６”）をポイントエンコード関数ｆによって符号化した場合、｛６，１１，１４，１５｝が生成される。
図３に戻って、鍵生成装置１の構成について説明を続ける。
【００７１】
秘密鍵生成手段２２１は、前記式（７）〜式（９）で演算された各要素で構成される以下の式（１０）に示す秘密鍵ＳＫを生成し、属性関連付け手段２２２に出力する。
【００７２】
【数１９】
0006384149.tif 000020
【００７３】
属性関連付け手段２２２は、秘密鍵生成手段２２１で生成された秘密鍵ＳＫに、属性入力手段２１で入力された属性ペアＳを関連付けて、属性付き秘密鍵を生成するものである。例えば、属性関連付け手段２２２は、秘密鍵ＳＫと属性ペアＳとを予め定めたデータフォーマットで連結することで、属性付き秘密鍵を生成する。
この属性関連付け手段２２２は、生成した属性付き秘密鍵を属性付き秘密鍵送信手段２３に出力する。
【００７４】
属性付き秘密鍵送信手段２３は、属性付き秘密鍵生成手段２２で生成された属性付き秘密鍵を、復号装置５に送信するものである。
ここでは、属性付き秘密鍵送信手段２３は、属性付き秘密鍵を、ネットワークＮを介して、例えば、ＳＳＬ／ＴＬＳ（Secure Sockets Layer／Transport Layer Security）等の暗号化通信プロトコルを用いて復号装置５に送信する。なお、復号装置５の送信先については、外部から設定されるものとする。
【００７５】
このように鍵生成装置１を構成することで、鍵生成装置１は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定してデータを暗号化／復号することが可能なＣＰ−ＡＢＥの公開鍵および秘密鍵（属性付き秘密鍵）を生成することができる。
なお、鍵生成装置１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（鍵生成プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【００７６】
〔暗号化装置の構成〕
次に、図５を参照（適宜図１参照）して、本発明の実施形態に係る暗号化装置３の構成について説明する。ここでは、暗号化装置３は、データ入力手段３１と、ポリシー入力手段３２と、公開鍵受信手段３３と、公開鍵記憶手段３４と、ポリシー付き暗号化データ生成手段３５と、ポリシー付き暗号化データ送信手段３６と、を備える。
【００７７】
データ入力手段３１は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段３１は、入力されたデータをポリシー付き暗号化データ生成手段３５に出力する。
【００７８】
ポリシー入力手段３２は、復号装置５において、暗号化データを復号するための条件（復号条件）となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段３２は、線形秘密分散法（ＬＳＳＳ）によって予め生成されたアクセス行列Ｍ（例えば、前記式（３）参照）と、アクセス行列Ｍの各行に対応する属性を属性種別と属性値の範囲（単一の属性値を含む）に変換する写像π（例えば、前記式（４）参照）とを、外部から入力する。
このポリシー入力手段３２は、入力されたポリシーをポリシー付き暗号化データ生成手段３５に出力する。
【００７９】
公開鍵受信手段３３は、鍵生成装置１で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段３３は、ネットワークＮを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段３４に書き込み記憶する。
なお、公開鍵受信手段３３は、定期的に公開鍵を鍵生成装置１に要求し取得することとしてもよいし、ポリシー付き暗号化データ生成手段３５が公開鍵を参照するタイミングで鍵生成装置１に要求し取得することとしてもよい。
【００８０】
公開鍵記憶手段３４は、公開鍵受信手段３３で受信した公開鍵を記憶するものである。この公開鍵記憶手段３４は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段３４に記憶された公開鍵は、ポリシー付き暗号化データ生成手段３５によって読み出される。
【００８１】
ポリシー付き暗号化データ生成手段３５は、公開鍵記憶手段３４に記憶されている公開鍵と、ポリシー入力手段３２で入力されたポリシーとに基づいて、データ入力手段３１で入力されたデータを暗号化し、ポリシーを関連付けたポリシー付き暗号化データを生成するものである。
ここでは、ポリシー付き暗号化データ生成手段３５は、暗号化データ生成手段３５１と、ポリシー関連付け手段３５２と、を備える。
【００８２】
暗号化データ生成手段３５１は、公開鍵とポリシーとにより、属性ベース暗号による暗号化データを生成するものである。
具体的には、暗号化データ生成手段３５１は、以下の演算を行うことで、暗号化データを生成する。
まず、暗号化データ生成手段３５１は、ポリシーとして入力されるアクセス行列の列の数ｎ分の乱数ｓ，ｙ２，…，ｙｎを、Ｚｐｎからランダムに選択する。なお、Ｚｐｎは、Ｚｐ上の整数を要素にもつｎ次元ベクトルの集合である。ここでは、各乱数を、インデックスｖ＝（ｓ，ｙ２，…，ｙｎ）で表し、ｖ１＝ｓ，ｖ２＝ｙ２，…，ｖｎ＝ｙｎとする。
そして、暗号化データ生成手段３５１は、選択した乱数ｓ（＝ｖ１）と、公開鍵記憶手段３４に記憶されている公開鍵の一部であるｅ（ｇ，ｇ）αおよびｇとにより、以下の式（１１）を演算することで、暗号化データの要素となるＣ，Ｃ′を求める。
【００８３】
【数２０】
0006384149.tif 000021
【００８４】
ここで、Ｄは、データ入力手段３１で入力された暗号化対象のデータである。
さらに、暗号化データ生成手段３５１は、アクセス行列Ｍをｍ行ｎ列としたときのすべてのｉ∈［１，ｍ］，ｊ∈［１，ｎ］と、すべてのｕ∈Ｆ（π（ｉ）２）とに対して、公開鍵記憶手段３４に記憶されている公開鍵の一部であるｇのａ乗とｇのｈｊ，ｘ，ｕ乗とにより、以下の式（１２）の演算を行い、暗号化データの要素となるＣｉ，ｊ，ｕを求める。
【００８５】
【数２１】
0006384149.tif 000022
【００８６】
ここで、Ｍｉ，ｊは、アクセス行列Ｍのｉ行ｊ列の要素の値である。また、ｈｊ，π（ｉ）１，ｕは、公開鍵の一部である乱数ｈｊ，ｘ，ｕのうちのｉ番目の属性に対応する乱数である。
また、π（ｉ）２は、ポリシー入力手段３２で入力されたポリシーの写像πの要素であって、ｉ番目の属性に対応する属性値（属性値の範囲を含む）である。
また、Ｆは、レンジエンコード（Range Encode）関数である。このレンジエンコード関数Ｆは、任意の区間（属性値の範囲）を、完全二分木のカバーノードの集合に写す写像関数であって、「E. Shi, J. Bethencourt, H. Chan, D. Song, A. Perrig,“Multi-Dimensional Range Query over Encrypted Data,” Proc. of the 2007 IEEE Symposium on Security and Privacy, pp. 350-364」に記載されている符号化関数である。
【００８７】
ここで、図６を参照して、レンジエンコード関数の具体例について説明する。
図６に示すように、レンジエンコード関数は、葉ノード（ここでは、“１”〜“８”）を含んだ完全二分木において、任意の区間の葉ノードを、カバーノードの集合に写す写像である。なお、カバーノードとは、自身の子ノードのすべての葉ノードが当該区間に含まれるようなノードである。すなわち、レンジエンコード関数は、完全二分木において、当該区間の最も高い（ルートノードに近い）カバーノードの集合を出力する関数である。
例えば、図６の例で、区間［２，８］をレンジエンコード関数Ｆによって符号化した場合、｛２，１０，１４｝が生成される。
図５に戻って、暗号化装置３の構成について説明する。
【００８８】
暗号化データ生成手段３５１は、前記式（１１），式（１２）で演算された各要素で構成される以下の式（１３）に示す暗号化データＣＴを生成し、ポリシー関連付け手段３５２に出力する。
【００８９】
【数２２】
0006384149.tif 000023
【００９０】
ポリシー関連付け手段３５２は、暗号化データ生成手段３５１で生成された暗号化データＣＴに、ポリシー入力手段３２で入力されたポリシー（Ｍ，π）を関連付けて、ポリシー付き暗号化データを生成するものである。例えば、ポリシー関連付け手段３５２は、暗号化データＣＴとポリシー（Ｍ，π）とを予め定めたデータフォーマットで連結することで、ポリシー付き暗号化データを生成する。
このポリシー関連付け手段３５２は、生成したポリシー付き暗号化データをポリシー付き暗号化データ送信手段３６に出力する。
【００９１】
ポリシー付き暗号化データ送信手段３６は、ポリシー付き暗号化データ生成手段３５で生成されたポリシー付き暗号化データを送信するものである。
ここでは、ポリシー付き暗号化データ送信手段３６は、ポリシー付き暗号化データを、ネットワークＮを介して、復号装置５に送信する。なお、復号装置５の送信先については、外部から設定されるものとする。
【００９２】
このように暗号化装置３を構成することで、暗号化装置３は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定してデータを暗号化することができる。また、暗号化装置３は、属性値をＡＮＤやＯＲで結合するだけでなく、属性値の範囲指定を行うことができる。これによって、暗号化装置３は、指定した範囲に含まれる属性値の数をｎとしたとき、暗号化データのサイズの増加量をｌｏｇ（ｎ）のオーダに抑えることができる。
なお、暗号化装置３は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（暗号化プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【００９３】
〔復号装置の構成〕
次に、図７を参照（適宜図１参照）して、本発明の実施形態に係る復号装置５の構成について説明する。ここで、復号装置５は、公開鍵受信手段５１と、公開鍵記憶手段５２と、属性付き秘密鍵受信手段５３と、属性付き秘密鍵記憶手段５４と、ポリシー付き暗号化データ受信手段５５と、ポリシー付き暗号化データ復号手段５６と、を備える。
【００９４】
公開鍵受信手段５１は、鍵生成装置１で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段５１は、ネットワークＮを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段５２に書き込み記憶する。
なお、公開鍵受信手段５１は、定期的に公開鍵を鍵生成装置１に要求し取得することとしてもよいし、ポリシー付き暗号化データ復号手段５６が公開鍵を参照するタイミングで鍵生成装置１に要求し取得することとしてもよい。
【００９５】
公開鍵記憶手段５２は、公開鍵受信手段５１で受信した公開鍵を記憶するものである。この公開鍵記憶手段５２は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段５２に記憶された公開鍵は、ポリシー付き暗号化データ復号手段５６によって読み出される。
【００９６】
属性付き秘密鍵受信手段５３は、鍵生成装置１で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段５３は、ネットワークＮを介して、例えば、ＳＳＬ／ＴＬＳ等の暗号化通信プロトコルを用いて属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段５４に書き込み記憶する。
なお、属性付き秘密鍵受信手段５３は、ポリシー付き暗号化データ復号手段５６が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置５が、図示を省略した登録手段によって、予め鍵生成装置１に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
【００９７】
属性付き秘密鍵記憶手段５４は、属性付き秘密鍵受信手段５３で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段５４は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段５４に記憶された属性付き秘密鍵は、ポリシー付き暗号化データ復号手段５６によって読み出される。
【００９８】
ポリシー付き暗号化データ受信手段５５は、暗号化装置３で生成されたポリシー付き暗号化データを受信するものである。ここでは、ポリシー付き暗号化データ受信手段５５は、ネットワークＮを介して、ポリシー付き暗号化データを受信し、ポリシー付き暗号化データ復号手段５６に出力する。
【００９９】
ポリシー付き暗号化データ復号手段５６は、ポリシー付き暗号化データ受信手段５５で受信したポリシー付き暗号化データを復号するものである。ここでは、ポリシー付き暗号化データ復号手段５６は、属性付き秘密鍵分離手段５６１と、ポリシー付き暗号化データ分離手段５６２と、ポリシー判定手段５６３と、暗号化データ復号手段５６４と、を備える。
【０１００】
属性付き秘密鍵分離手段５６１は、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵を、属性ペアと秘密鍵とに分離するものである。
この属性付き秘密鍵分離手段５６１は、分離した属性ペアである属性の種別を示す属性種別と、それに対応するユーザの属性値とをポリシー判定手段５６３に出力する。また、属性付き秘密鍵分離手段５６１は、分離した秘密鍵（前記式（１０）参照）を暗号化データ復号手段５６４に出力する。
【０１０１】
ポリシー付き暗号化データ分離手段５６２は、ポリシー付き暗号化データ受信手段５５で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離するものである。
このポリシー付き暗号化データ分離手段５６２は、ポリシー付き暗号化データを、ポリシー（Ｍ，π）と、暗号化データ（前記式（１３）参照）とに分離して、ポリシー判定手段５６３に出力する。
【０１０２】
ポリシー判定手段５６３は、属性ペアがポリシーを満たすか否かを判定するものである。すなわち、属性数をｋとする属性ペアＳを、Ｓ＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝、ポリシーに含まれる属性数をｊとしたとき、ポリシー判定手段５６３は、属性種別ｘ（ｘ１，…，ｘｋ）が、ポリシーに含まれる写像πの属性種別π（ｉ）１、ｉ∈［１，ｊ］に含まれ、かつ、属性値ｓ（ｓ１，…，ｓｋ）が、その属性種別ｘ（ｘ１，…，ｘｋ）に対応する写像πの属性値の範囲π（ｉ）２に含まれる場合（属性値が単一値であれば一致する場合、属性値が範囲であればその範囲内にある場合）に、属性ペアがポリシーを満たすと判定し、それ以外の場合に、属性ペアがポリシーを満たさないと判定する。
【０１０３】
このポリシー判定手段５６３は、属性ペアがポリシーを満たす場合だけ、ポリシー付き暗号化データ分離手段５６２で分離されたポリシーと暗号化データとを暗号化データ復号手段５６４に出力する。さらに、ポリシー判定手段５６３は、属性ペアの属性数ｋを暗号化データ復号手段５６４に出力する（図示せず）。
なお、ポリシー判定手段５６３は、属性ペアがポリシーを満たさない場合、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
【０１０４】
暗号化データ復号手段５６４は、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号するものである。
具体的には、暗号化データ復号手段５６４は、以下の式（１４）に示す演算を行うことで、暗号化データからデータＤを復号する。
【０１０５】
【数２３】
0006384149.tif 000024
【０１０６】
この式（１４）中、符号Ｃが付されている値は、暗号化データＣＴ（前記式（１３）参照）で与えられる値である。また、符号Ｋ，符号Ｌが付されている値は、秘密鍵ＳＫ（前記式（１０）参照）で与えられる値である。
また、ｅは、公開鍵（前記式（５）参照）として公開されている双線形写像である。
また、ｎｍａｘは、アクセス行列Ｍの列の最大数である。このアクセス行列Ｍの列の最大数ｎｍａｘは、暗号化データ復号手段５６４に予め保持しておいてもよいし、外部から設定されることとしてもよい。あるいは、ｎｍａｘを公開鍵の一部として含め、それを参照することとしてもよい。また、ｋは、属性ペアの属性数である。
また、式（１４）中、ｉｊは、以下の式（１５）を満たす（真値となる）属性ペアの中の属性および属性値を指し示すインデックスである。
【０１０７】
【数２４】
0006384149.tif 000025
【０１０８】
すなわち、インデックスｉｊは、すべてのｊ∈［１，ｎｍａｘ］において、ポリシーに含まれる写像πのｊ番目の属性種別π（ｊ）１と属性ペアＳのｉｊ番目の属性種別ｘｉｊとが一致し、かつ、写像πのｊ番目の属性値の範囲π（ｊ）２に属性ペアＳのｉｊ番目の属性値ｓｉｊが含まれるときの値である。
また、式（１４）中、ｚｊは、以下の式（１６）を満たすノードである
【０１０９】
【数２５】
0006384149.tif 000026
【０１１０】
すなわち、ノードｚｊは、ポリシーに含まれる写像πのｊ（ｊ∈［１，ｎｍａｘ］）番目の属性値π（ｊ）２を、暗号化装置３と同じレンジエンコード関数Ｆで符号化したノード（カバーノード）と、属性ペアＳのｉｊ番目の属性値ｓｉｊを、鍵生成装置１と同じポイントエンコード関数ｆで符号化したノードとの共通のノードである。
また、式（１４）中、ｗｉｊは、属性ペアＳ分のｋ個の要素からなるベクトルｗ＝（ｗ１，ｗ２，…，ｗｋ）と、アクセス行列Ｍから属性ペアＳに含まれる各属性に対応する行のみを抽出した行列Ｍｓとにおいて、ｗ・Ｍｓ＝（１，０，…，０）を満たすベクトルｗのｉｊ番目（ｉｊ∈［１，ｋ］）の要素の値である。
【０１１１】
（式（１４）の証明）
ここで、前記式（１４）によって、暗号化データ復号手段５６４が、元のデータＤを復号することができることを証明しておく。
なお、データＤは、前記式（１１）により暗号化されているため、前記式（１４）から、以下の式（１７）が導き出せればよいことになる。
【０１１２】
【数２６】
0006384149.tif 000027
【０１１３】
以下、式（１８）により、式（１４）の右辺のうち、“Ｃ”を除いた数式（以下の式（18-1））を変形する。
【０１１４】
【数２７】
0006384149.tif 000028
【０１１５】
この式（１８）において、式（18-1）から式（18-2）の変形は、前記式（７）〜式（９）、式（１１）および式（１２）を式（18-1）に代入することで求められる。
また、式（18-2）から式（18-3）の変形は、双線形写像の性質であるｅ（ｇａ，ｇｂ）＝ｅ（ｇｂ，ｇａ）＝ｅ（ｇ，ｇ）ａｂ）を利用することで変形することができる。
具体的には、双線形写像の性質により、式（18-2）の分子は、以下の式（１９）のように変形することができる。
【０１１６】
【数２８】
0006384149.tif 000029
【０１１７】
また、前記式（１８）において、式（18-3）から式（18-4）の変形は、双線形写像の性質であるｅ（ｇａ，ｇｂ）＝ｅ（ｇｂ，ｇａ）＝ｅ（ｇ，ｇ）ａｂ）と、線形秘密分散法（ＬＳＳＳ）の性質を利用することで変形することができる。
ここで、ＬＳＳＳの性質とは、ベクトルｗ＝（ｗ１，ｗ２，…，ｗｋ）と、行列Ｍｓとにおいて、ｗ・Ｍｓ＝（１，０，…，０）となる性質である。
すなわち、ＬＳＳＳは、以下の式（２０）の性質を有する。
【０１１８】
【数２９】
0006384149.tif 000030
【０１１９】
よって、前記式（18-3）の分子は、以下の式（２１）のように変形することができ、式（18-3）から式（18-4）に変形することができる。
【数３０】
0006384149.tif 000031
【０１２０】
また、前記式（１８）において、式（18-4）から式（18-5）の変形は、前記式（１１）で説明したように、ｖ１＝ｓであることから、式（18-4）のｖ１にｓを代入するとともに、双線形写像のｅ（ｇａ，ｇｂ）＝ｅ（ｇｂ，ｇａ）＝ｅ（ｇ，ｇ）ａｂ）の性質を利用することで変形することができる。
また、前記式（１８）において、式（18-5）から式（18-6）の変形は、双線形写像のｅ（ｇａ，ｇｂ）＝ｅ（ｇｂ，ｇａ）＝ｅ（ｇ，ｇ）ａｂ）の性質を利用することで変形することができる。
【０１２１】
以上により、暗号化データ復号手段５６４は、前記式（１４）によって、元のデータＤを復号することができる。
このように復号装置５を構成することで、復号装置５は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定して暗号化されたデータを、ユーザの属性に応じて復号することができる。
【０１２２】
なお、復号装置５は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（復号プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【０１２３】
［属性ベース暗号システムの動作］
次に、本発明の実施形態に係る属性ベース暗号システム１００の動作について説明する。ここでは、鍵（公開鍵、秘密鍵）の生成・配信動作と、データの暗号化・復号動作とに分けて説明する。
【０１２４】
〔鍵（公開鍵、秘密鍵）生成・配信動作〕
最初に、図８を参照（構成については、適宜図３，図５，図７参照）して、属性ベース暗号システム１００の鍵（公開鍵、秘密鍵）の生成・配信動作について説明する。
まず、鍵生成装置１は、パラメータ入力手段１１によって、パラメータ（セキュリティパラメータ、属性情報）を外部から入力する（ステップＳ１）。なお、属性情報は、属性ベース暗号システム１００で使用する属性の数（システムの属性数Ｗ）、アクセス行列Ｍの列の最大数ｎｍａｘ、および、レンジエンコード関数の出力として取り得るノードの要素数ｕｍａｘである。
【０１２５】
そして、鍵生成装置１は、基本情報生成手段１２によって、ステップＳ１で入力されたパラメータに基づいて、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する（ステップＳ２）。なお、このステップＳ２における基本情報生成動作については、図９を参照して後で詳細に説明する。
そして、鍵生成装置１は、公開鍵生成手段１３およびマスタ鍵生成手段１４によって、ステップＳ２で生成された基本情報に基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する（ステップＳ３）。なお、このステップＳ３における公開鍵・マスタ鍵生成動作については、図１０を参照して後で詳細に説明する。
【０１２６】
そして、鍵生成装置１は、公開鍵生成手段１３によって、生成した公開鍵を公開鍵記憶手段１５に書き込み記憶し、マスタ鍵生成手段１４によって、生成したマスタ鍵をマスタ鍵記憶手段１６に書き込み記憶する。（ステップＳ４）。
その後、鍵生成装置１は、公開鍵送信手段１７によって、ステップＳ４で公開鍵記憶手段１５に記憶されている公開鍵を、暗号化装置３および復号装置５に送信（公開）する（ステップＳ５）。
【０１２７】
一方、暗号化装置３は、公開鍵受信手段３３によって、ステップＳ５で送信された公開鍵を受信し（ステップＳ６）、公開鍵記憶手段３４に書き込み記憶する（ステップＳ７）。また、復号装置５は、公開鍵受信手段５１によって、ステップＳ５で送信された公開鍵を受信し（ステップＳ８）、公開鍵記憶手段５２に書き込み記憶する（ステップＳ９）。
【０１２８】
さらに、鍵生成装置１は、以下の動作によって、個別の復号装置５を対象として属性付き秘密鍵を生成する。
すなわち、鍵生成装置１は、属性入力手段２１によって、個別の復号装置５のユーザに対する属性ペア（属性種別および属性値）を入力する（ステップＳ１０）。
【０１２９】
そして、鍵生成装置１は、属性付き秘密鍵生成手段２２の秘密鍵生成手段２２１によって、ステップＳ４で公開鍵記憶手段１５に記憶された公開鍵と、マスタ鍵記憶手段１６に記憶されたマスタ鍵と、ステップＳ１０で入力された属性ペアとに基づいて、秘密鍵を生成する（ステップＳ１１）。なお、このステップＳ１１における秘密鍵生成動作については、図１１を参照して後で詳細に説明する。
【０１３０】
さらに、鍵生成装置１は、属性付き秘密鍵生成手段２２の属性関連付け手段２２２によって、ステップＳ１１で生成された秘密鍵に、ステップＳ１０で入力された属性ペアを関連付けて、属性付き秘密鍵を生成する（ステップＳ１２）。
その後、鍵生成装置１は、属性付き秘密鍵送信手段２３によって、ステップＳ１２で生成された属性付き秘密鍵を、復号装置５に送信する（ステップＳ１３）。
【０１３１】
一方、復号装置５は、属性付き秘密鍵受信手段５３によって、ステップＳ１３で送信された属性付き秘密鍵を受信し（ステップＳ１４）、属性付き秘密鍵記憶手段５４に書き込み記憶する（ステップＳ１５）。
以上の動作により、属性ベース暗号システム１００は、鍵生成装置１によって、属性ベース暗号における鍵（公開鍵、秘密鍵）を生成し、鍵を必要とする暗号化装置３および復号装置５に送信する。
【０１３２】
（基本情報生成動作）
次に、図９を参照（構成については、適宜図３参照）して、図８のステップＳ２の動作（基本情報生成動作）について詳細に説明する。
まず、鍵生成装置１は、基本情報生成手段１２によって、セキュリティパラメータで特定される大きさ（ビット長）の素数ｐを選択し、当該素数ｐを位数（素数位数ｐ）とする巡回群Ｇ，ＧＴを選択する（ステップＳ２１）。
また、基本情報生成手段１２は、巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅを選択する（ステップＳ２２）。そして、基本情報生成手段１２は、巡回群Ｇの中からランダムに１つの生成元ｇを選択（ｇ∈Ｇ）する（ステップＳ２３）。
【０１３３】
さらに、基本情報生成手段１２は、乱数ａ，α，ｈｊ，ｘ，ｕを、Ｚｐからランダムに選択する（ステップＳ２４）。なお、基本情報生成手段１２は、乱数ｈｊ，ｘ，ｕを、すべてのｊ∈［１，ｎｍａｘ］，すべてのｘ∈［１，Ｗ］，すべてのｕ∈［１，ｕｍａｘ］に対して選択する。
以上の動作により、鍵生成装置１は、公開鍵およびマスタ鍵を生成するために用いる基本情報を生成する。
【０１３４】
（公開鍵・マスタ鍵生成動作）
次に、図１０を参照（構成については、適宜図３参照）して、図８のステップＳ３の動作（公開鍵・マスタ鍵生成動作）について詳細に説明する。
まず、鍵生成装置１は、公開鍵生成手段１３によって、基本情報生成手段１２で生成された基本情報に基づいて、ｅ（ｇ，ｇ）のα乗，ｇのａ乗およびｇのｈｊ，ｘ，ｕ乗を演算する（ステップＳ３１）。
そして、鍵生成装置１は、公開鍵生成手段１３によって、基本情報生成手段１２で生成された基本情報である素数位数ｐ、巡回群Ｇ，ＧＴ、双線形写像ｅおよび生成元ｇと、ステップＳ３１の演算結果とを含んだ公開鍵ＰＫ（前記式（５）参照）を生成する（ステップＳ３２）。
【０１３５】
さらに、鍵生成装置１は、マスタ鍵生成手段１４によって、基本情報生成手段１２で生成された基本情報である生成元ｇのα乗を演算してマスタ鍵ＭＫ（前記式（６）参照）を生成する（ステップＳ３３）。
以上の動作により、鍵生成装置１は、属性ベース暗号における公開鍵およびマスタ鍵を生成する。
【０１３６】
（秘密鍵生成動作）
次に、図１１を参照（構成については、適宜図３参照）して、図８のステップＳ１１の動作（秘密鍵生成動作）について詳細に説明する。
まず、鍵生成装置１は、秘密鍵生成手段２２１によって、アクセス行列の列の最大数ｎｍａｘ分の乱数ｔ１，…，ｔｎｍａｘをＺｐからランダムに選択する（ステップＳ４１）。
そして、秘密鍵生成手段２２１は、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇａと、マスタ鍵記憶手段１６に記憶されているマスタ鍵ＭＫ（＝ｇα）を用いて、前記式（７）の演算を行い、秘密鍵の要素となるＫを求める（ステップＳ４２）。
【０１３７】
そして、秘密鍵生成手段２２１は、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇを用いて、すべてのｉ∈［１，ｎｍａｘ］に対して、前記式（８）の演算を行い、秘密鍵の要素となるＬｉを求める（ステップＳ４３）。
さらに、秘密鍵生成手段２２１は、属性ペアＳ（＝｛（ｘ１，ｓ１），…，（ｘｋ，ｓｋ）｝において、すべてのｉ∈［１，ｋ］と、すべてのｕ∈ｆ（ｓｉ）とに対して、公開鍵記憶手段１５に記憶されている公開鍵の一部であるｇを用いて、前記式（９）の演算を行い、秘密鍵の要素となるＫｉ，ｕを求める（ステップＳ４４）。
そして、秘密鍵生成手段２２１は、ステップＳ４２〜Ｓ４４で演算された各要素で構成される前記式（１０）に示す秘密鍵ＳＫを生成する（ステップＳ４５）。
以上の動作により、鍵生成装置１は、属性ベース暗号における秘密鍵を生成する。
【０１３８】
〔データ暗号化・復号動作〕
次に、図１２を参照（構成については、適宜図５、図７参照）して、属性ベース暗号システム１００のデータの暗号化・復号動作について説明する。
まず、暗号化装置３は、ポリシー入力手段３２によって、暗号化データを復号するための条件（復号条件）となるポリシーを外部から入力する（ステップＳ５１）。なお、このポリシーは、線形秘密分散法（ＬＳＳＳ）によって予め生成されたアクセス行列Ｍと、アクセス行列Ｍの各行に対応する属性を属性種別と属性値の範囲（単一の属性値を含む）に変換する写像πとで構成される。
【０１３９】
また、暗号化装置３は、データ入力手段３１によって、暗号化の対象となるデータを外部から入力する（ステップＳ５２）。
そして、暗号化装置３は、暗号化データ生成手段３５１によって、公開鍵に基づいて、ステップＳ５１で入力されたポリシーに対応する暗号化データを生成する（ステップＳ５３）。なお、このステップＳ５３における暗号化データ生成動作については、図１３を参照して後で詳細に説明する。
【０１４０】
そして、暗号化装置３は、ポリシー関連付け手段３５２によって、ステップＳ５３で生成された暗号化データに、ステップＳ５１で入力されたポリシーを関連付けて、ポリシー付き暗号化データを生成する（ステップＳ５４）。
そして、暗号化装置３は、ポリシー付き暗号化データ送信手段３６によって、ステップＳ５４で生成されたポリシー付き暗号化データを、復号装置５に送信する（ステップＳ５５）。
【０１４１】
一方、復号装置５は、ポリシー付き暗号化データ受信手段５５によって、ステップＳ５５で送信されたポリシー付き暗号化データを受信する（ステップＳ５６）。
そして、復号装置５は、ポリシー付き暗号化データ復号手段５６のポリシー付き暗号化データ分離手段５６２によって、ステップＳ５６で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離する（ステップＳ５７）。
また、復号装置５は、属性付き秘密鍵分離手段５６１によって、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵を、属性ペアと秘密鍵とに分離する（ステップＳ５８）。
【０１４２】
そして、復号装置５は、ポリシー判定手段５６３によって、復号装置５に登録されているステップＳ５８で分離された属性ペアが、暗号化データに関連付けられているステップＳ５７で分離されたポリシーを満たすか否かを判定する（ステップＳ５９）。
ここで、属性ペアがポリシーを満たす場合（ステップＳ５９でＹｅｓ）、復号装置５は、暗号化データ復号手段５６４によって、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号し（ステップＳ６０）、元データとして外部に出力する（ステップＳ６１）。なお、ステップＳ６０における暗号化データ復号動作については、図１４を参照して後で詳細に説明する。
【０１４３】
一方、属性ペアがポリシーを満たさない場合（ステップＳ５９でＮｏ）、復号装置５は、復号動作を終了する。なお、この場合、復号装置５は、図示を省略した表示装置にエラーメッセージを表示することとしてもよい。
以上の動作により、属性ベース暗号システム１００は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定してデータを暗号化し、ユーザの属性に応じてデータを復号することができる。
【０１４４】
（暗号化データ生成動作）
次に、図１３を参照（構成については、適宜図５参照）して、図１２のステップＳ５３の動作（暗号化データ生成動作）について詳細に説明する。
まず、暗号化装置３は、暗号化データ生成手段３５１によって、ポリシーとして入力されるアクセス行列の列の数ｎ分の乱数ｓ，ｙ２，…，ｙｎを、Ｚｐｎからランダムに選択する（ステップＳ７１）。このとき、各乱数をｖ１＝ｓ，ｖ２＝ｙ２，…，ｖｎ＝ｙｎとする。
そして、暗号化データ生成手段３５１は、選択した乱数ｓ（＝ｖ１）と、公開鍵記憶手段３４に記憶されている公開鍵の一部であるｅ（ｇ，ｇ）αおよびｇとにより、前記式（１１）を演算することで、暗号化データの要素となるＣ，Ｃ′を求める（ステップＳ７２）。
【０１４５】
さらに、暗号化データ生成手段３５１は、アクセス行列をｍ行ｎ列としたときのすべてのｉ∈［１，ｍ］，ｊ∈［１，ｎ］と、すべてのｕ∈Ｆ（π（ｉ）２）とに対して、公開鍵記憶手段３４に記憶されている公開鍵の一部であるｇのａ乗とｇのｈｊ，ｘ，ｕ乗とにより、前記式（１２）の演算を行い、暗号化データの要素となるＣｉ，ｊ，ｕを求める（ステップＳ７３）。
そして、暗号化データ生成手段３５１は、ステップＳ７２〜Ｓ７３で演算された各要素で構成される前記式（１３）に示す暗号化データＣＴを生成する（ステップＳ７４）。
以上の動作により、暗号化データ生成手段３５１は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定してデータを暗号化することができる。
【０１４６】
（暗号化データ生成動作）
次に、図１４を参照（構成については、適宜図７参照）して、図１２のステップＳ６０の動作（暗号化データ復号動作）について詳細に説明する。
まず、復号装置５は、暗号化データ復号手段５６４によって、すべてのｊ∈［１，ｎｍａｘ］において、ポリシーに含まれる写像πのｊ番目の属性種別π（ｊ）１と属性ペアＳのｉｊ番目の属性種別ｘｉｊとが一致し、かつ、写像πのｊ番目の属性値の範囲π（ｊ）２に属性ペアＳのｉｊ番目の属性値ｓｉｊが含まれる前記式（１５）を満たすインデックスｉｊを選択する（ステップＳ８１）。
【０１４７】
また、復号装置５は、暗号化データ復号手段５６４によって、すべてのｊ∈［１，ｎｍａｘ］において、ポリシーに含まれる写像πのｊ番目の属性値π（ｊ）２を、暗号化装置３と同じレンジエンコード関数Ｆで符号化したノード（カバーノード）と、属性ペアＳのｉｊ番目の属性値ｓｉｊを、鍵生成装置１と同じポイントエンコード関数ｆで符号化したノードとの共通のノードｚｉを選択する（ステップＳ８２）。
【０１４８】
そして、復号装置５は、暗号化データ復号手段５６４によって、ステップＳ８１，Ｓ８２で選択されたｉｊ，ｚｊを用いて、秘密鍵および公開鍵に基づいて、前記式（１４）により、暗号化データを元のデータＤに復号する（ステップＳ８３）。
以上の動作により、暗号化データ復号手段５６４は、線形秘密分散法（ＬＳＳＳ）のアクセス行列によってポリシーを指定して暗号化されたデータを復号することができる。
【０１４９】
以上、本発明の実施形態に係る属性ベース暗号システム１００の構成および動作について説明したが、本発明は、この実施形態に限定されるものではない。
例えば、ここでは、鍵生成装置１（図３参照）の属性関連付け手段２２２は、秘密鍵と属性ペアとを連結することで、属性付き秘密鍵を生成した。しかし、属性関連付け手段２２２は、必ずしも秘密鍵と属性ペアとを連結する必要はなく、秘密鍵と属性ペアとを予め定めた固有の識別子で対応付けることとしてもよい。
その場合、例えば、属性付き秘密鍵送信手段２３は、識別子と属性ペアとを対応付けて保持しておき、秘密鍵にその識別子を付加して復号装置５に送信する。そして、属性付き秘密鍵送信手段２３は、その識別子により属性ペアを要求されたタイミングで、識別子に対応付けられている属性ペアを復号装置５に送信すればよい。
【０１５０】
同様に、暗号化装置３（図５参照）においても、ポリシー関連付け手段３５２は、必ずしも暗号化データとポリシーとを連結する必要はなく、暗号化データとポリシーとを予め定めた固有の識別子で対応付けることとしてもよい。
その場合、例えば、ポリシー付き暗号化データ送信手段３６は、識別子とポリシーとを対応付けて保持しておき、暗号化データにその識別子を付加して復号装置５に送信する。そして、ポリシー付き暗号化データ送信手段３６は、その識別子によりポリシーを要求されたタイミングで、識別子に対応付けられているポリシーを復号装置５に送信すればよい。
【０１５１】
一方、復号装置５（図７参照）は、識別子によって属性ペアと関連付けられた秘密鍵（属性付き秘密鍵）を、属性付き秘密鍵受信手段５３で受信し、属性付き秘密鍵記憶手段５４に記憶する。そして、暗号化データを復号するタイミングで、属性付き秘密鍵分離手段５６１が、その識別子に対応する属性ペアを、属性付き秘密鍵受信手段５３を介して、鍵生成装置１に要求すればよい。
【０１５２】
また、復号装置５は、識別子によってポリシーと関連付けられた暗号化データ（ポリシー付き暗号化データ）を受信する。そして、暗号化データを復号するタイミングで、ポリシー付き暗号化データ分離手段５６２が、その識別子に対応するポリシーを、ポリシー付き暗号化データ受信手段５５を介して、暗号化装置３に要求すればよい。
【０１５３】
［属性ベース暗号システムの応用例］
次に、図１５を参照して、本発明の実施形態に係る属性ベース暗号システムの応用例について説明する。
図１５は、属性ベース暗号システム１００（図１参照）を、個人情報を保護してサービスを提供する個人情報保護システムとして構成した例を示している。
ここで、個人情報とは、個人のプライバシー保護の対象となる情報であって、例えば、放送番組の視聴履歴、ユーザの嗜好等である。
【０１５４】
図１５に示す個人情報保護システム２００は、ユーザがサービス事業者の評価（信頼度等）をポリシーとして設定することで、そのポリシーを満たす属性のサービス事業者のみが、ユーザに対してサービスを提供することを可能にするシステムである。
ここでは、サービスとして、レコメンド情報（例えば、ユーザの放送番組の視聴履歴を分析した結果のユーザにお勧めの番組案内等）を提供するサービスを一例に説明する。
【０１５５】
個人情報保護システム２００は、鍵生成装置１と、暗号化装置３と、復号装置５と、データ管理装置７とを、ネットワーク（通信回線）Ｎを介して接続して構成している。
鍵生成装置１、暗号化装置３および復号装置５は、それぞれ、図３，図５，図７で説明した鍵生成装置１、暗号化装置３および復号装置５と同じものである。
データ管理装置７は、膨大なデータを蓄積管理するもので、主にデータベースと、ストレージの機能を有する一般的なクラウドサーバである。
【０１５６】
以下、個人情報保護システム２００の動作について説明する。
鍵生成装置１は、サービス事業者ごとに予め定めた評価を属性として、サービス事業者の復号装置５に送信する。
例えば、鍵生成装置１は、あるサービス事業者Ａ，Ｂ，Ｃに対する属性ペアＳＡ，ＳＢ，ＳＣを、それぞれ以下のように設定して、サービス事業者Ａ，Ｂ，Ｃのそれぞれの復号装置５に送信する。
【０１５７】
ＳＡ＝｛（‘プライバシーマーク’，あり），（‘ユーザ評価’，５）｝
ＳＢ＝｛（‘プライバシーマーク’，あり），（‘ユーザ評価’，２）｝
ＳＣ＝｛（‘プライバシーマーク’，あり），（‘ユーザ評価’，３）｝
【０１５８】
なお、ここで、プライバシーマークは、個人情報について適切な保護措置を講ずる体制を整備している事業者等を認定するものとして一般的に用いられる属性である。すなわち、この属性値が「あり」であれば、そのサービス事業者は、個人情報について適切な保護措置を講ずる体制を整備している事業者ということになる。
また、ここで、ユーザ評価は、サービス事業者に対する評価（信頼度等）を示す属性種別であって、５段階（１〜５）の属性値（評価値）を有することとする。なお、この属性値は、その値が大きいほど、高評価であることを示す。
【０１５９】
暗号化装置３は、例えば、図示を省略したテレビ受信機等に備えられ、ユーザの視聴履歴等の個人情報を暗号化対象のデータとする。
また、暗号化装置３は、ユーザがサービスの提供を許可するサービス事業者の評価（評価値）をポリシーとして設定する。例えば、ユーザは、レコメンド情報の提供を許可するサービス事業者の評価を“３”〜“５”の範囲とする場合、ユーザ評価を［３，５］のように範囲指定する。すなわち、暗号化装置３は、ポリシーを以下のように設定する。
（‘プライバシーマーク’＝あり）∧（‘ユーザ評価’∈［３，５］）
そして、暗号化装置３は、個人情報を暗号化した暗号化個人情報にポリシーを関連付けて、データ管理装置７に送信する。
【０１６０】
復号装置５は、例えば、図示を省略したサービス提供装置等に備えられ、データ管理装置７から暗号化個人情報（ポリシー付き）を取得する。このとき、復号装置５は、自身の属性がポリシーを満たす場合のみ、個人情報を復号することができる。
例えば、復号装置５は、自身に設定された属性ペアが、前記ＳＡ＝｛（‘プライバシーマーク’，あり），（‘ユーザ評価’，５）｝であれば、個人情報を復号することができるが、前記ＳＢ＝｛（‘プライバシーマーク’，あり），（‘ユーザ評価’，２）｝であれば、個人情報を復号することができない。
そして、サービス提供装置（不図示）は、復号装置５で復号された個人情報（視聴履歴等）を解析し、お勧め番組等のレコメンド情報をユーザのテレビ受信機（不図示）に送信する。
このように、ユーザは、希望するサービス事業者のみから、サービス（レコメンド情報）の提供を受けることができる。
【０１６１】
以上説明した個人情報保護システム２００によれば、暗号化装置３においてデータ（ここでは個人情報）を暗号化する際に、ユーザがポリシーを設定してクラウドサーバ（データ管理装置７）に保存することにより、膨大な個人情報をサービス事業者の属性に応じて適切にアクセス管理することが可能になる。また、サービス事業者は、自身の評価に応じて、これまでアクセスできなかった個人情報にアクセスすることができるようになるため、顧客の新規開拓が可能になる。
【符号の説明】
【０１６２】
１００  属性ベース暗号システム
２００  個人情報保護システム
１      鍵生成装置
１１    パラメータ入力手段
１２    基本情報生成装置
１３    公開鍵生成手段
１４    マスタ鍵生成手段
１５    公開鍵記憶手段
１６    マスタ鍵記憶手段
１７    公開鍵送信手段
２１    属性入力手段
２２    属性付き秘密鍵生成手段
２２１  秘密鍵生成手段
２２２  属性関連付け手段
２３    属性付き秘密鍵送信手段
３      暗号化装置
３１    データ入力手段
３２    ポリシー入力手段
３３    公開鍵受信手段
３４    公開鍵記憶手段
３５    ポリシー付き暗号化データ生成手段
３５１  暗号化データ生成手段
３５２  ポリシー関連付け手段
３６    ポリシー付き暗号化データ送信手段
５      復号手段
５１    公開鍵受信手段
５２    公開鍵記憶手段
５３    属性付き秘密鍵受信手段
５４    属性付き秘密鍵記憶手段
５５    ポリシー付き暗号化データ受信手段
５６    ポリシー付き暗号化データ復号手段
５６１  属性付き秘密鍵分離手段
５６２  ポリシー付き暗号化データ分離手段
５６３  ポリシー判定手段
５６４  暗号化データ復号手段
７      データ管理装置
【図１】
0006384149.tif 000043
【図２】
0006384149.tif 000044
【図３】
0006384149.tif 000045
【図４】
0006384149.tif 000046
【図５】
0006384149.tif 000047
【図６】
0006384149.tif 000048
【図７】
0006384149.tif 000049
【図８】
0006384149.tif 000050
【図９】
0006384149.tif 000051
【図１０】
0006384149.tif 000052
【図１１】
0006384149.tif 000053
【図１２】
0006384149.tif 000054
【図１３】
0006384149.tif 000055
【図１４】
0006384149.tif 000056
【図１５】
0006384149.tif 000057