(57)【特許請求の範囲】
【請求項１】
暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、Ｎ台（Ｎは１以上の整数）の端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記鍵生成装置において、
公開鍵と秘密鍵を生成するグループ鍵生成部と、
第１の分散鍵を生成する分散鍵生成部と、
前記第１の分散鍵と秘密鍵とに基づいて、前記第１の分散鍵と前記第２の分散鍵より前記秘密鍵を生成することが可能な前記第２の分散鍵を生成する第２分散鍵生成部と、
前記第１の分散鍵をＮ＋１個の互いに異なる分割鍵に分割する分散鍵分割部と、
前記分散鍵分割部で分割したＮ＋１個の分割鍵を、Ｎ台の前記端末装置と前記ストレージサーバに１個ずつ配布し、Ｎ台の前記端末装置それぞれに前記公開鍵を配布し、前記ストレージサーバに前記第２の分散鍵を配布する鍵配布部と、
を備え、
前記第１の分散鍵は、２種類以上の前記分割鍵より生成可能である
ことを特徴とする鍵生成装置。
【請求項２】
前記端末装置の環境を移行する元の端末装置である移行元端末装置を一意に特定する移行元端末装置情報と、前記移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報とを含む端末装置移行情報を受信する受信部と、
前記受信部で端末装置移行情報を受信した際に、分割鍵を更新するための情報である分割鍵更新情報を生成する分割鍵更新情報生成部と、
前記分割鍵更新情報生成部で生成した前記分割鍵更新情報を前記端末装置移行情報に含まれていない端末装置とストレージサーバとに配布する更新情報配布部と、
を備え、
前記分散鍵分割部は、前記移行先端末装置が使用する分割鍵を生成し、
前記鍵配布部は前記分散鍵分割部が生成した前記分割鍵と、前記公開鍵とを前記移行先端末装置に送信する
ことを特徴とする請求項１に記載の鍵生成装置。
【請求項３】
暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、
前記鍵生成装置より送付された公開鍵から暗号鍵と第１の鍵復元用情報を生成する暗号鍵生成部と、
前記暗号鍵を使用して共有データを暗号化する暗号部と、
暗号化した前記共有データと、前記第１の鍵復元用情報とを前記ストレージサーバに送信する送信部と、
暗号化された共有データと、第２の鍵復元用情報と、第３の鍵復元用情報とを前記ストレージサーバから受信する受信部と、
前記鍵生成装置より送付された分割鍵と、前記受信部で受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元する暗号鍵復元部と、
前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、
を備えたことを特徴とする端末装置。
【請求項４】
前記鍵生成装置より分割鍵更新情報を受信する更新情報受信部と、
前記更新情報受信部が受信した前記分割鍵更新情報に基づいて、前記分割鍵を更新する分割鍵更新部と、
を備えたことを特徴とする請求項３に記載の端末装置。
【請求項５】
２つの情報のみで前記暗号鍵を生成可能な情報である、第１のシェアと第２のシェアとを生成するシェア生成部
を備え、
前記送信部は、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを前記ストレージサーバに送信し、
前記受信部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記第２のシェアとを受信し、
前記暗号鍵復元部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記第１のシェアと前記第２のシェアとに基づいて暗号鍵を復元する
ことを特徴とする請求項３に記載の端末装置。
【請求項６】
暗号鍵を生成する基の情報であるマスタシェアを記憶する記憶部と、
２つの情報のみで前記マスタシェアを復元することが可能な情報である、第１の分割シェアと第２の分割シェアとを生成する分割シェア生成部と、
前記暗号鍵と前記マスタシェアとに基づいて、前記マスタシェアと暗号鍵シェアの２つの情報のみで前記暗号鍵を生成可能な情報である暗号鍵シェアを生成するシェア生成部と、
を備え、
前記送信部は、
暗号化した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを前記ストレージサーバに送信し、
前記受信部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記暗号鍵シェアとを受信し、
前記暗号鍵復元部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記マスタシェアと、前記暗号鍵シェアとに基づいて暗号鍵を復元する
ことを特徴とする請求項３に記載の端末装置。
【請求項７】
ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、
前記端末装置より暗号化された共有データと第１の鍵復元用情報とを受信する受信部と、
前記受信部で受信した前記共有データと前記第１の鍵復元用情報とを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、分割鍵とを記憶する記憶部と、
前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、第２の鍵復元用情報と、第３の鍵復元用情報とを生成する鍵復元用情報生成部と、
暗号化された共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを端末装置に送信する送信部と、
を備えたことを特徴とするストレージサーバ。
【請求項８】
前記鍵生成装置より分割鍵を更新するための情報である分割鍵更新情報を受信する更新情報受信部と、
前記更新情報受信部が受信した前記分割鍵更新情報に基づいて、前記分割鍵を更新する分割鍵更新部と、
を備えたことを特徴とする請求項７に記載のストレージサーバ。
【請求項９】
前記受信部は、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、第２のシェアとを受信し、
前記記憶部は、前記受信部で受信した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な前記第２の分散鍵と、前記分割鍵とを記憶し、
前記鍵復元用情報生成部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、
前記送信部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記第２のシェアとを前記端末装置に送信する
ことを特徴とする請求項７に記載のストレージサーバ。
【請求項１０】
前記受信部は、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、暗号鍵シェアとを受信し、
前記記憶部は、前記受信部で受信した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、前記分割鍵とを記憶し、
前記鍵復元用情報生成部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、
前記送信部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記暗号鍵シェアとを前記端末装置に送信する
ことを特徴とする請求項７に記載のストレージサーバ。
【請求項１１】
暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、Ｎ台（Ｎは１以上の整数）の端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、
公開鍵と秘密鍵を生成するグループ鍵生成ステップと、
第１の分散鍵を生成する分散鍵生成ステップと、
前記第１の分散鍵と秘密鍵とに基づいて、前記第１の分散鍵と前記第２の分散鍵より前記秘密鍵を生成することが可能な前記第２の分散鍵を生成する第２分散鍵生成ステップと、
前記第１の分散鍵をＮ＋１個の互いに異なる分割鍵に分割する分散鍵分割ステップと、
前記分散鍵分割ステップで分割したＮ＋１個の分割鍵を、Ｎ台の前記端末装置と前記ストレージサーバに１個ずつ配布し、Ｎ台の前記端末装置それぞれに前記公開鍵を配布し、前記ストレージサーバに前記第２の分散鍵を配布する鍵配布ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１２】
前記端末装置の環境を移行する元の端末装置である移行元端末装置を一意に特定する移行元端末装置情報と、前記移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報とを含む端末装置移行情報を受信する受信ステップと、
前記受信ステップで端末装置移行情報を受信した際に、分割鍵を更新するための情報である分割鍵更新情報を生成する分割鍵更新情報生成ステップと、
前記分割鍵更新情報生成ステップで生成した前記分割鍵更新情報を前記端末装置移行情報に含まれていない端末装置とストレージサーバとに配布する更新情報配布ステップと、
をコンピュータに実行させ、
前記分散鍵分割ステップは、前記移行先端末装置が使用する分割鍵を生成し、
前記鍵配布ステップは前記分散鍵分割ステップが生成した前記分割鍵と、前記公開鍵とを前記移行先端末装置に送信する
ことを特徴とする請求項１１に記載のコンピュータプログラム。
【請求項１３】
暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、
前記鍵生成装置より送付された公開鍵から暗号鍵と第１の鍵復元用情報を生成する暗号鍵生成ステップと、
前記暗号鍵を使用して共有データを暗号化する暗号ステップと、
暗号化した前記共有データと、前記第１の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、
暗号化された共有データと、第２の鍵復元用情報と、第３の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、
前記鍵生成装置より送付された分割鍵と、前記受信ステップで受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元する暗号鍵復元ステップと、
前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１４】
２つの情報のみで前記暗号鍵を生成可能な情報である、第１のシェアと第２のシェアとを生成するシェア生成ステップと、
を含み、
前記送信ステップでは、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを前記ストレージサーバに送信し、
前記受信ステップでは、前記暗号部ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記第２のシェアとを受信し、
前記暗号鍵復元ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記第１のシェアと前記第２のシェアとに基づいて暗号鍵を復元する
ことを特徴とする請求項１３に記載のコンピュータプログラム。
【請求項１５】
暗号鍵を生成する基の情報であるマスタシェアを記憶する記憶ステップと、
２つの情報のみで前記マスタシェアを復元することが可能な情報である、第１の分割シェアと第２の分割シェアとを生成する分割シェア生成ステップと、
前記暗号鍵と前記マスタシェアとに基づいて、前記マスタシェアと暗号鍵シェアの２つの情報のみで前記暗号鍵を生成可能な情報である暗号鍵シェアを生成するシェア生成ステップと、
を含み、
前記送信ステップでは、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを前記ストレージサーバに送信し、
前記受信ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記暗号鍵シェアとを受信し、
前記暗号鍵復元ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記マスタシェアと、前記暗号鍵シェアとに基づいて暗号鍵を復元する
ことを特徴とする請求項１３に記載のコンピュータプログラム。
【請求項１６】
ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、
前記端末装置より暗号化された共有データと第１の鍵復元用情報とを受信する受信ステップと、
前記受信ステップで受信した前記共有データと前記第１の鍵復元用情報とを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、分割鍵とを記憶する記憶ステップと、
前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、第２の鍵復元用情報と、第３の鍵復元用情報とを生成する鍵復元用情報生成ステップと、
暗号化された共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを端末装置に送信する送信ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１７】
前記受信ステップでは、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、第２のシェアとを受信し、
前記記憶ステップでは、前記受信ステップで受信した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な前記第２の分散鍵と、前記分割鍵とを記憶し、
前記鍵復元用情報生成ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、
前記送信ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記第２のシェアとを前記端末装置に送信する
ことを特徴とする請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記受信ステップでは、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、暗号鍵シェアとを受信し、
前記記憶ステップでは、前記受信ステップで受信した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、前記分割鍵とを記憶し、
前記鍵復元用情報生成ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、
前記送信ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記暗号鍵シェアとを前記端末装置に送信する
ことを特徴とする請求項１６に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、共有データを暗号化してグループ内で共有する方法が知られている（例えば、特許文献１参照）。ある共有データをグループ内で共有する場合、まずグループ内で共有したいデータ（ＭＧ）を、暗号鍵（ＫＭ）を用いて共通鍵暗号で暗号化（ＥＫＭ（ＭＧ））する。そして、当該グループの全メンバ（Ｕ１，．．．，ＵＮ）が所有する公開鍵（ｐｋ１，．．．，ｐｋＮ）でＫＭを暗号化（Ｅｐｋ１（ＫＭ），．．．，ＥｐｋＮ（ＫＭ））し、それをリスト化して、ＥＫＭ（ＭＧ）と共にサーバ等に保存する。データを参照するグループメンバ（Ｕｉ）は、リスト内から自身の公開鍵（ｐｋｉ）で暗号化されたＫＭ（Ｅｐｋｉ（ＫＭ）とＥＫＭ（ＭＧ）を取得し、暗号化されたＫＭを自身の秘密鍵（ｓｋｉ）を用いて復号することにより、ＫＭを得る。そして、ＫＭでＥＫＭ（ＭＧ）を復号し、元データＭＧを得る。
【特許文献１】特開２００５−２２３９５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載の技術においては、グループメンバの所有する端末装置が悪意の第三者に使用された場合、端末装置が共有データの暗号化に使用している秘密鍵を保持しているため秘密鍵が漏洩してしまう可能性がある。そのため、他のグループメンバによって共有データが暗号化されていたとしても、漏洩した秘密鍵を使用して第三者が共有データの内容を復号化できる可能性があるという問題があった。また、グループメンバが共有データを初めて公開する際、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要があった。そのため、初めて共有データを公開する時の処理の負荷が大きいという問題があった。また、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合もグループメンバの人数分鍵暗号化処理を行う必要があった。そのため、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する時の処理の負荷が大きいという問題があった。
【０００４】
本発明は上記の課題を解決するためになされたものであり、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である鍵生成装置、端末装置、ストレージサーバおよびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、暗号化された共有データ（後述する実施形態の共有データＭＧ、ＭＧ’に対応）の復号に必須な第２の分散鍵（後述する実施形態の分散鍵ｓｋ２に対応）と暗号化された前記共有データとを保管するストレージサーバと、Ｎ台（Ｎは１以上の整数）の端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記鍵生成装置において、公開鍵と秘密鍵を生成するグループ鍵生成部と、第１の分散鍵（後述する実施形態の分散鍵ｓｋ１に対応）を生成する分散鍵生成部と、前記第１の分散鍵と秘密鍵とに基づいて、前記第１の分散鍵と前記第２の分散鍵より前記秘密鍵を生成することが可能な前記第２の分散鍵を生成する第２分散鍵生成部と、前記第１の分散鍵をＮ＋１個の互いに異なる分割鍵（後述する実施形態の分割鍵ｓｋ１，１、ｓｋ１，２、・・・、ｓｋ１，Ｎ、ｓｋ１，Ｓに対応）に分割する分散鍵分割部と、前記分散鍵分割部で分割したＮ＋１個の分割鍵を、Ｎ台の前記端末装置と前記ストレージサーバに１個ずつ配布し、Ｎ台の前記端末装置それぞれに前記公開鍵を配布し、前記ストレージサーバに前記第２の分散鍵を配布する鍵配布部と、を備え、前記第１の分散鍵は、２種類以上の前記分割鍵より生成可能であることを特徴とする鍵生成装置である。
【０００６】
また、本発明は、前記端末装置の環境を移行する元の端末装置である移行元端末装置を一意に特定する移行元端末装置情報と、前記移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報とを含む端末装置移行情報を受信する受信部と、前記受信部で端末装置移行情報を受信した際に、分割鍵を更新するための情報である分割鍵更新情報（後述する実施形態の分割鍵更新用シェアＳＲ，１、ＳＲ，Ｓに対応）を生成する分割鍵更新情報生成部と、前記分割鍵更新情報生成部で生成した前記分割鍵更新情報を前記端末装置移行情報に含まれていない端末装置とストレージサーバとに配布する更新情報配布部と、を備え、前記分散鍵分割部は、前記移行先端末装置が使用する分割鍵を生成し、前記鍵配布部は前記分散鍵分割部が生成した前記分割鍵と、前記公開鍵とを前記移行先端末装置に送信することを特徴とする鍵生成装置である。
【０００７】
また、本発明は、暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれる前記端末装置において、前記鍵生成装置より送付された公開鍵から暗号鍵（後述する実施形態の暗号鍵ＫＭに対応）と第１の鍵復元用情報（後述する実施形態の鍵復元用情報Ｃ０，１に対応）とを生成する暗号鍵生成部と、前記暗号鍵を使用して共有データを暗号化する暗号部と、暗号化した前記共有データと、前記第１の鍵復元用情報とを前記ストレージサーバに送信する送信部と、暗号化された共有データと、第２の鍵復元用情報（後述する実施形態の鍵復元用情報Ｃ１に対応）と、第３の鍵復元用情報（後述する実施形態の鍵復元用情報Ｃ２に対応）とを前記ストレージサーバから受信する受信部と、前記鍵生成装置より送付された分割鍵と、前記受信部で受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元する暗号鍵復元部と、前記暗号鍵復元部で復元した前記暗号鍵を用いて、前記受信部で受信した暗号化された前記共有データを復号する復号部と、を備えたことを特徴とする端末装置である。
【０００８】
また、本発明は、前記鍵生成装置より分割鍵更新情報を受信する更新情報受信部と、前記更新情報受信部が受信した前記分割鍵更新情報に基づいて、前記分割鍵を更新する分割鍵更新部と、を備えたことを特徴とする端末装置である。
【０００９】
また、本発明は、２つの情報のみで前記暗号鍵を生成可能な情報である、第１のシェア（後述する実施形態のシェアＳ１，１に対応）と第２のシェア（後述する実施形態のシェアＳ１，２に対応）とを生成するシェア生成部を備え、前記送信部は、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを前記ストレージサーバに送信し、前記受信部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記第２のシェアとを受信し、前記暗号鍵復元部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記第１のシェアと前記第２のシェアとに基づいて暗号鍵を復元することを特徴とする端末装置である。
【００１０】
また、本発明は、暗号鍵を生成する基の情報であるマスタシェア（後述する実施形態のマスタシェアＳＭに対応）を記憶する記憶部と、２つの情報のみで前記マスタシェアを復元することが可能な情報である、第１の分割シェア（後述する実施形態の分割シェアＳＭ１に対応）と第２の分割シェア（後述する実施形態の分割シェアＳＭ２に対応）とを生成する分割シェア生成部と、前記暗号鍵と前記マスタシェアとに基づいて、前記マスタシェアと暗号鍵シェアの２つの情報のみで前記暗号鍵を生成可能な情報である暗号鍵シェア（後述する実施形態の暗号鍵シェアＳＫＭ，１に対応）を生成するシェア生成部と、を備え、前記送信部は、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを前記ストレージサーバに送信し、前記受信部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記暗号鍵シェアとを受信し、前記暗号鍵復元部は、前記暗号部が前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記マスタシェアと、前記暗号鍵シェアとに基づいて暗号鍵を復元することを特徴とする端末装置である。
【００１１】
また、本発明は、ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムに含まれるストレージサーバにおいて、前記端末装置より暗号化された共有データと第１の鍵復元用情報とを受信する受信部と、前記受信部で受信した前記共有データと前記第１の鍵復元用情報とを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、分割鍵とを記憶する記憶部と、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、第２の鍵復元用情報と、第３の鍵復元用情報とを生成する鍵復元用情報生成部と、暗号化された共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを端末装置に送信する送信部と、を備えたことを特徴とするストレージサーバである。
【００１２】
また、本発明は、前記鍵生成装置より分割鍵を更新するための情報である分割鍵更新情報を受信する更新情報受信部と、前記更新情報受信部が受信した前記分割鍵更新情報に基づいて、前記分割鍵を更新する分割鍵更新部と、を備えたことを特徴とするストレージサーバである。
【００１３】
また、本発明のストレージサーバにおいて、前記受信部は、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、第２のシェアとを受信し、前記記憶部は、前記受信部で受信した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な前記第２の分散鍵と、前記分割鍵とを記憶し、前記鍵復元用情報生成部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、前記送信部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記第２のシェアとを前記端末装置に送信することを特徴とする。
【００１４】
また、本発明のストレージサーバにおいて、前記受信部は、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、暗号鍵シェアとを受信し、前記記憶部は、前記受信部で受信した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、前記分割鍵とを記憶し、前記鍵復元用情報生成部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、前記送信部は、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記暗号鍵シェアとを前記端末装置に送信することを特徴とする。
【００１５】
また、本発明は、暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、Ｎ台（Ｎは１以上の整数）の端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、公開鍵と秘密鍵を生成するグループ鍵生成ステップと、第１の分散鍵を生成する分散鍵生成ステップと、前記第１の分散鍵と秘密鍵とに基づいて、前記第１の分散鍵と前記第２の分散鍵より前記秘密鍵を生成することが可能な前記第２の分散鍵を生成する第２分散鍵生成ステップと、前記第１の分散鍵をＮ＋１個の互いに異なる分割鍵に分割する分散鍵分割ステップと、前記分散鍵分割ステップで分割したＮ＋１個の分割鍵を、Ｎ台の前記端末装置と前記ストレージサーバに１個ずつ配布し、Ｎ台の前記端末装置それぞれに前記公開鍵を配布し、前記ストレージサーバに前記第２の分散鍵を配布する鍵配布ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【００１６】
また、本発明は、前記端末装置の環境を移行する元の端末装置である移行元端末装置を一意に特定する移行元端末装置情報と、前記移行元端末装置の環境の移行先の端末装置である移行先端末装置を一意に特定する移行先端末装置情報とを含む端末装置移行情報を受信する受信ステップと、前記受信ステップで端末装置移行情報を受信した際に、分割鍵を更新するための情報である分割鍵更新情報を生成する分割鍵更新情報生成ステップと、前記分割鍵更新情報生成ステップで生成した前記分割鍵更新情報を前記端末装置移行情報に含まれていない端末装置とストレージサーバとに配布する更新情報配布ステップと、をコンピュータに実行させ、前記分散鍵分割ステップは、前記移行先端末装置が使用する分割鍵を生成し、前記鍵配布ステップは前記分散鍵分割ステップが生成した前記分割鍵と、前記公開鍵とを前記移行先端末装置に送信することを特徴とするコンピュータプログラムである。
【００１７】
また、本発明は、暗号化された共有データの復号に必須な第２の分散鍵と暗号化された前記共有データとを保管するストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、前記鍵生成装置より送付された公開鍵から暗号鍵と第１の鍵復元用情報を生成する暗号鍵生成ステップと、前記暗号鍵を使用して共有データを暗号化する暗号ステップと、暗号化した前記共有データと、前記第１の鍵復元用情報とを前記ストレージサーバに送信する送信ステップと、暗号化された共有データと、第２の鍵復元用情報と、第３の鍵復元用情報とを前記ストレージサーバから受信する受信ステップと、前記鍵生成装置より送付された分割鍵と、前記受信ステップで受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元する暗号鍵復元ステップと、前記暗号鍵復元ステップで復元した前記暗号鍵を用いて、前記受信ステップで受信した暗号化された前記共有データを復号する復号ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【００１８】
また、本発明は、２つの情報のみで前記暗号鍵を生成可能な情報である、第１のシェアと第２のシェアとを生成するシェア生成ステップと、を含み、前記送信ステップでは、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを前記ストレージサーバに送信し、前記受信ステップでは、前記暗号部ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記第２のシェアとを受信し、前記暗号鍵復元ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記第１のシェアと前記第２のシェアとに基づいて暗号鍵を復元することを特徴とするコンピュータプログラムである。
【００１９】
また、本発明は、暗号鍵を生成する基の情報であるマスタシェアを記憶する記憶ステップと、２つの情報のみで前記マスタシェアを復元することが可能な情報である、第１の分割シェアと第２の分割シェアとを生成する分割シェア生成ステップと、前記暗号鍵と前記マスタシェアとに基づいて、前記マスタシェアと暗号鍵シェアの２つの情報のみで前記暗号鍵を生成可能な情報である暗号鍵シェアを生成するシェア生成ステップと、を含み、前記送信ステップでは、暗号化した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを前記ストレージサーバに送信し、前記受信ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、暗号化された前記共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記ストレージサーバより受信し、前記暗号鍵が更新されていない場合は、前記暗号化された共有データと、前記暗号鍵シェアとを受信し、前記暗号鍵復元ステップでは、前記暗号ステップで前記共有データの暗号化で用いた前記暗号鍵が更新された場合には、前記鍵生成装置より送付された前記分割鍵と、前記受信部が受信した前記第２の鍵復元用情報と、前記第３の鍵復元用情報とに基づいて暗号鍵を復元し、前記暗号鍵が更新されていない場合には、前記マスタシェアと、前記暗号鍵シェアとに基づいて暗号鍵を復元することを特徴とするコンピュータプログラムである。
【００２０】
また、本発明は、ストレージサーバと、端末装置と、鍵生成装置とを備えたデータ共有システムにおいて、前記端末装置より暗号化された共有データと第１の鍵復元用情報とを受信する受信ステップと、前記受信ステップで受信した前記共有データと前記第１の鍵復元用情報とを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、分割鍵とを記憶する記憶ステップと、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、第２の鍵復元用情報と、第３の鍵復元用情報とを生成する鍵復元用情報生成ステップと、暗号化された共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを端末装置に送信する送信ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【００２１】
また、本発明のプログラムにおいて、前記受信ステップでは、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、第２のシェアとを受信し、前記記憶ステップでは、前記受信ステップで受信した前記共有データと、前記第１の鍵復元用情報と、前記第２のシェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な前記第２の分散鍵と、前記分割鍵とを記憶し、前記鍵復元用情報生成ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、前記送信ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記第２のシェアとを前記端末装置に送信することを特徴とする。
【００２２】
また、本発明のプログラムにおいて、前記受信ステップでは、前記端末装置より暗号化された前記共有データと、第１の鍵復元用情報と、暗号鍵シェアとを受信し、前記記憶ステップでは、前記受信ステップで受信した前記共有データと、前記第１の鍵復元用情報と、前記暗号鍵シェアとを関連付けて記憶し、暗号化された前記共有データの復号に必須な第２の分散鍵と、前記分割鍵とを記憶し、前記鍵復元用情報生成ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、前記第１の鍵復元用情報と、前記分割鍵と、前記第２の分散鍵とに基づいて、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを生成し、前記送信ステップでは、前記端末装置で前記共有データの暗号化に用いた前記暗号鍵が更新された場合には、暗号化された当該共有データと、前記第２の鍵復元用情報と、前記第３の鍵復元用情報とを前記端末装置に送信し、前記暗号鍵が更新されていない場合には、暗号化された前記共有データと、前記暗号鍵シェアとを前記端末装置に送信することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能であり、初めて共有データを公開する際の処理の負荷の軽減が可能であり、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の第１の実施形態から第３の実施形態について説明する。はじめに、本発明の第１の実施形態から第３の実施形態で使用している秘密分散法について説明する。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。（ｋ，ｎ）閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報（シェア）に分割してそれぞれ保管し、その内のｋ個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。（参考文献：「Ａ．  Ｓｈａｍｉｒ，“Ｈｏｗ  ｔｏ  ｓｈａｒｅ  ａ  ｓｅｃｒｅｔ，“Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ，Ｖｏｌ．２２，Ｎｏ．１１，ｐｐ．６１２−６１３，１９７９」）
【００２５】
また、共通鍵暗号で利用する暗号鍵を、公開鍵暗号を用いて安全に配送するための鍵カプセル化技術（ＫＥＭ：Ｋｅｙ  Ｅｎｃａｐｓｕｌａｔｉｏｎ  Ｍｅｃｈａｎｉｓｍ）であるＲＳＡ（アールエスエー）暗号をベースとしたＲＳＡ−ＫＥＭについて説明する。ＲＳＡ−ＫＥＭの手順の概要は以下の通りである。
［鍵生成手順］ＲＳＡ秘密鍵（ｅ，ｎ）および公開鍵（ｄ，（ｎ））を生成する。ここで、ｎ＝ｐｑ  （ｐ，ｑは素数）、ｅｄ≡１（ｍｏｄ  λ（ｎ））（ｅとλ（ｎ）は互いに素、λ（ｎ）＝ＬＣＭ（ｐ−１，ｑ−１）（ＬＣＭ（ａ，ｂ）はａとｂの最小公倍数））である。
［暗号化、暗号鍵生成手順］（ステップＳ１０１）乱数ｒを生成する。ここでｒは（１）式を満たす。
【００２６】
【数１】
0005103095.tif 000002
【００２７】
（ステップＳ１０２）ｒを（２）式で文字列に変換する。ここで、Ｉ２ＯＳＰはｉｎｔｅｒｇｅｒ  ｔｏ  ｏｃｔｅｔ  ｓｔｒｉｎｇ  ｃｏｎｖｅｒｓｉｏｎである。
【００２８】
【数２】
0005103095.tif 000003
【００２９】
（ステップＳ１０３）暗号文Ｃ０を（３）式で生成する。
【００３０】
【数３】
0005103095.tif 000004
【００３１】
（ステップＳ１０４）暗号鍵Ｋを（４）式で生成する。ここで、ＫＤＦは（Ｋｅｙ  Ｄｅｒｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎであり、ＫｅｙＬｅｎは暗号鍵の鍵長である。
【００３２】
【数４】
0005103095.tif 000005
【００３３】
［復号、暗号鍵復元手順］（ステップＳ１１０）文字列Ｒを（５）式で復元する。
【００３４】
【数５】
0005103095.tif 000006
【００３５】
（ステップＳ１１１）暗号鍵Ｋを（６）式で復元する。
【００３６】
【数６】
0005103095.tif 000007
【００３７】
（参考文献：「Ｖ．Ｓｈｏｕｐ，“ＦＣＤ  １８０３３−２  Ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍｓ−Ｐａｒｔ  ２：Ａｓｙｍｍｅｔｒｉｃ  ｃｉｐｈｅｒｓ”，ｈｔｔｐ：／／ｓｈｏｕｐ．ｎｅｔ／ｉｓｏ／ｓｔｄ６．ｐｄｆ」）
【００３８】
（第１の実施形態）
次に、本発明の第１の実施形態について図面を参照して説明する。図１は、本実施形態によるデータ共有システム１００を示す構成図である。図示する例では、データ共有システム１００はグループメンバ端末（端末装置）１−１、１−２、・・・、１−Ｎと、ストレージサーバ２と、認証局（鍵生成装置）３と、通信ネットワーク４とを備える。グループメンバ端末１−１、１−２、・・・、１−Ｎは、通信ネットワーク４を介してストレージサーバ２にアクセスし、ストレージサーバ２との間でデータを送受することができる。なお、通信ネットワーク４は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク４は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【００３９】
グループメンバ端末１−１、１−２、・・・、１−Ｎは、移動しながら使用可能な装置（例えば、携帯型装置）であってもよく、或いは、固定して使用される装置（例えば、パーソナルコンピュータ等の据置き型装置）であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置（例えば、データ通信機能を有する携帯電話機、データ通信端末装置等）、ＰＤＡ（Personal Digital Assistants：個人用情報機器）などが挙げられる。また、ＰＤＡの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【００４０】
グループメンバ端末１−１、１−２、・・・、１−Ｎは、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、ＣＰＵ（中央処理装置）およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、ＤＲＡＭ（ＤｙｎａｍｉｃＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、ＣＰＵで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク４を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【００４１】
グループメンバ端末１−１、１−２、・・・、１−Ｎは、ＣＰＵがコンピュータプログラムを実行することにより、暗号鍵生成機能と、送信機能と、受信機能と、暗号鍵復元機能と、復号機能と、更新情報受信機能と、分割鍵更新機能と、シェア生成機能とを実現する。なお、コンピュータプログラムは、グループメンバ端末１−１、１−２、・・・、１−Ｎに固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【００４２】
ストレージサーバ２は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、ＣＰＵおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、ＤＶＤ等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、ＤＲＡＭ等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、ＣＰＵで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク４を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、ＣＲＴや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。また、記憶部は、グループメンバ端末１−１、１−２、・・・、１−Ｎから送られてきた各種データを記憶するデータ管理機能を有する。ストレージサーバ２の受信機能と、記憶機能と、鍵復元用情報生成機能と、送信機能と、分割鍵更新機能とは、ストレージサーバ２のＣＰＵが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【００４３】
認証局３は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、ＣＰＵおよびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、ＤＶＤ等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、ＤＲＡＭ等の揮発性のメモリなどの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、ＣＰＵで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク４を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、ＣＲＴや液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。認証局３のグループ鍵生成機能と、分散鍵生成機能と、分散鍵分割機能と、鍵配布機能と、受信機能と、分割鍵更新情報生成機能と、更新情報配布機能とは、認証局３のＣＰＵが上記機能を実現するためのコンピュータプログラムを実行することにより実現される。
【００４４】
［事前準備］
次に、本実施形態での事前準備について図２を参照して説明する。図２は、本実施形態での事前準備の処理動作を示すシーケンス図である。事前準備では、認証局３は暗号用の鍵を作成し、作成した鍵をグループメンバ端末１−１、１−２と、ストレージサーバ２に配布する。
【００４５】
（ステップＰ１−１）認証局３はグループ用公開鍵と秘密鍵のペア（ｐｋＧ、ｓｋＧ）を生成する。以下、ＲＳＡ暗号の公開鍵をｐｋＧ、秘密鍵をｓｋＧとして説明する。すなわち、ｐｋＧ＝（ｅ，ｎ)、ｓｋＧ＝（ｄ)、ここでｎ＝ｐｑ  （ｐ，ｑは素数、ｐ＝２ｐ’＋１，ｑ＝２ｑ’＋１，ｐ’，ｑ’は素数）、ｅｄ≡１（ｍｏｄ  λ（ｎ））（ｅとλ（ｎ）は互いに素、λ（ｎ）＝ＬＣＭ（ｐ−１，ｑ−１）＝２ｐ’ｑ’）である。
（ステップＰ１−２）認証局３は分散鍵ｓｋ１をランダムに生成する。ここで、分散鍵ｓｋ１は１≦ｓｋ１≦λ（ｎ）−１を満たす偶数である。なお、分散鍵ｓｋ１と後述する分散鍵ｓｋ２とを用いてステップＰ１−１で生成したｓｋＧを生成することが可能である。続いて、認証局３は分散鍵ｓｋ１と、ステップＰ１−１で生成したｓｋＧとを用いて、以下の（７）式を満たす分散鍵ｓｋ２を求める。
【００４６】
【数７】
0005103095.tif 000008
【００４７】
（ステップＰ１−３）認証局３は、（２，Ｎ＋１）閾値秘密分散法を用いて、分散鍵ｓｋ１をＮ＋１個に分割し、ｓｋ１，１、ｓｋ１，２、・・・、ｓｋ１，Ｎ、ｓｋ１，Ｓの分割鍵を生成する。ここでＮはデータ共有システムに含まれるグループメンバ端末数であり、Ｎは１以上の整数である。また、（２，Ｎ＋１）閾値秘密分散法を用いて分散鍵ｓｋ１を分割しているため、分散鍵ｓｋ１をＮ＋１個に分割したｓｋ１，１、ｓｋ１，２、・・・、ｓｋ１，Ｎ、ｓｋ１，Ｓの分割鍵のうち少なくとも２種類の分割鍵を用いて分散鍵ｓｋ１を生成することが可能である。ｓｋ１，ｉ（ｉ＝１，・・・，Ｎ）は以下の（８）式を満たす。ここで、ｆ（ｘ）＝ｓｋ１＋ａｘ（ａは乱数）、ｆ（ｘ）は有限体ＧＦ（λ（ｎ））上の多項式である。また、Ｘｉ＝２×ＩＤｉ（ＩＤｉはグループメンバ端末１−ｉのＩＤ）である。ｓｋ１，Ｓは以下の（９）式を満たす。
【００４８】
【数８】
0005103095.tif 000009
【００４９】
【数９】
0005103095.tif 000010
【００５０】
続いて、認証局３は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵ｐｋＧと、ｓｋ１，ｉ（ｉ＝１，・・・，Ｎ）とを配布し、ストレージサーバ２にｓｋ１，ｓとｓｋ２とを配布する。図２に図示する例ではデータ共有システムに含まれるグループメンバ端末は２台であり、グループメンバ端末１−１にはｐｋＧと、ｓｋ１，１とを配布し、グループメンバ端末１−２にはｐｋＧと、ｓｋ１，２とを配布し、ストレージサーバ２にｓｋ１，ｓとｓｋ２とを配布する。
【００５１】
［共有データ保存処理：共有データ新規保存、共有データ更新保存（鍵更新あり）］
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図３から図６を参照して説明する。図３は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト（ローカルデータリスト）のデータフォーマット（以下、メンバ端末フォーマットと記す。）を示した図である。図示する例では、メンバ端末フォーマットはデータＩＤと、データラベルと、最終参照時刻と、暗号化データとの４つの属性を持つ。データＩＤは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【００５２】
図４は、本実施形態において、ストレージサーバ２の記憶部が記憶するデータのデータフォーマット（以下、ストレージサーバフォーマットと記す。）を示した図である。図示する例では、ストレージサーバフォーマットはデータＩＤと、ユーザＩＤと、データラベルと、最終更新時刻と、暗号化データと、鍵復元用情報との６つの属性を持つ。データＩＤと、データラベルと、暗号化データの３つの属性は、メンバ端末フォーマットの属性と同様である。ユーザＩＤは、暗号化データを生成したグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【００５３】
図５は、本実施形態において、ストレージサーバ２の記憶部が記憶するデータの例を示した図である。図示する例では、ストレージサーバ２の記憶部はデータレコード１からデータレコードＸまでのＸ個のデータを記憶する。各データレコードのフォーマットは図４と同様である。
【００５４】
図６は、本実施形態において、グループメンバ端末１−１がストレージサーバ２にグループ共有データを保存する処理動作を示したシーケンス図である。
【００５５】
（ステップＷ１−１）グループメンバ端末１−１を使用するユーザは、グループメンバ端末１−１を操作して、グループメンバ端末１−１に共有データＭＧを用意する。また、ＭＧのファイル名をデータラベルＬ１とする。
（ステップＷ１−２）鍵カプセル化技術を用いて、グループメンバ端末１−１はｐｋＧから暗号鍵ＫＭと鍵復元用情報Ｃ０，１とを生成する。
【００５６】
（ステップＷ１−３）共通鍵暗号により、グループメンバ端末１−１は、ＫＭを用いて共有データＭＧを暗号化する。暗号化後の共有データ（暗号化データ）はＥＫＭ（ＭＧ）とする。暗号化完了後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＭＧとＫＭとを削除する。
（ステップＷ１−４）グループメンバ端末１−１は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【００５７】
（ステップＷ１−５）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、Ｌ１と、ＵＩＤと、ＰＮとをストレージサーバ２に送付する。
（ステップＷ１−６）ストレージサーバ２は、グループメンバ端末１−１より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２はグループメンバ端末１−１より受信した当該データの組にデータＩＤ（Ｄ１）を割り当てる。また、ストレージサーバ２はＩＤ１と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、Ｌ１と、Ｄ１と、最終更新時刻（ＴＳ，１）とをストレージサーバフォーマットに従ってストレージサーバ２の記憶部に格納する。最新更新時刻（ＴＳ，１）は、当該格納時の時刻である。
【００５８】
（ステップＷ１−７）ステップＷ１−６での格納処理が終了したことをグループメンバ端末１−１に通知するために、ストレージサーバ２はＡＣＫ（アック、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージをユーザ端末１に送信する。ＡＣＫメッセージにはＤ１とＴＳ，１とが含まれる。
（ステップＷ１−８）ストレージサーバ２からＡＣＫメッセージを受信した後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＣ０，１を削除する。また、グループメンバ端末１−１はローカルデータリストに当該データ用のエントリを新規に作成し、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ１，１（＝ＴＳ，１）を最終参照時刻として、ＥＫＭ（ＭＧ）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【００５９】
［共有データ保存処理：共有データ更新保存（鍵更新なし）］
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について図７を参照して説明する。鍵の更新がない共有データの更新保存の場合としては、共有データを更新するグループメンバ端末が、以前に自身でストレージサーバに登録した共有データを更新する場合などがある。この場合は、以前に共有データを保存した際に使用した暗号鍵ＫＭを用いて、再度更新対象の共有データの暗号化を行うことができるため、鍵生成手順を省略する。
【００６０】
図７は、本実施形態において、暗号鍵を更新しないで、グループメンバ端末１−１がストレージサーバ２にグループ共有データを更新保存する処理動作を示したシーケンス図である。
【００６１】
（ステップＷａ１−１）グループメンバ端末１−１を使用するユーザは、グループメンバ端末１−１を操作して、グループメンバ端末１−１に共有データＭＧ’を用意する。また、ＭＧ’のファイル名をデータラベルＬ１’とする。
（ステップＷａ１−２）共通鍵暗号により、グループメンバ端末１−１は、ＫＭを用いて共有データＭＧ’を暗号化する。暗号化後の共有データ（暗号化データ）はＥＫＭ（ＭＧ’）とする。暗号化完了後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＭＧ’を削除する。
（ステップＷａ１−３）グループメンバ端末１−１は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【００６２】
（ステップＷ１ａ−４）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、ＥＫＭ（ＭＧ’）と、Ｌ１’と、データＩＤ（Ｄ１）と、ＵＩＤと、ＰＮとをストレージサーバ２に送付する。
（ステップＷ１ａ−５）ストレージサーバ２は、グループメンバ端末１−１より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２はＩＤ１と、ＥＫＭ（ＭＧ’）と、Ｌ１’と、最終更新時刻（ＴＳ，１’）とをストレージサーバフォーマットのフォーマットに従って、更新前のデータを記憶するストレージサーバ２の記憶部に上書きする。最新更新時刻（ＴＳ，１’）は、当該上書き時の時刻である。
【００６３】
（ステップＷ１ａ−６）ステップＷ１ａ−５での格納処理が終了したことをグループメンバ端末１−１に通知するために、ストレージサーバ２はＡＣＫメッセージをユーザ端末１に送信する。ＡＣＫメッセージにはＴＳ，１’が含まれる。
（ステップＷ１ａ−７）ストレージサーバ２からＡＣＫメッセージを受信した後、グループメンバ端末１−１はローカルデータリストの当該データ用のエントリに、Ｄ１をデータＩＤとして、Ｌ１’をデータラベルとして、Ｔ１，１’（＝ＴＳ，１’）を最終参照時刻として、ＥＫＭ（ＭＧ’）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ’）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【００６４】
［共有データ参照処理］
次に、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が参照する際の処理について図８、図９を参照して説明する。
【００６５】
図８は、本実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。データリストは、ストレージサーバ２の記憶部が記憶するデータのデータラベルを記憶する。また、データリストはデータラベルと当該データラベルの最終更新時刻とを関連付けて記憶する。図示する例では、ストレージサーバ２が記憶するデータのデータラベルは、データラベル１（Ｄ１）、データラベル２（Ｄ２）、・・・、データラベルＸ（ＤＸ）である。また、データラベル１（Ｄ１）の最終更新時刻は、最終更新時刻１（Ｌ１）、データラベル２（Ｄ２）の最終更新時刻は、最終更新時刻２（Ｌ２）、・・・、データラベルＸ（ＤＸ）の最終更新時刻は、最終更新時刻Ｘ（ＬＸ）である。
【００６６】
図９は、本実施形態において、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が参照する際の処理動作を示したシーケンス図である。
【００６７】
（ステップＲ１−０）ストレージサーバ２はグループメンバ端末１−１とグループメンバ端末１−２とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【００６８】
（ステップＲ１−１）グループメンバ端末１−２は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末１−２は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【００６９】
（ステップＲ１−２）グループメンバ端末１−２は、参照するデータＭＧのデータＩＤ（Ｄ１）と、グループメンバ端末１−２が持つＩＤ（ＩＤ２）と、ＵＩＤと、ＰＮとをデータ要求メッセージとしてストレージサーバ２に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻（Ｔ２，１）をデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データＥＫＭ（ＭＧ）の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末１−２はデータＭＧを初めて参照するため、要求メッセージ内に最終参照時刻（Ｔ２，１）は含まれていない。
【００７０】
（ステップＲ１−３）ストレージサーバ２は、グループメンバ端末１−２より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、Ｃ０，１と、ｓｋ１，Ｓと、ｓｋ２とを用いて、ストレージサーバ２は鍵復元用情報Ｃ１＝Ｃ０，１Ｗ１と、Ｃ２＝Ｃ０，１とを生成する。なお、Ｗ１は以下の（１０）式を満たす。
【００７１】
【数１０】
0005103095.tif 000011
【００７２】
（ステップＲ１−４）ストレージサーバ２は、ＥＫＭ（ＭＧ）と、最終更新時刻（ＴＳ，１）と、Ｃ１と、Ｃ２とをグループメンバ端末１−２に送付する。なお、ステップＲ１−０で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はＥＫＭ（ＭＧ）を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻（Ｔ２，１）と、ストレージサーバ２内に格納されている最終更新時刻（ＴＳ，１）とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【００７３】
（ステップＲ１−５）グループメンバ端末１−２は、ｓｋ１，２と、Ｃ１と、Ｃ２とを用いてＫＭを復元する。また、最終参照時刻（Ｔ２，１）をＴＳ，１に更新する。なお、ＫＭの復元方法は以下の通りである。まず、以下の（１１）式よりｒを復元する。続いて以下の（１２）式よりＫＭを復元する。
【００７４】
【数１１】
0005103095.tif 000012
【００７５】
【数１２】
0005103095.tif 000013
【００７６】
（ステップＲ１−６）グループメンバ端末１−２は、ＫＭを用いてＥＫＭ（ＭＧ）を復号し、ＭＧを取得する。
（ステップＲ１−７）ＭＧの参照後、グループメンバ端末１−２はＫＭと、ＭＧと、Ｃ１と、Ｃ２とを削除する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【００７７】
［環境移行処理］
次に、グループメンバ端末１−２が紛失され、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する手順について図１０を参照して説明する。環境移行とは、あるグループメンバ端末が有している共有データの暗号化・復号化を実行可能な環境を、別のグループメンバ端末に移行することを言う。本実施形態では、移行元の端末装置はグループメンバ端末１−２であり、移行先の端末装置はグループメンバ端末１−３である。図１０は、本実施形態において、グループメンバ端末１−２が有している共有データの暗号化・復号化を実行可能な環境を、グループメンバ端末１−３に移行する処理動作を示したシーケンス図である。
【００７８】
（ステップＲＥ１−１）グループメンバ端末１−３は、グループメンバ端末１−２の紛失と、グループメンバ端末１−２の環境をグループメンバ端末１−３へ移行する要求とを含む端末装置移行情報を認証局３に通知する。端末装置移行情報には、端末装置の環境を移行する元の端末装置としてグループメンバ端末１−２の端末ＩＤと、端末装置の環境を移行する先の端末装置としてグループメンバ端末１−３の端末ＩＤとが含まれる。なお、通知方法はオンラインで通知しても良く、オフラインで通知しても良い。
【００７９】
（ステップＲＥ１−２）認証局３は、グループメンバ端末１−３より端末移行情報を受信する。続いて認証局３は、端末環境情報に含まれていないグループメンバ端末１−１と、ストレージサーバに対して、既存の分割鍵を更新する分割鍵更新用シェア（分割鍵更新情報）ＳＲ，１とＳＲ，Ｓとを生成し、グループメンバ端末１−１に分割鍵更新用シェアＳＲ，１を送付し、ストレージサーバ２に分割鍵更新用シェアＳＲ，Ｓを送付する。なお、ＳＲ，ｉ（ｉ＝１，…，Ｎ）は以下の（１３）式を満たす。ＳＲ，Ｓは以下の（１４）式を満たす。ここで、ｆｋ（ｘ）＝ａｋｘ（ａｋは乱数）、ｆｋ（ｘ）は有限体ＧＦ（λ（ｎ））上の多項式である。
【００８０】
【数１３】
0005103095.tif 000014
【００８１】
【数１４】
0005103095.tif 000015
【００８２】
（ステップＲＥ１−３）グループメンバ端末１−１は認証局３より分割鍵更新用シェアＳＲ，１を受信し、受信したＳＲ，１を用いて既存の分割鍵ｓｋ１，１を更新し、ｓｋ’１，１を生成する。生成後、グループメンバ端末１−１はＳＲ，１とｓｋ１，１とを削除する。ストレージサーバ２は認証局３より分割鍵更新用シェアＳＲ，Ｓを受信し、受信したＳＲ，Ｓを用いて既存の分割鍵ｓｋ１，Ｓを更新し、ｓｋ’１，Ｓを生成する。生成後、ストレージサーバ２はＳＲ，Ｓとｓｋ１，Ｓとを削除する。なお、ｓｋ’１，ｉ（ｉ＝１，…，Ｎ）は以下の（１５）式を用いて生成する。ｓｋ’１，Ｓは以下の（１６）式を用いて生成する。
【００８３】
【数１５】
0005103095.tif 000016
【００８４】
【数１６】
0005103095.tif 000017
【００８５】
（ステップＲＥ１−４）認証局３は、グループメンバ端末１−３用の秘密鍵シェアｓｋ’１，３を生成する。なお、生成は上記（１５）式を用いて行う。
（ステップＲＥ１−５）認証局３は、グループメンバ端末１−３用の秘密鍵シェアｓｋ’１，３と公開鍵ｐｋＧとをグループメンバ端末１−３に送付する。
（ステップＲＥ１−６）認証局３は、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行したことをストレージサーバ２に通知する。
【００８６】
以上より、暗号化された共有データの復号化には、必ずストレージサーバが保持する分散鍵ｓｋ２が必要であるため、グループメンバの所有する端末装置が悪意の第三者に使用され、当該端末装置が保有している鍵が漏洩したとしても、他のグループメンバが暗号化した共有データを第三者によって復号化される可能性を軽減することが可能である。また、従来、初めて共有データを公開する際に必要であった、共有データの暗号化に使用した鍵をグループメンバが所有する公開鍵で暗号化する、すなわち、グループメンバの人数分鍵暗号化処理を行う必要がないため、初めて共有データを公開する際の処理の負荷の軽減が可能である。また、従来、共有データの暗号化に使用する暗号鍵を更新した後に初めて共有データを公開する場合に必要であった、グループメンバの人数分の鍵暗号化処理を行う必要がないため、共有データの暗号化に使用する暗号鍵の更新後に初めて共有データを公開する際の処理の負荷の軽減が可能である。
【００８７】
（第２の実施形態）
次に、本発明の第２の実施形態について図面を参照して説明する。本実施形態では、第１の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する。具体的には、グループメンバ端末は、新規に共有データをストレージサーバに登録する際、または初めて共有データを参照する際に、当該データの暗号鍵を秘密分散法でＳ１とＳ２との２つのシェアに分散する。なお、暗号鍵は分散した２つのシェアＳ１とＳ２のみを用いて生成可能である。続いて、グループメンバ端末はシェアＳ１をストレージサーバに送付し、シェアＳ２を自端末内に保持する。また、本実施形態によるデータ共有システムは第１の実施形態のデータ共有システムと同様である。
【００８８】
［事前準備］
次に、本実施形態での事前準備について説明する。本実施形態での事前準備の処理動作は第１の実施形態の事前準備の処理動作と同様に行う。
【００８９】
［共有データ保存処理：共有データ新規保存、共有データ更新保存（鍵更新あり）］
次に、鍵の更新がある場合での本実施形態での共有データの新規保存または共有データの更新保存の処理について図１１から図１３を参照して説明する。図１１は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト（ローカルデータリスト）のデータフォーマット（以下、メンバ端末フォーマットと記す。）を示した図である。図示する例では、メンバ端末フォーマットはデータＩＤと、データラベルと、最終参照時刻と、最終鍵参照時刻と、暗号鍵シェアと、暗号化データとの６つの属性を持つ。データＩＤは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。最終鍵参照時刻は、暗号鍵を最後に参照した時刻である。暗号鍵シェアは、グループメンバ端末が暗号鍵を秘密分散法で分散して作成したシェアである。暗号化データは、共有データを暗号化したデータである。
【００９０】
図１２は、本実施形態において、ストレージサーバ２の記憶部が記憶するデータのデータフォーマット（以下、ストレージサーバフォーマットと記す。）を示した図である。図示する例では、ストレージサーバフォーマットはデータＩＤと、データラベルと、最終更新時刻と、最終鍵更新時刻と、暗号化データと、鍵復元用情報と、ユーザＩＤと、暗号鍵シェアとの８つの属性を持つ。データＩＤと、データラベルと、暗号化データと、暗号鍵シェアとの４つの属性は、メンバ端末フォーマットの属性と同様である。ユーザＩＤはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。最終鍵更新時刻は暗号鍵を最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【００９１】
図１３は、本実施形態において、グループメンバ端末１−１がストレージサーバ２にグループ共有データを保存する処理動作を示したシーケンス図である。
【００９２】
（ステップＷ２−１）グループメンバ端末１−１を使用するユーザは、グループメンバ端末１−１を操作して、グループメンバ端末１−１に共有データＭＧを用意する。また、ＭＧのファイル名をデータラベルＬ１とする。
（ステップＷ２−２）鍵カプセル化技術を用いて、グループメンバ端末１−１はｐｋＧから暗号鍵ＫＭと鍵復号用情報Ｃ０，１とを生成する。
【００９３】
（ステップＷ２−３）共通鍵暗号により、グループメンバ端末１−１は、ＫＭを用いて共有データＭＧを暗号化する。暗号化後の共有データ（暗号化データ）はＥＫＭ（ＭＧ）とする。暗号化完了後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＭＧを削除する。
（ステップＷ２−４）グループメンバ端末１−１は、（２，２）閾値分散法を用いてＫＭに対応するシェアＳ１，１とシェアＳ１，２とを作成する。なお、ＫＭは分散した２つのシェアＳ１，１とシェアＳ１，２のみを用いて生成可能である。シェアを作成後、ＫＭを削除する。なお、シェアＳｉ，１は以下の（１７）式を用いて生成する。ここで、Ｘｉ，１＝ｈ（ＩＤｉ）（ｈはハッシュ関数）、ｕ１（ｘ）＝ｃ１ｘ＋ＫＭ、ｕ１（ｘ）は有限体ＧＦ（２ｂ−１）上の多項式（ｂは暗号鍵の鍵長）である。
【００９４】
【数１７】
0005103095.tif 000018
【００９５】
また、シェアＳｉ，２は以下の（１８）式を用いて生成する。ここで、Ｘｉ，２＝ｈ（ＩＤｉ‖ｒ１）（ｒ１は乱数、ｈはハッシュ関数）である。
【００９６】
【数１８】
0005103095.tif 000019
【００９７】
（ステップＷ２−５）グループメンバ端末１−１は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【００９８】
（ステップＷ２−６）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、Ｓ１，１と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、Ｌ１と、ＵＩＤと、ＰＮとをストレージサーバ２に送付する。
（ステップＷ２−７）ストレージサーバ２は、グループメンバ端末１−１より送信されたＵＩＤとＰＮとの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は当該データにデータＩＤ（Ｄ１）を割り当てる。また、ストレージサーバ２はＩＤ１と、Ｌ１と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、Ｓ１，１と、Ｄ１と、最終更新時刻（ＴＳ，１）と、最終鍵更新時刻（ＴＫＳ，１）とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ２の記憶部に格納する。最新更新時刻（ＴＳ，１）および最終鍵更新時刻（ＴＫＳ，１）は、当該格納時の時刻である。
【００９９】
（ステップＷ２−８）ステップＷ２−７での格納処理が終了したことをグループメンバ端末１−１に通知するために、ストレージサーバ２はＡＣＫ（アック、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージをユーザ端末１に送信する。ＡＣＫメッセージにはＤ１とＴＳ，１とＴＫＳ，１とが含まれる。
（ステップＷ２−９）ストレージサーバ２からＡＣＫメッセージを受信した後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＣ０，１とＳ１，１とを削除する。また、グループメンバ端末１−１はローカルデータリストに当該データ用のエントリを新規に作成し、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ１，１（＝ＴＳ，１）を最終参照時刻として、ＴＫ１，１（＝ＴＫＳ，１）を最終鍵参照時刻として、Ｓ１，２を暗号鍵シェアとして、ＥＫＭ（ＭＧ）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１００】
［共有データ保存処理：共有データ更新保存（鍵更新なし）］
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第１の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【０１０１】
［共有データ参照処理］
次に、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が参照する際の処理について図１４を参照して説明する。図１４は、本実施形態において、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が参照する際の処理動作を示したシーケンス図である。
【０１０２】
（ステップＲ２−０）ストレージサーバ２はグループメンバ端末１−１とグループメンバ端末１−２とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【０１０３】
（ステップＲ２−１）グループメンバ端末１−２は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末１−２は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【０１０４】
（ステップＲ２−２）グループメンバ端末１−２は、参照するデータＭＧのデータＩＤ（Ｄ１）と、グループメンバ端末１−２が持つＩＤ（ＩＤ２）と、ＵＩＤと、ＰＮとをデータ要求メッセージとしてストレージサーバ２に送付する。当該データを過去に参照したことがある場合は、当該データの最終参照時刻（Ｔ２，１）と、最終鍵参照時刻（ＴＫ２，１）とをデータ要求メッセージに追加する。なお、グループメンバ端末内の暗号化データＥＫＭ（ＭＧ）の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。図示する例では、グループメンバ端末１−２はデータＭＧを初めて参照するため、要求メッセージ内に最終参照時刻（Ｔ２，１）と、最終鍵参照時刻（ＴＫ２，１）とは含まれていない。
【０１０５】
（ステップＲ２−３）ストレージサーバ２は、グループメンバ端末１−２より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は、グループメンバ端末１−２が当該データを参照した後に自身が保持している当該データ用の暗号鍵が更新されたか否か判断する。ここで、当該データ用の暗号鍵の更新の有無の判定方法として、例えば、グループメンバ端末より送られた暗号鍵の最終鍵参照時刻（ＴＫ２，１）と、ストレージサーバ２内に格納されている当該データ用の暗号鍵の最終更新時刻（ＴＳ，１）とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【０１０６】
（ステップＲ２−４）共有データを新規に参照する場合、もしくは鍵の更新がある共有データを参照する場合、グループメンバ端末は、鍵を作成して共有データを参照する。参照方法は後述する。
（ステップＲ２−５）グループメンバ端末は、鍵の更新がない共有データを参照する。参照方法は後述する。
【０１０７】
次に、ステップＲ２−４で、グループメンバ端末が鍵を作成して共有データを参照する際の手順について図１５を参照して説明する。図１５はグループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【０１０８】
（ステップＲ２−４ａ）ストレージサーバ２は、Ｃ０，１と、ｓｋ１，Ｓと、ｓｋ２とを用いて鍵復元用情報Ｃ１＝Ｃ０，１Ｗ１と、Ｃ２＝Ｃ０，１Ｗ２とを生成する。なお、Ｗ１は上記の（１０）式を満たす。また、Ｗ２は上記の（１１）式を満たす。
【０１０９】
（ステップＲ２−４ｂ）ストレージサーバ２は、Ｄ１と、ＥＫＭ（ＭＧ）と、最終更新時刻（ＴＳ，１）と、最終鍵更新時刻（ＴＫＳ，１）と、Ｃ１と、Ｃ２とをグループメンバ端末１−２に送付する。
（ステップＲ２−４ｃ）グループメンバ端末１−２は、ｓｋ１，２と、Ｃ１と、Ｃ２とを用いてＫＭを復元する。なお、ＫＭの復元方法は以下の通りである。まず、上記の（１３）式よりｒを復元する。続いて上記の（１４）式よりＫＭを復元する。
【０１１０】
（ステップＲ２−４ｄ）グループメンバ端末１−２は、ＫＭを用いてＥＫＭ（ＭＧ）を復号し、ＭＧを取得する。
（ステップＲ２−４ｅ）グループメンバ端末１−２は、（２，２）閾値分散法を用いてＫＭに対応するシェアＳ２，１とシェアＳ２，２とを作成する。
（ステップＲ２−４ｆ）グループメンバ端末１−２は、Ｄ１と、ＩＤ２と、Ｓ２，１とをストレージサーバ２に送付する。また、ＭＧの参照後、グループメンバ端末１−２はＫＭと、ＭＧと、Ｃ１と、Ｃ２と、Ｓ２，１とを削除する。また、ローカルデータリストに当該データ用のエントリに、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ’２，１（＝ＴＳ，１）を最終参照時刻として、ＴＫ’２，１（＝ＴＫＳ，１）を最終鍵参照時刻として、Ｓ２，２を暗号鍵シェアとして、ＥＫＭ（ＭＧ）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１１１】
次に、ステップＲ２−５で、グループメンバ端末が鍵の更新がない共有データを参照する際の手順について図１６を参照して説明する。図１６はグループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【０１１２】
（ステップＲ２−５ａ）ストレージサーバ２は、暗号鍵シェアＳ２，１と、ＥＫＭ（ＭＧ）と、最終更新時刻（ＴＳ，１）とをグループメンバ端末１−２に送付する。なお、ステップＲ２−１で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はＥＫＭ（ＭＧ）を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末より送られた最終参照時刻（Ｔ２，１）と、ストレージサーバ２内に格納されている最終更新時刻（ＴＳ，１）とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【０１１３】
（ステップＲ２−５ｂ）グループメンバ端末１−２は、Ｓ２，２と、Ｓ２，１とを用いてＫＭを復元する。
（ステップＲ２−５ｃ）グループメンバ端末１−２は、ＫＭを用いてＥＫＭ（ＭＧ）を復号し、ＭＧを取得する。
（ステップＲ２−５ｄ）ＭＧの参照後、グループメンバ端末１−２はＫＭと、ＭＧと、Ｓ２，１とを削除する。また、グループメンバ端末１−２は、ローカルデータリストの当該データ用のエントリのＴ’２，１の値をＴＳ，１の値として上書きする。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１１４】
［環境移行処理］
次に、グループメンバ端末１−２が紛失され、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する手順について説明する。本実施形態での移行手順は、第１の実施形態での移行手順と同様に行う。
【０１１５】
以上、第２の実施形態について説明したとおり、本実施形態では第１の実施形態の鍵カプセル化技術による鍵交換処理に加え、秘密分散による鍵交換処理を追加する形態とした。よって、グループメンバ端末が同じ暗号鍵を用いた暗号化データを参照する際に、鍵復元情報C1およびC2をストレージサーバより取得する必要がなく、シェアS1だけを送付すればよい。そのため、ユーザ端末とストレージサーバ間のメッセージサイズを削減できる。例えば、公開鍵暗号の鍵長を１０２４ビット、共通鍵暗号の鍵長を２５６ビットにしたとすると、１回のデータ参照あたり１７９２ビットを削減できる。また、ユーザ端末側でべき乗演算および乗算を行う必要もなくなるため、ユーザ端末の負荷が軽減される。
【０１１６】
（第３の実施形態）
次に、本発明の第３の実施形態について図面を参照して説明する。本実施形態では、暗号鍵を生成する基の情報であるマスタシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスタシェアを用いて暗号鍵と暗号鍵シェアを生成する。なお、暗号鍵は暗号鍵シェアとマスタシェアのみを用いて生成可能である。また、マスタシェアを秘密分散法で分割シェアＳＭＳ，１（第１の分割シェア）と分割シェアＳＭＳ，２（第２の分割シェア）との２つの分割シェアに分散する。なお、マスタシェアは分散した２つの分割シェアＳＭＳ，１とＳＭＳ，２のみを用いて生成可能である。また、本実施形態によるデータ共有システムは第１の実施形態のデータ共有システムと同様である。
【０１１７】
［事前準備］
次に、本実施形態での事前準備について説明する。
（ステップＰ３−１）認証局３はグループ用公開鍵と秘密鍵のペア（ｐｋＧ、ｓｋＧ）を生成する。以下、ＲＳＡ暗号の公開鍵をｐｋＧ、秘密鍵をｓｋＧとして説明する。
（ステップＰ３−２）認証局３は分散鍵ｓｋ１をランダムに生成する。続いて、認証局３は分散鍵ｓｋ１と、ステップＰ１−１で生成したｓｋＧとを用いて、前記（７）式を満たす分散鍵ｓｋ２を求める。
【０１１８】
（ステップＰ３−３）認証局３は、（２，Ｎ＋１）閾値秘密分散法を用いて、分散鍵ｓｋ１をＮ＋１個に分割し、ｓｋ１，１、ｓｋ１，２、・・・、ｓｋ１，Ｎ、ｓｋ１，Ｓを生成する。ここでＮはデータ共有システムに含まれるグループメンバ端末数であり、またＳ＝Ｎ＋１とする。続いて、認証局３は、データ共有システムに含まれる各グループメンバ端末にグループ用公開鍵ｐｋＧと、ｓｋ１，ｉ（ｉ＝１，・・・，Ｎ）とを配布し、ストレージサーバ２にｓｋ１，Ｓとｓｋ２とを配布する。
（ステップＰ３−４）各グループメンバ端末はマスタシェアの初期設定を行い、自端末内にマスタシェア（ＭＳｉ）を保持する。マスタシェアの初期設定方法は後述する。
【０１１９】
次に、ステップＰ３−４で、グループメンバ端末がマスタシェアの初期設定を行う手順について図１７を参照して説明する。図１７はグループメンバ端末がマスタシェアの初期設定を行う処理動作を示したシーケンス図である。
【０１２０】
（ステップＰ３−４ａ）グループメンバ端末１−１はマスタシェアＭＳ１を生成する。なお、マスタシェアＭＳｉは以下の（１９）式より生成される。ここで、ＸＭＳ，ｉ＝ｈ（ＩＤｉ）（ｈはハッシュ関数、ｉ＝１，…，Ｎ＋１）、ｇ（ｘ）は有限体ＧＦ（２ｂ−１）上の多項式（ｂは暗号鍵の鍵長）である。
【０１２１】
【数１９】
0005103095.tif 000020
【０１２２】
（ステップＰ３−４ｂ）グループメンバ端末１−１は、（２，２）閾値分散法を用いてマスタシェアＭＳ１に対応する分割シェアＳＭＳ，１，１と分割シェアＳＭＳ，１，２とを生成する。なお、マスタシェアＭＳ１は分割シェアＳＭＳ，１，１と分割シェアＳＭＳ，１，２のみを用いて生成可能である。また、分割シェアＳＭＳ，ｉ，１は以下の（２０）式を用いて生成する。
【０１２３】
【数２０】
0005103095.tif 000021
【０１２４】
また、分割シェアＳＭＳ，ｉ，２は以下の（２１）式を用いて生成する。ここで、ＸＭＳ，１，２＝ｈ（ＩＤｉ‖ｒ３）（ｒ３は乱数、ｈはハッシュ関数、ｉ＝１，…，Ｎ＋１）である。
【０１２５】
【数２１】
0005103095.tif 000022
【０１２６】
（ステップＰ３−４ｃ）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、ＳＭＳ，１，２とをストレージサーバ２に送付する。
（ステップＰ３−４ｄ）グループメンバ端末１−１は、ＳＭＳ，１，１を外部デバイスに送付する。外部デバイスは例えば、ＵＳＢメモリなどの記憶装置である。
（ステップＰ３−４ｅ）グループメンバ端末１−１は、ＳＭＳ，１，１とＳＭＳ，１，２とを削除する。
【０１２７】
［共有データ保存処理：共有データ新規保存］
次に、共有データの新規保存の処理について図１８から図２０を参照して説明する。図１８は、本実施形態において、グループメンバ端末の記憶部が記憶するデータのリスト（ローカルデータリスト）のデータフォーマット（以下、メンバ端末フォーマットと記す。）を示した図である。図示する例では、メンバ端末フォーマットはデータＩＤと、データラベルと、最終参照時刻と、暗号化データとの４つの属性を持つ。データＩＤは、データ共有システム内でデータを一意に識別するための識別子である。データラベルは、例えばファイル名など、データの内容や形態を表す名称である。最終参照時刻は、共有データを最後に参照した時刻である。暗号化データは、共有データを暗号化したデータである。
【０１２８】
図１９は、本実施形態において、ストレージサーバ２の記憶部が記憶するデータのデータフォーマット（以下、ストレージサーバフォーマットと記す。）を示した図である。図示する例では、ストレージサーバフォーマットはデータＩＤと、データラベルと、最終更新時刻と、暗号化データと、鍵復元用情報と、ユーザＩＤと、暗号鍵シェアとの７つの属性を持つ。データＩＤと、データラベルと、暗号化データと、暗号鍵シェアとの４つの属性は、メンバ端末フォーマットの属性と同様である。ユーザＩＤはグループメンバ端末を一意に識別するための識別子である。最終更新時刻は共有データを最後に更新した時刻である。鍵復元用情報は、暗号化データを復号化する際に使用する鍵を作成する際に使用する情報である。
【０１２９】
図２０は、本実施形態において、グループメンバ端末１−１がストレージサーバ２にグループ共有データを保存する処理動作を示したシーケンス図である。
【０１３０】
（ステップＷ３−１）グループメンバ端末１−１を使用するユーザは、グループメンバ端末１−１を操作して、グループメンバ端末１−１に共有データＭＧを用意する。また、ＭＧのファイル名をデータラベルＬ１とする。
（ステップＷ３−２）鍵カプセル化技術を用いて、グループメンバ端末１−１はｐｋＧから暗号鍵ＫＭと鍵復号用情報Ｃ０，１とを生成する。
【０１３１】
（ステップＷ３−３）共通鍵暗号により、グループメンバ端末１−１は、ＫＭを用いて共有データＭＧを暗号化する。暗号化後の共有データ（暗号化データ）はＥＫＭ（ＭＧ）とする。暗号化完了後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＭＧを削除する。
（ステップＷ３−４）グループメンバ端末１−１は、マスタシェアＭＳ１を用いてＫＭに対応する暗号鍵シェアＳＫＭ，１を生成する。暗号鍵シェアＳＫＭ，１は以下の（２２）式を用いて生成する。ここで、ＸＫＭ，１＝ｈ（ＩＤ１‖ｒ２）（ｒ２は乱数、ｈはハッシュ関数）である。なお、ＫＭはマスタシェアＭＳ１と暗号鍵シェアＳＫＭ，１のみを用いて生成可能である。
【０１３２】
【数２２】
0005103095.tif 000023
【０１３３】
（ステップＷ３−５）グループメンバ端末１−１は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【０１３４】
（ステップＷ３−６）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、Ｌ１と、ＳＫＭ，１と、ＵＩＤと、ＰＮとをストレージサーバ２に送付する。
（ステップＷ３−７）ストレージサーバ２は、グループメンバ端末１−１より送信されたＵＩＤとＰＮとの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は当該データにデータＩＤ（Ｄ１）を割り当てる。また、ストレージサーバ２はＩＤ１と、Ｌ１と、ＥＫＭ（ＭＧ）と、Ｃ０，１と、ＳＫＭ，１と、Ｄ１と、最終更新時刻（ＴＳ，１）とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ２の記憶部に格納する。最新更新時刻（ＴＳ，１）は、当該格納時の時刻である。
【０１３５】
（ステップＷ３−８）ステップＷ３−７での格納処理が終了したことをグループメンバ端末１−１に通知するために、ストレージサーバ２はＡＣＫ（アック、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージをユーザ端末１に送信する。ＡＣＫメッセージにはＤ１とＴＳ，１とＴＫＳ，１とが含まれる。
（ステップＷ３−９）ストレージサーバ２からＡＣＫメッセージを受信した後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＣ０，１とＳＫＭ，１とを削除する。また、グループメンバ端末１−１はローカルデータリストに当該データ用のエントリを新規に作成し、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ１，１（＝ＴＳ，１）を最終参照時刻として、ＥＫＭ（ＭＧ）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１３６】
［共有データ保存処理：共有データ更新保存（鍵更新あり）］
次に、鍵の更新がある場合での本実施形態での更新保存の処理について図２１を参照して説明する。図２１は、本実施形態において、グループメンバ端末１−１がストレージサーバ２にグループ共有データを保存する処理動作を示したシーケンス図である。
【０１３７】
（ステップＷ３ａ−１）グループメンバ端末１−１を使用するユーザは、グループメンバ端末１−１を操作して、グループメンバ端末１−１に共有データＭＧ’を用意する。また、ＭＧ’のファイル名をデータラベルＬ１とする。
（ステップＷ３ａ−２）鍵カプセル化技術を用いて、グループメンバ端末１−１はｐｋＧから暗号鍵ＫＭ’と鍵復号用情報Ｃ０，１’とを生成する。
【０１３８】
（ステップＷ３ａ−３）共通鍵暗号により、グループメンバ端末１−１は、ＫＭ’を用いて共有データＭＧ’を暗号化する。暗号化後の共有データ（暗号化データ）はＥＫＭ’（ＭＧ’）とする。暗号化完了後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＭＧ’を削除する。
（ステップＷ３ａ−４）グループメンバ端末１−１は、マスタシェアＭＳ１を用いてＫＭ’に対応する暗号鍵シェアＳＫＭ，１’を生成する。暗号鍵シェアＳＫＭ，１’は上記の（２２）式を用いて生成する。
【０１３９】
（ステップＷ３ａ−５）グループメンバ端末１−１は、グループメンバ端末１−１は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【０１４０】
（ステップＷ３ａ−６）グループメンバ端末１−１は、グループメンバ端末１−１が持つＩＤ（ＩＤ１）と、ＥＫＭ’（ＭＧ’）と、Ｃ０，１’と、Ｌ１と、ＳＫＭ，１’と、ＵＩＤと、ＰＮとをストレージサーバ２に送付する。
（ステップＷ３ａ−７）ストレージサーバ２は、グループメンバ端末１−１より送信されたＵＩＤとＰＮとの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は当該データにデータＩＤ（Ｄ１）を割り当てる。また、ストレージサーバ２はＩＤ１と、Ｌ１と、ＥＫＭ’（ＭＧ’）と、Ｃ０，１’と、ＳＫＭ，１’と、Ｄ１と、最終更新時刻（ＴＳ，１’）とをストレージサーバフォーマットのフォーマットに従ってストレージサーバ２の記憶部に格納する。最新更新時刻（ＴＳ，１’）は、当該格納時の時刻である。
【０１４１】
（ステップＷ３ａ−８）ステップＷ３ａ−７での格納処理が終了したことをグループメンバ端末１−１に通知するために、ストレージサーバ２はＡＣＫ（アック、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）メッセージをユーザ端末１に送信する。ＡＣＫメッセージにはＤ１とＴＳ，１’とが含まれる。
（ステップＷ３ａ−９）ストレージサーバ２からＡＣＫメッセージを受信した後、グループメンバ端末１−１はグループメンバ端末１−１が記憶するＣ０，１’とＳＫＭ，１’とを削除する。また、グループメンバ端末１−１はローカルデータリストに当該データ用のエントリを新規に作成し、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ１，１’（＝ＴＳ，１’）を最終参照時刻として、ＥＫＭ’（ＭＧ’）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ’（ＭＧ’）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
（ステップＷ３ａ−１０）ストレージサーバ２は、ＳＫＭ，１とＳＫＭ，１’に基づいて、ＭＧに関して他のユーザ（ＩＤｉ）が使用する暗号鍵シェアＳＫＭ，ｉをＳＫＭ，ｉ’に更新する。暗号鍵シェアＳＫＭ，ｉ’は以下の（２３）式を用いて生成する。ここで、ＸＭＳ，ｉ＝ｈ（ＩＤＭＳ，ｉ）は、メンバ端末ｉのマスタシェアＭＳｉのｘ座標、ＸＫＭ，ｉ＝ｈ（ＩＤｉ‖ｒ２）は暗号鍵シェアＳＫＭ，ｉのｘ座標、ｒ２は乱数である（ｉ＝１，…，Ｎ＋１）。
【０１４２】
【数２３】
0005103095.tif 000024
【０１４３】
［共有データ保存処理：共有データ更新保存（鍵更新なし）］
次に、鍵の更新がない場合での本実施形態での共有データの更新保存の処理について説明する。鍵の更新がない場合での本実施形態での共有データの更新保存の処理動作は、第１の実施形態の鍵の更新がない場合での共有データの更新保存の処理動作と同様に行う。
【０１４４】
［共有データ参照処理（新規参照）］
次に、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が初めて参照する際の処理について図２２を参照して説明する。図２２は、本実施形態において、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が初めて参照する際の処理動作を示したシーケンス図である。
【０１４５】
（ステップＲ３−０）ストレージサーバ２はグループメンバ端末１−１とグループメンバ端末１−２とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【０１４６】
（ステップＲ３−１）グループメンバ端末１−２は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末１−２は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【０１４７】
（ステップＲ３−２）グループメンバ端末１−２は、参照するデータＭＧのデータＩＤ（Ｄ１）と、グループメンバ端末１−２が持つＩＤ（ＩＤ２）と、ＵＩＤと、ＰＮとをデータ要求メッセージとしてストレージサーバ２に送付する。
【０１４８】
（ステップＲ３−３）ストレージサーバ２は、グループメンバ端末１−２より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は、Ｃ０，１と、ｓｋ１，Ｓと、ｓｋ２とを用いて鍵復元用情報Ｃ１＝Ｃ０，１Ｗ１と、Ｃ２＝Ｃ０，１Ｗ２とを生成する。なお、Ｗ１は上記（１０）式を満たす。また、Ｗ２は上記（１１）式を満たす。
【０１４９】
（ステップＲ３−４）ストレージサーバ２は、Ｄ１と、ＥＫＭ（ＭＧ）と、最終更新時刻（ＴＳ，１）と、Ｃ１と、Ｃ２とをグループメンバ端末１−２に送付する。
（ステップＲ３−５）グループメンバ端末１−２は、ｓｋ１，２と、Ｃ１と、Ｃ２とを用いてＫＭを復元する。なお、ＫＭの復元方法はステップＲ２−４ｃで復元した方法と同様である。
（ステップＲ３−６）グループメンバ端末１−２は、ＫＭを用いてＥＫＭ（ＭＧ）を復号し、ＭＧを取得する。
（ステップＲ３−７）グループメンバ端末１−２は、マスタシェアＭＳ２を用いてＫＭに対応する暗号化シェアＳＫＭ，２を生成する。
【０１５０】
（ステップＲ３−８）グループメンバ端末１−２は、Ｄ１と、ＩＤ２と、ＳＫＭ，２とをストレージサーバ２に送付する。また、ＭＧの参照後、グループメンバ端末１−２はＫＭと、ＭＧと、Ｃ１と、Ｃ２と、ＳＫＭ，２とを削除する。また、ローカルデータリストの当該データ用のエントリに、Ｄ１をデータＩＤとして、Ｌ１をデータラベルとして、Ｔ２，１（＝ＴＳ，１）を最終参照時刻として、ＥＫＭ（ＭＧ）を暗号化データとして、メンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１５１】
［共有データ参照処理（再参照）］
次に、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が再度参照する際の処理について図２３を参照して説明する。図２３は、本実施形態において、グループメンバ端末１−１がストレージサーバ２に登録した共有データを、グループメンバ端末１−２が再度参照する際の処理動作を示したシーケンス図である。
【０１５２】
（ステップＲ３ａ−０）ストレージサーバ２はグループメンバ端末１−１とグループメンバ端末１−２とにデータリストを送付する。例えば、データリスト送付のタイミングは、データリストの更新がある度に送信しても良い。また、ユーザ端末からデータアクセス要求があった場合のみ送信しても良い。
【０１５３】
（ステップＲ３ａ−１）グループメンバ端末１−２は、ユーザから共有データの参照要求の入力を受け付ける。続いて、グループメンバ端末１−２は、ユーザに対してユーザ認証用情報の入力を促し、ユーザからの認証情報の入力を受け付ける。ユーザ認証用情報は、ユーザＩＤ（ＵＩＤ）と認証情報（ＰＮ）である。認証情報は例えば暗証番号である。
【０１５４】
（ステップＲ３ａ−２）グループメンバ端末１−２は、参照するデータＭＧのデータＩＤ（Ｄ１）と、グループメンバ端末１−２が持つＩＤ（ＩＤ２）と、ＵＩＤと、ＰＮと、当該データの最終参照時刻（Ｔ２，１）とをデータ要求メッセージとしてストレージサーバ２に送付する。なお、グループメンバ端末内の暗号化データＥＫＭ（ＭＧ）の有無を知らせる情報をデータ要求メッセージ内に追加しても良い。
【０１５５】
（ステップＲ３ａ−３）ストレージサーバ２は、グループメンバ端末１−２より送信されたＵＩＤとＰＮの組と、予め記憶しているＵＩＤとＰＮとの組とが一致するか否か照合する。一致した場合、ストレージサーバ２は、暗号鍵シェアＳＫＭ，２と、ＥＫＭ（ＭＧ）と、最終更新時刻（ＴＳ，１）とをグループメンバ端末１−２に送付する。なお、ステップＲ３ａ−２で要求メッセージ内に「グループメンバ端末内に暗号化データ有」を知らせる情報が付加されており、なおかつ当該データの更新がない場合はＥＫＭ（ＭＧ）を送付しない処理としても良い。ここで、当該データの更新の有無の判定方法として、例えば、グループメンバ端末１−ｉより送られた最終参照時刻（Ｔｉ，１）と、ストレージサーバ２内に格納されている最終更新時刻（ＴＳ，１）とを比較し、値が異なっている場合は更新されたと判定する方法がある。
【０１５６】
（ステップＲ３ａ−４）グループメンバ端末１−２は、ＳＫＭ，２と、ＭＳ２とを用いてＫＭを復元する。
（ステップＲ３ａ−５）グループメンバ端末１−２は、ＫＭを用いてＥＫＭ（ＭＧ）を復号し、ＭＧを取得する。
（ステップＲ３ａ−６）ＭＧの参照後、グループメンバ端末１−２はＫＭと、ＭＧと、ＳＫＭ，２とを削除する。また、ローカルデータリストの当該データ用のエントリに、Ｔ２，１（＝ＴＳ，１）を最終参照時刻としてメンバ端末フォーマットに従って格納する。なお、ＥＫＭ（ＭＧ）の削除は行っても行わなくても良く、設定ファイルなどの設定により選択するようにしても良い。
【０１５７】
［環境移行処理］
次に、グループメンバ端末１−２が紛失され、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する手順について図２４を参照して説明する。図２４は、本実施形態において、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する処理動作を示したシーケンス図である。
【０１５８】
（ステップＲＥ３−１）グループメンバ端末１−３は、グループメンバ端末１−２の紛失と、グループメンバ端末１−２の環境をグループメンバ端末１−３へ移行する要求とを認証局３に通知する。また、グループメンバ端末１−３は、ステップＰ３−４ｄで外部デバイスに保管したＳＭＳ，２，１を取得する。
（ステップＲＥ３−２）認証局３は、グループメンバ端末１−１に分割鍵更新用シェアＳＲ，１を送付し、ストレージサーバ２に分割鍵更新用シェアＳＲ，Ｓを送付する。なお、ＳＲ，ｉは上記の（１５）式を満たす。
【０１５９】
（ステップＲＥ３−３）グループメンバ端末１−１はＳＲ，１を用いてｓｋ１，１を更新し、ｓｋ’１，１を生成する。生成後、グループメンバ端末１−１はＳＲ，１とｓｋ１，１とを削除する。ストレージサーバ２はＳＲ，Ｓを用いてｓｋ１，Ｓを更新し、ｓｋ’１，Ｓを生成する。生成後、ストレージサーバ２はＳＲ，Ｓとｓｋ１，Ｓとを削除する。なお、ｓｋ’１，ｉは上記の（１６）式を用いて生成する。
【０１６０】
（ステップＲＥ３−４）認証局３は、グループメンバ端末１−３用の秘密鍵シェアｓｋ’１，３を生成する。なお、生成は上記の（１６）式を用いて行う。
（ステップＲＥ３−５）認証局３は、グループメンバ端末１−３用の秘密鍵シェアｓｋ’１，３と公開鍵ｐｋＧとをグループメンバ端末１−３に送付する。
【０１６１】
（ステップＲＥ３−６）ストレージサーバ２は分割シェアＳ’ＭＳ，２，２を生成し、それをグループメンバ端末１−３へ送付する。分割シェアＳ’ＭＳ，ｉ，２は以下の（２４）式を用いて生成する。ここで、ｇｋ（ｘ）＝ｂｋｘ（ｂｋは乱数）である。
【０１６２】
【数２４】
0005103095.tif 000025
【０１６３】
グループメンバ端末１−３は、Ｓ’ＭＳ，２，２と、ＳＭＳ，２，１とよりＭＳ３を生成する。なお、ＭＳ３は以下の式（２５）を満たす。
【０１６４】
【数２５】
0005103095.tif 000026
【０１６５】
（ステップＲＥ３−７）認証局３は、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行したことをストレージサーバ２に通知する。
【０１６６】
以上、第３の実施形態について説明したとおり、本実施形態では、暗号鍵を生成する基の情報であるマスタシェアと呼ばれる情報をグループメンバ端末内に生成し、生成したマスタシェアを用いて暗号鍵と暗号鍵シェアを生成する形態とした。また、グループメンバ端末が暗号鍵を変更して共有データを更新保存した場合、更新された暗号鍵の情報に基づいて、ストレージサーバはステップＷａ−１０にて、ストレージサーバが記憶する全グループメンバ端末の暗号鍵シェアを更新する。よって、グループメンバ端末が暗号鍵を変更して共有データを更新保存した後に、他のグループメンバ端末が一度参照したデータを再度参照するときには、再度鍵カプセル化技術による鍵復元を行わずに秘密分散法による鍵復元を利用することができる。
【０１６７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【０１６８】
なお、ステップＲ２−３の鍵更新判定には、暗号鍵のハッシュ値ＨＫ＝ｈ（ＫＭ）を用いて判定してもよい。具体的には、グループメンバ端末は、データ保存処理時にハッシュ値を生成し、ストレージサーバ２に送信する。その後、データ参照処理時において、グループメンバ端末は、ステップＲ２−２で暗号鍵のハッシュ値をストレージサーバ２に送付する。ストレージサーバ２はデータ保存処理時の暗号鍵のハッシュ値と、ステップＲ２−２の暗号鍵のハッシュ値とを比較し、一致した場合は暗号鍵の更新がないと判断しても良い。
【０１６９】
また、上述した実施形態におけるグループメンバ端末の暗号鍵生成機能、送信機能、受信機能、暗号鍵復元機能、復号機能、更新情報受信機能、分割鍵更新機能、シェア生成機能の各処理機能全体あるいはその一部、ストレージサーバの受信機能、記憶機能、鍵復元用情報生成機能、送信機能、分割鍵更新機能の各処理機能全体あるいはその一部、認証局のグループ鍵生成機能、分散鍵生成機能、分散鍵分割機能、鍵配布機能、受信機能、分割鍵更新情報生成機能、更新情報配布機能の各処理機能全体あるいはその一部は、これらの機能実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０１７０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してコンピュータプログラムを送信する場合の通信線のように、短時間の間、動的にコンピュータプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間コンピュータプログラムを保持しているものも含むものとする。また上記コンピュータプログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているコンピュータプログラムとの組み合わせで実現できるものであっても良い。
【図面の簡単な説明】
【０１７１】
【図１】第１の実施形態によるデータ共有システムを示す構成図である。
【図２】第１の実施形態での事前準備の処理動作を示すシーケンス図である。
【図３】第１の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図４】第１の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図５】第１の実施形態において、ストレージサーバの記憶部が記憶するデータの例を示した図である。
【図６】第１の実施形態において、グループメンバ端末がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図７】第１の実施形態において、暗号鍵を更新しないで、グループメンバ端末がストレージサーバにグループ共有データを更新保存する処理動作を示したシーケンス図である。
【図８】第１の実施形態において、ストレージサーバが各グループメンバ端末に送信するデータリストを示した図である。
【図９】第１の実施形態において、グループメンバ端末１−１がストレージサーバに登録した共有データを、グループメンバ端末１−２が参照する際の処理動作を示したシーケンス図である。
【図１０】第１の実施形態において、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する処理動作を示したシーケンス図である。
【図１１】第２の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図１２】第２の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図１３】第２の実施形態において、グループメンバ端末１−１がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図１４】第２の実施形態において、グループメンバ端末１−１がストレージサーバに登録した共有データを、グループメンバ端末１−２が参照する際の処理動作を示したシーケンス図である。
【図１５】第２の実施形態において、グループメンバ端末が鍵を作成して共有データを参照する処理動作を示したシーケンス図である。
【図１６】第２の実施形態において、グループメンバ端末が鍵の更新がない共有データを参照する処理動作を示したシーケンス図である。
【図１７】第３の実施形態において、グループメンバ端末がマスタシェアの初期設定の処理動作を示したシーケンス図である。
【図１８】第３の実施形態において、グループメンバ端末の記憶部が記憶するデータのリストのデータフォーマットを示した図である。
【図１９】第３の実施形態において、ストレージサーバの記憶部が記憶するデータのデータフォーマットを示した図である。
【図２０】第３の実施形態において、グループメンバ端末１−１がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図２１】第３の実施形態において、グループメンバ端末１−１がストレージサーバにグループ共有データを保存する処理動作を示したシーケンス図である。
【図２２】第３の実施形態において、グループメンバ端末１−１がストレージサーバに登録した共有データを、グループメンバ端末１−２が初めて参照する際の処理動作を示したシーケンス図である。
【図２３】第３の実施形態において、グループメンバ端末１−１がストレージサーバに登録した共有データを、グループメンバ端末１−２が再度参照する際の処理動作を示したシーケンス図である。
【図２４】第３の実施形態において、グループメンバ端末１−２の環境をグループメンバ端末１−３に移行する処理動作を示したシーケンス図である。
【符号の説明】
【０１７２】
１−１〜１−Ｎ・・・グループメンバ端末、２・・・ストレージサーバ、３・・・認証局、４・・・  通信ネットワーク、１００・・・データ共有システム
【図１】
0005103095.tif 000027
【図２】
0005103095.tif 000028
【図３】
0005103095.tif 000029
【図４】
0005103095.tif 000030
【図５】
0005103095.tif 000031
【図６】
0005103095.tif 000032
【図７】
0005103095.tif 000033
【図８】
0005103095.tif 000034
【図９】
0005103095.tif 000035
【図１０】
0005103095.tif 000036
【図１１】
0005103095.tif 000037
【図１２】
0005103095.tif 000038
【図１３】
0005103095.tif 000039
【図１４】
0005103095.tif 000040
【図１５】
0005103095.tif 000041
【図１６】
0005103095.tif 000042
【図１７】
0005103095.tif 000043
【図１８】
0005103095.tif 000044
【図１９】
0005103095.tif 000045
【図２０】
0005103095.tif 000046
【図２１】
0005103095.tif 000047
【図２２】
0005103095.tif 000048
【図２３】
0005103095.tif 000049
【図２４】
0005103095.tif 000050