(57)【要約】  同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、公開鍵、マスター鍵、属性値番号、ユーザ番号及び乱数が入力され、属性値番号によって示される属性値とマスター鍵の１つの要素との和をとり、その逆数である属性値秘密を生成し、ユーザ番号及び乱数を用いてユーザ固有の乱数を生成し、該ユーザ固有の乱数と公開鍵とからユーザ固有の秘密を生成し、ユーザ固有の秘密に、属性値秘密をべき乗してユーザ固有の属性値秘密鍵を生成する。
2008146546.tif 000002
【特許請求の範囲】
【請求項１】
同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、公開鍵、マスター鍵、属性値番号、ユーザ番号及び乱数が入力され、属性値秘密鍵を生成して出力する鍵生成装置であって、
前記属性値番号によって示される属性値と前記マスター鍵の１つの要素との和をとり、その逆数である属性値秘密を生成する属性値秘密部と、
前記ユーザ番号及び乱数を用いてユーザ固有の乱数を生成し、該ユーザ固有の乱数と前記公開鍵とからユーザ固有の秘密を生成するユーザ秘密部と、
前記ユーザ秘密部にて生成されたユーザ固有の秘密に、前記属性値秘密部にて生成された属性値秘密をべき乗してユーザ固有の属性値秘密鍵を生成するユーザ毎属性秘密鍵生成部とを有する鍵生成装置。
【請求項２】
請求項１に記載の鍵生成装置において、
前記ユーザ秘密部は、前記公開鍵の１つの要素に前記ユーザ固有の乱数をべき乗した要素と、前記公開鍵の他の要素に前記ユーザ固有の乱数の一次関数の出力をべき乗した要素とからなるユーザ固有の秘密を生成することを特徴とする鍵生成装置。
【請求項３】
同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する二つの群Ｇ，ＧTの計算手段を有し、公開鍵、属性値集合、閾値及び乱数が入力され、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、共有鍵とを出力する暗号化装置であって、
前記乱数からランダム要素を生成するランダム要素生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵とから前記共有鍵を生成する共有鍵生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵と前記属性値集合とから前記主暗号文を生成する主暗号文生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵と前記閾値と前記誤差修正データを生成する誤差修正データ生成部とを有する暗号化装置。
【請求項４】
請求項３に記載の暗号化装置において、
前記主暗号文生成部は、前記属性値集合の要素から積と和を用いて生成できるデータの集合の各要素を、それぞれ異なる公開鍵の要素の１つにべき乗し、これらの積を取ることで、マスター鍵の１つの要素と前記属性値集合の１つの要素との和を、それぞれの属性値集合の各要素に対して生成し、これら全てと前記ランダム要素生成部にて生成されたランダム要素の積をとったものを、前記公開鍵の所定の要素に乗じた値として生成し、
前記誤差修正データ生成部は、前記属性値集合の要素の数から閾値を引いた数の要素を前記誤差修正データとして生成し、前記誤差修正データの各要素は、前記公開鍵の所定の要素に前記ランダム要素をべき乗したものであることを特徴とする暗号化装置。
【請求項５】
同じ位数の群Ｇ、ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、公開鍵と、属性値秘密鍵集合とが入力され、共有鍵を出力する復号装置であって、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致するものを選択し、選択した属性値集合の要素から部分復号鍵を生成する部分復号鍵生成部と、
前記部分復号鍵生成部にて生成された部分復号鍵と前記主暗号文とから誤差付共通鍵を生成する暗号文部分復号部と、
前記誤差修正データと前記属性値集合とから、前記属性値秘密鍵集合が前記属性値集合全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである誤差修正鍵を生成する誤差修正鍵生成部と、
前記暗号文部分復号部にて生成された誤差付共有鍵と前記誤差修正鍵生成部にて生成された誤差修正鍵とから前記共有鍵を生成する誤差修正部とを有する復号装置。
【請求項６】
請求項５に記載の復号装置において、
前記部分復号鍵生成部は、前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致する属性値秘密鍵を閾値以上の個数選択し、選択した要素に属性値から決まる定数をべき乗した上で、べき乗した要素の積をとることで前記部分復号鍵を生成し、
前記誤差修正鍵生成部は、前記誤差修正データと前記属性値集合とから、前記共有鍵の暗号文に含まれる属性値集合の要素で、対応する属性値秘密鍵がないものを全て選択し、選択した要素に属性値から決まる定数をそれぞれ誤差修正データのべき乗した上で、べき乗した要素の積をとることで前記誤差修正鍵を生成することを特徴とする復号装置。
【請求項７】
同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTを計算し、公開鍵、マスター鍵、属性値番号、ユーザ番号及び乱数が与えられ、属性値秘密鍵を生成して出力する鍵生成方法であって、
前記属性値番号によって示される属性値と前記マスター鍵の１つの要素との和をとり、その逆数である属性値秘密を生成する処理と、
前記ユーザ番号及び乱数を用いてユーザ固有の乱数を生成し、該ユーザ固有の乱数と前記公開鍵とからユーザ固有の秘密を生成する処理と、
前記ユーザ固有の秘密に、前記属性値秘密をべき乗してユーザ固有の属性値秘密鍵を生成する処理とを有する鍵生成方法。
【請求項８】
請求項７に記載の鍵生成方法において、
前記公開鍵の１つの要素に前記ユーザ固有の乱数をべき乗した要素と、前記公開鍵の他の要素に前記ユーザ固有の乱数の一次関数の出力をべき乗した要素とからなるユーザ固有の秘密を生成することを特徴とする鍵生成方法。
【請求項９】
同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する二つの群Ｇ，ＧTを計算し、公開鍵、属性値集合、閾値及び乱数が与えられ、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、共有鍵とを出力する暗号化方法であって、
前記乱数からランダム要素を生成する処理と、
前記生成されたランダム要素と前記公開鍵とから前記共有鍵を生成する処理と、
前記生成されたランダム要素と前記公開鍵と前記属性値集合とから前記主暗号文を生成する処理と、
前記生成されたランダム要素と前記公開鍵と前記閾値と前記誤差修正データを生成する処理とを有する暗号化方法。
【請求項１０】
請求項９に記載の暗号化方法において、
前記属性値集合の要素から積と和を用いて生成できるデータの集合の各要素を、それぞれ異なる公開鍵の要素の１つにべき乗し、これらの積を取ることで、マスター鍵の１つの要素と前記属性値集合の１つの要素との和を、それぞれの属性値集合の各要素に対して生成し、これら全てと前記生成されたランダム要素の積をとったものを、前記公開鍵の所定の要素に乗じた値として生成し、
前記属性値集合の要素の数から閾値を引いた数の要素を前記誤差修正データとして生成し、前記誤差修正データの各要素は、前記公開鍵の所定の要素に前記ランダム要素をべき乗したものであることを特徴とする暗号化方法。
【請求項１１】
同じ位数の群Ｇ、ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTを計算し、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、公開鍵と、属性値秘密鍵集合とが与えられ、共有鍵を出力する復号方法であって、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致するものを選択し、選択した属性値集合の要素から部分復号鍵を生成する処理と、
前記生成された部分復号鍵と前記主暗号文とから誤差付共通鍵を生成する処理と、
前記誤差修正データと前記属性値集合とから、前記属性値秘密鍵集合が前記属性値集合全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである誤差修正鍵を生成する処理と、
前記生成された誤差付共有鍵と前記生成された誤差修正鍵とから前記共有鍵を生成する処理とを有する復号方法。
【請求項１２】
請求項１１に記載の復号方法において、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致する属性値秘密鍵を閾値以上の個数選択し、選択した要素に属性値から決まる定数をべき乗した上で、べき乗した要素の積をとることで前記部分復号鍵を生成し、
前記誤差修正データと前記属性値集合とから、前記共有鍵の暗号文に含まれる属性値集合の要素で、対応する属性値秘密鍵がないものを全て選択し、選択した要素に属性値から決まる定数をそれぞれ誤差修正データのべき乗した上で、べき乗した要素の積をとることで前記誤差修正鍵を生成することを特徴とする復号方法。
【請求項１３】
同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、公開鍵、マスター鍵、属性値番号、ユーザ番号及び乱数が入力され、属性値秘密鍵を生成して出力する鍵生成装置に、
前記属性値番号によって示される属性値と前記マスター鍵の１つの要素との和をとり、その逆数である属性値秘密を生成する手順と、
前記ユーザ番号及び乱数を用いてユーザ固有の乱数を生成し、該ユーザ固有の乱数と前記公開鍵とからユーザ固有の秘密を生成する手順と、
前記ユーザ固有の秘密に、前記属性値秘密をべき乗してユーザ固有の属性値秘密鍵を生成する手順とを有する実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムにおいて、
前記公開鍵の１つの要素に前記ユーザ固有の乱数をべき乗した要素と、前記公開鍵の他の要素に前記ユーザ固有の乱数の一次関数の出力をべき乗した要素とからなるユーザ固有の秘密を生成する手順を実行させるためのプログラム。
【請求項１５】
同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する二つの群Ｇ，ＧTの計算手段を有し、公開鍵、属性値集合、閾値及び乱数が入力され、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、共有鍵とを出力する暗号化装置に、
前記乱数からランダム要素を生成する手順と、
前記生成されたランダム要素と前記公開鍵とから前記共有鍵を生成する手順と、
前記生成されたランダム要素と前記公開鍵と前記属性値集合とから前記主暗号文を生成する手順と、
前記生成されたランダム要素と前記公開鍵と前記閾値と前記誤差修正データを生成する手順とを実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムにおいて、
前記属性値集合の要素から積と和を用いて生成できるデータの集合の各要素を、それぞれ異なる公開鍵の要素の１つにべき乗し、これらの積を取ることで、マスター鍵の１つの要素と前記属性値集合の１つの要素との和を、それぞれの属性値集合の各要素に対して生成し、これら全てと前記生成されたランダム要素の積をとったものを、前記公開鍵の所定の要素に乗じた値として生成する手順を実行させ、
前記属性値集合の要素の数から閾値を引いた数の要素を前記誤差修正データとして生成し、前記誤差修正データの各要素は、前記公開鍵の所定の要素に前記ランダム要素をべき乗したものとすることを特徴とするプログラム。
【請求項１７】
同じ位数の群Ｇ、ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、公開鍵と、属性値秘密鍵集合とが入力され、共有鍵を出力する復号装置に、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致するものを選択し、選択した属性値集合の要素から部分復号鍵を生成する手順と、
前記生成された部分復号鍵と前記主暗号文とから誤差付共通鍵を生成する手順と、
前記誤差修正データと前記属性値集合とから、前記属性値秘密鍵集合が前記属性値集合全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである誤差修正鍵を生成する手順と、
前記生成された誤差付共有鍵と前記生成された誤差修正鍵とから前記共有鍵を生成する手順とを実行させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムにおいて、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致する属性値秘密鍵を閾値以上の個数選択し、選択した要素に属性値から決まる定数をべき乗した上で、べき乗した要素の積をとることで前記部分復号鍵を生成する手順と、
前記誤差修正データと前記属性値集合とから、前記共有鍵の暗号文に含まれる属性値集合の要素で、対応する属性値秘密鍵がないものを全て選択し、選択した要素に属性値から決まる定数をそれぞれ誤差修正データのべき乗した上で、べき乗した要素の積をとることで前記誤差修正鍵を生成する手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の属性値が存在し、その一部の各属性に対応する秘密鍵を与えられた受信者が存在し、属性の集合を指定して生成された暗号文が与えられたとき、この暗号文を生成するときに指定した属性のうちの一定の個数以上の属性値それぞれ対応する秘密鍵を所持している受信者がこの暗号文を復号できる暗号化技術に関し、特に、暗号文生成において、追加的に受信者の集合を指定し、この暗号文を復号できるものが秘密鍵を持ち、かつこの受信者集合に属するものに限られる暗号化技術に関する。
【背景技術】
【０００２】
従来の匿名性のあるファジーな識別子に基づく暗号方式として、”Amit  Sahai,  Brent  Waters:  Fuzzy  Identity-Based  Encryption.  Advances  in  CryptoloGy  -  EUROCRYPT  2005,  24th  Annual  International  Conference  on  the  Theory  and  Applications  of  CryptoGraphic  Techniques,  Aarhus,  Denmark,  May  22-26,  2005,  ProceedinGs.  Lecture  Notes  in  Computer  Science  3494,  pp.457-473,  SprinGer  2005,  ISBN  3-540-25910-4”に開示された方式がある。【０００３】
以下に、上記文献に開示された方式について説明する。本方式では、鍵生成装置、暗号化装置及び復号装置を用いる。【０００４】
まず、記法を示す。ｐを素数、ＧとＧTを位数ｑの巡回群、ｅをＧ掛けるＧからＧTへの非縮退な双線形写像であるとする。ここで双線形であるとは、すべてのα，β∈Ｚ／ｑＺ及びｇ∈Ｇに対して、
ｅ（ｇα，ｇβ）＝ｅ（ｇ，ｇ）αβ
が成り立つことである。また、非縮退であるとは、ｇがＧの生成元であるとき、ｅ（ｇ，ｇ）が、ＧTの生成元となるということである。また、ａ^ｂとａbは同じ意味とする。【０００５】
また、Ｎを集合｛１，・・・，ｎ＋１｝とする。Ｓ⊂Ｎとする。【０００６】
Δ（ｉ，Ｓ，ｘ）をΠsub＞ｊ∈Ｓ，ｊ≠ｉ＜．ｓｕｂ＞（ｘ−ｊ）／（ｘ−ｉ）とする。【０００７】
Ｔ（ｘ）＝ｇ^（ｘ^ｎ）Πi=１n+１ｔ［ｉ］Δ(I，N，x)とする。【０００８】
図１は、鍵生成装置の一例を示す図である。【０００９】
本例における鍵生成装置は図１に示すように、入力部４１０と計算部４２０と出力部４３０とから構成され、計算部４２０は、多項式生成部４２１とユーザ毎属性秘密鍵生成部５２２とを有している。【００１０】
上記のように構成された鍵生成装置４００においては、公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ［１］，ｇ［２]，ｔ［１]，・・・，ｔ[ｎ＋１]）と、マスター鍵４０２（ｙ）とが入力部４１０を介して入力される。なお、ｙはＺ／ｑＺの要素であり、また、ｇ[１]＝ｇyで、ｇ[２]及びｉ＝１，・・・，ｍに関するｇ[ｉ]はＧから無作為に選ばれた要素であるとする。【００１１】
鍵生成装置４００にはさらに、乱数４０１とユーザ識別子集合４０１（ω）が入力部４１０を介して入力される。【００１２】
多項式生成部５２１において、入力部４１０を介して入力されたマスター鍵４０２、公開鍵４０３及び乱数４０４を用いて、無作為にｆ（０）＝ｙなるｄ−１次多項式ｑ（ｘ）をランダムに選ぶ。そして、ユーザ毎属性秘密鍵生成部５２２において、ｉ∈ωに関して無作為にｒ[ｉ]∈Ｚ／ｑＺを選び、
Ｄ[ｉ]＝ｇ[２]f(i)Ｔ（ｉ）r[i]，ｄ[ｉ]=ｇr[i]
を生成する。【００１３】
そして、ｉ∈ωに関するＤ[ｉ]，ｄ[ｉ]を属性値秘密鍵４０７として、出力部４３０を介して出力する。【００１４】
図２は、暗号化装置の一例を示す図である。【００１５】
本例における暗号化装置は図２に示すように、入力部５１０と計算部５２０と出力部５３０とから構成され、計算部５２０は、主暗号文生成部５２１と分散暗号文生成部５２２とを有している。【００１６】
上記のように構成された暗号化装置５００においては、図１に示した鍵生成装置４００に入力された公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ[１]，ｇ[２]，ｔ[１]，・・・，ｔ[ｎ＋１]）と、メッセージ５０１（Ｍ）、乱数２０２及び属性値集合５０３（ω’）とが入力部５１０を介して入力される。【００１７】
計算部５２０においては、乱数５０２を用いてＺ／ｑＺの要素であるｓを生成し、暗号文５０４（ｃｉｐｈ（ω’，Ｍ））を以下のように生成し、出力する。【００１８】
主暗号文生成部５２１においては、入力部５１０を介して入力された公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ[１]，ｇ[２]，ｔ[１]，・・・，ｔ[ｎ＋１]）と、メッセージ５０１（Ｍ）と、乱数２０２とから主暗号文５０５（Ｅ’＝Ｍｅ（ｇ[１]，ｇ[２]）s，Ｅ''＝ｇsを生成する。また、分散暗号文生成部５２２においては、入力部５１０を介して入力された公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ[１]，ｇ[２]，ｔ[１]，・・・，ｔ[ｎ＋１]）と、乱数２０２と、属性値集合５０３（ω’）とから分散暗号文５０６｛Ｅ［ｉ］＝Ｔ（ｉ）s｝ｉ∈ω'。ｃｉｐｈ（ω’，Ｍ）＝（ω'，Ｅ'，Ｅ''，｛Ｅ[ｉ]｝ｉ∈ω'）を生成する。【００１９】
そして、主暗号文生成部５２１にて生成された主暗号文５０５（Ｅ’＝Ｍｅ（ｇ[１]，ｇ[２]）s，Ｅ''＝ｇsと、分散暗号文生成部５２２にて生成された分散暗号文５０６｛Ｅ［ｉ］＝Ｔ（ｉ）s｝ｉ∈ω'。ｃｉｐｈ（ω’，Ｍ）＝（ω'，Ｅ'，Ｅ''，｛Ｅ[ｉ]｝ｉ∈ω'）とが出力部５３０を介して出力される。この際、入力部５１０を介して入力された属性値集合５０３（ω’）も出力部５３０を介して出力される。【００２０】
図３は、復号装置の一例を示す図である。【００２１】
本例における復号装置は図３に示すように、入力部６１０と計算部６２０と出力部６３０とから構成され、計算部６２０は、暗号文分散復号部６２１と分散誤差修正データ生成部６２２と統合部６２５とを有している。【００２２】
上記のように構成された復号装置６００においては、図１に示した鍵生成装置４００に入力された公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ[１]，ｇ[２]，ｔ[１]，・・・，ｔ[ｎ＋１]）と、図１に示した鍵生成装置４００にて生成された属性値秘密鍵４０７（Ｄ[ｉ]，ｄ[ｉ]）j  ∈  ωと、図２に示した暗号化装置５００にて生成された暗号文５０４ｃｉｐｈ（ω'，Ｍ）とが入力部６１０を介して入力される。なお、Ｓ＝ω'∩ωとする。但し、|Ｓ|≧ｄとする。【００２３】
そして、図２に示した暗号化装置５００に入力されたメッセージ５０１（Ｍ）を次のように復元して出力する。【００２４】
まず、暗号文分散復号部６２１において、入力部６１０を介して入力された暗号文５０４ｃｉｐｈ（ω'，Ｍ）のうちの主暗号分５０５と、属性値秘密鍵４０７（Ｄ[ｉ]，ｄ[ｉ]）j  ∈  ωとを用いて分散誤差付復号文集合６２３｛ｅ（Ｄ[ｉ]，Ｅ''）｝i  ∈Sを生成する。【００２５】
また、分散誤差修正データ生成部６２２において、入力部６１０を介して入力された暗号文５０４ｃｉｐｈ（ω'，Ｍ）のうちの分散暗号分５０６及び属性値集合５０７と、属性値秘密鍵４０７（Ｄ[ｉ]，ｄ[ｉ]）j  ∈  ωと、公開鍵４０３（ｎ，ｄ，ｑ，Ｇ，ＧT，ｅ，ｇ[１]，ｇ[２]，ｔ[１]，・・・，ｔ[ｎ＋１]）とを用いて、分散誤差修正データ６２４｛ｅ（ｄ[ｉ]，Ｅ[ｉ]）｝i  ∈Sを生成する。【００２６】
その後、統合部６２５において、暗号文分散復号部６２１にて生成された分散誤差付復号文集合６２３｛ｅ（Ｄ[ｉ]，Ｅ''）｝i  ∈Sと、分散誤差修正データ生成部６２２にて生成された分散誤差修正データ６２４｛ｅ（ｄ[ｉ]，Ｅ[ｉ]）｝i  ∈Sとからメッセージ５０１を復元し、出力部６３０を介してＭ＝Ｅ'Πi∈S（ｅ（ｄ[ｉ]，Ｅ[ｉ]）／ｅ（Ｄ[ｉ]，Ｅ''））Δ(i、S、０)として出力する。【００２７】
しかしながら、上述した従来の技術においては、暗号文が属性値の集合の大きさ（ｎ）に比例するため、本方式を生体認証に用いた場合、生体情報を表す特徴点の個数に比例することとなり、非常に長いデータとなってしまうという問題点がある。
【発明の開示】
【００２８】
本発明は、属性値の集合の大きさに比例せず、許容する属性値集合の誤差の大きさに比例する、鍵生成装置、暗号化装置及び復号装置を提供することを目的とする。
【００２９】
上記目的を達成するために本発明は、
同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、公開鍵、マスター鍵、属性値番号、ユーザ番号及び乱数が入力され、属性値秘密鍵を生成して出力する鍵生成装置であって、
前記属性値番号によって示される属性値と前記マスター鍵の１つの要素との和をとり、その逆数である属性値秘密を生成する属性値秘密部と、
前記ユーザ番号及び乱数を用いてユーザ固有の乱数を生成し、該ユーザ固有の乱数と前記公開鍵とからユーザ固有の秘密を生成するユーザ秘密部と、
前記ユーザ秘密部にて生成されたユーザ固有の秘密に、前記属性値秘密部にて生成された属性値秘密をべき乗してユーザ固有の属性値秘密鍵を生成するユーザ毎属性秘密鍵生成部とを有する。
【００３０】
また、同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する二つの群Ｇ，ＧTの計算手段を有し、公開鍵、属性値集合、閾値及び乱数が入力され、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、共有鍵とを出力する暗号化装置であって、
前記乱数からランダム要素を生成するランダム要素生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵とから前記共有鍵を生成する共有鍵生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵と前記属性値集合とから前記主暗号文を生成する主暗号文生成部と、
前記ランダム要素生成部にて生成されたランダム要素と前記公開鍵と前記閾値と前記誤差修正データを生成する誤差修正データ生成部とを有する。
【００３１】
また、同じ位数の群Ｇ、ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段を有し、主暗号文、誤差修正データ及び属性値集合からなる共有鍵の暗号文と、公開鍵と、属性値秘密鍵集合とが入力され、共有鍵を出力する復号装置であって、
前記属性値秘密鍵集合の要素の中から、前記共有鍵の暗号文に含まれる属性値集合の要素の１つに一致するものを選択し、選択した属性値集合の要素から部分復号鍵を生成する部分復号鍵生成部と、
前記部分復号鍵生成部にて生成された部分復号鍵と前記主暗号文とから誤差付共通鍵を生成する暗号文部分復号部と、
前記誤差修正データと前記属性値集合とから、前記属性値秘密鍵集合が前記属性値集合全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである誤差修正鍵を生成する誤差修正鍵生成部と、
前記暗号文部分復号部にて生成された誤差付共有鍵と前記誤差修正鍵生成部にて生成された誤差修正鍵とから前記共有鍵を生成する誤差修正部とを有する。
【００３２】
本発明は、以上説明したように構成されているので、属性値の集合を指定して生成された暗号文を復号できるものは、指定された記集合の中の属性値と一致する、閾値以上の個数の属性値に対して秘密鍵を受け取ったユーザのみとなり、その数は、属性値の集合の大きさに比例せず、許容する属性値集合の誤差の大きさに比例したものとなる。
【図面の簡単な説明】
【００３３】
【図１】鍵生成装置の一例を示す図である。
【図２】暗号化装置の一例を示す図である。
【図３】復号装置の一例を示す図である。
【図４】本発明の鍵生成装置の実施の一形態を示す図である。
【図５】本発明の暗号化装置の実施の一形態を示す図である。
【図６】本発明の復号装置の実施の一形態を示す図である。
【発明を実施するための最良の形態】
【００３４】
以下に、本発明の実施の形態について図面を参照して説明する。【００３５】
［実施の形態にて使用される記法］
ｐを素数、ＧとＧTを位数ｑの巡回群、ｅをＧ掛けるＧからＧTへの非縮退な双線形写像であるとする。ここで双線形であるとは、すべてのα，β∈Ｚ／ｑＺ及びｇ∈Ｇに対して、
ｅ（ｇα，ｇβ）＝ｅ（ｇ，ｇ）αβ
が成り立つことである。また、非縮退であるとは、ｇがＧの生成元となるということである。また、ａ^ｂとａbは同じ意味とする。【００３６】
［鍵生成装置］
図４は、本発明の鍵生成装置の実施の一形態を示す図である。【００３７】
本形態における鍵生成装置は図４に示すように、入力部１１０と計算部１２０と出力部１３０とから構成され、計算部１２０は、属性値秘密部１２１とユーザ秘密部１２２とユーザ毎属性秘密鍵生成部１２３とを有している。【００３８】
入力部１１０は、属性値番号１０１、マスター鍵１０２、ユーザ番号１０３、公開鍵１０４及び乱数１０５が入力される。【００３９】
計算部１２０は、同じ位数の群Ｇ，ＧTで、群Ｇに属する２つの要素から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段であって、入力部１１０を介して入力された属性値番号１０１、マスター鍵１０２、ユーザ番号１０３、公開鍵１０４及び乱数１０５を用いて属性値秘密鍵１０６を生成する。【００４０】
出力部１３０は、計算部１２０にて生成された属性値秘密鍵１０６を出力する。【００４１】
属性値秘密部１２１は、入力部１１０を介して入力された属性値番号１０１とマスター鍵１０２の１つの要素との和をとり、その逆数である属性値秘密を生成する。【００４２】
ユーザ秘密部１２２は、入力部１１０を介して入力されたユーザ番号１０３及び乱数１０５を用いてユーザ固有の乱数を生成し、このユーザ固有の乱数と入力部１１０を介して入力された公開鍵１０４からユーザ固有の秘密を生成する。【００４３】
ユーザ毎属性秘密鍵生成部１２３は、ユーザ秘密部１２２にて生成されたユーザ固有の秘密に、属性値秘密部１２１にて生成された属性値秘密をべき乗してユーザ固有の、属性値秘密鍵１０６を生成する。【００４４】
以下に、上記のように構成された鍵生成装置１００の動作について説明する。【００４５】
鍵生成装置１００には、公開鍵１０４（ｍ，ｑ，Ｇ，ＧT，ｅ，ｇ，ｙ，ｇ[１]，・・・，ｇ[ｍ]）と、マスター鍵１０２（ω，χ，δ）とが入力部１１０を介して入力される。ここで、ｍは属性値集合の最大要素数とする。また、ω，χ，δはＺ／ｑＺの元とし、ｇはＧの生成元とする。また、ｉ＝１，・・・，ｍに関してｇ[ｉ]＝ｇχ^iとする。また、ｙ＝ｇω，Ｇ＝ｅ（ｇ，ｇδ）とする。【００４６】
鍵生成装置１００にはさらに、乱数１０５とユーザ番号１０３（ｉ）と属性値番号１０１（ｊ）とが入力部１１０を介して入力される。なお、属性値番号１０１（ｊ）から、θ[ｊ]∈Ｚ／ｑＺが一意的に決定されるとする。この対応関係は、ハッシュ関数で与えても良いし、あらかじめ決めておいても良い。【００４７】
鍵生成装置１００は、入力部１１０を介して入力された乱数１０５よりＺ／ｑＺの要素である乱数要素φ[ｉ]を生成し、ユーザｉの識別子ｊに対応する属性値秘密鍵１０６（ｓｋｅｙ（ｉ，ｊ））を以下のように生成し、出力する。【００４８】
ユーザ秘密部１２２において、入力部１１０を介して入力されたユーザ番号１０３及び乱数１０５を用いてユーザ固有の乱数を生成し、このユーザ固有の乱数と入力部１１０を介して入力された公開鍵１０４からユーザ固有の秘密（ｇφ[i]，ｇ(ωφ[i]-δ)）を生成する。このように、公開鍵１０４の１つの要素に、生成したユーザ固有の乱数をべき乗した要素と、公開鍵１０４の他の要素に、生成したユーザ固有の乱数の一次関数の出力をべき乗した要素とからなるユーザ固有の秘密を生成する。【００４９】
また、属性値秘密部１２１において、入力部１１０を介して入力された属性値番号１０１とマスター鍵１０２の１つの要素との和をとり、その逆数である属性値秘密１／（χ＋θ[ｊ]）を生成する。【００５０】
その後、ユーザ毎属性秘密鍵生成部１２３において、ユーザ秘密部１２２にて生成されたユーザ固有の秘密（ｇφ[i]，ｇ(ωφ[i]-δ)）に、属性値秘密部１２１にて生成された属性値秘密１／（χ＋θ[ｊ]）をべき乗し、
ｓｋｅｙ（ｉ，ｊ）ｇ＝（ｄi，ｄi、j）
＝（ｇφ[i]，ｇ(ωφ[i]-δ)/(χ+θ[j])）
を生成し、ユーザ固有の、属性値秘密鍵１０６として出力部１３０を介して出力する。【００５１】
［暗号化装置］
図５は、本発明の暗号化装置の実施の一形態を示す図である。【００５２】
本形態における暗号化装置は図５に示すように、入力部２１０と計算部２２０と出力部２３０とから構成され、計算部２２０は、ランダム要素生成部２２１と共有鍵生成部２２２と主暗号文生成部２２３と誤差修正データ生成部２２４とを有している。【００５３】
入力部２１０は、公開鍵１０４、乱数２０１、属性値集合２０３及び閾値２０４が入力される。【００５４】
計算部２２０は、同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段であって、入力部２１０を介して入力された公開鍵１０４、乱数２０１、属性値集合２０３及び閾値２０４を用いて、共有鍵２０５、並びに主暗号文２０７、誤差修正データ２０８及び属性値集合２０９からなる共有鍵の暗号文２０６を生成する。【００５５】
出力部２３０は、計算部２２０にて生成された共有鍵２０５及び共有鍵の暗号文２０６を出力する。【００５６】
ランダム要素生成部２２１は、入力部２１０を介して入力された乱数２０１からランダム要素２２５を生成する。【００５７】
共有鍵生成部２２２は、入力部２１０を介して入力された公開鍵１０４と、ランダム要素生成部２２１にて生成されたランダム要素１１５とから共有鍵２０５を生成する。【００５８】
主暗号文生成部２２３は、入力部２１０を介して入力された公開鍵１０４及び属性値集合２０３と、ランダム要素生成部２２１にて生成されたランダム要素１１５とから、共有かぎの暗号文２０６を構成する主暗号文２０６を生成する。【００５９】
誤差修正データ生成部２２４は、入力部２１０を介して入力された公開鍵１０４及び閾値２０４と、ランダム要素生成部２２１にて生成されたランダム要素１１５とから、共有かぎの暗号文２０６を構成する誤差修正データ２０８を生成する。【００６０】
以下に、上記のように構成された暗号化装置２００の動作について説明する。【００６１】
暗号化装置２００には、図４に示した鍵生成装置１００に入力された公開鍵１０４（ｍ，ｑ，Ｇ，ＧT，ｅ，ｇ，ｙ，ｇ[１]，・・・，ｇ[ｍ]）、並びに乱数２０１、属性値集合２０３（Ｓ（⊂自然数の集合））及び閾値２０４（ｔ）が入力部２１０を介して入力される。ここで、Ｓの大きさをｍとし、閾値ｔはｍと等しいかｍよりも小さいものとする。【００６２】
暗号化装置２００は、入力部２１０を介して入力された乱数２０１よりＺ／ｑＺの要素であるランダム要素２２５（ρ）を生成し、共通鍵２０５（ｋｅｙ）及び共通鍵の暗号文２０６（ｃｉｐｈ（Ｓ））を以下のように生成し、出力する。【００６３】
ランダム要素生成部２２１において、入力部２１０を介して入力された乱数２０１からＺ／ｑＺの要素であるランダム要素２２５（ρ）を生成する。【００６４】
次に、共有鍵生成部２２２において、入力部２１０を介して入力された公開鍵１０４と、ランダム要素生成部２２１にて生成されたランダム要素１１５とから共有鍵２０５（ｋｅｙ＝Ｇρ）を生成する。【００６５】
また、主暗号文生成部２２３において、入力部２１０を介して入力された公開鍵１０４及び属性値集合２０３と、ランダム要素生成部２２１にて生成されたランダム要素１１５とから、共有かぎの暗号文２０６を構成する主暗号文２０６（ｃ＝ｇ^（ρΠj∈S（χ＋θ[ｊ]））を生成する。このように、属性値集合２０３の要素から積と和を用いて生成できるデータの集合の各要素を、それぞれ異なる公開鍵１０４の要素の１つにべき乗し、これらの積を取ることで、マスター鍵の１つの要素と属性値集合２０３の１つの要素との和を、それぞれの属性値集合２０３の各要素に対して生成し、これら全てとランダム要素生成部２２１にて生成されたランダム要素１１５の積をとったものを、公開鍵１０４のある要素に乗じた値として生成する。【００６６】
また、誤差修正データ生成部２２４において、入力部２１０を介して入力された公開鍵１０４及び閾値２０４と、ランダム要素生成部２２１にて生成されたランダム要素２１５とから、共有かぎの暗号文２０６を構成する誤差修正データ２０８（（ｃ[ｉ]）i=０，・・・，m-t=（ｙ^（ρχi）i=０，・・・，m-t，（ｄ[ｉ]）i=１，・・・，m-t＝（ｇ^（ρχi）i=０，・・・，m-t）を生成する。このように、誤差修正データ生成部２２４は、属性値集合２０３の要素の数から閾値を引いたものの、すなわち誤差に比例する数の要素を誤差修正データ２０８として生成するもので、この誤差修正データ２０８の各要素は、公開鍵１０４のある要素に、ランダム要素生成部２２１にて生成されたランダム要素２１５をべき乗したものである。【００６７】
なお、ｇ^（ρΠj∈S（χ+θ[ｊ]）は以下のようにして計算する。【００６８】
ｊ＝０，・・・，ｍに関して、ａ[ｊ]をａ[ｊ]＝（１／ｊ！）（∂j／∂χj）（Πj∈S（χ＋θ[ｊ]））|χ=０とする。【００６９】
すると、
ｇ^（ρΠj∈S（χ＋θ[ｊ]）＝Πj=０mｇ[ｊ]ρa[j]
と計算できる。【００７０】
その後、共通鍵の暗号文２０６（ｃｉｐｈ（Ｓ）＝（Ｓ，ｔ，ｃ，（ｃ[ｉ]）i=０，・・・，m-t，（ｄ[ｉ]）i=１，・・・，m-t）を出力部２３０を介して出力する。【００７１】
［復号装置］
図６は、本発明の復号装置の実施の一形態を示す図である。【００７２】
本形態における復号装置は図６に示すように、入力部３１０と計算部３２０と出力部３３０とから構成され、計算部３２０は、部分復号鍵生成部３２１と暗号文部分復号部３２３と誤差修正鍵生成部３２５と誤差修正部３２７とを有している。【００７３】
入力部３１０は、属性値秘密鍵集合１０６、共有鍵の暗号文２０６及び公開鍵１０４が入力される。【００７４】
計算部３２０は、同じ位数の群Ｇ，ＧTで、群Ｇと群Ｇの積から群ＧTへの双線形写像が存在する２つの群Ｇ，ＧTの計算手段であって、入力部３１０を介して入力された属性値秘密鍵集合１０６、共有鍵の暗号文２０６及び公開鍵１０４を用いて共有鍵２０５を生成する。【００７５】
出力部３３０は、計算部３２０にて生成された共有鍵２０５を出力する。【００７６】
部分復号鍵生成部３２１は、入力部３１０を介して入力された属性値秘密鍵集合の要素の中から、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる属性値集合２０９の要素の１つに一致するものを選び、これらから部分復号鍵３２２を生成する。【００７７】
暗号文部分復号部３２３は、部分復号鍵生成部３２１にて生成された部分復号鍵３２２と、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる主暗号文２０７とから誤差付共有鍵３２４を生成する。【００７８】
誤差修正鍵生成部３２５は、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる誤差修正データ２０８及び属性値集合２０９と、入力部３１０を介して入力された公開鍵１０４とを用いて、属性値秘密鍵集合１０６が属性値集合５０９の全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである、誤差修正鍵３２６を生成する。【００７９】
誤差修正部３２７は、暗号文部分復号部３２３にて生成された誤差付共有鍵３２４と、誤差修正鍵生成部３２５にて生成された誤差修正鍵３２６とから共有鍵２０５を生成する。【００８０】
以下に、上記のように構成された復号装置３００の動作について説明する。【００８１】
復号装置３００には、図４に示した鍵生成装置１００及び図５に示した暗号化装置２００に入力された公開鍵１０４（ｍ，ｑ，Ｇ，ＧT，ｅ，ｇ，ｙ，ｇ[１]，・・・，ｇ[ｍ]）と、図５に示した暗号化装置２００にて生成された共有鍵の暗号文２０６（ｃｉｐｈ（Ｓ））と、図４に示した鍵生成装置１００にて生成された属性値秘密鍵集合１０６｛ｓｋｅｙ（ｉ，ｊ）｝j  ∈  S[i]が入力される。ただし、属性値集合２０９（Ｓ[ｉ]）はＳの部分集合で、ｊ∈Ｓ[ｉ]なるｓｋｅｙ（ｉ，ｊ）をユーザｉは所持しているものとする。また、Ｓ[ｉ]の要素の数を閾値ｔとする（ｔ以上であれば良いが、ここではｔを選ぶ）。【００８２】
復号装置３００は、共有鍵２０５（ｋｅｙ）を以下のように復元して出力する。【００８３】
部分復号鍵生成部３２１において、入力部３１０を介して入力された属性値秘密鍵集合の要素の中から、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる属性値集合２０９の要素の１つに一致するものを選び、これらから部分復号鍵３２２（ｄ[Ｓ[ｉ]]＝ｇ^（（ωφ[ｉ]−δ）／Πj∈S[i]（χ＋θ[ｊ]）））を生成する。このように、属性値秘密鍵集合の要素の中から、共有鍵の暗号文２０６に含まれる属性値集合２０９の要素の１つに一致する属性値秘密鍵を閾値以上の個数だけ選び、これらの要素に属性値から決まる定数をべき乗した上で、これらの積をとることで部分復号鍵３２２を生成する。【００８４】
次に、暗号文部分復号部３２３において、部分復号鍵生成部３２１にて生成された部分復号鍵３２２と、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる主暗号文２０７とから誤差付共有鍵３２４（ｋｅｙ'＝ｅ（ｄi，ｙ[Ｓ[ｉ]]）／ｅ（ｃ，ｄ[Ｓ[ｉ]]））を生成する。【００８５】
また、誤差修正鍵生成部３２５において、入力部３１０を介して入力された共有鍵の暗号文２０６に含まれる誤差修正データ２０８及び属性値集合２０９と、入力部３１０を介して入力された公開鍵１０４とを用いて、属性値秘密鍵集合１０６が属性値集合５０９の全ての要素に対する秘密鍵に対して不足していた秘密鍵に対応するデータである、誤差修正鍵３２６（ｙ[Ｓ[ｉ]]，Ｇ[Ｓ[ｉ]]）＝（ｙ^（ρΠj∈S\S[i]（χ+θ[ｊ]）、Ｇ^（（ρΠj∈S\S[i]（χ+θ[ｊ]）−ρΠj∈S[i]θ[ｊ]））を生成する。このように、誤差修正データ２０８と属性値集合２０９とから、共有鍵の暗号文２０６に含まれる属性値集合２０９の要素で、対応する属性値秘密鍵がないものを全て選び、これらの要素に属性値から決まる定数をそれぞれ誤差修正データのべき乗した上で、これらの積をとることで誤差修正鍵３２６を生成する。【００８６】
その後、誤差修正部３２７において、暗号文部分復号部３２３にて生成された誤差付共有鍵３２４と、誤差修正鍵生成部３２５にて生成された誤差修正鍵３２６とから共有鍵２０５（ｋｅｙ）＝（ｋｅｙ'／Ｇ[Ｓ[ｉ]]）^（１／Πj  ∈  S\S[i]）を生成することによって復号し、出力部３３０から出力する。【００８７】
なお、本発明においては、鍵生成装置、暗号化装置及び復号装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを鍵生成装置、暗号化装置及び復号装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを鍵生成装置、暗号化装置及び復号装置に読み込ませ、実行するものであっても良い。鍵生成装置、暗号化装置及び復号装置にて読取可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、鍵生成装置、暗号化装置及び復号装置に内蔵されたＨＤＤ等を指す。この記録媒体に記録されたプログラムは、例えば、制御ブロックにて読み込まれ、制御ブロックの制御によって、上述したものと同様の処理が行われる。
【産業上の利用分野】
【００８８】
本発明における鍵生成装置、暗号化装置及び復号装置は、生体認証に応用することができる。特定の生体データを持つ利用者が、自分の生体データに合わせた秘密鍵を受け取っておく。これは、生体を使って自己を証明するので、本人認証が確実である。また、本人は自身の公開鍵を簡単に持ち運び、他人に示すことができる。暗号文の送信者はこの様にして手にいれた公開鍵に対して暗号文を生成して送ることができる。ここで、問題になるのは、この公開鍵と、本人が認証されて受け取った秘密鍵とでは、元となった生体データが必ずしも完全に一致しないことである。これらが完全に一致することが暗号文を復号するための条件であれば、この生体データを使った公開鍵暗号はほとんど旨く働かない。しかし、本発明を用いれば、これらがおよそ一致することしか求めないため、公開鍵暗号方式として動作しうる。
【００８９】
以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００９０】
この出願は、２００７年５月２５日に出願された日本出願特願２００７−１３８９３９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2008146546.tif 000003
【図２】
2008146546.tif 000004
【図３】
2008146546.tif 000005
【図４】
2008146546.tif 000006
【図５】
2008146546.tif 000007
【図６】
2008146546.tif 000008
【国際調査報告】
2008146546.tif 000009
2008146546.tif 000010
2008146546.tif 000011
2008146546.tif 000012