次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
(実施の形態)
本発明の実施の形態に係る情報処理システム9は、データベースサーバ3と、複数の参照装置1と、少なくとも一つの更新装置2を備える。データベースサーバ3、参照装置1および更新装置2は、通信ネットワークなどにより、相互に通信可能に接続される。
図1に示す情報処理システム9は、一つのデータベースサーバ3、第1の参照装置1a、第2の参照装置1b、第1の更新装置2aおよび第2の更新装置2bを備える場合を説明するが、本発明の特徴を適用できるのであれば、これらの数は問わない。図1に示す例において、データベースサーバ3にデータを格納させる装置を更新装置2と称し、データベースサーバ3からデータを取得する装置を参照装置1とするが、これらは、独立した個々の装置でなくても良い。例えば、ある一つの業務サーバが、データベースサーバ3にデータを格納させる際は更新装置2として機能するとともに、データベースサーバ3からデータを取得する際は参照装置1として機能しても良い。本発明の実施の形態において、第1の参照装置1aおよび第2の参照装置1bを区別しない場合、単に参照装置1と記載する場合がある。同様に、第1の更新装置2aおよび第2の更新装置2bを区別しない場合、単に更新装置2と記載する場合がある。
データベースサーバ3は、更新装置2から入力されたデータを格納データDに保持するとともに、参照装置1からの要請に基づいて、格納データDの少なくとも一部のレコードのデータを出力する。
本発明の実施の形態において、第1の更新装置2aがデータベースサーバ3に更新させ、第1の参照装置1aが参照するデータを、「参照部分データD11」と表記する。第1の更新装置2aがデータベースサーバ3に更新させ、第2の参照装置1bが参照するデータを、「参照部分データD12」と表記する。第2の更新装置2bがデータベースサーバ3に更新させ、第1の参照装置1aが参照するデータを、「参照部分データD21」と表記する。第2の更新装置2bがデータベースサーバ3に更新させ、第2の参照装置1bが参照するデータを、「参照部分データD22」と表記する。本発明の実施の形態において、参照部分データD11、D12、D21およびD22はそれぞれ、単にデータD11、D12、D21およびD22と称される場合もある。
(更新装置)
第1の更新装置2aは、処理制御装置20、記憶装置25および通信制御装置29を備える一般的なコンピュータである。第1の更新装置2aが、所定の機能を実現させるためのプログラムを実行することにより、処理制御装置20は、更新手段21aを実装する。
第1の更新装置2aの記憶装置25は、サービス提供などにより、キーKに関連して、第1の参照部分データD11と、第2の参照部分データD12とを記憶する。第1の参照部分データD11は、第1の参照装置1aが参照するデータの一部である。第2の参照部分データD12は、第2の参照装置1bが参照するデータの一部である。
第1の更新装置2aの更新手段21aは、キーKと、データD11およびD12を、データベースサーバ3に送信して、更新するよう依頼する。このとき更新手段21aは、第1の参照部分データD11については、第1の参照装置1aが抽出可能な形式に変換するとともに、第2の参照部分データD12については、第2の参照装置1bが抽出可能な形式に変換しても良い。その後、更新手段21aは、キーKと、第1の参照装置1aが抽出可能な形式に変換された第1の参照部分データD11と、第2の参照装置1bが抽出可能な形式に変換された第2の参照部分データD12とを、対応づけて、データベースサーバ3に送信する。
第1の更新装置2aにおける参照部分データは、参照する参照装置1が抽出可能であれば、どのようなものでも良い。例えば、第1の更新装置2aは、参照部分データを、参照するべき参照装置1のみが復号可能に暗号化して変換し、参照装置1の識別子を付与し変換しても良い。また第1の更新装置2aにおいて特に特別な変換をすることなく、参照する参照装置1が有するマスクで参照部分データを抽出しても良い。後述の各実装例において詳述する。
図2を参照して、更新手段21aによる更新処理を説明する。ステップS101において更新手段21aは、第1の参照部分データD11を、第1の参照装置1aが取得可能な形式に変換する。ステップS102において更新手段21aは、第2の参照部分データD12を、第2の参照装置1bが取得可能な形式に変換する。
ステップS103において更新手段21aは、キーKと、ステップS101の変換後の第1の参照部分データD11と、ステップS102の変換後の第2の参照部分データD12とをデータベースサーバ3に送信する。更新手段21aは、これらのデータの格納データDへの登録をリクエストする。
ここで、ステップS101およびステップS102の処理における参照部分データの変換は、必要に応じて実行されても良い。また第1の更新装置2aについて説明したが、第2の更新装置2bも第1の更新装置2aと同様である。
(データベースサーバ)
データベースサーバ3は、図1に示すように、処理制御装置30、記憶装置35および通信制御装置39を備える一般的なコンピュータである。データベースサーバ3が、所定の機能を実現させるためのプログラムを実行することにより、処理制御装置30は、制御手段31を実装する。
記憶装置35は、格納データDを記憶する。格納データDは、複数の対象データDkを含む。対象データDkは、複数の参照装置1が共通して参照するキーと、各参照装置1が抽出可能な複数の参照部分データを対応づける。図1に示す例において、キーKに関する複数の参照部分データは、第1の参照装置1aが参照するデータD11およびD21と、第2の参照装置1bが参照するデータD12およびD22である。データD11およびD21は、第1の参照装置1aが抽出可能なデータである。データD12およびD22は、第2の参照装置1bが抽出可能なデータである。
制御手段31は、格納データDの更新および参照に関する処理を制御する。
制御手段31は、更新装置2から受信したキーと参照部分データとを対応づけて格納データDに保持する。図1に示す例において制御手段31は、第1の更新装置2aから、キーKと、このキーに対応する参照部分データD11およびD12を取得すると、キーKにデータD11およびD12を対応づけて格納データDに記憶する。また制御手段31は、第2の更新装置2bから、キーKと、このキーに対応する参照部分データD21およびD22を取得すると、キーKにデータD21およびD22を対応づけて格納データDに記憶する。
制御手段31は、参照装置1から入力されたキーKに対応づけられた対象データDkを出力する。制御手段31は、参照装置1から入力されたキーKの対象データDkを、参照元の参照装置1が抽出するか否かに関わらず、送信する。具体的には、あるキーKの対象データDkとして、キーK、データD11、D12、D21およびD21が関連づけられている場合を考える。この場合制御手段31は、参照装置1からレコードを特定するキーKが入力されると、このキーに関連する対象データDkを入力元の参照装置1に出力する。入力元が第1の参照装置1aの場合、第1の参照装置1aは、取得した対象データDkから、抽出するべきデータD11およびD21を取得し、それ以外のデータD12およびD22を破棄する。入力元が第2の参照装置1bの場合、第2の参照装置1bは、取得した対象データDkから、抽出するべきデータD12およびD22を取得し、それ以外のデータD11およびD21を破棄する。
図3を参照して、制御手段31による制御処理を説明する。まずステップS121において制御手段31は、他装置からリクエストが入力されると、そのリクエストの種別により処理を振り分ける。
例えば、更新装置2から、更新リクエストが入力された場合、制御手段31は、ステップS122に進む。ステップS122において制御手段31は、更新装置2から受信したキーKと、更新対象の参照部分データとを対応づけて、格納データDに記憶する。
また、参照装置1から、参照リクエストが入力された場合、制御手段31は、ステップS123に進む。ステップS123において制御手段31は、参照装置1から受信したキーKに対応する対象データを、格納データDから抽出する。制御手段31は、抽出したデータを参照装置1に出力する。
(参照装置)
第1の参照装置1aは、処理制御装置10、記憶装置15および通信制御装置19を備える一般的なコンピュータである。第1の参照装置1aが、所定の機能を実現させるための参照プログラムを実行することにより、処理制御装置10は、取得手段11および抽出手段12aを実装する。
第1の参照装置1aの記憶装置15は、処理制御装置10の処理により、対象データDkおよび第1の参照データR1を記憶する。第1の参照データR1は、第1の更新装置2aおよび第2の更新装置2bがデータベースサーバ3に登録したデータのうち、第1の参照装置1aが抽出するべきデータである。
なお、第2の参照装置1bは、第2の参照データR2を記憶する。第2の参照データR2は、第1の更新装置2aおよび第2の更新装置2bがデータベースサーバ3に登録したデータのうち、第2の参照装置1bが抽出するべきデータである。
第1の参照装置1aの取得手段11は、データベースサーバ3にキーKを送信するとともに、当該キーに関連する対象データDkを取得する。取得手段11は、取得した対象データDkを記憶装置15に記憶する。
第1の参照装置1aの抽出手段12aは、対象データDkから、第1の参照装置1aが抽出可能な参照データR1を抽出して、記憶装置15に記憶する。抽出手段12aは、対象データDkから、参照部分データD11およびD21を抽出して、第1の参照データR1を生成し記憶する。抽出手段12aは、更新装置2におけるデータ変換と対応した方法で、対象データDkから参照データR1を抽出する。
図4を参照して、第1の参照装置1aの処理を説明する。第1の参照装置1aは、ステップS141においてデータベースサーバ3に、キーKを送信するとともにデータの参照リクエストを送信する。ステップS142において第1の参照装置1aは、ステップS141で入力したキーKに対応する対象データDkを取得する。ステップS143において第1の抽出手段12aは、対象データDkから、第1の参照装置1aが参照するべき参照データR1を抽出して、記憶装置15に記憶する。
第1の参照装置1aについて説明したが、第2の参照装置1bも第1の参照装置1aと同様である。なお第2の参照装置1bの抽出手段12bは、対象データDkから、第2の参照装置1bが抽出可能な参照データR2を抽出して、記憶装置15に記憶する。抽出手段12bは、対象データDkから、参照部分データD12およびD22を抽出して、第2の参照データR2を生成し記憶する。
本発明の実施の形態に係る情報処理システム9は、様々なシステムに適用することができる。例えば、情報処理システム9において、第1の更新装置2aおよび第1の参照装置1aは、固定電話サービスに関する装置である。第2の更新装置2bおよび第2の参照装置1bは、移動体電話サービスに関する装置である。第1の更新装置2aおよび第2の更新装置2bは、各保守運用サービスに関するデータを、データベースサーバ3に登録する。第1の参照装置1aおよび第2の参照装置1bは、各サービスに関するデータを、データベースサーバ3から取得する。またキーKは、固定電話サービスおよび移動体電話サービスの両方に参加するユーザ識別子などが考えられる。
図1を参照して説明した参照部分データD11、D12、D21およびD22は、更新の主体および参照の主体に応じて分類されたデータである。従って、各参照部分データD11、D12、D21およびD22は、それぞれ、一つのデータ項目を含んでも良いし、複数のデータ項目を含んでも良い。また参照部分データD11、D12、D21およびD22の分類もこれに限られたものではない。例えば、これらの他に、第1の参照装置1aおよび第2の参照装置1bの両方が参照する参照部分データが、定義されても良い。この場合、更新装置2は、第1の参照装置1aおよび第2の参照装置1bの両方が参照する参照部分データを、第1の参照装置1aおよび第2の参照装置1bの両方が抽出可能な形式に変換して、データベースサーバ3に登録する。
このような本発明の実施の形態に係る情報処理システム9において、参照装置1においてデータベースサーバ3から取得した対象データから、所望のデータを抽出するロジックを追加することにより、データベースサーバ3の負荷を軽減することができる。
(第1の実装例)
図5ないし図7を参照して、第1の実装例を説明する。第1の実装例において、各参照装置1で参照するデータの秘匿性を確保するために、各データが暗号化されている場合を説明する。
更新装置2の更新手段21は、参照装置1がそれぞれ復号可能な形式でそれぞれ暗号化された参照部分データを、データベースサーバ3に送信し、格納データDを更新させる。参照装置1の抽出手段12は、当該参照装置1が復号に成功した参照データRを抽出する。
データベースサーバ3において、格納データDの対象データDkは、それぞれの参照装置1が復号可能な形式でそれぞれ暗号化された複数の参照部分データを含む。なおデータベースサーバ3の制御手段31は、更新装置2における暗号化処理および参照装置1における復号処理に関しては何ら関与しない。データベースサーバ3は、入力されたキーに対して更新または参照すれば良く、対象データDkが暗号化されているか否かにより処理が変わることはない。
図5を参照して、各装置において暗号鍵または復号鍵を用いて処理されたデータを説明する。第1の更新装置2aおよび第2の更新装置2bは、それぞれ、第1の暗号鍵A1および第2の暗号鍵A2を保持する。また第1の参照装置1aは、第1の暗号鍵A1で暗号化された暗号文を復号するための第1の復号鍵F1を保持する。第2の参照装置1bは、第2の暗号鍵A2で暗号化された暗号文を復号するための第2の復号鍵F2を保持する。第1の暗号鍵A1、第2の暗号鍵A2、第1の復号鍵F1および第2の復号鍵F2は、所定のサーバから各装置にそれぞれ配信されても良い。
第1の更新装置2aの更新手段21aは、第1の参照部分データD11を第1の暗号鍵A1で暗号して、データD11’を生成するとともに、第2の参照部分データD12を第2の暗号鍵A2で暗号して、データD12”を生成する。更新手段21aは、キーKと、データD11’およびデータD12”を対応づけてデータベースサーバ3に送信する。
第2の更新装置2bの更新手段21bは、第1の参照部分データD21を第1の暗号鍵A1で暗号して、データD21’を生成するとともに、第2の参照部分データD22を第2の暗号鍵A2で暗号して、データD22”を生成する。更新手段21aは、キーKと、データD21’およびデータD22”を対応づけてデータベースサーバ3に送信する。
図6を参照して、第1の更新装置2aの更新手段21aにおける更新処理を説明する。第2の更新装置2bの更新手段21bの処理も同様である。
ステップS201において更新手段21aは、第1の参照部分データD11を第1の参照装置1aのために暗号化して、データD11’を生成する。ステップS202において更新手段21aは、第2の参照部分データD12を第2の参照装置1bのために暗号化して、データD12”を生成する。ステップS203において更新手段21aは、キーと、ステップS201で生成したデータD11’と、ステップS202で生成したデータD12”とを、データベースサーバ3に送信する。
データベースサーバ3は、第1の更新装置2aおよび第2の更新装置2bから受信したデータに基づいて、格納データDを更新する。この結果、格納データDは、キーKに、参照部分データD11’、D12”、D21’およびD22”を対応づけた対象データDkを含む。
第1の参照装置1aおよび第2の参照装置1bは、キーKをデータベースサーバ3に入力し、それぞれ、入力したキーKに対応する対象データDkを取得する。ここで対象データDkは、参照部分データD11’、D12”、D21’およびD22”の、4つの暗号化されたデータ列を含む。
第1の参照装置1aの抽出手段12aは、自身が参照するべきデータを判別するために、それぞれのデータ列を、第1の復号鍵F1で復号を試みる。この結果、抽出手段12aは、第1の復号鍵F1で復号可能に暗号化された参照部分データD11およびD21を取得する。抽出手段12aは、第1の復号鍵F1で復号できなかったデータD12”およびD22”を破棄する。
同様に、第2の参照装置1bの抽出手段12bは、自身が参照するべきデータを判別するために、それぞれのデータ列を、第2の復号鍵F2で復号を試みる。この結果、抽出手段12bは、第2の復号鍵F2で復号可能に暗号化されたデータD12およびD22を取得する。抽出手段12bは、第2の復号鍵F2で復号できなかったデータD11’およびD21’を破棄する。
図7を参照して、第1の参照装置1aの抽出手段12aにおける更新処理を説明する。第2の参照装置1bの抽出手段12bの処理も同様である。
抽出手段12aは、データベースサーバ3から取得した対象データDkの各データ列について、ステップS241およびステップS242の処理を繰り返す。ステップS241において抽出手段12aは、処理対象のデータ列について、第1の復号鍵F1で復号可能であるか否かを判定する。復号可能な場合、ステップS242において、復号したデータを記憶し、復号できなかった場合は、そのデータ列を破棄する。
このような第1の実装例において各参照装置1は、自身が保有する復号鍵で復号できたことにより、自身が参照するべきデータを特定し取得するとともに、正しく復号できたことを確認する。また、自装置以外の参照装置1が参照するべきデータが暗号化されているので、各参照装置1が参照することのできないデータの漏洩を回避することができる。
(第1の実装例の変形例)
第1の実装例においては、参照装置1毎に暗号方法を特定する場合を説明したが、これに限られない。要求されるセキュリティレベルが低い場合、各参照装置1が共有する復号鍵に対応する暗号鍵で暗号化されても良い。
また、暗号方法は、第1の実装例に記載したものに限らない。例えば、暗号鍵および復号鍵を用いるのではなく、共通鍵方式を採用しても良い。
第1の参照装置1a、第1の更新装置2aおよび第2の更新装置2bは、第1の参照装置1aでデータを抽出可能とする第1の共通鍵を記憶する。第2の参照装置1b、第1の更新装置2aおよび第2の更新装置2bは、第2の参照装置1bでデータを抽出可能とする第2の共通鍵を記憶する。また第1の参照装置1aは、第1のハッシュ値を決定し、第1の更新装置2aおよび第2の更新装置2bに送信する。第2の参照装置1bは、第2のハッシュ値を決定し、第1の更新装置2aおよび第2の更新装置2bに送信する。
第1の更新装置2aは、第1のハッシュ値と第1の参照装置1aの参照部分データD11を第1の共通鍵で暗号化し、第2のハッシュ値と第2の参照装置1bの参照部分データD12を第2の共通鍵で暗号化して、データベースサーバ3に送信する。第2の更新装置2bは、第1のハッシュ値と第1の参照装置1aの参照部分データD21を第1の共通鍵で暗号化し、第2のハッシュ値と第2の参照装置1bの参照部分データD22を第2の共通鍵で暗号化して、データベースサーバ3に送信する。
第1の参照装置1aは、データベースサーバ3から取得した対象データDkの各データ列を、第1の共通鍵で復号する。第1の参照装置1aは、復号の結果、事前に定めた第1のハッシュ値が得られたデータ列、具体的にはデータD11およびD21を、自身が抽出する参照部分データとして把握する。
(第2の実装例)
図8ないし図10を参照して、第2の実装例を説明する。第2の実装例において、各参照部分データに、区切り子を付加して連結する場合を説明する。
区切り子は、参照部分データD11、D12、D21およびD22に用いられることのない文字コードである。例えば、参照部分データD11、D12、D21およびD22がUnicode体系で表現される場合、区切り文字としてU+E000からU+F8FFの私用領域のコードが用いられる。
図8に示す例では、区切り子を各参照部分データの最初に付加する場合を説明するがこれに限られず、各参照部分データの最後に付加するなど、参照装置1で判別可能であればどのような位置に付加されても良い。
更新装置2の更新手段21は、複数の参照部分データのそれぞれについて、当該参照部分データを抽出する参照装置1の識別子を対応づけて、データベースサーバ3に送信し、格納データDを更新させる。参照装置1の抽出手段12は、参照装置の識別子に対応づけられた参照データRを抽出する。
データベースサーバ3において、格納データDの対象データDkの各参照部分データは、参照装置1が抽出するための区切り子が対応づけられる。なおデータベースサーバ3の制御手段31は、入力されたキーに基づいて、格納データDを更新または参照すれば良い。
図8を参照して、各装置において第1の区切り子P1および第2の区切り子P2を用いて処理されたデータを説明する。第1の区切り子P1は、第1の参照装置1aに抽出させるデータであることを示す。第2の区切り子P2は、第2の参照装置1bに抽出させるデータであることを示す。
第1の更新装置2aおよび第2の更新装置2bは、第1の区切り子P1および第2の区切り子P2を保持する。また第1の参照装置1aは、第1の区切り子P1を保持する。第2の参照装置1bは、第2の区切り子P2を保持する。第1の区切り子P1および第2の区切り子P2は、所定のサーバから各装置にそれぞれ配信されても良い。
第1の更新装置2aの更新手段21aは、第1の参照部分データD11に第1の区切り子P1を対応づけるとともに、第2の参照部分データD12に第2の区切り子P2を対応づける。更新手段21aは、キーKと、第1の区切り子P1、第1の参照部分データD11、第2の区切り子P2および第2の参照部分データD12を連結したデータを、データベースサーバ3に送信する。
第2の更新装置2bの更新手段21bは、第1の参照部分データD21に第1の区切り子P1を対応づけるとともに、第2の参照部分データD22に第2の区切り子P2を対応づける。更新手段21bは、キーKと、第1の区切り子P1、第1の参照部分データD21、第2の区切り子P2および第2の参照部分データD22を連結したデータを、データベースサーバ3に送信する。
図9を参照して、第1の更新装置2aの更新手段21aにおける更新処理を説明する。第2の更新装置2bの更新手段21bの処理も同様である。図9において、各参照部分データの先頭に区切り子が付与されている場合を説明する。
ステップS301において更新手段21aは、第1の参照部分データD11の先頭に、第1の区切り子P1を追加する。ステップS302において更新手段21aは、第2の参照部分データD12の先頭に、第2の区切り子P2を追加する。ステップS303において更新手段21aは、キーと、ステップS301において第1の区切り子P1を追加した第1の参照部分データD11と、ステップS302において第2の区切り子P2を追加した第2の参照部分データD12とを、連結する。その後更新手段21aは、連結したデータをデータベースサーバ3に送信する。
データベースサーバ3は、第1の更新装置2aおよび第2の更新装置2bから受信したデータに基づいて、格納データDを更新する。この結果、格納データDは、キーKに、区切り子P1、データD11、区切り子P2、データD12、区切り子P1、データD21、区切り子P2、およびデータD22を対応づけた対象データDkを含む。
第1の参照装置1aおよび第2の参照装置1bは、キーKをデータベースサーバ3に入力し、それぞれ、入力したキーKに対応する対象データDkを取得する。ここで対象データDkは、複数の区切り子を含む一つのデータ列である。
第1の参照装置1aの抽出手段12aは、自身が参照するべきデータを判別するために、取得した対象データDkの区切り子を探索する。抽出手段12aは、自身が抽出するべき区切り子P1に対応づけられたデータD11およびD21を取得する。抽出手段12aは、区切り子P1以外の区切り子に対応づけられたデータD12およびD22を破棄する。
同様に、第2の参照装置1bの抽出手段12bは、自身が参照するべきデータを判別するために、取得した対象データDkの区切り子を探索する。抽出手段12bは、自身が抽出するべき区切り子P2に対応づけられたデータD12およびD22を取得する。抽出手段12bは、区切り子P2以外の区切り子に対応づけられたデータD11およびD21を破棄する。
図10を参照して、第1の参照装置1aの抽出手段12aにおける更新処理を説明する。第2の参照装置1bの抽出手段12bの処理も同様である。図10において、各参照部分データの先頭に区切り子が付与されている場合を説明する。
ステップS321において抽出手段12aは、データベースサーバ3から取得した対象データDkを先頭から読み込み、ステップS322において抽出手段12aは、単位ビットずつ読み込む。ここで単位ビットとは、区切り子のビット数に対応するビットである。ステップS323において抽出手段12aは、自装置の区切り子でない場合、ステップS322に戻り、さらに対象データDkを単位ビットずつ読み込む。
ステップS323において抽出手段12aは、自装置の区切り子を発見すると、ステップS324において、次の区切り子または対象データDkの終端のいずれか直近の位置までのデータを、記憶装置15に記憶する。さらにステップS325において抽出手段12aは、対象データDkの終端まで読み込んだか否かを判定する。読み込んでいない場合、抽出手段12aは、ステップS322に戻り、さらに対象データDkを単位ビットずつ読み込む。このように、対象データDkの終端まで読み込むと、抽出手段12aは処理を終了する。
このような第2の実装例において各参照装置1は、自身が保有する区切り子に対応づけられたデータを取得することにより、自身が参照するべきデータを取得する。
(第2の実装例の第1の変形例)
第2の実装例においても、第1の実装例と同様に各データが暗号化されても良い。この場合、暗号化された参照部分データの区切りがわかれば良いので、第1の区切り子P1および第2の区切り子P2と区別する必要はなく、同じ区切り子が用いられても良い。
このような第2の実装例の第1の変形例において、第1の更新装置2aの更新手段21aは、第1の実装例で説明した様に各参照部分データを、参照装置1が抽出可能な暗号鍵で暗号化する。更新手段21aはその後、区切り子を付与して、暗号化済みの各データを連結して、キーKとともにデータベースサーバ3に送信する。第2の更新装置2bの更新手段21bの処理も同様である。
第1の参照装置1aの抽出手段12aは、キーKに対応づけられた対象データDkを取得すると、第2の実装例で説明した様に、区切り子を探索し、その区切り子に対応づけられた参照部分データを抽出する。抽出手段12aは、抽出した参照部分データを、復号鍵で復号する。抽出手段12aは、復号に成功した場合、復号した参照部分データを記憶装置15に記憶し、成功しなかった場合、データを破棄する。
(第2の実装例の第2の変形例)
第2の実装例において、データベースサーバ3は、図8に示すような対象データDkを記憶する場合を説明したが、区切り子毎にデータを集約しても良い。具体的には図11に示すように、格納データDは、キーKに、区切り子P1、データD11およびD12、区切り子P2、データD12およびD22を対応づけた対象データDkを含む。
第2の変形例の第2の変形例において、データベースサーバ3の制御手段31は、図11に示すように、キーKおよび区切り子にデータを対応づけて、格納データDを更新する。制御手段31は、第1の更新装置2aから、キーK、第1の区切り子P1、データD11、第2の区切り子P2およびデータD12を取得する。さらに制御手段31は、第2の更新装置2bから、キーK、第1の区切り子P1、データD21、第2の区切り子P2およびデータD22を取得する。この場合、制御手段31は、キーKおよび第1の区切り子P1にデータD11およびD12を対応づけるとともに、キーKおよび第2の区切り子P2にデータD21およびD22を対応づけた対象データDkを、格納データDに記憶する。
このように第2の変形例において、区切り子をサブキーとしてデータを対応づけることにより、格納データDにおけるデータ容量を削減することができる。
(第3の実装例)
図12ないし図14を参照して、第3の実装例を説明する。第3の実装例において、各参照装置1は、各参照装置1が抽出するべきデータを特定するためのマスクMを保持する場合を説明する。
更新装置2の更新手段21は、各参照装置1が抽出可能な複数の参照部分データを連結して、キーKとともにデータベースサーバ3に送信し、格納データDを更新させる。参照装置1の抽出手段12は、対象データDkのうち当該参照装置1が抽出可能なデータ位置を特定するマスクMを用いて、参照データRを抽出する。
図12を参照して、各装置において第1のマスクM1および第2のマスクM2を用いて処理されるデータを説明する。第1の参照装置1aは、第1のマスクM1を保持する。第2の参照装置1bは、第2のマスクM2を保持する。第1のマスクM1および第2のマスクM2は、2進数で表記される。第1のマスクM1および第2のマスクM2は、所定のサーバから各装置にそれぞれ配信されても良い。また、各マスクは、データベースサーバ3などが予め保持し、各参照装置1からの要求に応じて、参照装置1は所望のマスクを取得しても良い。
マスクにおいて、対象データDkのビット列のうち、参照装置1が抽出するべきデータのビットに対して“1”が、それ以外のビットに対して“0”が、それぞれ設定される。各参照装置1は、データベースサーバ3から取得した対象データDkとマスクを、ビット毎に乗算して、参照データRを抽出する。
図12に示す例では、各参照装置1が一つのマスクを保持する場合を説明するがこれに限られない。例えば、各参照装置1は、データを抽出する目的に応じて複数のマスクを保持しても良い。
第1の更新装置2aの更新手段21aは、キーKと、第1の参照部分データD11および第2の参照部分データD12を連結したデータを、データベースサーバ3に送信する。第2の更新装置2bの更新手段21bは、キーKと、第1の参照部分データD21および第2の参照部分データD22を連結したデータを、データベースサーバ3に送信する。
図13を参照して、第1の更新装置2aの更新手段21aにおける更新処理を説明する。第2の更新装置2bの更新手段21bの処理も同様である。
ステップS401において更新手段21aは、第1の参照部分データD11を取得する。ステップS402において更新手段21aは、第2の参照部分データD12を取得する。ステップS403において更新手段21aは、キーと、ステップS401で取得した第1の参照部分データD11と、ステップS402で生成した第2の参照部分データD12とを、連結して、データベースサーバ3に送信する。
データベースサーバ3は、第1の更新装置2aおよび第2の更新装置2bから受信したデータに基づいて、格納データDを更新する。データベースサーバ3の制御手段31は、更新装置2から更新依頼がなされると、キーKに、各更新装置2から受信した複数の参照部分データを所定の順序で連結して、格納データDに更新する。この所定の順序は、各参照装置1が有するマスクMのビット列に対応する。この結果、格納データDは、キーKに、データD11、データD12、データD21、およびデータD22を対応づけた対象データDkを含む。
第1の参照装置1aおよび第2の参照装置1bは、キーKをデータベースサーバ3に入力し、それぞれ、入力したキーKに対応する対象データDkを取得する。ここで対象データDkは、各参照装置1が保持するマスクに対応する順序で、参照部分データを連結する。第1の参照装置1aおよび第2の参照装置1bは、データベースサーバ3に所望のマスクを要求して取得しても良い。
第1の参照装置1aの抽出手段12aは、自身が参照するべきデータのビット位置を特定するための第1のマスクM1と、取得した対象データDkとを乗算する。抽出手段12aは、対象データDkのうち、第1のマスクM1で“1”が対応づけられた位置のデータD11およびD21を取得する。抽出手段12aは、第1のマスクM1で“1”が対応づけられた位置以外のデータD12およびD22を破棄する。
同様に、第2の参照装置1bの抽出手段12bは、自身が参照するべきデータのビット位置を特定するための第2のマスクM2と、取得した対象データDkとを乗算する。抽出手段12bは、対象データDkのうち、第2のマスクM2で“1”が対応づけられた位置のデータD12およびD22を取得する。抽出手段12bは、第2のマスクM2で“1”が対応づけられた位置以外のデータD11およびD21を破棄する。
図14を参照して、第1の参照装置1aの抽出手段12aにおける更新処理を説明する。第2の参照装置1bの抽出手段12bの処理も同様である。
ステップS421において抽出手段12aは、データベースサーバ3から取得した対象データDkと、第1のマスクM1とをビット毎に乗算する。ステップS422において抽出手段12aは、ステップS421における乗算結果を、参照データR1として記憶装置15に記憶する。
このような第3の実装例に係るデータベースサーバ3は、第2の実装例と比べて区切り子を保持する必要がないので、レコード数が増えた場合でも、記憶容量の削減を実現し、コストを削減することができる。第3の実装例において更新装置2は参照部分データをデータベースサーバ3に登録し、参照装置1が所望のデータを抽出する仕組みを持つので、データベースサーバ3のみならず、更新装置2における負荷も軽減することができる。また第3の実装例に係る参照装置1は、対象データDkの処理目的に応じてマスクを用意することで、容易に所望の参照データRを抽出することができる。
(第3の実装例の変形例)
第3の実装例においても、第1の実装例と同様に各データが暗号化されても良い。
このような第3の実装例の変形例において、第1の更新装置2aの更新手段21aは、第1の実装例で説明した様に各参照部分データを、参照装置1が抽出可能な暗号鍵で暗号化する。更新手段21aはその後、暗号化済みの各参照部分データを所定の順序で連結して、キーKとともにデータベースサーバ3に送信する。第2の更新装置2bの更新手段21bの処理も同様である。
第1の参照装置1aの抽出手段12aは、キーKに対応づけられた対象データDkを取得すると、第3の実装例で説明した様に、マスクM1と乗算して参照部分データを抽出する。抽出手段12aは、抽出した参照部分データを、復号鍵で復号する。抽出手段12aは、復号に成功した場合、復号した参照部分データを記憶装置15に記憶し、成功しなかった場合、データを破棄する。
(その他の実施の形態)
上記のように、本発明の実施の形態とその第1ないし第3の実装例などによって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
例えば、本発明の実施の形態に記載した参照装置1、更新装置2およびデータベースサーバ3は、図1に示すようにそれぞれ一つのハードウェア上に構成されても良いし、その機能や処理数に応じて複数のハードウェア上に構成されても良い。また、既存のシステム上に実現されても良い。
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。