(57)【要約】  実施形態の再暗号化鍵生成装置は、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する。前記再暗号化鍵生成装置は、第１記憶手段、第２記憶手段、第１乱数生成手段及び再暗号化鍵生成手段を備えている。前記第１記憶手段は、前記第１公開鍵に対応する第１秘密鍵を記憶する。第２記憶手段は、前記第２秘密鍵に対応する第２公開鍵を記憶する。前記第１乱数生成手段は、第１乱数を生成する。前記再暗号化鍵生成手段は、前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する。
2012147869.tif 000002
【特許請求の範囲】
【請求項１】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段（３１）と、
前記第２秘密鍵に対応する第２公開鍵を記憶する第２記憶手段（３２）と、
第１乱数を生成する第１乱数生成手段（３６）と、
前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段（３４）と
を備えたことを特徴とする再暗号化鍵生成装置。
【請求項２】
請求項１に記載の再暗号化鍵生成装置において、
再暗号化鍵生成手段（３４）は、再暗号化前の暗号文データには依存せずに、前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成することを特徴とする再暗号化鍵生成装置。
【請求項３】
請求項１に記載の再暗号化鍵生成装置において、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されていることを特徴とする再暗号化鍵生成装置。
【請求項４】
請求項２に記載の再暗号化鍵生成装置において、
前記第１秘密鍵をｓｋｉ＝（ｘｉ，ｙｉ，ｚｉ）で表し、前記第２秘密鍵をｓｋｊ＝（ｘｊ，ｙｊ，ｚｊ）で表し、前記第１乱数をθで表し、前記複数のシステム固定値をｇ，ｇ１，ｇ２で表し（但し、双線型写像ｅ：Ｇ×Ｇ→ＧTが存在する素数位数ｐの群である双線型写像群をＧ，ＧTで表したとき、ｇ，ｇ１，ｇ２∈Ｇ）、前記各システム固定値に関するベキ指数をβで表し（但し、ｇ２＝ｇβ）、前記再暗号化鍵をＲijで表すとき、
【数１】
2012147869.tif 000029
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、第２乱数をｒで表し、前記暗号文データをＣｉで表すとき（但し、前記双線型写像ｅ：Ｇ×Ｇ→ＧTをｅ（ ， ）で表す）、
Ｃｉ＝（Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3）
であり（但し、
【数２】
2012147869.tif 000030
）、
前記再暗号文データをＣｊで表すとき（但し、第３乃至第５乱数をｓ，ｔ，ｋで表す）、
Ｃj＝（Ｃ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3）
であり（但し、
【数３】
2012147869.tif 000031
で表されることを特徴とする再暗号化鍵生成装置。
【請求項５】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）に通信可能な再暗号化装置（４０）であって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を記憶する記憶手段（４１）と、
前記第１ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段（４４）と、
前記得られた再暗号文データを前記第２ユーザ装置に送信する手段（４３）と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び前記再暗号化鍵生成装置により生成された第１乱数に基づいて、生成されていることを特徴とする再暗号化装置。
【請求項６】
請求項５に記載の再暗号化装置において、
前記再暗号化鍵は、再暗号化前の暗号文データには依存せずに生成されていることを特徴とする再暗号化装置。
【請求項７】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ３）に記憶されたプログラムであって、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段（３１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（３３）、
前記第２秘密鍵に対応する第２公開鍵を前記再暗号化鍵生成装置の第２記憶手段（３２）に書込む処理を前記プロセッサに実行させる第２プログラムコード（ＳＴ３１）、
第１乱数を生成する処理を前記プロセッサに実行させる第３プログラムコード（３６）、
前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する処理を前記プロセッサに実行させる第４プログラムコード（３２）、
を備えたプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記再暗号化鍵を生成する処理は、再暗号化前の暗号文データには依存せずに前記プロセッサに実行させることを特徴とするプログラム。
【請求項９】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）に通信可能な再暗号化装置（４０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ４）に記憶されたプログラムであって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を前記再暗号化装置の記憶手段（４１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（４３）、
前記第１ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る処理を前記プロセッサに実行させる第２プログラムコード（４４）、
前記得られた再暗号文データを前記第２ユーザ装置に送信する処理を前記プロセッサに実行させる第３プログラムコード（ＳＴ４３）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び前記再暗号化鍵生成装置により生成された第１乱数に基づいて、生成されているプログラム。
【請求項１０】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を用いる再暗号化装置（４０）に通信可能な暗号化装置（２０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ２）に記憶されたプログラムであって、
前記第１公開鍵を前記暗号化装置の記憶手段（２１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（２２）、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る処理を前記プロセッサに実行させる第２プログラムコード（ＳＴ２２）、
前記得られた暗号文データを前記再暗号化装置に送信する処理を前記プロセッサに実行させる第３プログラムコード（ＳＴ２４）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び当該再暗号化鍵を生成する再暗号化鍵生成装置（３０）により生成された第１乱数に基づいて、生成されているプログラム。
【請求項１１】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号化装置（４０）から受けた前記再暗号文データを復号する復号装置（５０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ５）に記憶されたプログラムであって、
前記第２秘密鍵を前記復号装置の記憶手段（５１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（５３）、
前記再暗号化装置から前記再暗号文データを受けると、前記記憶手段内の第２秘密鍵に基づいて、当該再暗号文データを復号して前記平文データを得る処理を前記プロセッサに実行させる第２プログラムコード（５４）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び当該再暗号化鍵を生成する再暗号化鍵生成装置（３０）により生成された第１乱数に基づいて、生成されているプログラム。
【請求項１２】
請求項９乃至請求項１１のいずれか１項に記載のプログラムにおいて、
前記再暗号化鍵は、再暗号化前の暗号文データには依存せずに生成されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、再暗号化鍵生成装置、再暗号化装置及びプログラムに関する。
【背景技術】
【０００２】
ユーザがサーバにファイルをアップロードし、複数ユーザ間でそのファイルを共有するファイル共有システムにおいて、サーバに対してファイルデータの秘匿性を保つ方法として以下の三つの方式（１）〜（３）が挙げられる。【０００３】
（１）各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。【０００４】
（２）各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。【０００５】
（３）プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。【０００６】
上記（１）〜（３）の方式において、サーバにファイルをアップロードするユーザをユーザＡとし、ユーザＡがユーザＢ、ユーザＣとファイルを共有するとする。【０００７】
（１）の個別鍵方式では、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。ユーザＡは、ユーザＢの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。なお、ユーザＢの公開鍵は、ユーザＢに個別の暗号化鍵である。同様に、ユーザＡは、ユーザＣの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。ユーザＣの公開鍵は、ユーザＣに個別の暗号化鍵である。つまり、ユーザＡは、ファイルを共有する全てのユーザそれぞれに対して個別にファイルを暗号化する。【０００８】
（２）の共通鍵方式では、各ユーザに共通の秘密鍵と公開鍵の組を各ユーザが共有する。ユーザＡは、（各ユーザに共通の暗号化鍵である）公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする。各ユーザは、同一の秘密鍵を共有している。【０００９】
（３）のプロキシ再暗号化方式では、（１）の個別鍵方式と同様に、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。しかしながら、（１）の個別鍵方式とは異なり、ユーザＡは、ユーザのグループを管理するエンティティ（以下、グループ管理者と呼ぶ）の公開鍵（以下、グループ公開鍵と呼ぶ）でファイルを暗号化すれば良い。サーバは、（ユーザＡがアップロードした）暗号化ファイルを、再暗号化鍵に基づいてそれぞれ再暗号化する。再暗号化により、各ユーザだけが復号できる暗号化ファイルが生成される。プロキシ再暗号化方式の詳細は後述する。【００１０】
（１）の個別鍵方式では、新たにユーザＤともファイルを共有したいとき、ユーザＡがユーザＤの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバへアップロードする必要があるという不都合がある。なお、ユーザＤの公開鍵は、ユーザＤに個別の暗号化鍵である。従って、（１）の方法は、新規ユーザ数や共有ファイル数が多い場合に、新規ユーザ追加時の処理が煩雑となるため、ファイル共有システムに不適である。【００１１】
（２）の共通鍵方式では、あるユーザに対するファイル共有の許可をある時点から取り消す（当該ユーザをファイル共有システムから排除する）際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要である不都合がある。また、（２）の共通鍵暗号方式では、各ユーザに共通の秘密鍵が万が一漏洩してしまった場合、当該漏洩した秘密鍵を入手した者には、全ての暗号化ファイルが復号可能となってしまう不都合がある。このため、（２）の共通鍵方式は、ファイル共有システムに不適である。【００１２】
一方、（３）のプロキシ再暗号化方式では、サーバが再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にして、上述した不都合を解決している。このため、（３）のプロキシ再暗号化方式は、ファイル共有システムに好適である。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】B. Libert and D. Vergnaud, "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption", Proc. PKC 2008, LNCS 4939, pp.360-379, Springer, 2008.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、（３）のプロキシ再暗号化方式では、サーバとユーザが結託した場合、復号権限を移譲元の許可なく再移譲されてしまうという不都合がある。具体的には、サーバ、ユーザＢ及びユーザＥが結託した場合、ユーザＡ向けの暗号文をユーザＢ向けの暗号文に再暗号化するための再暗号化鍵（ｒｋA→B）、ユーザＢの秘密鍵（ｓｋB）、及びユーザＥの秘密鍵（ｓｋE）を用いて、ユーザＡ向けの暗号文をユーザＥ向けの暗号文に再暗号化するための正規の再暗号化鍵（ｒｋA→E）を、移譲元であるユーザＡの許可なく計算できてしまう。【００１５】
本発明が解決しようとする課題は、サーバとユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止し得る再暗号化鍵生成装置、再暗号化装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１６】
実施形態の再暗号化鍵生成装置は、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する。【００１７】
前記再暗号化鍵生成装置は、第１記憶手段、第２記憶手段、第１乱数生成手段及び再暗号化鍵生成手段を備えている。【００１８】
前記第１記憶手段は、前記第１公開鍵に対応する第１秘密鍵を記憶する。【００１９】
前記第２記憶手段は、前記第２秘密鍵に対応する第２公開鍵を記憶する。【００２０】
前記第１乱数生成手段は、第１乱数を生成する。【００２１】
前記再暗号化鍵生成手段は、前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する。
【図面の簡単な説明】
【００２２】
【図１】図１は、第１の実施形態に係る再暗号化システムの構成を示す模式図である。
【図２】図２は、同実施形態における鍵セットアップ処理の動作を説明するためのシーケンス図である。
【図３】図３は、同実施形態における暗号化処理の動作を説明するためのシーケンス図である。
【図４】図４は、同実施形態における再暗号化鍵生成処理の動作を説明するためのシーケンス図である。
【図５】図５は、同実施形態における再暗号化処理の動作を説明するためのシーケンス図である。
【図６】図６は、同実施形態における復号処理の動作を説明するためのシーケンス図である。
【図７】図７は、同実施形態に係るファイル共有システムの構成を例示する図である。
【図８】図８は、同実施形態におけるファイル共有システムの模式図である。
【発明を実施するための形態】
【００２３】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、図１に示す如き、予めネットワーク又は非一時的なコンピュータ読取可能な記憶媒体（non-transitory computer-readable storage medium）Ｍ１〜Ｍ５からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、当該コンピュータに各装置の機能を実現させるためのプログラムが用いられる。
【００２４】
（第１の実施形態）
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の５つの関数（以下、アルゴリズムともいう）からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【００２５】
（鍵生成）KeyGen（１k）→（ｐｋ，ｓｋ）
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ１kが入力されると、公開鍵ｐｋと秘密鍵ｓｋの組（ｐｋ，ｓｋ）を出力する。
【００２６】
（暗号化）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を出力する。
【００３０】
以上が基本的なモデルである。但し、再暗号化の実現方式に応じて、関数への入力が異なるモデルや、上記以外の関数や鍵を含むモデルも考えられている。
【００３１】
例えば、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムの入力において、ユーザＢの秘密鍵ｓｋBを不要とした非相互作用的（non-interactive）と呼ばれるモデルが考えられている。また、ユーザＡの秘密鍵ｓｋAに代えて、ユーザＢ宛の再暗号化鍵ｒｋA→BとユーザＣの秘密鍵ｓｋCとが入力されるモデルなども考えられている。
【００３２】
また、再暗号化鍵ｒｋA→Bで暗号文ＣA→ＣBの再暗号化を行える一方で、その逆の暗号文ＣB→ＣAの変換を行えない一方向性（unidirectional）と呼ばれるモデル、逆の変換も行える双方向性（bidirectional）と呼ばれるモデルなども知られている。なお、双方向性モデルでは、再暗号化鍵ｒｋA→BをｒｋA⇔Bと表すことがある。
【００３３】
さらに、公開鍵暗号の中でもＩＤベース暗号に基づく方式も考えられている。その場合、マスター鍵生成のための関数セットアップ（Setup）が増え、鍵生成アルゴリズムKeyGenの入力にマスター鍵とＩＤが追加される。ＩＤベース暗号において、公開鍵ｐｋはＩＤそのものである。
【００３４】
次に、本実施形態に係るファイル共有システムの構成について図７を用いて説明する。ファイル共有システムは、サービスを提供するサービス提供者の有する情報処理装置であるサーバＳｖと、当該サービスの利用者であるユーザの有する情報処理装置であるユーザ装置Ａ，Ｂ，Ｃ，…とを備えている。サーバＳｖと、ユーザ装置Ａ，Ｂ，Ｃ，…とは通信網を介して接続されている。通信網とは、例えば、無線ＬＡＮ（Local Area Network）、有線ＬＡＮ、光回線網、電話回線網、イントラネット、イーサネット（登録商標）及びインターネットやこれらの組み合わせである。尚、同図では、ファイル共有システムに接続されるサーバＳｖは１台のみが示されているが、複数台であっても良い。また、ユーザ装置Ａ，Ｂ，Ｃ，…は、ユーザＡ，Ｂ，Ｃ，…と略記する場合や、第１ユーザ装置，第２ユーザ装置，…と呼ぶ場合がある。
【００３５】
図８は、ファイル共有システムの模式図である。このファイル共有システムは、サーバＳｖ、ユーザＡ、ユーザＢ、ユーザＣ、グループ管理者、及びユーザ管理者からなる。ユーザ管理者とは、全ユーザを管理するエンティティである。ユーザ管理者は、ユーザがファイル共有システムにログインできるようにするためのＩＤと初期パスワードを各ユーザに対して発行する。
【００３６】
事前準備として、各ユーザは、グループ管理者の公開鍵ｐｋGrを持っているものとする。また、共有しようとする平文のファイルデータをｍと表記する。サーバＳｖは、グループ管理者宛の暗号文Ｅ（ｐｋGr，ｍ）をユーザＡ（又はユーザＢ、又はユーザＣ）宛の暗号文Ｅ（ｐｋA，ｍ）（又はＥ（ｐｋB，ｍ）、又はＥ（ｐｋC，ｍ））に再暗号化する再暗号化鍵ｒｋGr→A（又はｒｋGr→B、又はｒｋGr→C）を持っているものとする。各ユーザｉは秘密鍵ｓｋｉを持っているものとする。つまり、ユーザＡは秘密鍵ｓｋA、ユーザＢはｓｋB、ユーザＣはｓｋCをそれぞれ持っている。
【００３７】
次に、ユーザＣは、公開鍵記憶部１に記憶されているグループ管理者の公開鍵ｐｋGrでファイルデータｍを暗号化し、得られた暗号文Ｅ（ｐｋGr，ｍ）をサーバＳｖへアップロードする。サーバＳｖは、暗号文記憶部２においてこの暗号文を保管する。
【００３８】
今、ユーザＡがファイルデータｍを共有したいとする。ユーザＡは、サーバＳｖに対して暗号文Ｅ（ｐｋGr，ｍ）の再暗号化の要求を送信する。サーバＳｖは、ユーザＡから受けた要求に対し、再暗号化鍵記憶部３に記憶されているユーザＡ宛の再暗号化鍵ｒｋGr→Aに基づいて、暗号文Ｅ（ｐｋGr，ｍ）をユーザＡ宛の再暗号文Ｅ（ｐｋA，ｍ）に再暗号化し、得られた再暗号文Ｅ（ｐｋA，ｍ）をユーザＡに送信する。ここで、再暗号文とは、暗号文を再暗号化した暗号文である。
【００３９】
ユーザＡは、サーバＳｖからダウンロードした再暗号文Ｅ（ｐｋA，ｍ）を自身が保有する秘密鍵ｓｋAで復号し、得られたファイルデータｍを利用する。
【００４０】
以上のようなファイル共有システムは、ユーザＣによる暗号化からユーザＡによる復号までの間、ファイルデータＭが一度も復号されないため、ファイル共有の過程における情報の漏洩を阻止することができる。
【００４１】
また、ユーザＣは、暗号文をアップロードする時点で、どのユーザとファイル共有するかを決定する必要がない。つまり、ユーザＣは、ファイルデータｍをグループ管理者の公開鍵ｐｋGrで暗号化すれば良く、暗号化に関して管理すべき鍵がグループ管理者の公開鍵ｐｋGrのみで良いので、鍵管理のコストを低減させることができる。
【００４２】
本ファイル共有システムにおいて、サーバＳｖは、暗号文Ｅ（ｐｋGr，ｍ）を復号するための復号鍵sｋGrを持たない。従って、サーバＳｖはこの暗号文を復号できない。これは、不正なサーバＳｖが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバＳｖを厳重に管理しなくても良く、サーバＳｖの管理コストの低減に繋がる。
【００４３】
ユーザＢがファイル共有を行う際も上記と同様である。
【００４４】
図１は第１の実施形態に係る再暗号化システムの構成を示す模式図である。（図１と図８の対応関係については後述する。）この再暗号化システムは、鍵生成装置１０、暗号化装置２０、再暗号化鍵生成装置３０、再暗号化装置４０及び復号装置５０を備えている。ここで、鍵生成装置１０は、再暗号化システムの各種パラメータ及び各装置４０，５０の公開鍵・秘密鍵のペアを生成する。
【００４５】
暗号化装置２０は、再暗号化鍵生成装置３０の秘密鍵に対応する公開鍵を用いて平文データを暗号化して得られた暗号文データを再暗号化装置４０に送信する。
【００４６】
再暗号化鍵生成装置３０は、再暗号化鍵生成装置３０の秘密鍵と復号装置５０の公開鍵と乱数とを用いて再暗号化鍵を生成する。
【００４７】
再暗号化装置４０は、暗号化装置２０から受けた暗号文データを復号せずに再暗号化鍵により再暗号化して得られた再暗号文データを復号装置５０に送信する。
【００４８】
復号装置５０は、再暗号化鍵生成装置３０の公開鍵を用いて再暗号文データを検証処理すると共に、自装置５０の公開鍵に対応する秘密鍵を用いて再暗号文データを復号処理して平文データを得る。なお、再暗号化鍵生成装置３０、再暗号化装置４０及び復号装置５０は、それぞれ複数台が設けられていてもよいが、ここでは一台ずつ設けられている場合を例に挙げて述べる。
【００４９】
図１と図８の対応関係について説明する。各装置１０〜５０は、当該処理を行うエンティティにより保持される。ユーザが自身の公開鍵と秘密鍵の組を生成する場合、当該ユーザは鍵生成装置１０を保持する。なお、例えば、ユーザ管理者又はグループ管理者がユーザの公開鍵と秘密鍵の組を生成する場合、ユーザ管理者又はグループ管理者が鍵生成装置１０を保持する。ユーザは、暗号化装置２０、復号装置５０、又は両方を保持する。グループ管理者は、再暗号化鍵生成装置３０を保持する。なお、例えば、ユーザ管理者又はサーバＳｖが再暗号化鍵を生成する場合、ユーザ管理者又はサーバＳｖが再暗号化鍵生成装置３０を保持する。サーバＳｖは、再暗号化装置４０を保持する。図８に例示したファイル共有システムにおいては、サーバＳｖが公開鍵記憶部１を保持し、暗号化を行うユーザＣは、公開鍵記憶部１から暗号化に用いる公開鍵を取得しているが、これに限らず、後述するように、ユーザＣは（暗号化に用いる公開鍵を生成した）鍵生成装置１０から暗号化に用いる公開鍵を取得しても良い。また、サーバＳｖは、ユーザＣが生成した暗号文Ｅ（ｐｋGr，ｍ）を暗号文記憶部２において保管するが、暗号文記憶部２は再暗号化装置４０に含まれていても良いし、再暗号化装置４０に含まれない外部の記憶装置であっても良い。
【００５０】
どのエンティティがどの装置を保持するかについては、上述の例に限定されるものではなく、様々なバリエーションが考えられる。また、ユーザ管理者又はグループ管理者がユーザを兼ねる場合も兼ねない場合もある。また、各ユーザが用いる各ユーザ装置は、第１ユーザ装置、第２ユーザ装置、…と呼んでもよい。同様に、各ユーザ装置の公開鍵及び秘密鍵は、第１ユーザ装置の第１公開鍵及び第１秘密鍵、第２ユーザ装置の第２公開鍵及び第２秘密鍵、…と呼んでもよい。
【００５１】
続いて、各装置１０〜５０の構成を具体的に説明する。
【００５２】
鍵生成装置１０は、鍵生成パラメータ記憶部１１、一時データ記憶部１２、公開パラメータ生成部１３、公開鍵・秘密鍵生成部１４、通信部１５及び制御部１６を備えている。
【００５３】
ここで、鍵生成パラメータ記憶部１１は、鍵生成パラメータを記憶する記憶装置である。
【００５４】
一時データ記憶部１２は、各生成部１３，１４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００５５】
公開パラメータ生成部１３は、鍵生成の公開パラメータを生成する。
【００５６】
公開鍵・秘密鍵生成部１４は、ユーザ宛の公開鍵・秘密鍵を生成する。
【００５７】
通信部１５は、他の装置２０〜５０と通信するための通信インタフェースであり、例えば、以下の各機能(f15-1)〜(f15-2)をもっている。
【００５８】
(f15-1)  制御部１６に制御されて一時データ記憶部１２内の各３０，５０の公開鍵・秘密鍵のペアを当該各装置３０，５０に送信する機能。
【００５９】
(f15-2)  制御部１６に制御されて一時データ記憶部１２内の再暗号化鍵生成装置３０の公開鍵を暗号化装置２０に送信する機能。
【００６０】
なお、以下の説明では、送受信時の冗長な記載を避ける観点から、送受信の際に、通信部１５を介する旨の記載を省略する場合がある。これは他の装置２０〜５０の通信部についても同様である。
【００６１】
制御部１６は、図２に示す動作を実行するように、各部１１〜１５を制御する機能をもっている。
【００６２】
暗号化装置２０は、一時データ記憶部２１、通信部２２、暗号化データ生成部２３、暗号文生成部２４及び制御部２５を備えている。
【００６３】
ここで、一時データ記憶部２１は、鍵生成装置１０から受けた再暗号化鍵生成装置３０の公開鍵や、各生成部２３，２４の処理途中及び処理結果などの一時的なデータ（以下、一時データともいう）を記憶する記憶装置である。
【００６４】
通信部２２は、他の装置１０，３０〜５０と通信するための通信インタフェースであり、例えば、以下の各機能(f22-1)〜(f22-2)をもっている。
【００６５】
(f22-1)  鍵生成装置１０に公開された再暗号化鍵生成装置３０の公開鍵を取得して一時データ記憶部２１に書き込む機能。
【００６６】
(f22-2)  制御部２５に制御されて一時データ記憶部２１内の暗号文データを再暗号化装置４０に送信する機能。
【００６７】
暗号化パラメータ生成部２３は、暗号化パラメータを生成する機能をもっている。
【００６８】
暗号文生成部２４は、例えば、以下の各機能(f24-1)〜(f24-2)をもっている。
【００６９】
(f24-1)  一時データ記憶部２１から読み出した再暗号化鍵生成装置３０の公開鍵（第１ユーザ装置の第１公開鍵）を用いて平文データを暗号化することにより、暗号文データを生成する機能。
【００７０】
(f24-2)  得られた暗号文データを一時データ記憶部２１に書き込む機能。
【００７１】
制御部２５は、図３に示す動作を実行するように、各部２１〜２４を制御する機能をもっている。
【００７２】
再暗号化鍵生成装置３０は、秘密鍵記憶部３１、一時データ記憶部３２、通信部３３、再暗号化鍵生成部３４、制御部３５及び乱数生成部３６を備えている。
【００７３】
秘密鍵記憶部３１は、鍵生成装置１０から受けた再暗号化鍵生成装置３０の秘密鍵を記憶する記憶装置である。
【００７４】
一時データ記憶部３２は、鍵生成装置１０から受けた復号装置５０の公開鍵や、再暗号化鍵生成部３４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００７５】
通信部３３は、他の装置１０，２０，４０，５０と通信するための通信インタフェースであり、例えば制御部３５に制御されて一時データ記憶部３２内の再暗号化鍵を再暗号化装置４０に送信する機能をもっている。
【００７６】
再暗号化鍵生成部３４は、例えば、以下の各機能(f34-1)〜(f34-2)をもっている。
【００７７】
(f34-1)  秘密鍵記憶部３１から読み出した再暗号化鍵生成装置３０の秘密鍵（第１ユーザ装置の第１秘密鍵）と、一時データ記憶部３２から読み出した復号装置５０の公開鍵（第２ユーザ装置の第２公開鍵）と、乱数生成部３６により生成された乱数とに基づいて再暗号化鍵を生成する機能（この機能では暗号化時のパラメータ―詳しくは乱数―が不要）。
【００７８】
(f34-2)  この再暗号化鍵を一時データ記憶部３２に書き込む機能。
【００７９】
制御部３５は、図４に示す動作を実行するように、各部３１〜３４，３６を制御する機能をもっている。
【００８０】
乱数生成部３６は、乱数を生成して再暗号化鍵生成部３４に送出する機能をもっている。
【００８１】
再暗号化装置４０は、再暗号化鍵記憶部４１、一時データ記憶部４２、通信部４３、再暗号化処理部４４、再暗号化パラメータ生成部４５及び制御部４７を備えている。
【００８２】
再暗号化鍵記憶部４１は、再暗号化鍵生成装置３０から受けた再暗号化鍵を記憶する記憶装置である。
【００８３】
一時データ記憶部４２は、再暗号化処理部４４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００８４】
通信部４３は、他の装置１０〜３０，５０と通信するための通信インタフェースであり、例えば、以下の各機能(f43-1)〜(f43-2)をもっている。
【００８５】
(f43-1)  暗号化装置２０から受けた暗号文データを再暗号化処理部４４に送出する機能。
【００８６】
(f43-2)  制御部４７に制御されて一時データ記憶部４２内の再暗号文データを復号装置５０に送信する機能。
【００８７】
再暗号化処理部４４は、例えば、以下の各機能(f44-1)〜(f44-2)をもっている。
【００８８】
(f44-1)  暗号化装置２０から暗号文データを受けると、再暗号化鍵記憶部４１から読み出した再暗号化鍵を用いて当該暗号文データを復号せずに再暗号化することにより、再暗号文データを得る機能。
【００８９】
(f44-2)  得られた再暗号文データを一時データ記憶部４２に書き込む機能。
【００９０】
制御部４７は、再暗号文検証プログラムを配信する動作（図示せず）と図５に示す動作を実行するように、各部４１〜４５を制御する機能をもっている。
【００９１】
復号装置５０は、秘密鍵記憶部５１、一時データ記憶部５２、通信部５３、復号処理部５４、及び制御部５６を備えている。
【００９２】
秘密鍵記憶部５１は、鍵生成装置１０から受けた自装置５０の秘密鍵を記憶する記憶装置である。
【００９３】
一時データ記憶部５２は、鍵生成装置１０から受けた自装置５０の公開鍵及び再暗号化鍵生成装置３０の公開鍵や、復号処理部５４の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【００９４】
通信部５３は、他の装置１０〜４０と通信するための通信インタフェースであり、例えば、以下の各機能(f53-1)〜(f53-3)をもっている。
【００９５】
(f53-1)  鍵生成装置１０から受けた自装置５０の秘密鍵を秘密鍵記憶部５１に書き込む機能。
【００９６】
(f53-2)  鍵生成装置１０から受けた自装置５０の公開鍵及び再暗号化鍵生成装置３０の公開鍵を一時データ記憶部５２に書き込む機能。
【００９７】
(f53-3)  再暗号化装置４０から受けた再暗号化データを復号処理部５４に送出する機能。
【００９８】
復号処理部５４は、例えば、以下の各機能(f54-1)〜(f54-3)をもっている。
【００９９】
(f54-1)  再暗号化装置４０から再暗号文データを受けると、秘密鍵記憶部５１から読み出した当該復号装置５０の秘密鍵（第２ユーザ装置の第２秘密鍵）に基づいて、当該再暗号文データを復号処理することにより、平文データを得る機能。
【０１００】
(f54-2)  得られた平文データを一時データ記憶部５２に書き込む機能。
【０１０１】
制御部５６は、図６に示す動作を実行するように、各部５１〜５４を制御する機能をもっている。
【０１０２】
次に、以上のように構成された再暗号化システムの動作を図２乃至図６のシーケンス図を用いて説明する。
【０１０３】
また、以下の動作は（１）鍵セットアップ処理、（２）暗号化処理、（３）再暗号化鍵生成処理、（４）再暗号化処理、（５）復号処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくてもよい。例えば、再暗号化鍵生成は、暗号化処理の前に実行されてもよい。また、再暗号化処理が実行されずに、暗号文データが復号されてもよい。
【０１０４】
（１）鍵セットアップ処理は、鍵生成装置１０により、図２及び以下の各ステップＳＴ１〜ＳＴ１２に示すように実行される。
【０１０５】
始めに、鍵生成装置１０の公開パラメータ生成部１３は、公開パラメータ（ｐ，λ，Ｇ，ＧT，ｇ，ｇ1，ｇ2，ｕ，ｖ，
【数１】
2012147869.tif 000003
【０１０６】
）を生成する、又は外部から入手する（ＳＴ１）。具体的には、公開パラメータ生成部１３は、予め鍵パラメータ記憶部１１に記憶したセキュリティパラメータλに基づいて、素数位数p＞２λを満たす双線型写像群(bilinear map groups)（Ｇ，ＧT）、Ｇの元ｇ，ｇ1，ｇ2，ｕ，ｖ、強偽造不可能性を満たす使い捨て署名（one-time signature）アルゴリズム
【数２】
2012147869.tif 000004
【０１０７】
を生成する。なお、Ｚp＊はＺpかつpと互いに素な整数の集合（＝（Ｚ/pＺ）＊）であり、素数pに対する乗法群Ｚp＊と呼んでもよい。Ｚpは０以上p未満の整数の集合（＝（Ｚ/pＺ）である。そして、「元」（げん）とは、数学的な意味を持つ用語であり、要素とも呼ばれ、複数の「もの」で構成されている集合の中において、集合を構成している個々のものを指す。また、使い捨て署名アルゴリズム
【数３】
2012147869.tif 000005
【０１０８】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (1996) pp.462-471, (1996)に詳しい。
【０１０９】
また、双線型写像（ｅと表記する）とは、ｅ：Ｇ×Ｇ→ＧTとなる写像であり、以下の３つの性質を満たす。
【０１１０】
１．任意の（ｇ，ｈ）∈Ｇ×Ｇ及びａ，ｂ∈Ｚについて、ｅ（ｇａ，ｈｂ）＝ｅ（ｇ，ｈ）ａｂが成り立つ。ここで、Ｚとは整数の集合である。
【０１１１】
２．任意の（ｇ，ｈ）∈Ｇ×Ｇについて、ｅ（ｇ，ｈ）が計算可能である。
【０１１２】
３．ｇ，ｈ≠１Gである場合は常にｅ（ｇ，ｈ）≠１GTが成り立つ。ここで、１GとはＧの単位元であり、１GTとはＧTの単位元である。
【０１１３】
また、双線型写像群(bilinear map groups)（Ｇ，ＧTと表記する）とは、双線型写像ｅ：Ｇ×Ｇ→ＧTが存在する素数位数ｐの群である。上記の定義は、Ｇの元ｇ，ｇ1，ｇ2について、ｇ1＝ｇα、ｇ2＝ｇβとすると、次式が成り立つことも意味する（但し、α，βは、Ｇの元ｇ，ｇ1，ｇ2に関するベキ指数である。）。
【０１１４】
ｅ（ｇ1ｇ2，ｇ）＝ｅ（ｇ，ｇ1ｇ2）＝ｅ（ｇ，ｇα・ｇβ）＝ｅ（ｇ，ｇα＋β）＝ｅ（ｇ，ｇ）α＋β＝ｅ（ｇ，ｇ）α・ｅ（ｇ，ｇ）β 
なお、Ｇの複数の元ｇ，ｇ1，ｇ2は、予め定められた複数のシステム固定値となっている。複数のシステム固定値としては、双線型写像群Ｇの３つの元に限らず、Ｇの２つ又は４つ以上といった複数の元が適宜使用可能となっている。また、「システム固定値」の語は、「固定値」、「元」又は「システムパラメータ」などと読み替えてもよい。この複数のシステム固定値は、双線型写像が存在する素数位数の群である双線型写像群の複数の元である。
【０１１５】
また、本明細書では、Ｇ、ＧTをともに乗法群と想定した記法を採用しているが、これに限らず、Ｇ、ＧTそれぞれについて、加法群と想定した記法で表すことも可能である。つまり、例えば、Ｇを加法群、ＧTを乗法群として表現しても良い。また、双線型写像として、双線型写像群Ｇ1、Ｇ2、ＧT（Ｇ1とＧ2は異なる群である）について、ｅ：Ｇ1×Ｇ2→ＧTとなる写像を用いても良い。これらは他の実施形態においても同様である。
【０１１６】
続いて、公開パラメータ生成部１３は、生成した公開パラメータを一時データ記憶部１２に書き込む。鍵生成装置１０は、一時データ記憶部１２内の公開パラメータｐ，λ，Ｇ，ＧT，ｇ，ｇ1，ｇ2，ｕ，ｖ，Sig）を公開する（ＳＴ２）。なお、ステップＳＴ１を実行する前に公開パラメータが既に公開されていた場合、その公開パラメータを一時データ記憶部１２に書き込み、ステップＳＴ１及びステップＳＴ２をスキップしても良い。
【０１１７】
また、公開鍵・秘密鍵生成部１４は、再暗号化鍵生成装置３０の識別情報をｉとしたとき、再暗号化鍵生成装置３０の秘密鍵ｘｉ，ｙｉ，ｚｉ∈Ｚp＊を生成し、この秘密鍵ｓｋｉ＝（ｘｉ，ｙｉ，ｚｉ）を用いて再暗号化鍵生成装置３０の公開鍵
【数４】
2012147869.tif 000006
【０１１８】
である。
【０１１９】
続いて、公開鍵・秘密鍵生成部１４は、生成した公開鍵・秘密鍵のペアを一時データ記憶部１２に書き込む。通信部１５は、制御部１６に制御されて一時データ記憶部１２内の秘密鍵ｓｋｉを再暗号化鍵生成装置３０に送信する（ＳＴ８）。鍵生成装置１０は、一時データ記憶部１２内の再暗号化鍵生成装置３０の公開鍵ｐｋｉを公開する（ＳＴ９）。
【０１２０】
また同様に、公開鍵・秘密鍵生成部１４は、復号装置５０の識別情報をｊとしたとき、復号装置５０の秘密鍵ｓｋｊ＝（ｘｊ，ｙｊ，ｚｊ）を生成し、この秘密鍵ｓｋjを用いて復号装置５０の公開鍵
【数５】
2012147869.tif 000007
【０１２１】
である。
【０１２２】
続いて、公開鍵・秘密鍵生成部１４は、生成した公開鍵・秘密鍵のペアを一時データ記憶部１２に書き込む。通信部１５は、制御部１６に制御されて一時データ記憶部１２内の秘密鍵ｓｋjを復号装置５０に送信する（ＳＴ１１）。鍵生成装置１０は、一時データ記憶部１２内の復号装置５０の公開鍵ｐｋjを公開する（ＳＴ１２）。また、所望により、暗号化装置２０の秘密鍵ｓｋh及び公開鍵ｐｋhについても各ステップＳＴ１０〜ＳＴ１２と同様の処理を実行して暗号化装置２０に秘密鍵ｓｋhを送信し、公開鍵ｐｋＸhを公開してもよい。
【０１２３】
以上により、鍵セットアップ処理が完了する。以後、各装置２０，３０，４０，５０では、各ステップＳＴ２，ＳＴ６，ＳＴ９，ＳＴ１２で公開された公開パラメータ及び公開鍵を適宜、取得して利用することができる。
【０１２４】
（２）暗号化処理は、暗号化装置２０により、図３及び以下の各ステップＳＴ２１〜ＳＴ２４に示すように実行される。
【０１２５】
すなわち、暗号化装置２０の暗号化パラメータ生成部２３は、公開パラメータにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数６】
2012147869.tif 000008
【０１２６】
を生成し（ＳＴ２１）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１２７】
また、暗号化パラメータ生成部２３は、乱数ｒ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１２８】
暗号文生成部２４は、この乱数ｒ及び再暗号化鍵生成装置３０の公開鍵ｐｋｉを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ4を生成する（ＳＴ２２）。
【数７】
2012147869.tif 000009
【０１２９】
しかる後、暗号文生成部２４は、上記全ての暗号化データＣ1〜Ｃ4と使い捨て署名σとを含む暗号文データＣi＝（Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ4，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。なお、暗号文データＣi＝（Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3，Ｃ4，σ）は、検証を省略する場合、復号に用いない検証用データ（Ｃ1，Ｃ4，σ）を省略して、Ｃi＝（Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3）としてもよい。この場合、検証用データ（Ｃ1，Ｃ4，σ）を生成する処理も省略される。
【０１３０】
いずれにしても通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣiを再暗号化装置４０に送信する（ＳＴ２４）。
【０１３１】
以上により、暗号化処理が完了する。
【０１３２】
なお、本実施形態においては、上述したように（また後述するように）検証を省略したり、検証用データの生成を省略したりしてもよいが、これは後述する実施形態や変形例においても同様である。
【０１３３】
（３）再暗号化鍵生成処理は、再暗号化鍵生成装置３０により、図４及び以下の各ステップＳＴ３１〜ＳＴ３３に示すように実行される。
【０１３４】
すなわち、再暗号化鍵生成装置３０の通信部３３は、制御部３５に制御されて、鍵生成装置１０から公開された復号装置５０の公開鍵ｐｋjを取得して一時データ記憶部３２に書き込む（ＳＴ３１）。また、通信部３３は、前述したステップＳＴ５のとき、再暗号化鍵生成装置３０の秘密鍵ｓｋiを鍵生成装置１０から受信して秘密鍵記憶部３１に書き込んでいる。
【０１３５】
乱数生成部３６は、乱数θ∈Ｚp＊を生成して再暗号化鍵生成部３４に送出する。
【０１３６】
再暗号化鍵生成部３４は、この乱数θ、秘密鍵記憶部３１内の再暗号化鍵生成装置３０の秘密鍵ｓｋi、及び一時データ記憶部３２内の復号装置５０の公開鍵ｐｋjに基づいて、再暗号化鍵Ｒijを次式に示すように生成する（ＳＴ３２）。
【数８】
2012147869.tif 000010
【０１３７】
である。なお、上式では、ｇ1＝ｇα，ｇ2＝ｇβと書き替えて表記している。
【０１３８】
しかる後、再暗号化鍵生成部３４は、生成した再暗号化鍵Ｒijを一時データ記憶部３２に書き込む。通信部３３は、制御部３５に制御されて、一時データ記憶部３２内の再暗号化鍵Ｒijを再暗号化装置４０に送信する（ＳＴ３３）。
【０１３９】
以上により、再暗号化鍵生成処理が完了する。
【０１４０】
（４）再暗号化処理は、再暗号化装置４０により、図５及び以下の各ステップＳＴ４１〜ＳＴ４３に示すように実行される。
【０１４１】
再暗号化装置４０の通信部４３は、ステップＳＴ２４で送信された暗号文データＣiと、ステップＳＴ３３で送信された再暗号化鍵Ｒijとをそれぞれ一時データ記憶部４２に書き込む。
【０１４２】
再暗号化処理部４４は、公開パラメータと次の検証式を用い、一時データ記憶部４２内の暗号文データＣiを検証する（ＳＴ４１）。
【数９】
2012147869.tif 000011
【０１４３】
ここで、上記５つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１４４】
検証が成功した場合、再暗号化パラメータ生成部４５は、３つの乱数ｓ，ｔ，ｋ∈Ｚp＊を生成して再暗号化処理部４４に送出する。
【０１４５】
再暗号化処理部４４は、これらの乱数ｓ，ｔ，ｋ、一時データ記憶部４２内の暗号文データＣi、及び一時データ記憶部４２内の再暗号化鍵Ｒijを用いて、次式に示すように、再暗号化データＣ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Zを生成する（ＳＴ４２）。
【数１０】
2012147869.tif 000012
【０１４６】
ステップＳＴ４２の終了後、再暗号化処理部４４は、上記全ての暗号化データ再暗号化データＣ2X’〜Ｃ5Zを、暗号文データＣi内の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1と置換して再暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ4，σ）を生成し、得られた再暗号文データＣjを一時データ記憶部４２に書き込む。なお、再暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ4，σ）は、検証を省略する場合、復号に用いない検証用データ（Ｃ1，Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’，Ｃ2’’’，Ｃ4，σ）を省略して、Ｃj＝（Ｃ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3）としてもよい。この場合、検証用データ（Ｃ2X’，Ｃ2Y’，Ｃ2Z’，Ｃ2Z1’，Ｃ2’’’）を生成する処理も省略される。
【０１４７】
いずれにしても通信部４３は、制御部４７に制御されて一時データ記憶部４２内の再暗号文データＣjを復号装置５０に送信する（ＳＴ４３）。
【０１４８】
以上により、再暗号化処理が完了する。
【０１４９】
（５）復号処理は、復号装置５０により、図６及び以下のステップＳＴ５１及びＳＴ５２に示すように実行される。
【０１５０】
すなわち、復号装置５０の通信部５３は、ステップＳＴ４３で送信された再暗号文データＣjを受信して一時データ記憶部５２に書き込む。
【０１５１】
復号処理部５４は、公開パラメータ及び自装置５０の公開鍵ｐｋjと次の検証式を用い、一時データ記憶部５２内の再暗号文データＣjを検証する（ＳＴ５１）。
【数１１】
2012147869.tif 000013
【０１５２】
ここで、上記７つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１５３】
検証が成功した場合、復号処理部５４は、自装置の秘密鍵ｓｋjを用いて、次式に示すように、再暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２）。
【数１２】
2012147869.tif 000014
【０１５４】
なお、復号処理部５４は、ステップＳＴ５１の検証処理を省略し、ステップＳＴ５２の復号処理を行ってもよい。また、再暗号文データＣjに検証用データが含まれていない場合も、復号処理部５４は、ステップＳＴ５１の検証処理を省略し、ステップＳＴ５２の復号処理を行う。また、上記ｍはメッセージそのものではなく、鍵であってもよい。例えば、共通鍵暗号における共通鍵ｋｅｙについて、ｍ＝ｋｅｙとして、ｍをｋｅｙに置き換えてもよい。この場合、共通鍵ｋｅｙを用いてメッセージを暗号化した暗号文を上記暗号文データや再暗号文データに付加すればよい。これらは後述する実施形態や変形例においても同様である。
【０１５５】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理では暗号化処理を行なう際のパラメータ―詳しくは乱数―が不要であるため、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【０１５６】
上述したように本実施形態によれば、再暗号化鍵Ｒijを乱数θに基づいて生成する構成により、サーバとユーザが結託した場合でも、復号権限を移譲元の許可なく再移譲されることを防ぐことができる。また、これにより、サーバに対して極端な信頼を求める必要が無くなるため、ユーザがより安心して利用できるファイル共有システムを提供することができる。
【０１５７】
［変形例１］
第１の実施形態では、暗号化装置２０において暗号文データを生成し、再暗号化装置４０において暗号文データを再暗号化して再暗号文データを生成し、復号装置５０において再暗号文データを復号する例を挙げた。しかしながら、再暗号化せずに暗号文データを復号する形態に、第１の実施形態を変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第１の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【０１５８】
本変形例における暗号化処理と、第１の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置５０の識別情報をｉとする。この場合、暗号化装置２０の通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣｉを復号装置５０に送信する（ＳＴ２４’）。
【０１５９】
復号装置５０は、暗号化装置２０において生成された暗号文データＣiをステップＳＴ４１と同様に検証する。検証が成功した場合、復号装置５０は、秘密鍵ｓｋｉを用いて、次式のように暗号文データＣiを復号し、メッセージｍを得る。
【数１３】
2012147869.tif 000015
【０１６０】
［変形例２］
変形例１の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第１の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置５０の識別情報をｊとする。
【０１６１】
暗号化装置２０の暗号化パラメータ生成部２３は、ステップＳＴ２１と同様に（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１’）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１６２】
また、暗号化パラメータ生成部２３は、５つの乱数ｒ，ｓ，ｔ，ｋ，θ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１６３】
暗号文生成部２４は、これらの乱数ｒ，ｓ，ｔ，ｋ，θ及び復号装置５０の公開鍵ｐｋｊを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ4を生成する（ＳＴ２２’）。
【数１４】
2012147869.tif 000016
【０１６４】
ステップＳＴ２２’の終了後、暗号文生成部２４は、ステップＳＴ２３と同様に、使い捨て署名σを生成する。
【０１６５】
しかる後、暗号文生成部２４は、上記全ての暗号化データＣ1〜Ｃ4と使い捨て署名σとを含む暗号文データＣj＝（Ｃ1，Ｃ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’，Ｃ2’’’，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ3，Ｃ4，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０１６６】
通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣｊを復号装置５０に送信する。
【０１６７】
復号装置５０は、暗号化装置２０において生成された暗号文データＣｊをステップＳＴ５１と同様に検証する。検証が成功した場合、復号装置５０は、秘密鍵ｓｋｊを用いて、次式のように暗号文データＣｊを復号し、メッセージｍを得る。
【数１５】
2012147869.tif 000017
【０１６８】
［変形例３］
第１の実施形態では、公開パラメータにシステム固定値の３つの元ｇ，ｇ1，ｇ2が含まれる例を説明したが、これに限らず、元ｇ2を生成せず、公開パラメータに元ｇ2を含めなくてもよい。この場合、第１の実施形態において、ｇ2＝ｇとして、ｇ2をｇに置き換えればよい。これは後述する実施形態や変形例においても同様である。[
［変形例４］
第１の実施形態では、公開パラメータにシステム固定値の３つの元ｇ，ｇ1，ｇ2が含まれる例を説明したが、これに限らず、システム固定値の４つ以上の元を含めてもよい。例えば、公開パラメータに４つの元ｇ，ｇ1，ｇ2，ｇ3を含める場合、第１の実施形態において、ｇ2＝ｇ2ｇ3として、ｇ2をｇ2ｇ3に置き換えればよい。また、例えば、公開パラメータに５つの元ｇ，ｇ1，ｇ2，ｇ3，ｇ4を含める場合、第１の実施形態において、ｇ1＝ｇ1ｇ3、ｇ2＝ｇ2ｇ4として、ｇ1をｇ1ｇ3に、ｇ2をｇ2ｇ4にそれぞれ置き換えればよい。これは後述する実施形態や変形例においても同様である。
【０１６９】
（第２の実施形態）
本実施形態では、再暗号化鍵をある期間毎に更新する例を説明する。期間を表すパラメータとして、時間パラメータＬを用いる。鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理の内、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理において時間パラメータが用いられる。例えば、ある期間ｔ1において暗号化処理を行う場合、Ｌ＝ｔ1として後述する暗号化処理を行い、次の期間ｔ2において暗号化処理を行う場合、Ｌ＝ｔ2として後述する暗号化処理を行う、というように時間パラメータを用いる。以下、本実施形態における鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理について説明する。なお、上述の第１の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【０１７０】
（１）鍵セットアップ処理
公開パラメータは、第１の実施形態と同じである。公開鍵・秘密鍵生成部１４は、再暗号化鍵生成装置３０の識別情報をｉとしたとき、再暗号化鍵生成装置３０の秘密鍵ｘｉ，ｙｉ，ｚｉ，ｗｉ∈Ｚp＊を生成し、この秘密鍵ｓｋｉ＝（ｘｉ，ｙｉ，ｚｉ，ｗｉ）を用いて再暗号化鍵生成装置３０の公開鍵
【数１６】
2012147869.tif 000018
【０１７１】
である。
【０１７２】
また同様に、公開鍵・秘密鍵生成部１４は、復号装置５０の識別情報をｊとしたとき、復号装置５０の秘密鍵ｓｋｊ＝（ｘｊ，ｙｊ，ｚｊ，ｗｊ）を生成し、この秘密鍵ｓｋjを用いて復号装置５０の公開鍵
【数１７】
2012147869.tif 000019
【０１７３】
である。
【０１７４】
（２）暗号化処理
第１の実施形態と同様に、暗号化装置２０の暗号化パラメータ生成部２３は、（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１７５】
また、暗号化パラメータ生成部２３は、乱数ｒ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１７６】
暗号文生成部２４は、この乱数ｒ、再暗号化鍵生成装置３０の公開鍵ｐｋｉ、及び時間パラメータＬを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3，Ｃ4を生成する（ＳＴ２２）。
【数１８】
2012147869.tif 000020
【０１７７】
しかる後、暗号文生成部２４は、時間パラメータＬ、上記全ての暗号化データＣ1〜Ｃ4、及び使い捨て署名σを含む暗号文データＣi＝（Ｌ，Ｃ1，Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ2F，Ｃ3，Ｃ4，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０１７８】
（３）再暗号化鍵生成処理
乱数生成部３６は、３つの乱数θ，δｘ，δｙ∈Ｚp＊を生成して再暗号化鍵生成部３４に送出する。
【０１７９】
再暗号化鍵生成部３４は、これらの乱数θ，δｘ，δｙ、秘密鍵記憶部３１内の再暗号化鍵生成装置３０の秘密鍵ｓｋi、一時データ記憶部３２内の復号装置５０の公開鍵ｐｋj、及び時間パラメータＬを用いて、再暗号化鍵ＲijLを次式に示すように生成する（ＳＴ３２）。
【数１９】
2012147869.tif 000021
【０１８０】
である。なお、上式では、ｇ1＝ｇα，ｇ2＝ｇβと書き替えて表記している。
【０１８１】
（４）再暗号化処理
再暗号化処理部４４は、公開パラメータ、時間パラメータＬ、及び次の検証式を用い、一時データ記憶部４２内の暗号文データＣiを検証する（ＳＴ４１）。
【数２０】
2012147869.tif 000022
【０１８２】
ここで、上記６つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１８３】
検証が成功した場合、再暗号化パラメータ生成部４５は、４つの乱数ｓ，ｔ，ｋ，ｈ∈Ｚp＊を生成して再暗号化処理部４４に送出する。
【０１８４】
再暗号化処理部４４は、これらの乱数ｓ，ｔ，ｋ，ｈ、一時データ記憶部４２内の暗号文データＣi、一時データ記憶部４２内の再暗号化鍵ＲijL、及び時間パラメータＬを用いて、次式に示すように、再暗号化データＣ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’， Ｃ2F’，Ｃ2F’’ ，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FYを生成する（ＳＴ４２）。
【数２１】
2012147869.tif 000023
【０１８５】
ステップＳＴ４２の終了後、再暗号化処理部４４は、時間パラメータＬ、上記全ての暗号化データ再暗号化データＣ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，Ｃ4，σ）を生成し、得られた暗号文データを一時データ記憶部４２に書き込む。
【０１８６】
（５）復号処理
復号処理部５４は、公開パラメータ及び自装置５０の公開鍵ｐｋjと次の検証式を用い、一時データ記憶部５２内の再暗号文データＣjを検証する（ＳＴ５１）。
【数２２】
2012147869.tif 000024
【０１８７】
ここで、上記８つの検証式が全て成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【０１８８】
検証が成功した場合、復号処理部５４は、自装置の秘密鍵ｓｋjを用いて、次式に示すように、再暗号文データＣjを復号し、メッセージｍを得る（ＳＴ５２）。
【数２３】
2012147869.tif 000025
【０１８９】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【０１９０】
上述したように本実施形態によれば、再暗号化鍵ＲijLを乱数θ，δｘ，δｙ及び時間パラメータＬに基づいて生成する構成により、第１の実施形態の効果に加え、復号権限を移譲するか否かを期間毎に決めることができ、よりきめ細かいアクセス制御が可能となる。また、これにより、ある期間においてユーザＡ向けの暗号文についての復号権限を一度ユーザＢへ移譲した後でも、次の期間についてはユーザＡ向けの暗号文についての復号権限をユーザＢに与えない、つまり、（ユーザＡ向けの暗号文についての）ユーザＢの復号権限を無効化することが可能となるため、利便性がより向上したファイル共有システムを提供することができる。
【０１９１】
［変形例５］
第２の実施形態では、暗号化装置２０において暗号文データを生成し、再暗号化装置４０において暗号文データを再暗号化して再暗号文データを生成し、復号装置５０において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第２の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【０１９２】
本変形例における暗号化処理と、第２の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置５０の識別情報をｉとする。この場合、暗号化装置２０の通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣｉを復号装置５０に送信する（ＳＴ２４’）。
【０１９３】
復号装置５０は、暗号化装置２０において生成された暗号文データＣiをステップＳＴ４１と同様に検証する。検証が成功した場合、復号装置５０は、秘密鍵ｓｋｉを用いて、次式のように暗号文データＣiを復号し、メッセージｍを得る。
【数２４】
2012147869.tif 000026
【０１９４】
［変形例６］
変形例５の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第２の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置５０の識別情報をｊとする。
【０１９５】
暗号化装置２０の暗号化パラメータ生成部２３は、ステップＳＴ２１と同様に（ｓｓｋ，ｓｖｋ）を生成し（ＳＴ２１’）、暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【０１９６】
また、暗号化パラメータ生成部２３は、８つの乱数ｒ，ｓ，ｔ，ｋ，ｈ，θ，δｘ，δｙ∈Ｚp＊を生成して暗号文生成部２４に送出する。
【０１９７】
暗号文生成部２４は、これらの乱数ｒ，ｓ，ｔ，ｋ，ｈ，θ，δｘ，δｙ、復号装置５０の公開鍵ｐｋｊ、及び時間パラメータＬを用いて、平文データとしてのメッセージｍ∈ＧT に対して、以下の暗号化データＣ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’， Ｃ2F’，Ｃ2F’’ ，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ4を生成する（ＳＴ２２’）。
【数２５】
2012147869.tif 000027
【０１９８】
ステップＳＴ２２’の終了後、暗号文生成部２４は、ステップＳＴ２３と同様に、使い捨て署名σを生成する。
【０１９９】
しかる後、暗号文生成部２４は、時間パラメータＬ、上記全ての暗号化データＣ1〜Ｃ4と使い捨て署名σとを含む暗号文データＣj＝（Ｌ，Ｃ2X’，Ｃ2X’’， Ｃ2Y’，Ｃ2Y’’， Ｃ2Z’，Ｃ2Z’’， Ｃ2Z1’，Ｃ2Z1’’， Ｃ2F’，Ｃ2F’’ ，Ｃ5X， Ｃ5Y，Ｃ5Z，Ｃ5FX，Ｃ5FY，Ｃ3，Ｃ4，σ）を生成し、得られた暗号文データを一時データ記憶部２１に書き込む。
【０２００】
通信部２２は、制御部２５に制御されて一時データ記憶部２１内の暗号文データＣｊを復号装置５０に送信する。
【０２０１】
復号装置５０は、暗号化装置２０において生成された暗号文データＣｊをステップＳＴ５１と同様に検証する。検証が成功した場合、復号装置５０は、秘密鍵ｓｋｊを用いて、次式のように暗号文データＣｊを復号し、メッセージｍを得る。
【数２６】
2012147869.tif 000028
【０２０２】
以上説明した少なくとも一つの実施形態によれば、再暗号化鍵を乱数に基づいて生成する構成により、サーバとユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【０２０３】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０２０４】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０２０５】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０２０６】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０２０７】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２０８】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２０９】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２１０】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2012147869.tif 000032
【図２】
2012147869.tif 000033
【図３】
2012147869.tif 000034
【図４】
2012147869.tif 000035
【図５】
2012147869.tif 000036
【図６】
2012147869.tif 000037
【図７】
2012147869.tif 000038
【図８】
2012147869.tif 000039
【手続補正書】
【提出日】平成25年12月26日(2013.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段（３１）と、
前記第２秘密鍵に対応する第２公開鍵を記憶する第２記憶手段（３２）と、
第１乱数を生成する第１乱数生成手段（３６）と、
前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段（３４）と
を備え、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されていることを特徴とする再暗号化鍵生成装置。
【請求項２】
請求項１に記載の再暗号化鍵生成装置において、
再暗号化鍵生成手段（３４）は、再暗号化前の暗号文データには依存せずに、前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成することを特徴とする再暗号化鍵生成装置。
【請求項３】
請求項１に記載の再暗号化鍵生成装置において、
前記第１公開鍵は、前記第１秘密鍵及び複数のシステム固定値に基づいて生成されており、
前記第２公開鍵は、前記第２秘密鍵及び前記複数のシステム固定値に基づいて生成されていることを特徴とする再暗号化鍵生成装置。
【請求項４】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）であって、
前記第１公開鍵に対応する第１秘密鍵を記憶する第１記憶手段（３１）と、
前記第２秘密鍵に対応する第２公開鍵を記憶する第２記憶手段（３２）と、
第１乱数を生成する第１乱数生成手段（３６）と、
再暗号化前の暗号文データには依存せずに、前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段（３４）と
を備え、
前記第１秘密鍵をｓｋｉ＝（ｘｉ，ｙｉ，ｚｉ）で表し、前記第２秘密鍵をｓｋｊ＝（ｘｊ，ｙｊ，ｚｊ）で表し、前記第１乱数をθで表し、前記複数のシステム固定値をｇ，ｇ１，ｇ２で表し（但し、双線型写像ｅ：Ｇ×Ｇ→ＧTが存在する素数位数ｐの群である双線型写像群をＧ，ＧTで表したとき、ｇ，ｇ１，ｇ２∈Ｇ）、前記各システム固定値に関するベキ指数をβで表し（但し、ｇ２＝ｇβ）、前記再暗号化鍵をＲijで表すとき、
【数１】
2012147869.tif 000040
）、
前記平文データをｍで表し（但し、ｍ∈ＧT）、第２乱数をｒで表し、前記暗号文データをＣｉで表すとき（但し、前記双線型写像ｅ：Ｇ×Ｇ→ＧTをｅ（ ， ）で表す）、
Ｃｉ＝（Ｃ2X，Ｃ2Y，Ｃ2Z，Ｃ2Z1，Ｃ3）
であり（但し、
【数２】
2012147869.tif 000041
）、
前記再暗号文データをＣｊで表すとき（但し、第３乃至第５乱数をｓ，ｔ，ｋで表す）、
Ｃｊ＝（Ｃ2X’’，Ｃ2Y’’，Ｃ2Z’’，Ｃ2Z1’’，Ｃ5X，Ｃ5Y，Ｃ5Z，Ｃ3）
であり（但し、
【数３】
2012147869.tif 000042
で表されることを特徴とする再暗号化鍵生成装置。
【請求項５】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）に通信可能な再暗号化装置（４０）であって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を記憶する記憶手段（４１）と、
前記第１ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段（４４）と、
前記得られた再暗号文データを前記第２ユーザ装置に送信する手段（４３）と、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び前記再暗号化鍵生成装置により生成された第１乱数に基づいて、生成されており、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されていることを特徴とする再暗号化装置。
【請求項６】
請求項５に記載の再暗号化装置において、
前記再暗号化鍵は、再暗号化前の暗号文データには依存せずに生成されていることを特徴とする再暗号化装置。
【請求項７】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ３）に記憶されたプログラムであって、
前記第１公開鍵に対応する第１秘密鍵を前記再暗号化鍵生成装置の第１記憶手段（３１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（３３）、
前記第２秘密鍵に対応する第２公開鍵を前記再暗号化鍵生成装置の第２記憶手段（３２）に書込む処理を前記プロセッサに実行させる第２プログラムコード（ＳＴ３１）、
第１乱数を生成する処理を前記プロセッサに実行させる第３プログラムコード（３６）、
前記第１秘密鍵、前記第２公開鍵及び前記第１乱数に基づいて、前記再暗号化鍵を生成する処理を前記プロセッサに実行させる第４プログラムコード（３２）、
を備え、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されているプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記再暗号化鍵を生成する処理は、再暗号化前の暗号文データには依存せずに前記プロセッサに実行させることを特徴とするプログラム。
【請求項９】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置（３０）に通信可能な再暗号化装置（４０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ４）に記憶されたプログラムであって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を前記再暗号化装置の記憶手段（４１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（４３）、
前記第１ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る処理を前記プロセッサに実行させる第２プログラムコード（４４）、
前記得られた再暗号文データを前記第２ユーザ装置に送信する処理を前記プロセッサに実行させる第３プログラムコード（ＳＴ４３）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び前記再暗号化鍵生成装置により生成された第１乱数に基づいて、生成されており、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されているプログラム。
【請求項１０】
第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を用いる再暗号化装置（４０）に通信可能な暗号化装置（２０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ２）に記憶されたプログラムであって、
前記第１公開鍵を前記暗号化装置の記憶手段（２１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（２２）、
前記記憶手段内の第１公開鍵を用いて前記平文データを暗号化して前記暗号文データを得る処理を前記プロセッサに実行させる第２プログラムコード（ＳＴ２２）、
前記得られた暗号文データを前記再暗号化装置に送信する処理を前記プロセッサに実行させる第３プログラムコード（ＳＴ２４）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び当該再暗号化鍵を生成する再暗号化鍵生成装置（３０）により生成された第１乱数に基づいて、生成されており、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されているプログラム。
【請求項１１】
再暗号化装置が再暗号化鍵に基づいて、第１ユーザ装置の第１公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第２ユーザ装置の第２秘密鍵により復号可能な再暗号文データを得た後に、前記再暗号化装置（４０）から受けた前記再暗号文データを復号する復号装置（５０）のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体（Ｍ５）に記憶されたプログラムであって、
前記第２秘密鍵を前記復号装置の記憶手段（５１）に書込む処理を前記プロセッサに実行させる第１プログラムコード（５３）、
前記再暗号化装置から前記再暗号文データを受けると、前記記憶手段内の第２秘密鍵に基づいて、当該再暗号文データを復号して前記平文データを得る処理を前記プロセッサに実行させる第２プログラムコード（５４）、
を備え、
前記再暗号化鍵は、前記第１公開鍵に対応する第１秘密鍵、前記第２秘密鍵に対応する第２公開鍵、及び当該再暗号化鍵を生成する再暗号化鍵生成装置（３０）により生成された第１乱数に基づいて、生成されており、
前記暗号文データは、前記第１公開鍵及び第２乱数に基づいて生成されており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第３乃至第５乱数に基づいて生成されているプログラム。
【請求項１２】
請求項９乃至請求項１１のいずれか１項に記載のプログラムにおいて、
前記再暗号化鍵は、再暗号化前の暗号文データには依存せずに生成されることを特徴とするプログラム。
【国際調査報告】
2012147869.tif 000043
2012147869.tif 000044
2012147869.tif 000045
2012147869.tif 000046
2012147869.tif 000047
2012147869.tif 000048