(57)【要約】【課題】サーバごとにそれぞれ異なるファイルを保存させ、オンラインファイルの安全性を安全で効率的に検証するクライアント端末、サーバ、システム、方法及びプログラムを提供すること。【解決手段】クライアント端末１０は、変換規則に基づいて保存ファイルをサーバ５０ごとに作成し、秘密ベクトルをランダムに作成し、秘密ベクトルが送信されるサーバ５０を選択し、選択したサーバ５０の保存ファイルと秘密ベクトルとに基づいて、検証用タグを作成し、検証用タグ記憶手段３１に記憶させる。クライアント端末１０は、選択されなかったサーバ５０に対してキャンセルベクトルを作成する。そして、サーバ５０に、秘密ベクトルとキャンセルベクトルとを送信し、サーバ５０において、算出されたタグ情報を、それぞれのサーバ５０から受信し、受信したタグ情報を合計し、検証用タグ記憶手段３１に記憶された検証用タグに基づいて、保存ファイルの安全性を検証する。【選択図】図１
2016025563.tif 000002
【特許請求の範囲】
【請求項１】
ｋ個（ｋ≧１の整数）の独立したサーバのそれぞれにファイルを送信し、送信された前記ファイルを受信した前記サーバによって保存された保存ファイルの安全性を検証するクライアント端末であって、
元のファイルと、前記保存ファイルとの変換規則を予め記憶する変換規則記憶手段と、
前記変換規則記憶手段によって記憶された前記変換規則に基づいて、前記元のファイルから前記保存ファイルを前記サーバごとに作成する保存ファイル作成手段と、
前記ファイルを正方行列の形式に構成させたファイル行列を作成するファイル行列作成手段と、
前記保存ファイルを、前記ファイル行列作成手段により正方行列の形式に構成させ、構成させた保存ファイル行列に対応するベクトルであって前記保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成する秘密ベクトル作成手段と、
前記秘密ベクトルが送信される前記サーバを選択するサーバ選択手段と、
前記サーバ選択手段によって選択された前記サーバの前記保存ファイルと前記秘密ベクトルとに基づいて、前記検証用タグを作成する検証用タグ作成手段と、
前記検証用タグ作成手段によって作成された前記検証用タグを検証用タグ記憶手段に記憶させる検証用タグ記憶制御手段と、
前記検証用タグを算出するために用いられるベクトルであって前記秘密ベクトルとは別にランダムに作成され、前記サーバ選択手段によって選択されなかった前記サーバに対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成するキャンセルベクトル作成手段と、
前記保存ファイル作成手段によって作成された前記保存ファイルを前記サーバに送信するファイル送信手段と、
前記ファイル送信手段による送信とは別に、前記サーバに、前記秘密ベクトルと前記キャンセルベクトルとを送信するベクトル送信手段と、
前記サーバにおいて、前記保存ファイルと、受信した前記秘密ベクトル及び前記キャンセルベクトルとに基づいてタグ情報が算出され、算出された前記タグ情報を、それぞれの前記サーバから受信するタグ情報受信手段と、
前記タグ情報受信手段によって受信された前記タグ情報を合計し、合計した値と、前記検証用タグ記憶手段に記憶された前記検証用タグとに基づいて、前記保存ファイルの安全性を検証する安全性検証手段と、
を備えるクライアント端末。
【請求項２】
前記ファイル送信手段による送信後に、前記保存ファイルを削除するファイル削除手段と、
前記サーバのうち、所定の個数の前記サーバから前記保存ファイルを受信し、受信した所定の個数の前記保存ファイルに基づいて前記元のファイルを復元する復元手段と、をさらに備える請求項１に記載のクライアント端末。
【請求項３】
クライアント端末から受信したファイルを保存するサーバであって、
前記クライアント端末からファイルを受信するファイル受信手段と、
前記ファイル受信手段によって受信された前記ファイルをファイル記憶手段に記憶させるファイル保存手段と、
前記クライアント端末からベクトルを受信するベクトル受信手段と、
前記ベクトル受信手段によってベクトルを受信すると、前記ファイル記憶手段に記憶した前記ファイルを正方行列の形式に構成させたファイル行列を作成する保存ファイル行列作成手段と、
前記保存ファイル行列作成手段によって作成された前記ファイル行列の行成分と、前記ベクトル受信手段によって受信された前記ベクトルとの積によるタグ情報を作成するタグ情報作成手段と、
前記タグ情報作成手段によって作成された前記タグ情報を、前記クライアント端末に送信するタグ情報送信手段と、を備え、
前記クライアント端末が前記ファイルの安全性を検証することができるようにする、サーバ。
【請求項４】
請求項１に記載のクライアント端末と、請求項３に記載のサーバとから構成される安全性検証システム。
【請求項５】
請求項１に記載のクライアント端末が実行する方法であって、
前記保存ファイル作成手段が、前記変換規則記憶手段によって記憶された前記変換規則に基づいて、前記元のファイルから前記保存ファイルを前記サーバごとに作成する保存ファイル作成ステップと、
前記ファイル行列作成手段が、前記ファイルを正方行列の形式に構成させたファイル行列を作成するファイル行列作成ステップと、
前記秘密ベクトル作成手段が、前記保存ファイルを、前記ファイル行列作成手段により正方行列の形式に構成させ、構成させた保存ファイル行列に対応するベクトルであって前記保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成する秘密ベクトル作成ステップと、
前記サーバ選択手段が、前記秘密ベクトルが送信される前記サーバを選択するサーバ選択ステップと、
前記検証用タグ作成手段が、前記サーバ選択ステップによって選択された前記サーバの前記保存ファイルと前記秘密ベクトルとに基づいて、前記検証用タグを作成する検証用タグ作成ステップと、
前記検証用タグ記憶制御手段が、前記検証用タグ作成ステップによって作成された前記検証用タグを検証用タグ記憶手段に記憶させる検証用タグ記憶制御ステップと、
前記キャンセルベクトル作成手段が、前記検証用タグを算出するために用いられるベクトルであって前記秘密ベクトルとは別にランダムに作成され、前記サーバ選択ステップによって選択されなかった前記サーバに対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成するキャンセルベクトル作成ステップと、
前記ファイル送信手段が、前記保存ファイル作成ステップによって作成された前記保存ファイルを前記サーバに送信するファイル送信ステップと、
前記ベクトル送信手段が、前記ファイル送信ステップによる送信とは別に、前記サーバに、前記秘密ベクトルと前記キャンセルベクトルとを送信するベクトル送信ステップと、
前記タグ情報受信手段が、前記サーバにおいて、前記保存ファイルと、受信した前記秘密ベクトル及び前記キャンセルベクトルとに基づいてタグ情報が算出され、算出された前記タグ情報を、それぞれの前記サーバから受信するタグ情報受信ステップと、
前記安全性検証手段が、前記タグ情報受信ステップによって受信された前記タグ情報を合計し、合計した値と、前記検証用タグ記憶手段に記憶された前記検証用タグとに基づいて、前記保存ファイルの安全性を検証する安全性検証ステップと、
を備える方法。
【請求項６】
コンピュータに、請求項５に記載した方法の各ステップを実行させるためのプログラム。
【請求項７】
請求項３に記載のサーバが実行する方法であって、
前記ファイル受信手段が、前記クライアント端末からファイルを受信するファイル受信ステップと、
前記ファイル保存手段が、前記ファイル受信ステップによって受信された前記ファイルをファイル記憶手段に記憶させるファイル保存ステップと、
前記ベクトル受信手段が、前記クライアント端末からベクトルを受信するベクトル受信ステップと、
前記保存ファイル行列作成手段が、前記ベクトル受信ステップによってベクトルを受信すると、前記ファイル記憶手段に記憶した前記ファイルを正方行列の形式に構成させたファイル行列を作成する保存ファイル行列作成ステップと、
前記タグ情報作成手段が、前記保存ファイル行列作成ステップによって作成された前記ファイル行列の行成分と、前記ベクトル受信ステップによって受信された前記ベクトルとの積によるタグ情報を作成するタグ情報作成ステップと、
前記タグ情報送信手段が、前記タグ情報作成ステップによって作成された前記タグ情報を、前記クライアント端末に送信するタグ情報送信ステップと、を備え、
前記クライアント端末が前記ファイルの安全性を検証することができるようにする、方法。
【請求項８】
コンピュータに、請求項７に記載した方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数サーバを対象としたオンラインファイルの安全性を検証するクライアント端末、サーバ、システム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、サーバ側に保管されているデータの安全性や、サーバ側の処理の安全性を保証する技術は、提案されている（例えば、非特許文献１）。このようなデータの安全性を保証する技術では、保管するデータを符号化したり、データが改竄されていないことを示すタグ情報により不定期に確認チェックを行ったりしている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｃｈｒｉｓ  Ｐａｃｅ  ａｎｄ  Ｂａｒｂａｒａ  Ｈｕｄｓｏｎ，Ｆｉｘｉｎｇ  Ｙｏｕｒ  Ｄｒｏｐｂｏｘ  Ｐｒｏｂｌｅｍ，２０１２年３月ｈｔｔｐｓ：／／ｓｅｃｕｒｅ２．ｓｏｐｈｏｓ．ｃｏｍ／ｅｎ−ｕｓ／ｍｅｄｉａｌｉｂｒａｒｙ／Ｇａｔｅｄ％２０Ａｓｓｅｔｓ／ｗｈｉｔｅ％２０ｐａｐｅｒｓ／ｓｏｐｈｏｓｆｉｘｉｎｇｙｏｕｒｄｒｏｐｂｏｘｐｒｏｂｌｅｍｗｐｎａ．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、ファイルの安全性検証が効率的に実施できない。
また、タグ情報による確認チェックの場合、攻撃者が、タグ情報を保持しておき、改竄後のチェックに対し、タグ情報のみを応答するようにすると、従来技術では、そのような攻撃を検出できない場合があった。
【０００５】
このような従来技術の課題を解決する発明として、安全性を検証するクライアント端末の発明がある。このクライアント端末は、ファイルを式１−１のように行列で構成させ、検証用のランダムベクトルν（要素が√Ｌ個のν１、ν２、・・・、ν√Ｌからなるベクトルν）を作成し、式１−２で表わされる検証用タグを記憶し、ランダムベクトルνの送信に対してサーバから送信されたタグ情報（サーバ５０−１〜サーバ５０−ｋ）を検証する。
【０００６】
【数１】
2016025563.tif 000003
【０００７】
【数２】
2016025563.tif 000004
【０００８】
【数３】
2016025563.tif 000005
【０００９】
しかしながら、上述の発明は、複数のサーバに同一のファイルを保存している。
すなわち、上述の発明では、サーバごとにそれぞれ異なるファイルを保存させると、検証する側で、サーバごとに検証用の情報を記憶する必要があり、効率的ではなかった。
そこで、安全性の向上のために、サーバごとにそれぞれ異なるファイルを保存させても、ファイルの安全性検証が効率的に実施できるシステムが求められている。
【００１０】
本発明は、サーバごとにそれぞれ異なるファイルを保存させ、オンラインファイルの安全性を安全で効率的に検証するクライアント端末、サーバ、システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
サーバが３台の場合の例について、概略説明する。
元のファイルが、ｆ１，ｆ２，・・・，ｆＬのブロックから構成されるとする。
この場合に、クライアント端末は、サーバ１〜３に、次のようなブロックの構成からなるそれぞれ異なるファイルを保存ファイルとして送信する。
サーバ１の保存ファイル：ｆ１＋ｆ２，・・・，ｆＬ−１＋ｆＬ
サーバ２の保存ファイル：ｆ１＋２ｆ２，・・・，ｆＬ−１＋２ｆＬ
サーバ３の保存ファイル：２ｆ１＋ｆ２，・・・，２ｆＬ−１＋ｆＬ
この場合、サーバ１〜３に保存されるファイルと、元のファイルとの関係は、変換規則によって式２−１の行列形式で表わされる。
【００１２】
【数４】
2016025563.tif 000006
【００１３】
そして、クライアント端末は、秘密ベクトルνと、キャンセルベクトルｕとをランダムに作成し、あるサーバに秘密ベクトルνとキャンセルベクトルｕとを組み合わせたベクトルを送信し、残りのサーバに秘密ベクトルνを含まないキャンセルベクトルｕから成るベクトルを送信する。すなわち、キャンセルベクトルｕは、サーバごとのタグ情報が合計された場合に相殺されるように、サーバごとに算出される。
クライアント端末は、秘密ベクトルνを含むベクトルを送信するサーバについての検証用タグ情報を記憶する。
サーバ側は、保存ファイルと送信されたベクトルとのタグ情報を算出し、クライアント端末に送信する。
クライアント端末は、受信したタグ情報を合計し、キャンセルベクトルに関する項が相殺されて、秘密ベクトルνに関するタグ情報を算出する。
このタグ情報と、記憶した検証用タグ情報とが等しい場合、クライアント端末は、保存ファイルが改竄されていないことを検証する。すなわち、クライアント端末は、検証するごとに異なるキャンセルベクトルをチャレンジとしてサーバに送信し、サーバごとに異なる保存ファイルを、記憶した検証用タグ情報に基づいて検証する。
具体的には、以下のような解決手段を提供する。
【００１４】
（１）  ｋ個（ｋ≧１の整数）の独立したサーバのそれぞれにファイルを送信し、送信された前記ファイルを受信した前記サーバによって保存された保存ファイルの安全性を検証するクライアント端末であって、元のファイルと、前記保存ファイルとの変換規則を予め記憶する変換規則記憶手段と、前記変換規則記憶手段によって記憶された前記変換規則に基づいて、前記元のファイルから前記保存ファイルを前記サーバごとに作成する保存ファイル作成手段と、前記ファイルを正方行列の形式に構成させたファイル行列を作成するファイル行列作成手段と、前記保存ファイルを、前記ファイル行列作成手段により正方行列の形式に構成させ、構成させた保存ファイル行列に対応するベクトルであって前記保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成する秘密ベクトル作成手段と、前記秘密ベクトルが送信される前記サーバを選択するサーバ選択手段と、前記サーバ選択手段によって選択された前記サーバの前記保存ファイルと前記秘密ベクトルとに基づいて、前記検証用タグを作成する検証用タグ作成手段と、前記検証用タグ作成手段によって作成された前記検証用タグを検証用タグ記憶手段に記憶させる検証用タグ記憶制御手段と、前記検証用タグを算出するために用いられるベクトルであって前記秘密ベクトルとは別にランダムに作成され、前記サーバ選択手段によって選択されなかった前記サーバに対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成するキャンセルベクトル作成手段と、前記保存ファイル作成手段によって作成された前記保存ファイルを前記サーバに送信するファイル送信手段と、前記ファイル送信手段による送信とは別に、前記サーバに、前記秘密ベクトルと前記キャンセルベクトルとを送信するベクトル送信手段と、前記サーバにおいて、前記保存ファイルと、受信した前記秘密ベクトル及び前記キャンセルベクトルとに基づいてタグ情報が算出され、算出された前記タグ情報を、それぞれの前記サーバから受信するタグ情報受信手段と、前記タグ情報受信手段によって受信された前記タグ情報を合計し、合計した値と、前記検証用タグ記憶手段に記憶された前記検証用タグとに基づいて、前記保存ファイルの安全性を検証する安全性検証手段と、を備えるクライアント端末。
【００１５】
（１）の構成によれば、（１）に係るクライアント端末は、元のファイルと、保存ファイルとの変換規則を予め記憶する変換規則記憶手段を備え、変換規則に基づいて、元のファイルから保存ファイルをサーバごとに作成し、保存ファイルを正方行列の形式に構成させた保存ファイル行列に対応するベクトルであって保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成し、秘密ベクトルが送信されるサーバを選択し、選択したサーバの保存ファイルと秘密ベクトルとに基づいて、保存ファイルの検証のためのタグである検証用タグを作成し、作成した検証用タグを検証用タグ記憶手段に記憶させ、検証用タグを算出するために用いられるベクトルであって秘密ベクトルとは別にランダムに作成され、選択されなかったサーバに対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成し、作成した保存ファイルをサーバに送信する。そして、保存ファイルの送信とは別に、サーバに、秘密ベクトルとキャンセルベクトルとを送信し、サーバにおいて、保存ファイルと、受信した秘密ベクトル及びキャンセルベクトルとに基づいてタグ情報が算出され、算出されたタグ情報を、それぞれのサーバから受信し、受信したタグ情報を合計し、合計した値と、検証用タグ記憶手段に記憶された検証用タグとに基づいて、保存ファイルの安全性を検証する。
【００１６】
すなわち、（１）に係るクライアント端末は、サーバごとにそれぞれ異なるファイルを送信して保存させ、ランダムに作成したベクトルをサーバに送信して、保存させた保存ファイルを検証する。
したがって、（１）に係るクライアント端末は、サーバごとにそれぞれ異なるファイルを保存させ、サーバごとに検証用の情報を記憶することなく効率的に検証し、オンラインファイルの安全性を安全で効率的に確認することができる。
【００１７】
（２）  前記ファイル送信手段による送信後に、前記保存ファイルを削除するファイル削除手段と、前記サーバのうち、所定の個数の前記サーバから前記保存ファイルを受信し、受信した所定の個数の前記保存ファイルに基づいて前記元のファイルを復元する復元手段と、をさらに備える（１）に記載のクライアント端末。
【００１８】
したがって、（２）に係るクライアント端末は、サーバにファイルを送信した後にファイルを削除しても、オンラインファイルの安全性を安全で効率的に確認することができ、元のファイルを復元することができる。
【００１９】
（３）  クライアント端末から受信したファイルを保存するサーバであって、前記クライアント端末からファイルを受信するファイル受信手段と、前記ファイル受信手段によって受信された前記ファイルをファイル記憶手段に記憶させるファイル保存手段と、前記クライアント端末からベクトルを受信するベクトル受信手段と、前記ベクトル受信手段によってベクトルを受信すると、前記ファイル記憶手段に記憶した前記ファイルを正方行列の形式に構成させたファイル行列を作成する保存ファイル行列作成手段と、前記保存ファイル行列作成手段によって作成された前記ファイル行列の行成分と、前記ベクトル受信手段によって受信された前記ベクトルとの積によるタグ情報を作成するタグ情報作成手段と、前記タグ情報作成手段によって作成された前記タグ情報を、前記クライアント端末に送信するタグ情報送信手段と、を備え、前記クライアント端末が前記ファイルの安全性を検証することができるようにする、サーバ。
【００２０】
したがって、（３）に係るサーバは、クライアント端末においてオンラインファイルの安全性を安全で効率的に確認できるようにする。
【００２１】
（４）  （１）に記載のクライアント端末と、（３）に記載のサーバとから構成される安全性検証システム。
【００２２】
したがって、（４）に係る安全性検証システムは、オンラインファイルの安全性を安全で効率的に確認することができる。
【００２３】
（５）  （１）に記載のクライアント端末が実行する方法であって、前記保存ファイル作成手段が、前記変換規則記憶手段によって記憶された前記変換規則に基づいて、前記元のファイルから前記保存ファイルを前記サーバごとに作成する保存ファイル作成ステップと、前記ファイル行列作成手段が、前記ファイルを正方行列の形式に構成させたファイル行列を作成するファイル行列作成ステップと、前記秘密ベクトル作成手段が、前記保存ファイルを、前記ファイル行列作成ステップにより正方行列の形式に構成させ、構成させた保存ファイル行列に対応するベクトルであって前記保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成する秘密ベクトル作成ステップと、前記サーバ選択手段が、前記秘密ベクトルが送信される前記サーバを選択するサーバ選択ステップと、前記検証用タグ作成手段が、前記サーバ選択ステップによって選択された前記サーバの前記保存ファイルと前記秘密ベクトルとに基づいて、前記検証用タグを作成する検証用タグ作成ステップと、前記検証用タグ記憶制御手段が、前記検証用タグ作成ステップによって作成された前記検証用タグを検証用タグ記憶手段に記憶させる検証用タグ記憶制御ステップと、前記キャンセルベクトル作成手段が、前記検証用タグを算出するために用いられるベクトルであって前記秘密ベクトルとは別にランダムに作成され、前記サーバ選択ステップによって選択されなかった前記サーバに対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成するキャンセルベクトル作成ステップと、前記ファイル送信手段が、前記保存ファイル作成ステップによって作成された前記保存ファイルを前記サーバに送信するファイル送信ステップと、前記ベクトル送信手段が、前記ファイル送信ステップによる送信とは別に、前記サーバに、前記秘密ベクトルと前記キャンセルベクトルとを送信するベクトル送信ステップと、前記タグ情報受信手段が、前記サーバにおいて、前記保存ファイルと、受信した前記秘密ベクトル及び前記キャンセルベクトルとに基づいてタグ情報が算出され、算出された前記タグ情報を、それぞれの前記サーバから受信するタグ情報受信ステップと、前記安全性検証手段が、前記タグ情報受信ステップによって受信された前記タグ情報を合計し、合計した値と、前記検証用タグ記憶手段に記憶された前記検証用タグとに基づいて、前記保存ファイルの安全性を検証する安全性検証ステップと、を備える方法。
【００２４】
したがって、（５）に係る方法は、サーバごとにそれぞれ異なるファイルを保存させ、オンラインファイルの安全性を安全で効率的に確認することができる。
【００２５】
（６）  コンピュータに、（５）に記載した方法の各ステップを実行させるためのプログラム。
【００２６】
したがって、（６）に係るプログラムは、コンピュータに、サーバごとにそれぞれ異なるファイルを保存させ、オンラインファイルの安全性を安全で効率的に確認させることができる。
【００２７】
（７）  （３）に記載のサーバが実行する方法であって、前記ファイル受信手段が、前記クライアント端末からファイルを受信するファイル受信ステップと、前記ファイル保存手段が、前記ファイル受信ステップによって受信された前記ファイルをファイル記憶手段に記憶させるファイル保存ステップと、前記ベクトル受信手段が、前記クライアント端末からベクトルを受信するベクトル受信ステップと、前記保存ファイル行列作成手段が、前記ベクトル受信ステップによってベクトルを受信すると、前記ファイル記憶手段に記憶した前記ファイルを正方行列の形式に構成させたファイル行列を作成する保存ファイル行列作成ステップと、前記タグ情報作成手段が、前記保存ファイル行列作成ステップによって作成された前記ファイル行列の行成分と、前記ベクトル受信ステップによって受信された前記ベクトルとの積によるタグ情報を作成するタグ情報作成ステップと、前記タグ情報送信手段が、前記タグ情報作成ステップによって作成された前記タグ情報を、前記クライアント端末に送信するタグ情報送信ステップと、を備え、前記クライアント端末が前記ファイルの安全性を検証することができるようにする、方法。
【００２８】
したがって、（７）に係る方法は、サーバが、クライアント端末から受信したファイルを保存し、オンラインファイルの安全性を安全で効率的に確認することができるようにする。
【００２９】
（８）  コンピュータに、（７）に記載した方法の各ステップを実行させるためのプログラム。
【００３０】
したがって、（８）に係るプログラムは、サーバのコンピュータに、クライアント端末から受信したファイルを保存させ、オンラインファイルの安全性を安全で効率的に確認させることができる。
【発明の効果】
【００３１】
本発明によれば、サーバごとにそれぞれ異なるファイルを保存させ、オンラインファイルの安全性を安全で効率的に検証することができる。さらに、本発明によれば、オンラインファイル共有ソフトにおけるオンライン上にあるファイルの安全性を確認することができる。さらに、本技術は、より高速かつ安全なファイルの完全性チェックサービスを実現できるため、クラウドサービスにおける差別化要素技術となりうる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る安全性検証システムにおけるクライアント端末とサーバとの構成を示す図である。
【図２】本発明の一実施形態に係るクライアント端末を含む安全性検証システムのファイル保存処理を示すフローチャートである。
【図３】本発明の一実施形態に係るクライアント端末を含む安全性検証システムの安全性検証処理を示すフローチャートである。
【発明を実施するための形態】
【００３３】
以下、本発明の実施形態について、図を参照しながら説明する。
図１は、本発明の一実施形態に係る安全性検証システム１におけるクライアント端末１０とサーバ５０との構成を示す図である。
クライアント端末１０は、ｋ個（ｋ≧１の整数）の独立したサーバ５０のそれぞれにファイルを送信し、送信されたファイルを受信したサーバ５０によって保存された保存ファイルの安全性を検証するために、検証用タグ記憶手段３１と、変換規則記憶手段３２と、保存ファイル作成手段１１と、ファイル行列作成手段１１１と、秘密ベクトル作成手段１２と、サーバ選択手段１３と、検証用タグ作成手段１４と、検証用タグ記憶制御手段１４１と、キャンセルベクトル作成手段４１と、ファイル送信手段１５と、ファイル削除手段１５１と、復元手段１５２と、ベクトル送信手段２１と、タグ情報受信手段２２と、安全性検証手段２３と、を備える。以下、各部ごとに詳述する。
なお、本実施形態では、サーバ５０が３台（サーバ５０−１、サーバ５０−２、サーバ５０−３と言い、３台を区別しない場合にサーバ５０と言う。）の場合について説明する。その説明の後に、一般的な場合（サーバ５０がｊ台の場合）について、数式で説明する。
【００３４】
［ファイル保存について：クライアント端末１０側］
変換規則記憶手段３２は、元のファイルと、保存ファイルとの変換規則を予め記憶する。
具体的には、変換規則は、行列で表わされる（後述する式２−２参照）。
【００３５】
保存ファイル作成手段１１は、変換規則記憶手段３２によって記憶された変換規則に基づいて、元のファイルから保存ファイルをサーバ５０ごとに作成する。
【００３６】
具体的には、サーバ５０に保存するための元のファイルは、Ｌレコードのブロックｆ１〜ｆＬから構成される。
元のファイル：ｆ１，ｆ２，・・・，ｆＬ
【００３７】
保存ファイル作成手段１１は、元のファイルから変換規則によりそれぞれ異なるファイルを作成する。保存ファイル作成手段１１は、例えば、次のようなファイルを作成する。
サーバ５０−１の保存ファイル１：ｆ１＋ｆ２，・・・，ｆＬ−１＋ｆＬ
サーバ５０−２の保存ファイル２：ｆ１＋２ｆ２，・・・，ｆＬ−１＋２ｆＬ
サーバ５０−３の保存ファイル３：２ｆ１＋ｆ２，・・・，２ｆＬ−１＋ｆＬ
この場合、サーバ５０−１〜５０−３に保存されるファイルと、元のファイルとの関係は、変換規則によって式２−２の行列形式で表わされる。
【００３８】
【数５】
2016025563.tif 000007
【００３９】
ファイル行列作成手段１１１は、ファイルを正方行列の形式に構成させたファイル行列を作成する。
ファイルは、線形符号によってエンコードされているとしてもよい。線形符号化されているので、クライアント端末１０は、ファイル行列を作成する際や、後述する秘密ベクトルを作成する際、後述するタグ情報による検証において、高速に処理することができる。
【００４０】
秘密ベクトル作成手段１２は、保存ファイルを、ファイル行列作成手段により正方行列の形式に構成させ、構成させた保存ファイル行列に対応するベクトルであって保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成する。
具体的には、秘密ベクトル作成手段１２は、保存ファイル行列の列に対応した秘密ベクトルをランダムに作成する。例えば、秘密ベクトル作成手段１２は、要素が√Ｌ個のν１、ν２、・・・、ν√Ｌからなる秘密ベクトルを作成する。
【００４１】
サーバ選択手段１３は、秘密ベクトルが送信されるサーバ５０を選択する。選択は、ランダムに行われるとしてよい。選択されたサーバ５０をタイプ２と言う。これに対し、選択されなかったサーバ５０をタイプ１と言う。後述するように、タイプ１のサーバ５０には、キャンセルベクトルが送信され、タイプ２のサーバ５０には、秘密ベクトル及びキャンセルベクトルが送信される。
【００４２】
検証用タグ作成手段１４は、サーバ選択手段１３によって選択されたサーバ５０の保存ファイルと秘密ベクトルとに基づいて、検証用タグを作成する。
【００４３】
検証用タグ記憶制御手段１４１は、検証用タグ作成手段１４によって作成された検証用タグを検証用タグ記憶手段３１に記憶させる。すなわち、検証用タグは検証時に使用されるために、クライアント端末１０において、安全かつ秘密に保管される。
【００４４】
例えば、サーバ選択手段１３は、秘密ベクトルを送信するサーバ５０として、サーバ５０−３を選択したとする。サーバ５０−３の保存ファイルは、上述の例によれば（２ａ＋ｂ）で表わされるので、検証用タグ作成手段１４は、検証用タグとして、秘密ベクトルをνとすると、式２−３を算出する。検証用タグ記憶制御手段１４１は、算出した検証用タグを検証用タグ記憶手段３１に記憶させる。
【００４５】
【数６】
2016025563.tif 000008
【００４６】
ファイル送信手段１５は、保存ファイル作成手段１１によって作成された保存ファイルをサーバ５０に送信する。具体的には、ファイル送信手段１５は、３台のサーバ５０に対して、それぞれ異なるファイル（例えば、上述の保存ファイル１〜３）を送信する。ファイル削除手段１５１は、ファイル送信手段１５による送信後に、送信した保存ファイルを削除する。復元手段１５２は、サーバ５０（例えば、サーバ５０−１、サーバ５０−２、サーバ５０−３の３台）のうち、所定の個数（例えば、３台のうち２台）のサーバ５０から保存ファイルを受信し、受信した所定の個数の保存ファイルに基づいて元のファイルを復元する。
【００４７】
［ファイル保存について：サーバ５０側］
ファイル受信手段５１は、クライアント端末１０からファイルを受信する。
ファイル保存手段５２は、ファイル受信手段５１によって受信されたファイルをファイル記憶手段６１に記憶させる。
【００４８】
［ファイルの安全性の検証について：クライアント端末１０側］
キャンセルベクトル作成手段４１は、検証用タグを算出するために用いられるベクトルであって秘密ベクトルとは別にランダムに作成され、サーバ選択手段１３によって選択されなかったサーバ５０（タイプ１と言う。）に対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成する。
具体的には、キャンセルベクトル作成手段４１は、キャンセルベクトルに関する演算が相殺されるように、キャンセルベクトルを作成する。例えば、上述の変換規則の場合、選択されたサーバ５０−３に対するベクトル（ｕ＋ν）に対し、サーバ５０−３におけるキャンセルベクトルｕの項が相殺されるように、式２−４のような方程式を立てて、ｃ１、ｃ２を求めると、ｃ１＝−３、ｃ２＝１が算出される。
したがって、キャンセルベクトル作成手段４１は、サーバ５０−１に対し送信するベクトルとして（−３ｕ）、サーバ５０−２に対し送信するベクトルとして（ｕ）を算出する。
【００４９】
【数７】
2016025563.tif 000009
【００５０】
ベクトル送信手段２１は、ファイル送信手段１５による送信とは別に、サーバ５０に、秘密ベクトル作成手段１２によって作成された秘密ベクトルと、キャンセルベクトル作成手段４１によって作成されたキャンセルベクトルとを送信する。具体的には、サーバ５０上に保存されたファイルの検証処理（改竄等がなされていないかの確認）をするために、ベクトル送信手段２１は、サーバ５０のうちタイプ１のサーバ５０にキャンセルベクトルを送信し、タイプ２のサーバ５０に、秘密ベクトル及びキャンセルベクトルを送信し、サーバ５０において保存されているファイルとのタグ情報を算出するように要求する。ベクトル送信手段２１は、ファイル送信手段１５による送信とは別に、不定期に、秘密ベクトル及びキャンセルベクトルを送信する。
【００５１】
タグ情報受信手段２２は、サーバ５０において、保存ファイルと、受信した秘密ベクトル及びキャンセルベクトルとに基づいてタグ情報が算出され、算出されたタグ情報を、それぞれのサーバ５０から受信する。具体的には、保存ファイルと、秘密ベクトル及びキャンセルベクトルを受信したタイプ２のサーバ５０において、サーバ５０は、受信した保存ファイルに基づいて作成したファイル行列の行成分と、受信した秘密ベクトル及びキャンセルベクトルとの積であるタグ情報を算出し、算出したタグ情報を、クライアント端末１０に送信する。同様に、キャンセルベクトルを受信したタイプ１のサーバ５０において、サーバ５０は、受信した保存ファイルに基づいて作成したファイル行列の行成分と、受信したキャンセルベクトルとの積であるタグ情報を算出し、算出したタグ情報を、クライアント端末１０に送信する。
【００５２】
安全性検証手段２３は、タグ情報受信手段２２によって受信されたタグ情報を合計し、合計した値と、検証用タグ記憶手段３１に記憶されている検証用タグとに基づいて、ファイルの安全性を検証する。具体的には、安全性検証手段２３は、受信されたタグ情報と、記憶されている検証用タグとを比較し、タグ情報と検証用タグとが等しいことに基づいて、サーバ５０に保存されて保存ファイルの正しさを検証する。
【００５３】
上述の例をまとめると、ベクトル送信手段２１は、次のようなベクトルをサーバ５０に送信する。
タイプ１のサーバ５０−１に送信するベクトル：−３ｕ
タイプ１のサーバ５０−２に送信するベクトル：ｕ
タイプ２のサーバ５０−３に送信するベクトル：ｕ＋ν
タグ情報受信手段２２は、サーバ５０から、次のようなタグ情報を受信する。
サーバ５０−１から受信するタグ情報：（ａ＋ｂ）（−３ｕ）＝−３ａｕ―３ｂｕ
サーバ５０−２から受信するタグ情報：（ａ＋２ｂ）ｕ＝ａｕ＋２ｂｕ
サーバ５０−３から受信するタグ情報：（２ａ＋ｂ）（ｕ＋ν）＝（２ａν＋ｂν）＋（２ａｕ＋ｂｕ）
安全性検証手段２３は、受信したタグ情報を合計し、（２ａν＋ｂν）を得る。安全性検証手段２３は、この値と、検証用タグ記憶手段３１に記憶された検証用タグの値（２ａν＋ｂν）とが等しいので、保存ファイルが改竄されていないことを検証する。
【００５４】
なお、クライアント端末１０は、サーバ５０を小グループに分け、小グループごとのタグ情報を検証し、データの改竄が行われたサーバ５０を含むグループを探索（例えば、２分法）することにより、データの改竄が行われたサーバ５０を特定することも可能である。
【００５５】
［ファイルの安全性の検証について：サーバ５０側］
ベクトル受信手段５３は、クライアント端末１０のベクトル送信手段２１からベクトルを受信する。
保存ファイル行列作成手段５４は、ベクトル受信手段５３によってベクトルを受信すると、ファイル記憶手段６１に記憶したファイルを正方行列の形式に構成させたファイル行列を作成する。保存ファイル行列作成手段５４が作成するファイル行列は、クライアント端末１０において作成されたファイル行列と同様である。
【００５６】
タグ情報作成手段５５は、保存ファイル行列作成手段５４によって作成されたファイル行列の行成分と、ベクトル受信手段５３によって受信されたベクトルとの積によるタグ情報を作成する。具体的には、タグ情報作成手段５５は、式（２−５）により、保存しているファイルのファイル行列の行成分と、受信したベクトルとの積を計算し、タグ情報σｒを算出する。ｒはファイル行列のｒ番目の行成分を表わす。
【００５７】
【数８】
2016025563.tif 000010
【００５８】
タグ情報送信手段５６は、タグ情報作成手段５５によって作成されたタグ情報をクライアント端末１０に送信する。
【００５９】
［一般化したアルゴリズムについて］
サーバがｊ台の場合の一般化したアルゴリズムについて説明する。
【００６０】
サーバ５０においての保存ファイルは、式３−１のように表わされる。
【００６１】
【数９】
2016025563.tif 000011
【００６２】
よって、サーバ５０−ｊに保存される保存ファイルは、式３−２のように表わされる。
ここで、ｔ＋ｐは、サーバ５０の全台数を表わす。ｔがタイプ１のサーバの台数、ｐがタイプ２のサーバの台数を表わす。サーバ５０の全台数のうちｔ台のサーバに保存されている保存ファイルにより、ファイルの全体を復元できる。タイプ２のサーバ５０は、秘密ベクトルを含むベクトルを受信する。
【００６３】
【数１０】
2016025563.tif 000012
【００６４】
クライアント端末１０に記憶される検証用タグ情報は、式３−３のように表わされる。
【００６５】
【数１１】
2016025563.tif 000013
【００６６】
タイプ２のサーバ５０が送信するタグ情報は、式３−４のように表わされる。
【００６７】
【数１２】
2016025563.tif 000014
【００６８】
タイプ２のサーバ５０から受信したタグ情報の合計は、式３−５のように表わされる。
【００６９】
【数１３】
2016025563.tif 000015
【００７０】
タイプ１のサーバから受信したタグ情報の合計は、式３−６のように表わされる。
【００７１】
【数１４】
2016025563.tif 000016
【００７２】
タイプ１のサーバ５０に、一組の係数ｃｉを選択し、ｃｉは式３−７のように表わされる。ベクトル送信手段は、ｉ番目のタイプ１のサーバ５０に、ｃｉｕのベクトルを送信する。受信したサーバ５０は、タグ情報としてベクトルｃｉｕｇｊを、クライアント端末１０に送信する。
【００７３】
【数１５】
2016025563.tif 000017
【００７４】
タイプ１のサーバ５０からのタグ情報の合計は、式３−８のように表わされる。
【００７５】
【数１６】
2016025563.tif 000018
【００７６】
タイプ２のサーバ５０からのタグ情報の合計は、式３−９のように表わされる。
【００７７】
【数１７】
2016025563.tif 000019
【００７８】
タイプ１のサーバ５０からのタグ情報と、タイプ２のサーバ５０からのタグ情報との合計は、式３−１０のように表わされる。
【００７９】
【数１８】
2016025563.tif 000020
【００８０】
安全性検証手段２３は、式３−１１が成立するか否かを検証する。
【００８１】
【数１９】
2016025563.tif 000021
【００８２】
図２は、本発明の一実施形態に係るクライアント端末１０を含む安全性検証システム１のファイル保存処理を示すフローチャートである。本発明の一実施形態に係るクライアント端末１０、サーバ５０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、それぞれの制御部（例えば、ＣＰＵ）が、ＯＳの下で所定のソフトウェアに従い実行する処理である。
【００８３】
ステップＳ１０１において、クライアント端末１０のＣＰＵ（保存ファイル作成手段１１、ファイル行列作成手段１１１）は、変換規則記憶手段３２によって記憶された変換規則に基づいて、元のファイルから保存ファイルをサーバ５０ごとに作成する。
ステップＳ１０２において、クライアント端末１０のＣＰＵ（秘密ベクトル作成手段１２、サーバ選択手段１３は、）は、秘密ベクトルをランダムに作成し、秘密ベクトルが送信されるサーバ５０を選択する。
ステップＳ１０３において、クライアント端末１０のＣＰＵ（検証用タグ作成手段１４、検証用タグ記憶制御手段１４１）は、ステップＳ１０２において選択されたサーバ５０の保存ファイルと秘密ベクトルとに基づいて、検証用タグを作成し、検証用タグ記憶手段３１に記憶させる。
ステップＳ１０４において、クライアント端末１０のＣＰＵ（ファイル送信手段１５）は、ステップＳ１０１においてサーバ５０ごとに作成された保存ファイルをサーバ５０にそれぞれ送信する。
【００８４】
ステップＳ２０１において、サーバ５０のＣＰＵ（ファイル受信手段５１、ファイル保存手段５２）は、クライアント端末１０から保存ファイルを受信し、受信した保存ファイルをファイル記憶手段６１に記憶させる。
【００８５】
ステップＳ１０５において、クライアント端末１０のＣＰＵ（ファイル削除手段１５１）は、ファイルを削除する。
【００８６】
図３は、本発明の一実施形態に係るクライアント端末１０を含む安全性検証システム１の安全性検証処理を示すフローチャートである。
【００８７】
ステップＳ１１１において、クライアント端末１０のＣＰＵ（キャンセルベクトル作成手段４１）は、キャンセルベクトルに関する演算が相殺されるように、キャンセルベクトルを作成する。
ステップＳ１１２において、クライアント端末１０のＣＰＵ（ベクトル送信手段２１）は、秘密ベクトル及びキャンセルベクトルをそれぞれのサーバ５０に送信する。
【００８８】
ステップＳ２１１において、タイプ１のサーバ５０のＣＰＵ（ベクトル受信手段５３、保存ファイル行列作成手段５４、タグ情報作成手段５５）は、保存ファイルと、受信したキャンセルベクトルとに基づいて、タグ情報を計算する。
ステップＳ２１２において、タイプ１のサーバ５０のＣＰＵ（タグ情報送信手段５６）は、計算したタグ情報をクライアント端末１０に送信する。
【００８９】
ステップＳ２１３において、タイプ２のサーバ５０のＣＰＵ（ベクトル受信手段５３、保存ファイル行列作成手段５４、タグ情報作成手段５５）は、保存ファイルと、受信した秘密ベクトル及びキャンセルベクトルとに基づいて、タグ情報を計算する。
ステップＳ２１４において、タイプ２のサーバ５０のＣＰＵ（タグ情報送信手段５６）は、計算したタグ情報をクライアント端末１０に送信する。
【００９０】
ステップＳ１１３において、クライアント端末１０のＣＰＵ（タグ情報受信手段２２）は、それぞれのサーバ５０から送信されたタグ情報を受信する。
ステップＳ１１４において、クライアント端末１０のＣＰＵ（安全性検証手段２３）は、受信したタグ情報に基づいて、タグ情報の合計を計算する。
ステップＳ１１５において、クライアント端末１０のＣＰＵ（安全性検証手段２３）は、タグ情報の合計と、検証用タグとが等しいことを確認する。
【００９１】
本実施形態によれば、クライアント端末１０は、元のファイルと、保存ファイルとの変換規則を予め記憶する変換規則記憶手段３２を備え、変換規則に基づいて、元のファイルから保存ファイルをサーバ５０ごとに作成し、保存ファイルを正方行列の形式に構成させた保存ファイル行列に対応するベクトルであって保存ファイルを検証するための検証用タグを算出するために用いられるベクトルである秘密ベクトルをランダムに作成し、秘密ベクトルが送信されるサーバ５０を選択し、選択したサーバ５０の保存ファイルと秘密ベクトルとに基づいて、保存ファイルの検証のためのタグである検証用タグを作成し、作成した検証用タグを検証用タグ記憶手段に記憶させ、検証用タグを算出するために用いられるベクトルであって秘密ベクトルとは別にランダムに作成され、選択されなかったサーバ５０に対してそれぞれ算出されるベクトルであるキャンセルベクトルを作成し、作成した保存ファイルをサーバ５０に送信する。そして、保存ファイルの送信とは別に、サーバ５０に、秘密ベクトルとキャンセルベクトルとを送信し、サーバ５０において、保存ファイルと、受信した秘密ベクトル及びキャンセルベクトルとに基づいてタグ情報が算出され、算出されたタグ情報を、それぞれのサーバ５０から受信し、受信したタグ情報を合計し、合計した値と、検証用タグ記憶手段３に記憶された検証用タグとに基づいて、保存ファイルの安全性を検証する。
したがって、クライアント端末１０は、サーバ５０ごとにそれぞれ異なるファイルを保存させ、サーバ５０ごとに検証用の情報を記憶することなく効率的に検証し、ランダムに作成したベクトルを用いて不定期に検証し、オンラインファイルの安全性を安全で効率的に確認することができる。
【００９２】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００９３】
１      安全性検証システム
１０    クライアント端末
１１    保存ファイル作成手段
１１１  ファイル行列作成手段
１２    秘密ベクトル作成手段
１３    サーバ選択手段
１４    検証用タグ作成手段
１４１  検証用タグ記憶制御手段
１５    ファイル送信手段
１５１  ファイル削除手段
１５２  復元手段
２１    ベクトル送信手段
２２    タグ情報受信手段
２３    安全性検証手段
３１    検証用タグ記憶手段
３２    変換規則記憶手段
４１    キャンセルベクトル作成手段
５０    サーバ
５１    ファイル受信手段
５２    ファイル保存手段
５３    ベクトル受信手段
５４    保存ファイル行列作成手段
５５    タグ情報作成手段
５６    タグ情報送信手段
６１    ファイル記憶手段
【図１】
2016025563.tif 000022
【図２】
2016025563.tif 000023
【図３】
2016025563.tif 000024