(57)【要約】【課題】属性の一部にワイルドカードを許容して属性ベース暗号を行うことが可能な属性ベース暗号システムを提供する。【解決手段】属性ベース暗号システムＳは、ワイルドカードを使用する属性とワイルドカードを使用しない属性とに属性を分けて公開鍵および属性付き秘密鍵を生成する鍵生成装置１と、ワイルドカードを使用するポリシーとワイルドカードを使用しないポリシーとを分けて設定し、公開鍵を用いて暗号化対象データからポリシー付き暗号化データを生成する暗号化装置３と、属性付き秘密鍵を用いてポリシー付き暗号化データを元のデータに復号する復号装置５と、を備える。【選択図】図１
2015018057.tif 000002
【特許請求の範囲】
【請求項１】
属性ベース暗号方式の公開鍵および秘密鍵を生成する鍵生成装置であって、
属性の取り得る属性値の中で任意の属性値を復号条件として許可するワイルドカードを使用する属性の数をｎ∩、前記ワイルドカードを使用する属性の属性値の数をｎ∩ｉ（∀ｉ∈［ｎ∩］）、前記ワイルドカードを使用しない属性の数をｎ∪、前記ワイルドカードを使用しない属性の属性値の数をｎ∪ｉ（∀ｉ∈［ｎ∪］）としたとき、
前記それぞれの数ｎ∩，ｎ∩ｉ（∀ｉ∈［ｎ∩］），ｎ∪，ｎ∪ｉ（∀ｉ∈［ｎ∪］）と、素数位数ｐの巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、乱数ｗ（ｗ∈Ｚｐ＊）とにより、関数値Ｙ＝ｅ（ｇ，ｇ）ｗを演算し、前記素数位数ｐ、前記巡回群Ｇ，ＧＴ、前記双線形写像ｅ、前記生成元ｇ、前記関数値Ｙ、乱数Ａｉ，ｊ（Ａｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∩］，∀ｊ∈［ｎ∩ｉ］）および乱数Ｔｉ，ｊ（Ｔｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∪］，∀ｊ∈［ｎ∪ｉ］）を公開鍵として生成する公開鍵生成手段と、
前記ワイルドカードを使用する属性の属性値としてユーザに付与するユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）と、前記ワイルドカードを使用しない属性の属性値として前記ユーザに付与するユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）とを入力する属性入力手段と、
前記公開鍵を用いて、前記属性入力手段で入力されたユーザ属性値から前記ユーザの秘密鍵を生成する属性付き秘密鍵生成手段と、を備え、
前記属性付き秘密鍵生成手段は、
前記公開鍵生成手段が前記公開鍵を生成する際に用いた乱数ｗをマスタ鍵として、乱数ξ（ξ∈Ｚｐ＊）と、乱数ｓｉ（ｓｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）とから、前記生成元ｇのべき乗値Ｄを、
【数１】
2015018057.tif 000026
により演算し、前記属性入力手段で入力された前記ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉと、乱数λｉ（λｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）と、前記乱数ｓｉと、前記乱数Ａｉ，ｊと、前記生成元ｇとから、前記ワイルドカードを使用する属性に対応する秘密鍵Ｄｉ，０，Ｄｉ，１（∀ｉ∈［ｎ∩］）を、
【数２】
2015018057.tif 000027
により演算して生成するワイルドカード使用属性秘密鍵生成手段と、
前記属性入力手段で入力された前記ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉと、乱数ｕ（ｕ∈Ｚｐ＊）と、前記乱数ξと、前記乱数Ｔｉ，ｊと、前記生成元ｇとから、前記ワイルドカードを使用しない属性に対応する秘密鍵Ｄ１′，Ｄ２′を、
【数３】
2015018057.tif 000028
により演算して生成するワイルドカード未使用属性秘密鍵生成手段と、
前記ワイルドカード使用属性秘密鍵生成手段で生成された秘密鍵と、前記ワイルドカード未使用属性秘密鍵生成手段で生成された秘密鍵とを紐付ける秘密鍵紐付け情報Ｄ０′を、
【数４】
2015018057.tif 000029
により演算して生成する秘密鍵紐付け手段と、
前記生成したＤ０′，Ｄｉ，１（∀ｉ∈［ｎ∩］），Ｄ２′に、前記ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）と、前記ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）とを付加して、属性付き秘密鍵を生成する属性付加手段と、
を備えることを特徴とする鍵生成装置。
【請求項２】
請求項１に記載の鍵生成装置で生成された公開鍵を用いて、属性ベース暗号方式によりデータを暗号化する暗号化装置であって、
属性の取り得る属性値の中で任意の属性値を復号条件として許可するワイルドカードを使用する属性の数をｎ∩、前記ワイルドカードを使用しない属性の数をｎ∪としたとき、
前記データを入力するデータ入力手段と、
復号条件となる属性の属性値を示すポリシーとして、ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）と、前記ワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）とを入力するポリシー入力手段と、
このポリシー入力手段で入力された前記ワイルドカードを使用するポリシーＷ∩ｉと、前記ワイルドカードを使用しないポリシーＷ∪ｉと、前記データ入力手段で入力されたデータＭと、乱数ｒ（ｒ∈Ｚｐ＊）と、前記公開鍵とにより、暗号化データＣ１，Ｃ２，Ｃ３およびＣｉ，ｊ（∀ｉ∈［ｎ∩］，∀ｊ∈Ｗ∩ｉ）を、
【数５】
2015018057.tif 000030
により演算して生成し、前記ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）と、前記ワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）とを付加して、ポリシー付き暗号化データを生成するポリシー付き暗号化データ生成手段と、
を備えることを特徴とする暗号化装置。
【請求項３】
請求項１に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項２に記載の暗号化装置で暗号化されたポリシー付き暗号化データを復号する属性ベース暗号方式の復号装置であって、
属性の取り得る属性値の中で任意の属性値を復号条件として許可するワイルドカードを使用する属性の数をｎ∩、前記ワイルドカードを使用しない属性の数をｎ∪としたとき、
前記属性付き秘密鍵を、前記ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）および前記ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）と、秘密鍵であるＤ０′，Ｄｉ，１（∀ｉ∈［ｎ∩］），Ｄ２′とに分離する属性付き秘密鍵分離手段と、
前記ポリシー付き暗号化データを、前記ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）および前記ワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）と、暗号化データであるＣ１，Ｃ２，Ｃ３，Ｃｉ，ｊ（∀ｉ∈［ｎ∩］，∀ｊ∈Ｗ∩ｉ）とに分離するポリシー付き暗号化データ分離手段と、
前記ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉが前記ワイルドカードを使用するポリシーＷ∩ｉに含まれ、かつ、前記ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉが前記ワイルドカードを使用しないポリシーＷ∪ｉと一致するか否かにより、ユーザの属性がポリシーを満たすか否かを判定するポリシー判定手段と、
このポリシー判定手段でユーザの属性がポリシーを満たすと判定された場合に、前記暗号化データから、元のデータＭを、
【数６】
2015018057.tif 000031
により生成する暗号化データ復号手段と、
を備えることを特徴とする復号装置。
【請求項４】
属性ベース暗号方式の公開鍵および秘密鍵を生成する鍵生成装置であって、
属性の取り得る属性値の中で任意の属性値を復号条件として許可するワイルドカードを使用する属性と、前記ワイルドカードを使用しない属性とに対して、前記ワイルドカードを使用する属性の数の乱数と、前記ワイルドカードを使用しない属性の数の乱数とを含んだ属性ベース暗号の公開鍵を生成する公開鍵生成手段と、
前記ワイルドカードを使用する属性の属性値としてユーザに付与するユーザ属性値と、前記ワイルドカードを使用しない属性の属性値として前記ユーザに付与するユーザ属性値とを入力する属性入力手段と、
前記公開鍵を用いて、前記属性入力手段で入力されたユーザ属性値から前記ユーザの秘密鍵を生成する属性付き秘密鍵生成手段と、を備え、
前記属性付き秘密鍵生成手段は、
前記ワイルドカードを使用する属性の数の乱数から、前記ワイルドカードを使用する属性に対応する秘密鍵となるワイルドカード使用属性秘密鍵を生成するワイルドカード使用属性秘密鍵生成手段と、
前記ワイルドカードを使用しない属性の数の乱数から、前記ワイルドカードを使用しない属性に対応する秘密鍵となるワイルドカード未使用属性秘密鍵を生成するワイルドカード未使用属性秘密鍵生成手段と、
前記ワイルドカード使用属性秘密鍵の一部と、前記ワイルドカード未使用属性秘密鍵の一部とを予め定めた演算式で演算し、前記ワイルドカード使用属性秘密鍵と前記ワイルドカード未使用属性秘密鍵とを紐付けた秘密鍵紐付け情報を生成する秘密鍵紐付け手段と、
前記ワイルドカード使用属性秘密鍵および前記ワイルドカード未使用属性秘密鍵から、前記秘密鍵紐付け情報を生成する際に用いた一部を除いた秘密鍵と、前記秘密鍵紐付け情報とに、前記ワイルドカードを使用する属性のユーザ属性値と、前記ワイルドカードを使用しない属性のユーザ属性値とを付加して、属性付き秘密鍵を生成する属性付加手段と、
を備えることを特徴とする鍵生成装置。
【請求項５】
請求項４に記載の鍵生成装置で生成された公開鍵を用いて、属性ベース暗号方式によりデータを暗号化する暗号化装置であって、
前記データを入力するデータ入力手段と、
復号条件となる属性の属性値を示すポリシーとして、ワイルドカードを使用するポリシーと、前記ワイルドカードを使用しないポリシーとを入力するポリシー入力手段と、
前記公開鍵に含まれている前記ワイルドカードを使用する属性に対応する乱数に含まれている前記ワイルドカードを使用するポリシーに対応する乱数と、前記ワイルドカードを使用しないポリシーに対応する乱数とを用いて前記データを暗号化するとともに、前記ワイルドカードを使用するポリシーと、前記ワイルドカードを使用しないポリシーとを付加して、ポリシー付き暗号化データを生成するポリシー付き暗号化データ生成手段と、
を備えることを特徴とする暗号化装置。
【請求項６】
請求項４に記載の鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、請求項５に記載の暗号化装置で暗号化されたポリシー付き暗号化データを復号する属性ベース暗号方式の復号装置であって、
前記属性付き秘密鍵を、ワイルドカードを使用する属性のユーザ属性値および前記ワイルドカードを使用しない属性のユーザ属性値と、秘密鍵とに分離する属性付き秘密鍵分離手段と、
前記ポリシー付き暗号化データを、前記ワイルドカードを使用するポリシーおよび前記ワイルドカードを使用しないポリシーと、暗号化データとに分離するポリシー付き暗号化データ分離手段と、
前記ワイルドカードを使用する属性のユーザ属性値が前記ワイルドカードを使用するポリシーに含まれ、かつ、前記ワイルドカードを使用しない属性のユーザ属性値が前記ワイルドカードを使用しないポリシーと一致するか否かにより、ユーザの属性がポリシーを満たすか否かを判定するポリシー判定手段と、
このポリシー判定手段でユーザの属性がポリシーを満たすと判定された場合に、前記秘密鍵によって、前記暗号化データから元のデータＭを生成する暗号化データ復号手段と、
を備えることを特徴とする復号装置。
【請求項７】
コンピュータを、請求項１または請求項４に記載の鍵生成装置として機能させるための鍵生成プログラム。
【請求項８】
コンピュータを、請求項２または請求項５に記載の暗号化装置として機能させるための暗号化プログラム。
【請求項９】
コンピュータを、請求項３または請求項６に記載の復号装置として機能させるための復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの属性情報を利用して、データの暗号化および復号を行うための鍵生成装置、暗号化装置および復号装置、ならびに、それらのプログラムに関する。
【背景技術】
【０００２】
近年、秘密鍵や暗号文にユーザの属性（居住地、性別等）を関連付け、復号条件（ポリシー）を満たすユーザのみが暗号文を復号可能な暗号方式である属性ベース暗号（ＡＢＥ：Attribute-Based Encryption）に関して種々の方式が提案されている。
【０００３】
この属性ベース暗号には、大きく２つの方式が存在する。第１の方式は、属性に基づいてデータを暗号化し、ポリシーに基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な鍵ポリシー属性ベース暗号（ＫＰ−ＡＢＥ：Key-Policy Attribute-Based Encryption）である。第２の方式は、ポリシーに基づいてデータを暗号化し、属性に基づいて発行された秘密鍵を有するユーザのみが暗号文を復号することが可能な暗号文ポリシー属性ベース暗号（ＣＰ−ＡＢＥ：Ciphertext-Policy Attribute-Based Encryption）である。
このような属性ベース暗号は、１つの暗号文を復号することができるユーザを複数存在させることができるため、ファイル共有システムのアクセス制御、コンテンツ配信サービス等への応用が期待されている。
【０００４】
以下、本発明が対象とするＣＰ−ＡＢＥに関連する従来技術について説明する。
ＣＰ−ＡＢＥは、これまでにいくつかの方式が提案されている。例えば、非特許文献１には、ポリシーをＡＮＤ，ＯＲを含む木構造により汎用的に表現するＣＰ−ＡＢＥが提案されている。この方式は、ポリシーを記述する範囲は広いが、従来の公開鍵暗号に比べて暗号化や復号の処理負荷が大きいという問題があった。
【０００５】
これに対し、非特許文献２には、ポリシーを木構造ではなく、ＡＮＤおよび“属性あり／属性なし／どちらでも可”のみで表現されるシンプルな構造にすることで、非特許文献１の方式よりも暗号化や復号の処理負荷を小さくしたＣＰ−ＡＢＥが提案されている。
【０００６】
また、非特許文献３には、非特許文献２の方式を拡張し、ポリシーをＡＮＤおよび任意の属性値を含む属性集合のサブセットで表現するとともに、ポリシーを秘匿したまま暗号文を復号することが可能なＣＰ−ＡＢＥが提案されている。
これら非特許文献２および非特許文献３の方式は、ポリシーの記述をＡＮＤのみに限定することで、属性ベース暗号全体の効率化を図っている。また、どちらの方式も、ワイルドカード（Wildcard）の機能、すなわち、「任意の属性値で復号可能」という条件を指定する機能が備わっている。
【０００７】
これに対し、非特許文献４には、ワイルドカードの機能を削減することで、非特許文献２および非特許文献３の方式よりもさらに暗号化や復号の処理負荷を小さくした効率的なＣＰ−ＡＢＥが提案されている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】J. Bethencourt, A. Sahai and B. Waters, “Ciphertext-Policy Attribute-Based Encryption,” Proc. of the 2007 IEEE Symposium on Security and Privacy, pp. 321-334, 2007.
【非特許文献２】L. Cheung and C. Newport, “Provably Secure Ciphertext Policy ABE,”Proc. of ACMCCS’07, pp. 456-465, 2007.
【非特許文献３】T. Nishide, K. Yoneyama and K. Ohta, “Attribute-Based Encryption with Partially Hidden Encryptor-Specified Access Structures,” Proc. of ACNS'08, LNCS 5037, pp. 111-129, 2008.
【非特許文献４】K. Emura, A. Miyaji, A. Nomura, K. Omote and M. Soshi, “A Ciphertext-Policy Attribute-Based Encryption Scheme with Constant Ciphertext Length,” Proc. of ISPEC'09, LNCS 5451, pp. 13-23, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献２および非特許文献３で提案されているワイルドカードの機能を有するＣＰ−ＡＢＥを用いてシステムを構築した場合、「任意の属性値で復号可能」というポリシーを設定する必要があるサービスには有効であるが、そのようなポリシー設定が不要なサービス、すなわち、特定の属性値でのみで復号可能なポリシー設定でサービスを提供する場合、機能的に冗長であり、その分、復号の処理負荷が大きくなるという問題がある。
【００１０】
一方、非特許文献４で提案されているワイルドカードの機能を削除したＣＰ−ＡＢＥを用いてシステムを構築した場合、復号の処理負荷は小さくなるが、「任意の属性値で復号可能」というポリシーを設定する必要があるサービスを提供することができないという問題がある。
【００１１】
本発明は、このような問題に鑑みてなされたもので、属性を、ワイルドカードの機能を用いる属性（ワイルドカードを使用する属性）と、ワイルドカードの機能を用いない属性（ワイルドカードを使用しない属性）とに分割して、両方の機能を有効とするとともに、復号処理の負荷を抑えた属性ベース暗号システムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するため、本発明に係る鍵生成装置は、公開鍵生成手段と、属性入力手段と、属性付き秘密鍵生成手段と、を備え、属性付き秘密鍵生成手段が、ワイルドカード使用属性秘密鍵生成手段と、ワイルドカード未使用属性秘密鍵生成手段と、秘密鍵紐付け手段と、属性付加手段と、を備える構成とした。
【００１３】
かかる構成において、鍵生成装置は、ワイルドカードを使用する属性の数をｎ∩、ワイルドカードを使用する属性の属性値の数をｎ∩ｉ（∀ｉ∈［ｎ∩］）、ワイルドカードを使用しない属性の数をｎ∪、ワイルドカードを使用しない属性の属性値の数をｎ∪ｉ（∀ｉ∈［ｎ∪］）としたとき、公開鍵生成手段によって、それぞれの数ｎ∩，ｎ∩ｉ（∀ｉ∈［ｎ∩］），ｎ∪，ｎ∪ｉ（∀ｉ∈［ｎ∪］）と、素数位数ｐの巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅと、生成元ｇ（ｇ∈Ｇ）と、乱数ｗ（ｗ∈Ｚｐ＊）とにより、関数値Ｙ＝ｅ（ｇ，ｇ）ｗを演算し、素数位数ｐ、巡回群Ｇ，ＧＴ、双線形写像ｅ、生成元ｇ、関数値Ｙ、ワイルドカードを使用する属性の属性値の取り得る数分の乱数Ａｉ，ｊ（Ａｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∩］，∀ｊ∈［ｎ∩ｉ］）、および、ワイルドカードを使用しない属性の属性値の取り得る数分の乱数Ｔｉ，ｊ（Ｔｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∪］，∀ｊ∈［ｎ∪ｉ］）を公開鍵として生成する。
ここで、属性とは、暗号データを復号するユーザ（復号装置）を特定するための種々の情報であって、例えば、ユーザの居住地、性別等である。また、ワイルドカードを使用する属性とは、属性の取り得る属性値の中で任意の属性値を復号条件として許可する属性である。また、ワイルドカードを使用しない属性とは、属性の取り得る属性値の中で特定の属性値を復号条件として許可する属性である。
【００１４】
また、鍵生成装置は、属性入力手段によって、ワイルドカードを使用する属性の属性値としてユーザに付与するユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）と、ワイルドカードを使用しない属性の属性値としてユーザに付与するユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）とを入力する。これによって、個々のユーザ（復号装置）の属性が、ワイルドカードを使用する属性と、ワイルドカードを使用しない属性とに分けて設定されることになる。
そして、鍵生成装置は、属性付き秘密鍵生成手段のワイルドカード使用属性秘密鍵生成手段によって、公開鍵生成手段が公開鍵を生成する際に用いた乱数ｗをマスタ鍵として、乱数ξ（ξ∈Ｚｐ＊）と、ワイルドカードを使用する属性の数分の乱数ｓｉ（ｓｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）とから、生成元ｇのべき乗値Ｄを、
【数１】
2015018057.tif 000003
により演算する。
【００１５】
また、鍵生成装置は、ワイルドカード使用属性秘密鍵生成手段によって、属性入力手段で入力されたワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉと、乱数λｉ（λｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）と、乱数ｓｉと、乱数Ａｉ，ｊと、生成元ｇとから、ワイルドカードを使用する属性に対応する秘密鍵Ｄｉ，０，Ｄｉ，１（∀ｉ∈［ｎ∩］）を、
【数２】
2015018057.tif 000004
により演算する。このＤおよび｛Ｄｉ，０，Ｄｉ，１｝が、ワイルドカードを使用する属性に対する秘密鍵に相当する。
【００１６】
また、鍵生成装置は、属性付き秘密鍵生成手段のワイルドカード未使用属性秘密鍵生成手段によって、属性入力手段で入力されたワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉと、乱数ｕ（ｕ∈Ｚｐ＊）と、乱数ξと、乱数Ｔｉ，ｊと、生成元ｇとから、ワイルドカードを使用しない属性に対応する秘密鍵Ｄ１′，Ｄ２′を、
【数３】
2015018057.tif 000005
により演算する。
【００１７】
さらに、鍵生成装置は、属性付き秘密鍵生成手段の秘密鍵紐付け手段によって、ワイルドカード使用属性秘密鍵生成手段で生成された秘密鍵と、ワイルドカード未使用属性秘密鍵生成手段で生成された秘密鍵とを紐付ける秘密鍵紐付け情報Ｄ０′を、
【数４】
2015018057.tif 000006
により演算する。
これによって、ワイルドカードを使用するユーザ属性に対応する秘密鍵と、ワイルドカードを使用しないユーザ属性に対応する秘密鍵とが、秘密の情報である乱数ξによって、紐付けられることになる。
【００１８】
そして、鍵生成装置は、属性付き秘密鍵生成手段の属性付加手段によって、生成したＤ０′，Ｄｉ，１（∀ｉ∈［ｎ∩］），Ｄ２′に、ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）と、ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）とを付加して、属性付き秘密鍵を生成する。
【００１９】
また、本発明に係る暗号化装置は、鍵生成装置で生成された公開鍵を用いて、属性ベース暗号方式によりデータを暗号化する暗号化装置であって、データ入力手段と、ポリシー入力手段と、ポリシー付き暗号化データ生成手段と、を備える。
【００２０】
かかる構成において、暗号化装置は、データ入力手段によって、暗号化対象のデータを入力する。
そして、暗号化装置は、ワイルドカードを使用する属性の数をｎ∩、ワイルドカードを使用しない属性の数をｎ∪としたとき、ポリシー入力手段によって、ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）と、ワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）とを入力する。
これによって、個々のユーザ（復号装置）のポリシーが、ワイルドカードを使用するポリシーと、ワイルドカードを使用しないポリシーとに分けて設定されることになる。
なお、ポリシーとは、暗号化データを復号するための復号条件となる属性の属性値である。
【００２１】
そして、暗号化装置は、ポリシー付き暗号化データ生成手段によって、ポリシー入力手段で入力されたワイルドカードを使用するポリシーＷ∩ｉと、ワイルドカードを使用しないポリシーＷ∪ｉと、データ入力手段で入力されたデータＭと、乱数ｒ（ｒ∈Ｚｐ＊）と、公開鍵とにより、暗号化データＣ１，Ｃ２，Ｃ３およびＣｉ，ｊ（∀ｉ∈［ｎ∩］，∀ｊ∈Ｗ∩ｉ）を、
【数５】
2015018057.tif 000007
により演算して生成する。
これによって、ワイルドカードを使用しない属性に関連する暗号化データＣ３と、ワイルドカードを使用する属性に関連する暗号化データＣｉ，ｊとに対して、暗号化データＣ１，Ｃ２が共通に生成されることになる。
【００２２】
さらに、暗号化装置は、ポリシー付き暗号化データ生成手段によって、Ｃ１，Ｃ２，Ｃ３，Ｃｉ，ｊ（∀ｉ∈［ｎ∩］，∀ｊ∈Ｗ∩ｉ）に、ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）と、ワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）とを付加して、ポリシー付き暗号化データを生成する。
【００２３】
また、本発明に係る復号装置は、鍵生成装置で生成された公開鍵および属性付き秘密鍵を用いて、暗号化装置で暗号化されたポリシー付き暗号化データを復号する属性ベース暗号方式の復号装置であって、属性付き秘密鍵分離手段と、ポリシー付き暗号化データ分離手段と、ポリシー判定手段と、暗号化データ復号手段と、を備える構成とした。
【００２４】
かかる構成において、復号装置は、ワイルドカードを使用する属性の数をｎ∩、ワイルドカードを使用しない属性の数をｎ∪としたとき、属性付き秘密鍵分離手段によって、属性付き秘密鍵を、ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）およびワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）と、秘密鍵であるＤ０′，Ｄｉ，１（∀ｉ∈［ｎ∩］），Ｄ２′とに分離する。
また、復号装置は、ポリシー付き暗号化データ分離手段によって、ポリシー付き暗号化データを、ワイルドカードを使用するポリシーＷ∩ｉ（∀ｉ∈［ｎ∩］）およびワイルドカードを使用しないポリシーＷ∪ｉ（∀ｉ∈［ｎ∪］）と、暗号化データであるＣ１，Ｃ２，Ｃ３，Ｃｉ，ｊ（∀ｉ∈［ｎ∩］，∀ｊ∈Ｗ∩ｉ）とに分離する。
【００２５】
そして、復号装置は、ポリシー判定手段によって、ワイルドカードを使用する属性のユーザ属性値Ｌ∩ｉがワイルドカードを使用するポリシーＷ∩ｉに含まれ、かつ、ワイルドカードを使用しない属性のユーザ属性値Ｌ∪ｉがワイルドカードを使用しないポリシーＷ∪ｉと一致するか否かにより、ユーザの属性がポリシーを満たすか否かを判定する。
【００２６】
そして、復号装置は、暗号化データ復号手段によって、ポリシー判定手段でユーザの属性がポリシーを満たすと判定された場合に、暗号化データから、元のデータＭを、
【数６】
2015018057.tif 000008
により生成する。
【発明の効果】
【００２７】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、属性を、ワイルドカードを使用する属性と、ワイルドカードを使用しない属性とに分けて、両方の機能を併せた属性ベース暗号方式を実現することができる。
【００２８】
また、本発明に係る鍵生成装置は、属性付き秘密鍵生成手段によって、ワイルドカードを使用する属性に対応する秘密鍵と、ワイルドカードを使用しない属性に対応する秘密鍵とが、秘密の情報である乱数（ξ）によって紐付けられる。これによって、本発明は、ワイルドカードを使用する属性に対応する秘密鍵と、ワイルドカードを使用しない属性に対応する秘密鍵とを結託させた場合でも、暗号化データを復号するための秘密鍵を生成することができず、結託攻撃を防止することができる。
【００２９】
また、本発明に係る暗号化装置は、ワイルドカードを使用する属性とワイルドカードを使用しない属性とに対して、共通の乱数（ｒ）を用いることで、個別に暗号化データを生成する場合に比べて、暗号化データのサイズを削減することができる。
【００３０】
また、本発明に係る復号装置は、従来のような木構造による複雑なポリシー記述を行わずに、ポリシーを、ワイルドカードを使用するポリシーと、ワイルドカードを使用しないポリシーとに単純に分けているため、復号処理による負荷を軽減することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態に係る属性ベース暗号システムの構成を示すシステム構成図である。
【図２】本発明の実施形態に係る鍵生成装置の構成を示すブロック構成図である。
【図３】図２の属性付き秘密鍵生成手段の構成を示すブロック構成図である。
【図４】本発明の実施形態に係る暗号化装置の構成を示すブロック構成図である。
【図５】本発明の実施形態に係る復号装置の構成を示すブロック構成図である。
【図６】本発明の実施形態に係る属性ベース暗号システムにおける鍵生成および鍵配信の動作を示すフローチャートである。
【図７】図６の動作において、公開鍵を生成する動作（公開鍵生成アルゴリズム）を詳細に示すフローチャートである。
【図８】図６の動作において、属性付き秘密鍵を生成する動作（秘密鍵生成アルゴリズム）を詳細に示すフローチャートである。
【図９】本発明の実施形態に係る属性ベース暗号システムにおけるデータの暗号化および復号の動作を示すフローチャートである。
【図１０】図９の動作において、ポリシー付き暗号化データを生成する動作（暗号化アルゴリズム）を詳細に示すフローチャートである。
【図１１】図９の動作において、ポリシー付き暗号化データを復号する動作（復号アルゴリズム）を詳細に示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、本発明の実施形態について図面を参照して説明する。
［属性ベース暗号システムの構成］
まず、図１を参照して、本発明の実施形態に係る属性ベース暗号システムＳの構成について説明する。
属性ベース暗号システムＳは、復号条件となる属性の属性値を示すポリシーに基づいてデータを暗号化し、ユーザ（受信者）の属性の属性値（ユーザ属性値）が、ポリシーに適合した場合だけ、暗号化データを復号することができるシステムである。
【００３３】
この属性ベース暗号システムＳは、属性を、属性の取り得る属性値の中で任意の属性値を復号条件として許可するワイルドカードを使用する属性と、属性の取り得る属性値の中で特定の属性値を復号条件として許可するワイルドカードを使用しない属性とに分けて、暗号化および復号を行う。
【００３４】
ここでは、属性ベース暗号システムＳは、鍵生成装置１と、暗号化装置３と、復号装置５と、をネットワーク（通信回線）Ｎを介して接続して構成している。なお、ここでは、説明を簡略化するため、暗号化装置３および復号装置５を１台ずつ図示しているが、これらは、ネットワークＮに複数接続することとしてもよい。
【００３５】
鍵生成装置１は、属性ベース暗号によりデータを暗号化するための公開鍵を生成するとともに、暗号化データを復号するためのユーザ（復号装置５）固有の秘密鍵を生成するものである。公開鍵はネットワークＮを介して公開される情報である。また、秘密鍵は、暗号化データを復号する復号装置５に秘密情報として送信される情報である。
なお、ここでは、鍵生成装置１は、秘密鍵にユーザ属性値を付加し、属性付き秘密鍵として、復号装置５に送信する。このとき、鍵生成装置１は、ワイルドカードを使用する属性に対応するユーザ属性値と、ワイルドカードを使用しない属性に対応するユーザ属性値とを区別して付加する。
【００３６】
暗号化装置３は、属性ベース暗号により、データを暗号化するものである。なお、ここでは、暗号化装置３は、暗号化データにポリシーを付加し、ポリシー付き暗号化データとして、復号装置５に送信する。このとき、暗号化装置３は、ワイルドカードを使用する属性に対応するポリシーと、ワイルドカードを使用しない属性に対応するポリシーとを区分して付加する。
【００３７】
復号装置５は、属性ベース暗号により暗号化装置３において生成されたポリシー付き暗号化データを元のデータに復号するものである。
この復号装置５は、暗号化装置３で生成されたポリシー付き暗号化データで特定されるポリシー（復号条件）が、鍵生成装置１で生成される属性付き秘密鍵で特定されるユーザ属性値に適合する場合のみ復号を行う。
【００３８】
〔属性およびポリシーについて〕
以下、属性ベース暗号システムＳの各構成について説明する前に、属性ベース暗号システムＳで使用する属性およびポリシーについて、具体例を挙げて説明する。
属性は、ユーザを区分するための個別情報である。例えば、居住地、会員種別、契約情報等である。
この属性は、属性内容を特定する値（属性値）で区分される。例えば、ユーザの日本国における「居住地」を属性とする場合、その属性は、｛北海道，青森県，…，沖縄県｝といった４７都道府県を識別する｛１，２，…，４７｝の属性値によって区分することができる。
【００３９】
また、例えば、ユーザの会員の種類を示す「会員種別」を属性とする場合、その属性は、｛通常会員，プレミアム会員｝を識別する｛１，２｝の属性値によって区分することができる。また、例えば、ユーザの契約状態を示す「契約情報」を属性とする場合、その属性は、｛支払者，未払者｝といった状態を識別する｛１，２｝の属性値によって区分することができる。
【００４０】
ここで、属性が「居住地」の場合、ユーザを特定の地域で区分したい場合がある。例えば、送信者（暗号化装置３）が、ある地方（例えば、関東地方）のユーザ（受信者；復号装置５）を対象としてデータを送信したい場合、その地方の「居住地」の属性値を有するユーザしか、暗号化データを復号することができないようにしなければならない。
その場合、「居住地」属性については、ある地方（例えば、関東地方）の属性値を有するユーザであれば、すなわち、ある地方の範囲内の任意の属性値を有するユーザであれば、復号の許可を与えることができるワイルドカードの機能を有することが好ましい。
【００４１】
一方、属性が「会員種別」や「契約情報」のように、ユーザをある属性で限定したい場合がある。例えば、プレミアム会員限定でデータを送信したい、あるいは、契約を行った支払者限定でデータを送信したい場合、その限定した属性値を有するユーザしか、暗号化データを復号することができないようにしなければならない。その場合は、ワイルドカードの機能は必要ではない。
【００４２】
そこで、属性ベース暗号システムＳでは、属性を、以下の〔表１：属性例〕に示すようにワイルドカードを使用する属性（ワイルドカード使用属性）Ａ∩（Ａキャップ）と、ワイルドカードを使用しない属性（ワイルドカード未使用属性）Ａ∪（Ａカップ）とに分けることとする。なお、ここでは、ワイルドカード使用属性を１つ、ワイルドカード未使用属性を２つとして示しているが、それぞれ複数存在しても構わない。
【００４３】
【表１】
2015018057.tif 000009
【００４４】
ここで、ｎ∩ｉ（ｎキャップｉ）は、あるワイルドカード使用属性Ａ∩ｉの取り得る値の数を示し、ｎ∪ｉ（ｎカップｉ）は、あるワイルドカード未使用属性Ａ∪ｉの取り得る値の数を示す。
また、Ｓ∩ｉ（Ｓキャップｉ）は、ワイルドカード使用属性Ａ∩ｉの属性値の取り得る値の集合を示し、Ｓ∪ｉ（Ｓカップｉ）は、ワイルドカード未使用属性Ａ∪ｉの属性値の取り得る値の集合を示す。
【００４５】
ポリシーは、暗号化データを復号するための条件（復号条件）を示す情報である。すなわち、ポリシーは、どの属性のどの属性値を有するユーザに対して復号の許可を与えるかを示す情報である。
〔表１：属性例〕で説明した属性（居住地、会員種別、契約情報）を例とした場合、属性が「居住地」のように、ワイルドカードを使用する属性であれば、送信者（暗号化装置３）が復号許可を与えたい複数の任意の属性値をポリシーとして設定する。また、属性が「会員種別」や「契約情報」のように、ワイルドカードを使用しない属性であれば、送信者（暗号化装置３）がそれぞれの属性の属性値を限定しポリシーとして設定する。
【００４６】
例えば、暗号化装置３において、以下の〔表２：ポリシー例〕に示すように、ポリシーを、ワイルドカードを使用するポリシー（ワイルドカード使用ポリシー）Ｗ∩（Ｗキャップ）と、ワイルドカードを使用しないポリシー（ワイルドカード未使用ポリシー）Ｗ∪（Ｗカップ）とに分けて指定する。
【００４７】
【表２】
2015018057.tif 000010
【００４８】
ここで、Ｗ∩ｉ（Ｗキャップｉ）は、属性Ａ∩ｉにおけるポリシーの値の集合を示し、Ｗ∪ｉ（Ｗカップｉ）は、属性Ａ∪ｉにおけるポリシーの値の集合を示す。
【００４９】
また、復号装置５において、以下の〔表３：ユーザ属性値例〕に示すように、ワイルドカードを使用する属性のユーザ属性値（ワイルドカード使用ユ−ザ属性値）Ｌ∩（Ｌキャップ）と、ワイルドカードを使用しない属性のユーザ属性値（ワイルドカード未使用ユ−ザ属性値）Ｌ∪（Ｌカップ）とが設定されているものとする。
【００５０】
【表３】
2015018057.tif 000011
【００５１】
ここで、Ｌ∩ｉ（Ｌキャップｉ）は、属性Ａ∩ｉにおけるユーザ属性値を示し、Ｌ∪ｉ（Ｌカップｉ）は、属性Ａ∪ｉにおけるユーザ属性値を示す。
そして、ワイルドカード使用ユ−ザ属性値（“東京都”）が、ワイルドカード使用ポリシーＷ∩に含まれ、ワイルドカード未使用ユ−ザ属性値（“プレミアム会員”，“支払者”）が、ワイルドカード未使用ポリシーＷ∪と一致する場合、復号装置５は、ユーザ属性値がポリシーに適合すると判定し、暗号化データを復号する。
以下、このように、ワイルドカードを使用する属性と、ワイルドカードを使用しない属性とに属性を分けて属性ベース暗号を行う属性ベース暗号システムＳの各構成について説明する。
【００５２】
〔鍵生成装置の構成〕
まず、図２を参照（適宜図１参照）して、本発明の実施形態に係る鍵生成装置１の構成について説明する。ここでは、鍵生成装置１は、第一鍵生成手段１０と、第二鍵生成手段２０と、を備える。
【００５３】
第一鍵生成手段１０は、外部から入力されるセキュリティパラメータおよび属性情報に基づいて、属性ベース暗号方式における公開鍵を生成するものである。ここでは、第一鍵生成手段１０は、パラメータ入力手段１１と、公開鍵生成手段１２と、公開鍵記憶手段１３と、マスタ鍵記憶手段１４と、公開鍵送信手段１５と、を備える。
【００５４】
パラメータ入力手段１１は、セキュリティパラメータおよび属性情報を外部からパラメータとして入力するものである。
ここで、セキュリティパラメータは、セキュリティのレベルを示す数値（例えば、鍵長）である。より具体的には、セキュリティパラメータは、後記する公開鍵生成手段１２で使用される素数位数ｐの大きさ（ビット長）である。また、属性情報は、属性を特定する情報であって、ワイルドカードを使用する属性と、ワイルドカードを使用しない属性とに属性を分けたときのそれぞれの属性の数や、属性の取り得る属性値の総数を示す。
なお、属性情報として、必ずしも属性の取り得る属性値の総数を用いる必要はなく、個々の属性の取り得る属性値の数を個別にパラメータとしてもよい。
【００５５】
以下、ワイルドカードを使用する属性Ａ∩（Ａキャップ）の数をｎ∩（ｎキャップ）とする。また、ワイルドカードを使用するある属性Ａ∩ｉの属性値の数をｎ∩ｉとする。このとき、ワイルドカードを使用する属性の取り得る属性値の総数は、個々の属性Ａ∩ｉの属性値の数ｎ∩ｉを加算した数である。
【００５６】
また、ワイルドカードを使用しない属性Ａ∪（Ａカップ）の数をｎ∪（ｎカップ）とする。また、ワイルドカードを使用しないある属性Ａ∪ｉの属性値の数をｎ∪ｉとする。このとき、ワイルドカードを使用しない属性の取り得る属性値の総数は、個々の属性Ａ∪ｉの属性値の数ｎ∪ｉを加算した数である。
例えば、〔表１：属性例〕の場合、ワイルドカードを使用する属性の数は、Ａ∩１（居住地）の“１”である。また、ワイルドカードを使用する属性の取り得る属性値の総数は、属性Ａ∩１の取り得る（ここでは、４７都道府県）“４７”である。
【００５７】
また、ワイルドカードを使用しない属性の数は、Ａ∪１（会員種別）およびＡ∪２（契約情報）の“２”である。また、ワイルドカードを使用しない属性の取り得る属性値の総数は、属性Ａ∪１の属性値の取り得る数“２”と、属性Ａ∪２の属性値の取り得る数“２”とを加算した“４”である。
このパラメータ入力手段１１は、入力されたセキュリティパラメータおよび属性情報を、公開鍵生成手段１２に出力する。
【００５８】
公開鍵生成手段１２は、パラメータ入力手段１１で入力されたセキュリティパラメータおよび属性情報に基づいて、属性ベース暗号における公開鍵を生成するものである。なお、ここでは、公開鍵生成手段１２は、秘密鍵を生成するためのマスタ鍵も生成する。
【００５９】
具体的には、公開鍵生成手段１２は、セキュリティパラメータで特定される大きさ（ビット長）の素数ｐを選択し、当該素数ｐを位数（素数位数ｐ）とする巡回群Ｇ，ＧＴを選択する。そして、公開鍵生成手段１２は、巡回群ＧおよびＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅを選択する。例えば、公開鍵生成手段１２は、ｅ：Ｇ×Ｇ→ＧＴとなる双線形写像ｅとして、一般的な“Ｗｅｉｌ  Ｐａｉｒｉｎｇ”、“Ｔａｔｅ  Ｐａｉｒｉｎｇ”等に基づいて楕円曲線のパラメータを選択する。ここで、双線形写像ｅは、２つの引数を持つｅ（・，・）で表される写像である。
さらに、公開鍵生成手段１２は、巡回群Ｇの中からランダムに１つの生成元ｇを選択（ｇ∈Ｇ）する。
また、公開鍵生成手段１２は、乱数ｗをＺｐ＊からランダムに選択（ｗ∈Ｚｐ＊）し、双線形写像ｅを用いて、以下の式（１）の演算を行うことで、関数値Ｙを求める。なお、Ｚｐ＊は、｛１，２，…，ｐ−１｝の整数のうちで、ｐとの最大公約数が１（ｐと互いに素）である整数の集合である。
【００６０】
【数７】
2015018057.tif 000012
【００６１】
また、公開鍵生成手段１２は、ワイルドカードを使用する属性の属性値の総数分、乱数を巡回群Ｇの中からランダムに選択する。
すなわち、公開鍵生成手段１２は、すべてのｉ∈［ｎ∩］，ｊ∈［ｎ∩ｉ］に対して、乱数Ａｉ，ｊを巡回群Ｇの中からランダムに選択（Ａｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∩］，∀ｊ∈［ｎ∩ｉ］）する。なお、［ｘ］は、｛１，２，…，ｘ｝の整数の集合である。
【００６２】
さらに、公開鍵生成手段１２は、ワイルドカードを使用しない属性の属性値の総数分、乱数を巡回群Ｇの中からランダムに選択する。
すなわち、公開鍵生成手段１２は、すべてのｉ∈［ｎ∪］，ｊ∈［ｎ∪ｉ］に対して、乱数Ｔｉ，ｊを巡回群Ｇの中からランダムに選択（Ｔｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∪］，∀ｊ∈［ｎ∪ｉ］）する。
【００６３】
そして、公開鍵生成手段１２は、以下の式（２）に示すように、素数位数ｐ、巡回群Ｇ，ＧＴ、双線形写像ｅ、生成元ｇ、関数値Ｙ、ワイルドカードを使用する属性の数ｎ∩、その属性のそれぞれの属性値の数ｎ∩ｉ、ワイルドカードを使用しない属性の数ｎ∪、その属性のそれぞれの属性値の数ｎ∪ｉ、乱数Ａｉ，ｊ、乱数Ｔｉ，ｊからなる公開鍵ＰＫを生成する。
【００６４】
【数８】
2015018057.tif 000013
【００６５】
なお、このように、乱数Ａｉ，ｊにおけるｉは、ワイルドカードを使用する属性の数で規定されるが、ｊはその属性の属性値の数ｎ∩ｉで規定されるため、ある属性に対応する乱数の数は属性によって異なる。そこで、この公開鍵の乱数Ａを参照する参照先では、公開鍵で公開されるワイルドカードを使用する属性の数ｎ∩と、ワイルドカードを使用する属性の属性値の数ｎ∩ｉとから、乱数Ａｉ，ｊの所望の乱数を特定して参照することとする。
また、乱数Ｔについても、乱数Ａと同じように、参照先では、公開鍵で公開されるワイルドカードを使用しない属性の数ｎ∪と、ワイルドカードを使用しない属性の属性値の数ｎ∪ｉとから、乱数Ｔｉ，ｊの所望の乱数を特定して参照する。
この公開鍵生成手段１２は、生成した公開鍵ＰＫ（式（２）参照）を公開鍵記憶手段１３に書き込み記憶する。
また、公開鍵生成手段１２は、式（１）において関数値Ｙを演算する際に用いた乱数ｗを、マスタ鍵ＭＫとして、マスタ鍵記憶手段１４に書き込み記憶する。
【００６６】
公開鍵記憶手段１３は、公開鍵生成手段１２で生成された公開鍵を記憶するものである。この公開鍵記憶手段１３は、半導体メモリ等の一般的な記憶媒体で構成することができる。
この公開鍵記憶手段１３に記憶された公開鍵は、公開鍵送信手段１５および第二鍵生成手段２０によって読み出される。
【００６７】
マスタ鍵記憶手段１４は、公開鍵生成手段１２で使用したマスタ鍵を記憶するものである。このマスタ鍵記憶手段１４は、半導体メモリ等の一般的な記憶媒体で構成することができる。
このマスタ鍵記憶手段１４に記憶されたマスタ鍵は、第二鍵生成手段２０によって読み出される。
【００６８】
公開鍵送信手段１５は、公開鍵生成手段１２で生成され、公開鍵記憶手段１３に記憶された公開鍵を、公開情報として、暗号化装置３や復号装置５に公開するものである。
ここでは、公開鍵送信手段１５は、公開鍵記憶手段１３から公開鍵を読み出し、ネットワークＮを介して、読み出した公開鍵を暗号化装置３や復号装置５に送信する。この公開鍵送信手段１５は、例えば、暗号化装置３や復号装置５から、公開鍵を要求されたタイミングで、公開鍵を送信する。
【００６９】
第二鍵生成手段２０は、外部から入力される個別の復号装置５のユーザ属性値に基づいて、個別の復号装置５が使用する、属性ベース暗号方式における秘密鍵を生成するものである。ここでは、第二鍵生成手段２０は、属性入力手段２１と、属性付き秘密鍵生成手段２２と、属性付き秘密鍵送信手段２３と、を備える。
【００７０】
属性入力手段２１は、個別の復号装置５に対するユーザ属性値を入力するものである。ここでは、属性入力手段２１は、ワイルドカードを使用する属性のユーザ属性値の集合（ワイルドカード使用ユーザ属性値）と、ワイルドカードを使用しない属性のユーザ属性値の集合（ワイルドカード未使用ユーザ属性値）とを、外部から入力する。
例えば、前記した〔表３：ユーザ属性値例〕の場合、属性入力手段２１には、ワイルドカードを使用する属性のユーザ属性値の集合として｛東京都｝が入力され、ワイルドカードを使用しない属性のユーザ属性値の集合として｛プレミアム会員，支払者｝が入力される。
この属性入力手段２１は、入力されたユーザ属性値を、属性付き秘密鍵生成手段２２に出力する。
【００７１】
属性付き秘密鍵生成手段２２は、属性入力手段２１で入力されたユーザ属性値に基づいて、属性ベース暗号における秘密鍵を生成し、ユーザ属性値を付加することで属性付き秘密鍵を生成するものである。この属性付き秘密鍵生成手段２２の構成については、図３を参照（適宜図２参照）して説明する。
図３に示すように、属性付き秘密鍵生成手段２２は、ワイルドカード使用属性秘密鍵生成手段２２１と、ワイルドカード未使用属性秘密鍵生成手段２２２と、秘密鍵紐付け手段２２３と、属性付加手段２２４と、を備える。
【００７２】
ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性に対応する属性ベース暗号方式における秘密鍵（ワイルドカード使用属性秘密鍵）を生成するものである。
具体的には、ワイルドカード使用属性秘密鍵生成手段２２１は、以下の演算を行うことで、ワイルドカード使用属性秘密鍵を生成する。
まず、ワイルドカード使用属性秘密鍵生成手段２２１は、乱数ξをＺｐ＊からランダムに選択（ξ∈Ｚｐ＊）する。この乱数ξは、ワイルドカードを使用する属性に対応するワイルドカード使用属性秘密鍵と、ワイルドカードを使用しない属性に対応する後記するワイルドカード未使用属性秘密鍵とを紐付けるために用いる乱数である。
【００７３】
また、ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性の数分、乱数をＺｐ＊からランダムに選択する。すなわち、ワイルドカード使用属性秘密鍵生成手段２２１は、すべてのｉ∈［ｎ∩］に対して、乱数ｓｉをＺｐ＊からランダムに選択（ｓｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）する。
なお、ｎ∩は、公開鍵（式（２）参照）として公開されているワイルドカードを使用する属性の数である。
そして、ワイルドカード使用属性秘密鍵生成手段２２１は、選択した乱数ｓｉをすべて加算し、その加算結果ｓと、乱数ξと、マスタ鍵記憶手段１４に記憶されているマスタ鍵ｗと、公開鍵記憶手段１３に記憶されている生成元ｇとから、以下の式（３）の演算を行うことで、ｇのべき乗値Ｄを求める。
【００７４】
【数９】
2015018057.tif 000014
【００７５】
また、ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性の数分、乱数をＺｐ＊からランダムに選択する。すなわち、ワイルドカード使用属性秘密鍵生成手段２２１は、すべてのｉ∈［ｎ∩］に対して、乱数λｉをＺｐ＊からランダムに選択（λｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）する。
そして、ワイルドカード使用属性秘密鍵生成手段２２１は、すべてのｉ∈［ｎ∩］に対して、属性入力手段２１で入力されたワイルドカードを使用するユーザ属性の属性値Ｌ∩ｉ（∀ｉ∈［ｎ∩］）と、乱数λｉと、式（３）で用いた乱数ｓｉと、公開鍵記憶手段１３に記憶されている公開鍵の一部である乱数Ａｉ，ｊと、生成元ｇとから、以下の式（４）の演算を行い、｛Ｄｉ，０，Ｄｉ，１｝を求める。
【００７６】
【数１０】
2015018057.tif 000015
【００７７】
なお、ここで、Ｌ∩ｉ（Ｌキャップｉ）は、ワイルドカードを使用するある属性Ａ∩ｉに対応するユーザ属性の属性値を示す。
このワイルドカード使用属性秘密鍵生成手段２２１は、生成したワイルドカードを使用する属性に対応する秘密鍵（ワイルドカード使用属性秘密鍵）であるＤ（前記式（３）参照）、｛Ｄｉ，０，Ｄｉ，１｝（前記式（４）参照）のうち、Ｄ，Ｄｉ，０（∀ｉ∈［ｎ∩］）については、秘密鍵紐付け手段２２３に出力し、Ｄｉ，１（∀ｉ∈［ｎ∩］）については、属性付加手段２２４に出力する。
【００７８】
ワイルドカード未使用属性秘密鍵生成手段２２２は、ワイルドカードを使用しない属性に対応する属性ベース暗号方式における秘密鍵（ワイルドカード未使用属性秘密鍵）を生成するものである。
具体的には、ワイルドカード未使用属性秘密鍵生成手段２２２は、以下の演算を行うことで、ワイルドカード未使用属性秘密鍵を生成する。
まず、ワイルドカード未使用属性秘密鍵生成手段２２２は、乱数ｕをＺｐ＊からランダムに選択（ｕ∈Ｚｐ＊）する。そして、ワイルドカード未使用属性秘密鍵生成手段２２２は、選択した乱数ｕと、式（３）で用いた乱数ξと、すべてのｉ∈［ｎ∪］に対して、属性入力手段２１で入力されたワイルドカードを使用しないユーザ属性の属性値Ｌ∪ｉ（∀ｉ∈［ｎ∪］）と、公開鍵記憶手段１３に記憶されている公開鍵の一部である乱数Ｔｉ，ｊと、生成元ｇとから、以下の式（５）の演算を行い、｛Ｄ１′，Ｄ２′｝を求める。なお、ｎ∪は、公開鍵（式（２）参照）として公開されているワイルドカードを使用しない属性の数である。
【００７９】
【数１１】
2015018057.tif 000016
【００８０】
このワイルドカード未使用属性秘密鍵生成手段２２２は、生成したワイルドカードを使用しない属性に対応する秘密鍵（ワイルドカード未使用属性秘密鍵）である｛Ｄ１′，Ｄ２′｝（前記式（５）参照）のうち、Ｄ１′については、秘密鍵紐付け手段２２３に出力し、Ｄ２′については、属性付加手段２２４に出力する。
【００８１】
秘密鍵紐付け手段２２３は、ワイルドカード使用属性秘密鍵生成手段２２１で生成された秘密鍵の一部と、ワイルドカード未使用属性秘密鍵生成手段２２２で生成された秘密鍵の一部とを、乱数によって合成することで、それぞれの秘密鍵を紐付けるものである。
具体的には、秘密鍵紐付け手段２２３は、式（３）で求めたＤと、式（４）で求めたＤｉ，０（∀ｉ∈［ｎ∩］）と、式（５）で求めたＤ１′とから、以下の式（６）の演算を行い属性付き秘密鍵の一部となる秘密鍵紐付け情報Ｄ０′を求める。
【００８２】
【数１２】
2015018057.tif 000017
【００８３】
このように、秘密鍵紐付け情報Ｄ０′は、乱数ξを用いて生成されたＤ（式（３）参照）によって、ワイルドカードを使用する属性に対するＤｉ，０（∀ｉ∈［ｎ∩］）と、ワイルドカードを使用しない属性に対するＤ１′とを乗算することで、ワイルドカードを使用する属性に対する秘密鍵（ワイルドカード使用属性秘密鍵）とワイルドカードを使用しない属性に対する秘密鍵（ワイルドカード未使用属性秘密鍵）とを紐付ける。これによって、ワイルドカードを使用する属性に対する秘密鍵を有するユーザと、ワイルドカードを使用しない属性に対する秘密鍵を有するユーザとが結託して秘密鍵を偽造すること（結託攻撃）を防止することができる。
この秘密鍵紐付け手段２２３は、生成した秘密鍵紐付け情報Ｄ０′を属性付加手段２２４に出力する。
これによって、以下の式（７）に示すように、前記式（４）〜式（６）で求めた演算結果を要素とする秘密鍵ＳＫが、属性付加手段２２４に出力される。
【００８４】
【数１３】
2015018057.tif 000018
【００８５】
属性付加手段２２４は、生成された秘密鍵ＳＫに、属性入力手段２１で入力されたワイルドカードを使用する属性のユーザ属性値と、ワイルドカードを使用しない属性のユーザ属性値とを付加して、属性付き秘密鍵を生成するものである。
すなわち、ワイルドカードを使用する属性のユーザ属性値の集合をＬ∩、ワイルドカードを使用しない属性のユーザ属性値の集合をＬ∪としたとき、属性付加手段２２４は、以下の式（８）に示すように、秘密鍵ＳＫにＬ∩およびＬ∪を付加した属性付き秘密鍵ＳＫ［Ｌ∩，Ｌ∪］を生成する。
この属性付加手段２２４は、生成した属性付き秘密鍵を、属性付き秘密鍵送信手段２３に出力する。
【００８６】
【数１４】
2015018057.tif 000019
【００８７】
図２に戻って、鍵生成装置１の構成ついて説明を続ける。
属性付き秘密鍵送信手段２３は、属性付き秘密鍵生成手段２２で生成された属性付き秘密鍵（式（８）参照）を、復号装置５に送信するものである。
ここでは、属性付き秘密鍵送信手段２３は、属性付き秘密鍵を、ネットワークＮを介して、復号装置５に送信する。なお、復号装置５の送信先については、外部から設定されるものとする。
【００８８】
このように鍵生成装置１を構成することで、鍵生成装置１は、ワイルドカードを使用する属性と使用しない属性とにユーザ属性を分けて、データの暗号化および復号を行うことが可能な属性ベース暗号方式における公開鍵と秘密鍵（属性付き秘密鍵）とを生成することができる。
このとき、鍵生成装置１は、単に、ワイルドカードを使用する属性に対応する秘密鍵と、ワイルドカードを使用しない属性に対応する秘密鍵とを、乱数によって紐付けることで、ワイルドカードを使用する属性に対する秘密鍵を有するユーザと、ワイルドカードを使用しない属性に対する秘密鍵を有するユーザとによる結託攻撃を防止することができる。
【００８９】
なお、鍵生成装置１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（鍵生成プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【００９０】
〔暗号化装置の構成〕
次に、図４を参照（適宜図１参照）して、本発明の実施形態に係る暗号化装置３の構成について説明する。ここでは、暗号化装置３は、データ入力手段３１と、ポリシー入力手段３２と、公開鍵受信手段３３と、公開鍵記憶手段３４と、ポリシー付き暗号化データ生成手段３５と、ポリシー付き暗号化データ送信手段３６と、を備える。
【００９１】
データ入力手段３１は、暗号化の対象となるデータを外部から入力するものである。このデータ入力手段３１は、入力されたデータをポリシー付き暗号化データ生成手段３５に出力する。
【００９２】
ポリシー入力手段３２は、復号装置５において、暗号化データを復号するための条件（復号条件）となるポリシーを外部から入力するものである。ここでは、ポリシー入力手段３２は、ワイルドカードを使用する属性の属性値の集合（ワイルドカード使用ポリシー）と、ワイルドカードを使用しない属性の属性値の集合（ワイルドカード未使用ポリシー）とを、外部から入力する。
【００９３】
例えば、前記した〔表２：ポリシー例〕の場合、ポリシー入力手段３２には、ワイルドカード使用ポリシーとして、復号を許可するユーザの居住地属性の属性値である｛東京都，神奈川県，埼玉県，千葉県｝が入力され、ワイルドカード未使用ポリシーとして、復号を許可するユーザの会員種別および契約情報の各属性の属性値である｛プレミアム会員，支払者｝が入力される。
このポリシー入力手段３２は、入力されたポリシーをポリシー付き暗号化データ生成手段３５に出力する。
【００９４】
公開鍵受信手段３３は、鍵生成装置１で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段３３は、ネットワークＮを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段３４に書き込み記憶する。
なお、公開鍵受信手段３３は、定期的に公開鍵を鍵生成装置１に要求し取得することとしてもよいし、ポリシー付き暗号化データ生成手段３５が公開鍵を参照するタイミングで鍵生成装置１に要求し取得することとしてもよい。
【００９５】
公開鍵記憶手段３４は、公開鍵受信手段３３で受信した公開鍵を記憶するものである。この公開鍵記憶手段３４は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段３４に記憶された公開鍵は、ポリシー付き暗号化データ生成手段３５によって読み出される。
【００９６】
ポリシー付き暗号化データ生成手段３５は、公開鍵記憶手段３４に記憶されている公開鍵に基づいて、データ入力手段３１で入力されたデータを暗号化するとともに、ポリシー入力手段３２で入力されたワイルドカード使用ポリシーおよびワイルドカード未使用ポリシーを付加したポリシー付き暗号化データを生成するものである。
ここでは、ポリシー付き暗号化データ生成手段３５は、暗号化データ生成手段３５１と、ポリシー付加手段３５２と、を備える。
【００９７】
暗号化データ生成手段３５１は、公開鍵を用いて、入力されたデータから、ワイルドカードを使用する属性に対応するポリシーと、使用しない属性に対応するポリシーとにポリシーを分けて、属性ベース暗号による暗号化データを生成するものである。
具体的には、暗号化データ生成手段３５１は、以下の演算を行うことで、暗号化データを生成する。
【００９８】
まず、暗号化データ生成手段３５１は、乱数ｒをＺｐ＊からランダムに選択（ｒ∈Ｚｐ＊）する。
そして、暗号化データ生成手段３５１は、乱数ｒと、公開鍵と、ポリシーとに基づいて、以下の式（９）〜式（１１）の演算を行うことで、暗号化データを構成する各要素（Ｃ１，Ｃ２，Ｃ３）を求める。
【００９９】
【数１５】
2015018057.tif 000020
【０１００】
ここで、Ｍは暗号化の対象となるデータである。また、Ｙ，ｇは公開鍵の一部である。
【０１０１】
【数１６】
2015018057.tif 000021
【０１０２】
ここで、ｉはワイルドカードを使用しない属性Ａ∪ｉを指し示す指標で、Ｗ∪ｉは、ｉに対応するワイルドカードを使用しないポリシーである。なお、ｎ∪は、公開鍵として公開されているワイルドカードを使用しない属性の数である。
この式（１１）に示すように、暗号化データ生成手段３５１は、ワイルドカードを使用しないポリシーに対応する公開鍵の一部であるＴを総積し、乱数ｒによるべき乗計算を行う。これによって、ワイルドカードを使用しないポリシーに関する情報が暗号化データに組み込まれることになる。
さらに、暗号化データ生成手段３５１は、乱数ｒと、公開鍵の一部であるＡとを用いて、以下の式（１２）の演算を行うことで、暗号化データを構成する要素（Ｃｉ，ｊ）を求める。
【０１０３】
【数１７】
2015018057.tif 000022
【０１０４】
ここで、ｉはワイルドカードを使用する属性Ａ∩を指し示す指標で、Ｗ∩ｉは、ｉに対応するワイルドカードを使用するポリシーである。なお、ｎ∩は、公開鍵として公開されているワイルドカードを使用する属性の数である。これによって、ワイルドカードを使用するポリシーに関する情報が、暗号化データに組み込まれることになる。
【０１０５】
そして、暗号化データ生成手段３５１は、以下の式（１３）に示すように、前記式（９）〜式（１２）で求めた演算結果を要素とする暗号化データＣを生成する。
この暗号化データ生成手段３５１は、生成した暗号化データをポリシー付加手段３５２に出力する。
【０１０６】
【数１８】
2015018057.tif 000023
【０１０７】
ポリシー付加手段３５２は、暗号化データ生成手段３５１で生成された暗号化データＣに、ポリシー入力手段３２で入力されたワイルドカードを使用するポリシーと、ワイルドカードを使用しないポリシーとを付加して、ポリシー付き暗号化データを生成するものである。
すなわち、ワイルドカードを使用するポリシーの集合をＷ∩、ワイルドカードを使用しないポリシーの集合をＷ∪としたとき、ポリシー付加手段３５２は、以下の式（１４）に示すように、暗号化データＣにＷ∩およびＷ∪を付加したポリシー付き暗号化データＣ［Ｗ∩，Ｗ∪］を生成する。
このポリシー付加手段３５２は、生成したポリシー付き暗号化データを、ポリシー付き暗号化データ送信手段３６に出力する。
【０１０８】
【数１９】
2015018057.tif 000024
【０１０９】
ポリシー付き暗号化データ送信手段３６は、ポリシー付き暗号化データ生成手段３５で生成されたポリシー付き暗号化データ（式（１４）参照）を、復号装置５に送信するものである。
ここでは、ポリシー付き暗号化データ送信手段３６は、ポリシー付き暗号化データを、ネットワークＮを介して、復号装置５に送信する。なお、復号装置５の送信先については、外部から設定されるものとする。
【０１１０】
このように暗号化装置３を構成することで、暗号化装置３は、ワイルドカードを使用するポリシーと使用しないポリシーとにポリシーを分け、それぞれのポリシーに対応する乱数を組み込んで、データを暗号化することができる。
【０１１１】
なお、暗号化装置３は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（暗号化プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【０１１２】
〔復号装置の構成〕
次に、図５を参照（適宜図１参照）して、本発明の実施形態に係る復号装置５の構成について説明する。ここで、復号装置５は、公開鍵受信手段５１と、公開鍵記憶手段５２と、属性付き秘密鍵受信手段５３と、属性付き秘密鍵記憶手段５４と、ポリシー付き暗号化データ受信手段５５と、ポリシー付き暗号化データ復号手段５６と、を備える。
【０１１３】
公開鍵受信手段５１は、鍵生成装置１で生成された属性ベース暗号の公開鍵を受信するものである。ここでは、公開鍵受信手段５１は、ネットワークＮを介して、公開鍵を受信し、受信した公開鍵を公開鍵記憶手段５２に書き込み記憶する。
なお、公開鍵受信手段５１は、定期的に公開鍵を鍵生成装置１に要求し取得することとしてもよいし、ポリシー付き暗号化データ復号手段５６が公開鍵を参照するタイミングで鍵生成装置１に要求し取得することとしてもよい。
【０１１４】
公開鍵記憶手段５２は、公開鍵受信手段５１で受信した公開鍵を記憶するものである。この公開鍵記憶手段５２は、半導体メモリ等の一般的な記憶媒体で構成することができる。この公開鍵記憶手段５２に記憶された公開鍵は、ポリシー付き暗号化データ復号手段５６によって読み出される。
【０１１５】
属性付き秘密鍵受信手段５３は、鍵生成装置１で生成された属性付き秘密鍵を受信するものである。ここでは、属性付き秘密鍵受信手段５３は、ネットワークＮを介して、属性付き秘密鍵を受信し、受信した属性付き秘密鍵を属性付き秘密鍵記憶手段５４に書き込み記憶する。
なお、属性付き秘密鍵受信手段５３は、ポリシー付き暗号化データ復号手段５６が、暗号化データを復号する前に、予め属性付き秘密鍵を取得しておく。例えば、復号装置５が、図示を省略した登録手段によって、予め鍵生成装置１に対してユーザ登録等を行うことで、属性付き秘密鍵を取得する。
【０１１６】
属性付き秘密鍵記憶手段５４は、属性付き秘密鍵受信手段５３で受信した属性付き秘密鍵を記憶するものである。この属性付き秘密鍵記憶手段５４は、半導体メモリ等の一般的な記憶媒体で構成することができる。この属性付き秘密鍵記憶手段５４に記憶された属性付き秘密鍵は、ポリシー付き暗号化データ復号手段５６によって読み出される。
【０１１７】
ポリシー付き暗号化データ受信手段５５は、暗号化装置３で生成されたポリシー付き暗号化データを受信するものである。ここでは、ポリシー付き暗号化データ受信手段５５は、ネットワークＮを介して、ポリシー付き暗号化データを受信し、ポリシー付き暗号化データ復号手段５６に出力する。
【０１１８】
ポリシー付き暗号化データ復号手段５６は、ポリシー付き暗号化データ受信手段５５で受信したポリシー付き暗号化データを復号するものである。ここでは、ポリシー付き暗号化データ復号手段５６は、属性付き秘密鍵分離手段５６１と、ポリシー付き暗号化データ分離手段５６２と、ポリシー判定手段５６３と、暗号化データ復号手段５６４と、を備える。
【０１１９】
属性付き秘密鍵分離手段５６１は、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵を、ユーザ属性と秘密鍵とに分離するものである。
この属性付き秘密鍵分離手段５６１は、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵（前記式（８）参照）のうち、ワイルドカードを使用する属性のユーザ属性値の集合Ｌ∩、および、ワイルドカードを使用しない属性のユーザ属性値の集合Ｌ∪を分離してポリシー判定手段５６３に出力する。
また、属性付き秘密鍵分離手段５６１は、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵（前記式（８）参照）のうち、秘密鍵（前記式（７）参照）を分離して暗号化データ復号手段５６４に出力する。
【０１２０】
ポリシー付き暗号化データ分離手段５６２は、ポリシー付き暗号化データ受信手段５５で受信したポリシー付き暗号化データを、ポリシーと暗号化データとに分離するものである。
このポリシー付き暗号化データ分離手段５６２は、ポリシー付き暗号化データ（前記式（１４）参照）を、ワイルドカードを使用するポリシーの集合Ｗ∩およびワイルドカードを使用しないポリシーの集合Ｗ∪と、暗号化データ（式（１３）参照）とを分離して、ポリシー判定手段５６３に出力する。
【０１２１】
ポリシー判定手段５６３は、ユーザ属性がポリシーを満たすか否かを判定するものである。ここでは、ポリシー判定手段５６３は、ワイルドカードを使用する属性のユーザ属性値の集合Ｌ∩がワイルドカードを使用するポリシーの集合Ｗ∩に含まれ、かつ、ワイルドカードを使用しない属性のユーザ属性値の集合Ｌ∪がワイルドカードを使用しないポリシーの集合Ｗ∪と一致する場合にポリシーを満たすと判定し、それ以外の場合にポリシーを満たさないと判定する。
このポリシー判定手段５６３は、ユーザ属性値がポリシーを満たす場合だけ、ポリシー付き暗号化データ分離手段５６２で分離された暗号化データを暗号化データ復号手段５６４に出力する。
【０１２２】
暗号化データ復号手段５６４は、秘密鍵および公開鍵に基づいて、暗号化データを元のデータに復号するものである。
具体的には、暗号化データ復号手段５６４は、以下の式（１５）に示す演算を行うことで、暗号化データからデータＭを復号する。
【０１２３】
【数２０】
2015018057.tif 000025
【０１２４】
なお、式（１５）中、符号Ｄが付されている値は、秘密鍵（式（７），式（８）参照）で与えられる値である。
また、式（１５）中、符号Ｃが付されている値は、暗号化データ（式（１３），式（１４）参照）で与えられる値である。
また、ｅは、公開鍵（式（２）参照）として公開されている双線形写像である。
また、式（１５）中、ｎ∩は、公開鍵（式（２）参照）として公開されているワイルドカードを使用する属性の数である。
これによって、ポリシー付き暗号化データ復号手段５６は、ポリシー付き暗号化データから元のデータを復号する。
なお、ポリシー付き暗号化データ復号手段５６は、ポリシー判定手段５６３において、ユーザ属性がポリシーを満たさない場合、エラーメッセージを表示することとしてもよい。
このように復号装置５を構成することで、復号装置５は、属性の一部にワイルドカードを許して暗号化された暗号化データを、ユーザ属性値に応じて復号することができる。
【０１２５】
なお、復号装置５は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、通信インタフェース等（図示を省略）を備え、ＣＰＵがＨＤＤ等に格納されたプログラム（復号プログラム）をＲＡＭに展開することにより、ＣＰＵ（コンピュータ）を、前記した各手段として機能させることができる。
【０１２６】
［属性ベース暗号システムの動作］
次に、本発明の実施形態に係る属性ベース暗号システムＳの動作について説明する。
ここでは、鍵（公開鍵、秘密鍵）の生成・配信動作と、データの暗号化・復号動作とに分けて説明する。
【０１２７】
〔鍵（公開鍵、秘密鍵）生成・配信動作〕
最初に、図６を参照（構成については、適宜図１〜図５参照）して、属性ベース暗号システムＳの鍵（公開鍵、秘密鍵）の生成・配信動作について説明する。
まず、鍵生成装置１は、パラメータ入力手段１１によって、パラメータ（セキュリティパラメータ、属性情報）を外部から入力する（ステップＳ１）。なお、属性情報は、ワイルドカードを使用する属性と、ワイルドカードを使用しない属性とに属性を分けたときのそれぞれの属性の数や、属性の取り得る属性値の総数である。
【０１２８】
そして、鍵生成装置１は、公開鍵生成手段１２によって、ステップＳ１で入力されたパラメータに基づいて、属性ベース暗号における公開鍵と、秘密鍵を生成するためのマスタ鍵とを生成する（ステップＳ２）。なお、このステップＳ２における公開鍵生成動作については、図７を参照して後で詳細に説明する。
【０１２９】
そして、鍵生成装置１は、公開鍵生成手段１２によって、生成した公開鍵を公開鍵記憶手段１３に書き込み記憶する。（ステップＳ３）。なお、このとき、公開鍵生成手段１２は、公開鍵を生成する際に使用した乱数（ｗ）をマスタ鍵としてマスタ鍵記憶手段１４に書き込み記憶しておく。
【０１３０】
その後、鍵生成装置１は、公開鍵送信手段１５によって、ステップＳ３で公開鍵記憶手段１３に記憶されている公開鍵を、公開情報として、暗号化装置３や復号装置５に送信（公開）する（ステップＳ４）。
【０１３１】
一方、暗号化装置３は、公開鍵受信手段３３によって、ステップＳ４で送信された公開鍵を受信し（ステップＳ５）、公開鍵記憶手段３４に書き込み記憶する（ステップＳ６）。また、復号装置５は、公開鍵受信手段５１によって、ステップＳ４で送信された公開鍵を受信し（ステップＳ７）、公開鍵記憶手段５２に書き込み記憶する（ステップＳ８）。
【０１３２】
さらに、鍵生成装置１は、以下の動作によって、個別の復号装置５を対象として属性付き秘密鍵を生成する。
すなわち、鍵生成装置１は、属性入力手段２１によって、個別の復号装置５に対するユーザ属性値を入力する（ステップＳ９）。なお、ユーザ属性値は、ワイルドカードを使用する属性のユーザ属性値、ワイルドカードを使用しない属性のユーザ属性値である。
【０１３３】
そして、鍵生成装置１は、属性付き秘密鍵生成手段２２によって、ステップＳ３で公開鍵記憶手段１３に記憶された公開鍵と、マスタ鍵記憶手段１４に記憶されたマスタ鍵と、ステップＳ９で入力されたユーザ属性値とに基づいて、属性付き秘密鍵を生成する（ステップＳ１０）。なお、このステップＳ１０における属性付き秘密鍵生成動作については、図８を参照して後で詳細に説明する。
【０１３４】
その後、鍵生成装置１は、属性付き秘密鍵送信手段２３によって、ステップＳ１０で生成された属性付き秘密鍵を、復号装置５に送信する（ステップＳ１１）。
一方、復号装置５は、属性付き秘密鍵受信手段５３によって、ステップＳ１１で送信された属性付き秘密鍵を受信し（ステップＳ１２）、属性付き秘密鍵記憶手段５４に書き込み記憶する（ステップＳ１３）。
【０１３５】
以上の動作によって、属性ベース暗号システムＳは、鍵生成装置１によって、属性ベース暗号における鍵（公開鍵、秘密鍵）を生成し、鍵を必要とする暗号化装置３や復号装置５に送信する。
【０１３６】
（公開鍵生成動作）
次に、図７を参照して、図６のステップＳ２の動作（公開鍵生成動作）について詳細に説明する。
まず、鍵生成装置１の公開鍵生成手段１２は、セキュリティパラメータで特定される大きさ（ビット長）の素数位数ｐを選択するとともに、素数位数ｐの巡回群Ｇ，ＧＴを選択する（ステップＳ２１）。また、公開鍵生成手段１２は、巡回群Ｇ，ＧＴがＧ×Ｇ→ＧＴとなる双線形写像ｅを選択する（ステップＳ２２）。さらに、公開鍵生成手段１２は、巡回群Ｇの中からランダムに１つの生成元ｇを選択（ｇ∈Ｇ）する（ステップＳ２３）。
【０１３７】
そして、公開鍵生成手段１２は、乱数ｗをＺｐ＊からランダムに選択（ｗ∈Ｚｐ＊）し、ステップＳ２２で選択した双線形写像ｅを用いて、前記式（１）の演算を行うことで、関数値Ｙを求める（ステップＳ２４）。
【０１３８】
また、公開鍵生成手段１２は、ワイルドカードを使用する属性の属性値の総数分、乱数を巡回群Ｇから選択する。
すなわち、公開鍵生成手段１２は、ワイルドカードを使用する属性Ａ∩の数をｎ∩、ワイルドカードを使用するある属性Ａ∩ｉの属性値の数をｎ∩ｉとしたとき、すべてのｉ∈［ｎ∩］，ｊ∈［ｎ∩ｉ］に対して、乱数Ａｉ，ｊを巡回群Ｇの中からランダムに選択（Ａｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∩］，∀ｊ∈［ｎ∩ｉ］）する（ステップＳ２５）。
【０１３９】
さらに、公開鍵生成手段１２は、ワイルドカードを使用しない属性の属性値の総数分、乱数を巡回群Ｇから選択する。
すなわち、公開鍵生成手段１２は、ワイルドカードを使用しない属性Ａ∪の数をｎ∪、ワイルドカードを使用しないある属性Ａ∪ｉの属性値の数をｎ∪ｉとしたとき、すべてのｉ∈［ｎ∪］，ｊ∈［ｎ∪ｉ］に対して、乱数Ｔｉ，ｊを巡回群Ｇの中からランダムに選択（Ｔｉ，ｊ∈Ｇ；∀ｉ∈［ｎ∪］，∀ｊ∈［ｎ∪ｉ］）する（ステップＳ２６）。
【０１４０】
そして、公開鍵生成手段１２は、素数位数ｐ、巡回群Ｇ，ＧＴ、双線形写像ｅ、生成元ｇ、関数値Ｙ、ワイルドカードを使用する属性の数ｎ∩、その属性のそれぞれの属性値の数ｎ∩ｉ、ワイルドカードを使用しない属性の数ｎ∪、その属性のそれぞれの属性値の数ｎ∪ｉ、乱数Ａｉ，ｊ、乱数Ｔｉ，ｊからなる公開鍵ＰＫ（前記式（２）参照）を生成する（ステップＳ２７）。
さらに、公開鍵生成手段１２は、ステップＳ２４で選択した乱数ｗを、マスタ鍵ＭＫとして設定する（ステップＳ２８）。
以上の動作によって、鍵生成装置１は、属性ベース暗号における公開鍵およびマスタ鍵を生成する。
【０１４１】
（属性付き秘密鍵生成動作）
次に、図８を参照して、図６のステップＳ１０の動作（属性付き秘密鍵鍵生成動作）について詳細に説明する。
まず、鍵生成装置１のワイルドカード使用属性秘密鍵生成手段２２１は、乱数ξをＺｐ＊からランダムに選択（ξ∈Ｚｐ＊）する（ステップＳ３１）。
【０１４２】
また、ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性の数分、乱数をＺｐ＊からランダムに選択する。すなわち、ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性Ａ∩の数をｎ∩としたとき、すべてのｉ∈［ｎ∩］に対して、乱数ｓｉをＺｐ＊からランダムに選択（ｓｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）する（ステップＳ３２）。
【０１４３】
また、ワイルドカード使用属性秘密鍵生成手段２２１は、ステップＳ３２で選択した乱数ｓｉをすべて加算し、その加算結果ｓと、乱数ξと、マスタ鍵記憶手段１４に記憶されているマスタ鍵ｗと、公開鍵記憶手段１３に記憶されている生成元ｇとから、前記式（３）の演算を行うことで、秘密鍵の一部となるｇのべき乗値Ｄを求める（ステップＳ３３）。
【０１４４】
また、ワイルドカード使用属性秘密鍵生成手段２２１は、ワイルドカードを使用する属性の数分、乱数をＺｐ＊からランダムに選択する。すなわち、ワイルドカード使用属性秘密鍵生成手段２２１は、すべてのｉ∈［ｎ∩］に対して、乱数λｉをＺｐ＊からランダムに選択（λｉ∈Ｚｐ＊；∀ｉ∈［ｎ∩］）する。
そして、ワイルドカード使用属性秘密鍵生成手段２２１は、すべてのｉ∈［ｎ∩］に対して、乱数ｓｉと、乱数λｉと、公開鍵記憶手段１３に記憶されている公開鍵の一部である乱数Ａｉ，ｊと、生成元ｇとから、前記式（４）の演算を行い、｛Ｄｉ，０，Ｄｉ，１｝（∀ｉ∈［ｎ∩］）を求める（ステップＳ３４）。
【０１４５】
そして、ワイルドカード未使用属性秘密鍵生成手段２２２は、乱数ｕをＺｐ＊からランダムに選択（ｕ∈Ｚｐ＊）する。そして、ワイルドカード未使用属性秘密鍵生成手段２２２は、選択した乱数ｕと、ステップＳ３１で選択した乱数ξと、公開鍵記憶手段１３に記憶されている公開鍵の一部である乱数Ｔと、生成元ｇとから、前記式（５）の演算を行い、｛Ｄ１′，Ｄ２′｝を求める（ステップＳ３５）。
【０１４６】
そして、秘密鍵紐付け手段２２３は、ステップＳ３３で求めたＤと、ステップＳ３４で求めたＤｉ，０（∀ｉ∈［ｎ∩］）と、ステップＳ３５で求めたＤ１′とから、前記式（６）の演算を行い秘密鍵の一部となるＤ０′を求める（ステップＳ３６）。
このように、秘密鍵紐付け手段２２３は、秘密鍵を構成するＤ０′、Ｄｉ，１（∀ｉ∈［ｎ∩］）、Ｄ２′を演算により求める。
【０１４７】
そして、属性付加手段２２４は、ステップＳ３６までで求められた秘密鍵に、ワイルドカードを使用する属性のユーザ属性値の集合Ｌ∩と、ワイルドカードを使用しない属性のユーザ属性値の集合Ｌ∪とを付加して、属性付き秘密鍵（前記式（８）参照）を生成する（ステップＳ３７）。
以上の動作によって、鍵生成装置１は、ワイルドカード使用する属性と使用しない属性とにユーザ属性値を分割した属性付き秘密鍵を生成する。
【０１４８】
〔データ暗号化・復号動作〕
次に、図９を参照（構成については、適宜図１、図４、図５参照）して、属性ベース暗号システムＳのデータの暗号化・復号動作について説明する。
まず、暗号化装置３は、ポリシー入力手段３２によって、暗号化データを復号するための条件（復号条件）となるポリシーを外部から入力する（ステップＳ４１）。なお、このポリシーは、ワイルドカードを使用する属性に対応するポリシー、および、ワイルドカードを使用しない属性に対応するポリシーである。
【０１４９】
また、暗号化装置３は、データ入力手段３１によって、暗号化の対象となるデータを外部から入力する（ステップＳ４２）。
そして、暗号化装置３は、ポリシー付き暗号化データ生成手段３５によって、公開鍵に基づいて、ステップＳ３１で入力されたポリシーに対応するポリシー付き暗号化データを生成する（ステップＳ４３）。なお、このステップＳ４３におけるポリシー付き暗号化データ生成動作については、図１０を参照して後で詳細に説明する。
そして、暗号化装置３は、ポリシー付き暗号化データ送信手段３６によって、ステップＳ４３で生成されたポリシー付き暗号化データを、復号装置５に送信する（ステップＳ４４）。
【０１５０】
一方、復号装置５は、ポリシー付き暗号化データ受信手段５５によって、ステップＳ４４で送信されたポリシー付き暗号化データを受信する（ステップＳ４５）。
そして、復号装置５は、ポリシー付き暗号化データ復号手段５６によって、ステップＳ４５で受信したポリシー付き暗号化データを復号し（ステップＳ４６）、元データとして外部に出力する（ステップＳ４７）。なお、ステップＳ４６におけるポリシー付き暗号化データ復号動作については、図１１を参照して後で詳細に説明する。
以上の動作によって、属性ベース暗号システムＳは、ワイルドカードを使用する属性と使用しない属性とに属性を分けて、属性ベース暗号による暗号化および復号を行う。
【０１５１】
（ポリシー付き暗号化データ生成動作）
次に、図１０を参照して、図９のステップＳ４３の動作（ポリシー付き暗号化データ生成動作）について詳細に説明する。
まず、暗号化装置３の暗号化データ生成手段３５１は、乱数ｒをＺｐ＊からランダムに選択（ｒ∈Ｚｐ＊）する（ステップＳ５１）。
【０１５２】
そして、暗号化データ生成手段３５１は、ステップＳ５１で選択した乱数ｒと、公開鍵記憶手段３４に記憶されている公開鍵（前記式（２）参照）と、ポリシー入力手段３２で入力されたポリシーとに基づいて、前記式（９）〜式（１１）の演算を行うことで、暗号化データを構成する各要素（Ｃ１，Ｃ２，Ｃ３）を求める（ステップＳ５２）。
【０１５３】
さらに、暗号化データ生成手段３５１は、乱数ｒと、公開鍵の一部であるＡとを用いて、前記式（１２）の演算を行うことで、暗号化データを構成する要素（Ｃｉ，ｊ）を求める（ステップＳ５３）。
【０１５４】
また、ポリシー付加手段３５２は、ステップＳ５２およびステップＳ５３で生成した暗号化データである（Ｃ１，Ｃ２，Ｃ３，Ｃｉ，ｊ）に、ワイルドカードを使用するポリシーの集合Ｗ∩、ワイルドカードを使用しないポリシーの集合Ｗ∪とを付加して、ポリシー付き暗号化データ（前記式（１４）参照）を生成する（ステップＳ５４）。
以上の動作によって、暗号化装置３は、属性の一部にワイルドカードを許して暗号化データを生成する。
【０１５５】
（ポリシー付き暗号化データ復号動作）
次に、図１１を参照して、図９のステップＳ４６の動作（ポリシー付き暗号化データ復号動作）について詳細に説明する。
まず、復号装置５のポリシー付き暗号化データ復号手段５６は、ポリシー付き暗号化データ分離手段５６２によって、受信したポリシー付き暗号化データを、ポリシー（ワイルドカードを使用するポリシーの集合Ｗ∩、ワイルドカードを使用しないポリシーの集合Ｗ∪）と、暗号化データとに分離する（ステップＳ６１）。
【０１５６】
また、復号装置５のポリシー付き暗号化データ復号手段５６は、属性付き秘密鍵分離手段５６１によって、属性付き秘密鍵記憶手段５４に記憶されている属性付き秘密鍵を、ユーザ属性値（ワイルドカードを使用する属性のユーザ属性値の集合Ｌ∩、ワイルドカードを使用しない属性のユーザ属性値の集合Ｌ∪）と、秘密鍵とに分離する（ステップＳ６２）。
【０１５７】
そして、ポリシー付き暗号化データ復号手段５６は、ポリシー判定手段５６３によって、ユーザ属性値がポリシーを満たすか否かを判定する（ステップＳ６３）。
ここで、ワイルドカードを使用する属性のユーザ属性値の集合Ｌ∩がワイルドカードを使用するポリシーの集合Ｗ∩に含まれ、かつ、ワイルドカードを使用しない属性のユーザ属性値の集合Ｌ∪がワイルドカードを使用しないポリシーの集合Ｗ∪と一致する場合（ステップＳ６３でＹｅｓ）、ポリシー判定手段５６３は、ユーザ属性値がポリシーを満たすと判定し、それ以外の場合（ステップＳ６３でＮｏ）、ユーザ属性値がポリシーを満たさないと判定する。
【０１５８】
そして、ユーザ属性値がポリシーを満たすと判定した場合（ステップＳ６３でＹｅｓ）、ポリシー付き暗号化データ復号手段５６は、暗号化データ復号手段５６４によって、前記式（１５）により、暗号化データを元のデータに復号する（ステップＳ６４）。
以上の動作によって、復号装置５は、ユーザ属性値がポリシーに適合する場合だけ、暗号化データを復号する。
【０１５９】
以上、本発明の実施形態に係る属性ベース暗号システムＳの構成および動作について説明したが、本発明は、この実施形態に限定されるものではない。
例えば、ここでは、属性ベース暗号システムＳは、暗号化装置３から復号装置５に直接ポリシー付き暗号化データを送信することとした。しかし、暗号化装置３が、ネットワークＮ上の図示を省略したサーバにポリシー付き暗号化データを記憶し、復号装置５が、そのデータを任意のタイミングで読み出して復号することとしてもよい。
【符号の説明】
【０１６０】
Ｓ      属性ベース暗号システム
１      鍵生成装置
１１    パラメータ入力手段
１２    公開鍵生成手段
１３    公開鍵記憶手段
１４    マスタ鍵記憶手段
１５    公開鍵送信手段
２１    属性入力手段
２２    属性付き秘密鍵生成手段
２２１  ワイルドカード使用属性秘密鍵生成手段
２２２  ワイルドカード未使用属性秘密鍵生成手段
２２３  秘密鍵紐付け手段
２２４  属性付加手段
２３    属性付き秘密鍵送信手段
３      暗号化装置
３１    データ入力手段
３２    ポリシー入力手段
３３    公開鍵受信手段
３４    公開鍵記憶手段
３５    ポリシー付き暗号化データ生成手段
３５１  暗号化データ生成手段
３５２  ポリシー付加手段
３６    ポリシー付き暗号化データ送信手段
５      復号手段
５１    公開鍵受信手段
５２    公開鍵記憶手段
５３    属性付き秘密鍵受信手段
５４    属性付き秘密鍵記憶手段
５５    ポリシー付き暗号化データ受信手段
５６    ポリシー付き暗号化データ復号手段
５６１  属性付き秘密鍵分離手段
５６２  ポリシー付き暗号化データ分離手段
５６３  ポリシー判定手段
５６４  暗号化データ復号手段
【図１】
2015018057.tif 000032
【図２】
2015018057.tif 000033
【図３】
2015018057.tif 000034
【図４】
2015018057.tif 000035
【図５】
2015018057.tif 000036
【図６】
2015018057.tif 000037
【図７】
2015018057.tif 000038
【図８】
2015018057.tif 000039
【図９】
2015018057.tif 000040
【図１０】
2015018057.tif 000041
【図１１】
2015018057.tif 000042