(57)【特許請求の範囲】
【請求項１】
複数の属性のデータから構成される複数の情報を前記属性毎に分割する分割手段と、
前記分割手段によって分割された各データに対して第１アルゴリズムに基づいてユニークな第１キーを割り当てる第１割当手段と、
前記第１割当手段によって割り当てられた各第１キーとこれらに各々対応するデータとが一対でランダムな位置に記憶される第１記憶部と、
前記複数の情報に対して第２アルゴリズムに基づいてユニークな第２キーを割り当てる第２割当手段と、
前記複数の情報を暗号化する暗号化手段と、
前記第２割当手段によって割り当てられた第２キーと前記暗号化手段によって暗号化済みのデータとが一対でランダムな位置に記憶される第２記憶部と、
前記第１及び第２キーと前記第１及び第２アルゴリズムと前記情報を構成するデータ間の紐付情報とが記憶されている第３記憶部と、
を備える、分散型データベースシステム。
【請求項２】
前記第３記憶部の記憶内容に基づいて前記情報を復元する手段を備える、請求項１記載の分散型データベースシステム。
【請求項３】
前記第２割当手段は、前記第１記憶部に記憶されている各データに対して前記第２アルゴリズムに基づいてユニークな第２キーを割り当てる、請求項１記載の分散型データベースシステム。
【請求項４】
前記暗号化手段は、前記第１記憶部に記憶されている各データを暗号化する、請求項１記載の分散型データベースシステム。
【請求項５】
前記情報のデータの読み出し命令時に、前記第２記憶部に記憶されている暗号化済みのデータを読み出す読み出し手段を備える、請求項１記載の分散型データベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを分散して管理する分散型データベース（以下、「ＤＢ」と称する。）の処理技術に係り、特に、セキュリティに改良を施した分散型ＤＢ処理装置、処理方法及び処理プログラムに関する。
【背景技術】
【０００２】
従来から、取り扱うデータを所定の基準で分割し、複数箇所に分散して記憶することにより、データ管理を行う分散型ＤＢシステムが存在する。このような分散型ＤＢシステムは、管理すべきデータ量が膨大になる場合などに用いられることが多い。
【０００３】
たとえば、一つの会社全体のデータ量が多いため、単一のサーバで処理するには、処理負担が過大となる場合がある。このような場合には、会社の支店や支社がそれぞれ通常必要とするデータに分割し、各支店や支社が管理するサーバに分散して管理させる。これにより、各サーバの処理負担を軽減できる。また、このように分散管理を行うことにより、通常時は、各サーバは、他のサーバへアクセスする必要がなくなるので、通信負荷とコストの軽減にもつながる。
【０００４】
ところで、近年の個人情報保護の要請から、個人情報を管理するＤＢからの情報漏洩を防止する必要性が高まっている。これに対処するために、上記の分散型ＤＢのしくみが利用できる。たとえば、特許文献１には、個人情報を、基本データ項目と、属性データ項目とに分割して格納し、特定のコードで関連付けることにより検索する記録方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２７２６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、個人情報の漏洩は、例えば、システムの外部からの侵入によって発生する場合ばかりではない。システムの内部の人間が、社内のネットワークから情報を盗み取る場合もある。かかる場合にも、個人情報が分散管理されている場合には、住所のみ、年齢のみといったように、情報の一部のみが漏洩しても、個人が特定できなければ、あまり問題は生じない。
【０００７】
もっとも、特許文献１の発明は、システムの利用権限を有する者が、分散管理された特定の個人情報を検索して結合しようとする場合、同一人の個人情報が内部のネットワークの経路上に、ほぼ同時に（短時間にまとまって）流れることになる。このため、個人情報の漏洩は限定的である。
【０００８】
そこで、本発明は、個人情報の漏洩防止を拡充することを課題とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の分散型データベースシステムは、
複数の属性のデータ（例えば、氏名、住所、年齢というデータ）から構成される複数の情報（例えば、個人情報）を前記属性毎に分割する分割手段（例えば、図１の分割部３４１等）と、
前記分割手段によって分割された各データに対して第１アルゴリズムに基づいてユニークな第１キーを割り当てる第１割当手段（例えば、図１の第１の付与部３４２）と、
前記第１割当手段によって割り当てられた各第１キーとこれらに各々対応するデータとが一対でランダムな位置に記憶される第１記憶部（例えば、図１の第１の記憶部１１０）と、
前記複数の情報に対して第２アルゴリズムに基づいてユニークな第２キーを割り当てる第２割当手段（例えば、図１の第２の付与部３４４）と、
前記複数の情報を暗号化する暗号化手段（例えば、図１の暗号化部３３２）と、
前記第２割当手段によって割り当てられた第２キーと前記暗号化手段によって暗号化済みのデータとが一対で記憶される第２記憶部（例えば、図１の第２の記憶部１２０）と、
前記第１及び第２キーと前記第１及び第２アルゴリズムと前記情報を構成するデータ間の紐付情報とが記憶されている第３記憶部（例えば、図１のルール記憶部３２０）と、
を備える。
【００１０】
本発明によれば、第１〜第３記憶部の全ての記憶内容が漏えいしない限り、「複数の情報」が復元されることがなく、また、典型的には、データのいずれかの属性から当該データに係る他の属性のデータを検索することが可能となる。
【００１１】
仮に、第１記憶部に記憶されているデータ、すなわち、暗号化前の情報を構成するデータが漏洩したとしても、それは、単に、名前だけだったり、住所だけだったり、年齢だけだったりするだけので、個人情報自体が特定されることはない。
【００１２】
また、第２記憶部に記憶されているデータが漏洩したとしても、それは、暗号化済みのデータであるため復号化が困難であるし、仮に復号化されたとしても、その結果得られるものは、単に、名前だけだったり、住所だけだったり、年齢だけだったりするだけので、やはり、個人情報自体が特定されることはない。
【００１３】
さらに、第３記憶部の記憶内容が漏洩したとしても、それは、単に、紐付情報だったり、アルゴリズムだったりするだけなので、個人情報自体が特定されることはない。
【００１４】
ここで重要な点は、第１記憶部に暗号化前のデータを記憶している点である。これにより、典型的には、特定の名前データから、その人の住所データ・年齢データをすぐに検索可能となる。その理由は、特定の名前データに基づいて第３記憶部を参照すれば、その名前データに割り当てられている第１キーが特定でき、かつ、当該第１キーに対応する住所データ・年齢データを特定できるからである。
【００１５】
また、本発明のＤＢ処理装置は、分割されたデータを分散記憶する第１の記憶部と、前記第１の記憶部に記憶されたデータを暗号化して分散記憶する第２の記憶部と、入力部若しくは通信ネットワークを介して入力された検索要求が、分割されたデータの結合が必要か否かを判定する要求判定部と、前記要求判定部が、分割されたデータの結合が必要でないと判定した場合に、前記第１の記憶部からデータを検索する第１の検索部と、前記要求判定部が、分割されたデータの結合が必要と判定した場合に、前記第２の記憶部からデータを検索する第２の検索部と、を有することを特徴とする。
【００１６】
なお、本ＤＢ処理装置の動作に対応する分散型ＤＢ処理方法、及び、当該処理方法をコンピュータに実行させる処理プログラムも、本発明に含まれる。
【００１７】
他の態様は、分割されたデータを、結合させるための結合情報（紐付情報）を記憶する結合情報記憶部を有することを特徴とする。
以上のような態様では、結合情報を、データとは別に管理しておくことにより、結合できる複数のデータが漏洩しても、それを結合することができない。
【００１８】
他の態様は、前記第１の記憶部に記憶されたデータに基づいて、これに対応する前記第２の記憶部に記憶されたデータを探索するための探索情報を記憶する探索情報記憶部を有することを特徴とする。
【００１９】
以上のような態様では、探索情報を、データとは別に記憶しておくことにより、第１の記憶部に記憶されたデータから、第２の記憶部に記憶されたデータの探索ができず、第２の記憶部に記憶されたデータの結合もできない。
【発明の効果】
【００２０】
以上のように、本発明によれば、分割されたデータが結合できるような形での情報の漏洩を防止できるとともに、分割されたままでのデータの検索を容易とする分散型ＤＢ処理装置、分散型ＤＢ処理方法及び処理プログラムを提供することができる。
【００２１】
なお、分散型データベースシステム内に記憶されているデータを読み出す場合には、暗号化済みのデータを読み出すとよい。こうすると、分散型データベースシステム内で暗号化されていない生データが盗難されることを防止できるし、ハッカーなどによってデータの読み出しログが解析されたとしても、その解析結果からは特定されるものは暗号化済みのデータであって、生データが特定されることはない。
【図面の簡単な説明】
【００２２】
【図１】本発明の分散型ＤＢ処理装置の一実施形態を示す機能ブロック図である。
【図２】図１の実施形態におけるデータ登録処理の流れを示すフローチャートである。
【図３】図１の実施形態におけるデータ検索処理の一例を示すフローチャートである。
【図４】図１の実施形態における第１の記憶部に分散記憶されるデータの一例を示す説明図である。
【図５】図１の実施形態における第１の記憶部に記憶されたデータから、第２の記憶部に記憶されたデータを探索する一例を示す説明図である。
【図６】図１の実施形態における第２の記憶部に記憶されたデータから、個人情報を検索する一例を示す説明図である。
【符号の説明】
【００２３】
１…分散型ＤＢ処理装置
１００…データベース（ＤＢ）
１１０…第１の記憶部
１２０…第２の記憶部
２００…関連情報記憶部
２１０…探索情報記憶部
２２０…結合情報記憶部
３００…データベースマネージメントシステム（ＤＢＭＳ）
３０１…認証部
３０２…認証情報記憶部
３０３…判定部
３１０…関連付情報生成部
３１１…探索情報生成部
３１２…結合情報生成部
３２０…ルール記憶部
３２１…分割ルール記憶部
３２２…探索ルール記憶部
３２２…結合ルール記憶部
３３０…暗号処理部
３３１…暗号化部
３３２…復号化部
３４０…登録処理部
３４１…分割部
３４２…第１の付与部
３４３…複製部
３４４…第２の付与部
３４５…格納部
３５０…検索処理部
３５１…要求判定部
３５２…第１の検索部
３５３…探索部
３５４…第２の検索部
３５５…結合部
４００…入力部
５００…出力部
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について、図面を参照して説明する。
【００２５】
［１．実施形態の構成］
［１−１．全体構成］
【００２６】
図１は、本実施形態の各機能を仮想的にブロック化した機能ブロック図である。なお、たとえば、所定のプログラムで動作するコンピュータ若しくは電子回路によって、以下に説明するような機能を実現することができる。かかる機能を実現する方法、そのためのプログラム及びプログラムを記録した記録媒体も、本発明の一態様である。
【００２７】
図１に示すように、本実施形態の分散型ＤＢ処理装置１は、以下説明する、データベース（以下、「ＤＢ」と称する）１００、関連付情報記憶部２００、データベースマネージメントシステム（以下、「ＤＢＭＳ」と称する。）３００、入力部４００、出力部５００に大別される。
【００２８】
［１−２．ＤＢ］
【００２９】
ＤＢ１００は、本実施形態の取り扱うデータを記憶した構成部である。このＤＢ１００において扱われるデータは、所定の基準（分割ルール）に従って分割したデータである。そして、ＤＢ１００は、分割したデータを、下記のように分散して記憶している。
【００３０】
たとえば、データとして個人情報を用いる場合を説明する。この個人情報には、氏名、住所、年齢のテキストデータが含まれているものとする。この場合に、複数人の個人情報を、氏名、住所、年齢に分割し、これらを、第１の記憶部１１０を構成する記憶部Ａ、Ｂ、Ｃに分散記憶させる。なお、第１の記憶部１１０に記憶されたデータは、暗号化がされていないデータである。また、記憶対象のデータは、テキストデータに限定されるものではない。
【００３１】
図４は、図１に示す第１の記憶部１１０へのデータの記憶例を示す図である。図４（ａ）には、複数人の氏名とこれらに各々割り当てられているユニークな第１の識別情報（ｋｅｙ１）とが一対で記憶部Ａに記憶されている状態を示している。例えば、氏名「鈴木太郎」に対して、Ｋｅｙ１「０１０」の如くである。第１の識別情報は、所定のアルゴリズムに基づいて割り当てている。
【００３２】
つまり、本実施形態の分散型データベースシステムは、まず、例えば氏名、住所、年齢という複数の属性のデータデータから構成される複数の個人情報を前記属性毎に分割して、それらの各データに対して所定のアルゴリズムに基づいてユニークなｋｅｙ１（第１キー）を割り当てている。
【００３３】
氏名「鈴木太郎」に係る住所及び年齢のＫｅｙ１には、氏名「鈴木太郎」に割り当てられたｋｅｙ１「０１０」と同じｋｅｙ１の割り当てを行ってもよい。つまり、「鈴木太郎」という氏名にも、「鈴木太郎」の住所にも、「鈴木太郎」の年齢にも、「０１０」というｋｅｙ１を割り当ててもよい。
【００３４】
或いは、氏名「鈴木太郎」に係る住所及び年齢のＫｅｙ１には、氏名「鈴木太郎」に割り当てられたｋｅｙ１「０１０」とは別のｋｅｙ１を割り当ててもよい。ただし、この場合には、ｋｅｙ１相互間の対応関係を記憶しておく必要がある。この場合の記憶先は、ＤＢＭＳ３００又はＤＢ１００の外部である関連付情報記憶部２００などとすればよい。
【００３５】
同様に、図４（ｂ）、図４（ｃ）に示すように、それぞれ、記憶部Ｂには住所とこれらに対応するｋｅｙ１とが記憶され、記憶部Ｃには年齢とこれらに対応するｋｅｙ１とが記憶される。本実施形態では、各々のデータが、第１の記憶部１１０のランダムな位置に記憶される。図４でいえば、「鈴木太郎」という氏名が記憶部Ａの１行目に記憶されているが、「鈴木太郎」の住所及び年齢は、記憶部Ｂ及びＣの任意の行に記憶されることになる。
【００３６】
図５は、図１に示す記憶部Ａに記憶されている各データと記憶部Ａ’に記憶されている各データとの関係を示す図である。図５（ａ）には、図４（ａ）と同じものを示している。図５（ｂ）には、図５（ａ）に示すデータと図５（ｃ）に示すデータとの記憶位置を紐付ける探索情報を示している。ここで、探索情報の「１」列目には記憶部Ａに係るＫｅｙ１が記憶され、かつ、探索情報の「２」列目には記憶部Ａ’に係るＫｅｙ１が記憶されている。
【００３７】
図５（ｃ）には、図５（ａ）に示すデータが、暗号化され、かつ、図５（ｂ）に示す探索情報に従って記憶位置が決定された状態で、記憶部Ａ’に係るＫｅｙ１と別途所定のアルゴリズムによって割り当てられたＫｅｙ２とともに、記憶部Ａ’に記憶されている状態を示している。
【００３８】
なお、本実施形態では、図５（ａ）に示す各データの位置と図５（ｃ）に示す各データの位置とが異なっている。例えば、「鈴木太郎」というデータが、図５（ａ）では１行目に示されているのに対して、図５（ｃ）では２行目に示されている。しかし、これは例示であって、図５（ａ）に示す各データの位置と図５（ｃ）に示す各データの位置とが同じであってもよい。
【００３９】
つまり、第１の記憶部１１０に対しては、一人の個人情報を構成する氏名・住所・年齢という一組のデータを、ランダムに記憶することが必須であったが、第２の記憶部１２０に対しては、第１の記憶部１１０のデータ全体を暗号化しただけで、各々のデータの位置は変更して記憶してもよいし、変更せずに記憶してもよい。もっというと、第２の記憶部１２０に記憶されるデータは、暗号化されているのだから、第１の記憶部１１０に記憶済みのデータ単位で暗号化することは必須ではなく、例えば、暗号化前の個人情報全体を一単位で暗号化してもよいし、一人の個人情報を構成する氏名・住所・年齢という一組のデータ単位で暗号化してもよいし、或いは、氏名・住所を一単位で暗号化してもよい。この際、例えば、一組のデータ単位で記憶位置的に一まとめとして暗号化してもよい。こうすると、データの早期読み出しが実現できるというメリットがある。
【００４０】
つぎに、暗号化の手法について説明する。例えば、氏名「鈴木太郎」を暗号化する場合には、氏名「鈴木太郎」に対して割り当てられているＫｅｙ１を読み出す。このＫｅｙ１は「０１０」であるから、これに基づいて、図５（ｂ）に示す探索情報の１列目を参照して、対応する２列目のＫｅｙを読み出す。探索情報から読み出したＫｅｙは「０１５」であり、これが記憶部Ａ’に係るＫｅｙ１となる。
【００４１】
また、所定のアルゴリズムによってＫｅｙ「０１５」には、ユニークなＫｅｙ２が割り当てられる。ここでは、Ｋｅｙ２は「００９」となる。さらに、暗号化対象である氏名「鈴木太郎」というテキストデータ自体が暗号化される。そして、記憶部Ａ’に係るＫｅｙ１「０１５」と、これに対応するＫｅｙ２「００９」と暗号化された氏名「鈴木太郎」とが一組で、記憶部Ａ’に記憶される。
【００４２】
同様に、記憶部Ｂ、記憶部Ｃにそれぞれ記憶されているデータも、所定の探索情報に従って暗号化されたのちに、さらに、記憶部Ｂ’、記憶部Ｃ’に記憶される。
【００４３】
なお、ｋｅｙ１及びｋｅｙ２の割り当ては、既述のように、所定のアルゴリズムによって行われる。本実施形態では、当該アルゴリズム、探索情報については、ＤＢＭＳ３００又はＤＢ１００の外部である関連付情報記憶部２００に置くようにしている。
【００４４】
図６は、記憶部Ａ’と記憶部Ｂ’と記憶部Ｃ’とに各々格納されたデータの関係図である。図６（ａ）には記憶部Ａ’へのデータの記憶例を示している。図６（ｂ）には記憶部Ｂ’へのデータの記憶例を示している。図６（ｃ）には記憶部Ｃ’へのデータの記憶例を示している。図６（ｄ）には記憶部Ａ’と記憶部Ｂ’と記憶部Ｃ’のＫｅｙ２を相互に紐付ける探索情報例を示している。
【００４５】
図６（ｄ）に示すように、探索情報の１列目には記憶部Ａ’に係るＫｅｙ２が記憶され、探索情報の２列目には記憶部Ｂ’に係るＫｅｙ２が記憶され、探索情報の３列目には記憶部Ｃ’に係るＫｅｙ２が記憶されている。ここでは、同じ列に記憶されている各ｋｅｙ２が、同一人の各個人情報に割り当てられている。
【００４６】
例えば、図６内に矢印で示すように、探索情報４行目を見ると、１列目に「００９」が、２列目に「０１２」が、１列目に「００５」が、記憶されている。図６（ａ）を見ると、１列目に係るｋｅｙ２「００９」は「鈴木太郎」という名前に割り当てられている。２列目に係るｋｅｙ２「０１２」は「鈴木太郎」の「住所」に割り当てられている。３列目に係るｋｅｙ２「００５」は「鈴木太郎」の「年齢」に割り当てられている。
【００４７】
したがって、「鈴木太郎」の個人情報を検索する場合には、まず、図５（ａ）に示す記憶部Ａを参照して、「鈴木太郎」に係る記憶部Ａのｋｅｙ１が「０１０」であることを特定する。つぎに、記憶部ＡのＫｅｙ１「０１０」に基づいて、図５（ｂ）に示す検索情報を参照して、記憶部ＡのＫｅｙ１「０１０」に対応する、記憶部Ａ’のｋｅｙ１が「０１５」であることを特定する。
【００４８】
つぎに、記憶部Ａ’のｋｅｙ１「０１５」に基づいて、図６（ａ）に示す記憶部Ａ’を参照して、これに対応するｋｅｙ２「００９」を特定する。その後、記憶部Ａ’に係るｋｅｙ２「００９」に基づいて、図６（ｄ）に示す探索情報を参照して、対応する記憶部Ｂ’及び記憶部Ｃ’に係るＫｅｙ２を読み出す。この結果、これらのｋｅｙ２に基づいて、記憶部Ｂ’及び記憶部Ｃ’を参照することによって、「鈴木太郎」の「住所」及び「年齢」を読み出すことができる。
【００４９】
なお、ここでは、「鈴木太郎」に係る記憶部Ａのｋｅｙ１が「０１０」に基づいて、「鈴木太郎」の「住所」及び「年齢」を読み出す例を示したが、同様に、「鈴木太郎」の「住所」又は「年齢」に基づいて、他の個人情報を読み出すこともできる。
【００５０】
なお、図５及び図６では、２つのＫｅｙを用いる例を示したが、ｋｅｙの数は例示である。また、識別情報、探索情報及び探索ルールは、第１の記憶部１１０のデータと、第２の記憶部１２０のデータとを関連付けることができる情報であれば、上記の例には限定されず、どのようなものであってもよい。ここで重要なのは、本実施形態では、既述のように、ｋｅｙとアルゴリズムとをＤＢＭＳ３００又はＤＢ１００の外部である関連付情報記憶部２００に置くことである。
【００５１】
また、第２の記憶部１２０における分散されたデータを、どのように結合させるかについては、第２の記憶部１２０の各データに付与された第２の識別情報と、この第２の識別情報に基づいて、対応する情報を結合するための結合情報及び結合ルールとによって、あらかじめ決定されている。
【００５２】
［１−３．関連付情報記憶部］
【００５３】
関連付情報記憶部２００は、探索情報記憶部２１０、結合情報記憶部２２０を有している。探索情報記憶部２１０は、上記のように、第１の記憶部１１０のデータと、第２の記憶部１２０のデータとを関連付ける探索情報を記憶した構成部である。結合情報記憶部２２０は、上記のように、第２の記憶部１２０において分散されたデータを、関連付ける結合情報を記憶した構成部である。なお、上記の例では、探索情報、結合情報として、乱数表を用いている。
【００５４】
［１−４．ＤＢＭＳ］
【００５５】
ＤＢＭＳ３００は、ＤＢ１００に対するアクセスを統合的に管理する構成部である。本実施形態のＤＢＭＳ３００は、下記のような構成部を備えることにより、利用者の認証、データの分割、格納、検索、探索及び結合等の処理を行う。このために、ＤＢＭＳ３００は、認証部３０１、関連付情報生成部３１０、ルール記憶部３２０、暗号処理部３３０、登録処理部３４０、検索処理部３５０等を有している。
【００５６】
認証部３０１は、入力部４００から入力された認証情報に基づいて、ＤＢ１００の正当な利用者を認証する構成部である。認証部３０１は、認証情報記憶部３０２と判定部３０３等を有している。認証情報記憶部３０２は、正当な利用者の認証情報をあらかじめ記憶する手段である。判定部３０３は、入力部４００から入力された認証情報と、認証情報記憶部３０２に記憶された認証情報とが一致するか否かを判定する手段である。なお、認証情報としては、ＩＤ、パスワード等が一般的であるが、現在及び将来において利用可能なあらゆる認証情報が含まれる。
【００５７】
関連付情報生成部３１０は、探索情報生成部３１１、結合情報生成部３１２を有している。探索情報生成部３１１は、探索情報を生成する構成部である。結合情報記憶部３１２は、結合情報を生成する構成部である。なお、上記の例では、探索情報、結合情報として、乱数表を用いている。乱数表の生成は、周知技術であり、現在又は将来において適用可能なあらゆる手法を用いることができる。
【００５８】
ルール記憶部３２０は、分割ルール記憶部３２１、探索ルール記憶部３２２、結合ルール記憶部３２３等を有している。分割ルール記憶部３２１は、データを分割するためのルールを記憶した構成部である。分割ルールとしては、上記の個人情報の例では、氏名、住所、年齢といった、それぞれが意味を持つデータに分割するルールが考えられる。但し、本発明は、これに限定されない。
【００５９】
探索ルール記憶部３２２は、上記のように、第１の記憶部１１０のデータと、第２の記憶部１２０のデータとを関連付けるための探索ルールを記憶した構成部である。結合ルール記憶部３２３は、上記のように、第２の記憶部１２０において分散されたデータを、関連付けるための結合ルールを記憶した構成部である。
【００６０】
暗号処理部３３０は、暗号化部３３１、復号化部３３２等を有している。暗号化部３３１は、第２の記憶部１２０に記憶されるデータを暗号化する構成部である。復号化部３３２は、第２の記憶部１２０に記憶されたデータの復号化の復号化を行う構成部である。暗号化、復号化については、在又は将来において適用可能なあらゆる手法を用いることができる。
【００６１】
登録処理部３４０は、分割部３４１、第１の付与部３４２、複製部３４３、第２の付与部３４４、格納部３４５等を有している。分割部３４１は、入力されたデータを、分割ルールに基づいて、分割する構成部である。第１の付与部３４２は、分割された各データに、第１の識別情報を付与する構成部である。第１の識別情報の付与の例は、上記の通りであるが、本発明はこれには限定されない。
【００６２】
複製部３４３は、分割されたデータを複製する構成部である。第２の付与部３４４は、複製された各データに、第２の識別情報を付与する構成部である。第２の識別情報の付与の例は、上記の通りであるが、本発明はこれには限定されない。格納部３４５は、分割されて第１の識別情報が付与されたデータを、第１の記憶部１１０に分散して格納し、複製されて第２の識別情報が付与されたデータを、第２の記憶部１２０に分散して格納する構成部である。
【００６３】
検索処理部３５０は、要求判定部３５１、第１の検索部３５２、探索部３５３、第２の検索部３５４、結合部３５５等を有している。要求判定部３５１は、入力された検索要求が、分割されたデータの結合を必要とするものか否かを判定する構成部である。たとえば、特定の地域に居住している人の人数を求める検索要求の場合には、住所のデータのみを検索すればよく、データの結合は必要がない。一方、ある氏名の人の住所、年齢を求める検索要求の場合には、氏名、住所、年齢のデータを結合させる必要がある。
【００６４】
第１の検索部３５２は、要求判定部３５１による判定結果に従い、検索要求に含まれる検索条件に応じて、第１の記憶部１１０に格納されたデータを検索する構成部である。探索部３５３は、要求判定部３５１による判定結果に従い、探索情報及び探索ルールに基づいて、第１の記憶部１１０に格納されたデータに対応する第２の記憶部１２０に格納されたデータを探索する構成部である。さらに、第２の検索部３５４は、探索部３５３によって探索されたデータに対応するデータを、結合情報及び結合ルールに基づいて、第２の記憶部１２０から検索する構成部である。結合部３５５は、第２の検索部３５４によって検索されたデータを結合する構成部である。
【００６５】
なお、ＤＢＭＳ３００は、一般的なＤＢＭＳと同様に、入力部４００から入力された要求に従って、ＤＢ１００のデータの更新、削除等の処理を行うことができる。その他、データの一貫性、同時実行制御等、一般的なＤＢＭＳが有する機能については、周知技術であるため、説明を省略する。
【００６６】
［１−４．入力部］
【００６７】
入力部４００は、利用者（プログラマ、管理者、一般ユーザ等、システムを利用する者を広く含む）が、分散型ＤＢ処理装置１に、種々の情報を入力して操作するための構成部である。この入力部４００としては、キーボード、マウス、タッチパネル等、現在又は将来において利用可能なあらゆる入力装置を用いることができる。この入力部４００によって、利用者は、データ、検索要求（検索条件等を含む）等を入力することができ、これに応じて、ＤＢＭＳ３００が処理を行う。
【００６８】
［１−５．出力部］
【００６９】
出力部５００は、分散型ＤＢ処理装置１におけるＤＢ１００の入力画面、検索結果等を、種々の態様で出力することにより、ユーザにより視認可能とする手段である。この出力部５００としては、ディスプレイ、プリンタ等、現在又は将来において利用可能なあらゆる出力装置を用いることができる。
【００７０】
なお、上記のＤＢ１００、関連付情報記憶部２００、認証情報記憶部３１１、ルール記憶部３２０等の記憶部としては、コンピュータの各種メモリ、ハードディスク等、現在又は将来において利用可能なあらゆる記憶媒体が利用可能である。上記の説明では、各記憶部及びＤＢを概念的に区別したものであり、その一部若しくは全部を共通の記憶媒体において実現してもよいし、通信経路（バス、通信ネットワーク等を含む）を介して接続された別個の記憶媒体によって実現してもよい。これは、記憶部Ａ〜Ｃ、Ａ’〜Ｃ’についても同様である。
【００７１】
また、ＤＢＭＳ３００は、プログラムによって動作するＣＰＵ、メモリその他の周辺回路により構成される制御部によって実現されるものである。この制御部は、入力部４００及び出力部５００との間での情報の入出力機能、演算機能等、一般的なコンピュータが備える機能を有している。
【００７２】
また、ＤＢＭＳ３００は、一般的には、オペレーティングシステム及びアプリケーションプログラム間で動作するミドルウェアの一種として機能する。但し、上記の各部は、オペレーションシステム及びアプリケーションプログラムの機能の一部を含んでいるか、その機能と連携して動作する機能の場合もあるが、厳密に区別して示すことは困難であるため、説明は省略する。
【００７３】
さらに、入力部４００、出力部５００に関しても、遠隔に配置され、通信ネットワークを介して接続された構成としてもよい。
【００７４】
［２．実施形態の作用］
以上のような本実施形態による処理の流れを、図２、図３を参照して説明する。
【００７５】
［２−１．データ登録処理］
【００７６】
まず、データを分散して記憶するデータ登録処理について、図２のフローチャート、図４、図６の説明図に従って説明する。すなわち、利用者は、入力部４００を用いて、認証情報を入力する（ステップ０１）。判定部３０３は、入力された認証情報が、認証情報記憶部３０２に記憶された認証情報と一致するか否かを判定する（ステップ０２）。判定部３０３によって、認証情報が一致しないと判定された場合には、正当な利用者ではないとして、それ以降の処理進むことはできない（ステップ０２のＮＯ）。
【００７７】
認証情報が一致すると判定された場合には、正当な利用者として認証される（ステップ０２のＹＥＳ）。この利用者が、入力部４００を用いて、個人情報を入力する（ステップ０３）。分割部３４１は、入力された個人情報を、分割ルールに従って分割する（ステップ０４）。上記の例では、個人情報が、氏名、住所、年齢に分割される。
【００７８】
また、複製部３４３は、分割された各データを複製する（ステップ０５）。このとき、暗号化部３３１が、分割された各データを暗号化する（ステップ０６）。そして、第１の付与部３４２が、探索情報及び結合ルールに従って、分割された各データと複製された各データに、第１の識別情報を付与する（ステップ０７）。上記の例では、乱数表に基づいて、それぞれにキー（ｋｅｙ１）が付与される（図４参照）。なお、探索情報は、あらかじめ探索情報生成部３１１によって生成され、探索情報記憶部２１０に記憶されていてもよいし、第１の識別情報の付与の際に、探索情報生成部３１１によって生成して、その後、探索情報記憶部３１０に記憶しておいてもよい。
【００７９】
第２の付与部３４４は、探索情報及び探索ルールに従って、複製され、暗号化されたた各データに、第２の識別情報を付与する（ステップ０８）。上記の例では、氏名、住所、年齢が複製、暗号化され、乱数表に基づいて、それぞれにキー（ｋｅｙ２）が付与される（図６参照）。なお、結合情報は、あらかじめ結合情報生成部３１２によって生成され、結合情報記憶部２２０に記憶されていてもよいし、第２の識別情報の付与の際に、結合情報生成部３１２によって生成して、その後、結合情報記憶部３２０に記憶しておいてもよい。
【００８０】
格納部３４５は、分割部３４１によって分割され、第１の識別情報が付与された各データを、第１の記憶部１１０に分散して格納する（ステップ０９）。上記の例では、記憶部Ａ、Ｂ、Ｃに、それぞれ氏名、住所、年齢が格納される。さらに、格納部３４５は、暗号化され、第２の識別情報が付与された各データを、第２の記憶部１２０に分散して格納する（ステップ１０）。上記の例では、記憶部Ａ’、Ｂ’、Ｃ’に、それそれ暗号化された氏名、住所、年齢が格納される。
【００８１】
［２−２．データ検索処理］
【００８２】
次に、データを検索する処理について、図３のフローチャート、図５、図６の説明図に従って説明する。まず、上記と同様に、利用者の認証を行う（ステップ１１、１２）。次に、利用者は、入力部４００を用いて、検索要求を入力する（ステップ１３）。要求判定部３５１は、検索要求が、分割された各データのみを対象とするか、分割された各データの結合を必要とするかを判定する（ステップ１４）。
【００８３】
検索要求は、分割された各データのみを対象とする検索条件を含む場合には、要求判定部３５１は、結合不要と判定する（ステップ１５のＮＯ）。たとえば、検索要求が、氏名だけ、住所だけ、年齢だけといった場合がこれに該当する。すると、第１の検索部３５２が、第１の記憶部１１０（記憶部Ａ、Ｂ、Ｃ）のいずれかから、そのデータのみを検索する（ステップ２１）。
【００８４】
この場合には、他データとの結合の必要はないので、検索結果は、そのまま出力部５００に出力される（ステップ２０）。なお、同姓の人の人数、同じ区に居住する人の人数といったように、第１の記憶部１１０をそれぞれに単独で検索すれば済むような検索条件の場合にも、同様に対応できる。
【００８５】
一方、検索要求が、分割された各データの結合を必要とする場合には、要求判定部３５１は、結合必要と判定する（ステップ１５のＹＥＳ）。たとえば、特定の氏名とその人の住所といったように、分散されたデータを結合して、個人を特定できるようなものとする要求である場合がこれに該当する。
【００８６】
かかる場合には、探索部３５３が、入力された検索条件と、探索情報及び探索ルールに従って、第１の記憶部１１０のデータに対応する第２の記憶部１２０のデータを探索する（ステップ１６）。たとえば、氏名から住所を検索する場合には、第１の記憶部１１０の氏名に付与された対応する第２の記憶部１２０の氏名を探索する。上記の例では、乱数表から、氏名（鈴木太郎）に付与されたキー（０１０）に対応するキー（０１５）を判定し、これに対応するデータを探索する（図５参照）。
【００８７】
次に、第２の検索部３５４が、結合情報及び結合ルールに従って、探索されたデータに結合すべきデータを、第２の記憶部１２０から検索する（ステップ１７）。上記の例では、乱数表から、暗号化された氏名（鈴木太郎）に付与されたキー（００９）に対応するキー（０１２，００５）を判定し、これに対応するデータを検索する（図６参照）。
【００８８】
そして、復号化部３３２が、検索された各データを復号化する（ステップ１８）。さらに、結合部３５５が、復号化されたデータを結合する（ステップ１９）。結合された検索結果は、出力部５００に出力される（ステップ２０）。
【００８９】
［３．実施形態の効果］
【００９０】
以上のような本実施形態（本発明）の効果は、次の通りである。すなわち、本実施形態によれば、分割された各データを、単独で検索した場合には、暗号化等がなされていないために、処理負担が軽く、高速に検索することができる。この場合に、もしデータが内部の経路（たとえば、図１のＸ）から漏洩しても、個人を特定できないので、問題は少ない。
【００９１】
一方、分割された各データを結合させて検索する場合には、暗号化されたデータのみが経路を流れる。このため、同時間に内部の経路（たとえば、図１のＹ）を流通する複数のデータが漏洩したとしても、内容を秘匿することができる。
【００９２】
［４．他の実施形態］
【００９３】
本発明は、上記のような実施形態に限定されるものではない。たとえば、本発明は、特定の１台のコンピュータによって実現されるものには限定されない。複数のサーバ装置により構成したり、各機能ブロックに応じて複数台のコンピュータで処理を分散したりすることにより、複数台が連繋して処理を行うシステムとして構成することもできる。
【００９４】
上記の実施形態では、第１の記憶部及び第２の記憶部において、データをそれぞれ３つに分散させていたが、この分散数についても、２つ以上であれば、どのような数でもよい。第１の記憶部と第２の記憶部で分散数が異なっていてもよい。
【００９５】
本発明が取り扱うデータについても、特定のものには限定されない。上記で例示したデータはその一例に過ぎず、分散管理されるデータに広く適用可能である。個人情報として、どのようなデータを含めるかも自由であり、分割の単位、数についても自由である。本発明は、個人情報の漏洩防止に有効であるが、使用するデータは、個人情報には限定されない。
【図１】
0005443236.tif 000002
【図２】
0005443236.tif 000003
【図３】
0005443236.tif 000004
【図４】
0005443236.tif 000005
【図５】
0005443236.tif 000006
【図６】
0005443236.tif 000007