(57)【要約】      （修正有）【課題】携帯端末装置を利用したセキュアな仮想ストレージを提供する。【解決手段】管理サーバ１１０は、保管対象データを暗号化し、携帯端末１２０ａ、１２０ｂに対して送信する。そして、管理サーバ１１０は、携帯端末１２０ａ、１２０ｂにおいて保管された保管対象データを受信し、復号する。管理サーバ１１０は保管対象データを分割する分割手段１１００を有し、暗号化手段１１０４は、分割生成された各分割保管対象データを暗号化し、送信手段１１０８は、暗号化された分割保管対象データを異なる複数の携帯端末１２０ａ、１２０ｂに対して送信する。判定手段１１１０、受信手段１１０９が記携帯端末１２０ａ，１２０ｂから受信した分割保管対象データの正当性を判定し、統合手段１１１２が正当性が確認された分割保管対象データを統合することにより、保管対象データを復元する。【選択図】図１
2014186722.tif 000002
【特許請求の範囲】
【請求項１】
携帯端末装置と通信可能に接続された情報処理装置であって、
保管対象データを暗号化する暗号化手段と、
前記暗号化手段により暗号化された前記保管対象データを前記携帯端末装置に対して送信する送信手段と、
前記携帯端末装置において保管された前記保管対象データを受信する受信手段と、
前記受信手段により受信された前記保管対象データを復号する復号手段とを有することを特徴とする情報処理装置。
【請求項２】
前記送信手段は、同一の前記保管対象データを、前記携帯端末装置を含む複数の端末装置に対して送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保管対象データを分割する分割手段を更に有し、
前記暗号化手段は、前記分割手段による分割処理により生成された各分割保管対象データを暗号化し、
前記送信手段は、前記暗号化手段により暗号化された前記分割保管対象データを前記携帯端末装置に対して送信することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記送信手段は、前記暗号化手段により暗号化された分割保管対象データそれぞれを、異なる複数の前記携帯端末装置に対して送信する請求項３に記載の情報処理装置。
【請求項５】
前記分割手段は、前記分割保管対象データのサイズが前記保管対象データのサイズに対して所定の割合以下となるように、前記保管対象データを分割することを特徴とする請求項３又は４に記載の情報処理装置。
【請求項６】
前記受信手段が記携帯端末装置から受信した前記分割保管対象データの正当性を判定する判定手段と、
前記判定手段に正当性が確認された前記分割保管対象データを統合することにより、前記保管対象データを復元する統合手段とを更に有することを特徴とする請求項３乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記携帯端末装置の稼働状態を監視する監視手段と、
前記監視手段による監視結果に応じて、前記携帯端末装置に保管されている前記保管対象データを消去させる消去手段とを更に有することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記携帯端末装置の稼働状態を監視する監視手段と、
前記監視手段による監視結果に応じて、前記携帯端末装置に保管されている前記保管対象データを消去させる消去手段とを更に有し、
前記受信手段は、前記消去手段により第１の携帯端末装置に保管されている前記保管対象データが消去された場合に、消去された前記保管対象データと同一の前記保管対象デーを、第２の携帯端末装置から受信し、
前記送信手段は、前記第２の携帯端末装置から受信した前記保管対象データを、第３の携帯端末装置に送信することを特徴とする請求項２乃至６の何れか１項に記載の情報処理装置。
【請求項９】
前記送信手段は、暗号化後の前記保管対象データと、暗号化前の前記保管対象データに対する第１の処理に対応する、暗号化後の前記保管対象データに対する第２の処理の指示と、を前記携帯端末装置に送信し、
前記受信手段は、暗号化後の前記保管対象データに対する前記第２の処理の結果を前記携帯端末装置から受信し、
前記第２の処理の結果を、暗号化前の前記保管対象データに対する前記第１の処理の結果に変換する変換手段を更に有することを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記暗号化手段は、暗号化関数を用いて、前記保管対象データを暗号化し、
前記変換手段は、前記暗号化関数の逆関数を用いて、暗号化後の前記保管対象データに対する前記第２の処理である第２の演算処理の結果を、暗号化前の前記保管対象データに対する前記第１の処理である第１の演算処理の結果に変換することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記暗号化手段は、前記保管対象データにデータを追加することにより、前記保管対象データを暗号化し、
前記変換手段は、前記データの追加パターンに基づいて、前記第２のデータに対する前記第２の処理である第２の検索処理の結果を、前記第１のデータに対する前記第１の処理である第１の検索処理の結果に変換することを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
情報処理装置と通信可能に接続された携帯端末装置であって、
保管対象データを前記情報処理装置から受信する受信手段と、
前記受信手段が受信した前記保管対象データを暗号化する暗号化手段と、
前記暗号化手段により暗号化された前記保管対象データを記録する記録手段と、
前記記録手段により記録された前記保管対象データを前記情報処理装置に対して送信する送信手段とを有し、
前記送信手段により送信された前記保管対象データは、前記情報処理装置において復号されることを特徴とする携帯端末装置。
【請求項１３】
携帯端末装置と通信可能に接続された情報処理装置の制御方法であって、
保管対象データを暗号化する暗号化ステップと、
前記暗号化ステップにより暗号化された前記保管対象データを前記携帯端末装置に対して送信する送信ステップと、
前記携帯端末装置において保管された前記保管対象データを受信する受信ステップと、
前記受信ステップにより受信された前記保管対象データを復号する復号ステップとを有することを特徴とする情報処理装置の制御方法。
【請求項１４】
情報処理装置と通信可能に接続された携帯端末装置の制御方法であって、
保管対象データを前記情報処理装置から受信する受信ステップと、
前記受信ステップにて受信された前記保管対象データを暗号化する暗号化ステップと、
前記暗号化ステップにより暗号化された前記保管対象データを記録する記録ステップと、
前記記録ステップにより記録された前記保管対象データを前記情報処理装置に対して送信する送信ステップとを有し、
前記送信ステップにより送信された前記保管対象データは、前記情報処理装置において復号されることを特徴とする携帯端末装置の制御方法。
【請求項１５】
携帯端末装置と通信可能に接続された情報処理装置を制御するコンピュータに実行させるためのプログラムであって、
保管対象データを暗号化する暗号化ステップと、
前記暗号化ステップにより暗号化された前記保管対象データを前記携帯端末装置に対して送信する送信ステップと、
前記携帯端末装置において保管された前記保管対象データを受信する受信ステップと、
前記受信ステップにより受信された前記保管対象データを復号する復号ステップとを前記コンピュータに実行させるためのプログラム。
【請求項１６】
情報処理装置と通信可能に接続された携帯端末装置を制御するコンピュータに実行させるためのプログラムであって、
保管対象データを前記情報処理装置から受信する受信ステップと、
前記受信ステップにて受信された前記保管対象データを暗号化する暗号化ステップと、
前記暗号化ステップにより暗号化された前記保管対象データを記録する記録ステップと、
前記記録ステップにより記録された前記保管対象データを前記情報処理装置に対して送信する送信ステップとを前記コンピュータに実行させ、
前記送信ステップにより送信された前記保管対象データは、前記情報処理装置において復号されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末装置を利用した仮想ストレージを実現するための技術に関するものである。
【背景技術】
【０００２】
従来、データセンタにサーバを設置し、サーバのストレージ領域を企業等に貸し出すデータセンタビジネスが展開されている。データセンタは高度なセキュリティや災害対策を備えており、安全にデータを保管することができる。しかし、データセンタを設置するには、データセンタ建設のための土地の用意、建物の建設、電源の確保、サーバ等の機器購入等、多大なコストが発生し、大きな負担となっていた。
【０００３】
また、世の中に既にある分散されたコンピュータのリソースをネットワークで接続し、空いているリソースを仮想的に１つの計算機システムのように利用する仮想化技術も普及している。
【０００４】
近年、急速に携帯端末が普及してきており、携帯端末も通信の高速化、ＣＰＵの高速化・マルチコア化、リソースの大容量化が進んできている。これらのリソースは必ずしも全て利用されているものではなく、携帯端末の所有者により利用率や頻度は異なり、また、同じ携帯端末の所有者であっても時間帯によって利用率は大きく異なったりもする。できれば、これらのリソースを有効に利用することが好ましい。特許文献１には、携帯端末を利用した仮想化技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３１７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術には、次のような問題がある。先ず、セキュリティ面について考慮されておらず、携帯端末から情報が漏洩するおそれがある。次に、携帯端末は無線通信であるため、有線通信と比較して通信が安定しない場合があるが、このような場合における冗長性も考慮されていない。
【０００７】
そこで、本発明の目的は、携帯端末装置を利用したセキュアな仮想ストレージを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、携帯端末装置と通信可能に接続された情報処理装置であって、保管対象データを暗号化する暗号化手段と、前記暗号化手段により暗号化された前記保管対象データを前記携帯端末装置に対して送信する送信手段と、前記携帯端末装置において保管された前記保管対象データを受信する受信手段と、前記受信手段により受信された前記保管対象データを復号する復号手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、携帯端末装置を利用したセキュアな仮想ストレージを提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、データ保管システムの構成を示す図である。
【図２】図２は、管理サーバのハードウェア構成を示す図である。
【図３】図３は、データ保管システムにおける保管処理を示すフローチャートである。
【図４】図４は、分割処理及び暗号化処理を説明するための図である。
【図５】図５は、冗長化処理を説明するための図である。
【図６】図６は、数値データに対する暗号化処理を示すフローチャートである。
【図７】図７は、文字列データに対する暗号化処理を示すフローチャートである。
【図８】図８は、各言語の二次元マップの一例を示す図である。
【図９】図９は、アルファベットの二次元マップの一例を示す図である。
【図１０】図１０は、データ保管システムにおける回収処理及び復元処理を示すフローチャートである。
【図１１】図１１は、管理サーバの端末稼働状況管理部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１２】
図１は、本発明の実施形態に係るデータ保管システムの構成を示す図である。図１に示すように、本実施形態に係るデータ保管システムは、本データ保管システムを管理及び制御するための管理サーバ１１０、例えば一般ユーザが所持する複数の携帯端末１２０（１２０ａ、１２０ｂ、・・・）、及び、データセンタ（ＤＣ）業者側に設置されるＤＣ業者サーバ１３０を備える。管理サーバ１１０とＤＣ業者サーバ１３０とは専用のネットワーク又はインターネット等を介して接続され、管理サーバ１１０と各携帯端末１２０とはインターネット及び無線通信回線を介して接続される。管理サーバ１１０は、ＤＣ業者サーバ１３０を介して受信した企業のデータ、又は、企業から直接受信したデータを、世の中に分散された複数の携帯端末１２０の記録媒体１２０１に保管させる。なお、携帯端末１２０の具体例としては、携帯電話、スマートフォン、タブレット端末、車載端末、及び、ノート型ＰＣ等が挙げられる。また、図１では、データの保管先として携帯端末１２０のみを示しているが、固定的に設置されたＰＣをデータの保管先として含めてもよい。
【００１３】
管理サーバ１１０は、分割部１１００、暗号化部１１０１、関数変換部１１０２、逆変換部１１０３、暗号化部１１０４、冗長化部１１０５、検索指示変換部１１０６、検索結果変換部１１０７、送信部１１０８、受信部１１０９、正当性判定部１１１０、復号部１１１１、統合部１１１２、端末稼働状況管理部１１１３、及び、対価算出部１１１４を備える。分割部１１００は、保管対象となるデータ（以下、保管対象データと称す）を分割することにより、複数の分割保管対象データを生成する。
【００１４】
分割部１１００、暗号化部１１０１、関数変換部１１０２、逆変換部１１０３、送信部１１０８及び受信部１１０９は、処理対象が数値データである場合に機能する構成である。また、分割部１１００、暗号化部１１０４、冗長化部１１０５、検索指示変換部１１０６、検索結果変換部１１０７、送信部１１０８及び受信部１１０９は、処理対象が文字列データである場合に機能する構成である。
【００１５】
処理対象が数値データである場合に機能する構成について説明する。分割部１１００は、処理対象の数値データ（原データ）を複数のデータユニット（第１の数値データ）に分割する。暗号化部１１０１は、分割により得られた第１の数値データを、暗号化関数を用いて暗号化する。これにより、暗号化された複数の第２の数値データが生成される。関数変換部１１０２は、第１の数値データの演算関数（第１の演算関数）を、第２の数値データの演算関数（第２の演算関数）に変換する。送信部１１０８は、暗号化された第２の数値データと、第２の数値データを第２の演算関数で演算する旨の演算指示とを携帯端末１２０に送信する。受信部１１０９は、第２の演算関数で第２の数値データを演算した結果を携帯端末１２０から受信する。逆変換部１１０３は、暗号化関数の逆関数を用いて演算結果を逆変換することにより、第１の数値データを第１の演算関数で演算した結果を得る。
【００１６】
次に、処理対象が文字列データである場合に機能する構成について説明する。分割部１１００は、処理対象の文字列データ（原データ）を複数のデータユニット（第１の文字列データ）に分割する。暗号化部１１０４は、分割により得られた処理対象の文字列データ（第１の文字列データ）を１文字単位に暗号化する。これにより、暗号化された第２の文字列データが生成される。冗長化部１１０５は、第２の文字列データの特定の位置に文字データを追加することにより、第３の文字列データを生成する。追加された文字データは、第３の文字データから出現頻度分析により第１の文字データを推測することを困難とするような文字の出現頻度をもった文字集合から作成することが好ましい。検索指示変換部１１０６は、第１の文字列データに対する検索指示を、第２の文字列データに対する検索指示に変換し、さらに、第２の文字列データに対する検索指示を、第３の文字列データに対する検索指示に変換する。送信部１１０８は、第３の文字列データと、第３の文字列データに対する検索指示とを携帯端末１２０に送信する。受信部１１０９は、第３の文字列データに対する検索結果を携帯端末１２０から受信する。検索結果変換部１１０７は、第３の文字列データに対する検索結果から冗長部分の文字に起因する検索結果を排除することにより、第１の文字列データに対する第１の検索文字列の検索結果を得る。
【００１７】
なお、送信部１１０８は、暗号化された分割保管対象データ夫々について、同一の分割保管対象データを複数の携帯端末１２０に対して送信し、保管させる。ところで、管理サーバ１１０が分割保管対象データを携帯端末１２０から回収しようとする際、管理サーバ１１０と携帯端末１２０との間に通信切断が生じたり、携帯端末１２０において電池切れが発生する等して、分割保管対象データを回収することができない事態が生じ得る。これに対し、本実施形態においては、送信部１１０８による冗長化処理、即ち、同一の分割保管対象データを複数の携帯端末１２０に預けておく。これにより、本実施形態の管理サーバ１１０は、或る携帯端末１２０から分割保管対象データを回収できなくなったとしても、同一の分割保管対象データを他の携帯端末１２０から回収することができる。
【００１８】
復号部１１１１は、受信部１１０９が複数の携帯端末１２０から受信（回収）した分割保管対象データの夫々を復号する。統合部１１１２は、復号された複数の分割保管対象データを統合することにより、保管対象データを復元する。
【００１９】
ところで、複数の分割保管対象データを統合して保管対象データを復元する際には、その前段において、統合対象となる各分割保管対象データの正当性、即ち、分割保管対象データが真に当該分割保管対象データを分割することにより生成されたものであるかを確認することが好ましい。そこで、本実施形態の正当性判定部１１１０は、複数の分割保管対象データを受信（回収）した後、分割保管対象データの正当性を判定する処理を実行する。そして、管理サーバ１１０は、正当性が確認された場合、復号部１１１１において当該分割保管対象データを復号し、統合部１１１２において統合することにより、保管対象データを復元する。これにより、元の保管対象データを正確に復元することが可能となる。
【００２０】
分割保管対象データの正当性の確認処理として、次のような処理が挙げられる。管理サーバ１１０は、同一の分割保管対象データを預けた複数の携帯端末１２０から分割保管対象データを夫々受信し、受信順位が上位２つの分割保管対象データ間で同一であるか否かを判定する。管理サーバ１１０は、同一である場合、当該分割保管対象データの正当性を確認したものとして、当該分割保管対象データを採用する。一方、同一ではない場合、管理サーバ１１０は、既に受信した分割保管対象データの何れか一つと受信順位が３位以降の分割保管対象データとの間で同一であるか否かを判定していく。そして、管理サーバ１１０は、同一の分割保管対象データが見つかった時点で、当該保管対象データの正当性を確認したものとして、当該分割保管対象データを採用する。なお、分割保管対象データの同一性の判定処理は、チェックサムやハッシュ関数等を用いた誤り検出符号技術により行われる。また、その他の分割保管対象データの同一性の判定処理として、管理サーバ１１０は、分割保管対象データを携帯端末１２０に送信する前に、分割保管対象データの正しいチェックサムやハッシュ関数の値を記憶しておく。そして、正当性判定部１１１０は、記憶しているチェックサムやハッシュ関数の値と、携帯端末１２０から受信した分割保管対象データから算出したチェックサムやハッシュ関数の値とを比較することにより、分割保管対象データの同一性を判定してもよい。
【００２１】
端末稼働状況管理部１１１３は、各携帯端末１２０から、通信状態（通信速度、一日あたりのネットワーク接続時間等）、電池充電状況、記録媒体１２０１の空き容量、及び、ＣＰＵの負荷等を含む稼働状況情報を取得する。そして、端末稼働状況管理部１１１３は、取得した稼働状況情報に基づいて、分割保管対象データの保管先としての条件を満たす携帯端末１２０を選定する。例えば、通信速度が一定速度以上、一日あたりのネットワーク接続時間が一定時間以上、電池充電状況並びに記録媒体１２０１の空き容量が一定割合（或いは、一定値）以上、及び、ＣＰＵの負荷が一定値未満、という条件を全て満たす携帯端末１２０が、分割保管対象データの保管先として選定される。管理サーバ１１０は、端末稼働状況管理部１１１３により選定された携帯端末に対して分割保管対象データを送信し、保管させる。なお、上述した「記録媒体１２０１の空き容量」とは、記録媒体１２０１の全空き容量のうち、本データ保管システムにより使用することが可能な空き容量を意味する。また、携帯端末１２０において、リソース提供の条件（リソースを提供する曜日や時間帯、電池充電中のみリソースを提供、電池残量が一定値以上の場合にリソースを提供、記録媒体１２０１の空き容量が一定値以上の場合にリソースを提供等）を予め携帯端末１２０の所有者が設定しておき、そのリソース提供の条件を端末稼働状況管理部１１１３が取得し、分割保管対象データの保管先を選定する際にリソース提供の条件を反映させてもよい。
【００２２】
対価算出部１１１４は、携帯端末１２０の記録媒体１２０１の空き容量の提供者が受け取るべき対価を算出する。対価の算出方法としては、例えば、実際に使用した記録媒体１２０１の容量に応じて対価を算出する方法が挙げられる。そのほか、予め定められた記録媒体１２０１の容量を固定額で買い上げ、例えば月単位で固定額を対価とする方法等も挙げられる。
【００２３】
図２は、本実施形態における管理サーバ１１０のハードウェア構成を示す図である。図２において、ＣＰＵ２０１は、システムバスに接続される各デバイスやコントローラを統括的に制御する。ＲＯＭ２０３又はＨＤ（ハードディスク）２０９には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Basic  Input／Output  System）やオペレーティングシステムプログラム、管理サーバ１１０が実行する例えば図３のステップＳ１０１〜Ｓ１０３、図６のステップＳ２０１〜Ｓ２０６、図７のステップＳ３０１〜Ｓ３０８、図１０のステップＳ４０１〜Ｓ４０４及び図１１のステップＳ５０１〜Ｓ５０６に示す処理のプログラム等が記憶されている。
【００２４】
なお、図２の例では、ＨＤ２０９は、管理サーバ１１０の内部に配置された構成としているが、他の実施形態としてＨＤ２０９に相当する構成（例えば、ＤＢサーバや外部ストレージ装置）が管理サーバ１１０の外部に配置された構成としてもよい。また、本実施形態に係る処理を行うためのプログラムは、ＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録され、それらの記録媒体から供給される構成としてもよいし、インターネット等の通信媒体を介して供給される構成としてもよい。
【００２５】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０２にロードして、プログラムを実行することで各種動作を実現するものである。
【００２６】
ＨＤ２０９は、外部メモリとして機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０２にロードして、プログラムを実行することで各種動作を実現するものである。
【００２７】
ディスクコントローラ２０７は、ＨＤ２０９等の外部メモリへのアクセスを制御する。通信Ｉ／Ｆコントローラ２０６は、インターネットやＷＡＮ、ＬＡＮと接続し、例えばＴＣＰ／ＩＰによって外部との通信を制御するものである。
【００２８】
ディスプレイコントローラ２１０は、ディスプレイ２１１における画像表示を制御する。ＫＢコントローラ２０４は、ＫＢ（キーボード）２０５からの操作入力を受け付け、ＣＰＵ２０１に対して送信する。なお、図示していないが、ＫＢ２０５の他に、マウス等のポインティングデバイスもユーザの操作手段として本実施形態に係る管理サーバ１１０に適用可能である。
【００２９】
なお、図１に示す１１００〜１１１４の構成は、例えばＨＤ２０９内に記憶され、必要に応じてＲＡＭ２０２にロードされるプログラム及びそれを実行するＣＰＵ２０１によって実現される構成である。
【００３０】
携帯端末１２０のハードウェア構成は、図２に示したものと基本的に同じ構成であるため、図示は省略する。本実施形態に係る処理を行うためのプログラムは、携帯端末１２０内のＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録され、それらの記録媒体から供給される構成としてもよいし、インターネット等の通信媒体を介して供給される構成としてもよい。
【００３１】
次に、図３を参照しながら、本実施形態に係るデータ保管システムにおける保管対象データの保管処理について説明する。
【００３２】
ステップＳ１０１において、管理サーバ１１０の分割部１１００は、保管対象データを分割し、複数の分割保管対象データを生成する。このとき、分割部１１００は、１台の携帯端末１２０に保管させる分割保管対象データのデータ量の保管対象データの全データ量に対する割合が、予め設定されるデータ保管閾値以下となるように保管対象データを分割する。例えば、データ保管閾値が５％であり、保管対象データのデータ量が１ＧＢである場合、分割部１１００は、５０ＭＢ以下の単位で、保管対象データを分割する。また、分割部１１００は、１ＧＢの保管対象データを１００分割して１０ＭＢ単位の分割保管対象データとしてもよい。この場合、管理サーバ１１０は、最大５つの分割保管対象データを１台の携帯端末１２０に保管させるようにしてもよい。ステップＳ１０２において、暗号化部１１０１又は暗号化部１１０４は、各分割保管対象データを暗号化する。このように、一定の粒度で保管対象データを分割することにより、或る携帯端末１２０において暗号化が破られたとしても、上記一定の粒度で分割された部分的なデータでしかないため、保管対象データ全体が把握されることはない。従って、携帯端末１２０の所有者によるデータの盗み見や携帯端末１２０の紛失時等に対するセキュリティを確保することができる。
【００３３】
また、本実施形態では、ステップＳ１０１にて保管対象データを分割した後、ステップＳ１０２にて各分割保管対象データを暗号化するようにしているため、分割保管対象データ統合時に回収できない分割保管対象データが生じた場合でも、回収できた他の分割保管対象データを復号し、一部の情報が欠けてはいるが、保管対象データを復元することはできる。また、ステップＳ１０１とＳ１０２との順序を逆にしてもよい。この場合、全ての分割保管対象データを回収することができなければ各分割保管対象データを復号することができなくなるため、セキュリティを向上させることができる。
【００３４】
図４は、ステップＳ１０１における保管対象データの分割処理と、ステップＳ１０２における各分割保管対象データの暗号化処理とを説明するための図である。図４（ａ）は、保管対象データ５０１を示している。ステップＳ１０１において、保管対象データ５０１が分割部１１００にて分割（ここでは、１０分割）されることにより、図４（ｂ）に示すように、１０個の分割保管対象データ５０２ａ〜５０２ｊが生成される。そして、ステップＳ１０２において、各分割保管対象データ５０２ａ〜５０２ｊが暗号化部１１０１又は暗号化部１１０４にて暗号化されることにより、図４（ｃ）に示すように、１０個の暗号化された分割保管対象データ５０３ａ〜５０３ｊが生成される。暗号化された各分割保管対象データ５０３ａ〜５０３ｊは夫々、携帯端末１２０に対して送信され、携帯端末１２０において保管される。
【００３５】
ここで、保管対象データを分割する際の粒度について詳細に説明する。以下では、携帯端末１２０の記録媒体１２０１において保管可能なサイズのデータを「容量的に小さなデータ」と定義する。また、通信環境のあまり良くない携帯端末１２０も利用しようとすると、１台の携帯端末１２０に保管するデータは短時間で送れる程度のサイズに制限した方が有利であり、この制限サイズを「通信的に小さなデータ」と定義する。
【００３６】
「容量的に小さなデータ」は、携帯端末１２０に搭載可能なメモリの容量に応じて増加するため、半導体のムーアの法則に従って大きくなる。一方、「通信的に小さなデータ」は、ＬＴＥや次世代の通信可能地域が拡大しても、その地域の外側に３Ｇのみ通信可能な地域があったり、通信インフラの後進地域の人々の方が携帯端末のリソースを提供して料金を稼ぎたいニーズが強い等の場合があり得るため、半導体のムーアの法則のようなペースでは大きくならないと想定される。従って、「容量的に小さなデータ」であっても、最悪の通信環境で一定時間内に送りきれるような「通信的に小さなデータ」の粒度で分割することが好ましい。
【００３７】
ステップＳ１０３において、送信部１１０８は、暗号化された各分割保管対象データについて、同一の分割保管対象データを複数の携帯端末１２０に対して送信する。図５は、図４に示した例に基づいて、ステップＳ１０３における冗長化処理を説明するための図である。図５に示すように、送信部１１０８は、暗号化された同一の分割保管対象データ（図５では、分割保管対象データ５０３ａのみを表記）を、複数の携帯端末１２０ａ〜１０２ｃ夫々に対して送信する。これにより、複数の携帯端末１２０ａ〜１０２ｃにおいて、暗号化された同一の分割保管対象データ５０３ａが保管されることになる。このような処理が、暗号化された全ての分割保管対象データ５０３ａ〜５０３ｊについて実行される。なお、暗号化された同一の分割保管対象データ５０３ａは、携帯端末１２０ａ〜１０２ｃ夫々において保管されるが、暗号化された他の分割保管対象データ５０３ｂ〜５０３ｊは、データ保管閾値以下である限りにおいて同じ携帯端末１２０ａ〜１０２ｃで保管されてもよいし、他の複数の携帯端末で保管されてもよい。セキュリティの観点からは、分割保管対象データを極力分散させて預けた方がよいため、後者の方が好ましい。
【００３８】
ステップＳ１１１において、携帯端末１２０は、暗号化された分割保管対象データを管理サーバ１１０から受信する。ステップＳ１１２において、携帯端末１２０は、暗号化された分割保管対象データを記録媒体１２０１内に保管する。
【００３９】
次に、図６及び図７を参照しながら、ステップＳ１０２の暗号化処理等について、より詳細に説明する。図６は、処理対象が数値データである場合の処理を示すフローチャートである。ステップＳ２０１において、分割部１１００は、分割保管対象データとしての数値データ（原データ）を複数のデータユニットに分割する。ステップＳ２０２において、暗号化部１１０１は、ステップＳ２０１で生成したデータユニットである複数の第１の数値データを暗号化関数で暗号化することにより、複数の第２の数値データを生成する。ここで、第１の数値データ及び第２の数値データは、それぞれ暗号化前の分割保管対象データ及び暗号化後の分割保管対象データに相当する。
【００４０】
ステップＳ２０３において、関数変換部１１０２は、第１の数値データの演算関数（第１の演算関数）を、第２の数値データの演算関数（第２の演算関数）に変換する。ステップＳ２０４において、送信部１１０８は、第２の数値データとともに、第２の数値データを第２の演算関数で演算する旨の演算指示を携帯端末１２０に対して送信する。
【００４１】
ステップＳ２１１において、携帯端末１２０は、第２の数値データ及び演算指示を管理サーバ１１０から受信する。ステップＳ２１２において、携帯端末１２０は、管理サーバ１１０からの演算指示に従って、第２の数値データを第２の演算関数で演算することにより演算結果を得る。ステップＳ２１３において、携帯端末１２０は、演算結果を管理サーバ１１０に対して送信する。
【００４２】
ステップＳ２０５において、受信部１１０９は、携帯端末１２０から演算結果を受信する。ステップＳ２０６において、逆変換部１１０３は、ステップＳ２０２で用いた暗号化関数の逆関数を用いて演算結果を逆変換することにより、第１の数値データを第１の演算関数で演算した結果を得る。
【００４３】
以下、図６に示した処理について、第１〜第３の具体例を挙げて説明を行う。先ず、第１の具体例について説明する。第１の具体例では、次のように、暗号化処理の前後で四則演算が保たれる暗号化関数ｆ（）を使用するものとする。
ｆ（ａ＊ｘ＋ｂ＊ｙ）＝ａ＊ｆ（ｘ）＋ｂ＊ｆ（ｙ）
【００４４】
第１の数値データ、及び、第１の数値データを暗号化関数により暗号化した第２の数値データを次のように定義する。
第１の数値データ：ａ、ｂ、ｘ、ｙ
第２の数値データ：ａ、ｂ、ｆ（ｘ）、ｆ（ｙ）
【００４５】
第１の数値データの第１の演算関数、及び、第１の演算関数から変換された、第２の数値データの第２の演算関数を次のように定義する。
第１の演算関数：ａ＊ｘ＋ｂ＊ｙ
第２の演算関数：ａ＊ｆ（ｘ）＋ｂ＊ｆ（ｙ）
【００４６】
即ち、ステップＳ２０４では、第２の数値データ（ａ、ｂ、ｆ（ｘ）、ｆ（ｙ））とともに、第２の数値データを第２の演算関数（ａ＊ｆ（ｘ）＋ｂ＊ｆ（ｙ））で演算する旨の演算指示が管理サーバ１１０から携帯端末１２０に対して送信される。
【００４７】
ステップＳ２０６では、次のように、暗号化関数ｆ（）の逆関数ｆ-1（）を用いて第１の演算結果（ａ＊ｆ（ｘ）＋ｂ＊ｆ（ｙ））が逆変換される。
ｆ-1（ａ＊ｆ（ｘ）＋ｂ＊ｆ（ｙ））＝ｆ-1（ｆ（ａ＊ｘ＋ｂ＊ｙ））＝ａ＊ｘ＋ｂ＊ｙ
これにより、第１の数値データ（ａ、ｂ、ｘ、ｙ）を第１の演算関数（ａ＊ｘ＋ｂ＊ｙ）で演算した結果を得ることができる。
【００４８】
次に、第２の具体例について説明する。第２の具体例では、或る第１の数値データに対し、９９個のランダムな数値データを用意し、それらを成分とする暗号化関数ｆ（）を用いるものとする。例えば、第１の数値データｘに対し、９９個のランダムな数値ｓ１〜ｓ９９を用意して、（ｘ，ｓ１，・・・，ｓ９９）というベクトルを出力ｖとする暗号化関数ｆ（ｘ）を用いるものとする。ｆ（ｘ）の四則演算を各成分の四則演算と定義すれば、暗号化関数ｆ（ｘ）は、明らかに暗号化処理の前後で四則演算を保つ。この例において、暗号化関数ｆ（ｘ）の逆関数ｆ-1（ｖ）は、第２の演算結果の１番目の成分を取り出す関数となる。なお、携帯端末１２０において元の数値データ（第１の数値データ）を見せたくない場合には、例えば、ステップＳ２０２において、ベクトル（ｘ，ｓ１，・・・，ｓ９９）の１番目の成分を定数倍する暗号化関数ｆ（ｘ）を用いて暗号化処理を行い、ステップＳ２０６において、ベクトルの１番目の成分をその定数で割る逆関数ｆ-1（ｖ）を用いて演算結果を逆変換すればよい。
【００４９】
次に、第３の具体例について説明する。第３の具体例では、暗号化関数ｆ（）＝ｅｘｐ（）を用いるものとする。
第１の数値データ、及び、第１の数値データを暗号化関数により暗号化した第２の数値データを次のように定義する。
第１の数値データ：ａ、ｂ、ｘ、ｙ
第２の数値データ：ａ、ｂ、ｆ（ｘ）＝ｅｘｐ（ｘ）、ｆ（ｙ）＝ｅｘｐ（ｙ）
【００５０】
第１の数値データの第１の演算関数、及び、第１の演算関数から変換された、第２の数値データの第２の演算関数を次のように定義する。
第１の演算関数：ａ＊ｘ＋ｂ＊ｙ
第２の演算関数：（ｆ（ｘ）＾ａ）＊（ｆ（ｙ）＾ｂ）
【００５１】
即ち、ステップＳ２０４では、第２の数値データ（ａ、ｂ、ｆ（ｘ）＝ｅｘｐ（ｘ）、ｆ（ｙ）＝ｅｘｐ（ｙ））とともに、第２の数値データを第２の関数（（ｆ（ｘ）＾ａ）＊（ｆ（ｙ）＾ｂ））で演算する旨の演算指示が管理サーバ１１０から携帯端末１２０に対して送信される。
【００５２】
ステップＳ２０６では、次のように、暗号化関数ｆ（）の逆関数ｆ-1（）＝ｌｏｇ（）を用いて、第１の演算結果（（ｆ（ｘ）＾ａ）＊（ｆ（ｙ）＾ｂ））が逆変換される。
ｆ-1（（ｆ（ｘ）＾ａ）＊（ｆ（ｙ）＾ｂ））＝ｌｏｇ（（ｅｘｐ（ｘ）＾ａ）＊（ｅｘｐ（ｙ）＾ｂ））＝ｌｏｇ（ｅｘｐ（ａ＊ｘ＋ｂ＊ｙ））＝ａ＊ｘ＋ｂ＊ｙ
これにより、第１の数値データ（ａ、ｂ、ｘ、ｙ）を第１の演算関数（ａ＊ｘ＋ｂ＊ｙ）で演算した結果を得ることができる。
【００５３】
図７は、処理対象が文字列データである場合の処理を示すフローチャートである。ステップＳ３０１において、暗号化部１１０４は、処理対象のデータユニットである第１の文字列データ（原データ）を１文字単位に暗号化して第２の文字列データに変換する。ステップＳ３０２において、冗長化部１１０５は、追加パターンを示す冗長化文字位置テーブルを用いて、ステップＳ３０１で生成した第２の文字列データの特定の位置に文字データを追加することにより、第３の文字列データを生成する。ここで、第１の文字列データ及び第３の文字列データは、それぞれ暗号化前の分割保管対象データ及び暗号化後の分割保管対象データに相当する。
【００５４】
ステップＳ３０３において、検索指示変換部１１０６は、検索対象の文字列である第１の検索文字列を１文字単位に暗号化して第２の検索文字列に変換する。ステップＳ３０４において、検索指示変換部１１０６は、第１の文字列に対する第１の検索文字列の検索指示（第１の検索指示）を、第２の文字列に対する第２の検索文字列の検索指示（第２の検索指示）に変換する。
【００５５】
ステップＳ３０５において、検索指示変換部１１０６は、冗長化文字位置テーブルを用いて、第２の検索指示を、第３の文字列に対する第２の検索文字列相当部分の検索指示（第３の検索指示）に変換する。ステップＳ３０６において、送信部１１０８は、第３の文字列と第３の検索指示とを携帯端末１２０に対して送信する。
【００５６】
ステップＳ３１１において、携帯端末１２０は、第３の文字列と第３の検索指示とを管理サーバ１１０から受信する。ステップＳ３１２において、携帯端末１２０は、第３の検索指示に従って、第３の文字列から第２の検索文字列相当部分を検索する。ステップＳ３１３において、携帯端末１２０は、ステップＳ３１２の検索結果を管理サーバ１１０に対して送信する。
【００５７】
ステップＳ３０７において、受信部１１０９は、携帯端末１２０から検索結果を受信する。ステップＳ３０８において、検索結果変換部１１０７は、検索結果と冗長文字列位置テーブルとを比較し、冗長部分の文字に起因する検索結果を排除することにより、第１の文字列に対する第１の検索文字列の検索結果を得る。
【００５８】
以下、図７に示した処理について、第１〜第３の具体例を挙げて説明を行う。第１，第２の具体例は、日本語の文字列の例である。第１の具体例においては、ステップＳ３０１において、暗号化部１１０４は、あ行→か行、か行→さ行、・・・のように、日本語の五十音の子音の行を１つ移動させて第１の文字列データを１文字単位に暗号化することにより、第２の文字列データを生成する。そして、ステップＳ３０２において、冗長化部１１０５は、冗長化文字位置テーブルを用いて、第２の文字列データに対して１文字毎に偽文字を挿入することにより、第３の文字列データを生成する。これにより、第３の文字列データは、奇数位置が正文字、偶数位置が偽文字となる。例えば、第１の文字列データが「あいうえお」である場合、第２の文字列データは「かきくけこ」となる。また、第１の検索文字列データが「うえ」である場合、第２の検索文字列データは「くけ」となる。そして、冗長化文字位置テーブルにより、第２の文字列データに対して１文字毎に偽文字が挿入されることにより得られる第３の文字列データは、例えば「かくきけくすけせこそ」となる。
【００５９】
なお、第１の検索指示は、「第１の文字列データから１文字目が「う」で２文字目が「え」で始まる文字列の開始位置を検索する」となる。従って、第２の検索指示は、「第２の文字列データから１文字目が「く」で２文字目が「け」で始まる文字列の開始位置を検索する」となり、第３の検索指示は、「第３の文字列データから１文字目が「く」で３文字目が「け」で始まる文字列の開始位置を検索する」となる。ステップＳ３１２における第３の文字列データ「かくきけくすけせこそ」を対象に得られる検索結果は、２文字目及び５文字目となる。但し、第３の文字列データ「かくきけくすけせこそ」の偶数位置は偽文字であるため、ステップＳ３０８において２文字目という検索結果は排除され、５文字目という検索結果だけが採用される。従って、第１の文字列データに対する第１の検索文字列の検索結果は、（５＋１）／２＝３文字目となる。
【００６０】
次に、第２の具体例について説明する。第２の具体例においても、ステップＳ３０１において、暗号化部１１０４は、あ行→か行、か行→さ行、・・・のように、五十音の子音の行を１つ移動させて第１の文字列データを１文字単位に暗号化することにより、第２の文字列データを生成する。そして、ステップＳ３０２において、冗長化部１１０５は、冗長化文字位置テーブルとして、２文字を４文字に増やすテーブルを使用する。正文字を（１）及び（２）とし、偽文字を●とすると、２文字から４文字に増やすパターンは、以下のように６種類のパターンがある。
第１のパターン：（１）、（２）、●、●
第２のパターン：●、●、（１）、（２）
第３のパターン：●、（１）、（２）、●
第４のパターン：（１）、●、●、（２）
第５のパターン：（１）、●、（２）、●
第６のパターン：●、（１）、●、（２）
ここでは、第１、第３及び第５のパターンを使用して、２文字から４文字に増やすものとする。従って、第２の文字列データは、冗長化部１１０５により次のように冗長化される。
（１）、（２）、●、●、●、（３）、（４）、●、（５）、●、（６）、●
【００６１】
例えば、第１の文字列データが「あいうえお」である場合、第２の文字列データは「かきくけこ」になる。また、第１の検索文字列データが「うえ」である場合、第２の検索文字列データは「くけ」になる。そして、冗長化文字位置テーブルにより第２の文字列データを冗長化することにより得られる第３の文字列データは、例えば「かきくくけくけひこふ」となる。なお、ここでは第２の文字列データが５文字であるため、冗長化部１１０５による冗長化パターンのうちの「（６）、●」は削除される。
【００６２】
第１の検索指示は、「第１の文字列データから１文字目が「う」で２文字目が「え」で始まる文字列の開始位置を検索する」となる。従って、第２の検索指示は、「第２の文字列データから１文字目が「く」で２文字目が「け」で始まる文字列の開始位置を検索する」となる。そして、第３の検索指示は、次の（ａ）〜（ｃ）となる。
（ａ）：「第３の文字列データから、１文字目が「く」で２文字目が「け」で始まる文字列の開始位置を検索する」
（ｂ）：「第３の文字列データから、１文字目が「く」で３文字目が「け」で始まる文字列の開始位置を検索する」
（ｃ）：「第３の文字列データから、１文字目が「く」で５文字目が「け」で始まる文字列の開始位置を検索する」
【００６３】
上記第３の検索指示（ａ）〜（ｃ）夫々に対し、ステップＳ３１２では、次の検索結果（ａ）〜（ｃ）が得られる。
（ａ）：４文字目、６文字目
（ｂ）：３文字目
（ｃ）：３文字目
ここで、今回の冗長化パターンは、「（１）、（２）、●、●、●、（３）、（４）、●、（５）、●」であるため、３文字目、４文字目は偽文字として排除され、６文字目が正文字として採用される。そして、ステップＳ３０８において、検索結果変換部１１０７は、上記冗長化パターンを参照することにより、第３の文字列データの６文字目は、第１の文字列データの３文字目であると判定する。
【００６４】
第３の具体例は、日本語を含む各言語の文字列の例である。第３の具体例においては、ステップＳ３０１において、暗号化部１１０４は、処理対象の文字列の言語の二次元マップに基づいて、第１の文字列データを１文字単位に暗号化することにより、第２の文字列データを生成する。図８は、二次元マップの一例を示す図である。図８に示す２次元マップは、日本語のひらがなに対応する５行１１列のマップである。図中のｘは行番号、ｙは、列番号を示し、Ｍ（ｘ，ｙ）は、行ｘ、列ｙの要素を示している。
【００６５】
ステップＳ３０１において、暗号化部１１０４は、要素Ｍ（ｘ，ｙ）を、同一行の次の列の要素Ｍ（ｘ，ｙ＋１）に変換することにより、第２の文字列データを生成する。なお、要素Ｍ（ｘ，ｙ＋１）が空欄の場合には、暗号化部１１０４は、列方向に走査し、はじめに検出した、かなの要素に変換する。これにより、例えば、かな「み」は、「り」に変換される。また、暗号化部１１０４は、最終列の要素Ｍ（ｘ，ｙend）は、先頭列の要素Ｍ（ｘ，ｙfirst）に変換する。これにより、例えば、「ん」は、「あ」に変換される。
【００６６】
なお、各文字の要素位置は、列Ａ〜Ｚと、行１〜５を用いて、「あいうえお」を「Ａ１Ａ２Ａ３Ａ４Ａ５」、「かきくけこ」を「Ｂ１Ｂ２Ｂ３Ｂ４Ｂ５」と表現してもよい。
【００６７】
第４の具体例は、アルファベットの文字列の例である。第４の具体例においては、ステップＳ３０１において、暗号化部１１０４は、図１０に示すアルファベットの二次元マップに基づいて、第１の文字列データを１文字単位に暗号化することにより、第２の文字列データを生成する。図１０は、アルファベットの二次元マップの一例を示す図である。図１０に示す二次元マップは、大文字と小文字の合計５２文字（ＡＢＣ…ＸＹＺａｂｃ…ｘｙｚ）に対応する５行１１列のマップである。各文字の要素位置は、列Ａ〜Ｋと、行１〜５とを用いて、表現される。例えば、「ＡＢＣＤＥ」は「Ａ１Ａ２Ａ３Ａ４Ａ５」、「ＦＧＨＩＪ」は「Ｂ１Ｂ２Ｂ３Ｂ４Ｂ５」と表現される。
【００６８】
ステップＳ３０１において、暗号化部１１０４は、要素を、同一行の次の列の要素に変換することにより、第２の文字列データを生成する。なお、次の列の要素が空欄の場合には、暗号化部１１０４は、列方向に走査し、はじめに検出した、アルファベットの要素に変換する。これにより、例えば、「Ａ１」で表現されるアルファベット「Ａ」は、「Ｂ１」で表現される「Ｆ」に変換される。また、例えば、「Ｋ２」で表現される「ｚ」は「Ａ２」で表現される「Ｂ」に変換される。
【００６９】
以上のように、本実施形態においては、数値データ又は文字列データを暗号化したまま携帯端末１２０上で処理させることができる。従って、本実施形態によれば、携帯端末１２０からデータが漏洩することなく、セキュアな仮想ストレージを提供することが可能となる。
【００７０】
また、本実施形態では、サービスにおいて予め指定された原データ（第１の数値データ、第１の文字列データ）のセキュリティーレベル及び携帯端末１２０の信頼度に応じて、同一の第２の数値データ又は第３の文字列データを同一の携帯端末１２０に置く期間として、１時間以内、１日以内、１週間以内等と定めてもよい。そして、その期間を超過すると、携帯端末１２０において第２の数値データ又は第３の文字列データを消去し、携帯端末１２０から管理サーバ１１０に対して第２の数値データ又は第３の文字列データを消去した旨を通知するようにしてもよい。なお、上述した携帯端末１２０の信頼度とは、携帯端末１０２と管理サーバ１１０間における１日あたりのネットワーク接続時間、携帯端末１２０の通信速度、及び、携帯端末１２０の充電状況等の携帯端末１２０の稼働状況に応じて定められる値である。
【００７１】
また、本実施形態では、サービスにおいて予め指定された原データ（第１の数値データ、第１の文字列データ）のセキュリティーレベル及び携帯端末１２０の信頼度に応じて、同一の第２の数値データ又は第３の文字列データに対する演算指示の回数として、１回以内、１０回以内、１００回以内等と定めてもよい。そして、その回数を超過すると、管理サーバ１１０から携帯端末１２０に対して演算指示を送信しないようにしてもよい。さらに、同一の第２の数値データ又は第３の文字列データに対する演算指示の回数が例えば３回以上許可されている場合、予め指定された原データ（第１の数値データ、又は、第１の文字列データ）のセキュリティーレベルに応じて、偽の演算指示を１回毎、４回毎、８回毎等、ランダムな間隔で挿入するようにしてもよい。
【００７２】
本実施形態においては、暗号化されたデータ（第２の数値データ、第３の文字列データ）を演算又は検索するため、処理量の増加は避けられないが、複数の携帯端末１２０において分散的に同時に演算させるため、処理時間が増加することはなく、暗号化処理前のデータ（第１の数値データ、第１の文字列データ）を対象とした処理に近い処理速度を得ることができる。即ち、文字列データが処理対象であれば、検索対象となる第１の文字列データを分割した後に暗号化して検索するため、複数の携帯端末１２０における処理の並列性を利用することができる。また、暗号化処理により検索しなければならない文字列のパターンが増えても、複数の携帯端末１２０を用いて処理を並列化すれば問題とならない。また、数値データが処理対象であれば、暗号化処理により演算対象の数値データが増えても、複数の携帯端末１２０における処理の並列性を利用することができる。さらに、真の演算に加えて、偽の演算を不定期に携帯端末１２０に行わせることも、複数の携帯端末１２０における処理の並列性を利用すれば、問題とならない。
【００７３】
例えば、数値データを処理対象とした場合の第２の具体例において、１個の第１の数値データに対し、９９個のランダムな数値データを用意しているため、暗号化処理後の第２の数値データは、第１の数値データの１００倍のデータ量に増加している。しかし、ベクトルの各成分に対する個々の演算は複雑になっておらず、第１の数値データに対する処理時間と同程度となる。１００万個の第１の数値データの和を求める場合、１台の携帯端末１２０で暗号化後の第２の数値データの処理を行うと、１億回の演算となるが、１００台の携帯端末１２０で分散処理を行い、１台の携帯端末１２０では１万個分の暗号化後の第２の数値データの和を求めることとする。これにより、１台の携帯端末１２０での演算回数は１００万回となり、第１の数値データを直接合計する場合と同程度の時間で済むことになる。
【００７４】
また、数値データを処理対象とした場合の第３の具体例において、第１の数値データの暗号化処理に指数関数を用い、暗号化された第２の数値データの演算も指数演算となるため、暗号化された第２の数値データに対する処理の複雑度は増加している。しかし、暗号化により演算すべき第２の数値データの数や演算回数は増えていない。暗号化された第２の数値データに対する処理の複雑度の増加により、携帯端末１２０で１回の演算に１００倍の時間がかかるとし、１００万個の第１の数値データの和を求める場合を考える。１台の携帯端末１２０で暗号化された第２の数値データの処理を行うと、１００倍の時間がかかるが、１００台の携帯端末１２０で分散処理を行い、１台の携帯端末１２０では１万個分の暗号化された第２の数値データの和を求めることとすると、１台の携帯端末１２０におけるデータ処理時間は１倍となり、第１の数値データを直接合計する場合と同程度の時間で済む。
【００７５】
次に、文字列データを処理対象とした場合の第１及び第２の具体例において、第１の文字列データの暗号化処理時に冗長化文字位置テーブルを用いて偽文字を加えているために、第１の文字列データに対する１つの検索条件が、暗号化後の第３の文字列データに対しては複数の検索条件に変換される場合がある。第１の具体例では、変換後も１つの検索条件で済んでいるが、第２の具体例では、３つの検索条件に変換される。一方、検索結果についても冗長化文字位置テーブルにより挿入された偽文字を検索する場合があるため、携帯端末１２０で実行した検索結果から偽文字の検索を排除しなければならない。第１の具体例では１個、第２の具体例では２個を排除している。この排除に関しては、検索結果に対する処理であり、大きな文字列データに対する検索処理に比較して大幅に負荷が軽いため無視できる。暗号化により文字列データの文字数が２倍となり、検査条件が１００倍に変換されるとして、１００万文字の第１の文字列データに対して１回の検索を行う場合を考える。１台の携帯端末１２０で暗号化データの処理を行うと、約２００倍の時間がかかるが、２００台の携帯端末１２０で分散処理を行い、１台の携帯端末１２０では暗号化された２００万文字のうちの１００万文字分に対する１つの検索条件を求めることとすると、１台の携帯端末１２０でのデータ処理時間は１倍となり、第１の文字列データを直接検索する場合と同程度の時間で済む。
【００７６】
次に、図１０を参照しながら、本実施形態に係るデータ保管システムにおける分割保管対象データの回収処理及び分割保管対象データの復元処理について説明する。
【００７７】
ステップＳ４０１において、管理サーバ１１０の送信部１１０８は、ＤＣ業者サーバ１３０からの要求により分割保管対象データを保管させた各携帯端末１２０に対してデータ回収要求を送信する。ステップＳ４１１において、携帯端末１２０は、管理サーバ１１０からデータ回収要求を受信する。ステップＳ４１２において、携帯端末１２０は、記録媒体１２０１から分割保管対象データを読み出し、管理サーバ１１０に対して送信する。ステップＳ４０２において、管理サーバ１１０の受信部１１０９は、複数の携帯端末１２０から夫々、分割保管対象データを受信する。そして、正当性判定部１１１０は、その同一性を確認する。ステップＳ４０３において、管理サーバ１１０の復号部１１１１は、各分割保管対象データを復号する。ステップＳ４０４において、管理サーバ１１０の統合部１１１２は、複数の分割保管対象データを統合し、保管対象データを復元する。
【００７８】
以上のように、本実施形態においては、複数の分割保管対象データを暗号化し、暗号化した各分割保管対象データについて、同一の分割保管対象データを複数の携帯端末１２０に保管させている。これにより、携帯端末１２０からの情報漏洩を最小限に防止するとともに、携帯端末が使用する無線通信の通信状態が安定しない場合に備え、保管させる分割保管対象データに冗長性を持たせている。従って、本実施形態によれば、携帯端末１２０を利用したセキュアな仮想ストレージを提供することが可能となる。
【００７９】
次に、図１１を参照しながら、本実施形態における管理サーバ１１０の端末稼働状況管理部１１１３の処理について説明する。ここで説明する処理は、図３に示した処理が既に実行され、各携帯端末１２０において分割保管対象データが保管された後、定期的に繰り返し実行される処理である。
【００８０】
ステップＳ５０１において、管理サーバ１１０の端末稼働状況管理部１１１３は、分割保管対象データを保管している各携帯端末１２０に対し、稼働状況取得要求を発行する。稼働状況取得要求は、送信部１１０８を介して、携帯端末１２０に送信される。ステップＳ５１１において、携帯端末１２０は、管理サーバ１１０から稼働状況取得要求を受信する。ステップＳ５１２において、携帯端末１２０の送信部１１０８は、自らの稼働状況（通信状態（通信速度、一日あたりのネットワーク接続時間）、電池充電状況、及び、ＣＰＵの負荷等）を示す稼働状況情報を管理サーバ１１０に対して送信する。なお、ステップＳ５０１では、分割保管対象データを未だ保管していない携帯端末１２０に対しても稼働状況取得要求が発行される。これは、今後、分割保管対象データの保管対象となり得る携帯端末１２０を選定するためである。
【００８１】
ステップＳ５０２において、管理サーバ１１０の受信部１１０９は、各携帯端末１２０から稼働状況情報を受信する。ステップＳ５０３において、管理サーバ１１０の端末稼働状況管理部１１１３は、稼働状況情報に基づいて、分割保管対象データを保管している各携帯端末１２０の稼働状況を監視する。具体的には、端末稼働状況管理部１１１３は、分割保管対象データを保管している各携帯端末１２０について、稼働状況情報に基づいて携帯端末１２０の稼働状況が一定レベルを満たしているか否かを判定する。ここでいう一定レベルとは、携帯端末１２０が、保管している分割保管対象データを管理サーバ１１０に対して確実に送信することが可能な通信状態、電池充電状況、又は、ＣＰＵの負荷等のレベルである。
【００８２】
携帯端末１２０の稼働状況が一定レベルを満たしている場合、端末稼働状況管理部１１１３は、処理を終了する。一方、携帯端末１２０の稼働状況が一定レベルを満たしていない場合、端末稼働状況管理部１１１３は、処理をステップＳ５０４に進める。ステップＳ５０４において、管理サーバ１１０の端末稼働状況管理部１１１３は、該当する携帯端末１２０に対するデータ消去要求を発行し、送信部１１０８は、データ消去要求を携帯端末１２０に送信する。ステップＳ５１３において、携帯端末１２０は、管理サーバ１１０からデータ消去要求を受信する。
【００８３】
ステップＳ５１４において、携帯端末１２０は、保管している分割保管対象データを記録媒体から消去する。ステップＳ５１５において、携帯端末１２０は、データ消去通知を発行し管理サーバ１１０に送信する。ステップＳ５０５において、管理サーバ１１０の受信部１１０９は、データ消去通知を携帯端末１２０から受信する。
【００８４】
ステップＳ５０６において、管理サーバ１１０の端末稼働状況管理部１１１３は、上記データ消去通知を発行した携帯端末１２０と同一の分割保管対象データを保管している他の携帯端末１２０から、分割保管対象データを受信する。そして、端末稼働状況管理部１１１３は、受信した分割保管対象データをさらに他の携帯端末１２０に対して送信部１１０８を介して送信し、保管させる。
【００８５】
以上のように、本実施形態では、分割保管対象データを保管している各携帯端末１２０の稼働状態を監視し、監視の結果、分割保管対象データを回収できない恐れのある稼働状態の携帯端末１２０が存在した場合、当該携帯端末１２０からは分割保管対象データを消去し、他の携帯端末１２０に分割保管対象データを保管させることにより、分割保管対象データの置き換えを行っている。これにより、稼働状態が悪化した携帯端末１２０において分割保管対象データを消去できなくなり悪意のある者に盗み見される等の恐れを回避することができるとともに、分割保管対象データを保管している携帯端末１２０の稼働状態如何に関わらず、全ての分割保管対象データを確実に回収することが可能となる。また、携帯端末１２０は、通信状態の悪化により、分割保管対象データを回収することができない稼働状態になっている場合もあり、このような場合には、予め管理サーバ１１０から指示された連続又は断続の通信切断時間条件により、管理サーバ１１０からのデータ消去要求の発行を待つことなく、分割保管対象データを消去することが好ましい。この場合、管理サーバ１１０は、携帯端末１２０に対して予め指示した通信切断時間条件の間、携帯端末１２０と通信することができない場合、携帯端末１２０に保管された分割保管対象データは消去されたものとみなし、他の携帯端末１２０に対して同じ分割保管対象データを保管させる。
【００８６】
上述したとおり、本実施形態では、稼働状況が一定レベルを満たしていない携帯端末から分割保管対象データを消去した後、他の携帯端末から同一の分割保管対象データを取得するようにしている。他の実施形態として、稼働状況が一定レベルを満たしていない携帯端末を検知した場合、先ず、当該携帯端末に保管させている分割保管対象データと同一の分割保管対象データを他の携帯端末から取得し、その後、稼働状況が一定レベルを満たしていない上記携帯端末から分割保管対象データを消去するようにしてもよい。これにより、携帯端末から保管対象データを消去した後、当該分割保管対象データと同一のデータを取得することができない、という状況を回避することが可能となる。
【００８７】
なお、上述した実施形態では、管理サーバ１１０は、図６及び図７を参照しつつ説明したように、暗号化後の分割保管対象データを検索可能な暗号化処理を行うこととしたが、暗号化処理は実施形態に限定されるものではない。すなわち、数値の演算や文字列の検索を目的としない場合、管理サーバ１１０は、検索不可な暗号化処理を行うこととしてもよい。この場合、データ保管中のセュリティ―を高めることができ、データの冗長性により、保管対象データを確実に回収することができる。また、この場合の暗号化処理は、管理サーバ１１０に替えて、携帯端末１２０が行ってもよい。この場合、携帯端末１２０は、管理サーバ１１０から暗号化されていない分割保管対象データを受信すると、これを直ちに暗号化して、記録媒体１２０１に保管することが好ましい。
また、上述した実施形態では、管理サーバ１１０は、分割保管対象データに対し、図６及び図７を参照しつつ説明したような、数値又は文字列に対する暗号化処理を施すこととしたが、管理サーバ１１０は、保管対象データに対する分割を行うことなく、保管対象データに対し、図６等を参照しつつ説明したような暗号化処理を施してもよい。この場合、管理サーバ１１０は、暗号化後の保管対象データの演算または検索を実現することができる。
【符号の説明】
【００８８】
１０１：管理サーバ、１０２：携帯端末、１０３：ＤＣ業者サーバ、１１００：分割部、１１０１：暗号化部、１１０２：関数変換部、１１０３：逆変換部、１１０４：暗号化部、１１０５：冗長化部、１１０６  検索指示変換部、１１０７：検索結果変換部、１１０８：送信部、１１０９：受信部、１１１０：正当性判定部、１１１１：復号部、１１１２：統合部、１１１３：端末稼働状況管理部、１１１４：対価算出部、１２０１：記録媒体
【図１】
2014186722.tif 000003
【図２】
2014186722.tif 000004
【図３】
2014186722.tif 000005
【図４】
2014186722.tif 000006
【図５】
2014186722.tif 000007
【図６】
2014186722.tif 000008
【図７】
2014186722.tif 000009
【図８】
2014186722.tif 000010
【図９】
2014186722.tif 000011
【図１０】
2014186722.tif 000012
【図１１】
2014186722.tif 000013