【文献】
Ateniese,G.et al.,Key−Private Proxy Re−encryption,Lecture Notes in Computer Science,Vol.5473,2009年,p.279−294
(58)【調査した分野】(Int.Cl.,DB名)
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置(30)に通信可能な再暗号化装置(40)であって、
前記再暗号化鍵生成装置は、
前記第1公開鍵に対応する第1秘密鍵を記憶する第1記憶手段(31)であって、前記第1公開鍵は複数のシステム固定値に対するベキ指数として前記第1秘密鍵を有している、前記第1記憶手段と、
前記第2秘密鍵に対応する第2公開鍵を記憶する第2記憶手段(32)であって、前記第2公開鍵は前記複数のシステム固定値に対するベキ指数として前記第2秘密鍵を有している、前記第2記憶手段と、
第1乱数を生成する第1乱数生成手段(36)と、
前記第1秘密鍵、前記第2公開鍵及び前記第1乱数に基づいて、前記再暗号化鍵を生成する再暗号化鍵生成手段(34)であって、前記再暗号化鍵は、前記各システム固有値に対するベキ指数として分子部分と分母部分とをそれぞれ有する第1再暗号化鍵要素データ、第2再暗号化鍵要素データ及び第3再暗号化鍵要素データからなり、前記第1再暗号化鍵要素データのベキ指数の分子部分は、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第1再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第2再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数及び前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第2再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第3再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数と、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第3再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなる、前記再暗号化鍵生成手段と
を備え、
前記暗号文データは、ベキ指数として第2乱数を有する、各システム固有値の双線型写像を前記平文データに乗じてなる第1暗号文要素データと、前記第1公開鍵に対するベキ指数として前記第2乱数を有する複数の第2暗号文要素データとを有しており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第3乃至第5乱数に基づいて、前記第1暗号文要素データと、前記複数の第2暗号文要素データに対するベキ指数として前記第3乃至第5乱数を個別に有する複数の第1再暗号文要素データと、前記再暗号化鍵に対するベキ指数として前記第3乃至第5乱数の各々の逆数を個別に有する複数の第2再暗号文要素データとを含むデータとして生成されており、
前記第3乃至第5乱数は、公開パラメータと検証式を用いた前記暗号文データの検証により生成されていることを特徴とする再暗号化装置。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置(30)に通信可能な再暗号化装置(40)であって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を記憶する記憶手段(41)と、
前記第1ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る再暗号化手段(44)と、
前記得られた再暗号文データを前記第2ユーザ装置に送信する手段(43)と、
を備え、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵、及び前記再暗号化鍵生成装置により生成された第1乱数に基づいて、生成されており、
前記第1公開鍵は複数のシステム固定値に対するベキ指数として前記第1秘密鍵を有しており、
前記第2公開鍵は前記複数のシステム固定値に対するベキ指数として前記第2秘密鍵を有しており、
前記再暗号化鍵は、前記各システム固有値に対するベキ指数として分子部分と分母部分とをそれぞれ有する第1再暗号化鍵要素データ、第2再暗号化鍵要素データ及び第3再暗号化鍵要素データからなり、前記第1再暗号化鍵要素データのベキ指数の分子部分は、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第1再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第2再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数及び前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第2再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第3再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数と、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第3再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、
前記暗号文データは、前記第1公開鍵及び第2乱数に基づいて生成されており、
前記暗号文データは、ベキ指数として前記第2乱数を有する、各システム固有値の双線型写像を前記平文データに乗じてなる第1暗号文要素データと、前記第1公開鍵に対するベキ指数として前記第2乱数を有する複数の第2暗号文要素データとを有しており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第3乃至第5乱数に基づいて、前記第1暗号文要素データと、前記複数の第2暗号文要素データに対するベキ指数として前記第3乃至第5乱数を個別に有する複数の第1再暗号文要素データと、前記再暗号化鍵に対するベキ指数として前記第3乃至第5乱数の各々の逆数を個別に有する複数の第2再暗号文要素データとを含むデータとして生成されており、
前記第3乃至第5乱数は、公開パラメータと検証式を用いた前記暗号文データの検証により生成されていることを特徴とする再暗号化装置。
第1ユーザ装置の第1公開鍵により平文データを暗号化して得られた暗号文データを復号せずに再暗号化して、第2ユーザ装置の第2秘密鍵により復号可能な再暗号文データを得るための再暗号化鍵を生成する再暗号化鍵生成装置(30)に通信可能な再暗号化装置(40)のプロセッサに実行され、非一時的なコンピュータ読取可能な記憶媒体(M4)に記憶されたプログラムであって、
前記再暗号化鍵生成装置から受けた前記再暗号化鍵を前記再暗号化装置の記憶手段(41)に書込む処理を前記プロセッサに実行させる第1プログラムコード(43)、
前記第1ユーザ装置から受けた前記暗号文データを復号せずに、前記記憶手段内の再暗号化鍵により再暗号化して前記再暗号文データを得る処理を前記プロセッサに実行させる第2プログラムコード(44)、
前記得られた再暗号文データを前記第2ユーザ装置に送信する処理を前記プロセッサに実行させる第3プログラムコード(ST43)、
を備え、
前記再暗号化鍵は、前記第1公開鍵に対応する第1秘密鍵、前記第2秘密鍵に対応する第2公開鍵、及び前記再暗号化鍵生成装置により生成された第1乱数に基づいて、生成されており、
前記第1公開鍵は複数のシステム固定値に対するベキ指数として前記第1秘密鍵を有しており、
前記第2公開鍵は前記複数のシステム固定値に対するベキ指数として前記第2秘密鍵を有しており、
前記再暗号化鍵は、前記各システム固有値に対するベキ指数として分子部分と分母部分とをそれぞれ有する第1再暗号化鍵要素データ、第2再暗号化鍵要素データ及び第3再暗号化鍵要素データからなり、前記第1再暗号化鍵要素データのベキ指数の分子部分は、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第1再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第2再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数及び前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第2再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、前記第3再暗号化鍵要素データのベキ指数の分子部分は、前記各システム固定値に関するベキ指数と、前記第2公開鍵が有する第2秘密鍵と、前記第1乱数とに基づく線形結合の形を有しており、前記第3再暗号化鍵要素データのベキ指数の分母部分は前記第1秘密鍵からなり、
前記暗号文データは、前記第1公開鍵及び第2乱数に基づいて生成されており、
前記暗号文データは、ベキ指数として前記第2乱数を有する、各システム固有値の双線型写像を前記平文データに乗じてなる第1暗号文要素データと、前記第1公開鍵に対するベキ指数として前記第2乱数を有する複数の第2暗号文要素データとを有しており、
前記再暗号文データは、前記暗号文データ、前記再暗号化鍵、及び第3乃至第5乱数に基づいて、前記第1暗号文要素データと、前記複数の第2暗号文要素データに対するベキ指数として前記第3乃至第5乱数を個別に有する複数の第1再暗号文要素データと、前記再暗号化鍵に対するベキ指数として前記第3乃至第5乱数の各々の逆数を個別に有する複数の第2再暗号文要素データとを含むデータとして生成されており、
前記第3乃至第5乱数は、公開パラメータと検証式を用いた前記暗号文データの検証により生成されているプログラム。
【発明を実施するための形態】
【0023】
以下、各実施形態について図面を用いて説明する。なお、以下の各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、
図1に示す如き、予めネットワーク又は非一時的なコンピュータ読取可能な記憶媒体(non-transitory computer-readable storage medium)M1〜M5からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、当該コンピュータに各装置の機能を実現させるためのプログラムが用いられる。
【0024】
(第1の実施形態)
始めに、プロキシ再暗号化方式について説明する。プロキシ再暗号化方式の基本的なモデルは以下の鍵生成、暗号化、復号、再暗号化鍵生成、再暗号化の5つの関数(以下、アルゴリズムともいう)からなる。鍵生成、暗号化、復号の機能は通常の公開鍵暗号と同様である。
【0025】
(鍵生成)KeyGen(1
k)→(pk,sk)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1
kが入力されると、公開鍵pkと秘密鍵skの組(pk,sk)を出力する。
【0026】
(暗号化)Enc(pk
A,m)→C
A
暗号化アルゴリズムEncは、ユーザAの公開鍵pk
Aとメッセージmが入力されると、ユーザA宛の暗号文C
Aを出力する。
【0027】
(復号)Dec(sk
A,C
A)→m
復号アルゴリズムDecは、ユーザAの秘密鍵sk
Aと、ユーザA宛の暗号文C
Aとが入力されると、メッセージmを出力する。
【0028】
(再暗号化鍵生成)ReKeyGen(pk
A,sk
A,pk
B,sk
B)→rk
A→B
再暗号化鍵生成アルゴリズムReKeyGenは、ユーザAの公開鍵pk
A、ユーザAの秘密鍵sk
A、ユーザBの公開鍵pk
B、ユーザBの秘密鍵sk
Bが入力されると、再暗号化鍵rk
A→Bを出力する。
【0029】
(再暗号化)ReEnc(rk
A→B,C
A)→C
B
再暗号化アルゴリズムReEncは、再暗号化鍵rk
A→Bと、ユーザA宛の暗号文C
Aとが入力されると、ユーザB宛の暗号文C
Bを出力する。
【0030】
以上が基本的なモデルである。但し、再暗号化の実現方式に応じて、関数への入力が異なるモデルや、上記以外の関数や鍵を含むモデルも考えられている。
【0031】
例えば、本実施形態に示す再暗号化方式のように、再暗号化鍵生成アルゴリズムの入力において、ユーザBの秘密鍵sk
Bを不要とした非相互作用的(non-interactive)と呼ばれるモデルが考えられている。また、ユーザAの秘密鍵sk
Aに代えて、ユーザB宛の再暗号化鍵rk
A→BとユーザCの秘密鍵sk
Cとが入力されるモデルなども考えられている。
【0032】
また、再暗号化鍵rk
A→Bで暗号文C
A→C
Bの再暗号化を行える一方で、その逆の暗号文C
B→C
Aの変換を行えない一方向性(unidirectional)と呼ばれるモデル、逆の変換も行える双方向性(bidirectional)と呼ばれるモデルなども知られている。なお、双方向性モデルでは、再暗号化鍵rk
A→Bをrk
A⇔Bと表すことがある。
【0033】
さらに、公開鍵暗号の中でもIDベース暗号に基づく方式も考えられている。その場合、マスター鍵生成のための関数セットアップ(Setup)が増え、鍵生成アルゴリズムKeyGenの入力にマスター鍵とIDが追加される。IDベース暗号において、公開鍵pkはIDそのものである。
【0034】
次に、本実施形態に係るファイル共有システムの構成について
図7を用いて説明する。ファイル共有システムは、サービスを提供するサービス提供者の有する情報処理装置であるサーバSvと、当該サービスの利用者であるユーザの有する情報処理装置であるユーザ装置A,B,C,…とを備えている。サーバSvと、ユーザ装置A,B,C,…とは通信網を介して接続されている。通信網とは、例えば、無線LAN(Local Area Network)、有線LAN、光回線網、電話回線網、イントラネット、イーサネット(登録商標)及びインターネットやこれらの組み合わせである。尚、同図では、ファイル共有システムに接続されるサーバSvは1台のみが示されているが、複数台であっても良い。また、ユーザ装置A,B,C,…は、ユーザA,B,C,…と略記する場合や、第1ユーザ装置,第2ユーザ装置,…と呼ぶ場合がある。
【0035】
図8は、ファイル共有システムの模式図である。このファイル共有システムは、サーバSv、ユーザA、ユーザB、ユーザC、グループ管理者、及びユーザ管理者からなる。ユーザ管理者とは、全ユーザを管理するエンティティである。ユーザ管理者は、ユーザがファイル共有システムにログインできるようにするためのIDと初期パスワードを各ユーザに対して発行する。
【0036】
事前準備として、各ユーザは、グループ管理者の公開鍵pk
Grを持っているものとする。また、共有しようとする平文のファイルデータをmと表記する。サーバSvは、グループ管理者宛の暗号文E(pk
Gr,m)をユーザA(又はユーザB、又はユーザC)宛の暗号文E(pk
A,m)(又はE(pk
B,m)、又はE(pk
C,m))に再暗号化する再暗号化鍵rk
Gr→A(又はrk
Gr→B、又はrk
Gr→C)を持っているものとする。各ユーザiは秘密鍵sk
iを持っているものとする。つまり、ユーザAは秘密鍵sk
A、ユーザBはsk
B、ユーザCはsk
Cをそれぞれ持っている。
【0037】
次に、ユーザCは、公開鍵記憶部1に記憶されているグループ管理者の公開鍵pk
Grでファイルデータmを暗号化し、得られた暗号文E(pk
Gr,m)をサーバSvへアップロードする。サーバSvは、暗号文記憶部2においてこの暗号文を保管する。
【0038】
今、ユーザAがファイルデータmを共有したいとする。ユーザAは、サーバSvに対して暗号文E(pk
Gr,m)の再暗号化の要求を送信する。サーバSvは、ユーザAから受けた要求に対し、再暗号化鍵記憶部3に記憶されているユーザA宛の再暗号化鍵rk
Gr→Aに基づいて、暗号文E(pk
Gr,m)をユーザA宛の再暗号文E(pk
A,m)に再暗号化し、得られた再暗号文E(pk
A,m)をユーザAに送信する。ここで、再暗号文とは、暗号文を再暗号化した暗号文である。
【0039】
ユーザAは、サーバSvからダウンロードした再暗号文E(pk
A,m)を自身が保有する秘密鍵sk
Aで復号し、得られたファイルデータmを利用する。
【0040】
以上のようなファイル共有システムは、ユーザCによる暗号化からユーザAによる復号までの間、ファイルデータMが一度も復号されないため、ファイル共有の過程における情報の漏洩を阻止することができる。
【0041】
また、ユーザCは、暗号文をアップロードする時点で、どのユーザとファイル共有するかを決定する必要がない。つまり、ユーザCは、ファイルデータmをグループ管理者の公開鍵pk
Grで暗号化すれば良く、暗号化に関して管理すべき鍵がグループ管理者の公開鍵pk
Grのみで良いので、鍵管理のコストを低減させることができる。
【0042】
本ファイル共有システムにおいて、サーバSvは、暗号文E(pk
Gr,m)を復号するための復号鍵sk
Grを持たない。従って、サーバSvはこの暗号文を復号できない。これは、不正なサーバSvが暗号文を復号して漏洩させてしまうといった脅威を排除できるため、サーバSvを厳重に管理しなくても良く、サーバSvの管理コストの低減に繋がる。
【0043】
ユーザBがファイル共有を行う際も上記と同様である。
【0044】
図1は第1の実施形態に係る再暗号化システムの構成を示す模式図である。(
図1と
図8の対応関係については後述する。)この再暗号化システムは、鍵生成装置10、暗号化装置20、再暗号化鍵生成装置30、再暗号化装置40及び復号装置50を備えている。ここで、鍵生成装置10は、再暗号化システムの各種パラメータ及び各装置40,50の公開鍵・秘密鍵のペアを生成する。
【0045】
暗号化装置20は、再暗号化鍵生成装置30の秘密鍵に対応する公開鍵を用いて平文データを暗号化して得られた暗号文データを再暗号化装置40に送信する。
【0046】
再暗号化鍵生成装置30は、再暗号化鍵生成装置30の秘密鍵と復号装置50の公開鍵と乱数とを用いて再暗号化鍵を生成する。
【0047】
再暗号化装置40は、暗号化装置20から受けた暗号文データを復号せずに再暗号化鍵により再暗号化して得られた再暗号文データを復号装置50に送信する。
【0048】
復号装置50は、再暗号化鍵生成装置30の公開鍵を用いて再暗号文データを検証処理すると共に、自装置50の公開鍵に対応する秘密鍵を用いて再暗号文データを復号処理して平文データを得る。なお、再暗号化鍵生成装置30、再暗号化装置40及び復号装置50は、それぞれ複数台が設けられていてもよいが、ここでは一台ずつ設けられている場合を例に挙げて述べる。
【0049】
図1と
図8の対応関係について説明する。各装置10〜50は、当該処理を行うエンティティにより保持される。ユーザが自身の公開鍵と秘密鍵の組を生成する場合、当該ユーザは鍵生成装置10を保持する。なお、例えば、ユーザ管理者又はグループ管理者がユーザの公開鍵と秘密鍵の組を生成する場合、ユーザ管理者又はグループ管理者が鍵生成装置10を保持する。ユーザは、暗号化装置20、復号装置50、又は両方を保持する。グループ管理者は、再暗号化鍵生成装置30を保持する。なお、例えば、ユーザ管理者又はサーバSvが再暗号化鍵を生成する場合、ユーザ管理者又はサーバSvが再暗号化鍵生成装置30を保持する。サーバSvは、再暗号化装置40を保持する。
図8に例示したファイル共有システムにおいては、サーバSvが公開鍵記憶部1を保持し、暗号化を行うユーザCは、公開鍵記憶部1から暗号化に用いる公開鍵を取得しているが、これに限らず、後述するように、ユーザCは(暗号化に用いる公開鍵を生成した)鍵生成装置10から暗号化に用いる公開鍵を取得しても良い。また、サーバSvは、ユーザCが生成した暗号文E(pk
Gr,m)を暗号文記憶部2において保管するが、暗号文記憶部2は再暗号化装置40に含まれていても良いし、再暗号化装置40に含まれない外部の記憶装置であっても良い。
【0050】
どのエンティティがどの装置を保持するかについては、上述の例に限定されるものではなく、様々なバリエーションが考えられる。また、ユーザ管理者又はグループ管理者がユーザを兼ねる場合も兼ねない場合もある。また、各ユーザが用いる各ユーザ装置は、第1ユーザ装置、第2ユーザ装置、…と呼んでもよい。同様に、各ユーザ装置の公開鍵及び秘密鍵は、第1ユーザ装置の第1公開鍵及び第1秘密鍵、第2ユーザ装置の第2公開鍵及び第2秘密鍵、…と呼んでもよい。
【0051】
続いて、各装置10〜50の構成を具体的に説明する。
【0052】
鍵生成装置10は、鍵生成パラメータ記憶部11、一時データ記憶部12、公開パラメータ生成部13、公開鍵・秘密鍵生成部14、通信部15及び制御部16を備えている。
【0053】
ここで、鍵生成パラメータ記憶部11は、鍵生成パラメータを記憶する記憶装置である。
【0054】
一時データ記憶部12は、各生成部13,14の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0055】
公開パラメータ生成部13は、鍵生成の公開パラメータを生成する。
【0056】
公開鍵・秘密鍵生成部14は、ユーザ宛の公開鍵・秘密鍵を生成する。
【0057】
通信部15は、他の装置20〜50と通信するための通信インタフェースであり、例えば、以下の各機能(f15-1)〜(f15-2)をもっている。
【0058】
(f15-1) 制御部16に制御されて一時データ記憶部12内の各30,50の公開鍵・秘密鍵のペアを当該各装置30,50に送信する機能。
【0059】
(f15-2) 制御部16に制御されて一時データ記憶部12内の再暗号化鍵生成装置30の公開鍵を暗号化装置20に送信する機能。
【0060】
なお、以下の説明では、送受信時の冗長な記載を避ける観点から、送受信の際に、通信部15を介する旨の記載を省略する場合がある。これは他の装置20〜50の通信部についても同様である。
【0061】
制御部16は、
図2に示す動作を実行するように、各部11〜15を制御する機能をもっている。
【0062】
暗号化装置20は、一時データ記憶部21、通信部22、暗号化データ生成部23、暗号文生成部24及び制御部25を備えている。
【0063】
ここで、一時データ記憶部21は、鍵生成装置10から受けた再暗号化鍵生成装置30の公開鍵や、各生成部23,24の処理途中及び処理結果などの一時的なデータ(以下、一時データともいう)を記憶する記憶装置である。
【0064】
通信部22は、他の装置10,30〜50と通信するための通信インタフェースであり、例えば、以下の各機能(f22-1)〜(f22-2)をもっている。
【0065】
(f22-1) 鍵生成装置10に公開された再暗号化鍵生成装置30の公開鍵を取得して一時データ記憶部21に書き込む機能。
【0066】
(f22-2) 制御部25に制御されて一時データ記憶部21内の暗号文データを再暗号化装置40に送信する機能。
【0067】
暗号化パラメータ生成部23は、暗号化パラメータを生成する機能をもっている。
【0068】
暗号文生成部24は、例えば、以下の各機能(f24-1)〜(f24-2)をもっている。
【0069】
(f24-1) 一時データ記憶部21から読み出した再暗号化鍵生成装置30の公開鍵(第1ユーザ装置の第1公開鍵)を用いて平文データを暗号化することにより、暗号文データを生成する機能。
【0070】
(f24-2) 得られた暗号文データを一時データ記憶部21に書き込む機能。
【0071】
制御部25は、
図3に示す動作を実行するように、各部21〜24を制御する機能をもっている。
【0072】
再暗号化鍵生成装置30は、秘密鍵記憶部31、一時データ記憶部32、通信部33、再暗号化鍵生成部34、制御部35及び乱数生成部36を備えている。
【0073】
秘密鍵記憶部31は、鍵生成装置10から受けた再暗号化鍵生成装置30の秘密鍵を記憶する記憶装置である。
【0074】
一時データ記憶部32は、鍵生成装置10から受けた復号装置50の公開鍵や、再暗号化鍵生成部34の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0075】
通信部33は、他の装置10,20,40,50と通信するための通信インタフェースであり、例えば制御部35に制御されて一時データ記憶部32内の再暗号化鍵を再暗号化装置40に送信する機能をもっている。
【0076】
再暗号化鍵生成部34は、例えば、以下の各機能(f34-1)〜(f34-2)をもっている。
【0077】
(f34-1) 秘密鍵記憶部31から読み出した再暗号化鍵生成装置30の秘密鍵(第1ユーザ装置の第1秘密鍵)と、一時データ記憶部32から読み出した復号装置50の公開鍵(第2ユーザ装置の第2公開鍵)と、乱数生成部36により生成された乱数とに基づいて再暗号化鍵を生成する機能(この機能では暗号化時のパラメータ―詳しくは乱数―が不要)。
【0078】
(f34-2) この再暗号化鍵を一時データ記憶部32に書き込む機能。
【0079】
制御部35は、
図4に示す動作を実行するように、各部31〜34,36を制御する機能をもっている。
【0080】
乱数生成部36は、乱数を生成して再暗号化鍵生成部34に送出する機能をもっている。
【0081】
再暗号化装置40は、再暗号化鍵記憶部41、一時データ記憶部42、通信部43、再暗号化処理部44、再暗号化パラメータ生成部45及び制御部47を備えている。
【0082】
再暗号化鍵記憶部41は、再暗号化鍵生成装置30から受けた再暗号化鍵を記憶する記憶装置である。
【0083】
一時データ記憶部42は、再暗号化処理部44の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0084】
通信部43は、他の装置10〜30,50と通信するための通信インタフェースであり、例えば、以下の各機能(f43-1)〜(f43-2)をもっている。
【0085】
(f43-1) 暗号化装置20から受けた暗号文データを再暗号化処理部44に送出する機能。
【0086】
(f43-2) 制御部47に制御されて一時データ記憶部42内の再暗号文データを復号装置50に送信する機能。
【0087】
再暗号化処理部44は、例えば、以下の各機能(f44-1)〜(f44-2)をもっている。
【0088】
(f44-1) 暗号化装置20から暗号文データを受けると、再暗号化鍵記憶部41から読み出した再暗号化鍵を用いて当該暗号文データを復号せずに再暗号化することにより、再暗号文データを得る機能。
【0089】
(f44-2) 得られた再暗号文データを一時データ記憶部42に書き込む機能。
【0090】
制御部47は、再暗号文検証プログラムを配信する動作(図示せず)と
図5に示す動作を実行するように、各部41〜45を制御する機能をもっている。
【0091】
復号装置50は、秘密鍵記憶部51、一時データ記憶部52、通信部53、復号処理部54、及び制御部56を備えている。
【0092】
秘密鍵記憶部51は、鍵生成装置10から受けた自装置50の秘密鍵を記憶する記憶装置である。
【0093】
一時データ記憶部52は、鍵生成装置10から受けた自装置50の公開鍵及び再暗号化鍵生成装置30の公開鍵や、復号処理部54の処理途中及び処理結果などの一時データを記憶する記憶装置である。
【0094】
通信部53は、他の装置10〜40と通信するための通信インタフェースであり、例えば、以下の各機能(f53-1)〜(f53-3)をもっている。
【0095】
(f53-1) 鍵生成装置10から受けた自装置50の秘密鍵を秘密鍵記憶部51に書き込む機能。
【0096】
(f53-2) 鍵生成装置10から受けた自装置50の公開鍵及び再暗号化鍵生成装置30の公開鍵を一時データ記憶部52に書き込む機能。
【0097】
(f53-3) 再暗号化装置40から受けた再暗号化データを復号処理部54に送出する機能。
【0098】
復号処理部54は、例えば、以下の各機能(f54-1)〜(f54-3)をもっている。
【0099】
(f54-1) 再暗号化装置40から再暗号文データを受けると、秘密鍵記憶部51から読み出した当該復号装置50の秘密鍵(第2ユーザ装置の第2秘密鍵)に基づいて、当該再暗号文データを復号処理することにより、平文データを得る機能。
【0100】
(f54-2) 得られた平文データを一時データ記憶部52に書き込む機能。
【0101】
制御部56は、
図6に示す動作を実行するように、各部51〜54を制御する機能をもっている。
【0102】
次に、以上のように構成された再暗号化システムの動作を
図2乃至
図6のシーケンス図を用いて説明する。
【0103】
また、以下の動作は(1)鍵セットアップ処理、(2)暗号化処理、(3)再暗号化鍵生成処理、(4)再暗号化処理、(5)復号処理の手順で実行される場合を例に挙げて述べる。但し、以下の動作は、必ずしも上記手順で処理を実行しなくてもよい。例えば、再暗号化鍵生成は、暗号化処理の前に実行されてもよい。また、再暗号化処理が実行されずに、暗号文データが復号されてもよい。
【0104】
(1)鍵セットアップ処理は、鍵生成装置10により、
図2及び以下の各ステップST1〜ST12に示すように実行される。
【0105】
始めに、鍵生成装置10の公開パラメータ生成部13は、公開パラメータ(p,λ,G,G
T,g,g
1,g
2,u,v,
【数1】
【0106】
)を生成する、又は外部から入手する(ST1)。具体的には、公開パラメータ生成部13は、予め鍵パラメータ記憶部11に記憶したセキュリティパラメータλに基づいて、素数位数p>2
λを満たす双線型写像群(bilinear map groups)(G,G
T)、Gの元g,g
1,g
2,u,v、強偽造不可能性を満たす使い捨て署名(one-time signature)アルゴリズム
【数2】
【0107】
を生成する。なお、Z
p*はZ
pかつpと互いに素な整数の集合(=(Z/pZ)
*)であり、素数pに対する乗法群Z
p*と呼んでもよい。Z
pは0以上p未満の整数の集合(=(Z/pZ)である。そして、「元」(げん)とは、数学的な意味を持つ用語であり、要素とも呼ばれ、複数の「もの」で構成されている集合の中において、集合を構成している個々のものを指す。また、使い捨て署名アルゴリズム
【数3】
【0108】
使い捨て署名については、A. Menezes, P. van Oorschot, S. Vanstone, “Handbook of Applied Cryptography”, CRC Press, (1996) pp.462-471, (1996)に詳しい。
【0109】
また、双線型写像(eと表記する)とは、e:G×G→G
Tとなる写像であり、以下の3つの性質を満たす。
【0110】
1.任意の(g,h)∈G×G及びa,b∈Zについて、e(g
a,h
b)=e(g,h)
abが成り立つ。ここで、Zとは整数の集合である。
【0111】
2.任意の(g,h)∈G×Gについて、e(g,h)が計算可能である。
【0112】
3.g,h≠1
Gである場合は常にe(g,h)≠1
GTが成り立つ。ここで、1
GとはGの単位元であり、1
GTとはG
Tの単位元である。
【0113】
また、双線型写像群(bilinear map groups)(G,G
Tと表記する)とは、双線型写像e:G×G→G
Tが存在する素数位数pの群である。上記の定義は、Gの元g,g
1,g
2について、g
1=g
α、g
2=g
βとすると、次式が成り立つことも意味する(但し、α,βは、Gの元g,g
1,g
2に関するベキ指数である。)。
【0114】
e(g
1g
2,g)=e(g,g
1g
2)=e(g,g
α・g
β)=e(g,g
α+β)=e(g,g)
α+β=e(g,g)
α・e(g,g)
β
なお、Gの複数の元g,g
1,g
2は、予め定められた複数のシステム固定値となっている。複数のシステム固定値としては、双線型写像群Gの3つの元に限らず、Gの2つ又は4つ以上といった複数の元が適宜使用可能となっている。また、「システム固定値」の語は、「固定値」、「元」又は「システムパラメータ」などと読み替えてもよい。この複数のシステム固定値は、双線型写像が存在する素数位数の群である双線型写像群の複数の元である。
【0115】
また、本明細書では、G、G
Tをともに乗法群と想定した記法を採用しているが、これに限らず、G、G
Tそれぞれについて、加法群と想定した記法で表すことも可能である。つまり、例えば、Gを加法群、G
Tを乗法群として表現しても良い。また、双線型写像として、双線型写像群G
1、G
2、G
T(G
1とG
2は異なる群である)について、e:G
1×G
2→G
Tとなる写像を用いても良い。これらは他の実施形態においても同様である。
【0116】
続いて、公開パラメータ生成部13は、生成した公開パラメータを一時データ記憶部12に書き込む。鍵生成装置10は、一時データ記憶部12内の公開パラメータp,λ,G,G
T,g,g
1,g
2,u,v,Sig)を公開する(ST2)。なお、ステップST1を実行する前に公開パラメータが既に公開されていた場合、その公開パラメータを一時データ記憶部12に書き込み、ステップST1及びステップST2をスキップしても良い。
【0117】
また、公開鍵・秘密鍵生成部14は、再暗号化鍵生成装置30の識別情報をiとしたとき、再暗号化鍵生成装置30の秘密鍵x
i,y
i,z
i∈Z
p*を生成し、この秘密鍵sk
i=(x
i,y
i,z
i)を用いて再暗号化鍵生成装置30の公開鍵
【数4】
【0119】
続いて、公開鍵・秘密鍵生成部14は、生成した公開鍵・秘密鍵のペアを一時データ記憶部12に書き込む。通信部15は、制御部16に制御されて一時データ記憶部12内の秘密鍵sk
iを再暗号化鍵生成装置30に送信する(ST8)。鍵生成装置10は、一時データ記憶部12内の再暗号化鍵生成装置30の公開鍵pk
iを公開する(ST9)。
【0120】
また同様に、公開鍵・秘密鍵生成部14は、復号装置50の識別情報をjとしたとき、復号装置50の秘密鍵sk
j=(x
j,y
j,z
j)を生成し、この秘密鍵sk
jを用いて復号装置50の公開鍵
【数5】
【0122】
続いて、公開鍵・秘密鍵生成部14は、生成した公開鍵・秘密鍵のペアを一時データ記憶部12に書き込む。通信部15は、制御部16に制御されて一時データ記憶部12内の秘密鍵sk
jを復号装置50に送信する(ST11)。鍵生成装置10は、一時データ記憶部12内の復号装置50の公開鍵pk
jを公開する(ST12)。また、所望により、暗号化装置20の秘密鍵sk
h及び公開鍵pk
hについても各ステップST10〜ST12と同様の処理を実行して暗号化装置20に秘密鍵sk
hを送信し、公開鍵pkX
hを公開してもよい。
【0123】
以上により、鍵セットアップ処理が完了する。以後、各装置20,30,40,50では、各ステップST2,ST6,ST9,ST12で公開された公開パラメータ及び公開鍵を適宜、取得して利用することができる。
【0124】
(2)暗号化処理は、暗号化装置20により、
図3及び以下の各ステップST21〜ST24に示すように実行される。
【0125】
すなわち、暗号化装置20の暗号化パラメータ生成部23は、公開パラメータにおけるセキュリティパラメータλ及び鍵ペア生成機能
【数6】
【0126】
を生成し(ST21)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0127】
また、暗号化パラメータ生成部23は、乱数r∈Z
p*を生成して暗号文生成部24に送出する。
【0128】
暗号文生成部24は、この乱数r及び再暗号化鍵生成装置30の公開鍵pk
iを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
3,C
4を生成する(ST22)。
【数7】
【0129】
しかる後、暗号文生成部24は、上記全ての暗号化データC
1〜C
4と使い捨て署名σとを含む暗号文データC
i=(C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
3,C
4,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。なお、暗号文データC
i=(C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
3,C
4,σ)は、検証を省略する場合、復号に用いない検証用データ(C
1,C
4,σ)を省略して、C
i=(C
2X,C
2Y,C
2Z,C
2Z1,C
3)としてもよい。この場合、検証用データ(C
1,C
4,σ)を生成する処理も省略される。
【0130】
いずれにしても通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを再暗号化装置40に送信する(ST24)。
【0132】
なお、本実施形態においては、上述したように(また後述するように)検証を省略したり、検証用データの生成を省略したりしてもよいが、これは後述する実施形態や変形例においても同様である。
【0133】
(3)再暗号化鍵生成処理は、再暗号化鍵生成装置30により、
図4及び以下の各ステップST31〜ST33に示すように実行される。
【0134】
すなわち、再暗号化鍵生成装置30の通信部33は、制御部35に制御されて、鍵生成装置10から公開された復号装置50の公開鍵pk
jを取得して一時データ記憶部32に書き込む(ST31)。また、通信部33は、前述したステップST5のとき、再暗号化鍵生成装置30の秘密鍵sk
iを鍵生成装置10から受信して秘密鍵記憶部31に書き込んでいる。
【0135】
乱数生成部36は、乱数θ∈Z
p*を生成して再暗号化鍵生成部34に送出する。
【0136】
再暗号化鍵生成部34は、この乱数θ、秘密鍵記憶部31内の再暗号化鍵生成装置30の秘密鍵sk
i、及び一時データ記憶部32内の復号装置50の公開鍵pk
jに基づいて、再暗号化鍵R
ijを次式に示すように生成する(ST32)。
【数8】
【0137】
である。なお、上式では、g
1=g
α,g
2=g
βと書き替えて表記している。
【0138】
しかる後、再暗号化鍵生成部34は、生成した再暗号化鍵R
ijを一時データ記憶部32に書き込む。通信部33は、制御部35に制御されて、一時データ記憶部32内の再暗号化鍵R
ijを再暗号化装置40に送信する(ST33)。
【0139】
以上により、再暗号化鍵生成処理が完了する。
【0140】
(4)再暗号化処理は、再暗号化装置40により、
図5及び以下の各ステップST41〜ST43に示すように実行される。
【0141】
再暗号化装置40の通信部43は、ステップST24で送信された暗号文データC
iと、ステップST33で送信された再暗号化鍵R
ijとをそれぞれ一時データ記憶部42に書き込む。
【0142】
再暗号化処理部44は、公開パラメータと次の検証式を用い、一時データ記憶部42内の暗号文データC
iを検証する(ST41)。
【数9】
【0143】
ここで、上記5つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0144】
検証が成功した場合、再暗号化パラメータ生成部45は、3つの乱数s,t,k∈Z
p*を生成して再暗号化処理部44に送出する。
【0145】
再暗号化処理部44は、これらの乱数s,t,k、一時データ記憶部42内の暗号文データC
i、及び一時データ記憶部42内の再暗号化鍵R
ijを用いて、次式に示すように、再暗号化データC
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Zを生成する(ST42)。
【数10】
【0146】
ステップST42の終了後、再暗号化処理部44は、上記全ての暗号化データ再暗号化データC
2X’〜C
5Zを、暗号文データC
i内の暗号化データC
2X,C
2Y,C
2Z,C
2Z1と置換して再暗号文データC
j=(C
1,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Z,C
3,C
4,σ)を生成し、得られた再暗号文データC
jを一時データ記憶部42に書き込む。なお、再暗号文データC
j=(C
1,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Z,C
3,C
4,σ)は、検証を省略する場合、復号に用いない検証用データ(C
1,C
2X’,C
2Y’,C
2Z’,C
2Z1’,C
2’’’,C
4,σ)を省略して、C
j=(C
2X’’,C
2Y’’,C
2Z’’,C
2Z1’’,C
5X, C
5Y,C
5Z,C
3)としてもよい。この場合、検証用データ(C
2X’,C
2Y’,C
2Z’,C
2Z1’,C
2’’’)を生成する処理も省略される。
【0147】
いずれにしても通信部43は、制御部47に制御されて一時データ記憶部42内の再暗号文データC
jを復号装置50に送信する(ST43)。
【0148】
以上により、再暗号化処理が完了する。
【0149】
(5)復号処理は、復号装置50により、
図6及び以下のステップST51及びST52に示すように実行される。
【0150】
すなわち、復号装置50の通信部53は、ステップST43で送信された再暗号文データCjを受信して一時データ記憶部52に書き込む。
【0151】
復号処理部54は、公開パラメータ及び自装置50の公開鍵pk
jと次の検証式を用い、一時データ記憶部52内の再暗号文データC
jを検証する(ST51)。
【数11】
【0152】
ここで、上記7つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0153】
検証が成功した場合、復号処理部54は、自装置の秘密鍵sk
jを用いて、次式に示すように、再暗号文データC
jを復号し、メッセージmを得る(ST52)。
【数12】
【0154】
なお、復号処理部54は、ステップST51の検証処理を省略し、ステップST52の復号処理を行ってもよい。また、再暗号文データC
jに検証用データが含まれていない場合も、復号処理部54は、ステップST51の検証処理を省略し、ステップST52の復号処理を行う。また、上記mはメッセージそのものではなく、鍵であってもよい。例えば、共通鍵暗号における共通鍵keyについて、m=keyとして、mをkeyに置き換えてもよい。この場合、共通鍵keyを用いてメッセージを暗号化した暗号文を上記暗号文データや再暗号文データに付加すればよい。これらは後述する実施形態や変形例においても同様である。
【0155】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理では暗号化処理を行なう際のパラメータ―詳しくは乱数―が不要であるため、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【0156】
上述したように本実施形態によれば、再暗号化鍵R
ijを乱数θに基づいて生成する構成により、サーバとユーザが結託した場合でも、復号権限を移譲元の許可なく再移譲されることを防ぐことができる。また、これにより、サーバに対して極端な信頼を求める必要が無くなるため、ユーザがより安心して利用できるファイル共有システムを提供することができる。
【0157】
[変形例1]
第1の実施形態では、暗号化装置20において暗号文データを生成し、再暗号化装置40において暗号文データを再暗号化して再暗号文データを生成し、復号装置50において再暗号文データを復号する例を挙げた。しかしながら、再暗号化せずに暗号文データを復号する形態に、第1の実施形態を変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第1の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【0158】
本変形例における暗号化処理と、第1の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置50の識別情報をiとする。この場合、暗号化装置20の通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを復号装置50に送信する(ST24’)。
【0159】
復号装置50は、暗号化装置20において生成された暗号文データC
iをステップST41と同様に検証する。検証が成功した場合、復号装置50は、秘密鍵sk
iを用いて、次式のように暗号文データC
iを復号し、メッセージmを得る。
【数13】
【0160】
[変形例2]
変形例1の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第1の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置50の識別情報をjとする。
【0161】
暗号化装置20の暗号化パラメータ生成部23は、ステップST21と同様に(ssk,svk)を生成し(ST21’)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0162】
また、暗号化パラメータ生成部23は、5つの乱数r,s,t,k,θ∈Z
p*を生成して暗号文生成部24に送出する。
【0163】
暗号文生成部24は、これらの乱数r,s,t,k,θ及び復号装置50の公開鍵pk
jを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Z,C
3,C
4を生成する(ST22’)。
【数14】
【0164】
ステップST22’の終了後、暗号文生成部24は、ステップST23と同様に、使い捨て署名σを生成する。
【0165】
しかる後、暗号文生成部24は、上記全ての暗号化データC
1〜C
4と使い捨て署名σとを含む暗号文データC
j=(C
1,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’,C
2’’’,C
5X, C
5Y,C
5Z,C
3,C
4,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0166】
通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
jを復号装置50に送信する。
【0167】
復号装置50は、暗号化装置20において生成された暗号文データC
jをステップST51と同様に検証する。検証が成功した場合、復号装置50は、秘密鍵sk
jを用いて、次式のように暗号文データC
jを復号し、メッセージmを得る。
【数15】
【0168】
[変形例3]
第1の実施形態では、公開パラメータにシステム固定値の3つの元g,g
1,g
2が含まれる例を説明したが、これに限らず、元g
2を生成せず、公開パラメータに元g
2を含めなくてもよい。この場合、第1の実施形態において、g
2=gとして、g
2をgに置き換えればよい。これは後述する実施形態や変形例においても同様である。[
[変形例4]
第1の実施形態では、公開パラメータにシステム固定値の3つの元g,g
1,g
2が含まれる例を説明したが、これに限らず、システム固定値の4つ以上の元を含めてもよい。例えば、公開パラメータに4つの元g,g
1,g
2,g
3を含める場合、第1の実施形態において、g
2=g
2g
3として、g
2をg
2g
3に置き換えればよい。また、例えば、公開パラメータに5つの元g,g
1,g
2,g
3,g
4を含める場合、第1の実施形態において、g
1=g
1g
3、g
2=g
2g
4として、g
1をg
1g
3に、g
2をg
2g
4にそれぞれ置き換えればよい。これは後述する実施形態や変形例においても同様である。
【0169】
(第2の実施形態)
本実施形態では、再暗号化鍵をある期間毎に更新する例を説明する。期間を表すパラメータとして、時間パラメータLを用いる。鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理の内、暗号化処理、再暗号化鍵生成処理、及び再暗号化処理において時間パラメータが用いられる。例えば、ある期間t
1において暗号化処理を行う場合、L=t
1として後述する暗号化処理を行い、次の期間t
2において暗号化処理を行う場合、L=t
2として後述する暗号化処理を行う、というように時間パラメータを用いる。以下、本実施形態における鍵セットアップ処理、暗号化処理、再暗号化鍵生成処理、再暗号化処理、及び復号処理について説明する。なお、上述の第1の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0170】
(1)鍵セットアップ処理
公開パラメータは、第1の実施形態と同じである。公開鍵・秘密鍵生成部14は、再暗号化鍵生成装置30の識別情報をiとしたとき、再暗号化鍵生成装置30の秘密鍵x
i,y
i,z
i,w
i∈Z
p*を生成し、この秘密鍵sk
i=(x
i,y
i,z
i,w
i)を用いて再暗号化鍵生成装置30の公開鍵
【数16】
【0172】
また同様に、公開鍵・秘密鍵生成部14は、復号装置50の識別情報をjとしたとき、復号装置50の秘密鍵sk
j=(x
j,y
j,z
j,w
j)を生成し、この秘密鍵sk
jを用いて復号装置50の公開鍵
【数17】
【0174】
(2)暗号化処理
第1の実施形態と同様に、暗号化装置20の暗号化パラメータ生成部23は、(ssk,svk)を生成し(ST21)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0175】
また、暗号化パラメータ生成部23は、乱数r∈Z
p*を生成して暗号文生成部24に送出する。
【0176】
暗号文生成部24は、この乱数r、再暗号化鍵生成装置30の公開鍵pk
i、及び時間パラメータLを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
2F,C
3,C
4を生成する(ST22)。
【数18】
【0177】
しかる後、暗号文生成部24は、時間パラメータL、上記全ての暗号化データC
1〜C
4、及び使い捨て署名σを含む暗号文データC
i=(L,C
1,C
2X,C
2Y,C
2Z,C
2Z1,C
2F,C
3,C
4,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0178】
(3)再暗号化鍵生成処理
乱数生成部36は、3つの乱数θ,δ
x,δ
y∈Z
p*を生成して再暗号化鍵生成部34に送出する。
【0179】
再暗号化鍵生成部34は、これらの乱数θ,δ
x,δ
y、秘密鍵記憶部31内の再暗号化鍵生成装置30の秘密鍵sk
i、一時データ記憶部32内の復号装置50の公開鍵pk
j、及び時間パラメータLを用いて、再暗号化鍵R
ijLを次式に示すように生成する(ST32)。
【数19】
【0180】
である。なお、上式では、g
1=g
α,g
2=g
βと書き替えて表記している。
【0181】
(4)再暗号化処理
再暗号化処理部44は、公開パラメータ、時間パラメータL、及び次の検証式を用い、一時データ記憶部42内の暗号文データC
iを検証する(ST41)。
【数20】
【0182】
ここで、上記6つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0183】
検証が成功した場合、再暗号化パラメータ生成部45は、4つの乱数s,t,k,h∈Z
p*を生成して再暗号化処理部44に送出する。
【0184】
再暗号化処理部44は、これらの乱数s,t,k,h、一時データ記憶部42内の暗号文データC
i、一時データ記憶部42内の再暗号化鍵R
ijL、及び時間パラメータLを用いて、次式に示すように、再暗号化データC
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’, C
2F’,C
2F’’ ,C
5X, C
5Y,C
5Z,C
5FX,C
5FYを生成する(ST42)。
【数21】
【0185】
ステップST42の終了後、再暗号化処理部44は、時間パラメータL、上記全ての暗号化データ再暗号化データC
2X’〜 C
5FYを、暗号文データC
i内の暗号化データC
2X,C
2Y,C
2Z,C
2Z1,C
2Fと置換して再暗号文データC
j=(C
1,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’, C
2F’,C
2F’’ ,C
5X, C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
4,σ)を生成し、得られた暗号文データを一時データ記憶部42に書き込む。
【0186】
(5)復号処理
復号処理部54は、公開パラメータ及び自装置50の公開鍵pk
jと次の検証式を用い、一時データ記憶部52内の再暗号文データC
jを検証する(ST51)。
【数22】
【0187】
ここで、上記8つの検証式が全て成立すれば検証は成功し、1つでも成立しない検証式があれば検証は失敗する。
【0188】
検証が成功した場合、復号処理部54は、自装置の秘密鍵sk
jを用いて、次式に示すように、再暗号文データC
jを復号し、メッセージmを得る(ST52)。
【数23】
【0189】
なお、本実施形態は、適宜、処理の順番を変更してもよい。例えば、復号処理と暗号文検証処理の順番を変更してもよい。同様に、再暗号化鍵生成処理の順番を暗号化処理よりも前に変更してもよい。
【0190】
上述したように本実施形態によれば、再暗号化鍵R
ijLを乱数θ,δ
x,δ
y及び時間パラメータLに基づいて生成する構成により、第1の実施形態の効果に加え、復号権限を移譲するか否かを期間毎に決めることができ、よりきめ細かいアクセス制御が可能となる。また、これにより、ある期間においてユーザA向けの暗号文についての復号権限を一度ユーザBへ移譲した後でも、次の期間についてはユーザA向けの暗号文についての復号権限をユーザBに与えない、つまり、(ユーザA向けの暗号文についての)ユーザBの復号権限を無効化することが可能となるため、利便性がより向上したファイル共有システムを提供することができる。
【0191】
[変形例5]
第2の実施形態では、暗号化装置20において暗号文データを生成し、再暗号化装置40において暗号文データを再暗号化して再暗号文データを生成し、復号装置50において再暗号文データを復号する例を挙げたが、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理は、第2の実施形態における鍵セットアップ処理と同じである。以下、本変形例における暗号化処理及び復号処理について説明する。
【0192】
本変形例における暗号化処理と、第2の実施形態における暗号化処理との違いは、最終ステップのみである。前述の記号を流用して説明をするために、便宜上、復号装置50の識別情報をiとする。この場合、暗号化装置20の通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
iを復号装置50に送信する(ST24’)。
【0193】
復号装置50は、暗号化装置20において生成された暗号文データC
iをステップST41と同様に検証する。検証が成功した場合、復号装置50は、秘密鍵sk
iを用いて、次式のように暗号文データC
iを復号し、メッセージmを得る。
【数24】
【0194】
[変形例6]
変形例5の他に、以下に説明するように、再暗号化せずに暗号文データを復号する形態に変更しても良い。この場合も、鍵セットアップ処理、暗号化処理、復号処理のみを行えば良い。本変形例における鍵セットアップ処理、復号処理は、第2の実施形態における鍵セットアップ処理、復号処理とそれぞれ同じである。以下、本変形例における暗号化処理及び復号処理について説明する。なお、本変形例においては、復号装置50の識別情報をjとする。
【0195】
暗号化装置20の暗号化パラメータ生成部23は、ステップST21と同様に(ssk,svk)を生成し(ST21’)、暗号化データC
1に検証鍵svkをセットする(C
1=svk)。
【0196】
また、暗号化パラメータ生成部23は、8つの乱数r,s,t,k,h,θ,δ
x,δ
y∈Z
p*を生成して暗号文生成部24に送出する。
【0197】
暗号文生成部24は、これらの乱数r,s,t,k,h,θ,δ
x,δ
y、復号装置50の公開鍵pk
j、及び時間パラメータLを用いて、平文データとしてのメッセージm∈G
T に対して、以下の暗号化データC
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’, C
2F’,C
2F’’ ,C
5X, C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
4を生成する(ST22’)。
【数25】
【0198】
ステップST22’の終了後、暗号文生成部24は、ステップST23と同様に、使い捨て署名σを生成する。
【0199】
しかる後、暗号文生成部24は、時間パラメータL、上記全ての暗号化データC
1〜C
4と使い捨て署名σとを含む暗号文データC
j=(L,C
2X’,C
2X’’, C
2Y’,C
2Y’’, C
2Z’,C
2Z’’, C
2Z1’,C
2Z1’’, C
2F’,C
2F’’ ,C
5X, C
5Y,C
5Z,C
5FX,C
5FY,C
3,C
4,σ)を生成し、得られた暗号文データを一時データ記憶部21に書き込む。
【0200】
通信部22は、制御部25に制御されて一時データ記憶部21内の暗号文データC
jを復号装置50に送信する。
【0201】
復号装置50は、暗号化装置20において生成された暗号文データC
jをステップST51と同様に検証する。検証が成功した場合、復号装置50は、秘密鍵sk
jを用いて、次式のように暗号文データC
jを復号し、メッセージmを得る。
【数26】
【0202】
以上説明した少なくとも一つの実施形態によれば、再暗号化鍵を乱数に基づいて生成する構成により、サーバとユーザが結託した場合でも、復号権限が移譲元の許可なく再移譲されることを阻止することができる。
【0203】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0204】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0205】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0206】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0207】
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0208】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0209】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0210】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。