(57)【要約】【課題】クラウド上のデータを適切に保護するとともに、クラウド上のデータに対する暗号化状態を確認する。【解決手段】クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化し、暗号化されたデータＧをユーザ端末に送信する。ユーザ端末は、暗号化されたデータＧを受信し、秘密鍵を生成して、生成した秘密鍵を用いて、受信したデータＧをＨに変換して、変換したＨからハッシュ値Ｉを算出する。また、変換したＨをクラウドサーバに送信し、生成したハッシュ値Ｉを保管して、チャレンジｃをクラウドサーバに送信する。クラウドサーバは、受信したＨとチャレンジｃからｒを導出し、導出したｒをユーザ端末に送信する。ユーザ端末は、チャレンジｃと受信したｒとからＨを復元し、復元したＨからハッシュ値Ｉ´を算出して、保管したＩと導出したＩ´とが一致するか否かを判断する。【選択図】図４
2014146951.tif 000002
【特許請求の範囲】
【請求項１】
クラウドサーバとユーザ端末とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムであって、
前記クラウドサーバが、
ファイルＦを暗号化したデータＧに暗号化する暗号化手段と、
該暗号化されたデータＧを前記ユーザ端末に送信する第１の送信手段と、
を備え、
前記ユーザ端末が、
該暗号化されたデータＧを受信する第１の受信手段と、
秘密鍵を生成する秘密鍵生成手段と、
該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する変換手段と、
該変換したＨからハッシュ値Ｉを算出する第１のハッシュ値算出手段と、
該変換したＨを前記クラウドサーバに送信する第２の送信手段と、
前記生成したハッシュ値Ｉを保管する保管手段と、
チャレンジｃを前記クラウドサーバに送信する第３の送信手段と、
を備え、
前記クラウドサーバが、
受信したＨとチャレンジｃからｒを導出する導出手段と、
該導出したｒを前記ユーザ端末に送信する第４の送信手段と、
を備え、
前記ユーザ端末が、
チャレンジｃと前記受信したｒとからＨを復元する復元手段と、
該復元したＨからハッシュ値Ｉ´を算出する第２のハッシュ値算出手段と、
前記保管したＩと該導出したＩ´とが一致するか否かを判断する判断手段と、
を備えたことを特徴とする暗号化状態確認システム。
【請求項２】
前記秘密鍵生成手段は、ＲＳＡ暗号の公開鍵と秘密鍵のペアを生成し、前記クラウドサーバと事前に固定の値である前記公開鍵を共有することを特徴とする請求項１に記載の暗号化状態確認システム。
【請求項３】
前記変換手段は、Ｇを小片データに分割し、該小片データを順に秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とする請求項１に記載の暗号化状態確認システム。
【請求項４】
前記変換手段は、前記Ｇの分割数をセキュリティ要件に応じて決定することを特徴とする請求項３に記載の暗号化状態確認システム。
【請求項５】
前記変換手段は、ＡＯＮＴ関数を用いて、前記小片データを順に秘匿化することを特徴とする請求項３に記載の暗号化状態確認システム。
【請求項６】
前記導出手段が、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とする請求項１に記載の暗号化状態確認システム。
【請求項７】
前記疑似乱数生成器ｆがストリーム暗号であることを特徴とする請求項６に記載の暗号化状態確認システム。
【請求項８】
クラウドサーバとユーザ端末とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムにおける暗号化状態確認方法であって、
前記クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化する第１のステップと、
前記クラウドサーバが、該暗号化されたデータＧを前記ユーザ端末に送信する第２のステップと、
前記ユーザ端末が、該暗号化されたデータＧを受信する第３のステップと、
前記ユーザ端末が、秘密鍵を生成する第４のステップと、
前記ユーザ端末が、該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する第５のステップと、
前記ユーザ端末が、該変換したＨからハッシュ値Ｉを算出する第６のステップと、
前記ユーザ端末が、該変換したＨを前記クラウドサーバに送信する第７のステップと、
前記ユーザ端末が、前記生成したハッシュ値Ｉを保管する第８のステップと、
前記ユーザ端末が、チャレンジｃを前記クラウドサーバに送信する第９のステップと、
前記クラウドサーバが、受信したＨとチャレンジｃからｒを導出する第１０のステップと、
前記クラウドサーバが、該導出したｒを前記ユーザ端末に送信する第１１のステップと、
前記ユーザ端末が、チャレンジｃと前記受信したｒとからＨを復元する第１２のステップと、
前記ユーザ端末が、該復元したＨからハッシュ値Ｉ´を算出する第１３のステップと、
前記ユーザ端末が、前記保管したＩと該導出したＩ´とが一致するか否かを判断する第１４のステップと、
を備えたことを特徴とする暗号化状態確認方法。
【請求項９】
前記第４のステップにおいて、Ｇを小片データに分割し、該小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とする請求項８に記載の暗号化状態確認方法。
【請求項１０】
前記第１０のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とする請求項８に記載の暗号化状態確認方法。
【請求項１１】
クラウドサーバとユーザ端末とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムにおける暗号化状態確認方法をコンピュータに実行させるためのプログラムであって、
前記クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化する第１のステップと、
前記クラウドサーバが、該暗号化されたデータＧを前記ユーザ端末に送信する第２のステップと、
前記ユーザ端末が、該暗号化されたデータＧを受信する第３のステップと、
前記ユーザ端末が、秘密鍵を生成する第４のステップと、
前記ユーザ端末が、該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する第５のステップと、
前記ユーザ端末が、該変換したＨからハッシュ値Ｉを算出する第６のステップと、
前記ユーザ端末が、該変換したＨを前記クラウドサーバに送信する第７のステップと、
前記ユーザ端末が、前記生成したハッシュ値Ｉを保管する第８のステップと、
前記ユーザ端末が、チャレンジｃを前記クラウドサーバに送信する第９のステップと、
前記クラウドサーバが、受信したＨとチャレンジｃからｒを導出する第１０のステップと、
前記クラウドサーバが、該導出したｒを前記ユーザ端末に送信する第１１のステップと、
前記ユーザ端末が、チャレンジｃと前記受信したｒとからＨを復元する第１２のステップと、
前記ユーザ端末が、該復元したＨからハッシュ値Ｉ´を算出する第１３のステップと、
前記ユーザ端末が、前記保管したＩと該導出したＩ´とが一致するか否かを判断する第１４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１２】
前記第４のステップにおいて、Ｇを小片データに分割し、該小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記第９のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とする請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド上のデータを適切に保護するとともに、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システム、暗号化状態確認方法およびプログラムに関する。
【背景技術】
【０００２】
近年、クラウドサービスの活用が盛んになっている。一方で、情報の漏えいが大きな問題であり、こうした情報漏えいを防止するため、一般にクラウド上に保存されるデータは暗号化して保存される。しかしながら、暗号化処理はクラウド事業者の手にゆだねられているため、利用者が適切に暗号化されているかを検証する手段はない。そこで、Ｄｉｊｋらは、クラウド上のデータが適切に暗号化されているかどうかを確認する手法を提案している（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ｈｏｕｒｇｌａｓｓ  Ｓｃｈｅｍｅｓ：  Ｈｏｗ  ｔｏ  Ｐｒｏｖｅ ｔｈａｔ  Ｃｌｏｕｄ  Ｆｉｌｅｓ Ａｒｅ  Ｅｎｃｒｙｐｔｅｄ,  Ｍ.  ｖａｎ  Ｄｉｊｋ  ｅｔ  ａｌ.,  ＡＣＭ  ＣＣＳ２０１２, ＰＰ.２６５−２８０,  Ｏｃｔｏｐｂｅｒ  ２０１２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、Ｄｉｊｋらの提案した方式では、ユーザもクラウドサーバに預けるデータと同じサイズのデータを持たなければならないという問題点があった。また、ユーザとクラウドサーバ間の通信におけるデータサイズが大きいという問題があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、クラウド上のデータを適切に保護するとともに、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システム、暗号化状態確認方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００７】
（１）本発明は、クラウドサーバ（例えば、図１のクラウドサーバ１００に相当）とユーザ端末（例えば、図１のユーザ端末２００に相当）とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムであって、前記クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化する暗号化手段（例えば、図２の暗号化部１１０に相当）と、該暗号化されたデータＧを前記ユーザ端末に送信する第１の送信手段（例えば、図２の第１の送信部１２０に相当）と、を備え、前記ユーザ端末が、該暗号化されたデータＧを受信する第１の受信手段（例えば、図３の秘密鍵生成部２２０に相当）と、秘密鍵を生成する秘密鍵生成手段（例えば、図３の第１の受信部２１０に相当）と、該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する変換手段（例えば、図３の変換部２３０に相当）と、該変換したＨからハッシュ値Ｉを算出する第１のハッシュ値算出手段（例えば、図３の第１のハッシュ値算出部２４０に相当）と、該変換したＨを前記クラウドサーバに送信する第２の送信手段（例えば、図３の第２の送信部２５０に相当）と、前記生成したハッシュ値Ｉを保管する保管手段（例えば、図３の保管部２６０に相当）と、チャレンジｃを前記クラウドサーバに送信する第３の送信手段（例えば、図３の第３の送信部２７０に相当）と、を備え、前記クラウドサーバが、受信したＨとチャレンジｃからｒを導出する導出手段（例えば、図２の導出部１３０に相当）と、該導出したｒを前記ユーザ端末に送信する第４の送信手段（例えば、図２の第４の送信部１４０に相当）と、を備え、前記ユーザ端末が、チャレンジｃと前記受信したｒとからＨを復元する復元手段（例えば、図３の復元部２８０に相当）と、該復元したＨからハッシュ値Ｉ´を算出する第２のハッシュ値算出手段（例えば、図３の第２のハッシュ値算出部２９０に相当）と、前記保管したＩと該導出したＩ´とが一致するか否かを判断する判断手段（例えば、図３の判断部３００に相当）と、を備えたことを特徴とする暗号化状態確認システムを提案している。
【０００８】
この発明によれば、クラウドサーバの暗号化手段は、ファイルＦを暗号化したデータＧに暗号化する。第１の送信手段は、暗号化されたデータＧをユーザ端末に送信する。ユーザ端末の第１の受信手段は、暗号化されたデータＧを受信する。秘密鍵生成手段は、秘密鍵を生成する。変換手段は、生成した秘密鍵を用いて、受信したデータＧをＨに変換する。第１のハッシュ値算出手段は、変換したＨからハッシュ値Ｉを算出する。第２の送信手段は、変換したＨをクラウドサーバに送信する。保管手段は、生成したハッシュ値Ｉを保管する。第３の送信手段は、チャレンジｃをクラウドサーバに送信する。クラウドサーバの導出手段は、受信したＨとチャレンジｃからｒを導出する。第４の送信手段は、導出したｒをユーザ端末に送信する。ユーザ端末の復元手段は、チャレンジｃと受信したｒとからＨを復元する。第２のハッシュ値算出手段は、復元したＨからハッシュ値Ｉ´を算出する。判断手段は、保管したＩと導出したＩ´とが一致するか否かを判断する。すなわち、クラウドサーバがＨを保管し、ユーザ端末は、Ｈではなくハッシュ値Ｉを保管することにより、ユーザ端末において保管するデータ量を削減することができる。
【０００９】
（２）本発明は、（１）の暗号化状態確認システムについて、前記秘密鍵生成手段は、ＲＳＡ暗号の公開鍵と秘密鍵のペアを生成し、前記クラウドサーバと事前に固定の値である前記公開鍵を共有することを特徴とする暗号化状態確認システムを提案している。
【００１０】
この発明によれば、秘密鍵生成手段は、ＲＳＡ暗号の公開鍵と秘密鍵のペアを生成し、クラウドサーバと事前に固定の値である公開鍵を共有する。したがって、クラウドサーバが、Ｈから公開鍵による処理によりＧを復元し、Ｇに対して復号処理を行うことにより、Ｆを復元することができる。
【００１１】
（３）本発明は、（１）の暗号化状態確認システムについて、前記変換手段は、Ｇを小片データに分割し、該小片データを順に秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とする暗号化状態確認システムを提案している。
【００１２】
この発明によれば、変換手段は、Ｇを小片データに分割し、小片データを順に秘匿化して中間データＬｉを生成し、中間データＬｉの先頭データＬ１のみを秘密鍵で変換する。したがって、Ｇ全体を変換するのではなく、Ｇの一部を変換して、この変換したものをクラウドサーバに送信することから、ユーザ端末とクラウドサーバ間における通信量を削減することができる。
【００１３】
（４）本発明は、（３）の暗号化状態確認システムについて、前記変換手段は、前記Ｇの分割数をセキュリティ要件に応じて決定することを特徴とする暗号化状態確認システムを提案している。
【００１４】
この発明によれば、変換手段は、Ｇの分割数をセキュリティ要件に応じて決定する。つまり、クラウドサーバが、Ｈの一部を保持することから、分割数が大きすぎると、セキュリティレベルが低下する懸念がある。そのため、通信量の削減とセキュリティレベルのトレードオフで分割数を決定する必要がある。
【００１５】
（５）本発明は、（３）の暗号化状態確認システムについて、前記変換手段は、ＡＯＮＴ関数を用いて、前記小片データを順に秘匿化することを特徴とする暗号化状態確認システムを提案している。
【００１６】
この発明によれば、変換手段は、ＡＯＮＴ関数を用いて、小片データを順に秘匿化する。したがって、ＧからＨへの変換演算を高速化することができる。
【００１７】
（６）本発明は、（１）の暗号化状態確認システムについて、前記導出手段が、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とする暗号化状態確認システムを提案している。
【００１８】
この発明によれば、導出手段が、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出する。これにより、データが正しく暗号化されていることおよび改竄されていないことを確認することができる。
【００１９】
（７）本発明は、（６）の暗号化状態確認システムについて、前記疑似乱数生成器ｆがストリーム暗号であることを特徴とする暗号化状態確認システムを提案している。
【００２０】
この発明によれば、疑似乱数生成器ｆがストリーム暗号である。
【００２１】
（８）本発明は、クラウドサーバとユーザ端末とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムにおける暗号化状態確認方法であって、前記クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化する第１のステップ（例えば、図４のステップＳ１１０に相当）と、前記クラウドサーバが、該暗号化されたデータＧを前記ユーザ端末に送信する第２のステップ（例えば、図４のステップＳ１２０に相当）と、前記ユーザ端末が、該暗号化されたデータＧを受信する第３のステップ（例えば、図４のステップＳ１４０に相当）と、前記ユーザ端末が、秘密鍵を生成する第４のステップ（例えば、図４のステップＳ１１０に相当）と、前記ユーザ端末が、該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する第５のステップ（例えば、図４のステップＳ１５０に相当）と、前記ユーザ端末が、該変換したＨからハッシュ値Ｉを算出する第６のステップ（例えば、図４のステップＳ１６０に相当）と、前記ユーザ端末が、該変換したＨを前記クラウドサーバに送信する第７のステップ（例えば、図４のステップＳ１７０に相当）と、前記ユーザ端末が、前記生成したハッシュ値Ｉを保管する第８のステップ（例えば、図４のステップＳ１８０に相当）と、前記ユーザ端末が、チャレンジｃを前記クラウドサーバに送信する第９のステップ（例えば、図４のステップＳ１９０に相当）と、前記クラウドサーバが、受信したＨとチャレンジｃからｒを導出する第１０のステップ（例えば、図４のステップＳ２００に相当）と、前記クラウドサーバが、該導出したｒを前記ユーザ端末に送信する第１１のステップ（例えば、図４のステップＳ２１０に相当）と、前記ユーザ端末が、チャレンジｃと前記受信したｒとからＨを復元する第１２のステップ（例えば、図４のステップＳ２２０に相当）と、前記ユーザ端末が、該復元したＨからハッシュ値Ｉ´を算出する第１２のステップ（例えば、図４のステップＳ２３０に相当）と、前記ユーザ端末が、前記保管したＩと該導出したＩ´とが一致するか否かを判断する第１３のステップ（例えば、図４のステップＳ２４０に相当）と、を備えたことを特徴とする暗号化状態確認方法を提案している。
【００２２】
この発明によれば、クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化し、暗号化されたデータＧをユーザ端末に送信する。ユーザ端末は、暗号化されたデータＧを受信し、秘密鍵を生成して、生成した秘密鍵を用いて、受信したデータＧをＨに変換して、変換したＨからハッシュ値Ｉを算出する。また、変換したＨをクラウドサーバに送信し、生成したハッシュ値Ｉを保管して、チャレンジｃをクラウドサーバに送信する。クラウドサーバは、受信したＨとチャレンジｃからｒを導出し、導出したｒをユーザ端末に送信する。ユーザ端末は、チャレンジｃと受信したｒとからＨを復元し、復元したＨからハッシュ値Ｉ´を算出して、保管したＩと導出したＩ´とが一致するか否かを判断する。すなわち、クラウドサーバがＨを保管し、ユーザ端末は、Ｈではなくハッシュ値Ｉを保管することにより、ユーザ端末において保管するデータ量を削減することができる。
【００２３】
（９）本発明は、（８）の暗号化状態確認方法について、前記第４のステップにおいて、Ｇを小片データに分割し、該小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とする暗号化状態確認方法を提案している。
【００２４】
この発明によれば、第４のステップにおいて、Ｇを小片データに分割し、小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、中間データＬｉの先頭データＬ１のみを秘密鍵で変換する。したがって、Ｇ全体を変換するのではなく、Ｇの一部を変換して、この変換したものをクラウドサーバに送信することから、ユーザ端末とクラウドサーバ間における通信量を削減することができる。また、ＧからＨへの変換演算を高速化することができる。
【００２５】
（１０）本発明は、（８）の暗号化状態確認方法について、前記第９のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とする暗号化状態確認方法を提案している。
【００２６】
この発明によれば、第９のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出する。これにより、データが正しく暗号化されていることおよび改竄されていないことを確認することができる。
【００２７】
（１１）本発明は、クラウドサーバとユーザ端末とからなり、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムにおける暗号化状態確認方法をコンピュータに実行させるためのプログラムであって、前記クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化する第１のステップ（例えば、図４のステップＳ１１０に相当）と、前記クラウドサーバが、該暗号化されたデータＧを前記ユーザ端末に送信する第２のステップ（例えば、図４のステップＳ１２０に相当）と、前記ユーザ端末が、該暗号化されたデータＧを受信する第３のステップ（例えば、図４のステップＳ１４０に相当）と、前記ユーザ端末が、秘密鍵を生成する第４のステップ（例えば、図４のステップＳ１１０に相当）と、前記ユーザ端末が、該生成した秘密鍵を用いて、前記受信したデータＧをＨに変換する第５のステップ（例えば、図４のステップＳ１５０に相当）と、前記ユーザ端末が、該変換したＨからハッシュ値Ｉを算出する第６のステップ（例えば、図４のステップＳ１６０に相当）と、前記ユーザ端末が、該変換したＨを前記クラウドサーバに送信する第７のステップ（例えば、図４のステップＳ１７０に相当）と、前記ユーザ端末が、前記生成したハッシュ値Ｉを保管する第８のステップ（例えば、図４のステップＳ１８０に相当）と、前記ユーザ端末が、チャレンジｃを前記クラウドサーバに送信する第９のステップ（例えば、図４のステップＳ１９０に相当）と、前記クラウドサーバが、受信したＨとチャレンジｃからｒを導出する第１０のステップ（例えば、図４のステップＳ２００に相当）と、前記クラウドサーバが、該導出したｒを前記ユーザ端末に送信する第１１のステップ（例えば、図４のステップＳ２１０に相当）と、前記ユーザ端末が、チャレンジｃと前記受信したｒとからＨを復元する第１２のステップ（例えば、図４のステップＳ２２０に相当）と、前記ユーザ端末が、該復元したＨからハッシュ値Ｉ´を算出する第１２のステップ（例えば、図４のステップＳ２３０に相当）と、前記ユーザ端末が、前記保管したＩと該導出したＩ´とが一致するか否かを判断する第１３のステップ（例えば、図４のステップＳ２４０に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２８】
この発明によれば、クラウドサーバが、ファイルＦを暗号化したデータＧに暗号化し、暗号化されたデータＧをユーザ端末に送信する。ユーザ端末は、暗号化されたデータＧを受信し、秘密鍵を生成して、生成した秘密鍵を用いて、受信したデータＧをＨに変換して、変換したＨからハッシュ値Ｉを算出する。また、変換したＨをクラウドサーバに送信し、生成したハッシュ値Ｉを保管して、チャレンジｃをクラウドサーバに送信する。クラウドサーバは、受信したＨとチャレンジｃからｒを導出し、導出したｒをユーザ端末に送信する。ユーザ端末は、チャレンジｃと受信したｒとからＨを復元し、復元したＨからハッシュ値Ｉ´を算出して、保管したＩと導出したＩ´とが一致するか否かを判断する。すなわち、クラウドサーバがＨを保管し、ユーザ端末は、Ｈではなくハッシュ値Ｉを保管することにより、ユーザ端末において保管するデータ量を削減することができる。
【００２９】
（１２）本発明は、（１１）のプログラムについて、前記第４のステップにおいて、Ｇを小片データに分割し、該小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、該中間データＬｉの先頭データＬ１のみを前記秘密鍵で変換することを特徴とするプログラムを提案している。
【００３０】
この発明によれば、第４のステップにおいて、Ｇを小片データに分割し、小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、中間データＬｉの先頭データＬ１のみを秘密鍵で変換する。したがって、Ｇ全体を変換するのではなく、Ｇの一部を変換して、この変換したものをクラウドサーバに送信することから、ユーザ端末とクラウドサーバ間における通信量を削減することができる。また、ＧからＨへの変換演算を高速化することができる。
【００３１】
（１３）本発明は、（１１）のプログラムについて、前記第９のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出することを特徴とするプログラムを提案している。
【００３２】
この発明によれば、第９のステップにおいて、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出する。これにより、データが正しく暗号化されていることおよび改竄されていないことを確認することができる。
【発明の効果】
【００３３】
本発明によれば、保存するデータ、および通信データのサイズを抑えながらクラウドサーバ上のデータが暗号化されているかどうかを検証可能とすることができるという効果がある。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施形態に係る暗号化状態確認システムの構成を示す図である。
【図２】本発明の実施形態に係るクラウドサーバの構成を示す図である。
【図３】本発明の実施形態に係るユーザ端末の構成を示す図である。
【図４】本発明の実施形態に係る暗号化状態確認システムの処理を示す図である。
【図５】本発明の実施形態に係る暗号化状態確認システムの処理の基本スキームを図式化したものである。
【図６】本発明の実施形態に係る暗号化状態確認システムにおけるＡＯＮＴ関数を用いた演算の高速化例を示す図である。
【図７】ＡＯＮＴ関数の構成例を示す図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３６】
本実施形態に係る暗号化状態確認システムは、図１に示すように、クラウドサーバ１００と、ユーザ端末２００とから構成されている。ユーザ端末２００は、クラウドサーバ１００にデータを保存し、クラウドサーバ１００内に保存されているデータを利用する。本実施形態は、クラウド上のデータを適切に保護するとともに、クラウド上のデータに対する暗号化状態を確認する暗号化状態確認システムに関するものである。
【００３７】
＜クラウドサーバの構成＞
図２を用いて、本実施形態に係るクラウドサーバの構成について説明する。
図２に示すように、本実施形態に係るクラウドサーバは、暗号化部１１０と、第１の送信部１２０と、導出部１３０と、第４の送信部１４０とから構成されている。
【００３８】
暗号化部１１０は、ファイルＦを暗号化したデータＧに暗号化する。第１の送信部１２０は、暗号化されたデータＧをユーザ端末２００に送信する。導出部１３０は、受信したＨとチャレンジｃからｒを導出する。具体的には、疑似乱数生成器ｆを用いて、Ｈとチャレンジｃからｒを導出する。第４の送信部１４０は、導出したｒをユーザ端末２００に送信する。
【００３９】
＜ユーザ端末の構成＞
図３を用いて、本実施形態に係るユーザ端末の構成について説明する。
図３に示すように、本実施形態に係るユーザ端末は、第１の受信部２１０と、秘密鍵生成部２２０と、変換部２３０と、第１のハッシュ値算出部２４０と、第２の送信部２５０と、保管部２６０と、第３の送信部２７０と、復元部２８０と、第２のハッシュ値算出部２９０と、判断部３００とから構成されている。
【００４０】
第１の受信部２１０は、暗号化されたデータＧを受信する。秘密鍵生成部２２０は、秘密鍵を生成する。具体的には、ＲＳＡ暗号の公開鍵と秘密鍵のペアを生成し、クラウドサーバ１００と事前に固定の値である公開鍵を共有する。変換部２３０は、生成した秘密鍵を用いて、受信したデータＧをＨに変換する。具体的には、Ｇを小片データに分割し、小片データを順にＡＯＮＴ関数を用いて、秘匿化して中間データＬｉを生成し、中間データＬｉの先頭データＬ１のみを秘密鍵で変換する。
【００４１】
第１のハッシュ値算出部２４０は、変換したＨからハッシュ値Ｉを算出する。第２の送信部２５０は、変換したＨをクラウドサーバ１００に送信する。保管部２６０は、生成したハッシュ値Ｉを保管する。第３の送信部２７０は、チャレンジｃをクラウドサーバ１００に送信する。
【００４２】
復元部２８０は、チャレンジｃと受信したｒとからＨを復元する。第２のハッシュ値算出部２９０は、復元したＨからハッシュ値Ｉ´を算出する。判断部３００は、保管したＩと導出したＩ´とが一致するか否かを判断する。
【００４３】
＜暗号化状態確認システムの処理＞
図４から図７を用いて、本実施形態に係る暗号化状態確認システムの処理について説明する。以下では、図５、図６、図７を参照して、図４の処理について説明する。
【００４４】
まず、図４および図５に示すように、クラウドサーバ１００が、ファイルＦを暗号化したデータＧに暗号化する（ステップＳ１１０）。実際は、複数ファイルが対象となるため、Ｆ１、Ｆ２、・・・・、Ｆｉに対して、Ｇ１、Ｇ２、・・・・、Ｇｉが作成される。そして、暗号化されたデータＧ１、Ｇ２、・・・・、Ｇｉをユーザ端末２００に送信する（ステップＳ１２０）。
【００４５】
ユーザ端末２００が、暗号化されたデータＧを受信し（ステップＳ１３０）、公開鍵暗号方式の鍵のペアを生成して（ステップＳ１４０）、生成した秘密鍵を用いて、受信したデータＧ１、Ｇ２、・・・・、ＧｉをＨ１、Ｈ２、・・・・、Ｈｉに変換する（ステップＳ１５０）。ただし、公開鍵は固定の値とし、クラウドサーバとは事前に公開鍵を共有しているものとする。次に、ハッシュ関数ｈを使って、Ｉ１＝ｈ（Ｈ１）、Ｉ２＝ｈ（Ｈ２）、・・・・、Ｉｉ＝ｈ（Ｈｉ）を計算し（ステップＳ１６０）、変換したＨ１、Ｈ２、・・・・、Ｈｉをクラウドサーバ１００に送信するとともに（ステップＳ１７０）、生成したＩ１、Ｉ２、・・・・、Ｉｉもしくは、それらを結合させハッシュ値を取った値（例えば、Ｉｈ＝ｈ（Ｉ１｜｜Ｉ２｜｜・・・・｜｜Ｉｉ））を保管する（ステップＳ１８０）。このとき、クラウドサーバ１００は、受信したＨ１、Ｈ２、・・・・、Ｈｉを保管し、ユーザ端末２００は、Ｈ１、Ｈ２、・・・・、Ｈｉを生成した後に、秘密鍵を破棄する。
【００４６】
また、データを確認する場合には、ユーザ端末２００は、チャレンジｃをクラウドサーバ１００に送信し（ステップＳ１９０）、クラウドサーバ１００は、受信したＨとチャレンジｃからｒを導出し（ステップＳ２００）、導出したｒをユーザ端末２００に送信する（ステップＳ２１０）。具体的には、クラウドサーバ１００は、確認を求められたＨから疑似乱数生成器ｆ（ストリーム暗号等）を用いて、ｒ＝ｆ（ｃ、Ｈｉ）を計算し、rをユーザに返信する。この時、複数のＨｉに対して、ｒ＝ｆ（ｃ、Ｈ１｜｜Ｈ２｜｜Ｈ３）のように計算してもよい。
【００４７】
ユーザ端末２００は、チャレンジｃと受信したｒとからＨｉを復元し（ステップＳ２２０）、復元したＨｉからハッシュ値Ｉｉを算出して（ステップＳ２３０）、保管したＩと導出したＩｉとが一致するか否かを判断する（ステップＳ２４０）。このとき、一致していれば、クラウドサーバ１００上のデータは正しく暗号化されていることになる。
【００４８】
なお、クラウドサーバ１００上でデータを使用するときは公開鍵を用いて、ＨからＧに変換し、Ｇを復号してＦを導出することで使用することができる。ＧからＨを生成する際には、図６に示すように、Ｇを小片のデータに分け、その第一データと他のデータを順にＡＯＮＴ関数で秘匿化することで中間データＬｉを生成し、中間データＬｉの先頭データＬ１のみを秘密鍵で変換することにより、公開鍵暗号方式による処理を適用するデータサイズを限定することにより、Ｇ→Ｈ演算を高速化できる。ただし、この場合、Ｌ１を公開鍵暗号化処理を施すことにより生成されたＫ１のみをサーバが保持していれば良い為、安全性のレベルが低下するというトレードオフがある。従って、分割するサイズ、分割数は、セキュリティ要件に基づいて決める必要がある。ＡＯＮＴ関数の構成例は、図７に示す。
【００４９】
以上、説明したように、本実施形態によれば、保存するデータ、および通信データのサイズを抑えながらクラウドサーバ上のデータが暗号化されているかどうかを検証可能とすることができる。
【００５０】
なお、暗号化状態確認システムの処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを暗号化状態確認システムに読み込ませ、実行することによって本発明の暗号化状態確認システムを実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００５１】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００５２】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００５３】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００５４】
１００；クラウドサーバ
１１０；暗号化部
１２０；第１の送信部
１３０；導出部
１４０；第４の送信部
２００；ユーザ端末
２１０；第１の受信部
２２０；秘密鍵生成部
２３０；変換部
２４０；第１のハッシュ値算出部
２５０；第２の送信部
２６０；保管部
２７０；第３の送信部
２８０；復元部
２９０；第２のハッシュ値算出部
３００；判断部
【図１】
2014146951.tif 000003
【図２】
2014146951.tif 000004
【図３】
2014146951.tif 000005
【図４】
2014146951.tif 000006
【図５】
2014146951.tif 000007
【図６】
2014146951.tif 000008
【図７】
2014146951.tif 000009