(57)【特許請求の範囲】
【請求項１】
複数のサーバに保存させたファイルＭを検証するクライアント端末であって、
キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成して前記複数のサーバそれぞれに送信するキー送信手段と、
前記キーｋと、シード値ｘとから鍵付き準同型疑似乱数関数によりランダムベクトルＶを生成するランダムベクトル生成手段と、
前記ファイルＭと、前記ランダムベクトルＶとに基づいて検証用タグＭＶを算出する検証用タグ算出手段と、
前記シード値ｘを前記サーバに送信し、前記サーバにおいて前記サーバ用キーｋｉ及び前記シード値ｘから前記鍵付き準同型疑似乱数関数により生成されたサーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとから算出されたサーバタグＭＶｉを、前記サーバから受信するサーバタグ受信手段と、
前記複数のサーバから受信した前記サーバタグＭＶｉの合計と、前記検証用タグＭＶとを比較することによって、前記ファイルＭが正しく保存されていることを検証する検証手段と、
を備えるクライアント端末。
【請求項２】
前記サーバ用キーｋｉは、前記サーバごとに異なる、請求項１に記載のクライアント端末。
【請求項３】
前記シード値ｘは、ランダム値である請求項１又は請求項２に記載のクライアント端末。
【請求項４】
前記キーｋは、所定の条件で変更される請求項１から３のいずれか一項に記載のクライアント端末。
【請求項５】
前記キー送信手段は、検証の度にサーバ用キーｋｉを更新してサーバに送信する、請求項１から４のいずれか一項に記載のクライアント端末。
【請求項６】
ファイルＭを保存するサーバであって、
キーｋから生成されたｋ＝Σｋｉとなるサーバ用キーｋｉを、クライアント端末から受信するキー受信手段と、
前記クライアント端末からシード値ｘを受信し、受信した前記シード値ｘと、前記サーバ用キーｋｉとに基づいて鍵付き準同型疑似乱数関数によりサーバ用ランダムベクトルＶｉを生成するサーバ用ベクトル生成手段と、
前記サーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとからサーバタグＭＶｉを算出するサーバタグ算出手段と、
前記サーバタグＭＶｉを前記クライアント端末に送信し、サーバタグＭＶｉの合計と、キーｋ及びシード値ｘから前記鍵付き準同型疑似乱数関数により生成されたランダムベクトルＶに基づく検証用タグＭＶとの比較により検証させるサーバタグ送信手段と、
を備えるサーバ。
【請求項７】
請求項１に記載のクライアント端末と、請求項６に記載のサーバとから構成される検証システム。
【請求項８】
請求項１に記載したクライアント端末が実行する方法であって、
前記キー送信手段が、キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成して前記複数のサーバそれぞれに送信するキー送信ステップと、
前記ランダムベクトル生成手段が、前記キーｋと、シード値ｘとから鍵付き準同型疑似乱数関数によりランダムベクトルＶを生成するランダムベクトル生成ステップと、
前記検証用タグ算出手段が、前記ファイルＭと、前記ランダムベクトルＶとに基づいて検証用タグＭＶを算出する検証用タグ算出ステップと、
前記サーバタグ受信手段が、前記シード値ｘを前記サーバに送信し、前記サーバにおいて前記サーバ用キーｋｉ及び前記シード値ｘから前記鍵付き準同型疑似乱数関数により生成されたサーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとから算出されたサーバタグＭＶｉを、前記サーバから受信するサーバタグ受信ステップと、
前記検証手段が、前記複数のサーバから受信した前記サーバタグＭＶｉの合計と、前記検証用タグＭＶとを比較することによって、前記ファイルＭが正しく保存されていることを検証する検証ステップと、
を備える方法。
【請求項９】
コンピュータに、請求項８に記載の方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバが保持するデータを検証するクライアント端末、方法、プログラム、サーバ、及び検証システムに関する。
【背景技術】
【０００２】
従来、サーバに保管されたデータの所有を検証する技術は、さまざまに提案されている。例えば、非特許文献１から非特許文献４には、データ保持の証明のための種々の方法が記載されている。
また、非特許文献５には、誤差を実用上無視できる鍵付き準同型擬似乱数関数が記載されている。非特許文献６には、非特許文献５で用いられるＬＷＲ（Ｌｅａｒｎｉｎｇ  ｗｉｔｈ  Ｒｏｕｎｄｉｎｇ）について記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｇｉｕｓｅｐｐｅ  Ａｔｅｎｉｅｓｅ，Ｒａｎｄａｌ  Ｂｕｒｎｓ，Ｒｅｚａ  Ｃｕｒｔｍｏｌａ，ｅｔ  ａｌ．，“Ｒｅｍｏｔｅ  ｄａｔａ  ｃｈｅｃｋｉｎｇ  ｕｓｉｎｇ  ｐｒｏｖａｂｌｅ  ｄａｔａ  ｐｏｓｓｅｓｓｉｏｎ”，ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｓｙｓｔｅｍ  Ｓｅｃｕｒｉｔｙ  （ＴＩＳＳＥＣ），Ｖｏｌ．１４  Ｉｓｓｕｅ  １，Ｍａｙ  ２０１１，Ａｒｔｉｃｌｅ  Ｎｏ．：１２
【非特許文献２】Ｆ．  Ｓｅｂｅ，Ａ．  Ｍａｒｔｉｎｅｚ−Ｂａｌｌｅｓｔｅ，Ｙ．  Ｄｅｓｗａｒｔｅ，ｅｔ  ａｌ．，“Ｔｉｍｅ−ｂｏｕｎｄｅｄ  ｒｅｍｏｔｅ  ｆｉｌｅ  ｉｎｔｅｇｒｉｔｙ  ｃｈｅｃｋｉｎｇ”，Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ０４４２９，ＬＡＡＳ，２００４．７
【非特許文献３】Ｍｅｈｕｌ  Ａ．  Ｓｈａｈ，Ｍａｒｙ  Ｂａｋｅｒ，Ｊｅｆｆｒｅｙ  Ｃ．  Ｍｏｇｕｌ，ｅｔ  ａｌ．，“Ａｕｄｉｔｉｎｇ  ｔｏ  Ｋｅｅｐ  Ｏｎｌｉｎｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅｓ  Ｈｏｎｅｓｔ”，ＨｏｔＯＳ，２００７
【非特許文献４】Ｙｖｅｓ  Ｄｅｓｗａｒｔｅ，Ｊｅａｎ−Ｊａｃｑｕｅｓ  Ｑｕｉｓｑｕａｔｅｒ，ａｎｄ  Ａｙｄａ  Ｓａｉｄａｎｅ，“Ｒｅｍｏｔｅ  ｉｎｔｅｇｒｉｔｙ  ｃｈｅｃｋｉｎｇ”，Ｉｎｔｅｇｒｉｔｙ  ａｎｄ  Ｉｎｔｅｒｎａｌ  Ｃｏｎｔｒｏｌ  ｉｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ  ＶＩ，Ｓｐｒｉｎｇｅｒ  ＵＳ，２００４，ｐｐ．１−１１
【非特許文献５】Ｄａｎ  Ｂｏｎｅｈ，Ｋｅｖｉｎ  Ｌｅｗｉ，Ｈａｒｔ  Ｍｏｎｔｇｏｍｅｒｙ，ｅｔ  ａｌ．，“Ｋｅｙ  ｈｏｍｏｍｏｒｐｈｉｃ  ＰＲＦｓ  ａｎｄ  Ｔｈｅｉｒ  Ａｐｐｌｉｃａｔｉｏｎｓ”，Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＣＲＹＰＴＯ  ２０１３，Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ，２０１３，ｐｐ．４１０−４２８
【非特許文献６】Ａｂｈｉｓｈｅｋ  Ｂａｎｅｒｊｅｅ，Ｃｈｒｉｓ  Ｐｅｉｋｅｒｔ，ａｎｄ  Ａｌｏｎ  Ｒｏｓｅｎ，“Ｐｓｅｕｄｏｒａｎｄｏｍ  ｆｕｎｃｔｉｏｎｓ  ａｎｄ  ｌａｔｔｉｃｅｓ”，Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＥＵＲＯＣＲＹＰＴ  ２０１２，Ｓｐｒｉｎｇｅｒ  Ｂｅｒｌｉｎ  Ｈｅｉｄｅｌｂｅｒｇ，２０１２，ｐｐ．７１９−７３７
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、検証する端末での演算や、サーバに送信するデータ量等が多大であり、端末や通信回線等に負荷がかかっていた。また、検証の効率性が十分ではなかった。
【０００５】
本発明は、同一のファイルを複数のサーバに保存させた場合に、これらのファイルが正しく保存されていることを容易に検証することができるクライアント端末、方法、プログラム、サーバ、及び検証システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
具体的には、以下のような解決手段を提供する。
（１）  複数のサーバに保存させたファイルＭを検証するクライアント端末であって、キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成して前記複数のサーバそれぞれに送信するキー送信手段と、前記キーｋと、シード値ｘとから鍵付き準同型疑似乱数関数によりランダムベクトルＶを生成するランダムベクトル生成手段と、前記ファイルＭと、前記ランダムベクトルＶとに基づいて検証用タグＭＶを算出する検証用タグ算出手段と、前記シード値ｘを前記サーバに送信し、前記サーバにおいて前記サーバ用キーｋｉ及び前記シード値ｘから前記鍵付き準同型疑似乱数関数により生成されたサーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとから算出されたサーバタグＭＶｉを、前記サーバから受信するサーバタグ受信手段と、前記複数のサーバから受信した前記サーバタグＭＶｉの合計と、前記検証用タグＭＶとを比較することによって、前記ファイルＭが正しく保存されていることを検証する検証手段と、を備えるクライアント端末。
【０００７】
（１）のクライアント端末は、ｋ＝Σｋｉとなるサーバ用キーｋｉを、ファイルＭを保存するサーバに送信する。そして、クライアント端末は、キーｋと、シード値ｘ（例えば、３２ビットからなる数値）とを用いる鍵付き準同型疑似乱数関数により生成したランダムベクトルＶと、ファイルＭとから検証用タグＭＶを算出し、保存する。次に、クライアント端末は、ランダムベクトルＶの生成に用いたシード値ｘをサーバに送信し、サーバ用ランダムベクトルＶｉをサーバに算出させてサーバタグＭＶｉを算出させ、サーバタグＭＶｉの合計に基づいてファイルＭがサーバに正しく保存されていることを検証する。
よって、クライアント端末は、データ量が少ないシード値ｘをサーバに送ってサーバタグＭＶｉを算出させるので、通信回線の負荷を軽減できる。さらに、クライアント端末は、公開可能なシード値ｘを複数のサーバに共通で送信して、サーバごとのサーバ用ランダムベクトルＶｉをサーバに算出させるので、処理負荷を低減できる。
したがって、クライアント端末は、同一のファイルＭを複数のサーバに保存させた場合に、これらのファイルＭが正しく保存されていることを容易に検証することができる。
【０００８】
（２）  前記サーバ用キーｋｉは、前記サーバごとに異なる、（１）に記載のクライアント端末。
【０００９】
（２）のクライアント端末は、サーバにおいてそれぞれ異なるサーバ用キーｋｉを用いて検証するので、サーバごとに算出されるサーバタグＭＶｉが異なり検証の信頼度を高めることができる。
【００１０】
（３）  前記シード値ｘは、ランダム値である（１）又は（２）に記載のクライアント端末。
【００１１】
（３）のクライアント端末は、予測が困難なランダム値をシード値ｘとして用いるので、サーバにおいて予めサーバタグＭＶｉが算出されてファイルＭの状態が偽装されるリスクを低減できる。
【００１２】
（４）  前記キーｋは、所定の条件で変更される（１）から（３）のいずれか一に記載のクライアント端末。
【００１３】
（４）のクライアント端末は、キーｋを変更することにより、検証用のタグを更新できるので、同一のシード値ｘを再度送信した場合にも、予めサーバタグＭＶｉが算出されるリスクを低減できる。
【００１４】
（５）  前記キー送信手段は、検証の度にサーバ用キーｋｉを更新してサーバに送信する、（１）から（４）のいずれか一に記載のクライアント端末。
【００１５】
（５）のクライアント端末は、検証の度にサーバ用キーｋｉを更新することにより、毎回サーバタグＭＶｉを変更することで、予め算出されるリスクを低減できる。
【００１６】
（６）  ファイルＭを保存するサーバであって、キーｋから生成されたｋ＝Σｋｉとなるサーバ用キーｋｉを、クライアント端末から受信するキー受信手段と、前記クライアント端末からシード値ｘを受信し、受信した前記シード値ｘと、前記サーバ用キーｋｉとに基づいて鍵付き準同型疑似乱数関数によりサーバ用ランダムベクトルＶｉを生成するサーバ用ベクトル生成手段と、前記サーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとからサーバタグＭＶｉを算出するサーバタグ算出手段と、前記サーバタグＭＶｉを前記クライアント端末に送信し、サーバタグＭＶｉの合計と、キーｋ及びシード値ｘから前記鍵付き準同型疑似乱数関数により生成されたランダムベクトルＶに基づく検証用タグＭＶとの比較により検証させるサーバタグ送信手段と、を備えるサーバ。
【００１７】
（６）のサーバは、クライアント端末から送られた、データ量が少ないシード値ｘによって、サーバ用ランダムベクトルＶｉを算出してサーバタグＭＶｉを算出し、保存しているファイルＭを正しく保存していることを、クライアント端末に容易に検証させる。
【００１８】
（７）  （１）に記載のクライアント端末と、（６）に記載のサーバとから構成される検証システム。
【００１９】
（７）の検証システムは、複数のサーバにファイルＭとサーバ用キーｋｉとをそれぞれ保存させ、クライアント端末から送られた、データ量が少ないシード値ｘによって、サーバごとにサーバ用ランダムベクトルＶｉを算出させてサーバタグＭＶｉを算出させ、サーバにファイルＭが正しく保存されていることをクライアント端末に容易に検証させる。
【００２０】
（８）  （１）に記載したクライアント端末が実行する方法であって、前記キー送信手段が、キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成して前記複数のサーバそれぞれに送信するキー送信ステップと、前記ランダムベクトル生成手段が、前記キーｋと、シード値ｘとから鍵付き準同型疑似乱数関数によりランダムベクトルＶを生成するランダムベクトル生成ステップと、前記検証用タグ算出手段が、前記ファイルＭと、前記ランダムベクトルＶとに基づいて検証用タグＭＶを算出する検証用タグ算出ステップと、前記サーバタグ受信手段が、前記シード値ｘを前記サーバに送信し、前記サーバにおいて前記サーバ用キーｋｉ及び前記シード値ｘから前記鍵付き準同型疑似乱数関数により生成されたサーバ用ランダムベクトルＶｉと、保存している前記ファイルＭとから算出されたサーバタグＭＶｉを、前記サーバから受信するサーバタグ受信ステップと、前記検証手段が、前記複数のサーバから受信した前記サーバタグＭＶｉの合計と、前記検証用タグＭＶとを比較することによって、前記ファイルＭが正しく保存されていることを検証する検証ステップと、を備える方法。
【００２１】
（８）の方法は、（１）と同様に、同一のファイルＭを複数のサーバに保存させた場合に、これらのファイルＭが正しく保存されていることを容易に検証することができる。
【００２２】
（９）  コンピュータに、（８）に記載の方法の各ステップを実行させるためのプログラム。
【００２３】
（９）のプログラムは、（１）と同様に、同一のファイルＭを複数のサーバに保存させた場合に、これらのファイルＭが正しく保存されていることを容易に検証できるように、コンピュータに機能させることができる。
【発明の効果】
【００２４】
本発明によれば、同一のファイルを複数のサーバに保存させた場合に、これらのファイルが正しく保存されていることを容易に検証することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る検証システムの構成を示すブロック図である。
【図２】本発明の一実施形態に係るクライアント端末とサーバとの構成を示すブロック図である。
【図３】本発明の一実施形態に係るクライアント端末とサーバとの検証準備処理の例を示すシーケンス図である。
【図４】本発明の一実施形態に係るクライアント端末とサーバとの検証処理の例を示すシーケンス図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について、図を参照しながら説明する。
図１は、本発明の一実施形態に係る検証システム１の構成を示すブロック図である。なお、サーバ５０は、複数のサーバそれぞれを表している（図２から図４において同様）。
【００２７】
検証システム１による検証方法の概要を説明する。
クライアント端末１０は、次のような手順により、ネットワーク７０（例えば、インターネット等）を介して複数のサーバ５０に保存させたファイルＭの存在を検証する。
＜検証準備手順＞
クライアント端末１０は、ファイルＭを保存させたサーバ５０それぞれに、キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを送信する。
すなわち、ｋ＝ｋ１＋ｋ２＋・・＋ｋｉ＋・・＋ｋｎ（複数のサーバの数がｎ台）
＜検証手順＞
（１）クライアント端末１０は、キーｋと、シード値ｘとから鍵付き準同型疑似乱数関数（Ｋｅｙ  Ｈｏｍｏｍｏｒｐｈｉｃ  Ｐｓｅｕｄｏ−ｒａｎｄｏｍ  Ｆｕｎｃｔｉｏｎ、以降、ＫＨＰＲＦという。）により、ランダムベクトルＶを生成し、検証用タグＭＶを算出する。
本実施形態で用いるＫＨＰＲＦは、疑似乱数関数であり、
ＦＬＷＲ（ｋ１＋ｋ２，ｘ）＝ＦＬＷＲ（ｋ１，ｘ）＋ＦＬＷＲ（ｋ２，ｘ）＋ｅ
という性質を有している。
本実施形態では、誤差ｅ∈｛−１，１｝の範囲内で、確率的に加法準同型の等式が成立する。以下、説明を分かりやすくするために、誤差ｅを除いて説明する。
ランダムベクトルＶ及び検証用タグＭＶは、次のように表される。
Ｖ＝ＦＬＷＲ（ｋ，ｘ）
検証用タグ＝ＭＶ
（２）クライアント端末１０は、ランダムベクトルＶを生成するときに用いたシード値ｘをサーバ５０に送信する。クライアント端末１０は、シード値ｘとして、毎回異なる値（例えば、ランダムな値）を送信する。
（３）サーバ５０は、受信したシード値ｘと、サーバ用キーｋｉとからＫＨＰＲＦによりサーバ用ランダムベクトルＶｉを生成する。
Ｖｉ＝ＦＬＷＲ（ｋｉ，ｘ）
（４）サーバ５０は、生成したサーバ用ランダムベクトルＶｉと、保存しているファイルＭとからサーバタグＭＶｉを算出する。
サーバタグ＝ＭＶｉ
（５）サーバ５０は、算出したサーバタグＭＶｉをクライアント端末１０に送信する。
（６）クライアント端末１０は、サーバ５０それぞれから受信したサーバタグＭＶｉの合計と検証用タグＭＶとを比較する。
ここで、
ΣＭＶｉ＝ＭΣＶｉ
＝ＭΣＦＬＷＲ（ｋｉ，ｘ）
ＫＨＰＲＦの性質より、
ＦＬＷＲ（Σｋｉ，ｘ）＝ΣＦＬＷＲ（ｋｉ，ｘ）である。
したがって、
ΣＭＶｉ＝ＭＦＬＷＲ（Σｋｉ，ｘ）
＝ＭＦＬＷＲ（ｋ，ｘ）
＝ＭＶ
すなわち、サーバ５０にファイルＭが正しく保存されている場合、複数のサーバ５０それぞれから受信したサーバタグＭＶｉの合計と、検証用タグＭＶとを比較すると、誤差ｅの範囲内である。
したがって、クライアント端末１０は、比較結果が誤差ｅの範囲内である場合に、サーバ５０それぞれにファイルＭが正しく保存されていると判定する。
【００２８】
図２は、本発明の一実施形態に係るクライアント端末１０とサーバ５０との構成を示すブロック図である。
クライアント端末１０は、キー送信手段１１と、ランダムベクトル生成手段１２と、検証用タグ算出手段１３と、サーバタグ受信手段１４と、検証手段１５と、端末記憶部３１とを備え、複数のサーバ５０に保存させたファイルＭを検証する。サーバ５０は、キー受信手段５１と、サーバ用ベクトル生成手段５２と、サーバタグ算出手段５３と、サーバタグ送信手段５４と、サーバ記憶部６１とを備える。
【００２９】
キー送信手段１１は、キーｋに基づいて、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成して複数のサーバ５０それぞれに送信する。
キー送信手段１１は、サーバ５０ごとに異なるサーバ用キーｋｉを生成して複数のサーバ５０それぞれに送信してよい。
【００３０】
キーｋは、所定の条件で変更される。
例えば、クライアント端末１０は、既定の桁数のシード値ｘが検証の度に更新されて一巡した場合には、キーｋを変更すると共に、サーバ用キーｋｉを生成し、サーバ５０に送信する。
変更は、ユーザの指示によって行われてもよく、定期的に行われてもよい。
送信されたサーバ用キーｋｉは、後述するサーバ５０のキー受信手段５１によって受信される。
【００３１】
ランダムベクトル生成手段１２は、キーｋと、シード値ｘとからＫＨＰＲＦによりランダムベクトルＶを生成する。
【００３２】
例えば、ランダムベクトルＶは、ファイルＭを行列として構成させたときに乗算が可能な、ＫＨＰＲＦにより生成した乱数を要素とする列ベクトルである。この場合、要素とされる乱数は、キーｋとシード値ｘとからＫＨＰＲＦによって生成された乱数列が要素数で分割されたものであってよい。
すなわち、乱数列Ｆ＝ｒ１|ｒ２|ｒ３とすると、ランダムベクトルＶは、次のように表される。
【００３３】
【数１】
0006370246.tif 000002
【００３４】
検証用タグ算出手段１３は、ファイルＭと、ランダムベクトルＶとに基づいて検証用タグＭＶを算出する。
例えば、検証用タグ算出手段１３は、行列であるファイルＭと列ベクトルであるランダムベクトルＶとを乗じて検証用タグＭＶを算出する。
【００３５】
サーバタグ受信手段１４は、ランダムベクトルＶを生成するときに用いたシード値ｘ（例えば、３２ビットからなる数値）をサーバ５０に送信する。シード値ｘは、複数のサーバ５０全てで共通である。サーバタグ受信手段１４は、検証の度に送信するごとにシード値ｘを変える。例えば、シード値ｘは、カウントアップされてもよいが、ランダム値であることが好ましい。
【００３６】
サーバ５０において、キー受信手段５１は、サーバ用キーｋｉをキー送信手段１１から受信し、サーバ記憶部６１に記憶させる。
サーバ用ベクトル生成手段５２は、サーバタグ受信手段１４からシード値ｘを受信し、受信したシード値ｘと、記憶しているサーバ用キーｋｉとに基づいてＫＲＰＲＦによりサーバ用ランダムベクトルＶｉを生成する。
サーバタグ算出手段５３は、生成したサーバ用ランダムベクトルＶｉと、保存しているファイルＭとからサーバタグＭＶｉを算出する。
サーバタグ送信手段５４は、サーバタグＭＶｉを、クライアント端末１０のサーバタグ受信手段１４に送信する。
【００３７】
サーバタグ受信手段１４は、サーバタグＭＶｉを、サーバタグ送信手段５４から受信する。
【００３８】
検証手段１５は、複数のサーバ５０から受信したサーバタグＭＶｉの合計と、検証用タグＭＶとを比較することによって、ファイルＭが正しく保存されていることを検証する。
具体的には、検証手段１５は、サーバタグＭＶｉの合計と、検証用タグＭＶとの差が誤差ｅの範囲内である場合に、ファイルＭが正しく保存されていると判定する。
【００３９】
図３は、本発明の一実施形態に係るクライアント端末１０とサーバ５０との検証準備処理の例を示すシーケンス図である。以下の処理は、クライアント端末１０又はサーバ５０の制御部（例えば、ＣＰＵ）が、ＯＳの下で所定のソフトウェアに従い実行する処理である。
【００４０】
ステップＳ１０１において、クライアント端末１０のＣＰＵは、ファイルＭをサーバ５０に送信する。
【００４１】
ステップＳ２０１において、サーバ５０のＣＰＵは、クライアント端末１０から受信したファイルＭをサーバ記憶部６１に記憶させる。
【００４２】
ステップＳ１０２において、クライアント端末１０のＣＰＵ（キー送信手段１１）は、ｋ＝Σｋｉとなるサーバ用キーｋｉを生成する。
【００４３】
ステップＳ１０３において、クライアント端末１０のＣＰＵ（キー送信手段１１）は、ステップＳ１０２において生成したサーバ用キーｋｉをサーバ５０に送信する。
【００４４】
ステップＳ２０２において、サーバ５０のＣＰＵ（キー受信手段５１）は、クライアント端末１０から受信したサーバ用キーｋｉをサーバ記憶部６１に記憶させる。
【００４５】
図４は、本発明の一実施形態に係るクライアント端末１０とサーバ５０との検証処理の例を示すシーケンス図である。
【００４６】
ステップＳ１１１において、クライアント端末１０のＣＰＵ（ランダムベクトル生成手段１２）は、キーｋとシード値ｘとからＫＨＰＲＦによりランダムベクトルＶを生成する。
【００４７】
ステップＳ１１２において、クライアント端末１０のＣＰＵ（検証用タグ算出手段１３）は、検証用タグＭＶを算出し、端末記憶部３１に記憶させる。
【００４８】
ステップＳ１１３において、クライアント端末１０のＣＰＵ（サーバタグ受信手段１４）は、それぞれのサーバ５０に、シード値ｘを送信する。
【００４９】
ステップＳ２１１において、サーバ５０のＣＰＵ（サーバ用ベクトル生成手段５２）は、記憶しているサーバ用キーｋｉと、受信したシード値ｘとに基づいてサーバ用ランダムベクトルＶｉを生成する。
【００５０】
ステップＳ２１２において、サーバ５０のＣＰＵ（サーバタグ算出手段５３）は、サーバ用ランダムベクトルＶｉとファイルＭとからサーバタグＭＶｉを算出する。
【００５１】
ステップＳ２１３において、サーバ５０のＣＰＵ（サーバタグ送信手段５４）は、サーバタグＭＶｉをクライアント端末１０に送信する。
【００５２】
ステップＳ１１４において、クライアント端末１０のＣＰＵ（検証手段１５）は、受信したサーバタグＭＶｉの合計を算出する。
【００５３】
ステップＳ１１５において、クライアント端末１０のＣＰＵ（検証手段１５）は、サーバタグＭＶｉの合計と、検証用タグＭＶとを比較し、ファイルＭが正しく保存されていることを検証する。
【００５４】
本実施形態によれば、クライアント端末１０は、データ量が少ないシード値をサーバに送ってサーバタグＭＶｉを算出させるので、通信回線の負荷を軽減できる。さらに、クライアント端末１０は、公開可能なシード値ｘを複数のサーバ５０に共通で送信して、サーバ５０ごとのサーバ用ランダムベクトルＶｉをサーバ５０に算出させるので、処理負荷を低減できる。さらに、クライアント端末１０は、キーｋ及びサーバ用キーｋｉを再利用できる。したがって、クライアント端末１０は、同一のファイルＭを複数のサーバ５０に保存させた場合に、これらのファイルＭが正しく保存されていることを容易に検証することができる。
さらに、クライアント端末１０は、サーバ５０においてそれぞれ異なるサーバ用キーｋｉを用いて検証するので、サーバ５０ごとに算出されるサーバタグＭＶｉが異なり検証の信頼度を高めることができる。
さらに、クライアント端末１０は、予測が困難なランダム値をシード値ｘとして用いるので、サーバ５０において予めサーバタグＭＶｉが算出されてファイルＭの状態が偽装されるリスクを低減できる。
さらに、クライアント端末１０は、キーｋを変更することにより、検証用のタグを更新できるので、同一のシード値ｘを再度送信した場合にも、予めサーバタグＭＶｉが算出されるリスクを低減できる。
【００５５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【００５６】
例えば、本実施形態では、キーｋを変更すると共に、サーバ用キーｋｉを生成するとしたが、これには限られない。クライアント端末１０は、キーｋを変えずに、ｋ＝Σｋｉを満たすように変更したサーバ用キーｋｉを、検証の度にサーバ５０に送信してもよい。サーバ用キーｋｉの変更は、ユーザの指示によって行われてもよく、定期的に行われてもよい。クライアント端末１０は、シード値ｘを変えない場合、検証用タグＭＶを算出し直さなくても、サーバ５０でのサーバタグＭＶｉを新たに算出させて、検証することができ、サーバタグＭＶｉが予め算出されるリスクを低減できる。
【００５７】
例えば、本実施形態では、ファイルＭを保存した複数のサーバ５０の全てを対象としたが、これには限られない。例えば、クライアント端末１０は、複数のサーバ５０のうちのいずれかでファイルＭが正しく保存されていないことを検知した場合、複数のサーバ５０のうちの一部を対象としてもよい。クライアント端末１０は、対象のサーバ５０の組み合わせを変えてサーバ用キーｋｉを送り、ファイルＭが正しく保存されているサーバ５０の組み合わせを抽出することにより、正しく保存されていないサーバ５０を検出することができる。
【００５８】
例えば、本実施形態では、ファイルＭは、クライアント端末１０からサーバ５０に送信されて保存されることとしたが、これには限られない。他のユーザ端末によりサーバ５０に保存されたファイルＭをクライアント端末１０が検証する構成であってもよい。
【００５９】
検証システム１による一連の処理は、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。また、当該プログラムは、コンピュータ読み取り可能な記録媒体（例えば、ＣＤ−ＲＯＭのようなリムーバブルメディア等）に記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【符号の説明】
【００６０】
１      検証システム
１０    クライアント端末
１１    キー送信手段
１２    ランダムベクトル生成手段
１３    検証用タグ算出手段
１４    サーバタグ受信手段
１５    検証手段
３１    端末記憶部
５０    サーバ
５１    キー受信手段
５２    サーバ用ベクトル生成手段
５３    サーバタグ算出手段
５４    サーバタグ送信手段
６１    サーバ記憶部
７０    ネットワーク
【図１】
0006370246.tif 000003
【図２】
0006370246.tif 000004
【図３】
0006370246.tif 000005
【図４】
0006370246.tif 000006