(57)【要約】【課題】データベースの検索性能を低下させずに冗長分散によって機密データのセキュリティを向上させる。【解決手段】管理用コンピュータ３と、このコンピュータ３にネットワーク接続され、物理的に離間した複数のエリアに夫々設置されたｎ台（ｎ≧３）のサイト４ａ〜４ｎとを備えたデータ管理システム１であって、管理用コンピュータ３が、管理対象の機密データをｎ０種類（ｎ>ｎ０≧２）のサブデータ群に冗長的に分割する分割機能と、分割したサブデータ群を任意のｎ０台のサイト４に夫々格納する断片化機能と、ｎ−ｎ０台の他のサイトに空白データを格納する空白データ格納機能とを備えた。【選択図】  図１
2006228202.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと、このホストコンピュータにネットワーク接続され、物理的に離間した複数のエリアに夫々設置されたｎ台（ｎ≧３）の記憶装置とを備えたデータ管理システムによって機密データを管理する方法であって、
前記ホストコンピュータが、
管理対象の機密データをｎ０種類（ｎ>ｎ０≧２）のサブデータ群に冗長的に分割する分割工程と、
分割したサブデータ群を任意のｎ０台の記憶装置に夫々格納する断片化工程と、
ｎ−ｎ０台の他の記憶装置に空データ若しくはＮＵＬＬデータ（以下「空白データ」と称する）を格納する空白データ格納工程と
を実行することを特徴とする方法。
【請求項２】
請求項１の方法であって、
さらに、前記ホストコンピュータが、
機密データの閲覧を許可されたユーザから、閲覧対象の機密データの検索条件を取得して閲覧要求を受け付ける閲覧要求受付工程と、
取得した検索条件に従ってｎ−１台の記憶装置から冗長配置されたサブデータ群を検索し、これらのサブデータ群をマージして閲覧対象の機密データを復元しユーザに対して出力する機密データ出力工程と
を実行することを特徴とする方法。
【請求項３】
請求項２の方法であって、
前記出力工程は、検索したサブデータ群から空白データを除外してマージするものであることを特徴とする方法。
【請求項４】
請求項２の方法であって、
前記分割工程は、サブデータ群を所定のアルゴリズムで夫々暗号化する暗号化工程を備え、
前記機密データ出力工程は、記憶装置から検索されたデータ群を夫々復号化する工程を備えた
ことを特徴とする方法。
【請求項５】
請求項１の方法であって、
さらに、前記ホストコンピュータが、
１以上の記憶装置（Ａ）に障害が発生した場合に、その記憶装置（Ａ）に格納すべき機密データの追加、修正及び削除の情報（更新情報）を格納する更新情報格納工程と、
前記記憶装置（Ａ）が復帰した場合、若しくは代替の記憶装置（Ａ'）が設置された場合に、格納された更新情報を他の記憶装置（Ｂ、Ｃ・・・）に同期させて当該記憶装置（Ａ又はＡ'）に書き込む更新情報書込工程と
を実行することを特徴とする方法。
【請求項６】
請求項１の方法であって、
この方法は、前記記憶装置のうちの１つを備えたホストコンピュータが実行するものであることを特徴とする方法。
【請求項７】
ホストコンピュータと、このホストコンピュータにネットワーク接続され、物理的に離間した複数のエリアに夫々設置されたｎ台（ｎ≧３）の記憶装置とを備えたデータ管理システムであって、
前記ホストコンピュータが、
管理対象の機密データをｎ０種類（ｎ>ｎ０≧２）のサブデータ群に冗長的に分割する分割手段と、
分割したサブデータ群を任意のｎ０台の記憶装置に夫々格納する断片化手段と、
ｎ−ｎ０台の他の記憶装置に空データ若しくはＮＵＬＬデータ（以下「空白データ」と称する）を格納する空白データ格納手段と
を備えたことを特徴とするシステム。
【請求項８】
請求項７のデータ管理システムであって、
さらに、前記ホストコンピュータが、
機密データの閲覧を許可されたユーザから、閲覧対象の機密データの検索条件を取得して閲覧要求を受け付ける閲覧要求受付手段と、
取得した検索条件に従ってｎ−１台の記憶装置から冗長配置されたサブデータ群を検索し、これらのサブデータ群をマージして閲覧対象の機密データを復元しユーザに対して出力する機密データ出力手段と
を備えたことを特徴とするシステム。
【請求項９】
請求項８のデータ管理システムであって、
前記出力手段は、検索したサブデータ群から空白データを除外してマージするものであることを特徴とするシステム。
【請求項１０】
請求項８のデータ管理システムであって、
前記分割手段は、サブデータ群を所定のアルゴリズムで夫々暗号化する暗号化手段を備え、
前記機密データ出力手段は、記憶装置から検索されたデータ群を夫々復号化する手段を備えた
ことを特徴とするシステム。
【請求項１１】
請求項７のデータ管理システムであって、
さらに、前記ホストコンピュータが、
１以上の記憶装置に障害が発生した場合に、その記憶装置に格納すべき機密データの追加、修正及び削除の情報（更新情報）を格納する更新情報格納手段と、
前記記憶装置（Ａ）が復帰した場合、若しくは代替の記憶装置（Ａ'）が設置された場合に、格納された更新情報を他の記憶装置（Ｂ、Ｃ・・・）に同期させて当該記憶装置（Ａ又はＡ'）に書き込む更新情報書込手段と
を備えたことを特徴とするシステム。
【請求項１２】
請求項７のデータ管理システムであって、
前記ホストコンピュータが、記憶装置のうちの１つを備えたことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータと、このホストコンピュータにネットワーク接続され、物理的に離間した複数のエリアに夫々設置された複数の記憶装置とを備えたデータ管理システム及びこのシステムによって機密データを管理する方法に関する。
【背景技術】
【０００２】
従来より、地方自治体や企業が保有する個人情報などの機密情報を格納したデータベース（ＤＢ）の管理・運営を専門の外部団体や民間企業に委託することが多い。この場合に、その委託先内部での情報漏洩やネットワークを通じた外部からのハッキングなどの不正行為を防止するため、機密データを暗号化しておくことが広く行われている。
【０００３】
また、地震や津波などの自然災害の発生や通信ネットワークの障害などによって前記機密データを管理するサーバがダウンした場合に、行政サービスの提供や企業の基幹業務が一時的に停止したり、機密データが破損することを防止するため、複数エリアに設置したサーバに夫々同じデータを保存しておくいわゆる二重化（多重化、冗長分散）が採用されることが多い。
【０００４】
このような二重化管理方法として、例えば以下の特許文献に記載されたものが参考になる。
【０００５】
【特許文献１】特開平１１−１０２２６２号公報
【特許文献２】特開２０００−７６２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記したデータの暗号化は、検索に際して全ての若しくは必要なデータを復号化する必要があるため、検索に時間がかかりサーバや通信ネットワークにも過大な負担を与えることになる。
【０００７】
また、二重化（冗長分散）を採用する場合には、想定される自然災害の発生エリアやそれらの被害が及ぶエリアを考慮して広域で分散させる必要があるため、データファイル単位の操作ではシステム全体の性能低下が懸念される。
【０００８】
一方、従来から、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）によるデータの冗長分散が実現されている。しかし、従来のＲＡＩＤは、データベースではなくファイルのレベルで処理するため、ファイルにアクセスすれば全データを読み取れる事になり機密保護の対策としては有効ではない。また、ＲＡＩＤは同一拠点での冗長分散を前提にしており、ネットワークを経由すると実用的な性能を得られないため、広域での分散管理には不向きである。いわゆるミラーリング（ＲＡＩＤ−１）においても同様の問題がある。
【０００９】
さらに、物理ファイルを暗号化する仕組みも存在するが、ファイル全体を復号化してメモリ上に保存しないと個々のデータを処理できず、結果的にファイル単位で暗号化する必要があるため、個々のレコードや項目を扱うデータベースには不向きである。
【００１０】
本発明は、このような課題を解決するためになされたもので、データベースの検索性能の低下を最小限に抑えて冗長分散によって機密データのセキュリティを向上させることができるシステム及び方法を得ることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の主要な観点によれば、ホストコンピュータと、このホストコンピュータにネットワーク接続され、物理的に離間した複数のエリアに夫々設置されたｎ台（ｎ≧３）の記憶装置とを備えたデータ管理システムによって機密データを管理する方法であって、前記ホストコンピュータが、管理対象の機密データをｎ０種類（ｎ>ｎ０≧２）のサブデータ群に冗長的に分割する分割工程と、分割したサブデータ群を任意のｎ０台の記憶装置に夫々格納する断片化工程と、ｎ−ｎ０台の他の記憶装置に空データ若しくはＮＵＬＬデータ（以下「空白データ」と称する）を格納する空白データ格納工程とを実行することを特徴とする方法が提供される。
【００１２】
また、本発明の第２の主要な観点によれば、ホストコンピュータと、このホストコンピュータにネットワーク接続され、物理的に離間した複数のエリアに夫々設置されたｎ台（ｎ≧３）の記憶装置とを備えたデータ管理システムであって、前記ホストコンピュータが、管理対象の機密データをｎ０種類（ｎ>ｎ０≧２）のサブデータ群に冗長的に分割する分割手段と、分割したサブデータ群を任意のｎ０台の記憶装置に夫々格納する断片化手段と、ｎ−ｎ０台の他の記憶装置に空データ若しくはＮＵＬＬデータ（以下「空白データ」と称する）を格納する空白データ格納手段とを備えたことを特徴とするシステムが提供される。
【００１３】
上記のような構成によれば、データベースを冗長的に断片化させる方法により、機密情報の漏洩を有効に防止することができる。すなわち、データベース全体ではなく、個々のレコードや項目を考慮して冗長分散を行うため、一部の記憶装置に対する不正アクセスなどでファイルを盗聴されても意味のあるデータを取得されることはなく、機密データのセキュリティを向上させることができる。
【００１４】
また、データの断片を物理的に離間した広域の複数拠点に配置することで、災害や通信事故などの障害に対する耐性を確保するようにした。さらに、複数のデータベース運用主体が、広域で相互に連携しながら運用するデータベースシステムにおいて、小単位のデータを複数の拠点に配置したサーバに夫々格納し、且つそれに合わせて検索等を行うため、ネットワーク経由に依存する性能劣化を低減できる。
【００１５】
また、本発明の一の実施形態によれば、さらに、前記ホストコンピュータが、機密データの閲覧を許可されたユーザから、閲覧対象の機密データの検索条件を取得して閲覧要求を受け付ける閲覧要求受付工程と、取得した検索条件に従ってｎ−１台の記憶装置から冗長配置されたサブデータ群を検索し、これらのサブデータ群をマージして閲覧対象の機密データを復元しユーザに対して出力する機密データ出力工程とを実行するものであり、前記分割工程は、サブデータ群を所定のアルゴリズムで夫々暗号化する暗号化工程を備え、前記機密データ出力工程は、記憶装置から検索されたデータ群を夫々復号化する工程を備えることが好ましい。
【００１６】
このような構成により、レコードや項目単位で暗号処理を行うことで、必要最小限の暗号化および復号化だけで済み、少ないメモリで処理が可能である。
【発明の効果】
【００１７】
本発明によれば、データベースの検索性能の低下を最小限に抑えて冗長分散によって機密データのセキュリティを向上させることができるシステム及び方法を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面に基づき説明する。  
図１は、本発明の一実施形態のネットワーク構成図である。符号１で示すデータ管理システムは、企業や自治体などのユーザ（委託者）２から機密データの管理を委託された受託者（管理センタ等）の管理用コンピュータ３（ホストコンピュータ）と、この管理用コンピュータ３と公衆回線・専用回線などのネットワークを介して接続される複数のサイト４ａ、４ｂ…４ｎとによって構成される。複数のサイト４ａ…は、何れも機密データを格納する本発明に係る記憶装置が組み込まれたデータベース（ＤＢ）サーバであり、物理的に離間した複数のエリアに設置される。
【００１９】
前記管理用コンピュータ３は、ユーザ２の端末５とも公衆回線・専用回線などのネットワークを介して接続可能である。ユーザ２には、保有する機密データの管理を管理センタ等に委託した本人と、この本人から一部又は全ての機密データの閲覧を許可された閲覧者（他の自治体や政府機関の関係者、自治体の住民等）も含む。
【００２０】
サイト４ａ…の設置数ｎは、後述するように、機密データの冗長分割や空白データを含めた断片化処理を行うことから３以上に設定される。以下の説明においては、主として、４台のサイトを設置し（ｎ＝４）、断片化数（Ｆ：ｎ−ダウンを許容できるサイト数（１台））を３に設定した例を説明する。すなわち、以下の例では、４台のサイトのうち１台が通信障害等でダウンしても、他の３台が正常に稼動していれば通常の運用を継続できる。
【００２１】
なお、このサイト４ａ…の一部又は全部を、単体の記憶媒体で構成したり、前記アプリケーションサーバに対するクライアント端末で構成することもできる。また、サイト４ａ…の１つを管理用のコンピュータ３に備えても良い。サイト４ａ…を設置する複数のエリアは、地震などの災害やユーザ２の事業活動エリア、機密データの種別や属性等（機密保持の程度、個人情報か企業の営業秘密か、データ量、情報照会の頻度や想定される照会者の所在地、通信環境など）を考慮して、市町村などの都道府県内の複数エリアや、都道府県単位、地方単位（東北地方と関東地方と近畿地方など）で設定される。
【００２２】
管理用コンピュータ３は、主として以下の各処理を実行する。  
（１）基本データ管理機能
以下の処理を実行する前提として、ユーザ情報の管理、サイト４の管理・監視を行う。
（２）機密データ保存機能
ユーザ端末５からオンライン又はオフラインで機密データを取得した場合に、ユーザ認証、取得したデータの暗号化及び断片化、サイト４へのデータ送信、の各処理を実行する。
（３）機密データ復元・出力機能
ユーザ端末５から検索条件を取得して検索依頼を受付けた場合に、ユーザ認証、検索条件に従ってサイト４から対象データを検索及びデータを取得、復号化及び元データの復元（マージ）、ユーザ端末５へのデータ出力、の各処理を実行する。
（４）障害対応機能
災害や通信事故等によって特定のサイト４が機能しなくなった（ダウンした）場合や、不正アクセス、ウィルスの侵入などが発見された特定のサイト４を一時的にネットワークから切断した場合に、機密データに対してダウン中に実行された処理（レコードの追加・削除・更新）の履歴情報を蓄積し、当該サイト４が復帰した場合に、履歴情報に基づいて、復帰したサイト４と正常に機能していた他のサイト４とのデータを同期させる。
【００２３】
これらの各処理（機能）は、管理用コンピュータ３のハードウェア及びこのコンピュータの記憶装置（ＨＤＤやＲＯＭなど）にインストールされるソフトウェアが協働することで実現される。具体的には、このコンピュータ３に内蔵された図示しないＣＰＵにシステムバスを介してＲＡＭ、ＲＯＭやＨＤＤなどの記憶装置及び入出力インタフェース（Ｉ／Ｆ）が接続され、この入出力Ｉ／Ｆに、ＣＲＴディスプレイなどの出力装置、キーボードやマウスなどの入力装置、モデムなどの通信デバイス及びＣＤ−ＲＯＭや、ＤＶＤ−ＲＯＭなどのリムーバブル記録媒体用のドライブが夫々接続されて構成される。本発明の機能を実現するソフトウェアプログラムはＨＤＤやＲＯＭなどの記憶装置にインストールされる。このような構成において、管理センタ（受託者）のオペレータが入力装置を操作して各種の指令（コマンド）を入力したり、ユーザ２がユーザ端末５から通信回線を介してコマンドを送信すると、このソフトウェアプログラムがＣＰＵによってＲＡＭ上に呼び出されて実行されることで、ＯＳ（オペレーションシステム）と協働してこの発明の機能を奏するようになっている。上記プログラムはリムーバブル記録媒体から導入することもできる。
【００２４】
次に、本実施形態の上記の各処理を具体的に説明する。  
まず、このアプリケーションプログラムを実行する際に、個人認証等でユーザ２（端末５）を特定してログインを許可する。この時、アプリケーションは、HibernateなどのＯ／Ｒマッピング（Object Relatiolal Mapping）ツールを用いてＤＢを利用し、目的とするデータ構造に従って処理する。
【００２５】
また、ユーザ２（端末５）からデータの新規作成（レコードやカラムの追加等）の要求を受け付けた場合（ＤＢに書き込む場合）には、主キーを付与してレコードやカラム（以下「レコード」と総称する）を作成し、Ｏ／Ｒマッピングの内部で元となる機密データをｎ０種類（ｎ>ｎ０≧２：３種類）のデータ群に冗長的に分割し、任意のｎ０（＝３）台のサーバ（サイト）に夫々格納（断片化・冗長配置）する。この時、所定の暗号鍵で分割されたデータを夫々暗号化することが好ましい。残り（ｎ−ｎ０＝１台）のサーバには空白データを格納する。
【００２６】
各拠点（サイト）のＤＢは、冗長的に分割され暗号化されたデータだけを保存する。そのため、一部のサイトへの不正アクセスによってデータが漏洩しても、意味のあるデータとして復元することは不可能であり、機密データのセキュリティが向上する。
【００２７】
ここで、冗長配置は、例えば４サイト（ｎ＝４）の中で乱数を用いて任意の３サイト（ｎ０＝３）を選択する。４サイトから選ばれた任意の３サイトに異なる種類の断片化データ（何れも元データ）を夫々格納し、他の１サイト（ｎ−ｎ０＝１）には空データ若しくはＮＵＬＬ値（以下、空白データと称する）を格納する。このような分割データの冗長配置は、レコード単位や複数レコードを含む特定のグループ単位で行う。グループ単位で行う場合は、レコードとは別にグループ単位でシリアルナンバやＩＤ（主キー）を付与して管理するのが好ましい。
【００２８】
また、ユーザ２（端末５）からデータ更新要求を受け付けた場合は、ユーザ端末５から取得した検索条件に従って管理用コンピュータ３の記憶装置から対象データを検索する。その後、上記した新規作成と同様の操作によってデータの断片化・冗長配置を行い、複数（３台）のサイトに夫々異なる断片化データを記録し、他の１のサイトに空白データを記録する。すなわち、対象データを上書きして更新する。これにより、ユーザの指示に従って対象レコードが更新されると共に、対象レコードについて冗長分割されたデータ群の内容（データ長、重複する部分等）や空白データと断片化データとを格納するサイト４ａ・・・も変わるため、セキュリティがより向上する。
【００２９】
一部のデータ（レコード）を削除する場合は、管理用コンピュータ３がユーザ端末５から取得した検索条件に従って記録装置から対象データを検索し、この対象データについて全てのサイト３に対して削除を指示する。
【００３０】
一方、ユーザ２（端末５）から検索条件を取得してＤＢのデータ検索要求を受け付けた場合は、アプリケーションからの検索条件をＯ／Ｒマッピングの内部で分析し、各サイト４ａ・・・にアクセスして主キーに従って検索対象レコードについて必要最小限のデータを取得する。すなわち、４つのサイト４ａ〜４ｄにアクセスして対象データを取得し、その中に空白データが含まれている場合はそれを除外する。次いで、入手した２（空白データが含まれている場合）又は３（空白データが含まれてない場合）の断片化データを組み合わせてアプリケーションが求める検索対象データを復元する。この時、データが暗号化されている場合には所定の暗号鍵で復号してからデータを合成（復元）する。
【００３１】
ここで、通信障害やサイト側の障害などで１サイトが使えない場合でも、他の３サイトのデータを集積することで元データを復元することができる。すなわち、冗長配置を行っているため、収集したデータの１つが空データであっても、他の２サイトから取得したデータによって元データを復元できる。同様の理由で、全てのサイト４ａ〜４ｄが正常に稼動している場合でも、任意の３サイトからデータを取得すれば検索対象データを復元することができる。なお、空白データに代えてダミーデータを格納しておく場合や、何らかの理由で１サイトに誤ったデータが格納されている場合は、取得したデータの多数決によって元データを復元するようにしてもよい。
【００３２】
こうしたデータ分散化により、例えば、特定の１拠点（サイト）のデータを全て盗聴されても、データの意味を解釈することは不可能であり、不正アクセスや媒体の持ち出しなどによる漏洩を有効に防ぐことができる。また、自然災害などで１拠点のサーバがダウンした場合でも、他の拠点のデータを集積すると原データを復元できてデータベースの運用、すなわち各種のサービスを継続的に提供でき、データも喪失しない。また、受託者のコンピュータに不正アクセスされても、元データを格納していなければ機密データが漏洩することはない。サイトの１台が管理用コンピュータ３を兼用する場合でも、断片化及び暗号化された一部のデータしか保存していないので、同様に機密データのセキュリティは担保できる。また、断片化のパターンなども管理用コンピュータ３に保存していないので、この点でもセキュリティは万全である。
【００３３】
冗長構成分割／断片化して複数サイトに配置する際に、冗長化（例えば、４分割の断片を５台のサイトに多重配置）しているため、１サイトが災害等でダウンしても他のサイトから断片を集めることでレコードを再生できる。重ね合わせで１つのテーブル（ＴＢ）が出来上がる。イメージＴＢの各カラムが各サイトに分散されて配置されている。テーブルインサート時に各サイトＴＢにデータを分散化する。分散はランダムに行う。
【００３４】
上記の断片化と冗長化の例として、８ビット単位で行う例を以下に説明する。  
【００３５】
元データ：11001110
分割１：11001100（上位６ビットが有効な値）
分割２：00001110（下位５ビットが有効な値）
分割３：11000010（上位３ビットと下位２ビットが有効な値）
この例では、分割１〜３のうち、２箇所のデータのｏｒをとれば元データを復元できる。それ以外のサイトは、ＮＵＬＬとする。
【００３６】
また、複数バイトの場合は以下のように断片化と冗長化を行う。  
【００３７】
元データ11001110 11100101 10000001 ・・・
分割１ 11001100 11100100 1000000 ・・・
分割２ 00001110 00000101 0000001 ・・・
分割３ 11000010 11100001 1000001 ・・・
上記のように断片化と冗長化を行ったデータをＤＢに格納する場合は、以下のように、分割後さらに４ビット単位で任意のキャラクタに変換して格納するのが好ましい。なお、以下に示す「・」は、説明の便宜のために付したものであり、実際のデータには含まれない。
【００３８】
11001100・11100100・1000000
＝>1100・1100・1110・0100・1000・0000
＝>Ｃ・Ｃ・Ｅ・４・８・０
このような処理により、各サイトのどのＴＢを参照しても、そこだけでは完全なデータを見ることはできない。また、単なる断片化と異なり、冗長性をもった断片化を行っており、単純なミラーリングや、ＲＡＩＤとは異なる。また、断片化されたデータを共通鍵方式などで暗号化するのが好ましい。さらに、ＤＢ分散の挿入箇所は、図２に示すように、分散ＤＢを利用した任意のアプリケーションとＯ／Ｒマッピングとの間（フレームワーク層）に組み込むのが好ましい。
【００３９】
次に、本発明の各処理を具体的に説明する。以下においては、バイト単位で断片化した例を説明する。
【００４０】
１）暗号化処理
元データ
−>"元データ"＋"元の長さ"
−>"元データ"＋"ＡＡＡ"＋"元の長さ"（Ａの数は８の倍数になるように埋める）
−>暗号化
−>ＨＥＸ（hexadecimal）キャラクタに変換
この処理を具体的に示すと以下のようになる。
【００４１】
元のデータ："松本市渚3-12-10"・・・（１５バイト）
−>"松本市渚3-12-10"・・・（１５バイト）
−>"松本市渚3-12-100015"・・・（２３バイト）
−>"松本市渚3-12-10A0015"・・・（固定文字'Ａ'）（２４バイト）
−>"********--------++++++++"・・・(暗号化）（２４バイト）
−>"1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF"(ＨＥＸキャラクタに変換）（４８バイト）
以上のことから、暗号化後の長さ（Ｌ）は以下のように計算される。  
元の長さをＸとすると、
暗号化後の長さＬ＝Ｘ＋４＋（（Ｘ＋４）％８）、すなわち「（Ｘ＋４）％８」は８で割った余りとなる。
【００４２】
２）冗長断片化処理
暗号化及びＨＥＸキャラクタ変換されたバイト数の断片化を行う。ただし、８×ｎとなっていることが前提である。
【００４３】
この処理を具体的に示したのが図３（Ａ）〜（Ｄ）である。この図では、４種類のデータに分割したデータを５台のサイトに冗長配置する例である。
【００４４】
まず、図３（Ａ）のように、８バイト毎の分散パターンａ〜ｄを生成する。次に、図３（Ｂ）のように、パターンＡ〜Ｄ毎に、分散パターンａ〜ｄの空白部分をつめた（除外した）形に変換する。これにより、各パターンＡ〜Ｄには意味のあるデータのみが残る。この時、分散パターンａ〜ｄの断片化データをパターンＡ〜Ｄの何れに、どの順序で組み入れるか、は乱数によって夫々ランダムとする。
【００４５】
次に、図３（Ｃ）のように、バイト毎にパターンをかえる。図示の例は、３２バイトのデータの場合である。最後に、図３（Ｄ）のように、４つの断片化されたデータを１〜５のうちの任意の４サイトに書き込む。この例では、１サイトに空白データが書き込まれる。
【００４６】
８バイト単位で、断片化数、分散修復度（しきい値）をパラメータとして、バイト分散（マスクバイト）の形を決定する。この場合の最大断片化数は８断片となる。断片化による元データの増減は、分散サーバ数、断片化数、分散修復度（しきい値）で決定される。従って、最大で元の長さの７／８となる。冗長性と断片化のパターンは多数想定されるが、一例を図４に示す。図４（Ａ）に示すように、２サイトではミラーリングと実質的に同じ管理となるため本発明の対象外である。図４（Ａ）の各欄の「Ａ」が断片化されたデータを示している。このような断片化パターンは、システムの構築時に設定する。
【００４７】
例えば、断片化数を４（すなわち、８バイトを４断片化）、分散修復度を３（すなわち、データが存在する任意の最低３箇所から取得すれば元データが復元できる）、サイト数（分散サーバー数）を５とした場合、５サイトの中から４サイトのデータを取得すれば、データのある３サイトが必ずヒットする。従って、この場合のダウン可能な（ダウンを許容できる）サイト数は、１サイトとなる。
【００４８】
バイト分散パターンは８バイト目、１６バイト目、・・・で同じものは使用せず、ある決まった規則で、パターンを変えて使う（ランダムにはしない）のが好ましい。
【００４９】
このような分散パターンを別の観点で表したのが図４（Ｂ）である。この図の右欄の「運用可否」の意味は夫々以下の通りである。
「○」・・・システムを正常に運用できる。
「検索のみ」・・・前記障害対応機能による復帰処理が複雑になるため、データ検索（閲覧）のみ許容し、データ更新などの機能は停止するのが好ましい。
「更新可」・・・ダウンしたサイト以外のサイトだけに断片化データや空白データを格納することでシステム運用は継続できる。
「ＮＧ」・・・システム運用を継続できない（システム停止）。
【００５０】
このような運用可否の判断と、サイト数（Ｓ）、断片化数（Ｆ）、復元可能断片化数（Ｒ）、ダウンサイト数（Ｄ）及び稼動サイト数（Ｗ）との関係は以下の通りである。
【００５１】
Ｄ＝０の場合は、「○」
Ｄ≧１で、Ｆ−Ｄ≧Ｒの場合、Ｆ≦Ｗであれば、「更新可能」
Ｆ>Ｗであれば、「検索のみ」
Ｆ−Ｄ<Ｒであれば、「ＮＧ」
【００５２】
３）主キーの追加及び暗号化と冗長断片化分散
この処理では、まず、図５（Ａ）に示すように、ユーザ定義のテーブルに主キーを追加する。主キーは、元データを検索する際のキーとなるシリアルデータであり、断片化される全てのデータレコードに共通して付与される。
【００５３】
次に、図５（Ｂ）に示すように、暗号化を行う。この時、ブロック暗号により全ての暗号結果は８の倍数となる。但し、主キーは暗号化しない。次に、図５（Ｃ）に示すように、暗号化されたレコードをさらに冗長性分散させる。この時、主キーは分散させず、すべてのサーバ（サイト）に同じキーを書き込む。
【００５４】
以上のようにして複数のサイトに断片化されたデータの例を図６に示す。この例は、４つのサイトに３断片化したものを分散配置した場合である。この図から明らかなように、特定の又は全てのサイトに不正アクセスしてデータを取得しても、元データを復元することはできない。
【００５５】
４）検索方法アルゴリズム
上記のように分散管理されたデータを検索する際の検索方法アルゴリズムの例を図７に示す。このアルゴリズムのうち、１．全件検索（全件閲覧）においては、管理用コンピュータ３の記憶装置（ＴＢ）から全データの主キーを抽出し、複数（４台）のＴＢ１〜４、すなわちサイト４ａ〜３ｄから対象データを特定する。次に、全データをコラム単位でマージしてから、全てのレコードをマージするように設計されている。
【００５６】
また、２．条件検索（一部閲覧）においては、指定された検索条件（Ｆ１、Ｆ２）に従って管理用コンピュータ３の記憶装置から対象データを特定し、これを暗号分散させる。次いで、複数（４台）のＴＢ１〜４から夫々対象データを検索し、ヒットしたデータのＰｋ（Primary Key)をマージする。さらに、このマージした結果から、検索条件に合致したデータを探索する。
【００５７】
次に、図８を参照して、１以上のサイト４に災害や通信事故などが発生してダウンした場合の処理について説明する。以下の障害対応処理は、サイト４との通信状態を常時監視する管理用コンピュータ３の障害監視プログラム１０が、１以上のサイト４ｄがダウンしたことを検出した場合に実行される（ステップＳ１）。
【００５８】
具体的には、図８に示すように、管理用コンピュータ３若しくは別途用意した専用のアプリケーションサーバに更新監視プログラム１１（更新監視デーモン：daemonなど）を常駐させる。この更新監視デーモン１１によって、１以上のサイト４ｄがダウンしている間に管理用コンピュータ３が実行した機密データのＳＡＶＥ（追加）、ＵＰＤＡＴＥ（修正）若しくはＤＥＬＥＴＥ（削除）の各更新情報を更新履歴格納部１２に蓄積していく（ステップＳ２）。
【００５９】
ここで、更新情報は、対象データの追加・修正の場合は、何れも、処理対象レコードの主キーと処理種別（追加・修正等）と空データとで構成される。すなわち、対象データの追加・修正の場合、前記管理コンピュータ３の断片化処理プログラムは、冗長的に分割したデータ群を、正常に機能している複数のサイト４ａ〜４ｃと更新履歴格納部１２とに断片化させる際に、空白データを常に更新履歴格納部１２に格納し、他の複数のサイト４ａ〜４ｃに空白データ以外の分割データを格納する。一方、レコードの削除の場合は、更新情報は、削除対象レコードの主キーと処理種別（＝ＤＥＬＥＴＥ）とで構成される。
【００６０】
監視デーモン１１は、管理コンピュータ３の障害監視プログラム１０から障害発生サイト４ｄの復旧の通知を受け取った場合に（ステップＳ３）、更新履歴格納部１２からダウン期間中の更新履歴情報（処理対象レコードの主キーと処理種別等）を検索し（ステップＳ４）、復旧したサイト４ｄに書き込む（ステップＳ５）。これにより、復旧サイト４ｄが他のサイト４ａ〜４ｃと同期されてデータ管理システム１が正常に復帰する。なお、ダウンしたサイト４ｄに代えて代替サイト４ｄ’を新設する場合には、前記更新情報と、他のサイト４ａ〜４ｃに格納されたダウン前のデータの両方を当該代替サイト４ｄ’に格納させる。
【００６１】
このような障害対応処理により、１のサイト４ｄがダウンしてもデータ管理サービスを継続して提供できる。また、サイト４ｄが復帰した場合に、正常なサイト４ａ〜４ｃと復帰サイト４ｄとを停止して過去の全データを同期させる必要がないので、サービス提供を継続しながらシステム１の復帰処理を短時間で行うことができる。さらに、復帰サイト４ｄに書き込むデータは処理対象レコードの主キーと処理種別と空データであり、データ量が極端に少ないため、このサイト４ｄの復帰処理も瞬時に行うことができる。
【００６２】
なお、この発明は上記の実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【００６３】
例えば、サイト数（Ｓ）や断片化数（Ｆ）等は、図４の例によらず、機密データの種類や機密度、委託者と受託者との契約等によって種々変更可能である。暗号化や断片化、検索等のアルゴリズムも種々変更可能である。
【００６４】
また、上記の実施形態では、１の委託者から機密データの管理を委託された場合を示したが、複数のユーザ（委託者）の機密データを管理することも可能である。この場合は、ユーザ２や機密データ単位で閲覧権限を登録しておき、機密データの更新や閲覧に際して認証を実行するのが好ましい。
【図面の簡単な説明】
【００６５】
【図１】図１は、本発明の一実施形態のネットワーク構成図である。
【図２】図２は、ＤＢ分散の挿入箇所を示す概念図である。
【図３】図３は、本発明の一実施形態の処理工程を概念的に示す図である。
【図４】図４は、冗長性と断片化のパターンを示す図である。
【図５】図５は、主キーの追加及び暗号化と冗長断片化分散処理を説明するための図である。
【図６】図６は、本実施形態を適用したデータ管理の例を示す図である。
【図７】図７は、検索方法アルゴリズムの一例を示す図である。
【図８】図８は、障害対応機能を説明する概念図である。
【符号の説明】
【００６６】
１…データ管理システム
２…ユーザ
３…管理用コンピュータ（ホストコンピュータ等）
４…サイト（ＤＢサーバ、記憶装置）
５…ユーザ端末
１０…障害監視プログラム
１１…更新監視デーモン
１２…更新履歴格納部
【図１】
2006228202.tif 000003
【図２】
2006228202.tif 000004
【図３】
2006228202.tif 000005
【図４】
2006228202.tif 000006
【図５】
2006228202.tif 000007
【図６】
2006228202.tif 000008
【図７】
2006228202.tif 000009
【図８】
2006228202.tif 000010
【手続補正書】
【提出日】平成18年3月15日(2006.3.15)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2006228202.tif 000011