(57)【特許請求の範囲】
【請求項１】
ユーザ秘密鍵で復号可能なオリジナル暗号文を復号できないように前記ユーザ秘密鍵を変換して普遍再暗号化鍵を生成する普遍再暗号化鍵生成装置と、
前記ユーザ秘密鍵で復号可能なオリジナル暗号文についての復号可能な範囲を変更する再暗号化をするための再暗号化鍵であって、前記オリジナル暗号文を復号可能な範囲を示す情報が設定された再暗号化鍵を前記普遍再暗号化鍵生成装置が生成した前記普遍再暗号化鍵から生成する再暗号化鍵生成装置と
を備える暗号システム。
【請求項２】
前記普遍再暗号化鍵生成装置は、有資格集合Ｓとアクセス構造Ｆとのうちの一方が設定された前記ユーザ秘密鍵をパラメータｄで変換した変換後ユーザ秘密鍵と、前記パラメータｄを暗号化したパラメータ暗号文とを含む前記普遍再暗号化鍵を生成し、
前記再暗号化鍵生成装置は、前記変換後ユーザ秘密鍵と、有資格集合Ｓ’とアクセス構造Ｆ’とのうちの一方を前記パラメータ暗号文に設定した変換後暗号文とを含む再暗号化鍵を生成する
請求項１に記載の暗号システム。
【請求項３】
前記暗号システムは、さらに、
前記有資格集合Ｓと前記アクセス構造Ｆのうちの他方が設定されたオリジナル暗号文を、前記再暗号化鍵に含まれる前記変換後ユーザ秘密鍵で復号した復号情報と、前記変換後暗号文とを含む再暗号文を生成する再暗号化装置
を備える請求項２に記載の暗号システム。
【請求項４】
前記暗号システムは、さらに、
前記有資格集合Ｓ’と前記アクセス構造Ｆ’のうちの他方が設定されたユーザ秘密鍵により、前記再暗号文を復号する再暗号文復号装置
を備える請求項３に記載の暗号システム。
【請求項５】
前記普遍再暗号化鍵生成装置は、数１に示す鍵要素Ｋ０，Ｋ１，Ｋ２．ｉを含むユーザ秘密鍵から、数２に示す鍵要素ＲＫ０，ＲＫ１，ＲＫ２．ｉを含む変換後ユーザ秘密鍵を生成するとともに、数３に示す暗号要素ＲＣ＾０，ＲＣ＾１を含むパラメータ暗号文を生成し、
前記再暗号化鍵生成装置は、数４に示す暗号要素ＲＣ＾’０，ＲＣ＾’１，ＲＣ＾’２．ｉ，ＲＤ＾’ｉを含む変換後暗号文を生成し、
前記再暗号化装置は、数５に示す暗号要素Ｃ１，Ｃ２．ｉ，Ｄｉを含むオリジナル暗号文を、数６に示すように復号した復号情報ｄｅｃｄと、数７に示す前記オリジナル暗号文の暗号要素ＲｅＣ０とを含む再暗号文を生成し、
前記再暗号文復号装置は、数８に示す鍵要素Ｋ＾’０，Ｋ＾’１，Ｋ＾’２．ｉを含む第２ユーザ秘密鍵により、数９に示すように前記再暗号文を復号する
請求項４に記載の暗号システム。
【数１】
0006270683.tif 000026
【数２】
0006270683.tif 000027
【数３】
0006270683.tif 000028
【数４】
0006270683.tif 000029
【数５】
0006270683.tif 000030
【数６】
0006270683.tif 000031
【数７】
0006270683.tif 000032
【数８】
0006270683.tif 000033
【数９】
0006270683.tif 000034
【請求項６】
普遍再暗号化鍵生成装置が、ユーザ秘密鍵で復号可能なオリジナル暗号文を復号できないように前記ユーザ秘密鍵を変換して普遍再暗号化鍵を生成する普遍再暗号化鍵生成工程と、
再暗号化鍵生成装置が、前記ユーザ秘密鍵で復号可能なオリジナル暗号文について、復号可能な範囲を変更する再暗号化をするための再暗号化鍵であって、前記オリジナル暗号文を復号可能な範囲を示す情報が設定された再暗号化鍵を前記普遍再暗号化鍵生成装置が生成した前記普遍再暗号化鍵から生成する再暗号化鍵生成工程と
を備える暗号方法。
【請求項７】
ユーザ秘密鍵をパラメータｄで変換して変換後ユーザ秘密鍵を生成する復号鍵変換部と、
前記パラメータｄを暗号化してパラメータ暗号文を生成するパラメータ暗号化部と、
前記復号鍵変換部が生成した変換後ユーザ秘密鍵と、前記パラメータ暗号化部が生成したパラメータ暗号文とを含む普遍再暗号化鍵を出力する普遍再暗号化鍵出力部と
を備える普遍再暗号化鍵生成装置。
【請求項８】
ユーザ秘密鍵をパラメータｄで変換した変換後ユーザ秘密鍵と、前記パラメータｄを暗号化したパラメータ暗号文とを含む普遍再暗号化鍵を取得する普遍再暗号化鍵取得部と、
前記普遍再暗号化鍵取得部が取得した普遍再暗号化鍵に含まれる前記パラメータ暗号文に、属性情報を設定して変換後暗号文を生成する属性設定部と、
前記普遍再暗号化鍵取得部が取得した普遍再暗号化鍵に含まれる前記変換後ユーザ秘密鍵と、前記属性設定部が生成した変換後暗号文とを含む再暗号化鍵を出力する再暗号化鍵出力部と
を備える再暗号化鍵生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、属性ベース暗号における代理人再暗号化（Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｐｒｏｘｙ  Ｒｅ―Ｅｎｃｒｔｙｐｔｉｏｎ、ＡＢ−ＰＲＥ）に関するものである。
【背景技術】
【０００２】
代理人再暗号化は、暗号文を復号することなく、暗号文の復号権限を他者に委譲するシステムである。言い換えると、代理人再暗号化は、暗号文を復号することなく、暗号文の復号可能な範囲を変更するシステムである。
非特許文献１には、ＡＢ−ＰＲＥ方式に関する記載がある。非特許文献２には、属性を特定のユーザが任意に変更できる属性ベース暗号（Ａｄａｐｔａｂｌｅ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ，Ａｄ−ＰＲＥ）方式に関する記載がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｓｏｎｇ  Ｌｕｏ，  Ｊｉａｎｂｉｎ  Ｈｕ，  ａｎｄ  Ｚｈｏｎｇ  Ｃｈｅｎ  “Ｃｉｐｈｅｒｔｅｘｔ  Ｐｏｌｉｃｙ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｐｒｏｘｙ  Ｒｅ−ｅｎｃｒｙｐｔｉｏｎ”
【非特許文献２】Ｊｕｎｚｕｏ  Ｌａｉ  ａｎｄ  Ｒｏｂｅｒｔ  Ｈ．  Ｄｅｎｇ  ａｎｄ  Ｙａｎｊｉａｎｇ  Ｙａｎｇ  ａｎｄ  Ｊｉａｎ  Ｗｅｎｇ．  “Ａｄａｐｔａｂｌｅ  Ｃｉｐｈｅｒｔｅｘｔ−Ｐｏｌｉｃｙ  Ａｔｔｒｉｂｕｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ”
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＰＲＥにおいて、暗号文のアクセス範囲を変更する際に用いられる再暗号化鍵は、変更したいアクセス範囲毎に異なるものを生成する必要がある。非特許文献１に記載されているＡＢ−ＰＲＥ方式では、再暗号化鍵を生成するためには、ユーザの秘密鍵、又は、マスター秘密鍵が必要である。そのため、再暗号化鍵を生成する度に、ユーザが秘密鍵を用いた処理を行わなければならず利便性が低くなる、あるいは、再暗号化鍵を生成する度に、マスター秘密鍵を用いた処理を行わなければならず安全性が低くなるという課題がある。
【０００５】
非特許文献２に記載されているＡｄ−ＰＲＥ方式では、特定の高い権限を持ったエンティティであれば、どのような暗号文のアクセス範囲も自由に変更することができる。しかし、どのような暗号文も、いかなるアクセス範囲にも変更できてしまうため、安全性の面で課題がある。
【０００６】
この発明は、利便性と安全性との少なくとも一方を高めた代理人再暗号化方式を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る暗号システムは、
ユーザ秘密鍵で復号可能なオリジナル暗号文を復号できないように前記ユーザ秘密鍵を変換して普遍再暗号化鍵を生成する普遍再暗号化鍵生成装置と、
前記ユーザ秘密鍵で復号可能なオリジナル暗号文についての復号可能な範囲を変更する再暗号化をするための再暗号化鍵であって、前記オリジナル暗号文を復号可能な範囲を示す情報が設定された再暗号化鍵を前記普遍再暗号化鍵生成装置が生成した前記普遍再暗号化鍵から生成する再暗号化鍵生成装置と
を備える。
【発明の効果】
【０００８】
この発明に係る暗号システムでは、普遍再暗号化鍵生成装置が生成した普遍再暗号化鍵から再暗号化鍵生成装置が再暗号化鍵を生成する。普遍再暗号化鍵生成装置が普遍再暗号化鍵を１つ生成すれば、再暗号化鍵生成装置は変更したいアクセス範囲毎の再暗号化鍵を生成することが可能である。そのため、利便性と安全性との少なくとも一方を高めることが可能である。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る暗号システム１０の構成図。
【図２】実施の形態１に係る鍵生成装置１００の機能構成図。
【図３】実施の形態１に係る暗号化装置２００の機能構成図。
【図４】実施の形態１に係る普遍再暗号化鍵生成装置７００の機能構成図。
【図５】実施の形態１に係る再暗号化鍵生成装置３００の機能構成図。
【図６】実施の形態１に係る再暗号化装置４００の機能構成図。
【図７】実施の形態１に係る復号装置５００の機能構成図。
【図８】実施の形態１に係る再暗号文復号装置６００の機能構成図。
【図９】実施の形態１に係るＳｅｔｕｐアルゴリズムの処理を示すフローチャート。
【図１０】実施の形態１に係るＫＧアルゴリズムの処理を示すフローチャート。
【図１１】実施の形態１に係るＥｎｃアルゴリズムの処理を示すフローチャート。
【図１２】実施の形態１に係るＵＲＫＧアルゴリズムの処理を示すフローチャート。
【図１３】実施の形態１に係るＲＫＧアルゴリズムの処理を示すフローチャート。
【図１４】実施の形態１に係るＲＥｎｃアルゴリズムの処理を示すフローチャート。
【図１５】実施の形態１に係るＤｅｃＥｎｃアルゴリズムの処理を示すフローチャート。
【図１６】実施の形態１に係るＤｅｃＲｅＥｎｃアルゴリズムの処理を示すフローチャート。
【図１７】実施の形態１に示した鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とのハードウェア構成の例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊記法の説明＊＊＊
以下の説明における記法について説明する。
Ａがランダムな値または分布であるとき、数１０１は、Ａの分布に従いＡからｙをランダムに選択することを表す。つまり、数１０１において、ｙは乱数である。
【数１０１】
0006270683.tif 000002
Ａが集合であるとき、数１０２は、Ａからｙを一様に選択することを表す。つまり、数１０２において、ｙは一様乱数である。
【数１０２】
0006270683.tif 000003
数１０３は、ｙにｚが設定されたこと、ｙがｚにより定義されたこと、又はｙがｚを代入されたことを表す。
【数１０３】
0006270683.tif 000004
ａが定数であるとき、数１０４は、機械（アルゴリズム）Ａが入力ｘに対しａを出力することを表す。
【数１０４】
0006270683.tif 000005
数１０５は、位数ｐの群を表す。
【数１０５】
0006270683.tif 000006
数１０６は、群Ｚｐにおけるベクトル表現を表す。
【数１０６】
0006270683.tif 000007
【００１１】
＊＊＊基礎となる概念の説明＊＊＊
＜双線形写像＞
対称双線形ペアリング群（ｐ，Ｇ，ＧＴ，ｇ，ｅ）は、素数ｐと、位数ｐの巡回加法群Ｇと、位数ｐの巡回乗法群ＧＴと、ｇ≠０∈Ｇと、多項式時間で計算可能な非退化双線形ペアリングｅ：Ｇ×Ｇ→ＧＴとの組である。非退化双線形ペアリングは、ｅ（ｓｇ，ｔｇ）＝ｅ（ｇ，ｇ）ｓｔであり、ｅ（ｇ，ｇ）≠１である。
【００１２】
＜アクセス構造＞
以下に説明するＡＢ−ＰＲＥ方式では、モノトーンアクセス構造が用いられる。
【００１３】
｛Ｐ１，．．．，Ｐｎ｝をユーザの集合とする。ユーザの集合族Ｆ⊆２｛Ｐ１，．．．，Ｐｎ｝と任意のユーザの集合Ｐｉ及び集合Ｐｊとについて、Ｐｉ∈ＦかつＰｉ⊆Ｐｊならば、Ｐｊ∈Ｆである場合、ユーザの集合族Ｆはモノトーンである。ここで、Ｆ⊆２｛Ｐ１，．．．，Ｐｎ｝の｛Ｐ１，．．．，Ｐｎ｝は｛Ｐ１，．．．，Ｐｎ｝のことである。
【００１４】
集合族Ｆがモノトーンであることに加えて、集合族Ｆが要素として空集合を含まない場合、集合族Ｆはモノトーンアクセス構造を構成する。集合族Ｆ内の集合を有資格集合と呼ぶ。
【００１５】
ＡＢＥでは、属性をユーザの集合で表す。つまり、アクセス構造Ｆは、属性の有資格集合から構成される。
【００１６】
＜線形秘密分散法＞
条件１，２を満たす場合、秘密分散法Πは、集合族Ｆの下、群Ｚｐ上で線形である。つまり、線形秘密分散法である。
条件１：集合族Ｆの各集合に割り当てられる共有情報は、群Ｚｐ上のベクトルで形成される。そこで、共有情報をシェアベクトルと呼ぶ。
条件２：秘密分散法Πに対して、共有生成行列と呼ばれるＬ行ｒ列の行列Ｍが存在する。ｉ＝１，．．．，Ｌの各整数ｉについて、集合族Ｆの集合を、行列Ｍのｉ番目の行に対して割り当てるインデックスρ（ｉ）の集合ρと、ベクトルｖ→＝（ｓ，ｒ２，．．．，ｒＬ）とが設定される。ここで、秘密値ｓ∈Ｚｐであり、乱数値ｒ２，．．．，ｒＬ∈Ｚｐである。そして、Ｍｖ→＝｛Ｍ１ｖ→，．．．，ＭＬｖ→｝が秘密分散法Πの秘密値ｓのＬ個のシェアベクトルとなっている。シェアベクトルＭｉｖ→は、インデックスρ（ｉ）に対応する。
【００１７】
アクセス構造Ｆは、上述した行列Ｍと、インデックスの集合ρとの組とする。つまり、Ｆ＝（Ｍ，ρ）である。
秘密分散法Πがアクセス構造Ｆ＝（Ｍ，ρ）の下、ＬＳＳＳであるとする。すると、任意の有資格集合Ｓ∈Ｆとし、Ｉ⊂｛１，２，．．．，Ｌ｝をＩ＝｛ｉ：ρ（ｉ）∈Ｓ｝とする。もし、｛λｉ＝Ｍｉｖ→｝ｉ∈Ｉが秘密分散法Πに従った秘密値ｓの正しいシェアベクトルの組である場合、Σｉ∈Ｉωｉ・λｉ＝ｓとなる定数｛ωｉ∈Ｚｐ｝ｉ∈Ｉが存在する。また、定数｛ωｉ∈Ｚｐ｝は、行列Ｍのサイズに対して多項式時間で計算可能である。
【００１８】
＊＊＊構成の説明＊＊＊
実施の形態１では、暗号文ポリシーのＡＢ−ＰＲＥ方式について説明する。暗号文ポリシーとは、暗号文にポリシーが埋め込まれること、つまりアクセス構造Ｆが埋め込まれることを意味する。
【００１９】
ＡＢ−ＰＲＥ方式の基本構成について説明する。
ＡＢ−ＰＲＥ方式は、Ｓｅｔｕｐ、ＫＧ、ＵＲＫＧ、ＲＫＧ、Ｅｎｃ、ＲＥｎｃ、ＤｅｃＥｎｃ、ＤｅｃＲｅＥｎｃの８つのアルゴリズムを備える暗号方法である。
【００２０】
（Ｓｅｔｕｐ：セットアップ工程）
Ｓｅｔｕｐアルゴリズムは、属性Ｕと、セキュリティパラメータ１λとを入力として、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、再暗号化秘密鍵ｒｓｋとを出力する確率的アルゴリズムである。
【００２１】
（ＫＧ：鍵生成工程）
ＫＧアルゴリズムは、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、属性の有資格集合Ｓとを入力として、ユーザ秘密鍵ｓｋＳを出力する確率的アルゴリズムである。
【００２２】
（Ｅｎｃ：暗号化工程）
Ｅｎｃアルゴリズムは、公開鍵ｐｋと、アクセス構造Ｆと、メッセージｍとを入力として、オリジナル暗号文ｏｃｔＦを出力する確率的アルゴリズムである。
【００２３】
（ＵＲＫＧ：普遍暗号化鍵生成工程）
ＵＲＫＧアルゴリズムは、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳとを入力として、普遍再暗号化鍵ｕｒｋＳを出力する確率的アルゴリズムである。
【００２４】
（ＲＫＧ：再暗号化鍵生成工程）
ＲＫＧアルゴリズムは、公開鍵ｐｋと、普遍再暗号化鍵ｕｒｋＳと、再暗号化秘密鍵ｒｓｋと、アクセス構造Ｆ’とを入力として、再暗号化鍵ｒｋＳ→Ｆ’を出力する確率的アルゴリズムである。
【００２５】
（ＲＥｎｃ：再暗号化工程）
ＲＥｎｃアルゴリズムは、公開鍵ｐｋと、再暗号化鍵ｒｋＳ→Ｆ’と、オリジナル暗号文ｏｃｔＦとを入力として、再暗号文ｒｃｔＦ’を出力する確率的アルゴリズムである。
【００２６】
（ＤｅｃＥｎｃ：復号工程）
ＤｅｃＥｎｃアルゴリズムは、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳと、オリジナル暗号文ｏｃｔＦとを入力として、メッセージｍ、又は、復号失敗を表す記号⊥を出力する確定的アルゴリズムである。
【００２７】
（ＤｅｃＲｅＥｎｃ：再暗号文復号工程）
ＤｅｃＲｅＥｎｃアルゴリズムは、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳ’と、再暗号文ｒｃｔＦ’とを入力として、メッセージｍ、又は、復号失敗を表す記号⊥を出力する確定的アルゴリズムである。
【００２８】
図１は、実施の形態１に係る暗号システム１０の構成図である。
暗号システム１０は、鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００とを備える。鍵生成装置１００は、普遍再暗号化鍵生成装置７００を備える。
なお、ここでは、属性の有資格集合Ｓを有するユーザが使用する装置が復号装置５００であり、属性の有資格集合Ｓ’を有するユーザが使用する装置が再暗号文復号装置６００であるする。
【００２９】
鍵生成装置１００は、属性Ｕとセキュリティパラメータ１λとを入力として、Ｓｅｔｕｐアルゴリズムを実行して、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、再暗号化秘密鍵ｒｓｋとを生成する。また、鍵生成装置１００は、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、ユーザの属性の有資格集合Ｓとを入力として、ＫＧアルゴリズムを実行して、属性の有資格集合Ｓが設定されたユーザ秘密鍵ｓｋＳを生成する。同様に、鍵生成装置１００は、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、ユーザの属性の有資格集合Ｓ’とを入力として、ＫＧアルゴリズムを実行して、属性の有資格集合Ｓ’が設定されたユーザ秘密鍵ｓｋＳ’を生成する。
そして、鍵生成装置１００は、公開鍵ｐｋを公開する。また、鍵生成装置１００は、ユーザ秘密鍵ｓｋＳを復号装置５００と、普遍再暗号化鍵生成装置７００とへ秘密裡に出力し、鍵生成装置１００は、ユーザ秘密鍵ｓｋＳ’を再暗号文復号装置６００へ秘密裡に出力する。また、鍵生成装置１００は、再暗号化秘密鍵ｒｓｋを再暗号化鍵生成装置３００へ秘密裡に出力する。
なお、Ｓｅｔｕｐアルゴリズムは、暗号システム１０のセットアップ時に１度だけ実行される。その後、Ｓｅｔｕｐアルゴリズムは、例えば、公開鍵ｐｋとマスター秘密鍵ｍｓｋと再暗号化秘密鍵ｒｓｋとの少なくともいずれかを変更する必要がある場合に実行される。ＫＧアルゴリズムは、各ユーザのユーザ秘密鍵を生成する度に実行される。
【００３０】
暗号化装置２００は、公開鍵ｐｋと、アクセス構造Ｆと、メッセージｍとを入力として、Ｅｎｃアルゴリズムを実行して、復号可能な範囲を示す情報としてアクセス構造Ｆを設定してメッセージｍを暗号化したオリジナル暗号文ｏｃｔＦを生成する。暗号化装置２００は、オリジナル暗号文ｏｃｔＦを再暗号化装置４００と復号装置５００とへ出力する。
【００３１】
普遍再暗号化鍵生成装置７００は、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳとを入力として、ＵＲＫＧアルゴリズムを実行して、ユーザ秘密鍵ｓｋＳで復号可能な暗号文を復号できないようにユーザ秘密鍵ｓｋＳを変換して普遍再暗号化鍵ｕｒｋＳを生成する。普遍再暗号化鍵生成装置７００は、普遍再暗号化鍵ｕｒｋＳを再暗号化鍵生成装置３００へ秘密裡に出力する。
【００３２】
再暗号化鍵生成装置３００は、公開鍵ｐｋと、普遍再暗号化鍵ｕｒｋＳと、再暗号化秘密鍵ｒｓｋと、アクセス構造Ｆ’とを入力として、ＲＫＧアルゴリズムを実行して、再暗号化鍵ｒｋＳ→Ｆ’を生成する。ここで生成される再暗号化鍵ｒｋＳ→Ｆ’は、普遍再暗号化鍵ｕｒｋＳの生成時に利用したユーザ秘密鍵ｓｋＳで復号可能な暗号文ｏｃｔＦについての復号可能な範囲変更するための鍵であり、復号可能な範囲を示す情報としてアクセス構造Ｆ’が設定されている。再暗号化鍵生成装置３００は、再暗号化鍵ｒｋＳ→Ｆ’を再暗号化装置４００へ出力する。
【００３３】
再暗号化装置４００は、公開鍵ｐｋと、再暗号化鍵ｒｋＳ→Ｆ’と、オリジナル暗号文ｏｃｔＦとを入力として、ＲＥｎｃアルゴリズムを実行して、オリジナル暗号文ｏｃｔＦに設定された復号可能な範囲を示す情報を、アクセス構造Ｆからアクセス構造Ｆ’に変更して再暗号文ｒｃｔＦ’を生成する。再暗号化装置４００は、再暗号文ｒｃｔＦ’を再暗号文復号装置６００へ出力する。
【００３４】
復号装置５００は、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳと、オリジナル暗号文ｏｃｔＦとを入力として、ＤｅｃＥｎｃアルゴリズムを実行して、メッセージｍ、又は、復号失敗を表す記号⊥を出力する。
【００３５】
再暗号文復号装置６００は、公開鍵ｐｋと、ユーザ秘密鍵ｓｋＳ’と、再暗号文ｒｃｔＦ’とを入力として、ＤｅｃＲｅＥｎｃアルゴリズムを実行して、メッセージｍ、又は、復号失敗を表す記号⊥を出力する。
【００３６】
図２は、実施の形態１に係る鍵生成装置１００の機能構成図である。
鍵生成装置１００は、情報取得部１１０と、マスター鍵生成部１２０と、マスター鍵記憶部１３０と、ユーザ秘密鍵生成部１４０と、鍵出力部１５０とを備える。
また、上述した通り、鍵生成装置１００は、普遍再暗号化鍵生成装置７００を備える。普遍再暗号化鍵生成装置７００の構成については後述する。
【００３７】
情報取得部１１０は、暗号システム１０の管理者によって入力された属性Ｕ及びセキュリティパラメータ１λ及び属性の有資格集合Ｓと、マスター鍵記憶部１３０に記憶された公開鍵ｐｋ及びマスター秘密鍵ｍｓｋとを取得する。情報取得部１１０は、各情報を取得する機能として、セキュリティパラメータ取得部１１１と、属性カテゴリ取得部１１２と、マスター鍵取得部１１３と、有資格集合取得部１１４とを備える。
【００３８】
マスター鍵生成部１２０は、情報取得部１１０によって取得されたセキュリティパラメータ１λと属性Ｕとを用いて、公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、再暗号化秘密鍵ｒｓｋとを生成する。マスター鍵生成部１２０は、写像生成部１２１と、パラメータ生成部１２２と、アクセス構造生成部１２３と、エンコード関数生成部１２４と、鍵要素生成部１２５とを備える。
【００３９】
マスター鍵記憶部１３０は、マスター鍵生成部１２０によって生成された公開鍵ｐｋと、マスター秘密鍵ｍｓｋと、再暗号化秘密鍵ｒｓｋとを記憶する。
【００４０】
ユーザ秘密鍵生成部１４０は、情報取得部１１０によって取得された属性の有資格集合Ｓと公開鍵ｐｋとマスター秘密鍵ｍｓｋとを用いて、属性の有資格集合Ｓを含むユーザ秘密鍵ｓｋＳを生成する。ユーザ秘密鍵生成部１４０は、属性集合判定部１４１と、乱数生成部１４２と、鍵要素生成部１４３とを備える。
【００４１】
鍵出力部１５０は、マスター鍵生成部１２０によって生成された公開鍵ｐｋを公開用のサーバへ出力すること等により、公開する。また、鍵出力部１５０は、マスター鍵生成部１２０によって生成された再暗号化秘密鍵ｒｓｋを再暗号化鍵生成装置３００へ出力する。また、鍵出力部１５０は、ユーザ秘密鍵生成部１４０によって生成されたユーザ秘密鍵ｓｋＳを復号装置５００と普遍再暗号化鍵生成装置７００とへ出力する。出力するとは、例えば、ネットワークを介して送信することである。
【００４２】
図３は、実施の形態１に係る暗号化装置２００の機能構成図である。
暗号化装置２００は、情報取得部２１０と、暗号文生成部２２０と、暗号文出力部２３０とを備える。
【００４３】
情報取得部２１０は、鍵生成装置１００によって生成された公開鍵ｐｋと、暗号化装置２００のユーザによって入力されたメッセージｍ及びアクセス構造Ｆとを取得する。情報取得部２１０は、各情報を取得する機能として、公開鍵取得部２１１と、メッセージ取得部２１２と、アクセス構造取得部２１３とを備える。
【００４４】
暗号文生成部２２０は、情報取得部２１０によって取得された公開鍵ｐｋとアクセス構造Ｆとを用いて、メッセージｍを暗号化してオリジナル暗号文ｏｃｔＦの暗号要素Ｃ０，Ｃ１，Ｃ２．ｉ，Ｄｉを生成する。暗号文生成部２２０は、ランダムベクトル生成部２２１と、乱数生成部２２２と、暗号要素生成部２２３とを備える。
【００４５】
暗号文出力部２３０は、情報取得部２１０によって取得されたアクセス構造Ｆと、暗号文生成部２２０によって生成された暗号要素Ｃ０，Ｃ１，Ｃ２．ｉ，Ｄｉとを含むオリジナル暗号文ｏｃｔＦを復号装置５００及び再暗号化装置４００へ出力する。出力するとは、例えば、ネットワークを介して送信することである。
【００４６】
図４は、実施の形態１に係る普遍再暗号化鍵生成装置７００の機能構成図である。
普遍再暗号化鍵生成装置７００は、情報取得部７１０と、普遍再暗号化鍵生成部７２０と、普遍再暗号化鍵出力部７３０とを備える。
【００４７】
情報取得部７１０は、鍵生成装置１００によって生成された公開鍵ｐｋとユーザ秘密鍵ｓｋＳとを取得する。情報取得部７１０は、各情報を取得する機能として、公開鍵取得部７１１と、ユーザ秘密鍵取得部７１２とを備える。
【００４８】
普遍再暗号化鍵生成部７２０は、情報取得部７１０によって取得された公開鍵ｐｋとユーザ秘密鍵ｓｋＳとを用いて、普遍再暗号化鍵ｕｒｋＳの要素である変換後ユーザ秘密鍵ｓｋｄ：＝（ＲＫ０，ＲＫ１，ＲＫ２．ｉ）とパラメータ暗号文ｃｔｄＦ＾：＝（ＲＣ＾０，ＲＣ＾１，ＲＣ＾２．ｉ，ＲＤ＾ｉ）とを生成する。普遍再暗号化鍵生成部７２０は、乱数生成部７２１と、復号鍵変換部７２２と、ランダムベクトル生成部７２３と、パラメータ暗号化部７２４とを備える。
【００４９】
普遍再暗号化鍵出力部７３０は、情報取得部７１０によって取得されたユーザ秘密鍵ｓｋＳに含まれる属性の有資格集合Ｓと、普遍再暗号化鍵生成部７２０によって生成された変換後ユーザ秘密鍵ｓｋｄとパラメータ暗号文ｃｔｄＦ＾とを含む普遍再暗号化鍵ｕｒｋＳを再暗号化鍵生成装置３００へ出力する。出力するとは、例えば、ネットワークを介して送信することである。
【００５０】
図５は、実施の形態１に係る再暗号化鍵生成装置３００の機能構成図である。
再暗号化鍵生成装置３００は、情報取得部３１０と、再暗号化鍵生成部３２０と、再暗号化鍵出力部３３０とを備える。
【００５１】
情報取得部３１０は、鍵生成装置１００によって生成された公開鍵ｐｋ及び再暗号化秘密鍵ｒｓｋと、普遍再暗号化鍵生成装置７００によって生成された普遍再暗号化鍵ｕｒｋＳと、ユーザ秘密鍵ｓｋＳを使用するユーザ等によって入力されたアクセス構造Ｆ’とを取得する。情報取得部３１０は、各情報を取得する機能として、公開鍵取得部３１１と、普遍再暗号化鍵取得部３１２と、アクセス構造取得部３１３とを備える。
【００５２】
再暗号化鍵生成部３２０は、情報取得部３１０によって取得された公開鍵ｐｋと再暗号化秘密鍵ｒｓｋと普遍再暗号化鍵ｕｒｋＳとアクセス構造Ｆ’とを用いて、再暗号化鍵ｒｋＳ→Ｆ’の要素である変換後暗号文ｃｔｄＦ’：＝（ＲＣ＾’０，ＲＣ＾’１，ＲＣ＾’２．ｉ，ＲＤ＾’ｉ）を生成する。再暗号化鍵生成部３２０は、ランダムベクトル生成部３２１と、乱数生成部３２２と、属性設定部３２３とを備える。
【００５３】
再暗号化鍵出力部３３０は、情報取得部３１０によって取得された普遍再暗号化鍵ｕｒｋＳに含まれる属性の有資格集合Ｓと、情報取得部３１０によって取得されたアクセス構造Ｆ’と、再暗号化鍵生成部３２０によって生成された変換後暗号文ｃｔｄＦとを含む再暗号化鍵ｒｋＳ→Ｆ’を再暗号化装置４００へ出力する。出力するとは、例えば、ネットワークを介して送信することである。
【００５４】
図６は、実施の形態１に係る再暗号化装置４００の機能構成図である。
再暗号化装置４００は、情報取得部４１０と、再暗号化判定部４２０と、再暗号化部４３０と、再暗号文出力部４４０とを備える。
【００５５】
情報取得部４１０は、鍵生成装置１００によって生成された公開鍵ｐｋと、再暗号化鍵生成装置３００によって生成された再暗号化鍵ｒｋＳ→Ｆ’と、暗号化装置２００によって生成されたオリジナル暗号文ｏｃｔＦとを取得する。情報取得部４１０は、各情報を取得する機能として、公開鍵取得部４１１と、再暗号化鍵取得部４１２と、オリジナル暗号文取得部４１３とを備える。
【００５６】
再暗号化判定部４２０は、情報取得部４１０によって取得された再暗号化鍵ｒｋＳ→Ｆ’に含まれる属性の有資格集合Ｓと、情報取得部４１０によって取得されたオリジナル暗号文ｏｃｔＦに含まれるアクセス構造Ｆとに基づき、再暗号化が可能か判定する。
【００５７】
再暗号化部４３０は、再暗号化が可能であると再暗号化判定部４２０によって判定された場合、情報取得部４１０によって取得された公開鍵ｐｋと再暗号化鍵ｒｋＳ→Ｆ’とオリジナル暗号文ｏｃｔＦとを用いて、再暗号文ｒｃｔＦ’の要素である復号情報ｄｅｃｄ＝ＲｅＣ１を生成する。再暗号化部４３０は、定数計算部４３１と、ペアリング演算部４３２とを備える。
【００５８】
再暗号文出力部４４０は、情報取得部４１０によって取得された再暗号化鍵ｒｋＳ→Ｆ’に含まれるアクセス構造Ｆ’及び変換後暗号文ｃｔｄＦ と、オリジナル暗号文ｏｃｔＦに含まれる暗号要素ＲｅＣ０＝Ｃ０と、再暗号化部４３０によって生成された変換後ユーザ秘密鍵ｓｋｄを含む再暗号文ｒｃｔＦ’を、再暗号文復号装置６００へ出力する。出力するとは、例えば、ネットワークを介して送信することである。
【００５９】
図７は、実施の形態１に係る復号装置５００の機能構成図である。
復号装置５００は、情報取得部５１０と、暗号文判定部５２０と、復号部５３０と、結果出力部５４０とを備える。
【００６０】
情報取得部５１０は、鍵生成装置１００によって生成された公開鍵ｐｋ及びユーザ秘密鍵ｓｋＳと、暗号化装置２００によって生成されたオリジナル暗号文ｏｃｔＦとを取得する。情報取得部５１０は、各情報を取得する機能として、公開鍵取得部５１１と、ユーザ秘密鍵取得部５１２と、オリジナル暗号文取得部５１３とを備える。
【００６１】
暗号文判定部５２０は、情報取得部５１０によって取得されたユーザ秘密鍵ｓｋＳに含まれる属性の有資格集合Ｓと、情報取得部５１０によって取得されたオリジナル暗号文ｏｃｔＦに含まれるアクセス構造Ｆとに基づき、復号が可能か判定する。
【００６２】
復号部５３０は、復号が可能であると暗号文判定部５２０によって判定された場合、情報取得部５１０によって取得された公開鍵ｐｋとユーザ秘密鍵ｓｋＳとを用いて、情報取得部５１０によって取得されたオリジナル暗号文ｏｃｔＦを復号してメッセージｍを生成する。復号部５３０は、定数計算部５３１と、ペアリング演算部５３２とを備える。
【００６３】
結果出力部５４０は、復号が可能であると暗号文判定部５２０によって判定された場合、復号部５３０によって復号されたメッセージｍを出力する。結果出力部５４０は、復号が不可能であると暗号文判定部５２０によって判定された場合、復号失敗を表す記号⊥を出力する。出力するとは、例えば、表示装置に表示することである。
【００６４】
図８は、実施の形態１に係る再暗号文復号装置６００の機能構成図である。
再暗号文復号装置６００は、情報取得部６１０と、暗号文判定部６２０と、復号部６３０と、結果出力部６４０とを備える。
【００６５】
情報取得部６１０は、鍵生成装置１００によって生成された公開鍵ｐｋ及びユーザ秘密鍵ｓｋＳ’と、再暗号化装置４００によって生成された再暗号文ｒｃｔＦ’とを取得する。情報取得部６１０は、各情報を取得する機能として、公開鍵取得部６１１と、ユーザ秘密鍵取得部６１２と、再暗号文取得部６１３とを備える。
【００６６】
暗号文判定部６２０は、情報取得部６１０によって取得されたユーザ秘密鍵ｓｋＳ’に含まれる属性の有資格集合Ｓ’と、情報取得部６１０によって取得された再暗号文ｒｃｔＦ’に含まれるアクセス構造Ｆ’とに基づき、復号が可能か判定する。
【００６７】
復号部６３０は、復号が可能であると暗号文判定部６２０によって判定された場合、情報取得部６１０によって取得された公開鍵ｐｋとユーザ秘密鍵ｓｋＳ’とを用いて、情報取得部５１０によって取得された再暗号文ｒｃｔＦ’を復号する。復号部６３０は、定数計算部６３１と、ペアリング演算部６３２と、デコード部６３３と、メッセージ計算部６３４とを備える。
【００６８】
結果出力部６４０は、復号が可能であると暗号文判定部６２０によって判定された場合、復号部６３０によって復号されたメッセージｍを出力する。結果出力部６４０は、復号が不可能であると暗号文判定部６２０によって判定された場合、復号失敗を表す記号⊥を出力する。出力するとは、例えば、表示装置に表示することである。
【００６９】
＊＊＊動作の説明＊＊＊
図９は、Ｓｅｔｕｐアルゴリズムの処理を示すフローチャートである。
Ｓｅｔｕｐアルゴリズムは、図２に示す鍵生成装置１００によって実行される。
【００７０】
（Ｓ１０１：情報取得処理）
セキュリティパラメータ取得部１１１は、暗号システム１０の管理者等によって入力装置により入力された、セキュリティパラメータ１λを取得する。
属性カテゴリ取得部１１２は、暗号システム１０で使用する属性Ｕ＝｛１，２，．．．，｜Ｕ｜｝を取得する。属性Ｕとは、例えば、所属部、所属課、社員ＩＤ等の属性カテゴリを示す情報である。
【００７１】
（Ｓ１０２：写像生成処理）
写像生成部１２１は、Ｓ１０１で取得されたセキュリティパラメータ１λを入力として、双線形ペアリング群のパラメータｐａｒａｍＧ：＝（ｐ，Ｇ，ＧＴ，ｇ，ｅ）を生成する。ここで、巡回加法群Ｇと巡回乗法群ＧＴとは位数ｐの剰余群である。
【００７２】
（Ｓ１０３：パラメータ生成処理）
パラメータ生成部１２２は、処理装置により、数１０７に示すパラメータを生成する。
【数１０７】
0006270683.tif 000008
【００７３】
（Ｓ１０４：アクセス構造生成処理）
アクセス構造生成部１２３は、処理装置により、アクセス構造Ｆ〜を満たす属性の有資格集合Ｓが存在しないアクセス構造Ｆ〜＝（Ｍ〜，ρ〜）を生成する。ここで、アクセス構造Ｆ〜に含まれる行列Ｍ〜は、Ｌ〜行ｒ〜列の行列である。
アクセス構造Ｆ〜は、非正規の手順により、普遍再暗号化鍵ｕｒｋＳから後述するパラメータｄを取り出されることがないようにために利用される。アクセス構造Ｆ〜を満たす属性の有資格集合Ｓ＊が存在すると、その有資格集合Ｓ＊から生成されたユーザ秘密鍵ｓｋＳ＊を使えば、普遍再暗号化鍵ｕｒｋＳからパラメータｄを取り出すことが可能になってしまう。そのため、アクセス構造Ｆ〜を満たす属性の有資格集合Ｓが存在しないアクセス構造Ｆ〜を生成する必要がある。
【００７４】
（Ｓ１０５：エンコード関数生成処理）
エンコード関数生成部１２４は、処理装置により、位数ｐの群Ｚｐの要素を、巡回乗法群ＧＴの要素へ変換するエンコード関数Ｅを生成する。
【００７５】
（Ｓ１０６：鍵生成処理）
鍵要素生成部１２５は、処理装置により、Ｓ１０２で生成された双線形ペアリング群のパラメータｐａｒａｍＧと、Ｓ１０３で生成されたパラメータと、Ｓ１０４で生成されたアクセス構造Ｆ〜と、Ｓ１０５で生成されたエンコード関数Ｅとを用いて、数１０８に示す公開鍵ｐｋと、数１０９に示すマスター秘密鍵ｍｓｋと、数１１０に示す再暗号化秘密鍵ｒｓｋとを生成する。
【数１０８】
0006270683.tif 000009
【数１０９】
0006270683.tif 000010
【数１１０】
0006270683.tif 000011
マスター鍵記憶部１３０は、Ｓ１０６で生成された公開鍵ｐｋとマスター秘密鍵ｍｓｋと再暗号化秘密鍵ｒｓｋとを記憶装置に記憶する。
【００７６】
（Ｓ１０７：鍵出力処理）
鍵出力部１５０は、公開鍵ｐｋをネットワークを介して公開用のサーバへ出力すること等により、公開鍵ｐｋを公開する。
また、鍵出力部１５０は、再暗号化秘密鍵ｒｓｋをネットワークを介して再暗号化鍵生成装置３００へ秘密裡に出力する。秘密裡に出力するとは、例えば、他の暗号方式により、再暗号化秘密鍵ｒｓｋを暗号化して、再暗号化鍵生成装置３００へ送信することである。もちろん、これに限らず、第三者へ漏洩しない他の方法により、再暗号化秘密鍵ｒｓｋを再暗号化鍵生成装置３００へ出力してもよい。
【００７７】
図１０は、実施の形態１に係るＫＧアルゴリズムの処理を示すフローチャートである。
ＫＧアルゴリズムは、図２に示す鍵生成装置１００によって実行される。
【００７８】
（Ｓ２０１：情報取得処理）
マスター鍵取得部１１３は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋ及びマスター秘密鍵ｍｓｋを取得する。
有資格集合取得部１１４は、暗号システム１０の管理者等によって入力装置により入力された、ユーザ秘密鍵を使用するユーザの属性の有資格集合Ｓを取得する。ユーザの属性の有資格集合Ｓとは、そのユーザの属性を表す情報である。例えば、Ｓ１０１で入力された属性Ｕが所属部、所属課、社員ＩＤという属性カテゴリを表す場合、属性の有資格集合Ｓは、そのユーザの所属部、所属課、社員ＩＤを表す情報である。
【００７９】
（Ｓ２０２：属性集合判定処理）
属性集合判定部１４１は、処理装置により、Ｓ２０１で取得された属性の有資格集合Ｓが、公開鍵ｐｋに含まれるアクセス構造Ｆ〜を満たすか否か判定する。
この判定の具体的な方法は、アクセス構造Ｆ〜の設計によって異なる。しかし、線形秘密分散法の説明で述べた、Ｉ＝｛ｉ：ρ（ｉ）∈Ｓ｝とした場合に、Σｉ∈Ｉωｉ・λｉ＝ｓとなる定数｛ωｉ∈Ｚｐ｝ｉ∈Ｉが存在するか否かを判定することにより、判定することができる。
属性の有資格集合Ｓがアクセス構造Ｆ〜を満たさない場合、処理をＳ２０３へ進め、属性の有資格集合Ｓがアクセス構造Ｆ〜を満たす場合、処理を終了する。
【００８０】
また、Ｓ１０４では、アクセス構造Ｆ〜を満たす属性の有資格集合Ｓが存在しないアクセス構造Ｆ〜を生成した。したがって、原則として、Ｓ２０１で入力された属性の有資格集合Ｓがアクセス構造Ｆ〜を満たすことはないので、この処理は省略してもよい。
【００８１】
（Ｓ２０３：乱数生成処理）
乱数生成部１４２は、処理装置により、数１１１に示す乱数を生成する。
【数１１１】
0006270683.tif 000012
【００８２】
（Ｓ２０４：鍵要素生成処理）
鍵要素生成部１４３は、処理装置により、Ｓ２０１で取得された公開鍵ｐｋ及びマスター秘密鍵ｓｋ及び属性の有資格集合Ｓと、Ｓ２０３で生成された乱数とを用いて、数１１２に示す鍵要素Ｋ０，Ｋ１，Ｋ２．ｉ，Ｋ＾０，Ｋ＾１，Ｋ＾２．ｉを生成する。
【数１１２】
0006270683.tif 000013
【００８３】
鍵要素Ｋ０，Ｋ１，Ｋ２．ｉは、オリジナル暗号文を復号するために用いられる要素である。一方、鍵要素Ｋ＾０，Ｋ＾１，Ｋ＾２．ｉは、再暗号文を復号するために用いられる要素である。
鍵要素Ｋ２．ｉ及び鍵要素Ｋ＾２．ｉには、ユーザ秘密鍵を使用するユーザの属性情報である属性の有資格集合Ｓが設定されている。つまり、オリジナル暗号文を復号するために用いられる要素と、再暗号文を復号するために用いられる要素との両方に、ユーザ秘密鍵を使用するユーザの属性情報である属性の有資格集合Ｓが設定されている。
【００８４】
（Ｓ２０５：鍵出力処理）
鍵出力部１５０は、Ｓ２０１で取得された属性の有資格集合Ｓと、Ｓ２０４で生成された鍵要素Ｋ０，Ｋ１，Ｋ２．ｉ，Ｋ＾０，Ｋ＾１，Ｋ＾２．ｉとを含むユーザ秘密鍵ｓｋＳをネットワークを介して復号装置５００へ秘密裡に出力する。
【００８５】
ここでは、ユーザ秘密鍵ｓｋＳを生成する場合について説明した。しかし、ユーザ秘密鍵ｓｋＳ’もユーザ秘密鍵ｓｋＳと同様に生成される。
ユーザ秘密鍵ｓｋＳ’を生成する場合、Ｓ２０１で、属性の有資格集合Ｓ’が入力され、Ｓ２０４で、鍵要素Ｋ’０，Ｋ’１，Ｋ’２．ｉ，Ｋ＾’０，Ｋ＾’１，Ｋ＾’２．ｉが生成される。そして、Ｓ２０５で、属性の有資格集合Ｓ’と、鍵要素Ｋ’０，Ｋ’１，Ｋ’２．ｉ，Ｋ＾’０，Ｋ＾’１，Ｋ＾’２．ｉとを含むユーザ秘密鍵ｓｋＳ’がネットワークを介して再暗号文復号装置６００へ秘密裡に出力される。
【００８６】
図１１は、実施の形態１に係るＥｎｃアルゴリズムの処理を示すフローチャートである。
Ｅｎｃアルゴリズムは、図３に示す暗号化装置２００によって実行される。
（Ｓ３０１：情報取得処理）
公開鍵取得部２１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋを取得する。
メッセージ取得部２１２は、暗号化装置２００のユーザによって入力装置により入力された、暗号化対象のメッセージｍを取得する。
アクセス構造取得部２１３は、暗号化装置２００のユーザによって入力装置により入力された、オリジナル暗号文ｏｃｔＦを復号可能な範囲を示すアクセス構造Ｆ＝（Ｍ，ρ）を取得する。ここで、アクセス構造Ｆに含まれる行列Ｍは、Ｌ行ｒ列の行列である。
【００８７】
（Ｓ３０２：ランダムベクトル生成処理）
ランダムベクトル生成部２２１は、処理装置により、ランダムにベクトルｖ＝（ｓ，ｖ２，．．．，ｖｒ）∈Ｚｐｒを生成する。ここで、ベクトルｖの先頭要素ｓが秘密値となる乱数であり、残りの要素ｖ２，．．．，ｖｒは特に意味を持たない乱数である。Ｚｐｒのｒは、ベクトルの要素数がｒ個であることを意味している。
【００８８】
（Ｓ３０３：乱数生成処理）
乱数生成部２２２は、処理装置により、数１１３に示す乱数を生成する。
【数１１３】
0006270683.tif 000014
【００８９】
（Ｓ３０４：暗号要素生成処理）
暗号要素生成部２２３は、処理装置により、Ｓ３０１で取得された公開鍵ｐｋ及びメッセージｍ及びアクセス構造Ｆと、Ｓ３０２で生成されたベクトルｖと、Ｓ３０３で生成された乱数とを用いて、数１１４に示す暗号要素Ｃ０，Ｃ１，Ｃ２．ｉ，Ｄｉを生成する。
【数１１４】
0006270683.tif 000015
【００９０】
暗号要素Ｃ２．ｉには、オリジナル暗号文ｏｃｔＦを復号可能な範囲を示す属性情報であるアクセス構造Ｆが設定されている。
【００９１】
（Ｓ３０５：暗号文出力処理）
暗号文出力部２３０は、Ｓ３０１で取得されたアクセス構造Ｆと、Ｓ３０４で生成された暗号要素Ｃ０，Ｃ１，Ｃ２．ｉ，Ｄｉとを含むオリジナル暗号文ｏｃｔＦをネットワークを介して復号装置５００及び再暗号化装置４００へ秘密裡に出力する。
【００９２】
図１２は、実施の形態１に係るＵＲＫＧアルゴリズムの処理を示すフローチャートである。
ＵＲＫＧアルゴリズムは、図４に示す普遍再暗号化鍵生成装置７００によって実行される。
【００９３】
（Ｓ４０１：情報取得処理）
公開鍵取得部７１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋを取得する。ユーザ秘密鍵取得部７１２は、ＫＧアルゴリズムで生成されたユーザ秘密鍵ｓｋＳを取得する。
【００９４】
（Ｓ４０２：パラメータｄ生成処理）
乱数生成部７２１は、処理装置により、数１１５に示す乱数であるパラメータｄを生成する。
【数１１５】
0006270683.tif 000016
【００９５】
（Ｓ４０３：復号鍵変換処理）
復号鍵変換部７２２は、処理装置により、Ｓ４０１で取得された公開鍵ｐｋ及びユーザ秘密鍵ｓｋＳと、Ｓ４０２で生成されたパラメータｄとを用いて、数１１６に示す変換後ユーザ秘密鍵ｓｋｄの鍵要素ＲＫ０，ＲＫ１，ＲＫ２．ｉを生成する。
【数１１６】
0006270683.tif 000017
つまり、復号鍵変換部７２２は、パラメータｄでユーザ秘密鍵ｓｋＳを変換して、変換後ユーザ秘密鍵ｓｋｄを生成する。ここで、パラメータｄは乱数であるため、ユーザ秘密鍵ｓｋＳがランダム化されて、変換後ユーザ秘密鍵ｓｋｄが生成されている。
【００９６】
（Ｓ４０４：ランダムベクトル生成処理）
ランダムベクトル生成部７２３は、処理装置により、ランダムにベクトルｖ〜＝（ｓ〜，ｖ〜２，．．．，ｖ〜ｒ〜）∈Ｚｐｒ〜を生成する。ここで、ベクトルｖ〜の先頭要素ｓ〜が秘密値となる乱数であり、残りの要素ｖ〜２，．．．，ｖ〜ｒは特に意味を持たない乱数である。なお、ベクトルｖ〜におけるｒ〜はｒ〜のことである。
【００９７】
（Ｓ４０５：乱数生成処理）
乱数生成部７２１は、処理装置により、数１１７に示す乱数を生成する。
【数１１７】
0006270683.tif 000018
【００９８】
（Ｓ４０６：パラメータ暗号化処理）
パラメータ暗号化部７２４は、処理装置により、Ｓ４０１で取得された公開鍵ｐｋと、Ｓ４０２で生成されたパラメータｄと、Ｓ４０４で生成されたベクトルｖ〜と、Ｓ４０５で生成された乱数とを用いて、数１１８に示すパラメータ暗号文ｃｔｄＦ＾の暗号要素ＲＣ＾０，ＲＣ＾１，ＲＣ＾２．ｉ，ＲＤ＾ｉを生成する。
【数１１８】
0006270683.tif 000019
つまり、パラメータ暗号化部７２４は、公開鍵ｐｋに含まれる属性情報であるアクセス構造Ｆ〜を設定したパラメータｄを暗号化して、パラメータ暗号文ｃｔｄＦ＾を生成する。
【００９９】
（Ｓ４０７：普遍再暗号化鍵出力処理）
普遍再暗号化鍵出力部７３０は、Ｓ４０１で取得されたユーザ秘密鍵ｓｋＳに含まれる属性の有資格集合Ｓと、Ｓ４０３で生成された変換後ユーザ秘密鍵ｓｋｄの鍵要素ＲＫ０，ＲＫ１，ＲＫ２．ｉと、Ｓ４０６で生成されたパラメータ暗号文ｃｔｄＦ＾の暗号要素ＲＣ＾０，ＲＣ＾１，ＲＣ＾２．ｉ，ＲＤ＾ｉとを含む普遍再暗号化鍵ｕｒｋＳをネットワークを介して再暗号化鍵生成装置３００へ秘密裡に出力する。
なお、普遍再暗号化鍵出力部７３０は、普遍再暗号化鍵ｕｒｋＳを鍵生成装置１００の鍵出力部１５０へ出力し、鍵出力部１５０が普遍再暗号化鍵ｕｒｋＳを再暗号化鍵生成装置３００へ秘密裡に出力してもよい。
【０１００】
図１３は、実施の形態１に係るＲＫＧアルゴリズムの処理を示すフローチャートである。
ＲＫＧアルゴリズムは、図５に示す再暗号化鍵生成装置３００によって実行される。
【０１０１】
（Ｓ５０１：情報取得処理）
公開鍵取得部３１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋ及び再暗号化秘密鍵ｒｓｋを取得する。
普遍再暗号化鍵取得部３１２は、ＵＲＫＧアルゴリズムで生成された普遍再暗号化鍵ｕｒｋＳを取得する。
アクセス構造取得部３１３は、ユーザ秘密鍵ｓｋＳを使用するユーザ等によって入力装置により入力された、再暗号文ｒｃｔＦ’を復号可能な範囲を示すアクセス構造Ｆ’＝（Ｍ’，ρ’）を取得する。ここで、アクセス構造Ｆ’に含まれる行列Ｍ’は、Ｌ’行ｒ’列の行列である。
【０１０２】
（Ｓ５０２：ランダムベクトル生成処理）
ランダムベクトル生成部３２１は、処理装置により、ランダムにベクトルｖ＾＝（ｓ＾＝ｓ〜＋ｓ’，ｖ＾２，．．．，ｖ＾ｒ’）∈Ｚｐｒ’を生成する。ここで、ベクトルｖ＾の先頭要素ｓ’が秘密値となる乱数であり、残りの要素ｖ＾２，．．．，ｖ＾ｒは特に意味を持たない乱数である。
【０１０３】
（Ｓ５０３：乱数生成処理）
乱数生成部３２２は、処理装置により、数１１９に示す乱数を生成する。
【数１１９】
0006270683.tif 000020
【０１０４】
（Ｓ５０４：属性設定処理）
属性設定部３２３は、処理装置により、Ｓ５０１で取得された公開鍵ｐｋ及び再暗号化秘密鍵ｒｓｋ及び普遍再暗号化鍵ｕｒｋＳ及びアクセス構造Ｆ’と、Ｓ５０２で生成されたベクトルｖ＾と、Ｓ５０３で生成された乱数とを用いて、数１２０に示す変換後暗号文ｃｔｄＦ’の暗号要素ＲＣ＾’０，ＲＣ＾’１，ＲＣ＾’２．ｉ，ＲＤ＾’ｉを生成する。
【数１２０】
0006270683.tif 000021
つまり、属性設定部３２３は、普遍再暗号化鍵ｕｒｋＳのパラメータ暗号文ｃｔｄＦ＾の暗号要素に、属性情報であるアクセス構造Ｆ’を設定して、変換後暗号文ｃｔｄＦ’を生成する。
【０１０５】
（Ｓ５０５：再暗号化鍵出力処理）
再暗号化鍵出力部３３０は、Ｓ５０１で取得されたアクセス構造Ｆ’及び普遍再暗号化鍵ｕｒｋＳに含まれる属性の有資格集合Ｓ及び変換後ユーザ秘密鍵ｓｋｄの鍵要素ＲＫ０，ＲＫ１，ＲＫ２．ｉと、Ｓ５０４で生成された変換後暗号文ｃｔｄＦ’の暗号要素ＲＣ＾’０，ＲＣ＾’１，ＲＣ＾’２．ｉ，ＲＤ＾’ｉとを含む再暗号化鍵ｒｋＳ→Ｆ’をネットワークを介して再暗号化装置４００へ秘密裡に出力する。
【０１０６】
図１４は、実施の形態１に係るＲＥｎｃアルゴリズムの処理を示すフローチャートである。
ＲＥｎｃアルゴリズムは、図６に示す再暗号化装置４００によって実行される。
【０１０７】
（Ｓ６０１：情報取得処理）
公開鍵取得部４１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋを取得する。
再暗号化鍵取得部４１２は、ＲＫＧアルゴリズムで生成された再暗号化鍵ｒｋＳ→Ｆ’を取得する。
オリジナル暗号文取得部４１３は、Ｅｎｃアルゴリズムで生成されたオリジナル暗号文ｏｃｔＦを取得する。
【０１０８】
（Ｓ６０２：再暗号化判定処理）
再暗号化判定部４２０は、処理装置により、Ｓ６０１で取得された再暗号化鍵ｒｋＳ→Ｆ’に含まれる属性の有資格集合Ｓが、オリジナル暗号文ｏｃｔＦに含まれるアクセス構造Ｆを満たすか否か判定する。
この判定の方法については、Ｓ２０２で説明した属性の有資格集合Ｓがアクセス構造Ｆ〜を満たすか否か判定する方法と同様である。
属性の有資格集合Ｓがアクセス構造Ｆを満たす場合、処理をＳ６０３へ進め、属性の有資格集合Ｓがアクセス構造Ｆを満たさない場合、処理を終了する。
【０１０９】
（Ｓ６０３：定数計算処理）
定数計算部４３１は、処理装置により、Ｉ＝｛ｉ：ρ（ｉ）∈Ｓ｝とした場合に、Σｉ∈ＩωｉＭｉ＝（１，０，．．．，０）となる定数ωｉ∈Ｚｐを計算する。ここで、Ｍｉは、行列Ｍのｉ番目の行である。
Ｓ２０２で説明した通り、属性の有資格集合Ｓがアクセス構造Ｆを満たす場合、Ｉ＝｛ｉ：ρ（ｉ）∈Ｓ｝とした場合に、Σｉ∈Ｉωｉ・λｉ＝ｓとなる定数｛ωｉ∈Ｚｐ｝ｉ∈Ｉが存在する。したがって、定数ωｉを計算可能である。
【０１１０】
（Ｓ６０４：ペアリング演算処理）
ペアリング演算部４３２は、処理装置により、Ｓ６０１で取得された公開鍵及び再暗号化鍵ｒｋＳ→Ｆ’及びオリジナル暗号文ｏｃｔＦと、Ｓ６０３で計算された定数ωｉとを用いて、数１２１に示す演算を実行して、復号情報ｄｅｃｄ＝ＲｅＣ１を生成する。
【数１２１】
0006270683.tif 000022
つまり、ペアリング演算部４３２は、オリジナル暗号文ｏｃｔＦを、再暗号化鍵ｒｋＳ→Ｆ’に含まれる変換後ユーザ秘密鍵ｓｋｄの鍵要素ＲＫ０，ＲＫ１，ＲＫ２．ｉで復号して、復号情報ｄｅｃｄ＝ＲｅＣ１を生成する。
【０１１１】
（Ｓ６０５：再暗号文出力処理）
再暗号文出力部４４０は、Ｓ６０１で取得された再暗号化鍵ｒｋＳ→Ｆ’に含まれるアクセス構造Ｆ’及び変換後暗号文ｃｔｄＦ’の暗号要素ＲＣ＾’０，ＲＣ＾’１，ＲＣ＾’２．ｉ，ＲＤ＾’ｉと、オリジナル暗号文ｏｃｔＦに含まれるＣ０＝ＲｅＣ０と、Ｓ６０４で生成された復号情報ｄｅｃｄ＝ＲｅＣ１とを含む再暗号文ｒｃｔＦ’をネットワークを介して秘密裡に再暗号文復号装置６００へ出力する。
【０１１２】
図１５は、実施の形態１に係るＤｅｃＥｎｃアルゴリズムの処理を示すフローチャートである。
ＤｅｃＥｎｃアルゴリズムは、図７に示す復号装置５００によって実行される。
【０１１３】
（Ｓ７０１：情報取得処理）
公開鍵取得部５１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋを取得する。
ユーザ秘密鍵取得部５１２は、ＫＧアルゴリズムで生成されたユーザ秘密鍵ｓｋＳを取得する。
オリジナル暗号文取得部５１３は、Ｅｎｃアルゴリズムで生成されたオリジナル暗号文ｏｃｔＦを取得する。
【０１１４】
（Ｓ７０２：暗号文判定処理）
暗号文判定部５２０は、処理装置により、Ｓ７０１で取得されたユーザ秘密鍵ｓｋＳに含まれる属性の有資格集合Ｓが、オリジナル暗号文ｏｃｔＦに含まれるアクセス構造Ｆを満たすか否か判定する。
この判定の方法については、Ｓ２０２で説明した属性の有資格集合Ｓがアクセス構造Ｆ〜を満たすか否か判定する方法と同様である。
属性の有資格集合Ｓがアクセス構造Ｆを満たす場合、処理をＳ７０３へ進め、属性の有資格集合Ｓがアクセス構造Ｆを満たさない場合、処理をＳ７０５へ進める。
【０１１５】
（Ｓ７０３：定数計算処理）
定数計算部５３１は、処理装置により、Ｉ＝｛ｉ：ρ（ｉ）∈Ｓ｝とした場合に、Σｉ∈ＩωｉＭｉ＝（１，０，．．．，０）となる定数ωｉ∈Ｚｐを計算する。Ｓ７０３の処理は、Ｓ６０３の処理と同様である。
【０１１６】
（Ｓ７０４：ペアリング演算処理）
ペアリング演算部５３２は、処理装置により、Ｓ７０１で取得された公開鍵ｐｋ及びユーザ秘密鍵ｓｋＳ及びオリジナル暗号文ｏｃｔＦと、Ｓ７０３で計算された定数ωｉとを用いて、数１２２に示す演算を実行して、メッセージｍを生成する。
【数１２２】
0006270683.tif 000023
つまり、ペアリング演算部５３２は、オリジナル暗号文ｏｃｔＦを、ユーザ秘密鍵ｓｋＳの鍵要素Ｋ０，Ｋ１，Ｋ２．ｉを用いて復号して、メッセージｍを生成する。
【０１１７】
（Ｓ７０５：結果出力処理）
結果出力部５４０は、Ｓ７０４でメッセージｍを生成した場合には、生成されたメッセージｍを出力する。一方、Ｓ７０２で属性の有資格集合Ｓがアクセス構造Ｆを満たさない場合には、復号失敗を表す記号⊥を出力する。
【０１１８】
図１６は、実施の形態１に係るＤｅｃＲｅＥｎｃアルゴリズムの処理を示すフローチャートである。
ＤｅｃＲｅＥｎｃアルゴリズムは、図８に示す再暗号文復号装置６００によって実行される。
【０１１９】
（Ｓ８０１：情報取得処理）
公開鍵取得部６１１は、Ｓｅｔｕｐアルゴリズムで生成された公開鍵ｐｋを取得する。
ユーザ秘密鍵取得部６１２は、ＫＧアルゴリズムで生成されたユーザ秘密鍵ｓｋＳ’を取得する。
再暗号文取得部６１３は、ＲＥｎｃアルゴリズムで生成された再暗号文ｒｃｔＦ’を取得する。
【０１２０】
（Ｓ８０２：暗号文判定処理）
暗号文判定部６２０は、処理装置により、Ｓ８０１で取得されたユーザ秘密鍵ｓｋＳ’に含まれる属性の有資格集合Ｓ’が、再暗号文ｒｃｔＦ’に含まれるアクセス構造Ｆ’を満たすか否か判定する。
この判定の方法については、Ｓ２０２で説明した属性の有資格集合Ｓがアクセス構造Ｆ〜を満たすか否か判定する方法と同様である。
属性の有資格集合Ｓ’がアクセス構造Ｆ’を満たす場合、処理をＳ８０３へ進め、属性の有資格集合Ｓ’がアクセス構造Ｆ’を満たさない場合、処理をＳ８０７へ進める。
【０１２１】
（Ｓ８０３：定数計算処理）
定数計算部６３１は、処理装置により、Ｉ’＝｛ｉ：ρ’（ｉ）∈Ｓ’｝とした場合に、Σｉ∈Ｉ’ω’ｉＭ’ｉ＝（１，０，．．．，０）となる定数ω’ｉ∈Ｚｐを計算する。ここで、Ｍ’ｉは、行列Ｍ’のｉ番目の行である。
【０１２２】
（Ｓ８０４：ペアリング演算処理）
ペアリング演算部６３２は、処理装置により、Ｓ８０１で取得された公開鍵ｐｋ及びユーザ秘密鍵ｓｋＳ’及び再暗号文ｒｃｔＦ’と、Ｓ８０３で計算された定数ω’ｉとを用いて、数１２３に示す演算を実行して、パラメータＥ（ｄ）を生成する。
【数１２３】
0006270683.tif 000024
つまり、ペアリング演算部６３２は、変換後暗号文ｃｔｄＦ’を、ユーザ秘密鍵ｓｋＳ’の鍵要素Ｋ＾’０，Ｋ＾’１，Ｋ＾’２．ｉを用いて復号して、パラメータＥ（ｄ）を生成する。
【０１２３】
（Ｓ８０５：デコード処理）
デコード部６３３は、処理装置により、Ｓ８０１で取得された公開鍵ｐｋに含まれるエンコード関数Ｅを用いて、Ｓ８０４で生成されたパラメータＥ（ｄ）をデコードし、パラメータｄを生成する。
【０１２４】
（Ｓ８０６：メッセージ計算処理）
メッセージ計算部６３４は、処理装置により、Ｓ８０１で取得された再暗号文ｒｃｔＦ’と、Ｓ８０５で生成されたパラメータｄとを用いて、数１２４に示す演算を実行して、メッセージｍを計算する。
【数１２４】
0006270683.tif 000025
つまり、メッセージ計算部６３４は、パラメータｄが埋め込まれた復号情報ｄｅｃｄ＝ＲｅＣ１からパラメータｄを取り除いて得られた情報を用いて、暗号要素ＲｅＣ０からメッセージｍを計算する。
【０１２５】
（Ｓ８０７：結果出力処理）
結果出力部６４０は、Ｓ８０６でメッセージｍを生成した場合には、生成されたメッセージｍを出力する。一方、Ｓ８０２で属性の有資格集合Ｓ’がアクセス構造Ｆ’を満たさない場合には、復号失敗を表す記号⊥を出力する。
【０１２６】
＊＊＊効果の説明＊＊＊
以上のように、実施の形態１に係る暗号システム１０では、普遍再暗号化鍵生成装置７００がユーザ秘密鍵ｓｋＳから普遍再暗号化鍵ｕｒｋＳを生成し、再暗号化鍵生成装置３００が普遍再暗号化鍵ｕｒｋＳから再暗号化鍵ｒｋｓ→Ｆ’を生成する。そして、ユーザ秘密鍵ｓｋＳは、普遍再暗号化鍵ｕｒｋＳを生成する際に必要なだけで、再暗号化鍵ｒｋｓ→Ｆ’を生成する際には必要ない。普遍再暗号化鍵ｕｒｋＳは１つ生成すれば、変更したいアクセス範囲毎の再暗号化鍵ｒｋを生成することが可能である。
そのため、例えば、鍵生成装置１００がユーザ秘密鍵ｓｋＳを生成した際、普遍再暗号化鍵生成装置７００が普遍再暗号化鍵ｕｒｋＳを生成してしまえば、以降、ユーザ秘密鍵ｓｋＳもマスター秘密鍵ｍｓｋも用いることなく、再暗号化鍵ｒｋを生成することが可能である。したがって、再暗号化鍵ｒｋを生成する度に、ユーザがユーザ秘密鍵ｓｋＳを用いた処理を行う必要はなく、利便性が高い。また、再暗号化鍵ｒｋを生成する度に、マスター秘密鍵ｍｓｋを用いた処理を行う必要はなく、安全性が高い。
【０１２７】
なお、上記説明では、暗号文ポリシーのＡＢ−ＰＲＥ方式について説明した。しかし、鍵ポリシーのＡＢ−ＰＲＥ方式についても同様の考え方に基づき実現可能である。
この場合、鍵生成装置１００は、属性の有資格集合Ｓに代えて、アクセス構造Ｆを入力として、ユーザ秘密鍵を生成する。暗号化装置２００は、アクセス構造Ｆに代えて、属性の有資格集合Ｓを入力として、オリジナル暗号文を生成する。再暗号化鍵生成装置３００は、アクセス構造Ｆ’に代えて、属性の有資格集合Ｓ’を入力として、再暗号化鍵を生成する。
【０１２８】
したがって、暗号文ポリシーのＡＢ−ＰＲＥ方式と、鍵ポリシーのＡＢ−ＰＲＥ方式との両方式をまとめると、次のようになる。
鍵生成装置１００は、互いに対応する属性情報である属性の有資格集合Ｓとアクセス構造Ｆとのうちの一方が設定されたユーザ秘密鍵を生成する。暗号化装置２００は、属性の有資格集合Ｓとアクセス構造Ｆとのうちの他方が設定されたオリジナル暗号文を生成する。
普遍再暗号化鍵生成装置７００は、互いに対応する属性情報である属性の有資格集合Ｓとアクセス構造Ｆとのうちの一方が設定されたユーザ秘密鍵をパラメータｄで変換した変換後ユーザ秘密鍵と、パラメータｄを暗号化したパラメータ暗号文とを含む普遍再暗号化鍵を生成する。再暗号化鍵生成装置３００は、変換後ユーザ秘密鍵と、互いに対応する属性情報である属性の有資格集合Ｓ’とアクセス構造Ｆ’とのうちの一方をパラメータ暗号文に設定した変換後暗号文とを含む再暗号化鍵を生成する。
再暗号化装置４００は、属性情報である属性の有資格集合Ｓとアクセス構造Ｆとのうちの他方が設定されたオリジナル暗号文を、再暗号化鍵に含まれる変換後ユーザ秘密鍵で復号した復号情報と、変換後暗号文とを含む再暗号文を生成する。
復号装置５００は、属性情報である属性の有資格集合Ｓとアクセス構造Ｆとのうちの他方が設定されたユーザ秘密鍵により、オリジナル暗号文を復号する。再暗号文復号装置６００は、属性情報である属性の有資格集合Ｓ’とアクセス構造Ｆ’とのうちの他方が設定されたユーザ秘密鍵により、再暗号文を復号する。
【０１２９】
また、上記説明では、対称双線形ペアリング群を用いる場合について説明した。しかし、非対称双線形ペアリング群を用いることも可能であり、上記説明を形式的に非対称双線形ペアリング群を用いた場合の説明に変換することが可能である。
【０１３０】
また、上記説明では、鍵生成装置１００が普遍再暗号化鍵生成装置７００を備えるとした。しかし、普遍再暗号化鍵生成装置７００は他の装置と独立していてもよい。この場合にも同様の効果を得ることができる。
また、復号装置５００が普遍再暗号化鍵生成装置７００を備えていてもよい。この場合には、再暗号化鍵を生成する度に、復号装置５００を操作するユーザに手間がかかる恐れがある。
【０１３１】
また、上記説明では、暗号化装置２００と復号装置５００と再暗号文復号装置６００とを別の装置とした。しかし、暗号システム１０は、暗号化装置２００と復号装置５００と再暗号文復号装置６００とのうちの複数の機能を有する装置を備えてもよい。
【０１３２】
図１７は、実施の形態１に示した鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とのハードウェア構成の例を示す図である。
鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とは、コンピュータである。鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００との各要素をプログラムで実現することができる。
鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とのハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１３３】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ
Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置等である。主記憶装置９０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。通信装置９０４は、例えば通信ボード等である。入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１３４】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、情報取得部１１０と、マスター鍵生成部１２０と、ユーザ秘密鍵生成部１４０と、鍵出力部１５０と、情報取得部２１０と、暗号文生成部２２０と、暗号文出力部２３０と、情報取得部３１０と、再暗号化鍵生成部３２０と、再暗号化鍵出力部３３０と、情報取得部４１０と、再暗号化判定部４２０と、再暗号化部４３０と、再暗号文出力部４４０と、情報取得部５１０と、暗号文判定部５２０と、復号部５３０と、結果出力部５４０と、情報取得部６１０と、暗号文判定部６２０と、復号部６３０と、結果出力部６４０と、情報取得部７１０と、普遍再暗号化鍵生成部７２０と、普遍再暗号化鍵出力部７３０として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、上記プログラムを実行する。
また、実施の形態１の説明において、マスター鍵記憶部１３０が記憶すると説明した情報や、上記機能が取得する、生成する、出力する等と説明した情報等が主記憶装置９０３にファイルとして記憶されている。
【０１３５】
なお、図１７の構成は、あくまでも鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とのハードウェア構成の一例を示すものであり、鍵生成装置１００と、暗号化装置２００と、再暗号化鍵生成装置３００と、再暗号化装置４００と、復号装置５００と、再暗号文復号装置６００と、普遍再暗号化鍵生成装置７００とのハードウェア構成は図１７に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【０１３６】
１０  暗号システム、１００  鍵生成装置、１１０  情報取得部、１１１  セキュリティパラメータ取得部、１１２  属性カテゴリ取得部、１１３  マスター鍵取得部、１１４  有資格集合取得部、１２０  マスター鍵生成部、１２１  写像生成部、１２２  パラメータ生成部、１２３  アクセス構造生成部、１２４  エンコード関数生成部、１２５  鍵要素生成部、１３０  マスター鍵記憶部、１４０  ユーザ秘密鍵生成部、１４１  属性集合判定部、１４２  乱数生成部、１４３  鍵要素生成部、１５０  鍵出力部、２００  暗号化装置、２１０  情報取得部、２１１  公開鍵取得部、２１２  メッセージ取得部、２１３  アクセス構造取得部、２２０  暗号文生成部、２２１  ランダムベクトル生成部、２２２  乱数生成部、２２３  暗号要素生成部、２３０  暗号文出力部、３００  再暗号化鍵生成装置、３１０  情報取得部、３１１  公開鍵取得部、３１２  普遍再暗号化鍵取得部、３１３  アクセス構造取得部、３２０  再暗号化鍵生成部、３２１  ランダムベクトル生成部、３２２  乱数生成部、３２３  属性設定部、３３０  再暗号化鍵出力部、４００  再暗号化装置、４１０  情報取得部、４１１  公開鍵取得部、４１２  再暗号化鍵取得部、４１３  オリジナル暗号文取得部、４２０  再暗号化判定部、４３０  再暗号化部、４３１  定数計算部、４３２  ペアリング演算部、４４０  再暗号文出力部、５００  復号装置、５１０  情報取得部、５１１  公開鍵取得部、５１２  ユーザ秘密鍵取得部、５１３  オリジナル暗号文取得部、５２０  暗号文判定部、５３０  復号部、５３１  定数計算部、５３２  ペアリング演算部、５４０  結果出力部、６００  再暗号文復号装置、６１０  情報取得部、６１１  公開鍵取得部、６１２  ユーザ秘密鍵取得部、６１３  再暗号文取得部、６２０  暗号文判定部、６３０  復号部、６３１  定数計算部、６３２  ペアリング演算部、６３３  デコード部、６３４  メッセージ計算部、６４０  結果出力部、７００  普遍再暗号化鍵生成装置、７１０  情報取得部、７１１  公開鍵取得部、７１２  ユーザ秘密鍵取得部、７２０  普遍再暗号化鍵生成部、７２１  乱数生成部、７２２  復号鍵変換部、７２３  ランダムベクトル生成部、７２４  パラメータ暗号化部、７３０  普遍再暗号化鍵出力部、Ｕ  属性、１λ  セキュリティパラメータ、Ｓ，Ｓ’  有資格集合、ｐｋ  公開鍵、ｍｓｋ  マスター秘密鍵、ｒｓｋ  再暗号化秘密鍵、ｓｋＳ，ｓｋＳ’  ユーザ秘密鍵、ｍ  メッセージ、Ｆ，Ｆ’，Ｆ〜  アクセス構造、ｏｃｔＦ  オリジナル暗号文、ｕｒｋＳ  普遍再暗号化鍵、ｓｋｄ  変換後ユーザ秘密鍵、ｃｔｄＦ＾  パラメータ暗号文、ｒｋＳ→Ｆ’  再暗号化鍵、ｃｔｄＦ’  変換後暗号文、ｒｃｔＦ’  再暗号文、ｄ  パラメータ、Ｓｅｔｕｐ  セットアップ工程、ＫＧ  鍵生成工程、Ｅｎｃ  暗号化工程、ＵＲＫＧ  普遍再暗号化鍵生成工程、ＲＫＧ  再暗号化鍵生成工程、ＲＥｎｃ  再暗号化工程、ＤｅｃＥｎｃ  復号工程、ＤｅｃＲｅＥｎｃ  再暗号文復号工程。
【図１】
0006270683.tif 000035
【図２】
0006270683.tif 000036
【図３】
0006270683.tif 000037
【図４】
0006270683.tif 000038
【図５】
0006270683.tif 000039
【図６】
0006270683.tif 000040
【図７】
0006270683.tif 000041
【図８】
0006270683.tif 000042
【図９】
0006270683.tif 000043
【図１０】
0006270683.tif 000044
【図１１】
0006270683.tif 000045
【図１２】
0006270683.tif 000046
【図１３】
0006270683.tif 000047
【図１４】
0006270683.tif 000048
【図１５】
0006270683.tif 000049
【図１６】
0006270683.tif 000050
【図１７】
0006270683.tif 000051