(57)【要約】【課題】  ファイルを安全に送信し及び／又は管理するファイルの送信／管理システムを提供する。【解決手段】  ファイルを分割し、分割したファイルを乱数を用いて非識別化（分散化を含む）を行うことにより、ファイルを安全に送信し及び／又は管理する。また、必要に応じ、その非識別化された分割ファイルをグループ分けしてネットワークに送る。ファイルを元に戻すには、ファイルの被識別化に使用した乱数を使用する。【選択図】  図４
2009122731.tif 000002
【特許請求の範囲】
【請求項１】
文書データ、画像データ又は動画データ等を含むファイルを所定数の分割ファイルに分割する分割手段と、その分割ファイルを乱数を利用して非識別化する非識別化手段と、その非識別化された分割ファイルをグループ分けし、またはグループ分けしないでネットワークに送る手段とを含むことを特徴とする、ファイル分割処理システム。
【請求項２】
分割されるファイルが暗号処理用共通鍵データであり、前記非識別化手段が、所定量の乱数を、ファイルの分割数に応じて切り出し、その切り出された乱数をそれぞれ分割ファイルに付加することを特徴とする、請求項１に記載のファイルの分割処理システム。
【請求項３】
前記乱数は真正乱数又は擬似乱数であり、前記非識別化された分割ファイルをネットワークに送る手段が、前記乱数と非識別化された分割ファイルとを別々にネットワークに送ることを特徴とする、請求項１又は２に記載のファイル分割処理システム。
【請求項４】
ファイル管理用サーバーとファイルを保存するため複数のストレージ・サーバーとを有するファイル管理システムであって、前記ファイル管理用サーバーは、ファイルを所定数の分割ファイルに分割する分割手段と、その分割ファイルを乱数を利用して非識別化する非識別化手段と、その非識別化されたファイルを所定の基準でグループ分けするグループ化手段と、グループ化された非識別化ファイルを、ネットワークを介し、対応するストレージ・サーバーに送る手段とを含むことを特徴とする、ファイル管理システム。
【請求項５】
前記非識別化手段は、乱数を利用して分散化する分散化手段であることを特徴とする、請求項４に記載のファイル管理システム。
【請求項６】
平文のファイルを所定容量の乱数を用いて暗号化する暗号化手段を更に含み、前記分割手段は、その暗号化されたファイルを分割することを特徴とする、請求項４又は５に記載のファイル管理システム。
【請求項７】
前記暗号化手段は、平文のファイルを、所定容量の真正乱数をシードとして生成された擬似乱数を用いて暗号化する、請求項６に記載のファイル管理システム。
【請求項８】
前記真正乱数は、モジュール化された乱数発生器によって生成された一定量の真正乱数を記録したファイルから得ることを特徴とする、請求項７に記載のファイル管理システム。
【請求項９】
前記グループ化手段は、秘密分散法に基づいて、前記非識別化されたファイルをグループ分けすることを特徴とする、請求項４乃至８のいずれかに記載のファイル管理システム。
【請求項１０】
前記分散化手段は、分割ファイルを、前記乱数を用いて再配置することによって分散化することを特徴とする、請求項５乃至９のいずれかに記載のファイル管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの送信／管理システムに関し、特に、ファイルを分割し、分割したファイルを乱数を用いて非識別化を行うことにより、ファイルを安全に送信し及び／又は管理することができるシステムに関する。
【背景技術】
【０００２】
従来、ファイル（文書データ、画像データ又は動画データ等を含む）を特定の相手に送信する場合やサーバーに保管する場合、ファイルの内容の漏洩を防ぎまた破壊されるのを防ぐために、ファイルの内容を暗号化したり及び／又は分割して、相手に送信し又はサーバーに保管することが行われている。
【０００３】
暗号化された、または暗号化されていないファイルを複数個のファイルに分割して相手（サーバーを含む）に送ることは、ファイルが分割によってバラバラのパケットとなり任意のタイミングで相手に送られ、しかもファイルの分割数も秘密にされているから、第三者はその全てを捉えることが難しくなり、安全性が高まる（本発明では、このような、ファイルを分割した後で送信する方式を分割処理システムと称している）。
【０００４】
またサーバーにファイル（特に秘密情報を含むもの）を保管する場合、秘密情報の紛失や破壊を防ぐために、分割されたファイルを分散化（秘密分散法）する方法がある。その１つが（ｋ，ｎ）閾値秘密分散法であり、任意のｋ（ｋ≦ｎ）個の分散された情報が揃えば、秘密情報Ａを復元できるが、任意のｋ−１個までの分散情報が揃っても秘密情報Ａは復元できないという性質を持つ（例えば、特許文献１参照）。
【０００５】
また、閾値秘密分散法の一種である(ｋ,ｎ)検証可能秘密分散法（VSS：Verifiable Secret Sharing）は、送られてきた分散情報が正しく作られたものであることを、各分散情報保持者が確認する必要がある場合に用いられる。例えば、鍵供託（key escrow）では、複数の第３者機関に秘密鍵を分散して供託する。このとき、正しく分散させた鍵であることを、供託機関に証明する必要がある（例えば特許文献２参照）。
【特許文献１】特開２０００−１７２５４８号公報
【特許文献２】特開２００３−３４８０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ファイルを分割して送信すると、各々のパケットは不定の経路をたどって受信側に届くため、分割されたファイルは順不同となり、再び一つのファイルに戻そうと思っても、本来の順番が分からない。そこで、通常は、分割時にヘッダー情報として順番を示すナンバリングデータを割り振っている。しかし、安易な付加情報では、第三者にその順番や分割数を類推されてしまう可能性がある。
【０００７】
また、ファイルの分散化においても、前述した閾値秘密分散法では、秘密情報を分散保管するのに、秘密情報の何倍分もの容量のメモリが必要である。したがって、大量の情報を秘密に保管するには向かない。又、検証可能秘密分散法では、暗号化の鍵を分散保管させる場合が多く、保管したいファイルのデータは、暗号化して別の保管場所に預ける必要がある。すなわち、鍵とデータはばらばらに保管する必要があるため、管理が複雑になる。
【０００８】
ところで、ここでいう分割ファイルには、暗号化されたファイルを復号化するために必要な共通鍵（コード）も含める。この共通鍵は、第三者には知られてはならないもので、これをいかに安全に送信するかは極めて重要となる。
【課題を解決するための手段】
【０００９】
本発明に係るファイル分割処理システムは、文書データ、画像データ又は動画データ等を含むファイルを所定数の分割ファイルに分割する分割手段と、その分割ファイルを乱数を利用して非識別化する非識別化手段と、その非識別化された分割ファイルをグループ分けし、またはグループ分けしないでネットワークに送る手段とを含む。
【００１０】
本発明のファイル分散管理システムは、ファイル管理用サーバーとファイルを保存するための複数（又は少なくとも３台）のストレージ・サーバーとを有するファイル管理システムであって、前記ファイル管理用サーバーは、ファイルを所定数の分割ファイルに分割する分割手段と、その分割ファイルを乱数を利用して非識別化する非識別化手段と、その非識別化されたファイルを所定の基準でグループ分けするグループ化手段と、グループ化された非識別化ファイルを、ネットワークを介し、対応するストレージ・サーバーに送る手段とを含むことを特徴とする。
【発明の効果】
【００１１】
本発明のファイル管理システムでは、ファイルを分割し、分割したファイルを乱数を用いて非識別化を行うことにより、ファイルを安全に送信し及び／又は管理し、またシステムの簡素化を図ることができる。
【００１２】
より具体的にいえば、本発明のシステムでは、ファイルをある単位に分割し、それらを順不同にして相手方に送り、又はストレージ・サーバーへ保存するので、個々に点在するファイルを取得しただけでは内容全体の判読が不可能となり、機密漏洩を防止し管理の安全性を維持することができる。特に、複数のストレージ・サーバーに保存する従来のファイル分散方式は、その保守にかかるコストが無視できないが、本発明にかかるファイルの分散方式では、３台のサーバーを用意し、その内の２台のサーバーにアクセスすることで、ファイルの内容を復元できるので、利便性、経済性にも優れている。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の一実施形態に係るファイルの分割処理システムの梗概を示す構成図である。図示のシステムは、文書データ、画像データ又は動画データ等を含むファイルをネットワークを介し送受信する一般的な形態を示すものである。ネットワークは、インターネット、有線又は無線のＬＡＮ、公衆回線、専用回線等であり、特に限定しない。また、本発明では、ネットワークを介さず直接送受信する場合でもかまわない。
【００１４】
ファイルの送信側であるユーザー１（ＰＣ端末）は、真正乱数又は擬似乱数を生成する乱数生成部と、元のファイルを所定数の分割ファイルに分割し、その分割ファイルを乱数生成部で生成された乱数を利用して非識別化する制御部とを有する。制御部では、必要に応じ、分割ファイルを、更に後述するグループ分けしてもよい。制御部で処理された分割ファイルは、入出力部を介しネットワークに送り出される。受信側であるユーザー２（ＰＣ端末）は、ユーザー１と同様の構成を有し、入出力部を介し受信した分割ファイルを、制御部で、受信側と逆の作業を行って復元化する。詳細は以下に説明する。
【００１５】
本発明は、その一実施形態として、暗号処理用共通鍵データを内容とするファイルを分割し、非識別化する例を示す。ここでの非識別化は、乱数生成部で生成された所定量の乱数を、ファイルの分割数に応じて切り出し、その切り出された乱数をそれぞれ分割ファイルに付加する。非識別化された分割ファイルと前記の乱数とは、別々にネットワークに送り出される。
【００１６】
図２は、図１のシステムを利用してファイル（暗号処理用共通鍵データ）を分割し、非識別化するための原理を示す説明図である。
【００１７】
分割されたファイルを順序正しく連結して元のファイル（共通鍵データ）に戻すためには、各分割ファイルに何らかの連結順序を示す情報を付加させる必要がある。しかし単純に１、２、３…といった順数では、安易に類推される可能性があるため、乱数を利用する。この乱数自体は、例えば、後述するＲＰＧ（ランダムパルス発生器）による真正乱数が望ましいが、極端に短い周期性さえ無ければ、擬似乱数であっても構わない。以下乱数を利用したファイルの分割、非識別化の手順の一例を示す。
【００１８】
（１）まず、連結順序を表す値の取り得るビット幅を決める。コンピュータの観念では、二の階乗数が効率的であるため、４ビットや８ビット単位に考えがちであるが、あえて非効率的なビット数を単位に選ぶべきであろう。図２の例では、乱数を切り出すビット幅＝５ビットとしている。
（２）次に共通鍵データ（図２の例では、ビット幅＝16ビット）の分割数を決め、その分割数に基づき、共通鍵データを均等に分割する。図２の例では、共通鍵の分割数＝４として分割を行い、その結果を示している。
（３）充分な容量の乱数を生成する。通常は8192ビット（＝1024バイト）もあれば充分である。
（４）生成された乱数の先頭から、（１）で決めたビット幅で（２）で決めた分割数だけ切り出す。新しく切り出した値が、既に切り出した値のいずれかと一致する場合は、その新しく切り出した値は捨て、次のビットを新たに切り出すようにすることで、確実に異なる値が並ぶようにするとよい。
（５）切り出した乱数と分割ファイルとを、それぞれ、分割ファイルの連結順序に従い組み合わせる。これによって、分割ファイルは非識別化される。
（６）乱数と組み合わされた分割ファイルと乱数とを、それぞれ別々にネットワークに送り出す。図２の例では、乱数と組み合わされた４個の分割ファイルと乱数（図２の「順序判定用乱数の例」）との全部で５個のデータを、それぞれ個別に伝送する。このようにして送られた分割ファイルは、その内容も連結順序も知られることなく伝送される。
【００１９】
受信側では、乱数と分割ファイル（非識別化されたもの）とを受信すると、まず、送信側と同じ手順で受信した乱数の切り出しを行う（切り出した乱数の登場順序から分割ファイル（非識別化されたもの）の連結順序が分かる）。そして、この切り出した乱数と、受信した分割ファイルの先頭から前記（１）で決めたビット幅（図２の例では５ビット）の値を比較し、分割ファイルの連結順序を特定する。
【００２０】
上述の方式で安全に共通鍵を伝送することができれば、暗号化されたファイルを交信する直前に共通鍵の交換が可能になるため、本発明は、以下に示すような分野で有効な応用が図られるであろう。
・認証
認証判定に用いるパスワードなどを共通鍵として取り扱えば、より安全にパスワードを取り交わすことが可能となる。本発明の方式では、数バイトから数キロバイト程度の小さい容量のデータファイルを分割して伝送することにも使えることから、指紋認証などの画像データを取り交わす際にも応用できる。
・IP電話
インターネット回線にデジタルデータとして音声を乗せることでリアルタイムな通話を実現したIP電話は、他のインターネット通信と同様、悪意のあるユーザーに盗聴される危険にさらされている。一般のアナログ電話回線と異なり、回線上のデジタルデータは劣化しないため、より確実に通話の内容を聞き取られる可能性が高い。そこで通話データを暗号化する必要性があるが、コール音を鳴らして相手を呼び出している最中に、本発明の方式で共通鍵を伝送すれば、IP電話をかける度に共通鍵を変更することも可能であり、より盗聴の被害を避けることができる。
・Skype(登録商標)
音声の記録や再生の可能なPCなどで、リアルタイムな音声データの交信を実現したSkypeも、いわば私設IP電話の一種であり、当然盗聴の危険に晒されていることから、本アルゴリズムの適用範囲にあるといえる。
・ストリーミング配信
ライブ演奏の動画配信サービスなど、事前に契約した視聴者にのみ配信するストリーミングデータなどは暗号化するべきである。契約者が認証を済ませた後に本発明の方式で共通鍵を伝送することでデータが復号され視聴が可能になる。
【００２１】
図３は、本発明の別の実施形態に係るファイル管理システム（ファイルサーバーシステム）の構成を示す。図３において、ファイル管理システムは、ユーザー（クライアントＰＣ）とファイル管理用のサーバーと、少なくとも３台のストレージ・サーバーとで構成する。それぞれの装置は、ＬＡＮ，インターネット、公衆回線網、専用回線網等のネットワークを介して接続されている。
【００２２】
ファイル管理用サーバーは、後述する暗号化、分散化等の機能を担う制御部と、ネットワークを介してファイルを交換するための入出力部と、シード値ファイル、ファイルの分割数、また必要に応じて、分散ファイルの格納場所やファイル・サーバーに転送する前の分散ファイル等を保存するメモリ部とを有している。
【００２３】
制御部は、ユーザーファイル（平文ファイル、ここでは文書データ、画像データ、動画データ等を問わない）を所定量の乱数を用いて暗号化する暗号化手段、その暗号化されたファイルを所定数の分割ファイルに分割する分割手段、その分割ファイルを前記乱数を用いて再配置してファイルを分散化する分散化手段、及び、その分散化されたファイル（分散ファイル）をグループ分けして、対応するストレージ・サーバーに保存させる手段等を含む。
【００２４】
なお、この実施形態では、ファイル管理サーバーは、暗号化手段と分散化手段とを含むが、暗号化、分散化のそれぞれを専用サーバーに分担させてもよい。この場合、専用サーバーを統合したものが、ファイル管理サーバーとなる。
【００２５】
本実施形態では、暗号化のために真正乱数を利用するが、この真正乱数の生成方法は、例えば、ＲＰＧ（ランダムパルス発生器、モジュール化されているので以下において、ＲＰＧモジュールと称することもある）が利用される。ＲＰＧは、ＲＰＧ素子部分と電子回路部分とから成り、前者は、例えば、原子核の自然崩壊にα粒子を放出する放射体を含んだ溶液を適所（例えば専用のプレート）に滴下したコア部と、放出されたα粒子を受け止め電気信号に変化するセンサ（例えばフォトダイオード）部とが一体に組み合わされている。後者の電子回路はセンサの出力を波形整形及び／又は増幅等する。
【００２６】
このようなＲＰＧモジュールにおいては、α粒子が放出される確率は全く規則性がないから、ある瞬間にパルスが発生する可能性は常に不定である。つまり、あるパルスから次のパルスが発生するまでの経過時間を監視することによって乱数（この例では真正乱数）が得られる。
【００２７】
次に本発明に係るファイルの暗号化、非識別化（分散化）について説明する。
まず、本発明のシステムでは、その実施の過程において様々なファイルが生成、更新されるので、これらのファイルの意義について、予め説明しておく。
【００２８】
（１）ユーザーファイル
システムの利用者（ユーザー）が用意しているファイルのことを指す。利用者はこのファイルをシステムへアップロード（預ける）もしくはダウンロード（引き取り）できるものとする。特に暗号化に関する説明においては、このユーザーファイルを便宜上「平文ファイル」と表現することもある。
【００２９】
（２）シード値ファイル
ＲＰＧモジュール等を利用して生成された一定量の真正乱数を記録したファイルである。ユーザーファイルはこのシード値ファイルの内容（乱数）を利用して暗号化され、次いで分割、分散化され、そしてグループ分けされて、対応するストレージ・サーバーに保存される。
本来は暗号用擬似乱数を量産するための種（Seed）として扱われるため、この呼称が付いたのだが、本システムでは、このシード値ファイルの内容（乱数）に従って分散化される。単に「シードファイル」と表現する場合もある。
なお、分散管理のみで暗号化処理を施さないシステムも構築可能であり、その場合は、真正乱数ではなく擬似乱数でも構わない。ただしその擬似乱数は一様性のある高品質なものに限られる。
【００３０】
（３）暗号化ファイル
シード値ファイルを初期値として暗号用擬似乱数を量産し、その値でもってユーザーファイルの内容を暗号化した結果を記録したファイルである。この暗号化ファイルの時点で、第三者には元の内容が判読不可能となり、初期段階の安全性を確立している。
【００３１】
（４）分割ファイル
暗号化ファイルを規定数に分割した、個々のファイルを指す。
この分割ファイルの時点では、まだ各分割ファイルの順列と元の暗号化ファイルが一致しているため、単純に順番通りに連結すれば、暗号化ファイルへ復元することが可能である。
【００３２】
（６）分散ファイル
シード値ファイルの内容（乱数）に基づいて、分割ファイルの順列（配置）を入れ替えたものが、この分散ファイルである。分散ファイルは、最終的にストレージ・サーバーに保存される。
各ファイルの内容そのものは分割ファイルのそれと同じものであるが、論理的な説明では分割ファイルと分散ファイルは区別して扱う。
【００３３】
図４は、ユーザーから、本実施形態に係るファイル管理システムにファイルを分散保管する場合の作業手順を示すフローチャートを示す。なお、本発明では、分割＋分散の組み合わせだけでもファイルの秘匿性は充分に確保できるので、必ずしも暗号化処理を必要としないが、ここに示す実施形態ではファイルの暗号化処理を行っている。
【００３４】
図４において、ユーザーは使用する端末（ＰＣ）をファイル管理サーバーに接続してファイル（ユーザーファイル）をアップロードし、管理サーバーはユーザーファイルを受信する（ステップＳ１）。
【００３５】
管理サーバーは、ＲＰＧモジュールから所定容量（例えば1024バイト）の真正乱数を取得し、ヘッダー情報を付加する等してシード値ファイルを作成し、これをメモリに保存する（ステップＳ２）。
【００３６】
管理サーバー上でユーザーファイルを暗号化する（ステップＳ３）。暗号化処理の詳細は後述する。なお、管理サーバーは、ユーザーファイルとシード値ファイルの関係をデータベースに記録する。
【００３７】
暗号化の済んだファイル（暗号化ファイル）を所定数のファイル（分割ファイル）に分割する（ステップＳ４）。詳細は後述する。
【００３８】
次いで、分割ファイルを再配置（並び替え）して分散ファイル化する（ステップＳ５）。詳細は後述する。
【００３９】
そして、分散ファイルを所定の基準に従いグレープ分けしてストレージ・サーバーに保存する（ステップＳ６及びＳ７）。詳細は後述する。
【００４０】
その後管理データベースを更新し（ステップＳ８）、終了する。
【００４１】
暗号化処理
本発明では、暗号化処理はオプションであるが、セキュリティを重視するシステムでは採用することが望ましい。暗号化処理の一例を以下に示す。
【００４２】
ユーザーファイルと同じ容量の擬似乱数を生成し、ユーザーファイルと擬似乱数との間で、１バイトごとに一対一で排他的論理和（XOR）を求めることで、ユーザーファイルを暗号化し、その暗号化ファイルを保存する。
【００４３】
擬似乱数の生成にはＺＲＧ（帯分割アルゴリズム）方式が望ましい。このアルゴリズムは、ある一定のバイト数の乱数を元に、それを伸張して希望するバイト数の擬似乱数を生成するものである。なお、この伸張前の初期乱数をシード乱数と呼ぶ。以下、二分割を例に簡単に説明する。
【００４４】
シード乱数が1024バイトであったとすると、半分の512バイト目で二つのブロックに分ける。以降、前半の512バイトをＡブロック、後半をＢブロックとする。
【００４５】
ＡブロックとＢブロックの１バイト目同士、２バイト目同士といった具合に、それぞれの排他的論理和（XOR）を求めることで新たに512バイトの演算結果得られる。これをＣブロックとする。この演算は和の演算であるから、ＡブロックとＢブロックの持つ不確実性はＣブロックでも維持される。
【００４６】
新たに求めたＣブロックをそのままＡブロック＋Ｂブロックの末尾に連結するのではなく、ブロックの順序を入れ替え、例えばＣブロック＋Ｂブロック＋Ａブロックのように連結する。
【００４７】
1024バイトのシード乱数から1Ｍバイト(1048576バイト)の擬似乱数を求めるには、上述した処理を18回繰り返す。なお、18回繰り返した結果は、1513342バイトであるが、1048576バイト目の途中から最後までの464766バイトは切り捨ててよい。
【００４８】
なお、シード乱数を三分割することも、また四分割以上にすることもできる。例えば三分割（ブロックがＡ，Ｂ，Ｃの三つあるとする）では、ＡブロックとＢブロックのXORもＢブロックとＡブロックのXORも同じ結果になるので、どちらか一つの組み合わせしか使えない。他のブロックについても、同様なので、使えるブロックのXORの組み合わせは、ＡとＢ、ＢとＣ、ＡとＣであって、それぞれのXORの結果をＤブロック、Ｅブロック、Ｆブロックとすると、合計６ブロックとなり、Ａ，Ｂ，Ｃのブロックの丁度２倍となる。
【００４９】
分割数が多くなると一回の処理は複雑になり、分割数が少ないと繰り返す回数が多くなるので、本アルゴリズムを実装する環境に合わせて判断すればよい。
【００５０】
ＺＲＧ方式では、真正乱数をシード値(シード乱数、乱数の初期値）として与えることで、そのシード値の持つエントロピー（＝不確定性）を維持したまま希望する容量の擬似乱数を得ることができる。その擬似乱数の性質から、ただ単純にXORを計算するだけで充分に暗号化が成り立つ。
【００５１】
シード値は既にシード値ファイルとして生成済みであるため、複号化の際には、これを初期値として暗号化の際に使用した同じ擬似乱数を生成することができるため、それと暗号化ファイルとの間でXORの計算することで、簡単に元のユーザーファイルにする（復号化）ことができる。
【００５２】
なお、ファイルの容量が極端に少ない場合には、後述する分散化が難しくなるので、次のようにして、ファイルの容量をその下限値まで切り上げることができる。
【００５３】
即ち、ＺＲＧ方式の暗号化ファイルでは、ヘッダー情報とフッター情報を付加する機構があるため、その情報に矛盾が無ければ、末尾にダミーデータを付加しても暗号化ファイルとして破綻しない。もし下限値が64キロバイトで、ユーザーデータが32キロバイトであった場合、ヘッダー情報に正しく「32キロバイトのデータである」ことが記述してあれば、ダミーデータを32キロバイト弱用意して付加して、暗号化ファイル全体の容量を64キロバイトとして保存しても、正しく復号化が可能である。なお、ＺＲＧ方式については、同じ出願人の特願２００７―１９０５８５号においても言及している（ただし、ZRGとの名称は使用していない）。
【００５４】
分割処理
分割ファイルを作成する方法には、例えば、図５ａ及び図５ｂに示す方法が考えられる。図５ａの方法では、単純に元のファイル（暗号化処理されていれば暗号化ファイル）の先頭から、順番に分割容量分だけ均等に切り出して保存する。このとき切り出したファイルを命名規約に従って連番ファイルとして扱う。分割元ファイルの名前が“sample.erg”で、容量が１メガバイトであれば、分割ファイルは“sample_00.erg”、“sample_01.erg”、“sample_02.erg”、“sample_03.erg”・・・、という名前で、各々64キロバイトのファイルとなる。
【００５５】
このとき、元のファイル容量を分割数で割れば、分割後のおおよその容量が求められる。例えば16分割の場合は、余りを考慮し15で割って容量を求め、15個の分割ファイルを切り出して、余りを16番目のファイルとする。
【００５６】
図５ａの単純な分割方式は、セキュリティ上問題がある。即ち、分割前のファイルが先に暗号化（本発明では、暗号化処理はオプションである）されていいないファイルであった場合、たとえ分割したとしても、断片的ではあるが、その内容を窺い知ることができてしまう。
【００５７】
そこで、より安全性の高い分割方式として図５ｂの分割方法が考えられる。この分割方式は、トランプのカードを配る場合に似ている。即ち、トランプを配るときのように、元のファイルの先頭から、所定のバイト単位（トランプのカード一枚に対応）で配っていけば、分割後のファイルは、分割数に応じた数量だけ、所定のバイト単位で飛び飛びに集められた内容となっている。従って、例え分割ファイルの内容が第三者に漏洩したとしても、その第三者は内容を理解することはできないであろう。特に日本語は２バイトコードで扱われているので、その上位バイトと下位バイトが分断されて各分割ファイルに保存された場合は、第三者が分割後のファイルを見たとしても判読ができなくなるであろう。
【００５８】
非識別化処理（分散処理）
分割ファイルの段階では、そのファイル名に含まれる連番順（並び順）に分割元のファイルと一対一で対応しており、前述の例でいうと、“sample_00.erg”、“sample_01.erg”、“sample_02.erg ”、“sample_03.erg”・・・を順番通りに連結すれば、元の“sample.erg ”に戻せることになる。これはセキュリティ上問題であるので、分割ファイルを再配置し、並び順通りに連結したとしても元には戻らないようにする。かかる処理を分散処理という。
【００５９】
以下、分割数が１６であって、分割ファイルが４×４の行列を構成しているものと考え、かかる「行列」を使用して分割処理について説明する。なお、分割数はこれに限定されない。分割数が多ければセキュリティは向上するが、それだけ分割処理、分散処理は複雑なものになる。分割数は本システムの利用目的、コスト等を勘案して決めればよい。下記の行列において、行列の成分である数字は、分割ファイル名を示している。
【００６０】
（１）初期段階では、図６に示すように、分割ファイルを、行及び列に順番通り格納する。
（２）シード値ファイルから乱数（真正乱数又は擬似乱数）を取得し、その数だけ、行列の外側を構成する行及び列を右周りに回転する。仮に乱数を１とすると、結果は図７の通りとなる。
なお、本発明では、暗号化処理を経ないで分散処理を行うシステムを構築することが可能であり、その場合は、シード値ファイルの内容は、真正乱数ではなく擬似乱数でも構わない。ただしその擬似乱数は一様性のある高品質なものであることが望ましい。
（３）再びシード値ファイルから乱数を取得し、その数だけ、図７に示す行列の内側を構成する行及び列を左周りに回転する。仮に乱数を１とすると、結果は、図８に示す通りとなる。
なお、上記の処理（２）、（３）において、回転自体は単純で規則性の高いものだが、回転数は、乱数に基づくので、分散結果は予測不能である。
【００６１】
分散処理により、分割ファイルは、5-1-2-3-9-7-11-4-13-6-10-8-14-15-16-12という順番に並び替えられた（再配置された）ことになる（分散処理により再配置されたファイルを分散ファイルと称す）。この順番は、ファイル自体にも、ストレージ・サーバーにも記録されないため、分散ファイルから元のファイルを予測することはできない。
【００６２】
しかし管理サーバーでは、分割数やシード値ファイルの内容を記憶してあるため、同じ手順で、ただ回転方向を逆にするだけで、元の分割ファイルの順番を再現することが可能である。
【００６３】
なお、上述した分散処理は、行列を回転させることによる並び替えを行ったが、これは例示であり、本発明ではこれに限定されるものではない。要は、シード値ファイルの内容（乱数）を利用して分割ファイルの再配置を行えばよい。
【００６４】
分散ファイルのグループ化とストレージ・サーバーへの転送
実際に分散ファイルをストレージ・サーバーに配分するためには、例えば、次の様に行えばよい。
例えば、分散ファイルが16個あり、これを保管するサーバーが３台あるとすると、並び替えの済んだ分割ファイル（分散ファイル）を、一部重複させながら、図９に示すように、３つのグループに分け（分散ファイルの数は８個又は１２個）、それぞれを３台のサーバーで保管する。なお各グループのファイル名は、分散ファイルのそれである。
【００６５】
それぞれのグループにおいて、欠落しているファイルと重複しているファイルを考察すれば分かるように、３台のサーバーのうち最低２台のサーバーからファイルを取得すれば、全ての分散ファイルを揃え、元のファイルを復元することができる。しかし、例えば、1台のサーバーのファイルが不正に取得されたとしても、分散ファイルの全ては揃わず、元のファイルを復元することはできない。
【００６６】
なお、分散ファイルのグループ化は管理サーバー内で行われるのが一般的であろうから、管理サーバー内のメモリのディレクトリ（複数）ストレージ・サーバー（複数）に見立て、それぞれのディレクトリに、グループ化された分散ファイルを保存し、その後、実際のストレージ・サーバーへ転送させるようにしてもよい。
【００６７】
16個の分散ファイルを、一部重複させながら、図１０に示すように４つのグループに分け（分散ファイルの数は１２個）、それぞれを４台のサーバーで保管させることも可能である。
【００６８】
この場合も、最低２台のサーバーからファイルを取得できれば、全ての分散ファイルを知ることができる。また、例え、1台のサーバーのファイルが不正に取得されたとしても、分散ファイルの全ては揃わず、元のファイルを復元することはできない。
【００６９】
なお、分散ファイルの個数、サーバーの数、各サーバーに割り当てるファイルの個数などは、秘密分散法（例えばNK法（（ｋ，ｎ）閾値秘密分散法））等公知の方法を利用して決めることが可能である。
【００７０】
復元化処理
原則として、上述したファイルの分割、分散、グループ化・転送の手順を逆にたどる。ただし、ファイルをサーバーに転送する場合は、３台あるファイル・サーバーの全てにファイルを記録しなければならないが、復元の場合には３台あるサーバーの内、２台にアクセスすればよい。
【００７１】
分散・管理システムの応用
本システムは、ファイルを分割、分散する制御部とサーバーとのアクセスを行う入出力部とを別々のモジュールにして実装できるため、比較的小規模なシステムにも応用できる。
【００７２】
例えば、金融機関で採用が進んでいる指紋や静脈による個人認証システムは、その指紋などの認証用画像データを一括管理するので、悪意のある人間によって改竄される可能性が残っている。そこで本システムを利用して、認証データを管理サーバーと登録者の持っているカードに分散・管理すれば、成りすましなどの偽造行為を防ぐことが可能になる。
【図面の簡単な説明】
【００７３】
【図１】本発明の一実施形態に係るファイル分割処理システムの梗概を示す構成図である。
【図２】図１のファイル分割処理システムにおけるファイルの分割・非識別化の原理を示す説明図である。
【図３】本発明の別の実施形態に係るファイル管理システムの梗概を示す構成図である。
【図４】図３のファイル管理システムにおいて、ファイルを分散保管する場合の一例についてその作業手順を示すフローチャートである。
【図５ａ】ファイルを分散保管する場合の、ファイルの分割処理の一例を示す説明図である。
【図５ｂ】ファイルを分散保管する場合の、ファイルの分割処理の別の一例を示す説明図である。
【図６】ファイルを分散保管する場合の、分割ファイルの非識別化処理（分散処理）の一例についてその手順を示す説明図である。
【図７】ファイルを分散保管する場合の、分割ファイルの非識別化処理（分散処理）の一例についてその手順を示す説明図である。
【図８】ファイルを分散保管する場合の、分割ファイルの非識別化処理（分散処理）の一例についてその手順を示す説明図である。
【図９】ファイルを分散保管する場合の、分散ファイルのグループ化を説明する図である。
【図１０】ファイルを分散保管する場合の、分散ファイルの別のグループ化を説明する図である。
【図１】
2009122731.tif 000003
【図２】
2009122731.tif 000004
【図３】
2009122731.tif 000005
【図４】
2009122731.tif 000006
【図５ａ】
2009122731.tif 000007
【図５ｂ】
2009122731.tif 000008
【図６】
2009122731.tif 000009
【図７】
2009122731.tif 000010
【図８】
2009122731.tif 000011
【図９】
2009122731.tif 000012
【図１０】
2009122731.tif 000013