説明

分散型データベースシステム

【課題】個人が特定できるような形での情報の漏洩を防止できるとともに、個人情報の漏洩とならない検索を容易とする分散型DB処理装置、処理方法及び処理プログラムを提供する。
【解決手段】分割されたデータを、分散して記憶する第1の記憶部110、第1の記憶部110に記憶されたデータの複製であって、暗号化されたデータを、分散して記憶する第2の記憶部120、入力部400から入力された検索要求が、分割されたデータの結合が必要か否かを判定する要求判定部351、データの結合が不要と判定された場合に、第1の記憶部110からデータを検索する第1の検索部352、データの結合が必要と判定された場合に、第2の記憶部120からデータを検索する第2の検索部354とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを分散して管理する分散型データベース(以下、「DB」と称する。)の処理技術に係り、特に、セキュリティに改良を施した分散型DB処理装置、処理方法及び処理プログラムに関する。
【背景技術】
【0002】
従来から、取り扱うデータを所定の基準で分割し、複数箇所に分散して記憶することにより、データ管理を行う分散型DBシステムが存在する。このような分散型DBシステムは、管理すべきデータ量が膨大になる場合などに用いられることが多い。
【0003】
たとえば、一つの会社全体のデータ量が多いため、単一のサーバで処理するには、処理負担が過大となる場合がある。このような場合には、会社の支店や支社がそれぞれ通常必要とするデータに分割し、各支店や支社が管理するサーバに分散して管理させる。これにより、各サーバの処理負担を軽減できる。また、このように分散管理を行うことにより、通常時は、各サーバは、他のサーバへアクセスする必要がなくなるので、通信負荷とコストの軽減にもつながる。
【0004】
ところで、近年の個人情報保護の要請から、個人情報を管理するDBからの情報漏洩を防止する必要性が高まっている。これに対処するために、上記の分散型DBのしくみが利用できる。たとえば、特許文献1には、個人情報を、基本データ項目と、属性データ項目とに分割して格納し、特定のコードで関連付けることにより検索する記録方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−272681号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、個人情報の漏洩は、例えば、システムの外部からの侵入によって発生する場合ばかりではない。システムの内部の人間が、社内のネットワークから情報を盗み取る場合もある。かかる場合にも、個人情報が分散管理されている場合には、住所のみ、年齢のみといったように、情報の一部のみが漏洩しても、個人が特定できなければ、あまり問題は生じない。
【0007】
もっとも、特許文献1の発明は、システムの利用権限を有する者が、分散管理された特定の個人情報を検索して結合しようとする場合、同一人の個人情報が内部のネットワークの経路上に、ほぼ同時に(短時間にまとまって)流れることになる。このため、個人情報の漏洩は限定的である。
【0008】
そこで、本発明は、個人情報の漏洩防止を拡充することを課題とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の分散型データベースシステムは、
複数の属性のデータ(例えば、氏名、住所、年齢というデータ)から構成される複数の情報(例えば、個人情報)を前記属性毎に分割する分割手段(例えば、図1の分割部341等)と、
前記分割手段によって分割された各データに対して第1アルゴリズムに基づいてユニークな第1キーを割り当てる第1割当手段(例えば、図1の第1の付与部342)と、
前記第1割当手段によって割り当てられた各第1キーとこれらに各々対応するデータとが一対でランダムな位置に記憶される第1記憶部(例えば、図1の第1の記憶部110)と、
前記複数の情報に対して第2アルゴリズムに基づいてユニークな第2キーを割り当てる第2割当手段(例えば、図1の第2の付与部344)と、
前記複数の情報を暗号化する暗号化手段(例えば、図1の暗号化部332)と、
前記第2割当手段によって割り当てられた第2キーと前記暗号化手段によって暗号化済みのデータとが一対で記憶される第2記憶部(例えば、図1の第2の記憶部120)と、
前記第1及び第2キーと前記第1及び第2アルゴリズムと前記情報を構成するデータ間の紐付情報とが記憶されている第3記憶部(例えば、図1のルール記憶部320)と、
を備える。
【0010】
本発明によれば、第1〜第3記憶部の全ての記憶内容が漏えいしない限り、「複数の情報」が復元されることがなく、また、典型的には、データのいずれかの属性から当該データに係る他の属性のデータを検索することが可能となる。
【0011】
仮に、第1記憶部に記憶されているデータ、すなわち、暗号化前の情報を構成するデータが漏洩したとしても、それは、単に、名前だけだったり、住所だけだったり、年齢だけだったりするだけので、個人情報自体が特定されることはない。
【0012】
また、第2記憶部に記憶されているデータが漏洩したとしても、それは、暗号化済みのデータであるため復号化が困難であるし、仮に復号化されたとしても、その結果得られるものは、単に、名前だけだったり、住所だけだったり、年齢だけだったりするだけので、やはり、個人情報自体が特定されることはない。
【0013】
さらに、第3記憶部の記憶内容が漏洩したとしても、それは、単に、紐付情報だったり、アルゴリズムだったりするだけなので、個人情報自体が特定されることはない。
【0014】
ここで重要な点は、第1記憶部に暗号化前のデータを記憶している点である。これにより、典型的には、特定の名前データから、その人の住所データ・年齢データをすぐに検索可能となる。その理由は、特定の名前データに基づいて第3記憶部を参照すれば、その名前データに割り当てられている第1キーが特定でき、かつ、当該第1キーに対応する住所データ・年齢データを特定できるからである。
【0015】
また、本発明のDB処理装置は、分割されたデータを分散記憶する第1の記憶部と、前記第1の記憶部に記憶されたデータを暗号化して分散記憶する第2の記憶部と、入力部若しくは通信ネットワークを介して入力された検索要求が、分割されたデータの結合が必要か否かを判定する要求判定部と、前記要求判定部が、分割されたデータの結合が必要でないと判定した場合に、前記第1の記憶部からデータを検索する第1の検索部と、前記要求判定部が、分割されたデータの結合が必要と判定した場合に、前記第2の記憶部からデータを検索する第2の検索部と、を有することを特徴とする。
【0016】
なお、本DB処理装置の動作に対応する分散型DB処理方法、及び、当該処理方法をコンピュータに実行させる処理プログラムも、本発明に含まれる。
【0017】
他の態様は、分割されたデータを、結合させるための結合情報(紐付情報)を記憶する結合情報記憶部を有することを特徴とする。
以上のような態様では、結合情報を、データとは別に管理しておくことにより、結合できる複数のデータが漏洩しても、それを結合することができない。
【0018】
他の態様は、前記第1の記憶部に記憶されたデータに基づいて、これに対応する前記第2の記憶部に記憶されたデータを探索するための探索情報を記憶する探索情報記憶部を有することを特徴とする。
【0019】
以上のような態様では、探索情報を、データとは別に記憶しておくことにより、第1の記憶部に記憶されたデータから、第2の記憶部に記憶されたデータの探索ができず、第2の記憶部に記憶されたデータの結合もできない。
【発明の効果】
【0020】
以上のように、本発明によれば、分割されたデータが結合できるような形での情報の漏洩を防止できるとともに、分割されたままでのデータの検索を容易とする分散型DB処理装置、分散型DB処理方法及び処理プログラムを提供することができる。
【0021】
なお、分散型データベースシステム内に記憶されているデータを読み出す場合には、暗号化済みのデータを読み出すとよい。こうすると、分散型データベースシステム内で暗号化されていない生データが盗難されることを防止できるし、ハッカーなどによってデータの読み出しログが解析されたとしても、その解析結果からは特定されるものは暗号化済みのデータであって、生データが特定されることはない。
【図面の簡単な説明】
【0022】
【図1】本発明の分散型DB処理装置の一実施形態を示す機能ブロック図である。
【図2】図1の実施形態におけるデータ登録処理の流れを示すフローチャートである。
【図3】図1の実施形態におけるデータ検索処理の一例を示すフローチャートである。
【図4】図1の実施形態における第1の記憶部に分散記憶されるデータの一例を示す説明図である。
【図5】図1の実施形態における第1の記憶部に記憶されたデータから、第2の記憶部に記憶されたデータを探索する一例を示す説明図である。
【図6】図1の実施形態における第2の記憶部に記憶されたデータから、個人情報を検索する一例を示す説明図である。
【符号の説明】
【0023】
1…分散型DB処理装置
100…データベース(DB)
110…第1の記憶部
120…第2の記憶部
200…関連情報記憶部
210…探索情報記憶部
220…結合情報記憶部
300…データベースマネージメントシステム(DBMS)
301…認証部
302…認証情報記憶部
303…判定部
310…関連付情報生成部
311…探索情報生成部
312…結合情報生成部
320…ルール記憶部
321…分割ルール記憶部
322…探索ルール記憶部
322…結合ルール記憶部
330…暗号処理部
331…暗号化部
332…復号化部
340…登録処理部
341…分割部
342…第1の付与部
343…複製部
344…第2の付与部
345…格納部
350…検索処理部
351…要求判定部
352…第1の検索部
353…探索部
354…第2の検索部
355…結合部
400…入力部
500…出力部
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について、図面を参照して説明する。
【0025】
[1.実施形態の構成]
[1−1.全体構成]
【0026】
図1は、本実施形態の各機能を仮想的にブロック化した機能ブロック図である。なお、たとえば、所定のプログラムで動作するコンピュータ若しくは電子回路によって、以下に説明するような機能を実現することができる。かかる機能を実現する方法、そのためのプログラム及びプログラムを記録した記録媒体も、本発明の一態様である。
【0027】
図1に示すように、本実施形態の分散型DB処理装置1は、以下説明する、データベース(以下、「DB」と称する)100、関連付情報記憶部200、データベースマネージメントシステム(以下、「DBMS」と称する。)300、入力部400、出力部500に大別される。
【0028】
[1−2.DB]
【0029】
DB100は、本実施形態の取り扱うデータを記憶した構成部である。このDB100において扱われるデータは、所定の基準(分割ルール)に従って分割したデータである。そして、DB100は、分割したデータを、下記のように分散して記憶している。
【0030】
たとえば、データとして個人情報を用いる場合を説明する。この個人情報には、氏名、住所、年齢のテキストデータが含まれているものとする。この場合に、複数人の個人情報を、氏名、住所、年齢に分割し、これらを、第1の記憶部110を構成する記憶部A、B、Cに分散記憶させる。なお、第1の記憶部110に記憶されたデータは、暗号化がされていないデータである。また、記憶対象のデータは、テキストデータに限定されるものではない。
【0031】
図4は、図1に示す第1の記憶部110へのデータの記憶例を示す図である。図4(a)には、複数人の氏名とこれらに各々割り当てられているユニークな第1の識別情報(key1)とが一対で記憶部Aに記憶されている状態を示している。例えば、氏名「鈴木太郎」に対して、Key1「010」の如くである。第1の識別情報は、所定のアルゴリズムに基づいて割り当てている。
【0032】
つまり、本実施形態の分散型データベースシステムは、まず、例えば氏名、住所、年齢という複数の属性のデータデータから構成される複数の個人情報を前記属性毎に分割して、それらの各データに対して所定のアルゴリズムに基づいてユニークなkey1(第1キー)を割り当てている。
【0033】
氏名「鈴木太郎」に係る住所及び年齢のKey1には、氏名「鈴木太郎」に割り当てられたkey1「010」と同じkey1の割り当てを行ってもよい。つまり、「鈴木太郎」という氏名にも、「鈴木太郎」の住所にも、「鈴木太郎」の年齢にも、「010」というkey1を割り当ててもよい。
【0034】
或いは、氏名「鈴木太郎」に係る住所及び年齢のKey1には、氏名「鈴木太郎」に割り当てられたkey1「010」とは別のkey1を割り当ててもよい。ただし、この場合には、key1相互間の対応関係を記憶しておく必要がある。この場合の記憶先は、DBMS300又はDB100の外部である関連付情報記憶部200などとすればよい。
【0035】
同様に、図4(b)、図4(c)に示すように、それぞれ、記憶部Bには住所とこれらに対応するkey1とが記憶され、記憶部Cには年齢とこれらに対応するkey1とが記憶される。本実施形態では、各々のデータが、第1の記憶部110のランダムな位置に記憶される。図4でいえば、「鈴木太郎」という氏名が記憶部Aの1行目に記憶されているが、「鈴木太郎」の住所及び年齢は、記憶部B及びCの任意の行に記憶されることになる。
【0036】
図5は、図1に示す記憶部Aに記憶されている各データと記憶部A’に記憶されている各データとの関係を示す図である。図5(a)には、図4(a)と同じものを示している。図5(b)には、図5(a)に示すデータと図5(c)に示すデータとの記憶位置を紐付ける探索情報を示している。ここで、探索情報の「1」列目には記憶部Aに係るKey1が記憶され、かつ、探索情報の「2」列目には記憶部A’に係るKey1が記憶されている。
【0037】
図5(c)には、図5(a)に示すデータが、暗号化され、かつ、図5(b)に示す探索情報に従って記憶位置が決定された状態で、記憶部A’に係るKey1と別途所定のアルゴリズムによって割り当てられたKey2とともに、記憶部A’に記憶されている状態を示している。
【0038】
なお、本実施形態では、図5(a)に示す各データの位置と図5(c)に示す各データの位置とが異なっている。例えば、「鈴木太郎」というデータが、図5(a)では1行目に示されているのに対して、図5(c)では2行目に示されている。しかし、これは例示であって、図5(a)に示す各データの位置と図5(c)に示す各データの位置とが同じであってもよい。
【0039】
つまり、第1の記憶部110に対しては、一人の個人情報を構成する氏名・住所・年齢という一組のデータを、ランダムに記憶することが必須であったが、第2の記憶部120に対しては、第1の記憶部110のデータ全体を暗号化しただけで、各々のデータの位置は変更して記憶してもよいし、変更せずに記憶してもよい。もっというと、第2の記憶部120に記憶されるデータは、暗号化されているのだから、第1の記憶部110に記憶済みのデータ単位で暗号化することは必須ではなく、例えば、暗号化前の個人情報全体を一単位で暗号化してもよいし、一人の個人情報を構成する氏名・住所・年齢という一組のデータ単位で暗号化してもよいし、或いは、氏名・住所を一単位で暗号化してもよい。この際、例えば、一組のデータ単位で記憶位置的に一まとめとして暗号化してもよい。こうすると、データの早期読み出しが実現できるというメリットがある。
【0040】
つぎに、暗号化の手法について説明する。例えば、氏名「鈴木太郎」を暗号化する場合には、氏名「鈴木太郎」に対して割り当てられているKey1を読み出す。このKey1は「010」であるから、これに基づいて、図5(b)に示す探索情報の1列目を参照して、対応する2列目のKeyを読み出す。探索情報から読み出したKeyは「015」であり、これが記憶部A’に係るKey1となる。
【0041】
また、所定のアルゴリズムによってKey「015」には、ユニークなKey2が割り当てられる。ここでは、Key2は「009」となる。さらに、暗号化対象である氏名「鈴木太郎」というテキストデータ自体が暗号化される。そして、記憶部A’に係るKey1「015」と、これに対応するKey2「009」と暗号化された氏名「鈴木太郎」とが一組で、記憶部A’に記憶される。
【0042】
同様に、記憶部B、記憶部Cにそれぞれ記憶されているデータも、所定の探索情報に従って暗号化されたのちに、さらに、記憶部B’、記憶部C’に記憶される。
【0043】
なお、key1及びkey2の割り当ては、既述のように、所定のアルゴリズムによって行われる。本実施形態では、当該アルゴリズム、探索情報については、DBMS300又はDB100の外部である関連付情報記憶部200に置くようにしている。
【0044】
図6は、記憶部A’と記憶部B’と記憶部C’とに各々格納されたデータの関係図である。図6(a)には記憶部A’へのデータの記憶例を示している。図6(b)には記憶部B’へのデータの記憶例を示している。図6(c)には記憶部C’へのデータの記憶例を示している。図6(d)には記憶部A’と記憶部B’と記憶部C’のKey2を相互に紐付ける探索情報例を示している。
【0045】
図6(d)に示すように、探索情報の1列目には記憶部A’に係るKey2が記憶され、探索情報の2列目には記憶部B’に係るKey2が記憶され、探索情報の3列目には記憶部C’に係るKey2が記憶されている。ここでは、同じ列に記憶されている各key2が、同一人の各個人情報に割り当てられている。
【0046】
例えば、図6内に矢印で示すように、探索情報4行目を見ると、1列目に「009」が、2列目に「012」が、1列目に「005」が、記憶されている。図6(a)を見ると、1列目に係るkey2「009」は「鈴木太郎」という名前に割り当てられている。2列目に係るkey2「012」は「鈴木太郎」の「住所」に割り当てられている。3列目に係るkey2「005」は「鈴木太郎」の「年齢」に割り当てられている。
【0047】
したがって、「鈴木太郎」の個人情報を検索する場合には、まず、図5(a)に示す記憶部Aを参照して、「鈴木太郎」に係る記憶部Aのkey1が「010」であることを特定する。つぎに、記憶部AのKey1「010」に基づいて、図5(b)に示す検索情報を参照して、記憶部AのKey1「010」に対応する、記憶部A’のkey1が「015」であることを特定する。
【0048】
つぎに、記憶部A’のkey1「015」に基づいて、図6(a)に示す記憶部A’を参照して、これに対応するkey2「009」を特定する。その後、記憶部A’に係るkey2「009」に基づいて、図6(d)に示す探索情報を参照して、対応する記憶部B’及び記憶部C’に係るKey2を読み出す。この結果、これらのkey2に基づいて、記憶部B’及び記憶部C’を参照することによって、「鈴木太郎」の「住所」及び「年齢」を読み出すことができる。
【0049】
なお、ここでは、「鈴木太郎」に係る記憶部Aのkey1が「010」に基づいて、「鈴木太郎」の「住所」及び「年齢」を読み出す例を示したが、同様に、「鈴木太郎」の「住所」又は「年齢」に基づいて、他の個人情報を読み出すこともできる。
【0050】
なお、図5及び図6では、2つのKeyを用いる例を示したが、keyの数は例示である。また、識別情報、探索情報及び探索ルールは、第1の記憶部110のデータと、第2の記憶部120のデータとを関連付けることができる情報であれば、上記の例には限定されず、どのようなものであってもよい。ここで重要なのは、本実施形態では、既述のように、keyとアルゴリズムとをDBMS300又はDB100の外部である関連付情報記憶部200に置くことである。
【0051】
また、第2の記憶部120における分散されたデータを、どのように結合させるかについては、第2の記憶部120の各データに付与された第2の識別情報と、この第2の識別情報に基づいて、対応する情報を結合するための結合情報及び結合ルールとによって、あらかじめ決定されている。
【0052】
[1−3.関連付情報記憶部]
【0053】
関連付情報記憶部200は、探索情報記憶部210、結合情報記憶部220を有している。探索情報記憶部210は、上記のように、第1の記憶部110のデータと、第2の記憶部120のデータとを関連付ける探索情報を記憶した構成部である。結合情報記憶部220は、上記のように、第2の記憶部120において分散されたデータを、関連付ける結合情報を記憶した構成部である。なお、上記の例では、探索情報、結合情報として、乱数表を用いている。
【0054】
[1−4.DBMS]
【0055】
DBMS300は、DB100に対するアクセスを統合的に管理する構成部である。本実施形態のDBMS300は、下記のような構成部を備えることにより、利用者の認証、データの分割、格納、検索、探索及び結合等の処理を行う。このために、DBMS300は、認証部301、関連付情報生成部310、ルール記憶部320、暗号処理部330、登録処理部340、検索処理部350等を有している。
【0056】
認証部301は、入力部400から入力された認証情報に基づいて、DB100の正当な利用者を認証する構成部である。認証部301は、認証情報記憶部302と判定部303等を有している。認証情報記憶部302は、正当な利用者の認証情報をあらかじめ記憶する手段である。判定部303は、入力部400から入力された認証情報と、認証情報記憶部302に記憶された認証情報とが一致するか否かを判定する手段である。なお、認証情報としては、ID、パスワード等が一般的であるが、現在及び将来において利用可能なあらゆる認証情報が含まれる。
【0057】
関連付情報生成部310は、探索情報生成部311、結合情報生成部312を有している。探索情報生成部311は、探索情報を生成する構成部である。結合情報記憶部312は、結合情報を生成する構成部である。なお、上記の例では、探索情報、結合情報として、乱数表を用いている。乱数表の生成は、周知技術であり、現在又は将来において適用可能なあらゆる手法を用いることができる。
【0058】
ルール記憶部320は、分割ルール記憶部321、探索ルール記憶部322、結合ルール記憶部323等を有している。分割ルール記憶部321は、データを分割するためのルールを記憶した構成部である。分割ルールとしては、上記の個人情報の例では、氏名、住所、年齢といった、それぞれが意味を持つデータに分割するルールが考えられる。但し、本発明は、これに限定されない。
【0059】
探索ルール記憶部322は、上記のように、第1の記憶部110のデータと、第2の記憶部120のデータとを関連付けるための探索ルールを記憶した構成部である。結合ルール記憶部323は、上記のように、第2の記憶部120において分散されたデータを、関連付けるための結合ルールを記憶した構成部である。
【0060】
暗号処理部330は、暗号化部331、復号化部332等を有している。暗号化部331は、第2の記憶部120に記憶されるデータを暗号化する構成部である。復号化部332は、第2の記憶部120に記憶されたデータの復号化の復号化を行う構成部である。暗号化、復号化については、在又は将来において適用可能なあらゆる手法を用いることができる。
【0061】
登録処理部340は、分割部341、第1の付与部342、複製部343、第2の付与部344、格納部345等を有している。分割部341は、入力されたデータを、分割ルールに基づいて、分割する構成部である。第1の付与部342は、分割された各データに、第1の識別情報を付与する構成部である。第1の識別情報の付与の例は、上記の通りであるが、本発明はこれには限定されない。
【0062】
複製部343は、分割されたデータを複製する構成部である。第2の付与部344は、複製された各データに、第2の識別情報を付与する構成部である。第2の識別情報の付与の例は、上記の通りであるが、本発明はこれには限定されない。格納部345は、分割されて第1の識別情報が付与されたデータを、第1の記憶部110に分散して格納し、複製されて第2の識別情報が付与されたデータを、第2の記憶部120に分散して格納する構成部である。
【0063】
検索処理部350は、要求判定部351、第1の検索部352、探索部353、第2の検索部354、結合部355等を有している。要求判定部351は、入力された検索要求が、分割されたデータの結合を必要とするものか否かを判定する構成部である。たとえば、特定の地域に居住している人の人数を求める検索要求の場合には、住所のデータのみを検索すればよく、データの結合は必要がない。一方、ある氏名の人の住所、年齢を求める検索要求の場合には、氏名、住所、年齢のデータを結合させる必要がある。
【0064】
第1の検索部352は、要求判定部351による判定結果に従い、検索要求に含まれる検索条件に応じて、第1の記憶部110に格納されたデータを検索する構成部である。探索部353は、要求判定部351による判定結果に従い、探索情報及び探索ルールに基づいて、第1の記憶部110に格納されたデータに対応する第2の記憶部120に格納されたデータを探索する構成部である。さらに、第2の検索部354は、探索部353によって探索されたデータに対応するデータを、結合情報及び結合ルールに基づいて、第2の記憶部120から検索する構成部である。結合部355は、第2の検索部354によって検索されたデータを結合する構成部である。
【0065】
なお、DBMS300は、一般的なDBMSと同様に、入力部400から入力された要求に従って、DB100のデータの更新、削除等の処理を行うことができる。その他、データの一貫性、同時実行制御等、一般的なDBMSが有する機能については、周知技術であるため、説明を省略する。
【0066】
[1−4.入力部]
【0067】
入力部400は、利用者(プログラマ、管理者、一般ユーザ等、システムを利用する者を広く含む)が、分散型DB処理装置1に、種々の情報を入力して操作するための構成部である。この入力部400としては、キーボード、マウス、タッチパネル等、現在又は将来において利用可能なあらゆる入力装置を用いることができる。この入力部400によって、利用者は、データ、検索要求(検索条件等を含む)等を入力することができ、これに応じて、DBMS300が処理を行う。
【0068】
[1−5.出力部]
【0069】
出力部500は、分散型DB処理装置1におけるDB100の入力画面、検索結果等を、種々の態様で出力することにより、ユーザにより視認可能とする手段である。この出力部500としては、ディスプレイ、プリンタ等、現在又は将来において利用可能なあらゆる出力装置を用いることができる。
【0070】
なお、上記のDB100、関連付情報記憶部200、認証情報記憶部311、ルール記憶部320等の記憶部としては、コンピュータの各種メモリ、ハードディスク等、現在又は将来において利用可能なあらゆる記憶媒体が利用可能である。上記の説明では、各記憶部及びDBを概念的に区別したものであり、その一部若しくは全部を共通の記憶媒体において実現してもよいし、通信経路(バス、通信ネットワーク等を含む)を介して接続された別個の記憶媒体によって実現してもよい。これは、記憶部A〜C、A’〜C’についても同様である。
【0071】
また、DBMS300は、プログラムによって動作するCPU、メモリその他の周辺回路により構成される制御部によって実現されるものである。この制御部は、入力部400及び出力部500との間での情報の入出力機能、演算機能等、一般的なコンピュータが備える機能を有している。
【0072】
また、DBMS300は、一般的には、オペレーティングシステム及びアプリケーションプログラム間で動作するミドルウェアの一種として機能する。但し、上記の各部は、オペレーションシステム及びアプリケーションプログラムの機能の一部を含んでいるか、その機能と連携して動作する機能の場合もあるが、厳密に区別して示すことは困難であるため、説明は省略する。
【0073】
さらに、入力部400、出力部500に関しても、遠隔に配置され、通信ネットワークを介して接続された構成としてもよい。
【0074】
[2.実施形態の作用]
以上のような本実施形態による処理の流れを、図2、図3を参照して説明する。
【0075】
[2−1.データ登録処理]
【0076】
まず、データを分散して記憶するデータ登録処理について、図2のフローチャート、図4、図6の説明図に従って説明する。すなわち、利用者は、入力部400を用いて、認証情報を入力する(ステップ01)。判定部303は、入力された認証情報が、認証情報記憶部302に記憶された認証情報と一致するか否かを判定する(ステップ02)。判定部303によって、認証情報が一致しないと判定された場合には、正当な利用者ではないとして、それ以降の処理進むことはできない(ステップ02のNO)。
【0077】
認証情報が一致すると判定された場合には、正当な利用者として認証される(ステップ02のYES)。この利用者が、入力部400を用いて、個人情報を入力する(ステップ03)。分割部341は、入力された個人情報を、分割ルールに従って分割する(ステップ04)。上記の例では、個人情報が、氏名、住所、年齢に分割される。
【0078】
また、複製部343は、分割された各データを複製する(ステップ05)。このとき、暗号化部331が、分割された各データを暗号化する(ステップ06)。そして、第1の付与部342が、探索情報及び結合ルールに従って、分割された各データと複製された各データに、第1の識別情報を付与する(ステップ07)。上記の例では、乱数表に基づいて、それぞれにキー(key1)が付与される(図4参照)。なお、探索情報は、あらかじめ探索情報生成部311によって生成され、探索情報記憶部210に記憶されていてもよいし、第1の識別情報の付与の際に、探索情報生成部311によって生成して、その後、探索情報記憶部310に記憶しておいてもよい。
【0079】
第2の付与部344は、探索情報及び探索ルールに従って、複製され、暗号化されたた各データに、第2の識別情報を付与する(ステップ08)。上記の例では、氏名、住所、年齢が複製、暗号化され、乱数表に基づいて、それぞれにキー(key2)が付与される(図6参照)。なお、結合情報は、あらかじめ結合情報生成部312によって生成され、結合情報記憶部220に記憶されていてもよいし、第2の識別情報の付与の際に、結合情報生成部312によって生成して、その後、結合情報記憶部320に記憶しておいてもよい。
【0080】
格納部345は、分割部341によって分割され、第1の識別情報が付与された各データを、第1の記憶部110に分散して格納する(ステップ09)。上記の例では、記憶部A、B、Cに、それぞれ氏名、住所、年齢が格納される。さらに、格納部345は、暗号化され、第2の識別情報が付与された各データを、第2の記憶部120に分散して格納する(ステップ10)。上記の例では、記憶部A’、B’、C’に、それそれ暗号化された氏名、住所、年齢が格納される。
【0081】
[2−2.データ検索処理]
【0082】
次に、データを検索する処理について、図3のフローチャート、図5、図6の説明図に従って説明する。まず、上記と同様に、利用者の認証を行う(ステップ11、12)。次に、利用者は、入力部400を用いて、検索要求を入力する(ステップ13)。要求判定部351は、検索要求が、分割された各データのみを対象とするか、分割された各データの結合を必要とするかを判定する(ステップ14)。
【0083】
検索要求は、分割された各データのみを対象とする検索条件を含む場合には、要求判定部351は、結合不要と判定する(ステップ15のNO)。たとえば、検索要求が、氏名だけ、住所だけ、年齢だけといった場合がこれに該当する。すると、第1の検索部352が、第1の記憶部110(記憶部A、B、C)のいずれかから、そのデータのみを検索する(ステップ21)。
【0084】
この場合には、他データとの結合の必要はないので、検索結果は、そのまま出力部500に出力される(ステップ20)。なお、同姓の人の人数、同じ区に居住する人の人数といったように、第1の記憶部110をそれぞれに単独で検索すれば済むような検索条件の場合にも、同様に対応できる。
【0085】
一方、検索要求が、分割された各データの結合を必要とする場合には、要求判定部351は、結合必要と判定する(ステップ15のYES)。たとえば、特定の氏名とその人の住所といったように、分散されたデータを結合して、個人を特定できるようなものとする要求である場合がこれに該当する。
【0086】
かかる場合には、探索部353が、入力された検索条件と、探索情報及び探索ルールに従って、第1の記憶部110のデータに対応する第2の記憶部120のデータを探索する(ステップ16)。たとえば、氏名から住所を検索する場合には、第1の記憶部110の氏名に付与された対応する第2の記憶部120の氏名を探索する。上記の例では、乱数表から、氏名(鈴木太郎)に付与されたキー(010)に対応するキー(015)を判定し、これに対応するデータを探索する(図5参照)。
【0087】
次に、第2の検索部354が、結合情報及び結合ルールに従って、探索されたデータに結合すべきデータを、第2の記憶部120から検索する(ステップ17)。上記の例では、乱数表から、暗号化された氏名(鈴木太郎)に付与されたキー(009)に対応するキー(012,005)を判定し、これに対応するデータを検索する(図6参照)。
【0088】
そして、復号化部332が、検索された各データを復号化する(ステップ18)。さらに、結合部355が、復号化されたデータを結合する(ステップ19)。結合された検索結果は、出力部500に出力される(ステップ20)。
【0089】
[3.実施形態の効果]
【0090】
以上のような本実施形態(本発明)の効果は、次の通りである。すなわち、本実施形態によれば、分割された各データを、単独で検索した場合には、暗号化等がなされていないために、処理負担が軽く、高速に検索することができる。この場合に、もしデータが内部の経路(たとえば、図1のX)から漏洩しても、個人を特定できないので、問題は少ない。
【0091】
一方、分割された各データを結合させて検索する場合には、暗号化されたデータのみが経路を流れる。このため、同時間に内部の経路(たとえば、図1のY)を流通する複数のデータが漏洩したとしても、内容を秘匿することができる。
【0092】
[4.他の実施形態]
【0093】
本発明は、上記のような実施形態に限定されるものではない。たとえば、本発明は、特定の1台のコンピュータによって実現されるものには限定されない。複数のサーバ装置により構成したり、各機能ブロックに応じて複数台のコンピュータで処理を分散したりすることにより、複数台が連繋して処理を行うシステムとして構成することもできる。
【0094】
上記の実施形態では、第1の記憶部及び第2の記憶部において、データをそれぞれ3つに分散させていたが、この分散数についても、2つ以上であれば、どのような数でもよい。第1の記憶部と第2の記憶部で分散数が異なっていてもよい。
【0095】
本発明が取り扱うデータについても、特定のものには限定されない。上記で例示したデータはその一例に過ぎず、分散管理されるデータに広く適用可能である。個人情報として、どのようなデータを含めるかも自由であり、分割の単位、数についても自由である。本発明は、個人情報の漏洩防止に有効であるが、使用するデータは、個人情報には限定されない。

【特許請求の範囲】
【請求項1】
複数の属性のデータから構成される複数の情報を前記属性毎に分割する分割手段と、
前記分割手段によって分割された各データに対して第1アルゴリズムに基づいてユニークな第1キーを割り当てる第1割当手段と、
前記第1割当手段によって割り当てられた各第1キーとこれらに各々対応するデータとが一対でランダムな位置に記憶される第1記憶部と、
前記複数の情報に対して第2アルゴリズムに基づいてユニークな第2キーを割り当てる第2割当手段と、
前記複数の情報を暗号化する暗号化手段と、
前記第2割当手段によって割り当てられた第2キーと前記暗号化手段によって暗号化済みのデータとが一対でランダムな位置に記憶される第2記憶部と、
前記第1及び第2キーと前記第1及び第2アルゴリズムと前記情報を構成するデータ間の紐付情報とが記憶されている第3記憶部と、
を備える、分散型データベースシステム。
【請求項2】
前記第3記憶部の記憶内容に基づいて前記情報を復元する手段を備える、請求項1記載の分散型データベースシステム。
【請求項3】
前記第2割当手段は、前記第1記憶部に記憶されている各データに対して前記第2アルゴリズムに基づいてユニークな第2キーを割り当てる、請求項1記載の分散型データベースシステム。
【請求項4】
前記暗号化手段は、前記第1記憶部に記憶されている各データを暗号化する、請求項1記載の分散型データベースシステム。
【請求項5】
前記情報のデータの読み出し命令時に、前記第2記憶部に記憶されている暗号化済みのデータを読み出す読み出し手段を備える、請求項1記載の分散型データベースシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−209974(P2011−209974A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−76536(P2010−76536)
【出願日】平成22年3月30日(2010.3.30)
【出願人】(500126671)株式会社InfoDeliver (7)
【Fターム(参考)】