【文献】
Ryotaro Hayashi et al.,Unforgeability of re-encryption keys against collusion attack in proxy re-encryption,Lecture Notes in Computer Science,Springer,2011年,Vol. 7038,pp. 210-229
(58)【調査した分野】(Int.Cl.,DB名)
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置であって、
前記第1公開鍵に対応する第1秘密鍵を記憶する第1記憶手段と、
前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵を記憶する第2記憶手段と、
前記第1秘密鍵、前記第2再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段と
を備え、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
ことを特徴とする再暗号化鍵生成装置。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化装置であって、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を記憶する記憶手段と、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段と、
を備え、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
ことを特徴とする再暗号化装置。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置であって、
前記第1公開鍵を記憶する記憶手段と、
前記記憶手段内の第1公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段と、
を備え、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
ことを特徴とする暗号化装置。
再暗号化装置が再暗号化鍵に基づいて、第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置であって、
前記第2秘密鍵を記憶する記憶手段と、
前記記憶手段内の第2秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段と、
を備え、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵及び複数の乱数に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
ことを特徴とする復号装置。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置に用いられるプログラムであって、
前記再暗号化鍵生成装置を、
前記第1公開鍵に対応する第1秘密鍵を前記再暗号化鍵生成装置の第1記憶手段に書込む手段、
前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵を前記再暗号化鍵生成装置の第2記憶手段に書込む手段、
前記第1秘密鍵、前記第2再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段、
として機能させ、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
プログラム。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に用いられるプログラムであって、
前記再暗号化装置を、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を前記再暗号化装置の記憶手段に書込む手段、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
プログラム。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置に用いられるプログラムであって、
前記暗号化装置を、
前記第1公開鍵を前記暗号化装置の記憶手段に書込む手段、
前記記憶手段内の第1公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
プログラム。
再暗号化装置が再暗号化鍵に基づいて、第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置に用いられるプログラムであって、
前記復号装置を、
前記第2秘密鍵を前記復号装置の記憶手段に書込む手段、
前記記憶手段内の第2秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段、
として機能させ、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵とは異なる前記第2ユーザ装置の第2再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第2再暗号化鍵生成鍵は、複数のシステム固有値及び前記第2秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第1成分、第2成分及び第3成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第2秘密鍵の線形結合の形を有し、
前記第1成分のベキ指数の分子部分は、前記各乱数のうちの第1乱数に基づく項と、前記各乱数のうちの第2乱数及び前記第1乱数と前記複数の秘密値のうちの第1秘密値とに基づく項との線形結合の形を有し、
前記第2成分のベキ指数の分子部分は、前記第2乱数に基づく項と、前記複数の秘密値のうちの第2秘密値とに基づく項との線形結合の形を有し、
前記第3成分のベキ指数の分子部分は、前記第1乱数に基づく項と、前記第2秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第2秘密鍵にも基づいており、
前記分母部分は、前記第1秘密鍵からなる、
プログラム。
【発明を実施するための形態】
【0026】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、
図1に示すように、予めネットワーク又は非一時的なコンピュータ読み取り可能な記憶媒体(non-transitory computer-readable storage medium)M1〜M5からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、対応する装置の機能を実現させるためのプログラムが用いられる。
【0027】
(第1の実施形態)
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の5つの関数(以下、アルゴリズムともいう)からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【0028】
(鍵生成)KeyGen(λ)→(pk,sk)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータλが入力されると、公開鍵pkと秘密鍵skの組(pk,sk)を出力する。
【0029】
(暗号化)Enc(pk
A,m)→C
A
暗号化アルゴリズムEncは、ユーザAの公開鍵pk
Aとメッセージmが入力されると、ユーザA宛の暗号文C
Aを出力する。
【0030】
(復号)Dec(sk
A,C
A)→m
復号アルゴリズムDecは、ユーザAの秘密鍵sk
Aと、ユーザA宛の暗号文C
Aとが入力されると、メッセージmを出力する。
【0031】
(再暗号化鍵生成)ReKeyGen(pk
A,sk
A,pk
B,sk
B)→rk
A→B
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザAの公開鍵pk
A、ユーザAの秘密鍵sk
A、ユーザBの公開鍵pk
B、ユーザBの秘密鍵sk
Bが入力されると、再暗号化鍵rk
A→Bを出力する。
【0032】
(再暗号化)ReEnc(rk
A→B,C
A)→C
B
再暗号化アルゴリズムReEncは、再暗号化鍵rk
A→Bと、ユーザA宛の暗号文C
Aとが入力されると、ユーザB宛の暗号文C
Bを出力する。
【0033】
以上が基本的なモデルである。但し、再暗号化の実現方式に応じて、関数への入力が異なるモデルや、上記以外の関数や鍵を含むモデルも考えられている。
【0034】
例えば、本実施形態に示す再暗号化方式のように、暗号化、復号、再暗号化鍵生成、再暗号化の各関数の入力として公開パラメータ(詳しくは後述する)を含んでいても良い。
【0035】
例えば、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムReKeyGenの入力において、ユーザBの秘密鍵sk
Bを不要とした非相互作用的(non-interactive)と呼ばれるモデルが考えられている。また、ユーザAの秘密鍵sk
Aに代えて、ユーザB宛の再暗号化鍵rk
A→BとユーザCの秘密鍵sk
Cとが入力されるモデルなども考えられている。
【0036】
また、再暗号化鍵rk
A→Bで暗号文C
A→C
Bの再暗号化を行える一方で、その逆の暗号文C
B→C
Aの変換を行えない一方向性(unidirectional)と呼ばれるモデル、逆の変換も行える双方向性(bidirectional)と呼ばれるモデルなども知られている。なお、双方向性モデルでは、再暗号化鍵rk
A→Bをrk
A⇔Bと表すことがある。
【0037】
さらに、公開鍵暗号の中でもIDベース暗号に基づく方式も考えられている。その場合、マスター鍵生成のための関数セットアップ(Setup)が増え、鍵生成アルゴリズムKeyGenの入力にマスター鍵とIDが追加される。IDベース暗号において、公開鍵pkはIDそのものである。
【0038】
また、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムReKeyGenにおいて、ユーザBの公開鍵pk
Bに代えて、ユーザBの再暗号化鍵生成鍵rk
Bを入力するようにしても良い。この場合、鍵生成アルゴリズムKeyGenと再暗号化鍵生成アルゴリズムReKeyGenは、以下のように表される。
【0039】
(鍵生成)KeyGen(λ)→(pk,sk,rk,par)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータλが入力されると、公開鍵pk、秘密鍵sk、及び再暗号化鍵生成鍵rkの組(pk,sk,rk)と公開パラメータparを出力する。なお、本実施形態では、この処理を鍵セットアップ処理と呼ぶ。これは後述する実施形態や変形例においても同様である。
【0040】
(再暗号化鍵生成)ReKeyGen(sk
A,rk
B,par)→rk
A→B
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザAの秘密鍵sk
A、ユーザBの再暗号化鍵生成鍵rk
B、公開パラメータparが入力されると、再暗号化鍵rk
A→Bを出力する。
【0041】
また、本実施形態に示す再暗号化方式のように、再暗号化アルゴリズムReEncの入力として、ユーザAの公開鍵pk
Aと公開パラメータparを追加しても良い。この場合、再暗号化アルゴリズムReEncは、以下のように表される。
【0042】
(再暗号化)ReEnc(rk
A→B,C
A,pk
A,par)→C
B
再暗号化アルゴリズムReEncは、再暗号化鍵rk
A→Bと、ユーザA宛の暗号文C
Aと、ユーザAの公開鍵pk
Aと、公開パラメータparとが入力されると、ユーザB宛の暗号文C
Bを出力する。
【0043】
次に、本実施形態に係るファイル共有システムの構成について
図7を用いて説明する。ファイル共有システムは、サービスを提供するサービス提供者の有する情報処理装置であるサーバSvと、当該サービスの利用者であるユーザの有する情報処理装置であるユーザ装置A,B,C,…(以下、ユーザA,B,C,…と略記する場合もある。また、第1ユーザ装置,第2ユーザ装置,…と呼ぶこともある。)とを備えている。サーバSvと、ユーザ装置A,B,C,…とは通信網を介して接続されている。通信網とは、例えば、無線LAN(Local Area Network)、有線LAN、光回線網、電話回線網、イントラネット、イーサネット(登録商標)及びインターネットやこれらの組み合わせである。サーバSvは1台のみを設けてもよく、複数台を設けても良い。
【0044】
図8は、ファイル共有システムの模式図である。このファイル共有システムは、サーバSv、ユーザA、ユーザB、ユーザC、グループ管理者、及びユーザ管理者からなる。ユーザ管理者とは、全ユーザを管理するエンティティである。ユーザ管理者は、ユーザがファイル共有システムにログインできるようにするためのIDと初期パスワードを各ユーザに対して発行する。
【0045】
事前準備として、グループ管理者は秘密鍵sk
Grを持っているものとする。また、グループ管理者の公開鍵pk
GrはサーバSvの公開鍵記憶部1に記憶されているとする。また、各ユーザiは、秘密鍵sk
iと再暗号化鍵生成鍵rk
iを持っているものとする。つまり、ユーザAはsk
Aとrk
A、ユーザBはsk
Bとrk
B、ユーザCはsk
Cとrk
Cをそれぞれ持っている。なお、サーバSvと各ユーザiは、公開パラメータparと各ユーザiの公開鍵pk
iを取得可能であるが、ここでは説明を省略し、詳しくは後述する。また、共有しようとする平文のファイルデータをmと表記する。
【0046】
ユーザCは、公開鍵記憶部1に記憶されているグループ管理者の公開鍵pk
Grでファイルデータmを暗号化し、得られた暗号文E(pk
Gr,m)をサーバSvへアップロードする。ここで、E(PK,M)とは、公開鍵PKを用いて平文Mを暗号化した暗号文を表す。サーバSvは、暗号文記憶部2においてこの暗号文を保管する。
【0047】
今、ユーザAがファイルデータmの共有を承諾したとする。ユーザAは、グループ管理者へユーザAの再暗号化鍵生成鍵rk
Aを送信する。グループ管理者は、グループ管理者の秘密鍵sk
GrとユーザAの再暗号化鍵生成鍵rk
Aを用いて、グループ管理者宛の暗号文E(pk
Gr,m)をユーザA宛の暗号文E(pk
A,m)に再暗号化する再暗号化鍵rk
Gr→Aを生成する。グループ管理者は、生成した再暗号化鍵rk
Gr→AをサーバSvへ送信する。サーバSvは、再暗号化鍵記憶部3においてこの再暗号化鍵rk
Gr→Aを保管する。
【0048】
ユーザAは、サーバSvに対して暗号文E(pk
Gr,m)の再暗号化の要求を送信する。サーバSvは、ユーザAから受けた要求に対し、再暗号化鍵記憶部3に記憶されているユーザA宛の再暗号化鍵rk
Gr→Aを用いて、暗号文E(pk
Gr,m)をユーザA宛の再暗号文E(pk
A,m)に再暗号化し、得られた再暗号文E(pk
A,m)をユーザAに送信する。ここで、再暗号文とは、暗号文を再暗号化した暗号文である。
【0049】
ユーザAは、サーバSvからダウンロードした再暗号文E(pk
A,m)を自身が保有する秘密鍵sk
Aで復号し、得られたファイルデータmを利用する。
【0050】
以上のようなファイル共有システムは、ユーザCによる暗号化からユーザAによる復号までの間、ファイルデータmが一度も復号されないため、ファイル共有の過程における情報の漏洩を阻止することができる。
【0051】
また、ユーザCは、暗号文をアップロードする時点で、どのユーザとファイル共有するかを決定する必要がない。つまり、ユーザCは、ファイルデータmをグループ管理者の公開鍵pk
Grで暗号化すれば良く、暗号化に関して管理すべき鍵がグループ管理者の公開鍵pk
Grのみで良いので、鍵管理のコストを低減させることができる。
【0052】
本ファイル共有システムにおいて、サーバSvは、暗号文E(pk
Gr,m)を復号するための復号鍵sk
Grを持たない。従って、サーバSvはこの暗号文を復号できない。これにより、不正なサーバSvが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバSvの厳重な管理が不要となり、サーバSvの管理コストの低減に繋がる。
【0053】
プロキシ再暗号化方式では、移譲元(上述の例ではグループ管理者)宛の暗号文を移譲先(上述の例ではユーザA)宛の暗号文に再暗号化することにより、暗号文の復号権限が移譲先へ移譲される。ここで、プロキシ再暗号化方式では、再暗号化鍵生成アルゴリズムReKeyGenの入力に、(移譲先の秘密鍵は含まれず)移譲先の公開鍵が含まれる。このため、例えばユーザiが、ユーザAの公開鍵pk
Aを用いて別のファイルデータm’を暗号化してユーザA宛の暗号文E(pk
A,m’)を生成できるようにするために、ユーザAの公開鍵pk
Aは(例えばシステムを立ち上げる際など)予め公開される。
【0054】
一方、ユーザAが暗号文の復号権限のユーザAへの移譲を承諾していない場合でも、ユーザAの公開鍵pk
Aが既に公開されているため、グループ管理者は再暗号化鍵rk
Gr→Aを生成できてしまう。従って、ユーザAの承諾なく再暗号化(つまり、暗号文の復号権限のユーザAへの移譲)を行われてしまう可能性がある。
【0055】
それに対して、本ファイル共有システムにおいては、移譲先であるユーザAがユーザAの再暗号化鍵生成鍵rk
Aをグループ管理者に送信しなければ、グループ管理者は再暗号化鍵rk
Gr→Aを生成できない。従って、移譲先の承諾なく再暗号化(つまり、暗号文の復号権限の当該移譲先への移譲)を行えないようにすることができる。
【0056】
ユーザBがファイル共有を行う際も上記と同様である。
【0057】
図1は第1の実施形態に係る再暗号化システムの構成を示す模式図である。(
図1と
図8の対応関係については後述する。)この再暗号化システムは、鍵生成装置10、暗号化装置20、再暗号化鍵生成装置30、再暗号化装置40及び復号装置50を備えている。ここで、鍵生成装置10は、セキュリティパラメータに基づいて、再暗号化システムの公開パラメータ及び各装置30,50の公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。ここで、再暗号化鍵生成鍵は、各装置30,50の秘密鍵に対応する公開鍵とは異なる鍵である。なお、「再暗号化鍵生成鍵」の用語は、例えば、「再暗号化鍵生成データ」又は「再暗号化鍵生成許可データ」等といった所望の名称に読み替えてもよい。
【0058】
暗号化装置20は、再暗号化鍵生成装置30の秘密鍵に対応する公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データを再暗号化装置40に送信する。
【0059】
再暗号化鍵生成装置30は、再暗号化鍵生成装置30の秘密鍵、復号装置50の再暗号化鍵生成鍵、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵を再暗号化装置40に送信する。なお、復号装置50の再暗号化生成鍵は、復号装置50の秘密鍵に対応する公開鍵とは異なる。また、本実施形態では、再暗号化鍵が、再暗号化鍵生成装置30の秘密鍵と、復号装置50の再暗号化鍵生成鍵と、公開パラメータと、複数の乱数とに基づいて生成される。但し、再暗号化鍵の生成の際に、乱数を直接用いることは必須ではなく、乱数に基づいて生成していればよい。例えば、乱数θを直接用いずに、乱数θ(=θ
1+θ
2)に基づく値「θ
1+θ
2」を用いて再暗号化鍵を生成してもよい。
【0060】
再暗号化装置40は、再暗号化鍵生成装置30の公開鍵、公開パラメータ、及び再暗号化鍵生成装置30から受けた再暗号化鍵に基づいて、暗号化装置20から受けた暗号文データを検証処理すると共に、暗号化装置20から受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データを復号装置50に送信する。但し、検証処理は必須ではなく、省略してもよい。
【0061】
復号装置50は、自装置50の秘密鍵と公開パラメータに基づいて、再暗号化装置40から受けた再暗号文データを検証処理すると共に、再暗号化装置40から受けた再暗号文データを復号処理して平文データを得る。但し、検証処理は必須ではなく、省略してもよい。なお、鍵生成装置10、暗号化装置20、再暗号化鍵生成装置30、再暗号化装置40及び復号装置50は、それぞれ複数台が設けられていてもよいが、ここでは一台ずつ設けられている場合を例に挙げて述べる。また、暗号化装置20は、暗号化装置20の公開鍵と公開パラメータを用いて平文データを暗号化して得られた暗号文データを再暗号化装置40に送信しても良い。この場合、鍵生成装置10は、公開パラメータ及び各装置20,50の公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。再暗号化鍵生成装置30は、暗号化装置20の秘密鍵と、復号装置50の再暗号化鍵生成鍵と、公開パラメータと、複数の乱数とを用いて再暗号化鍵を生成し、得られた再暗号化鍵を再暗号化装置40に送信する。
【0062】
図1と
図8の対応関係について説明する。各装置10〜50は、当該処理を行うエンティティにより保持される。ユーザが自身の公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する場合、当該ユーザは鍵生成装置10を保持する。なお、例えば、ユーザ管理者又はグループ管理者がユーザの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する場合、ユーザ管理者又はグループ管理者が鍵生成装置10を保持する。ユーザは、暗号化装置20、復号装置50、又は両方を保持する。グループ管理者は、再暗号化鍵生成装置30を保持する。なお、例えば、ユーザ管理者又はサーバSvが再暗号化鍵を生成する場合、ユーザ管理者又はサーバSvが再暗号化鍵生成装置30を保持する。サーバSvは、再暗号化装置40を保持する。
図8に例示したファイル共有システムにおいては、サーバSvが公開鍵記憶部1を保持し、暗号化を行うユーザCは、公開鍵記憶部1から暗号化に用いる公開鍵を取得しているが、これに限らず、後述するように、ユーザCは(暗号化に用いる公開鍵を生成した)鍵生成装置10から暗号化に用いる公開鍵を取得しても良い。また、サーバSvは、ユーザCが生成した暗号文E(pk
Gr,m)を暗号文記憶部2において保管するが、暗号文記憶部2は再暗号化装置40に含まれていても良いし、再暗号化装置40に含まれない外部の記憶装置であっても良い。
【0063】
各エンティティは、鍵生成装置10、暗号化装置20、再暗号化鍵生成装置30、再暗号化装置40及び復号装置50の一部又は全部を保持しても良い。つまり、どのエンティティがどの装置を保持するかについては、上述の例に限定されるものではなく、様々なバリエーションが考えられる。また、ユーザ管理者とグループ管理者が同一の場合もあるし、異なる場合もある。また、ユーザがユーザ管理者、グループ管理者又は両者を兼ねる場合も兼ねない場合もある。また、ユーザ管理者又はグループ管理者がユーザを兼ねる場合も兼ねない場合もある。また、各ユーザが用いる各ユーザ装置は、第1ユーザ装置、第2ユーザ装置、…と呼んでもよい。同様に、各ユーザ装置の公開鍵、秘密鍵、及び再暗号化鍵生成鍵は、第1ユーザ装置の第1公開鍵、第1秘密鍵、及び第1再暗号化鍵生成鍵、第2ユーザ装置の第2公開鍵、第2秘密鍵、及び第2再暗号化鍵生成鍵、…と呼んでもよい。
【0064】
また、例えば、
図9、
図10にそれぞれ示すように、各エンティティが各装置を保持しても良い。
図9において、サーバSv2は鍵生成装置10を保持し、公開パラメータ、ユーザAの公開鍵と秘密鍵の組と再暗号化鍵生成鍵、及びユーザBの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する。サーバSv2は、公開パラメータ、ユーザAの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザAに渡し、公開パラメータ、ユーザBの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザBに渡し、公開パラメータ、ユーザAの公開鍵をサーバSv1に渡す。ユーザAは暗号化装置20を保持し、ユーザAの公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データをサーバSv1に送信する。サーバSv2は再暗号化鍵生成装置30を保持し、ユーザAの秘密鍵、ユーザBの再暗号化鍵生成鍵、公開パラメータ、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵をサーバSv1に渡す。サーバSv1は再暗号化装置40を保持し、サーバSv2から受けたユーザAの公開鍵、公開パラメータ、及び再暗号化鍵に基づいて、ユーザAから受けた暗号文データを検証処理すると共に、ユーザAから受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データをユーザBに渡す。ユーザBは復号装置50を保持し、ユーザBの秘密鍵と公開パラメータに基づいて、サーバSv1から受けた再暗号文データを検証処理すると共に、サーバSv1から受けた再暗号文データを復号処理して平文データを得る。なお、各エンティティ間のデータの授受は、有線通信又は無線通信等の電気的な通信手段に限らず、例えば、再暗号化鍵生成鍵、再暗号化鍵、暗号文データ又は再暗号文データ等のデータを記憶した記憶媒体をオフラインで配送又は手渡しする物理的な通信手段を用いてもよい。あるいは、各エンティティ間のデータの授受は、電気的な通信手段と、物理的な通信手段とを組合せて用いてもよい。
【0065】
図10において、ユーザAは鍵生成装置10を保持し、公開パラメータ、ユーザAの公開鍵と秘密鍵の組と再暗号化鍵生成鍵、及びユーザBの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する。ユーザAは、公開パラメータ、ユーザBの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザBに渡し、公開パラメータ、ユーザAの公開鍵をサーバSv1に渡す。ユーザAは暗号化装置20を保持し、ユーザAの公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データをサーバSv1に送信する。ユーザAは再暗号化鍵生成装置30を保持し、ユーザAの秘密鍵、ユーザBの再暗号化鍵生成鍵、公開パラメータ、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵をサーバSv1に渡す。サーバSv1は再暗号化装置40を保持し、ユーザAから受けたユーザAの公開鍵、公開パラメータ、及び再暗号化鍵に基づいて、ユーザAから受けた暗号文データを検証処理すると共に、ユーザAから受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データをユーザBに渡す。ユーザBは復号装置50を保持し、ユーザBの秘密鍵と公開パラメータに基づいて、サーバSv1から受けた再暗号文データを検証処理すると共に、サーバSv1から受けた再暗号文データを復号処理して平文データを得る。
【0066】
続いて、各装置10〜50の構成を具体的に説明する。
【0067】
鍵生成装置10は、鍵生成パラメータ記憶部11、一時データ記憶部12、公開パラメータ生成部13、鍵生成部14、通信部15及び制御部16を備えている。
【0068】
ここで、鍵生成パラメータ記憶部11は、鍵生成パラメータを記憶する記憶装置である。
【0069】
一時データ記憶部12は、各生成部13,14の処理途中及び処理結果などの一時的なデータ(以下、一時データともいう)を記憶する記憶装置である。
【0070】
公開パラメータ生成部13は、鍵生成の公開パラメータを生成する。
【0071】
鍵生成部14は、公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。
【0072】
通信部15は、他の装置20〜50と通信するための通信インタフェースであり、例えば、制御部16に制御されて一時データ記憶部12内の公開パラメータ、各30,50の公開鍵・秘密鍵のペア及び再暗号化鍵生成鍵を当該各装置30,50に送信する機能と、制御部16に制御されて一時データ記憶部12内の再暗号化鍵生成装置30の公開鍵を暗号化装置20に送信する機能と、制御部16に制御されて一時データ記憶部12内の公開パラメータと再暗号化鍵生成装置30の公開鍵を再暗号化装置40に送信する機能と、をもっている。なお、以下の説明では、送受信時の冗長な記載を避ける観点から、送受信の際に、通信部15を介する旨の記載を省略する場合がある。これは他の装置20〜50の通信部についても同様である。
【0073】
制御部16は、
図2に示す動作を実行するように、各部11〜15を制御する機能をもっている。
【0074】
暗号化装置20は、一時データ記憶部21、通信部22、暗号化パラメータ生成部23、暗号文生成部24及び制御部25を備えている。
【0075】
ここで、一時データ記憶部21は、鍵生成装置10から受けた公開パラメータと再暗号化鍵生成装置30の公開鍵や、各生成部23,24の処理途中及び処理結果などの一時的なデータを記憶する記憶装置である。
【0076】
通信部22は、他の装置10,30〜50と通信するための通信インタフェースであり、例えば、鍵生成装置10から受けた公開パラメータ及び再暗号化鍵生成装置30の公開鍵を取得して一時データ記憶部21に書き込む機能や、制御部25に制御されて一時データ記憶部21内の暗号文データを再暗号化装置40に送信する機能をもっている。
【0077】
暗号化パラメータ生成部23は、暗号化パラメータを生成する機能をもっている。
【0078】
暗号文生成部24は、一時データ記憶部21から読み出した公開パラメータ及び再暗号化鍵生成装置30の公開鍵(第1ユーザ装置の第1公開鍵)を用いて平文データを暗号化することにより、暗号文データを生成する機能と、得られた暗号文データを一時データ記憶部21に書き込む機能とをもっている。
【0079】
制御部25は、
図3に示す動作を実行するように、各部21〜24を制御する機能をもっている。
【0080】
再暗号化鍵生成装置30は、秘密鍵記憶部31、一時データ記憶部32、通信部33、再暗号化鍵生成部34、制御部35及び乱数生成部36を備えている。
【0081】
秘密鍵記憶部31は、鍵生成装置10から受けた再暗号化鍵生成装置30の秘密鍵を記憶する記憶装置である。
【0082】
一時データ記憶部32は、鍵生成装置10から受けた公開パラメータと復号装置50の再暗号化鍵生成鍵や、再暗号化鍵生成部34の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0083】
通信部33は、他の装置10,20,40,50と通信するための通信インタフェースであり、例えば、鍵生成装置10から受けた公開パラメータ及び復号装置50の再暗号化鍵生成鍵を取得して一時データ記憶部32に書き込む機能や、制御部35に制御されて一時データ記憶部32内の再暗号化鍵を再暗号化装置40に送信する機能をもっている。
【0084】
再暗号化鍵生成部34は、秘密鍵記憶部31から読み出した再暗号化鍵生成装置30の秘密鍵(第1ユーザ装置の第1秘密鍵)と、一時データ記憶部32から読み出した公開パラメータ及び復号装置50の再暗号化鍵生成鍵(第2ユーザ装置の第2再暗号化鍵生成鍵)と、乱数生成部36により生成された複数の乱数とに基づいて再暗号化鍵を生成する機能と、この再暗号化鍵を一時データ記憶部32に書き込む機能とをもっている。
【0085】
ここで、第2再暗号化鍵生成鍵は、公開パラメータ(複数のシステム固有値)及び復号装置50の秘密鍵(第2ユーザ装置の第2秘密鍵)からなる。
【0086】
再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含んでいる。
【0087】
分子部分は、公開パラメータ(各システム固有値)間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第2秘密鍵の線形結合の形を有する。
【0088】
分母部分は、再暗号化鍵生成装置30の秘密鍵(第1ユーザ装置の第1秘密鍵)からなる。
【0089】
制御部35は、
図4に示す動作を実行するように、各部31〜34,36を制御する機能をもっている。
【0090】
乱数生成部36は、乱数を生成して再暗号化鍵生成部34に送出する機能をもっている。
【0091】
なお、再暗号化鍵生成装置30は、鍵生成装置10から自装置30の再暗号化鍵生成鍵を受信する場合、鍵生成装置10から受けた自装置30の再暗号化鍵生成鍵を記憶する記憶装置である再暗号化鍵生成鍵記憶部をもつ(図示せず)。
【0092】
再暗号化装置40は、再暗号化鍵記憶部41、一時データ記憶部42、通信部43、再暗号化処理部44、再暗号化パラメータ生成部45及び制御部46を備えている。
【0093】
再暗号化鍵記憶部41は、再暗号化鍵生成装置30から受けた再暗号化鍵を記憶する記憶装置である。
【0094】
一時データ記憶部42は、鍵生成装置10から受けた公開パラメータと再暗号化鍵生成装置30の公開鍵や、再暗号化処理部44の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0095】
通信部43は、他の装置10〜30,50と通信するための通信インタフェースであり、例えば、鍵生成装置10から受けた公開パラメータ及び再暗号化鍵生成装置30の公開鍵を取得して一時データ記憶部42に書き込む機能や、暗号化装置20から受けた暗号文データを再暗号化処理部44に送出する機能と、制御部46に制御されて一時データ記憶部42内の再暗号文データを復号装置50に送信する機能とをもっている。
【0096】
再暗号化処理部44は、暗号化装置20から暗号文データを受けると、再暗号化鍵記憶部41から読み出した再暗号化鍵、及び一時データ記憶部42から読み出した公開パラメータと再暗号化鍵生成装置30の公開鍵を用いて当該暗号文データを復号せずに再暗号化することにより、再暗号文データを得る機能と、得られた再暗号文データを一時データ記憶部42に書き込む機能とをもっている。
【0097】
制御部46は、
図5に示す動作を実行するように、各部41〜45を制御する機能をもっている。
【0098】
復号装置50は、秘密鍵記憶部51、一時データ記憶部52、通信部53、復号処理部54、再暗号化鍵生成鍵記憶部55、及び制御部56を備えている。
【0099】
秘密鍵記憶部51は、鍵生成装置10から受けた自装置50の秘密鍵を記憶する記憶装置である。
【0100】
一時データ記憶部52は、鍵生成装置10から受けた公開パラメータや、復号処理部54の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0101】
通信部53は、他の装置10〜40と通信するための通信インタフェースであり、例えば、鍵生成装置10から受けた自装置50の秘密鍵を取得して秘密鍵記憶部51に書き込む機能と、鍵生成装置10から受けた公開パラメータを取得して一時データ記憶部52に書き込む機能と、再暗号化装置40から受けた再暗号化データを復号処理部54に送出する機能とをもっている。
【0102】
復号処理部54は、再暗号化装置40から再暗号文データを受けると、秘密鍵記憶部51から読み出した当該復号装置50の秘密鍵(第2ユーザ装置の第2秘密鍵)、及び一時データ記憶部52から読み出した公開パラメータを用いて、当該再暗号文データを復号処理することにより、平文データを得る機能と、得られた平文データを一時データ記憶部52に書き込む機能とをもっている。
【0103】
再暗号化鍵生成鍵記憶部55は、鍵生成装置10から受けた自装置50の再暗号化鍵生成鍵を記憶する記憶装置である。
【0104】
制御部56は、
図6に示す動作を実行するように、各部51〜55を制御する機能をもっている。
【0105】
なお、本実施形態では、例えば公開パラメータは各装置10〜50の一時データ記憶部に記憶される。しかしこれに限らず、公開パラメータは各装置10〜50の(一時データ記憶部とは別の)記憶部に記憶されていても良い。このように、各装置10〜50の一時データ記憶部に記憶されるデータの内、一時的なデータとして扱わなくてもよいデータは、(一時データ記憶部とは別の)記憶部にそれぞれ記憶されていても良い。また、公開パラメータが複数の要素で構成されている場合、各装置20〜50は、公開パラメータの各要素の内、後述する各処理においてそれぞれ必要な要素のみを取得しても良い。これらは後述する実施形態や変形例においても同様である。
【0106】
次に、以上のように構成された再暗号化システムの動作を
図2乃至
図6のシーケンス図を用いて説明する。
【0107】
また、以下の動作は(1)鍵セットアップ処理、(2)暗号化処理、(3)再暗号化鍵生成処理、(4)再暗号化処理、(5)復号処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくてもよい。例えば、再暗号化鍵生成は、暗号化処理の前に実行されてもよい。また、再暗号化処理が実行されずに、暗号文データが復号されてもよい。
【0108】
(1)鍵セットアップ処理は、鍵生成装置10により、
図2及び以下の各ステップST1〜ST8に示すように実行される。
【0109】
始めに、鍵生成装置10の公開パラメータ生成部13は、予め鍵パラメータ記憶部11に記憶したセキュリティパラメータλに基づいて、公開パラメータ
【数1】
【0110】
を生成する、又は外部から入手する(ST1)。具体的には、公開パラメータ生成部13は、予め鍵パラメータ記憶部11に記憶したセキュリティパラメータλに基づいて、位数p>2
λを満たす双線型写像群(bilinear map groups)(G
1,G
2,G
T)を選択する。ここで、pは整数である。pは素数であっても良いし、合成数であっても良い。
【0111】
公開パラメータ生成部13は、G
1の元(げん)gをG
1から、G
2の元(げん)hをG
2から、それぞれランダムに選択する。公開パラメータ生成部13は、α,β,δ,ωをZ
p*からランダムに選択し、g
1=g
α,g
2=g
β,u
1=g
δ,v
1=g
ω,h
1=h
α,h
2=h
β,u
2=h
δ,v
2=h
ωを計算する。
【0112】
ここで、g
αはgのα乗、すなわち、群G
1においてgをα個掛けたものを表す。他についても同様である。
【0113】
また、g
1=g
αのとき、αはG
1におけるgとg
1の関係性を定める数(秘密値)であり,群G
1が乗法群の場合、特に「ベキ指数」と呼ばれる。
【0114】
なお、Z
p*はZ
pかつpと互いに素な整数の集合(=(Z/pZ)
*)であり、pに対する乗法群Z
p*と呼んでもよい。Z
pは0以上p未満の整数の集合(=(Z/pZ)である。
【0115】
さらに、公開パラメータ生成部13は、使い捨て署名(one-time signature)アルゴリズム
【数2】
【0116】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (1996) pp.462-471, (1996)に詳しい。
【0117】
また、双線型写像(eと表記する)とは、e:G
1×G
2→G
Tとなる写像であり、以下の3つの性質を満たす。
【0118】
1.任意の(g,h)∈G
1×G
2及びa,b∈Zについて、e(g
a,h
b)=e(g,h)
abが成り立つ。ここで、Zとは整数の集合である。
【0119】
2.任意の(g,h)∈G
1×G
2について、e(g,h)が計算可能である。
【0120】
3.g,h≠1
G1かつh≠1
G2である場合は常にe(g,h)≠1
GTが成り立つ。ここで、1
G1とはG
1の単位元であり、1
G2とはG
2の単位元であり、1
GTとはG
Tの単位元である。
【0121】
また、双線型写像群(bilinear map groups)(G
1,G
2,G
Tと表記する)とは、双線型写像e:G
1×G
2→G
Tが存在する位数pの群である。上記の定義は、G
1の元g,g
1,g
2、G
2の元h,h
1,h
2、について、g
1=g
α、g
2=g
β、h
1=h
α、h
2=h
βとすると、次式が成り立つことも意味する。
【0122】
e(g,h
1h
2)=e(g,h
α・h
β)=e(g,h
α+β)=e(g,h)
α+β=e(g,h)
α・e(g,h)
β =e(g
α+β,h)=e(g
α・g
β,h)=e(g
1g
2,h)
この関係より、以降の実施形態において、e(g
1g
2,h)をe(g,h
1h
2)に置き換えてもよい。なお、G
1の複数の元g,g
1,g
2,u
1,v
1、およびG
2の複数の元h,h
1,h
2,u
2,v
2は、予め定められた複数のシステム固定値となっている。α,β,δ,ωは、各システム固有値間の関係性を定める複数の秘密値である。また、「システム固定値」の語は、「固定値」、「元」、「公開パラメータ」又は「システムパラメータ」などと読み替えてもよい。
【0123】
また、本明細書では、G
1、G
2、G
Tをともに乗法群と想定した記法を採用しているが、これに限らず、G
1、G
2、G
Tそれぞれについて、加法群と想定した記法で表すことも可能である。つまり、例えば、G
1、G
2を加法群、G
Tを乗法群として表現しても良い。 例えば、G
1、G
2の元が楕円曲線上の点であり、G
Tの元が有限体上の元であっても良い。
【0124】
G
1、G
2が加法群の場合、G
1、G
2における演算が、乗算が加算に置き換えられる。例えば、G
1、G
2の元が楕円曲線上の点である場合、G
1、G
2における演算は点加算となる。例えばg
1は、g
1=αgと置き換えられる。ここでg
1=αgはgのα倍、すなわち、群G
1においてgをα個足したものを表す。他の公開パラメータについても同様である。また、これ以降の数式も同様に置き換えることができる。
【0125】
また、g
1=αgのとき、αはG
1におけるgとg
1の関係性を定める秘密値であり、群G
1が加法群の場合特に「スカラー」と呼ばれる。例えば、G
1、G
2の元が楕円曲線上の点である場合、αgを求める演算はスカラー倍算とも呼ばれる。
【0126】
また、双線形写像においては、G
1の元g,g
1,g
2、G
2の元h,h
1,h
2、について、g
1=αg、g
2=βg、h
1=αh、h
2=βhとすると、次式が成り立つ。
【0127】
e(g,h
1+h
2)=e(g,αh+βh)=e(g,(α+β)h)=e(g,h)
α+β=e(g,h)
α・e(g,h)
β =e((α+β)g,h)=e(αg+βg,h)=e(g
1+g
2,h)
また、双線型写像として、双線型写像群G=G
1=G
2、G
Tについて、e:G×G→G
Tとなる写像を用いても良い。
【0128】
続いて、公開パラメータ生成部13は、生成した公開パラメータparを一時データ記憶部12に書き込む。鍵生成装置10は、一時データ記憶部12内の公開パラメータpar=(λ,p,G
1,G
2,G
T,g,g
1,g
2,h,h
1,h
2,u
1,u
2,v
1,v
2,Sig)を公開する(ST2)。なお、ステップST1を実行する前に公開パラメータが既に公開されていた場合、その公開パラメータを一時データ記憶部12に書き込み、ステップST1及びステップST2をスキップしても良い。
【0129】
また、鍵生成部14は、再暗号化鍵生成装置30の識別情報をiとしたとき、Z
p*の元x
i,y
i,z
iをZ
p*からランダムに選択し、再暗号化鍵生成装置30の秘密鍵sk
i=(x
i,y
i,z
i)とする。そして、鍵生成部14は、この秘密鍵sk
iと公開パラメータparを用いて再暗号化鍵生成装置30の公開鍵pk
i=(X
i,Y
1i,Z
i,Z
1i)を生成する。ここで、
【数3】
【0130】
である。さらに、鍵生成部14は、秘密鍵sk
iと公開パラメータparを用いて再暗号化鍵生成鍵rk
i=(T
i,T
1i,T
2i)を生成する(ST3)。ここで、
【数4】
【0132】
続いて、鍵生成部14は、生成した公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を一時データ記憶部12に書き込む。通信部15は、制御部16に制御されて一時データ記憶部12内の秘密鍵sk
iと再暗号化鍵生成鍵rk
iを再暗号化鍵生成装置30に送信する(ST4)。鍵生成装置10は、一時データ記憶部12内の再暗号化鍵生成装置30の公開鍵pk
iを公開する(ST5)。
【0133】
また同様に、鍵生成部14は、復号装置50の識別情報をjとしたとき、Z
p*の元x
j,y
j,z
jをZ
p*からランダムに選択し、復号装置50の秘密鍵sk
j=(x
j,y
j,z
j)とする。そして、鍵生成部14は、この秘密鍵sk
jと公開パラメータparを用いて復号装置50の公開鍵pk
j=(X
j,Y
1j,Z
j,Z
1j)を生成する。ここで、
【数5】
【0134】
である。さらに、鍵生成部14は、秘密鍵sk
jと公開パラメータparを用いて再暗号化鍵生成鍵rk
j=(T
j,T
1j,T
2j)を生成する(ST6)。ここで、
【数6】
【0135】
である。ステップST6で生成された再暗号化生成鍵(第2再暗号化生成鍵)rk
j=(T
j,T
1j,T
2j)は、複数のシステム固定値(h,h
1,h
2)及び復号装置50の秘密鍵(第2秘密鍵)からなる。
【0136】
続いて、鍵生成部14は、生成した公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を一時データ記憶部12に書き込む。通信部15は、制御部16に制御されて一時データ記憶部12内の秘密鍵sk
jと再暗号化鍵生成鍵rk
jを復号装置50に送信する(ST7)。鍵生成装置10は、一時データ記憶部12内の復号装置50の公開鍵pk
jを公開する(ST8)。また、所望により、暗号化装置20の秘密鍵sk
h、公開鍵pk
h、及び再暗号化鍵生成鍵rk
hについても各ステップST6〜ST8と同様の処理を実行して暗号化装置20に秘密鍵sk
hと再暗号化鍵生成鍵rk
hを送信し、公開鍵pk
hを公開してもよい。また、鍵生成装置10は、暗号化装置20、再暗号化鍵生成装置30、又は復号装置50に、(再暗号化鍵生成鍵を送信せず)秘密鍵のみを送信しても良い。また、鍵生成装置10は、暗号化装置20、再暗号化鍵生成装置30、又は復号装置50に、鍵セットアップ処理において生成された全ての公開鍵の内、一部又は全部の公開鍵を送信しても良い。これらは後述する実施形態や変形例においても同様である。
【0137】
以上により、鍵セットアップ処理が完了する。以後、各装置20,30,40,50では、各ステップST2,ST5,ST8で公開された公開パラメータ及び公開鍵を適宜、取得して利用することができる。
【0138】
(2)暗号化処理は、暗号化装置20により、
図3及び以下の各ステップST21〜ST24に示すように実行される。なお、暗号化装置20は、再暗号化鍵生成装置30の公開鍵pk
iを一時データ記憶部21に既に記憶していると想定しているが、もし暗号化装置20が再暗号化鍵生成装置30の公開鍵pk
iを未だ取得していない場合は、暗号化装置20は、後述するステップST22の前に、再暗号化鍵生成装置30の公開鍵pk
iを、例えば鍵生成装置10から取得すれば良い。同様に、暗号化装置20は、公開パラメータparを一時データ記憶部21に既に記憶していると想定しているが、もし暗号化装置20が公開パラメータparを未だ取得していない場合は、暗号化装置20は、後述するステップST21の前に、公開パラメータparを、例えば鍵生成装置10から取得すれば良い。
【0139】
暗号化装置20の暗号化パラメータ生成部23は、公開パラメータparにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数7】
【0140】
を生成し(ST21)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0141】
また、暗号化パラメータ生成部23は、乱数r∈Z
p*を生成して暗号文生成部24に送出する。
【0142】
暗号文生成部24は、この乱数r、再暗号化鍵生成装置30の公開鍵pk
i、及び公開パラメータparを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
3,C
41,C
42を生成する(ST22)。
【数8】
【0143】
は、署名鍵と署名対象データを入力として、署名を出力する。
【0144】
しかる後、暗号文生成部24は、上記全ての暗号化データC
1〜C
42と使い捨て署名σとを含む暗号文データC
i=(C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
3,C
41,C
42,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0145】
なお、暗号文データC
i=(C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
3,C
41,C
42,σ)は、後述するステップST41における検証処理を省略する場合、復号に用いない検証用データ(C
1,C
41,C
42,σ)を省略して、C
i=(C
2X,C
2Y,C
2Z,C
2Z1,C
3)としてもよい。この場合、検証用データ(C
1,C
41,C
42,σ)を生成する処理も省略される。本実施形態においては、上述したように(また後述するように)検証を省略したり、検証用データの生成を省略したりしてもよいが、これは後述する実施形態や変形例においても同様である。
【0146】
いずれにしても通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを再暗号化装置40に送信する(ST24)。
【0148】
(3)再暗号化鍵生成処理は、再暗号化鍵生成装置30により、
図4及び以下の各ステップST31〜ST33に示すように実行される。なお、再暗号化鍵生成装置30は、公開パラメータparを一時データ記憶部32に既に記憶していると想定しているが、もし再暗号化鍵生成装置30が公開パラメータparを未だ取得していない場合は、再暗号化鍵生成装置30は、後述するステップST32の前に、公開パラメータparを、例えば鍵生成装置10から取得すれば良い。
【0149】
今、復号装置50(
図8の例では、例えばユーザA)が、再暗号化鍵生成装置30(
図8の例では、グループ管理者)宛の暗号文を、復号装置50(
図8の例では、例えばユーザA)宛の暗号文に再暗号化すること(つまり、暗号文の復号権限のユーザAへ移譲すること)を承諾したとする。復号装置50は、再暗号化鍵生成装置30に、復号装置50の再暗号化鍵生成鍵rk
jを送信する。再暗号化鍵生成装置30の通信部33は、制御部35に制御されて、復号装置50の再暗号化鍵生成鍵rk
jを取得して一時データ記憶部32に書き込む(ST31)。なお、ステップST31において、(復号装置50ではなく)鍵生成装置10が再暗号化鍵生成装置30に再暗号化鍵生成鍵rk
jを送信しても良い。これは後述する実施形態や変形例においても同様である。
【0150】
ここで、一時データ記憶部32について、
図11に示すように、再暗号化鍵生成装置30は、一時データ記憶部32の中に公開パラメータ記憶部321と再暗号化鍵生成鍵記憶部322を保持し、公開パラメータparを公開パラメータ記憶部321に記憶し、復号装置50の再暗号化鍵生成鍵rk
jを再暗号化鍵生成鍵記憶部322に記憶しても良い。また、公開パラメータparを記憶する公開パラメータ記憶部321は、一時データ記憶部32の外にあっても良い。また、再暗号化鍵生成鍵rk
jを記憶する再暗号化鍵生成鍵記憶部322は、一時データ記憶部32の外にあっても良い。これらは後述する実施形態や変形例においても同様である。また、通信部33は、前述したステップST4のとき、再暗号化鍵生成装置30の秘密鍵sk
iを鍵生成装置10から受信して秘密鍵記憶部31に書き込んでいる。
【0151】
乱数生成部36は、乱数θ,n∈Z
p*を生成して再暗号化鍵生成部34に送出する。
【0152】
再暗号化鍵生成部34は、この乱数θ,n、秘密鍵記憶部31内の再暗号化鍵生成装置30の秘密鍵sk
i、一時データ記憶部32内の復号装置50の再暗号化鍵生成鍵rk
j、及び公開パラメータparを用いて、再暗号化鍵R
ijを次式に示すように生成する(ST32)。
【0153】
R
ij=(R
ij1,R
ij2,R
ij3 )
ここで、
【数9】
【0154】
である。再暗号化鍵R
ij=(R
ij1,R
ij2,R
ij3 )は、分子部分と分母部分とを有するベキ指数を含んでいる。なお、G
1、G
2、G
Tそれぞれについて、加法群と想定した記法で表す場合、再暗号化鍵は、ベキ指数に代えて、スカラーを含む。ベキ指数(又はスカラー)の分子部分は、各システム固有値(h,h
1,h
2)間の関係性を定める複数の秘密値(α,β)と各乱数(θ,n)とのうちの少なくとも一つを作用させた第2秘密鍵(θx
j,α(θ−n−1)y
j,nx
j,βy
j)の線形結合の形を有している。本実施例では、ベキ指数(又はスカラー)の分子部分は、各システム固有値(h,h
1,h
2)間の関係性を定める複数の秘密値(α,β)と各乱数(θ,n)とのうちの少なくとも一つによりマスクした第2秘密鍵(θx
j,α(θ−n−1)y
j,nx
j,βy
j)の線形結合の形を有している。これにより、第2秘密鍵が秘匿され、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。ベキ指数(又はスカラー)の分母部分は、再暗号化鍵生成装置30の秘密鍵sk
i(第1秘密鍵)からなる。
【0155】
この時、乱数θ,nは、秘密鍵sk
iと再暗号化鍵生成鍵rk
jのペア毎に固定してもよいし,再暗号化鍵を生成するたびに違う乱数としてもよい。前者の場合、秘密鍵sk
iと再暗号化鍵生成鍵rk
jのペア毎に、再暗号化鍵は1種類となる。一方、後者の場合、秘密鍵sk
iと再暗号化鍵生成鍵rk
jのペア毎に、複数種類の再暗号化鍵が生成されることになる。また、R
ij1のθ部分とn部分とを分けてもよい。例えば、R
ij11=(T
jθT
1jθ)
1/xi,R
ij12=(T
1j-n-1)
1/xiとして、再暗号化鍵R
ijを(R
ij11,R
ij12,R
ij2,R
ij3)とする。計算時にR
ij11と、R
ij12とを乗算してR
ij1を作成する。また、ここでは乱数を2つ選択しているが、乱数を3つ以上選択してもよい。例えば、乱数θ1、θ2、nを選択し、T
jθの代わりにT
jθ1T
jθ2、T
1jθの代わりにT
1jθ1T
1jθ2を計算するように置き換えてもよい。例えば、R
ij31=(T
jθ1T
1jθ)
1/zi,R
ij32=(T
jθ2T
2j)
1/ziとして、再暗号化鍵R
ijを(R
ij1,R
ij2,R
ij31,R
ij32)とする。計算時にR
ij31と、R
ij32とを乗算してR
ij3を作成する。また、R
ij1の方も、θ部分をθ=θ1
’+θ2
’に分けてもよい。
【0156】
しかる後、再暗号化鍵生成部34は、生成した再暗号化鍵R
ijを一時データ記憶部32に書き込む。通信部33は、制御部35に制御されて、一時データ記憶部32内の再暗号化鍵R
ijを再暗号化装置40に送信する(ST33)。
【0157】
以上により、再暗号化鍵生成処理が完了する。
【0158】
(4)再暗号化処理は、再暗号化装置40により、
図5及び以下の各ステップST41〜ST43に示すように実行される。なお、再暗号化装置40は、再暗号化鍵生成装置30の公開鍵pk
iを一時データ記憶部42に既に記憶していると想定しているが、もし再暗号化装置40が再暗号化鍵生成装置30の公開鍵pk
iを未だ取得していない場合は、再暗号化装置40は、後述するステップST41の前に、再暗号化鍵生成装置30の公開鍵pk
iを、例えば再暗号化鍵生成装置30から取得すれば良い。同様に、再暗号化装置40は、公開パラメータparを一時データ記憶部42に既に記憶していると想定しているが、もし再暗号化装置40が公開パラメータparを未だ取得していない場合は、再暗号化装置40は、後述するステップST41の前に、公開パラメータparを、例えば鍵生成装置10から取得すれば良い。
【0159】
再暗号化装置40の通信部43は、ステップST24で送信された暗号文データC
iと、ステップST33で送信された再暗号化鍵R
ijとをそれぞれ一時データ記憶部42に書き込む。
【0160】
再暗号化処理部44は、公開パラメータparと再暗号化鍵生成装置30の公開鍵pk
iを用い、一時データ記憶部42内の暗号文データC
iを次の検証式により検証する(ST41)。
【数10】
【0161】
は、検証鍵を用いて、署名検証データに対する署名を検証し、署名が正当であると判定した場合は“1”を出力し、正当でないと判定した場合は“1”以外(例えば“0”)を出力する。
【0162】
従って、式(a1)の6番目の検証式は、暗号化データC
1を検証鍵として用いて、署名対象データである暗号化データC
3,C
41に対する使い捨て署名σを検証し、使い捨て署名σが正当であると判定されることを表す。
【0163】
ここで、式(a1)の6つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0164】
検証が成功した場合(又はステップST41の検証処理をスキップした場合)、再暗号化パラメータ生成部45は、3つの乱数s,t,k∈Z
p*を生成して再暗号化処理部44に送出する。
【0165】
再暗号化処理部44は、これらの乱数s,t,k、一時データ記憶部42に記憶されている、暗号文データC
i、再暗号化鍵R
ij、再暗号化鍵生成装置30の公開鍵pk
i、及び公開パラメータparを用いて、次式に示すように、再暗号化データC
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
5X,C
5Y,C
5Zを生成する(ST42)。
【数11】
【0166】
ステップST42の終了後、再暗号化処理部44は、上記全ての再暗号化データC
2X’〜C
5Zを、暗号文データC
i内の暗号化データC
2X,C
2Y,C
2Z,C
2Z1と置換して再暗号文データC
j=(C
1,C
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
5X,C
5Y,C
5Z,C
3,C
41,C
42,σ)を生成し、得られた再暗号文データC
jを一時データ記憶部42に書き込む。なお、再暗号文データC
j=(C
1,C
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
5X,C
5Y,C
5Z,C
3,C
41,C
42,σ)は、後述する復号処理におけるステップST51の検証処理を省略する場合、復号に用いない検証用データ(C
1,C
2X’,C
2Y’,C
2Z’,C
2Z1’,C
41,C
42,σ)を省略して、C
j=(C
2X’’,C
2Y’’,C
2Z’’,C
2Z1’’,C
5X,C
5Y,C
5Z,C
3)としてもよい。この場合、検証用データ(C
2X’,C
2Y’,C
2Z’,C
2Z1’)を生成する処理も省略される。
【0167】
いずれにしても通信部43は、制御部46に制御されて一時データ記憶部42内の再暗号文データC
jを復号装置50に送信する(ST43)。
【0168】
以上により、再暗号化処理が完了する。
【0169】
なお、再暗号化処理部44は、ステップST41の検証処理を省略し、ステップST42の再暗号化データ生成処理を行ってもよい。また、暗号文データC
iに検証用データ(C
1,C
41,C
42,σ)が含まれていない場合も、再暗号化処理部44は、ステップST41の検証処理を省略し、ステップST42の再暗号化データ生成処理を行う。
【0170】
(5)復号処理は、復号装置50により、
図6及び以下のステップST51及びST52に示すように実行される。なお、復号装置50は、公開パラメータparを一時データ記憶部52に既に記憶していると想定しているが、もし復号装置50が公開パラメータparを未だ取得していない場合は、復号装置50は、後述するステップST51の前に、公開パラメータparを、例えば鍵生成装置10から取得すれば良い。
【0171】
復号装置50の通信部53は、ステップST43で送信された再暗号文データC
jを受信して一時データ記憶部52に書き込む。
【0172】
復号処理部54は、秘密鍵記憶部51内の自装置50の秘密鍵sk
jと一時データ記憶部52内の公開パラメータparを用い、一時データ記憶部52内の再暗号文データC
jを次の検証式により検証する(ST51)。
【数12】
【0173】
式(a2)の7つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。このとき,式(a2)の5番目の式を計算するには、秘密鍵x
j,y
jが必要であることに注意する。
【0174】
検証が成功した場合(又はステップST51の検証処理をスキップした場合)、復号処理部54は、秘密鍵記憶部51内の自装置50の秘密鍵sk
jと一時データ記憶部52内の公開パラメータparを用いて、次式に示すように、再暗号文データC
jを復号し、メッセージmを得る(ST52)。
【数13】
【0176】
なお、復号処理部54は、ステップST51の検証処理を省略し、ステップST52の復号処理を行ってもよい。また、再暗号文データC
jに検証用データ(C
1,C
2X’,C
2Y’,C
2Z’,C
2Z1’,C
41,C
42,σ)が含まれていない場合も、復号処理部54は、ステップST51の検証処理を省略し、ステップST52の復号処理を行う。また、上記mはメッセージそのものではなく、鍵であってもよい。例えば、共通鍵暗号における共通鍵k
symについて、m=k
symとして、mをk
symに置き換えてもよい。この場合、共通鍵k
symを用いてメッセージを暗号化した暗号文を上記暗号文データや再暗号文データに付加すればよい。これらは後述する実施形態や変形例においても同様である。
【0177】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【0178】
上述したように本実施形態によれば、第1秘密鍵、第2再暗号化鍵生成鍵及び複数の乱数に基づいて再暗号化鍵を生成する場合に、第2再暗号化鍵生成鍵及び再暗号化鍵としては、次の(A)〜(D)に示す構成を用いている。
【0179】
(A)第2再暗号化鍵生成鍵が複数のシステム固有値及び第2秘密鍵からなる。
【0180】
(B)再暗号化鍵が分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。
【0181】
(C)分子部分は、各システム固有値間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第2秘密鍵の線形結合の形を有する。
【0182】
(D)分母部分は、第1秘密鍵からなる。
【0183】
従って、このような構成により、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【0184】
補足すると、移譲先(再暗号化先)のユーザBの公開鍵とは異なる再暗号化鍵生成鍵rk
jを(直接)乱数乗または乱数倍する演算を含む処理によって再暗号化鍵を生成することにより、再暗号化鍵から委譲先ユーザの公開鍵および秘密鍵に関する情報を秘匿する。これにより、サーバと複数のユーザが結託した場合でも、復号権限を移譲元の許可なく再移譲されることを防ぐことができる。また、これにより、サーバに対して極端な信頼を求める必要が無くなるため、ユーザがより安心して利用できるファイル共有システムを提供することができる。さらに、再暗号化鍵R
ijを再暗号化鍵生成鍵rk
jに基づいて生成する構成により、移譲先(
図8の例では、例えばユーザA)が再暗号化鍵生成鍵を移譲元(
図8の例では、グループ管理者)に通知しなければ再暗号化鍵が生成され得ないため、移譲先の承諾なく再暗号化(つまり、暗号文の復号権限の当該移譲先への移譲)を行わないようにすることができる。
【0185】
また、本実施形態によれば、復号権限を持つユーザのみが再暗号化後の暗号文の検証式を計算することができる。すなわち、再暗号化後の暗号文の検証式の計算には復号権限を持つユーザの秘密鍵が必須であるため,通信路上の攻撃者に暗号文を検証されないようにすることができる。また、通信路上の攻撃者に、どの暗号文がどのユーザ向けに送信されたものかを判断されないようにすることができる。
【0186】
補足すると、非特許文献1記載のプロキシ再暗号化方式では、再暗号化後の暗号文の正しさを検証する検証式は、暗号文、公開パラメータ、復号権限を持つユーザの公開鍵のみで計算できる(秘密鍵を用いなくとも計算できる)。すなわち、公開情報のみで暗号文が正しいかどうかの検証が行えるため、どの暗号文がどのユーザ向けに送信されたものか、だれでも判定できる不都合がある。これに対し、本実施形態では、復号権限を持つユーザの秘密鍵x
j,y
jを再暗号文データC
jの検証式(a2)が含むため、前述した不都合を解消することができる。このことは、以下の各実施形態及び再暗号化を行う各変形例でも同様である。
【0187】
[変形例1]
第1の実施形態では、暗号化装置20において暗号文データを生成し、再暗号化装置40において暗号文データを再暗号化して再暗号文データを生成し、復号装置50において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第1の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【0188】
本変形例における暗号化処理と、第1の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置50の識別情報をiとする。この場合、暗号化装置20の通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを復号装置50に送信する(ST24’)。
【0189】
復号装置50は、公開パラメータparと自装置50の秘密鍵sk
iを用いて、暗号化装置20において生成された暗号文データC
iを次の検証式により検証する(ST51’)。
【数14】
【0190】
なお、復号装置50は、公開パラメータparと自装置50の公開鍵pk
iを用いて、暗号化装置20において生成された暗号文データC
iをステップST41と同様に検証しても良い。
【0191】
式(a3)の6つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0192】
検証が成功した場合(又はステップST51’の検証処理をスキップした場合)、復号装置50は、自装置50の秘密鍵sk
iと公開パラメータparを用いて、次式のように暗号文データC
iを復号し、メッセージmを得る(ST52’)。
【数15】
【0193】
[変形例2]
変形例1の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第1の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置50の識別情報をjとする。
【0194】
暗号化装置20の暗号化パラメータ生成部23は、ステップST21と同様に(ssk,svk)を生成し(ST21’)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0195】
また、暗号化パラメータ生成部23は、4つの乱数r,s,t,k∈Z
p*を生成して暗号文生成部24に送出する。
【0196】
暗号文生成部24は、これらの乱数r,s,t,k、復号装置50の公開鍵pk
j、及び公開パラメータを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
5X, C
5Y,C
5Z,C
3,C
41,C
42を生成する(ST22’)。
【数16】
【0197】
ステップST22’の終了後、暗号文生成部24は、ステップST23と同様に、使い捨て署名σを生成する(ST23’)。
【0198】
しかる後、暗号文生成部24は、上記全ての暗号化データC
1〜C
42と使い捨て署名σとを含む暗号文データC
j=(C
1,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Z,C
3,C
41,C
42,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0199】
通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
jを復号装置50に送信する(ST24’)。
【0200】
復号装置50は、暗号化装置20において生成された暗号文データC
jをステップST51と同様に検証する(ST51’)。検証が成功した場合(又はステップST51’の検証処理をスキップした場合)、復号装置50は、自装置50の秘密鍵sk
jと公開パラメータparを用いて、次式のように暗号文データC
jを復号し、メッセージmを得る(ST52’)。
【数17】
【0201】
[変形例3]
前述のとおり、双線形写像においては、e(g
1g
2,h)=e(g,h
1h
2)という関係が成り立つため、e(g
1g
2,h)をe(g,h
1h
2)に置き換えてもよい。すると、どのアルゴリズムにもg
2が登場しなくなるため、パラメータからg
2を削除してもよい。これにより、データ量を削減することができる。これは、変形例1、変形例2についても同様である。
【0202】
[変形例4]
第1の実施形態では、双線形写像としてe:G
1×G
2→G
Tを用いたが、前述のとおり、双線型写像群G=G
1=G
2、G
Tについて、e:G×G→G
Tとなる写像を用いても良い。この場合、gおよびh(ただしg≠h)を、共にG(G
1=G
2)から選び、あとは第1の実施形態と同様に計算すればよい。さらにこの時、アルゴリズム中のu
2をu
1に置き換え、v
2をv
1に置き換え、C
42をC
41に置き換え、さらに式(a1),式(a2),式(a3)から検証式「e(g,C
42)=e(C
41,h)」を削除してもよい。すると、アルゴリズム中にC
42、u
2、v
2が登場しなくなるため、パラメータからu
2、v
2を削除し、暗号文からC
42を削除してもよい。これにより、データ量を削減することができる。これは、変形例1、変形例2、変形例3についても同様である。
【0203】
(第2の実施形態)
本実施形態では、第1の実施形態において再暗号化鍵をある期間毎に更新する例を説明する。期間を表すパラメータとして、時間パラメータLを用いる。鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理の内、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理において時間パラメータが用いられる。例えば、ある期間t
1において暗号化処理を行う場合、L=t
1として後述する暗号化処理を行い、次の期間t
2において暗号化処理を行う場合、L=t
2として後述する暗号化処理を行う、というように時間パラメータを用いる。すなわち、定期的に時間パラメータLを変えて、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理を行う。以下、本実施形態における鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理について説明する。なお、前述の第1の実施形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0204】
(1)鍵セットアップ処理
鍵生成装置10の公開パラメータ生成部13は、公開パラメータparを、第1の実施形態と同様に生成する、又は外部から入手する(ST1)。鍵生成部14は、再暗号化鍵生成装置30の識別情報をiとしたとき、Z
p*の元x
i,y
i,z
i,w
iをZ
p*からランダムに選択し、再暗号化鍵生成装置30の秘密鍵sk
i=(x
i,y
i,z
i,w
i)とする。そして、鍵生成部14は、この秘密鍵sk
iと公開パラメータparを用いて再暗号化鍵生成装置30の公開鍵pk
i=(X
i,Y
1i,Z
i,Z
1i,W
i)を生成する。ここで、
【数18】
【0205】
である。さらに、鍵生成部14は、秘密鍵sk
iと公開パラメータparを用いて再暗号化鍵生成鍵rk
i=(T
i,T
1i,T
2i)を生成する(ST3)。ここで、
【数19】
【0207】
また同様に、鍵生成部14は、復号装置50の識別情報をjとしたとき、Z
p*の元x
j,y
j,z
j,w
jをZ
p*からランダムに選択し、復号装置50の秘密鍵sk
j=(x
j,y
j,z
j,w
j)とする。そして、鍵生成部14は、この秘密鍵sk
jと公開パラメータparを用いて復号装置50の公開鍵pk
j=(X
j,Y
1j,Z
j,Z
1j,W
j)を生成する。ここで、
【数20】
【0208】
である。さらに、鍵生成部14は、秘密鍵sk
jと公開パラメータparを用いて再暗号化鍵生成鍵rk
j=(T
j,T
1j,T
2j)を生成する(ST6)。ここで、
【数21】
【0210】
(2)暗号化処理
第1の実施形態のステップST21と同様に、暗号化装置20の暗号化パラメータ生成部23は、(ssk,svk)を生成し(ST21)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0211】
また、暗号化パラメータ生成部23は、乱数r∈Z
p*を生成して暗号文生成部24に送出する。
【0212】
暗号文生成部24は、この乱数r、再暗号化鍵生成装置30の公開鍵pk
i、公開パラメータpar、及び時間パラメータLを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
2F,C
3,C
41,C
42を生成する(ST22)。
【数22】
【0213】
暗号化装置20(又は後述する再暗号化鍵生成装置30)による時間パラメータの取得方法として、例えば、以下の方法を用いれば良い。あるエンティティ(例えば、
図8のサーバSv、サーバSvとは別のサーバ、ユーザ管理者、グループ管理者、ユーザ管理者やグループ管理者とは別の管理者、ユーザA、ユーザB、ユーザB、又はユーザA〜Cとは別のユーザ)が時間パラメータを生成する時間パラメータ生成装置(図示せず)を保持し、時間パラメータ生成装置が暗号化装置20(又は再暗号化鍵生成装置30)に時間パラメータを通知するようにしても良い。また、入力を時刻とし、出力を時間パラメータとする関数を定義し、時刻とその関数を用いて時間パラメータを生成しても良い。この場合、暗号化装置20(又は再暗号化鍵生成装置30)は、暗号化処理(再暗号化鍵生成処理)を行う時刻に基づいた情報(例えば、暗号化処理(再暗号化鍵生成処理)を行う日付を数値化した値)を入力とした上記関数の出力値を時間パラメータLとして用いれば良く、他の装置から時間パラメータを取得する必要はない。また、鍵生成装置10、暗号化装置20、再暗号化鍵生成装置30、再暗号化装置40、又は復号装置50が時間パラメータを生成し、(時間パラメータを生成する)当該装置以外の装置に時間パラメータを通知しても良い。また、再暗号化鍵生成装置30は、後述するように復号装置50の再暗号化鍵生成鍵を復号装置50から取得するが、この際に再暗号化鍵生成鍵に加えて時間パラメータも復号装置50から取得しても良い。この場合、復号装置50は、上述のいずれかの方法により時間パラメータを取得すれば良い。これは後述する実施形態や変形例においても同様である。
【0214】
ステップST22の終了後、暗号文生成部24は、時間パラメータL及び暗号化データC
3,C
41に対し、公開パラメータparにおける署名生成機能
【数23】
【0215】
なお、暗号文生成部24は、署名対象データとして時間パラメータLを含めず、暗号化データC
3,C
41を署名対象データとして、使い捨て署名σを生成しても良い。これは後述する実施形態や変形例においても同様である。
【0216】
しかる後、暗号文生成部24は、時間パラメータL、上記全ての暗号化データC
1〜C
4、及び使い捨て署名σを含む暗号文データC
i=(L,C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
2F,C
3,C
41,C
42,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0217】
通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを再暗号化装置40に送信する(ST24)。
【0218】
(3)再暗号化鍵生成処理
今、復号装置50(
図8の例では、例えばユーザA)が、再暗号化鍵生成装置30(
図8の例では、グループ管理者)宛の、時間パラメータの値としてLを用いて生成された暗号文を、復号装置50(
図8の例では、例えばユーザA)宛の暗号文に再暗号化すること(つまり、暗号文の復号権限のユーザAへ移譲すること)を承諾したとする。復号装置50は、再暗号化鍵生成装置30に、復号装置50の再暗号化鍵生成鍵rk
jを送信する。再暗号化鍵生成装置30の通信部33は、制御部35に制御されて、復号装置50の再暗号化鍵生成鍵rk
jを取得して一時データ記憶部32に書き込む(ST31)。
【0219】
乱数生成部36は、4つの乱数θ,n,δ
x,δ
y∈Z
p*を生成して再暗号化鍵生成部34に送出する。
【0220】
再暗号化鍵生成部34は、これらの乱数θ,n,δ
x,δ
y、秘密鍵記憶部31内の再暗号化鍵生成装置30の秘密鍵sk
i、一時データ記憶部32内の復号装置50の再暗号化鍵生成鍵rk
j、公開パラメータpar、及び時間パラメータLを用いて、再暗号化鍵R
ijLを次式に示すように生成する(ST32)。
【0221】
R
ijL=(R
ijL1,R
ijL2,R
ijL3,R
ijL4,R
ijL5 )
ここで、
【数24】
【0222】
である。再暗号化鍵R
ijL=(R
ijL1,R
ijL2,R
ijL3,R
ijL4,R
ijL5 )は、分子部分と分母部分とを有するベキ指数を含んでいる。なお、G
1、G
2、G
Tそれぞれについて、加法群と想定した記法で表す場合、再暗号化鍵は、ベキ指数に代えて、分子部分と分母部分とを有するスカラーを含む。ベキ指数(又はスカラー)の分子部分は、各システム固有値(h,h
1,h
2)間の関係性を定める複数の秘密値(α,β)と各乱数(θ,n)とのうちの少なくとも一つを作用させた第2秘密鍵(θx
j,α(θ−n−1)y
j,nx
j,βy
j)の線形結合の形を有している。本実施例では、ベキ指数(又はスカラー)の分子部分は、各システム固有値(h,h
1,h
2)間の関係性を定める複数の秘密値(α,β)と各乱数(θ,n)とのうちの少なくとも一つによりマスクした第2秘密鍵(θx
j,α(θ−n−1)y
j,nx
j,βy
j)の線形結合の形を有している。これにより、第2秘密鍵が秘匿され、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。ベキ指数(又はスカラー)の分母部分は、再暗号化鍵生成装置30の秘密鍵sk
i(第1秘密鍵)からなる。
【0223】
(4)再暗号化処理
再暗号化装置40の再暗号化処理部44は、公開パラメータpar、一時データ記憶部42内の暗号文データC
iに含まれている時間パラメータL、及び再暗号化鍵生成装置30の公開鍵pk
iを用い、一時データ記憶部42内の暗号文データC
iを次の検証式により検証する(ST41)。
【数25】
【0224】
なお、式(a4)の7番目の検証式について、使い捨て署名σの署名対象データとして時間パラメータLが含まれていない場合、署名対象データを暗号化データC
3,C
41として使い捨て署名σの検証を行う。これは、後述の使い捨て署名σの検証処理においても同様である。
【0225】
ここで、式(a4)の7つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0226】
検証が成功した場合(又はステップST41の検証処理をスキップした場合)、再暗号化パラメータ生成部45は、4つの乱数s,t,k,π∈Z
p*を生成して再暗号化処理部44に送出する。
【0227】
再暗号化処理部44は、これらの乱数s,t,k,π、一時データ記憶部42に記憶されている、暗号文データC
i、再暗号化鍵R
ijL、再暗号化鍵生成装置30の公開鍵pk
i、及び公開パラメータparを用いて、次式に示すように、再暗号化データC
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
2F’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FYを生成する(ST42)。
【数26】
【0228】
ステップST42の終了後、再暗号化処理部44は、上記全ての再暗号化データC
2X’〜 C
5FYを、暗号文データC
i内の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
2Fと置換して再暗号文データC
j=(L,C
1,C
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
2F’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
41,C
42,σ)を生成し、得られた暗号文データを一時データ記憶部42に書き込む。なお、再暗号文データC
j=(L,C
1,C
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
2F’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
41,C
42,σ)は、後述する復号処理におけるステップST51の検証処理を省略する場合、復号に用いない検証用データ(L,C
1,C
2X’,C
2Y’,C
2Z’,C
2Z1’,C
2F’,C
41,C
42,σ)を省略して、C
j=(C
2X’’,C
2Y’’,C
2Z’’,C
2Z1’’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FY,C
3)としてもよい。この場合、検証用データ(C
2X’,C
2Y’,C
2Z’,C
2Z1’)を生成する処理も省略される。
【0229】
いずれにしても、通信部43は、制御部46に制御されて一時データ記憶部42内の再暗号文データC
jを復号装置50に送信する(ST43)。
【0230】
(5)復号処理
復号装置50の復号処理部54は、秘密鍵記憶部51内の自装置50の秘密鍵sk
jと一時データ記憶部52内の公開パラメータparを用い、一時データ記憶部52内の再暗号文データC
jを次の検証式により検証する(ST51)。
【数27】
【0231】
式(a5)の8つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。このとき,式(a5)の7番目の式を計算するには、秘密鍵x
j,y
jが必要であることに注意する。
【0232】
検証が成功した場合(又はステップST51の検証処理をスキップした場合)、復号処理部54は、秘密鍵記憶部51内の自装置50の秘密鍵sk
jと一時データ記憶部52内の公開パラメータparを用いて、次式に示すように、再暗号文データC
jを復号し、メッセージmを得る(ST52)。
【数28】
【0233】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【0234】
上述したように本実施形態によれば、再暗号化鍵R
ijLを乱数θ,n,δ
x,δ
y、再暗号化鍵生成鍵rk
j、及び時間パラメータLに基づいて生成する構成により、第1の実施形態の効果に加え、復号権限を移譲するか否かを期間毎に決めることができ、よりきめ細かいアクセス制御が可能となる。また、これにより、ある期間において移譲元(
図8の例では、グループ管理者)向けの暗号文についての復号権限を一度移譲先(
図8の例では、例えばユーザA)へ移譲した後でも、次の期間については当該移譲元向けの暗号文についての復号権限を当該移譲先に与えない。つまり、(当該移譲元向けの暗号文についての)当該移譲先の復号権限を無効化することが可能となるため、利便性がより向上したファイル共有システムを提供することができる。
【0235】
[変形例5]
第2の実施形態では、暗号化装置20において暗号文データを生成し、再暗号化装置40において暗号文データを再暗号化して再暗号文データを生成し、復号装置50において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第2の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【0236】
本変形例における暗号化処理と、第2の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置50の識別情報をiとする。この場合、暗号化装置20の通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを復号装置50に送信する(ST24’)。
【0237】
復号装置50は、公開パラメータparと自装置50の秘密鍵sk
iを用いて、暗号化装置20において生成された暗号文データC
iを次の検証式により検証する(ST51’)。
【数29】
【0238】
なお、復号装置50は、公開パラメータparと自装置50の公開鍵pk
iを用いて、暗号化装置20において生成された暗号文データC
iをステップST41と同様に検証しても良い。
【0239】
式(a6)の7つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0240】
検証が成功した場合(又はステップST51’の検証処理をスキップした場合)、復号装置50は、自装置50の秘密鍵sk
iと公開パラメータparを用いて、次式のように暗号文データC
iを復号し、メッセージmを得る(ST52’)。
【数30】
【0241】
[変形例6]
変形例5の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、復号装置50の識別情報をjとしたとき、鍵生成部14が、秘密鍵sk
jと公開パラメータparを用いて、第2の実施形態における鍵セットアップ処理に加え、W’
jを生成し、再暗号化鍵生成装置30の公開鍵をpk
j=(X
j,Y
1j,Z
j,Z
1j,W
j,W’
j)とする(第2の実施形態と比較してW’
jが追加されている)。ここで
【数31】
【0242】
である。本変形例における復号処理は、第2の実施形態における復号処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置50の識別情報をjとする。
【0243】
暗号化装置20の暗号化パラメータ生成部23は、第1の実施形態のステップST21と同様に(ssk,svk)を生成し(ST21’)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0244】
また、暗号化パラメータ生成部23は、7つの乱数r,s,t,k,π,δ
x,δ
y∈Z
p*を生成して暗号文生成部24に送出する。
【0245】
暗号文生成部24は、これらの乱数r,s,t,k,π,δ
x,δ
y、復号装置50の公開鍵pk
j、公開パラメータ、及び時間パラメータLを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
2F’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
41,C
42を生成する(ST22’)。
【数32】
【0246】
ステップST22’の終了後、暗号文生成部24は、ステップST23と同様に、使い捨て署名σを生成する。
【0247】
しかる後、暗号文生成部24は、時間パラメータL、上記全ての暗号化データC
1〜C
42と使い捨て署名σとを含む暗号文データC
j=(L,C
1,C
2X’,C
2X’’,C
2Y’,C
2Y’’,C
2Z’,C
2Z’’,C
2Z1’,C
2Z1’’,C
2F’,C
2F’’,C
5X,C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
41,C
42,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0248】
通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
jを復号装置50に送信する(ST24’)。
【0249】
復号装置50は、暗号化装置20において生成された暗号文データC
jをステップST51と同様に検証する(ST51’)。検証が成功した場合(又はステップST51’の検証処理をスキップした場合)、復号装置50は、秘密鍵sk
jと公開パラメータparを用いて、次式のように暗号文データC
jを復号し、メッセージmを得る(ST52’)。
【数33】
【0250】
[変形例7]
前述のとおり、双線形写像においては、e(g
1g
2,h)=e(g,h
1h
2)という関係が成り立つため、e(g
1g
2,h)をe(g,h
1h
2)に置き換えてもよい。すると、どのアルゴリズムにもg
2が登場しなくなるため、パラメータからg
2を削除してもよい。これにより、データ量を削減することができる。これは、変形例5、変形例6についても同様である。
【0251】
[変形例8]
第2の実施形態では、双線形写像としてe:G
1×G
2→G
Tを用いたが、前述のとおり、双線型写像群G=G
1=G
2、G
Tについて、e:G×G→G
Tとなる写像を用いても良い。この場合、gおよびh(ただしg≠h)を、共にG(G
1=G
2)から選び、あとは第1の実施形態と同様に計算すればよい。さらにこの時、アルゴリズム中のC
42をC
41に置き換え、u
2をu
1に置き換え、v
2をv
1に置き換え、さらに式(a4),式(a5),式(a6)から検証式「e(g,C
42)=e(C
41,h)」を削除してもよい。すると、アルゴリズム中にC
42、u
2、v
2が登場しなくなるため、パラメータからu
2、v
2を削除し、暗号文からC
42を削除してもよい。これにより、データ量を削減することができる。これは、変形例5、変形例6、変形例7についても同様である。
【0252】
以上説明した少なくとも一つの実施形態によれば、第1秘密鍵、第2再暗号化鍵生成鍵及び複数の乱数に基づいて再暗号化鍵を生成する場合に、第2再暗号化鍵生成鍵及び再暗号化鍵としては、次の(A)〜(D)に示す構成を用いている。
【0253】
(A)第2再暗号化鍵生成鍵が複数のシステム固有値及び第2秘密鍵からなる。
【0254】
(B)再暗号化鍵が分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。
【0255】
(C)分子部分は、各システム固有値間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第2秘密鍵の線形結合の形を有する。
【0256】
(D)分母部分は、第1秘密鍵からなる。
【0257】
従って、このような構成により、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【0258】
なお、上記の各実施形態の利用場面について以下に記載する。
【0259】
ファイル共有システムにおいては、前述した通り、サーバに対してファイルデータの秘匿性を保つ方法として以下の三つの方式(1)〜(3)が挙げられる。
【0260】
(1)各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。
【0261】
(2)各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。
【0262】
(3)プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。
【0263】
ここで、(1)の個別鍵方式では、前述した通り、新たにユーザDともファイルを共有したいとき、ユーザAがユーザDの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする必要があるという不都合がある。従って、(1)の方法は、新規ユーザ数や共有ファイル数が多い場合に、新規ユーザ追加時の処理が煩雑となるため、ファイル共有システムに不適である。
【0264】
(2)の共通鍵方式では、前述した通り、ユーザをファイル共有システムから排除する際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要であることや、各ユーザに共通の秘密鍵が漏洩してしまった場合、全ての暗号化ファイルが当該漏洩鍵により復号可能となってしまう不都合がある。このため、(2)の共通鍵方式は、ファイル共有システムに不適である。
【0265】
一方、(3)のプロキシ再暗号化方式では、サーバが再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にすれば、上述した不都合を解決している。このため、(3)のプロキシ再暗号化方式は、ファイル共有システムに好適である。以上のようなプロキシ再暗号化方式は、特に問題は無いが、しいて言えば、サーバが各ユーザの許可なしに再暗号文を作成可能な状態にある。このため、プロキシ再暗号化方式は、安全なファイル共有を実現する観点から、改善の余地がある。これに対し、上記の各実施形態に記載した手法は、サーバと複数のユーザが結託した場合でも、移譲元の許可なく復号権限が再移譲されることを阻止できるため、安全なファイル共有を実現することができる。
【0266】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0267】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0268】
そして、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0269】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0270】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0271】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0272】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0273】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。