【文献】
内田 真理子 他,多重帰属の鍵管理が容易な(2,2)閾値秘密分散を用いたグループファイル共有,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2009年 3月 2日,Vol.108、No.472,p.71−78
(58)【調査した分野】(Int.Cl.,DB名)
前記所定規則は、前記記憶部に記憶している全ての前記センター鍵および前記ユーザ鍵に依存した関係を持つ規則である請求項1または請求項2に記載の鍵管理システム。
前記所定規則は、前記センター鍵および前記ユーザ鍵の鍵値と、当該鍵値のハッシュ値を変数とする線形関数にもとづいて前記共有鍵算出規則を生成する規則である請求項1〜請求項3の何れか一項に記載の鍵管理システム。
【発明を実施するための形態】
【0014】
以下、本発明の一つの実施形態である鍵管理システムについて図を参照しつつ説明する。
図1は、本発明の一つの実施形態に係る鍵管理システム1の全体システム構成を示す図である。
図1に示すように、鍵管理システム1は、サーバ装置10と、サーバ装置10とネットワークを介して接続される複数のクライアント装置20とを有する。
【0015】
サーバ装置10は、各クライアント装置20が共通して使用する共有鍵を生成及び更新するとともに、各クライアント装置20からの要求に従って、共有鍵を復元するための復元情報を各クライアント装置20に送信する。そのために、サーバ装置10は、通信部11と、操作部12と、記憶部13と、制御部14を有する。
【0016】
通信部11は、サーバ装置10をネットワークに接続するためのインターフェース回路を有する。そして、通信部11は、制御部14の制御に従って、サーバ装置10と複数のクライアント装置20の間の接続処理を行い、サーバ装置10と各クライアント装置20の間で接続が確立された後、各クライアント装置20から共有鍵の復元要求を受信すると、受信した復元要求を制御部14に通知する。そして、制御部14から共有鍵を復元するための復元情報を受信すると、復元要求を送信したクライアント装置20に復元情報を送信する。なお、共有鍵の復元要求には、各クライアント装置20の利用者を識別するための利用者IDとパスワードが含まれる。また、通信部11は、上記のような各種情報の送受信が終わると、サーバ装置10と各クライアント装置20の間の接続を開放する処理を行う。
【0017】
操作部12は、キーボード、マウス、テンキー等の入力デバイスで構成された入力インターフェースであり、管理者からの操作を受け付け、その操作に対応する信号を制御部14へ出力する。
【0018】
記憶部13は、半導体メモリ、磁気記録媒体及びそのアクセス装置並びに光記録媒体及びそのアクセス装置のうちの少なくとも一つを有し、サーバ装置10を制御するためのコンピュータプログラム、各種パラメータ及びデータなどを記憶する。また、記憶部13は、センター鍵、センター鍵の補完情報、ユーザ鍵、各ユーザ鍵の補完情報、所定規則を記憶している。センター鍵とはサーバ装置10が持つ秘密鍵である。ユーザ鍵とはクライアント装置20が持つ秘密鍵であって、記憶部13は、共有鍵を利用するクライアント装置全てのユーザ鍵を記憶している。本実施の形態では、センター鍵は、サーバ装置10に一つだけ設定されるとして説明しているが、これに限られず管理者ごとにセンター鍵を用意しても良い。また、本実施の形態では、ユーザ鍵をクライアント装置20ごとに一つだけ設定されるとして説明しているが、これに限られず利用者ごとにユーザ鍵を用意してもよい。
補完情報とは、センター鍵またはユーザ鍵と後述する共有鍵算出規則との一義的な関係を持つ情報であって、センター鍵およびユーザ鍵ごとに算出される。本実施の形態では、誤差算出手段18にて算出する誤差情報である。
所定規則とは、少なくともユーザ鍵およびセンター鍵を一つの変数に含む共有鍵算出規則を生成するための規則である。本実施の形態では、詳細は後述するが、センター鍵およびユーザ鍵の鍵値(変数)による次元と、センター鍵およびユーザ鍵の鍵値のハッシュ値(変数)による次元による二次元座標系を設定し、この座標系にて全てのセンター鍵およびユーザ鍵の鍵値とハッシュ値から最小二乗法を用いて線形関数である一次関数を求めるという規則を採用している。なお、センター鍵と
ユーザ鍵の鍵値に変更があれば求まる一次関数も異なるので、この規則はセンター鍵と
ユーザ鍵に依存している。そして、所定規則には、生成した共有鍵算出規則から共有鍵を算出する規則も含まれる。
また、本実施の形態では、線形関数として一次関数としているが、二次関数や三次関数などの多次元関数であって、単純増加または単純減少をしている領域を用いるようにしても良い。また、本実施の形態では、変数としてセンター鍵およびユーザ鍵の鍵値とそのハッシュ値を使用しているが、これに限られずハッシュ値に代えてまたはこれに加えてセンター鍵およびユーザ鍵と一対一に対応される変数を用いても良い。使用する変数が増えると、その分だけ座標系の次元数も増加する。
ここで、共有鍵算出規則について説明する。共有鍵算出規則とは、所定規則に基づき生成される規則であって、共有鍵を決定でき、ユーザ鍵及びセンター鍵及び補完情報から一義的に復元できる規則である。本実施の形態では、ユーザ鍵等を用いて特定される一次関数が該当する。
図示していないが、記憶部13には、この他に同一の共有鍵を使用するクライアント装置20の一覧であって、各クライアント装置20とそのユーザ鍵・利用者ID及びパスワードを関連付けたクライアント装置リストも記憶されている。
【0019】
制御部14は、一個または複数個のプロセッサ及びその周辺回路を有する。そして、制御部14は、各クライアント装置20が共通して使用する共有鍵を生成、更新するとともに、各クライアント装置20からの要求に従って、共有鍵を復元するための復元情報を各クライアント装置20に送信する。そのために、制御部14は、そのプロセッサ上で動作するソフトウェアにより実装される機能モジュールとして、生成手段15と、管理手段16とを有する。
なお、制御部14が有するこれらの各部は、独立した集積回路、ファームウェア、マイクロプロセッサなどで構成されてもよい。
以下、制御部14の各部について詳細に説明する。
【0020】
生成手段15は、各クライアント装置20が共通して使用する共有鍵を生成及び更新する。そのために、生成手段15は、鍵生成手段17と、補完情報算出手段の一例である誤差算出手段18と、更新手段19とを有する。
【0021】
鍵生成手段17は、記憶部13に記憶している所定規則に従って生成した共有鍵算出規則から共有鍵を算出する。すなわち、鍵生成手段17は、センター鍵及びユーザ鍵の鍵値による次元と、センター鍵及びユーザ鍵の鍵値のハッシュ値による次元の二次元座標系で、センター鍵及び全てのユーザ鍵について座標点を求める。そして、センター鍵に対応する座標点と、各ユーザ鍵に対応する座標点とを近似的に結ぶ方程式を求める。この求めた方程式が共有鍵算出規則となる。そして、所定規則として記憶している求めた方程式の切片を共有鍵として算出する。つまり、所定規則は、センター鍵及び全てのユーザ鍵の二次元座標系における座標点を近似的に結んで方程式を求めるという規則と、求めた方程式から切片を共有鍵として算出するという規則となり、求めた方程式が共有鍵算出規則となる。
具体的には、所定のハッシュ関数を予め定めておき、鍵生成手段17は、センター鍵又は各ユーザ鍵について、一方の次元の値をセンター鍵又は各ユーザ鍵自体の鍵値とし、他方の次元の値をそのハッシュ値とする座標点を求める。そして、鍵生成手段17は、最小二乗法を用いて、センター鍵及び各ユーザ鍵に対応する各座標点を近似的に結ぶ一次方程式、つまり直線を求め、求めた一次方程式の定数項、つまり直線の切片を共有鍵として算出する。
【0022】
図2は、二次元座標系にセンター鍵及び全てのユーザ鍵に対応する座標点をプロットしたグラフ200である。
図2において、横軸はセンター鍵又は各ユーザ鍵の鍵値を、縦軸はそのハッシュ値を表し、センター鍵又は各ユーザ鍵に対応する点がプロットされている。また、直線201は、最小二乗法を用いて求めた、各点を近似的に結ぶ直線を表す。
例えば、横軸をx、縦軸をyとすると、直線201は、以下の式で表される。
y=αx+β (1)
ここで、αは直線201の傾きを表し、βは直線201の切片を表す。ここで、点202の座標を(x
i、y
i)とすると、点202と直線201とのy軸方向の差203は(y
i−αx
i−β)となる。最小二乗法では全ての点について直線とy軸方向の差の二乗和が最小となるように直線が算出される。つまり、鍵生成手段17は、以下の式で算出されるDの値が最小になるαとβを求めることにより、直線202を求める。
【数1】
ここで、nは、各点の総数を表す。
【0023】
例えば、グラフ200上の全ての点に基づいて、最小二乗法により算出した直線202は、以下の式で表される。
y=21.125x+20.875 (3)
この場合、直線201の切片の値である20.875が共有鍵となる。
【0024】
誤差算出手段18は、センター鍵又は各ユーザ鍵毎に、鍵生成手段17が求めた方程式に対するセンター鍵又は各ユーザ鍵に対応する座標点の誤差を算出し、補完情報として記憶部13に記憶する。例えば、
図2に示した例では、点202の縦軸方向の値(ハッシュ値)y
iと、点202の横軸方向の値(鍵値)x
iにおける直線201上の縦軸方向の値(αx
i+β)との差203が補完情報となる。あるいは、点202の横軸方向の値(鍵値)x
iと、点202の縦軸方向の(ハッシュ値)y
iにおける直線201上の横軸方向の値((y
i−β)/α)との差を補完情報としてもよい。
【0025】
更新手段19は、鍵管理システム1が有するクライアント装置が変更された場合、各ユーザ鍵が変更された場合等に、管理者からの指示に従って記憶部13においてユーザ鍵を追加、削除又は変更するとともに、共有鍵を更新する。例えば、鍵管理システム1に新たなクライアント装置が加わる場合、管理者は、そのクライアント装置のユーザ鍵を追加する操作を操作部12から行う。更新手段19は、操作部12を介してユーザ鍵を追加する操作を受け付けると、その操作で指定されたユーザ鍵を記憶部13に記憶する。同様に、鍵管理システム1からクライアント装置20のうちの一つが離脱した場合、管理者は、そのクライアント装置のユーザ鍵を削除する操作を操作部12から行う。更新手段19は、操作部12を介してユーザ鍵を削除する操作を受け付けると、その操作で指定されたユーザ鍵を記憶部13から削除する。また、一部のユーザ鍵が漏洩した場合、管理者は、その漏洩したユーザ鍵を変更する操作を操作部12から行う。更新手段19は、操作部12を介してユーザ鍵を変更する操作を受け付けると、その操作で指定されたユーザ鍵を記憶部13において変更する。また、更新手段19は、操作部12を介した操作で指定されたユーザ鍵を記憶部13において追加、削除又は変更すると、追加、削除又は変更後のユーザ鍵にあわせて記憶部13に記憶されたクライアント装置リストを更新する。
【0026】
そして、更新手段19は、記憶部13においてユーザ鍵の追加、削除又は変更を行うと、鍵生成手段17に、記憶部13に現在記憶されているセンター鍵と各ユーザ鍵に対して、センター鍵に対応する座標点と、各ユーザ鍵に対応する座標点とを近似的に結ぶ方程式を再度求めさせ、求めた方程式から共有鍵を再度求めさせる。そして、誤差算出手段18に、記憶部13に現在記憶されているセンター鍵又はユーザ鍵毎に、求めた方程式に対するセンター鍵又はユーザ鍵に対応する座標点の誤差を算出させる。
【0027】
例えば、
図2に示したグラフ200において、点202以外のグラフ200上の全ての点に基づいて、最小二乗法により算出した直線は、以下の式で表される。
y=21.015x+20.555 (4)
この場合の共有鍵は20.555となる。このように、点202に対応するユーザ鍵が存在する場合と存在しない場合とで共有鍵は異なるものとなるので、鍵管理システム1に新たなクライアント装置が加わった場合、又は鍵管理システム1からクライアント装置20のうちの一つが離脱した場合、そのクライアント装置のユーザ鍵を追加、又は削除した新たな組合せのユーザ鍵を用いて直線を算出しなおすことにより新たな共有鍵を算出することができる。同様に、一部のユーザの鍵が漏洩した場合、その一部のユーザ鍵を変更した新たな組合せのユーザ鍵を用いて直線を算出しなおすことにより新たな共有鍵を算出することができる。
【0028】
図3は、生成手段15による共有鍵及び補完情報の生成処理の動作を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶部13に記憶されたプログラムに基づき主に制御部14によりサーバ装置10の各部と協働して実行される。
図3に示すフローチャートは、共有鍵を新規に生成する際、または、共有鍵を更新する際に、操作部12から管理者が指示すると開始される。
【0029】
まず、鍵生成手段17は、記憶部13から同一の共有鍵を用いるクライアント装置リストを読み出し、読み出したクライアント装置リストに示されるクライアント装置20のユーザ鍵を抽出する(ステップS301)。次に、鍵生成手段17は、センター鍵及び抽出したユーザ鍵の鍵値に対するハッシュ値を算出する(ステップS302)。次に、鍵生成手段17は、二次元の座標系において、一方の次元の値をセンター鍵又は各ユーザ鍵自体の鍵値とし、他方の次元の値をそのハッシュ値とする座標点を求める。そして、最小二乗法を用いて、センター鍵及び各ユーザ鍵に対応する各座標点を近似的に結ぶ直線を求める(ステップS303)。次に、鍵生成手段17は、求めた直線の切片を共有鍵として算出する(ステップS304)。
【0030】
次に、誤差算出手段18は、記憶部13からセンター鍵又は各ユーザ鍵を読み出し(ステップS305)、読み出した鍵を共有鍵の生成に使用したか否かを判定する(ステップS306)。読み出した鍵を共有鍵の生成に使用した場合、誤差算出手段18は、ステップS303で算出した直線に対する、読み出した鍵に対応する座標点の誤差を補完情報として算出する(ステップS307)。誤差算出手段18は、例えば、読み出した鍵の鍵値のハッシュ値と、その読み出した鍵の鍵値における直線上の値との差を補完情報として算出する。次に、誤差算出手段18は、算出した補完情報を読み出した鍵と関連付けて記憶部13に記憶する(ステップS308)。次に、誤差算出手段18は、記憶部13に記憶されたセンター鍵及び各ユーザ鍵を全て読み出したか否かを判定し(ステップS309)、まだ読み出していないセンター鍵又は各ユーザ鍵がある場合は、ステップS305へ移行し、ステップS305〜S308の処理を繰り返す。一方、センター鍵及び各ユーザ鍵を全て読み出した場合、誤差算出手段18は、一連のステップを終了する。
【0031】
管理手段16は、通信部11を介してクライアント装置20のうちの一つから共有鍵の復元要求を受信すると、センター鍵と、そのセンター鍵の補完情報と、共有鍵の復元要求を送信したクライアント装置20のユーザ鍵の補完情報とを記憶部13から読み出す。そして、読み出した情報を含む復元情報を通信部11にそのクライアント装置20へ送信させる。
【0032】
図4は、管理手段16による復元情報の送信処理の動作を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶部13に記憶されたプログラムに基づき主に制御部14によりサーバ装置10の各部と協働して実行される。
【0033】
管理手段16は、クライアント装置20から共有鍵の復元要求を受信するまで待機する(ステップS401)。クライアント装置20から共有鍵の復元要求を受信すると、管理手段16は、受信した復元要求に含まれる利用者ID及びパスワードが予め記憶部13に記憶された利用者ID及びパスワードと一致するか否かを判定する(ステップS402)。そして、一致しない場合は一連のステップを終了し、一方、一致する場合はセンター鍵と、そのセンター鍵の補完情報と、共有鍵の復元要求に含まれる利用者IDに関連付けられたクライアント装置20のユーザ鍵の補完情報とを記憶部13から読み出す(ステップS403)。次に、管理手段16は、読み出した各情報を含む復元情報を通信部11にそのクライアント装置20へ送信させ(ステップS404)、一連のステップを終了する。
【0034】
図1に戻って、クライアント装置20は、サーバ装置10が生成した共有鍵を復元して使用する。そのために、クライアント装置20は、クライアント通信部21と、入力部22と、クライアント記憶部23と、制御部24を有する。クライアント装置20は、例えばパーソナルコンピュータ、携帯電話、携帯情報端末のように利用者が直接操作する装置である。
【0035】
クライアント通信部21は、クライアント装置20をネットワークに接続するためのインターフェース回路を有する。そして、クライアント通信部21は、制御部24の制御に従って、クライアント装置20とサーバ装置10の間の接続処理を行い、クライアント装置20とサーバ装置10の間で接続が確立された後、サーバ装置10に共有鍵の復元要求を送信するとともに、サーバ装置10から復元情報を受信する。また、クライアント通信部21は、上記のような各種情報の送受信が終わると、クライアント装置20とサーバ装置10の間の接続を開放する処理を行う。
【0036】
入力部22は、キーボード、マウス、テンキー等の入力デバイスで構成された入力インターフェースであり、利用者から利用者ID、パスワード等を入力する操作を受け付け、その操作に対応する信号を制御部24へ出力する。
【0037】
クライアント記憶部23は、半導体メモリ、磁気記録媒体及びそのアクセス装置並びに光記録媒体及びそのアクセス装置のうちの少なくとも一つを有する。そして、クライアント記憶部23は、クライアント装置20を制御するためのコンピュータプログラム、各種パラメータ及びデータなどを記憶する。クライアント記憶部23は、自装置のユーザ鍵kと自装置のユーザ鍵k及び復元情報から共有鍵算出規則を生成するための復元規則及び共有鍵算出規則から共有鍵を求めるための復元規則を記憶している。
【0038】
制御部24は、一個または複数個のプロセッサ及びその周辺回路を有する。そして、制御部24は、センター鍵と、そのセンター鍵の補完情報と、クライアント装置20のユーザ鍵の補完情報と、そのクライアント装置20のユーザ鍵とからサーバ装置10の鍵生成手段17が生成した直線を復元規則にしたがって算出し、その直線により定まる切片の値を共有鍵として復元する。そのために、制御部24は、そのプロセッサ上で動作するソフトウェアにより実装される機能モジュールとして、鍵復元手段25を有する。
なお、制御部24が有するこれらの各部は、独立した集積回路、ファームウェア、マイクロプロセッサなどで構成されてもよい。
以下、制御部24の各部について詳細に説明する。
【0039】
図6は、鍵復元手段25による共有鍵の復元処理の動作を示すフローチャートである。なお、以下に説明する動作のフローは、予め記憶部22に記憶されたプログラムに基づき主に制御部24によりクライアント装置20の各部と協働して実行される。
【0040】
まず、鍵復元手段25は、クライアント通信部21にサーバ装置10へ共有鍵の復元要求を送信させる(ステップS601)。次に、鍵復元手段25は、クライアント通信部21を介してサーバ装置10から復元情報を受信するまで待機する(ステップS602)。サーバ装置10から復元情報を受信すると、鍵復元手段25は、受信した復元情報に含まれるセンター鍵と、そのセンター鍵の補完情報と、ユーザ鍵の補完情報と、クライアント記憶部20に記憶されているクライアント装置20のユーザ鍵とからサーバ装置10の鍵生成手段17が求めた直線を復元規則にしたがって復元する(ステップS603)。次に、鍵復元手段25は、復元した直線から鍵生成手段17が算出した共有鍵を復元し(ステップS604)、一連のステップを終了する。
【0041】
図5を用いて、共有鍵算出規則を復元規則にしたがって復元するステップS603の処理ついて詳細に説明する。
図5は、鍵復元手段25が復元する直線の一例を示すグラフである。
図5において、グラフ500は鍵復元手段25が復元する直線を表し、横軸はセンター鍵又は各ユーザ鍵の鍵値を、縦軸はそのハッシュ値を表す。復元規則にしたがって、サーバ装置10から取得したセンター鍵を2軸にて表す点501(16,300)を求め、更に点501に対して縦軸方向にサーバ装置10から取得したセンター鍵の補完情報503(58.875)を加算した点502(16、358.875)を求める。また、クライアント記憶部23に記憶しているユーザ鍵を2軸にて表す点504(6,100)を求め、更に点504に対して縦軸方向にサーバ装置10から取得したユーザ鍵の補完情報506(47.625)を加算した点505(6、147.625)を求める。点502と点505は、サーバ装置10の鍵生成手段17が生成した直線上の点となるので、これを結ぶ直線507を求めることにより、共有鍵算出規則を復元できる。
すなわち、点502の座標は(16、358.875)、点505の座標は(6、147.625)なので、直線507は次式となる。
y=21.125x+20.875 (5)
従って、直線507の切片の値である20.875が共有鍵と算出できる。
【0042】
これにより、鍵管理システムは、サーバ装置10とクライアント装置20の間で共有鍵を送受信する必要がなくなり、複数の装置が共通して使用する共有鍵を、高セキュリティに共有することができる。また、クライアント装置では、サーバ装置から受信した情報に基づいて共有鍵を復元することができる。
【0043】
また、鍵管理システムでは、クライアント装置毎に異なるユーザ鍵を使用しており、サーバ装置は各クライアント装置のユーザ鍵の補完情報をそのクライアント装置に送信するため、あるクライアント装置が他のクライアント装置の補完情報を取得してもユーザ鍵と補完情報は適合しないため、共有鍵を復元することはできない。また、一部のクライアント装置からユーザ鍵が漏洩してしまった場合でも、漏洩したユーザ鍵のみを変更して共有鍵を更新することができるので、他のクライアント装置のユーザ鍵を変更する必要がない。
【0044】
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、サーバ装置の鍵生成手段は、センター鍵及び各ユーザ鍵に対応する各座標点を近似的に結ぶ直線を算出する場合に、最小二乗法を用いるのではなく、ガウスニュートン法等の他の公知の直線算出手段を用いてもよい。
また、センター鍵又は各ユーザ鍵に対応する各座標点を近似的に結ぶ直線を求める二次元の座標系は、センター鍵又は各ユーザ鍵の鍵値とそのハッシュ値との組み合わせにより表される座標系に限定されない。例えば、所定規則の中で、各次元について各次元の値を算出するためのそれぞれ異なる一次関数を予め定めておき、一方の次元の値を一方の一次関数の、センター鍵又は各ユーザ鍵についての関数値とし、他方の次元の値を他方の一次関数の、センター鍵又は各ユーザ鍵についての関数値としてもよい。
【0045】
また、サーバ装置の鍵生成手段及びクライアント装置の鍵復元手段は、二次元の座標系において一次方程式を求めるのではなく、三次元以上の多次元の座標系において一次方程式を求めてもよい。
その場合、各クライアント装置は、その座標系の次元数より1少ない数のユーザ鍵を予め記憶しておき、サーバ装置は、全てのクライアント装置の全てのユーザ鍵を予め記憶しておく。サーバ装置の鍵生成手段は、各クライアント装置毎にユーザ鍵を少なくとも一つずつ選択する。そして、多次元の座標系において、センター鍵についてセンター鍵の鍵値を各次元毎に定められる規則にそれぞれ適用することにより一意に定められる値を各次元の値とする座標点を求めるとともに、選択した各ユーザ鍵について各ユーザ鍵の鍵値を上記の規則にそれぞれ適用することにより一意に定められる値を各次元の値とする座標点を求める。そして、センター鍵に対応する座標点と、各ユーザ鍵に対応する座標点とを近似的に結ぶ一次方程式を共有鍵算出規則として求める。例えば、鍵生成手段は、ハッシュ関数をその次元数だけ予め定めておき、センター鍵又は各ユーザ鍵の鍵値の各ハッシュ値を算出する。そして、センター鍵又は各ユーザ鍵について、各次元の値を各ハッシュ値とする座標点を求める。そして、鍵生成手段は、センター鍵及び各ユーザ鍵に対応する各座標点を近似的に結ぶ一次方程式を最小二乗法を用いて算出する。例えば、次元数を(m+1)とし、各元を(y、x
1、x
2、・・・、x
m)とした場合、求める一次方程式は、以下のように表される。
y=α
1x
1+α
2x
2+・・・+α
mx
m+β (6)
この場合、鍵生成手段は、α
1〜α
m及びβを求め、α
1〜α
m及びβのうちの何れかの値又はα
1〜α
m及びβのうちの何れか値の和、差、積、商、余り等を所定規則にしたがって共有鍵とする。
【0046】
誤差算出手段は、センター鍵又は各クライアント装置の全てのユーザ鍵について、鍵生成手段が求めた一次方程式に対するセンター鍵又は各ユーザ鍵に対応する座標点の誤差を補完情報として算出する。また、管理手段は、クライアント装置から共有鍵の復元要求を受信すると、センター鍵と、センター鍵の補完情報と、そのクライアント装置の全てのユーザ鍵の補完情報とを復元情報として通信部にそのクライアント装置へ送信させる。
【0047】
一方、クライアント装置の鍵復元手段は、サーバ装置から復元情報を受信すると、復元規則にしたがって、センター鍵と、センター鍵の補完情報とから、サーバ装置の鍵生成手段が生成した一次方程式を満たす座標点を算出する。さらに、自装置の全てのユーザ鍵と、その全てのユーザ鍵の補完情報からも、鍵生成手段が生成した一次方程式を満たす座標点をそれぞれ算出する。そして、算出した各座標点により一次方程式を復元し、その一次方程式に示される係数又は切片のうちの少なくとも一つに基づく値を復元規則にしたがって共有鍵として復元する。
【0048】
なお、サーバ装置の鍵生成手段及びクライアント装置の鍵復元手段が求める方程式(共有鍵算出規則)は、一次方程式に限定されず、二次以上の方程式でもよい。方程式の項の数、つまりその方程式において係数がかかっている変数又は0以外の定数を表す項の数の、その方程式を満たす座標点があれば、その方程式を復元することができる。
そこで、例えば、各クライアント装置に対してその方程式の項の数のユーザ鍵を予め定めておく。サーバ装置の誤差算出手段は、鍵生成手段が求めた方程式に対して、各クライアント装置の各ユーザ鍵について補完情報を算出し、管理手段は、復元要求を送信したクライアント装置の全てのユーザ鍵の補完情報を復元情報として通信部にそのクライアント装置へ送信させる。これにより、クライアント装置の鍵復元手段は、自装置の全てのユーザ鍵と、復元情報、つまり全てのユーザ鍵の補完情報とからその方程式の項の数の、その方程式を満たす座標点を算出できるので、方程式を復元することができる。また、この場合、センター鍵自体はネットワークに送信されないため、セキュリティ性を高めることができる。
【0049】
あるいは、各クライアント装置に対して予め定めておくユーザ鍵の数はその方程式の項の数未満としてもよい。その場合、サーバ装置の管理手段は、復元要求を送信したクライアント装置のユーザ鍵毎の補完情報と、方程式を満たす座標点とを復元情報として通信部にそのクライアント装置へ送信させる。なお、復元情報に含める、方程式を満たす座標点の数は、方程式の項の数から復元情報に含める補完情報の数を減じた数とし、座標点と補完情報は、合計が方程式の項の数となるように選択される。また、復元情報において座標点が少なく補完情報が多いほどセキュリティ性が高くなるが、復元情報に含める補完情報の数は一つ以上であればいくつでもよい。これにより、クライアント装置の鍵復元手段は、自装置のユーザ鍵と復元情報とからその方程式の項の数の、その方程式を満たす座標点を取得できるので、方程式を復元することができる。また、この場合も、センター鍵自体はネットワークに送信されないため、セキュリティ性を高めることができる。
【0050】
また、共有鍵を生成する機能と、共有鍵を各クライアント装置に配信する機能とを二台のサーバ装置に分担させてもよい。
図7は、共有鍵を生成する機能と、共有鍵を各クライアント装置に配信する機能とを二台のサーバ装置に分担させる場合の鍵管理システムの全体システム構成を示す図である。
図7に示す鍵管理システム2と、
図1に示す鍵管理システム1との差異は、鍵管理システム2が二つのサーバ装置で構成される点である。すなわち、鍵管理システム2では、サーバ装置10が有する機能を、鍵管理サーバ装置30と鍵生成サーバ装置40が実現する。
鍵管理サーバ装置30は、通信部31と、操作部32と、記憶部33と、制御部34とを有する。通信部31、操作部32、記憶部33及び制御部34の構成は、
図1に示すサーバ装置10の通信部11、操作部12、記憶部13及び制御部14の構成と同様であるため、詳細な説明を省略する。
また、鍵生成サーバ装置40は、通信部41と、操作部42と、記憶部43と、制御部44とを有する。通信部41、操作部42、記憶部43及び制御部44の構成も、
図1に示すサーバ装置10の通信部11、操作部12、記憶部13及び制御部14の構成と同様であるため、詳細な説明を省略する。
鍵管理サーバ装置30の通信部31と鍵生成サーバ装置40の通信部41は、ネットワークを介して相互に接続される。ただし、鍵管理サーバ装置30の通信部31は、鍵生成サーバ装置40以外の装置とも通信するが、鍵生成サーバ装置40の通信部41は、鍵管理サーバ装置30以外の装置とは通信しない。また、鍵管理サーバ装置30の制御部34は管理手段35を有し、鍵生成サーバ装置40の制御部44は生成手段45を有する。この管理手段35及び生成手段45は、それぞれ
図1に示す管理手段16及び生成手段15と同様の機能を有する。
【0051】
鍵管理システム2では、前述した
図3、4、6のフローチャートに示す処理とほぼ同様の処理を実行することができる。鍵管理システム2では、鍵管理サーバ装置30の記憶部33及び鍵生成サーバ装置40の記憶部43に予めセンター鍵が記憶される。また鍵生成サーバ装置40の記憶部43に予め各クライアント装置のユーザ鍵が記憶される。鍵生成サーバ装置40の生成手段45は、
図3のフローチャートに示す処理を実行して、共有鍵及び補完情報を生成し、生成したセンター鍵の補完情報及び全てのユーザ鍵の補完情報を鍵管理サーバ装置30に送信する。一方、鍵管理サーバ装置30は、受信したセンター鍵の補完情報及び全てのユーザ鍵の補完情報を記憶部33に記憶する。また、鍵管理サーバ装置30の制御部34は、通信部31を介してクライアント装置20から共有鍵の復元要求を受信すると、
図4のフローチャートに示す処理を実行する。
【0052】
また、鍵生成サーバ装置が算出した直線の切片を共有鍵とするのではなく、例えば、直線の傾きを共有鍵としてもよい。あるいは、直線の切片と傾きの和、差、積、商、余り等を共有鍵としてもよい。あるいは、直線を積分することにより求められる面積を共有鍵としてもよい。所定規則及び復元規則に、共有鍵算出規則から共有鍵を算出する規則として記憶させればよい。
【0053】
図8は、所定規則により直線を積分することにより求められる面積を共有鍵とする場合の鍵管理システムの全体システム構成を示す図である。
図8に示す鍵管理システム3と、
図7に示す鍵管理システム2との差異は、鍵管理システム3が、ネットワークを介して接続される復号鍵配信サーバ50を更に有する点である。
復号鍵配信サーバ50は、通信部51と、操作部52と、記憶部53と、制御部54を有する。通信部51、操作部52、記憶部53及び制御部54の構成は、
図1に示すサーバ装置10の通信部11、操作部12、記憶部13及び制御部14の構成と同様であるため、詳細な説明を省略する。復号鍵配信サーバ50の通信部51は、ネットワークを介して、クライアント装置20、鍵管理サーバ装置30及び鍵生成サーバ装置40と接続される。また、制御部54は復号鍵配信手段55を有する。復号鍵配信手段55は、通信部51にクライアント装置20、鍵管理サーバ装置30及び鍵生成サーバ装置40へ復号鍵を配信させる。
【0054】
図9(a)、(b)は、復号鍵配信手段55が配信する復号鍵について説明するためのグラフである。
図9(a)において、グラフ900は鍵生成サーバ装置40が生成する直線を表し、横軸はセンター鍵又は各ユーザ鍵の鍵値を、縦軸はそのハッシュ値を表す。点902〜907はセンター鍵及び各ユーザ鍵について対応する座標を表し、直線901は、最小二乗法を用いて求めた、各点902〜907を近似的に結ぶ直線を表す。一方、
図9(b)において、グラフ910は直線901を積分した2次曲線を表し、横軸はセンター鍵又は各ユーザ鍵の鍵値を、縦軸はそのハッシュ値を表す。鍵管理システム4では、横軸上の0からkfまでの区間において、2次曲線811により定まる面積812を共有鍵とする。そのために、復号鍵配信手段55は、積分区間を示す値kfを復号鍵として各クライアント装置20及び鍵生成サーバ装置40に送信する。そして、各クライアント装置20及び鍵生成サーバ装置40は、それぞれ生成した直線を積分し、受信した復号鍵が示す積分区間についてその面積を算出し、共有鍵とする。
【0055】
これにより、鍵管理システム3は、共有鍵のセキュリティ性をより向上させることが可能となる。特に、大多数の利用者が結託して、ユーザ鍵の鍵値とそのハッシュ値とを成分とする二次元の座標系において各ユーザ鍵に対応する座標点が略直線上に並ぶようにユーザ鍵を定めることにより、直線の傾き及び切片がその結託した利用者により操作された場合であっても、共有鍵自体のセキュリティ性を維持することができる。また、ユーザ鍵の補完情報が漏洩してしまった場合であっても共有鍵のセキュリティ性を保つことができる。
【0056】
また、以上の説明では、共有鍵算出規則はセンター鍵及びユーザ鍵を座標点とした座標系から近似して求める方程式とする場合を説明してきたが、共有鍵算出規則はサーバ装置の記憶部に予めテーブルとして記憶しておいてもよい。このとき、所定規則は、共有鍵算出規則をテーブルからどのように選択し、何を共有鍵とするかを規定する。
例えば、上述した直線の式(3)と式(4)を順にサーバ装置の記憶部にテーブルに記憶し、所定規則は、テーブルを参照して上から順に記載された式を共有鍵算出規則として選択するという規則と、共有鍵算出規則となった式の切片を共有鍵として算出するという規則とする。このとき、初回に所定規則にしたがって算出される共有鍵算出規則は、式(3)となり、式(3)の切片20.875が共有鍵として算出される。また、次に所定規則にしたがって算出される共有鍵算出規則は、式(4)となり、同様に式(4)の切片20.555が共有鍵として算出される。このように、複数の共有鍵算出規則をテーブルに予め記憶しておき、共有鍵を生成する際、所定規則にしたがって共有鍵算出規則を選択して用いてもよい。
【0057】
また、本発明の鍵管理システムによる共有鍵を暗号鍵として用いる場合、公開鍵暗号方式と共通鍵暗号方式の双方に用いることが可能である。本発明の鍵管理システムによって算出される共有鍵を、公開鍵暗号方式に用いるシステムに適用する場合、算出される共有鍵を鍵ペアの秘密鍵として用い、その秘密鍵と対になる公開鍵を生成し、鍵ペアとして用いればよい。また、本発明の鍵管理システムによって算出される共有鍵を、共通鍵暗号方式を用いるシステムに適用する場合、本発明による共有鍵を共通鍵として用いればよい。
【0058】
また、本発明の鍵管理システムによる共有鍵は、暗号鍵として共有するファイルの暗号に用いる他、認証用途でも用いることができる。例えば、クライアント装置は、共有鍵及びユーザ鍵を用いて他のクライアント装置の認証処理を行ってもよい。
図10は、共有鍵及びユーザ鍵を用いて他のクライアント装置の認証処理を行う場合の鍵管理システムの全体システム構成を示す図である。
図1に示す鍵管理システム1と、
図10に示す鍵管理システム4との差異は、鍵管理システム4の各クライアント装置60の制御部64がさらに認証手段66を有する点である。
クライアント装置60は、通信部61と、入力部62と、記憶部63と、制御部64を有する。通信部61、入力部62、記憶部63及び制御部64の構成は、
図1に示すクライアント装置20の通信部21、入力部22、記憶部23及び制御部24の構成と同様であるため、詳細な説明を省略する。制御部64は、鍵送信手段65及び鍵復元手段65に加えて認証手段66を有する。認証手段66は、通信部61を介して他のクライアント装置60から認証要求を受け付ける。認証を受ける側のクライアント装置60は、認証する側のクライアント装置60に、認証要求とともに自身のユーザ鍵k’を送信する。認証する側のクライアント装置60は、サーバ装置10からセンター鍵と、センター鍵の補完情報と、自身のユーザ鍵kの補完情報と、認証を受ける側のクライアント装置60のユーザ鍵k’の補完情報を取得する。そして、センター鍵と、センター鍵の補完情報と、自身のユーザ鍵kと、その補完情報とから共有鍵を復元するとともに、センター鍵と、センター鍵の補完情報と、認証を受ける側のクライアント装置60のユーザ鍵k’と、その補完情報とからも共有鍵を復元する。そして、復元した二つの共有鍵が一致すれば、認証を受ける側のクライアント装置の認証に成功したと判定し、二つの共有鍵が一致しなければ、認証を受ける側のクライアント装置の認証に失敗したと判定する。
【0059】
これにより、鍵管理システム4では、不特定多数の利用者により構成されるP2Pネットワーク等において、既に認証成功と判定されているクライアント装置が、共有鍵及びユーザ鍵を用いて他のクライアント装置の認証処理を行うことが可能となる。
【0060】
このように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。