(57)【要約】【課題】  保存対象となるデータが増加する場合であっても復元のための管理情報が増大しない、データ分割及び復元技術を提供すること。【解決手段】  データ分割装置は、複数の記憶装置にデータを分散して保存するための分割データを生成するデータ分割装置であって、保存対象データを所定のサイズで分割して第１のデータ系列を生成すると共に、第１のデータ系列のそれぞれが保存対象データのどの部分に対応するかを示す識別情報をそれぞれ生成し、第１のデータ系列を、所定の鍵とその第１のデータ系列に対応する識別情報とに基づいて第２のデータ系列へ置換し、第２のデータ系列を記憶装置の数に応じた数に分割して分割データを生成する。【選択図】  図２
2014016584.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置にデータを分散して保存するための分割データを生成するデータ分割装置であって、
保存対象データを所定のサイズで分割して第１のデータ系列を生成すると共に、前記第１のデータ系列のそれぞれが前記保存対象データのどの部分に対応するかを示す識別情報をそれぞれ生成する第１の分割手段と、
前記第１のデータ系列を、所定の鍵と当該第１のデータ系列に対応する前記識別情報とに基づいて第２のデータ系列へ置換する置換手段と、
前記第２のデータ系列を前記記憶装置の数に応じた数に分割して前記分割データを生成する第２の分割手段と、
を有することを特徴とするデータ分割装置。
【請求項２】
前記置換手段は、前記鍵を共通鍵暗号方式の鍵とし、前記識別情報を暗号利用モードの初期ベクタとして、前記第１のデータ系列を暗号化することにより、前記第２のデータ系列へ置換する、
ことを特徴とする請求項１に記載のデータ分割装置。
【請求項３】
前記鍵は所定の数を示し、
前記置換手段は、前記第１のデータ系列を前記記憶装置の数に応じた数で分割して部分データを生成して、前記鍵と前記識別情報とに基づいて特定される並べ替え方のパターンに従って当該部分データを並べ替えることにより、前記第１のデータ系列を前記第２のデータ系列へ置換する、
ことを特徴とする請求項１に記載のデータ分割装置。
【請求項４】
それぞれ異なる複雑度を有する置換を行う複数の前記置換手段と、
前記保存対象データの機密度に関する情報を取得する取得手段と、
前記機密度に関する情報に応じて、複数の前記置換手段のうち１つを選択する選択手段と、
をさらに有し、
前記選択手段により選択された１つの前記置換手段が、前記第１のデータ系列を前記第２のデータ系列へ置換する、
ことを特徴とする請求項１から３のいずれか１項に記載のデータ分割装置。
【請求項５】
前記選択手段は、前記保存対象データの機密度が高いほど、複雑度の高い置換を行う前記置換手段を選択する、
ことを特徴とする請求項４に記載のデータ分割装置。
【請求項６】
前記第２の分割手段は、前記第２のデータ系列を分割したデータをさらに暗号化し、その暗号化したデータを前記分割データとして生成する、
ことを特徴とする請求項１から５のいずれか１項に記載のデータ分割装置。
【請求項７】
前記第２の分割手段は、前記第２のデータ系列を前記記憶装置の数に応じた数に分割したデータについて、当該分割したデータごとに異なる暗号化の鍵または暗号化アルゴリズムを用いて暗号化したデータを前記分割データとして生成する、
ことを特徴とする請求項６に記載のデータ分割装置。
【請求項８】
前記所定のサイズは、前記保存対象データへのアクセスのための単位サイズに応じて定められる、
ことを特徴とする請求項１から７のいずれか１項に記載のデータ分割装置。
【請求項９】
請求項１から８のいずれか１項に記載のデータ分割装置により分割され、複数の記憶装置に分散して保存された分割データから保存対象データの少なくとも一部を復元するデータ復元装置であって、
前記複数の記憶装置から前記分割データを読み取る読取手段と、
前記複数の記憶装置に保存された前記分割データを所定の順序で並べて結合し、第３のデータ系列を生成する結合手段と、
所定の鍵と、前記第３のデータ系列が前記保存対象データのどの部分に対応するかを示す識別情報とに基づいて、当該第３のデータ系列を前記保存対象データの一部へと逆置換する逆置換手段と、
を有することを特徴とするデータ復元装置。
【請求項１０】
前記読取手段は、前記保存対象データのうち、読み出す対象となる部分を特定する前記識別情報を受け付け、前記保存対象データのうち、取得した前記識別情報に対応する前記分割データのみを前記複数の記憶装置から読み込む、
ことを特徴とする請求項９に記載のデータ復元装置。
【請求項１１】
複数の前記識別情報に対応する前記第３のデータ系列から逆置換されて得られる、前記保存対象データの複数の部分を結合する第２の結合手段、
をさらに有することを特徴とする請求項９に記載のデータ復元装置。
【請求項１２】
それぞれ異なる複雑度を有する逆置換を行う複数の前記逆置換手段と、
前記保存対象データの機密度に関する情報を取得する取得手段と、
前記機密度に関する情報に応じて、複数の前記逆置換手段のうち１つを選択する選択手段と、
をさらに有し、
前記選択手段により選択された１つの前記逆置換手段が、前記第３のデータ系列を前記保存対象データの一部へと逆置換する、
ことを特徴とする請求項９から１１のいずれか１項に記載のデータ復元装置。
【請求項１３】
複数の記憶装置にデータを分散して保存するための分割データを生成するデータ分割装置におけるデータ分割方法であって、
第１の分割手段が、保存対象データを所定のサイズで分割して第１のデータ系列を生成すると共に、前記第１のデータ系列のそれぞれが前記保存対象データのどの部分に対応するかを示す識別情報をそれぞれ生成する第１の分割工程と、
置換手段が、前記第１のデータ系列を、所定の鍵と当該第１のデータ系列に対応する前記識別情報とに基づいて第２のデータ系列へ置換する置換工程と、
第２の分割手段が、前記第２のデータ系列を前記記憶装置の数に応じた数に分割して前記分割データを生成する第２の分割工程と、
を有することを特徴とするデータ分割方法。
【請求項１４】
請求項１３に記載のデータ分割方法により分割され、複数の記憶装置に分散して保存された分割データから保存対象データの少なくとも一部を復元するデータ復元装置におけるデータ復元方法であって、
読取手段が、前記複数の記憶装置から前記分割データを読み取る読取工程と、
結合手段が、前記複数の記憶装置に保存された前記分割データを所定の順序で並べて結合し、第３のデータ系列を生成する結合工程と、
逆置換手段が、所定の鍵と、前記第３のデータ系列が前記保存対象データのどの部分に対応するかを示す識別情報とに基づいて、当該第３のデータ系列を前記保存対象データの一部へと逆置換する逆置換工程と、
を有することを特徴とするデータ復元方法。
【請求項１５】
コンピュータを請求項１から８のいずれか１項に記載のデータ分割装置が備える各手段として機能させるためのプログラム。
【請求項１６】
コンピュータを請求項９から１２のいずれか１項に記載のデータ復元装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータを分割して複数の装置に記憶させる技術に関する。
【背景技術】
【０００２】
個人情報等の機密データを、紛失、破壊、盗難等の脅威からセキュアに保管したいという要求がある。この解決方法の１つに、データを複数に分割して分散保管する方法がある。例えば、単一のストレージサーバ（データセンタ）に保管するのでなく、データを分割して複数のストレージサーバへ分散して保管する。
【０００３】
データを分割して複数のストレージサーバへ保管する技術に関しては、さまざまな技術がある。例えば、データを分割して分割データを暗号化し複数のストレージサーバへ保管する方法や、データを暗号化して暗号化データを分割して複数のストレージサーバへ保管する方法がある。いずれの方法においても、分割したデータを復元するために、分割方法やストレージサーバの情報は、テーブル等の管理情報として一括で管理される。この場合、データのサイズ、及びストレージサーバの数の増加に従って管理情報が増大するという問題がある。
【０００４】
この問題を解決する方法として、特許文献１には分割に関する管理情報を一括管理することなく分割データからデータ復元する技術が記載されている。特許文献１の技術では、復元のためのキーワードと復元処理を実行するためのメソッド部とが分割データに含められる。そして、端末に選択された１つの分割データに含まれるメソッド部が、キーワードを用いて他の分割データを検索しながら自律的にデータを復元する。このため、特許文献１の技術では、管理情報を一括管理する必要がない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１４５７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方式は、分割データはキーワードばかりでなく、メソッド部を付加する必要があるため、分割データの構成が複雑になってしまうという課題があった。また、テーブル等による管理の方式と特許文献１の方式とは、いずれもファイル単位で処理を実行することを前提としており、ファイルという１つの塊を分割し、ファイルという１つの塊を復元する。したがって、大きなファイルの部分にアクセスしたい場合に、１つのファイルの全てを復元する必要があるという課題があった。すなわち、ファイルシステムのような大きな単一のファイルとして取り扱われるデータ構造に対して適用することが、運用上容易ではないという課題があった。
【０００７】
本発明は上記課題に鑑みなされたものであり、保存対象となるデータが増加する場合であっても復元のための管理情報が増大しない、データ分割及び復元技術を提供する。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明によるデータ分割装置は、複数の記憶装置にデータを分散して保存するための分割データを生成するデータ分割装置であって、保存対象データを所定のサイズで分割して第１のデータ系列を生成すると共に、前記第１のデータ系列のそれぞれが前記保存対象データのどの部分に対応するかを示す識別情報をそれぞれ生成する第１の分割手段と、前記第１のデータ系列を、所定の鍵と当該第１のデータ系列に対応する前記識別情報とに基づいて第２のデータ系列へ置換する置換手段と、前記第２のデータ系列を前記記憶装置の数に応じた数に分割して前記分割データを生成する第２の分割手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、技術において、保存対象となるデータが増加した場合であっても、復元のための管理情報を増大させずデータの分割と復元を実行することができる。
【図面の簡単な説明】
【００１０】
【図１】データ分割保存システムの構成例を示す図。
【図２】実施形態１におけるデータ分割サーバの機能構成例を示すブロック図。
【図３】実施形態１における保存対象データの分割処理を示すフローチャート。
【図４】実施形態１における保存対象データの復元処理を示すフローチャート。
【図５】実施形態２におけるデータ分割サーバの機能構成例を示すブロック図。
【図６】実施形態２における保存対象データの分割処理を示すフローチャート。
【図７】実施形態２における保存対象データの復元処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜＜実施形態１＞＞
（システム構成）
本実施形態に係るデータ分割保存システムの一例を図１に示す。データ分割保存システムは、データ分割サーバ１０１と複数の外部ストレージサーバ１０２とを含む。また、データ分割サーバ１０１と外部ストレージサーバ１０２のそれぞれは、ネットワーク１０３を介して互いに接続される。
【００１３】
データ分割サーバ１０１は、複数の記憶装置である外部ストレージサーバ１０２にデータを分散して保存するために、そのデータ（以下、「保存対象データ」と呼ぶ）を分割し、分割データを生成するデータ分割装置である。データ分割サーバ１０１は、分割データを複数の外部ストレージサーバ１０２へ送信して記憶させる。また、データ分割サーバ１０１は、外部ストレージサーバ１０２から分割データを収集し、収集した分割データから保存対象データを復元するデータ復元装置でもある。なお、データ復元装置とデータ分割装置とは別のサーバにより実現されてもよいし、本説明のように１つのサーバにデータ分割機能とデータ復元機能の両方を備えてもよい。
【００１４】
分割処理と復元処理は専用ハードウェアにより実行されてもよいし、コンピュータ上で動作するプログラムにより実行されてもよい。保存対象データは、例えば、データ分割サーバ内部で生成したデータであってもよく、フラッシュ等のメディアやネットワークを介して外部から受け取ったデータであってもよい。データ分割サーバ１０１は、保存対象データを分割したデータ（以下、「分割データ」と呼ぶ）を、複数の外部ストレージサーバ１０２へ送信し、複数の外部ストレージサーバ１０２は受信した分割データを保存する。
【００１５】
このようなシステムは、例えば、ストレージサービスを提供する複数の事業者が外部ストレージサーバ１０２を提供し、複数のストレージサービスを利用するオンラインフォトサービスの提供者がデータ分割サーバ１０１を提供する形態で実現されてもよい。また、オンラインストレージサービスを提供する事業者がデータ分割サーバ１０１を提供し、当該オンラインストレージサービス内の複数のストレージを外部ストレージサーバ１０２として用いる形態で実現してもよい。
【００１６】
（データ分割サーバの構成）
図２に、本実施形態に係るデータ分割サーバ１０１の機能構成例を示す。図２のデータ分割サーバ１０１は、上半分に示すように分割に関する機能部と、下半分に示すように復元に関する機能部とを有する。上述のように、これらの機能部は１つの装置に実装されてもよいし、２つ又はそれ以上の装置に分離して実装されてもよい。また、例えば、分割又は復元に関する１つ以上の機能ブロックを１つの装置により実装し、他の機能ブロックを他の装置により実装してもよい。
【００１７】
データ分割サーバ１０１は、図２に示すように、例えば、データ分割に関して、受付部２０１、第１の分割部２０２、置換部２０３、第２の分割部２０４、および第１の出力部２０５を有する。
【００１８】
受付部２０１は、データ分割サーバ１０１の内部又は外部の装置から保存対象データを受け付ける。保存対象データはデータ分割サーバ１０１内部で生成したデータ、あらかじめ保持しているデータ、接続されているメディアに保存しているデータ、ネットワークを介して外部から受け取ったデータなど、さまざまなデータでありうる。例えば、受付部２０１は、ユーザがデータ分割サーバ１０１内に一時的に記憶させたデータや、データ分割サーバ１０１の機能を有する装置の内部で所定の処理を実行した結果として得られるデータを受け付けてもよい。また、受付部２０１は、外部の装置や記憶媒体から直接、データを受け付けてもよい。
【００１９】
第１の分割部２０２は、前段の受付部２０１で受け付けた保存対象データを、必要に応じて、所定のサイズのデータに分割して第１の分割データを生成する。分割サイズは、保存対象データの属性に応じて、その保存対象データへのアクセスのための単位サイズに応じてあらかじめ決定しておく。例えば、保存対象データがストリーミング配信用のデータである場合は、保存対象データに対して１２８ｋバイトの単位での部分アクセスが想定されるため、１２８ｋバイト単位で保存対象データを分割してもよい。また、保存対象データがハードディスクドライブ（ＨＤＤ）へ書き込まれるデータである場合、ＨＤＤのアクセス単位であるクラスタ単位でデータを分割してもよい。第１の分割部２０２は、第１の分割データと同時に、その第１の分割データが保存対象データのどの部分に対応するかを識別する識別情報であるＩｎｄｅｘも出力する。
【００２０】
第１の分割部２０２は、一般的なＨＤＤのアクセスと対比することができる。ＨＤＤでは、ファイルをクラスタ単位に分割してクラスタ単位でＨＤＤに書き込む。ここで、クラスタにはアドレスが振られる。すなわち、第１の分割部２０２は、クラスタ単位の分割データと、クラスタのアドレスに対応するＩｎｄｅｘとを出力する機能部と捉えることができる。
【００２１】
置換部２０３は、前段の第１の分割部２０２が出力した第１の分割データに対して、同時に出力したＩｎｄｅｘと、特定のユーザのみがデータを復元できるようにするための所定の鍵とに基づいて置換処理を実行する。所定の鍵はあらかじめデータ分割サーバ１０１に保持してもよいし、データ分割サーバ１０１がＩＣカード等の安全の情報を保持できる外部メディアから読み込んで取得してもよい。なお、置換処理は、第１の分割データに対応する第１のデータ系列を、第２のデータ系列にマッピングする処理を指す。置換部２０３の具体的な処理については後述する。
【００２２】
第２の分割部２０４は、前段の置換部２０３で置換処理したデータをさらに外部ストレージサーバの数に応じて分割し、第２の分割データを生成する。第２の分割部２０４は、例えば、Ｎ個の外部ストレージサーバを利用する場合は、置換処理した分割データをＮ等分する。
【００２３】
第１の出力部２０５は、第２の分割データをＮ個の外部ストレージサーバへ、所定の順序で送信する。なお、所定の順序とは、第２の分割データのそれぞれが、どの外部ストレージサーバへ記憶されるかを定めるものであり、第２の分割データは、必ずしもこの順序で送出されなければならないわけではない。すなわち、データ分割サーバ１０１は、第２の分割データのそれぞれがどの外部ストレージサーバ１０２へ記憶されているかの情報を保持していればよい。また、第１の出力部２０５は、必要に応じて保存対象データの識別子も出力するが、ファイルシステムのように巨大な単一のファイルとみなせる場合は保存対象データの識別子は出力しなくてもよい。さらに、外部ストレージサーバへの出力前に、暗号化処理を実行してもよい。また、外部ストレージサーバごとに異なる暗号鍵を用いてもよく、異なる暗号化アルゴリズムを利用してもよい。これにより、保存対象データの機密性を高めることができる。以上のようにして、保存対象データはＮ分割され、各外部ストレージには、１／Ｎずつの分割データが保存される。
【００２４】
一方、図２に示すように、データ復元に関して、データ分割サーバ１０１は、例えば、読取部２０６、第１の結合部２０７、逆置換部２０８、第２の結合部２０９、および第２の出力部２１０を有する。
【００２５】
読取部２０６は、保存対象データ識別子を取得する。保存対象データの識別子は、例えばファイル名である。なお、単一のファイルとみなせる場合など、復元対象となる保存対象データが自明である場合は、識別子を取得しなくてもよい。なお、読取部２０６は、保存対象データの一部だけを復元する場合は、復元箇所を示すＩｎｄｅｘを受け付ける。読取部２０６は、Ｎ個の外部ストレージサーバへ順にアクセスして、保存対象データ識別子に対応した全ての分割データを読み取る。Ｉｎｄｅｘが入力された場合は、Ｉｎｄｅｘに対応する分割データだけを読み取る。すなわち、この場合、データ分割サーバ１０１は、読取部２０６によって各外部ストレージサーバから部分アクセス単位の分割データの１／Ｎの要素のみを読み取ると共に、後段の機能部によってそれらを統合し、Ｉｎｄｅｘに対応する分割データを取得する。
【００２６】
第１の結合部２０７は、第２の分割部に対応する結合部である。第１の結合部２０７は、前段の読取部２０６で読み取ったＮ個の分割データを、外部ストレージサーバの所定の順序で並べて結合し、置換部２０３で置換された第１の分割データに対応する第３のデータ系列（結合データ）を生成する。逆置換部２０８は、前段で結合された第３のデータ系列を、Ｉｎｄｅｘと鍵とに基づいて逆置換し、保存対象データの一部に対応する第４のデータ系列（逆置換データ）を生成する。逆置換処理についての詳細は後述する。
【００２７】
第２の結合部２０９は、第１の分割部に対応する結合部であり、Ｉｎｄｅｘに基づいて逆置換により得られた保存対象データの複数の部分（第４のデータ系列）を結合し、保存対象データを復元する。なお、Ｉｎｄｅｘで示された保存対象データの一部だけを復元する場合は、この結合処理は行われない。そして、第２の出力部２１０は、復元した保存対象データの少なくとも一部を出力する。なお、第２の結合部２０９は省略されてもよい。この場合、例えば第２の出力部２１０は、逆置換部２０８から１つ以上の第４のデータ系列を順次受け取り、それを順次出力してもよい。また、第２の出力部２１０が第２の結合部２０９の機能を有してもよく、必要に応じて、第４のデータ系列を順次または結合して出力してもよい。
【００２８】
（データ分割サーバにおける分割処理）
次に、図３を用いて、データ分割サーバにおける保存対象データの分割処理の動作を説明する。まず、受付部２０１は保存対象データを受け付ける（Ｓ３０１）。次に、第１の分割部２０２は保存対象データをあらかじめ定められたサイズに分割し、分割したデータと共にＩｎｄｅｘを出力する（Ｓ３０２）。置換部２０３は、Ｉｎｄｅｘと鍵とに基づいて、第１の分割データ（第１のデータ系列）を置換して、第２のデータ系列（置換データ）を生成する（Ｓ３０３）。第２の分割部２０４は、置換後の第２のデータ系列をさらに分割して、第２の分割データを生成する（Ｓ３０４）。出力部２０５は、第２の分割データを外部ストレージサーバへ順に出力する（Ｓ３０５）。
【００２９】
（データ分割サーバにおける復元処理）
次に、図４を用いて、データ分割サーバにおける保存対象データの復元処理の動作を説明する。まず、読取部２０６は、保存対象データの識別子を読み取って取得する（Ｓ４０１）。保存対象データの一部だけを復元する場合は、読取部２０６は、復元箇所を指定する識別情報としてＩｎｄｅｘも取得する。読取部２０６は、Ｎ個の外部ストレージサーバへ順にアクセスして、保存対象データの識別子に対応する全ての分割データを読み取って取得する（Ｓ４０２）。第１の結合部２０７は、Ｎ個のストレージサーバから読み取った分割データを、所定の順序で並べて結合し、結合データ（第３のデータ系列）を生成する（Ｓ４０３）。なお、第３のデータ系列は、データ分割処理における、置換処理を施した後の第２のデータ系列に対応する。逆置換部２０８は、Ｉｎｄｅｘと鍵とに基づいて、第３のデータ系列を逆置換し、データ分割処理における第１の分割データに対応する逆置換データ（第４のデータ系列）を生成する（Ｓ４０４）。第２の結合部２０９は、逆置換により得られた複数の第４のデータ系列を結合して保存対象データを復元する（Ｓ４０５）。なお、復元箇所を特定する識別情報としてＩｎｄｅｘを取得した場合は、Ｓ４０５における結合処理は不要である。第２の出力部２１０は、復元した保存対象データを出力する（Ｓ４０６）。
【００３０】
（置換処理および逆置換処理）
続いて、置換処理および逆置換処理について説明する。置換処理および逆置換処理は、鍵を知らないユーザが逆置換する困難さ（安全性）と処理速度のトレードオフの関係でいくつかの方法がある。置換部２０３と逆置換部２０８とは、例えば以下に示す方法の中からシステム内で定められた１つの方式をあらかじめ選択し、第１の分割データの置換と逆置換とをそれぞれ実行する。
【００３１】
まず、外部ストレージサーバの数（Ｎ）に基づく方法を説明する。この方法では、第１の分割データ（第１のデータ系列）をさらにＮ等分した部分データを生成し、そのＮ等分した部分データを単位として並べ替えた第２のデータ系列に置換する。ここで、Ｎ個の部分データの並べ替え方のパターンはＮ！通り存在する。そこで、本方法では、例えば、これらのＮ！個の並べ替え方のそれぞれに０〜Ｎ！−１までの識別子を付与しておく。そして、Ｉｎｄｅｘおよび所定の数を示す鍵から、例えば、（Ｉｎｄｅｘ  ｘｏｒ  鍵）  ｍｏｄ  Ｎ！を計算して値ｘを求め、識別子がｘの並べ替え方のパターンを特定する。そして、第１のデータ系列を特定した並べ替え方のパターンに基づいて並べ替えて第２のデータ系列とすることにより、置換が実行される。Ｎ＝２の例では、第１のデータ系列を２等分して部分データを生成するとともに、Ｉｎｄｅｘと鍵から０か１のｘを算出する。そして、置換部２０３は、ｘが０の場合は並べ替えをせずにそのまま出力、つまり第１のデータ系列と同じデータ系列を第２のデータ系列として出力する。このように、場合によっては、第１のデータ系列と第２のデータ系列とは同一の系列であってもよい。一方、ｘが１の場合は、置換部２０３は、２等分した部分データを入れ替えて出力する。つまり、第１のデータ系列を２等分して、その等分した部分データ入れ替えたデータ系列を第２のデータ系列として出力する。この方法によれば、１／Ｎ！の複雑度で置換を実現することができる。
【００３２】
なお、逆置換処理でも同様に、復元対象となるＩｎｄｅｘと鍵とからｘを算出する。そして、そのｘによる置換の逆を行うことにより、置換後のデータ系列に対応する結合後の第３のデータから、置換前の第１の分割データに対応する第４のデータ系列を得ることが可能となる。すなわち、例えば上述のＮ＝２の例では、逆置換部２０８は、ｘが１の場合、各外部ストレージサーバから取得して結合した第３のデータ系列を２等分し、２等分した部分データを入れ替えたデータ系列を第４のデータ系列として第２の結合部２０９へ出力する。同様に、ｘが０の場合、並べ替えをせずに第３のデータ系列をそのまま第４のデータ系列として第２の結合部２０９へ出力する。このように、第３のデータ系列と第４のデータ系列とは同じデータ系列であってもよい。なお、復元が成功した場合、第３のデータ系列は第２のデータ系列に等しく、また、第４のデータ系列は第１のデータ系列に等しい。
【００３３】
なお、上述の説明では、外部ストレージサーバ１０２の数Ｎと同数の部分データを生成して並べ替えるとしたが、これに限られない。例えば、Ｎより少ない数の部分データを生成して並べ替えてもよいし、Ｎより多くの数の部分データを生成してもよい。また、第２の分割部２０４における置換後の第２のデータ系列を分割する個数に応じて、部分データを生成してもよい。
【００３４】
ここで、第２の分割部２０４は置換後のデータを部分データの単位で分割するため、この方法は、それぞれの部分データを保存する外部ストレージサーバをＩｎｄｅｘと鍵とに応じて変更する処理に対応する。このため、部分データを生成し、どの外部ストレージサーバにどの部分データが格納されるかをＩｎｄｅｘごとに変更してテーブルとして記憶しておけば、本方法と同等の出力結果が得られる。しかしながら、この方法では、Ｉｎｄｅｘと鍵とに応じて、その結果を算出することができるため、テーブルなどの情報を管理する必要がない。また、データ分割サーバやユーザに固有の鍵を用いることにより、そのデータ分割サーバ以外のサーバからのアクセス、又は特定のユーザ以外のアクセスではデータを復元できないという効果が得られる。すなわち、この方法によって、管理情報を増やすことなくセキュアに、保存対象データを分割して複数のストレージサーバへ記憶させておくことが可能となる。
【００３５】
次に、共通鍵暗号方式を利用する方法を説明する。この方法は、共通鍵暗号方式がデータ系列を別のデータ系列へ置換（マッピング）する性質を有することを利用した方式であり、第１の分割データを共通鍵暗号方式で暗号化する方法である。共通鍵暗号方式として、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等を利用できる。さらに、鍵を共通鍵暗号方式の鍵とし、Ｉｎｄｅｘを暗号利用モードの初期ベクタとすることで、Ｉｎｄｅｘと鍵から一意の置換を決定することができる。例えば、初期ベクタを利用するＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）、ＯＦＢ（Ｏｕｔｐｕｔ  ＦｅｅｄＢａｃｋ）、ＣＦＢ（Ｃｉｐｈｅｒ  ＦｅｅｄＢａｃｋ）、ＣＴＲ（Ｃｏｕｎｔｅｒ）などの暗号利用モードを利用する。Ｉｎｄｅｘに基づく暗号利用モードを用いることにより、１つのブロック暗号を用いる場合よりセキュアにデータを保存することができ、さらに、管理情報の増大を抑えながらデータを復元することが可能となる。さらに、共通鍵暗号方式の暗号化アルゴリズムの選択によって複雑度を決定してもよい。たとえば、１２８ビットの鍵のＡＥＳ１２８アルゴリズムを利用して複雑度１２８ビットの置換を実行し、１９２ビットの鍵のＡＥＳ１９２アルゴリズムを利用して複雑度１９２ビットの置換を実行する。さらに、２５６ビットの鍵のＡＥＳ２５６アルゴリズムを利用して複雑度２５６ビットの置換を実行する。なお、複雑度が大きくなると、処理に要する時間も増大する。なお、この場合の逆置換は、暗号の復号化処理を実行することにより達成される。
【００３６】
以上に説明したように、データ分割サーバは、Ｉｎｄｅｘと鍵のみに基づいて、保存対象データの分割と復元とを実行する。このため、本実施形態によるデータ分割方法及びデータ復元方法によれば、管理情報を増大させることなく、大きいサイズのデータを取り扱うことが可能となる。さらに、本実施形態のデータ分割サーバによれば、第１の分割と第２の分割の二重の分割を行うことによって、分割保存された保存対象データの一部へのみアクセスすることが可能となる。
【００３７】
＜＜実施形態２＞＞
実施形態１では、システム内であらかじめ定められた方法による置換と逆置換とを実行する場合について説明した。一方、保存対象データに適用すべき機密レベルは全て同一でなく、異なる場合がある。そこで本実施形態では、保存対象データの機密レベルに応じて置換と逆置換を実行する方法を適応的に選択できる手法について説明する。なお、データ分割保存システムの構成は実施形態１と同様であるため、説明を省略する。
【００３８】
（データ分割サーバの構成）
図５は、本実施形態に係るデータ分割サーバ１０１の機能構成を示すブロック図である。図５では、図２と同様に、上段には分割に関する機能構成を、下段には復元に関する機能構成を、それぞれ示している。図５に示すように、データ分割サーバ１０１は、データ分割に関して、図２と同様に、受付部２０１、第１の分割部２０２、複数の置換部２０３、第２の分割部２０４、第１の出力部２０５とを有する。ただし、データ分割において、さらに、種別判定部５０１、および切替部５０２が用いられる。さらに、第１の実施形態では単一の置換部２０３を有していたが、本実施形態では複数の置換部２０３を有する。また、図５に示すように、データ分割サーバ１０１は、データ復元に関して、図２と同様に読取部２０６、第１の結合部２０７、複数の逆置換部２０８、第２の結合部２０９、第２の出力部２１０を有する。ただし、データ復元においても、さらに種別判定部５０１、および切替部５０２が使用される。また、第１の実施形態では単一の逆置換部２０８を有していたが、本実施形態では複数の逆置換部２０８を有する。
【００３９】
種別判定部５０１は、保存対象データの種別を判定する。種別判定は、保存対象データの属性に応じて機密度のレベル付けを行い、機密度情報を取得する。ここで、保存対象データに関する属性の情報は、例えば、データ分割サーバ１０１の外部から取得されてもよいし、保存対象データそのものやメタデータから判定されてもよい。属性の情報は、例えば、保存対象データの所有者情報や、保存対象データの送信元情報である。種別判定部５０１は、例えば、所有者情報がプライベートユーザなのかオフィスユーザなのか、送信元機器がプライベートの機器なのかオフィスの機器なのかに応じて、機密度について２段階のレベル付けを実行して機密度情報を取得してもよい。また、保存対象データに対する機密度が予め決まっている場合は、外部から保存対象データと共に機密度情報を取得してもよい。
【００４０】
なお、保存対象データの復元には、保存対象データそのものや、保存対象データのメタ情報を利用することはできない。このため、種別判定部５０１は、例えば、外部から機密度情報を取得して切替部５０２へ出力してもよい。また、分割データに機密度情報が付されていてもよく、その場合、種別判定部５０１は、その分割データから機密度の情報を取得して切替部５０２へ供給してもよい。
【００４１】
切替部５０２は、種別判定部５０１で判定したレベル付けに応じて、複数有する置換部２０３と逆置換部２０８の中から、実際に置換処理又は逆置換処理に利用する置換部又は逆置換部を選択する。例えば、高い複雑度の第１の置換部と低い複雑度の第２の置換部の２つの置換部が存在する場合、切替部５０２は、高い機密レベルの保存対象データについては第１の置換部で置換処理が実行されるように、実際に利用される置換部を選択する。同様に、切替部５０２は、低い機密レベルの保存対象データについては第２の置換部で置換処理が実行されるように、実際に利用される置換部を選択する。また、高い複雑度の第１の逆置換部と低い複雑度の第２の逆置換部の２つの逆置換部が存在する場合、切替部５０２は、機密度が高いデータについては第１の逆置換部で逆置換処理が実行されるように、実際に利用される逆置換部を選択する。同様に、切替部５０２は、機密度が低いデータについては第２の逆置換部で逆置換処理が実行されるように、実際に利用される逆置換部を選択する。ここで、高い複雑度の置換処理と逆置換処理は処理時間が大きいが、復元が困難となる。一方、低い複雑度の置換処理と逆置換処理は復元の困難さが小さいが、処理時間が少なくても済む。
【００４２】
（データ分割サーバにおける分割処理）
次に、図６を用いて、本実施形態に係る保存対象データの分割処理の動作について説明する。まず、受付部２０１は保存対象データを受け付ける（Ｓ６０１）。次に、種別判定部５０１は、保存対象データの種別を判定して、機密度のレベル付けを行う（Ｓ６０２）。そして、切替部５０２は、機密度のレベルに応じて使用する置換部を選択して切り替える（Ｓ６０３）。次に、第１の分割部２０２は、保存対象データを所定のサイズに分割して第１の分割データ（第１のデータ系列）を生成し、第１の分割データと共にＩｎｄｅｘを出力する（Ｓ６０４）。機密度のレベルに応じて選択された置換部２０３は、Ｉｎｄｅｘと鍵とに基づいて第１の分割データを置換し、第２のデータ系列（置換データ）を生成する（Ｓ６０５）。第２の分割部２０４は、第２のデータ系列をさらに分割して、第２の分割データを生成する（Ｓ６０６）。出力部２０５は、第２の分割データを外部ストレージサーバへ順に出力する（Ｓ６０７）。なお、本実施形態においては、第２の分割データに、機密度情報を付与してもよい。または、置換後のデータに機密度情報を付加し、それを分割して第２の分割データを生成してもよい。
【００４３】
（データ分割サーバにおける復元処理）
次に、図７を用いて、本実施形態に係る保存対象データの復元処理の動作について説明する。まず、読取部２０６は、保存対象データの識別子を取得する（Ｓ７０１）。読取部２０６は、保存対象データの一部だけを復元する場合は、復元箇所を特定するＩｎｄｅｘも併せて取得する。種別判定部５０１は、保存対象データの種別を判定して機密度のレベル付けを行う（Ｓ７０２）。なお、ここでの機密度のレベル付けは、例えば、分割データ又は第１の結合処理後のデータに付与された機密度情報や、外部から取得する機密度情報に基づいて行われてもよい。切替部５０２は、レベルに応じて利用する逆置換部を選択して切り替える（Ｓ７０３）。
【００４４】
次に、読取部２０６は、Ｎ個の外部ストレージサーバへ順にアクセスして、保存対象データ識別子に対応した全ての分割データを読み取る（Ｓ７０４）。なお、分割データに機密度のレベルの情報が付与される場合は、Ｓ７０４の処理をＳ７０２とＳ７０３に先立って実行してもよい。なお、保存対象データの一部を復元する場合は、Ｓ７０１で取得したＩｎｄｅｘに対応する分割データのみをすべて読み取る。第１の結合部２０７は、Ｎ個のストレージサーバから読み取った分割データを、所定の順で並び替えてデータを結合し、第３のデータ系列（結合データ）を生成する（Ｓ７０５）。なお、第１の結合処理後のデータに機密度のレベルの情報が付与される場合は、Ｓ７０４とＳ７０５の処理をＳ７０２とＳ７０３に先立って実行してもよい。
【００４５】
選択された逆置換部２０８は、第３のデータ系列を逆置換し、第４のデータ系列（逆置換データ）を生成する（Ｓ７０６）。第２の結合部２０９は第４のデータ系列を結合して保存対象データを復元する（Ｓ７０７）。なお、保存対象データの一部だけを復元する場合は、第２の結合処理は不要である。第２の出力部２１０は、復元した保存対象データを出力する（Ｓ７０８）。
【００４６】
以下に本実施形態の実際のシステムへの応用例を挙げる。各国政府機関では機密情報を、Ｔｏｐ  Ｓｅｃｒｅｔ／Ｓｅｃｒｅｔ／Ｃｏｎｆｉｄｅｎｔｉａｌ／Ｕｎｃｌａｓｓｉｆｉｅｄの四つのレベルに分類することが多い。そこで、置換方法として前述の１／Ｎ！の複雑度の置換、ＡＥＳ１２８アルゴリズムの複雑度１２８ビットの置換、ＡＥＳ１９２アルゴリズムの複雑度１９２ビットの置換、ＡＥＳ２５６アルゴリズムの複雑度２５６ビットの置換の４つの置換方法を準備する。データは明示的にレベル付けされているので、保存対象データを受け付けると同時に、機密度情報を受け付けて種別判定部５０１へ入力する。本実施形態では、機密レベルの高いＴｏｐ  Ｓｅｃｒｅｔを複雑度２５６ビット、Ｓｅｃｒｅｔを複雑度１９２ビット、Ｃｏｎｆｉｄｅｎｔｉａｌを複雑度１２８ビット、Ｕｎｃｌａｓｓｉｆｉｅｄを複雑度１／Ｎ！の置換にそれぞれ割り当てて運用できる。したがって、保存対象データの機密度に応じて適切な置換を選択し、機密度の高いデータほど第三者が復元しにくくするような、データ分割保存システムを実現することが可能となる。また、機密度が低く、多方面で利用されるデータについては、複雑性が低い置換を用いることにより、演算量や演算に要する時間を削減することが可能となる。
【００４７】
以上のように、本実施形態のデータ分割サーバは、Ｉｎｄｅｘと鍵だけから保存対象データの分割と復元を実現するため、データの増加に伴う管理情報の増大を防ぐことが可能となる。なお、本実施形態では、機密度情報が保持されるが、例えば４段階の機密度のレベルがある場合でも、高々２ビットの情報を保持していればよいだけであり、さらに、この情報はデータの増大によって増加することはない。したがって、管理情報の増大を防ぐことが可能となる。また、本実施形態のデータ分割サーバによれば、保存対象データの機密レベルに応じて置換と逆置換の方法を適応的に選択して、適切な処理時間で安全な分散保存を達成することができる。
【００４８】
なお、実施形態１と実施形態２の説明では、第２の分割部は、外部ストレージサーバ１０２の数Ｎと同数の第２の分割データを生成するとしたが、これに限られない。例えば、Ｎより少ない数の第２の分割データを生成し、一部の外部ストレージサーバのみに分割データを保存するようにしてもよい。これにより、例えば、同業他社が提供する使用したくない外部ストレージサービスのサーバへはデータを記憶させないようにすることができる。また、Ｎより多くの数の第２の分割データを生成してもよい。この場合、一部の外部ストレージサーバにおいては、複数の第２の分割データを記憶することとなる。これにより、例えば、データ分割サーバ１０１との間の通信回線のデータ伝送速度が高いサーバへより多くのデータを保存するなど、各外部ストレージサーバへ保存するデータ量について、高い自由度を確保することが可能となる。
【００４９】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014016584.tif 000003
【図２】
2014016584.tif 000004
【図３】
2014016584.tif 000005
【図４】
2014016584.tif 000006
【図５】
2014016584.tif 000007
【図６】
2014016584.tif 000008
【図７】
2014016584.tif 000009