(57)【特許請求の範囲】
【請求項１】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置であって、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する記憶手段と、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、前記再暗号化鍵を前記ユーザ装置に送信し、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵から計算された更新後の再暗号化鍵を前記ユーザ装置から受信する送受信手段と、
前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する置換手段と、
を備えたことを特徴とするサーバ装置。
【請求項２】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置であって、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する記憶手段と、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する第１計算手段と、
前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する送受信手段と、
前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する第２計算手段と、
を備えたことを特徴とするサーバ装置。
【請求項３】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置に用いられるプログラムであって、
前記サーバ装置を
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を前記サーバ装置の記憶手段に書込む手段、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、前記再暗号化鍵を前記ユーザ装置に送信し、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵から計算された更新後の再暗号化鍵を前記ユーザ装置から受信する送受信手段、
前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する置換手段、
として機能させるためのプログラム。
【請求項４】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置に用いられるプログラムであって、
前記サーバ装置を、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を前記サーバ装置の記憶手段に書込む手段、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する第１計算手段、
前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する送受信手段、
前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する第２計算手段、
として機能させるためのプログラム。
【請求項５】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵であって、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶するサーバ装置に通信可能な前記ユーザ装置に用いられるプログラムであって、
前記ユーザ装置を、
更新前のユーザ公開鍵に対応する更新前のユーザ秘密鍵と、更新後のユーザ公開鍵に対応する更新後のユーザ秘密鍵とを前記ユーザ装置の記憶手段に書込む手段、
前記再暗号化鍵を更新する旨の通知を前記サーバ装置に送信し、前記サーバ装置から前記再暗号化鍵及び乱数に基づいて計算された再暗号化鍵情報を受信する手段、
前記受信した再暗号化鍵情報と、前記更新前のユーザ秘密鍵及び前記更新後のユーザ秘密鍵とに基づいて当該再暗号化鍵情報から再暗号化鍵更新情報を計算する手段、
前記計算した再暗号化鍵更新情報を前記サーバ装置に送信する手段、
として機能させ、
前記再暗号化鍵更新情報は、前記サーバ装置により、前記乱数に基づいて更新後の再暗号化鍵が計算される情報であり、
前記更新後の再暗号化鍵は、前記サーバ装置により、更新前の再暗号化鍵から置換されて記憶されるプログラム。
【請求項６】
グループ管理者装置の管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵であって、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶するサーバ装置に通信可能な前記グループ管理者装置に用いられるプログラムであって、
前記グループ管理者装置を、
前記管理者秘密鍵を前記グループ管理者装置の記憶手段に書込む手段、
前記サーバ装置から受けた前記ユーザ公開鍵と、前記管理者秘密鍵とに基づいて、前記再暗号化鍵を生成する生成手段、
前記生成手段により生成した再暗号化鍵を前記サーバ装置に送信する手段、
として機能させ、
前記再暗号化鍵は、前記サーバ装置により、乱数に基づいて再暗号化鍵情報が計算される情報であり、
前記再暗号化鍵情報は、前記ユーザ装置により、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて再暗号化鍵更新情報が計算される情報であり、
前記再暗号化鍵更新情報は、前記サーバ装置により、前記乱数に基づいて更新後の再暗号化鍵が計算される情報であり、
前記更新後の再暗号化鍵は、前記サーバ装置により更新前の再暗号化鍵から置換されて記憶されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、サーバ装置及びプログラムに関する。
【背景技術】
【０００２】
ユーザがサーバ装置にファイルをアップロードし、複数ユーザ間でそのファイルを共有するファイル共有システムにおいて、サーバ装置に対してファイルデータの秘匿性を保つ方法として以下の三つが挙げられる。
【０００３】
（１）各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。
【０００４】
（２）各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。
【０００５】
（３）プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。
【０００６】
上記（１）〜（３）の方式において、サーバ装置にファイルをアップロードするユーザをユーザＡとし、ユーザＡがユーザＢ、ユーザＣとファイルを共有するとする。
【０００７】
（１）の個別鍵方式では、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。ユーザＡは、（ユーザＢに個別の暗号化鍵である）ユーザＢの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。同様に、ユーザＡは、（ユーザＣに個別の暗号化鍵である）ユーザＣの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。つまり、ユーザＡは、ファイルを共有する全てのユーザそれぞれに対して個別にファイルを暗号化する。
【０００８】
（２）の共通鍵方式では、各ユーザに共通の秘密鍵と公開鍵の組を各ユーザが共有する。ユーザＡは、（各ユーザに共通の暗号化鍵である）公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。各ユーザは、同一の秘密鍵を共有している。
【０００９】
（３）のプロキシ再暗号化方式では、（１）の個別鍵方式と同様に、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。しかしながら、（１）の個別鍵方式とは異なり、ユーザＡは、ユーザのグループを管理するエンティティ（以下、グループ管理者と呼ぶ）の公開鍵（以下、グループ公開鍵と呼ぶ）でファイルを暗号化すれば良く、サーバ装置が、再暗号化鍵を用いて（ユーザＡがアップロードした）暗号化ファイルを各ユーザだけが復号できる暗号化ファイルにそれぞれ再暗号化する。プロキシ再暗号化方式の詳細は後述する。
【００１０】
（１）の個別鍵方式では、新たにユーザＤともファイルを共有したいとき、ユーザＡが（ユーザＤに個別の暗号化鍵である）ユーザＤの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする必要があるという不都合がある。従って、（１）の個別鍵方式は、新規ユーザ数が多かったり、共有したいファイル数が多かったりする場合、新規ユーザ追加時の処理が煩雑となるため、上記ファイル共有システムに不適である。
【００１１】
（２）の共通鍵方式では、ある時点から（その時点までファイル共有を許可していた）あるユーザがファイルを共有できないようにする（当該ユーザをファイル共有システムから排除する）際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要であることや、各ユーザに共通の秘密鍵が万が一漏洩してしまった場合、全ての暗号化ファイルが（当該漏洩鍵を入手した者ならば誰でも）復号可能となってしまう不都合がある。このため、（２）の共通鍵方式は、ファイル共有システムに不適である。
【００１２】
一方、（３）のプロキシ再暗号化方式では、サーバ装置が再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にすれば、上述した不都合を解決している。このため、（３）のプロキシ再暗号化方式は、ファイル共有システムに好適である。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】B. Libert and D. Vergnaud, "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption," Proc. PKC 2008, LNCS 4939, pp.360-379, Springer, 2008.
【非特許文献２】G. Ateniese, K. Fu, M. Green and S. Hohenberger, “Improved proxy re-encryption schemes with applications to secure distributed storage,” Internet Society (ISOC): NDSS 2005, pp. 29-43, 2005.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、（３）のプロキシ再暗号化方式では、ユーザが第三者の提供するファイル共有サービスを利用する場合（例えば、ユーザがインターネットを経由してサーバ装置にアクセスしてサービスを利用する場合）、ユーザがサーバ装置を過度に信頼できないことから、ユーザの秘密鍵をユーザ自身が生成して当該ユーザのみが保持することが望ましい。
【００１５】
これに対し、（３）のプロキシ再暗号化方式では、再暗号化鍵の更新にグループ公開鍵に対応する秘密鍵（以下、グループ秘密鍵と呼ぶ）を必要とするため、ユーザの秘密鍵をグループ管理者に知らせない場合、グループ秘密鍵を持つグループ管理者が不在の場合に再暗号化鍵を更新できないという不都合がある。
【００１６】
本発明が解決しようとする課題は、ユーザの秘密鍵をグループ管理者に知らせない場合、かつグループ管理者が不在の場合でも、再暗号化鍵を更新し得るサーバ装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１７】
実施形態のサーバ装置は、管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶する。
【００１８】
前記サーバ装置は、記憶手段、第１計算手段、送受信手段及び第２計算手段を備えている。
【００１９】
前記記憶手段は、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する。
【００２０】
前記第１計算手段は、前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する。
【００２１】
前記送受信手段は、前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する。
【００２２】
前記第２計算手段は、前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する。
【図面の簡単な説明】
【００２３】
【図１】第１の実施形態に係るファイル共有システムの構成を例示する図である。
【図２】同実施形態におけるファイル共有システムの概要を示す模式図である。
【図３】同実施形態におけるファイル共有システムに適用されるサーバ装置、ユーザ装置及びグループ管理者装置の構成を説明するための模式図である。
【図４】同実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【図５】同実施形態における再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【図６】同実施形態における再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【図７】第３の実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【図８】第４の実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【発明を実施するための形態】
【００２４】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【００２５】
（第１の実施形態）
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の５つの関数（以下、アルゴリズムともいう）からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【００２６】
（鍵生成）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を持たない。従って、サーバ装置Ｓｖはこの暗号文を復号できない。これは、不正なサーバ装置Ｓｖが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバ装置Ｓｖを厳重に管理しなくても良く、サーバ装置Ｓｖの管理コストの低減に繋がる。
【００４４】
ユーザＢがファイル共有を行う際も上記と同様である。
【００４５】
図３は、ファイル共有システムに適用されるサーバ装置、ユーザ装置及びグループ管理者装置の構成を説明するための模式図である。なお、以下の構成の説明は、（１）鍵セットアップ処理、（２）暗号化処理、（３）再暗号化鍵生成処理、（４）再暗号化処理、（５）復号処理、（６）再暗号化鍵更新処理のうち、（６）再暗号化鍵の更新処理に関する内容を主に述べている。他の処理については、非特許文献１に開示されている。
【００４６】
サーバ装置Ｓｖは、グループ管理者の公開鍵（以下、管理者公開鍵ともいう）により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置の秘密鍵（以下、ユーザ秘密鍵ともいう）により復号可能な再暗号文データを得るための再暗号化鍵を記憶するものである。
【００４７】
具体的には、サーバ装置Ｓｖは、公開鍵記憶部１１、暗号文記憶部１２、再暗号化鍵記憶部１３、送受信部１４、再暗号化部１５、再暗号化鍵情報生成部１６及び更新済み再暗号化鍵生成部１７を備えている。
【００４８】
公開鍵記憶部１１は、各部１４〜１７から読出／書込可能な記憶部であり、各ユーザの公開鍵やグループ管理者の公開鍵が記憶されている。
【００４９】
暗号文記憶部１２においては、各部１４〜１７から読出／書込可能な記憶部であり、ユーザからアップロードされた暗号文が記憶されている。
【００５０】
再暗号化鍵記憶部１３は、各部１４〜１７から読出／書込可能な記憶部であり、グループ管理者の公開鍵ｇｘに対応する秘密鍵ｘ（以下、管理者秘密鍵ともいう）と、ユーザの秘密鍵pwに対応する公開鍵Ｄ（以下、ユーザ公開鍵ともいう）とに基づいて生成された再暗号化鍵Ｒ（＝Ｄ＾{1/x}＝ｇ＾{pw/x}）を記憶するものである（＾はベキ乗を表す記号）。また、再暗号化鍵記憶部１３においては、更新前の再暗号化鍵Ｒを更新後の再暗号化鍵Ｗに置換可能（上書き可能）となっている。
【００５１】
送受信部１４は、サーバ装置Ｓｖと通信網との間の通信インタフェースであり、例えば、再暗号化鍵情報生成部１６により計算（生成）された再暗号化鍵情報Ｙ（＝Ｒ＾h）をユーザ装置（例、Ｂ）に送信し、ユーザ装置から更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵情報Ｙから計算された再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）を受信する送受信機能をもっている。なお、説明を簡潔にするため、以下では送受信部１４を介して送受信する旨の記載を適宜、省略する。
【００５２】
再暗号化部１５は、再暗号化鍵記憶部１３において記憶されている再暗号化鍵を用いて暗号文を再暗号化する。再暗号化部１５における具体的な処理については後述する。
【００５３】
再暗号化鍵情報生成部１６は、ユーザ装置Ｂから再暗号化鍵Ｒを更新する旨の通知を受けると、乱数hを生成し、再暗号化鍵記憶部１３に記憶された再暗号化鍵Ｒ及び当該生成した乱数hに基づいて再暗号化鍵情報Ｙ（＝Ｒ＾h）を計算する第１計算機能をもっている。
【００５４】
更新済み再暗号化鍵生成部１７は、送受信部２３により受信された再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）、及び再暗号化鍵情報生成部１６により生成された乱数ｈに基づいて更新後の再暗号化鍵Ｗ（＝Ｚ＾{1/h}＝ｇ＾{d/x}）を計算すると共に、再暗号化鍵記憶部１２内の再暗号化鍵Ｒを更新後の再暗号化鍵Ｗに置換する第２計算機能をもっている。
【００５５】
なお、再暗号化鍵Ｒは、サーバ装置Ｓｖにより、乱数ｈに基づいて再暗号化鍵情報Ｙ（＝Ｒ＾h）が計算される情報でもある。
【００５６】
再暗号化鍵情報Ｙは、ユーザ装置Ｂにより、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）が計算される情報でもある。
【００５７】
再暗号化鍵更新情報Ｚは、サーバ装置Ｓｖにより、乱数hに基づいて更新後の再暗号化鍵Ｗ（＝Ｚ＾{1/h}＝ｇ＾{d/x}）が計算される情報でもある。
【００５８】
前記更新後の再暗号化鍵は、前記サーバ装置により更新前の再暗号化鍵から置換されて記憶されるプログラム。
【００５９】
一方、ユーザ装置Ａ，Ｂ，Ｃ，…は、互いに同一のハードウェア構成であるため、ここではユーザ装置Ｂを例に挙げて説明する。
【００６０】
ユーザ装置Ｂは、秘密鍵記憶部２１、ファイルデータ記憶部２２、送受信部２３、鍵生成部２４、暗号化部２５、復号部２６及び再暗号化鍵更新情報生成部２７を備えている。
【００６１】
秘密鍵記憶部２１は、各部２３〜２７から読出／書込可能な記憶部であり、更新前のユーザ公開鍵Ｄ＝ｇ＾{pw}に対応する更新前のユーザ秘密鍵pwと、更新後のユーザ公開鍵ｇ＾dに対応する更新後のユーザ秘密鍵dとを記憶する。
【００６２】
ファイルデータ記憶部２２は、各部２３〜２７から読出／書込可能な記憶部であり、ファイルデータを記憶する。
【００６３】
送受信部２３は、ユーザ装置Ｂと通信網との通信インタフェースであり、例えば、再暗号化鍵Ｒ（＝Ｄ＾{1/x}＝ｇ＾{pw/x}）を更新する旨の通知をサーバ装置Ｓｖに送信し、サーバ装置Ｓｖから再暗号化鍵Ｒ及び乱数hに基づいて計算された再暗号化鍵情報Ｙ（＝Ｒ＾h）を受信する機能と、再暗号化鍵更新情報生成部２７により計算された再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）をサーバ装置Ｓｖに送信する機能とを持っている。なお、説明を簡潔にするため、以下では送受信部２３を介して送受信する旨の記載を適宜、省略する。
【００６４】
鍵生成部２４は、公開鍵・秘密鍵の組を生成する。また、鍵生成部２４は、鍵生成に必要な各パラメータを保持している。鍵生成に必要な各パラメータについては後述する。
【００６５】
暗号化部２５は、サーバ装置Ｓｖから送受信部２３を介して通知される（又は以前に取得した公開鍵で、ユーザ装置Ｂが記憶している）グループ管理者の公開鍵を用いて、ファイルデータ記憶部２２に記憶されているファイルデータを暗号化する。
【００６６】
復号部２６は、秘密鍵記憶部２１において記憶されているユーザの秘密鍵を用いて、再暗号文（又は暗号文）を復号する。
【００６７】
再暗号化鍵更新情報生成部２７は、送受信部２３により受信した再暗号化鍵情報Ｙ（＝Ｒ＾h）と、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dとに基づいて当該再暗号化鍵情報Ｙから再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）を計算する機能をもっている。
【００６８】
他方、グループ管理者装置Ｍは、秘密鍵記憶部３１、送受信部３２、鍵生成部３３及び再暗号化鍵生成部３４を備えている。
【００６９】
秘密鍵記憶部３１は、各部３２〜３４から読出／書込可能な記憶部であり、鍵生成部３３において生成されたグループ管理者の管理者秘密鍵ｘを記憶する。
【００７０】
送受信部３２は、グループ管理者装置Ｍと通信網との間の通信インタフェースであり、例えば、鍵生成部３３において生成されたグループ管理者の公開鍵ｇ＾ｘをサーバ装置Ｓｖに送信する機能と、サーバ装置Ｓｖからユーザ装置Ｂのユーザ公開鍵Ｄ（＝ｇ＾{pw}）を受信する機能と、再暗号化鍵生成部３４により生成された再暗号化鍵Ｒをサーバ装置Ｓｖに送信する機能とをもっている。
【００７１】
鍵生成部３３は、公開鍵・秘密鍵の組を生成する。また、鍵生成部３３は、鍵生成に必要な各パラメータを保持している。
【００７２】
再暗号化鍵生成部３４は、送受信部３２により受信したユーザ公開鍵Ｄ（＝ｇ＾{pw}）と、秘密鍵記憶部３１内の管理者秘密鍵ｘとに基づいて、再暗号化鍵Ｒ（＝Ｄ＾{1/x}＝ｇ＾{pw/x}）を生成（発行）する機能をもっている。本実施形態の一側面は、グループ管理者が不在の場合でも、つまり、グループ管理者の秘密鍵ｘを用いずに、サーバ装置Ｓｖが更新前の再暗号化鍵Ｒを更新後の再暗号化鍵Ｗに更新し得る。
【００７３】
次に、以上のように構成された再暗号化システムの動作を説明する。また、以下の動作は、（１）鍵セットアップ処理、（２）暗号化処理、（３）再暗号化鍵生成処理、（４）再暗号化処理、（５）復号処理、（６）再暗号化鍵更新処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくても良い。例えば、再暗号化鍵生成は、暗号化処理の前に実行されても良い。また、再暗号化処理が実行されずに、暗号文が復号されても良い。また、（１）〜（５）の処理は非特許文献１に開示されており、（６）の処理が本実施形態による再暗号化鍵の更新方法である。すなわち、再暗号化鍵の更新処理（６）以外の処理（１）〜（５）については、非特許文献１を補足的に参照して理解を深めることができる。
【００７４】
（１．鍵セットアップ処理）始めに、鍵生成部３３は、公開パラメータ（ｐ，λ，Ｇ，ＧT，ｇ，ｕ，ｖ，Sig）を生成する、又は外部から入手する（ＳＴ１）。ここで、λはセキュリティパラメータである。ｐはｐ＞２λを満たす素数である。Ｇ，ＧTは素数位数ｐ＞２λを満たす双線型写像群(bilinear map groups)（Ｇ，ＧT）である。ｇ，ｕ，ｖは、Ｇの生成元である（ｇ，ｕ，ｖ∈Ｇ）。Sigは強偽造不可能性を満たす使い捨て署名（one-time signature）方式
【数１】
0005367039.tif 000002
【００７５】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (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，ｇ，ｕ，ｖ，Sig）が記憶されている。
【００８４】
次に、鍵生成部３３は、ユーザの識別情報をｉとしたとき、ユーザｉの秘密鍵ｘｉ∈Ｚp＊を生成し、この秘密鍵ｘｉを用いてユーザｉの公開鍵
【数２】
0005367039.tif 000003
【００８５】
を生成する。なお、Ｚp＊はＺpかつｐと互いに素な整数の集合（＝（Ｚ/pＺ）＊）であり、素数ｐに対する乗法群Ｚp＊と呼んでもよい。Ｚpは０以上ｐ未満の整数の集合（＝（Ｚ/pＺ）である。
【００８６】
ユーザｉの秘密鍵ｘｉはユーザｉの秘密鍵記憶部２１に記憶される。ユーザｉの公開鍵Ｘｉはサーバ装置Ｓｖの公開鍵記憶部１１に記憶される。グループ管理者の秘密鍵・公開鍵についても同様に、グループ管理者の鍵生成部３３において生成される。
【００８７】
（２．暗号化処理）暗号化部２５は、公開パラメータにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数３】
0005367039.tif 000004
【００８８】
を生成し、第１暗号化データＣ1に検証鍵ｓｖｋをセットする（Ｃ1＝ｓｖｋ）。
【００８９】
暗号化部２５は、第１乱数ｒ∈Ｚp＊を生成する。暗号化部２５は、この第１乱数ｒに基づき、平文データとしてのメッセージｍ∈ＧT に対して、以下の第２、第３及び第４暗号化データＣ2，Ｃ3，Ｃ4を生成する。
【数４】
0005367039.tif 000005
【００９０】
具体的には、ユーザｉの公開鍵Ｘiと、第１乱数ｒとに基づいて、第２暗号化データＣ2を生成する。また、公開パラメータにおける生成元ｇと、第１乱数ｒと、メッセージｍとに基づき、ペアリング関数によって第３暗号化データＣ3を生成する。さらに、公開パラメータにおける生成元ｕ，ｖと、上記において生成した検証鍵ｓｖｋと、第１乱数ｒとに基づいて、第４暗号化データＣ4を生成する。
【００９１】
暗号化部２５は、第３及び第４暗号化データＣ3，Ｃ4に対し、公開パラメータにおける署名生成機能
【数５】
0005367039.tif 000006
【００９２】
上記の暗号化処理により得られる暗号文は、これら第１乃至第４暗号化データＣ1〜Ｃ4と使い捨て署名σとを含む暗号文Ｃi＝（Ｃ1，Ｃ2，Ｃ3，Ｃ4，σ）である。
【００９３】
（３．再暗号化鍵生成処理）再暗号化鍵生成部３４は、秘密鍵記憶部３１に記憶されている（本実施形態ではグループ管理者の）秘密鍵ｘiと、ユーザｊの公開鍵Ｘjから、再暗号化鍵Ｒijを次式に示すように生成する。
【数６】
0005367039.tif 000007
【００９４】
再暗号化鍵Ｒijは、ユーザｉ宛の暗号文を、ユーザｊ宛の再暗号文に再暗号化する際に用いられる。
【００９５】
（４．再暗号化処理）ユーザｉ宛の暗号文を、ユーザｊ宛の再暗号文に再暗号化する処理を説明する。再暗号化部１５は、公開パラメータと次の検証式を用い、暗号化処理において得られた暗号文Ｃiを検証する。ここで、２つの検証式が成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【数７】
0005367039.tif 000008
【００９６】
検証が成功した場合、再暗号化部１５は、第２乱数ｔ∈Ｚp＊を生成し、暗号化処理において得られた暗号文Ｃiと、再暗号化鍵生成処理において得られた再暗号化鍵Ｒijとを用いて、次式に示すように、第１、第２及び第３再暗号化データＣ2’，Ｃ2’’，Ｃ2’’’を生成する。
【数８】
0005367039.tif 000009
【００９７】
具体的には、ユーザｉの公開鍵Ｘiと、第２乱数ｔとに基づいて、第１再暗号化データＣ2’を生成する。また、再暗号化鍵生成処理において得られた再暗号化鍵Ｒij及び第２乱数ｔに基づいて、第２再暗号化データＣ2’’を生成する。さらに、第２暗号化データＣ2及び第２乱数ｔに基づいて、第３再暗号化データＣ2’’’を生成する。
【００９８】
検証が失敗した場合は処理を終了する。
【００９９】
上記の再暗号化処理により得られる再暗号文は、これら第１乃至第３再暗号化データＣ2’〜Ｃ2’’’を、暗号文データＣi内の第２暗号化データＣ2と置換して得られる再暗号文Ｃj＝（Ｃ1，Ｃ2’，Ｃ2’’，Ｃ2’’’，Ｃ3，Ｃ4，σ）である。
【０１００】
（５．復号処理）ユーザｊが再暗号文を復号する処理を説明する。復号部２６は、公開パラメータ及びユーザｊの公開鍵Ｘjと次の検証式を用い、再暗号文Ｃjを検証する。ここで、３つの検証式が成立すれば検証は成功し、１つでも成立しない検証式があれば検証は失敗する。
【数９】
0005367039.tif 000010
【０１０１】
検証が成功した場合、復号部２６は、ユーザｊの秘密鍵ｘjに基づいて、次式に示すように、再暗号化処理で得られた再暗号文Ｃjを復号し、メッセージｍを得る。
【数１０】
0005367039.tif 000011
【０１０２】
検証が失敗した場合は処理を終了する。
【０１０３】
次に、本実施形態に係る（６）再暗号化鍵の更新処理を説明する。図４は、再暗号化鍵の更新処理の概要を示す模式図である。なお、ファイル共有システムとしては図２において説明したものを想定する。ユーザ管理者Ｕは、グループ管理者を含めた全ユーザを管理するエンティティである。ユーザ管理者であるユーザＵは、ファイル共有システムに参加する各ユーザに、ファイル共有システムにログインできるようにするためのＩＤ（ユーザＢに与えるＩＤをＩＤと表記する）と初期パスワード（ユーザＢに与えるパスワードをｐｗと表記する）を発行する。パスワードは、ユーザ管理者Ｕにより発行される仮の秘密鍵とみなすことができる。グループ管理者Ｍは、グループ管理者Ｍの秘密鍵ｘと公開鍵ｇxとを生成する。以下、グループ管理者Ｍ宛の暗号文をユーザＢ宛の再暗号文に再暗号化するための再暗号化鍵を更新する際の処理を説明する。この更新処理には、ユーザ装置Ｂの秘密鍵ｐｗとそれに対応する公開鍵の更新も伴う。
【０１０４】
図５及び図６は、再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【０１０５】
ユーザ管理者装置Ｕは、ユーザ装置Ｂに対し、ＩＤと初期パスワードを発行する（ステップＳＴ１）。
【０１０６】
ユーザ管理者装置Ｕは、初期パスワードｐｗを仮の秘密鍵と見立て、次式を用いて、これに対応する仮の公開鍵Ｄを生成し、サーバ装置Ｓｖへ送信する（ステップＳＴ２）。
【０１０７】
Ｄ＝ｇpw
サーバ装置Ｓｖは、ユーザ管理者装置Ｕから送られてきた仮の公開鍵Ｄを公開鍵記憶部１１に記憶する（ステップＳＴ３）。
【０１０８】
公開鍵と秘密鍵の組（ｇx, x）を持つグループ管理者装置Ｍは、サーバ装置Ｓｖに仮の公開鍵Ｄを要求し、サーバ装置Ｓｖはグループ管理者装置Ｍに仮の公開鍵Ｄを送信する（ステップＳＴ４）。グループ管理者装置Ｍは、再暗号化鍵生成部３４において、次式を用いて、グループ管理者装置Ｍ宛の暗号文をユーザ装置Ｂ宛の再暗号文に再暗号化するための再暗号化鍵Ｒを生成し、サーバ装置Ｓｖへ送信する（ステップＳＴ５）。
【０１０９】
Ｒ＝Ｄ1/x＝ｇpw/x
サーバ装置Ｓｖは、グループ管理者装置Ｍから受信した再暗号化鍵Ｒを再暗号化鍵記憶部１３に記憶する（ステップＳＴ６）。
【０１１０】
ユーザ装置Ｂは、ユーザＢの操作により、ステップＳＴ１で発行されたＩＤと初期パスワードを用いてファイル共有システムにログインし、サーバ装置Ｓｖに対して、再暗号化鍵を更新する旨の通知を行う（ステップＳＴ７）。
【０１１１】
サーバ装置Ｓｖは、再暗号化鍵記憶部１３より該当する再暗号化鍵（上述の例ではグループ管理者装置Ｍ宛の暗号文をユーザ装置Ｂ宛の再暗号文に再暗号化するための再暗号化鍵Ｒ）を取得し、再暗号化鍵情報生成部１６において、乱数ｈを生成し、次式を用いて再暗号化鍵情報Ｙを計算し、ユーザ装置Ｂに再暗号化鍵情報Ｙを送信する（ステップＳＴ８）。
【０１１２】
Ｙ＝Ｒh＝ｇpw・h/x
ユーザ装置Ｂは、鍵生成部２４において、新しい公開鍵と秘密鍵の組（（ｇd,ｄ）と表記する）を生成する（ステップＳＴ９）。ユーザ装置Ｂは、秘密鍵記憶部２１において秘密鍵ｄを記憶する（ステップＳＴ１０）。ユーザ装置Ｂは、再暗号化鍵更新情報生成部２７において次式を用いて再暗号化鍵更新情報Ｚを計算し、サーバ装置Ｓｖに再暗号化鍵更新情報Ｚと新しい公開鍵ｇdを送信する（ステップＳＴ１１）。
【０１１３】
Ｚ＝Ｙd/pw＝ｇd・h/x
サーバ装置Ｓｖは、公開鍵記憶部１１において古い公開鍵Ｄを新しい公開鍵ｇdに置き換える（ステップＳＴ１２）。また、サーバ装置Ｓｖは、更新済み再暗号化鍵生成部１７において、次式を用いて新しい再暗号化鍵Ｗを計算し、再暗号化鍵記憶部１３において古い再暗号化鍵Ｒを新しい再暗号化鍵Ｗに置き換える（ステップＳＴ１３）。
【０１１４】
Ｗ＝Ｚ1/h＝ｇd/x
上述の例では、グループ管理者が初めてファイル共有システムに参加する際の処理についての説明を省略したが、図２において説明したファイル共有システムでは、グループ管理者は、自身の公開鍵ｐｋGrをサーバ装置Ｓｖへ送信するだけで良いため、以下の処理を行えば良い。ユーザ管理者Ｕは、グループ管理者Ｍに対して、ＩＤと初期パスワードを発行する。グループ管理者は、与えられたＩＤと初期パスワードを用いてファイル共有システムにログインする。グループ管理者は、鍵生成部３３において、公開鍵ｐｋGrと秘密鍵ｓｋGrの組（ｇx, x）を生成し（又は事前に生成しておき）、秘密鍵記憶部３１において秘密鍵ｘ（＝ｓｋGr）を記憶し、公開鍵ｇx（＝ｐｋGr）をサーバ装置Ｓｖへ送信する。サーバ装置Ｓｖは、公開鍵記憶部１１において送られてきた公開鍵ｇxを記憶する。このようにしておけば、図２において、ユーザＣが、暗号文を生成する際に用いるグループ管理者の公開鍵ｇxをサーバ装置Ｓｖから取得することが可能となる。
【０１１５】
なお、一度再暗号化鍵を更新した以降に、再び再暗号化鍵を更新する場合は、ステップＳＴ７から処理を始めれば良い。この場合、初期のユーザ秘密鍵ｐｗを更新前のユーザ秘密鍵dと読み替えれば良い。また、図５及び図６の各ステップは必ずしもこの順序で行わなくても良い。例えば、ステップＳＴ８の処理の前にステップＳＴ９、ステップＳＴ１０の処理を行っても良いし、ステップＳＴ８の処理とステップＳＴ９、ステップＳＴ１０の処理を同時に行っても良い。また、ステップＳＴ１２の処理とステップＳＴ１３の処理の順番を入れ替えて行っても良い。
【０１１６】
このように再暗号化鍵の更新処理を行えば、再暗号化鍵の更新にグループ管理者の秘密鍵ｘが不要になり、図５及び図６のステップＳＴ６以降グループ管理者の登場が不要となるため、グループ管理者が不在の場合でも再暗号化鍵を生成可能となる。また、サーバ装置Ｓｖにはグループ管理者の秘密鍵ｘを知らせない構成のため、サーバ装置Ｓｖに対する（ファイルデータの）秘匿性も保たれる。また、ユーザに再暗号化鍵（上述の例ではＷ）を知らせない構成のため、再暗号化鍵の漏洩のリスクを抑えることができる。また、ユーザは、新しいユーザ秘密鍵（上述の例ではｄ）を他人に知らせる必要がないため、秘密鍵の漏洩のリスクを抑えることができる。また、（上述した再暗号化鍵の更新処理を行わず）グループ管理者の機能を有するプログラムを常時オンラインのＰＣに実装して自動応答させることで、グループ管理者Ｍが不在の場合でも再暗号化鍵を生成することが考えられる。しかしながら、この場合、当該グループ管理者のＰＣが常にオンラインであるため、外部からの攻撃を受ける恐れがあり、攻撃によってグループ管理者の秘密鍵ｘを盗まれてしまうリスクが伴う。これに対し、上述した再暗号化鍵の更新処理を行えば、このようなリスクを負うことなく安全に再暗号化鍵を生成することが可能となる。
【０１１７】
上述したように本実施形態によれば、サーバ装置Ｓｖが、ユーザ装置Ｂから再暗号化鍵Ｒを更新する旨の通知を受けると、乱数hを生成し、再暗号化鍵記憶部１３に記憶された再暗号化鍵Ｒ及び当該生成した乱数hに基づいて再暗号化鍵情報Ｙ（＝Ｒ＾h）を計算し、この暗号化鍵情報Ｙをユーザ装置Ｂに送信し、ユーザ装置Ｂから更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵情報Ｙから計算された再暗号化鍵更新情報Ｚ（＝Ｙ＾{d/pw}＝ｇ＾{d・h/x}）を受信し、この再暗号化鍵更新情報Ｚ及び前述した乱数ｈに基づいて更新後の再暗号化鍵Ｗ（＝Ｚ＾{1/h}＝ｇ＾{d/x}）を計算すると共に、再暗号化鍵記憶部１２内の再暗号化鍵Ｒを更新後の再暗号化鍵Ｗに置換する構成により、ユーザＢのユーザ秘密鍵dをグループ管理者Ｍに知らせない場合、かつグループ管理者が不在の場合でも、再暗号化鍵を更新することができる。
【０１１８】
［変形例１］
上述した実施形態では、サーバ装置Ｓｖが乱数ｈを用い、再暗号化鍵Ｒのｈ乗の計算により再暗号化鍵情報Ｙを計算し、Ｚの１／ｈ乗の計算により、更新後の再暗号化鍵Ｗを計算した。これに限らず、サーバ装置Ｓｖが乱数ｈを用い、以下の各式に示すように、Ｘの１／ｈ乗の計算により再暗号化鍵情報Ｙ’を計算し、Ｚ’のｒ乗の計算により、更新後の再暗号化鍵Ｗを計算してもよい。
【０１１９】
Ｙ’＝Ｒ1/h＝ｇpw/x・h
Ｚ’＝Ｙ’d/pw＝ｇd/x・h
Ｗ＝Ｚ’h＝ｇd/x
このような変形例１としても、本実施形態を同様に実施して同様の効果を得ることができる。
【０１２０】
［変形例２］
上述した実施形態及び変形例では、再暗号化鍵Ｒをユーザに知られないようにするために、サーバ装置Ｓｖが乱数ｈを用いて再暗号化鍵情報Ｙを計算し、再暗号化鍵情報Ｙをユーザへ送信する構成とした。これに限らず、再暗号化鍵Ｒをユーザに知られても良い場合は、サーバ装置Ｓｖは、乱数ｈの計算をせず、上述した実施形態又は変形例における再暗号化鍵情報Ｙ又はＹ’を、以下に示すＹ”に置き換えても良い。
【０１２１】
Ｙ”＝Ｒ
ここで、右辺のＲは、上述した実施形態における再暗号化鍵Ｒを意味している。この場合、サーバ装置Ｓｖは、上述した実施形態における再暗号化鍵Ｗを計算する必要はなく、ユーザから受信した再暗号化鍵更新情報Ｚを新しい再暗号化鍵Ｗとすれば良い。
【０１２２】
このように乱数ｈを用いない場合、サーバ装置Ｓｖにおいては、乱数ｈを用いる再暗号化鍵情報生成部１６及び更新済み再暗号化鍵生成部１７が省略される。また、送受信部１４は、例えば、ユーザ装置Ｂから再暗号化鍵Ｒを更新する旨の通知を受けると、再暗号化鍵Ｒ（＝ｇ＾{pw/x}）をユーザ装置Ｂに送信し、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵Ｒから計算された更新後の再暗号化鍵Ｗ（＝ｇ＾{d/x}）をユーザ装置Ｂから受信する送受信機能と、再暗号化鍵記憶部１３内の再暗号化鍵Ｒを更新後の再暗号化鍵Ｗに置換する置換機能とをもつものとすればよい。各記憶部１１〜１３は、実施形態と同様のものでよい。
【０１２３】
このような変形例２によれば、本実施形態と同様の効果に加え、再暗号化鍵Ｒをユーザに知られてもよい場合には乱数ｈを用いた計算を省略することができる。
【０１２４】
（第２の実施形態）
非特許文献２の３章に記載の”A Second Attempt”の方式では、再暗号化鍵の形式が第１の実施形態と同様の数式から成り立っているため、第１の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献２の”A Second Attempt”の処理に置き換えることにより、非特許文献２の”A Second Attempt”の方式においても第１の実施形態に対するのと同様の技術的効果を得ることができる。
【０１２５】
（第３の実施形態）
非特許文献２の３章に記載の”A Third Attempt”の方式では、再暗号化鍵の形式が第１の実施形態がg^{pw/x}であるのに対して、g^{pw・x}の形をしている。そのため、図７に示すように、R=D^xとし、第１の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献２の”A Third Attempt”の処理に置き換えることにより、非特許文献２の”A Third Attempt”の方式においても第１の実施形態に対するのと同様の技術的効果を得ることができる。
【０１２６】
（第４の実施形態）
非特許文献２の３．２節に記載の”Temporary Unidirectional Proxy Re-encryption”の方式では、再暗号化鍵の形式が第１の実施形態がg^{pw/x}であるのに対して、g^{pw・xr/x0}の形をしている。そのため、図８に示すように、R=D^{xr/x0}とし、第１の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献２の”Temporary Unidirectional Proxy Re-encryption”の処理に置き換えることにより、非特許文献２の”Temporary Unidirectional Proxy Re-encryption”の方式においても第１の実施形態に対するのと同様の技術的効果を得ることができる。
【０１２７】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１２８】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１２９】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０１３０】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１３１】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１３２】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１３３】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１３４】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３５】
Ｓｖ…サーバ装置、１１…公開鍵記憶部、１２…暗号文記憶部、１３…再暗号化鍵記憶部、１４，２３，３２…送受信部、１５…再暗号化部、１６…再暗号化鍵情報生成部、１７…更新済み再暗号化鍵生成部、Ａ，Ｂ，Ｃ…ユーザ装置、２１，３１…秘密鍵記憶部、２２…ファイルデータ記憶部、２４，３３…鍵生成部、２５…暗号化部、２６…復号部、２７…再暗号化鍵更新情報生成部、Ｍ…グループ管理者装置、３４…再暗号化鍵生成部。
【図１】
0005367039.tif 000012
【図２】
0005367039.tif 000013
【図３】
0005367039.tif 000014
【図４】
0005367039.tif 000015
【図５】
0005367039.tif 000016
【図６】
0005367039.tif 000017
【図７】
0005367039.tif 000018
【図８】
0005367039.tif 000019