(57)【特許請求の範囲】
【請求項１】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号システムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数１に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数２に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数３に示す送信側ベクトルｃ１を含む暗号文ｃｔΓを生成する暗号化装置と、
前記第２ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数４に示す受信側ベクトルｋ＊ｉを含む復号鍵ｓｋＳを取得し、前記受信側ベクトルｋ＊ｉと前記送信側ベクトルｃ１とに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数１】
0006053983.tif 000137
【数２】
0006053983.tif 000138
【数３】
0006053983.tif 000139
【数４】
0006053983.tif 000140
【請求項２】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号システムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数５に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数６に示す第２ベクトルとのうちの前記第２ベクトルを用いて、前記基底Ｂにおけるベクトルである数７に示す送信側ベクトルｃｉを含む暗号文ｃｔＳを生成する暗号化装置と、
前記第１ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数８に示す受信側ベクトルｋ＊１を含む復号鍵ｓｋΓを取得し、前記受信側ベクトルｋ＊１と前記送信側ベクトルｃｉとに関してペアリング演算を行うことによって、前記暗号文ｃｔＳを復号する復号装置と
を備えることを特徴とする暗号システム。
【数５】
0006053983.tif 000141
【数６】
0006053983.tif 000142
【数７】
0006053983.tif 000143
【数８】
0006053983.tif 000144
【請求項３】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号システムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数９に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数１０に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数１１に示す送信側ベクトルｃ１．ｔを含む暗号文ｃｔΓを生成する暗号化装置と、
前記第２ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数１２に示す受信側ベクトルｋ＊ｉを含む復号鍵ｓｋＳを取得し、前記受信側ベクトルｋ＊ｉと前記送信側ベクトルｃ１．ｔとに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数９】
0006053983.tif 000145
【数１０】
0006053983.tif 000146
【数１１】
0006053983.tif 000147
【数１２】
0006053983.tif 000148
【請求項４】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号システムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数１３に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数１４に示す第２ベクトルとのうちの前記第２ベクトルを用いて、前記基底Ｂにおけるベクトルである数１５に示す送信側ベクトルｃｉを含む暗号文ｃｔＳを生成する暗号化装置と、
前記第１ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数１６に示す受信側ベクトルｋ＊１．ｔを含む復号鍵ｓｋΓを取得し、前記受信側ベクトルｋ＊１．ｔと前記送信側ベクトルｃｉとに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号装置と
を備えることを特徴とする暗号システム。
【数１３】
0006053983.tif 000149
【数１４】
0006053983.tif 000150
【数１５】
0006053983.tif 000151
【数１６】
0006053983.tif 000152
【請求項５】
基底Ｂ及び基底Ｂ＊を利用し、署名処理を行う署名システムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数１７に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数１８に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数１９に示す送信側ベクトルｓ＊ｉを含む署名Ｓｉｇを生成する署名装置と、
前記第２ベクトルを用いて、前記基底Ｂ＊におけるベクトルである数２０に示す受信側ベクトルｃｉを含む検証鍵ｖｋを取得し、前記受信側ベクトルｃｉと前記送信側ベクトルｓ＊ｉとに関してペアリング演算を行うことによって、前記署名Ｓｉｇを検証する検証装置と
を備えることを特徴とする署名システム。
【数１７】
0006053983.tif 000153
【数１８】
0006053983.tif 000154
【数１９】
0006053983.tif 000155
【数２０】
0006053983.tif 000156
【請求項６】
前記基底Ｂ及び前記基底Ｂ＊は、各行各列に少なくとも１つは定数値０以外の値を有する疎行列を用いて基底Ａを変形して生成された基底である
ことを特徴とする請求項１から５のいずれか１項に記載の暗号システム。
【請求項７】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号プログラムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数２１に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数２２に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数２３に示す送信側ベクトルｃ１を含む暗号文ｃｔΓを生成する暗号化処理と、
前記第２ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数２４に示す受信側ベクトルｋ＊ｉを含む復号鍵ｓｋＳを取得し、前記受信側ベクトルｋ＊ｉと前記送信側ベクトルｃ１とに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数２１】
0006053983.tif 000157
【数２２】
0006053983.tif 000158
【数２３】
0006053983.tif 000159
【数２４】
0006053983.tif 000160
【請求項８】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号プログラムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数２５に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数２６に示す第２ベクトルとのうちの前記第２ベクトルを用いて、前記基底Ｂにおけるベクトルである数２７に示す送信側ベクトルｃｉを含む暗号文ｃｔＳを生成する暗号化処理と、
前記第１ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数２８に示す受信側ベクトルｋ＊１を含む復号鍵ｓｋΓを取得し、前記受信側ベクトルｋ＊１と前記送信側ベクトルｃｉとに関してペアリング演算を行うことによって、前記暗号文ｃｔＳを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数２５】
0006053983.tif 000161
【数２６】
0006053983.tif 000162
【数２７】
0006053983.tif 000163
【数２８】
0006053983.tif 000164
【請求項９】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号プログラムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数２９に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数３０に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数３１に示す送信側ベクトルｃ１．ｔを含む暗号文ｃｔΓを生成する暗号化処理と、
前記第２ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数３２に示す受信側ベクトルｋ＊ｉを含む復号鍵ｓｋＳを取得し、前記受信側ベクトルｋ＊ｉと前記送信側ベクトルｃ１．ｔとに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数２９】
0006053983.tif 000165
【数３０】
0006053983.tif 000166
【数３１】
0006053983.tif 000167
【数３２】
0006053983.tif 000168
【請求項１０】
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号プログラムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数３３に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数３４に示す第２ベクトルとのうちの前記第２ベクトルを用いて、前記基底Ｂにおけるベクトルである数３５に示す送信側ベクトルｃｉを含む暗号文ｃｔＳを生成する暗号化処理と、
前記第１ベクトルを用いて生成された、前記基底Ｂ＊におけるベクトルである数３６に示す受信側ベクトルｋ＊１．ｔを含む復号鍵ｓｋΓを取得し、前記受信側ベクトルｋ＊１．ｔと前記送信側ベクトルｃｉとに関してペアリング演算を行うことによって、前記暗号文ｃｔΓを復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。
【数３３】
0006053983.tif 000169
【数３４】
0006053983.tif 000170
【数３５】
0006053983.tif 000171
【数３６】
0006053983.tif 000172
【請求項１１】
基底Ｂ及び基底Ｂ＊を利用し、署名処理を行う署名プログラムであり、
属性情報ｘｉ（ｉ＝１，．．．，ｎ’，ｎ’は１以上ｎ−１以下の整数，ｎは２以上の整数）を根とする多項式の係数ｙｊ（ｊ＝１，．．．，ｎ）からなる数３７に示す第１ベクトルと、述語情報ｖ１のべき乗ｖ１ｉ（ｉ＝０，．．．，ｎ−１）からなる数３８に示す第２ベクトルとのうちの前記第１ベクトルを用いて、前記基底Ｂにおけるベクトルである数３９に示す送信側ベクトルｓ＊ｉを含む署名Ｓｉｇを生成する署名処理と、
前記第２ベクトルを用いて、前記基底Ｂ＊におけるベクトルである数４０に示す受信側ベクトルｃｉを含む検証鍵ｖｋを取得し、前記受信側ベクトルｃｉと前記送信側ベクトルｓ＊ｉとに関してペアリング演算を行うことによって、前記署名Ｓｉｇを検証する検証処理と
をコンピュータに実行させることを特徴とする署名プログラム。
【数３７】
0006053983.tif 000173
【数３８】
0006053983.tif 000174
【数３９】
0006053983.tif 000175
【数４０】
0006053983.tif 000176
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、関数型暗号（Ｆｕｎｃｔｉｏｎａｌ  Ｅｎｃｒｙｐｔｉｏｎ，ＦＥ）方式に関するものである。
【背景技術】
【０００２】
特許文献１には、関数型暗号（Ｆｕｎｃｔｉｏｎａｌ  Ｅｎｃｒｙｐｔｉｏｎ，ＦＥ）方式に関する記載がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１３３２１４号公報
【非特許文献】
【０００４】
【非特許文献１】Ａｔｔｒａｐａｄｕｎｇ，  Ｎ．，  Ｌｉｂｅｒｔ，  Ｂ．，  ｄｅ  Ｐａｎａｆｉｅｕ，  Ｅ．：  Ｅｘｐｒｅｓｓｉｖｅ  ｋｅｙ−ｐｏｌｉｃｙ  ａｔｔｒｉｂｕｔｅ−ｂａｓｅｄ  ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  ｃｏｎｓｔａｎｔ−ｓｉｚｅ  ｃｉｐｈｅｒｔｅｘｔｓ．  Ｉｎ：  Ｃａｔａｌａｎｏ  ｅｔ  ａｌ．  ［６］，  ｐｐ．  ９０．１０８
【非特許文献２】Ｏｋａｍｏｔｏ，  Ｔ．，  Ｔａｋａｓｈｉｍａ，  Ｋ．：  Ａｃｈｉｅｖｉｎｇ  Ｓｈｏｒｔ  Ｃｉｐｈｅｒｔｅｘｔｓ  ｏｒ  Ｓｈｏｒｔ  Ｓｅｃｒｅｔ−Ｋｅｙｓ  ｆｏｒ  Ａｄａｐｔｉｖｅｌｙ  Ｓｅｃｕｒｅ  Ｇｅｎｅｒａｌ  Ｉｎｎｅｒ−Ｐｒｏｄｕｃｔ  Ｅｎｃｒｙｐｔｉｏｎ．  ＣＡＮＳ  ２０１１，  ＬＮＣＳ，  ｖｏｌ．  ７０９２，  ｐｐ．  １３８−１５９  Ｓｐｒｉｎｇｅｒ  Ｈｅｉｄｅｌｂｅｒｇ  （２０１１）．
【非特許文献３】Ｏｋａｍｏｔｏ，  Ｔ  Ｔａｋａｓｈｉｍａ，  Ｋ．：Ｄｅｃｅｎｔｒａｌｉｚｅｄ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｓｉｇｎａｔｕｒｅｓ．ｅＰｒｉｎｔ  ｈｔｔｐ：／／ｅｐｒｉｎｔ．ｉａｃｒ．ｏｒｇ／２０１１／７０１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された関数型暗号方式では、属性のカテゴリｔ毎に、暗号文を構成するベクトルあるいは復号鍵を構成するベクトルを生成する必要があり、暗号文のサイズが大きく、復号等にも処理時間がかかる。
この発明は、暗号文、復号鍵、署名等のサイズを小さくすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る暗号システムは、
基底Ｂ及び基底Ｂ＊を利用し、暗号処理を行う暗号システムであり、
ｘｉを根とする多項式の係数ｙｊからなる第１ベクトルと、ｖ１のべき乗ｖ１ｉからなる第２ベクトルとの一方のベクトルを用いて生成された送信側ベクトルであって、前記基底Ｂにおけるベクトルである送信側ベクトルを生成する送信装置と、
前記第１ベクトルと前記第２ベクトルとの他方のベクトルを用いて生成された受信側ベクトルであって、前記基底Ｂ＊におけるベクトルである受信側ベクトルと、前記送信側ベクトルとについて、ペアリング演算を行う受信装置と
を備えることを特徴とする。
【発明の効果】
【０００７】
この発明に係る暗号システムは、送信側ベクトルや受信側ベクトルを生成するために用いるベクトルの構成を工夫したことにより、暗号文、復号鍵、署名等のサイズを小さくできる。
【図面の簡単な説明】
【０００８】
【図１】行列Ｍ＾の説明図。
【図２】行列Ｍδの説明図。
【図３】ｓ０の説明図。
【図４】ｓ→Ｔの説明図。
【図５】実施の形態１に係るＫＰ−ＡＢＥ方式を実現する暗号システム１０の構成図。
【図６】実施の形態１に係る鍵生成装置１００の構成図。
【図７】実施の形態１に係る暗号化装置２００の構成図。
【図８】実施の形態１に係る復号装置３００の構成図。
【図９】実施の形態１に係るＳｅｔｕｐアルゴリズムの処理を示すフローチャート。
【図１０】実施の形態１に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャート。
【図１１】実施の形態１に係るＥｎｃアルゴリズムの処理を示すフローチャート。
【図１２】実施の形態１に係るＤｅｃアルゴリズムの処理を示すフローチャート。
【図１３】実施の形態２に係るＣＰ−ＡＢＥ方式を実現する暗号システム１０の構成図。
【図１４】実施の形態２に係る鍵生成装置１００の構成図。
【図１５】実施の形態２に係る暗号化装置２００の構成図。
【図１６】実施の形態２に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャート。
【図１７】実施の形態２に係るＥｎｃアルゴリズムの処理を示すフローチャート。
【図１８】実施の形態４に係るＡＢＳ方式を実現する暗号システム１０の構成図。
【図１９】実施の形態４に係る鍵生成装置１００の構成図。
【図２０】実施の形態４に係る署名装置４００の構成図。
【図２１】実施の形態４に係る検証装置５００の構成図。
【図２２】実施の形態４に係るＳｅｔｕｐアルゴリズムの処理を示すフローチャート。
【図２３】実施の形態４に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャート。
【図２４】実施の形態４に係るＳｉｇアルゴリズムの処理を示すフローチャート。
【図２５】実施の形態４に係るＶｅｒアルゴリズムの処理を示すフローチャート。
【図２６】実施の形態１〜５に示した暗号システム１０の各装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下の説明における記法について説明する。
Ａがランダムな変数または分布であるとき、数１０１は、Ａの分布に従いＡからｙをランダムに選択することを表す。つまり、数１０１において、ｙは乱数である。
【数１０１】
0006053983.tif 000002
Ａが集合であるとき、数１０２は、Ａからｙを一様に選択することを表す。つまり、数１０２において、ｙは一様乱数である。
【数１０２】
0006053983.tif 000003
数１０３は、ｙにｚが設定されたこと、ｙがｚにより定義されたこと、又はｙがｚを代入されたことを表す。
【数１０３】
0006053983.tif 000004
ａが定数であるとき、数１０４は、機械（アルゴリズム）Ａが入力ｘに対しａを出力することを表す。
【数１０４】
0006053983.tif 000005
数１０５、つまりＦｑは、位数ｑの有限体を示す。
【数１０５】
0006053983.tif 000006
ベクトル表記は、有限体Ｆｑにおけるベクトル表示を表す。つまり、数１０６である。
【数１０６】
0006053983.tif 000007
数１０７は、数１０８に示す２つのベクトルｘ→とｖ→との数１０９に示す内積を表す。
【数１０７】
0006053983.tif 000008
【数１０８】
0006053983.tif 000009
【数１０９】
0006053983.tif 000010
ＸＴは、行列Ｘの転置行列を表す。
数１１０に示す基底Ｂと基底Ｂ＊とに対して、数１１１である。
【数１１０】
0006053983.tif 000011
【数１１１】
0006053983.tif 000012
ｅ→ｊは、数１１２に示す正規基底ベクトルを示す。
【数１１２】
0006053983.tif 000013
【００１０】
また、以下の説明において、Ｖｔ，ｎｔ，ｕｔ，ｗｔ，ｚｔ，ｎｕ，ｗｕ，ｚｕが下付き又は上付きで示されている場合、このＶｔ，ｎｔ，ｕｔ，ｗｔ，ｚｔ，ｎｕ，ｗｕ，ｚｕはＶｔ，ｕｔ，ｎｔ，ｗｔ，ｚｔ，ｎｕ，ｗｕ，ｚｕを意味する。同様に、δｉ，ｊが上付きで示されている場合、このδｉ，ｊは、δｉ，ｊを意味する。同様に、φｊが上付きで示されている場合、このφｊは、φｊを意味する。同様に、ｓ０が下付き又は上付きで示されている場合、このｓ０は、ｓ０を意味する。
また、ベクトルを意味する→が下付き文字又は上付き文字に付されている場合、この→は下付き文字又は上付き文字に上付きで付されていることを意味する。
【００１１】
また、以下の説明において、暗号処理、暗号方式は、情報を第三者から秘匿するための狭義の暗号処理だけでなく、署名処理をも含むものであり、鍵生成処理、暗号化処理、復号処理、署名処理、検証処理を含む。
【００１２】
実施の形態１では、暗号方式を実現する基礎となる概念を説明した上で、実施の形態１に係る暗号方式の構成について説明する。
第１に、暗号方式を実現するための空間である双対ペアリングベクトル空間（Ｄｕａｌ  Ｐａｉｒｉｎｇ  Ｖｅｃｔｏｒ  Ｓｐａｃｅｓ，ＤＰＶＳ）という豊かな数学的構造を有する空間について説明する。
第２に、暗号方式を実現するための概念について説明する。ここでは、スパンプログラム、アクセス構造、秘密分散方式（秘密共有方式）について説明する。
第３に、実施の形態１に係る暗号方式の基本構成について説明する。実施の形態１では、鍵ポリシーの属性ベース暗号（Ｋｅｙ−Ｐｏｌｉｃｙ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ，ＫＰ−ＡＢＥ）方式について説明する。
第４に、実施の形態１に係る暗号方式を実現する暗号システム１０の基本構成について説明する。
第５に、実施の形態１に係る暗号方式のキーテクニック及び簡略化した暗号方式について説明する。
第６に、実施の形態１に係る暗号方式について詳細に説明する。
【００１３】
＜第１．双対ペアリングベクトル空間＞
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群（ｑ，Ｇ，ＧＴ，ｇ，ｅ）は、素数ｑと、位数ｑの巡回加法群Ｇと、位数ｑの巡回乗法群ＧＴと、ｇ≠０∈Ｇと、多項式時間で計算可能な非退化双線形ペアリング（Ｎｏｎｄｅｇｅｎｅｒａｔｅ  Ｂｉｌｉｎｅａｒ  Ｐａｉｒｉｎｇ）ｅ：Ｇ×Ｇ→ＧＴとの組である。非退化双線形ペアリングは、ｅ（ｓｇ，ｔｇ）＝ｅ（ｇ，ｇ）ｓｔであり、ｅ（ｇ，ｇ）≠１である。
以下の説明において、Ｇｂｐｇを、１λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ）の値を出力するアルゴリズムとする。
【００１４】
次に、双対ペアリングベクトル空間について説明する。
双対ペアリングベクトル空間（ｑ，Ｖ，ＧＴ，Ａ，ｅ）は、対称双線形ペアリング群（ｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ））の直積によって構成することができる。双対ペアリングベクトル空間（ｑ，Ｖ，ＧＴ，Ａ，ｅ）は、素数ｑ、数１１３に示すＦｑ上のＮ次元ベクトル空間Ｖ、位数ｑの巡回群ＧＴ、空間Ｖの標準基底Ａ：＝（ａ１，．．．，ａＮ）の組であり、以下の演算（１）（２）を有する。ここで、ａｉは、数１１４に示す通りである。
【数１１３】
0006053983.tif 000014
【数１１４】
0006053983.tif 000015
【００１５】
演算（１）：非退化双線形ペアリング
空間Ｖにおけるペアリングは、数１１５によって定義される。
【数１１５】
0006053983.tif 000016
これは、非退化双線形である。つまり、ｅ（ｓｘ，ｔｙ）＝ｅ（ｘ，ｙ）ｓｔであり、全てのｙ∈Ｖに対して、ｅ（ｘ，ｙ）＝１の場合、ｘ＝０である。また、全てのｉとｊとに対して、ｅ（ａｉ，ａｊ）＝ｅ（ｇ，ｇ）δｉ，ｊである。ここで、ｉ＝ｊであれば、δｉ，ｊ＝１であり、ｉ≠ｊであれば、δｉ，ｊ＝０である。また、ｅ（ｇ，ｇ）≠１∈ＧＴである。
【００１６】
演算（２）：ディストーション写像
数１１６に示す空間Ｖにおける線形変換φｉ，ｊは、数１１７を行うことができる。
【数１１６】
0006053983.tif 000017
【数１１７】
0006053983.tif 000018
ここで、線形変換φｉ，ｊをディストーション写像と呼ぶ。
【００１７】
以下の説明において、Ｇｄｐｖｓを、１λ（λ∈自然数）、Ｎ∈自然数、双線形ペアリング群のパラメータｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ）の値を入力として、セキュリティパラメータがλであり、Ｎ次元の空間Ｖとする双対ペアリングベクトル空間のパラメータｐａｒａｍＶ：＝（ｑ，Ｖ，ＧＴ，Ａ，ｅ）の値を出力するアルゴリズムとする。
【００１８】
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
【００１９】
＜第２．暗号方式を実現するための概念＞
＜第２−１．スパンプログラム＞
図１は、行列Ｍ＾の説明図である。
｛ｐ１，．．．，ｐｎ｝を変数の集合とする。Ｍ＾：＝（Ｍ，ρ）は、ラベル付けされた行列である。ここで、行列Ｍは、Ｆｑ上の（Ｌ行×ｒ列）の行列である。また、ρは、行列Ｍの各行に付されたラベルであり、｛ｐ１，．．．，ｐｎ，¬ｐ１，．．．，¬ｐｎ｝のいずれか１つのリテラルへ対応付けられる。なお、Ｍの全ての行に付されたラベルρi（ｉ＝１，．．．，Ｌ）がいずれか１つのリテラルへ対応付けられる。つまり、ρ：｛１，．．．，Ｌ｝→｛ｐ１，．．．，ｐｎ，¬ｐ１，．．．，¬ｐｎ｝である。
【００２０】
全ての入力列δ∈｛０，１｝ｎに対して、行列Ｍの部分行列Ｍδは定義される。行列Ｍδは、入力列δによってラベルρに値“１”が対応付けられた行列Ｍの行から構成される部分行列である。つまり、行列Ｍδは、δｉ＝１であるようなｐｉに対応付けられた行列Ｍの行と、δｉ＝０であるような¬ｐｉに対応付けられた行列Ｍの行とからなる部分行列である。
図２は、行列Ｍδの説明図である。なお、図２では、ｎ＝７，Ｌ＝６，ｒ＝５としている。つまり、変数の集合は、｛ｐ１，．．．，ｐ７｝であり、行列Ｍは（６行×５列）の行列である。また、図２において、ラベルρは、ρ１が¬ｐ２に、ρ２がｐ１に、ρ３がｐ４に、ρ４が¬ｐ５に、ρ５が¬ｐ３に、ρ６がｐ５にそれぞれ対応付けられているとする。
ここで、入力列δ∈｛０，１｝７が、δ１＝１，δ２＝０，δ３＝１，δ４＝０，δ５＝０，δ６＝１，δ７＝１であるとする。この場合、破線で囲んだリテラル（ｐ１，ｐ３，ｐ６，ｐ７，¬ｐ２，¬ｐ４，¬ｐ５）に対応付けられている行列Ｍの行からなる部分行列が行列Ｍδである。つまり、行列Ｍの１行目（Ｍ１），２行目（Ｍ２），４行目（Ｍ４）からなる部分行列が行列Ｍδである。
【００２１】
言い替えると、写像γ：｛１，．．．，Ｌ｝→｛０，１｝が、［ρ（ｊ）＝ｐｉ］∧［δｉ＝１］又は［ρ（ｊ）＝¬ｐｉ］∧［δｉ＝０］である場合、γ（ｊ）＝１であり、他の場合、γ（ｊ）＝０であるとする。この場合に、Ｍδ：＝（Ｍｊ）γ（ｊ）＝１である。ここで、Ｍｊは、行列Ｍのｊ番目の行である。
つまり、図２では、写像γ（ｊ）＝１（ｊ＝１，２，４）であり、写像γ（ｊ）＝０（ｊ＝３，５，６）である。したがって、（Ｍｊ）γ（ｊ）＝１は、Ｍ１，Ｍ２，Ｍ４であり、行列Ｍδである。
すなわち、写像γ（ｊ）の値が“０”であるか“１”であるかによって、行列Ｍのｊ番目の行が行列Ｍδに含まれるか否かが決定される。
【００２２】
１→∈ｓｐａｎ＜Ｍδ＞である場合に限り、スパンプログラムＭ＾は入力列δを受理し、他の場合には入力列δを拒絶する。つまり、入力列δによって行列Ｍ＾から得られる行列Ｍδの行を線形結合して１→が得られる場合に限り、スパンプログラムＭ＾は入力列δを受理する。なお、１→とは、各要素が値“１”である行ベクトルである。
例えば、図２の例であれば、行列Ｍの１，２，４行目からなる行列Ｍδの各行を線形結合して１→が得られる場合に限り、スパンプログラムＭ＾は入力列δを受理する。つまり、α１（Ｍ１）＋α２（Ｍ２）＋α４（Ｍ４）＝１→となるα１，α２，α４が存在する場合には、スパンプログラムＭ＾は入力列δを受理する。
【００２３】
ここで、ラベルρが正のリテラル｛ｐ１，．．．，ｐｎ｝にのみ対応付けられている場合、スパンプログラムはモノトーンと呼ばれる。一方、ラベルρがリテラル｛ｐ１，．．．，ｐｎ，¬ｐ１，．．．，¬ｐｎ｝に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ（ノンモノトーンアクセスストラクチャ）を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する暗号方式の利用範囲が広がる。
【００２４】
＜第２−２．アクセスストラクチャ＞
Ｕ（⊂｛０，１｝＊）は、全集合（ｕｎｉｖｅｒｓｅ）であり、属性の集合である。そして、Ｕは、属性の値、つまり、ｖ∈ＦＸｑ（：＝Ｆｑ＼｛０｝）によって表される。
【００２５】
属性がＭ＾：＝（Ｍ，ρ）における変数ｐになるように定義する。つまり、ｐ：＝ｖである。アクセスストラクチャＳは、変数ｐ：＝ｖ，ｐ’：＝ｖ’，．．．であるスパンプログラムＭ＾：＝（Ｍ，ρ）である。つまり、アクセスストラクチャＳは、ρ：｛１，．．．，Ｌ｝→｛ｖ，ｖ’，．．．，¬ｖ，¬ｖ’，．．．｝であるＳ：＝（Ｍ，ρ）である。
【００２６】
次に、Γを属性の集合とする。つまり、Γ：＝｛ｘｊ｜１≦ｊ≦ｎ’｝である。
アクセスストラクチャＳにΓが与えられた場合、スパンプログラムＭ＾：＝（Ｍ，ρ）に対する写像γ：｛１，．．．，Ｌ｝→｛０，１｝は、以下のように定義される。ｉ＝１，．．．，Ｌの各整数ｉについて、［ρ（ｉ）＝ｖｉ］∧［ｖｉ∈Γ］、又は、［ρ（ｉ）＝¬ｖｉ］∧［ｖｉ∈Γ］である場合、γ（ｊ）＝１であり、他の場合、γ（ｊ）＝０とする。
１→∈ｓｐａｎ＜（Ｍｉ）γ（ｉ）＝１＞である場合に限り、アクセスストラクチャＳ：＝（Ｍ，ρ）はΓを受理する。
【００２７】
＜第２−３．秘密分散方式＞
アクセスストラクチャＳ：＝（Ｍ，ρ）に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報ｓを１０個に分散させ、１０個の分散情報を生成する。ここで、１０個の分散情報それぞれは、秘密情報ｓの情報を有していない。したがって、ある１個の分散情報を手に入れても秘密情報ｓに関して何ら情報を得ることはできない。一方、１０個の分散情報を全て手に入れれば、秘密情報ｓを復元できる。
また、１０個の分散情報を全て手に入れなくても、一部だけ（例えば、８個）手に入れれば秘密情報ｓを復元できる秘密分散方式もある。このように、１０個の分散情報のうち８個で秘密情報ｓを復元できる場合を、８−ｏｕｔ−ｏｆ−１０と呼ぶ。つまり、ｎ個の分散情報のうちｔ個で秘密情報ｓを復元できる場合を、ｔ−ｏｕｔ−ｏｆ−ｎと呼ぶ。このｔを閾値と呼ぶ。
また、ｄ１，．．．，ｄ１０の１０個の分散情報を生成した場合に、ｄ１，．．．，ｄ８までの８個の分散情報であれば秘密情報ｓを復元できるが、ｄ３，．．．，ｄ１０までの８個の分散情報であれば秘密情報ｓを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報ｓを復元できるか否かを制御する秘密分散方式もある。
【００２８】
図３は、ｓ０の説明図である。図４は、ｓ→Ｔの説明図である。
行列Ｍを（Ｌ行×ｒ列）の行列とする。ｆ→Ｔを数１１８に示す列ベクトルとする。
【数１１８】
0006053983.tif 000019
数１１９に示すｓ０を共有される秘密情報とする。
【数１１９】
0006053983.tif 000020
また、数１２０に示すｓ→Ｔをｓ０のＬ個の分散情報のベクトルとする。
【数１２０】
0006053983.tif 000021
そして、分散情報ｓｉをρ（ｉ）に属するものとする。
【００２９】
アクセスストラクチャＳ：＝（Ｍ，ρ）がΓを受理する場合、つまりγ：｛１，．．．，Ｌ｝→｛０，１｝について１→∈ｓｐａｎ＜（Ｍｉ）γ（ｉ）＝１＞である場合、Ｉ⊆｛ｉ∈｛１，．．．，Ｌ｝｜γ（ｉ）-＝１｝である定数｛αｉ∈Ｆｑ｜ｉ∈Ｉ｝が存在する。
これは、図２の例で、α１（Ｍ１）＋α２（Ｍ２）＋α４（Ｍ４）＝１→となるα１，α２，α４が存在する場合には、スパンプログラムＭ＾は入力列δを受理すると説明したことからも明らかである。つまり、α１（Ｍ１）＋α２（Ｍ２）＋α４（Ｍ４）＝１→となるα１，α２，α４が存在する場合には、スパンプログラムＭ＾が入力列δを受理するのであれば、α１（Ｍ１）＋α２（Ｍ２）＋α４（Ｍ４）＝１→となるα１，α２，α４が存在する。
そして、数１２１である。
【数１２１】
0006053983.tif 000022
なお、定数｛αｉ｝は、行列Ｍのサイズにおける多項式時間で計算可能である。
【００３０】
＜第３．暗号方式（ＫＰ−ＡＢＥ方式）の基本構成＞
ＫＰ−ＡＢＥ方式の構成を簡単に説明する。なお、ＫＰ（鍵ポリシー）とは、暗号文にＰｏｌｉｃｙが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
【００３１】
ＫＰ−ＡＢＥ方式は、Ｓｅｔｕｐ、ＫｅｙＧｅｎ、Ｅｎｃ、Ｄｅｃの４つのアルゴリズムを備える。
（Ｓｅｔｕｐ）
Ｓｅｔｕｐアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限ｎとを入力として、公開パラメータｐｋと、マスター鍵ｓｋとを出力する確率的アルゴリズムである。
（ＫｅｙＧｅｎ）
ＫｅｙＧｅｎアルゴリズムは、公開パラメータｐｋと、マスター鍵ｓｋと、アクセスストラクチャＳ：＝（Ｍ，ρ）とを入力として、復号鍵ｓｋＳを出力する確率的アルゴリズムである。
（Ｅｎｃ）
Ｅｎｃアルゴリズムは、公開パラメータｐｋと、メッセージｍと、属性集合Γ：＝｛ｘｊ｝１≦ｊ≦ｎ’とを入力として、暗号文ｃｔΓを出力する確率的アルゴリズムである。
（Ｄｅｃ）
Ｄｅｃアルゴリズムは、公開パラメータｐｋと、復号鍵ｓｋＳと、暗号文ｃｔΓとを入力として、メッセージｍ、又は、識別情報⊥を出力するアルゴリズムである。
【００３２】
＜第４．暗号システム１０の基本構成＞
ＫＰ−ＡＢＥ方式のアルゴリズムを実現する暗号システム１０について説明する。
図５は、実施の形態１に係るＫＰ−ＡＢＥ方式を実現する暗号システム１０の構成図である。
暗号システム１０は、鍵生成装置１００、暗号化装置２００（送信装置の一例）、復号装置３００（受信装置の一例）を備える。
【００３３】
鍵生成装置１００は、セキュリティパラメータλと暗号文に対する属性の数の上限ｎとを入力としてＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター鍵ｓｋとを生成する。
そして、鍵生成装置１００は、公開パラメータｐｋを公開する。また、鍵生成装置１００は、アクセスストラクチャＳを入力としてＫＧアルゴリズムを実行して、復号鍵ｓｋＳを生成して復号装置３００へ秘密裏に送信する。
【００３４】
暗号化装置２００は、公開パラメータｐｋと、メッセージｍと、属性集合Γとを入力としてＥｎｃアルゴリズムを実行して、暗号文ｃｔΓを生成する。暗号化装置２００は、暗号文ｃｔΓを復号装置３００へ送信する。
【００３５】
復号装置３００は、公開パラメータｐｋと、復号鍵ｓｋＳと、暗号文ｃｔΓとを入力としてＤｅｃアルゴリズムを実行して、メッセージｍ又は識別情報⊥を出力する。
【００３６】
＜第５．キーテクニック及び簡略化した暗号方式＞
＜第５−１．エンコーディング＞
特許文献１に記載された関数型暗号方式では、各属性カテゴリに識別子ｔが割り当てられ、識別子ｔ毎に暗号文（あるいは復号鍵）の要素であるベクトルが生成された。
実施の形態１では、属性情報のエンコード方法を工夫することにより、属性カテゴリの識別子ｔをなくし、暗号文の要素であるベクトルを１つにする。
【００３７】
実施の形態１では、属性情報ｘｉを根とする多項式の係数ｙｊからなるベクトルｙ→：＝（ｙ１，．．．，ｙｎ）（第１ベクトル）の各要素を基底Ｂの各基底ベクトルの係数に設定して、暗号文の要素である（１つの）ベクトルを生成する。つまり、ｆ（ｚ）＝（ｚ−ｘ１）（ｚ−ｘ２）・・・（ｚ−ｘｎ）＝ｙ１ｚｎ＋・・・＋ｙｎ−１ｚ＋ｙｎであるベクトルｙ→：＝（ｙ１，．．．，ｙｎ）を基底Ｂの各基底ベクトルの係数に設定して、暗号文の要素であるベクトルを生成する。
【００３８】
また、ｉ＝１，．．．，Ｌの各整数ｉについて、ｖｉのべき乗ｖｉｊからなるベクトルｖｉ→：＝（ｖｉｎ−１，．．．，ｖｉ，１）（第２ベクトル）を基底Ｂ＊の各基底ベクトルの係数に設定して、復号鍵の要素である（１つ以上の）ベクトルを生成する。
【００３９】
これにより、暗号文の要素であるベクトルと、復号鍵の要素であるベクトルとについてペアリング演算を行うと、ｖｉがｆ（ｚ）に代入され、ｖｉがｘ１，．．．，ｘｎのいずれかと等しければ、ｆ（ｖｉ）＝０となり、ｖｉがｘ１，．．．，ｘｎのいずれかとも等しくなければ、ｆ（ｖｉ）≠０となるように制御することが可能になる。
【００４０】
＜第５−２．疎行列＞
特許文献１に記載された関数型暗号方式では、双対基底のペアである基底Ｂと基底Ｂ＊とが生成される。基底Ｂと基底Ｂ＊とは、ＧＬ（Ｎ，Ｆｑ）から一様に選択された、完全にランダムな線形変換Ｘ（基底変換行列）を用いて生成される。特に、基底Ｂと基底Ｂ＊とは、それぞれ、線形変換Ｘと、（Ｘ−１）Ｔとにより、標準基底Ａを変換して生成される。なお、Ｎは、ｓｐａｎ＜Ｂ＞とｓｐａｎ＜Ｂ＊＞との次元数である。
そして、双対ペアリングベクトル空間を暗号処理に適用した典型的なアプリケーションでは、基底Ｂの一部（Ｂ＾という）が公開パラメータとして用いられ、これに対応する基底Ｂ＊の一部（Ｂ＾＊という）が秘密鍵又はトラップドアとして用いられる。
【００４１】
実施の形態１では、上述した完全にランダムな線形変換Ｘに代えて、Ｘ∈ＧＬ（Ｎ，Ｆｑ）であるランダムな線形変換Ｘの特別な形式（疎行列）を用いる。
【００４２】
＜第５−３．簡略化した暗号方式＞
簡略化したＫＰ−ＡＢＥ方式について説明する。
簡略化したＫＰ−ＡＢＥ方式における暗号文は、２個のベクトル要素（ｃ０，ｃ１）∈Ｇ５×Ｇｎと、ｃ３∈ＧＴとからなる。秘密鍵は、アクセスストラクチャＳ：＝（Ｍ，，ρ）に対するＬ＋１個のベクトル要素（ｋ＊０，ｋ＊１，．．．，ｋ＊Ｌ∈Ｇ５×（Ｇｎ）Ｌ）からなる。ここで、行列Ｍの行数はＬであり、各ベクトル要素ｋ＊ｉは、行列Ｍの各行に対応している。なお、（ｃ０，ｃ１）∈Ｇ５×Ｇｎとは、ｃ０がＧの５個の要素であり、ｃ１がＧのｎ個の要素であることを意味する。同様に、（ｋ＊０，ｋ＊１，．．．，ｋ＊Ｌ∈Ｇ５×（Ｇｎ）Ｌとは、ｋ＊０がＧの５個の要素であり、ｋ＊１，．．．，ｋ＊ＬがＧのｎ個の要素であることを意味する。
そのため、暗号文のサイズを定数サイズにするには、ｃ１∈Ｇｎをｎについての定数サイズに圧縮する必要がある。
【００４３】
実施の形態１では、数１２２に示す特別な線形変換Ｘを用いる。
【数１２２】
0006053983.tif 000023
ここで、μ，μ’１，．．．，μ’ｎは有限体Ｆｑから一様に選択された値であり、線形変換Ｘにおける空白は０∈Ｆｑであることを示す。また、Ｈ（ｎ，Ｆｑ）とは、有限体Ｆｑを要素とするｎ次元の行列の集合を意味する。
【００４４】
公開鍵（ＤＰＶＳの基底）は、数１２３に示す基底Ｂである。
【数１２３】
0006053983.tif 000024
【００４５】
属性集合Γ：＝（ｘ１，．．．，ｘｎ’）に関連付けられた暗号文を、数１２３に示す暗号文ｃ１とする。
【数１２３】
0006053983.tif 000025
ここで、ωは有限体Ｆｑから一様に選択された値である。また、ｙ→：＝（ｙ１，．．．，ｙｎ）は、数１２４に示すベクトルである。
【数１２４】
0006053983.tif 000026
【００４６】
すると、暗号文ｃ１は、数１２５に示す２つのグループの要素Ｃ１，Ｃ２と、ベクトルｙ→とに圧縮できる。
【数１２５】
0006053983.tif 000027
暗号文ｃ１は、（ｙ１Ｃ１，．．．，ｙｎ−１Ｃ１，Ｃ２）によって得られるためである。なお、ｉ＝１，．．．，ｎ−１の各ｉについて、ｙｉＣ１＝ｙｉωμｇである。
したがって、暗号文（ベクトルｙ→を除いた部分）は、２つのグループの要素とすることができ、ｎについての定数サイズとなる。
【００４７】
Ｂ＊：＝（ｂ＊ｉ）を、Ｂ：＝（ｂｉ）の双対正規直交基底とし、基底Ｂ＊を、簡略化したＫＰ−ＡＢＥ方式におけるマスター秘密鍵であるとする。
（ｃ０，ｋ＊０，ｃ３）を、ｅ（ｃ０，ｋ＊０）＝ｇＴζ−ωｓ０であり、ｃ３：＝ｇＴζｍ∈ＧＴであるとする。ここで、ｓ０（ｓ０）は、アクセスストラクチャＳに関連付けられた共有情報｛ｓｉ｝ｉ＝１，．．．，Ｌのセンターシークレットである。
共有情報｛ｓｉ｝ｉ＝１，．．．，Ｌを用いて、アクセスストラクチャＳに対する秘密鍵の集合を数１２６のように設定する。
【数１２６】
0006053983.tif 000028
【００４８】
基底Ｂと基底Ｂ＊との双対正規直交性から、アクセスストラクチャＳが属性集合Γを受理するなら、数１２７となる補完係数｛αｉ｝ｉ∈Ｉが存在する。
【数１２７】
0006053983.tif 000029
そのため、アクセスストラクチャＳが属性集合Γを受理する場合に限り、復号者はｇＴωｓ０を計算でき、メッセージｍが得られる。
【００４９】
また、暗号文ｃ１は、（ｙ１Ｃ１，．．．，ｙｎ−１Ｃ１，Ｃ２）∈Ｇｎとして表され、秘密鍵ｋ〜＊は、（Ｄ＊１，．．．，Ｄ＊ｎ）のｎ組に分解される。そのため、ｅ（ｃ１，ｋ〜＊）の値は、数１２８である。
【数１２８】
0006053983.tif 000030
つまり、ｅ（ｃ１，ｋ〜＊）を計算するには、Ｇにおけるｎ−１個のスカラー乗法と、２つのペアリング演算とで十分である。すなわち、復号には、少ない数（定数）のペアリング演算だけが必要となる。一般に、ペアリング演算は、処理時間がかかる演算であるため、ペアリング演算の数を減らすことにより、処理全体としての処理時間を短くすることができる。
【００５０】
なお、簡略化したＫＰ−ＡＢＥ方式では、暗号文ｃ１はベクトルｙ→が設定される基底ベクトル（実際の符号化部）のみを備え、秘密鍵ｋ＊１はベクトルｖ→が設定される基底ベクトル（実際の符号化部）のみを備えた。
以下に説明するＫＰ−ＡＢＥ方式では、安全性を高めるため、暗号文ｃ１と秘密鍵ｋ＊１とに、実際の符号化部に加え、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための基底ベクトルを加える。
そのため、線形変換Ｘを数１２９のように６倍に拡張する。そして、実際の符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とにそれぞれ、ｎ、２ｎ、２ｎ、ｎ次元ずつ割り当てる。
【数１２９】
0006053983.tif 000031
ここで、各Ｘｉ，ｊは、数１２２に示すＸ∈Ｈ（ｎ，Ｆｑ）である。そして、ベクトル空間は、４つの直交する部分空間で構成される。つまり、ベクトル空間は、符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための４つの直交する部分空間で構成される。
【００５１】
＜第６．暗号方式＞
図６は、実施の形態１に係る鍵生成装置１００の構成図である。図７は、実施の形態１に係る暗号化装置２００の構成図である。図８は、実施の形態１に係る復号装置３００の構成図である。
図９と図１０とは、実施の形態１に係る鍵生成装置１００の動作を示すフローチャートである。なお、図９は、実施の形態１に係るＳｅｔｕｐアルゴリズムの処理を示すフローチャートであり、図１０は、実施の形態１に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャートである。図１１は、実施の形態１に係る暗号化装置２００の動作を示すフローチャートであり、実施の形態１に係るＥｎｃアルゴリズムの処理を示す。図１２は、実施の形態１に係る復号装置３００の動作を示すフローチャートであり、実施の形態１に係るＤｅｃアルゴリズムの処理を示す。
【００５２】
鍵生成装置１００の機能と動作とについて説明する。
図６に示すように、鍵生成装置１００は、マスター鍵生成部１１０、マスター鍵記憶部１２０、情報入力部１３０、復号鍵生成部１４０、鍵送信部１５０を備える。マスター鍵生成部１１０は、空間生成部１１１、行列生成部１１２、基底生成部１１３、鍵生成部１１４を備える。復号鍵生成部１４０は、ｆベクトル生成部１４１、ｓベクトル生成部１４２、乱数生成部１４３、鍵要素生成部１４４を備える。
【００５３】
図９に基づき、Ｓｅｔｕｐアルゴリズムの処理について説明する。
（Ｓ１０１：空間生成ステップ）
空間生成部１１１は、セキュリティパラメータ１λを入力として、処理装置によりＧｂｐｇを実行して、対称双線形ペアリング群のパラメータｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ）を生成する。
さらに、空間生成部１１１は、Ｎ０：＝５、Ｎ１：＝６ｎを設定する。そして、空間生成部１１１は、ｔ＝０，１の各整数ｔについて、セキュリティパラメータ１λと、Ｎｔと、対称双線形ペアリング群のパラメータｐａｒａｍＧとを入力として、処理装置によりＧｄｐｖｓを実行して、双対ペアリングベクトル空間のパラメータｐａｒａｍＶｔ：＝（ｑ，Ｖｔ，ＧＴ，Ａ，ｅ）を生成する。
【００５４】
（Ｓ１０２：線形変換生成ステップ）
行列生成部１１２は、処理装置により、線形変換Ｘ０を数１３０に示すように生成する。
【数１３０】
0006053983.tif 000032
なお、数１３０における（χ０，ｉ，ｊ）ｉ，ｊ＝１，．．．，５は、行列χ０，ｉ，ｊの添え字ｉ，ｊに関する行列という意味である。
また、行列生成部１１２は、処理装置により、線形変換Ｘ１を数１３１に示すように生成する。
【数１３１】
0006053983.tif 000033
数１３１におけるＬ（６，ｎ，Ｆｑ）は、数１３２に示す通りである。
【数１３２】
0006053983.tif 000034
なお、以下、｛μｉ，ｊ，μ’ｉ，ｊ，Ｌ｝ｉ，ｊ＝１，．．．，６；Ｌ＝１，．．．，ｎは、線形変換Ｘ１における０以外の要素を示す。
【００５５】
（Ｓ１０３：基底Ｂ生成ステップ）
基底生成部１１３は、処理装置により、基底Ｂ０と変数Ｂｉ，ｊと変数Ｂ’ｉ，ｊ，Ｌとを数１３３に示すように生成する。
【数１３３】
0006053983.tif 000035
また、基底生成部１１３は、処理装置により、基底Ｂ＊０と基底Ｂ＊１とを数１３４に示すように生成する。
【数１３４】
0006053983.tif 000036
【００５６】
（Ｓ１０４：基底Ｂ＾生成ステップ）
鍵生成部１１４は、処理装置により、基底Ｂ＾０と、基底Ｂ＾１と、基底Ｂ＾＊０と、基底Ｂ＾＊１とを数１３５に示すように生成する。
【数１３５】
0006053983.tif 000037
【００５７】
（Ｓ１０５：マスター鍵生成ステップ）
鍵生成部１１４は、処理装置により、公開パラメータｐｋ：＝（１λ，ｐａｒａｍｎ，｛Ｂ＾ｔ｝ｔ＝０，１）とし、マスター秘密鍵ｓｋ：＝｛Ｂ＾＊ｔ｝ｔ＝０，１とする。そして、鍵生成部１１４は、公開パラメータｐｋと、マスター秘密鍵ｓｋとをマスター鍵記憶部１２０に記憶する。
なお、ｐａｒａｍｎ：＝（｛ｐａｒａｍＶｔ｝ｔ＝０，１，ｇＴ：＝ｅ（ｇ，ｇ）φ）である。
【００５８】
つまり、（Ｓ１０１）から（Ｓ１０５）において、鍵生成装置１００は、数１３６に示すアルゴリズムＧＡＢＥ（１）ｏｂを用いた、数１３７に示すＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター秘密鍵ｓｋとを生成する。
【数１３６】
0006053983.tif 000038
【数１３７】
0006053983.tif 000039
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置２００や復号装置３００が取得可能な状態にされる。
【００５９】
Ｓ１０３では、基底Ｂ１を生成せず、代わりに変数Ｂｉ，ｊを生成した。基底Ｂ１を生成するのであれば、数１３８のようになる。
【数１３８】
0006053983.tif 000040
数１３８の行列における空白部分は成分の値が０∈Ｇであることを示している。基底Ｂ１は、基底Ｂ＊１の正規直交基底である。つまり、ｅ（ｂ１，ｉ，ｂ＊１，ｉ）＝ｇＴであり、１≦ｉ≠ｊ≦６ｎの整数ｉ，ｊに対して、ｅ（ｂ１，ｉ，ｂ＊１，ｊ）＝１である。
【００６０】
図１０に基づき、ＫｅｙＧｅｎアルゴリズムの処理について説明する。
（Ｓ２０１：情報入力ステップ）
情報入力部１３０は、入力装置により、アクセスストラクチャＳ：＝（Ｍ，ρ）を入力する。なお、アクセスストラクチャＳの行列Ｍの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャＳのρは、例えば、復号鍵ｓｋＳの使用者の属性情報が設定されている。
【００６１】
（Ｓ２０２：ｆベクトル生成ステップ）
ｆベクトル生成部１４１は、処理装置により、ベクトルｆ→を数１３９に示すようにランダムに生成する。
【数１３９】
0006053983.tif 000041
【００６２】
（Ｓ２０３：ｓベクトル生成ステップ）
ｓベクトル生成部１４２は、処理装置により、ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔを数１４０に示すように生成する。
【数１４０】
0006053983.tif 000042
また、ｓベクトル生成部１４２は、処理装置により、値ｓ０を数１４１に示すように生成する。
【数１４１】
0006053983.tif 000043
【００６３】
（Ｓ２０４：乱数生成ステップ）
乱数生成部１４３は、処理装置により、乱数を数１４２に示すように生成する。
【数１４２】
0006053983.tif 000044
【００６４】
（Ｓ２０５：鍵要素生成ステップ）
鍵要素生成部１４４は、処理装置により、復号鍵ｓｋＳの要素ｋ＊０を数１４３に示すように生成する。
【数１４３】
0006053983.tif 000045
また、鍵要素生成部１４４は、処理装置により、ｉ＝１，．．．，Ｌの各整数ｉについて、復号鍵ｓｋＳの要素ｋ＊ｉを数１４４に示すように生成する。
【数１４４】
0006053983.tif 000046
【００６５】
（Ｓ２０６：鍵送信ステップ）
鍵送信部１５０は、（Ｓ２０１）で入力したアクセスストラクチャＳと、（Ｓ２０５）で生成されたｋ＊０，ｋ＊１，．．．，ｋ＊Ｌとを要素とする復号鍵ｓｋＳを、例えば通信装置によりネットワークを介して秘密裡に復号装置３００へ送信する。もちろん、復号鍵ｓｋＳは、他の方法により復号装置３００へ送信されてもよい。
【００６６】
つまり、（Ｓ２０１）から（Ｓ２０５）において、鍵生成装置１００は、数１４５に示すＫｅｙＧｅｎアルゴリズムを実行して、復号鍵ｓｋＳを生成する。そして、（Ｓ２０６）で、鍵生成装置１００は、生成した復号鍵ｓｋＳを復号装置３００へ送信する。
【数１４５】
0006053983.tif 000047
【００６７】
暗号化装置２００の機能と動作とについて説明する。
図７に示すように、暗号化装置２００は、公開パラメータ受信部２１０、情報入力部２２０、暗号化データ生成部２３０、データ送信部２４０を備える。また、暗号化データ生成部２３０は、乱数生成部２３１、暗号要素生成部２３２を備える。
【００６８】
図１１に基づき、Ｅｎｃアルゴリズムの処理について説明する。
（Ｓ３０１：公開パラメータ受信ステップ）
公開パラメータ受信部２１０は、例えば、通信装置によりネットワークを介して、鍵生成装置１００が生成した公開パラメータｐｋを受信する。
【００６９】
（Ｓ３０２：情報入力ステップ）
情報入力部２２０は、入力装置により、復号装置３００へ送信するメッセージｍを入力する。また、情報入力部２２０は、入力装置により、属性集合Γ：＝｛ｘ１，．．．，ｘｎ’｜ｘｊ∈ＦｑＸ，ｎ’≦ｎ−１｝を入力する。また、属性集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
【００７０】
（Ｓ３０３：乱数生成ステップ）
乱数生成部２３１は、処理装置により、乱数を数１４６に示すように生成する。
【数１４６】
0006053983.tif 000048
【００７１】
（Ｓ３０４：暗号要素生成ステップ）
暗号要素生成部２３２は、処理装置により、暗号文ｃｔΓの要素ｃ０を数１４７に示すように生成する。
【数１４７】
0006053983.tif 000049
また、暗号要素生成部２３２は、処理装置により、暗号文ｃｔΓの要素Ｃ１，ｊ，Ｃ２，ｊを数１４８に示すように生成する。
【数１４８】
0006053983.tif 000050
また、暗号要素生成部２３２は、処理装置により、暗号文ｃｔΓの要素ｃ３を数１４９に示すように生成する。
【数１４９】
0006053983.tif 000051
【００７２】
（Ｓ３０５：データ送信ステップ）
データ送信部２４０は、（Ｓ３０２）で入力した属性集合Γと、（Ｓ３０４）で生成されたｃ０，Ｃ１，ｊ，Ｃ２，ｊ，ｃ３とを要素とする暗号文ｃｔΓを、例えば通信装置によりネットワークを介して復号装置３００へ送信する。もちろん、暗号文ｃｔΓは、他の方法により復号装置３００へ送信されてもよい。
【００７３】
つまり、（Ｓ３０１）から（Ｓ３０４）において、暗号化装置２００は、数１５０に示すＥｎｃアルゴリズムを実行して、暗号文ｃｔΓを生成する。そして、（Ｓ３０５）で、暗号化装置２００は生成した暗号文ｃｔΓを復号装置３００へ送信する。
【数１５０】
0006053983.tif 000052
【００７４】
復号装置３００の機能と動作とについて説明する。
図８に示すように、復号装置３００は、復号鍵受信部３１０、データ受信部３２０、スパンプログラム計算部３３０、補完係数計算部３４０、復号部３５０を備える。
【００７５】
図１２に基づき、Ｄｅｃアルゴリズムの処理について説明する。
（Ｓ４０１：復号鍵受信ステップ）
復号鍵受信部３１０は、例えば、通信装置によりネットワークを介して、鍵生成装置１００から送信された復号鍵ｓｋＳを受信する。また、復号鍵受信部３１０は、鍵生成装置１００が生成した公開パラメータｐｋを受信する。
【００７６】
（Ｓ４０２：データ受信ステップ）
データ受信部３２０は、例えば、通信装置によりネットワークを介して、暗号化装置２００が送信した暗号文ｃｔΓを受信する。
【００７７】
（Ｓ４０３：スパンプログラム計算ステップ）
スパンプログラム計算部３３０は、処理装置により、（Ｓ４０１）で受信した復号鍵ｓｋＳに含まれるアクセスストラクチャＳが、（Ｓ４０２）で受信した暗号文ｃｔΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャＳがΓを受理するか否かの判定方法は、「第２．暗号方式を実現するための概念」で説明した通りである。
スパンプログラム計算部３３０は、アクセスストラクチャＳがΓを受理する場合（Ｓ４０３で受理）、処理を（Ｓ４０４）へ進める。一方、アクセスストラクチャＳがΓを拒絶する場合（Ｓ４０３で拒絶）、暗号文ｃｔΓを復号鍵ｓｋＳで復号できないとして処理を終了する。
【００７８】
（Ｓ４０４：補完係数計算ステップ）
補完係数計算部３４０は、処理装置により、数１５１となるＩと、定数（補完係数）｛αｉ｝ｉ∈Ｉとを計算する。
【数１５１】
0006053983.tif 000053
【００７９】
（Ｓ４０５：復号要素生成ステップ）
復号部３５０は、処理装置により、復号要素Ｄ＊１，．．．，Ｄ＊６ｎ，Ｅ＊ｊを数１５２に示すように生成する。
【数１５２】
0006053983.tif 000054
【００８０】
（Ｓ４０６：ペアリング演算ステップ）
復号部３５０は、処理装置により、数１５３を計算して、セッション鍵Ｋ＝ｇＴζを生成する。
【数１５３】
0006053983.tif 000055
【００８１】
（Ｓ４０７：メッセージ計算ステップ）
復号部３５０は、処理装置により、ｍ’＝ｃ３／Ｋを計算して、メッセージｍ’（＝ｍ）を生成する。
【００８２】
つまり、（Ｓ４０１）から（Ｓ４０７）において、復号装置３００は、数１５４に示すＤｅｃアルゴリズムを実行して、メッセージｍ’（＝ｍ）を生成する。
【数１５４】
0006053983.tif 000056
【００８３】
なお、数１３８からＢ１：＝（ｂ１，１，．．．，ｂ１，６ｎ）は、｛Ｂｉ，ｊ，Ｂ’ｉ，ｊ，Ｌ｝ｉ，ｊ＝１，．．．，６；Ｌ＝１，．．．，ｎによって特定される。また、Ｓｅｔｕｐアルゴリズムの出力に含まれる｛Ｂｉ，ｊ，Ｂ’ｉ，ｊ，Ｌ｝ｉ＝１，６；ｊ＝１，．．．，６；Ｌ＝１，．．．，ｎは、Ｂ＾１：＝（ｂ１，１，．．．，ｂ１，ｎ，ｂ１，５ｎ＋１，．．．，ｂ１，６ｎ）によって特定される。
そして、Ｄｅｃアルゴリズムは、数１５５に示すＤｅｃ’アルゴリズムのように記述することができる。
【数１５５】
0006053983.tif 000057
【００８４】
数１５６に示すように、Ｄｅｃ'アルゴリズムを用いた場合、Ｋ：＝ｇζＴが得られる。そのため、ｃ３＝ｇζＴｍをＫで除することにより、メッセージｍ’（＝ｍ）が得られる。
【数１５６】
0006053983.tif 000058
【００８５】
実施の形態１で説明したＫＰ−ＡＢＥ方式では、暗号文ｃｔΓは、要素ｃ０で５個と、ｊ＝１，．．．，６の各整数ｊについての要素Ｃ１，ｊ及び要素Ｃ２，ｊで１２個との合計１７個のＧの要素と、要素ｃ３で１個のＧＴの要素とから構成される。つまり、暗号文ｃｔΓは、ｎについて定数サイズである。
【００８６】
また、実施の形態１で説明したＫＰ−ＡＢＥ方式では、復号処理（Ｄｅｃアルゴリズム）は、数１５３に示すｅ（ｃ０，ｋ＊０）で５個と、Πｊ＝１６（ｅ（Ｃ１，ｊ，Ｅ＊ｊ）・ｅ（Ｃ２，ｊ，Ｄ＊ｊｎ））で１２個との合計１７個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
【００８７】
実施の形態２．
実施の形態２では、秘密鍵のサイズを定数サイズとした暗号文ポリシーの属性ベース暗号（Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ  ＡＢＥ，ＣＰ−ＡＢＥ）方式について説明する。
実施の形態２では、実施の形態１と同じ部分については説明を省略し、実施の形態１と異なる部分について説明する。
【００８８】
第１に、実施の形態２に係る暗号方式の基本構成について説明する。
第２に、実施の形態２に係る暗号方式を実現する暗号システム１０の構成について説明する。
第３に、実施の形態２に係る暗号方式について詳細に説明する。
【００８９】
＜第１．暗号方式の基本構成＞
ＣＰ−ＡＢＥ方式の構成を簡単に説明する。なお、Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙとは、暗号文にＰｏｌｉｃｙが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
ＣＰ−ＡＢＥ方式は、Ｓｅｔｕｐ、ＫｅｙＧｅｎ、Ｅｎｃ、Ｄｅｃの４つのアルゴリズムを備える。
（Ｓｅｔｕｐ）
Ｓｅｔｕｐアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限ｎとが入力され、公開パラメータｐｋと、マスター鍵ｓｋとを出力する確率的アルゴリズムである。
（ＫｅｙＧｅｎ）
ＫｅｙＧｅｎアルゴリズムは、公開パラメータｐｋと、マスター鍵ｓｋと、属性集合Γ：＝｛ｘｊ｝１≦ｊ≦ｎ’とを入力として、復号鍵ｓｋΓを出力する確率的アルゴリズムである。
（Ｅｎｃ）
Ｅｎｃアルゴリズムは、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳ：＝（Ｍ，ρ）とを入力として、暗号文ｃｔＳを出力する確率的アルゴリズムである。
（Ｄｅｃ）
Ｄｅｃアルゴリズムは、公開パラメータｐｋと、復号鍵ｓｋΓと、暗号文ｃｔＳとを入力として、メッセージｍ、又は、識別情報⊥を出力するアルゴリズムである。
【００９０】
＜第２．ＣＰ−ＡＢＥ方式を実現する暗号システム１０の構成＞
図１３は、実施の形態２に係るＣＰ−ＡＢＥ方式を実現する暗号システム１０の構成図である。
暗号システム１０は、鍵生成装置１００、暗号化装置２００（送信装置の一例）、復号装置３００（受信装置の一例）を備える。
鍵生成装置１００は、セキュリティパラメータλと暗号文に対する属性の数の上限ｎとを入力としてＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター鍵ｓｋとを生成する。そして、鍵生成装置１００は、生成した公開パラメータｐｋを公開する。また、鍵生成装置１００は、属性集合Γを入力としてＫｅｙＧｅｎアルゴリズムを実行して、復号鍵ｓｋΓを生成して復号装置３００へ秘密裡に送信する。
暗号化装置２００は、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳとを入力としてＥｎｃアルゴリズムを実行して、暗号文ｃｔＳを生成する。暗号化装置２００は、生成した暗号文ｃｔＳを復号装置３００へ送信する。
復号装置３００は、公開パラメータｐｋと、復号鍵ｓｋΓと、暗号文ｃｔＳとを入力としてＤｅｃアルゴリズムを実行して、メッセージｍ又は識別情報⊥を出力する。
【００９１】
＜第３．暗号方式＞
図１４は、実施の形態２に係る鍵生成装置１００の構成図である。図１５は、実施の形態２に係る暗号化装置２００の構成図である。復号装置３００の構成は、図８に示す実施の形態１に係る復号装置３００の構成と同じである。
図１６は、実施の形態２に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャートである。図１７は、実施の形態２に係るＥｎｃアルゴリズムの処理を示すフローチャートである。Ｓｅｔｕｐアルゴリズムの処理とＤｅｃアルゴリズムの処理とは、それぞれ図９、図１２に示す実施の形態１に係るＳｅｔｕｐアルゴリズムの処理とＤｅｃアルゴリズムの処理と同じ流れである。
【００９２】
鍵生成装置１００の機能と動作とについて説明する。
図１４に示すように、鍵生成装置１００は、マスター鍵生成部１１０、マスター鍵記憶部１２０、情報入力部１３０、復号鍵生成部１４０、鍵送信部１５０を備える。マスター鍵生成部１１０は、空間生成部１１１、行列生成部１１２、基底生成部１１３、鍵生成部１１４を備える。復号鍵生成部１４０は、乱数生成部１４３、鍵要素生成部１４４を備える。
【００９３】
図９に基づき、Ｓｅｔｕｐアルゴリズムの処理について説明する。
（Ｓ１０１）から（Ｓ１０２）までの処理は、実施の形態１と同じである。
【００９４】
（Ｓ１０３：基底Ｂ生成ステップ）
基底生成部１１３は、処理装置により、実施の形態１における基底Ｂ０と変数Ｂｉ，ｊと変数Ｂ’ｉ，ｊ，Ｌと同様に、基底Ｄ０と変数Ｄｉ，ｊと変数Ｄ’ｉ，ｊ，Ｌとを数１５７に示すように生成する。
【数１５７】
0006053983.tif 000059
また、基底生成部１１３は、処理装置により、実施の形態１における基底Ｂ＊０と基底Ｂ＊１と同様に、基底Ｄ＊０と基底Ｄ＊１とを数１５８に示すように生成する。
【数１５８】
0006053983.tif 000060
そして、基底生成部１１３は、基底Ｄ＊０を基底Ｂ０とし、基底Ｄ０を基底Ｂ＊０とし、基底Ｄ＊１を基底Ｂ１とする。また、基底生成部１１３は、ｉ，ｊ＝１，．．．，６の各整数ｉ，ｊと、Ｌ＝１，．．．，ｎの各整数Ｌとについて、変数Ｄｉ，ｊを変数Ｂ＊ｉ，ｊとし、変数Ｄ’ｉ，ｊ，Ｌを変数Ｂ’＊ｉ，ｊ，Ｌとする。
【００９５】
（Ｓ１０４：基底Ｂ＾生成ステップ）
鍵生成部１１４は、処理装置により、基底Ｂ＾０と、基底Ｂ＾１と、基底Ｂ＾＊０と、基底Ｂ＾＊１とを数１５９に示すように生成する。
【数１５９】
0006053983.tif 000061
【００９６】
（Ｓ１０５）の処理は、実施の形態１と同じである。
【００９７】
つまり、（Ｓ１０１）から（Ｓ１０５）において、鍵生成装置１００は、数１６０に示すアルゴリズムＧＡＢＥ（２）ｏｂを用いた、数１６１に示すＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター秘密鍵ｓｋとを生成する。ここで、数１６０に示すように、アルゴリズムＧＣＰ−ＡＢＥ（２）ｏｂは、数１３６に示すアルゴリズムＧＡＢＥ（１）ｏｂを用いる。
【数１６０】
0006053983.tif 000062
【数１６１】
0006053983.tif 000063
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置２００や復号装置３００が取得可能な状態にされる。
【００９８】
図１６に基づき、ＫｅｙＧｅｎアルゴリズムの処理について説明する。
（Ｓ５０１：情報入力ステップ）
情報入力部１３０は、入力装置により、属性集合Γ：＝｛ｘ１，．．．，ｘｎ’｜ｘｊ∈ＦｑＸ，ｎ’≦ｎ−１｝を入力する。なお、属性集合Γは、例えば、復号鍵ｓｋΓの使用者の属性情報が設定されている。
【００９９】
（Ｓ５０２：乱数生成ステップ）
乱数生成部１４３は、処理装置により、乱数を数１６２に示すように生成する。
【数１６２】
0006053983.tif 000064
【０１００】
（Ｓ５０３：鍵要素生成ステップ）
鍵要素生成部１４４は、処理装置により、復号鍵ｓｋΓの要素ｋ＊０を数１６３に示すように生成する。
【数１６３】
0006053983.tif 000065
また、鍵要素生成部１４４は、処理装置により、復号鍵ｓｋΓの要素Ｋ＊１，ｊ，Ｋ＊２，ｊを数１６４に示すように生成する。
【数１６４】
0006053983.tif 000066
【０１０１】
（Ｓ５０４：鍵送信ステップ）
鍵送信部１５０は、（Ｓ５０１）で入力した属性の集合Γと、（Ｓ５０３）で生成されたｋ＊０，Ｋ＊１，ｊ，Ｋ＊２，ｊとを要素とする復号鍵ｓｋΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置３００へ送信する。もちろん、復号鍵ｓｋΓは、他の方法により復号装置３００へ送信されてもよい。
【０１０２】
つまり、（Ｓ５０１）から（Ｓ５０３）において、鍵生成装置１００は、数１６５に示すＫｅｙＧｅｎアルゴリズムを実行して、復号鍵ｓｋΓを生成する。そして、（Ｓ５０４）で、鍵生成装置１００は、生成した復号鍵ｓｋΓを復号装置３００へ送信する。
【数１６５】
0006053983.tif 000067
【０１０３】
暗号化装置２００の機能と動作とについて説明する。
図１５に示すように、暗号化装置２００は、公開パラメータ受信部２１０、情報入力部２２０、暗号化データ生成部２３０、データ送信部２４０を備える。また、暗号化データ生成部２３０は、乱数生成部２３１、暗号要素生成部２３２、ｆベクトル生成部２３３、ｓベクトル生成部２３４を備える。
【０１０４】
図１７に基づき、Ｅｎｃアルゴリズムの処理について説明する。
（Ｓ６０１）の処理は、図１１に示す（Ｓ３０１）の処理と同じである。
【０１０５】
（Ｓ６０２：情報入力ステップ）
情報入力部２２０は、入力装置により、アクセスストラクチャＳ：＝（Ｍ，ρ）を入力する。なお、アクセスストラクチャＳの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャＳのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部２２０は、入力装置により、復号装置３００へ送信するメッセージｍを入力する。
【０１０６】
（Ｓ６０３：ｆベクトル生成ステップ）
ｆベクトル生成部２３３は、処理装置により、ベクトルｆ→を数１６６に示すようにランダムに生成する。
【数１６６】
0006053983.tif 000068
【０１０７】
（Ｓ６０４：ｓベクトル生成ステップ）
ｓベクトル生成部２３４は、処理装置により、ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔを数１６７に示すように生成する。
【数１６７】
0006053983.tif 000069
また、ｓベクトル生成部２３４は、処理装置により、値ｓ０を数１６８に示すように生成する。
【数１６８】
0006053983.tif 000070
【０１０８】
（Ｓ６０５：乱数生成ステップ）
乱数生成部２３１は、処理装置により、乱数を数１６９に示すように生成する。
【数１６９】
0006053983.tif 000071
【０１０９】
（Ｓ６０６：暗号要素生成ステップ）
暗号要素生成部２３２は、処理装置により、暗号文ｃｔＳの要素ｃ０を数１７０に示すように生成する。
【数１７０】
0006053983.tif 000072
また、暗号要素生成部２３２は、処理装置により、ｉ＝１，．．．，Ｌの各整数ｉについて、暗号文ｃｔＳの要素ｃｉを数１７１に示すように生成する。
【数１７１】
0006053983.tif 000073
また、暗号要素生成部２３２は、処理装置により、暗号文ｃｔＳの要素ｃ３を数１７２に示すように生成する。
【数１７２】
0006053983.tif 000074
【０１１０】
（Ｓ６０７：データ送信ステップ）
データ送信部２４０は、（Ｓ６０２）で入力したアクセスストラクチャＳと、（Ｓ６０６）で生成されたｃ０，ｃ１，．．．，ｃＬ，ｃ３とを要素とする暗号文ｃｔＳを、例えば通信装置によりネットワークを介して復号装置３００へ送信する。もちろん、暗号文ｃｔＳは、他の方法により復号装置３００へ送信されてもよい。
【０１１１】
つまり、（Ｓ６０１）から（Ｓ６０６）において、暗号化装置２００は、数１７３に示すＥｎｃアルゴリズムを実行して、暗号文ｃｔＳを生成する。そして、（Ｓ６０７）で、暗号化装置２００は生成した暗号文ｃｔＳを復号装置３００へ送信する。
【数１７３】
0006053983.tif 000075
【０１１２】
復号装置３００の機能と動作とについて説明する。
図１２に基づき、Ｄｅｃアルゴリズムの処理について説明する。
（Ｓ４０１：復号鍵受信ステップ）
復号鍵受信部３１０は、例えば、通信装置によりネットワークを介して、鍵生成装置１００から送信された復号鍵ｓｋΓを受信する。また、復号鍵受信部３１０は、鍵生成装置１００が生成した公開パラメータｐｋを受信する。
【０１１３】
（Ｓ４０２：データ受信ステップ）
データ受信部３２０は、例えば、通信装置によりネットワークを介して、暗号化装置２００が送信した暗号文ｃｔＳを受信する。
【０１１４】
（Ｓ４０３：スパンプログラム計算ステップ）
スパンプログラム計算部３３０は、処理装置により、（Ｓ４０２）で受信した暗号文ｃｔＳに含まれるアクセスストラクチャＳが、（Ｓ４０１）で受信した復号鍵ｓｋΓに含まれるΓを受理するか否かを判定する。
スパンプログラム計算部３３０は、アクセスストラクチャＳがΓを受理する場合（Ｓ４０３で受理）、処理を（Ｓ４０４）へ進める。一方、アクセスストラクチャＳがΓを拒絶する場合（Ｓ４０３で拒絶）、暗号文ｃｔΓを復号鍵ｓｋＳで復号できないとして処理を終了する。
【０１１５】
（Ｓ４０４）の処理は、実施の形態１と同じである。
【０１１６】
（Ｓ４０５：復号要素生成ステップ）
復号部３５０は、処理装置により、暗号要素Ｄ＊１，．．．，Ｄ＊６ｎ，Ｅ＊ｊを数１７４に示すように生成する。
【数１７４】
0006053983.tif 000076
【０１１７】
（Ｓ４０６：ペアリング演算ステップ）
復号部３５０は、処理装置により、数１７５を計算して、セッション鍵Ｋ＝ｇＴζを生成する。
【数１７５】
0006053983.tif 000077
【０１１８】
（Ｓ４０７）の処理は、実施の形態１と同じである。
【０１１９】
つまり、（Ｓ４０１）から（Ｓ４０７）において、復号装置３００は、数１７６に示すＤｅｃアルゴリズムを実行して、メッセージｍ’（＝ｍ）を生成する。
【数１７６】
0006053983.tif 000078
【０１２０】
実施の形態２で説明したＣＰ−ＡＢＥ方式では、復号鍵ｓｋΓは、要素ｋ０で５個と、ｊ＝１，．．．，６の各整数ｊについての要素Ｃ１，ｊ及び要素Ｃ２，ｊで１２個との合計１７個のＧの要素から構成される。つまり、復号鍵ｓｋΓは、ｎについて定数サイズである。
【０１２１】
実施の形態２で説明したＣＰ−ＡＢＥ方式では、実施の形態１で説明したＫＰ−ＡＢＥ方式と同様に、復号処理（Ｄｅｃアルゴリズム）は、合計１７個のみペアリング演算を実行する。つまり、復号処理で必要となるペアリング演算は少ない。
【０１２２】
実施の形態３．
実施の形態３では、実施の形態１，２で説明したＡＢＥ方式を応用したＦＥ方式について説明する。
実施の形態３では、実施の形態１，２と同じ部分については説明を省略し、実施の形態１，２と異なる部分について説明する。
【０１２３】
ここでは、実施の形態１で説明したＫＰ−ＡＢＥ方式を応用したＫＰ−ＦＥ方式について説明する。
実施の形態１で説明したＫＰ−ＡＢＥ方式では、暗号文の要素（Ｃ１，ｊ，Ｃ２，ｊ）と、復号鍵の要素｛ｋ＊ｉ｝ｉ＝１，．．．，Ｌとが対応していた。ＫＰ−ＦＥ方式では、カテゴリｔ毎に、暗号文の要素（Ｃ１，ｊ，ｔ，Ｃ２，ｊ，ｔ）と、復号鍵の要素｛ｋ＊ｉ．ｔ｝ｉ＝１，．．．，Ｌとが生成される。そして、暗号文の要素（Ｃ１，ｊ，ｔ，Ｃ２，ｊ，ｔ）と、復号鍵の要素｛ｋ＊ｉ，ｔ｝ｉ＝１，．．．，Ｌとが対応する。
【０１２４】
鍵生成装置１００、暗号化装置２００、復号装置３００の構成は、それぞれ図６〜図８に示す実施の形態１に係る鍵生成装置１００、暗号化装置２００、復号装置３００の構成と同じである。
また、各アルゴリズムの処理は、図９〜図１２に示す実施の形態１に係る各アルゴリズムの処理と同じ流れである。
【０１２５】
図９に基づき、Ｓｅｔｕｐアルゴリズムの処理について説明する。
（Ｓ１０１：空間生成ステップ）
空間生成部１１１は、実施の形態１と同様に、パラメータｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ）を生成する。
さらに、空間生成部１１１は、Ｎ０：＝５、ｔ＝１，．．．，ｄの各整数ｔについて、Ｎ１，ｔ：＝６ｎｔを設定する。ここで、ｄは属性カテゴリの数を表す値であり、１以上の整数である。また、ｎｔは１以上の整数である。そして、空間生成部１１１は、セキュリティパラメータ１λと、Ｎ０と、対称双線形ペアリング群のパラメータｐａｒａｍＧとを入力として、処理装置によりＧｄｐｖｓを実行して、双対ペアリングベクトル空間のパラメータｐａｒａｍＶ０：＝（ｑ，Ｖ０，ＧＴ，Ａ，ｅ）を生成する。また、空間生成部１１１は、ｔ＝１，．．．，ｄの各整数ｔについて、セキュリティパラメータ１λと、Ｎ１，ｔと、対称双線形ペアリング群のパラメータｐａｒａｍＧとを入力として、処理装置によりＧｄｐｖｓを実行して、双対ペアリングベクトル空間のパラメータｐａｒａｍＶ１，ｔ：＝（ｑ，Ｖ１，ｔ，ＧＴ，Ａ，ｅ）を生成する。
【０１２６】
（Ｓ１０２：線形変換生成ステップ）
行列生成部１１２は、処理装置により、線形変換Ｘ０と線形変換｛Ｘ１，ｔ｝ｔ＝１，．．．，ｄとを生成する。
線形変換Ｘ０は、実施の形態１と同じである。線形変換｛Ｘ１，ｔ｝ｔ＝１，．．．，ｄは数１７７のように生成される。
【数１７７】
0006053983.tif 000079
なお、以下、｛μｉ，ｊ，ｔ，μ’ｉ，ｊ，Ｌ，ｔ｝ｉ，ｊ＝１，．．．，６；Ｌ＝１，．．．，ｎは、線形変換Ｘ１，ｔにおける０以外の要素を示す。
【０１２７】
（Ｓ１０３：基底Ｂ生成ステップ）
基底生成部１１３は、処理装置により、基底Ｂ０と変数Ｂｉ，ｊ，ｔと変数Ｂ’ｉ，ｊ，Ｌ，ｔとを数１７８に示すように生成する。
【数１７８】
0006053983.tif 000080
また、基底生成部１１３は、処理装置により、基底Ｂ＊０と基底Ｂ＊１，ｔとを数１７９に示すように生成する。
【数１７９】
0006053983.tif 000081
【０１２８】
（Ｓ１０４：基底Ｂ＾生成ステップ）
鍵生成部１１４は、処理装置により、基底Ｂ＾０と、基底Ｂ＾１，ｔと、基底Ｂ＾＊０と、基底Ｂ＾＊１，ｔとを数１８０に示すように生成する。
【数１８０】
0006053983.tif 000082
【０１２９】
（Ｓ１０５：マスター鍵生成ステップ）
鍵生成部１１４は、処理装置により、公開パラメータｐｋ：＝（１λ，ｐａｒａｍｎ，Ｂ＾０，｛Ｂ＾１，ｔ｝ｔ＝１，．．．，ｄ）とし、マスター秘密鍵ｓｋ：＝（Ｂ＾＊０，｛Ｂ＾＊１，ｔ｝ｔ＝１，．．．，ｄとする。そして、鍵生成部１１４は、公開パラメータｐｋと、マスター秘密鍵ｓｋとをマスター鍵記憶部１２０に記憶する。
なお、ｐａｒａｍｎ：＝（ｐａｒａｍＶ０，｛ｐａｒａｍＶ１，ｔ｝ｔ＝１，．．．，ｄ，ｇＴ）である。
【０１３０】
つまり、（Ｓ１０１）から（Ｓ１０５）において、鍵生成装置１００は、数１８１に示すアルゴリズムＧＦＥ（１）ｏｂを用いた、数１８２に示すＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター秘密鍵ｓｋとを生成する。
【数１８１】
0006053983.tif 000083
【数１８２】
0006053983.tif 000084
【０１３１】
図１０に基づき、ＫｅｙＧｅｎアルゴリズムの処理について説明する。
（Ｓ２０１）から（Ｓ２０２）までの処理は、実施の形態１と同じである。
【０１３２】
（Ｓ２０３：ｓベクトル生成ステップ）
ｓベクトル生成部１４２は、処理装置により、ベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔを数１８３に示すように生成する。
【数１８３】
0006053983.tif 000085
また、ｓベクトル生成部１４２は、処理装置により、値ｓ０を数１８４に示すように生成する。
【数１８４】
0006053983.tif 000086
【０１３３】
（Ｓ２０４：乱数生成ステップ）
乱数生成部１４３は、処理装置により、乱数を数１８５に示すように生成する。
【数１８５】
0006053983.tif 000087
【０１３４】
（Ｓ２０５：鍵要素生成ステップ）
鍵要素生成部１４４は、処理装置により、復号鍵ｓｋＳの要素ｋ＊０を実施の形態１と同様に生成する。
また、鍵要素生成部１４４は、処理装置により、ｉ＝１，．．．，Ｌの各整数ｉ及び集合Ｉｖｉ→に含まれるインデックスｔについて、復号鍵ｓｋＳの要素ｋ＊ｉを数１８６に示すように生成する。
【数１８６】
0006053983.tif 000088
【０１３５】
（Ｓ２０６）の処理は、実施の形態１と同じである。
【０１３６】
つまり、（Ｓ２０１）から（Ｓ２０５）において、鍵生成装置１００は、数１８７に示すＫｅｙＧｅｎアルゴリズムを実行して、復号鍵ｓｋＳを生成する。そして、（Ｓ２０６）で、鍵生成装置１００は、生成した復号鍵ｓｋＳを復号装置３００へ送信する。
【数１８７】
0006053983.tif 000089
【０１３７】
図１１に基づき、Ｅｎｃアルゴリズムの処理について説明する。
（Ｓ３０１）の処理は、実施の形態１と同じである。
【０１３８】
（Ｓ３０２：情報入力ステップ）
情報入力部２２０は、入力装置により、復号装置３００へ送信するメッセージｍを入力する。また、情報入力部２２０は、入力装置により、属性集合Γｔ：＝｛ｘ１，ｔ，．．．，ｘｎｔ，ｔ，ｎｔ’≦ｎｔ−１，ｔ＝１，．．．，ｄ｝を入力する。
【０１３９】
（Ｓ３０３：乱数生成ステップ）
乱数生成部２３１は、処理装置により、乱数を数１８８に示すように生成する。
【数１８８】
0006053983.tif 000090
【０１４０】
（Ｓ３０４：暗号要素生成ステップ）
暗号要素生成部２３２は、処理装置により、暗号文ｃｔΓの要素ｃ０及び要素ｃ３を実施の形態１と同様に生成する。
また、暗号要素生成部２３２は、処理装置により、暗号文ｃｔΓの要素Ｃ１，ｊ，ｔ，Ｃ２，ｊ，ｔを数１８９に示すように生成する。
【数１８９】
0006053983.tif 000091
【０１４１】
（Ｓ３０５）の処理は、実施の形態１と同じである。
【０１４２】
つまり、（Ｓ３０１）から（Ｓ３０４）において、暗号化装置２００は、数１９０に示すＥｎｃアルゴリズムを実行して、暗号文ｃｔΓを生成する。そして、（Ｓ３０５）で、暗号化装置２００は生成した暗号文ｃｔΓを復号装置３００へ送信する。
【数１９０】
0006053983.tif 000092
【０１４３】
図１２に基づき、Ｄｅｃアルゴリズムの処理について説明する。
（Ｓ４０１）から（Ｓ４０４）までの処理は、実施の形態１と同じである。
【０１４４】
（Ｓ４０５：復号要素生成ステップ）
復号部３５０は、処理装置により、復号要素Ｄ＊１，ｔ，．．．，Ｄ＊６ｎ，ｔ，Ｅ＊ｊ，ｔを数１９１に示すように生成する。
【数１９１】
0006053983.tif 000093
【０１４５】
（Ｓ４０６：ペアリング演算ステップ）
復号部３５０は、処理装置により、数１９２を計算して、セッション鍵Ｋ＝ｇＴζを生成する。
【数１９２】
0006053983.tif 000094
【０１４６】
（Ｓ４０７）の処理は、実施の形態１と同じである。
【０１４７】
つまり、（Ｓ４０１）から（Ｓ４０７）において、復号装置３００は、数１９３に示すＤｅｃアルゴリズムを実行して、メッセージｍ’（＝ｍ）を生成する。
【数１９３】
0006053983.tif 000095
【０１４８】
ここでは、実施の形態１で説明したＫＰ−ＡＢＥ方式を応用したＫＰ−ＦＥ方式について説明した。実施の形態２で説明したＣＰ−ＡＢＥ方式を応用したＣＰ−ＦＥ方式についても、同様の考え方により構成できる。実施の形態２で説明したＣＰ−ＡＢＥ方式を応用したＣＰ−ＦＥ方式の各アルゴリズムは、数１９４から数１９８に示す通りである。
【数１９４】
0006053983.tif 000096
【数１９５】
0006053983.tif 000097
【数１９６】
0006053983.tif 000098
【数１９７】
0006053983.tif 000099
【数１９８】
0006053983.tif 000100
【０１４９】
以上のように、実施の形態１，２に係るＡＢＥ方式を応用してＦＥ方式を構成することができる。
【０１５０】
実施の形態４．
実施の形態４では、実施の形態２で説明したＣＰ−ＡＢＥ方式を応用した属性ベース署名（Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｓｉｇｎｅｔｕｒｅ  ＡＢＳ）方式について説明する。
実施の形態４では、実施の形態２と同じ部分については説明を省略し、実施の形態１と異なる部分について説明する。
【０１５１】
第１に、実施の形態４に係る署名方式の基本構成について説明する。
第２に、実施の形態４に係る署名方式を実現する暗号システム１０の構成について説明する。
第３に、実施の形態４に係る署名方式について詳細に説明する。
【０１５２】
＜第１．暗号方式の基本構成＞
ＡＢＳ方式の構成を簡単に説明する。ＡＢＳ方式は、Ｓｅｔｕｐ、ＫｅｙＧｅｎ、Ｓｉｇ、Ｖｅｒの４つのアルゴリズムを備える。
（Ｓｅｔｕｐ）
Ｓｅｔｕｐアルゴリズムは、セキュリティパラメータλと、暗号文に対する属性の数の上限ｎとが入力され、公開パラメータｐｋと、マスター鍵ｓｋとを出力する確率的アルゴリズムである。
（ＫｅｙＧｅｎ）
ＫｅｙＧｅｎアルゴリズムは、公開パラメータｐｋと、マスター鍵ｓｋと、属性集合Γ：＝｛ｘｊ｝１≦ｊ≦ｎ’とを入力として、署名鍵ｓｋΓを出力する確率的アルゴリズムである。
（Ｓｉｇ）
Ｓｉｇアルゴリズムは、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳ：＝（Ｍ，ρ）と、署名鍵ｓｋΓとを入力として、署名σを出力する確率的アルゴリズムである。
（Ｖｅｒ）
Ｖｅｒアルゴリズムは、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳ：＝（Ｍ，ρ）と、署名σとを入力として、署名の検証に成功したことを示す値“１”、又は、署名の検証に失敗したことを示す値“０”を出力するアルゴリズムである。
【０１５３】
＜第２．ＡＢＳ方式を実現する暗号システム１０の構成＞
図１８は、実施の形態４に係るＡＢＳ方式を実現する暗号システム１０の構成図である。
暗号システム１０は、鍵生成装置１００、署名装置４００（送信装置の一例）、検証装置５００（受信装置の一例）を備える。
鍵生成装置１００は、セキュリティパラメータλと、暗号文に対する属性の数の上限ｎとを入力としてＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター鍵ｓｋとを生成する。そして、鍵生成装置１００は、生成した公開パラメータｐｋを公開する。また、鍵生成装置１００は、属性集合Γを入力としてＫｅｙＧｅｎアルゴリズムを実行して、署名鍵ｓｋΓを生成して署名装置４００へ秘密裡に送信する。
署名装置４００は、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳと、署名鍵ｓｋΓとを入力としてＳｉｇアルゴリズムを実行して、署名σを生成する。署名装置４００は、生成した署名σと、メッセージｍと、アクセスストラクチャＳと、を検証装置５００へ送信する。
検証装置５００は、公開パラメータｐｋと、メッセージｍと、アクセスストラクチャＳと、署名σとを入力としてＶｅｒアルゴリズムを実行して、値“１”、又は、値“０”を出力する。
【０１５４】
＜第３．署名方式＞
図１９は、実施の形態４に係る鍵生成装置１００の構成図である。図２０は、実施の形態４に係る署名装置４００の構成図である。図２１は、実施の形態４に係る検証装置５００の構成図である。
図２２と図２３とは、実施の形態４に係る鍵生成装置１００の動作を示すフローチャートである。なお、図２２は、実施の形態４に係るＳｅｔｕｐアルゴリズムの処理を示すフローチャートであり、図２３は、実施の形態４に係るＫｅｙＧｅｎアルゴリズムの処理を示すフローチャートである。図２４は、実施の形態４に係る署名装置４００の動作を示すフローチャートであり、実施の形態４に係るＳｉｇアルゴリズムの処理を示す。図２５は、実施の形態４に係る検証装置５００の動作を示すフローチャートであり、実施の形態４に係るＶｅｒアルゴリズムの処理を示す。
【０１５５】
なお、以下の説明において、Ｈ：＝（ＫＨλ，Ｈｈｋλ，Ｄ）は、衝突困難ハッシュ関数である（非特許文献３０参照）。衝突困難ハッシュ関数とは、出力が同じになる２つの入力を見つけることが困難なハッシュ関数である。
具体的には、アルゴリズムＧｂｐｇに関する衝突困難ハッシュ関数系Ｈと、多項式ｐｏｌｙ（λ）とについて以下の２つのことが言える。
１．鍵空間系は、λによって索引付けされる。各鍵空間は、ＫＨλによって示されるビット列における確率空間である。１λを入力とした場合の出力分布がＫＨλと等しい確率的多項式時間アルゴリズムが存在する。
２．ハッシュ関数系は、λと、ＫＨλからランダムに選択されたｈｋと、Ｄ：＝｛０，１｝ｐｏｌｙ（λ）とによって索引付けされる。ここで、各関数Ｈｈｋλ，Ｄは、Ｄの要素からＦｑＸへの写像である。なお、ｑは、アルゴリズムＧｂｐｇ（１λ）の出力ｐａｒａｍＧの最初の要素である。１λとｈｋとｄ∈Ｄとを入力として、Ｈｈｋλ，Ｄ（ｄ）を出力する決定的多項式時間アルゴリズムがある。
【０１５６】
鍵生成装置１００の機能と動作とについて説明する。
図１９に示すように、鍵生成装置１００は、マスター鍵生成部１１０、マスター鍵記憶部１２０、情報入力部１３０、復号鍵生成部１４０、鍵送信部１５０を備える。マスター鍵生成部１１０は、空間生成部１１１、行列生成部１１２、基底生成部１１３、鍵生成部１１４を備える。復号鍵生成部１４０は、乱数生成部１４３、鍵要素生成部１４４を備える。
図２２に基づき、Ｓｅｔｕｐアルゴリズムの処理について説明する。
（Ｓ７０１：空間生成ステップ）
空間生成部１１１は、図９の（Ｓ１０１）と同様に、パラメータｐａｒａｍＧ：＝（ｑ，Ｇ，ＧＴ，ｇ，ｅ）を生成する。
さらに、空間生成部１１１は、Ｎ０：＝４、Ｎ１：＝６ｎ、Ｎ２：＝７を設定する。そして、空間生成部１１１は、ｔ＝０，１，２の各整数ｔについて、セキュリティパラメータ１λと、Ｎｔと、対称双線形ペアリング群のパラメータｐａｒａｍＧとを入力として、処理装置によりＧｄｐｖｓを実行して、双対ペアリングベクトル空間のパラメータｐａｒａｍＶｔ：＝（ｑ，Ｖｔ，ＧＴ，Ａ，ｅ）を生成する。
【０１５７】
（Ｓ７０２：線形変換生成ステップ）
行列生成部１１２は、処理装置により、ｔ＝０，２の各整数ｔについて、線形変換Ｘｔを数１９９に示すように生成する。
【数１９９】
0006053983.tif 000101
また、行列生成部１１２は、処理装置により、線形変換Ｘ１を数２００に示すように生成する。
【数２００】
0006053983.tif 000102
なお、以下、｛μｉ，ｊ，μ’ｉ，ｊ，Ｌ｝ｉ，ｊ＝１，．．．，６；Ｌ＝１，．．．，ｎは、線形変換Ｘ１における０以外の要素を示す。
【０１５８】
（Ｓ７０３：基底Ｂ生成ステップ）
基底生成部１１３は、処理装置により、基底Ｂ＊０と基底Ｂ＊２と変数Ｂ＊ｉ，ｊと変数Ｂ’＊ｉ，ｊ，Ｌとを数２０１に示すように生成する。
【数２０１】
0006053983.tif 000103
また、基底生成部１１３は、処理装置により、基底Ｂ０と基底Ｂ１と基底Ｂ２とを数２０２に示すように生成する。
【数２０２】
0006053983.tif 000104
【０１５９】
（Ｓ７０４：基底Ｂ＾生成ステップ）
鍵生成部１１４は、処理装置により、基底Ｂ＾０と、基底Ｂ＾１と、基底Ｂ＾２と、基底Ｂ＾＊０と、基底Ｂ＾＊１と、基底Ｂ＾＊２とを数２０３に示すように生成する。
【数２０３】
0006053983.tif 000105
【０１６０】
（Ｓ７０５：ハッシュキー生成ステップ）
マスター鍵生成部１１０は、処理装置により、数２０４を計算して、ハッシュキーｈｋをランダムに生成する。
【数２０４】
0006053983.tif 000106
【０１６１】
（Ｓ７０６：マスター鍵生成ステップ）
鍵生成部１１４は、処理装置により、公開パラメータｐｋ：＝（１λ，ｈｋ，ｐａｒａｍｎ，｛Ｂ＾ｔ｝ｔ＝０，１，２，｛Ｂ＾＊ｔ｝ｔ＝１，２，ｂ＊０，３）とし、マスター秘密鍵ｓｋ：＝ｂ＊０，１とする。そして、鍵生成部１１４は、公開パラメータｐｋと、マスター秘密鍵ｓｋとをマスター鍵記憶部１２０に記憶する。
なお、ｐａｒａｍｎ：＝（｛ｐａｒａｍＶｔ｝ｔ＝０，１，２，ｇＴ：＝ｅ（ｇ，ｇ）φ）である。
【０１６２】
つまり、（Ｓ７０１）から（Ｓ７０６）において、鍵生成装置１００は、数２０５に示すアルゴリズムＧＡＢＳｏｂを用いた、数２０６に示すＳｅｔｕｐアルゴリズムを実行して、公開パラメータｐｋとマスター秘密鍵ｓｋとを生成する。
【数２０５】
0006053983.tif 000107
【数２０６】
0006053983.tif 000108
【０１６３】
図２３に基づき、ＫｅｙＧｅｎアルゴリズムの処理について説明する。
（Ｓ８０１）の処理は、図１６の（Ｓ５０１）の処理と同じである。但し、アクセスストラクチャＳのρは、例えば、署名鍵ｓｋΓの使用者の属性情報が設定されている。
【０１６４】
（Ｓ８０２：乱数生成ステップ）
乱数生成部１４３は、処理装置により、乱数を数２０７に示すように生成する。
【数２０７】
0006053983.tif 000109
【０１６５】
（Ｓ８０３：鍵要素生成ステップ）
鍵要素生成部１４４は、処理装置により、署名鍵ｓｋΓの要素ｋ＊０を数２０８に示すように生成する。
【数２０８】
0006053983.tif 000110
また、鍵要素生成部１４４は、処理装置により、署名鍵ｓｋΓの要素Ｌ＊１，ｊ，Ｌ＊２，ｊを数２０９に示すように生成する。
【数２０９】
0006053983.tif 000111
また、鍵要素生成部１４４は、処理装置により、署名鍵ｓｋΓの要素ｋ＊２，１，ｋ＊２，２を数２１０に示すように生成する。
【数２１０】
0006053983.tif 000112
【０１６６】
（Ｓ８０４：鍵送信ステップ）
鍵送信部１５０は、（Ｓ８０１）で入力した属性の集合Γと、（Ｓ８０３）で生成されたｋ＊０，Ｌ＊１，ｊ，Ｌ＊２，ｊ，ｋ＊２，１，ｋ＊２，２とを要素とする署名鍵ｓｋΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置４００へ送信する。もちろん、署名鍵ｓｋΓは、他の方法により署名装置４００へ送信されてもよい。
【０１６７】
つまり、（Ｓ８０１）から（Ｓ８０３）において、鍵生成装置１００は、数２１１に示すＫｅｙＧｅｎアルゴリズムを実行して、復号鍵ｓｋΓを生成する。そして、（Ｓ８０４）で、鍵生成装置１００は、生成した復号鍵ｓｋΓを復号装置３００へ送信する。
【数２１１】
0006053983.tif 000113
【０１６８】
なお、｛Ｌ＊１，ｊ，Ｌ＊２，ｊ｝ｊ＝１，．．．，６と、ベクトルｙ→とから、要素ｋ＊１は数２１２のように定義される。
【数２１２】
0006053983.tif 000114
【０１６９】
署名装置４００の機能と動作とについて説明する。
図２０に示すように、署名装置４００は、署名鍵受信部４１０、情報入力部４２０、補完係数計算部４３０、署名データ生成部４４０、データ送信部４５０を備える。また、署名データ生成部４４０は、乱数生成部４４１、署名要素生成部４４２を備える。
【０１７０】
図２４に基づき、Ｓｉｇアルゴリズムの処理について説明する。
（Ｓ９０１：署名鍵受信ステップ）
署名鍵受信部４１０は、例えば、通信装置によりネットワークを介して、鍵生成装置１００が生成した署名鍵ｓｋΓを受信する。また、署名鍵受信部４１０は、鍵生成装置１００が生成した公開パラメータｐｋを受信する。
【０１７１】
（Ｓ９０２：情報入力ステップ）
情報入力部４２０は、入力装置により、アクセスストラクチャＳ：＝（Ｍ，ρ）を入力する。また、情報入力部４２０は、入力装置により、署名を付すメッセージｍを入力する。
【０１７２】
（Ｓ９０３：スパンプログラム計算ステップ）
補完係数計算部４３０は、処理装置により、（Ｓ９０２）で入力したアクセスストラクチャＳが、（Ｓ９０１）で受信した署名鍵ｓｋΓに含まれる属性集合Γを受理するか否かを判定する。
補完係数計算部４３０は、アクセスストラクチャＳが属性集合Γを受理する場合（Ｓ９０３で受理）、処理を（Ｓ９０４）へ進める。一方、アクセスストラクチャＳが属性集合Γを拒絶する場合（Ｓ９０３で拒絶）、処理を終了する。
【０１７３】
（Ｓ９０４：補完係数計算ステップ）
補完係数計算部４３０は、処理装置により、数２１３となるベクトルｙ→と、数２１４となるＩと、Ｉに含まれる各整数ｉについて定数（補完係数）αｉとを計算する。
【数２１３】
0006053983.tif 000115
【数２１４】
0006053983.tif 000116
【０１７４】
（Ｓ９０５：乱数生成ステップ）
乱数生成部４４１は、処理装置により、乱数を数２１５に示すように生成する。
【数２１５】
0006053983.tif 000117
【０１７５】
（Ｓ９０６：署名要素生成ステップ）
署名要素生成部４４２は、処理装置により、署名σの要素ｓ＊０を数２１６に示すように生成する。
【数２１６】
0006053983.tif 000118
ここで、ｒ＊０は、数２１７である。
【数２１７】
0006053983.tif 000119
また、署名要素生成部４４２は、処理装置により、ｉ＝１，．．．，Ｌの各整数ｉについて、署名σの要素ｓ＊ｉを数２１８に示すように生成する。
【数２１８】
0006053983.tif 000120
ここで、ｒ＊ｉは、数２１９である。
【数２１９】
0006053983.tif 000121
また、γｉとｕ→ｉ：＝（ｕｉ，ｉ’（ｉ’＝１，．．．，ｎ）とは、数２２０である。
【数２２０】
0006053983.tif 000122
また、署名要素生成部４４２は、処理装置により、署名σの要素ｓ＊Ｌ＋１を数２２１に示すように生成する。
【数２２１】
0006053983.tif 000123
ここで、ｒ＊Ｌ＋１は、数２２２である。
【数２２２】
0006053983.tif 000124
【０１７６】
（Ｓ９０７：データ送信ステップ）
データ送信部４５０は、要素ｓ＊０，ｓ＊ｉ，ｓ＊Ｌ＋１と、メッセージｍと、アクセスストラクチャＳ：＝（Ｍ，ρ）とを含む署名σを、例えば通信装置によりネットワークを介して検証装置５００へ送信する。もちろん、署名σは、他の方法により検証装置５００へ送信されてもよい。
【０１７７】
つまり、（Ｓ９０１）から（Ｓ９０６）において、署名装置４００は、数２２３に示すＳｉｇアルゴリズムを実行して、署名σを生成する。そして、（Ｓ９０７）で、署名装置４００は、生成した署名σを検証装置５００へ送信する。
【数２２３−１】
0006053983.tif 000125
【数２２３−２】
0006053983.tif 000126
【０１７８】
検証装置５００の機能と動作とについて説明する。
図２１に示すように、検証装置５００は、公開パラメータ受信部５１０、データ受信部５２０、検証データ生成部５３０、検証部５４０を備える。また、検証データ生成部５３０は、ｆベクトル生成部５３１、ｓベクトル生成部５３２、乱数生成部５３３、検証要素生成部５３４を備える。
【０１７９】
図２５に基づき、Ｖｅｒアルゴリズムの処理について説明する。
（Ｓ１００１：公開パラメータ受信ステップ）
公開パラメータ受信部５１０は、例えば、通信装置によりネットワークを介して、鍵生成装置１００が生成した公開パラメータｐｋを受信する。
【０１８０】
（Ｓ１００２：署名受信ステップ）
データ受信部５２０は、例えば、通信装置によりネットワークを介して、署名装置４００が送信した署名σを受信する。
【０１８１】
（Ｓ１００３：ｆベクトル生成ステップ）
ｆベクトル生成部５３１は、処理装置により、ベクトルｆ→を数２２４に示すようにランダムに生成する。
【数２２４】
0006053983.tif 000127
【０１８２】
（Ｓ１００４：ｓベクトル生成ステップ）
ｓベクトル生成部５３２は、処理装置によりベクトルｓ→Ｔ：＝（ｓ１，．．．，ｓＬ）Ｔを数２２５に示すように生成する。
【数２２５】
0006053983.tif 000128
また、ｓベクトル生成部５３２は、処理装置により、値ｓ０を数２２６に示すように生成する。
【数２２６】
0006053983.tif 000129
【０１８３】
（Ｓ１００５：乱数生成ステップ）
乱数生成部５３３は、処理装置により、乱数を数２２７に示すように生成する。
【数２２７】
0006053983.tif 000130
【０１８４】
（Ｓ１００６：検証要素生成ステップ）
検証要素生成部５３４は、処理装置により、検証鍵の要素ｃ０を数２２８に示すように生成する。
【数２２８】
0006053983.tif 000131
また、検証要素生成部５３４は、処理装置により、ｉ＝１，．．．，Ｌの各整数ｉについて、検証鍵の要素ｃｉを数２２９に示すように生成する。
【数２２９】
0006053983.tif 000132
また、検証要素生成部５３４は、処理装置により、検証鍵の要素ｃＬ＋１を数２３０に示すように生成する。
【数２３０】
0006053983.tif 000133
【０１８５】
（Ｓ１００７：第１ペアリング演算ステップ）
検証部５４０は、処理装置により、ペアリング演算ｅ（ｂ０，１，ｓ＊０）を計算する。
ペアリング演算ｅ（ｂ０，１，ｓ＊０）を計算した結果が値１であれば、検証部５４０は、署名の検証に失敗したことを示す値０を出力して、処理を終了する。一方、ペアリング演算ｅ（ｂ０，１，ｓ＊０）を計算した結果が値１でなければ、検証部５４０は、処理をＳ１００８へ進める。
【０１８６】
（Ｓ１００８：第２ペアリング演算ステップ）
検証部５４０は、処理装置により、数２３１に示すペアリング演算を計算する。
【数２３１】
0006053983.tif 000134
数２３１に示すペアリング演算を計算した結果が値１であれば、検証部５４０は、署名の検証に成功したことを示す値１を出力する。一方、その他の値であれば、検証部５４０は、署名の検証に失敗したことを示す値０を出力する。
【０１８７】
つまり、（Ｓ１００１）から（Ｓ１００８）において、検証装置５００は、数２３２に示すＶｅｒアルゴリズムを実行して、署名σを検証する。
【数２３２】
0006053983.tif 000135
【０１８８】
以上のように、実施の形態２で説明したＣＰ−ＡＢＥ方式を応用したＡＢＳ方式を構成することができる。
実施の形態２で説明したＣＰ−ＡＢＥ方式で復号鍵ｓｋΓのサイズを小さくできたのと同様に、実施の形態４で説明したＡＢＳ方式では、署名鍵ｓｋΓのサイズを小さくすることができる。
【０１８９】
なお、ここでは、実施の形態２で説明したＣＰ−ＡＢＥ方式を応用したＡＢＳ方式について説明した。実施の形態３で説明したＣＰ−ＦＥ方式を応用したＡＢＳ方式についても、実施の形態４で説明したＡＢＳ方式に対して、実施の形態３の考え方を応用することにより構成できる。
【０１９０】
実施の形態５．
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態５では、双対加群において暗号処理を実現する方法について説明する。
【０１９１】
つまり、以上の実施の形態では、素数位数ｑの巡回群において暗号処理を実現した。しかし、合成数Ｍを用いて数２３３のように環Ｒを表した場合、環Ｒを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
【数２３３】
0006053983.tif 000136
【０１９２】
以上の実施の形態で説明したアルゴリズムにおけるＦｑをＲに変更すれば、双対加群における暗号処理を実現することができる。
【０１９３】
なお、以上の実施の形態では、符号化部、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、ｎ、２ｎ、２ｎ、ｎ次元とし、基底Ｂ１及び基底Ｂ＊１の次元を６ｎ次元とした。しかし、これに限らず、秘匿部、秘密鍵ランダム化部、暗号文ランダム化部の次元をそれぞれ、ｎに依存しない、ｕ，ｗ，ｚ次元とし、基底Ｂ１及び基底Ｂ＊１の次元をｎ＋ｕ＋ｗ＋ｚ次元としてもよい。なお、ｕ，ｗ，ｚは、０以上の整数である。
【０１９４】
また、上記説明では、ＫＰの場合には、暗号文のサイズが小さくなるように、第１ベクトルを用いて暗号文の要素を生成し、第２ベクトルを用いて復号鍵の要素を生成した。しかし、ＫＰの場合に、復号鍵のサイズが小さくなるように、第１ベクトルを用いて復号鍵の要素を生成し、第２ベクトルを用いて暗号文の要素を生成してもよい。
同様に、上記説明では、ＣＰの場合には、復号鍵のサイズが小さくなるように、第１ベクトルを用いて復号鍵の要素を生成し、第２ベクトルを用いて暗号文の要素を生成した。しかし、ＣＰの場合に、暗号文のサイズが小さくなるように、第１ベクトルを用いて暗号文の要素を生成し、第２ベクトルを用いて復号鍵の要素を生成してもよい。
【０１９５】
また、以上の実施の形態では、１台の鍵生成装置１００が復号鍵を生成するとした。しかし、以上の実施の形態のアルゴリズムを、非特許文献３に記載された分散多管理者の方式と組み合わせて、複数の鍵生成装置１００により１つの復号鍵が生成されるようにすることも可能である。
【０１９６】
なお、以上の実施の形態において、安全性の証明の観点から、ｉ＝１，．．．，Ｌの各整数ｉについてのρ（ｉ）は、それぞれ異なる識別情報ｔについての肯定形の組（ｔ，ｖ→）又は否定形の組¬（ｔ，ｖ→）であると限定してもよい。
言い替えると、ρ（ｉ）＝（ｔ，ｖ→）又はρ（ｉ）＝¬（ｔ，ｖ→）である場合に、関数ρ~を、ρ~（ｉ）＝ｔである｛１，．．．，Ｌ｝→｛１，．．．ｄ｝の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ（ｉ）は、上述したアクセスストラクチャＳ：＝（Ｍ，ρ（ｉ））のρ（ｉ）である。
【０１９７】
図２６は、実施の形態１〜５に示した暗号システム１０の各装置（鍵生成装置１００、暗号化装置２００、復号装置３００、署名装置４００、検証装置５００）のハードウェア構成の例を示す図である。
暗号システム１０の各装置はコンピュータであり、暗号システム１０の各装置の各要素をプログラムで実現することができる。
暗号システム１０の各装置のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１９８】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置等である。主記憶装置９０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。通信装置９０４は、例えば通信ボード等である。入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１９９】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、マスター鍵生成部１１０、マスター鍵記憶部１２０、情報入力部１３０、復号鍵生成部１４０、鍵送信部１５０、公開パラメータ受信部２１０、情報入力部２２０、暗号化データ生成部２３０、データ送信部２４０、復号鍵受信部３１０、データ受信部３２０、スパンプログラム計算部３３０、補完係数計算部３４０、復号部３５０、署名鍵受信部４１０、情報入力部４２０、補完係数計算部４３０、署名データ生成部４４０、データ送信部４５０、公開パラメータ受信部５１０、データ受信部５２０、検証データ生成部５３０、検証部５４０として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、上記プログラムを実行する。
また、実施の形態１〜５の説明において、「公開パラメータｐｋ」、「マスター秘密鍵ｓｋ」、「復号鍵ｓｋΓ，ｓｋＳ」、「暗号文ｃｔＳ，ｃｔΓ」、「署名鍵ｓｋΓ」、「検証鍵」、「アクセスストラクチャＳ」、「属性集合Γ」、「メッセージｍ」、「署名σ」等として説明している情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【０２００】
なお、図２６の構成は、あくまでも暗号システム１０の各装置のハードウェア構成の一例を示すものであり、暗号システム１０の各装置のハードウェア構成は図２６に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【０２０１】
１００  鍵生成装置、１１０  マスター鍵生成部、１１１  空間生成部、１１２  行列生成部、１１３  基底生成部、１１４  鍵生成部、１２０  マスター鍵記憶部、１３０  情報入力部、１４０  復号鍵生成部、１４１  ｆベクトル生成部、１４２  ｓベクトル生成部、１４３  乱数生成部、１４４  鍵要素生成部、１５０  鍵送信部、２００  暗号化装置、２１０  公開パラメータ受信部、２２０  情報入力部、２３０  暗号化データ生成部、２３１  乱数生成部、２３２  暗号要素生成部、２３３  ｆベクトル生成部、２３４  ｓベクトル生成部、２４０  データ送信部、３００  復号装置、３１０  復号鍵受信部、３２０  データ受信部、３３０  スパンプログラム計算部、３４０  補完係数計算部、３５０  復号部、４００  署名装置、４１０  署名鍵受信部、４２０  情報入力部、４３０  補完係数計算部、４４０  署名データ生成部、４４１  乱数生成部、４４２  署名要素生成部、４５０  データ送信部、５００  検証装置、５１０  公開パラメータ受信部、５２０  データ受信部、５３０  検証データ生成部、５３１  ｆベクトル生成部、５３２  ｓベクトル生成部、５３３  乱数生成部、５３４  検証要素生成部、５４０  検証部。
【図１】
0006053983.tif 000177
【図２】
0006053983.tif 000178
【図３】
0006053983.tif 000179
【図４】
0006053983.tif 000180
【図５】
0006053983.tif 000181
【図６】
0006053983.tif 000182
【図７】
0006053983.tif 000183
【図８】
0006053983.tif 000184
【図９】
0006053983.tif 000185
【図１０】
0006053983.tif 000186
【図１１】
0006053983.tif 000187
【図１２】
0006053983.tif 000188
【図１３】
0006053983.tif 000189
【図１４】
0006053983.tif 000190
【図１５】
0006053983.tif 000191
【図１６】
0006053983.tif 000192
【図１７】
0006053983.tif 000193
【図１８】
0006053983.tif 000194
【図１９】
0006053983.tif 000195
【図２０】
0006053983.tif 000196
【図２１】
0006053983.tif 000197
【図２２】
0006053983.tif 000198
【図２３】
0006053983.tif 000199
【図２４】
0006053983.tif 000200
【図２５】
0006053983.tif 000201
【図２６】
0006053983.tif 000202