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