(57)【要約】  ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を提案する。  ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かを検証するデータ保持検証システム及び方法において、ユーザ端末からサーバ装置に所定の検証用情報を送信し、サーバ装置において、保持している検証対象データと、検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出したサーバ側証拠データをユーザ端末に送信し、ユーザ端末側において、検証用情報に基づくユーザ端末側証拠データと、サーバ装置から送信されたサーバ側証拠データとを比較し、比較結果に基づいて、サーバ装置が検証対象データを保持しているか否かを判定するようにした。
2014068734.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、
前記ユーザ端末から前記サーバ装置に所定の検証用情報を送信し、前記サーバ装置において、保持している前記検証対象データと、前記検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、
前記ユーザ端末側において、前記検証用情報に基づくユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する
ことを特徴とするデータ保持検証システム。
【請求項２】
前記ユーザ端末は、予め前記サーバ装置に公開パラメータを登録すると共に、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データに基づく第１の証蹟を第１の秘密鍵を用いて生成し、
前記ユーザ端末は、前記検証用情報として乱数を前記サーバ装置に送信し、
前記サーバ装置は、前記検証対象データ、前記乱数及び前記公開パラメータを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、
前記ユーザ端末は、前記乱数及び前記第１の証蹟に基づいて前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項１に記載のデータ保持検証システム。
【請求項３】
前記第１の秘密鍵は、２つの素数から構成され、
前記ユーザ端末は、前記２つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項２に記載のデータ保持検証システム。
【請求項４】
前記ユーザ端末は、
前記２つの素数からそれぞれ１を減算した値の積を法とし、前記検証対象データの値の指数を１とするべき乗剰余演算により前記第１の証蹟を算出し、
前記サーバ装置は、
前記公開パラメータを法とし、前記乱数を前記検証対象データの値の指数とするべき乗剰余演算により前記サーバ側証拠データを算出し、
前記ユーザ端末は、
前記公開パラメータを法とし、前記乱数を前記第１の証蹟の値の指数とするべき乗剰余演算により前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項３に記載のデータ保持検証システム。
【請求項５】
前記ユーザ端末は、
複数の第２の秘密鍵を生成し、
前記検証対象データを前記サーバ装置に預ける際に、複数の前記第２の秘密鍵の中から１つの前記第２の秘密鍵を用いて前記第１の証蹟を生成し、
前記第１の証蹟を生成する際に利用した前記第２の秘密鍵を前記検証用情報として前記サーバ装置に送信し、
前記第１の証蹟を前記ユーザ端末側証拠データとして、当該ユーザ端末側証拠データと、前記サーバ装置から送信される前記サーバ側証拠データとを比較する
ことを特徴とする請求項１に記載のデータ保持検証システム。
【請求項６】
前記ユーザ端末は、
前記検証対象データを上位、前記第２の秘密鍵の値を下位とする前記検証対象データ及び前記第２の秘密鍵を結合した値を入力とした一方向関数の出力値として前記第１の証蹟を生成し、
前記サーバ装置は、
前記検証対象データを上位、前記第２の秘密鍵の値を下位とする前記検証対象データ及び前記第２の秘密鍵を結合した値を入力とした一方向関数の出力値として前記サーバ側証拠データを生成し、
前記ユーザ端末は、
前記ユーザ端末側証拠データ及び前記サーバ側証拠データが同一である場合に、前記サーバ装置が前記検証対象データを保持していると判定する
ことを特徴とする請求項５に記載のデータ保持検証システム。
【請求項７】
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録され、
前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく第２の証蹟をそれぞれ生成し、生成した前記分割データごとの前記第２の証蹟を前記検証対象データと共に前記サーバ装置に送信し、
前記ユーザ端末は、前記検証用情報として、第３の秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、
前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いて前記サーバ側証拠データを算出し、
前記ユーザ端末は、前記第３の秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いて前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項１に記載のデータ保持検証システム。
【請求項８】
ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、
前記ユーザ端末から前記サーバ装置に所定の検証用情報を送信し、前記サーバ装置において、保持している前記検証対象データと、前記検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第１のステップと、
前記ユーザ端末側において、前記検証用情報に基づくユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第２のステップと
を備えることを特徴とするデータ保持検証方法。
【請求項９】
前記ユーザ端末は、予め前記サーバ装置に公開パラメータを登録すると共に、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データに基づく第１の証蹟を第１の秘密鍵を用いて生成し、
前記ユーザ端末は、前記検証用情報として乱数を前記サーバ装置に送信し、
前記サーバ装置は、前記検証対象データ、前記乱数及び前記公開パラメータを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、
前記ユーザ端末は、前記乱数及び前記第１の証蹟に基づいて前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項８に記載のデータ保持検証方法。
【請求項１０】
前記第１の秘密鍵は、２つの素数から構成され、
前記ユーザ端末は、前記２つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項９に記載のデータ保持検証方法。
【請求項１１】
前記ユーザ端末は、
前記２つの素数からそれぞれ１を減算した値の積を法とし、前記検証対象データの値の指数を１とするべき乗剰余演算により前記第１の証蹟を算出し、
前記サーバ装置は、
前記公開パラメータを法とし、前記乱数を前記検証対象データの値の指数とするべき乗剰余演算により前記サーバ側証拠データを算出し、
前記ユーザ端末は、
前記公開パラメータを法とし、前記乱数を前記第１の証蹟の値の指数とするべき乗剰余演算により前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項１０に記載のデータ保持検証方法。
【請求項１２】
前記ユーザ端末は、
複数の第２の秘密鍵を生成し、
前記検証対象データを前記サーバ装置に預ける際に、複数の前記第２の秘密鍵の中から１つの前記第２の秘密鍵を用いて前記第１の証蹟を生成し、
前記第１の証蹟を生成する際に利用した前記第２の秘密鍵を前記検証用情報として前記サーバ装置に送信し、
前記第１の証蹟を前記ユーザ端末側証拠データとして、当該ユーザ端末側証拠データと、前記サーバ装置から送信される前記サーバ側証拠データとを比較する
ことを特徴とする請求項８に記載のデータ保持検証方法。
【請求項１３】
前記ユーザ端末は、
前記検証対象データを上位、前記第２の秘密鍵の値を下位とする前記検証対象データ及び前記第２の秘密鍵を結合した値を入力とした一方向関数の出力値として前記第１の証蹟を生成し、
前記サーバ装置は、
前記検証対象データを上位、前記第２の秘密鍵の値を下位とする前記検証対象データ及び前記第２の秘密鍵を結合した値を入力とした一方向関数の出力値として前記サーバ側証拠データを生成し、
前記ユーザ端末は、
前記ユーザ端末側証拠データ及び前記サーバ側証拠データが同一である場合に、前記サーバ装置が前記検証対象データを保持していると判定する
ことを特徴とする請求項１２に記載のデータ保持検証方法。
【請求項１４】
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録され、
前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく第２の証蹟をそれぞれ生成し、生成した前記分割データごとの前記第２の証蹟を前記検証対象データと共に前記サーバ装置に送信し、
前記ユーザ端末は、前記検証用情報として、第３の秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、
前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いて前記サーバ側証拠データを算出し、
前記ユーザ端末は、前記第３の秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いて前記ユーザ端末側証拠データを算出する
ことを特徴とする請求項１に記載のデータ保持検証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保持検証システム及び方法に関し、例えば、クラウドサービスを行うクラウドシステムに適用して好適なものである。
【背景技術】
【０００２】
近年、情報システムの開発の効率化、運用管理費の低減などを目的に、サーバ及びストレージ装置を自分で所有せず、データの記憶保持を外部業者に委託するクラウドと呼ばれる運用管理形態が脚光を浴びている。このようなクラウドサービスの利用は、効率化やコスト低減というメリットを有する反面、サーバ及びストレージ装置を管理する業者がサーバ及びストレージ装置を利用する者とは異なるため、機密情報を外部業者に預託することに不安が生じる。そのため、事前にデータ損失の検知策として暗号技術を活用し、データの信頼性を確保する必要がある。【０００３】
しかし、単純にデータ損失を検知する為にデータをダウンロードする方法では、通信量が膨大になるためにネットワーク負荷が高く、情報システム管理者に預託した全てのデータの確認ができなくなる。また、これは当初の目的であるコスト低減などに反しており、対策技術が求められる。【０００４】
このような対策技術のうち、サーバ／クライアントモデルにおいて、クライアントが、サーバにデータを預託しながら、サーバに対し、情報の保持確認処理を依頼できる暗号化方式が知られている。例えば、非特許文献１には、このようなデータ保持確認処理を実現する方式が記載されている。非特許文献１に記載の技術では、サーバ運営事業者がデータを保持しない場合、偽証が不可能であることが安全性証明と呼ばれる理論を用いて証明されている。このような安全な暗号化方式を用いることにより、クラウド業者などの不正を検知しながら、かつサーバに預託したデータの保持を安全に証明するための技術が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Giuseppe Ateniese, Randal Burns, Reza Curtmola, Joseph Herring, Lea Kissner, Zachary Peterson, Dawn Song：Provable Data Possession at Untrusted Stores. Proceedings of 14th ACM Conference on Computer and Communications Security (CCS 2007).
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、かかる非特許文献１に記載された技術を、上述したデータ保持証明に用いる場合、決定的に100〔％〕誤りなくストレージ装置のデータ保持を証明するためには、サーバだけではなく、クライアントにも膨大な計算量(ｎ回のべき乗剰余乗算など)が要求される。【０００７】
例えば、省電力性が求められる携帯電話やスマートフォン等の携帯型モバイルＰＣ、又は、カード形状で利用される小型マイコンやＲＦＩＤなどをクライアントと想定したモデルでは、クライアントの計算量を極力抑える必要があるが、非特許文献１に記載された技術では、実際、管理サーバ（上述の例ではサーバ）にクライアントがデータ保持証明プロトコルの要求をした場合、サーバ・クライアントの計算量が膨大になる。例えば、１ギガバイトのファイルデータがＯＳ（Operating System）のファイルフォーマット等に従い１キロバイト毎に管理する場合、決定的に100％誤りなくサーバのデータ保持を証明するためには、クライアントは計算負荷が高いことで知られる逆元計算またはべき乗剰余乗算を100万回以上、処理する必要がある。【０００８】
本発明は以上の点を考慮してなされたもので、ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、前記ユーザ端末から前記サーバ装置に所定の検証用情報を送信し、前記サーバ装置において、保持している前記検証対象データと、前記検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、前記ユーザ端末側において、前記検証用情報に基づくユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定するようにした。【００１０】
また本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、前記ユーザ端末から前記サーバ装置に所定の検証用情報を送信し、前記サーバ装置において、保持している前記検証対象データと、前記検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第１のステップと、前記ユーザ端末側において、前記検証用情報に基づくユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第２のステップとを設けるようにした。
【発明の効果】
【００１１】
本発明によれば、かかるデータ保持検証システム及び方法によれば、ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を実現できる。
【図面の簡単な説明】
【００１２】
【図１】第１〜第３の実施の形態によるクラウドシステムの全体構成を示すブロック図である。
【図２】ユーザ端末及びサービス提供サーバのハードウェア構成を示すブロック図である。
【図３】第１の実施の形態によるユーザ端末の論理構成を示すブロック図である。
【図４】第１及び第３の実施の形態によるサービス提供サーバの論理構成を示すブロック図である。
【図５】第１の実施の形態による公開パラメータ登録処理の処理手順を示すフローチャートである。
【図６】第１の実施の形態による検証対象データ登録処理の処理手順を示すフローチャートである。
【図７】データ識別子及び検証対象データの対応付けの説明に供する概念図である。
【図８】第１の実施の形態による検証対象データ保持検証処理の処理手順を示すフローチャートである。
【図９】第２の実施の形態によるユーザ端末の論理構成を示すブロック図である。
【図１０】第２の実施の形態によるサービス提供サーバの論理構成を示すブロック図である。
【図１１】第２の実施の形態による検証対象データ保持検証処理の処理手順を示すフローチャートである。
【図１２】第３の実施の形態によるユーザ端末の論理構成を示すブロック図である。
【図１３】第３の実施の形態による公開パラメータ登録処理の処理手順を示すフローチャートである。
【図１４】第３の実施の形態による検証対象データ登録処理の処理手順を示すフローチャートである。
【図１５】第３の実施の形態におけるデータ識別子及び検証対象データの対応付けの説明に供する概念図である。
【図１６】第３の実施の形態による検証対象データ保持検証処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
（１−１）本実施の形態によるクラウドシステムの構成
図１において、１は全体として本実施の形態によるクラウドシステムを示す。このクラウドシステム１は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末２と、クラウドサービス事業者のサービス提供サーバ３とを有し、これらがネットワーク４を介して接続されている。
【００１５】
ユーザ端末２及びサービス提供サーバ３は、図２に示すように、内部バス１０を介して相互に接続されたＣＰＵ（Central Processing Unit）１１、メモリ１２、外部記憶装置１３、読書き装置１４、通信装置１５、入力装置１６及び出力装置１７を備える。
【００１６】
ＣＰＵ１１は、装置（ユーザ端末２又はサービス提供サーバ３）全体の動作制御を司るプロセッサである。またメモリ１２は、各種プログラムを記憶するために利用されるほか、ＣＰＵ１１のワークメモリとしても利用される。外部記憶装置１３は、例えばハードディスク装置等の不揮発性の大容量記憶装置から構成され、各種プログラムや各種データが格納される。外部記憶装置１３に格納されたプログラムがメモリ１２に展開され、当該プログラムをＣＰＵ１１が実行することにより、ユーザ端末２又はサービス提供サーバ３全体として後述のような各種処理を実行する。
【００１７】
読書き装置１４は、例えばＳＤ（Secure Digital）カード、マイクロＳＤカード若しくはマイクロＳＤＨＣ（Secure Digital High Capacity）カードなどの記憶媒体１８に対応したメモリリーダ・ライタ、又は、ＣＤ（Compact Disc）若しくはＤＶＤ（Digital Versatile Disc）などの記憶媒体１８に対応したディスク装置などから構成される。
【００１８】
通信装置１５は、ユーザ端末２又はサービス提供サーバ３をネットワーク４（図１）に接続するためのインタフェースであり、例えばＮＩＣ（Network Interface Card）などから構成される。また入力装置１６は、例えばタッチボタンやキーボード及び又はマウスなどから構成され、出力装置１７は、例えば液晶パネルや液晶ディスプレイなどから構成される。
【００１９】
図３は、ユーザ端末２の論理構成を示す。この図３からも明らかなように、ユーザ端末２は、制御部２０、記憶部２１、入力部２２、出力部２３及び通信部２４を備えて構成される。
【００２０】
制御部２０は、後述する各種処理を実行する機能ブロックであり、全体処理部３０、乱数生成部３１、素数生成部３２及び基本演算部３３を備える。これら全体処理部３０、乱数生成部３１、素数生成部３２及び基本演算部３３は、ユーザ端末２のＣＰＵ１１（図２）がメモリ１２（図２）に展開された対応するプログラムを実行することにより具現化される。
【００２１】
全体処理部３０は、ユーザ端末２における処理を統括制御する機能部分であり、入力部２２を介して入力されたユーザからの指示に応じた制御処理や、出力部２３への画像出力、通信部２４を介したサービス提供サーバ３との間の通信等の各種処理を実行する。
【００２２】
また乱数生成部３１は、秘密鍵などを用いて予め指定された任意のビット長（例えば512ビット、1024ビット又は2048ビット）の擬似乱数を生成する機能部分である。この際、秘密鍵のデータ値は、乱数生成部３１によって、新しいデータ値に更新される。なお、乱数生成部３１が温度、時間、電力量などの物理現象や、乱数生成アルゴリズムを用いて乱数を生成するようにしても良い。
【００２３】
素数生成部３２は、乱数生成部３１に擬似乱数の生成を依頼し、作成された擬似乱数が素数であるかを判定するテストを通して、予め設定された任意のビット長（例えば512ビット、1024ビット又は2048ビット）の素数を生成する機能部分である。素数生成部３２における素数のアルゴリズムとしては、標準的な素数生成アルゴリズムを適用することができる。
【００２４】
さらに基本演算部３３は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う機能部分である。
【００２５】
記憶部２１は、図２について上述したメモリ１２、外部記憶装置１３及び記憶媒体１８などから構成される。この記憶部２１には、後述のように、通信データ３４、秘密鍵３５、公開パラメータ３６及び一時情報３７が格納される。
【００２６】
通信データ３４は、検証対象データ４０、証蹟４１及びデータ識別子４２を含む。検証対象データ４０は、サービス提供サーバ３に預けられるユーザデータである。本実施の形態の場合、この検証対象データ４０は、サービス提供サーバ３に送信した後に削除されるものとするが、必ずしも削除する必要はない。
【００２７】
証蹟４１は、サービス提供サーバ３が検証対象データ４０を保持しているか否かを検証する際に用いられるデータであり、検証対象データ４０を用いて算出される。証蹟４１の具体的な算出手法については後述する。データ識別子４２は、検証対象データ４０をサービス提供サーバ３に登録する際に作成される当該検証対象データ４０に固有の識別子である。データ識別子４２は、サービス提供サーバ３に対して所望する検証対象データ４０を指定する際に用いられる。
【００２８】
秘密鍵３５は、証蹟４１を生成する際に用いられる暗号鍵であり、ユーザ端末２の素数生成部３２において作成される。さらに公開パラメータ３６は、検証対象データ４０がサービス提供サーバ３に保持されているか否かを検証する際に用いる暗号鍵であり、一時情報３７は、制御部２０により実行される処理において一時的に必要となるデータである。
【００２９】
入力部２２は、ユーザがユーザ端末２を操作する際に利用する機能部分であり、入力装置１６（図２）から構成される。また出力部２３は、各種情報をユーザに提示する機能部分であり、出力装置１７（図２）から構成される。さらに通信部２４は、ユーザ端末２がサービス提供サーバ３と通信を行う際に利用するインタフェースであり、通信装置１５（図２）から構成される。
【００３０】
図４は、サービス提供サーバ３の論理構成を示す。この図４からも明らかなように、サービス提供サーバ３は、制御部５０、記憶部５１、入力部５２、出力部５３及び通信部５４を備えて構成される。
【００３１】
制御部５０は、後述する各種処理を実行する機能ブロックであり、全体処理部６０及び基本演算部６１を備える。これら全体処理部６０及び基本演算部６１は、サービス提供サーバ３のＣＰＵ１１（図２）がメモリ１２（図２）に展開された対応するプログラムを実行することにより具現化される。
【００３２】
全体処理部６０は、サービス提供サーバ３における処理を統括制御する機能部分であり、入力部５２を介して入力されたユーザからの指示に応じた制御処理や、出力部５３への画像出力、通信部５４を介したユーザ端末２との通信等の各種処理を実行する。また基本演算部６１は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う機能部分である。
【００３３】
記憶部５１は、図２について上述したメモリ１２、外部記憶装置１３及び記憶媒体１８などから構成される。この記憶部５１には、後述のように、検証対象データ４０、データ識別子４２、公開パラメータ３６及び一時情報６２が格納される。
【００３４】
検証対象データ４０は、ユーザ端末２から預けられたユーザデータであり、データ識別子４２は、検証対象データ４０と共にユーザ端末２から送信されてきた当該検証対象データ４０に固有の識別子である。また公開パラメータ３６は、検証対象データ４０がサービス提供サーバ３に保持されているか否かを検証する際に用いる暗号鍵であり、ユーザ端末２により予め登録される。一時情報６２は、制御部５０により実行される処理において一時的に必要となる情報である。
【００３５】
入力部５２は、ユーザがサービス提供サーバ３を操作する際に利用する機能部分であり、入力装置１６（図２）から構成される。また出力部５３は、各種情報をサービス提供サーバ３のオペレータに提示する機能部分であり、出力装置１７（図２）から構成される。さらに通信部５４は、サービス提供サーバ３がユーザ端末２と通信を行う際に利用するインタフェースであり、通信装置１５（図２）から構成される。
【００３６】
（１−２）本クラウドシステムにおけるデータ保持検証方式
次に、本クラウドシステム１におけるデータ保持検証方式について図３〜図８を参照して説明する。本データ保持検証方式は、予め公開パラメータ３６（図３）をサービス提供サーバ３に登録しておく公開パラメータ登録処理と、ユーザ端末２内の検証対象データ４０（図３）をサービス提供サーバ３に預ける検証対象データ登録処理と、この後、かかる検証対象データ４０がサービス提供サーバ３に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
【００３７】
（１−２−１）公開パラメータ登録処理
図５は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、クラウドサービス事業者に預けた検証対象データ４０をサービス提供サーバ３が保持しているか否かを検証できるように、ユーザ端末２及びサービス提供サーバ３間で公開パラメータを共有するために事前に行われる処理である。
【００３８】
この公開パラメータ登録処理は、ユーザが自己のユーザ端末２の入力部２２を操作して、秘密鍵３５及び公開パラメータ３６の設定情報を入力すると共に、公開パラメータ３６のサービス提供サーバ３への登録指示（以下、これを公開パラメータ登録指示と呼ぶ）を入力することにより開始される。
【００３９】
実際上、ユーザ端末２の全体処理部３０（図３）は、入力部２２を介してかかる公開パラメータ登録指示が入力されると（ＳＰ１）、まず、素数生成部３２に対して素数を生成するよう指示を与える。かくして素数生成部３２は、かかる指示に従って、２つの素数（ｐ及びｑとする）を生成する。そして全体処理部３０は、素数生成部３２が生成したこれら２つの素数ｐ，ｑを秘密鍵３５として記憶部２１に格納する（ＳＰ２）。
【００４０】
続いて、全体処理部３０は、ステップＳＰ１において記憶部２１に格納した２つの秘密鍵ｐ，ｑを読み出し、読み出した２つの秘密鍵ｐ，ｑと、これら２つの秘密鍵ｐ，ｑの積を演算すべき指示とを基本演算部３３に指示を与える。かくして基本演算部３３は、かかる指示に従って、これら２つの秘密鍵ｐ，ｑの積を算出する（ＳＰ３）。
【００４１】
次いで、全体処理部３０は、基本演算部３３により算出されたかかる２つの秘密鍵ｐ，ｑの積を公開パラメータ３６として記憶部２１に格納すると共に、当該公開パラメータ３６を通信部２４（図３）を介してサービス提供サーバ３に送信する（ＳＰ４）。
【００４２】
一方、サービス提供サーバ３の全体処理部６０（図４）は、かかる公開パラメータ３６を通信部５４を介して受信すると（ＳＰ５）、この公開パラメータ３６を記憶部５１に格納する（ＳＰ６）。また全体処理部６０は、この後、かかる公開パラメータ３６を正常に登録（正常に記憶部５１に格納）できたか否かを表す登録処理結果を、通信部５４を介してユーザ端末２に送信する（ＳＰ７）。
【００４３】
ユーザ端末２の全体処理部３０は、この登録処理結果を通信部２４を介して受信すると（ＳＰ８）、当該登録処理結果に基づいて、サービス提供サーバ３への公開パラメータ３６の登録が成功したか否かを判定する（ＳＰ９）。そして全体処理部３０は、公開パラメータ３６の登録が失敗したと判定した場合には、公開パラメータ３６の再送信処理を実行する（ＳＰ４）。これに対して全体処理部３０は、公開パラメータ３６の登録が成功したと判定した場合には、この公開パラメータ登録処理を終了する。
【００４４】
（１−２−２）検証対象データ登録処理
一方、図６は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、検証対象データ４０を、当該検証対象データ４０に基づく証蹟４１（図３）を生成してからサービス提供サーバ３に預ける処理である。
【００４５】
この検証対象データ登録処理は、ユーザが自己のユーザ端末２の入力部２２を操作して、当該ユーザ端末２の記憶部２１に格納されている検証対象データ４０の中から所望の検証対象データ４０を指定し、その検証対象データ４０のサービス提供サーバ３への登録指示（以下、これを検証対象データ登録指示と呼ぶ）を入力することにより開始される。
【００４６】
実際上、ユーザ端末２の全体処理部３０（図３）は、入力部２２を介してかかる検証対象データ登録指示が入力されると（ＳＰ２０）、まず、検証対象データ登録指示において指定された登録対象の検証対象データ４０のデータ識別子４２を生成し、生成したデータ識別子４２を記憶部２１に格納する（ＳＰ２１）。
【００４７】
続いて、全体処理部３０は、基本演算部３３に対して、公開パラメータ登録処理（図５）のステップＳＰ２において記憶部２１に格納した２つの秘密鍵ｐ，ｑと、検証対象データ登録指示において指定された検証対象データ４０とを用いて、その検証対象データ４０の証蹟４１を作成するよう指示を与える。かくして基本演算部３３は、かかる指示に従って、登録対象の検証対象データ４０をＭｉ、証蹟４１をｍｉとして、次式を満たす証蹟４１を算出し、算出した証蹟４１を記憶部２１に格納する（ＳＰ２２）。
【数１】
2014068734.tif 000003
【００４８】
なお「mod」は、除算の余りを求める演算子である。従って、（１）式は、一方の秘密鍵ｐから「１」を引いた値と、他方の秘密鍵ｑから「１」を引いた値との積（ｐ−１）（ｑ−１）で検証対象データ４０を除算した余りを証蹟４１として算出することを表す。
【００４９】
この後、全体処理部３０は、検証対象データ登録指示において指定された検証対象データ４０と、ステップＳＰ２１において生成した当該検証対象データ４０のデータ識別子４２とを、通信部２４を介してサービス提供サーバ３に送信する（ＳＰ２３）。
【００５０】
一方、サービス提供サーバ３の全体処理部６０（図４）は、かかる検証対象データ４０及びデータ識別子４２を通信部５４を介して受信すると（ＳＰ２４）、図７に示すように、これら検証対象データ４０及びデータ識別子４２を対応付けて記憶部５１に格納する（ＳＰ２５）。また全体処理部６０は、この後、これら検証対象データ４０及びデータ識別子４２を正常に登録（正常に記憶部５１に登録）できたか否かを表す登録処理結果を、通信部５４を介してユーザ端末２に送信する（ＳＰ２６）。
【００５１】
ユーザ端末２の全体処理部３０は、この登録処理結果を通信部２４を介して受信すると、当該登録処理結果に基づいて、サービス提供サーバ３への検証対象データ４０及びデータ識別子４２の登録が成功したか否かを判定する（ＳＰ２７）。そして全体処理部３０は、検証対象データ４０及びデータ識別子４２の登録が失敗したと判定した場合には、検証対象データ４０及びデータ識別子４２の再送信処理を実行する（ＳＰ２３）。これに対して全体処理部３０は、検証対象データ４０及びデータ識別子４２の登録が成功したと判定した場合には、この検証対象データ登録処理を終了する。
【００５２】
（１−２−３）検証対象データ保持検証処理
他方、図８は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末２が先に生成した証蹟４１（図３）を用いて、サービス提供サーバ３に検証対象データ４０（図４）を送信させることなく、サービス提供サーバ３が検証対象データ４０を保持しているか否かを検証する処理である。
【００５３】
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末２の入力部２２を操作して、所望する検証対象データ４０（図３）のデータ識別子４２（図３）を指定し、対応する検証対象データ４０がサービス提供サーバ３に保持されているか否かを検証すべき旨の指示（以下、これを検証対象データ保持検証指示と呼ぶ）を入力することにより開始される。
【００５４】
実際上、ユーザ端末２の全体処理部３０は、入力部２２を介して検証対象データ４０のデータ識別子４２を指定したかかる検証対象データ保持検証指示が入力されると（ＳＰ３０）、まず、乱数生成部３１（図３）に対して乱数を生成するよう指示を与える。かくして乱数生成部３１は、かかる指示に従って、乱数を生成する（ＳＰ３１）。また全体処理部３０は、このとき乱数生成部３１が生成した乱数と、上述の検証対象データ保持検証指示において指定されたデータ識別子４２とを、通信部２４を介してサービス提供サーバ３に送信する（ＳＰ３２）。
【００５５】
一方、サービス提供サーバ３の全体処理部６０は、かかる乱数及びデータ識別子４２（図４）を通信部５４を介して受信すると、これら乱数及びデータ識別子４２を記憶部５１に格納し（ＳＰ３３）、この後、このデータ識別子４２に基づいて、当該サービス提供サーバ３が保持していることを証明すべき検証対象データ４０（図４）を特定する（ＳＰ３４）。
【００５６】
続いて、全体処理部６０は、基本演算部６１（図４）に対して、ステップＳＰ３３において受信した乱数と、ステップＳＰ３４において特定した検証対象データ４０と、公開パラメータ登録処理（図５）のステップＳＰ６において記憶部５１に格納した公開パラメータ３６（図４）とを用いて、その検証対象データ４０のサービス提供サーバ３側の証拠データ（以下、これをサーバ側証拠データと呼ぶ）を生成するよう指示を与える。
【００５７】
かくして基本演算部６１は、かかる指示に従って、ステップＳＰ３３において受信した乱数をＲ、ステップＳＰ３４において特定した検証対象データをＭｉ、公開パラメータ登録処理のステップＳＰ６において記憶部５１に格納した公開パラメータをＮとして、次式を満たすサーバ側証拠データＳｉを算出し、算出したサーバ側証拠データＳｉを記憶部５１に格納する（ＳＰ３５）。
【数２】
2014068734.tif 000004
【００５８】
なお、上述のように「mod」は除算の余りを求める演算子である。従って、（２）式は、公開パラメータ３６で乱数ＲのＭｉ乗を除算した余りをサーバ側証拠データＳｉとして算出することを表している。
【００５９】
この後、全体処理部６０は、記憶部５１に格納されている上述のサーバ側証拠データＳｉを、通信部５４を介してユーザ端末２に送信する（ＳＰ３６）。
【００６０】
他方、ユーザ端末２の全体処理部３０は、かかるサーバ側証拠データＳｉを通信部２４を介して受信すると（ＳＰ３７）、基本演算部３３に対して、ステップＳＰ３１において乱数生成部３１が生成した乱数と、公開パラメータ登録処理のステップＳＰ６において基本演算部３３が生成した公開パラメータ３６と、検証対象データ登録処理（図６）のステップＳＰ２２において基本演算部３３が生成した証蹟４１とを用いて、ユーザ端末２側の証拠データ（以下、これをユーザ端末側証拠データと呼ぶ）を生成するよう指示を与える。
【００６１】
かくして基本演算部３３は、かかる指示に従って、上記乱数をＲ、上記公開パラメータをＮ、上記証蹟をｍｉとして、次式を満たすユーザ端末側証拠データＴｉを算出し、算出したユーザ端末側証拠データＴｉを記憶部２１に格納する（ＳＰ３８）。
【数３】
2014068734.tif 000005
【００６２】
また基本演算部３３は、この後、ステップＳＰ３７において受信したサーバ側証拠データＳｉと、ステップＳＰ３８において算出したユーザ端末側証拠データＴｉとを比較することにより、サービス提供サーバ３がそのとき対象としている検証対象データ４０を保持しているか否かを判定する。
【００６３】
具体的に、基本演算部３３は、フェルマーの小定理によれば、ｋを任意の整数として、次式
【数４】
2014068734.tif 000006
が成り立つことを利用して、サーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉが等しいか否かを判断する。
【００６４】
そして基本演算部３３は、かかる判断処理により、サーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉが等しいとの判断結果を得た場合には、サービス提供サーバ３がそのとき対象としていた検証対象データ４０を保持していると判定し、サーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉが等しくない（異なっている）との判断結果を得た場合には、サービス提供サーバ３が当該検証対象データ４０を保持していないと判定する（ＳＰ３９）。
【００６５】
そして全体処理部３０は、かかる基本演算部３３の判定結果を出力部２３に表示させ（ＳＰ４０）、この後、この検証対象データ保持検証処理を終了する。
【００６６】
（１−３）本実施の形態の効果
以上のように本実施の形態のクラウドシステム１では、サービス提供サーバ３から検証対象データ４０（図４）を送信してもらうことなく、ユーザ端末２側において、当該検証対象データ４０をサービス提供サーバ３が保持しているか否かを検証することができる。従って、検証対象データ４０が膨大なデータサイズである場合にも、ユーザ端末２が少ない通信量（データ識別子４２及び乱数の送信と、サーバ側証拠データＳｉの受信のみ）で、サービス提供サーバ３が検証対象データ４０を保持しているか否かを検証することができる。
【００６７】
また本実施の形態のクラウドシステム１では、検証対象データ４０をサービス提供サーバ３が保持しているか否かを検証するに際してサービス提供サーバ３やユーザ端末２において必要な計算は（２）式や（３）式の計算だけであり、非常に簡易な計算により検証対象データ４０をサービス提供サーバ３が保持しているか否かを検証することができる。
【００６８】
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末２がサービス提供サーバ３に預けた検証対象データ４０をサービス提供サーバ３が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
【００６９】
（１−４）第１の実施の形態の適用対象
第１の実施の形態のデータ保持検証方式によれば、例えば、電子文書（データ）を預かるサービスを提供する電子文書保管サービス事業者が、預けた電子文書を紛失していないことをユーザが確認できる。すなわち、電子文書保管サービス事業者に預ける電子文書を検証対象データ４０とし、この証蹟４１をユーザが事前に作成することにより、電子文書が電子文書保管サービス事業者に管理されていることをユーザが確認することができる。
【００７０】
また本実施の形態のデータ保持検証方式は、電子文書保管サービス事業者だけを適用対象とするものではない。例えば、自治体などが、ある行政文書を確かに保管していることも同様に確認する処理にも適用することができる。
【００７１】
さらに自治体では、保管期間が満了したもののうち、保管価値のある行政文書は公文書館などへ移管することがある。従って、公文書館での保管状況の確認についても同様に本実施の形態のデータ保持検証方式を適用することができる。
【００７２】
さらに本実施の形態のデータ保持検証方式は、公証役場における電子公証サービスにも適用可能である。すなわち、嘱託人等の依頼によって公証役場が公文書の保管を行うが、ここでも、嘱託人等が予め公文書の証蹟を作成することにより、公証役場が公文書を保持しているかを確認可能となる。
【００７３】
（２）第２の実施の形態
上述した第１の実施の形態のデータ保持検証方法によれば、論理的にはサービス提供サーバ３が検証対象データ４０を保持しているか否かの検証を無限に行うことができるものの、ユーザ端末２やサービス提供サーバ３においてべき乗剰余演算が必要となり、計算能力が乏しいユーザ端末２又はサービス提供サーバ３には負荷が大きい。
【００７４】
そこで、本実施の形態においては、サービス提供サーバ３が検証対象データを保持しているか否かの検証を行い得る回数が有限回に制限されるものの、少ない計算量でサービス提供サーバ３が検証対象データを保持しているか否かを検証し得るデータ保持検証方式について説明する。
【００７５】
（２−１）本実施の形態によるクラウドシステムの構成
図１において、７０は全体として第２の実施の形態によるクラウドシステムを示す。このクラウドシステム７０は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末７１と、クラウドサービス事業者のサービス提供サーバ７２とを有し、これらがネットワーク４を介して接続されている。ユーザ端末７１及びサービス提供サーバ７２のハードウェア構成は、第１の実施の形態と同様であるため、ここでの説明は省略する。
【００７６】
図３との対応部分に同一符号を付して示す図９は、第２の実施の形態によるユーザ端末７１の論理構成を示す。この図９からも明らかなように、本実施の形態のユーザ端末７１は、制御部８０に素数生成部３２（図３）に代えて一方向性関数部８１が設けられている点と、記憶部２１に公開パラメータ３６（図３）が格納されない点とを除いて第１の実施の形態のユーザ端末２（図３）と同様に構成されている。
【００７７】
一方向性関数部８１は、ユーザ端末７１のＣＰＵ１１（図２）がメモリ１２（図２）に格納された対応するプログラムを実行することにより具現化される機能部分であり、全体処理部８２からの指示に応じて、検証対象データ４０に対する一方向性関数による処理を行う。なお、一方向性関数とは、関数の出力値から入力値を求めることが困難な関数のことであり、一般的には暗号学的ハッシュ関数や、公開鍵暗号関数（ただし秘密鍵は秘密にする）、秘密鍵暗号関数（ただし秘密鍵は秘密にする）などがこれに該当する。
【００７８】
また図４との対応部分に同一符号を付した図１０は、第２の実施の形態によるサービス提供サーバ７２を示す。この図１０からも明らかなように、本実施の形態のサービス提供サーバ７２は、制御部９０に基本演算部３３（図４）に代えて一方向性関数部９１が設けられている点と、記憶部５１に公開パラメータ３６（図４）が格納されない点とを除いて第１の実施の形態のサービス提供サーバ３と同様に構成されている。一方向性関数部９１は、サービス提供サーバ７２のＣＰＵ１１（図２）がメモリ１２（図２）に格納された対応するプログラムを実行することにより具現化される機能部分であり、ユーザ端末７１の一方向性関数部８１と同様の機能を有する。
【００７９】
（２−２）本実施の形態によるデータ保持検証方式
本実施の形態によるデータ保持検証方式は、予め複数の秘密鍵をサービス提供サーバ７２に登録しておく秘密鍵登録処理と、検証対象データ４０をサービス提供サーバ７２に預ける検証対象データ登録処理と、この後、かかる検証対象データ４０がサービス提供サーバ７２に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
【００８０】
（２−２−１）秘密鍵登録処理
秘密鍵登録処理は、ユーザが自己のユーザ端末７１の入力部２２を操作して、秘密鍵の設定情報及び作成個数を入力すると共に、秘密鍵のサービス提供サーバ７２への登録指示（以下、これを秘密鍵登録指示と呼ぶ）を入力することにより開始される。
【００８１】
実際上、ユーザ端末７１の全体処理部８２（図９）は、入力部２２を介してかかる秘密鍵登録指示が入力されると、乱数生成部３１に対して秘密鍵登録指示において指定された個数の秘密鍵を作成するよう指示を与える。かくして乱数生成部３１は、かかる指示に従って、指定された個数の乱数（ｋ１〜ｋｎ）を生成する。そして全体処理部は、乱数生成部３１が生成したこれらの乱数を、それぞれ秘密鍵８３（図９）として記憶部２１に格納する。
【００８２】
（２−２−２）検証対象データ登録処理
本実施の形態のデータ保持検証方式における検証対象データ登録処理は、図６について上述した第１の実施の形態による検証対象データ登録処理と、ステップＳＰ２２における証蹟４１の生成方法が異なる点を除いて同様である。
【００８３】
実際上、本データ保持検証方式の場合、検証対象データ登録処理のステップＳＰ２２において、全体処理部８２（図９）は、基本演算部３３に対して、ステップＳＰ２０で受領した検証対象データ登録指示において指定されている検証対象データ４０の証蹟４１を生成するよう指示を与える。かくして基本演算部３３は、かかる指示に従って、上述した秘密鍵登録処理において生成した複数の秘密鍵８３の中から未使用の秘密鍵８３を１つ選択し、選択した秘密鍵８３をｋｊ（ｊ＝１〜ｎ）、かかる検証対象データ４０をＭｉ、証蹟４１をｍｉとして、次式を満たす証蹟４１を算出し、算出した証蹟４１を記憶部２１に格納する。
【数５】
2014068734.tif 000007
【００８４】
なお「Func」は一方向性関数を表す演算子であり、「||」は前後の数値の結合を表す演算子である。具体的には、「Ｍｉ||ｋｊ」は、「Ｍｉ」の値を上位、「ｋｊ」の値を下位とするデータを表す。従って、（５）式は、検証対象データ４０の値と、秘密鍵ｋｊの値とを結合した数値を入力とする一方向関数Funcの出力値を証蹟４１として算出することを表す。
【００８５】
本データ保持検証方式の場合、検証対象データ登録処理におけるこれ以外の処理内容は図６について上述した第１の実施の形態による検証対象データ登録処理の処理内容と同様であるため、これ以上の説明は省略する。
【００８６】
（２−２−３）検証対象データ保持検証処理
図１１は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末７１が先に生成した証蹟４１（図９）を用いて、サービス提供サーバ７２に検証対象データ４０を送信させることなく、サービス提供サーバ７２が検証対象データ４０を保持しているか否かを検証する処理である。
【００８７】
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末７１の入力部２２を操作して、所望する検証対象データ４０のデータ識別子４２を指定し、対応する検証対象データ４０がサービス提供サーバ７２に保持されているか否かを検証すべき旨の指示（検証対象データ保持検証指示）を入力することにより開始される。
【００８８】
実際上、ユーザ端末７１の全体処理部８２（図９）は、入力部２２を介して検証対象データ４０のデータ識別子４２を指定したかかる検証対象データ保持検証指示が入力されると（ＳＰ５０）、この検証対象データ保持検証指示において指定されたデータ識別子４２と、当該データ識別子４２に対応する検証対象データ４０をサービス提供サーバ７２に登録するに際して当該検証対象データ４０の証蹟４１を生成したときに使用した秘密鍵８３とを、通信部２４を介してサービス提供サーバ７２に送信する（ＳＰ５１）。
【００８９】
一方、サービス提供サーバ７２の全体処理部９２（図１０）は、かかるデータ識別子４２及び秘密鍵８３を通信部５４を介して受信すると、これらデータ識別子４２及び秘密鍵８３を記憶部５１に格納し（ＳＰ５２）、この後、このデータ識別子４２に基づいて、当該サービス提供サーバ７２が保持していることを証明すべき検証対象データ４０を特定する（ＳＰ５３）。
【００９０】
続いて、全体処理部９２は、一方向性関数部９１に対して、ステップＳＰ５２において受信した秘密鍵８３と、ステップＳＰ５３において特定した検証対象データ４０とを用いて、その検証対象データ４０のサービス提供サーバ７２側の証拠データ（サーバ側証拠データ）を生成するよう指示を与える。かくして一方向性関数部９１は、かかる指示に従って、ステップＳＰ５２において受信した秘密鍵８３をｋｊ、ステップＳＰ５３において特定した検証対象データ４０をＭｉとして、次式を満たすサーバ側証拠データＳｉを算出し、算出したサーバ側証拠データＳｉを記憶部５１に格納する（ＳＰ５４）。
【数６】
2014068734.tif 000008
【００９１】
この後、全体処理部９２は、記憶部５１に格納されている上述のサーバ側証拠データＳｉを、通信部５４を介してユーザ端末７１に送信する（ＳＰ５５）。
【００９２】
他方、ユーザ端末７１の全体処理部８２（図９）は、かかるサーバ側証拠データＳｉを通信部２４を介して受信すると（ＳＰ５６）、基本演算部３３に対して、このとき対象としている検証対象データ４０の証蹟４１と、ステップＳＰ５６において受信したサーバ側証拠データＳｉとを比較するよう指示を与える。かくして基本演算部３３は、この指示に従って、かかる証蹟４１を記憶部２１から読み出し、読み出した証蹟４１をユーザ端末７１側の証拠データ（ユーザ端末側証拠データ）Ｔｉとして、このユーザ端末側証拠データＴｉと、ステップＳＰ５６において受信したサーバ側証拠データＳｉとを比較する。
【００９３】
そして基本演算部３３は、これらサーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉが等しい場合には、サービス提供サーバ７２がそのとき対象としていた検証対象データ４０を保持していると判定し、サーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉが等しくない（異なっている）場合には、サービス提供サーバ７２が当該検証対象データ４０を保持していないと判定する（ＳＰ５７）。
【００９４】
そして全体処理部８２は、かかる基本演算部３３の判定結果を出力部２３に表示させ（ＳＰ５８）、この後、この検証対象データ保持検証処理を終了する。
【００９５】
（２−３）本実施の形態の効果
以上のように本実施の形態によるクラウドシステム７０では、第１の実施の形態と同様に、サービス提供サーバ７２から検証対象データ４０（図１０）を送信してもらうことなく、ユーザ端末７１側において、当該検証対象データ４０をサービス提供サーバ３が保持しているか否かを検証することができる。
【００９６】
また本実施の形態によるクラウドシステム７０では、検証対象データ４０をサービス提供サーバ７２が保持しているか否かを検証するに際してユーザ端末７１やサービス提供サーバ７２において必要な計算は（５）式や（６）式の計算だけであり、非常に簡易な計算により検証対象データ４０をサービス提供サーバ７２が保持しているか否かを検証することができる。
【００９７】
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末７１がサービス提供サーバ７２に預けた検証対象データ４０をサービス提供サーバ７２が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
【００９８】
なお、本実施の形態によるデータ保持検証方式が第１の実施の形態によるデータ保持検証方式と大きく異なるのは、サービス提供サーバ７２がサーバ側証拠データＳｉを生成する際、ユーザ端末７１が乱数を送信するか、秘密鍵８３を送信するかの点である。
【００９９】
この場合において、第１の実施の形態によるデータ保持検証方式では、基本的に毎回異なる乱数を送信するのと同様、本実施の形態によるデータ保持検証方式でも、毎回異なる値の秘密鍵８３をユーザ端末７１からサービス提供サーバ７２に送信する必要がある。さもないと、サービス提供サーバ７２は、検証対象データ４０を保持していなくても、サーバ側証拠データＳｉを再利用し、ユーザ端末７１に検証対象データ４０を保持していると偽証できるからである。従って、本実施の形態によるデータ保持検証方式では、秘密鍵登録処理で作成した秘密鍵８３の個数分しか、サービス提供サーバ７２が検証対象データ４０を保持しているか否かを検証することができない。
【０１００】
（３）第３の実施の形態
第１の実施の形態による検証対象データ保持検証方式や第２の実施の形態による検証対象データ保持検証方式では、サービス提供サーバ３，７２が検証対象データ４０を保持しているか否かを検証するために、検証対象データ４０ごとにユーザ端末２，７１が証蹟４１を保持する必要がある。そのため、複数のユーザ端末２，７１からサービス提供サーバ３，７２が同一の検証対象データ４０を保持しているか否かを検証し得るようにするためには、複数のユーザ端末２，７１間で証蹟４１を共有する必要がある。
【０１０１】
しかしながら、複数のユーザ端末２，７１間で証蹟４１を共有する場合、検証対象データ４０が更新されるごとに各ユーザ端末２，７１がそれぞれ保持するその検証対象データ４０の証蹟４１をすべて同様に更新することが必要になるため、実際の運用には手間がかかり過ぎる。
【０１０２】
一方、非特許文献１に示された既存技術では、ユーザ端末２，７１及びサービス提供サーバ３，７２の双方に、計算負荷の高いべき乗剰余乗算と呼ばれる計算を大量に処理することが要求される。
【０１０３】
そこで、ユーザ端末２，７１に証蹟４１を保持させることなく、かつユーザ端末２，７１にもサービス提供サーバ３，７２にも、非特許文献１に開示された既存技術よりもはるかに少ない回数のべき乗剰余乗算で、サービス提供サーバ３，７２が検証対象データ４０を保持しているか否かを検証可能な第３の実施の形態による検証データ保持検証方式について、以下に説明する。
【０１０４】
（３−１）本実施の形態によるクラウドシステムの構成
図１において、１００は全体として第３の実施の形態によるクラウドシステムを示す。このクラウドシステム１００は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末１０１と、クラウドサービス事業者のサービス提供サーバ１０２とを有し、これらがネットワーク４を介して接続されている。ユーザ端末１０１及びサービス提供サーバ１０２のハードウェア構成は第１の実施の形態と同様であるため、ここでの説明は省略する。
【０１０５】
図３との対応部分に同一符号を付して示す図１２は、第３の実施の形態によるユーザ端末１０１の論理構成を示す。この図１２からも明らかなように、本実施の形態のユーザ端末１０１は、制御部１１０に一方向性関数部１１１が設けられている点と、サービス提供サーバ１０２に預けた検証対象データ４０の証蹟４１（図３）が記憶部２１に格納されていない点とを除いて第１の実施の形態のユーザ端末２（図３）と同様に構成されている。
【０１０６】
一方向性関数部１１１は、ユーザ端末１０１のＣＰＵ１１（図２）がメモリ１２（図２）に格納された対応するプログラムを実行することにより具現化される機能部分である。この一方向性関数は、図９について上述した第２の実施の形態の一方向性関数部８１と同様の機能を有するものであるため、その詳細についての説明は省略する。
【０１０７】
また図４において１０２は、第３の実施の形態によるサービス提供サーバを示す。このサービス提供サーバ１０２は、制御部１２０の全体処理部１２１により実行される各種処理の処理内容が第１の実施の形態の全体処理部６０と異なる点を除いて第１の実施の形態によるサービス提供サーバ３と同様に構成される。なお、全体処理部１２１は、サービス提供サーバ１０２のＣＰＵ１１（図２）がメモリ１２（図２）に格納された対応するプログラムを実行することにより具現化される機能部分である。
【０１０８】
（３−２）本実施の形態によるデータ保持検証方式
次に、本実施の形態によるデータ保持検証方式について説明する。本実施の形態によるデータ保持検証方式は、第１の実施の形態によるデータ保持検証方式と同様に、予め公開パラメータ３６をサービス提供サーバ１０２に登録しておく公開パラメータ登録処理と、検証対象データ４０をサービス提供サーバ１０２に預ける検証対象データ登録処理と、この後、かかる検証対象データがサービス提供サーバ１０２に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
【０１０９】
（３−２−１）公開パラメータ登録処理
図１３は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、サービス提供サーバ１０２に預けた検証対象データ４０（図１２）を当該サービス提供サーバ１０２が保持しているか否かを検証できるように、ユーザ端末１０１及びサービス提供サーバ１０２間で公開パラメータ３６（図１２）を共有するために事前に行われる処理である。
【０１１０】
この公開パラメータ登録処理は、ユーザが自己のユーザ端末１０１の入力部２２を操作して、秘密鍵及び公開パラメータの設定情報を入力すると共に、公開パラメータのサービス提供サーバ１０２への登録指示（公開パラメータ登録指示）を入力することにより開始される。
【０１１１】
実際上、ユーザ端末１０１の全体処理部１１２（図１２）は、入力部２２を介してかかる公開パラメータ登録指示が入力されると（ＳＰ６０）、まず、素数生成部３２に対して素数を生成するよう指示を与える。かくして素数生成部３２は、かかる指示に従って、２つの素数（ｐ及びｑとする）を生成する。そして全体処理部１１２は、素数生成部３２が生成したこれら２つの素数ｐ，ｑと、これら２つの素数ｐ，ｑの積を演算すべき指示とを基本演算部３３（図１２）に指示を与える。かくして基本演算部３３は、かかる指示に従って、これら２つの素数ｐ，ｑの積を演算する。そして全体処理部１１２は、基本演算部３３により算出されたかかる２つの素数ｐ，ｑの積を公開パラメータ３６（図１２）として記憶部２１に格納する（ＳＰ６１）。
【０１１２】
続いて、全体処理部１１２は、ステップＳＰ６１において生成した公開パラメータ３６をＮとして、乱数生成部３１（図１２）に対して０以上Ｎ未満の２つの乱数を生成するよう指示を与える。かくして乱数生成部３１は、かかる指示に従って、２つの乱数（ｇ及びｄとする）を生成する。そして全体処理部１１２は、乱数生成部３１が生成したこれら２つの乱数を秘密鍵ｇ，ｄとして記憶部２１に格納すると共に、次式
【数７】
2014068734.tif 000009
を満たす秘密鍵ｄの逆元ｅを算出し、算出した秘密鍵ｄの逆元ｅを記憶部２１に格納する。さらに全体処理部１１２は、乱数生成部３１に対して乱数を生成するよう指示を与える。かくして乱数生成部３１は、かかる指示に従って、１つの乱数（ｋとする）を生成する。そして全体処理部１１２は、乱数生成部３１が生成したこの乱数を秘密鍵ｋとして記憶部２１に格納する（ＳＰ６２）。
【０１１３】
この後、全体処理部１１２は、ステップＳＰ６１において生成した公開パラメータ３６を通信部２４（図１２）を介してサービス提供サーバ１０２に送信する（ＳＰ６３）。
【０１１４】
一方、サービス提供サーバ１０２の全体処理部１２１（図４）は、かかる公開パラメータ３６を通信部５４を介して受信すると（ＳＰ６４）、この公開パラメータ３６を記憶部５１に格納する（ＳＰ６５）。また全体処理部１１２は、この後、かかる公開パラメータ３６を正常に登録（正常に記憶部５１に格納）できたか否かを表す登録処理結果を、通信部５４を介してユーザ端末１０１に送信する（ＳＰ６６）。
【０１１５】
ユーザ端末１０１の全体処理部１１２は、この登録処理結果を通信部２４を介して受信すると（ＳＰ６７）、当該登録処理結果に基づいて、サービス提供サーバ１０２への公開パラメータ３６の登録が成功したか否かを判定する（ＳＰ６８）。そして全体処理部１１２は、公開パラメータ３６の登録が失敗したと判定した場合には、公開パラメータ３６の再送信処理を実行する（ＳＰ６３）。これに対して全体処理部１１２は、公開パラメータ３６の登録が成功したと判定した場合には、この公開パラメータ登録処理を終了する。
【０１１６】
（３−２−２）検証対象データ登録処理
一方、図１４は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、ユーザ端末１０１が後にサービス提供サーバ１０２が検証対象データ４０（図１２）を保持しているか否かを検証できるように、検証対象データ４０ごとに証蹟をそれぞれ生成し、生成した証蹟を検証対象データ４０と共にサービス提供サーバ３に預ける処理である。
【０１１７】
この検証対象データ登録処理は、ユーザが自己のユーザ端末１０１（図１２）の入力部２２を操作して、当該ユーザ端末１０１の記憶部２１に格納されている検証対象データ４０の中から所望する検証対象データ４０を指定し、その検証対象データ４０のサービス提供サーバ１０２への登録指示（検証対象データ登録指示）を入力することにより開始される。
【０１１８】
実際上、ユーザ端末１０１の全体処理部１１２（図１２）は、入力部２２を介してかかる検証対象データ登録指示が入力されると（ＳＰ７０）、まず、検証対象データ登録指示において指定された検証対象データ４０のデータ識別子４２を生成する（ＳＰ７１）。具体的に、全体処理部１１２は、図１５に示すように、例えば１つのドキュメントでなる登録対象の検証対象データ４０を所定単位で分割（例えば４，８，32又は64〔kbyte〕といったＯＳのファイルシステムごとに分割）し、かくして得られた検証対象データ４０の分割データ４０Ａごとにそれぞれデータ識別子４２Ａを生成する。そして全体処理部１１２は、このようにして生成した検証対象データ４０の各分割データ４０Ａのデータ識別子４２Ａをそれぞれ記憶部２１（図１２）に格納する（ＳＰ７１）。
【０１１９】
続いて、全体処理部１１２は、基本演算部３３（図１２）に対して、公開パラメータ登録処理（図１３）のステップＳＰ６１において記憶部２１に格納した公開パラメータ３６（図１２）と、当該公開パラメータ登録処理のステップＳＰ６２において記憶部２１に格納した２つの秘密鍵ｇ，ｄと、登録対象の検証対象データ４０のすべての分割データ４０Ａとを記憶部２１から読み出す。また全体処理部１１２は、読み出したこれら公開パラメータ３６及び２つの秘密鍵ｇ，ｄを用いて、公開パラメータ３６をＮ、検証対象データ４０の各分割データ４０ＡをＭｉ（ｊ）（ｊ＝１〜ｎ）、これら分割データ４０Ａごとの証蹟をｍｉ（ｊ）（ｊ＝１〜ｎ）として、次式を満たす検証対象データ４０の分割データ４０Ａごとの証蹟をそれぞれ算出し、算出したこれらの証蹟（ｍｉ（ｊ）（ｊ＝１〜ｎ））を記憶部２１に格納する（ＳＰ７２）。
【数８】
2014068734.tif 000010
【０１２０】
なお、上述のように「mod」は除算の余りを求める演算子であり、「Func」は一方向性関数である。また「||」は前後の数値の結合を意味する演算子である。よって「k||j」は「ｋ」の値を上位、「ｊ」の値を下位とするデータを表す。また「Exp」は、第１の引数を底とし、第２の引数をべき乗指数とするべき乗指数関数を表す演算子である。よって、例えば「Exp（２、３）」は２の３乗（＝８）を表し、「Exp（３、４）」は３の４乗（＝81）を表す。
【０１２１】
この後、全体処理部１１２は、検証対象データ４０と、上述のようにして得られた検証対象データ４０の各分割データ４０Ａのデータ識別子４２Ａと、これら分割データ４０Ａごとの証蹟４１とを、通信部２４を介してサービス提供サーバ１０２に送信する（ＳＰ７３）。
【０１２２】
一方、サービス提供サーバ１０２の全体処理部１２１（図４）は、かかる検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、これら分割データ４０Ａごとの証蹟とを通信部５４（図４）を介して受信すると（ＳＰ７４）、これらを記憶部５１（図４）に格納する（ＳＰ７５）。この際、全体処理部１２１は、各データ識別子４２Ａと、対応する証蹟とを対応付けて記憶部５１に格納する（ＳＰ７５）。
【０１２３】
また全体処理部１２１は、この後、これら検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、これら分割データ４０Ａごとの証蹟とを正常に登録（正常に記憶部に登録）できたか否かを表す登録処理結果を、通信部５４（図４）を介してユーザ端末１０１に送信する（ＳＰ７６）。
【０１２４】
ユーザ端末１０１の全体処理部１１２（図１２）は、この登録処理結果を通信部２４（図１２）を介して受信すると（ＳＰ７７）、当該登録処理結果に基づいて、サービス提供サーバ１０２への検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、当該分割データ４０Ａごとの証蹟との登録が成功したか否かを判定する（ＳＰ７８）。そして全体処理部１１２は、かかる登録が失敗したと判定した場合には、検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、これら分割データ４０Ａごとの証蹟との再送信処理を実行する（ＳＰ７３）。また全体処理部１１２は、かかる登録が成功したと判定した場合には、この検証対象データ登録処理を終了する。
【０１２５】
なお、非特許文献１に開示された既存技術では、公開パラメータを共有する処理と、検証対象データの登録処理の処理手順は、本実施の形態による公開パラメータ登録処理及び検証対象データ登録処理とほぼ同様であるが、検証対象データ登録処理において実行される検証対象データ４０の分割データ４０Ａごとの証蹟（ｍｉ（ｊ））の作成方法が異なる。具体的には、かかる既存技術では、次式により検証対象データ４０の分割データ４０Ａごとの証蹟（ｍｉ（ｊ））をそれぞれ生成する。
【数９】
2014068734.tif 000011
【０１２６】
ただし、（８）式及び（９）式は、計算式が異なるものの、最も計算負荷が高いべき乗剰余乗算は同様に１回であることから（８）式及び（９）式の計算量はほぼ同じであり、データのサイズもほぼ同じとみなすことができる。従って、本実施の形態による検証対象データ登録処理については、ユーザ端末１０１やサービス提供サーバ１０２に要求される計算量が非特許文献１に開示された既存技術と同等量であるとみなすことができる。
【０１２７】
（３−２−３）検証対象データ保持検証処理
他方、図１６は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末１０１が先に生成した検証対象データ４０の分割データ４１Ａごとの証蹟を用いて、サービス提供サーバ１０２に検証対象データ４０を送信させることなく、サービス提供サーバ１０２が検証対象データ４０を保持しているか否かを検証する処理である。
【０１２８】
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末１０１（図１２）の入力部２２を操作して、所望する検証対象データ４０のデータ識別子４２を指定し、対応する検証対象データ４０がサービス提供サーバ１０２に保持されているか否かを検証すべき旨の指示（検証対象データ保持検証指）を入力することにより開始される。
【０１２９】
そしてユーザ端末１０１の全体処理部１１２（図１２）は、入力部２２を介して検証対象データ４０のデータ識別子４２を指定したかかる検証対象データ保持検証指示が入力されると（ＳＰ８０）、まず、一方向性関数部１１１に対して検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａを生成するよう指示を与える。かくして一方向性関数部１１１は、かかる指示に従って、公開パラメータ登録処理（図１３）のステップＳＰ６２において記憶部２１に格納した秘密鍵ｋを用いて、検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａをｉ（ｊ）として、次式により検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａをそれぞれ算出する。
【数１０】
2014068734.tif 000012
【０１３０】
また全体処理部１１２は、乱数生成部３１に対して乱数を生成するよう指示を与える。かくして乱数生成部３１は、０以上ｐ未満の乱数ｔを生成し、次式を満たすパラメータｈを生成する（ＳＰ８１）。
【数１１】
2014068734.tif 000013
【０１３１】
なお、上述の説明において、「ｐ」は、図１３について上述した公開パラメータ登録処理のステップＳＰ６１において公開パラメータ３６（図１２）を生成するに際して乱数生成部３１により生成された乱数の１つであり、（１１）式において、「ｇ」は、公開パラメータ登録処理のステップＳＰ６２において乱数生成部３１により生成された乱数の１つであり、「Ｎ」は公開パラメータ登録処理のステップＳＰ６１において生成された公開パラメータ３６の値である。
【０１３２】
続いて、全体処理部１１２は、乱数生成部３１に対して検証対象データ４０の分割データ４０Ａごとの乱数をそれぞれ生成するよう指示を与える。かくして乱数生成部３１は、かかる指示に従って、検証対象データ４０の分割データ４０Ａごとの乱数（Ｒ（ｊ）（ｊ＝１〜ｎ））をそれぞれ生成する（ＳＰ８２）。
【０１３３】
次いで、全体処理部１１２は、このとき乱数生成部３１が生成した各乱数（Ｒ（ｊ）（ｊ＝１〜ｎ））と、上述の検証対象データ保持検証指示において指定された各データ識別子４２Ａと、ステップＳＰ８１において生成したパラメータｈとを、通信部２４（図１２）を介してサービス提供サーバ１０２に送信する（ＳＰ８３）。
【０１３４】
一方、サービス提供サーバ１０２の全体処理部１２１（図４）は、かかる各乱数（Ｒ（ｊ）（ｊ＝１〜ｎ））、データ識別子４２Ａ及びパラメータｈを通信部５４を介して受信すると、これら各乱数（Ｒ（ｊ）（ｊ＝１〜ｎ））、データ識別子４２Ａ及びパラメータｈを記憶部５１に格納する（ＳＰ８４）。
【０１３５】
続いて、全体処理部１２１は、ステップＳＰ８４において受信したデータ識別子４２Ａに基づいて、対応する検証対象データ４０の各分割データ４０Ａのデータ識別子４２Ａをそれぞれ記憶部５１から読み出し、読み出したこれらのデータ識別子４２Ａに基づいて、サービス提供サーバ１０２が保持していることを検証すべき検証対象データ４０の各分割データ４０Ａをそれぞれ特定する（ＳＰ８５）。
【０１３６】
次いで、全体処理部１２１は、基本演算部６１（図４）に対して、ステップＳＰ８５において特定した検証対象データ４０の各分割データ４０Ａと、公開パラメータ登録処理（図１３）のステップＳＰ６５において記憶部５１に格納した公開パラメータ３６とを用いて、検証対象データ４０のサービス提供サーバ１０２側の２つの証拠データ（以下、これらをそれぞれ第１及び第２のサーバ側証拠データと呼ぶ）をそれぞれ算出するよう指示を与える。かくして基本演算部６１は、かかる指示に従って、検証対象データ４０の各分割データ４０Ａの値をそれぞれＭｉ（１）〜Ｍｉ（ｎ）、これら分割データ４０Ａのデータ識別子４２Ａをそれぞれｉ（１）〜ｉ（ｎ）、ステップＳＰにおいてサービス提供サーバ１０２が受信した乱数をそれぞれＲ（１）〜Ｒ（ｎ）、公開パラメータ登録処理のステップＳＰ６５において記憶部５１に格納した公開パラメータ３６をＮとして、次式を満たす第１及び第２のサーバ側証拠データＳｉ，Ｕｉをそれぞれ算出し、算出した第１及び第２のサーバ側証拠データＳｉ，Ｕｉをそれぞれ記憶部５１に格納する（ＳＰ８６）。
【数１２】
2014068734.tif 000014
【数１３】
2014068734.tif 000015
【０１３７】
なお（１３）式において、次式
【数１４】
2014068734.tif 000016
で表される指数部は、乗算と加算から構成されているため、先に指数部を演算することにより、（１３）式を１回のべき乗剰余算と、ｎ回程度の乗算及び加算とで演算することができる。この場合、加算及び乗算は計算負荷が低いため、（１３）式の実際の演算量は１回のべき乗剰余乗算とほぼ等しい。
【０１３８】
この後、全体処理部１２１は、上述のように算出した第１及び第２のサーバ側証拠データＳｉ，Ｕｉをそれぞれ記憶部５１から読み出し、読み出したこれら第１及び第２のサーバ側証拠データＳｉ，Ｕｉを通信部２４を介してユーザ端末１０１に送信する（ＳＰ８７）。
【０１３９】
他方、ユーザ端末１０１の全体処理部１１２は、かかる第１及び第２のサーバ側証拠データＳｉ，Ｕｉを通信部２４を介して受信すると（ＳＰ８８）、基本演算部３３に対して、ステップＳＰ８２において乱数生成部３１が生成した検証対象データ４０の分割データ４０Ａごとの乱数Ｒ（ｊ）と、ステップＳＰ８１において算出した検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａ（ｉ（ｊ））と、公開パラメータ登録処理（図１３）のステップＳＰ６１において生成した公開パラメータ３６とを用いて、ユーザ端末１０１側の証拠データ（以下、これをユーザ端末側証拠データと呼ぶ）を生成するよう指示を与える。
【０１４０】
かくして基本演算部３３は、かかる指示に従って、次式を満たす第１のユーザ端末側証拠データＴｉを算出する。
【数１５】
2014068734.tif 000017
【０１４１】
なお（１５）式において、次式
【数１６】
2014068734.tif 000018
で表される指数部は、乗算と加算から構成されているため、先に指数部を演算することにより、（１５）式を１回のべき乗剰余算と、ｎ回程度の乗算及び加算とで演算することができる。この場合、加算及び乗算は計算負荷が低いため、（１５）式の実際の演算量は１回のべき乗剰余乗算とほぼ等しい。
【０１４２】
また（１３）式及び（１５）式の関係から、第１のユーザ端末側証拠データＴｉは次式を満たす。
【数１７】
2014068734.tif 000019
【０１４３】
続いて、基本演算部３３は、ステップＳＰ８１において乱数生成部３１が生成した乱数ｔと、公開パラメータ登録処理（図１３）のステップＳＰ６２において生成した秘密鍵ｅ（秘密鍵ｄの逆元）とを記憶部２１から読み出し、次式を満たす第２のユーザ端末側証拠データＶｉを算出すると共に、算出した第２のユーザ端末側証拠データＶｉを記憶部２１に格納する（ＳＰ８９）。
【数１８】
2014068734.tif 000020
【０１４４】
次いで、基本演算部３３は、このようにして算出した第２のユーザ端末側証拠データＶｉと、ステップＳＰ８８において受信した第１のサーバ側証拠データＳｉとを比較する。そして基本演算部３３は、これら第２のユーザ端末側証拠データＶｉ及び第１のサーバ側証拠データＳｉが等しい場合には、サービス提供サーバ１０２がそのとき対象としていた検証対象データ４０を保持していると判定し、第１のサーバ側証拠データＳｉ及び第２のユーザ端末側証拠データＶｉが等しくない（異なっている）場合には、サービス提供サーバ１０２が当該検証対象データ４０を保持していないと判定する（ＳＰ９０）。
【０１４５】
そして全体処理部１１２は、かかる基本演算部３３の判定結果を出力部２３に表示させ、この後、この検証対象データ保持検証処理を終了する。
【０１４６】
なお、上述の処理手順では、公開パラメータ３６を法とする乗算を用いて第１及び第２のユーザ端末側証拠データＴｉ，Ｖｉを生成するようにした場合について述べたが、公開パラメータを法とする加算（又は減算）を用いて、第１及び第２のユーザ端末側証拠データＴｉ，Ｖｉを生成するようにしてもよい。
【０１４７】
（３−３）本実施の形態の効果
上述した非特許文献１に開示された既存技術では、サービス提供サーバ１０２が検証対象データ４０を保持しているか否かの検証処理の処理手順が本実施の形態の検証対象データ保持検証処理と類似するが、検証対象データ登録処理（図１４）のステップＳＰ７２において（９）式でなく（８）式に基づいて証蹟を生成するため処理内容が一部異なる。
【０１４８】
具体的には、非特許文献１に開示された既存技術の場合、検証対象データ保持検証処理（図１６）のステップＳＰ８６において、サーバ側証拠データＵｉが次式に基づいて算出される。
【数１９】
2014068734.tif 000021
【０１４９】
この場合において（１９）式は、ｇR1Mi(1)＋……＋RnMi(n)、ｉ（１）R1、ｉ（２）R2、……といった底が異なる（ｎ＋１）個のべき乗剰余乗算が組み合わされているため、１回のべき乗剰余乗算で処理可能な（１４）式と比べ、計算量が約100倍も大きい。
【０１５０】
また、非特許文献１に開示された既存技術は、ユーザ端末１０１の処理負荷も高い。具体的には、検証対象データ保持検証処理（図１６）のステップＳＰ８９において、次式によりユーザ端末１０１が第１のユーザ端末側証拠データＴｉを算出する。
【数２０】
2014068734.tif 000022
【０１５１】
この場合において、（２０）式は、（１９）式と同様に、底が異なる（ｎ＋１）個のべき乗剰余乗算が組み合わされているため、やはり１回のべき乗剰余乗算で処理可能な（１５）式と比べ、計算量が約100倍も大きい。
【０１５２】
以上のことからも明らかなように、本実施の形態によるデータ保持検証方式によれば、検証対象データ４０の登録処理と、サービス提供サーバ１０２がその検証対象データ４０を保持しているか否かを検証する検証対象データ保持検証処理において、非特許文献１に示された既存技術よりもはるかに少ない回数のべき乗剰余乗算で、サービス提供サーバ１０２が検証対象データ４０を保持していることを検証することができる。
【０１５３】
また本実施の形態によるデータ保持検証方式によれば、第１の実施の形態と同様に、サービス提供サーバ１０２から検証対象データ４０を送信してもらうことなく、ユーザ端末１０１側において、当該検証対象データ４０をサービス提供サーバ１０２が保持しているか否かを検証することができる。
【０１５４】
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末１０１がサービス提供サーバ１０２に預けた検証対象データ４０をサービス提供サーバ１０２が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
【０１５５】
（４）他の実施の形態
なお上述の第１〜第３の実施の形態においては、本発明を図１のように構成されたクラウドシステムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のシステムに広く適用することができる。
【０１５６】
また上述の第１の実施の形態においては、公開パラメータ登録処理、検証対象データ登録処理及びデータ保持検証処理をそれぞれ図５、図６又は図８に示す処理手順に従って実行し、第２の実施の形態においては、データ保持検証処理を図１１に示す処理手順に従って実行し、第３の実施の形態においては、公開パラメータ登録処理、検証対象データ登録処理及びデータ保持検証処理をそれぞれ図１３、図１４又は図１５に示す処理手順に従って実行するようにした場合について述べたが、本発明はこれに限らず、本質的な処理内容が同じであるのならば、処理手順を変更して実施するようにしても良い。
【０１５７】
さらに上述の第１〜第３の実施の形態においては、サービス提供サーバ３，７２，１０２がユーザ端末２，７１，１０１から預かったデータを保持しているか否かを検証するデータ保持検証処理において使用する検証用情報として、第１の実施の形態では乱数、第２の実施の形態では秘密鍵８３、第３の実施の形態では乱数及びパラメータｈを適用するようにした場合について述べたが、本発明はこれに限らず、かかる検証用情報としては、この他種々の情報を適用することができる。
【０１５８】
さらに上述の第１の実施の形態においては、サービス提供サーバ３が、（２）式について上述したように、公開パラメータ３６を法とし、乱数Ｒを検証対象データ４０の値の指数とするべき乗剰余演算によりサーバ側証拠データＳｉを算出し、ユーザ端末２が、（３）式について上述したように、公開パラメータ３６を法とし、乱数Ｒを第１の証蹟４１の値の指数とするべき乗剰余演算によりユーザ端末側証拠データＴｉを算出するようにした場合について述べたが、本発明はこれに限らず、例えば公開パラメータ３６を法とする加算又は減算を用いてサーバ側証拠データＳｉ及びユーザ端末側証拠データＴｉを算出するようにしても良い。
【０１５９】
さらに上述の第２の実施の形態においては、ユーザ端末７１が、（５）式について上述したように、検証対象データ４０を上位、秘密鍵８３の値を下位とする検証対象データ４０及び秘密鍵８３を結合した値を入力とした一方向関数の出力値として証蹟４１（ユーザ端末側証拠データＴｉ）を生成し、サービス提供サーバ７２が、（６）式について上述したように、検証対象データ４０を上位、秘密鍵８３の値を下位とする検証対象データ４０及び秘密鍵８３を結合した値を入力とした一方向関数の出力値としてサーバ側証拠データＳｉを生成するようにした場合について述べたが、本発明はこれに限らず、他の演算（加減算又は乗算）や他の関数の出力値を一方向関数の入力としても良く、また一方向性関数の出力値に任意の演算を追加するようにしても良い。
【産業上の利用可能性】
【０１６０】
本発明は例えば、クラウドサービスを行うクラウドシステムのほか、ユーザ端末と、当該ユーザ端末からの検証対象データを預かるサーバ装置とから構成される種々の構成のシステムに広く適用することができる。
【符号の説明】
【０１６１】
１，７０，１００……クラウドシステム、２，７１，１０１……ユーザ端末、３，７２，１０２……サービス提供サーバ、１１……ＣＰＵ、２０，５０，８０，９０，１２０……制御部、３５……秘密鍵、３６……公開パラメータ、４０……検証対象データ、４０Ａ……分割データ、４１……証蹟、４２、４２Ａ……データ識別子。
【図１】
2014068734.tif 000023
【図２】
2014068734.tif 000024
【図３】
2014068734.tif 000025
【図４】
2014068734.tif 000026
【図５】
2014068734.tif 000027
【図６】
2014068734.tif 000028
【図７】
2014068734.tif 000029
【図８】
2014068734.tif 000030
【図９】
2014068734.tif 000031
【図１０】
2014068734.tif 000032
【図１１】
2014068734.tif 000033
【図１２】
2014068734.tif 000034
【図１３】
2014068734.tif 000035
【図１４】
2014068734.tif 000036
【図１５】
2014068734.tif 000037
【図１６】
2014068734.tif 000038
【手続補正書】
【提出日】平成27年12月4日(2015.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録され、
前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信し、
前記ユーザ端末は、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、
前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、
前記ユーザ端末は、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定し、
前記サーバ装置は、
前記サーバ側証拠データをＳｉ、Ｕｉ、前記公開パラメータをＮ、前記パラメータをｈ、分割数をｎ、前記乱数をＲ１〜Ｒｎ、ｔ、前記分割データをＭｉ（１）〜Ｍｉ（ｎ）、前記データ識別子をｉ（１）〜ｉ（ｎ）、前記ユーザ端末側証拠データをＴｉ、Ｖｉ、前記秘密鍵をｄ、前記秘密鍵の逆元をｅ、Ｆｕｎｃを一方向性関数を表す演算子として、次式
【数２１】
2014068734.tif 000039
【数２２】
2014068734.tif 000040
により前記サーバ側証拠データを算出し、
前記ユーザ端末は、次式
【数２３】
2014068734.tif 000041
【数２４】
2014068734.tif 000042
により前記ユーザ端末側証拠データを算出する
ことを特徴とするデータ保持検証システム。
【請求項２】
前記ユーザ端末は、２つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項１に記載のデータ保持検証システム。
【請求項３】
ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録される第１のステップと、
前記ユーザ端末において、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信する第２のステップと、
前記ユーザ端末において、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信する第３のステップと、
前記サーバ装置において、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第４のステップと、
前記ユーザ端末において、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第５のステップと
を備え、
前記第４のステップにおいて、前記サーバ装置は、
前記サーバ側証拠データをＳｉ、Ｕｉ、前記公開パラメータをＮ、前記パラメータをｈ、分割数をｎ、前記乱数をＲ１〜Ｒｎ、ｔ、前記分割データをＭｉ（１）〜Ｍｉ（ｎ）、前記データ識別子をｉ（１）〜ｉ（ｎ）、前記ユーザ端末側証拠データをＴｉ、Ｖｉ、前記秘密鍵をｄ、前記秘密鍵の逆元をｅ、Ｆｕｎｃを一方向性関数を表す演算子として、次式
【数２５】
2014068734.tif 000043
【数２６】
2014068734.tif 000044
により前記サーバ側証拠データを算出し、
前記第５のステップにおいて、前記ユーザ端末は、次式
【数２７】
2014068734.tif 000045
【数２８】
2014068734.tif 000046
により前記ユーザ端末側証拠データを算出する
ことを特徴とするデータ保持検証方法。
【請求項４】
前記ユーザ端末は、２つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項３に記載のデータ保持検証方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
かかる課題を解決するため本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、前記ユ一ザ端末から前記サーバ装置に予め公開パラメータが登録され、前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信し、前記ユーザ端末は、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、前記ユーザ端末は、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定し、前記サーバ装置は、前記サーバ側証拠データをＳｉ、Ｕｉ、前記公開パラメータをＮ、前記パラメータをｈ、分割数をｎ、前記乱数をＲ１〜Ｒｎ、ｔ、前記分割データをＭｉ（１）〜Ｍｉ（ｎ）、前記データ識別子をｉ（１）〜ｉ（ｎ）、前記ユーザ端末側証拠データをＴｉ、Ｖｉ、前記秘密鍵をｄ、前記秘密鍵の逆元をｅ、Ｆｕｎｃを一方向性関数を表す演算子として、次式
【数２９】
2014068734.tif 000047
【数３０】
2014068734.tif 000048
により前記サーバ側証拠データを算出し、前記ユーザ端末は、次式
【数３１】
2014068734.tif 000049
【数３２】
2014068734.tif 000050
により前記ユーザ端末側証拠データを算出するようにした。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録される第１のステップと、前記ユーザ端末において、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信する第２のステップと、前記ユーザ端末において、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信する第３のステップと、前記サーバ装置において、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第４のステップと、前記ユーザ端末において、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第５のステップとを備え、前記第４のステップにおいて、前記サーバ装置は、前記サーバ側証拠データをＳｉ、Ｕｉ、前記公開パラメータをＮ、前記パラメータをｈ、分割数をｎ、前記乱数をＲ１〜Ｒｎ、ｔ、前記分割データをＭｉ（１）〜Ｍｉ（ｎ）、前記データ識別子をｉ（１）〜ｉ（ｎ）、前記ユーザ端末側証拠データをＴｉ、Ｖｉ、前記秘密鍵をｄ、前記秘密鍵の逆元をｅ、Ｆｕｎｃを一方向性関数を表す演算子として、次式
【数３３】
2014068734.tif 000051
【数３４】
2014068734.tif 000052
により前記サーバ側証拠データを算出し、前記第５のステップにおいて、前記ユーザ端末は、次式
【数３５】
2014068734.tif 000053
【数３６】
2014068734.tif 000054
により前記ユーザ端末側証拠データを算出するようにした。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
ユーザ端末２の全体処理部３０は、この登録処理結果を通信部２４を介して受信すると（ＳＰ８）、当該登録処理結果に基づいて、サービス提供サーバ３への公開パラメータ３６の登録が成功したか否かを判定する（ＳＰ９）。そして全体処理部３０は、公開パラメータ３６の登録が失敗したと判定した場合には、公開パラメータ３６の再送信処理を実行する（ＳＰ４）。これに対して全体処理部３０は、公開パラメータ３６の登録が成功したと判定した場合には、判定結果を出力部２３に表示させ（ＳＰ１０）、この公開パラメータ登録処理を終了する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
ユーザ端末２の全体処理部３０は、この登録処理結果を通信部２４を介して受信すると（ＳＰ２７）、当該登録処理結果に基づいて、サービス提供サーバ３への検証対象データ４０及びデータ識別子４２の登録が成功したか否かを判定する（ＳＰ２８）。そして全体処理部３０は、検証対象データ４０及びデータ識別子４２の登録が失敗したと判定した場合には、検証対象データ４０及びデータ識別子４２の再送信処理を実行する（ＳＰ２３）。これに対して全体処理部３０は、検証対象データ４０及びデータ識別子４２の登録が成功したと判定した場合には、判定結果を出力部２３に表示させ（ＳＰ２９）、この検証対象データ登録処理を終了する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
ユーザ端末１０１の全体処理部１１２は、この登録処理結果を通信部２４を介して受信すると（ＳＰ６７）、当該登録処理結果に基づいて、サービス提供サーバ１０２への公開パラメータ３６の登録が成功したか否かを判定する（ＳＰ６８）。そして全体処理部１１２は、公開パラメータ３６の登録が失敗したと判定した場合には、公開パラメータ３６の再送信処理を実行する（ＳＰ６３）。これに対して全体処理部１１２は、公開パラメータ３６の登録が成功したと判定した場合には、結果を出力部２３に表示させ（ＳＰ６９）、この公開パラメータ登録処理を終了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１２４
【補正方法】変更
【補正の内容】
【０１２４】
ユーザ端末１０１の全体処理部１１２（図１２）は、この登録処理結果を通信部２４（図１２）を介して受信すると（ＳＰ７７）、当該登録処理結果に基づいて、サービス提供サーバ１０２への検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、当該分割データ４０Ａごとの証蹟との登録が成功したか否かを判定する（ＳＰ７８）。そして全体処理部１１２は、かかる登録が失敗したと判定した場合には、検証対象データ４０と、当該検証対象データ４０の分割データ４０Ａごとのデータ識別子４２Ａと、これら分割データ４０Ａごとの証蹟との再送信処理を実行する（ＳＰ７３）。また全体処理部１１２は、かかる登録が成功したと判定した場合には、結果を出力部２３に表示させ（ＳＰ７９）、この検証対象データ登録処理を終了する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２７
【補正方法】変更
【補正の内容】
【０１２７】
（３−２−３）検証対象データ保持検証処理
他方、図１６は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末１０１が先に生成した検証対象データ４０の分割データ４０Ａごとの証蹟を用いて、サービス提供サーバ１０２に検証対象データ４０を送信させることなく、サービス提供サーバ１０２が検証対象データ４０を保持しているか否かを検証する処理である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
次いで、全体処理部１２１は、基本演算部６１（図４）に対して、ステップＳＰ８５において特定した検証対象データ４０の各分割データ４０Ａと、公開パラメータ登録処理（図１３）のステップＳＰ６５において記憶部５１に格納した公開パラメータ３６とを用いて、検証対象データ４０のサービス提供サーバ１０２側の２つの証拠データ（以下、これらをそれぞれ第１及び第２のサーバ側証拠データと呼ぶ）をそれぞれ算出するよう指示を与える。かくして基本演算部６１は、かかる指示に従って、検証対象データ４０の各分割データ４０Ａの値をそれぞれＭｉ（１）〜Ｍｉ（ｎ）、これら分割データ４０Ａのデータ識別子４２Ａをそれぞれｉ（１）〜ｉ（ｎ）、ステップＳＰ８４においてサービス提供サーバ１０２が受信した乱数をそれぞれＲ（１）〜Ｒ（ｎ）、公開パラメータ登録処理のステップＳＰ６５において記憶部５１に格納した公開パラメータ３６をＮとして、次式を満たす第１及び第２のサーバ側証拠データＳｉ，Ｕｉをそれぞれ算出し、算出した第１及び第２のサーバ側証拠データＳｉ，Ｕｉをそれぞれ記憶部５１に格納する（ＳＰ８６）。
【数１２】
2014068734.tif 000055
【数１３】
2014068734.tif 000056
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１４５
【補正方法】変更
【補正の内容】
【０１４５】
そして全体処理部１１２は、かかる基本演算部３３の判定結果を出力部２３に表示させ（ＳＰ９１）、この後、この検証対象データ保持検証処理を終了する。
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2014068734.tif 000057
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2014068734.tif 000058
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2014068734.tif 000059
【国際調査報告】
2014068734.tif 000060
2014068734.tif 000061
2014068734.tif 000062
2014068734.tif 000063
2014068734.tif 000064
2014068734.tif 000065
2014068734.tif 000066