(57)【要約】  実施形態の再暗号化鍵生成装置は、第１公開鍵により得られた暗号文データを復号せずに再暗号化して、第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する。前記再暗号化鍵生成装置は、前記第１公開鍵に対応する第１秘密鍵、及び前記第２秘密鍵に対応する第２公開鍵とは異なる第２再暗号化鍵生成鍵を記憶する。前記再暗号化鍵生成装置は、前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて前記再暗号化鍵を生成する。前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなる。前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有する。前記分母部分は、前記第１秘密鍵からなる。
2016051591.tif 000002
【特許請求の範囲】
【請求項１】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段と、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を記憶する第２記憶手段と、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段と
を備え、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする再暗号化鍵生成装置。
【請求項２】
請求項１に記載の再暗号化鍵生成装置において、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されていることを特徴とする再暗号化鍵生成装置。
【請求項３】
請求項２に記載の再暗号化鍵生成装置において、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i を含んでおり（但し、
【数１】
2016051591.tif 000036
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j を含んでおり（但し、
【数２】
2016051591.tif 000037
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数３】
2016051591.tif 000038
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3 を含んでおり（但し、
【数４】
2016051591.tif 000039
）、
前記再暗号化鍵に関する各乱数をθ,ｎで表し、前記再暗号化鍵をＲijで表すとき、
Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）
であり（但し、
【数５】
2016051591.tif 000040
）、
前記再暗号文データをＣjで表すとき（但し、３つの乱数をｓ，ｔ，ｋで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3 を含んでおり（但し、
【数６】
2016051591.tif 000041
で表されることを特徴とする再暗号化鍵生成装置。
【請求項４】
請求項２に記載の再暗号化鍵生成装置において、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi，ｗi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj，ｗj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i，Ｗi を含んでおり（但し、
【数７】
2016051591.tif 000042
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j，Ｗj を含んでおり（但し、
【数８】
2016051591.tif 000043
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）、前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数９】
2016051591.tif 000044
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記位数ｐに対する乗法群をＺP＊で表し、前記再暗号化鍵を更新する期間を示す時間パラメータをＬで表し、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3 を含んでおり（但し、
【数１０】
2016051591.tif 000045
）、
前記再暗号化鍵に関する各乱数をθ，ｎ，δｘ，δｙで表し、前記再暗号化鍵をＲijLで表すとき、
ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）
であり（但し、
【数１１】
2016051591.tif 000046
）、
前記再暗号文データをＣjで表すとき（但し、４つの乱数をｓ，ｔ，ｋ，πで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3 を含んでおり（但し、
【数１２】
2016051591.tif 000047
で表されることを特徴とする再暗号化鍵生成装置。
【請求項５】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置であって、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を記憶する記憶手段と、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする再暗号化装置。
【請求項６】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置であって、
前記第１公開鍵を記憶する記憶手段と、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又はスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする暗号化装置。
【請求項７】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置であって、
前記第２秘密鍵を記憶する記憶手段と、
前記記憶手段内の第２秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又はスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする復号装置。
【請求項８】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置に用いられるプログラムであって、
前記再暗号化鍵生成装置を、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段に書込む手段、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を前記再暗号化鍵生成装置の第２記憶手段に書込む手段、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段、
として機能させ、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されているプログラム。
【請求項１０】
請求項９に記載のプログラムにおいて、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i を含んでおり（但し、
【数１３】
2016051591.tif 000048
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j を含んでおり（但し、
【数１４】
2016051591.tif 000049
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数１５】
2016051591.tif 000050
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3 を含んでおり（但し、
【数１６】
2016051591.tif 000051
）、
前記再暗号化鍵に関する各乱数をθ，ｎで表し、前記再暗号化鍵をＲijで表すとき、
Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）
であり（但し、
【数１７】
2016051591.tif 000052
）、
前記再暗号文データをＣjで表すとき（但し、３つの乱数をｓ，ｔ，ｋで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3 を含んでおり（但し、
【数１８】
2016051591.tif 000053
で表されるプログラム。
【請求項１１】
請求項９に記載のプログラムにおいて、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi，ｗi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj，ｗj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i，Ｗi を含んでおり（但し、
【数１９】
2016051591.tif 000054
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j，Ｗj を含んでおり（但し、
【数２０】
2016051591.tif 000055
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数２１】
2016051591.tif 000056
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記位数ｐに対する乗法群をＺP＊で表し、前記再暗号化鍵を更新する期間を示す時間パラメータをＬで表し、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3 を含んでおり（但し、
【数２２】
2016051591.tif 000057
）、
前記再暗号化鍵に関する各乱数をθ，ｎ，δｘ，δｙで表し、前記再暗号化鍵をＲijLで表すとき、
ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）
であり（但し、
【数２３】
2016051591.tif 000058
）、
前記再暗号文データをＣjで表すとき（但し、４つの乱数をｓ，ｔ，ｋ，πで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3 を含んでおり（但し、
【数２４】
2016051591.tif 000059
で表されるプログラム。
【請求項１２】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に用いられるプログラムであって、
前記再暗号化装置を、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を前記再暗号化装置の記憶手段に書込む手段、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項１３】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置に用いられるプログラムであって、
前記暗号化装置を、
前記第１公開鍵を前記暗号化装置の記憶手段に書込む手段、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項１４】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置に用いられるプログラムであって、
前記復号装置を、
前記第２秘密鍵を前記復号装置の記憶手段に書込む手段、
前記記憶手段内の第２秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラムに関する。
【背景技術】
【０００２】
ユーザがサーバにファイルをアップロードし、複数ユーザ間でそのファイルを共有するファイル共有システムにおいて、サーバに対してファイルデータの秘匿性を保つ方法として以下の三つの方式（１）〜（３）が挙げられる。【０００３】
（１）各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。【０００４】
（２）各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。【０００５】
（３）プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。【０００６】
上記（１）〜（３）の方式において、サーバにファイルをアップロードするユーザをユーザＡとし、ユーザＡがユーザＢ、ユーザＣとファイルを共有するとする。【０００７】
（１）の個別鍵方式では、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。ユーザＡは、（ユーザＢに個別の暗号化鍵である）ユーザＢの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。同様に、ユーザＡは、（ユーザＣに個別の暗号化鍵である）ユーザＣの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。つまり、ユーザＡは、ファイルを共有する全てのユーザそれぞれに対して個別にファイルを暗号化する。【０００８】
（２）の共通鍵方式では、各ユーザに共通の秘密鍵と公開鍵の組を各ユーザが共有する。ユーザＡは、（各ユーザに共通の暗号化鍵である）公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。各ユーザは、同一の秘密鍵を共有している。【０００９】
（３）のプロキシ再暗号化方式では、（１）の個別鍵方式と同様に、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。しかしながら、（１）の個別鍵方式とは異なり、ユーザＡは、ユーザのグループを管理するエンティティ（以下、グループ管理者と呼ぶ）の公開鍵（以下、グループ公開鍵と呼ぶ）でファイルを暗号化すれば良い。サーバは、再暗号化鍵を用いて（ユーザＡがアップロードした）暗号化ファイルを各ユーザだけが復号できる暗号化ファイルにそれぞれ再暗号化する。プロキシ再暗号化方式の詳細は後述する。【００１０】
（１）の個別鍵方式では、新たにユーザＤともファイルを共有したいとき、ユーザＡが（ユーザＤに個別の暗号化鍵である）ユーザＤの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする必要があるという不都合がある。従って、（１）の方法は、新規ユーザ数や共有ファイル数が多い場合に、新規ユーザ追加時の処理が煩雑となるため、ファイル共有システムに不適である。【００１１】
（２）の共通鍵方式では、ある時点から（その時点までファイル共有を許可していた）あるユーザがファイルを共有できないようにする（当該ユーザをファイル共有システムから排除する）際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要であることや、各ユーザに共通の秘密鍵が万が一漏洩してしまった場合、全ての暗号化ファイルが（当該漏洩鍵を入手した者ならば誰でも）復号可能となってしまう不都合がある。このため、（２）の共通鍵方式は、ファイル共有システムに不適である。【００１２】
一方、（３）のプロキシ再暗号化方式では、サーバが再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にすれば、上述した不都合を解決している。このため、（３）のプロキシ再暗号化方式は、ファイル共有システムに好適である。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】R. Hayashi, T. Matsushita, T. Yoshida, Y. Fujii, and K. Okada, "Unforgeability of Re-Encryption Keys against Collusion Attack in Proxy Re-Encryption," In Proc. IWSEC 2011, LNCS 7038, pp. 210-229, Springer-Verlag, 2011.
【非特許文献２】T. Isshiki, N. Manh Ha, and K. Tanaka, "Attacks to the Proxy Re-Encryption Schemes from IWSEC2011," In Proc. IWSEC 2013, LNCS 8231, pp. 290-302, 2013.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
非特許文献１、非特許文献２によると、非特許文献１記載のプロキシ再暗号化方式では、サーバと１人のユーザが結託しても、復号権限を移譲元の許可なく再移譲されることはない。しかしながら、結託するユーザが二人以上の場合にもこの安全性が達成できる方式は開示されていない。【００１５】
本発明が解決しようとする課題は、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止し得る再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１６】
実施形態の再暗号化鍵生成装置は、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する。【００１７】
前記再暗号化鍵生成装置は、第１記憶手段、第２記憶手段及び再暗号化鍵生成手段を備えている。【００１８】
前記第１記憶手段は、前記第１公開鍵に対応する第１秘密鍵を記憶する。【００１９】
前記第２記憶手段は、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を記憶する。【００２０】
前記再暗号化鍵生成手段は、前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する。【００２１】
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなる。【００２２】
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。【００２３】
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有している。【００２４】
前記分母部分は、前記第１秘密鍵からなる。
【図面の簡単な説明】
【００２５】
【図１】図１は、第１の実施形態に係る再暗号化システムの構成を示す模式図である。
【図２】図２は、同実施形態における鍵セットアップ処理の動作を説明するためのシーケンス図である。
【図３】図３は、同実施形態における暗号化処理の動作を説明するためのシーケンス図である。
【図４】図４は、同実施形態における再暗号化鍵生成処理の動作を説明するためのシーケンス図である。
【図５】図５は、同実施形態における再暗号化処理の動作を説明するためのシーケンス図である。
【図６】図６は、同実施形態における復号処理の動作を説明するためのシーケンス図である。
【図７】図７は、同実施形態におけるファイル共有システムの構成を例示する図である。
【図８】図８は、同実施形態におけるファイル共有システムの模式図である。
【図９】図９は、同実施形態におけるファイル共有システムの構成を例示する図である。
【図１０】図１０は、同実施形態におけるファイル共有システムの構成を例示する図である。
【図１１】図１１は、同実施形態における再暗号化鍵生成装置の構成を示す模式図である。
【発明を実施するための形態】
【００２６】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、図１に示すように、予めネットワーク又は非一時的なコンピュータ読み取り可能な記憶媒体（non-transitory computer-readable storage medium）Ｍ１〜Ｍ５からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、対応する装置の機能を実現させるためのプログラムが用いられる。
【００２７】
（第１の実施形態）
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の５つの関数（以下、アルゴリズムともいう）からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【００２８】
（鍵生成）KeyGen（λ）→（ｐｋ，ｓｋ）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータλが入力されると、公開鍵ｐｋと秘密鍵ｓｋの組（ｐｋ，ｓｋ）を出力する。
【００２９】
（暗号化）Enc（ｐｋA，ｍ）→ＣA 
暗号化アルゴリズムEncは、ユーザＡの公開鍵ｐｋAとメッセージｍが入力されると、ユーザＡ宛の暗号文ＣAを出力する。
【００３０】
（復号）Dec（ｓｋA，ＣA）→ｍ
復号アルゴリズムDecは、ユーザＡの秘密鍵ｓｋAと、ユーザＡ宛の暗号文ＣAとが入力されると、メッセージｍを出力する。
【００３１】
（再暗号化鍵生成）ReKeyGen（ｐｋA，ｓｋA，ｐｋB，ｓｋB）→ｒｋA→B 
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザＡの公開鍵ｐｋA、ユーザＡの秘密鍵ｓｋA、ユーザＢの公開鍵ｐｋB、ユーザＢの秘密鍵ｓｋBが入力されると、再暗号化鍵ｒｋA→Bを出力する。
【００３２】
（再暗号化）ReEnc（ｒｋA→B，ＣA）→ＣB 
再暗号化アルゴリズムReEncは、再暗号化鍵ｒｋA→Bと、ユーザＡ宛の暗号文ＣAとが入力されると、ユーザＢ宛の暗号文ＣBを出力する。
【００３３】
以上が基本的なモデルである。但し、再暗号化の実現方式に応じて、関数への入力が異なるモデルや、上記以外の関数や鍵を含むモデルも考えられている。
【００３４】
例えば、本実施形態に示す再暗号化方式のように、暗号化、復号、再暗号化鍵生成、再暗号化の各関数の入力として公開パラメータ（詳しくは後述する）を含んでいても良い。
【００３５】
例えば、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムReKeyGenの入力において、ユーザＢの秘密鍵ｓｋBを不要とした非相互作用的（non-interactive）と呼ばれるモデルが考えられている。また、ユーザＡの秘密鍵ｓｋAに代えて、ユーザＢ宛の再暗号化鍵ｒｋA→BとユーザＣの秘密鍵ｓｋCとが入力されるモデルなども考えられている。
【００３６】
また、再暗号化鍵ｒｋA→Bで暗号文ＣA→ＣBの再暗号化を行える一方で、その逆の暗号文ＣB→ＣAの変換を行えない一方向性（unidirectional）と呼ばれるモデル、逆の変換も行える双方向性（bidirectional）と呼ばれるモデルなども知られている。なお、双方向性モデルでは、再暗号化鍵ｒｋA→BをｒｋA⇔Bと表すことがある。
【００３７】
さらに、公開鍵暗号の中でもＩＤベース暗号に基づく方式も考えられている。その場合、マスター鍵生成のための関数セットアップ（Setup）が増え、鍵生成アルゴリズムKeyGenの入力にマスター鍵とＩＤが追加される。ＩＤベース暗号において、公開鍵ｐｋはＩＤそのものである。
【００３８】
また、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムReKeyGenにおいて、ユーザＢの公開鍵ｐｋBに代えて、ユーザＢの再暗号化鍵生成鍵ｒｋBを入力するようにしても良い。この場合、鍵生成アルゴリズムKeyGenと再暗号化鍵生成アルゴリズムReKeyGenは、以下のように表される。
【００３９】
（鍵生成）KeyGen（λ）→（ｐｋ，ｓｋ，ｒｋ，ｐａｒ）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータλが入力されると、公開鍵ｐｋ、秘密鍵ｓｋ、及び再暗号化鍵生成鍵ｒｋの組（ｐｋ，ｓｋ，ｒｋ）と公開パラメータｐａｒを出力する。なお、本実施形態では、この処理を鍵セットアップ処理と呼ぶ。これは後述する実施形態や変形例においても同様である。
【００４０】
（再暗号化鍵生成）ReKeyGen（ｓｋA，ｒｋB，ｐａｒ）→ｒｋA→B 
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザＡの秘密鍵ｓｋA、ユーザＢの再暗号化鍵生成鍵ｒｋB、公開パラメータｐａｒが入力されると、再暗号化鍵ｒｋA→Bを出力する。
【００４１】
また、本実施形態に示す再暗号化方式のように、再暗号化アルゴリズムReEncの入力として、ユーザＡの公開鍵ｐｋAと公開パラメータｐａｒを追加しても良い。この場合、再暗号化アルゴリズムReEncは、以下のように表される。
【００４２】
（再暗号化）ReEnc（ｒｋA→B，ＣA，ｐｋA，ｐａｒ）→ＣB 
再暗号化アルゴリズムReEncは、再暗号化鍵ｒｋA→Bと、ユーザＡ宛の暗号文ＣAと、ユーザＡの公開鍵ｐｋAと、公開パラメータｐａｒとが入力されると、ユーザＢ宛の暗号文ＣBを出力する。
【００４３】
次に、本実施形態に係るファイル共有システムの構成について図７を用いて説明する。ファイル共有システムは、サービスを提供するサービス提供者の有する情報処理装置であるサーバＳｖと、当該サービスの利用者であるユーザの有する情報処理装置であるユーザ装置Ａ，Ｂ，Ｃ，…（以下、ユーザＡ，Ｂ，Ｃ，…と略記する場合もある。また、第１ユーザ装置，第２ユーザ装置，…と呼ぶこともある。）とを備えている。サーバＳｖと、ユーザ装置Ａ，Ｂ，Ｃ，…とは通信網を介して接続されている。通信網とは、例えば、無線ＬＡＮ（Local Area Network）、有線ＬＡＮ、光回線網、電話回線網、イントラネット、イーサネット（登録商標）及びインターネットやこれらの組み合わせである。サーバＳｖは１台のみを設けてもよく、複数台を設けても良い。
【００４４】
図８は、ファイル共有システムの模式図である。このファイル共有システムは、サーバＳｖ、ユーザＡ、ユーザＢ、ユーザＣ、グループ管理者、及びユーザ管理者からなる。ユーザ管理者とは、全ユーザを管理するエンティティである。ユーザ管理者は、ユーザがファイル共有システムにログインできるようにするためのＩＤと初期パスワードを各ユーザに対して発行する。
【００４５】
事前準備として、グループ管理者は秘密鍵ｓｋGrを持っているものとする。また、グループ管理者の公開鍵ｐｋGrはサーバＳｖの公開鍵記憶部１に記憶されているとする。また、各ユーザｉは、秘密鍵ｓｋiと再暗号化鍵生成鍵ｒｋiを持っているものとする。つまり、ユーザＡはｓｋAとｒｋA、ユーザＢはｓｋBとｒｋB、ユーザＣはｓｋCとｒｋCをそれぞれ持っている。なお、サーバＳｖと各ユーザｉは、公開パラメータｐａｒと各ユーザｉの公開鍵ｐｋiを取得可能であるが、ここでは説明を省略し、詳しくは後述する。また、共有しようとする平文のファイルデータをｍと表記する。
【００４６】
ユーザＣは、公開鍵記憶部１に記憶されているグループ管理者の公開鍵ｐｋGrでファイルデータｍを暗号化し、得られた暗号文Ｅ（ｐｋGr，ｍ）をサーバＳｖへアップロードする。ここで、Ｅ（ＰＫ，Ｍ）とは、公開鍵ＰＫを用いて平文Ｍを暗号化した暗号文を表す。サーバＳｖは、暗号文記憶部２においてこの暗号文を保管する。
【００４７】
今、ユーザＡがファイルデータｍの共有を承諾したとする。ユーザＡは、グループ管理者へユーザＡの再暗号化鍵生成鍵ｒｋAを送信する。グループ管理者は、グループ管理者の秘密鍵ｓｋGrとユーザＡの再暗号化鍵生成鍵ｒｋAを用いて、グループ管理者宛の暗号文Ｅ（ｐｋGr，ｍ）をユーザＡ宛の暗号文Ｅ（ｐｋA，ｍ）に再暗号化する再暗号化鍵ｒｋGr→Aを生成する。グループ管理者は、生成した再暗号化鍵ｒｋGr→AをサーバＳｖへ送信する。サーバＳｖは、再暗号化鍵記憶部３においてこの再暗号化鍵ｒｋGr→Aを保管する。
【００４８】
ユーザＡは、サーバＳｖに対して暗号文Ｅ（ｐｋGr，ｍ）の再暗号化の要求を送信する。サーバＳｖは、ユーザＡから受けた要求に対し、再暗号化鍵記憶部３に記憶されているユーザＡ宛の再暗号化鍵ｒｋGr→Aを用いて、暗号文Ｅ（ｐｋGr，ｍ）をユーザＡ宛の再暗号文Ｅ（ｐｋA，ｍ）に再暗号化し、得られた再暗号文Ｅ（ｐｋA，ｍ）をユーザＡに送信する。ここで、再暗号文とは、暗号文を再暗号化した暗号文である。
【００４９】
ユーザＡは、サーバＳｖからダウンロードした再暗号文Ｅ（ｐｋA，ｍ）を自身が保有する秘密鍵ｓｋAで復号し、得られたファイルデータｍを利用する。
【００５０】
以上のようなファイル共有システムは、ユーザＣによる暗号化からユーザＡによる復号までの間、ファイルデータｍが一度も復号されないため、ファイル共有の過程における情報の漏洩を阻止することができる。
【００５１】
また、ユーザＣは、暗号文をアップロードする時点で、どのユーザとファイル共有するかを決定する必要がない。つまり、ユーザＣは、ファイルデータｍをグループ管理者の公開鍵ｐｋGrで暗号化すれば良く、暗号化に関して管理すべき鍵がグループ管理者の公開鍵ｐｋGrのみで良いので、鍵管理のコストを低減させることができる。
【００５２】
本ファイル共有システムにおいて、サーバＳｖは、暗号文Ｅ（ｐｋGr，ｍ）を復号するための復号鍵sｋGrを持たない。従って、サーバＳｖはこの暗号文を復号できない。これにより、不正なサーバＳｖが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバＳｖの厳重な管理が不要となり、サーバＳｖの管理コストの低減に繋がる。
【００５３】
プロキシ再暗号化方式では、移譲元（上述の例ではグループ管理者）宛の暗号文を移譲先（上述の例ではユーザＡ）宛の暗号文に再暗号化することにより、暗号文の復号権限が移譲先へ移譲される。ここで、プロキシ再暗号化方式では、再暗号化鍵生成アルゴリズムReKeyGenの入力に、（移譲先の秘密鍵は含まれず）移譲先の公開鍵が含まれる。このため、例えばユーザｉが、ユーザＡの公開鍵ｐｋAを用いて別のファイルデータｍ’を暗号化してユーザＡ宛の暗号文Ｅ（ｐｋA，ｍ’）を生成できるようにするために、ユーザＡの公開鍵ｐｋAは（例えばシステムを立ち上げる際など）予め公開される。
【００５４】
一方、ユーザＡが暗号文の復号権限のユーザＡへの移譲を承諾していない場合でも、ユーザＡの公開鍵ｐｋAが既に公開されているため、グループ管理者は再暗号化鍵ｒｋGr→Aを生成できてしまう。従って、ユーザＡの承諾なく再暗号化（つまり、暗号文の復号権限のユーザＡへの移譲）を行われてしまう可能性がある。
【００５５】
それに対して、本ファイル共有システムにおいては、移譲先であるユーザＡがユーザＡの再暗号化鍵生成鍵ｒｋAをグループ管理者に送信しなければ、グループ管理者は再暗号化鍵ｒｋGr→Aを生成できない。従って、移譲先の承諾なく再暗号化（つまり、暗号文の復号権限の当該移譲先への移譲）を行えないようにすることができる。
【００５６】
ユーザＢがファイル共有を行う際も上記と同様である。
【００５７】
図１は第１の実施形態に係る再暗号化システムの構成を示す模式図である。（図１と図８の対応関係については後述する。）この再暗号化システムは、鍵生成装置１０、暗号化装置２０、再暗号化鍵生成装置３０、再暗号化装置４０及び復号装置５０を備えている。ここで、鍵生成装置１０は、セキュリティパラメータに基づいて、再暗号化システムの公開パラメータ及び各装置３０，５０の公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。ここで、再暗号化鍵生成鍵は、各装置３０，５０の秘密鍵に対応する公開鍵とは異なる鍵である。なお、「再暗号化鍵生成鍵」の用語は、例えば、「再暗号化鍵生成データ」又は「再暗号化鍵生成許可データ」等といった所望の名称に読み替えてもよい。
【００５８】
暗号化装置２０は、再暗号化鍵生成装置３０の秘密鍵に対応する公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データを再暗号化装置４０に送信する。
【００５９】
再暗号化鍵生成装置３０は、再暗号化鍵生成装置３０の秘密鍵、復号装置５０の再暗号化鍵生成鍵、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵を再暗号化装置４０に送信する。なお、復号装置５０の再暗号化生成鍵は、復号装置５０の秘密鍵に対応する公開鍵とは異なる。また、本実施形態では、再暗号化鍵が、再暗号化鍵生成装置３０の秘密鍵と、復号装置５０の再暗号化鍵生成鍵と、公開パラメータと、複数の乱数とに基づいて生成される。但し、再暗号化鍵の生成の際に、乱数を直接用いることは必須ではなく、乱数に基づいて生成していればよい。例えば、乱数θを直接用いずに、乱数θ（＝θ1＋θ2）に基づく値「θ1＋θ2」を用いて再暗号化鍵を生成してもよい。
【００６０】
再暗号化装置４０は、再暗号化鍵生成装置３０の公開鍵、公開パラメータ、及び再暗号化鍵生成装置３０から受けた再暗号化鍵に基づいて、暗号化装置２０から受けた暗号文データを検証処理すると共に、暗号化装置２０から受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データを復号装置５０に送信する。但し、検証処理は必須ではなく、省略してもよい。
【００６１】
復号装置５０は、自装置５０の秘密鍵と公開パラメータに基づいて、再暗号化装置４０から受けた再暗号文データを検証処理すると共に、再暗号化装置４０から受けた再暗号文データを復号処理して平文データを得る。但し、検証処理は必須ではなく、省略してもよい。なお、鍵生成装置１０、暗号化装置２０、再暗号化鍵生成装置３０、再暗号化装置４０及び復号装置５０は、それぞれ複数台が設けられていてもよいが、ここでは一台ずつ設けられている場合を例に挙げて述べる。また、暗号化装置２０は、暗号化装置２０の公開鍵と公開パラメータを用いて平文データを暗号化して得られた暗号文データを再暗号化装置４０に送信しても良い。この場合、鍵生成装置１０は、公開パラメータ及び各装置２０，５０の公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。再暗号化鍵生成装置３０は、暗号化装置２０の秘密鍵と、復号装置５０の再暗号化鍵生成鍵と、公開パラメータと、複数の乱数とを用いて再暗号化鍵を生成し、得られた再暗号化鍵を再暗号化装置４０に送信する。
【００６２】
図１と図８の対応関係について説明する。各装置１０〜５０は、当該処理を行うエンティティにより保持される。ユーザが自身の公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する場合、当該ユーザは鍵生成装置１０を保持する。なお、例えば、ユーザ管理者又はグループ管理者がユーザの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する場合、ユーザ管理者又はグループ管理者が鍵生成装置１０を保持する。ユーザは、暗号化装置２０、復号装置５０、又は両方を保持する。グループ管理者は、再暗号化鍵生成装置３０を保持する。なお、例えば、ユーザ管理者又はサーバＳｖが再暗号化鍵を生成する場合、ユーザ管理者又はサーバＳｖが再暗号化鍵生成装置３０を保持する。サーバＳｖは、再暗号化装置４０を保持する。図８に例示したファイル共有システムにおいては、サーバＳｖが公開鍵記憶部１を保持し、暗号化を行うユーザＣは、公開鍵記憶部１から暗号化に用いる公開鍵を取得しているが、これに限らず、後述するように、ユーザＣは（暗号化に用いる公開鍵を生成した）鍵生成装置１０から暗号化に用いる公開鍵を取得しても良い。また、サーバＳｖは、ユーザＣが生成した暗号文Ｅ（ｐｋGr，ｍ）を暗号文記憶部２において保管するが、暗号文記憶部２は再暗号化装置４０に含まれていても良いし、再暗号化装置４０に含まれない外部の記憶装置であっても良い。
【００６３】
各エンティティは、鍵生成装置１０、暗号化装置２０、再暗号化鍵生成装置３０、再暗号化装置４０及び復号装置５０の一部又は全部を保持しても良い。つまり、どのエンティティがどの装置を保持するかについては、上述の例に限定されるものではなく、様々なバリエーションが考えられる。また、ユーザ管理者とグループ管理者が同一の場合もあるし、異なる場合もある。また、ユーザがユーザ管理者、グループ管理者又は両者を兼ねる場合も兼ねない場合もある。また、ユーザ管理者又はグループ管理者がユーザを兼ねる場合も兼ねない場合もある。また、各ユーザが用いる各ユーザ装置は、第１ユーザ装置、第２ユーザ装置、…と呼んでもよい。同様に、各ユーザ装置の公開鍵、秘密鍵、及び再暗号化鍵生成鍵は、第１ユーザ装置の第１公開鍵、第１秘密鍵、及び第１再暗号化鍵生成鍵、第２ユーザ装置の第２公開鍵、第２秘密鍵、及び第２再暗号化鍵生成鍵、…と呼んでもよい。
【００６４】
また、例えば、図９、図１０にそれぞれ示すように、各エンティティが各装置を保持しても良い。図９において、サーバＳｖ２は鍵生成装置１０を保持し、公開パラメータ、ユーザＡの公開鍵と秘密鍵の組と再暗号化鍵生成鍵、及びユーザＢの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する。サーバＳｖ２は、公開パラメータ、ユーザＡの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザＡに渡し、公開パラメータ、ユーザＢの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザＢに渡し、公開パラメータ、ユーザＡの公開鍵をサーバＳｖ１に渡す。ユーザＡは暗号化装置２０を保持し、ユーザＡの公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データをサーバＳｖ１に送信する。サーバＳｖ２は再暗号化鍵生成装置３０を保持し、ユーザＡの秘密鍵、ユーザＢの再暗号化鍵生成鍵、公開パラメータ、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵をサーバＳｖ１に渡す。サーバＳｖ１は再暗号化装置４０を保持し、サーバＳｖ２から受けたユーザＡの公開鍵、公開パラメータ、及び再暗号化鍵に基づいて、ユーザＡから受けた暗号文データを検証処理すると共に、ユーザＡから受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データをユーザＢに渡す。ユーザＢは復号装置５０を保持し、ユーザＢの秘密鍵と公開パラメータに基づいて、サーバＳｖ１から受けた再暗号文データを検証処理すると共に、サーバＳｖ１から受けた再暗号文データを復号処理して平文データを得る。なお、各エンティティ間のデータの授受は、有線通信又は無線通信等の電気的な通信手段に限らず、例えば、再暗号化鍵生成鍵、再暗号化鍵、暗号文データ又は再暗号文データ等のデータを記憶した記憶媒体をオフラインで配送又は手渡しする物理的な通信手段を用いてもよい。あるいは、各エンティティ間のデータの授受は、電気的な通信手段と、物理的な通信手段とを組合せて用いてもよい。
【００６５】
図１０において、ユーザＡは鍵生成装置１０を保持し、公開パラメータ、ユーザＡの公開鍵と秘密鍵の組と再暗号化鍵生成鍵、及びユーザＢの公開鍵と秘密鍵の組と再暗号化鍵生成鍵を生成する。ユーザＡは、公開パラメータ、ユーザＢの公開鍵と秘密鍵の組と再暗号化鍵生成鍵をユーザＢに渡し、公開パラメータ、ユーザＡの公開鍵をサーバＳｖ１に渡す。ユーザＡは暗号化装置２０を保持し、ユーザＡの公開鍵と公開パラメータを用いて平文データを暗号化し、得られた暗号文データをサーバＳｖ１に送信する。ユーザＡは再暗号化鍵生成装置３０を保持し、ユーザＡの秘密鍵、ユーザＢの再暗号化鍵生成鍵、公開パラメータ、及び複数の乱数に基づいて再暗号化鍵を生成し、得られた再暗号化鍵をサーバＳｖ１に渡す。サーバＳｖ１は再暗号化装置４０を保持し、ユーザＡから受けたユーザＡの公開鍵、公開パラメータ、及び再暗号化鍵に基づいて、ユーザＡから受けた暗号文データを検証処理すると共に、ユーザＡから受けた暗号文データを復号せずに再暗号化し、得られた再暗号文データをユーザＢに渡す。ユーザＢは復号装置５０を保持し、ユーザＢの秘密鍵と公開パラメータに基づいて、サーバＳｖ１から受けた再暗号文データを検証処理すると共に、サーバＳｖ１から受けた再暗号文データを復号処理して平文データを得る。
【００６６】
続いて、各装置１０〜５０の構成を具体的に説明する。
【００６７】
鍵生成装置１０は、鍵生成パラメータ記憶部１１、一時データ記憶部１２、公開パラメータ生成部１３、鍵生成部１４、通信部１５及び制御部１６を備えている。
【００６８】
ここで、鍵生成パラメータ記憶部１１は、鍵生成パラメータを記憶する記憶装置である。
【００６９】
一時データ記憶部１２は、各生成部１３，１４の処理途中及び処理結果などの一時的なデータ（以下、一時データともいう）を記憶する記憶装置である。
【００７０】
公開パラメータ生成部１３は、鍵生成の公開パラメータを生成する。
【００７１】
鍵生成部１４は、公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を生成する。
【００７２】
通信部１５は、他の装置２０〜５０と通信するための通信インタフェースであり、例えば、制御部１６に制御されて一時データ記憶部１２内の公開パラメータ、各３０，５０の公開鍵・秘密鍵のペア及び再暗号化鍵生成鍵を当該各装置３０，５０に送信する機能と、制御部１６に制御されて一時データ記憶部１２内の再暗号化鍵生成装置３０の公開鍵を暗号化装置２０に送信する機能と、制御部１６に制御されて一時データ記憶部１２内の公開パラメータと再暗号化鍵生成装置３０の公開鍵を再暗号化装置４０に送信する機能と、をもっている。なお、以下の説明では、送受信時の冗長な記載を避ける観点から、送受信の際に、通信部１５を介する旨の記載を省略する場合がある。これは他の装置２０〜５０の通信部についても同様である。
【００７３】
制御部１６は、図２に示す動作を実行するように、各部１１〜１５を制御する機能をもっている。
【００７４】
暗号化装置２０は、一時データ記憶部２１、通信部２２、暗号化パラメータ生成部２３、暗号文生成部２４及び制御部２５を備えている。
【００７５】
ここで、一時データ記憶部２１は、鍵生成装置１０から受けた公開パラメータと再暗号化鍵生成装置３０の公開鍵や、各生成部２３，２４の処理途中及び処理結果などの一時的なデータを記憶する記憶装置である。
【００７６】
通信部２２は、他の装置１０，３０〜５０と通信するための通信インタフェースであり、例えば、鍵生成装置１０から受けた公開パラメータ及び再暗号化鍵生成装置３０の公開鍵を取得して一時データ記憶部２１に書き込む機能や、制御部２５に制御されて一時データ記憶部２１内の暗号文データを再暗号化装置４０に送信する機能をもっている。
【００７７】
暗号化パラメータ生成部２３は、暗号化パラメータを生成する機能をもっている。
【００７８】
暗号文生成部２４は、一時データ記憶部２１から読み出した公開パラメータ及び再暗号化鍵生成装置３０の公開鍵（第１ユーザ装置の第１公開鍵）を用いて平文データを暗号化することにより、暗号文データを生成する機能と、得られた暗号文データを一時データ記憶部２１に書き込む機能とをもっている。
【００７９】
制御部２５は、図３に示す動作を実行するように、各部２１〜２４を制御する機能をもっている。
【００８０】
再暗号化鍵生成装置３０は、秘密鍵記憶部３１、一時データ記憶部３２、通信部３３、再暗号化鍵生成部３４、制御部３５及び乱数生成部３６を備えている。
【００８１】
秘密鍵記憶部３１は、鍵生成装置１０から受けた再暗号化鍵生成装置３０の秘密鍵を記憶する記憶装置である。
【００８２】
一時データ記憶部３２は、鍵生成装置１０から受けた公開パラメータと復号装置５０の再暗号化鍵生成鍵や、再暗号化鍵生成部３４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００８３】
通信部３３は、他の装置１０，２０，４０，５０と通信するための通信インタフェースであり、例えば、鍵生成装置１０から受けた公開パラメータ及び復号装置５０の再暗号化鍵生成鍵を取得して一時データ記憶部３２に書き込む機能や、制御部３５に制御されて一時データ記憶部３２内の再暗号化鍵を再暗号化装置４０に送信する機能をもっている。
【００８４】
再暗号化鍵生成部３４は、秘密鍵記憶部３１から読み出した再暗号化鍵生成装置３０の秘密鍵（第１ユーザ装置の第１秘密鍵）と、一時データ記憶部３２から読み出した公開パラメータ及び復号装置５０の再暗号化鍵生成鍵（第２ユーザ装置の第２再暗号化鍵生成鍵）と、乱数生成部３６により生成された複数の乱数とに基づいて再暗号化鍵を生成する機能と、この再暗号化鍵を一時データ記憶部３２に書き込む機能とをもっている。
【００８５】
ここで、第２再暗号化鍵生成鍵は、公開パラメータ（複数のシステム固有値）及び復号装置５０の秘密鍵（第２ユーザ装置の第２秘密鍵）からなる。
【００８６】
再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含んでいる。
【００８７】
分子部分は、公開パラメータ（各システム固有値）間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第２秘密鍵の線形結合の形を有する。
【００８８】
分母部分は、再暗号化鍵生成装置３０の秘密鍵（第１ユーザ装置の第１秘密鍵）からなる。
【００８９】
制御部３５は、図４に示す動作を実行するように、各部３１〜３４，３６を制御する機能をもっている。
【００９０】
乱数生成部３６は、乱数を生成して再暗号化鍵生成部３４に送出する機能をもっている。
【００９１】
なお、再暗号化鍵生成装置３０は、鍵生成装置１０から自装置３０の再暗号化鍵生成鍵を受信する場合、鍵生成装置１０から受けた自装置３０の再暗号化鍵生成鍵を記憶する記憶装置である再暗号化鍵生成鍵記憶部をもつ（図示せず）。
【００９２】
再暗号化装置４０は、再暗号化鍵記憶部４１、一時データ記憶部４２、通信部４３、再暗号化処理部４４、再暗号化パラメータ生成部４５及び制御部４６を備えている。
【００９３】
再暗号化鍵記憶部４１は、再暗号化鍵生成装置３０から受けた再暗号化鍵を記憶する記憶装置である。
【００９４】
一時データ記憶部４２は、鍵生成装置１０から受けた公開パラメータと再暗号化鍵生成装置３０の公開鍵や、再暗号化処理部４４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００９５】
通信部４３は、他の装置１０〜３０，５０と通信するための通信インタフェースであり、例えば、鍵生成装置１０から受けた公開パラメータ及び再暗号化鍵生成装置３０の公開鍵を取得して一時データ記憶部４２に書き込む機能や、暗号化装置２０から受けた暗号文データを再暗号化処理部４４に送出する機能と、制御部４６に制御されて一時データ記憶部４２内の再暗号文データを復号装置５０に送信する機能とをもっている。
【００９６】
再暗号化処理部４４は、暗号化装置２０から暗号文データを受けると、再暗号化鍵記憶部４１から読み出した再暗号化鍵、及び一時データ記憶部４２から読み出した公開パラメータと再暗号化鍵生成装置３０の公開鍵を用いて当該暗号文データを復号せずに再暗号化することにより、再暗号文データを得る機能と、得られた再暗号文データを一時データ記憶部４２に書き込む機能とをもっている。
【００９７】
制御部４６は、図５に示す動作を実行するように、各部４１〜４５を制御する機能をもっている。
【００９８】
復号装置５０は、秘密鍵記憶部５１、一時データ記憶部５２、通信部５３、復号処理部５４、再暗号化鍵生成鍵記憶部５５、及び制御部５６を備えている。
【００９９】
秘密鍵記憶部５１は、鍵生成装置１０から受けた自装置５０の秘密鍵を記憶する記憶装置である。
【０１００】
一時データ記憶部５２は、鍵生成装置１０から受けた公開パラメータや、復号処理部５４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【０１０１】
通信部５３は、他の装置１０〜４０と通信するための通信インタフェースであり、例えば、鍵生成装置１０から受けた自装置５０の秘密鍵を取得して秘密鍵記憶部５１に書き込む機能と、鍵生成装置１０から受けた公開パラメータを取得して一時データ記憶部５２に書き込む機能と、再暗号化装置４０から受けた再暗号化データを復号処理部５４に送出する機能とをもっている。
【０１０２】
復号処理部５４は、再暗号化装置４０から再暗号文データを受けると、秘密鍵記憶部５１から読み出した当該復号装置５０の秘密鍵（第２ユーザ装置の第２秘密鍵）、及び一時データ記憶部５２から読み出した公開パラメータを用いて、当該再暗号文データを復号処理することにより、平文データを得る機能と、得られた平文データを一時データ記憶部５２に書き込む機能とをもっている。
【０１０３】
再暗号化鍵生成鍵記憶部５５は、鍵生成装置１０から受けた自装置５０の再暗号化鍵生成鍵を記憶する記憶装置である。
【０１０４】
制御部５６は、図６に示す動作を実行するように、各部５１〜５５を制御する機能をもっている。
【０１０５】
なお、本実施形態では、例えば公開パラメータは各装置１０〜５０の一時データ記憶部に記憶される。しかしこれに限らず、公開パラメータは各装置１０〜５０の（一時データ記憶部とは別の）記憶部に記憶されていても良い。このように、各装置１０〜５０の一時データ記憶部に記憶されるデータの内、一時的なデータとして扱わなくてもよいデータは、（一時データ記憶部とは別の）記憶部にそれぞれ記憶されていても良い。また、公開パラメータが複数の要素で構成されている場合、各装置２０〜５０は、公開パラメータの各要素の内、後述する各処理においてそれぞれ必要な要素のみを取得しても良い。これらは後述する実施形態や変形例においても同様である。
【０１０６】
次に、以上のように構成された再暗号化システムの動作を図２乃至図６のシーケンス図を用いて説明する。
【０１０７】
また、以下の動作は（１）鍵セットアップ処理、（２）暗号化処理、（３）再暗号化鍵生成処理、（４）再暗号化処理、（５）復号処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくてもよい。例えば、再暗号化鍵生成は、暗号化処理の前に実行されてもよい。また、再暗号化処理が実行されずに、暗号文データが復号されてもよい。
【０１０８】
（１）鍵セットアップ処理は、鍵生成装置１０により、図２及び以下の各ステップＳＴ１〜ＳＴ８に示すように実行される。
【０１０９】
始めに、鍵生成装置１０の公開パラメータ生成部１３は、予め鍵パラメータ記憶部１１に記憶したセキュリティパラメータλに基づいて、公開パラメータ
【数１】
2016051591.tif 000003
【０１１０】
を生成する、又は外部から入手する（ＳＴ１）。具体的には、公開パラメータ生成部１３は、予め鍵パラメータ記憶部１１に記憶したセキュリティパラメータλに基づいて、位数p＞２λを満たす双線型写像群(bilinear map groups)（Ｇ1，Ｇ2，ＧT）を選択する。ここで、ｐは整数である。ｐは素数であっても良いし、合成数であっても良い。
【０１１１】
公開パラメータ生成部１３は、Ｇ1の元（げん）ｇをＧ1から、Ｇ2の元（げん）ｈをＧ2から、それぞれランダムに選択する。公開パラメータ生成部１３は、α，β，δ，ωをＺp＊からランダムに選択し、ｇ1＝ｇα，ｇ2＝ｇβ，ｕ1＝ｇδ，ｖ1＝ｇω，ｈ1＝ｈα，ｈ2＝ｈβ，ｕ2＝ｈδ，ｖ2＝ｈωを計算する。
【０１１２】
ここで、ｇαはｇのα乗、すなわち、群Ｇ1においてｇをα個掛けたものを表す。他についても同様である。
【０１１３】
また、ｇ1＝ｇαのとき、αはＧ1におけるｇとｇ1の関係性を定める数（秘密値）であり，群Ｇ1が乗法群の場合、特に「ベキ指数」と呼ばれる。
【０１１４】
なお、Ｚp＊はＺpかつpと互いに素な整数の集合（＝（Ｚ/pＺ）＊）であり、pに対する乗法群Ｚp＊と呼んでもよい。Ｚpは０以上p未満の整数の集合（＝（Ｚ/pＺ）である。
【０１１５】
さらに、公開パラメータ生成部１３は、使い捨て署名（one-time signature）アルゴリズム
【数２】
2016051591.tif 000004
【０１１６】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (1996) pp.462-471, (1996)に詳しい。
【０１１７】
また、双線型写像（ｅと表記する）とは、ｅ：Ｇ1×Ｇ2→ＧTとなる写像であり、以下の３つの性質を満たす。
【０１１８】
１．任意の（ｇ，ｈ）∈Ｇ1×Ｇ2及びａ，ｂ∈Ｚについて、ｅ（ｇａ，ｈｂ）＝ｅ（ｇ，ｈ）ａｂが成り立つ。ここで、Ｚとは整数の集合である。
【０１１９】
２．任意の（ｇ，ｈ）∈Ｇ1×Ｇ2について、ｅ（ｇ，ｈ）が計算可能である。
【０１２０】
３．ｇ，ｈ≠１G1かつｈ≠１G2である場合は常にｅ（ｇ，ｈ）≠１GTが成り立つ。ここで、１G1とはＧ1の単位元であり、１G2とはＧ2の単位元であり、１GTとはＧTの単位元である。
【０１２１】
また、双線型写像群(bilinear map groups)（Ｇ1，Ｇ2，ＧTと表記する）とは、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である。上記の定義は、Ｇ1の元ｇ，ｇ1，ｇ2、Ｇ2の元ｈ，ｈ1，ｈ2、について、ｇ1＝ｇα、ｇ2＝ｇβ、ｈ1＝ｈα、ｈ2＝ｈβとすると、次式が成り立つことも意味する。
【０１２２】
ｅ（ｇ，ｈ1ｈ2）＝ｅ（ｇ，ｈα・ｈβ）＝ｅ（ｇ，ｈα＋β）＝ｅ（ｇ，ｈ）α＋β＝ｅ（ｇ，ｈ）α・ｅ（ｇ，ｈ）β ＝ｅ（ｇα＋β，ｈ）＝ｅ（ｇα・ｇβ，ｈ）＝ｅ（ｇ1ｇ2，ｈ）
この関係より、以降の実施形態において、ｅ（ｇ1ｇ2，ｈ）をｅ（ｇ，ｈ1ｈ2）に置き換えてもよい。なお、Ｇ1の複数の元ｇ，ｇ1，ｇ2，ｕ1，ｖ1、およびＧ2の複数の元ｈ，ｈ1，ｈ2，ｕ2，ｖ2は、予め定められた複数のシステム固定値となっている。α，β，δ，ωは、各システム固有値間の関係性を定める複数の秘密値である。また、「システム固定値」の語は、「固定値」、「元」、「公開パラメータ」又は「システムパラメータ」などと読み替えてもよい。
【０１２３】
また、本明細書では、Ｇ1、Ｇ2、ＧTをともに乗法群と想定した記法を採用しているが、これに限らず、Ｇ1、Ｇ2、ＧTそれぞれについて、加法群と想定した記法で表すことも可能である。つまり、例えば、Ｇ1、Ｇ2を加法群、ＧTを乗法群として表現しても良い。  例えば、Ｇ1、Ｇ2の元が楕円曲線上の点であり、ＧTの元が有限体上の元であっても良い。
【０１２４】
Ｇ1、Ｇ2が加法群の場合、Ｇ1、Ｇ2における演算が、乗算が加算に置き換えられる。例えば、Ｇ1、Ｇ2の元が楕円曲線上の点である場合、Ｇ1、Ｇ2における演算は点加算となる。例えばｇ1は、ｇ1＝αｇと置き換えられる。ここでｇ1＝αｇはｇのα倍、すなわち、群Ｇ1においてｇをα個足したものを表す。他の公開パラメータについても同様である。また、これ以降の数式も同様に置き換えることができる。
【０１２５】
また、ｇ1＝αｇのとき、αはＧ1におけるｇとｇ1の関係性を定める秘密値であり、群Ｇ1が加法群の場合特に「スカラー」と呼ばれる。例えば、Ｇ1、Ｇ2の元が楕円曲線上の点である場合、αｇを求める演算はスカラー倍算とも呼ばれる。
【０１２６】
また、双線形写像においては、Ｇ1の元ｇ，ｇ1，ｇ2、Ｇ2の元ｈ，ｈ1，ｈ2、について、ｇ1＝αｇ、ｇ2＝βｇ、ｈ1＝αｈ、ｈ2＝βｈとすると、次式が成り立つ。
【０１２７】
ｅ（ｇ，ｈ1＋ｈ2）＝ｅ（ｇ，αｈ＋βｈ）＝ｅ（ｇ，（α＋β）ｈ）＝ｅ（ｇ，ｈ）α＋β＝ｅ（ｇ，ｈ）α・ｅ（ｇ，ｈ）β ＝ｅ（（α＋β）ｇ，ｈ）＝ｅ（αｇ＋βｇ，ｈ）＝ｅ（ｇ1＋ｇ2，ｈ）
また、双線型写像として、双線型写像群Ｇ＝Ｇ1＝Ｇ2、ＧTについて、ｅ：Ｇ×Ｇ→ＧTとなる写像を用いても良い。
【０１２８】
続いて、公開パラメータ生成部１３は、生成した公開パラメータｐａｒを一時データ記憶部１２に書き込む。鍵生成装置１０は、一時データ記憶部１２内の公開パラメータｐａｒ＝（λ，ｐ，Ｇ1，Ｇ2，ＧT，ｇ，ｇ1，ｇ2，ｈ，ｈ1，ｈ2，ｕ1，ｕ2，ｖ1，ｖ2，Sig）を公開する（ＳＴ２）。なお、ステップＳＴ１を実行する前に公開パラメータが既に公開されていた場合、その公開パラメータを一時データ記憶部１２に書き込み、ステップＳＴ１及びステップＳＴ２をスキップしても良い。
【０１２９】
また、鍵生成部１４は、再暗号化鍵生成装置３０の識別情報をｉとしたとき、Ｚp＊の元ｘi，ｙi，ｚiをＺp＊からランダムに選択し、再暗号化鍵生成装置３０の秘密鍵ｓｋi＝（ｘi，ｙi，ｚi）とする。そして、鍵生成部１４は、この秘密鍵ｓｋiと公開パラメータｐａｒを用いて再暗号化鍵生成装置３０の公開鍵ｐｋi＝（Ｘi，Ｙ1i，Ｚi，Ｚ1i）を生成する。ここで、
【数３】
2016051591.tif 000005
【０１３０】
である。さらに、鍵生成部１４は、秘密鍵ｓｋiと公開パラメータｐａｒを用いて再暗号化鍵生成鍵ｒｋi＝（Ｔi，Ｔ1i，Ｔ2i）を生成する（ＳＴ３）。ここで、
【数４】
2016051591.tif 000006
【０１３１】
である。
【０１３２】
続いて、鍵生成部１４は、生成した公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を一時データ記憶部１２に書き込む。通信部１５は、制御部１６に制御されて一時データ記憶部１２内の秘密鍵ｓｋiと再暗号化鍵生成鍵ｒｋiを再暗号化鍵生成装置３０に送信する（ＳＴ４）。鍵生成装置１０は、一時データ記憶部１２内の再暗号化鍵生成装置３０の公開鍵ｐｋiを公開する（ＳＴ５）。
【０１３３】
また同様に、鍵生成部１４は、復号装置５０の識別情報をjとしたとき、Ｚp＊の元ｘj，ｙj，ｚjをＺp＊からランダムに選択し、復号装置５０の秘密鍵ｓｋj＝（ｘj，ｙj，ｚj）とする。そして、鍵生成部１４は、この秘密鍵ｓｋjと公開パラメータｐａｒを用いて復号装置５０の公開鍵ｐｋj＝（Ｘj，Ｙ1j，Ｚj，Ｚ1j）を生成する。ここで、
【数５】
2016051591.tif 000007
【０１３４】
である。さらに、鍵生成部１４は、秘密鍵ｓｋjと公開パラメータｐａｒを用いて再暗号化鍵生成鍵ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）を生成する（ＳＴ６）。ここで、
【数６】
2016051591.tif 000008
【０１３５】
である。ステップＳＴ６で生成された再暗号化生成鍵（第２再暗号化生成鍵）ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）は、複数のシステム固定値（ｈ，ｈ1，ｈ2）及び復号装置５０の秘密鍵（第２秘密鍵）からなる。
【０１３６】
続いて、鍵生成部１４は、生成した公開鍵・秘密鍵のペアと再暗号化鍵生成鍵を一時データ記憶部１２に書き込む。通信部１５は、制御部１６に制御されて一時データ記憶部１２内の秘密鍵ｓｋjと再暗号化鍵生成鍵ｒｋjを復号装置５０に送信する（ＳＴ７）。鍵生成装置１０は、一時データ記憶部１２内の復号装置５０の公開鍵ｐｋjを公開する（ＳＴ８）。また、所望により、暗号化装置２０の秘密鍵ｓｋh、公開鍵ｐｋh、及び再暗号化鍵生成鍵ｒｋhについても各ステップＳＴ６〜ＳＴ８と同様の処理を実行して暗号化装置２０に秘密鍵ｓｋhと再暗号化鍵生成鍵ｒｋhを送信し、公開鍵ｐｋhを公開してもよい。また、鍵生成装置１０は、暗号化装置２０、再暗号化鍵生成装置３０、又は復号装置５０に、（再暗号化鍵生成鍵を送信せず）秘密鍵のみを送信しても良い。また、鍵生成装置１０は、暗号化装置２０、再暗号化鍵生成装置３０、又は復号装置５０に、鍵セットアップ処理において生成された全ての公開鍵の内、一部又は全部の公開鍵を送信しても良い。これらは後述する実施形態や変形例においても同様である。
【０１３７】
以上により、鍵セットアップ処理が完了する。以後、各装置２０，３０，４０，５０では、各ステップＳＴ２，ＳＴ５，ＳＴ８で公開された公開パラメータ及び公開鍵を適宜、取得して利用することができる。
【０１３８】
（２）暗号化処理は、暗号化装置２０により、図３及び以下の各ステップＳＴ２１〜ＳＴ２４に示すように実行される。なお、暗号化装置２０は、再暗号化鍵生成装置３０の公開鍵ｐｋiを一時データ記憶部２１に既に記憶していると想定しているが、もし暗号化装置２０が再暗号化鍵生成装置３０の公開鍵ｐｋiを未だ取得していない場合は、暗号化装置２０は、後述するステップＳＴ２２の前に、再暗号化鍵生成装置３０の公開鍵ｐｋiを、例えば鍵生成装置１０から取得すれば良い。同様に、暗号化装置２０は、公開パラメータｐａｒを一時データ記憶部２１に既に記憶していると想定しているが、もし暗号化装置２０が公開パラメータｐａｒを未だ取得していない場合は、暗号化装置２０は、後述するステップＳＴ２１の前に、公開パラメータｐａｒを、例えば鍵生成装置１０から取得すれば良い。
【０１３９】
暗号化装置２０の暗号化パラメータ生成部２３は、公開パラメータｐａｒにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数７】
2016051591.tif 000009
【０１４０】
を生成し（ＳＴ２１）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１４１】
また、暗号化パラメータ生成部２３は、乱数ｒ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１４２】
暗号文生成部２４は、この乱数ｒ、再暗号化鍵生成装置３０の公開鍵ｐｋi、及び公開パラメータｐａｒを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ41，Ｃ42を生成する（ＳＴ２２）。
【数８】
2016051591.tif 000010
【０１４３】
は、署名鍵と署名対象データを入力として、署名を出力する。
【０１４４】
しかる後、暗号文生成部２４は、上記全ての暗号化データＣ1〜Ｃ42と使い捨て署名σとを含む暗号文データＣi＝（Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０１４５】
なお、暗号文データＣi＝（Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ41，Ｃ42，σ）は、後述するステップＳＴ４１における検証処理を省略する場合、復号に用いない検証用データ（Ｃ1，Ｃ41，Ｃ42，σ）を省略して、Ｃi＝（Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3）としてもよい。この場合、検証用データ（Ｃ1，Ｃ41，Ｃ42，σ）を生成する処理も省略される。本実施形態においては、上述したように（また後述するように）検証を省略したり、検証用データの生成を省略したりしてもよいが、これは後述する実施形態や変形例においても同様である。
【０１４６】
いずれにしても通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣiを再暗号化装置４０に送信する（ＳＴ２４）。
【０１４７】
以上により、暗号化処理が完了する。
【０１４８】
（３）再暗号化鍵生成処理は、再暗号化鍵生成装置３０により、図４及び以下の各ステップＳＴ３１〜ＳＴ３３に示すように実行される。なお、再暗号化鍵生成装置３０は、公開パラメータｐａｒを一時データ記憶部３２に既に記憶していると想定しているが、もし再暗号化鍵生成装置３０が公開パラメータｐａｒを未だ取得していない場合は、再暗号化鍵生成装置３０は、後述するステップＳＴ３２の前に、公開パラメータｐａｒを、例えば鍵生成装置１０から取得すれば良い。
【０１４９】
今、復号装置５０（図８の例では、例えばユーザＡ）が、再暗号化鍵生成装置３０（図８の例では、グループ管理者）宛の暗号文を、復号装置５０（図８の例では、例えばユーザＡ）宛の暗号文に再暗号化すること（つまり、暗号文の復号権限のユーザＡへ移譲すること）を承諾したとする。復号装置５０は、再暗号化鍵生成装置３０に、復号装置５０の再暗号化鍵生成鍵ｒｋjを送信する。再暗号化鍵生成装置３０の通信部３３は、制御部３５に制御されて、復号装置５０の再暗号化鍵生成鍵ｒｋjを取得して一時データ記憶部３２に書き込む（ＳＴ３１）。なお、ステップＳＴ３１において、（復号装置５０ではなく）鍵生成装置１０が再暗号化鍵生成装置３０に再暗号化鍵生成鍵ｒｋjを送信しても良い。これは後述する実施形態や変形例においても同様である。
【０１５０】
ここで、一時データ記憶部３２について、図１１に示すように、再暗号化鍵生成装置３０は、一時データ記憶部３２の中に公開パラメータ記憶部３２１と再暗号化鍵生成鍵記憶部３２２を保持し、公開パラメータｐａｒを公開パラメータ記憶部３２１に記憶し、復号装置５０の再暗号化鍵生成鍵ｒｋjを再暗号化鍵生成鍵記憶部３２２に記憶しても良い。また、公開パラメータｐａｒを記憶する公開パラメータ記憶部３２１は、一時データ記憶部３２の外にあっても良い。また、再暗号化鍵生成鍵ｒｋjを記憶する再暗号化鍵生成鍵記憶部３２２は、一時データ記憶部３２の外にあっても良い。これらは後述する実施形態や変形例においても同様である。また、通信部３３は、前述したステップＳＴ４のとき、再暗号化鍵生成装置３０の秘密鍵ｓｋiを鍵生成装置１０から受信して秘密鍵記憶部３１に書き込んでいる。
【０１５１】
乱数生成部３６は、乱数θ，ｎ∈Ｚp＊を生成して再暗号化鍵生成部３４に送出する。
【０１５２】
再暗号化鍵生成部３４は、この乱数θ，ｎ、秘密鍵記憶部３１内の再暗号化鍵生成装置３０の秘密鍵ｓｋi、一時データ記憶部３２内の復号装置５０の再暗号化鍵生成鍵ｒｋj、及び公開パラメータｐａｒを用いて、再暗号化鍵Ｒijを次式に示すように生成する（ＳＴ３２）。
【０１５３】
Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）
ここで、
【数９】
2016051591.tif 000011
【０１５４】
である。再暗号化鍵Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）は、分子部分と分母部分とを有するベキ指数を含んでいる。なお、Ｇ1、Ｇ2、ＧTそれぞれについて、加法群と想定した記法で表す場合、再暗号化鍵は、ベキ指数に代えて、スカラーを含む。ベキ指数（又はスカラー）の分子部分は、各システム固有値（ｈ，ｈ1，ｈ2）間の関係性を定める複数の秘密値（α，β）と各乱数（θ，ｎ）とのうちの少なくとも一つを作用させた第２秘密鍵（θｘj，α(θ−ｎ−１)ｙj，ｎｘj，βｙj）の線形結合の形を有している。本実施例では、ベキ指数（又はスカラー）の分子部分は、各システム固有値（ｈ，ｈ1，ｈ2）間の関係性を定める複数の秘密値（α，β）と各乱数（θ，ｎ）とのうちの少なくとも一つによりマスクした第２秘密鍵（θｘj，α(θ−ｎ−１)ｙj，ｎｘj，βｙj）の線形結合の形を有している。これにより、第２秘密鍵が秘匿され、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。ベキ指数（又はスカラー）の分母部分は、再暗号化鍵生成装置３０の秘密鍵ｓｋi（第１秘密鍵）からなる。
【０１５５】
この時、乱数θ，ｎは、秘密鍵ｓｋiと再暗号化鍵生成鍵ｒｋjのペア毎に固定してもよいし，再暗号化鍵を生成するたびに違う乱数としてもよい。前者の場合、秘密鍵ｓｋiと再暗号化鍵生成鍵ｒｋjのペア毎に、再暗号化鍵は１種類となる。一方、後者の場合、秘密鍵ｓｋiと再暗号化鍵生成鍵ｒｋjのペア毎に、複数種類の再暗号化鍵が生成されることになる。また、Ｒij1のθ部分とｎ部分とを分けてもよい。例えば、Ｒij11＝（ＴjθＴ1jθ）1/xi，Ｒij12＝（Ｔ1j-n-1）1/xiとして、再暗号化鍵Ｒijを（Ｒij11，Ｒij12，Ｒij2，Ｒij3）とする。計算時にＲij11と、Ｒij12とを乗算してＲij1を作成する。また、ここでは乱数を２つ選択しているが、乱数を３つ以上選択してもよい。例えば、乱数θ1、θ2、ｎを選択し、Ｔjθの代わりにＴjθ1Ｔjθ2、Ｔ1jθの代わりにＴ1jθ1Ｔ1jθ2を計算するように置き換えてもよい。例えば、Ｒij31＝（Ｔjθ1Ｔ1jθ）1/zi，Ｒij32＝（Ｔjθ2Ｔ2j）1/ziとして、再暗号化鍵Ｒijを（Ｒij1，Ｒij2，Ｒij31，Ｒij32）とする。計算時にＲij31と、Ｒij32とを乗算してＲij3を作成する。また、Ｒij1の方も、θ部分をθ＝θ1’＋θ2’に分けてもよい。
【０１５６】
しかる後、再暗号化鍵生成部３４は、生成した再暗号化鍵Ｒijを一時データ記憶部３２に書き込む。通信部３３は、制御部３５に制御されて、一時データ記憶部３２内の再暗号化鍵Ｒijを再暗号化装置４０に送信する（ＳＴ３３）。
【０１５７】
以上により、再暗号化鍵生成処理が完了する。
【０１５８】
（４）再暗号化処理は、再暗号化装置４０により、図５及び以下の各ステップＳＴ４１〜ＳＴ４３に示すように実行される。なお、再暗号化装置４０は、再暗号化鍵生成装置３０の公開鍵ｐｋiを一時データ記憶部４２に既に記憶していると想定しているが、もし再暗号化装置４０が再暗号化鍵生成装置３０の公開鍵ｐｋiを未だ取得していない場合は、再暗号化装置４０は、後述するステップＳＴ４１の前に、再暗号化鍵生成装置３０の公開鍵ｐｋiを、例えば再暗号化鍵生成装置３０から取得すれば良い。同様に、再暗号化装置４０は、公開パラメータｐａｒを一時データ記憶部４２に既に記憶していると想定しているが、もし再暗号化装置４０が公開パラメータｐａｒを未だ取得していない場合は、再暗号化装置４０は、後述するステップＳＴ４１の前に、公開パラメータｐａｒを、例えば鍵生成装置１０から取得すれば良い。
【０１５９】
再暗号化装置４０の通信部４３は、ステップＳＴ２４で送信された暗号文データＣiと、ステップＳＴ３３で送信された再暗号化鍵Ｒijとをそれぞれ一時データ記憶部４２に書き込む。
【０１６０】
再暗号化処理部４４は、公開パラメータｐａｒと再暗号化鍵生成装置３０の公開鍵ｐｋiを用い、一時データ記憶部４２内の暗号文データＣiを次の検証式により検証する（ＳＴ４１）。
【数１０】
2016051591.tif 000012
【０１６１】
は、検証鍵を用いて、署名検証データに対する署名を検証し、署名が正当であると判定した場合は“１”を出力し、正当でないと判定した場合は“１”以外（例えば“０”）を出力する。
【０１６２】
従って、式（ａ１）の６番目の検証式は、暗号化データＣ1を検証鍵として用いて、署名対象データである暗号化データＣ3，Ｃ41に対する使い捨て署名σを検証し、使い捨て署名σが正当であると判定されることを表す。
【０１６３】
ここで、式（ａ１）の６つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１６４】
検証が成功した場合（又はステップＳＴ４１の検証処理をスキップした場合）、再暗号化パラメータ生成部４５は、３つの乱数ｓ，ｔ，ｋ∈Ｚp＊を生成して再暗号化処理部４４に送出する。
【０１６５】
再暗号化処理部４４は、これらの乱数ｓ，ｔ，ｋ、一時データ記憶部４２に記憶されている、暗号文データＣi、再暗号化鍵Ｒij、再暗号化鍵生成装置３０の公開鍵ｐｋi、及び公開パラメータｐａｒを用いて、次式に示すように、再暗号化データＣ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Zを生成する（ＳＴ４２）。
【数１１】
2016051591.tif 000013
【０１６６】
ステップＳＴ４２の終了後、再暗号化処理部４４は、上記全ての再暗号化データＣ2X’〜Ｃ5Zを、暗号文データＣi内の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1と置換して再暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた再暗号文データＣjを一時データ記憶部４２に書き込む。なお、再暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ41，Ｃ42，σ）は、後述する復号処理におけるステップＳＴ５１の検証処理を省略する場合、復号に用いない検証用データ（Ｃ1，Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’，Ｃ41，Ｃ42，σ）を省略して、Ｃj＝（Ｃ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3）としてもよい。この場合、検証用データ（Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’）を生成する処理も省略される。
【０１６７】
いずれにしても通信部４３は、制御部４６に制御されて一時データ記憶部４２内の再暗号文データＣjを復号装置５０に送信する（ＳＴ４３）。
【０１６８】
以上により、再暗号化処理が完了する。
【０１６９】
なお、再暗号化処理部４４は、ステップＳＴ４１の検証処理を省略し、ステップＳＴ４２の再暗号化データ生成処理を行ってもよい。また、暗号文データＣiに検証用データ（Ｃ1，Ｃ41，Ｃ42，σ）が含まれていない場合も、再暗号化処理部４４は、ステップＳＴ４１の検証処理を省略し、ステップＳＴ４２の再暗号化データ生成処理を行う。
【０１７０】
（５）復号処理は、復号装置５０により、図６及び以下のステップＳＴ５１及びＳＴ５２に示すように実行される。なお、復号装置５０は、公開パラメータｐａｒを一時データ記憶部５２に既に記憶していると想定しているが、もし復号装置５０が公開パラメータｐａｒを未だ取得していない場合は、復号装置５０は、後述するステップＳＴ５１の前に、公開パラメータｐａｒを、例えば鍵生成装置１０から取得すれば良い。
【０１７１】
復号装置５０の通信部５３は、ステップＳＴ４３で送信された再暗号文データＣjを受信して一時データ記憶部５２に書き込む。
【０１７２】
復号処理部５４は、秘密鍵記憶部５１内の自装置５０の秘密鍵ｓｋjと一時データ記憶部５２内の公開パラメータｐａｒを用い、一時データ記憶部５２内の再暗号文データＣjを次の検証式により検証する（ＳＴ５１）。
【数１２】
2016051591.tif 000014
【０１７３】
式（ａ２）の７つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。このとき，式（ａ２）の５番目の式を計算するには、秘密鍵ｘj，ｙjが必要であることに注意する。
【０１７４】
検証が成功した場合（又はステップＳＴ５１の検証処理をスキップした場合）、復号処理部５４は、秘密鍵記憶部５１内の自装置５０の秘密鍵ｓｋjと一時データ記憶部５２内の公開パラメータｐａｒを用いて、次式に示すように、再暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２）。
【数１３】
2016051591.tif 000015
【０１７５】
以上により、復号処理が完了する。
【０１７６】
なお、復号処理部５４は、ステップＳＴ５１の検証処理を省略し、ステップＳＴ５２の復号処理を行ってもよい。また、再暗号文データＣjに検証用データ（Ｃ1，Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’，Ｃ41，Ｃ42，σ）が含まれていない場合も、復号処理部５４は、ステップＳＴ５１の検証処理を省略し、ステップＳＴ５２の復号処理を行う。また、上記ｍはメッセージそのものではなく、鍵であってもよい。例えば、共通鍵暗号における共通鍵ｋsymについて、ｍ＝ｋsymとして、ｍをｋsymに置き換えてもよい。この場合、共通鍵ｋsymを用いてメッセージを暗号化した暗号文を上記暗号文データや再暗号文データに付加すればよい。これらは後述する実施形態や変形例においても同様である。
【０１７７】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【０１７８】
上述したように本実施形態によれば、第１秘密鍵、第２再暗号化鍵生成鍵及び複数の乱数に基づいて再暗号化鍵を生成する場合に、第２再暗号化鍵生成鍵及び再暗号化鍵としては、次の(A)〜(D)に示す構成を用いている。
【０１７９】
(A)第２再暗号化鍵生成鍵が複数のシステム固有値及び第２秘密鍵からなる。
【０１８０】
(B)再暗号化鍵が分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。
【０１８１】
(C)分子部分は、各システム固有値間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第２秘密鍵の線形結合の形を有する。
【０１８２】
(D)分母部分は、第１秘密鍵からなる。
【０１８３】
従って、このような構成により、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【０１８４】
補足すると、移譲先（再暗号化先）のユーザＢの公開鍵とは異なる再暗号化鍵生成鍵ｒｋjを（直接）乱数乗または乱数倍する演算を含む処理によって再暗号化鍵を生成することにより、再暗号化鍵から委譲先ユーザの公開鍵および秘密鍵に関する情報を秘匿する。これにより、サーバと複数のユーザが結託した場合でも、復号権限を移譲元の許可なく再移譲されることを防ぐことができる。また、これにより、サーバに対して極端な信頼を求める必要が無くなるため、ユーザがより安心して利用できるファイル共有システムを提供することができる。さらに、再暗号化鍵Ｒijを再暗号化鍵生成鍵ｒｋjに基づいて生成する構成により、移譲先（図８の例では、例えばユーザＡ）が再暗号化鍵生成鍵を移譲元（図８の例では、グループ管理者）に通知しなければ再暗号化鍵が生成され得ないため、移譲先の承諾なく再暗号化（つまり、暗号文の復号権限の当該移譲先への移譲）を行わないようにすることができる。
【０１８５】
また、本実施形態によれば、復号権限を持つユーザのみが再暗号化後の暗号文の検証式を計算することができる。すなわち、再暗号化後の暗号文の検証式の計算には復号権限を持つユーザの秘密鍵が必須であるため，通信路上の攻撃者に暗号文を検証されないようにすることができる。また、通信路上の攻撃者に、どの暗号文がどのユーザ向けに送信されたものかを判断されないようにすることができる。
【０１８６】
補足すると、非特許文献１記載のプロキシ再暗号化方式では、再暗号化後の暗号文の正しさを検証する検証式は、暗号文、公開パラメータ、復号権限を持つユーザの公開鍵のみで計算できる（秘密鍵を用いなくとも計算できる）。すなわち、公開情報のみで暗号文が正しいかどうかの検証が行えるため、どの暗号文がどのユーザ向けに送信されたものか、だれでも判定できる不都合がある。これに対し、本実施形態では、復号権限を持つユーザの秘密鍵ｘj，ｙjを再暗号文データＣjの検証式（ａ２）が含むため、前述した不都合を解消することができる。このことは、以下の各実施形態及び再暗号化を行う各変形例でも同様である。
【０１８７】
［変形例１］
第１の実施形態では、暗号化装置２０において暗号文データを生成し、再暗号化装置４０において暗号文データを再暗号化して再暗号文データを生成し、復号装置５０において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第１の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【０１８８】
本変形例における暗号化処理と、第１の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置５０の識別情報をｉとする。この場合、暗号化装置２０の通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣiを復号装置５０に送信する（ＳＴ２４’）。
【０１８９】
復号装置５０は、公開パラメータｐａｒと自装置５０の秘密鍵ｓｋiを用いて、暗号化装置２０において生成された暗号文データＣiを次の検証式により検証する（ＳＴ５１’）。
【数１４】
2016051591.tif 000016
【０１９０】
なお、復号装置５０は、公開パラメータｐａｒと自装置５０の公開鍵ｐｋiを用いて、暗号化装置２０において生成された暗号文データＣiをステップＳＴ４１と同様に検証しても良い。
【０１９１】
式（ａ３）の６つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１９２】
検証が成功した場合（又はステップＳＴ５１’の検証処理をスキップした場合）、復号装置５０は、自装置５０の秘密鍵ｓｋiと公開パラメータｐａｒを用いて、次式のように暗号文データＣiを復号し、メッセージｍを得る（ＳＴ５２’）。
【数１５】
2016051591.tif 000017
【０１９３】
［変形例２］
変形例１の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第１の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置５０の識別情報をjとする。
【０１９４】
暗号化装置２０の暗号化パラメータ生成部２３は、ステップＳＴ２１と同様に（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１’）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１９５】
また、暗号化パラメータ生成部２３は、４つの乱数ｒ，ｓ，ｔ，ｋ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１９６】
暗号文生成部２４は、これらの乱数ｒ，ｓ，ｔ，ｋ、復号装置５０の公開鍵ｐｋj、及び公開パラメータを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ41，Ｃ42を生成する（ＳＴ２２’）。
【数１６】
2016051591.tif 000018
【０１９７】
ステップＳＴ２２’の終了後、暗号文生成部２４は、ステップＳＴ２３と同様に、使い捨て署名σを生成する（ＳＴ２３’）。
【０１９８】
しかる後、暗号文生成部２４は、上記全ての暗号化データＣ1〜Ｃ42と使い捨て署名σとを含む暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０１９９】
通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣjを復号装置５０に送信する（ＳＴ２４’）。
【０２００】
復号装置５０は、暗号化装置２０において生成された暗号文データＣjをステップＳＴ５１と同様に検証する（ＳＴ５１’）。検証が成功した場合（又はステップＳＴ５１’の検証処理をスキップした場合）、復号装置５０は、自装置５０の秘密鍵ｓｋjと公開パラメータｐａｒを用いて、次式のように暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２’）。
【数１７】
2016051591.tif 000019
【０２０１】
［変形例３］
前述のとおり、双線形写像においては、ｅ（ｇ1ｇ2，ｈ）＝ｅ（ｇ，ｈ1ｈ2）という関係が成り立つため、ｅ（ｇ1ｇ2，ｈ）をｅ（ｇ，ｈ1ｈ2）に置き換えてもよい。すると、どのアルゴリズムにもｇ2が登場しなくなるため、パラメータからｇ2を削除してもよい。これにより、データ量を削減することができる。これは、変形例１、変形例２についても同様である。
【０２０２】
［変形例４］
第１の実施形態では、双線形写像としてｅ：Ｇ1×Ｇ2→ＧTを用いたが、前述のとおり、双線型写像群Ｇ＝Ｇ1＝Ｇ2、ＧTについて、ｅ：Ｇ×Ｇ→ＧTとなる写像を用いても良い。この場合、ｇおよびｈ（ただしｇ≠ｈ）を、共にＧ（Ｇ1＝Ｇ2）から選び、あとは第１の実施形態と同様に計算すればよい。さらにこの時、アルゴリズム中のｕ2をｕ1に置き換え、ｖ2をｖ1に置き換え、Ｃ42をＣ41に置き換え、さらに式（ａ１），式（ａ２），式（ａ３）から検証式「ｅ（ｇ，Ｃ42）＝ｅ（Ｃ41，ｈ）」を削除してもよい。すると、アルゴリズム中にＣ42、ｕ2、ｖ2が登場しなくなるため、パラメータからｕ2、ｖ2を削除し、暗号文からＣ42を削除してもよい。これにより、データ量を削減することができる。これは、変形例１、変形例２、変形例３についても同様である。
【０２０３】
（第２の実施形態）
本実施形態では、第１の実施形態において再暗号化鍵をある期間毎に更新する例を説明する。期間を表すパラメータとして、時間パラメータＬを用いる。鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理の内、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理において時間パラメータが用いられる。例えば、ある期間ｔ1において暗号化処理を行う場合、Ｌ＝ｔ1として後述する暗号化処理を行い、次の期間ｔ2において暗号化処理を行う場合、Ｌ＝ｔ2として後述する暗号化処理を行う、というように時間パラメータを用いる。すなわち、定期的に時間パラメータＬを変えて、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理を行う。以下、本実施形態における鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理について説明する。なお、前述の第１の実施形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【０２０４】
（１）鍵セットアップ処理
鍵生成装置１０の公開パラメータ生成部１３は、公開パラメータｐａｒを、第１の実施形態と同様に生成する、又は外部から入手する（ＳＴ１）。鍵生成部１４は、再暗号化鍵生成装置３０の識別情報をｉとしたとき、Ｚp＊の元ｘi，ｙi，ｚi，ｗiをＺp＊からランダムに選択し、再暗号化鍵生成装置３０の秘密鍵ｓｋi＝（ｘi，ｙi，ｚi，ｗi）とする。そして、鍵生成部１４は、この秘密鍵ｓｋiと公開パラメータｐａｒを用いて再暗号化鍵生成装置３０の公開鍵ｐｋi＝（Ｘi，Ｙ1i，Ｚi，Ｚ1i，Ｗi）を生成する。ここで、
【数１８】
2016051591.tif 000020
【０２０５】
である。さらに、鍵生成部１４は、秘密鍵ｓｋiと公開パラメータｐａｒを用いて再暗号化鍵生成鍵ｒｋi＝（Ｔi，Ｔ1i，Ｔ2i）を生成する（ＳＴ３）。ここで、
【数１９】
2016051591.tif 000021
【０２０６】
である。
【０２０７】
また同様に、鍵生成部１４は、復号装置５０の識別情報をjとしたとき、Ｚp＊の元ｘj，ｙj，ｚj，ｗjをＺp＊からランダムに選択し、復号装置５０の秘密鍵ｓｋj＝（ｘj，ｙj，ｚj，ｗj）とする。そして、鍵生成部１４は、この秘密鍵ｓｋjと公開パラメータｐａｒを用いて復号装置５０の公開鍵ｐｋj＝（Ｘj，Ｙ1j，Ｚj，Ｚ1j，Ｗj）を生成する。ここで、
【数２０】
2016051591.tif 000022
【０２０８】
である。さらに、鍵生成部１４は、秘密鍵ｓｋjと公開パラメータｐａｒを用いて再暗号化鍵生成鍵ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）を生成する（ＳＴ６）。ここで、
【数２１】
2016051591.tif 000023
【０２０９】
である。
【０２１０】
（２）暗号化処理
第１の実施形態のステップＳＴ２１と同様に、暗号化装置２０の暗号化パラメータ生成部２３は、（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０２１１】
また、暗号化パラメータ生成部２３は、乱数ｒ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０２１２】
暗号文生成部２４は、この乱数ｒ、再暗号化鍵生成装置３０の公開鍵ｐｋi、公開パラメータｐａｒ、及び時間パラメータＬを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3，Ｃ41，Ｃ42を生成する（ＳＴ２２）。
【数２２】
2016051591.tif 000024
【０２１３】
暗号化装置２０（又は後述する再暗号化鍵生成装置３０）による時間パラメータの取得方法として、例えば、以下の方法を用いれば良い。あるエンティティ（例えば、図８のサーバＳｖ、サーバＳｖとは別のサーバ、ユーザ管理者、グループ管理者、ユーザ管理者やグループ管理者とは別の管理者、ユーザＡ、ユーザＢ、ユーザＢ、又はユーザＡ〜Ｃとは別のユーザ）が時間パラメータを生成する時間パラメータ生成装置（図示せず）を保持し、時間パラメータ生成装置が暗号化装置２０（又は再暗号化鍵生成装置３０）に時間パラメータを通知するようにしても良い。また、入力を時刻とし、出力を時間パラメータとする関数を定義し、時刻とその関数を用いて時間パラメータを生成しても良い。この場合、暗号化装置２０（又は再暗号化鍵生成装置３０）は、暗号化処理（再暗号化鍵生成処理）を行う時刻に基づいた情報（例えば、暗号化処理（再暗号化鍵生成処理）を行う日付を数値化した値）を入力とした上記関数の出力値を時間パラメータＬとして用いれば良く、他の装置から時間パラメータを取得する必要はない。また、鍵生成装置１０、暗号化装置２０、再暗号化鍵生成装置３０、再暗号化装置４０、又は復号装置５０が時間パラメータを生成し、（時間パラメータを生成する）当該装置以外の装置に時間パラメータを通知しても良い。また、再暗号化鍵生成装置３０は、後述するように復号装置５０の再暗号化鍵生成鍵を復号装置５０から取得するが、この際に再暗号化鍵生成鍵に加えて時間パラメータも復号装置５０から取得しても良い。この場合、復号装置５０は、上述のいずれかの方法により時間パラメータを取得すれば良い。これは後述する実施形態や変形例においても同様である。
【０２１４】
ステップＳＴ２２の終了後、暗号文生成部２４は、時間パラメータＬ及び暗号化データＣ3，Ｃ41に対し、公開パラメータｐａｒにおける署名生成機能
【数２３】
2016051591.tif 000025
【０２１５】
なお、暗号文生成部２４は、署名対象データとして時間パラメータＬを含めず、暗号化データＣ3，Ｃ41を署名対象データとして、使い捨て署名σを生成しても良い。これは後述する実施形態や変形例においても同様である。
【０２１６】
しかる後、暗号文生成部２４は、時間パラメータＬ、上記全ての暗号化データＣ1〜Ｃ4、及び使い捨て署名σを含む暗号文データＣi＝（Ｌ，Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０２１７】
通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣiを再暗号化装置４０に送信する（ＳＴ２４）。
【０２１８】
（３）再暗号化鍵生成処理
今、復号装置５０（図８の例では、例えばユーザＡ）が、再暗号化鍵生成装置３０（図８の例では、グループ管理者）宛の、時間パラメータの値としてＬを用いて生成された暗号文を、復号装置５０（図８の例では、例えばユーザＡ）宛の暗号文に再暗号化すること（つまり、暗号文の復号権限のユーザＡへ移譲すること）を承諾したとする。復号装置５０は、再暗号化鍵生成装置３０に、復号装置５０の再暗号化鍵生成鍵ｒｋjを送信する。再暗号化鍵生成装置３０の通信部３３は、制御部３５に制御されて、復号装置５０の再暗号化鍵生成鍵ｒｋjを取得して一時データ記憶部３２に書き込む（ＳＴ３１）。
【０２１９】
乱数生成部３６は、４つの乱数θ，ｎ，δｘ，δｙ∈Ｚp＊を生成して再暗号化鍵生成部３４に送出する。
【０２２０】
再暗号化鍵生成部３４は、これらの乱数θ，ｎ，δｘ，δｙ、秘密鍵記憶部３１内の再暗号化鍵生成装置３０の秘密鍵ｓｋi、一時データ記憶部３２内の復号装置５０の再暗号化鍵生成鍵ｒｋj、公開パラメータｐａｒ、及び時間パラメータＬを用いて、再暗号化鍵ＲijLを次式に示すように生成する（ＳＴ３２）。
【０２２１】
ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）
ここで、
【数２４】
2016051591.tif 000026
【０２２２】
である。再暗号化鍵ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）は、分子部分と分母部分とを有するベキ指数を含んでいる。なお、Ｇ1、Ｇ2、ＧTそれぞれについて、加法群と想定した記法で表す場合、再暗号化鍵は、ベキ指数に代えて、分子部分と分母部分とを有するスカラーを含む。ベキ指数（又はスカラー）の分子部分は、各システム固有値（ｈ，ｈ1，ｈ2）間の関係性を定める複数の秘密値（α，β）と各乱数（θ，ｎ）とのうちの少なくとも一つを作用させた第２秘密鍵（θｘj，α(θ−ｎ−１)ｙj，ｎｘj，βｙj）の線形結合の形を有している。本実施例では、ベキ指数（又はスカラー）の分子部分は、各システム固有値（ｈ，ｈ1，ｈ2）間の関係性を定める複数の秘密値（α，β）と各乱数（θ，ｎ）とのうちの少なくとも一つによりマスクした第２秘密鍵（θｘj，α(θ−ｎ−１)ｙj，ｎｘj，βｙj）の線形結合の形を有している。これにより、第２秘密鍵が秘匿され、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。ベキ指数（又はスカラー）の分母部分は、再暗号化鍵生成装置３０の秘密鍵ｓｋi（第１秘密鍵）からなる。
【０２２３】
（４）再暗号化処理
再暗号化装置４０の再暗号化処理部４４は、公開パラメータｐａｒ、一時データ記憶部４２内の暗号文データＣiに含まれている時間パラメータＬ、及び再暗号化鍵生成装置３０の公開鍵ｐｋiを用い、一時データ記憶部４２内の暗号文データＣiを次の検証式により検証する（ＳＴ４１）。
【数２５】
2016051591.tif 000027
【０２２４】
なお、式（ａ４）の７番目の検証式について、使い捨て署名σの署名対象データとして時間パラメータＬが含まれていない場合、署名対象データを暗号化データＣ3，Ｃ41として使い捨て署名σの検証を行う。これは、後述の使い捨て署名σの検証処理においても同様である。
【０２２５】
ここで、式（ａ４）の７つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０２２６】
検証が成功した場合（又はステップＳＴ４１の検証処理をスキップした場合）、再暗号化パラメータ生成部４５は、４つの乱数ｓ，ｔ，ｋ，π∈Ｚp＊を生成して再暗号化処理部４４に送出する。
【０２２７】
再暗号化処理部４４は、これらの乱数ｓ，ｔ，ｋ，π、一時データ記憶部４２に記憶されている、暗号文データＣi、再暗号化鍵ＲijL、再暗号化鍵生成装置３０の公開鍵ｐｋi、及び公開パラメータｐａｒを用いて、次式に示すように、再暗号化データＣ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ2F’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FYを生成する（ＳＴ４２）。
【数２６】
2016051591.tif 000028
【０２２８】
ステップＳＴ４２の終了後、再暗号化処理部４４は、上記全ての再暗号化データＣ2X’〜 Ｃ5FYを、暗号文データＣi内の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2Fと置換して再暗号文データＣj＝（Ｌ，Ｃ1，Ｃ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ2F’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた暗号文データを一時データ記憶部４２に書き込む。なお、再暗号文データＣj＝（Ｌ，Ｃ1，Ｃ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ2F’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ41，Ｃ42，σ）は、後述する復号処理におけるステップＳＴ５１の検証処理を省略する場合、復号に用いない検証用データ（Ｌ，Ｃ1，Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’，Ｃ2F’，Ｃ41，Ｃ42，σ）を省略して、Ｃj＝（Ｃ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3）としてもよい。この場合、検証用データ（Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’）を生成する処理も省略される。
【０２２９】
いずれにしても、通信部４３は、制御部４６に制御されて一時データ記憶部４２内の再暗号文データＣjを復号装置５０に送信する（ＳＴ４３）。
【０２３０】
（５）復号処理
復号装置５０の復号処理部５４は、秘密鍵記憶部５１内の自装置５０の秘密鍵ｓｋjと一時データ記憶部５２内の公開パラメータｐａｒを用い、一時データ記憶部５２内の再暗号文データＣjを次の検証式により検証する（ＳＴ５１）。
【数２７】
2016051591.tif 000029
【０２３１】
式（ａ５）の８つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。このとき，式（ａ５）の７番目の式を計算するには、秘密鍵ｘj，ｙjが必要であることに注意する。
【０２３２】
検証が成功した場合（又はステップＳＴ５１の検証処理をスキップした場合）、復号処理部５４は、秘密鍵記憶部５１内の自装置５０の秘密鍵ｓｋjと一時データ記憶部５２内の公開パラメータｐａｒを用いて、次式に示すように、再暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２）。
【数２８】
2016051591.tif 000030
【０２３３】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【０２３４】
上述したように本実施形態によれば、再暗号化鍵ＲijLを乱数θ，ｎ，δｘ，δｙ、再暗号化鍵生成鍵ｒｋj、及び時間パラメータＬに基づいて生成する構成により、第１の実施形態の効果に加え、復号権限を移譲するか否かを期間毎に決めることができ、よりきめ細かいアクセス制御が可能となる。また、これにより、ある期間において移譲元（図８の例では、グループ管理者）向けの暗号文についての復号権限を一度移譲先（図８の例では、例えばユーザＡ）へ移譲した後でも、次の期間については当該移譲元向けの暗号文についての復号権限を当該移譲先に与えない。つまり、（当該移譲元向けの暗号文についての）当該移譲先の復号権限を無効化することが可能となるため、利便性がより向上したファイル共有システムを提供することができる。
【０２３５】
［変形例５］
第２の実施形態では、暗号化装置２０において暗号文データを生成し、再暗号化装置４０において暗号文データを再暗号化して再暗号文データを生成し、復号装置５０において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第２の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【０２３６】
本変形例における暗号化処理と、第２の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置５０の識別情報をｉとする。この場合、暗号化装置２０の通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣiを復号装置５０に送信する（ＳＴ２４’）。
【０２３７】
復号装置５０は、公開パラメータｐａｒと自装置５０の秘密鍵ｓｋiを用いて、暗号化装置２０において生成された暗号文データＣiを次の検証式により検証する（ＳＴ５１’）。
【数２９】
2016051591.tif 000031
【０２３８】
なお、復号装置５０は、公開パラメータｐａｒと自装置５０の公開鍵ｐｋiを用いて、暗号化装置２０において生成された暗号文データＣiをステップＳＴ４１と同様に検証しても良い。
【０２３９】
式（ａ６）の７つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０２４０】
検証が成功した場合（又はステップＳＴ５１’の検証処理をスキップした場合）、復号装置５０は、自装置５０の秘密鍵ｓｋiと公開パラメータｐａｒを用いて、次式のように暗号文データＣiを復号し、メッセージｍを得る（ＳＴ５２’）。
【数３０】
2016051591.tif 000032
【０２４１】
［変形例６］
変形例５の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、復号装置５０の識別情報をjとしたとき、鍵生成部１４が、秘密鍵ｓｋjと公開パラメータｐａｒを用いて、第２の実施形態における鍵セットアップ処理に加え、Ｗ’jを生成し、再暗号化鍵生成装置３０の公開鍵をｐｋj＝（Ｘj，Ｙ1j，Ｚj，Ｚ1j，Ｗj，Ｗ’j）とする（第２の実施形態と比較してＷ’jが追加されている）。ここで
【数３１】
2016051591.tif 000033
【０２４２】
である。本変形例における復号処理は、第２の実施形態における復号処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置５０の識別情報をjとする。
【０２４３】
暗号化装置２０の暗号化パラメータ生成部２３は、第１の実施形態のステップＳＴ２１と同様に（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１’）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０２４４】
また、暗号化パラメータ生成部２３は、７つの乱数ｒ，ｓ，ｔ，ｋ，π，δｘ，δｙ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０２４５】
暗号文生成部２４は、これらの乱数ｒ，ｓ，ｔ，ｋ，π，δｘ，δｙ、復号装置５０の公開鍵ｐｋj、公開パラメータ、及び時間パラメータＬを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ2F’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ41，Ｃ42を生成する（ＳＴ２２’）。
【数３２】
2016051591.tif 000034
【０２４６】
ステップＳＴ２２’の終了後、暗号文生成部２４は、ステップＳＴ２３と同様に、使い捨て署名σを生成する。
【０２４７】
しかる後、暗号文生成部２４は、時間パラメータＬ、上記全ての暗号化データＣ1〜Ｃ42と使い捨て署名σとを含む暗号文データＣj＝（Ｌ，Ｃ1，Ｃ2X’，Ｃ2X’’，Ｃ2Y’，Ｃ2Y’’，Ｃ2Z’，Ｃ2Z’’，Ｃ2Z1’，Ｃ2Z1’’，Ｃ2F’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ41，Ｃ42，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０２４８】
通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣjを復号装置５０に送信する（ＳＴ２４’）。
【０２４９】
復号装置５０は、暗号化装置２０において生成された暗号文データＣjをステップＳＴ５１と同様に検証する（ＳＴ５１’）。検証が成功した場合（又はステップＳＴ５１’の検証処理をスキップした場合）、復号装置５０は、秘密鍵ｓｋjと公開パラメータｐａｒを用いて、次式のように暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２’）。
【数３３】
2016051591.tif 000035
【０２５０】
［変形例７］
前述のとおり、双線形写像においては、ｅ（ｇ1ｇ2，ｈ）＝ｅ（ｇ，ｈ1ｈ2）という関係が成り立つため、ｅ（ｇ1ｇ2，ｈ）をｅ（ｇ，ｈ1ｈ2）に置き換えてもよい。すると、どのアルゴリズムにもｇ2が登場しなくなるため、パラメータからｇ2を削除してもよい。これにより、データ量を削減することができる。これは、変形例５、変形例６についても同様である。
【０２５１】
［変形例８］
第２の実施形態では、双線形写像としてｅ：Ｇ1×Ｇ2→ＧTを用いたが、前述のとおり、双線型写像群Ｇ＝Ｇ1＝Ｇ2、ＧTについて、ｅ：Ｇ×Ｇ→ＧTとなる写像を用いても良い。この場合、ｇおよびｈ（ただしｇ≠ｈ）を、共にＧ（Ｇ1＝Ｇ2）から選び、あとは第１の実施形態と同様に計算すればよい。さらにこの時、アルゴリズム中のＣ42をＣ41に置き換え、ｕ2をｕ1に置き換え、ｖ2をｖ1に置き換え、さらに式（ａ４），式（ａ５），式（ａ６）から検証式「ｅ（ｇ，Ｃ42）＝ｅ（Ｃ41，ｈ）」を削除してもよい。すると、アルゴリズム中にＣ42、ｕ2、ｖ2が登場しなくなるため、パラメータからｕ2、ｖ2を削除し、暗号文からＣ42を削除してもよい。これにより、データ量を削減することができる。これは、変形例５、変形例６、変形例７についても同様である。
【０２５２】
以上説明した少なくとも一つの実施形態によれば、第１秘密鍵、第２再暗号化鍵生成鍵及び複数の乱数に基づいて再暗号化鍵を生成する場合に、第２再暗号化鍵生成鍵及び再暗号化鍵としては、次の(A)〜(D)に示す構成を用いている。
【０２５３】
(A)第２再暗号化鍵生成鍵が複数のシステム固有値及び第２秘密鍵からなる。
【０２５４】
(B)再暗号化鍵が分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含む。
【０２５５】
(C)分子部分は、各システム固有値間の関係性を定める複数の秘密値と各乱数とのうちの少なくとも一つを作用させた第２秘密鍵の線形結合の形を有する。
【０２５６】
(D)分母部分は、第１秘密鍵からなる。
【０２５７】
従って、このような構成により、サーバと複数のユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【０２５８】
なお、上記の各実施形態の利用場面について以下に記載する。
【０２５９】
ファイル共有システムにおいては、前述した通り、サーバに対してファイルデータの秘匿性を保つ方法として以下の三つの方式（１）〜（３）が挙げられる。
【０２６０】
（１）各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。
【０２６１】
（２）各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。
【０２６２】
（３）プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。
【０２６３】
ここで、（１）の個別鍵方式では、前述した通り、新たにユーザＤともファイルを共有したいとき、ユーザＡがユーザＤの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする必要があるという不都合がある。従って、（１）の方法は、新規ユーザ数や共有ファイル数が多い場合に、新規ユーザ追加時の処理が煩雑となるため、ファイル共有システムに不適である。
【０２６４】
（２）の共通鍵方式では、前述した通り、ユーザをファイル共有システムから排除する際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要であることや、各ユーザに共通の秘密鍵が漏洩してしまった場合、全ての暗号化ファイルが当該漏洩鍵により復号可能となってしまう不都合がある。このため、（２）の共通鍵方式は、ファイル共有システムに不適である。
【０２６５】
一方、（３）のプロキシ再暗号化方式では、サーバが再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にすれば、上述した不都合を解決している。このため、（３）のプロキシ再暗号化方式は、ファイル共有システムに好適である。以上のようなプロキシ再暗号化方式は、特に問題は無いが、しいて言えば、サーバが各ユーザの許可なしに再暗号文を作成可能な状態にある。このため、プロキシ再暗号化方式は、安全なファイル共有を実現する観点から、改善の余地がある。これに対し、上記の各実施形態に記載した手法は、サーバと複数のユーザが結託した場合でも、移譲元の許可なく復号権限が再移譲されることを阻止できるため、安全なファイル共有を実現することができる。
【０２６６】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０２６７】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０２６８】
そして、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０２６９】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２７０】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２７１】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２７２】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２７３】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2016051591.tif 000060
【図２】
2016051591.tif 000061
【図３】
2016051591.tif 000062
【図４】
2016051591.tif 000063
【図５】
2016051591.tif 000064
【図６】
2016051591.tif 000065
【図７】
2016051591.tif 000066
【図８】
2016051591.tif 000067
【図９】
2016051591.tif 000068
【図１０】
2016051591.tif 000069
【図１１】
2016051591.tif 000070
【手続補正書】
【提出日】平成29年2月17日(2017.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段と、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を記憶する第２記憶手段と、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段と
を備え、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする再暗号化鍵生成装置。
【請求項２】
請求項１に記載の再暗号化鍵生成装置において、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されていることを特徴とする再暗号化鍵生成装置。
【請求項３】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段と、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を記憶する第２記憶手段と、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段と
を備え、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなり、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されており、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i を含んでおり（但し、
【数１】
2016051591.tif 000071
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j を含んでおり（但し、
【数２】
2016051591.tif 000072
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数３】
2016051591.tif 000073
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3 を含んでおり（但し、
【数４】
2016051591.tif 000074
）、
前記再暗号化鍵に関する各乱数をθ,ｎで表し、前記再暗号化鍵をＲijで表すとき、
Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）
であり（但し、
【数５】
2016051591.tif 000075
）、
前記再暗号文データをＣjで表すとき（但し、３つの乱数をｓ，ｔ，ｋで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3 を含んでおり（但し、
【数６】
2016051591.tif 000076
で表されることを特徴とする再暗号化鍵生成装置。
【請求項４】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段と、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を記憶する第２記憶手段と、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段と
を備え、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなり、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されており、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi，ｗi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj，ｗj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i，Ｗi を含んでおり（但し、
【数７】
2016051591.tif 000077
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j，Ｗj を含んでおり（但し、
【数８】
2016051591.tif 000078
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）、前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数９】
2016051591.tif 000079
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記位数ｐに対する乗法群をＺP＊で表し、前記再暗号化鍵を更新する期間を示す時間パラメータをＬで表し、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3 を含んでおり（但し、
【数１０】
2016051591.tif 000080
）、
前記再暗号化鍵に関する各乱数をθ，ｎ，δｘ，δｙで表し、前記再暗号化鍵をＲijLで表すとき、
ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）
であり（但し、
【数１１】
2016051591.tif 000081
）、
前記再暗号文データをＣjで表すとき（但し、４つの乱数をｓ，ｔ，ｋ，πで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3 を含んでおり（但し、
【数１２】
2016051591.tif 000082
で表されることを特徴とする再暗号化鍵生成装置。
【請求項５】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置であって、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を記憶する記憶手段と、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする再暗号化装置。
【請求項６】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置であって、
前記第１公開鍵を記憶する記憶手段と、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする暗号化装置。
【請求項７】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置であって、
前記第２秘密鍵を記憶する記憶手段と、
前記記憶手段内の第２秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
ことを特徴とする復号装置。
【請求項８】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置に用いられるプログラムであって、
前記再暗号化鍵生成装置を、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段に書込む手段、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を前記再暗号化鍵生成装置の第２記憶手段に書込む手段、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段、
として機能させ、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されているプログラム。
【請求項１０】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置に用いられるプログラムであって、
前記再暗号化鍵生成装置を、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段に書込む手段、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を前記再暗号化鍵生成装置の第２記憶手段に書込む手段、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段、
として機能させ、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなり、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されており、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i を含んでおり（但し、
【数１３】
2016051591.tif 000083
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j を含んでおり（但し、
【数１４】
2016051591.tif 000084
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数１５】
2016051591.tif 000085
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3 を含んでおり（但し、
【数１６】
2016051591.tif 000086
）、
前記再暗号化鍵に関する各乱数をθ，ｎで表し、前記再暗号化鍵をＲijで表すとき、
Ｒij＝（Ｒij1，Ｒij2，Ｒij3 ）
であり（但し、
【数１７】
2016051591.tif 000087
）、
前記再暗号文データをＣjで表すとき（但し、３つの乱数をｓ，ｔ，ｋで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3 を含んでおり（但し、
【数１８】
2016051591.tif 000088
で表されるプログラム。
【請求項１１】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置に用いられるプログラムであって、
前記再暗号化鍵生成装置を、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段に書込む手段、
前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵を前記再暗号化鍵生成装置の第２記憶手段に書込む手段、
前記第１秘密鍵、前記第２再暗号化鍵生成鍵及び複数の乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段、
として機能させ、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数又は分子部分と分母部分とを有するスカラーを含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記分母部分は、前記第１秘密鍵からなり、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されており、
前記第１秘密鍵をｓｋi＝（ｘi，ｙi，ｚi，ｗi）で表し、前記第２秘密鍵をｓｋj＝（ｘj，ｙj，ｚj，ｗj）で表し、前記第１公開鍵と前記第２公開鍵とに関する前記複数のシステム固定値をｇ，ｇ1で表し（但し、双線型写像ｅ：Ｇ1×Ｇ2→ＧTが存在する位数ｐの群である双線型写像群をＧ1，Ｇ2，ＧTで表したとき、ｇ，ｇ1∈Ｇ1）、前記第１公開鍵をｐｋiで表すとき、前記第１公開鍵ｐｋiは、データＸi，Ｙ1i，Ｚi，Ｚ1i，Ｗi を含んでおり（但し、
【数１９】
2016051591.tif 000089
）、
前記第２公開鍵をｐｋjで表すとき、前記第２公開鍵ｐｋjは、データＸj，Ｙ1j，Ｚj，Ｚ1j，Ｗj を含んでおり（但し、
【数２０】
2016051591.tif 000090
）、
前記第２再暗号化鍵生成鍵に関する前記複数のシステム固定値をｈ，ｈ1，ｈ2で表し（但し、ｈ，ｈ1，ｈ2∈Ｇ2）前記第２再暗号化鍵生成鍵をｒｋjで表すとき、
ｒｋj＝（Ｔj，Ｔ1j，Ｔ2j）
であり（但し、
【数２１】
2016051591.tif 000091
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、前記暗号文データに関する乱数をｒで表し、前記暗号文データに関するシステム固定値をｇ2で表し（但し、ｇ2∈Ｇ1）、前記位数ｐに対する乗法群をＺP＊で表し、前記再暗号化鍵を更新する期間を示す時間パラメータをＬで表し、前記暗号文データをＣiで表すとき（但し、前記双線型写像ｅ：Ｇ1×Ｇ2→ＧTをｅ（ ， ）で表す）、前記暗号文データＣiは、データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3 を含んでおり（但し、
【数２２】
2016051591.tif 000092
）、
前記再暗号化鍵に関する各乱数をθ，ｎ，δｘ，δｙで表し、前記再暗号化鍵をＲijLで表すとき、
ＲijL＝（ＲijL1，ＲijL2，ＲijL3，ＲijL4，ＲijL5 ）
であり（但し、
【数２３】
2016051591.tif 000093
）、
前記再暗号文データをＣjで表すとき（但し、４つの乱数をｓ，ｔ，ｋ，πで表す）、前記再暗号文データＣjは、データＣ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ2F’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3 を含んでおり（但し、
【数２４】
2016051591.tif 000094
で表されるプログラム。
【請求項１２】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に用いられるプログラムであって、
前記再暗号化装置を、
予め再暗号化鍵生成装置により生成された前記再暗号化鍵を前記再暗号化装置の記憶手段に書込む手段、
前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項１３】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化鍵により再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化装置に対し、前記暗号文データを生成する暗号化装置に用いられるプログラムであって、
前記暗号化装置を、
前記第１公開鍵を前記暗号化装置の記憶手段に書込む手段、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る暗号化手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【請求項１４】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号文データを復号する復号装置に用いられるプログラムであって、
前記復号装置を、
前記第２秘密鍵を前記復号装置の記憶手段に書込む手段、
前記記憶手段内の第２秘密鍵に基づいて、前記再暗号文データを復号して前記平文データを得る復号手段、
として機能させ、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵とは異なる前記第２ユーザ装置の第２再暗号化鍵生成鍵、及び複数の乱数に基づいて、生成されており、
前記第２再暗号化鍵生成鍵は、複数のシステム固有値及び前記第２秘密鍵からなり、
前記再暗号化鍵は、分子部分と分母部分とを有するベキ指数をそれぞれ含む第１成分、第２成分及び第３成分を含み、
前記分子部分は、前記各システム固有値間の関係性を定める複数の秘密値と前記各乱数とのうちの少なくとも一つを作用させた前記第２秘密鍵の線形結合の形を有し、
前記第１成分のベキ指数の分子部分は、前記各乱数のうちの第１乱数に基づく項と、前記各乱数のうちの第２乱数及び前記第１乱数と前記複数の秘密値のうちの第１秘密値とに基づく項との線形結合の形を有し、
前記第２成分のベキ指数の分子部分は、前記第２乱数に基づく項と、前記複数の秘密値のうちの第２秘密値とに基づく項との線形結合の形を有し、
前記第３成分のベキ指数の分子部分は、前記第１乱数に基づく項と、前記第２秘密値に基づく項との線形結合の形を有し、
前記分子部分の各々の項は、前記第２秘密鍵にも基づいており、
前記分母部分は、前記第１秘密鍵からなる、
プログラム。
【国際調査報告】
2016051591.tif 000095
2016051591.tif 000096