(57)【要約】【課題】秘匿したい情報をネットワーク上の保管センタに保管する際の安全性の向上を図る。【解決手段】通信回線を介してデータ管理装置２にアクセスし、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管させるユーザの端末装置１に、マスターシェアを格納するマスターシェア記憶手段と、マスターシェア記憶手段に格納されるマスターシェアと、前記データ管理装置から受け取ったサブシェアとを基に新しいマスターシェアを生成し、マスターシェア記憶手段に格納されるマスターシェアを書き換えるマスターシェア更新手段とを備える。【選択図】図１
2008219179.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介してデータ管理装置にアクセスし、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管させるユーザの端末装置であり、
マスターシェアを格納するマスターシェア記憶手段と、
前記マスターシェア記憶手段に格納されるマスターシェアと、前記データ管理装置から受け取ったサブシェアとを基に新しいマスターシェアを生成し、前記マスターシェア記憶手段に格納されるマスターシェアを書き換えるマスターシェア更新手段と、
を備えたことを特徴とする端末装置。
【請求項２】
通信回線を介してユーザの端末装置からアクセスを受け、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管するデータ管理装置であり、
前記端末装置用のサブシェアを生成し、該サブシェアを前記端末装置に送信するサブシェア送信手段と、
前記保管されるシェア用のサブシェアを生成し、該サブシェアと前記保管されているシェアとを基に新しいシェアを生成し、前記保管されるシェアを書き換えるシェア更新手段と、
前記保管されている暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを更新する暗号鍵シェア更新手段と、
を備えたことを特徴とするデータ管理装置。
【請求項３】
ユーザごとのシェア更新関数を格納するシェア更新関数記憶手段と、
マスターシェア更新ごとに、前記シェア更新関数を更新するシェア更新関数更新手段と、
前記保管される暗号化データの保存時点のシェア更新関数を格納するデータ保存時関数記憶手段とを備え、
前記暗号鍵シェア更新手段は、前記保管される暗号化データに係るユーザのシェア更新関数、該暗号化データの保存時点のシェア更新関数、及び該暗号化データに係る暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを生成する、
ことを特徴とする請求項２に記載のデータ管理装置。
【請求項４】
前記暗号鍵シェア更新手段は、前記端末装置からのデータ読み出し要求に応じて、前記端末装置に送る暗号鍵シェアを生成することを特徴とする請求項３に記載のデータ管理装置。
【請求項５】
前記データ管理装置から暗号化データと共に送られた暗号鍵シェアと、前記マスターシェア記憶手段に格納されるマスターシェアとを基にして、該暗号化データを復号するための暗号鍵を復元する鍵復元手段を備えたことを特徴とする請求項１に記載の端末装置。
【請求項６】
通信回線を介してデータ管理装置にアクセスし、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管させるユーザの端末装置におけるデータ管理処理を行うためのコンピュータプログラムであって、
マスターシェア記憶手段に格納されるマスターシェアと、前記データ管理装置から受け取ったサブシェアとを基に新しいマスターシェアを生成し、前記マスターシェア記憶手段に格納されるマスターシェアを書き換えるマスターシェア更新機能をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項７】
通信回線を介してユーザの端末装置からアクセスを受け、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管するデータ管理装置におけるデータ管理処理を行うためのコンピュータプログラムであって、
前記端末装置用のサブシェアを生成し、該サブシェアを前記端末装置に送信するサブシェア送信機能と、
前記保管されるシェア用のサブシェアを生成し、該サブシェアと前記保管されているシェアとを基に新しいシェアを生成し、前記保管されるシェアを書き換えるシェア更新機能と、
前記保管されている暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを更新する暗号鍵シェア更新機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項８】
マスターシェア更新ごとに、シェア更新関数記憶手段に格納されるユーザごとのシェア更新関数を更新するシェア更新関数更新機能と、
前記保管される暗号化データの保存時点のシェア更新関数をデータ保存時関数記憶手段に格納する機能と、をさらにコンピュータに実現させるものであり、
前記暗号鍵シェア更新機能は、前記保管される暗号化データに係るユーザのシェア更新関数、該暗号化データの保存時点のシェア更新関数、及び該暗号化データに係る暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを生成する、
ことを特徴とする請求項７に記載のコンピュータプログラム。
【請求項９】
前記暗号鍵シェア更新機能は、前記端末装置からのデータ読み出し要求に応じて、前記端末装置に送る暗号鍵シェアを生成することを特徴とする請求項８に記載のコンピュータプログラム。
【請求項１０】
前記データ管理装置から暗号化データと共に送られた暗号鍵シェアと、前記マスターシェア記憶手段に格納されるマスターシェアとを基にして、該暗号化データを復号するための暗号鍵を復元する鍵復元機能をさらにコンピュータに実現させることを特徴とする請求項６に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、データ管理装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、情報秘匿技術として、例えば非特許文献１に記載の秘密分散法が知られている。秘密分散法とは、秘密情報を数人で分散して保管することで、元の秘密情報を安全に保管する方法である。非特許文献１に記載の(k, n)閾値秘密分散法は、秘密分散法の一種であり、秘密情報をn個の分割情報（シェア）に分割してそれぞれ保管し、その内のk個以上の分割情報を入手することができれば、元の秘密情報を復元することができるものである。
【０００３】
また、特許文献１に記載のデータ分割管理方法では、ユーザが所有する機密情報を、(k, n)閾値秘密分散法を用いてn個の分割データに分割し、各分割情報をネットワーク上の保管センタに分散して保管する。その際、各分割データの保管場所を示す管理情報は、複数の保管センタにて分割して保管するようにしている。
【非特許文献１】A. Shamir, “How to share a secret,” Communications of the  ACM, Vol. 22, No.11, pp. 612-613, 1979
【特許文献１】特開２００４−１４７２１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述した従来の技術では、各保管センタの管理者による不正行為に対して万全とはいえず、機密情報の秘匿に不安が残る。
【０００５】
本発明は、このような事情を考慮してなされたもので、その目的は、秘匿したい情報をネットワーク上の保管センタに保管する際の安全性の向上を図ることのできる端末装置、データ管理装置およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明に係る端末装置は、通信回線を介してデータ管理装置にアクセスし、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管させるユーザの端末装置であり、マスターシェアを格納するマスターシェア記憶手段と、前記マスターシェア記憶手段に格納されるマスターシェアと、前記データ管理装置から受け取ったサブシェアとを基に新しいマスターシェアを生成し、前記マスターシェア記憶手段に格納されるマスターシェアを書き換えるマスターシェア更新手段とを備えたことを特徴とする。
【０００７】
本発明に係るデータ管理装置は、通信回線を介してユーザの端末装置からアクセスを受け、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管するデータ管理装置であり、前記端末装置用のサブシェアを生成し、該サブシェアを前記端末装置に送信するサブシェア送信手段と、前記保管されるシェア用のサブシェアを生成し、該サブシェアと前記保管されているシェアとを基に新しいシェアを生成し、前記保管されるシェアを書き換えるシェア更新手段と、前記保管されている暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを更新する暗号鍵シェア更新手段とを備えたことを特徴とする。
【０００８】
本発明に係るデータ管理装置においては、ユーザごとのシェア更新関数を格納するシェア更新関数記憶手段と、マスターシェア更新ごとに、前記シェア更新関数を更新するシェア更新関数更新手段と、前記保管される暗号化データの保存時点のシェア更新関数を格納するデータ保存時関数記憶手段とを備え、前記暗号鍵シェア更新手段は、前記保管される暗号化データに係るユーザのシェア更新関数、該暗号化データの保存時点のシェア更新関数、及び該暗号化データに係る暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを生成することを特徴とする。
【０００９】
本発明に係るデータ管理装置においては、前記暗号鍵シェア更新手段は、前記端末装置からのデータ読み出し要求に応じて、前記端末装置に送る暗号鍵シェアを生成することを特徴とする。
【００１０】
本発明に係る端末装置においては、前記データ管理装置から暗号化データと共に送られた暗号鍵シェアと、前記マスターシェア記憶手段に格納されるマスターシェアとを基にして、該暗号化データを復号するための暗号鍵を復元する鍵復元手段を備えたことを特徴とする。
【００１１】
本発明に係るコンピュータプログラムは、通信回線を介してデータ管理装置にアクセスし、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管させるユーザの端末装置におけるデータ管理処理を行うためのコンピュータプログラムであって、マスターシェア記憶手段に格納されるマスターシェアと、前記データ管理装置から受け取ったサブシェアとを基に新しいマスターシェアを生成し、前記マスターシェア記憶手段に格納されるマスターシェアを書き換えるマスターシェア更新機能をコンピュータに実現させることを特徴とする。
【００１２】
本発明に係るコンピュータプログラムにおいては、前記データ管理装置から暗号化データと共に送られた暗号鍵シェアと、前記マスターシェア記憶手段に格納されるマスターシェアとを基にして、該暗号化データを復号するための暗号鍵を復元する鍵復元機能をさらにコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【００１３】
本発明に係るコンピュータプログラムは、通信回線を介してユーザの端末装置からアクセスを受け、暗号化データと、その暗号鍵を復元する基の情報の一方であるマスターシェアに基づいて生成されたもう一方の該基の情報である暗号鍵シェアと、前記マスターシェアが秘密分散法により２つのシェアに分割された一方のシェアとを保管するデータ管理装置におけるデータ管理処理を行うためのコンピュータプログラムであって、前記端末装置用のサブシェアを生成し、該サブシェアを前記端末装置に送信するサブシェア送信機能と、前記保管されるシェア用のサブシェアを生成し、該サブシェアと前記保管されているシェアとを基に新しいシェアを生成し、前記保管されるシェアを書き換えるシェア更新機能と、前記保管されている暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを更新する暗号鍵シェア更新機能とをコンピュータに実現させることを特徴とする。
【００１４】
本発明に係るコンピュータプログラムにおいては、マスターシェア更新ごとに、シェア更新関数記憶手段に格納されるユーザごとのシェア更新関数を更新するシェア更新関数更新機能と、前記保管される暗号化データの保存時点のシェア更新関数をデータ保存時関数記憶手段に格納する機能と、をさらにコンピュータに実現させるものであり、前記暗号鍵シェア更新機能は、前記保管される暗号化データに係るユーザのシェア更新関数、該暗号化データの保存時点のシェア更新関数、及び該暗号化データに係る暗号鍵シェアを基に前記端末装置に送る暗号鍵シェアを生成することを特徴とする。
【００１５】
本発明に係るコンピュータプログラムにおいては、前記暗号鍵シェア更新機能は、前記端末装置からのデータ読み出し要求に応じて、前記端末装置に送る暗号鍵シェアを生成することを特徴とする。
これにより、前述のデータ管理装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１６】
本発明によれば、秘匿したい情報をネットワーク上の保管センタに保管する際の安全性の向上を図ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は、本発明の一実施形態に係るデータ管理システムの全体構成を示すブロック図である。図１において、データ管理システムは、端末１（端末装置）とデータセンタ２（データ管理装置）とを有する。端末１は、データセンタ２を利用するユーザに使用される。ユーザは、データセンタ２にユーザ登録している。端末１は、通信ネットワークを介してデータセンタ２にアクセスし、データセンタ２との間でデータを送受することができる。なお、通信ネットワークは、無線ネットワークであっても、有線ネットワークであってもよい。例えば、通信ネットワークは、インターネットと固定電話網や移動電話網などから構成されてもよい。
【００１８】
端末１は、移動しながら使用可能な装置（例えば、携帯型装置）であってもよく、或いは、固定して使用される装置（例えば、パーソナルコンピュータ等の据置き型装置）であってもよい。また、携帯型の端末装置としては、例えば、移動通信事業者が提供する移動通信網の端末装置（例えば、データ通信機能を有する携帯電話機、データ通信端末装置等）、ＰＤＡ（Personal Digital Assistants：個人用情報機器）などが挙げられる。また、ＰＤＡの場合、通信手段を内蔵していてもよく、外部から通信手段を接続するものであってもよい。
【００１９】
端末１は、演算処理部、記憶部、通信部、入力部、表示部、外部インタフェースなどを備える。演算処理部は、ＣＰＵ（中央処理装置）およびメモリ等から構成される。記憶部は、例えば、ハードディスク装置、光磁気ディスク装置、ＤＶＤ（Digital Versatile Disk）等の光ディスク装置、フラッシュメモリ等の不揮発性のメモリ、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリ、などの記憶装置、あるいはそれらの組み合わせにより構成される。記憶部は、ＣＰＵで実行されるコンピュータプログラム等の各種データを記憶する。通信部は、通信ネットワークを介したデータ通信を行う。入力部は、キーボード、テンキー、マウス等の入力デバイスから構成され、ユーザの操作に応じたデータ入力を行う。表示部は、ＣＲＴ（Cathode Ray Tube）や液晶表示装置等の表示デバイスから構成され、データ表示を行う。外部インタフェースは、外部機器との間で有線又は無線により直接にデータを送受する。
【００２０】
端末１は、ＣＰＵがコンピュータプログラムを実行することにより、データ管理機能を実現する。図１中の端末１においては、データ管理機能に係る機能ブロック（特にデータ保存に係るもの）が示されている。なお、データ管理機能を実現するためのコンピュータプログラムは、端末１に固定的にインストールされていてもよく、或いは、サーバ上にあるコンピュータプログラムが必要なときに通信回線を介してダウンロードされてもよい。
【００２１】
図１において、端末１は、マスターシェア部１１と鍵生成部１２と暗号化部１３とを有する。マスターシェア部１１は、マスターシェア（SMN,U）を生成する。鍵生成部１２は、マスターシェア（SMN,U）を基にして暗号鍵（KM）を生成する。また、鍵生成部１２は、マスターシェア（SMN,U）を基にして、暗号鍵（KM）に対応する暗号鍵シェア（SMN,KM）を生成する。暗号化部１３は、暗号鍵（KM）を用いてデータ（M）を暗号化し、暗号化データ（EKM(M)）を生成する。端末１は、暗号化データ（EKM(M)）と暗号鍵シェア（SMN,KM）をデータセンタ２に送信する。データセンタ２は、暗号化データ（EKM(M)）と暗号鍵シェア（SMN,KM）を対応付けて保管する。なお、図１の例では、異なるデータ（M1）と（M2）がそれぞれ異なる暗号化鍵（KM）と（KM2）で暗号化される場合が示されている。
【００２２】
データセンタ２は、ＣＰＵおよびメモリ等から構成される演算処理部、ハードディスク装置等の記憶装置から構成される記憶部などを備える。記憶部は、端末１から送られてきた各種データを記憶する。記憶部は、例えば、暗号化データ（EKM(M)）と暗号鍵シェア（SMN,KM）を対応付けて記憶する。データセンタ２のデータ管理機能は、データセンタ２のＣＰＵがデータ管理機能を実現するためのコンピュータプログラムを実行することにより実現される。
【００２３】
以下、図１に示すデータ管理システムのデータ管理機能に係る構成および動作を順次詳細に説明する。なお、以下の説明においては、暗号鍵の鍵長（ビット数）をbとすると、加減乗除演算はすべて有限体GF(p)上の演算とする（但し、「p=2b−1」である）。
【００２４】
［準備段階］
まず図２、図３を参照して準備段階の処理を説明する。
図２は、本実施形態に係るデータ管理処理の準備段階の構成を示すブロック図である。図３は、本実施形態に係るデータ管理処理の準備段階の手順を示すシーケンスチャートである。図２において、端末１は、通信ネットワーク３を介してデータセンタ２に接続されている。また、端末１は、外部インタフェースを介して外部デバイス４を接続している。
【００２５】
外部デバイス４は、データの書き込み及び読み出しが可能な記録媒体であり、ユーザの識別情報（ユーザID（IDU））を格納している。外部デバイス４としては、例えば、メモリカード、ＩＣカード、ＵＳＢ（Universal Serial Bus）メモリなどが利用可能である。外部デバイス４は、本データ管理システムのサービス事業者からユーザ個別に配布される。若しくは、本データ管理システムのサービス事業者がユーザ個別にユーザID（IDU）を通知し、ユーザが任意の外部デバイスにユーザID（IDU）を書き込むようにしてもよい。
【００２６】
図３において、ユーザは、外部デバイス４を端末１に接続し、外部デバイス４から端末１にユーザID（IDU）をインストールする（Ｓ１）。
【００２７】
なお、本実施形態では、ユーザ認証方法としてパスワードを用いるが、他のユーザ認証方法を利用してもよい。例えば、指紋認証などの生体認証を行うようにしてもよい。認証情報は、あらかじめデータセンタ２に登録され、データセンタ２内で、ユーザIDと対応付けて記憶される。
【００２８】
次いで、端末１は、データセンタ２に対してユーザ認証を行う（Ｓ２）。ユーザは、端末１にパスワードを入力し、端末１はデータセンタ２に当該パスワードとユーザID（IDU）を送信し、データセンタ２は、送られてきたパスワードとユーザID（IDU）が、自身に登録されているユーザ情報と一致するかどうか検証する。
【００２９】
ステップＳ２においてユーザ認証が成功すると、ステップＳ３において、データセンタ２は、当該ユーザのアクティベート鍵（KU）をランダムに生成し、端末１にアクティベート鍵（KU）を返信する。データセンタ２は、ユーザID（IDU）とアクティベート鍵（KU）を対応付けて記憶する。
【００３０】
次いで、ステップＳ４において、端末１は、マスターシェア（SMN,U）を生成する。端末１は、このマスターシェア（SMN,U）を秘密分散法により２つのシェア（SMN,U,1 ，SMN,U,2）に分割する。この２つのシェア（SMN,U,1 ，SMN,U,2）が両方とも揃えば、マスターシェア（SMN,U）を復元することができる。
【００３１】
ステップＳ４の端末１の処理を具体的に説明する。まず、端末１は、任意の１次式「f0(x)」を生成する。次いで、端末１は、マスターシェア（SMN,U）を「SMN,U=(XU, f0(XU))」なる式により算出する。但し、「XU =IDU」である。次いで、端末１は、シェア（SMN,U,1）を「SMN,U,1=f0(0)」なる式により算出し、シェア（SMN,U,2）を「SMN,U,2=(XU2, f0(XU2))」なる式により算出する。但し、「XU2= XU^R」であり、Rは乱数またはタイムスタンプである。「A^B」はAとBのビットごとの排他的論理和である。
【００３２】
次いで、ステップＳ５では、端末１は、一方のシェア（SMN,U,1）を外部デバイス４に書き込み、もう一方のシェア（SMN,U,2）をデータセンタ２へ送信する。データセンタ２は、シェア（SMN,U,2）を当該ユーザID（IDU）に対応付けて記憶し、端末１に応答（Ack）する。この結果、データセンタ２は、ユーザID（IDU）に対応付けて、パスワード、アクティベート鍵（KU）及びシェア（SMN,U,2）を記憶している。
【００３３】
次いで、ステップＳ６では、端末１は、アクティベート鍵（KU）を用いてマスターシェア（SMN,U）を暗号化する。このとき、端末１は、マスターシェア（SMN,U）の妥当性検証用に、マスターシェア（SMN,U）とマスターシェア（SMN,U）のハッシュ関数値h(SMN,U)を連結し、この連結データ(SMN,U||h(SMN,U))をアクティベート鍵（KU）で暗号化し、暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）を生成する。端末１は、ユーザID（IDU）に対応付けて、暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）を記憶する。なお、h(X)はXのハッシュ関数値である。A||Bは、AとBの連結である。
【００３４】
次いで、ステップＳ７では、端末１は、データ管理機能に係るデータのうち、センタID（IDserv）とユーザID（IDU）と暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）とを除いた、他の全てのデータ（マスターシェア（SMN,U）、ハッシュ関数値h(SMN,U)、２つのシェア（SMN,U,1 ，SMN,U,2）、アクティベート鍵（KU））を消去する。これにより、端末１内には、センタID（IDserv）、ユーザID（IDU）および暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）のみがデータ管理機能に係るデータとして記憶される。
【００３５】
［データ保存段階］
次に、図４、図５を参照してデータ保存段階の処理を説明する。
図４は、本実施形態に係るデータ管理処理のデータ保存段階の構成を示すブロック図である。図５は、本実施形態に係るデータ管理処理のデータ保存段階の手順を示すシーケンスチャートである。図４において、端末１は、通信ネットワーク３を介してデータセンタ２に接続されている。
【００３６】
図５において、ユーザは、端末１により、データ（M）をデータセンタ２に保存するための操作を行う。ステップＳ２１では、端末１は、データセンタ２に対しユーザ認証を行う。
【００３７】
次いで、ステップＳ２２において、データセンタ２は、ステップＳ２１のユーザ認証が成功した場合に、アクティベート鍵（KU）を端末１に返信する。そのアクティベート鍵（KU）は、ユーザID（IDU）に対応付けて自センタで記憶されているものである。
【００３８】
次いで、ステップＳ２３において、端末１は、アクティベート鍵（KU）を得ると、アクティベート鍵（KU）を用いて自端末で記憶している暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）を復号し、マスターシェア（SMN,U）およびハッシュ関数値h(SMN,U)を得る。そして、端末１は、マスターシェア（SMN,U）のハッシュ関数値を計算し、この計算結果と復号結果のハッシュ関数値h(SMN,U)が一致するかを検証する。
ステップＳ２１〜Ｓ２３までがマスターシェア・アクティベート処理である。
【００３９】
次いで、ステップＳ２４において、端末１は、乱数（a）を生成し、マスターシェア（SMN,U）から１次式「g(x)」を生成する。１次式「g(x)」は、マスターシェア「SMN,U=(XU, fi(XU))」に基づいて、「g(x) = a(x−XU)＋fi(XU)」なる式により算出される。そして、端末１は、１次式「g(x)」から暗号鍵（KM）を生成する。暗号鍵（KM）は「KM=g(0)」なる式により算出される。そして、端末１は、暗号鍵（KM）を用いて、データ（M）を暗号化し、暗号化データ（EKM(M)）を生成する。そして、端末１は、暗号鍵（KM）のハッシュ関数値「HM=h(KM)」を計算する。
【００４０】
次いで、ステップＳ２５において、端末１は、１次式「g(x)」から暗号鍵シェア（SMN,KM）を生成する。暗号鍵シェア（SMN,KM）は、「SMN,KM=(XM1, g(XM1))」なる式により算出される。但し、「XM1= IDU ^R4」である。また、R4は乱数もしくはタイムスタンプである。
図６には、１次式「g(x)」とマスターシェア（SMN,U）と暗号鍵（KM）と暗号鍵シェア（SMN,KM）の関係が示されている。
【００４１】
次いで、ステップＳ２６において、端末１は、タイムスタンプ（Ts）を生成する。そして、端末１は、「Write Data Request」メッセージをデータセンタ２に送信する。このとき、端末１は、センタID（IDserv）、ユーザID（IDU）、ファイル名（filename）、暗号鍵シェア（SMN,KM）、タイムスタンプ（Ts）、ハッシュ関数値HMおよび暗号化データ（EKM(M)）を「Write Data Request」メッセージと共にデータセンタ２に送信する。
【００４２】
データセンタ２は、「Write Data Request」メッセージと共に各データ（センタID（IDserv）、ユーザID（IDU）、ファイル名（filename）、暗号鍵シェア（SMN,KM）、タイムスタンプ（Ts）、ハッシュ関数値HMおよび暗号化データ（EKM(M)））を受信すると、ファイル番号（FN1）のファイルを作成し記憶する。データセンタ２は、ファイル番号（FN1）のファイルに、その受信データ（ユーザID（IDU）、ファイル名（filename）、暗号鍵シェア（SMN,KM）、タイムスタンプ（Ts）、ハッシュ関数値HMおよび暗号化データ（EKM(M)））を格納する。そして、データセンタ２は、「Write Data Request」メッセージの応答メッセージ（Ack）と共にファイル番号（FN1）を端末１に送信する。
【００４３】
端末１は、「Write Data Request」メッセージの応答メッセージ（Ack）と共にファイル番号（FN1）を受信すると、データ（M）の保存に係るファイル番号（FN1）のファイルを作成し記憶する。このファイル番号（FN1）のファイルは、ファイル名（filename）、タイムスタンプ（Ts）及びハッシュ関数値HMを格納する。
ステップＳ２４〜Ｓ２６までがデータ保護処理である。
【００４４】
なお、暗号鍵シェア（SMN,KM）と暗号化データ（EKM(M)）とで、端末１からデータセンタ２に送信するタイミングをずらしてもよい。例えば、端末１からデータセンタ２に暗号鍵シェア（SMN,KM）を送信してから、一定時間経過後に、暗号化データ（EKM(M)）を送信するようにしてもよい。これにより、データ保護の処理と暗号化データのバックアップ処理を分離し、データ保護処理のレスポンス性を高めることができる。例えば、一定時間において端末１がアイドル状態だった場合、端末１が無線ＬＡＮなどの大容量の通信システムを利用可能な環境下に移動した場合、現在利用している通信システムが比較的空いている場合などに、バックアップ処理を行い、暗号化データをデータセンタ２に保存すればよい。
【００４５】
次いで、ステップＳ２７において、端末１は、データ（M）、暗号鍵（KM）、暗号鍵シェア（SMN,KM）およびマスターシェア（SMN,U）を消去する。
【００４６】
なお、暗号化データ（EKM(M)）は、端末１内から消去してもよく、或いは、端末１内にそのまま残しておいてもよい。例えば、ユーザのセキュリティポリシ応じて、データセンタ２への送信後に直ちに暗号化データ（EKM(M)）を消去してもよいし、或いは、データセンタ２への保存が完了した後（応答メッセージ（Ack）及びファイル番号（FN1）の受信後）に端末１内から暗号化データ（EKM(M)）を消去してもよいし、或いは、一定時間において暗号化データ（EKM(M)）が使用されなかった場合に暗号化データ（EKM(M)）を消去するようにしてもよいし、或いは、常に端末内に暗号化データ（EKM(M)）を保持しておいてもよい。
【００４７】
また、マスターシェア（SMN,U）の消去に関しては、処理の効率性を鑑み、一定時間（例えば、５分間）においてマスターシェア（SMN,U）を使用する処理がなされなかった場合に消去するようにしてもよい。
【００４８】
［データ読み出し段階］
次に、図７を参照してデータ読み出し段階の処理を説明する。
図７は、本実施形態に係るデータ管理処理のデータ読み出し段階の手順を示すシーケンスチャートである。なお、データ読み出し段階の構成は、図４と同じである。
【００４９】
図７において、ユーザは、端末１により、データセンタ２に保存されているデータ（M）を読み出すための操作を行う。この操作に応じて、マスターシェア・アクティベート処理が開始される。このマスターシェア・アクティベート処理（ステップＳ２１〜Ｓ２３）は、上述のデータ保存段階と同様である。これにより、端末１は、自端末で記憶している暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）を復号して、マスターシェアSMN,Uを得る。
【００５０】
次いで、ステップＳ４１において、端末１は、「Read Data Request」メッセージをデータセンタ２に送信する。このとき、端末１は、該メッセージと共に、センタID（IDserv）、ユーザID（IDU）およびファイル番号（FN1）をデータセンタ２に送信する。ファイル番号（FN1）は、データセンタ２から読み出すデータ（M）の保存に係るファイルのファイル番号である。
【００５１】
次いで、ステップＳ４２において、データセンタ２は、「Read Data Request」メッセージと共に各データ（センタID（IDserv）、ユーザID（IDU）およびファイル番号（FN1））を受信すると、ファイル番号（FN1）のファイルを検索する。そして、データセンタ２は、該当ファイルが発見された場合に、「Read Data Response」メッセージを端末１に返信する。このとき、データセンタ２は、そのファイル番号（FN1）のファイルに格納されている暗号鍵シェア（SMN,KM）及び暗号化データ（EKM(M)）を取得し、センタID（IDserv）、ユーザID（IDU）、ファイル番号（FN1）、暗号鍵シェア（SMN,KM）及び暗号化データ（EKM(M)）を「Read Data Response」メッセージと共に端末１に送信する。
【００５２】
次いで、ステップＳ４３において、端末１は、「Read Data Response」メッセージと共に各データ（センタID（IDserv）、ユーザID（IDU）、ファイル番号（FN1）、暗号鍵シェア（SMN,KM）及び暗号化データ（EKM(M)））を受信すると、暗号鍵シェア（SMN,KM）から暗号鍵（KM）を復元する。この暗号鍵復元の演算は、まず、マスターシェア「SMN,U=(XU, fi(XU))= (XU, g(XU))」及び暗号鍵シェア「SMN,KM=(XM1, g(XM1))の関係から、１次式「g(x)」を求める。そして、暗号鍵「KM=g(0)」の関係から、暗号鍵（KM）を算出する。
【００５３】
また、端末１は、暗号鍵（KM）のハッシュ関数値h(KM)を計算する。そして、端末１は、その計算結果と、自端末で記憶しているファイル番号（FN1）のファイルに格納されているハッシュ関数値HMとが一致するかを検証する。端末１は、その検証が成功した場合に、暗号鍵（KM）を用いて暗号化データ（EKM(M)）を復号し、データ（M）を得る。そして、端末１は、暗号鍵（KM）、暗号鍵シェア（SMN,KM）およびマスターシェア（SMN,U）を消去する。なお、マスターシェアの消去に関しては、上述のデータ保存段階と同様に、一定時間においてマスターシェア（SMN,U）を使用する処理がなされなかった場合に消去するようにしてもよい。
【００５４】
本実施形態によれば、データセンタ２に保管される暗号化データ（EKM(M)）の復号に必要な暗号鍵（KM）は、データセンタ２に保管される暗号鍵シェア（SMN,KM）と、ユーザ側に保管されるマスターシェア（SMN,U）とから復元される。従って、データセンタ２に保管される暗号鍵シェア（SMN,KM）と、ユーザ側に保管されるマスターシェア（SMN,U）との両方を取得することができなければ、データセンタ２に保管される暗号化データ（EKM(M)）を復号することはできない。ということは、たとえデータセンタ２の管理者であっても、ユーザ管理下にあるマスターシェア（SMN,U）を得ることができなければ、データセンタ２に保管される暗号化データ（EKM(M)）を復号することはできない。これにより、秘匿したい情報をネットワーク上のセンタに保管する際の安全性の向上を図ることができる。
【００５５】
また、マスターシェア（SMN,U）は暗号化されて端末１に保持され、その復号にはデータセンタ２に保管されるアクティベート鍵（KU）が必要である。これにより、たとえユーザの端末１が盗難にあったとしても、マスターシェア（SMN,U）が盗まれることを防ぐことができる。また、ユーザのパスワードを入手することができなければ、データセンタ２にアクセスすることはできず、データセンタ２から暗号鍵シェア（SMN,KM）および暗号化データ（EKM(M)）を取得することができないので、安全である。
【００５６】
また、マスターシェア（SMN,U）を基にして暗号鍵シェア（SMN,KM）を作成し、暗号鍵（KM）の秘密分散を行うので、データ読み出し段階において、端末１によるデータ復元処理の負荷を軽減することができる。
【００５７】
［データ回復段階］
次に、図８を参照してデータ回復段階の処理を説明する。
図８は、本実施形態に係るデータ管理処理のデータ回復段階の手順を示すシーケンスチャートである。なお、データ回復段階の構成は、図２と同じである。
なお、以下のデータ回復段階の説明においては、「iは1以上の整数である」とする。
【００５８】
データ回復段階は、既にデータセンタ２に保管されているデータを新規の端末１を用いて利用することができる状態に回復させる段階である。例えば、ユーザが端末を紛失し、新たな端末を購入した場合に、その新しい端末を用いて、既にデータセンタ２に保管されているデータを利用することができるようにする。
【００５９】
データ回復段階では、上述の図３で示した準備段階でシェア（SMN,U,1）が書き込まれた外部デバイス４を使用する。図８において、ユーザは、外部デバイス４を端末１に接続し、外部デバイス４から端末１にユーザID（IDU）とシェア（SMN,U,1）をインストールする（Ｓ５１）。次いで、ユーザは、端末１により、データ回復を行うための操作を行う。ステップＳ５２では、端末１は、データセンタ２に対し、ユーザ認証を行う。
【００６０】
次いで、ステップＳ５３では、データセンタ２は、１次式「fR,i(x)(fR,i(0)=0)」を生成する。この１次式「fR,i(x)(fR,i(0)=0)」は任意でよい。そして、データセンタ２は、シェア「SMN,U,2=(XU2, fi-1(XU2))」用のサブシェア（SR2）を生成する。サブシェア（SR2）は、「SR2=(XU2, fR,i(XU2))」なる式により算出される。そして、データセンタ２は、更新シェア（S’MN,U,2）を生成する。更新シェア（S’MN,U,2）は、「fi(XU2)=fi-1(XU2)+fR,i(XU2)」なる関係式から、「S’MN,U,2=(XU2, fi(XU2))」なる式により算出される。そして、データセンタ２は、ユーザID（IDU）に対応付けて自センタで記憶しているシェア（SMN,U,2）に替えて、更新シェア（S’MN,U,2）を記憶する。これにより、データセンタ２で保存されるマスターシェア復元用シェアが更新される。
【００６１】
次いで、ステップＳ５４では、データセンタ２は、アクティベート鍵（KU）および更新シェア（S’MN,U,2）を端末１に返信する。
【００６２】
次いで、ステップＳ５５では、端末１は、応答メッセージと共に各データ（アクティベート鍵（KU）および更新シェア（S’MN,U,2））を受信すると、更新シェア（S’MN,U,2）とシェア（SMN,U,1）を用いて新しいマスターシェア（S’MN,U）を生成する。
【００６３】
ステップＳ５５の端末１のマスターシェア生成処理を具体的に説明する。まず、端末１は、「S’MN,U,2=(XU2, fi(XU2))」及び「SMN,U,1=f0(0)=fi(0)(fR,i(0)=0 (i = 1, 2, …))」なる関係式から、１次式「fi(x)」を求める。そして、端末１は、「S’MN,U=(XU, fi(XU))」なる式により、新マスターシェア（S’MN,U）を算出する。
図９には、マスターシェア更新に係る１次式「f(x)」とマスターシェアとシェアの関係が示されている。
【００６４】
次いで、ステップＳ５６では、端末１は、アクティベート鍵（KU）を用いて新マスターシェア（S’MN,U）を暗号化する。このとき、端末１は、新マスターシェア（S’MN,U）の妥当性検証用に、新マスターシェア（S’MN,U）と新マスターシェア（S’MN,U）のハッシュ関数値h(S’MN,U)を連結し、この連結データ(S’MN,U||h(S’MN,U))をアクティベート鍵（KU）で暗号化し、暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）を生成する。端末１は、ユーザID（IDU）に対応付けて、暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）を記憶する。
【００６５】
次いで、ステップＳ５７では、端末１は、データ管理機能に係るデータのうち、センタID（IDserv）とユーザID（IDU）と暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）のみを残し、それ以外の他の全てのデータを消去する。これにより、端末１内には、センタID（IDserv）、ユーザID（IDU）および暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）のみがデータ管理機能に係るデータとして記憶される。
【００６６】
また、ステップＳ５８では、データセンタ２は、自センタに記憶されているユーザID（IDU）に係る全ての保管ファイル中の暗号鍵シェア（SMN,KM）を更新する。この暗号鍵シェア更新では、上述のステップＳ５３と同様に、fR,i(x)を用いてサブシェア（SR）を生成し、更新暗号鍵シェア（S’MN,KM）を生成する。更新暗号鍵シェア（S’MN,KM）は、「S’MN,KM=(X M1, fi(XM1))  (fi(XM1)=fi-1(XM1)+fR,i(XM1))」なる式により算出される。
【００６７】
これにより、データセンタ２で記憶されているユーザID（IDU）に係る全ての保管ファイルが、新マスターシェア（S’MN,U）に対応したことになる。この結果、ユーザは、新規の端末１を用いて、既にデータセンタ２に保管されているデータを利用することができるようになる。
【００６８】
本実施形態によれば、外部デバイス４に記録されている一方のシェア（SMN,U,1）と、データセンタ２で保管されているもう一方のシェア（SMN,U,2）とから、マスターシェアを回復することにより、既にデータセンタ２に保管されているデータを新規の端末１を用いて利用することができる状態に、回復することができる。
【００６９】
また、新マスターシェア（S’MN,U）を生成し、データセンタ２で記憶されている当該ユーザの全ての保管ファイルを新マスターシェア（S’MN,U）に対応させることにより、安全性の向上を図っている。
【００７０】
なお、データ回復段階において、マスターシェアを更新する方が安全上は好ましいが、マスターシェアの更新は必須ではない。マスターシェアの更新を行わない場合は、データセンタ２で元々保管されているシェアを用いてマスターシェアの復元を行えばよい。
【００７１】
［マスターシェア更新段階］
次に、図１０を参照してマスターシェア更新段階の処理を説明する。
図１０は、本実施形態に係るデータ管理処理のマスターシェア更新段階の手順を示すシーケンスチャートである。なお、マスターシェア更新段階の構成は、図４と同じである。
なお、以下のマスターシェア更新段階の説明においては、「iは１以上の整数である」とする。
【００７２】
マスターシェア更新段階は、マスターシェアを更新する段階である。マスターシェアは、データセンタ２に保管される暗号鍵シェアの基であり、データセンタ２に保管されるデータの安全性を確保するための重要な機密情報である。このため、上述のマスターシェアの暗号化と共に、マスターシェアの更新は、データセンタ２に保管されるデータの更なる安全性向上対策となる。
【００７３】
図１０において、まず、データセンタ２は、「Share Update Start」メッセージを端末１に送信する（Ｓ７１）。この「Share Update Start」メッセージの送信タイミングは、定期的であってもよく、又は、上述のデータ保存段階もしくはデータ読み出し段階に引き続いてであってもよい。端末１は、「Share Update Start」メッセージを受信すると、画面表示等によりマスターシェア更新段階をユーザに知らせる。
【００７４】
次いで、ステップＳ７２では、端末１は、データセンタ２対してユーザ認証を行う。ユーザ認証が成功するとステップＳ７３に進む。
【００７５】
次いで、ステップＳ７３では、データセンタ２は、１次式「fR,i(x)(fR,i(0)=0)」を生成する。この１次式「fR,i(x)(fR,i(0)=0)」は任意でよい。そして、データセンタ２は、端末用のサブシェア（SR）を生成する。サブシェア（SR）は、「SR=(XU, fR,i(XU))」なる式により算出される。次いで、ステップＳ７４では、データセンタ２は、アクティベート鍵（KU）及びサブシェア（SR）を端末１に送信する。
【００７６】
次いで、ステップＳ７５において、端末１は、アクティベート鍵（KU）を用いて自端末で記憶している暗号化マスターシェア(EKU(SMN,U||h(SMN,U))）を復号し、マスターシェア（SMN,U）およびハッシュ関数値h(SMN,U)を得る。そして、端末１は、マスターシェア（SMN,U）のハッシュ関数値を計算し、この計算結果と復号結果のハッシュ関数値h(SMN,U)が一致するかを検証する。
【００７７】
次いで、ステップＳ７６において、端末１は、マスターシェア（SMN,U）とサブシェア（SR）を用いて新しいマスターシェア（S’MN,U）を生成する。端末１は、「fi(XU)=fi-1(XU)+fR,i(XU)」なる関係式から、「S’MN,U=(XU, fi(XU))」なる式により、新マスターシェア（S’MN,U）を算出する。そして、端末１は、アクティベート鍵（KU）を用いて新マスターシェア（S’MN,U）を暗号化する。このとき、端末１は、新マスターシェア（S’MN,U）の妥当性検証用に、新マスターシェア（S’MN,U）と新マスターシェア（S’MN,U）のハッシュ関数値h(S’MN,U)を連結し、この連結データ(S’MN,U||h(S’MN,U))をアクティベート鍵（KU）で暗号化し、暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）を生成する。端末１は、ユーザID（IDU）に対応付けて、暗号化マスターシェア(EKU(S’MN,U||h(S’MN,U))）を記憶する。次いで、ステップＳ７７において、端末１は、新マスターシェア（S’MN,U）、サブシェア（SR）およびアクティベート鍵（KU）を削除する。
【００７８】
また、ステップＳ７８において、データセンタ２は、シェア「SMN,U,2=(XU2, fi-1(XU2))」用のサブシェア（SR2）を生成する。サブシェア（SR2）は、「SR2=(XU2, fR,i(XU2))」なる式により算出される。そして、データセンタ２は、更新シェア（S’MN,U,2）を生成する。更新シェア（S’MN,U,2）は、「fi(XU2)=fi-1(XU2)+fR,i(XU2)」なる関係式から、「S’MN,U,2=(XU2, fi(XU2))」なる式により算出される。そして、データセンタ２は、ユーザID（IDU）に対応付けて自センタで記憶しているシェア（SMN,U,2）に替えて、更新シェア（S’MN,U,2）を記憶する。これにより、データセンタ２で保存されるマスターシェア復元用シェアが更新される。
【００７９】
次いで、ステップＳ７９において、データセンタ２は、自センタに記憶されているユーザID（IDU）に係る全ての保管ファイル中の暗号鍵シェア（SMN,KM）を更新する。この暗号鍵シェア更新では、上述のステップＳ７８と同様に、fR,i(x)を用いてサブシェア（SR）を生成し、更新暗号鍵シェア（S’MN,KM）を生成する。更新暗号鍵シェア（S’MN,KM）は、「S’MN,KM=(X M1, fi(XM1))  (fi(XM1)=fi-1(XM1)+fR,i(XM1))」なる式により算出される。
【００８０】
これにより、データセンタ２で記憶されているユーザID（IDU）に係る全ての保管ファイルが、新マスターシェア（S’MN,U）に対応したことになる。
【００８１】
なお、上記ステップＳ７９では、マスターシェア更新に伴って、該当する全ての保管ファイルを対象にして暗号鍵シェア（SMN,KM）を更新しているが、以下に図１１〜図１６を参照して説明される他の実施例（上述の実施形態の変形例）によれば、マスターシェア更新の際に、該当する保管ファイルの暗号鍵シェア（SMN,KM）を更新しなくてもよくなる。
【００８２】
［他の実施例］
本実施例では、データセンタ２において、ユーザID（IDU）ごとにシェア更新関数Ri(x)を格納する記憶領域を確保する。そして、マスターシェア更新段階において、マスターシェア更新のために新たな１次式「fR,i(x)」が生成されるごとに、シェア更新関数Ri(x)を次式により更新する。
Ri(x) ＝ Ri-1(x)＋fR,i(x)
但し、iは１以上の整数であり、「R0(x) = 0」である。
【００８３】
図１１〜図１６において、端末１は、マスターシェアを格納するマスターシェア記憶領域１４を有する。また、端末１は、データエントリを有する。端末１のデータエントリは、データセンタ２に保管されているデータに係るファイルなどを格納する。データセンタ２は、シェア更新関数Ri(x)を格納する記憶領域（以下、「シェア更新関数記憶領域」と称する）２１を有する。また、データセンタ２は、データエントリを有する。データセンタ２のデータエントリは、自センタで保管しているデータに係るファイルなどを格納する。
なお、以下の説明は、上述の各段階との差分のみとする。
【００８４】
［準備段階］
上述の図３に示される準備段階に引き続き、データセンタ２は、当該ユーザID（IDU）に係るシェア更新関数Ri(x)を初期化し、「R0(x)=0」とする。これにより、図１１に示されるシェア更新関数記憶領域２１は、「０」を記憶する。
【００８５】
［データ保存段階］
上述の図５に示される、保管ファイル（FN1）に係るデータ保存段階のステップＳ３０において、データセンタ２は、当該保管ファイル（FN1）に、データ保存時点のシェア更新関数を格納する領域（以下、「データ保存時関数格納領域」と称する）２２を設け、シェア更新関数記憶領域２１に格納されているシェア更新関数をデータ保存時関数格納領域２２に書き込む。図１２の例では、保管ファイル（FN1）に係るデータ保存段階において、シェア更新関数記憶領域２１が「０」を格納しているので、保管ファイル（FN1）のデータ保存時関数格納領域２２に「０」が書き込まれている。また、図１４の例では、保管ファイル（FN2）に係るデータ保存段階において、シェア更新関数記憶領域２１が「fR,1(x)」を格納しているので、保管ファイル（FN2）のデータ保存時関数格納領域２２に「fR,1(x)」が書き込まれている。
【００８６】
［マスターシェア更新段階］
上述の図１０に示されるマスターシェア更新段階のステップＳ７９に引き続き、データセンタ２は、マスターシェア更新に伴って、上述のシェア更新関数を更新する式により次のシェア更新関数Ri(x)を求め、当該ユーザID（IDU）に係るシェア更新関数記憶領域２１を書き換える。図１３の例では、シェア更新関数記憶領域２１に格納される元のシェア更新関数「R0(x)=0」から「R1(x) ＝ R0(x)＋fR,1(x)」なる更新式により、次のシェア更新関数「R1(x)= fR,1(x)」が求められ、シェア更新関数記憶領域２１は「fR,1(x)」に書き換えられる。また、図１５の例では、シェア更新関数記憶領域２１に格納される元のシェア更新関数「R1(x)= fR,1(x)」から「R2(x) ＝ R1(x)＋fR,2(x)」なる更新式により、次のシェア更新関数「R2(x)= fR,1(x)＋fR,2(x)」が求められ、シェア更新関数記憶領域２１は「fR,1(x)＋fR,2(x)」に書き換えられる。
なお、本実施例では、図１０のステップＳ８０は不要であり、実行されない。
【００８７】
［データ読み出し段階］
上述の図７に示される、保管ファイル（FN1）に係るデータ読み出し段階のステップＳ４２において、データセンタ２は、当該ユーザID（IDU）に係るシェア更新関数記憶領域２１に格納されるシェア更新関数Ri(x)、当該保管ファイル（FN1）のデータ保存時関数格納領域２２に格納されるシェア更新関数r(x)、及び当該保管ファイル（FN1）に格納される暗号鍵シェア「SMN,KM=(XM1, g(XM1))」を基にして「fi(XM1) =g(X M1)−r(X M1)＋Ri(X M1)」を算出し、(XM1, fi(XM1))を暗号鍵シェア（S’MN,KM）として端末１に送信する。
【００８８】
図１６の例では、保管ファイル（FN2）に係るデータ読み出し段階において、シェア更新関数記憶領域２１は「Ri(x) = fR,1(x) + fR,2(x)」であり、当該保管ファイル（FN2）のデータ保存時関数格納領域２２は「r(x) = fR,1(x)」であり、当該保管ファイル（FN1）に格納される暗号鍵シェアは「SMN,KM2=(XM2, g(XM2))」である。これらを基にして、「fi(XM2) =g(X M2)−r(X M2)＋Ri(X M2) = g(X M2)−fR,1(X M2)＋fR,1(X M2) + fR,2(X M2) = g(X M2) + fR,2(X M2)」となる。これにより、端末１に送られる暗号鍵シェア（S’MN,KM2）として(XM2, fi(XM2))が得られる。
【００８９】
ここで、当該保管ファイル（FN2）が保存されたときのシェア更新関数が「r(x) = fR,1(x)」であることから、１次式「g(x)」の生成方法「g(x) = a(x−XU)＋fi(XU)」より、「g(XU) = f1(XU) = f0(XU) + fR,1(XU)」なる関係を満たす。また、端末１内のマスターシェアは「SMN,U = SMN,U(2) = (XU, f2(XU))」であり、「f2(XU) = f0(XU) + fR,1(XU) + fR,2(XU)」なる関係を満たす。これらのことから、「f2(XU) = g(XU) + fR,2(XU) = fi(XU)」なる関係となる。これにより、端末１は、データセンタ２から送られた暗号鍵シェア「S’MN,KM2 = (XM2, fi(XM2))」と、マスターシェア「SMN,U(2) = (XU, f2(XU))」とから「fi(x)」を算出し、この「fi(x)」に基づいて暗号鍵（KM2）を算出し得ることができる。
【００９０】
本実施例によれば、ユーザID（IDU）ごとにシェア更新関数Ri(x)を記録し、マスターシェア更新段階において、１次式「fR,i(x)」が更新されるごとに、シェア更新関数Ri(x)を「Ri(x) ＝ Ri-1(x)＋fR,i(x)」なる式により更新する。また、データ保存時点のシェア更新関数Ri(x)を記録しておく。そして、データ読み出し段階において、読み出し対象のユーザID（IDU）のシェア更新関数Ri(x)、読み出し対象の保管ファイルの保存時点のシェア更新関数r(x)、及び当該保管ファイルに格納される暗号鍵シェア「SMN,KM=(XM1, g(XM1))」を基にして「fi(XM1) =g(X M1)−r(X M1)＋Ri(X M1)」を算出し、(XM1, fi(XM1))を暗号鍵シェア（S’MN,KM）として端末１に送信する。これにより、マスターシェア更新の際に、該当する保管ファイルの暗号鍵シェア（SMN,KM）を更新しなくてもよくなる。従って、マスターシェア更新段階の処理時間が短縮される。
【００９１】
以上説明したように、本発明に係る実施形態によれば、秘匿したい情報をネットワーク上のデータセンタに保管する際の安全性を格段に向上させることができる。
【００９２】
なお、図３、５、７、８、１０に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、データ管理処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００９３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００９４】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００９５】
【図１】本発明の一実施形態に係るデータ管理システムの全体構成を示すブロック図である。
【図２】本発明の一実施形態に係るデータ管理処理の準備段階の構成を示すブロック図である。
【図３】同実施形態に係るデータ管理処理の準備段階の手順を示すシーケンスチャートである。
【図４】本発明の一実施形態に係るデータ管理処理のデータ保存段階の構成を示すブロック図である。
【図５】同実施形態に係るデータ管理処理のデータ保存段階の手順を示すシーケンスチャートである。
【図６】本発明の一実施形態に係る１次式「g(x)」とマスターシェアと暗号鍵と暗号鍵シェアの関係を示すグラフ図である。
【図７】本発明の一実施形態に係るデータ管理処理のデータ読み出し段階の手順を示すシーケンスチャートである。
【図８】本発明の一実施形態に係るデータ管理処理のデータ回復段階の手順を示すシーケンスチャートである。
【図９】本発明の一実施形態に係る１次式「f(x)」とマスターシェアとシェアの関係を示すグラフ図である。
【図１０】本発明の一実施形態に係るデータ管理処理のマスターシェア更新段階の手順を示すシーケンスチャートである。
【図１１】本発明の他の実施例を説明するための説明図である。
【図１２】本発明の他の実施例を説明するための説明図である。
【図１３】本発明の他の実施例を説明するための説明図である。
【図１４】本発明の他の実施例を説明するための説明図である。
【図１５】本発明の他の実施例を説明するための説明図である。
【図１６】本発明の他の実施例を説明するための説明図である。
【符号の説明】
【００９６】
１…端末（端末装置）、２…データセンタ（データ管理装置）、３…通信ネットワーク、４…外部デバイス（記録媒体）、１１…マスターシェア部、１２…鍵生成部、１３…暗号化部、１４…マスターシェア記憶領域、２１…シェア更新関数記憶領域、２２…データ保存時関数格納領域
【図１】
2008219179.tif 000003
【図２】
2008219179.tif 000004
【図３】
2008219179.tif 000005
【図４】
2008219179.tif 000006
【図５】
2008219179.tif 000007
【図６】
2008219179.tif 000008
【図７】
2008219179.tif 000009
【図８】
2008219179.tif 000010
【図９】
2008219179.tif 000011
【図１０】
2008219179.tif 000012
【図１１】
2008219179.tif 000013
【図１２】
2008219179.tif 000014
【図１３】
2008219179.tif 000015
【図１４】
2008219179.tif 000016
【図１５】
2008219179.tif 000017
【図１６】
2008219179.tif 000018