(57)【特許請求の範囲】
【請求項１】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、
を備えたことを特徴とする端末装置。
【請求項２】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、
前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、を備え、
前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録する、
ことを特徴とするデータ管理装置。
【請求項３】
暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする請求項１に記載の端末装置。
【請求項４】
前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする請求項２に記載のデータ管理装置。
【請求項５】
前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする請求項４に記載のデータ管理装置。
【請求項６】
前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする請求項５に記載のデータ管理装置。
【請求項７】
前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする請求項５に記載のデータ管理装置。
【請求項８】
前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする請求項２、４、５、６、７のいずれか１項に記載のデータ管理装置。
【請求項９】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、
暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、
前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１０】
メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、
端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、
端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、
前記端末装置から参照要求された前記データ保存機能に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、をコンピュータに実現させるためのコンピュータプログラムであり、
前記データ参照機能は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録する、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、データ管理装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、情報秘匿技術として、例えば非特許文献１に記載の秘密分散法が知られている。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。非特許文献１に記載の(k, n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報（シェア）に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。
【０００３】
また、特許文献１記載の従来技術では、あるデータを共有化する場合、まずグループ内で共有したいデータ（MG）を、暗号鍵（KM）を用いて共通鍵暗号方式で暗号化（EKM(MG)）する。そして、当該グループの全メンバ（U1,...,UN）が所有する公開鍵（pk1,...,pkN）でKMを暗号化（Epk1(KM), ..., EpkN(KM)）し、それをリスト化して、EKM(MG)と共にサーバ等に保存する。データを参照するグループメンバ（Ui）は、リスト内から自身の公開鍵（pki）で暗号化されたKM（Epki(KM)）とEKM(MG)を取得し、暗号化されたKMを自身の秘密鍵（ski）を用いて復号することにより、KMを得る。そして、KMでEKM(MG)を復号し、元データMGを得る。
【非特許文献１】A. Shamir，“How to share a secret”，Communications of the ACM，Vol．22，No.11，pp．612-613，1979
【特許文献１】特開２００５−２２３９５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、共有データを公開する際に、グループメンバの人数（Ｎ）分、すなわちN回公開鍵暗号処理を行う必要があり、データ公開者の処理負荷が大きくなる。又、グループメンバの所有する端末装置が盗難にあうなどし悪意の第三者に使用された場合、共有データの暗号化に使用している秘密鍵が該端末装置から漏洩してしまう可能性がある。この場合、秘密鍵を更新することで漏えい被害を抑えることができるが、共有データ公開時と同様、N回公開鍵暗号処理を行うことになり処理負荷が大きい。
【０００５】
本発明は、このような事情を考慮してなされたもので、その目的は、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることのできる端末装置、データ管理装置およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明に係る端末装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記端末装置であり、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録手段と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存手段と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照手段と、を備えたことを特徴とする。
【０００７】
本発明に係るデータ管理装置は、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムにおける前記データ管理装置であり、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録手段と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存手段と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照手段と、を備えたことを特徴とする。
【０００８】
本発明に係るデータ管理装置において、前記データ参照手段は、データ参照要求元の端末装置用の暗号鍵シェアが参照対象の暗号化データに関連付けて記録されていない場合、参照対象の暗号化データに関連付けて記録されている任意の端末装置用の暗号鍵シェア及び該端末装置の共通シェア、並びにデータ参照要求元の端末装置の共通シェアから、データ参照要求元の端末装置用の暗号鍵シェアを生成し、該データ参照要求元の端末装置用の暗号鍵シェアを参照対象の暗号化データに関連付けて記録することを特徴とする。
【０００９】
本発明に係る端末装置において、暗号鍵を用いて共通鍵暗号方式により更新対象の共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り更新要求するデータ更新手段を備えたことを特徴とする。
【００１０】
本発明に係るデータ管理装置において、前記端末装置から受け取った更新対象の暗号化データ、暗号鍵シェア及び端末識別子によって更新対象の保存データを書き換えるデータ更新手段を備えたことを特徴とする。
【００１１】
本発明に係るデータ管理装置において、前記データ更新手段は、更新対象の暗号化データに関連付けて記録されている未更新の暗号鍵シェアを、更新後の暗号鍵に対応する暗号鍵シェアに更新することを特徴とする。
【００１２】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新をまとめて行うことを特徴とする。
【００１３】
本発明に係るデータ管理装置において、前記データ更新手段は、前記暗号鍵シェアの更新を、端末装置毎にデータ参照時に行うことを特徴とする。
【００１４】
本発明に係るデータ管理装置において、前記グループに属するメンバの端末装置として失効した端末装置に関するデータを全て消去する環境移行手段を備えたことを特徴とする。
【００１５】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記端末装置におけるデータ共有処理を行うためのコンピュータプログラムであって、前記グループ内で共通の共通シェア用鍵と自端末固有のマスターシェアとから共通シェアを生成し、該共通シェア及び自己の端末識別子を前記データ管理装置に送り登録要求する端末登録機能と、暗号鍵を用いて共通鍵暗号方式により共有データを暗号化し、該暗号鍵と前記マスターシェアとから暗号鍵シェアを生成し、該暗号化データ、暗号鍵シェア及び自己の端末識別子を前記データ管理装置に送り保存要求するデータ保存機能と、前記データ管理装置から暗号化データ及び自己用の暗号鍵シェアを取得し、該暗号鍵シェア及び前記マスターシェアを用いて暗号鍵を復元し、該暗号鍵を用いて前記データ管理装置から取得した暗号化データを復号するデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【００１６】
本発明に係るコンピュータプログラムは、メンバ間でデータを共有するグループに属するメンバの端末装置と、前記端末装置と通信回線を介して接続されるデータ管理装置とを有するデータ共有システムの前記データ管理装置におけるデータ共有処理を行うためのコンピュータプログラムであって、端末装置から登録要求された共通シェア及び端末識別子を関連付けて記録する端末登録機能と、端末装置から保存要求された暗号化データ、暗号鍵シェア及び端末識別子に関し、暗号化データに対して暗号鍵シェアと端末識別子の組を関連付けて記録するデータ保存機能と、前記端末装置から参照要求された前記データ保存手段に格納される暗号化データと、該要求元の端末装置用の暗号鍵シェアとを該要求元の端末装置に送るデータ参照機能と、をコンピュータに実現させることを特徴とする。
これにより、前述のデータ管理装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１７】
本発明によれば、グループメンバの所有する端末装置から鍵が漏洩するような場合の共有データの安全性確保に貢献すると共に、共有データ公開時などの処理負荷軽減を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。図１において、図１において、グループメンバ端末１は、メンバ間でデータを共有するグループに属するメンバの端末装置である。図１にはＮ台のグループメンバ端末１−１〜Ｎが示されている。グループメンバ端末（以下、端末と称する）１は、通信ネットワーク４を介してストレージサーバ２にアクセスし、ストレージサーバ２との間でデータを送受することができる。なお、通信ネットワーク４は、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワーク４は、インターネットと固定電話網や移動電話網などから構成されてもよい。
【００１９】
端末１は、移動しながら使用可能な装置（例えば、携帯型装置）であってもよく、或いは、固定して使用される装置（例えば、パーソナルコンピュータ等の据置き型装置）であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置（例えば、データ通信機能を有する携帯電話機、データ通信端末装置等）、ＰＤＡ（Personal Digital Assistants：個人用情報機器）などが挙げられる。また、ＰＤＡの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【００２０】
端末１は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、ＣＰＵ（中央処理装置）およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、ＤＶＤ（Digital Versatile Disk）等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、ＣＰＵで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワーク４を介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、ＣＲＴ（Cathode Ray Tube）や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【００２１】
端末１は、ＣＰＵがコンピュータプログラムを実行することにより、データ共有機能を実現する。データ共有機能を実現するためのコンピュータプログラムは、端末１に固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【００２２】
ストレージサーバ２は、ＣＰＵおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部、通信部などを備える。記憶部は、端末１から送られてきたデータ等、各種データを記憶する。ストレージサーバ２のデータ保管機能は、ストレージサーバ２のＣＰＵがデータ保管機能を実現するためのコンピュータプログラムを実行することにより実現される。
【００２３】
鍵管理サーバ３は、ＣＰＵおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部などを備える。記憶部は、鍵管理に係る各種データを記憶する。鍵管理サーバ３の鍵管理機能は、鍵管理サーバ３のＣＰＵが鍵管理機能を実現するためのコンピュータプログラムを実行することにより実現される。なお、鍵管理サーバ３は、通信部を有し通信ネットワーク４に接続されていてもよく、或いは、通信部を有さず通信ネットワーク４に接続されていなくてもよい。鍵管理サーバ３は、通信ネットワーク４に接続されている場合、通信ネットワーク４を介して端末１及びストレージサーバ２との間でデータを送受することができる。鍵管理サーバ３は、通信ネットワーク４に接続されていない場合には、外部デバイス５を介して端末１及びストレージサーバ２との間でデータを送受する。外部デバイス５は、データの書き込み及び読み出しが可能な記録媒体である。外部デバイス５としては、例えば、メモリカード、ＩＣカード、ＵＳＢ（Universal Serial Bus）メモリなどが利用可能である。
【００２４】
以下、図１に示すデータ共有システムの動作を順次詳細に説明する。
【００２５】
［メンバ端末登録段階］
まず図２を参照してメンバ端末登録段階の処理を説明する。
図２は、本実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。図２においては、グループメンバ（ユーザ識別子（ユーザID）＝UIDi）の端末１−ｉ（端末識別子（端末ID）＝IDi）が登録されるとする。
【００２６】
ステップＰ１−０；鍵管理サーバ３は、あらかじめグループ用の共通シェア用鍵CKGを生成する。
ステップＰ１−１；鍵管理サーバ３は、端末１−ｉに対して、共通シェア用鍵CKGを配布する。この鍵配布方法は、セキュリティの確保された通信路を介して配布してもよいし、外部デバイス５を介して配布してもよい。また、鍵管理サーバ３は、端末１−ｉのメンバのユーザID（UIDi）と認証情報AUTHiをストレージサーバに送る。
【００２７】
ステップＰ１−２；端末１−ｉは、マスターシェアMSiをランダムに生成する。マスターシェアMSiは次式により算出する。
MSi＝(XMS,i，YMS,i)
XMS,i＝h(IDi)
但し、hはハッシュ関数である。YMS,iはランダムに生成する。ここで、XMS,i及びYMS,iの絶対値は、共通鍵暗号方式の鍵長b以下である。
【００２８】
ステップＰ１−３；端末１−ｉは、共通シェア用鍵CKGとマスターシェアMSiから、共通シェアCSiを生成する。共通シェアCSiは次式により算出する。
CSi＝(XCS,i，YCS,i)
XCS,i＝h(IDi||r1)
YCS,i=fi(XCS,i)
但し、「IDi||r1」はIDiとr1の連結データである。r1は乱数である。fi(x)は「fi(x)＝{(YMS,i−CKG)／XMS,i}×x＋CKG mod(2b−1)」となる多項式である。x mod(y)は、xに対してモジュロyをとった値である。
【００２９】
ステップＰ１−４；端末１−ｉは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDi）と認証情報AUTHi’を入力する。
ステップＰ１−５；端末１−ｉは、端末ID（IDi）、ユーザID（UIDi）、認証情報AUTHi’及び共通シェアCSiをストレージサーバ２に送信する。
【００３０】
ステップＰ１−６；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｉから受け取ったユーザID（UIDi）および認証情報AUTHi’を検証する。ストレージサーバ２は、端末１−ｉの使用者が正当なユーザであると確認できた場合に、端末１−ｉから受け取った端末ID（IDi）及び共通シェアCSiを関連付けて記録する。
【００３１】
ステップＰ１−７；端末１−ｉは、共通シェア用鍵CKG及び共通シェアCSiを消去する。なお、共通シェア用鍵CKGが外部デバイス５を介して配布された場合は、外部デバイス５内の共通シェア用鍵CKGも消去する。
端末１−ｉは、端末ID（IDi）とマスターシェアMSiを保持する。
【００３２】
［データ保存段階］
次に、図３を参照してデータ保存段階の処理を説明する。
図３は、本実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。図３において、ユーザは、端末１−ｉにより、共有データMGをストレージサーバ２に保存するための操作を行う。
【００３３】
ステップＷ１−１；ユーザは、端末１−ｉを操作して共有データMGを生成する。
ステップＷ１−２；端末１−ｉは、暗号鍵Kdをランダムに生成し、暗号鍵Kdを用いて共通鍵暗号方式により共有データMGを暗号化し、暗号化データEKd(MG)を生成する。暗号化後、共有データMGを消去する。
【００３４】
ステップＷ１−３；端末１−ｉは、マスターシェアMSiを用いて暗号鍵シェアSKd,iを生成する。暗号鍵シェアSKd,iは次式により算出する。
SKd,i＝(XKd,i，YKd,i)
XKd,i＝XCS,i
YKd,i＝gd(XKd,i)
但し、gd(x)は「gd(x)＝{(YMS,i−Kd)／XMS,i}×x＋Kd mod(2b−1)」となる多項式である。又、マスターシェアMSi＝(XMS,i，YMS,i)である。
【００３５】
ステップＷ１−４；端末１−ｉは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDi）と認証情報AUTHi’を入力する。
ステップＷ１−５；端末１−ｉは、端末ID（IDi）、ユーザID（UIDi）、認証情報AUTHi’、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdをストレージサーバ２に送信し、データ保存を要求する。
【００３６】
なお、暗号化データEKd(MG)の送信に関しては、端末アイドル時、大容量通信利用可能時など、暗号鍵シェアSKd,iの送信タイミングとは別のタイミングで送信するようにしてもよい。
【００３７】
ステップＷ１−６；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｉから受け取ったユーザID（UIDi）および認証情報AUTHi’を検証する。ストレージサーバ２は、端末１−ｉの使用者が正当なユーザであると確認できた場合に、端末１−ｉから受け取った端末ID（IDi）、暗号化データEKd(MG)、暗号鍵シェアSKd,i及びデータラベルLdを関連付けて記録する。さらに、該記録データに対してデータ識別子（データID）「DIDd」を割り当てて、該記録データとデータID（DIDd）を関連付ける。さらに、該記録時点の時刻TS,dを、該記録データの最終更新時刻として該記録データに追加する。
なお、データラベルとは、データの内容や形態を表す名称であり、例えばファイル名である。
【００３８】
ステップＷ１−７；ストレージサーバ２は、データ保存が完了したことを伝えるために、データID（DIDd）及び最終更新時刻TS,dを含む応答（ACK）メッセージを端末１−ｉに送信する。
ステップＷ１−８；端末１−ｉは、ストレージサーバ２からのACKメッセージを受信すると、暗号鍵Kdと暗号鍵シェアSKd,iを消去する。さらに、ローカルデータリストに当該共有データのエントリを新規に作成し、データID（DIDd）、最終更新時刻TS,d、暗号化データEKd(MG)及びデータラベルLdを組にして格納する。但し、ストレージサーバ２から通知された最終更新時刻TS,dは、最終参照時刻（Ti,d＝TS,d）として格納する。図４に端末記憶部の構成が示されている。
【００３９】
なお、暗号化データEKd(MG)については端末１−ｉで保持せず、消去するようにしてもよい。その暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する／しないの設定を行うようにしてもよい。
【００４０】
図５に、ストレージサーバ２の記憶部の構成が示されている。データを共有するグループの識別子（GID）に関連付けて、当該グループで共有されるデータレコードが記憶される。個々のデータレコードにはデータID（DID）が付与される。図６に、データレコードの構成が示されている。データレコードは、データラベル、最終更新時刻、暗号化データ、端末ID及び暗号鍵シェアを含む。端末ID及び暗号鍵シェアは、端末別のデータである。
【００４１】
図７に本実施形態に係る鍵配布図を示す。図７において、鍵管理サーバ３は、共通シェア用鍵CKGを保管する。共通シェア用鍵CKGは、外部デバイス５等を介してデータ共有グループに属するメンバの端末１−１〜Ｎへ配布される。端末１−ｉ（ｉ＝１〜Ｎ）は、自己に固有のマスターシェアMSiを有する。ストレージサーバ２は、端末１−ｉの共通シェアCSiを保管する。さらに、ストレージサーバ２は、共有される暗号化データに関連付けて端末１−ｉの暗号鍵シェアSKd,iを記録する。
【００４２】
［データ参照段階］
次に、図８を参照してデータ参照段階の処理を説明する。
図８は、本実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。図８において、ユーザは、端末１−ｊにより、ストレージサーバ２に保存されている暗号化データEKd(MG)を初めて参照するための操作を行う。
【００４３】
ステップR１−０；ストレージサーバ２は、各端末１にデータリストを送信する。図９にデータリストの構成が示されている。データリストには、送信先の端末１が属するグループで共有される全てのデータレコードの情報（データラベル、データID及び最終更新時刻）が記載される。
【００４４】
なお、データリストの送信タイミングは、データリストの更新時であってもよく、或いは、端末１からの要求時であってもよい。
【００４５】
ステップR１−１；ユーザは、端末１−ｊを操作し、データリスト中の所望のデータラベルのデータID（DIDd）を指定してデータ参照要求を行う。端末１−ｊは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDj）と認証情報AUTHj’を入力する。
ステップR１−２；端末１−ｊは、参照対象の暗号化データEKd(MG)に関するデータID（DIDd）、端末ID（IDj）、ユーザID（UIDj）、認証情報AUTHj’をデータ要求メッセージに含めてストレージサーバ２に送信する。
【００４６】
ステップR１−３；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｊから受け取ったユーザID（UIDj）および認証情報AUTHj’を検証する。
ステップR１−４；ストレージサーバ２は、端末１−ｊの使用者が正当なユーザであると確認できた場合に、端末１−ｊから受け取ったデータID（DIDd）に対応するデータレコードを参照し、端末１−ｊの暗号鍵シェアSKd,jがあるか調べる。ここでは、初めての参照なので、端末１−ｊの暗号鍵シェアSKd,jは当該データレコードに含まれていない。
【００４７】
ステップR１−５；ストレージサーバ２は、端末１−ｊの暗号鍵シェアSKd,jがデータレコードに含まれていないことを確認すると、当該データレコード内の任意の端末１−ｉの暗号鍵シェアSKd,i、該端末１−ｉの共通シェアCSi及び端末１−ｊの共通シェアCSjを取得する。そして、その取得した暗号鍵シェアSKd,i、共通シェアCSi，CSjを用いて、端末１−ｊの暗号鍵シェアSKd,jを生成する。暗号鍵シェアSKd,jは次式により算出する。
SKd,j＝(XKd,j，YKd,j)
XKd,j＝XCS,j
YKd,j＝YCS,j＋(Li／Lj)×(YKd,i−YCS,i)mod(2b−1)
但し、Lr＝XMS,r／(XMS,r−XCS,r)mod(2b−1)、である。又、共通シェアCSi＝(XCS,i，YCS,i)である。
【００４８】
ステップR１−６；ストレージサーバ２は、当該データレコード内の暗号化データEKd(MG)、最終更新時刻TS,d及び暗号鍵シェアSKd,jを端末１−ｊに送信する。又、ストレージサーバ２は、端末１−ｊの端末ID（IDj）及び暗号鍵シェアSKd,jを当該データレコードに追加し記録する。
【００４９】
ステップR１−７；端末１−ｊは、ストレージサーバ２から受け取った暗号鍵シェアSKd,j及び自己のマスターシェアMSjを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd＝YMS,j×XKd,j／(XKd,j−XMS,j)＋YKd,j×XMS,j／(XMS,j−XKd,j) mod(2b−1)
但し、マスターシェアMSj＝(XMS,j，YMS,j)である。
ステップR１−８；端末１−ｊは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【００５０】
ステップR１−９；端末１−ｊは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,j及び共有データMGを消去する。端末１−ｊは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ２から通知された最終更新時刻TS,dにより最終参照時刻（Tj,d＝TS,d）として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する／しないの設定を行うようにしてもよい。
【００５１】
次に、図１０を参照して２回目以降のデータ参照段階の処理を説明する。
図１０は、本実施形態に係るデータ共有処理の２回目以降のデータ参照段階の手順を示すシーケンスチャートである。図１０において、ユーザは、端末１−ｉにより、ストレージサーバ２に保存されている暗号化データEKd(MG)を再度参照するための操作を行う。
【００５２】
ステップR２−０；ストレージサーバ２は、各端末１にデータリストを送信する。
ステップR２−１；ユーザは、端末１−ｉを操作し、データリスト中の所望のデータラベル（データID（DIDd））を指定してデータ参照要求を行う。端末１−ｉは、ユーザによるデータ参照要求に応じて、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDj）と認証情報AUTHj’を入力する。
ステップR２−２；端末１−ｉは、参照対象の暗号化データEKd(MG)に関するデータID（DIDd）、端末ID（IDi）、ユーザID（UIDi）、認証情報AUTHi’をデータ要求メッセージに含めてストレージサーバ２に送信する。
【００５３】
ステップR２−３；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｉから受け取ったユーザID（UIDi）および認証情報AUTHi’を検証する。
ステップR２−４；ストレージサーバ２は、端末１−iの使用者が正当なユーザであると確認できた場合に、端末１−ｉから受け取ったデータID（DIDd）に対応するデータレコードを参照し、端末１−ｉの暗号鍵シェアSKd,iがあるか調べる。ここでは、２回目以降の参照なので、端末１−ｉの暗号鍵シェアSKd,iは当該データレコードに含まれている。
【００５４】
ステップR２−５；ストレージサーバ２は、端末１−ｉの暗号鍵シェアSKd,iがデータレコードに含まれていることを確認すると、当該データレコードから端末１−ｉの暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを取得する。そして、その取得した暗号鍵シェアSKd,i、暗号化データEKd(MG)及び最終更新時刻TS,dを端末１−ｉに送信する。
【００５５】
ステップR２−６；端末１−ｉは、ストレージサーバ２から受け取った暗号鍵シェアSKd,i及び自己のマスターシェアMSiを用いて、暗号鍵Kdを復元する。暗号鍵Kdは次式により算出する。
Kd＝YMS,i×XKd,i／(XKd,i−XMS,i)＋YKd,i×XMS,i／(XMS,i−XKd,i) mod(2b−1)
但し、マスターシェアMSi＝(XMS,i，YMS,i)である。
ステップR２−７；端末１−ｉは、暗号鍵Kdを用いて暗号化データEKd(MG)を復号し、共有データMGを得る。
【００５６】
ステップR２−８；端末１−ｉは、データ参照後に、暗号鍵Kd、暗号鍵シェアSKd,i及び共有データMGを消去する。端末１−ｉは、当該共有データMGに関するローカルデータリスト中のエントリを、ストレージサーバ２から通知された最終更新時刻TS,dにより最終参照時刻（Ti,d＝TS,d）として更新する。なお、暗号化データEKd(MG)の消去に関しては、設定ファイルなどにより、消去する／しないの設定を行うようにしてもよい。
【００５７】
［データ更新段階］
次に、図１１を参照してデータ更新段階の処理を説明する。
図１１は、本実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。図１１において、ユーザは、端末１−ｊにより、ストレージサーバ２に保存されている暗号化データEKd(MG)を更新するための操作を行う。
【００５８】
ステップＷ２−１；ユーザは、端末１−ｊを操作し、更新対象のデータラベル（データID（DIDd））を指定して共有データMG2を生成する。
ステップＷ２−２；端末１−ｊは、暗号鍵Kd2をランダムに生成し、暗号鍵Kd2を用いて共通鍵暗号方式により共有データMG2を暗号化し、暗号化データEKd2(MG2)を生成する。暗号化後、共有データMG2を消去する。
【００５９】
ステップＷ２−３；端末１−ｊは、マスターシェアMSjを用いて暗号鍵シェアSKd2,jを生成する。暗号鍵シェアSKd2,jは次式により算出する。
SKd2,j＝(XKd2,j，YKd2,j)
XKd2,j＝XCS,j
YKd2,j＝gd2(XKd2,j)
但し、gd2(x)は「gd2(x)＝{(YMS,j−Kd2)／XMS,j}×x＋Kd2 mod(2b−1)」となる多項式である。
【００６０】
ステップＷ２−４；端末１−ｊは、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDj）と認証情報AUTHj’を入力する。
ステップＷ２−５；端末１−ｊは、更新対象のデータID（DIDd）、端末ID（IDj）、ユーザID（UIDj）、認証情報AUTHj’、暗号化データEKd2(MG2)、暗号鍵シェアSKd2,j及びデータラベルLd2をストレージサーバ２に送信し、データ更新を要求する。
【００６１】
ステップＷ２−６；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｊから受け取ったユーザID（UIDj）および認証情報AUTHj’を検証する。ストレージサーバ２は、端末１−ｊの使用者が正当なユーザであると確認できた場合に、更新対象のデータID（DIDd）のデータレコードを書き換える。このデータレコード書き換えでは、データラベル、暗号化データをそれぞれデータラベルLd2、暗号化データEKd2(MG2)に書き換える。さらに、端末ID（IDj）の暗号鍵シェアを暗号鍵シェアSKd2,jに書き換える。さらに、最終更新時刻を現在時刻TS,d2に書き換える。
【００６２】
ステップＷ２−７；ストレージサーバ２は、データ更新が完了したことを伝えるために、データID（DIDd）及び最終更新時刻TS,d2を含む応答（ACK）メッセージを端末１−ｊに送信する。
ステップＷ２−８；端末１−ｊは、ストレージサーバ２からのACKメッセージを受信すると、暗号鍵Kd2と暗号鍵シェアSKd2,jを消去する。さらに、ローカルデータリスト中の当該共有データのエントリを、最終参照時刻（Ti,d＝TS,d2）、暗号化データEKd2(MG2)及びデータラベルLd2で書き換える。
【００６３】
ステップＷ２−９；ストレージサーバ２は、端末１−ｊ以外の他の端末１−ｉに関し、更新対象のデータID（DIDd）のデータレコードに更新前の暗号鍵Kdに対応する暗号鍵シェアSKd,iがある場合、該暗号鍵シェアを更新後の暗号鍵Kd2に対応する暗号鍵シェアSKd2,iに更新する。暗号鍵シェアSKd2,iは次式により算出する。
SKd2,i＝(XKd2,i,YKd2,i)
XKd2,i＝XCS,i
YKd2,i＝YCS,i＋(Lj／Li)×(YKd2,j−YCS,j)mod(2b−1)
但し、Lr＝XMS,r／(XMS,r−XCS,r)mod(2b−1)、である。
【００６４】
なお、端末１−ｊ以外の他の端末１−ｉの暗号鍵シェアの更新は、他の端末１−ｉが当該データレコードへのアクセスを要求した際に行うようにしてもよい。この場合、当該データレコードに、暗号鍵シェアの更新状況（未更新／更新済）を示す情報を含めておく。
【００６５】
［環境移行段階］
次に、図１２を参照して環境移行段階の処理を説明する。
図１２は、本実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。環境移行段階は、ユーザが端末を紛失等した場合に、該端末の環境を他の端末に移行するためのものである。図１２において、ユーザは、端末１−ｉの環境を他の端末１−ｉ’に移行する。端末１−ｉ’の端末IDはIDi'である。
【００６６】
ステップＲＥ１−１；ユーザは、端末１−ｉ’を操作し、端末１−ｉの環境を端末１−ｉ’に移行することを鍵管理サーバ３に通知する。なお、この環境移行通知はオフラインで行ってもよい。
ステップＲＥ１−２；鍵管理サーバ３は、端末１−ｉ’に対して、端末１−ｉが属するグループ用の共通シェア用鍵CKGを配布する。この共通シェア用鍵CKGの配布は、セキュリティの確保された通信路を介して配布してもよいし、或いは、外部デバイス５を介して配布してもよい。さらに、鍵管理サーバ３は、端末１−ｉが当該グループに所属のメンバの端末として失効したことをストレージサーバ２に通知する。
【００６７】
ステップＲＥ１−３；ストレージサーバ２は、端末１−ｉに関するデータ（暗号鍵シェア等）を全て消去する。
ステップＲＥ１−４；端末１−ｉ’は、マスターシェアMSi'をランダムに生成する。マスターシェアMSi'は次式により算出する。
MSi'＝(XMS,i'，YMS,i')
XMS,i'＝h(IDi')
但し、hはハッシュ関数である。YMS,i'はランダムに生成する。ここで、XMS,i'及びYMS,i'の絶対値は、共通鍵暗号方式の鍵長b以下である。
【００６８】
ステップＲＥ１−５；端末１−ｉ’は、共通シェア用鍵CKGとマスターシェアMSi'から、共通シェアCSi'を生成する。共通シェアCSi'は次式により算出する。
CSi'＝(XCS,i'，YCS,i')
XCS,i'＝h(IDi'||r1)
YCS,i'=fi'(XCS,i')
但し、「IDi'||r1」はIDi'とr1の連結データである。r1は乱数である。fi'(x)は「fi'(x)＝{(YMS,i'−CKG)／XMS,i'}×x＋CKG mod(2b−1)」となる多項式である。
【００６９】
ステップＲＥ１−６；端末１−ｉ’は、ユーザに対して認証情報の入力を促す。ユーザは、ユーザ認証用のための情報として、ユーザID（UIDi）と認証情報AUTHi’を入力する。
ステップＲＥ１−７；端末１−ｉ’は、端末ID（IDi'）、ユーザID（UIDi）、認証情報AUTHi’及び共通シェアCSi'をストレージサーバ２に送信する。
【００７０】
ステップＲＥ１−８；ストレージサーバ２は、鍵管理サーバ３から受け取ったユーザID及び認証情報に基づいて、端末１−ｉ’から受け取ったユーザID（UIDi）および認証情報AUTHi’を検証する。ストレージサーバ２は、端末１−ｉ’の使用者が正当なユーザであると確認できた場合に、端末１−ｉ’から受け取った端末ID（IDi'）及び共通シェアCSi'を関連付けて記録する。
【００７１】
ステップＲＥ１−９；端末１−ｉ’は、共通シェア用鍵CKG及び共通シェアCSi'を消去する。なお、共通シェア用鍵CKGが外部デバイス５を介して配布された場合は、外部デバイス５内の共通シェア用鍵CKGも消去する。
端末１−ｉ’は、端末ID（IDi'）とマスターシェアMSi'を保持する。
【００７２】
以上が本実施形態に係るデータ共有システムの動作の説明である。
【００７３】
上述した実施形態によれば、以下に示すような効果が得られる。
（１）共有データの暗号化に使用している暗号鍵は、ストレージサーバで保管される暗号鍵シェアが無いと復元できないので、盗難、紛失などにより端末がグループメンバ以外の者の手に渡ったとしても、共有データの漏洩を防ぐ効果が得られる。又、同じグループに属する複数のメンバの端末がグループメンバ以外の者の手に渡ったとしても、同様に暗号鍵の復元を行うことができないので、共有データの安全性確保に貢献することができる。又、ストレージサーバで保管される共通シェア及び暗号鍵シェアがたとえ漏洩したとしても、端末で保持される端末固有のマスターシェアが無いと暗号鍵を復元できないので、共有データの安全性確保に貢献することができる。
【００７４】
（２）公開鍵暗号方式を利用せずに、(2,2)しきい値秘密分散法と共通鍵暗号方式のみで実現できるため、データ共有システム全体の処理負荷を軽減することができる。また、グループ内データ共有機能を容易に実現することが可能になる。
【００７５】
なお、(k,n)しきい値秘密分散法とは、秘密分散法の一種であり、秘密情報をn個の分割情報（シェア）に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。
【００７６】
なお、図２、３、８、１０〜１２に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、データ共有処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００７７】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００７８】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００７９】
【図１】本発明の一実施形態に係るデータ共有システムの全体構成を示すブロック図である。
【図２】同実施形態に係るデータ共有処理のメンバ端末登録段階の手順を示すシーケンスチャートである。
【図３】同実施形態に係るデータ共有処理のデータ保存段階の手順を示すシーケンスチャートである。
【図４】図１に示す端末１の記憶部の構成例である。
【図５】図１に示すストレージサーバ２の記憶部の構成例である。
【図６】図５に示すデータレコードの構成例である。
【図７】本発明の一実施形態に係る鍵配布図である。
【図８】同実施形態に係るデータ共有処理のデータ参照段階の手順を示すシーケンスチャートである。
【図９】同実施形態に係るデータリストの構成例である。
【図１０】同実施形態に係るデータ共有処理の２回目以降のデータ参照段階の手順を示すシーケンスチャートである。
【図１１】同実施形態に係るデータ共有処理のデータ更新段階の手順を示すシーケンスチャートである。
【図１２】同実施形態に係るデータ共有処理の環境移行段階の手順を示すシーケンスチャートである。
【符号の説明】
【００８０】
１…グループメンバ端末（端末装置）、２…ストレージサーバ（データ管理装置）、３…鍵管理サーバ、４…通信ネットワーク、５…外部デバイス
【図１】
0005014977.tif 000002
【図２】
0005014977.tif 000003
【図３】
0005014977.tif 000004
【図４】
0005014977.tif 000005
【図５】
0005014977.tif 000006
【図６】
0005014977.tif 000007
【図７】
0005014977.tif 000008
【図８】
0005014977.tif 000009
【図９】
0005014977.tif 000010
【図１０】
0005014977.tif 000011
【図１１】
0005014977.tif 000012
【図１２】
0005014977.tif 000013