以下、本発明を添付図面に示す実施形態に基づいて詳しく説明する。なお、以下に説明する実施形態は、本発明を実施するにあたって好ましい具体例であるから、技術的に種々の限定がなされているが、本発明は、以下の説明において特に本発明を限定する旨明記されていない限り、これらの形態に限定されるものではない。
図1は、本発明に係る実施形態に関する電子情報分割復元処理のフローである。電子情報の分割復元処理は、フロントエンドプログラムにおいて処理のリクエストが受信されることにより開始される(S2)。フロントエンドプログラムでは、まず、リクエスト送信者のアクセス権をチェックし、アクセス権がない場合にはリクエストを拒否する。以下では、アクセス権がある場合の処理を示す。
リクエストがデータ保存のリクエストである場合(S4)、フロントエンドプログラムでは、保存する電子情報をデータ分割プログラムに渡す処理が行われる。
データ分割プログラムは、保存する電子情報に対して可逆的な分割・変換処理を行うことで分割データを生成する(S8)。分割・変換処理は、多数の可逆的なデータ変換処理及び可逆的なデータ分割処理の中からランダムに選択され、処理に関わるパラメータも乱数によって生成する。これにより、電子情報の分割・変換処理の推測を困難にする。
次に、生成された分割データを分割保存ファイルに保存する(S10)。分割保存ファイルは、予め複数個作成しておき、ファイル内には無意味なデータ列が保存されている。無意味なデータ列は、例えば、非機密性情報のデータ列を並び替えて作成したり、乱数により作成したりすることができるが、非機密性情報を用いて分割データと同様に可逆的なデータ変換処理及び可逆的なデータ分割処理を行って作成すればよい。そして、分割保存ファイルに分割データを保存する場合には、ファイル内のデータ列の一部分として保存される。その場合、分割データの格納位置は、既に保存されている分割データを上書きしない領域からランダムに選択されて決定される。そのため、分割データの格納位置を特定することは困難となる。
また、分割保存ファイルに保存されるデータ列のサイズを分割データのサイズよりも十分大きく設定しておけば、分割データのサイズが知られたとしてもそのサイズによりファイルから取り出されたデータの組合せ数を天文学的な数字とすることができることから、少数の分割保存ファイルでも十分な秘匿性を持たせることが可能となる。そのため、分割データの保存処理及び読出し処理の際に分割保存ファイルをオープン及びクローズするための処理が少なくなり、処理時間を大幅に短縮することができる。
分割データの保存が終了すると、データ分割プログラムでは、元の電子情報をどのように変換し分割したかを示す処理情報である「分割・変換規則」並びに各分割データのサイズ、保存した分割保存ファイル名、ファイル内の格納位置といった格納情報及び保存先情報である保存装置名を、元の電子情報の識別情報である「データ名」と関連付けた「分割復元情報」を生成し(S12)、暗号化通信経路を通して、分割復元情報保存プログラムに送信する。分割復元情報保存プログラムでは、「分割復元情報」をファイルまたはデータベースに保存する(S14)。以上により、電子情報の分割保存処理が完了する。
次に、フロントエンドプログラムにおいて受信したリクエストがデータ復元のリクエストである場合(ステップS6)、フロントエンドプログラムでは、リクエストされた電子情報の「データ名」を読み出してデータ復元プログラムに送信する。
データ復元プログラムでは、暗号化通信経路を通して、分割復元情報保存プログラムに電子情報の「データ名」を送信し、分割復元情報保存プログラムでは、その「データ名」に対応する「分割復元情報」を読み出してデータ復元プログラムに送信する(S16)。
データ復元プログラムでは、送信された「分割復元情報」の中の各分割データの格納情報及びその保存先情報に基づいて、分割保存ファイルから、分割データを読み出して収集し(S18)、「分割復元情報」の中の「分割・変換規則」を逆に適用して処理し、元の電子情報を復元する(S20)。「分割・変換規則」に規定されている全てのデータ変換処理及びデータ分割処理は可逆的であるから、復元処理は常に正確に行うことができる。
データ復元プログラムでは、フロントエンドプログラムに復元した電子情報を送信し、フロントエンドプログラムでは、受信した電子情報をリクエスト送信者に送信する。以上により、分割保存された電子情報の復元処理が完了する。
本発明では、電子情報の分割データは、複数の分割保存ファイル内のデータ列の一部分としてランダムに分散されて保存される。そのため、電子情報を処理する情報処理装置上、又は、その周辺に電子情報の分割データを保存しておくことができるので、秘密分散の場合のように分割された大量のデータを通信回線を介して大きな距離を送受信する必要がなく、通信コストの低減及びデータの高速処理による即時性を向上させることができる。
そして、仮に分割データを保存する分割保存ファイルが不正アクセスによって持ち出されたとしても、分割復元情報保存プログラムにより厳重に保存管理される「分割復元情報」を入手しないと、分割保存ファイルに保存されたデータ列から元の電子情報を復元することは極めて困難である。例えば、分割保存ファイルに保存されたデータ列のデータ数を1万個とし、ある電子情報を上述の分割・変換処理により10個の分割データを生成して、分割保存ファイルに保存するとする。この場合、分割データを保存した後のデータ数の合計は1万10個となる。
もし、不正アクセスにより分割保存ファイルが持ち出された場合、持ち出されたファイルから元の電子情報を復元しようとすると、元の電子情報から10個の分割データが生成されたことを知っていたとしても、1万10個のデータから10個のデータを選択する組合せの数は、約2.77×1033である。仮に1秒間に1014個の組合せを作れるとして、10個のデータの組合せを全て生成するだけで、約8.79×1011年の処理時間がかかることになる。
また、元の電子情報が10個の分割データに分割されていることを知らなかった場合には、1万10個のデータから1個以上のデータを選択する組合せの数は、約2.04×103013であり、組合せの作成の可能性を論じることすら無意味であることがわかる。
したがって、分割復元情報保存プログラムで保存管理する「分割復元情報」を入手しない限り、保存フォルダに保存されたファイルから元の電子情報を復元することは事実上不可能になる。
一方、分割復元情報保存プログラムで保存管理する「分割復元情報」を取得できれば、分割・変換処理に用いられる処理は、全て可逆的な処理でビット列への単純な演算処理であるので、データ復元処理は非常に容易に行うことができ演算処理能力の低い情報処理装置でも高速で処理することができる。
本発明では、一般に秘密分散で必須となる複数箇所でのデータ保存の必要性がなく、分割復元情報保存プログラムで保存管理する「分割復元情報」のみを一極集中管理すればよいので、データ保存に関する管理コストを低減することができる。
「分割復元情報」は、元の電子情報をどのように変換し分割したかを示す処理情報である「分割・変換規則」並びに各分割データのサイズ、保存した分割保存ファイル名、ファイル内の格納位置といった格納情報及びその保存先情報である保存装置名を、元の電子情報の識別情報であるデータ名と関連付けた情報であり、基本的には、アスキー文字列からなる、数十バイトから数百バイト程度の小さなデータで構成することができる。そのため、通常の圧縮アルゴリズムにより、数分の1から十分の1程度の大きさまで圧縮することも可能であり、データサイズが小さいため強力な暗号化処理を施すこともでき、取り扱いが容易でセキュリティの高い情報である。
図2は、本発明に係る実施形態に関するシステムの全体構成図である。分割復元情報保存サーバ装置10以外の全てのサーバ装置と端末装置はネットワークN1及びN2によりLAN接続されている。分割復元情報保存サーバ装置10及びデータ分割サーバ装置11の間と、分割復元情報保存サーバ装置10及びデータ復元サーバ装置12の間には、近距離の場合はLAN接続され、遠距離の場合はWAN通信回線で接続されて、暗号化された通信経路L1及びL2によりそれぞれ送受信可能となっている。
暗号化通信経路L1及びL2は、2本の異なる通信経路として図示されているが、これは、論理的なレベルで異なる通信経路ということであり、物理的には同一の通信回線でもよい。また、暗号化通信経路L1及びL2に関しては暗号化されてデータ通信が行われることが重要であり、物理的には、専用線、インターネット、LAN、無線LANなど、いずれの回線でもよい。
端末装置161・・・16Kは、電子情報を処理して業務を遂行するために使用される。端末装置161・・・16Kからの電子情報のデータ保存又はデータ復元のリクエストは、ネットワークN2を介してフロントエンドサーバ装置13に送信される。
フロントエンドサーバ装置13は、フロントエンドプログラムを実装する。リクエストを受信したフロントエンドサーバ装置13が最初に行うのは、リクエスト送信者のアクセス権のチェックである。チェックによりアクセス権がなければ、リクエストはフロントエンドサーバ装置13によって拒絶される。アクセス権がある場合、フロントエンドサーバ装置13は、次に、リクエストがデータ保存のリクエストなのか、データ復元のリクエストなのかチェックする。
リクエストがデータ復元のリクエストの場合、端末装置から復元する電子情報の識別情報である「データ名」が送信されて、フロントエンドサーバ装置13は、データ復元サーバ装置12に受信した電子情報の「データ名」を送信する。
データ復元サーバ装置12は、データ復元プログラムを実装する。データ復元サーバ装置12は、フロントエンドサーバ装置13から電子情報の「データ名」を受信すると、暗号化通信経路L2を介して、分割復元情報保存サーバ装置10に電子情報の「データ名」を送信する。分割復元情報保存サーバ装置10は、受信した電子情報の「データ名」に対応する「分割復元情報」を読み出し、読み出した「分割復元情報」を暗号化通信経路L2を介してデータ復元サーバ装置12に送信する。
次に、データ復元サーバ装置12は、「分割復元情報」の中の各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報及びその保存先情報に基づいて分割データをファイル保存サーバ装置141・・・14N及び151・・・15Mから読み出して、「分割復元情報」の中の「分割・変換規則」を逆に適用して処理し、元の電子情報を復元する。そして、データ復元サーバ装置12は、復元された電子情報をフロントエンドサーバ装置13に送信する。
フロントエンドサーバ装置13は、データ復元サーバ装置12から受信した電子情報を、リクエスト送信者の端末装置に送信し、端末装置上で電子情報を閲覧し処理することができるようになる。
リクエストがデータ保存のリクエストの場合、端末装置から保存する電子情報が送信され、フロントエンドサーバ装置13は、受信した電子情報をデータ分割サーバ装置11に送信する。
データ分割サーバ装置11は、データ分割プログラムを実装する。データ分割サーバ装置11は、フロントエンドサーバ装置13から電子情報を受信すると、保存する電子情報に対して可逆的なデータ変換処理及び可逆的なデータ分割処理を行うことで複数個の分割データを生成し、各分割データをファイル保存サーバ装置141・・・14N及び151・・・15M上の複数の分割保存ファイルに保存する。分割データを保存する際に、予め分割保存ファイルに保存されたデータ列をチェックして既に保存されている分割データに上書きしない領域のアドレスをピックアップしておき、分割データのサイズに基づいて上書き可能な領域の中からランダムに選択して格納位置を決定する。
ファイル保存サーバ装置141・・・14N及び151・・・15Mは、複数の分割保存ファイルを生成するとともに無意味なデータ列を生成してファイル内に保存する。無意味なデータ列は、インターネットで公開されている文書データや画像データのような非機密性情報を並び替えたり、乱数を発生させて無意味な非機密性情報を作成したり、分割データと同様のデータ変換処理及びデータ分割処理を用いて非機密性情報を処理して生成すればよい。
ファイル保存サーバ装置141・・・14N及び151・・・15Mでは、保存する電子情報から作成された分割データを保存する場合、すべての分割保存ファイルをオープン処理してすべての分割データの保存処理後すべてのファイルを一度にクローズ処理したり、複数の分割保存ファイルからランダムに選択したファイルを一度にオープン処理してすべての分割データの保存処理後一度にクローズ処理すれば、ファイルのオープン処理及びクローズ処理を最小限に抑えることができる。また、保存処理したファイルの最終更新日時を設定する場合には、常に同一となるように設定するようにすれば、保存処理したファイルが最終更新日時から特定されるのを防止することができるが、最終更新日時を設定しないようにしてもよい。
万一、保存処理された分割保存ファイルが特定されたとしても、特定された分割保存ファイル内のデータ列に含まれる分割データを特定することは、上述したように極めて困難である。
図2では、ファイル保存サーバ装置141・・・14Nは、データ分割サーバ装置11やデータ復元サーバ装置12と同じネットワーク上にあり、ファイル保存サーバ装置151・・・15Mは、端末装置161・・・16Kと同じネットワーク上にある。このように、ファイル保存サーバ装置はどこにでも設置でき、データ漏洩を防ぐための物理的・論理的なアクセス制限の必要はない。したがって、高速にデータの送受信を行うことができる最適な場所に設置でき、システム構成を行う上で自由度が大きくなる。
データ分割サーバ装置11は、分割データの保存が完了すると、処理した電子情報に関する「分割復元情報」、つまり、元の電子情報をどのように変換し分割したかを示す処理情報である「分割・変換規則」並びに各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報及びその保存先情報である保存装置名を、元の電子情報の識別情報であるデータ名と関連付けた「分割復元情報」を生成し、生成された「分割復元情報」を暗号化通信経路L1を介して分割復元情報保存サーバ装置10に送信する。
分割復元情報保存サーバ装置10は、分割復元情報保存プログラムを実装し、データ復元サーバ装置12との間、及び、データ分割サーバ装置11との間で、暗号化通信経路L1及びL2を介してそれぞれデータの送受信を行う。
分割復元情報保存サーバ装置10に保存されている分割復元情報が漏洩すると、ファイル保存サーバ装置に保存されている分割データが特定されて保存された電子情報の漏洩につながるので、分割復元情報保存サーバ装置10は、物理的・論理的に厳格なアクセス制限を行う必要がある。また、分割復元情報保存サーバ装置10では、保存された分割復元情報に基づいて格納領域情報DBを作成する。格納領域情報DBは、分割復元情報のうち格納情報及び保存先情報に基づいて各分割保存ファイルの分割データが格納された領域をまとめたもので、既に保存されている分割データの格納領域以外に新たな分割データを格納する場合に用いられる。
なお、分割データを保存処理する際に一度格納した分割保存ファイルをそれ以降使用しない場合には、既に保存されている分割データに上書きすることはなくなるので、こうした格納領域DBを作成する必要はなくなる。
分割復元情報保存サーバ装置10は、暗号化通信経路L2を介して、データ復元サーバ装置12から電子情報の「データ名」を受信すると、受信した電子情報の「データ名」に対応する「分割復元情報」を読み出してデータ復元サーバ装置12に送信する。また、暗号化通信経路L1を介して、データ分割サーバ装置11から受信した「分割復元情報」をファイルまたはデータベースに保存する。
図3は、全てのサーバ装置及び端末装置に関するブロック構成図である。入力部2及び表示部3は、端末装置では業務遂行のための各種入力・出力をするためのものであり、サーバ装置では、管理のための各種コマンドなどの入力とサーバ装置状況等の表示を行うためのものである。記憶部5は、サーバ装置では、基本ソフト(OS)が実装され、それぞれの実現する機能に合せて、フロントエンドプログラム、データ分割プログラム、データ復元プログラム、分割復元情報保存プログラム、分割保存ファイル生成プログラム等が保存されており、制御部1は、記憶部5に保存された基本ソフトを読み込んで装置全体の制御処理を行うと共に各種プログラムを読み込んでその機能を実現する。そして、ファイル保存サーバ装置では、記憶部5に保存された複数の分割保存ファイル内の無意味なデータ列の一部分として分割データが保存される。また、分割復元情報保存サーバ装置10では、記憶部5に、「分割復元情報」を保存する。端末装置に関しては、記憶部5は必ずしも存在しなくてもよい。通信部4は、全てのサーバ装置及び端末装置において各種データを送受信するためのものである。
図4は、図3に示すブロック構成図を実現したハードウェア構成例である。制御部1に対応するCPU20及びメモリ24、入力部2に対応するキーボード22及びマウス23、表示部3に対応する液晶表示パネル等のディスプレイ21、通信部4に対応するLANボード25、記憶部5に対応するハードディスク26がデータ伝送路を介して互いに接続されている。
図5は、フロントエンドサーバ装置13に関するブロック構成図を示している。フロンドエンドサーバ装置13は、上述したように、制御部131、入力部132、表示部133、通信部134及び記憶部135を備えており、制御部131は、認証部131a、リクエスト判定部131b、データ保存リクエスト処理部131c及びデータ復元リクエスト処理部131dを備えている。制御部131のこれらの機能は、記憶部135に記憶されたフロントエンドプログラムを読み込んで実現される。
認証部131aは、リクエストのアクセスがあった端末装置のアクセス権をチェックし、リクエスト判定部131bは、受信したリクエストがデータ保存リクエストかデータ復元リクエストか判定する。データ保存リクエスト処理部131cは、データ保存リクエストに対応してデータ分割サーバ装置11に電子情報を送信し、データ復元リクエスト処理部131dは、データ復元リクエストに対応して端末装置から受信した電子情報の「データ名」をデータ復元サーバ装置12に送信し、データ復元サーバ装置12から受信した復元された電子情報を端末装置に送信する。
各端末装置からの電子情報のデータ保存及びデータ復元のリクエストは、全てフロントエンドサーバ装置13に送信され、全ての電子情報の出入り口となる。
図6は、フロントエンドサーバ装置13における処理フローを示している。各端末装置からのリクエスト受信の有無をチェックし(S30)、端末装置からのリクエストを受信すると、アクセス権のチェックを行う(S32)。アクセス権がなければ、リクエストを拒絶する。
アクセス権があれば、電子情報のデータ保存リクエストかどうかチェックし(S34)、データ保存リクエストである場合には、電子情報をデータ分割サーバ装置11に送信する(S38)。この場合、端末装置から受信した電子情報は、制御部131のメモリ上に一時記憶し、ハードディスクなどの記憶部135には保存しない。
ステップS34においてデータ保存リクエストでない場合には、データ復元リクエストかチェックする(S36)。データ復元リクエストの場合は、端末装置から受信した元の電子情報の「データ名」をデータ復元サーバ装置12に送信し(S40)、データ復元を依頼してデータ復元サーバ装置12から復元された電子情報を受信する(S42)。この場合、データ復元サーバ装置12から受信した電子情報は、制御部131のメモリ上に一時記憶し、ハードディスクなどの記憶部135には保存しない。そして、受信した電子情報をリクエストした端末装置に送信する(S44)。
図7は、データ分割サーバ装置11に関するブロック構成図を示している。データ分割サーバ装置11は、上述したように、制御部111、入力部112、表示部113、通信部114及び記憶部115を備えており、制御部111は、乱数発生部111a、分割データ生成部111b、分割データ保存部111c及び分割復元情報生成部111dを備えている。制御部111のこれらの機能は、記憶部115に記憶されたデータ分割プログラムを読み込んで実現される。また、記憶部115には、分割データ生成の際に用いる分割・変換規則設定リストが記憶されている。
乱数発生部111aは、分割データ生成の際の分割・変換規則を生成する際にランダムにデータ変換処理及びデータ分割処理を選択する場合、分割データの保存先をランダムに選択する場合、保存する分割保存ファイルをランダムに選択する場合、分割データを格納する格納位置をランダムに決定する場合に乱数を発生させる。
分割データ生成部111bは、可逆的なデータ変換処理及びデータ分割処理をランダムに選択して分割・変換規則を生成して、保存する電子情報に対して分割・変換規則に基づいて処理を行い、複数の分割データを生成する。
分割データ保存部111cは、生成された各分割データに対して保存先となるファイル保存サーバ装置をランダムに選択し、選択されたファイル保存サーバ装置に関する格納領域情報を分割復元情報保存サーバ装置10の格納領域情報DBから読み出す。そして、選択されたファイル保存サーバ装置内の分割保存ファイル内のデータ列において既に保存されている分割データを上書きしない領域を探索し、保存する分割データのサイズに基づいて上書き可能な領域をピックアップする。ピックアップされた領域の中で分割データの格納領域をランダムに決定し、例えば、決定された領域の格納開始位置のアドレスを格納位置として設定する。格納位置が設定されると、選択されたファイル保存サーバ装置のすべての分割保存ファイルを一度にオープン処理して分割データを送信し、選択された分割保存ファイルの設定された格納位置に分割データを保存処理する。こうした保存処理を各分割データについて行った後すべての分割保存ファイルを一度にクローズ処理する。
以上説明した保存処理では、選択されたファイル保存サーバ装置のすべての分割保存ファイルをオープン処理しているが、すべてのファイル保存サーバ装置の分割保存ファイルを全部オープン処理して保存処理するようにしてもよい。また、ファイル保存サーバ装置のうち複数のサーバ装置をランダムに選択し、選択されたファイル保存サーバ装置のすべての分割保存ファイルをオープン処理してもよい。また、ファイル保存サーバ装置の分割保存ファイルのうちランダムに選択された分割保存ファイルをオープン処理して保存処理するようにしてもよい。
分割復元情報生成部111dは、分割データ生成部111bで用いた分割・変換規則並びに分割データ保存部111cで用いた各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報及びその保存先情報であるファイル保存サーバ装置名を、フロントエンドサーバ装置から受信した電子情報の「データ名」と関連付けて分割復元情報を生成する。
図8は、データ分割サーバ装置11における処理フローを示している。まず、アクセスしてきた相手が本当に許可されているフロントエンドサーバ装置13かどうかをチェックし、必要なアクセスコントロールを行う(S50)。アクセスコントロールの結果、何らかの問題があればプログラムの処理は中止される。
アクセスコントロールに問題がなければ、フロントエンドサーバ装置13から保存する電子情報を受信する(S52)。この場合、フロントエンドサーバ装置13から受信した電子情報は、制御部111のメモリ上に一時記憶し、ハードディスクなどの記憶部115には保存しない。
次に、記憶部115に記憶された分割・変換規則設定データを用いて可逆的なデータ変換処理及びデータ分割処理をランダムに選択し分割・変換規則を生成する(S54)。そして、保存する電子情報に対して分割・変換規則に基づいて処理を行い、複数の分割データを生成する(S56)。
分割データを生成するための分割・変換処理の具体的な処理方法を以下に詳述する。まず、分割・変換処理の第1段階として、電子情報のビット列への可逆的な変換処理を行う。この変換処理は、データの喪失が起こらない可逆的なものであれば、どのようなものでもよい。
可逆的な変換処理の例を以下に示す。
<変換処理1>
変換名:T1(d,m,n)
変換規則1:変換前のデータ名をdとする。変換後のデータ名もdのままで変更しない。
変換規則2:変換前のデータのビット列のm番目に、長さnビットのランダムなビット列を挿入する。
<変換処理2>
変換名:T2(d,x)
変換規則1:変換前のデータ名をdとする。変換後のデータ名もdのままで変更しない。
変換規則2:10進数xを2進数に変換して、変換前のデータに加算する。
<変換処理3>
変換名:T3(d,x,m,n)
変換規則1:変換前のデータ名をdとする。変換後のデータ名もdのままで変更しない。
変換規則2:無限小数xの10進数表記での、小数点以下第m桁から小数点以下第n桁までを取り出し、これを2進数に変換して、変換前のデータと排他的論理和XORを行う。
変換処理は、単一の可逆的処理でもよいし、複数の可逆的処理を連続的に行ってもよい。例えば、変換処理1の変換を行い、次に、変換処理2の変換を行うことが可能である。そのため、種々の可逆的な変換処理を多数設定することが容易に行える。
このように非常に多数の変換処理の中からランダムに選択し、それらの変換処理を組み合せ、それらのパラメータもランダムに設定することにより、変換後のデータから元のデータを復元することを非常に困難にすることができる。同時に、どのような変換をどのような順番で行ったかを示す処理情報は、数十バイト程度の小容量にできる。
分割・変換処理の第2段階では、上記変換処理を受けた電子情報のビット列を複数データに可逆的な分割処理を行う。この場合の分割処理は、データの喪失が起こらない可逆的なものであればどのような処理でも用いることができ、設定の範囲内であれば、分割するデータ数を自由に設定することができる。
可逆的な分割処理の例を以下に示す。
< 分割処理1 >
分割処理名:D1(d,i,w,x,y,z,m,p,q,・・・,s)
分割規則1 : 分割前のデータ名をdとする。
分割規則2 : 整数w,x,y,zをシードとする擬似乱数をm個生成し、これらm個の乱数を順番に並べた数値をi進数に変換する。このi進数の数値をcとする。cの桁数をbとする。データをb個に分割する。
分割規則3 : cの各桁の数字からなる数列をつくる。この数列の第h項をahとする。
分割規則4 : 分割前のデータの1番目のビットからはじめて、データ0、データ1、・・・、データ(b−1)のいずれかのデータに入れていく。
分割規則5 : bを法とするhの剰余をkとする。分割前のデータのh番目のビットを、データakに入れる。
分割規則6 : データ0の名前をデータpに変更し、データ1の名前をデータqに変更し、・・・、データ(b−1)の名前をデータsに変更する。
<分割処理2>
分割処理名:D2(d,i,e,f,g,h,・・・,k)
分割規則1:分割前のデータ名をdとする。
分割規則2:nを0以上の整数とする。
分割規則3:元のデータのi*n番目のビットは、データeへ入れ、
分割規則4:元のデータの(i*n+1)番目のビットは、データfへ入れ、
分割規則5:元のデータの(i*n+2)番目のビットは、データgへ入れ、
分割規則6:元のデータの(i*n+3)番目のビットは、データhへ入れ、
・・・
分割規則(i+2):元のデータの(i*n+i−1)番目のビットは、データkへ入れる。
<分割処理3>
分割処理名:D3(d,x,k,m,n,p,q,・・・,s)
分割規則1:分割前のデータ名をdとする。データをk個に分割する。
分割規則2:無限小数xの10進数表記での、小数点以下第m桁から、小数点以下第n桁までを取り出し、各桁の数字からなる数列をつくる。この数列の第h項をahとする。自然数kを法とするahの剰余をbhとする。
分割規則3:分割前のデータの1番目のビットからはじめて、データ0、データ1、・・・、データ(k−1)のいずれかのデータに入れていく。
分割規則4:分割前のデータのh番目のビットを、データbhに入れる。
分割規則5:データ0の名前をデータpに変更し、データ1の名前をデータqに変更し、・・・、データ(k−1)の名前をデータsに変更する。
例えば、元のデータ(データ名が「zz441」であるとする)を10個の分割データ、つまり、データ0、データ1、データ2、・・・、データ9に分割することを考える。元のデータの(10*n+m)番目のデータをデータmに入れていく分割規則は、D2(zz441,10,0,1,2,3,4,5,6,7,8,9)と書ける。
可逆的な分割処理の種類は無数に考えられるから、それらを分割・変換規則設定リストにリストアップし、そのリストの中からランダムに選択する。また、それぞれの分割処理におけるパラメータ、例えば、分割処理3のx、k、m及びnは、乱数を用いて論理的な矛盾が生じない範囲でランダムに設定する。
分割処理は、単一の可逆的な分割処理でもよいし、複数の可逆的な分割処理を連続的に行うものでもよい。例えば、分割処理1の分割を行い、次に、分割処理2の分割を行うことが可能である。
上記のように多数の分割処理の中からランダムに選択し、それらの分割処理を組み合せ、それらのパラメータもランダムに設定することにより、分割処理後のデータから元のデータを復元することが非常に困難となる。同時に、どのような分割をどのような順番で行ったかを示す処理情報は、数十バイト程度の小容量にできる。
分割・変換処理の第3段階は、上記分割処理により生成された複数の分割データのそれぞれのビット列に対する可逆的な変換処理を行う。分割データにどのような変換処理を行うかは、ランダムに選択決定される。
分割処理後のデータが対象になっている点を除けば、第3段階の変換処理は、上記の第1段階における可逆的な変換処理と全く同様に行われ、上記の例のようにデータの喪失が起こらない可逆的なものであれば、どのようなものでもよい。そして、第1段階と同様に、可逆的な変換処理の種類は無数に考えられるから、それらを分割・変換規則設定リストにリストアップし、そのリストの中からランダムに選択する。また、それぞれの変換処理におけるパラメータは、乱数を用いてランダムに設定すればよい。第1段階と同様に、この場合の変換処理は、単一の可逆的処理でもよいし、複数の可逆的処理を連続的に行うものでもよい。
第1段階と同様に、非常に多数の変換処理の中からランダムに選択し、それらの変換処理を組み合せ、それらのパラメータもランダムに設定することにより、変換後のデータから元のデータを復元することが非常に困難となる。同時に、どのような変換をどのような順番で行ったかを示す処理情報は、数十バイト程度の小容量にできる。
以上のように、第1段階の変換処理、第2段階の分割処理及び第3段階の変換処理をまとめて「分割・変換規則」を生成する。生成された「分割・変換規則」は数十から数百バイトの小さな容量にすることができる。
次に、ファイル保存サーバ装置の中から保存先のファイル保存サーバ装置を選択する(S58)。サーバ装置は乱数を用いてランダムに選択すればよく、すべてのサーバ装置を選択したり、1つ又は複数のサーバ装置を選択することもできる。
次に、選択されたファイル保存サーバ装置に保存されている分割保存ファイル内の分割データの格納位置を決定する(S60)。分割保存ファイル内には無意味なデータ列が保存されており、その一部分に分割データを格納するために格納位置を決定する。
図8Aは、分割データの格納位置を決定するための処理フローである。格納位置が決定されていない分割データを選択し(S600)、分割データの保存対象として選択されたすべての分割保存ファイルに関する格納領域情報を分割復元情報保存サーバ装置10から取得する(S602)。そして、分割保存ファイルのデータ列において既に分割データが保存されている格納領域以外で新たに保存する分割データが格納可能な領域をその分割データのサイズに基づいて探索する(S604)。格納可能な領域がピックアップされたら、ピックアップされた領域の中で格納領域をランダムに選択する(S606)。選択された格納領域の格納開始位置のアドレスを保存する分割データの格納位置として決定する(S608)。格納位置を決定すべき次の分割データがあるか否かチェックし(S610)、ある場合にはステップS600に戻る。なお、分割データのサイズがすべて同じ場合には、格納可能領域を探索した後各分割データにランダムに格納領域を割り当てていくように処理してもよい。
図9は、分割保存ファイルにおいて分割データの保存状態を例示する模式図である。分割保存ファイルF1〜Fnには、それぞれ同じデータ長の無意味なデータ列が予め保存されている。各分割保存ファイル内のデータ列は、単位データ列B1〜Bkで同じデータ長で区画されており、分割データは単位データ列の長さと同じか短くなるように生成される。
単位データ列内を斜線で表示した部分が分割データが保存されている部分である。分割データが保存されている格納領域は、単位データ列に対応する識別データを用いて格納領域情報として保存しておき、その格納領域情報を読み出すことで分割データが保存されていない単位データ列をピックアップすることができる。分割データは、ピックアップされた単位データ列の中からランダムに選択された単位データ列に上書き保存され、保存された単位データ列の格納開始位置のアドレスが格納位置として決定される。
この例では、単位データ列を同じ長さに設定しておき、分割データのサイズを単位データ列と同じか短くしておくことで格納位置の決定処理を効率化することができるが、予め単位データ列で区画せずにランダムに分割データを保存するようにしてもよい。この場合には、保存した分割データの格納開始位置及び終了位置のアドレスを格納領域情報として保存しておけばよい。
以上説明した格納位置の決定処理では、数十程度の少数の分割保存ファイル内にそれぞれ数十メガバイト程度のデータ列を保存しておく場合に有効である。ファイル数を少なくすれば、すべてのファイルをオープン処理する時間を短縮でき、またファイル内のデータ列の長さが長くなることで、十分な量の分割データを複数のファイル内にランダムに分散させて保存することができ、そのための保存処理も効率化することができる。また、電子情報をより細分化して分割データを生成しても保存処理に要する時間の増加を抑止することが可能となる。
以上の処理では、選択されたファイル保存サーバ装置のすべての分割保存ファイルを用いて格納位置の決定処理を行っているが、一部の分割保存ファイルをランダムに選択してそれらのファイルのデータ列にランダムに分散させて分割データの格納位置を決定するようにしてもよい。
図8Bは、分割保存ファイルをランダムに選択して分割データの格納位置を決定するための処理フローである。保存先として選択されたファイル保存サーバ装置に保存された分割保存ファイルのうち分割データが保存されて使用済みのファイルに関する情報を読み出す(S620)。分割保存ファイルに分割データが保存されているか否かは、分割復元情報として保存された分割保存ファイル名を格納領域情報として分割復元情報保存サーバ装置10に保存しておき、適宜読み出すようにすればよい。
そして、既に分割データが保存されて使用済みとなった分割保存ファイル以外の未使用の分割保存ファイルの中からランダムに複数の分割保存ファイルを選択する(S622)。選択された複数の分割保存ファイルのデータ格納可能領域から各分割データに対応してランダムに複数の格納領域を選択する(S624)。この場合、各分割データの格納領域が重複しないように選択する。選択された各格納領域の格納開始位置のアドレスを保存する各分割データの格納位置として決定する(S626)。
この場合、数千程度の多数の分割保存ファイルを生成しておき、各分割保存ファイル内には数百キロバイト程度のデータ列を保存しておき、分割データが保存されていない未使用のファイルの中から数十程度のファイルをランダムに選択して選択されたファイル内に分散させて格納位置を決定すれば、十分な秘匿性を持たせることができる。
また、生成された分割保存ファイルにはデータ列を保存せずに空の状態にしておき、選択された分割保存ファイルに分割データを分散させて保存した後空いている領域を無意味なデータ列で埋めるようにしてもよい。こうした保存処理を行うことで分割データを分割保存ファイル内のデータ列に埋没させて秘匿性を向上させることができる。そして、分割データが保存されていない分割保存ファイルは空の状態のままとなっているので、空であるか否かにより未使用の分割保存ファイルを簡単に識別することができる。そのため、未使用の分割保存ファイルを判別するために格納領域情報を作成する必要がなくなるメリットがある。
図10は、こうした保存処理により分割データを保存した状態を例示する模式図である。分割保存ファイルF1〜Fnは、ファイル内のデータ列が単位データ列B1〜Bkで同じデータ長で区画されており、分割データは単位データ列の長さと同じか短くなるように生成される。
そして、斜線で示すように分割データがファイルF2、F3及びFn−1内の単位データ列に保存されている。したがって、これらのファイルは使用済みとなり、残りの未使用のファイルからランダムに複数の分割保存ファイルが選択され、選択されたファイルの中で新たな分割データの格納位置がランダムに分散して決定される。
次に、保存対象となるすべての分割保存ファイルを一度にオープン処理し(S62)、設定された格納位置に分割データを保存処理する(S64)。この場合、保存対象の分割保存ファイルも含めたすべての分割保存ファイルをオープン処理することもできる。
分割データの保存処理が完了した後オープン処理したすべての分割保存ファイルを一度にクローズ処理する(S66)。こうして分割保存ファイルのオープン処理及びクローズ処理を最小限に抑えることが可能となり、保存処理を効率化することができる。
また、分割データを保存処理した後保存された分割データ以外の格納領域に無意味なデータ列からなるダミーデータを新たに上書き保存しておけば、分割保存ファイル内の無意味なデータ列の部分も更新されて分割データの特定がさらに困難となる。
次に、ステップS54において生成された分割・変換処理に関する処理情報である「分割・変換規則」並びに各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報及びその保存先情報である保存装置名を、元の電子情報の「データ名」と関連付けた「分割復元情報」を生成し(S68)、生成された「分割復元情報」を暗号化通信経路L1を介して分割復元情報保存サーバ装置10へ送信する(S70)。
図11は、データ復元サーバ装置12に関するブロック構成図を示している。データ復元サーバ装置12は、上述したように、制御部121、入力部122、表示部123、通信部124及び記憶部125を備えており、制御部121は、分割データ収集部121a及び分割データ復元処理部121bを備えている。制御部121のこれらの機能は、記憶部125に記憶されたデータ復元プログラムを読み込んで実現される。また、記憶部125には、分割データの復元処理の際に用いる分割・変換規則設定リストが記憶されている。
分割データ収集部121aは、読み出された分割復元情報の中の各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報及びその保存先情報である保存装置名に基づいてファイル保存サーバ装置から分割データを読み出して収集する。分割データ復元処理部121bは、読み出された分割復元情報の中の「分割・変換規則」に基づいて収集された分割データに対して分割・変換処理を逆に適用して元の電子情報を復元処理する。
図12は、データ復元サーバ装置12における処理フローを示している。まず、アクセスしてきた相手が本当に許可されているフロントエンドサーバ装置13かどうかをチェックし、必要なアクセスコントロールを行う(S80)。アクセスコントロールの結果、何らかの問題があればプログラムの処理は中止される。
アクセスコントロールに問題がなければ、フロントエンドサーバ装置13から復元する電子情報の「データ名」を受信する(S82)。この場合、フロントエンドサーバ装置13から受信した電子情報の「データ名」は、制御部121のメモリ上に一時記憶し、ハードディスクなどの記憶部125には保存しない。
次に、復元する電子情報の「データ名」を分割復元情報保存サーバ装置10に暗号化通信経路L2を介して送信し(S84)、「分割復元情報」の検索を依頼する。そして、分割復元情報保存サーバ装置10から暗号化通信経路L2を介して「分割復元情報」を受信する(S86)。
次に、受信した分割復元情報の中の保存装置名及び分割保存ファイル名に基づいて保存された分割保存ファイルを特定し、これらのファイルをすべてオープン処理する(S88)。そして、受信した分割復元情報の中の各分割データのサイズ、保存した分割保存ファイル名、格納位置といった格納情報に基づいてオープン処理された分割保存ファイルから分割データを読み出して収集する(S90)。該当する分割データがすべて収集された後オープン処理された分割保存ファイルをすべてクローズ処理する(S92)。このように分割データの収集の際に分割保存ファイルのオープン処理及びクローズ処理を最小限に抑えることができるので、収集処理を効率化することができる。
次に、読み出された分割復元情報の中の「分割・変換規則」に基づいて収集された分割データに対して分割・変換処理を逆に適用して元の電子情報を復元処理する(S94)。この場合、分割復元情報保存サーバ装置10から受信した「分割復元情報」及び復元した電子情報は、制御部121のメモリ上に一時記憶し、ハードディスクなどの記憶部125には保存しない。
最後に、復元した元の電子情報をフロントエンドサーバ装置13へ送信する(S96)。
図13は、分割復元情報保存サーバ装置10に関するブロック構成図を示している。分割復元情報保存サーバ装置10は、上述したように、制御部101、入力部102、表示部103、通信部104及び記憶部105を備えており、制御部101は、リクエスト判定部101a、分割復元情報保存処理部101b及び分割復元情報読出処理部101cを備えている。制御部101のこれらの機能は、記憶部105に記憶された分割復元情報保存プログラムを読み込んで実現される。また、記憶部105には、分割復元情報を保存するデータベースとして分割復元情報DBが記憶されており、必要に応じて格納領域情報DBが記憶される。
リクエスト判定部101aは、データ分割サーバ装置11又はデータ復元サーバ装置12のいずれかのリクエストか判定する。分割復元情報保存処理部101bは、受信した分割復元情報を分割復元情報DBに保存処理する。分割復元情報読出処理部101cは、受信された電子情報の「データ名」に対応する分割復元情報を検索して送信する。
分割復元情報保存サーバ装置10は、データ分割サーバ装置11及びデータ復元サーバ装置12の2つのサーバ装置のみと通信し、通信には常に暗号化通信経路L1及びL2を使用する。分割復元情報保存サーバ装置10は、システム中で、物理的にかつ論理的に、最も厳重にアクセスコントロールが必要である。
図14は、分割復元情報保存サーバ装置10における処理フローを示している。データ分割サーバ装置11又はデータ復元サーバ装置12のいずれかのリクエストを受信したかチェックし(S100)、リクエストを受信した場合には、アクセスしてきた相手が本当に許可されている分割サーバ装置11又はデータ復元サーバ装置12かどうかをチェックし、必要なアクセスコントロールを行う(S102)。アクセスコントロールの結果、何らかの問題があればプログラムの処理は中止される。
アクセスコントロールに問題がなければ、リクエストがデータ分割サーバ装置11から送信されたものかどうかチェックする(S104)。データ分割サーバ装置11からのリクエストの場合、暗号化通信経路L1を介してデータ分割サーバ装置11から「分割復元情報」を受信し(S106)、受信した「分割復元情報」を分割復元情報DBに保存処理する(S108)。
ステップS104においてリクエストがデータ分割サーバ装置11から送信されたものでない場合、リクエストがデータ復元サーバ装置12から送信されたものかどうかチェックする(S110)。データ復元サーバ装置12からのリクエストの場合、暗号化通信経路L2を介してデータ復元サーバ装置12から電子情報の「データ名」を受信し(S112)、受信した電子情報の「データ名」に基づいて「分割復元情報」を分割復元情報DBから検索する(S114)。
次に、検索した「分割復元情報」をデータ復元サーバ装置12に送信する(S116)。
図15は、ファイル保存サーバ装置141・・・14N及び151・・・15Mに関するブロック構成図を示している。ファイル保存サーバ装置は、上述したように、制御部141、入力部142、表示部143、通信部144及び記憶部145を備えており、制御部141は、ダミーデータ生成部141a及び分割保存ファイル生成部141bを備えている。制御部141のこれらの機能は、記憶部145に記憶されたダミーデータ生成プログラムを読み込んで実現される。また、記憶部145には、データ分割サーバ装置11から送信された分割データを保存する複数の分割保存ファイルが記憶されている。
ダミーデータ生成部141aは、非機密性情報を取得してデータ分割サーバ装置11と同様の可逆的なデータ変換処理及び可逆的なデータ分割処理により無意味なデータ列を生成する。分割保存ファイル生成部141bは、生成された無意味なデータ列を保存する分割保存ファイルを生成する。こうして生成された分割保存ファイルは、データ分割サーバ装置11で生成される分割データと同様に生成された無意味なデータ列を保存しているので、データ列の一部分に分割データを保存すれば保存された分割データを特定することは極めて困難になる。
ファイル保存サーバ装置は、データ分割サーバ装置11からファイル名を指定して分割保存ファイルのオープン指令を受信すると、該当する分割保存ファイルをすべてオープン処理する。次に、分割データとともに保存する分割保存ファイル名及び格納位置を指定して書込み指令を受信すると、該当する分割保存ファイルの格納位置に分割データを順次保存していく。そして、オープン処理した分割保存ファイルのクローズ指令を受信すると、該当する分割保存ファイルをすべてクローズ処理する。
また、データ復元サーバ装置12からファイル名を指定して分割保存ファイルのオープン指令が送信されると、該当する分割保存ファイルをすべてオープン処理する。次に、分割保存ファイル名及び格納位置を指定して分割データの読出し指令を受信すると、該当する分割保存ファイルの格納位置から分割データを順次読み出していく。そして、オープン処理した分割保存ファイルのクローズ指令を受信すると、該当する分割保存ファイルをすべてクローズ処理する。
図16は、ファイル保存サーバ装置における処理フローを示している。まず、非機密性情報を取得する(S120)。非機密性情報は、例えばインターネットで公開された文書や画像に関するデータで機密性のない情報である。こうした有意性のある非機密性情報を用いることで、生成された無意味なデータ列がデータ分割サーバ装置11で生成された分割データと区別できなくなり、不正アクセスによってファイルが持ち出されて元の電子情報が復元されるのを防止する。
不正アクセスによって元の電子情報を復元しようとする際には、何らかの有意性のあるビット列の断片ができることを指標にすることが考えられるが、本物の電子情報と同様に人間にとって意味のあるデータでデータ列を作成しておけば、そのデータ列の復元が完成するまで、不正アクセス者のエネルギーを消耗させることができる。
取得した非機密性情報に対して、データ分割サーバ装置11と同様の分割・変換処理方法により複数の無意味なデータ列を生成し(S122)、生成された各データ列に基づいて分割保存ファイルを生成する(S124)。そして、生成された分割保存ファイルを記憶部145に保存する(S126)。
上記実施例では、フロントエンドプログラム、データ分割プログラム及びデータ復元プログラムが異なるサーバ装置上に実装されているが、これらのプログラムを適宜組み合せて同一のサーバ装置上に実装してもよい。このようにすると、システム構築コストと管理コストを低減することができる。
ただし、分割復元情報保存プログラムは、分割復元情報保存サーバ装置10以外のサーバ装置上に実装することはできない。分割復元情報保存サーバ装置10は、秘匿する必要がある「分割復元情報」を扱うため、他のサーバ装置とは異なり、厳重にアクセスコントロールを行う必要がある。
また、フロントエンドサーバ装置13、データ分割サーバ装置11及びデータ復元サーバ装置12を、ファイル保存サーバ装置として兼用して使用してもよい。ファイル保存サーバ装置として兼用する時には、兼用するサーバ装置上にダミーデータ生成プログラムを実装しなければならない。
例えば、データ分割サーバ装置11にファイル保存サーバ装置の機能を持たせておけば、データ分割サーバ装置11の記憶部に分割保存ファイルを保存しておくことができ、その分保存処理を高速化することができる。
図17は、フロントエンドプログラム、データ分割プログラム及びデータ復元プログラムをフロントエンド・データ分割・復元サーバ装置17上に実装した場合のシステム構成図である。このシステム構成を図2のシステム構成と比較すると、データ分割サーバ装置11、データ復元サーバ装置12、フロントエンドサーバ装置13が、フロントエンド・データ分割・復元サーバ装置17の1台にまとめられており、それに伴って、分割復元情報保存サーバ装置10との間の暗号化通信経路が、1本の暗号化通信経路L1にまとめられており、システム構成を簡略化している。そのため、システム構築コスト、管理コスト及び通信コストを低減することができる。
図18は、フロントエンド・データ分割・復元サーバ装置17に関するブロック構成図である。フロントエンド・データ分割・復元サーバ装置17は、上述したように、制御部171、入力部172、表示部173、通信部174及び記憶部175を備えており、制御部171は、認証部171a、リクエスト判定部171b、データ保存リクエスト処理部171c、データ復元リクエスト処理部171d、乱数発生部171e、分割データ生成部171f、分割データ保存部171g、分割復元情報生成部171h、分割データ収集部171k及び分割データ復元処理部171mを備えている。制御部171のこれらの機能は、記憶部175に記憶されたフロントエンドプログラム、データ分割プログラム及びデータ復元プログラムを読み込んで実現される。また、記憶部175には、分割・変換処理及び復元処理に用いる分割・変換規則設定リストが記憶されている。
こうした機能の処理フローは、上述した実施形態におけるフロントエンドサーバ装置13、データ分割サーバ装置11及びデータ復元サーバ装置12と同様であるので、説明を省略する。
フロントエンドプログラム、データ分割プログラム、データ復元プログラムを適宜組み合せて単一のプログラムとしてもよい。ただし、分割復元情報保存プログラムだけは、「分割復元情報」の漏洩防止が必要なので、他のプログラムと合体して同一のプログラムとすることはできない。
図19は、別の実施形態に関するシステム構成図である。上述した実施形態と異なり、サーバ装置は、分割復元情報保存サーバ装置10の1台のみで、分割復元情報保存サーバ装置10と複数の端末装置181・・・18Kとの間は、近距離の場合はLANを、遠距離の場合はWANを用いて、それぞれ暗号化通信経路L1・・・LKで接続されている。
暗号化通信経路L1・・・LKは、分割復元情報保存サーバ装置10と各端末装置の間の異なる通信経路として図示されているが、これは、論理的なレベルで異なる通信経路ということであり、物理的には同一の通信回線でもよい。また、暗号化通信経路L1・・・LKは、暗号化されていることが重要であり、物理的には、専用線、インターネット、LAN、無線LANなど、どのようなものでもよい。
端末装置181・・・18Kは、図2の端末装置161・・・16Kとは異なり、フロントエンドプログラム、データ分割プログラム、データ復元プログラム、ダミーデータ生成プログラムを実装しており、分割データを保存する複数の分割保存ファイルも備えている。
この例では、分割復元情報保存プログラムは、端末装置181・・・18Kには実装されておらず、「分割復元情報」は分割復元情報保存サーバ装置10に一極集中して保存及び読出し管理することで、情報漏洩を防止して高度なセキュリティを確保している。
本実施形態では、フロントエンドサーバ装置、データ分割サーバ装置、データ復元サーバ装置、ファイル保存サーバ装置を使用しないので、システム構築コストを抑えることができる。
図20は、端末装置181・・・18Kに関するブロック構成図である。各端末装置は、上述したように、制御部181、入力部182、表示部183、通信部184及び記憶部185を備えており、制御部181は、認証部181a、リクエスト判定部181b、データ保存リクエスト処理部181c、データ復元リクエスト処理部181d、乱数発生部181e、分割データ生成部181f、分割データ保存部181g、分割復元情報生成部181h、分割データ収集部181k、分割データ復元処理部181m、ダミーデータ生成部181n及び分割保存ファイル生成部181pを備えている。制御部181のこれらの機能は、記憶部185に記憶されたフロントエンドプログラム、データ分割プログラム、データ復元プログラム及びダミーデータ生成プログラムを読み込んで実現される。また、記憶部185には、分割・変換処理及び復元処理に用いる分割・変換規則設定リスト及び分割データを保存する複数の分割保存ファイルが記憶されている。
こうした機能の処理フローは、上述した実施形態におけるフロントエンドサーバ装置13、データ分割サーバ装置11、データ復元サーバ装置12及び各ファイル保存サーバ装置と同様であるので、説明を省略する。
以上説明した実施形態における機能を1つの情報処理装置に搭載するようにすることもできる。この場合には、分割復元情報を暗号化して保存する必要があるが、それ以外は上述した実施形態と同様の処理を行えばよい。
1つの情報処理装置、例えば、端末装置に、フロントエンドプログラム、データ分割プログラム、データ復元プログラム、分割復元情報保存プログラム及びダミーデータ生成プログラムを実装し、上述の実施形態のようなサーバ装置を使用することなく、1つの情報処理装置ですべての処理を実行することができる。そのため、システム構築が不要で暗号化通信経路等も不要となり、通信コストもかからなくなる。
情報処理装置は、上述した実施形態とは異なり、分割復元情報保存プログラムも実装されている。そのため、分割復元情報保存プログラムでは「分割復元情報」を暗号化して、分割復元情報DBに保存する。すなわち、「分割復元情報」を分割ファイルと同じ情報処理装置上に保存することは情報セキュリティ上大変危険なので、情報漏洩を防止するために「分割復元情報」を暗号化して保存する。
「分割復元情報」は比較的小さな容量のデータなので、非常に強度の高い、したがって計算時間がかかる暗号化を行うことが可能である。そのため、「分割復元情報」という比較的小さなデータのみを暗号化することで、全データを暗号化するのに匹敵する効果が得られる。
そして、「分割復元情報」を記憶した分割復元情報DBのみを別の記憶装置に記憶させて、情報処理装置本体から分離できるようにしておけば、不正アクセスに対する安全性が高まる。
図21は、情報処理装置19に関するブロック構成図である。情報処理装置19は、上述の端末装置と同様に、制御部191、入力部192、表示部193、通信部194及び記憶部195を備えており、制御部191は、認証部191a、リクエスト判定部191b、データ保存リクエスト処理部191c、データ復元リクエスト処理部191d、乱数発生部191e、分割データ生成部191f、分割データ保存部191g、分割復元情報生成部191h、分割データ収集部191k、分割データ復元処理部191m、ダミーデータ生成部191n、分割保存ファイル生成部191p、分割復元情報保存処理部191q及び分割復元情報読出処理部191r備えている。
分割復元情報保存処理部191qは、分割復元情報生成部191hで生成された分割復元情報を暗号化処理して暗号化分割復元情報として分割復元情報DBに保存し、分割復元情報読出処理部191rは、リクエストされた電子情報の「データ名」に対応する暗号化分割復元情報を検索して復号化処理を行い、復号化された分割復元情報を分割データ復元処理部191mに出力する。
制御部191のこれらの機能は、記憶部195に記憶されたフロントエンドプログラム、データ分割プログラム、データ復元プログラム、ダミーデータ生成プログラム及び分割復元情報保存プログラムを読み込んで実現される。また、記憶部195には、分割・変換処理及び復元処理に用いる分割・変換規則設定リスト、分割データを保存する複数の分割保存ファイル及び分割復元情報を保存する分割復元情報DBが記憶されている。
こうした機能の処理フローは、上述した実施形態におけるフロントエンドサーバ装置13、データ分割サーバ装置11、データ復元サーバ装置12及び各ファイル保存サーバ装置と同様であり、分割復元情報保存サーバ装置10については、図14に示すフローにおいてステップS108で分割復元情報を保存する際に暗号化処理して暗号化分割復元情報として保存し、ステップS114で検索された暗号化分割復元情報を復号化処理すること以外は同様であるので、それ以外の処理の説明を省略する。
本発明の方法により、特許文献2に記載されたような従来の方法に比べて分割処理時間がどの程度短縮されるかを実験した。実験に用いたのは、CPUとしてceleron 1.7GHz、メモリを1GB搭載するパソコンで、基本ソフトはWindowsXP Home edition(登録商標)である。
特許文献2に記載の方法によって、3.5MBの元データを448個の8kBのファイルに分割する際の処理時間は、3.6秒であった。これに対して、本発明の方法では、同じ元データを448個の8kBの分割データに分割し、それらをサイズが32MBの16個の分割保存ファイル中に保存する際の処理時間は、0.21秒であった。この実験結果から、本発明の方法を用いることによって、処理速度が従来に比べ約17倍も速くなることがわかった。
本発明は上に述べたように、分割データを分割データ数よりも少ない個数の分割保存ファイルに保存することにより処理の著しい高速化を可能にするが、これは特許文献2に記載された方法と比較して単に処理時間が短くなるという量的なメリットだけでなく、情報セキュリティ上のある種の攻撃に対する防衛力獲得という質的なメリットももたらす。
例えば、侵害者がデータの所有者に知られることなく日時Aにすべての分割保存ファイルをコピーし、その後日時Bにもすべての分割保存ファイルをコピーすることができた場合、侵害者は日時Aと日時Bとの間に変更が生じた分割保存ファイルを特定することができる。侵害者は、日時Aと日時Bの間に変更が行なわれたファイルのビット列を取り出して並べ替える試行を繰り返すことにより、日時Aと日時Bの間に分割保存された元データの復元の総当り攻撃を遂行することができる。
本発明の方法にしたがって、3.5MBの元データを448個の8kBの分割データに分割し、それらを256kBの16個の分割保存ファイル中に保存しておくと、侵害者が16個の分割保存ファイルを特定しても、16個の分割保存ファイル中には、総計512個の区画が存在するため、512個から448個を選んで並べる順列の回数だけ試行しなければならない。この順列を計算すると約2.740463×101077となる。これは、世界最速スーパーコンピュータBlueGene/L(計算速度136.8TFLOPS)で計算しても、順列を作るだけで少なくとも6.352303×101055年かかることになり、全ての順列を作ることすら事実上不可能である。
したがって、本発明の方法によれば、侵害者が分割保存ファイルを2回に渡りコピーする攻撃を行っても、その間に分割されて秘匿されたデータを十分な強度で守ることができる。