説明

サーバ装置及びプログラム

【課題】ユーザの秘密鍵をグループ管理者に知らせない場合、かつグループ管理者が不在の場合でも、再暗号化鍵を更新できる。
【解決手段】実施形態のサーバ装置は、第1計算手段、送受信手段及び第2計算手段を備えている。前記第1計算手段は、前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する。前記送受信手段は、前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する。前記第2計算手段は、前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、サーバ装置及びプログラムに関する。
【背景技術】
【0002】
ユーザがサーバ装置にファイルをアップロードし、複数ユーザ間でそのファイルを共有するファイル共有システムにおいて、サーバ装置に対してファイルデータの秘匿性を保つ方法として以下の三つが挙げられる。
【0003】
(1)各ユーザに個別の暗号化鍵でファイルを暗号化する個別鍵方式。
【0004】
(2)各ユーザに共通の暗号化鍵でファイルを暗号化する共通鍵方式。
【0005】
(3)プロキシ再暗号化方式を用いてファイルを暗号化する再暗号化方式。
【0006】
上記(1)〜(3)の方式において、サーバ装置にファイルをアップロードするユーザをユーザAとし、ユーザAがユーザB、ユーザCとファイルを共有するとする。
【0007】
(1)の個別鍵方式では、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。ユーザAは、(ユーザBに個別の暗号化鍵である)ユーザBの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。同様に、ユーザAは、(ユーザCに個別の暗号化鍵である)ユーザCの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。つまり、ユーザAは、ファイルを共有する全てのユーザそれぞれに対して個別にファイルを暗号化する。
【0008】
(2)の共通鍵方式では、各ユーザに共通の秘密鍵と公開鍵の組を各ユーザが共有する。ユーザAは、(各ユーザに共通の暗号化鍵である)公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする。各ユーザは、同一の秘密鍵を共有している。
【0009】
(3)のプロキシ再暗号化方式では、(1)の個別鍵方式と同様に、ユーザ毎に異なる秘密鍵と公開鍵の組を各ユーザがそれぞれ持つ。しかしながら、(1)の個別鍵方式とは異なり、ユーザAは、ユーザのグループを管理するエンティティ(以下、グループ管理者と呼ぶ)の公開鍵(以下、グループ公開鍵と呼ぶ)でファイルを暗号化すれば良く、サーバ装置が、再暗号化鍵を用いて(ユーザAがアップロードした)暗号化ファイルを各ユーザだけが復号できる暗号化ファイルにそれぞれ再暗号化する。プロキシ再暗号化方式の詳細は後述する。
【0010】
(1)の個別鍵方式では、新たにユーザDともファイルを共有したいとき、ユーザAが(ユーザDに個別の暗号化鍵である)ユーザDの公開鍵でファイルを暗号化し、暗号化されたファイルをサーバ装置へアップロードする必要があるという不都合がある。従って、(1)の個別鍵方式は、新規ユーザ数が多かったり、共有したいファイル数が多かったりする場合、新規ユーザ追加時の処理が煩雑となるため、上記ファイル共有システムに不適である。
【0011】
(2)の共通鍵方式では、ある時点から(その時点までファイル共有を許可していた)あるユーザがファイルを共有できないようにする(当該ユーザをファイル共有システムから排除する)際に、各ユーザに共通の秘密鍵と公開鍵を更新する機構が別途必要であることや、各ユーザに共通の秘密鍵が万が一漏洩してしまった場合、全ての暗号化ファイルが(当該漏洩鍵を入手した者ならば誰でも)復号可能となってしまう不都合がある。このため、(2)の共通鍵方式は、ファイル共有システムに不適である。
【0012】
一方、(3)のプロキシ再暗号化方式では、サーバ装置が再暗号化鍵を用いて一つの暗号文を各ユーザだけが復号できる暗号文に再暗号化するため、ユーザに再暗号化鍵を知らせない構成にすれば、上述した不都合を解決している。このため、(3)のプロキシ再暗号化方式は、ファイル共有システムに好適である。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】B. Libert and D. Vergnaud, "Unidirectional Chosen-Ciphertext Secure Proxy Re-encryption," Proc. PKC 2008, LNCS 4939, pp.360-379, Springer, 2008.
【非特許文献2】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.
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、(3)のプロキシ再暗号化方式では、ユーザが第三者の提供するファイル共有サービスを利用する場合(例えば、ユーザがインターネットを経由してサーバ装置にアクセスしてサービスを利用する場合)、ユーザがサーバ装置を過度に信頼できないことから、ユーザの秘密鍵をユーザ自身が生成して当該ユーザのみが保持することが望ましい。
【0015】
これに対し、(3)のプロキシ再暗号化方式では、再暗号化鍵の更新にグループ公開鍵に対応する秘密鍵(以下、グループ秘密鍵と呼ぶ)を必要とするため、ユーザの秘密鍵をグループ管理者に知らせない場合、グループ秘密鍵を持つグループ管理者が不在の場合に再暗号化鍵を更新できないという不都合がある。
【0016】
本発明が解決しようとする課題は、ユーザの秘密鍵をグループ管理者に知らせない場合、かつグループ管理者が不在の場合でも、再暗号化鍵を更新し得るサーバ装置及びプログラムを提供することである。
【課題を解決するための手段】
【0017】
実施形態のサーバ装置は、管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶する。
【0018】
前記サーバ装置は、記憶手段、第1計算手段、送受信手段及び第2計算手段を備えている。
【0019】
前記記憶手段は、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する。
【0020】
前記第1計算手段は、前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する。
【0021】
前記送受信手段は、前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する。
【0022】
前記第2計算手段は、前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する。
【図面の簡単な説明】
【0023】
【図1】第1の実施形態に係るファイル共有システムの構成を例示する図である。
【図2】同実施形態におけるファイル共有システムの概要を示す模式図である。
【図3】同実施形態におけるファイル共有システムに適用されるサーバ装置、ユーザ装置及びグループ管理者装置の構成を説明するための模式図である。
【図4】同実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【図5】同実施形態における再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【図6】同実施形態における再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【図7】第3の実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【図8】第4の実施形態における再暗号化鍵の更新処理の概要を示す模式図である。
【発明を実施するための形態】
【0024】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【0025】
(第1の実施形態)
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の5つの関数(以下、アルゴリズムともいう)からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【0026】
(鍵生成)KeyGen(1k)→(pk,sk)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、公開鍵pkと秘密鍵skの組(pk,sk)を出力する。
【0027】
(暗号化)Enc(pkA,m)→CA
暗号化アルゴリズムEncは、ユーザAの公開鍵pkAとメッセージmが入力されると、ユーザA宛の暗号文CAを出力する。
【0028】
(復号)Dec(skA,CA)→m
復号アルゴリズムDecは、ユーザAの秘密鍵skAと、ユーザA宛の暗号文CAとが入力されると、メッセージmを出力する。
【0029】
(再暗号化鍵生成)ReKeyGen(pkA,skA,pkB,skB)→rkA→B
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザAの公開鍵pkA、ユーザAの秘密鍵skA、ユーザBの公開鍵pkB、ユーザBの秘密鍵skBが入力されると、再暗号化鍵rkA→Bを出力する。
【0030】
(再暗号化)ReEnc(rkA→B,CA)→CB
再暗号化アルゴリズムReEncは、再暗号化鍵rkA→Bと、ユーザA宛の暗号文CAとが入力されると、ユーザB宛の暗号文CBを出力する。
【0031】
以上が基本的なモデルである。但し、再暗号化の実現方式に応じて、関数への入力が異なるモデルや、上記以外の関数や鍵を含むモデルも考えられている。
【0032】
例えば、再暗号化鍵生成アルゴリズムの入力において、ユーザBの秘密鍵skBを不要とした非相互作用的(non-interactive)と呼ばれるモデルや、ユーザAの秘密鍵skAに代えて、ユーザB宛の再暗号化鍵rkA→BとユーザCの秘密鍵skCとが入力されるモデルなども考えられている。
【0033】
また、再暗号化鍵rkA→Bで暗号文CA→CBの再暗号化を行える一方で、その逆の暗号文CB→CAの変換を行えない一方向性(unidirectional)と呼ばれるモデル、逆の変換も行える双方向性(bidirectional)と呼ばれるモデルなども知られている。なお、双方向性モデルでは、再暗号化鍵rkA→BをrkA⇔Bと表すことがある。
【0034】
さらに、公開鍵暗号の中でもIDベース暗号に基づく方式も考えられている。その場合、マスター鍵生成のための関数セットアップ(Setup)が増え、鍵生成アルゴリズムKeyGenの入力にマスター鍵とIDが追加される。IDベース暗号において、公開鍵pkはIDそのものである。
【0035】
次に、本実施形態に係るファイル共有システムの構成について図1を用いて説明する。ファイル共有システムは、サービスを提供するサービス提供者の有する情報処理装置であるサーバ装置Svと、当該サービスの利用者であるユーザの有する情報処理装置であるユーザ装置(以下、ユーザと略記する場合もある)A,B,C,…と、ユーザ管理者装置(以下、ユーザ管理者と略記する場合もある)Uと、グループ管理者装置(以下、グループ管理者と略記する場合もある)Mとを備え、これらが通信網を介して接続されている。通信網とは、例えば、無線LAN(Local Area Network)、有線LAN、光回線網、電話回線網、イントラネット、イーサネット(登録商標)及びインターネットやこれらの組み合わせである。尚、同図では、ファイル共有システムに接続されるサーバ装置Sv及びユーザ装置A,B,C,…は各々1台及び3台のみ示されているが、これらは各々任意の複数台であっても良い。
【0036】
図2は、ファイル共有システムの概要を示す模式図である。このファイル共有システムは、サーバ装置Sv、ユーザA、ユーザB、ユーザC、グループ管理者M、及びユーザ管理者Uからなる。ユーザ管理者Uとは、全ユーザを管理するエンティティである。ユーザ管理者Uは、ユーザ装置A,B,C,…がファイル共有システムにログインできるようにするためのIDと初期パスワードを各ユーザ装置A,B,C,…の各ユーザに対して発行する。
【0037】
事前準備として、各ユーザA,B,C,…は、グループ管理者の公開鍵pkGrを持っているものとする。また、共有しようとする平文データとしてのファイルデータをmと表記する。サーバ装置Svは、グループ管理者M宛の暗号文E(pkGr,m)をユーザA(又はユーザB、又はユーザC)宛の暗号文E(pkA,m)(又はE(pkB,m)、又はE(pkC,m))に再暗号化する再暗号化鍵rkGr→A(又はrkGr→B又はrkGr→C)を持っているものとする。各ユーザiは秘密鍵skを持っているものとする。つまり、ユーザAは秘密鍵skAを、ユーザBはskBを、ユーザCはskCをそれぞれ持っている。
【0038】
次に、ユーザCは、公開鍵記憶部11に記憶されているグループ管理者の公開鍵pkGrでファイルデータmを暗号化し、得られた暗号文E(pkGr,m)をサーバ装置Svへアップロードする。サーバ装置Svは、暗号文記憶部12においてこの暗号文を保管する。
【0039】
今、ユーザAがファイルデータmを共有したいとする。ユーザAは、サーバ装置Svに対して暗号文E(pkGr,m)の再暗号化の要求を送信する。サーバ装置Svは、ユーザAから受けた要求に対し、再暗号化鍵記憶部13に記憶されているユーザA宛の再暗号化鍵rkGr→Aに基づいて、暗号文E(pkGr,m)をユーザA宛の再暗号文E(pkA,m)に再暗号化し、得られた再暗号文E(pkA,m)をユーザAに送信する。ここで、再暗号文とは、暗号文を復号せずに再暗号化してなる暗号文である。
【0040】
ユーザAは、サーバ装置Svからダウンロードした再暗号文E(pkA,m)を自身が保有する秘密鍵skAで復号し、得られたファイルデータmを利用する。
【0041】
以上のようなファイル共有システムは、ユーザCによる暗号化からユーザAによる復号までの間、ファイルデータmが一度も復号されないため、ファイル共有の過程における情報の漏洩を阻止することができる。
【0042】
また、ユーザCは、暗号文をアップロードする時点で、どのユーザとファイル共有するかを決定する必要がない。つまり、ユーザCは、ファイルデータmをグループ管理者Mの公開鍵pkGrで暗号化すれば良く、暗号化に関して管理すべき鍵がグループ管理者Mの公開鍵pkGrのみで良いので、鍵管理のコストを低減させることができる。
【0043】
本ファイル共有システムにおいて、サーバ装置Svは、暗号文E(pkGr,m)を復号するための復号鍵skGrを持たない。従って、サーバ装置Svはこの暗号文を復号できない。これは、不正なサーバ装置Svが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバ装置Svを厳重に管理しなくても良く、サーバ装置Svの管理コストの低減に繋がる。
【0044】
ユーザBがファイル共有を行う際も上記と同様である。
【0045】
図3は、ファイル共有システムに適用されるサーバ装置、ユーザ装置及びグループ管理者装置の構成を説明するための模式図である。なお、以下の構成の説明は、(1)鍵セットアップ処理、(2)暗号化処理、(3)再暗号化鍵生成処理、(4)再暗号化処理、(5)復号処理、(6)再暗号化鍵更新処理のうち、(6)再暗号化鍵の更新処理に関する内容を主に述べている。他の処理については、非特許文献1に開示されている。
【0046】
サーバ装置Svは、グループ管理者の公開鍵(以下、管理者公開鍵ともいう)により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置の秘密鍵(以下、ユーザ秘密鍵ともいう)により復号可能な再暗号文データを得るための再暗号化鍵を記憶するものである。
【0047】
具体的には、サーバ装置Svは、公開鍵記憶部11、暗号文記憶部12、再暗号化鍵記憶部13、送受信部14、再暗号化部15、再暗号化鍵情報生成部16及び更新済み再暗号化鍵生成部17を備えている。
【0048】
公開鍵記憶部11は、各部14〜17から読出/書込可能な記憶部であり、各ユーザの公開鍵やグループ管理者の公開鍵が記憶されている。
【0049】
暗号文記憶部12においては、各部14〜17から読出/書込可能な記憶部であり、ユーザからアップロードされた暗号文が記憶されている。
【0050】
再暗号化鍵記憶部13は、各部14〜17から読出/書込可能な記憶部であり、グループ管理者の公開鍵gに対応する秘密鍵x(以下、管理者秘密鍵ともいう)と、ユーザの秘密鍵pwに対応する公開鍵D(以下、ユーザ公開鍵ともいう)とに基づいて生成された再暗号化鍵R(=D^{1/x}=g^{pw/x})を記憶するものである(^はベキ乗を表す記号)。また、再暗号化鍵記憶部13においては、更新前の再暗号化鍵Rを更新後の再暗号化鍵Wに置換可能(上書き可能)となっている。
【0051】
送受信部14は、サーバ装置Svと通信網との間の通信インタフェースであり、例えば、再暗号化鍵情報生成部16により計算(生成)された再暗号化鍵情報Y(=R^h)をユーザ装置(例、B)に送信し、ユーザ装置から更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵情報Yから計算された再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})を受信する送受信機能をもっている。なお、説明を簡潔にするため、以下では送受信部14を介して送受信する旨の記載を適宜、省略する。
【0052】
再暗号化部15は、再暗号化鍵記憶部13において記憶されている再暗号化鍵を用いて暗号文を再暗号化する。再暗号化部15における具体的な処理については後述する。
【0053】
再暗号化鍵情報生成部16は、ユーザ装置Bから再暗号化鍵Rを更新する旨の通知を受けると、乱数hを生成し、再暗号化鍵記憶部13に記憶された再暗号化鍵R及び当該生成した乱数hに基づいて再暗号化鍵情報Y(=R^h)を計算する第1計算機能をもっている。
【0054】
更新済み再暗号化鍵生成部17は、送受信部23により受信された再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})、及び再暗号化鍵情報生成部16により生成された乱数hに基づいて更新後の再暗号化鍵W(=Z^{1/h}=g^{d/x})を計算すると共に、再暗号化鍵記憶部12内の再暗号化鍵Rを更新後の再暗号化鍵Wに置換する第2計算機能をもっている。
【0055】
なお、再暗号化鍵Rは、サーバ装置Svにより、乱数hに基づいて再暗号化鍵情報Y(=R^h)が計算される情報でもある。
【0056】
再暗号化鍵情報Yは、ユーザ装置Bにより、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})が計算される情報でもある。
【0057】
再暗号化鍵更新情報Zは、サーバ装置Svにより、乱数hに基づいて更新後の再暗号化鍵W(=Z^{1/h}=g^{d/x})が計算される情報でもある。
【0058】
前記更新後の再暗号化鍵は、前記サーバ装置により更新前の再暗号化鍵から置換されて記憶されるプログラム。
【0059】
一方、ユーザ装置A,B,C,…は、互いに同一のハードウェア構成であるため、ここではユーザ装置Bを例に挙げて説明する。
【0060】
ユーザ装置Bは、秘密鍵記憶部21、ファイルデータ記憶部22、送受信部23、鍵生成部24、暗号化部25、復号部26及び再暗号化鍵更新情報生成部27を備えている。
【0061】
秘密鍵記憶部21は、各部23〜27から読出/書込可能な記憶部であり、更新前のユーザ公開鍵D=g^{pw}に対応する更新前のユーザ秘密鍵pwと、更新後のユーザ公開鍵g^dに対応する更新後のユーザ秘密鍵dとを記憶する。
【0062】
ファイルデータ記憶部22は、各部23〜27から読出/書込可能な記憶部であり、ファイルデータを記憶する。
【0063】
送受信部23は、ユーザ装置Bと通信網との通信インタフェースであり、例えば、再暗号化鍵R(=D^{1/x}=g^{pw/x})を更新する旨の通知をサーバ装置Svに送信し、サーバ装置Svから再暗号化鍵R及び乱数hに基づいて計算された再暗号化鍵情報Y(=R^h)を受信する機能と、再暗号化鍵更新情報生成部27により計算された再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})をサーバ装置Svに送信する機能とを持っている。なお、説明を簡潔にするため、以下では送受信部23を介して送受信する旨の記載を適宜、省略する。
【0064】
鍵生成部24は、公開鍵・秘密鍵の組を生成する。また、鍵生成部24は、鍵生成に必要な各パラメータを保持している。鍵生成に必要な各パラメータについては後述する。
【0065】
暗号化部25は、サーバ装置Svから送受信部23を介して通知される(又は以前に取得した公開鍵で、ユーザ装置Bが記憶している)グループ管理者の公開鍵を用いて、ファイルデータ記憶部22に記憶されているファイルデータを暗号化する。
【0066】
復号部26は、秘密鍵記憶部21において記憶されているユーザの秘密鍵を用いて、再暗号文(又は暗号文)を復号する。
【0067】
再暗号化鍵更新情報生成部27は、送受信部23により受信した再暗号化鍵情報Y(=R^h)と、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dとに基づいて当該再暗号化鍵情報Yから再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})を計算する機能をもっている。
【0068】
他方、グループ管理者装置Mは、秘密鍵記憶部31、送受信部32、鍵生成部33及び再暗号化鍵生成部34を備えている。
【0069】
秘密鍵記憶部31は、各部32〜34から読出/書込可能な記憶部であり、鍵生成部33において生成されたグループ管理者の管理者秘密鍵xを記憶する。
【0070】
送受信部32は、グループ管理者装置Mと通信網との間の通信インタフェースであり、例えば、鍵生成部33において生成されたグループ管理者の公開鍵g^xをサーバ装置Svに送信する機能と、サーバ装置Svからユーザ装置Bのユーザ公開鍵D(=g^{pw})を受信する機能と、再暗号化鍵生成部34により生成された再暗号化鍵Rをサーバ装置Svに送信する機能とをもっている。
【0071】
鍵生成部33は、公開鍵・秘密鍵の組を生成する。また、鍵生成部33は、鍵生成に必要な各パラメータを保持している。
【0072】
再暗号化鍵生成部34は、送受信部32により受信したユーザ公開鍵D(=g^{pw})と、秘密鍵記憶部31内の管理者秘密鍵xとに基づいて、再暗号化鍵R(=D^{1/x}=g^{pw/x})を生成(発行)する機能をもっている。本実施形態の一側面は、グループ管理者が不在の場合でも、つまり、グループ管理者の秘密鍵xを用いずに、サーバ装置Svが更新前の再暗号化鍵Rを更新後の再暗号化鍵Wに更新し得る。
【0073】
次に、以上のように構成された再暗号化システムの動作を説明する。また、以下の動作は、(1)鍵セットアップ処理、(2)暗号化処理、(3)再暗号化鍵生成処理、(4)再暗号化処理、(5)復号処理、(6)再暗号化鍵更新処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくても良い。例えば、再暗号化鍵生成は、暗号化処理の前に実行されても良い。また、再暗号化処理が実行されずに、暗号文が復号されても良い。また、(1)〜(5)の処理は非特許文献1に開示されており、(6)の処理が本実施形態による再暗号化鍵の更新方法である。すなわち、再暗号化鍵の更新処理(6)以外の処理(1)〜(5)については、非特許文献1を補足的に参照して理解を深めることができる。
【0074】
(1.鍵セットアップ処理)始めに、鍵生成部33は、公開パラメータ(p,λ,G,GT,g,u,v,Sig)を生成する、又は外部から入手する(ST1)。ここで、λはセキュリティパラメータである。pはp>2λを満たす素数である。G,GTは素数位数p>2λを満たす双線型写像群(bilinear map groups)(G,GT)である。g,u,vは、Gの生成元である(g,u,v∈G)。Sigは強偽造不可能性を満たす使い捨て署名(one-time signature)方式
【数1】

【0075】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (1996).に詳しい。
【0076】
また、双線型写像(eと表記する)とは、e:G×G→GTとなる写像であり、以下の3つの性質を満たす。
【0077】
1.任意の(g,h)∈G×G及びa,b∈Zについて、e(g,h)=e(g,h)abが成り立つ。ここで、Zとは整数の集合である。
【0078】
2.任意の(g,h)∈G×Gについて、e(g,h)が計算可能である。
【0079】
3.g,h≠1Gである場合は常にe(g,h)≠1GTが成り立つ。ここで、1GとはGの単位元であり、1GTとはGTの単位元である。
【0080】
また、双線型写像群(bilinear map groups)(G,GTと表記する)とは、双線型写像e:G×G→GTが存在する素数位数pの群である。上記の定義は、Gの元g,g1,g2について、g1=gα、g2=gβとすると、次式が成り立つことも意味する(但し、α,βは、Gの元g,g1,g2に関するベキ指数である。)。
【0081】
e(g12,g)=e(g,g12)=e(g,gα・gβ)=e(g,gα+β)=e(g,g)α+β=e(g,g)α・e(g,g)β
なお、Gの複数の元g,g1,g2は、予め定められた複数のシステム固定値となっている。複数のシステム固定値としては、双線型写像群Gの3つの元に限らず、Gの2つ又は4つ以上といった複数の元が適宜使用可能となっている。また、「システム固定値」の語は、「固定値」、「元」又は「システムパラメータ」などと読み替えてもよい。この複数のシステム固定値は、双線型写像が存在する素数位数の群である双線型写像群の複数の元である。
【0082】
また、本明細書では、G、GTをともに乗法群と想定した記法を採用しているが、これに限らず、G、GTそれぞれについて、加法群と想定した記法で表すことも可能である。つまり、例えば、Gを加法群、GTを乗法群として表現しても良い。また、双線型写像として、双線型写像群G1、G2、GT(G1とG2は異なる群である)について、e:G1×G2→GTとなる写像を用いても良い。これらは他の実施例においても同様である。
【0083】
鍵生成部33には、上記公開パラメータ(p,λ,G,GT,g,u,v,Sig)が記憶されている。
【0084】
次に、鍵生成部33は、ユーザの識別情報をiとしたとき、ユーザiの秘密鍵x∈Zpを生成し、この秘密鍵xを用いてユーザiの公開鍵
【数2】

【0085】
を生成する。なお、ZpはZpかつpと互いに素な整数の集合(=(Z/pZ))であり、素数pに対する乗法群Zpと呼んでもよい。Zpは0以上p未満の整数の集合(=(Z/pZ)である。
【0086】
ユーザiの秘密鍵xはユーザiの秘密鍵記憶部21に記憶される。ユーザiの公開鍵Xはサーバ装置Svの公開鍵記憶部11に記憶される。グループ管理者の秘密鍵・公開鍵についても同様に、グループ管理者の鍵生成部33において生成される。
【0087】
(2.暗号化処理)暗号化部25は、公開パラメータにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数3】

【0088】
を生成し、第1暗号化データC1に検証鍵svkをセットする(C1=svk)。
【0089】
暗号化部25は、第1乱数r∈Zpを生成する。暗号化部25は、この第1乱数rに基づき、平文データとしてのメッセージm∈GT に対して、以下の第2、第3及び第4暗号化データC2,C3,4を生成する。
【数4】

【0090】
具体的には、ユーザiの公開鍵Xiと、第1乱数rとに基づいて、第2暗号化データC2を生成する。また、公開パラメータにおける生成元gと、第1乱数rと、メッセージmとに基づき、ペアリング関数によって第3暗号化データC3を生成する。さらに、公開パラメータにおける生成元u,vと、上記において生成した検証鍵svkと、第1乱数rとに基づいて、第4暗号化データC4を生成する。
【0091】
暗号化部25は、第3及び第4暗号化データC3,C4に対し、公開パラメータにおける署名生成機能
【数5】

【0092】
上記の暗号化処理により得られる暗号文は、これら第1乃至第4暗号化データC1〜C4と使い捨て署名σとを含む暗号文Ci=(C1,C2,C3,C4,σ)である。
【0093】
(3.再暗号化鍵生成処理)再暗号化鍵生成部34は、秘密鍵記憶部31に記憶されている(本実施形態ではグループ管理者の)秘密鍵xiと、ユーザjの公開鍵Xjから、再暗号化鍵Rijを次式に示すように生成する。
【数6】

【0094】
再暗号化鍵Rijは、ユーザi宛の暗号文を、ユーザj宛の再暗号文に再暗号化する際に用いられる。
【0095】
(4.再暗号化処理)ユーザi宛の暗号文を、ユーザj宛の再暗号文に再暗号化する処理を説明する。再暗号化部15は、公開パラメータと次の検証式を用い、暗号化処理において得られた暗号文Ciを検証する。ここで、2つの検証式が成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【数7】

【0096】
検証が成功した場合、再暗号化部15は、第2乱数t∈Zpを生成し、暗号化処理において得られた暗号文Ciと、再暗号化鍵生成処理において得られた再暗号化鍵Rijとを用いて、次式に示すように、第1、第2及び第3再暗号化データC2,C2’’,C2’’’を生成する。
【数8】

【0097】
具体的には、ユーザiの公開鍵Xiと、第2乱数tとに基づいて、第1再暗号化データC2を生成する。また、再暗号化鍵生成処理において得られた再暗号化鍵Rij及び第2乱数tに基づいて、第2再暗号化データC2’’を生成する。さらに、第2暗号化データC2及び第2乱数tに基づいて、第3再暗号化データC2’’’を生成する。
【0098】
検証が失敗した場合は処理を終了する。
【0099】
上記の再暗号化処理により得られる再暗号文は、これら第1乃至第3再暗号化データC2〜C2’’’を、暗号文データCi内の第2暗号化データC2と置換して得られる再暗号文Cj=(C1,C2,C2’’,C2’’’,C3,C4,σ)である。
【0100】
(5.復号処理)ユーザjが再暗号文を復号する処理を説明する。復号部26は、公開パラメータ及びユーザjの公開鍵Xjと次の検証式を用い、再暗号文Cjを検証する。ここで、3つの検証式が成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【数9】

【0101】
検証が成功した場合、復号部26は、ユーザjの秘密鍵xjに基づいて、次式に示すように、再暗号化処理で得られた再暗号文Cjを復号し、メッセージmを得る。
【数10】

【0102】
検証が失敗した場合は処理を終了する。
【0103】
次に、本実施形態に係る(6)再暗号化鍵の更新処理を説明する。図4は、再暗号化鍵の更新処理の概要を示す模式図である。なお、ファイル共有システムとしては図2において説明したものを想定する。ユーザ管理者Uは、グループ管理者を含めた全ユーザを管理するエンティティである。ユーザ管理者であるユーザUは、ファイル共有システムに参加する各ユーザに、ファイル共有システムにログインできるようにするためのID(ユーザBに与えるIDをIDと表記する)と初期パスワード(ユーザBに与えるパスワードをpwと表記する)を発行する。パスワードは、ユーザ管理者Uにより発行される仮の秘密鍵とみなすことができる。グループ管理者Mは、グループ管理者Mの秘密鍵xと公開鍵gxとを生成する。以下、グループ管理者M宛の暗号文をユーザB宛の再暗号文に再暗号化するための再暗号化鍵を更新する際の処理を説明する。この更新処理には、ユーザ装置Bの秘密鍵pwとそれに対応する公開鍵の更新も伴う。
【0104】
図5及び図6は、再暗号化鍵の更新処理の動作を説明するためのフローチャートである。
【0105】
ユーザ管理者装置Uは、ユーザ装置Bに対し、IDと初期パスワードを発行する(ステップST1)。
【0106】
ユーザ管理者装置Uは、初期パスワードpwを仮の秘密鍵と見立て、次式を用いて、これに対応する仮の公開鍵Dを生成し、サーバ装置Svへ送信する(ステップST2)。
【0107】
D=gpw
サーバ装置Svは、ユーザ管理者装置Uから送られてきた仮の公開鍵Dを公開鍵記憶部11に記憶する(ステップST3)。
【0108】
公開鍵と秘密鍵の組(gx, x)を持つグループ管理者装置Mは、サーバ装置Svに仮の公開鍵Dを要求し、サーバ装置Svはグループ管理者装置Mに仮の公開鍵Dを送信する(ステップST4)。グループ管理者装置Mは、再暗号化鍵生成部34において、次式を用いて、グループ管理者装置M宛の暗号文をユーザ装置B宛の再暗号文に再暗号化するための再暗号化鍵Rを生成し、サーバ装置Svへ送信する(ステップST5)。
【0109】
R=D1/x=gpw/x
サーバ装置Svは、グループ管理者装置Mから受信した再暗号化鍵Rを再暗号化鍵記憶部13に記憶する(ステップST6)。
【0110】
ユーザ装置Bは、ユーザBの操作により、ステップST1で発行されたIDと初期パスワードを用いてファイル共有システムにログインし、サーバ装置Svに対して、再暗号化鍵を更新する旨の通知を行う(ステップST7)。
【0111】
サーバ装置Svは、再暗号化鍵記憶部13より該当する再暗号化鍵(上述の例ではグループ管理者装置M宛の暗号文をユーザ装置B宛の再暗号文に再暗号化するための再暗号化鍵R)を取得し、再暗号化鍵情報生成部16において、乱数hを生成し、次式を用いて再暗号化鍵情報Yを計算し、ユーザ装置Bに再暗号化鍵情報Yを送信する(ステップST8)。
【0112】
Y=Rh=gpw・h/x
ユーザ装置Bは、鍵生成部24において、新しい公開鍵と秘密鍵の組((gd,d)と表記する)を生成する(ステップST9)。ユーザ装置Bは、秘密鍵記憶部21において秘密鍵dを記憶する(ステップST10)。ユーザ装置Bは、再暗号化鍵更新情報生成部27において次式を用いて再暗号化鍵更新情報Zを計算し、サーバ装置Svに再暗号化鍵更新情報Zと新しい公開鍵gdを送信する(ステップST11)。
【0113】
Z=Yd/pw=gd・h/x
サーバ装置Svは、公開鍵記憶部11において古い公開鍵Dを新しい公開鍵gdに置き換える(ステップST12)。また、サーバ装置Svは、更新済み再暗号化鍵生成部17において、次式を用いて新しい再暗号化鍵Wを計算し、再暗号化鍵記憶部13において古い再暗号化鍵Rを新しい再暗号化鍵Wに置き換える(ステップST13)。
【0114】
W=Z1/h=gd/x
上述の例では、グループ管理者が初めてファイル共有システムに参加する際の処理についての説明を省略したが、図2において説明したファイル共有システムでは、グループ管理者は、自身の公開鍵pkGrをサーバ装置Svへ送信するだけで良いため、以下の処理を行えば良い。ユーザ管理者Uは、グループ管理者Mに対して、IDと初期パスワードを発行する。グループ管理者は、与えられたIDと初期パスワードを用いてファイル共有システムにログインする。グループ管理者は、鍵生成部33において、公開鍵pkGrと秘密鍵skGrの組(gx, x)を生成し(又は事前に生成しておき)、秘密鍵記憶部31において秘密鍵x(=skGr)を記憶し、公開鍵gx(=pkGr)をサーバ装置Svへ送信する。サーバ装置Svは、公開鍵記憶部11において送られてきた公開鍵gxを記憶する。このようにしておけば、図2において、ユーザCが、暗号文を生成する際に用いるグループ管理者の公開鍵gxをサーバ装置Svから取得することが可能となる。
【0115】
なお、一度再暗号化鍵を更新した以降に、再び再暗号化鍵を更新する場合は、ステップST7から処理を始めれば良い。この場合、初期のユーザ秘密鍵pwを更新前のユーザ秘密鍵dと読み替えれば良い。また、図5及び図6の各ステップは必ずしもこの順序で行わなくても良い。例えば、ステップST8の処理の前にステップST9、ステップST10の処理を行っても良いし、ステップST8の処理とステップST9、ステップST10の処理を同時に行っても良い。また、ステップST12の処理とステップST13の処理の順番を入れ替えて行っても良い。
【0116】
このように再暗号化鍵の更新処理を行えば、再暗号化鍵の更新にグループ管理者の秘密鍵xが不要になり、図5及び図6のステップST6以降グループ管理者の登場が不要となるため、グループ管理者が不在の場合でも再暗号化鍵を生成可能となる。また、サーバ装置Svにはグループ管理者の秘密鍵xを知らせない構成のため、サーバ装置Svに対する(ファイルデータの)秘匿性も保たれる。また、ユーザに再暗号化鍵(上述の例ではW)を知らせない構成のため、再暗号化鍵の漏洩のリスクを抑えることができる。また、ユーザは、新しいユーザ秘密鍵(上述の例ではd)を他人に知らせる必要がないため、秘密鍵の漏洩のリスクを抑えることができる。また、(上述した再暗号化鍵の更新処理を行わず)グループ管理者の機能を有するプログラムを常時オンラインのPCに実装して自動応答させることで、グループ管理者Mが不在の場合でも再暗号化鍵を生成することが考えられる。しかしながら、この場合、当該グループ管理者のPCが常にオンラインであるため、外部からの攻撃を受ける恐れがあり、攻撃によってグループ管理者の秘密鍵xを盗まれてしまうリスクが伴う。これに対し、上述した再暗号化鍵の更新処理を行えば、このようなリスクを負うことなく安全に再暗号化鍵を生成することが可能となる。
【0117】
上述したように本実施形態によれば、サーバ装置Svが、ユーザ装置Bから再暗号化鍵Rを更新する旨の通知を受けると、乱数hを生成し、再暗号化鍵記憶部13に記憶された再暗号化鍵R及び当該生成した乱数hに基づいて再暗号化鍵情報Y(=R^h)を計算し、この暗号化鍵情報Yをユーザ装置Bに送信し、ユーザ装置Bから更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵情報Yから計算された再暗号化鍵更新情報Z(=Y^{d/pw}=g^{d・h/x})を受信し、この再暗号化鍵更新情報Z及び前述した乱数hに基づいて更新後の再暗号化鍵W(=Z^{1/h}=g^{d/x})を計算すると共に、再暗号化鍵記憶部12内の再暗号化鍵Rを更新後の再暗号化鍵Wに置換する構成により、ユーザBのユーザ秘密鍵dをグループ管理者Mに知らせない場合、かつグループ管理者が不在の場合でも、再暗号化鍵を更新することができる。
【0118】
[変形例1]
上述した実施形態では、サーバ装置Svが乱数hを用い、再暗号化鍵Rのh乗の計算により再暗号化鍵情報Yを計算し、Zの1/h乗の計算により、更新後の再暗号化鍵Wを計算した。これに限らず、サーバ装置Svが乱数hを用い、以下の各式に示すように、Xの1/h乗の計算により再暗号化鍵情報Y’を計算し、Z’のr乗の計算により、更新後の再暗号化鍵Wを計算してもよい。
【0119】
Y’=R1/h=gpw/x・h
Z’=Y’d/pw=gd/x・h
W=Z’h=gd/x
このような変形例1としても、本実施形態を同様に実施して同様の効果を得ることができる。
【0120】
[変形例2]
上述した実施形態及び変形例では、再暗号化鍵Rをユーザに知られないようにするために、サーバ装置Svが乱数hを用いて再暗号化鍵情報Yを計算し、再暗号化鍵情報Yをユーザへ送信する構成とした。これに限らず、再暗号化鍵Rをユーザに知られても良い場合は、サーバ装置Svは、乱数hの計算をせず、上述した実施形態又は変形例における再暗号化鍵情報Y又はY’を、以下に示すY”に置き換えても良い。
【0121】
Y”=R
ここで、右辺のRは、上述した実施形態における再暗号化鍵Rを意味している。この場合、サーバ装置Svは、上述した実施形態における再暗号化鍵Wを計算する必要はなく、ユーザから受信した再暗号化鍵更新情報Zを新しい再暗号化鍵Wとすれば良い。
【0122】
このように乱数hを用いない場合、サーバ装置Svにおいては、乱数hを用いる再暗号化鍵情報生成部16及び更新済み再暗号化鍵生成部17が省略される。また、送受信部14は、例えば、ユーザ装置Bから再暗号化鍵Rを更新する旨の通知を受けると、再暗号化鍵R(=g^{pw/x})をユーザ装置Bに送信し、更新前のユーザ秘密鍵pw及び更新後のユーザ秘密鍵dに基づいて当該再暗号化鍵Rから計算された更新後の再暗号化鍵W(=g^{d/x})をユーザ装置Bから受信する送受信機能と、再暗号化鍵記憶部13内の再暗号化鍵Rを更新後の再暗号化鍵Wに置換する置換機能とをもつものとすればよい。各記憶部11〜13は、実施形態と同様のものでよい。
【0123】
このような変形例2によれば、本実施形態と同様の効果に加え、再暗号化鍵Rをユーザに知られてもよい場合には乱数hを用いた計算を省略することができる。
【0124】
(第2の実施形態)
非特許文献2の3章に記載の”A Second Attempt”の方式では、再暗号化鍵の形式が第1の実施形態と同様の数式から成り立っているため、第1の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献2の”A Second Attempt”の処理に置き換えることにより、非特許文献2の”A Second Attempt”の方式においても第1の実施形態に対するのと同様の技術的効果を得ることができる。
【0125】
(第3の実施形態)
非特許文献2の3章に記載の”A Third Attempt”の方式では、再暗号化鍵の形式が第1の実施形態がg^{pw/x}であるのに対して、g^{pw・x}の形をしている。そのため、図7に示すように、R=D^xとし、第1の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献2の”A Third Attempt”の処理に置き換えることにより、非特許文献2の”A Third Attempt”の方式においても第1の実施形態に対するのと同様の技術的効果を得ることができる。
【0126】
(第4の実施形態)
非特許文献2の3.2節に記載の”Temporary Unidirectional Proxy Re-encryption”の方式では、再暗号化鍵の形式が第1の実施形態がg^{pw/x}であるのに対して、g^{pw・xr/x0}の形をしている。そのため、図8に示すように、R=D^{xr/x0}とし、第1の実施形態の鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、復号処理をそれぞれ非特許文献2の”Temporary Unidirectional Proxy Re-encryption”の処理に置き換えることにより、非特許文献2の”Temporary Unidirectional Proxy Re-encryption”の方式においても第1の実施形態に対するのと同様の技術的効果を得ることができる。
【0127】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0128】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0129】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0130】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0131】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0132】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0133】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0134】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0135】
Sv…サーバ装置、11…公開鍵記憶部、12…暗号文記憶部、13…再暗号化鍵記憶部、14,23,32…送受信部、15…再暗号化部、16…再暗号化鍵情報生成部、17…更新済み再暗号化鍵生成部、A,B,C…ユーザ装置、21,31…秘密鍵記憶部、22…ファイルデータ記憶部、24,33…鍵生成部、25…暗号化部、26…復号部、27…再暗号化鍵更新情報生成部、M…グループ管理者装置、34…再暗号化鍵生成部。

【特許請求の範囲】
【請求項1】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置であって、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する記憶手段と、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、前記再暗号化鍵を前記ユーザ装置に送信し、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵から計算された更新後の再暗号化鍵を前記ユーザ装置から受信する送受信手段と、
前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する置換手段と、
を備えたことを特徴とするサーバ装置。
【請求項2】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置であって、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶する記憶手段と、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する第1計算手段と、
前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する送受信手段と、
前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する第2計算手段と、
を備えたことを特徴とするサーバ装置。
【請求項3】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置に用いられるプログラムであって、
前記サーバ装置を
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を前記サーバ装置の記憶手段に書込む手段、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、前記再暗号化鍵を前記ユーザ装置に送信し、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵から計算された更新後の再暗号化鍵を前記ユーザ装置から受信する送受信手段、
前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する置換手段、
として機能させるためのプログラム。
【請求項4】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を記憶するサーバ装置に用いられるプログラムであって、
前記サーバ装置を、
前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を前記サーバ装置の記憶手段に書込む手段、
前記ユーザ装置から前記再暗号化鍵を更新する旨の通知を受けると、乱数を生成し、前記記憶された再暗号化鍵及び前記生成した乱数に基づいて再暗号化鍵情報を計算する第1計算手段、
前記再暗号化鍵情報を前記ユーザ装置に送信し、前記ユーザ装置から更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて当該再暗号化鍵情報から計算された再暗号化鍵更新情報を受信する送受信手段、
前記再暗号化鍵更新情報及び前記乱数に基づいて前記更新後の再暗号化鍵を計算すると共に、前記記憶手段内の再暗号化鍵を前記更新後の再暗号化鍵に置換する第2計算手段、
として機能させるためのプログラム。
【請求項5】
管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵であって、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶するサーバ装置に通信可能な前記ユーザ装置に用いられるプログラムであって、
前記ユーザ装置を、
更新前のユーザ公開鍵に対応する更新前のユーザ秘密鍵と、更新後のユーザ公開鍵に対応する更新後のユーザ秘密鍵とを前記記憶手段に書込む手段、
前記再暗号化鍵を更新する旨の通知を前記サーバ装置に送信し、前記サーバ装置から前記再暗号化鍵及び乱数に基づいて計算された再暗号化鍵情報を受信する手段、
前記受信した再暗号化鍵情報と、前記更新前のユーザ秘密鍵及び前記更新後のユーザ秘密鍵とに基づいて当該再暗号化鍵情報から再暗号化鍵更新情報を計算する手段、
前記計算した再暗号化鍵更新情報を前記サーバ装置に送信する手段、
として機能させ、
前記再暗号化鍵更新情報は、前記サーバ装置により、前記乱数に基づいて更新後の再暗号化鍵が計算される情報であり、
前記更新後の再暗号化鍵は、前記サーバ装置により、更新前の再暗号化鍵から置換されて記憶されるプログラム。
【請求項6】
グループ管理者装置の管理者公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、ユーザ装置のユーザ秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵であって、前記管理者公開鍵に対応する管理者秘密鍵と、前記ユーザ秘密鍵に対応するユーザ公開鍵とに基づいて生成された前記再暗号化鍵を記憶するサーバ装置に通信可能な前記グループ管理者装置に用いられるプログラムであって、
前記グループ管理者装置を、
前記管理者秘密鍵を前記グループ管理者装置の記憶手段に書込む手段、
前記サーバ装置から受けた前記ユーザ公開鍵と、前記管理者秘密鍵とに基づいて、前記再暗号化鍵を生成する生成手段、
前記生成手段により生成した再暗号化鍵を前記サーバ装置に送信する手段、
として機能させ、
前記再暗号化鍵は、前記サーバ装置により、乱数に基づいて再暗号化鍵情報が計算される情報であり、
前記再暗号化鍵情報は、前記ユーザ装置により、更新前の前記ユーザ秘密鍵及び更新後のユーザ秘密鍵に基づいて再暗号化鍵更新情報が計算される情報であり、
前記再暗号化鍵更新情報は、前記サーバ装置により、前記乱数に基づいて更新後の再暗号化鍵が計算される情報であり、
前記更新後の再暗号化鍵は、前記サーバ装置により更新前の再暗号化鍵から置換されて記憶されるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate