【文献】
成瀬 猛,前方秘匿性を満たす属性失効機能付き属性ベース暗号,マルチメディア,分散,協調とモバイル(DICOMO2013)シンポジウム論文集 [CD−ROM],日本,一般社団法人情報処理学会,2013年 7月,Vol.2013 No.2,215−221
(58)【調査した分野】(Int.Cl.,DB名)
前記鍵生成装置は、前記ユーザ秘密鍵を失効させる場合、互いに対応する新しい鍵情報u’,y’の一方が設定された新しいユーザ秘密鍵と、前記属性秘密鍵で復号可能な暗号文を前記鍵情報u’,y’の他方が設定された再暗号文に変換する新しい再暗号化鍵とを生成し、
前記再暗号化装置は、前記新しい再暗号化鍵が生成された後は、前記新しい再暗号化鍵で、前記暗号文記憶装置が記憶する暗号文を再暗号化して再暗号文を生成する
ことを特徴とする請求項1に記載の暗号システム。
前記鍵生成装置は、ユーザの属性が変更された場合、互いに対応する新しいユーザ属性情報x’,v’の一方が設定された新しい属性秘密鍵で復号可能な暗号文を前記鍵情報u,yの他方が設定された再暗号文に変換する新しい再暗号化鍵を生成し、
前記再暗号化装置は、前記新しい再暗号化鍵が生成された後は、前記新しい再暗号化鍵で、前記暗号文記憶装置が記憶する暗号文を再暗号化して再暗号文を生成する
ことを特徴とする請求項1に記載の暗号システム。
2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムにおける鍵生成装置であり、
いずれかに一意なユーザ秘密鍵IDが設定され互いに対応する鍵情報u,yの一方が設定されたユーザ秘密鍵と、互いに対応するユーザ属性情報x,vの一方が設定された属性秘密鍵で復号可能な暗号文を前記鍵情報u,yの他方が設定された再暗号文に変換する再暗号化鍵とを生成する鍵生成部と、
前記鍵生成部が生成したユーザ秘密鍵をユーザ端末へ送信するとともに、前記鍵生成部が生成した再暗号化鍵を再暗号化装置へ送信する通信部と
を備えることを特徴とする鍵生成装置。
2つの情報が互いに対応している場合に一方の情報が設定された暗号文を他方の情報が設定された復号鍵により復号可能な暗号方式を用いた暗号システムにおける再暗号化装置であり、
ユーザの識別情報毎に、互いに対応するユーザ属性情報x,vの一方が設定された属性秘密鍵で復号可能な暗号文を、いずれかに一意なユーザ秘密鍵IDが設定され互いに対応する鍵情報u,yの一方が設定された再暗号文に変換する再暗号化鍵を記憶する再暗号化鍵記憶部と、
ユーザの識別情報と暗号文とを受信すると、受信したユーザの識別情報に対応して前記再暗号化鍵記憶部が記憶した再暗号化鍵で、受信した暗号文を再暗号化して再暗号文を生成する再暗号化部と
を備えることを特徴とする再暗号化装置。
【発明を実施するための形態】
【0015】
実施の形態1.
以下の説明では、暗号方式として、関数型暗号における再暗号化方式(非特許文献1参照)を用いる。関数型暗号における再暗号化方式は、関数型暗号で暗号化されたデータを、暗号化したままで宛先を変更できる方式である。
【0016】
関数型暗号における再暗号化方式は、以下の(1)(2)の特徴を持つ。
(1)暗号化鍵と復号鍵とは、それぞれ情報xと情報vとが設定されている。そして、情報xと情報vとが対応する場合に限り、復号鍵dk
vは暗号化鍵ek
xで暗号化された暗号文を復号することができる。
(2)暗号化鍵と復号鍵とに情報xと情報vとがそれぞれ設定されていることに加え、再暗号化鍵は2つの情報(u,v)が設定されている。そして、情報xと情報vとが対応する場合に限り、再暗号化鍵rk
(u,v)は、暗号化鍵ek
xで暗号化された暗号文を、暗号化鍵ek
uで暗号化された暗号文に変更することができる。
ここで、情報xと情報vとは、例えば、一方がポリシー(復号条件)で、他方がポリシーに対する入力値である。この場合、情報xと情報vとが対応するとは、入力値がポリシーを満たすということである。
【0017】
関数型暗号における再暗号化方式には、暗号文にポリシーを設定した暗号文ポリシー型の方式と、復号鍵にポリシーを設定した鍵ポリシー型の方式とがある。
例えば、暗号文ポリシー型の方式の場合、暗号文に「総務部、または部長のみが復号可能」のようにユーザの属性に関する復号条件が設定され、復号鍵に「所属=総務部、役職=課長、入社年度=2000年」のようにユーザの属性情報が設定される。一方、鍵ポリシー型の方式の場合、暗号文に「所属=総務部、役職=課長、入社年度=2000年」のようにユーザの属性情報が設定され、復号鍵に「総務部、または部長のみが復号可能」のようにユーザの属性に関する復号条件が設定される。
ここでは、暗号文ポリシー型の方式を用いて説明を行う。しかし、単に暗号化鍵と復号鍵とに設定する情報を入れ替えることで、鍵ポリシー型の方式を用いた方式とすることができる。
【0018】
なお、暗号文に設定された復号条件を復号鍵に設定された属性情報が満たす場合に、暗号文を復号鍵で復号可能な暗号化方式における再暗号化方式であれば、非特許文献1に記載された以外の再暗号化方式を用いてもよい。
【0019】
図1は、実施の形態1に係る暗号システム10の構成図である。
暗号システム10は、ネットワーク101を介して、暗号文記憶装置201と、再暗号化装置301と、鍵生成装置401と、属性管理装置501と、複数のユーザ端末601とが接続されている。
【0020】
図2は、実施の形態1に係る暗号文記憶装置201の構成図である。
暗号文記憶装置201は、暗号文を保持し、ユーザ端末601からの要求に応じて暗号文の送受信を行う。暗号文記憶装置201は、暗号文記憶部211、通信部231を備える。
【0021】
暗号文記憶部211は、
図3に示すように、暗号文を、対応するデータIDと関連付けて記憶する記憶装置である。暗号文の例としては、文書や画像等のファイルを暗号化したもの、氏名等の文字列を暗号化したもの、年齢等の数値を暗号化したもの等が挙げられる。暗号文記憶部211は、1つのデータIDに対して複数個・複数種類の暗号文を記憶してもよい。また、暗号文記憶部211は、暗号文を、検索用のキーワード等と関連付けて記憶してもよい。
【0022】
通信部231は、ユーザ端末601等と通信を行う。
【0023】
図4は、実施の形態1に係る再暗号化装置301の構成図である。
再暗号化装置301は、復号条件が設定された暗号文を受信し、受信した暗号文を特定のユーザ向けに再暗号化してユーザ端末601に送信する。再暗号化装置301は、公開パラメータ記憶部311、再暗号化鍵記憶部312、再暗号化部321、通信部331を備える。
【0024】
公開パラメータ記憶部311は、
図5に示すように、データの再暗号化に必要な、関数型暗号の公開パラメータを記憶する記憶装置である。
【0025】
再暗号化鍵記憶部312は、
図6に示すように、復号条件が設定された暗号文を、特定のユーザ向けに再暗号化するための再暗号化鍵を、対応するユーザIDと関連付けて記憶する記憶装置である。
【0026】
再暗号化部321は、復号条件が設定された暗号文を、再暗号化鍵記憶部312が記憶した再暗号化鍵で再暗号化し、特定のユーザ向けの暗号文を出力する。再暗号化処理は、既存の暗号技術(ここでは、非特許文献1に記載された暗号技術)を用いて実現される。
【0027】
通信部331は、属性管理装置501やユーザ端末601等と通信を行う。
【0028】
図7は、実施の形態1に係る鍵生成装置401の構成図である。
鍵生成装置401は、データの暗号化・復号に必要な、関数型暗号の鍵(公開パラメータ及び秘密鍵)と、データの再暗号化に必要な、関数型暗号の再暗号化鍵とを生成する。鍵生成装置401は、マスタ鍵情報記憶部411、鍵情報記憶部412、認証情報記憶部413、鍵生成部421、認証部422、通信部431を備える。
【0029】
マスタ鍵情報記憶部411は、
図8に示すように、関数型暗号におけるマスタ秘密鍵と公開パラメータとを記憶する記憶装置である。
【0030】
鍵情報記憶部412は、
図9に示すように、各ユーザの属性に対応する秘密鍵(以降、属性秘密鍵と記す)と、各ユーザ向けの暗号文を復号するための秘密鍵(以降、ユーザ秘密鍵と記す)のID(ユーザ秘密鍵ID)とを、対応するユーザIDと関連付けて記憶する記憶装置である。
【0031】
認証情報記憶部413は、
図10に示すように、属性管理装置501との認証処理に必要な情報(ここでは、属性管理装置501のID(属性管理装置ID)とパスワード)を記憶する記憶装置である。
【0032】
鍵生成部421は、関数型暗号の鍵と、再暗号化鍵とを生成する。鍵の生成処理は、既存の暗号技術(ここでは、非特許文献1に記載された暗号技術)を用いて実現される。
【0033】
認証部422は、属性管理装置501との間で認証処理を実行する。認証処理は、既存の認証技術を用いて実現される。
【0034】
通信部431は、属性管理装置501等と通信を行う。
【0035】
図11は、実施の形態1に係る属性管理装置501の構成図である。
属性管理装置501は、各ユーザの属性を管理し、管理する属性に基づいてユーザ秘密鍵と再暗号化鍵との生成を鍵生成装置401に依頼する。属性管理装置501は、属性情報記憶部511、認証情報記憶部512、認証部521、登録部522、通信部531を備える。
【0036】
属性情報記憶部511は、
図12に示すように、各ユーザの属性を、対応するユーザIDと関連付けて記憶する記憶装置である。
【0037】
認証情報記憶部512は、
図13に示すように、鍵生成装置401との認証処理に必要な情報(ここでは、属性管理装置501のID(属性管理装置ID)とパスワード)を記憶する記憶装置である。
【0038】
認証部521は、鍵生成装置401との間で認証処理を実行する。認証処理は、既存の認証技術を用いて実現される。
【0039】
登録部522は、ユーザの属性情報の登録を行う。登録処理は、例えば、管理者が入力画面等を操作することにより行われる。
【0040】
通信部531は、再暗号化装置301や鍵生成装置401やユーザ端末601と通信を行う。
【0041】
図14は、実施の形態1に係るユーザ端末601の構成図である。
ユーザ端末601は、暗号文を暗号文記憶装置201に記憶し、必要に応じて暗号文記憶装置201からの暗号文を取得して復号する。ユーザ端末601は、公開パラメータ記憶部611、ユーザ秘密鍵記憶部612、暗号化部621、復号部622、通信部631を備える。
【0042】
公開パラメータ記憶部611は、
図15に示すように、データの暗号化や復号に必要な、関数型暗号の公開パラメータを記憶する記憶装置である。
【0043】
ユーザ秘密鍵記憶部612は、
図16に示すように、データの復号に必要なユーザ秘密鍵を、ユーザIDと関連付けて記憶する記憶装置である。
【0044】
暗号化部621は、復号条件を設定してデータを暗号化する。暗号化処理は、既存の暗号技術(ここでは、非特許文献1に記載された暗号技術)を用いて実現される。
【0045】
復号部622は、再暗号化装置301から受信した再暗号文をユーザ秘密鍵で復号する。復号処理は、既存の暗号技術(ここでは、非特許文献1に記載された暗号技術)を用いて実現される。
【0046】
通信部631は、暗号文記憶装置201や再暗号化装置301や属性管理装置501等と通信を行う。
【0047】
暗号システム10の動作について説明する。暗号システム10の動作は、(1)システム全体の初期設定、(2)ユーザ登録処理、(3)データ登録処理、(4)データ取得処理、(5)ユーザ秘密鍵更新処理、(6)ユーザ属性更新処理、に大別される。
なお、以下の説明では、非特許文献1に記載された暗号技術を単に関数型暗号と記す。
【0048】
(1)システム全体の初期設定
システム全体の初期設定は、暗号システム10の運用で必要になる初期情報を準備する処理である。システム全体の初期設定は、暗号システム10の運用開始前に実行される。
【0049】
図17は、システム全体の初期設定の流れを示すフローチャートである。
(S101)
鍵生成装置401の鍵生成部421は、関数型暗号の初期設定を行い、マスタ秘密鍵と公開パラメータとを生成し、マスタ鍵情報記憶部411に格納する。
これにより、マスタ鍵情報記憶部411は、
図8に示す情報を記憶した状態になる。
【0050】
(S102)
鍵生成装置401と属性管理装置501とは、認証に必要な情報を共有し、それぞれ認証情報記憶部413と認証情報記憶部512とに格納する。ここでは、属性管理装置IDとパスワードの組を共有する。
これにより、認証情報記憶部413は、
図10に示す情報を記憶した状態になり、認証情報記憶部512は、
図13に示す情報を記憶した状態になる。
【0051】
(S103)
属性管理装置501の通信部531は、鍵生成装置401から公開パラメータを取得し、再暗号化装置301に送信する。再暗号化装置301の通信部331は、公開パラメータを受信し、公開パラメータ記憶部311に格納する。
これにより、公開パラメータ記憶部311は、
図5に示す情報を記憶した状態になる。
【0052】
(2)ユーザ登録処理
ユーザ登録処理は、暗号システム10を利用するユーザを登録する処理である。ユーザ登録処理は、(1)システム全体の初期設定の直後、及び、暗号システム10を利用するユーザが増える度に実行される。ここでは、1ユーザを登録する処理について説明する。したがって、複数ユーザを登録する場合には、登録する人数分、以下に説明する処理を繰り返す必要がある。なお、以下の説明において、一部の例では、複数のユーザが登録された後の状態を示している。
【0053】
図18は、ユーザ登録処理の流れを示すフローチャートである。
(S201)
属性管理装置501の登録部522は、登録するユーザに対し、一意となるユーザIDを割り当てる。登録部522は、関数型暗号の秘密鍵生成に必要なユーザ属性を設定する。そして、登録部522は、ユーザIDとユーザ属性とを関連付けて属性情報記憶部511に格納する。
これにより、属性情報記憶部511は、
図12に示す情報を記憶した状態となる。
図12では、複数のユーザが登録された後の状態を示している。
図12では、例えば、総務部の課長である佐藤花子氏に対し、ユーザIDとしてuid
2が割り当てられ、ユーザ属性として「所属=総務部、役職=課長、氏名=佐藤花子」が設定されている。
【0054】
(S202)
属性管理装置501の認証部521と、鍵生成装置401の認証部422とが、認証情報記憶部512と認証情報記憶部413とに格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置IDとパスワードによる認証処理が行われる。
【0055】
(S203)
認証処理が成功すると、属性管理装置501の通信部531は、登録するユーザのユーザIDとユーザ属性とを鍵生成装置401に送信し、鍵の発行を依頼する。
先の例では、ユーザIDとしてuid
2が、ユーザ属性として「所属=総務部、役職=課長、氏名=佐藤花子」が送信される。
【0056】
(S204)
鍵生成装置401の鍵生成部421は、マスタ鍵情報記憶部411に格納されているマスタ秘密鍵及び公開パラメータと、受信したユーザ属性とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、ユーザ属性(ユーザ属性情報の一方)が設定された属性秘密鍵が生成される。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、ユーザ属性「所属=総務部、役職=課長、氏名=佐藤花子」を入力として、属性秘密鍵sk
2が生成される。
【0057】
(S205)
鍵生成装置401の鍵生成部421は、鍵情報記憶部412の中で一意となるユーザ秘密鍵ID(鍵情報の一方)を生成する。ここでは、ukid
iが生成されたとする。鍵生成部421は、マスタ秘密鍵及び公開パラメータと、属性「ユーザ秘密鍵ID=ukid
i」とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、ユーザ秘密鍵IDが設定されたユーザ秘密鍵が生成される。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、ユーザ秘密鍵IDとしてukid
2を生成した上で、属性「ユーザ秘密鍵ID=ukid
2」を入力として、ユーザ秘密鍵uk
2が生成される。
【0058】
(S206)
鍵生成装置401の鍵生成部421は、公開パラメータと、属性秘密鍵と、復号条件「ユーザ秘密鍵ID=ukid
i」(鍵情報の他方)とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵が生成される。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、属性秘密鍵sk
2と、復号条件「ユーザ秘密鍵ID=ukid
2」とを入力として、再暗号化鍵rk
2が生成される。
なお、ここで生成される再暗号化鍵は、入力された属性秘密鍵で復号可能な暗号文を、入力されたユーザ秘密鍵IDが設定されたユーザ秘密鍵で復号できる暗号文に再暗号化する鍵である。
【0059】
(S207)
鍵生成装置401の鍵生成部421は、ユーザIDと、属性秘密鍵と、ユーザ秘密鍵IDとを関連付けて、ステータスを「有効」に設定して鍵情報記憶部412に格納する。
これにより、鍵情報記憶部412は、
図9に示す情報を記憶した状態となる。
図9では、複数のユーザが登録された後の状態を示している。
【0060】
(S208)
鍵生成装置401の通信部431は、公開パラメータと、ユーザ秘密鍵と、再暗号化鍵とを属性管理装置501に送信する。
先の例では、ユーザ秘密鍵としてuk
2が、再暗号化鍵としてrk
2が送信される。
【0061】
(S209)
属性管理装置501の通信部531は、公開パラメータと、ユーザIDと、ユーザ秘密鍵とを、ユーザIDに対応するユーザ端末601に送信する。これらを受信したユーザ端末601の通信部631は、公開パラメータを公開パラメータ記憶部611に、ユーザIDとユーザ秘密鍵とをユーザ秘密鍵記憶部612に格納する。
先の例では、ユーザIDがuid
2である佐藤花子氏に対応するユーザ端末601に情報が送信される。そして、佐藤花子氏に対応するユーザ端末601の公開パラメータ記憶部611は、
図15に示す情報を記憶した状態となり、ユーザ秘密鍵記憶部612は、
図16に示す情報を記憶した状態となる。
【0062】
(S210)
属性管理装置501の通信部531は、ユーザIDと再暗号化鍵とを再暗号化装置301に送信する。これらを受信した再暗号化装置301の通信部331は、ユーザIDと再暗号化鍵とを関連付けて再暗号化鍵記憶部312に格納する。
先の例では、再暗号化鍵としてrk
2が送信され、再暗号化鍵記憶部312は、
図6に示す情報を記憶した状態となる。
図6では、複数のユーザが登録された後の状態を示している。
【0063】
ここでのポイントは、関数型暗号の属性として、ユーザ端末601がデータ登録処理(手続き(3)で後述)の際に復号条件として利用しない、仮想的な属性「ユ―ザ秘密鍵ID」を導入し、同じ関数型暗号の枠組みの中で属性秘密鍵とユーザ秘密鍵とを使い分けるようにしたことである。これにより、単一の鍵生成装置401及び単一の公開パラメータで鍵発行や再暗号化が実現できるようになる。
【0064】
なお、
図9の例では鍵生成装置401の鍵情報記憶部412は、ユーザID、属性秘密鍵、ユーザ秘密鍵ID、ステータスを記憶している。しかし、鍵情報記憶部412は、手続きの途中で受信あるいは生成したユーザ属性、ユーザ秘密鍵、再暗号化鍵も記憶するようにしてもよい。また、鍵情報記憶部412は、属性秘密鍵を記憶せず、必要時にユーザ属性から再生成するようにしてもよい。
【0065】
また、属性管理装置501は、安全上の観点からユーザ秘密鍵や再暗号化鍵を記憶しないが、公開パラメータだけは記憶するようにしてもよい。また、ユーザ秘密鍵や再暗号化鍵をユーザ端末601や再暗号化装置301に送信する際に、属性管理装置501を介さずに、鍵生成装置401から直接送信するようにしてもよい。
【0066】
また、ユーザ端末601のユーザ秘密鍵記憶部612がユーザ属性を記憶するようにしてもよい。
【0067】
(3)データ登録処理
データ登録処理は、データを暗号文記憶装置201に登録する処理である。データ登録処理は、ユーザ端末601がデータを登録する度に実行される。
データ登録処理では、ユーザ端末601がデータを暗号文記憶装置201に登録する場合、権限を持つユーザだけがデータを閲覧できるよう、関数型暗号で暗号化したデータを暗号文記憶装置201に送信する。これによって、権限を持たないユーザはもちろん、暗号文記憶装置201に対してもデータを秘匿することができる。
なお、以下の説明において、一部の例では、複数のデータが登録された後の状態を示している。
【0068】
図19は、データ登録処理の流れを示すフローチャートである。
(S301)
ユーザ端末601の暗号化部621は、登録するデータに対し、一意となるデータIDを割り当てる。
【0069】
(S302)
ユーザ端末601の暗号化部621は、公開パラメータ記憶部611に格納されている公開パラメータと、登録するデータと、復号可能なユーザ属性を指定した復号条件(ユーザ属性情報の他方)とを入力として、関数型暗号の暗号化処理を行う。これにより、データが暗号化された暗号文が生成される。
復号条件の例としては、「所属=総務部」(総務部のユーザのみが復号可能)、「所属=総務部 AND 役職=部長」(総務部の部長のみが復号可能)、「所属=総務部 OR 役職=部長」(総務部のユーザ、もしくは各部の部長のみが復号可能)等が挙げられる。また、利用する関数型暗号の方式によっては、AND条件とOR条件だけでなく、「NOT(所属=総務部) AND 役職=部長」(総務部以外の部の部長のみが復号可能)のように、NOT条件を用いることも可能である。
【0070】
(S303)
ユーザ端末601の通信部631は、データIDと暗号文とを、暗号文記憶装置201に送信する。これらを受信した暗号文記憶装置201は、データIDと暗号文とを関連付けて暗号文記憶部211に格納する。
これにより、暗号文記憶部211は、
図3に示す情報を記憶した状態となる。
図3では、複数のデータが登録された後の状態を示している。
【0071】
なお、データの暗号化の際、データを直接関数型暗号で暗号化するのではなく、他の暗号方式(例えばAES(Advanced Encryption Standard)等の共通鍵暗号方式)でデータを暗号化し、暗号化に用いた鍵を関数型暗号で暗号化するようにしてもよい。この場合、復号の際にも関数型暗号と他の暗号方式を併用することになる。
【0072】
また、
図3の例では暗号文記憶装置201の暗号文記憶部211がデータID、暗号文を記憶しているが、暗号文記憶装置201はユーザ端末601から復号条件も受信し、これも暗号文記憶部211に記憶するようにしてもよい。復号条件は、ユーザ端末601が暗号文記憶装置201から必要な情報を検索するための補助情報として利用することができる。
【0073】
(4)データ取得処理
データ取得処理は、ユーザ端末601が暗号文記憶装置201から暗号文を読み出す処理である。データ取得処理は、ユーザ端末601が暗号文記憶装置201から暗号文を読み出す度に実行される。
暗号システム10では、ユーザや鍵の失効管理を実現するため、暗号文記憶装置201に保管されている暗号文が、ユーザ端末601単体では復号できないようになっている。暗号システム10では、暗号文記憶装置201から取得した暗号文は、再暗号化装置301に送信され、再暗号化装置301で個別のユーザ向けに再暗号化される。
【0074】
図20は、データ取得処理の流れを示すフローチャートである。
(S401)
ユーザ端末601の通信部631は、取得したいデータのデータIDを暗号文記憶装置201に送信する。これを受信した暗号文記憶装置201は、暗号文記憶部211からデータIDに関連付けられた暗号文を取得し、ユーザ端末601に送信する。
【0075】
ここで、暗号文には復号条件としてユーザ属性が指定されているため、暗号文を復号するには、その復号条件を満たすユーザ属性が設定された属性秘密鍵が必要である。ユーザ端末601のユーザ秘密鍵記憶部612に記憶されているのはユーザ秘密鍵であるため、ユーザ端末601は暗号文を復号することができない。
例えば、暗号文c
1が復号条件「所属=総務部」で暗号化されているとする。そして、
図12に示すユーザIDがuid
2である佐藤花子氏が暗号文c
1を取得したとする。佐藤花子氏の所属は総務部であるので、本来暗号文c
1を復号できるはずである。しかし、佐藤花子氏が持つユーザ秘密鍵uk
2は、属性「ユーザ秘密鍵ID=ukid
2」を入力として生成おり、ユーザ秘密鍵uk
2に設定された属性と復号条件とが対応しておらず、このままでは復号できない。
【0076】
(S402)
ユーザ端末601の通信部631は、ユーザIDと暗号文とを再暗号化装置301に送信し、データの再暗号化を依頼する。これらを受信した再暗号化装置301は、再暗号化鍵記憶部312からユーザIDに関連付けられた再暗号化鍵を取得する。
先の例では、通信部631がユーザIDとしてuid
2を受信し、これに関連付けられた再暗号化鍵rk
2を取得する。上述したように、rk
2は、属性「所属=総務部、役職=課長、氏名=佐藤花子」から生成された属性秘密鍵sk
2で復号可能な暗号文を、復号条件「ユーザ秘密鍵ID=ukid
2」となるよう再暗号化するための再暗号化鍵である。
【0077】
(S403)
再暗号化装置301の再暗号化部321は、公開パラメータ記憶部311に格納されている公開パラメータと、再暗号化鍵記憶部312から取得した再暗号化鍵と、受信した暗号文とを入力として、関数型暗号の再暗号化処理を行う。これにより、ユーザ秘密鍵で復号可能となる暗号文(再暗号文)が生成される。
先の例では、暗号文c
1が再暗号化鍵rk
2で再暗号化され、復号条件が「ユーザ秘密鍵ID=ukid
2」である暗号文C
1が生成される。
【0078】
(S404)
再暗号化装置301の通信部331は、再暗号化によって生成された暗号文をユーザ端末601に送信する。但し、再暗号化処理が失敗した場合は、その旨をユーザ端末601に送信する。
【0079】
(S405)
暗号文を受信したユーザ端末601の復号部622は、公開パラメータ記憶部611に格納されている公開パラメータと、ユーザ秘密鍵記憶部612に格納されているユーザ秘密鍵と、受信した暗号文とを入力として、関数型暗号の復号処理を行う。これにより、最初に指定したデータIDに対応するデータを得ることができる。
先の例では、ユーザ端末601が暗号文C
1を受信し、これをユーザ秘密鍵uk
2で復号する。すると、属性「ユーザ秘密鍵ID=ukid
2」と復号条件「ユーザ秘密鍵ID=ukid
2」が適合するため、求めるデータd
1を得ることができる。
【0080】
以上のように、正当なユーザ端末601は暗号文記憶装置201上のデータを(自分の権限の範囲で)閲覧することができる。
【0081】
(5)ユーザ秘密鍵更新処理
ユーザ秘密鍵更新処理は、あるユーザが持つユーザ秘密鍵を紛失もしくは漏洩した場合等に、当該ユーザに対してユーザ秘密鍵を再発行する処理である。ユーザ秘密鍵更新処理は、ユーザ秘密鍵を再発行する際に実行される。
ユーザ秘密鍵を再発行することにより、ユーザが暗号システム10を引き続き利用できるようになる。しかし、さらに、紛失・漏えいしたユーザ秘密鍵から暗号文記憶装置201に記憶されたデータが漏れることを防止する必要がある。ユーザ秘密鍵更新処理では、再暗号化装置301が記憶する再暗号化鍵を更新することでこれを実現する。
【0082】
図21は、ユーザ秘密鍵更新処理の流れを示すフローチャートである。
(S501)
属性管理装置501の認証部521と、鍵生成装置401の認証部422とが、認証情報記憶部512と認証情報記憶部413とに格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置IDとパスワードによる認証処理が行われる。
【0083】
(S502)
認証処理が成功すると、属性管理装置501の通信部531は、ユーザ秘密鍵更新を行うユーザのユーザIDを鍵生成装置401に送信し、鍵の再発行を依頼する。
(2)ユーザ登録処理で例として挙げた、ユーザIDがuid
2である佐藤花子氏が持っていたユーザ秘密鍵uk
2を更新する場合、ユーザIDとしてuid
2が送信される。
【0084】
(S503)
鍵生成装置401の鍵生成部421は、鍵情報記憶部412からユーザIDに関連付けられた属性秘密鍵を取得する。
先の例で、鍵情報記憶部412が
図9に示す情報を記憶している場合、属性秘密鍵sk
2が取得される。
【0085】
(S504)
鍵生成装置401の鍵生成部421は、鍵情報記憶部412の中で一意となるユーザ秘密鍵IDを新たに生成する。ここでは、ukid
iが生成されたとする。鍵生成部421は、マスタ鍵情報記憶部411に格納されているマスタ秘密鍵及び公開パラメータと、属性「ユーザ秘密鍵ID=ukid
i」とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、新たに生成されたユーザ秘密鍵IDが設定されたユーザ秘密鍵が生成される。
先の例では、ユーザ秘密鍵IDとして例えばukid
102を生成した上で、属性「ユーザ秘密鍵ID=ukid
102」を入力として、ユーザ秘密鍵uk
102が生成される。
【0086】
(S505)
鍵生成装置401の鍵生成部421は、公開パラメータと、属性秘密鍵と、S503で新たに生成したユーザ秘密鍵IDを用いた復号条件「ユーザ秘密鍵ID=ukid
i」とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵を生成する。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、属性秘密鍵sk
2と復号条件「ユーザ秘密鍵ID=ukid
102」とを入力として、再暗号化鍵rk
102が生成される。
【0087】
(S506)
鍵生成装置401の鍵生成部421は、鍵情報記憶部412からユーザIDに関連付けられたレコードを検索し、該当するレコードのステータスを「失効」に更新する。
【0088】
(S507)
鍵生成装置401の鍵生成部421は、ユーザIDと、属性秘密鍵と、新たに生成したユーザ秘密鍵IDとを関連付けて、ステータスを「有効」に設定して鍵情報記憶部412に格納する。
これにより、鍵情報記憶部412は、
図9に示す情報を記憶した状態から、
図22に示す情報を記憶した状態に更新される。
【0089】
(S508)
鍵生成装置401の通信部431は、新たに生成したユーザ秘密鍵と、新たに生成した再暗号化鍵とを属性管理装置501に送信する。
先の例では、ユーザ秘密鍵としてuk
102が、再暗号化鍵としてrk
102が送信される。
【0090】
(S509)
属性管理装置501の通信部531は、ユーザ秘密鍵を、ユーザIDに対応するユーザ端末601に送信する。これを受信したユーザ端末601の通信部631は、ユーザ秘密鍵記憶部612に記憶されたユーザ秘密鍵を、受信したユーザ秘密鍵に更新する。
先の例では、ユーザIDがuid
2である佐藤花子氏に対応するユーザ端末601のユーザ秘密鍵記憶部612は、
図16に示す情報を記憶した状態から、
図23に示す情報を記憶した状態に更新される。
【0091】
(S510)
属性管理装置501の通信部531は、ユーザIDと、新たに生成された再暗号化鍵とを再暗号化装置301に送信する。これらを受信した再暗号化装置301の通信部331は、再暗号化鍵記憶部312からユーザIDに関連付けられたレコードを検索し、該当するレコードの再暗号化鍵を、受信した再暗号化鍵に更新する。
先の例では、再暗号化鍵記憶部312は、
図6に示す情報を記憶した状態から、
図24に示す情報を記憶した状態に更新される。
【0092】
以上のように、ユーザ秘密鍵を更新する場合、ユーザ秘密鍵に合わせて再暗号化鍵も更新される。そのため、更新された再暗号化鍵によって再暗号化された暗号文は、更新されたユーザ秘密鍵で復号できる。したがって、ユーザ秘密鍵の再発行を受けたユーザ端末601が、ユーザ秘密鍵更新処理の前に閲覧できていたデータを引き続き閲覧できる。
また、更新された再暗号化鍵によって再暗号化された暗号文は、更新前の古いユーザ秘密鍵で復号できない。そのため、古いユーザ秘密鍵では、暗号文記憶装置201に記憶されたデータを一切閲覧できない。
つまり、本手続きを実施することで、ユーザ秘密鍵の紛失・漏えいに伴う失効処理が実現される。
【0093】
なお、ここではユーザ秘密鍵を失効させ、再発行する更新処理について説明しているが、ユーザの退職時等に、ユーザ秘密鍵の失効だけを行い、再発行を行わないことも可能である。この場合、再暗号化装置301が記憶した再暗号化鍵の削除だけを行えばよい。
【0094】
(6)ユーザ属性更新処理
ユーザ属性更新処理は、企業内の異動等に伴い、あるユーザの属性(例えば、所属や役職)に変更が生じた場合に、当該ユーザが新しい属性に応じてデータを閲覧できるようにする処理である。
例えば、(2)ユーザ登録処理で例として挙げた、ユーザIDがuid
2である佐藤花子氏が、総務部から経理部へと異動した場合、経理部宛てのデータを閲覧できるようにしなければならない。同時に、異動後は、総務部宛てのデータを一切閲覧できないようにしたいケースがある(但し、総務部宛てのデータを引き続き閲覧できるようにしたい場合も考えられる)。ユーザ属性更新処理では、再暗号化装置301が記憶する再暗号化鍵を更新することでこれを実現する。
【0095】
図25は、ユーザ属性更新処理の流れを示すフローチャートである。
(S601)
属性管理装置501の登録部522は、ユーザ属性の更新を行うユーザについて、属性情報記憶部511が記憶したユーザ属性を更新する。
先の例では、属性情報記憶部511は、
図12に示す情報を記憶した状態から、
図26に示す情報を記憶した状態に更新する。
【0096】
(S602)
属性管理装置501の認証部521と、鍵生成装置401の認証部422とが、認証情報記憶部512および認証情報記憶部413に格納されている認証情報を用いて認証処理を行う。ここでは、属性管理装置IDとパスワードによる認証処理が行われる。
【0097】
(S603)
属性管理装置501の通信部531は、ユーザ属性更新を行うユーザのユーザIDと新しいユーザ属性とを鍵生成装置401に送信し、鍵の再発行を依頼する。
先の例では、ユーザIDとしてuid
2が、新しいユーザ属性として「所属=経理部、役職=課長、氏名=佐藤花子」が送信される。
【0098】
(S604)
鍵生成装置401の鍵生成部421は、マスタ鍵情報記憶部411に格納されているマスタ秘密鍵及び公開パラメータと、受信した新しいユーザ属性とを入力として、関数型暗号の秘密鍵生成処理を行う。これにより、新しいユーザ属性が設定された属性秘密鍵が生成される。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、新しいユーザ属性「所属=経理部、役職=課長、氏名=佐藤花子」を入力として、新しい属性秘密鍵sk
202が生成される。
【0099】
(S605)
鍵生成装置401の鍵生成部421は、鍵情報記憶部412からユーザIDに関連付けられたユーザ秘密鍵IDを取得する。但し、ユーザIDに関連付けられたレコードが複数ある場合、鍵生成部421は、ステータスが「有効」であるレコードから取得する。ここでは、ukid
iが取得されたとする。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、
図9に示す情報から、ユーザ秘密鍵IDとしてukid
2が取得される。
【0100】
(S606)
鍵生成装置401の鍵生成部421は、公開パラメータと、新しい属性秘密鍵と、S605で取得したユーザ秘密鍵IDを用いた復号条件「ユーザ秘密鍵ID=ukid
i」とを入力として、関数型暗号の再暗号化鍵生成処理を行う。これにより、再暗号化鍵を生成する。
先の例では、ユーザIDがuid
2である佐藤花子氏に関して、新しい属性秘密鍵sk
202と復号条件「ユーザ秘密鍵ID=ukid
2」とを入力として、再暗号化鍵rk
202が生成される。
【0101】
(S607)
鍵生成装置401の通信部431は、鍵情報記憶部412が記憶したユーザ秘密鍵IDがukid
iであるレコードについて、属性秘密鍵を、新しい属性秘密鍵に更新する。
これにより、鍵情報記憶部412は、
図9に示す情報を記憶した状態から、
図27に示す情報を記憶した状態に更新される。
【0102】
(S608)
鍵生成装置401の通信部431は、新たに生成した再暗号化鍵を属性管理装置501に送信する。
先の例では、再暗号化鍵としてrk
202が送信される。
【0103】
(S609)
属性管理装置501の通信部531は、ユーザIDと、新たに生成された再暗号化鍵とを再暗号化装置301に送信する。これらを受信した再暗号化装置301の通信部331は、再暗号化鍵記憶部312からユーザIDに関連付けられたレコードを検索し、該当するレコードの再暗号化鍵を、受信した再暗号化鍵に更新する。
先の例では、再暗号化鍵記憶部312は、
図6に示す情報を記憶した状態から、
図28に示す情報を記憶した状態に更新される。
【0104】
以上のように、ユーザ属性の変更があると、属性秘密鍵が更新されるとともに、属性秘密鍵に合わせて再暗号化鍵も更新される。そのため、更新された再暗号化鍵によって再暗号化できる暗号文は、更新されたユーザ属性で閲覧可能な暗号文である。したがって、ユーザ属性の変更があったユーザのユーザ端末601が、新しい属性に応じたデータを閲覧できる。
また、更新された再暗号化鍵では、古い属性のみで閲覧可能であった(更新されたユーザ属性で閲覧できない)暗号文は、再暗号化できない。そのため、古い属性のみで閲覧可能であったデータを閲覧できない。
つまり、本手続きを実施することで、ユーザ属性の変更に伴う失効処理が実現される。
【0105】
以上のように、実施の形態1に係る暗号システム10は、(1)〜(6)の処理によって、暗号文記憶装置201が記憶した暗号文を、ユーザ端末601が必要に応じて取得し、権限のあるユーザのみがデータを復号・閲覧できるシステムを実現する。
また、実施の形態1に係る暗号システム10は、(5)〜(6)の処理で説明した通り、ユーザ秘密鍵の紛失・漏えいや、ユーザ属性変更に伴う失効処理を、暗号文記憶装置201が記憶した暗号文を更新することなく、再暗号化装置301が記憶した再暗号化鍵を更新することで実現できる。そのため、大規模な企業等、失効処理が頻繁に必要となる環境でも効率的に動作させることが可能である。
【0106】
また、実施の形態1に係る暗号システム10は、再暗号化装置301が持つ再暗号化鍵が1ユーザあたり1個で済む。したがって、失効処理における再暗号化鍵更新の負荷が小さい。また、実施の形態1に係る暗号システム10は、関数型暗号の柔軟なアクセス制御を利用することもできる。
【0107】
また、実施の形態1に係る暗号システム10は、暗号文記憶装置201と再暗号化装置301とを分ける構成をとっている。そのため、失効したユーザ(もしくは、失効したユーザ秘密鍵を入手した攻撃者)と暗号文記憶装置201とが結託した場合においても、暗号文記憶装置201が記憶した暗号文を復号することはできない。
【0108】
なお、上記説明では、属性管理装置501やユーザ端末601を持つ単一の企業が暗号システム10を利用する例を示した。しかし、暗号文記憶装置201、再暗号化装置301、鍵生成装置401の一部または全部を共用し、複数の企業が暗号システム10を利用できるようにしてもよい。この場合、暗号システム10の各装置は、企業を一意に識別するための企業IDを別途管理することになる。
【0109】
また、上記説明では、各装置の認証や、通信路の暗号化については(一部を除き)記述していないが、必要に応じてこれらを実行するようにしてもよい。これには、パスワードやPKI(公開鍵基盤)を用いた既存の認証技術や、SSL(Secure Sockets Layer)通信等の既存の暗号技術が利用できる。
【0110】
また、上記説明では、(4)データ取得処理で、暗号文記憶装置201が暗号文をユーザ端末601に送信する際に、データIDに関連付けられた暗号文を無条件に送信した。
しかし、暗号文記憶部211が各暗号文の復号条件を記憶しておき、ユーザ端末601がデータIDとともにユーザ属性を送信するようにしてもよい。そして、暗号文記憶装置201が、復号条件とユーザ属性とに基づき、暗号文の復号可否を判定し、復号可能な暗号文のみをユーザ端末601に送信するようにしてもよい。但しこの場合、暗号文記憶装置201に対して、復号条件やユーザ属性といった余分な情報が開示されることになるため、注意する必要がある。
【0111】
また、上記説明では、(4)データ取得処理で、再暗号化装置301が再暗号化を行う際に、ユーザ端末601を介して暗号文を再暗号化装置301に送信した。
しかし、ユーザ端末601を介さずに、暗号文記憶装置201から再暗号化装置301へ暗号文を直接送信するようにしてもよい。さらにこの場合、効率性を高めるために、暗号文記憶装置201と再暗号化装置301とを1つの装置にまとめることも可能である。但し、これらをまとめることによって、失効したユーザと暗号文記憶装置201(及び再暗号化装置301)の結託で、暗号文記憶装置201が記憶した暗号文を不正に復号できるようになるため、注意する必要がある。
【0112】
また、属性管理装置501と再暗号化装置301とを1つの装置にまとめることで効率化を図ってもよい。また、属性管理装置501と鍵生成装置401とを1つの装置にまとめることで効率化を図ってもよい。
【0113】
また、上記説明では、運用容易性の観点から、関数型暗号から、(公開パラメータも含め)同一の関数型暗号への再暗号化を行った。
しかし、関数型暗号から、異なる関数型暗号、もしくは関数型暗号以外への再暗号化を行うこともできる。例えば、関数型暗号から、IDベース暗号への再暗号化を行ってもよい。この場合、鍵生成装置401は、2種類の暗号の鍵生成機能を持つ(もしくは、鍵生成装置401を2個用意する)ことになる。
【0114】
また、上記説明では、ユーザ端末601がデータ登録とデータ取得との両方の機能を持っていた。
しかし、データ登録のみ行うユーザ装置と、データ取得のみ行うユーザ装置とに分けてもよい。データ登録のみ行うユーザ装置には、ユーザ秘密鍵記憶部612は不要である。
【0115】
また、上記説明では、ユーザ端末601のユーザ秘密鍵記憶部612がユーザ秘密鍵を記憶していた。しかし、ユーザ秘密鍵を外部装置(例えばICカード)に記憶し、必要に応じてユーザ端末601が外部装置からユーザ秘密鍵を取得するようにしてもよい。また、外部装置が暗号化部や復号部を備え、外部装置側でユーザ秘密鍵を用いた暗号化処理や復号処理を行うようにしてもよい。
【0116】
また、上記説明では、関数型暗号として「暗号文ポリシー型の関数型暗号」を利用する場合について説明した。しかし、上述した通り、「鍵ポリシー型の関数型暗号」を利用することも可能である。
例えば、鍵ポリシー型の関数型暗号では、暗号文に属性「所属=総務部、作成年度=2012年」を設定し、これを復号するための秘密鍵にポリシー(復号条件)「(所属=総務部 AND 作成年度=2012年)OR(所属=経理部 AND 作成年度=2013年)」を設定することができる。この例では、この秘密鍵を用いて「2012年に総務部で作成されたデータ」、及び、「2013年に経理部で作成されたデータ」を復号することができる。そのため、ユーザが在籍した時期に対応した文書のみ閲覧可能とする等、ユーザ所属の変更に伴う、より柔軟なアクセス制御が可能となる。
暗号文ポリシー型属性ベース暗号、鍵ポリシー型属性ベース暗号のどちらを利用するのが適しているかは、データ管理システムの用途や、利用する企業の組織構成等に依存する。
【0117】
また、「暗号文ポリシー型の関数型暗号」と「鍵ポリシー型の関数型暗号」とを組み合わせたUnifiedポリシー型の関数型暗号を利用することも可能である。Unifiedポリシー型の関数型暗号では、暗号文に属性1とポリシー2とが設定され、復号鍵に属性1に対応するポリシー1とポリシー2に対応する属性2とが設定される。これにより、「暗号文ポリシー型の関数型暗号」と「鍵ポリシー型の関数型暗号」との両方の利点を享受することができる。
【0118】
図29は、実施の形態1に示した暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601のハードウェア構成の例を示す図である。
暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601は、コンピュータである。暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601の各要素をプログラムで実現することができる。
暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
【0119】
演算装置901は、プログラムを実行するCPU(Central Processing Unit)等である。外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置等である。主記憶装置903は、例えばRAM(Random Access Memory)等である。通信装置904は、例えば通信ボード等である。入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
【0120】
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、通信部231、再暗号化部321、通信部331、鍵生成部421、認証部422、通信部431、認証部521、登録部522、通信部531、暗号化部621、復号部622、通信部631として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、上記プログラムを実行する。
また、実施の形態1の説明において、暗号文記憶部211、公開パラメータ記憶部311、再暗号化鍵記憶部312、マスタ鍵情報記憶部411、鍵情報記憶部412、認証情報記憶部413、属性情報記憶部511、認証情報記憶部512、公開パラメータ記憶部611、ユーザ秘密鍵記憶部612が記憶すると説明した情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
【0121】
なお、
図29の構成は、あくまでも暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601のハードウェア構成の一例を示すものであり、暗号文記憶装置201、再暗号化装置301、鍵生成装置401、属性管理装置501、ユーザ端末601のハードウェア構成は
図29に記載の構成に限らず、他の構成であってもよい。