(57)【要約】【課題】データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにするデータ保存装置、方法及びプログラムを提供すること。【解決手段】データ保存装置１０は、ユーザ端末５０からデータを受け付け、受け付けたデータを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換し、変換したＡＯＮＴブロックを構成するブロックのうち少なくとも１つのブロックと、他のブロックとを分離させて保存し、分離させて保存したブロックに基づいてデータを復元し、分離させて保存したデータを削除する。【選択図】図１
2015148907.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からのデータを、インターネットを介してクラウドサーバに保存するデータ保存装置であって、
前記ユーザ端末から前記データを受け付けるデータ受付手段と、
前記データ受付手段によって受け付けられた前記データを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換するデータ変換手段と、
前記データ変換手段によって変換された前記ＡＯＮＴブロックを構成する前記ブロックのうち少なくとも１つの前記ブロックと、他の前記ブロックとを分離させて保存する保存手段と、
前記保存手段によって分離されて保存された前記ブロックに基づいて前記データを復元するデータ復元手段と、
前記保存手段によって分離されて保存された前記データを削除するデータ削除手段と、
を備えるデータ保存装置。
【請求項２】
前記ブロックを記憶するブロック記憶手段をさらに備え、
前記保存手段は、前記少なくとも１つの前記ブロックを前記ブロック記憶手段に保存すると共に、前記他の前記ブロックを前記クラウドサーバに保存し、
前記データ削除手段は、前記ブロック記憶手段に保存した前記少なくとも１つの前記ブロックを削除することによってデータを削除する、
請求項１に記載のデータ保存装置。
【請求項３】
前記データ変換手段は、前記データを分割するデータ分割手段をさらに備え、
前記データ分割手段は、前記データをｋ個のグループに分割し、
前記データ変換手段は、前記データ分割手段によって分割された前記グループごとを、前記ＡＯＮＴブロックに変換し、
前記保存手段は、前記グループごとに、少なくとも１個の前記ブロックを前記ブロック記憶手段に保存すると共に、他の前記ブロックを前記クラウドサーバに保存する、
請求項２に記載のデータ保存装置。
【請求項４】
前記データ分割手段は、ｋ個のグループであってそれぞれの前記グループが所定の配列によって構成される前記グループに分割し、
前記データ変換手段は、前記データ分割手段によって分割されたそれぞれの前記グループにおいて同じ配列位置に配置されたｋ個のデータを、前記ＡＯＮＴアルゴリズムによってｋ個のブロックから構成されるＡＯＮＴブロックに変換し、
前記保存手段は、前記ＡＯＮＴブロックごとの少なくとも１個のブロックを前記ブロック記憶手段に保存すると共に、他の前記ブロックを前記クラウドサーバに保存する、
請求項３に記載のデータ保存装置。
【請求項５】
前記データ変換手段は、前記データを分割するデータ分割手段をさらに備え、
前記データ分割手段は、前記データをｋ個のグループに分割し、
前記データ変換手段は、前記データ分割手段によって分割された前記グループごとを、前記ＡＯＮＴブロックに変換し、
前記保存手段は、それぞれの前記ＡＯＮＴブロックを構成する前記ブロックを分離させて、秘密の関数を用いて互いに混在させて保存し、
前記データ削除手段は、前記秘密の関数を削除することによってデータを削除する、
請求項１に記載のデータ保存装置。
【請求項６】
請求項１に記載のデータ保存装置が実行する方法であって、
前記データ受付手段が、前記ユーザ端末から前記データを受け付けるデータ受付ステップと、
前記データ変換手段が、前記データ受付ステップによって受け付けられた前記データを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換するデータ変換ステップと、
前記保存手段が、前記データ変換ステップによって変換された前記ＡＯＮＴブロックを構成する前記ブロックのうち少なくとも１つの前記ブロックと、他の前記ブロックとを分離させて保存する保存ステップと、
前記データ復元手段が、前記保存ステップによって分離されて保存された前記ブロックに基づいて前記データを復元するデータ復元ステップと、
前記データ削除手段が、前記保存ステップによって分離されて保存された前記データを削除するデータ削除ステップと、
を備える方法。
【請求項７】
コンピュータに、請求項６に記載の方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、サーバ側に保管されているデータの完全性や、サーバ側の処理の完全性を保証する技術は、提案されていた（例えば、非特許文献１）。このようなデータの完全性を保証する技術では、一般的に、保管するデータを符号化することによってデータに冗長性を持たせる。データに冗長性を持たせると、保管されているデータの一部を変更する場合でも大部分を変更する必要がある。このような技術によって、サーバ側がクライアントに無断でデータを変更しようとしてもできないようにしている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｇｉｕｓｅｐｐｅ  Ａｔｅｎｉｅｓｅ，Ｒａｎｄａｌ  Ｃ．  Ｂｕｒｎｓ，Ｒｅｚａ  Ｃｕｒｔｍｏｌａ，Ｊｏｓｅｐｈ  Ｈｅｒｒｉｎｇ，Ｌｅａ  Ｋｉｓｓｎｅｒ，Ｚａｃｈａｒｙ  Ｎ．  Ｊ．  Ｐｅｔｅｒｓｏｎ，Ｄａｗｎ  Ｘｉａｏｄｏｎｇ  Ｓｏｎｇ，“Ｐｒｏｖａｂｌｅ  ｄａｔａ  ｐｏｓｓｅｓｓｉｏｎ  ａｔ  ｕｎｔｒｕｓｔｅｄ  ｓｔｏｒｅｓ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００７  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ，ＣＣＳ  ２００７
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の手法では、サーバがデータを正しく保持していることを保証可能であるが、利用者が不要となったデータを削除しても、そのデータが正しく削除されたかどうかを保証することはできない。また、無断でデータがコピーされていた場合、コピーされたデータを保護することはできない。
例えば、パブリッククラウドなどの環境では不正利用者や内部不正者が存在する可能性がある。不正利用者が存在する場合、保管されているデータを無断でコピーし、別のサーバに蓄積するといったことが考えられる。データが無断で他のサーバに蓄積されている場合、利用者がクラウドサービスに保管しているデータを削除したとしても、不正利用者が保管しているデータを削除することは不可能である。また、利用者がデータを暗号化していたとしても、不正利用者が何らかの手法で秘密鍵を入手したり、暗号に対する脆弱性を利用して元のデータを復元すれば、既に削除したはずのデータを攻撃者が入手できる可能性がある。
【０００５】
このような、従来技術の問題点を解決する装置が望まれている。すなわち、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにする装置が望まれている。
【０００６】
本発明は、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにするデータ保存装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
具体的には、以下のような解決手段を提供する。
（１）  ユーザ端末からのデータをインターネットを介してクラウドサーバに保存するデータ保存装置であって、前記ユーザ端末から前記データを受け付けるデータ受付手段と、前記データ受付手段によって受け付けられた前記データを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換するデータ変換手段と、前記データ変換手段によって変換された前記ＡＯＮＴブロックを構成する前記ブロックのうち少なくとも１つの前記ブロックと、他の前記ブロックとを分離させて保存する保存手段と、前記保存手段によって分離されて保存された前記ブロックに基づいて前記データを復元するデータ復元手段と、前記保存手段によって分離されて保存された前記データを削除するデータ削除手段と、を備えるデータ保存装置。
【０００８】
（１）の構成によれば、本発明に係るデータ保存装置は、ユーザ端末からデータを受け付け、受け付けたデータを、ＡＯＮＴ（ａｌｌ  ｏｒ  ｎｏｔｈｉｎｇ  ｔｒａｎｓｆｏｒｍ）アルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換し、変換したＡＯＮＴブロックを構成するブロックのうち少なくとも１つのブロックと、他のブロックとを分離させて保存し、分離させて保存したブロックに基づいてデータを復元し、分離させて保存したデータを削除する。
【０００９】
すなわち、本発明に係るデータ保存装置は、受け付けたデータをＡＯＮＴブロックに変換し、変換したＡＯＮＴブロックを構成するブロックのうち少なくとも１つのブロックと、他のブロックとを分離させて保存する。
したがって、本発明に係るデータ保存装置は、ＡＯＮＴブロックとして一体化させたデータのうち一部を分離させているので、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすることが確実にできると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにすることが確実にできる。
【００１０】
（２）  前記ブロックを記憶するブロック記憶手段をさらに備え、前記保存手段は、前記少なくとも１つの前記ブロックを前記ブロック記憶手段に保存すると共に、前記他の前記ブロックを前記クラウドサーバに保存し、前記データ削除手段は、前記ブロック記憶手段に保存した前記少なくとも１つの前記ブロックを削除することによってデータを削除する、（１）に記載のデータ保存装置。
【００１１】
したがって、（２）に係るデータ保存装置は、ＡＯＮＴブロックとして一体化したデータのうち一部をデータ保存装置のブロック記憶手段に保存させているので、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにさらに確実にすることができると共に、データがサーバによって正しく削除されなくても、ブロック記憶手段に保存した一部のデータを削除することによって元のデータが復元されないようにさらに確実にすることができる。
【００１２】
（３）  前記データ変換手段は、前記データを分割するデータ分割手段をさらに備え、前記データ分割手段は、前記データをｋ個のグループに分割し、前記データ変換手段は、前記データ分割手段によって分割された前記グループごとを、前記ＡＯＮＴブロックに変換し、前記保存手段は、前記グループごとに、少なくとも１個の前記ブロックを前記ブロック記憶手段に保存すると共に、他の前記ブロックを前記クラウドサーバに保存する、（２）に記載のデータ保存装置。
【００１３】
すなわち、（３）に係るデータ保存装置は、データをグループに分割し、分割したグループごとにＡＯＮＴブロックとして一体化させているので、データの更新の場合にオーバヘッドを少なくして、ＡＯＮＴブロックとしてアクセスするデータ量を少なくすることができる。
したがって、（３）に係るデータ保存装置は、データがサーバから不正利用者によってコピーされたり、データがサーバによって正しく削除されなくても、元のデータが復元されないようにすることができると共に、アクセスに必要なデータ量を少なくしかつ高速でデータにアクセスできるようにすることができる。
【００１４】
（４）  前記データ分割手段は、ｋ個のグループであってそれぞれの前記グループが所定の配列によって構成される前記グループに分割し、前記データ変換手段は、前記データ分割手段によって分割されたそれぞれの前記グループにおいて同じ配列位置に配置されたｋ個のデータを、前記ＡＯＮＴアルゴリズムによってｋ個のブロックから構成されるＡＯＮＴブロックに変換し、前記保存手段は、前記ＡＯＮＴブロックごとの少なくとも１個のブロックを前記ブロック記憶手段に保存すると共に、他の前記ブロックを前記クラウドサーバに保存する、（３）に記載のデータ保存装置。
【００１５】
すなわち、（４）に係るデータ保存装置は、データを所定の配列によって構成されるグループに分割し、分割したそれぞれのグループにおいて同じ配列位置に配置されたｋ個のデータをＡＯＮＴブロックとして一体化させているので、データの更新の場合に、ＡＯＮＴブロックとしてアクセスするデータ量をさらに少なくすることができる。
したがって、（４）に係るデータ保存装置は、データがサーバから不正利用者によってコピーされたり、データがサーバによって正しく削除されなくても、元のデータが復元されないようにすることができると共に、アクセスに必要なデータ量をさらに少なくしかつ高速でデータにアクセスできるようにすることができる。
【００１６】
（５）  前記データ変換手段は、前記データを分割するデータ分割手段をさらに備え、前記データ分割手段は、前記データをｋ個のグループに分割し、前記データ変換手段は、前記データ分割手段によって分割された前記グループごとを、前記ＡＯＮＴブロックに変換し、前記保存手段は、それぞれの前記ＡＯＮＴブロックを構成する前記ブロックを分離させて、秘密の関数を用いて互いに混在させて保存し、前記データ削除手段は、前記秘密の関数を削除することによってデータを削除する、（１）に記載のデータ保存装置。
【００１７】
すなわち、（５）に係るデータ保存装置は、データをグループに分割し、分割したグループごとにＡＯＮＴブロックとして一体化させ、一体化させたそれぞれのＡＯＮＴブロックを構成するブロックを分離させて、秘密の関数に基づいて互いに混在させて保存する。
したがって、（５）に係るデータ保存装置は、ＡＯＮＴブロックを構成するブロックを秘密の関数を用いて互いに混在させて保存することによって、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすることができると共に、データがサーバによって正しく削除されなくても、秘密の関数を削除することによって元のデータが復元されないようにすることができる。
【００１８】
（６）  （１）に記載のデータ保存装置が実行する方法であって、前記データ受付手段が、前記ユーザ端末から前記データを受け付けるデータ受付ステップと、前記データ変換手段が、前記データ受付ステップによって受け付けられた前記データを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換するデータ変換ステップと、前記保存手段が、前記データ変換ステップによって変換された前記ＡＯＮＴブロックを構成する前記ブロックのうち少なくとも１つの前記ブロックと、他の前記ブロックとを分離させて保存する保存ステップと、前記データ復元手段が、前記保存ステップによって分離されて保存された前記ブロックに基づいて前記データを復元するデータ復元ステップと、前記データ削除手段が、前記保存ステップによって分離されて保存された前記データを削除するデータ削除ステップと、を備える方法。
【００１９】
したがって、本発明に係る方法は、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすることができると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにすることができる。
【００２０】
（７）  コンピュータに、（６）に記載の方法の各ステップを実行させるためのプログラム。
【００２１】
したがって、本発明に係るプログラムは、コンピュータに、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにさせることができると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにさせることができる。
【発明の効果】
【００２２】
本発明によれば、データがサーバから不正利用者によってコピーされたとしても元のデータが取得されないようにすると共に、データがサーバによって正しく削除されなくても元のデータが復元されないようにすることができる。
本発明によって、クラウド内の内部不正者などが不正にデータをコピーしていたとしても、利用者が削除処理を行うとデータの復元が不可能になることを保証できる。本発明を適用すれば、クラウドの信頼性を向上することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態に係るデータ保存装置の構成を示す図である。
【図２】本発明の第１実施形態に係るデータ保存装置の処理を示すフローチャートである。
【図３】本発明の第１実施形態に係るデータ保存装置が保存するデータの例を示す図である。
【図４】本発明の第１実施形態に係るデータ保存装置が保存するデータの分割の例を示す図である。
【図５】本発明の第１実施形態に係るデータ保存装置が保存するデータの分割の別の例を示す図である。
【図６】本発明の第１実施形態に係るデータ保存装置が保存するデータの配列による分割の例を示す図である。
【図７】本発明の第２実施形態に係るデータ保存装置の処理を示すフローチャートである。
【図８】本発明の第２実施形態に係るデータ保存装置が保存するデータの例を示す図である。
【発明を実施するための形態】
【００２４】
［第１実施形態］
以下、本発明の実施形態について、図を参照しながら説明する。図１は、本発明の第１実施形態に係るデータ保存装置１０の構成を示す図である。
データ保存装置１０は、ユーザ端末５０からのデータをインターネット７０を介してクラウドサーバ３０に保存する装置であって、データ受付手段１１と、データ変換手段１２と、保存手段１３と、データ復元手段１４と、データ削除手段１５と、ブロック記憶手段２０とを備える。
第１実施形態では、データ保存装置１０は、ＡＯＮＴブロックを構成するブロックを分離させて、ブロック記憶手段２０とクラウドサーバ３０とに保存する。手段ごとに説明する。
【００２５】
データ受付手段１１は、ユーザ端末５０からデータを受け付ける。
【００２６】
データ変換手段１２は、データ受付手段１１によって受け付けられたデータを、ＡＯＮＴアルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換する。
なお、データ変換手段１２は、データを暗号化し、暗号化したデータをＡＯＮＴブロックに変換するとしてもよい。
【００２７】
ＡＯＮＴアルゴリズムは、データを複数のブロックに変換する。その際、ＡＯＮＴアルゴリズムは、そのデータを読み／書きする際には全てのブロックに対してアクセスが必要となるように変換する。この変換によって、変換されたブロックのうち１つのブロックでも削除されれば残りのブロックを全て入手したとしても元のデータを復元することは不可能になる。
【００２８】
保存手段１３は、データ変換手段１２によって変換されたＡＯＮＴブロックを構成するブロックのうち少なくとも１つのブロックと、他のブロックとを分離させて保存する。
【００２９】
例えば、保存手段１３は、少なくとも１つのブロックをブロック記憶手段２０に保存すると共に、他のブロックをクラウドサーバ３０に保存することによって分離させて保存する（後述する図３参照）。なお、保存手段１３は、少なくとも１つのブロックをユーザ端末５０に保存すると共に、他のブロックをクラウドサーバ３０に保存することによって分離させて保存するとしてもよい。
データ復元手段１４は、保存手段１３によって分離されて保存されたブロック、すなわち全てのブロック、に基づいてデータを復元する。
データ削除手段１５は、保存手段１３によって分離されて保存されたデータ、例えば、ブロック記憶手段２０に保存されたブロックを削除する。すなわち、データ削除手段１５は、ＡＯＮＴブロックのうちの少なくとも１つのブロックを削除することによってデータを復元できない状態にする。なお、保存手段１３によって少なくとも１つのブロックがユーザ端末５０に保存されている場合、データ削除手段１５は、ユーザ端末５０内のブロックを削除する。もしくは、ユーザ端末５０がユーザ端末５０内のブロックをローカルで削除してもよい。
【００３０】
さらに、データ変換手段１２が、データを分割するデータ分割手段１２１を備える場合について、説明する。
データ分割手段１２１は、データをｋ個のグループに分割する。ｋの値は、例えば、ユーザによって適切な値が設定されるとしてもよい。また、ｋの値は、例えば、データがｎ個のブロックから構成される場合に、√ｎによって算出されるとしてもよい。
データ変換手段１２は、データ分割手段１２１によって分割されたグループごとを、ＡＯＮＴブロックに変換し、保存手段１３は、グループごとに、少なくとも１個のブロックをブロック記憶手段２０に保存すると共に、他のブロックをクラウドサーバ３０に保存する（後述する図４及び図５参照）。
データ削除手段１５は、ブロック記憶手段２０に保存した、ｋ個のブロックを全て削除する。すなわち、この処理により、データ削除手段１５は、それぞれのＡＯＮＴブロックのうちの少なくとも１つのブロックを削除することによってそれぞれのＡＯＮＴブロックを復元できない状態にする。
【００３１】
データ分割手段１２１は、ｋ個のグループであってそれぞれのグループが所定の配列によって構成されるグループに分割してもよい。
データ変換手段１２は、データ分割手段１２１によって分割されたそれぞれのグループにおいて同じ配列位置に配置されたｋ個のデータを、ＡＯＮＴアルゴリズムによってｋ個のブロックから構成されるＡＯＮＴブロックに変換し、保存手段１３は、ＡＯＮＴブロックごとの少なくとも１個のブロックをブロック記憶手段２０に保存すると共に、他のブロックをクラウドサーバ３０に保存する（後述する図６参照）。所定の配列は、１次元や、２次元（正方形の行列だけでなく長方形の行列でもよい）だけでなく、３次元的に配置されてもよい。
【００３２】
図２は、本発明の第１実施形態に係るデータ保存装置１０の処理を示すフローチャートである。データ保存装置１０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、それぞれの制御部（例えば、ＣＰＵ）が所定のソフトウェアに従い実行する処理である。図２（１）は、データ保存装置１０のデータ保存処理を示すフローチャートである。
【００３３】
ステップＳ１０１において、ＣＰＵ（データ受付手段１１）は、データを受け付ける。
ステップＳ１０２において、ＣＰＵ（データ分割手段１２１）は、ステップＳ１０１において受け付けたデータをグループに分割する。
ステップＳ１０３において、ＣＰＵ（データ変換手段１２）は、ステップＳ１０２において分割したデータを、分割したグループごとにＡＯＮＴブロックに変換する。
ステップＳ１０４において、ＣＰＵ（保存手段１３）は、ステップＳ１０３において変換したＡＯＮＴブロックごとの一部のブロックをブロック記憶手段２０に保存し、他のブロックをクラウドサーバ３０に保存する。すなわち、ＣＰＵは、一部のブロックをブロック記憶手段２０に保存し、他のブロックをクラウドサーバ３０に送信して保存させる。
【００３４】
図２（２）は、データ保存装置１０のデータ削除処理を示すフローチャートである。
【００３５】
ステップＳ１１１において、ＣＰＵ（データ削除手段１５）は、ＡＯＮＴブロックのうちブロック記憶手段２０に保存したブロックを削除する。なお、ブロックがユーザ端末５０に保存されている場合、ＣＰＵは、ユーザ端末５０内のブロックを削除する。もしくは、ユーザ端末５０がユーザ端末５０内のブロックをローカルで削除してもよい。
ステップＳ１１２において、ＣＰＵ（データ削除手段１５）は、ＡＯＮＴブロックのうち残りのブロックである他のブロックの削除をクラウドサーバ３０に要求する。
【００３６】
図３は、本発明の第１実施形態に係るデータ保存装置１０が保存するデータの例を示す図である。図３の例は、１つのファイルをＡＯＮＴアルゴリズムを用いて３２個のブロックから構成されるＡＯＮＴブロック１００に変換する例である。データ保存装置１０は、ＡＯＮＴブロック１００を構成するブロックのうち、例えばブロック番号１のブロックのみをブロック記憶手段２０に保存し、ブロック番号２からブロック番号３２のブロックをクラウドサーバ３０に送信し、クラウドサーバ３０が保管する。
不正利用者は、ブロック番号１に対してアクセスできないため、クラウドサーバ３０に保管されているブロック番号２〜３２の全てのブロックを用いて解析を行ったとしてもファイルに関する情報を得ることはできない。
ユーザがデータを削除する場合、データ保存装置１０は、ブロック番号１のブロックのみを削除した後に、クラウドサーバ３０に対して削除を要求する。ブロックの削除後であれば、攻撃者が元のデータを復元することは不可能である。
【００３７】
図４は、本発明の第１実施形態に係るデータ保存装置１０が保存するデータの分割の例を示す図である。図４の例は、１つのファイルをｎ個のブロックから構成される１個のＡＯＮＴブロックを作成するのではなく、１つのファイルをｋ個のグループに分割し、ｋ個のＡＯＮＴブロックを作成する例である。
図４が示すように、データ保存装置１０は、例えば、４つのＡＯＮＴブロック１００，２００，３００，４００を作成する。それぞれのＡＯＮＴブロックは、ＡＯＮＴブロック１００がブロック番号１〜８、ＡＯＮＴブロック２００がブロック番号９〜１６、ＡＯＮＴブロック３００がブロック番号１７〜２４、ＡＯＮＴブロック４００が、ブロック番号２５〜３２である。データ保存装置１０は、ブロック記憶手段２０にブロック番号１、ブロック番号９、ブロック番号１７、ブロック番号２５のブロックを保持し、残りのブロックをクラウドサーバに送信する。これによって保持するデータサイズは増加するが、読み書きに必要なアクセス数を３２個のブロックから８個のブロックに削減することができ、高速化が可能である。
ユーザがデータを削除する場合、データ保存装置１０は、ブロック番号１、ブロック番号９、ブロック番号１７、ブロック番号２５を削除した後に、クラウドサーバ３０に対して削除を要求する。
【００３８】
図５は、本発明の第１実施形態に係るデータ保存装置１０が保存するデータの分割の別の例を示す図である。図５の例は、１つのファイルを構成するｎ個のデータに基づいてＡＯＮＴブロックを構成するブロック数を算出し、算出したブロック数のブロックを１個のＡＯＮＴブロックとする例である。図５では、ｓｑｒｔ（ｎ）個のブロックから構成されるＡＯＮＴブロック、例えば、√３２から６を算出し、算出した６個のブロックから構成される６個のＡＯＮＴブロック１００，２００，３００，４００，５００，６００を作成している（ＡＯＮＴブロック６００は２個のブロック（ブロック番号３１、ブロック番号３２）から構成される）。この手法ではｎのサイズが大きくなった場合に有効である。
ユーザがデータを削除する場合、データ保存装置１０は、ブロック番号１、ブロック番号７、ブロック番号１３、ブロック番号１９、ブロック番号２５、ブロック番号３１を削除した後に、クラウドサーバ３０に対して削除を要求する。
【００３９】
図６は、本発明の第１実施形態に係るデータ保存装置１０が保存するデータの配列による分割の例を示す図である。図６の例は、６４個のデータから構成される１つのファイルが、４個のグループ（それぞれのグループが、４×４個の行列によって配置されるデータから構成される）に分割され、分割されたそれぞれのグループにおいて同じ配列位置に配置された４個のデータ（例えば、１行３列目のブロック番号３、ブロック番号１９、ブロック番号３５、ブロック番号５１）を、１個のＡＯＮＴブロック３００に変換した例である。
ユーザがデータを削除する場合、データ保存装置１０は、ブロック番号１〜１６を削除した後に、クラウドサーバ３０に対して削除を要求する。
【００４０】
［第２実施形態］
データ保存装置１０は、ＡＯＮＴブロックを構成するブロックを分離させて、クラウドサーバ３０に保存する。データ保存装置１０の構成は、第１実施形態と同様である。
データ変換手段１２は、データを分割するデータ分割手段１２１を備え、データ分割手段１２１は、データをｋ個のグループに分割する。データ変換手段１２は、データ分割手段１２１によって分割されたグループごとを、ＡＯＮＴブロックに変換し、保存手段１３は、それぞれのＡＯＮＴブロックを構成するブロックを分離させて、秘密の関数を用いて互いに混在させて保存する（後述する図８参照）。データ削除手段１５は、秘密の関数を削除することによってデータを削除する。なお、秘密の関数は、ＡＯＮＴブロックに対応付けてブロック記憶手段２０又はユーザ端末５０に記憶されるとしてよい。
【００４１】
図７は、本発明の第２実施形態に係るデータ保存装置１０の処理を示すフローチャートである。図７（１）は、データ保存装置１０のデータ保存処理を示すフローチャートである。
【００４２】
ステップＳ２０１において、ＣＰＵ（データ受付手段１１）は、データを受け付ける。
ステップＳ２０２において、ＣＰＵ（データ分割手段１２１）は、ステップＳ２０１において受け付けたデータをグループに分割する。
ステップＳ２０３において、ＣＰＵ（データ変換手段１２）は、ステップＳ２０２において分割したデータを、分割したグループごとにＡＯＮＴブロックに変換する。
ステップＳ２０４において、ＣＰＵ（保存手段１３）は、ＡＯＮＴブロックを構成するブロックを、秘密の関数を用いて互いに混在させてクラウドサーバ３０に保存する。すなわち、ＣＰＵは、秘密の関数を用いてブロックを互いに混在させたデータをクラウドサーバ３０に送信して保存させる。
【００４３】
図７（２）は、データ保存装置１０のデータ削除処理を示すフローチャートである。
【００４４】
ステップＳ２１１において、ＣＰＵ（データ削除手段１５）は、ステップＳ２０４において用いた秘密の関数を削除する。
ステップＳ２１２において、ＣＰＵ（データ削除手段１５）は、データの削除をクラウドサーバ３０に要求する。
【００４５】
図８は、本発明の第２実施形態に係るデータ保存装置１０が保存するデータの例を示す図である。図８（１）の例は、１つのファイルから作成された４つのＡＯＮＴブロック１００，２００，３００，４００の例（ＡＯＮＴブロック１００がブロック番号１〜８、ＡＯＮＴブロック２００がブロック番号９〜１６、ＡＯＮＴブロック３００がブロック番号１７〜２４、ＡＯＮＴブロック４００がブロック番号２５〜３２によって構成される例）である。
図８（２）の例は、４つのＡＯＮＴブロック１００，２００，３００，４００において、それぞれのＡＯＮＴブロックを構成するブロックを、秘密の関数を用いてシャッフルして互いに混在させている例である。
ただし、データ保存装置１０がＡＯＮＴブロックにアクセスするパターンによって、クラウドサーバ３０がＡＯＮＴブロックを特定できる可能性がある。そのため、この方式を使用する場合はＯｂｌｉｖｉｏｕｓ  ＲＡＭなどの技術を用いてアクセスパターンを秘匿する必要がある。例えば、データ保存装置１０は、１個のＡＯＮＴブロックを読み込む際に、そのＡＯＮＴブロックを構成するブロックと、他のＡＯＮＴブロックを構成するブロックとを互いに読み込んで、そのＡＯＮＴブロックを構成するブロックがどれであるかを不明にするような読み込み方を行い、アクセスパターンを秘匿する。
ユーザがデータを削除する場合、データ保存装置１０は、秘密の関数を削除する。
【００４６】
本実施形態１によれば、データ保存装置１０は、ユーザ端末５０からデータを受け付け、受け付けたデータを、ＡＯＮＴ（ａｌｌ  ｏｒ  ｎｏｔｈｉｎｇ  ｔｒａｎｓｆｏｒｍ）アルゴリズムによってｎ個のブロックから構成されるＡＯＮＴブロックに変換し、変換したＡＯＮＴブロックを構成するブロックのうち少なくとも１つのブロックをブロック記憶手段２０に保存すると共に、他のブロックをクラウドサーバ３０に保存し、ブロック記憶手段２０に保存したブロックを削除することによってデータを削除する。
したがって、データ保存装置１０は、ＡＯＮＴブロックとして一体化させたデータのうち一部をブロック記憶手段２０に保存させているので、データがクラウドサーバ３０から不正利用者によってコピーされたとしても元のデータが取得されないようにすることができると共に、データがクラウドサーバ３０によって正しく削除されなくても、ブロック記憶手段２０に保存した一部のデータを削除することによって元のデータが復元されないようにすることができる。
さらに、データ保存装置１０は、データをｋ個のグループに分割し、分割したグループごとを、ＡＯＮＴブロックに変換し、グループごとに、少なくとも１個のブロックをブロック記憶手段２０に保存すると共に、他のブロックをクラウドサーバ３０に保存する。
したがって、データ保存装置１０は、データがクラウドサーバ３０から不正利用者によってコピーされたり、データがクラウドサーバ３０によって正しく削除されなくても、元のデータが復元されないようにすることができると共に、アクセスに必要なデータ量を少なくしかつ高速でデータにアクセスできるようにすることができる。
【００４７】
本実施形態２によれば、データ保存装置１０は、データをグループに分割し、分割したグループごとにＡＯＮＴブロックとして一体化させ、一体化させたそれぞれのＡＯＮＴブロックを構成するブロックを分離させて、秘密の関数に基づいて互いに混在させて保存する。
したがって、データ保存装置１０は、データがクラウドサーバ３０から不正利用者によってコピーされたとしても元のデータが取得されないようにすることができると共に、データがクラウドサーバ３０によって正しく削除されなくても、秘密の関数を削除することによって元のデータが復元されないようにすることができる。
【００４８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００４９】
１０    データ保存装置
１１    データ受付手段
１２    データ変換手段
１２１  データ分割手段
１３    保存手段
１４    データ復元手段
１５    データ削除手段
２０    ブロック記憶手段
３０    クラウドサーバ
５０    ユーザ端末
７０    インターネット
１００，２００，３００，４００，５００，６００  ＡＯＮＴブロック
【図１】
2015148907.tif 000003
【図２】
2015148907.tif 000004
【図３】
2015148907.tif 000005
【図４】
2015148907.tif 000006
【図５】
2015148907.tif 000007
【図６】
2015148907.tif 000008
【図７】
2015148907.tif 000009
【図８】
2015148907.tif 000010