(57)【要約】  実施形態のデータ処理装置（１００）は、記憶部（１１１）と、データ変換部（１０２）と、第１送信部（１０３）と、問合せ式変換部（１０５）と、第２送信部（１０６）と、受信部（１０７）と、を備える。記憶部は、大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する。データ変換部は、管理対象データに含まれる数値データを暗号化するとともに、文字列集合に含まれる文字列要素を用いて数値データに対応する索引値を生成し、暗号化された数値データと索引値とを含む変換後管理対象データを生成する。第１送信部は、変換後管理対象データをサーバに送信する。問合せ式変換部は、問合せ式の数値を用いた条件部を、文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する。第２送信部は、変換後問合せ式をサーバに送信する。受信部は、変換後問合せ式を用いた問合せ処理の結果をサーバから受信する。
2014045361.tif 000002
【特許請求の範囲】
【請求項１】
大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部と、
管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するデータ変換部と、
前記変換後管理対象データをサーバに送信する第１送信部と、
問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する問合せ式変換部と、
前記変換後問合せ式を前記サーバに送信する第２送信部と、
前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する受信部と、を備えるデータ処理装置。
【請求項２】
前記データ変換部は、前記数値データが表す数値が前記文字列集合に含まれる文字列要素の個数よりも大きい場合に、前記文字列集合に含まれる文字列要素を循環させて前記数値データが表す数値に割り当てられる文字列要素を特定し、特定した文字列要素に対して循環の回数を表す情報を付加して前記索引値を生成し、
前記問合せ式変換部は、前記問合せ式の条件部に用いた数値が前記文字列集合に含まれる文字列要素の個数よりも大きい場合に、前記文字列集合に含まれる文字列要素を循環させて前記問合せ式の条件部に用いた数値に割り当てられる文字列要素を特定し、特定した文字列要素と循環の回数を表す情報とを用いて前記問合せ式の条件部を変換する、請求項１に記載のデータ処理装置。
【請求項３】
前記データ変換部は、事前に定義された割当規則を用いて、前記文字列集合に含まれる複数の文字列要素のうち、前記数値データが表す数値に割り当てられる文字列要素を特定し、該文字列要素を用いて前記索引値を生成し、
前記問合せ式変換部は、前記割当規則を用いて、前記文字列集合に含まれる複数の文字列要素のうち、前記問合せ式の条件部に用いた数値に割り当てられる文字列要素を特定し、該文字列要素を用いて前記問合せ式の条件部を変換する、請求項１に記載のデータ処理装置。
【請求項４】
前記データ変換部は、前記数値データが表す数値に割り当てられる文字列要素を、事前に定義された照合規則に従って変形して前記索引値を生成するとともに、該索引値の生成に用いた文字列要素に対して、前記照合規則に従った大小関係の照合処理が必要であることを示す情報を付加し、
前記問合せ式変換部は、前記問合せ式の条件部を、前記照合規則に従った大小関係の照合処理が必要である文字列要素を含む部分と、前記照合規則に従った大小関係の照合処理が必要である文字列要素を含まない部分とに分離した条件部に変換する、請求項１に記載のデータ処理装置。
【請求項５】
前記照合規則に基づいて、文字列要素の大小関係の照合処理を行うための照合解決プログラムを生成するプログラム生成部をさらに備え、
前記第２送信部は、前記照合解決プログラムを前記変換後問合せ式とともに前記サーバに送信する、請求項４に記載のデータ処理装置。
【請求項６】
データ処理装置と、該データ処理装置に対して通信可能に接続されたサーバと、を備えるデータ管理システムであって、
前記データ処理装置は、
大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部と、
管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するデータ変換部と、
前記変換後管理対象データを前記サーバに送信する第１送信部と、
問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する問合せ式変換部と、
前記変換後問合せ式を前記サーバに送信する第２送信部と、
前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する第１受信部と、を備え、
前記サーバは、
前記変換後管理対象データを前記データ処理装置から受信する第２受信部と、
前記変換後管理対象データを格納するデータ格納部と、
前記変換後問合せ式を前記データ処理装置から受信する第３受信部と、
前記変換後問合せ式を用いて前記データ格納部に対する問合せ処理を実行する問合せ処理実行部と、
前記変換後問合せ式を用いた問合せ処理の結果を前記データ処理装置に送信する第３送信部と、を備えるデータ管理システム。
【請求項７】
前記データ変換部は、前記数値データが表す数値に割り当てられる文字列要素を、事前に定義された照合規則に従って変形して前記索引値を生成し、
前記サーバと通信可能に接続され、前記サーバからの要求に応じて、前記照合規則に基づいて生成された照合解決プログラムを用いて、文字列要素の大小関係の照合処理を行う照合解決サーバをさらに備える、請求項６に記載のデータ管理システム。
【請求項８】
大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部を備えたデータ処理装置において実行されるデータ処理方法であって、
前記データ処理装置のデータ変換部が、管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するステップと、
前記データ処理装置の第１送信部が、前記変換後管理対象データをサーバに送信するステップと、
前記データ処理装置の問合せ式変換部が、問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成するステップと、
前記データ処理装置の第２送信部が、前記変換後問合せ式を前記サーバに送信するステップと、
前記データ処理装置の受信部が、前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信するステップと、を含むデータ処理方法。
【請求項９】
大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部を備えたコンピュータに、
管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成する機能と、
前記変換後管理対象データをサーバに送信する機能と、
問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する機能と、
前記変換後問合せ式を前記サーバに送信する機能と、
前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する機能と、を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ処理装置、データ管理システム、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングサービスの一形態として、インターネット経由でデータベースの利用環境を提供するサービスであるＤａａＳ（Database  as  a  Service）が注目を浴びている。ＤａａＳの利用者は、自らが所有するデータの永続管理ならびに一般的なデータベース管理業務をサービス提供者に委譲することで、コスト削減や管理の一元化を行うことが可能となる。しかし、サービス提供者が提供するデータベースサーバ（以下、単にサーバと称する。）の管理者は、サービスを享受する利用者（以下、クライアントと称する。）とは異なる第３者であることが多く、仮に第３者側でデータベース暗号化サービスが提供されたとしても情報漏洩が完全に防げるという保証はできない。また、第３者がセキュリティ攻撃者になるリスクもあるため、暗号化前の生データ自体をデータベース管理者に閲覧させたくない、といったニーズも高い。【０００３】
そこで、管理対象のデータをクライアント側で暗号化した後にサーバに転送し、暗号化されたデータをサーバに管理させることでセキュリティを向上させる方法が提案されている。しかし、暗号化されたデータに対して直接検索を行うことは難しいため、サーバ側のデータを一旦クライアントに送り、その後、クライアント側でデータを復号化し、元の問合せ条件を満足するかどうかの結果照合処理を行う、という手順を踏む必要があった。これではデータベースの検索サービスをほとんど享受できず、クライアントに負荷がかかり、処理時間が非常に大きくなるという問題点があった。このような問題を解決すべく、暗号化データをサーバで検索可能に管理する幾つかの方法が提案されているが、これら従来の方法では、高いセキュリティ性を確保しながら、特に数値データに対する範囲検索等の検索処理を高性能に行うことは難しく、改善が望まれていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７０７１９８号公報
【特許文献２】特開２００９−２５１７４８号公報
【非特許文献】
【０００５】
【非特許文献１】H．Hacigumus，B．Iyer，C．Li，and  S．Mehrotra．：“Executing  SQL  over  Encrypted  Data  in  the  Database-Service-Provider  Model，”In  Proceeding  of  the  2002  ACM  SIGMOD  International  Conference  on  Management  of  Data，pp．216-227，June  200
【非特許文献２】Hore  B．，Mehrotra  S．and  Tsudik  G．：“A  Privacy-Preserving  Index  for  Range  Query，”Proceedings  of  the  30th  VLDBConference，pp．720-730，2004
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができるデータ処理装置、データ管理システム、データ処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態のデータ処理装置は、記憶部と、データ変換部と、第１送信部と、問合せ式変換部と、第２送信部と、受信部と、を備える。記憶部は、大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する。データ変換部は、管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成する。第１送信部は、前記変換後管理対象データをサーバに送信する。問合せ式変換部は、問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する。第２送信部は、前記変換後問合せ式を前記サーバに送信する。受信部は、前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１実施形態に係るデータ管理システムの全体構成を示すブロック図である。
【図２】図２は、管理対象データの表現形式とデータベースの形式および問合せ式の形式との対応関係を示す図である。
【図３】図３は、データ変換部の具体的な構成例を示すブロック図である。
【図４】図４は、暗号化・索引対象情報の一例を示す図である。
【図５】図５は、図４に示した暗号化・索引対象情報を用いて生成される変換後管理対象データの一例を示す図である。
【図６】図６は、文字列集合記憶部が記憶する文字列集合を概念的に示す模式図である。
【図７】図７は、同じ文字列であっても照合規則の違いによって大小関係が異なる例を示す図である。
【図８】図８は、文字列要素割当決定部が文字列要素を割り当てて索引値生成部が索引値を生成する処理の一例を概念的に示す模式図である。
【図９】図９は、同じ数値に対して割り当てられる文字列要素を照合規則に従って変形する処理を概念的に示す模式図である。
【図１０】図１０は、問合せ式変換部の具体的な構成例を示すブロック図である。
【図１１】図１１は、補助情報を用いて問合せ式の条件部を最適化する処理の一例を概念的に示す模式図である。
【図１２】図１２は、第２実施形態に係るデータ管理システムの全体構成を示すブロック図である。
【図１３】図１３は、ｃｏｌｌａｔｅ表記を付与した変換後問合せ式の一例を示す図である。
【図１４】図１４は、第３実施形態に係るデータ管理システムの全体構成を示すブロック図である。
【図１５】図１５は、照合解決に用いる照合解決プログラムをＵＲＩ表現で埋め込んだ形式の変換後問合せ式の一例を示す図である。
【図１６】図１６は、第１実施例〜第４実施例の概要を説明する模式図である。
【図１７】図１７は、第１実施例〜第４実施例で扱う条件を示す図である。
【図１８】図１８は、第１実施例〜第４実施例においてデータ処理装置の問合せ式変換部により生成される変換後問合せ式を示す図である。
【図１９】図１９は、データ処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、実施形態のデータ処理装置、データ管理システム、データ処理方法およびプログラムを、図面を参照して説明する。
【００１０】
（第１実施形態）
図１は、第１実施形態に係るデータ管理システムの全体構成を示すブロック図である。データ管理システムは、例えば、ＤａａＳを提供するサービス提供者側で実現されるシステムであり、データ処理装置１００と、サーバ２００とを備える。データ処理装置１００は、サーバ２００に登録する管理対象データの暗号化や索引値の生成、問合せ式の変換などの処理を行う。サーバ２００は、データ処理装置１００から送られた管理対象データの格納、問合せ処理といった、一般的なデータベース処理機能を実現する役割を担う。データ処理装置１００とサーバ２００は互いに分離独立して構成される装置であり、ネットワークを介して通信可能に接続されている。なお、データ処理装置１００とサーバ２００は、異なる管理者によって管理されている。
【００１１】
まず、本実施形態に係るデータ管理システムを構成するデータ処理装置１００およびサーバ２００の具体的な構成を説明する前に、サーバ２００に登録される管理対象データの表現形式と、それに応じたサーバ２００のデータベースの形式およびデータベースに対する問合せ式の形式の具体例について説明する。以下では、従業員ＩＤ、従業員名、年収および年齢を１つのレコードに含む従業員テーブルを管理対象データとしてサーバ２００に登録する場合を例示する。
【００１２】
図２は、管理対象データの表現形式とデータベースの形式および問合せ式の形式との対応関係を示す図である。管理対象データの表現形式は、図２に示すように、リレーション形式、キーバリュー形式、ＸＭＬ（Extensible  Markup  Language）形式等の様々な形式が考えられ、それぞれ適したデータベースの形式が存在する。例えば、リレーション形式の場合はリレーショナルデータベース（ＲＤＢ）、キーバリュー形式の場合はキーバリューストア（ＫＶＳ）、ＸＭＬ形式の場合はＸＭＬデータベース（ＸＭＬＤＢ）である。また、データベースの形式に応じて問合せ式の形式も異なり、リレーショナルデータベースに対する問合せ式はＳＱＬ、キーバリューストアに対する問合せ式はＫＶＳクエリ、ＸＭＬデータベースに対する問合せ式はＸＱＵＥＲＹで記述される。
【００１３】
本実施形態に係るデータ管理システムは、リレーション形式であれば＜カラム名，値＞、キーバリュー形式であれば＜キー名，値＞、ＸＭＬ形式であれば＜要素（属性）名，値＞のように、キーと値のペアで表現できるデータを管理対象データとして扱うものとし、サーバ２００が管理するデータベースの形式や、データベースに対する問合せ式の形式は、管理対象データの表現形式に対応したものとする。
【００１４】
次に、データ処理装置１００の構成について説明する。データ処理装置１００は、機能的な構成要素として、図１に示すように、データ受信部１０１と、データ変換部１０２と、データ送信部１０３と、問合せ式受信部１０４と、問合せ式変換部１０５と、問合せ式送信部１０６と、結果受信部１０７と、後処理部１０８と、結果送信部１０９と、を備える。また、データ処理装置１００は、データ変換部１０２や問合せ式変換部１０５での処理に用いる情報資源として、文字列集合記憶部１１１と、補助情報記憶部１１２と、暗号化・索引対象情報記憶部１１３と、鍵情報記憶部１１４と、を備える。
【００１５】
データ受信部１０１は、例えばＤａａＳの利用者等（以下、ユーザと称する。）から送られた管理対象データＤ１を受信する。
【００１６】
データ変換部１０２は、文字列集合記憶部１１１が記憶する文字列集合、補助情報記憶部１１２が記憶する補助情報、暗号化・索引対象情報記憶部１１３が記憶する暗号化・索引対象情報、および鍵情報記憶部１１４が記憶する鍵情報を用いて、データ受信部１０１が受信した管理対象データＤ１に対して暗号化処理や索引値の生成を行い、変換後管理対象データＤ２を生成する。なお、データ変換部１０２による処理の詳細は後述する。
【００１７】
データ送信部１０３は、データ変換部１０２が生成した変換後管理対象データＤ２を、登録要求とともにサーバ２００に対して送信する。
【００１８】
問合せ式受信部１０４は、ユーザから送られた問合せ式Ｑ１を受信する。
【００１９】
問合せ式変換部１０５は、文字列集合記憶部１１１が記憶する文字列集合、および補助情報記憶部１１２が記憶する補助情報を用いて、問合せ式受信部１０４が受信した問合せ式Ｑ１の条件部（条件を指定した部分）の数値データを文字列要素に置き換え、変換後問合せ式Ｑ２を生成する。なお、問合せ式変換部１０５による処理の詳細は後述する。
【００２０】
問合せ式送信部１０６は、問合せ式変換部１０５が生成した変換後問合せ式Ｑ２をサーバ２００に対して送信する。
【００２１】
結果受信部１０７は、サーバ２００が変換後問合せ式Ｑ２を用いた問合せ処理を行った結果である結果データ集合Ｒ１を受信する。
【００２２】
後処理部１０８は、結果受信部１０７が受信した結果データ集合Ｒ１、すなわち変換後問合せ式を用いた問合せ処理を行った結果である結果データ集合Ｒ１を、必要に応じて、変換前の元の問合せ式Ｑ１の要求に適合するように変換し、返却結果データ集合Ｒ２を生成する。この際、後処理部１０８は、結果受信部１０７が受信した結果データ集合Ｒ１に暗号化された数値データが含まれている場合は、鍵情報記憶部１１４が記憶する鍵情報を用いてこれを復号化し、返却結果データ集合Ｒ２を生成する。
【００２３】
結果送信部１０９は、後処理部１０８が生成した返却結果データ集合Ｒ２を、問合せ式Ｑ１を送信したユーザに対して送信する。
【００２４】
次に、サーバ２００の構成について説明する。サーバ２００は、機能的な構成要素として、図１に示すように、データ受信部２０１と、データ格納処理部２０２と、問合せ式受信部２０３と、問合せ処理実行部２０４と、結果送信部２０５と、を備える。また、サーバ２００は、データベースとして機能するデータ格納部２１０を備える。
【００２５】
データ受信部２０１は、データ処理装置１００から登録要求とともに送信された変換後管理対象データＤ２を受信する。
【００２６】
データ格納処理部２０２は、データ処理装置１００からの登録要求に応じて、データ受信部２０１が受信した変換後管理対象データＤ２をデータ格納部２１０に格納する。
【００２７】
問合せ式受信部２０３は、データ処理部１００から送信された変換後問合せ式Ｑ２を受信する。
【００２８】
問合せ処理実行部２０４は、問合せ式受信部２０３が受信した変換後問合せ式Ｑ２を用いてデータ格納部２１０に対する問合せ処理を実行し、結果データ集合Ｒ１を取得する。
【００２９】
結果送信部２０５は、問合せ処理実行部２０４が変換後問合せ式Ｑ２を用いた問合せ処理の結果として取得した結果データ集合Ｒ１を、データ処理装置１００に対して送信する。
【００３０】
次に、本実施形態に係るデータ管理システムにおける動作の概要について説明する。まず、データ登録時の動作を説明する。
【００３１】
ユーザは、サーバ２００に永続管理させたい管理対象データＤ１をデータ処理装置１００に送る。ユーザからデータ処理装置１００に送られた管理対象データＤ１は、データ処理装置１００のデータ受信部１０１により受信され、データ変換部１０２に送られる。
【００３２】
データ変換部１０２は、データ受信部１０１から管理対象データＤ１が送られると、暗号化・索引対象情報記憶部１１３が記憶する暗号化・索引対象情報を参照し、管理対象データＤ１に含まれる暗号化対象および索引値を生成する対象となる数値データを特定する。そして、データ変換部１０２は、特定した暗号化対象の数値データを、鍵情報記憶部１１４が記憶する鍵情報を用いて暗号化するとともに、暗号化した数値データのうちで索引値を生成する対象となる数値データに対応する索引値を生成する。
【００３３】
本実施形態では、データ変換部１０２が索引値を生成する際に、文字列集合記憶部１１１が記憶する文字列集合、および補助情報記憶部１１２が記憶する補助情報を用いる。文字列集合は、大小関係が一意に特定できる複数の文字列要素の集合であり、照合規則に従って事前に構築され、文字列集合記憶部１１１に格納されている。また、補助情報は、文字列用要素を用いて索引値を生成するために必要となる情報であり、例えば、文字列集合を構成する有限個数の文字列要素を循環して使用する場合の規則や、文字列要素を数値に割り当てる際の割当規則等の情報である。データ変換部１０２は、補助情報を用いて、文字列集合に含まれる複数の文字列要素のうち、索引値を生成する対象となる数値データに対応する文字列要素を特定し、特定した文字列要素を用いて、暗号化した数値データに対応する索引値を生成する。そして、データ変換部１０２は、暗号化した数値データと索引値とを含む変換後管理対象データＤ２を生成する。
【００３４】
データ変換部１０２で生成された変換後管理対象データＤ２は、データ送信部１０３からサーバ２００へと送信され、サーバ２００のデータ受信部２０１により受信されて、データ格納処理部２０２へと送られる。データ格納処理部２０２は、特殊な処理を行うことはせずに、データ受信部２０１が受信した変換後管理対象データＤ２をそのままデータ格納部２１０に格納する。
【００３５】
次に、問合せ式を用いたデータ検索時の動作を説明する。本実施形態のデータ管理システムでは、ユーザの問合せはサーバ２００に対して直接行われるのではなく、データ処理装置１００に対して行われる。
【００３６】
ユーザは、サーバ２００に問合せ処理を実行させるための問合せ式Ｑ１をデータ処理装置１００に送る。ユーザからデータ処理装置１００に送られた問合せ式Ｑ１は、データ処理装置１００の問合せ式受信部１０４により受信され、問合せ式変換部１０５に送られる。
【００３７】
問合せ式変換部１０５は、問合せ式受信部１０４から問合せ式Ｑ１が送られると、この問合せ式Ｑ１を元にして、データ登録時に生成した索引値で検索できるような変換後問合せ式Ｑ２を生成する。具体的には、問合せ式変換部１０５は、文字列集合記憶部１１１が記憶する文字列集合、および補助情報記憶部１１２が記憶する補助情報を用いて、問合せ式Ｑ１の数値を用いた条件部を、文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式Ｑ２を生成する。
【００３８】
問合せ式変換部１０５で生成された変換後問合せ式Ｑ２は、問合せ式送信部１０６からサーバ２００へと送信され、サーバ２００の問合せ式受信部２０３により受信されて、問合せ処理実行部２０４へと送られる。問合せ処理実行部２０４は、問合せ式受信部２０３が受信した変換後問合せ式Ｑ２をそのまま用いてデータ格納部２１０に対する問合せ処理を実行し、変換後問合せ式Ｑ２の条件部に適合する結果データ集合Ｒ１を取得する。
【００３９】
問合せ処理実行部２０４により取得された結果データ集合Ｒ１は、結果送信部２０５からデータ処理装置１００へと送信され、データ処理装置１００の結果受信部１０７により受信されて、後処理部１０８へと送られる。後処理部１０８は、結果受信部１０７が受信した結果データ集合Ｒ１を、必要に応じて元の問合せ式Ｑ１の要求に適合するように変換し、返却結果データ集合Ｒ２を生成する。そして、この後処理部１０８で生成された返却結果データ集合Ｒ２が、結果送信部１０９から、問合せ式Ｑ１に対する検索結果としてユーザに返却される。
【００４０】
以上のように、本実施形態に係るデータ管理システムでは、データ処理装置１００において、管理対象データＤ１に含まれる秘匿したい数値データを暗号化し、さらに暗号化した数値データに対応する索引値を付加した変換後管理対象データＤ２を生成して、この変換後管理対象データＤ２をサーバ２００のデータ格納部２１０に格納するようにしている。また、ユーザが発行する問合せ式Ｑ１を、データ処理装置１００において、索引値で検索できるような変換後問合せ式Ｑ２に変換し、サーバ２００は、この変換後問合せ式Ｑ２を用いてデータ格納部２１０に対する問合せ処理を実行し、問合せ処理の結果である結果データ集合Ｒ１をデータ処理装置１００に送信する。そして、データ処理装置１００において、結果データ集合Ｒ１を必要に応じて問合せ式Ｑ１の要求に適合するように変換して返却結果データ集合Ｒ２を生成し、この返却結果データ集合Ｒ２を、問合せ式Ｑ１の結果としてユーザに返却するようにしている。したがって、本実施形態に係るデータ管理システムによれば、暗号化された数値データに関する演算、例えば、数値データに対する範囲検索、ＭＡＸ／ＭＩＮ処理、結合処理、ソート処理等の高速性が要求される構文に対する演算をサーバ２００側で直接実行することができ、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができる。
【００４１】
次に、データ処理装置１００が備えるデータ変換部１０２について、処理の具体例を例示しながらさらに詳しく説明する。図３は、データ変換部１０２の具体的な構成例を示すブロック図である。
【００４２】
データ変換部１０２は、図３に示すように、暗号化・索引対象特定部１２１と、文字列要素割当決定部１２２と、索引値生成部１２３と、変換後管理対象データ生成部１２４と、を備える。
【００４３】
暗号化・索引対象特定部１２１は、暗号化・索引対象情報記憶部１１３が記憶する暗号化・索引対象情報を参照し、入力された管理対象データＤ１に含まれる暗号化対象および索引値を生成する対象となる数値データを特定する。
【００４４】
図４は、暗号化・索引対象情報の一例を示す図である。暗号化・索引対象情報は、適用対象の管理対象データＤ１の種類を特定する情報と、その管理対象データＤ１の中で暗号化や索引値の生成が必要な部分を特定する情報とを含む。図４の例は、図２のリレーション形式で表現された従業員テーブルに対して適用される暗号化・索引対象情報の例を示しており、年収カラムおよび年齢カラムに対して暗号化の指定がなされ、さらに年収カラムに対しては索引値を生成する指定がなされ、その索引値を“索引１”というカラム値とすることを示している。
【００４５】
図５は、図４に示した暗号化・索引対象情報に従って、図２のリレーション形式で表現された従業員テーブルの年収カラムおよび年齢カラムの数値データを暗号化し、さらに年収カラムの数値データに対応する索引値を生成して、“索引１”というカラム値として付加した場合の例を示している。この図５に示す従業員テーブルは、後述の変換後管理対象データ生成部１２４により生成される変換後管理対象データＤ２に相当する。従業員テーブルをサーバ２００で永続管理させることを考えた場合、特に年収や年齢といった情報は秘匿性が要求されるため、暗号化した状態でサーバ２００に格納する。この際、暗号化された数値データに関する演算をサーバ２００側で直接実行できるようにするため、演算の対象となる暗号化された数値データに対しては、その数値データに対応する文字列要素を用いて索引値を生成し、その索引値を用いて暗号化された数値データの大小関係を判断できるようにしている。
【００４６】
文字列要素割当決定部１２２は、暗号化・索引対象特定部１２１により索引値を生成する対象として特定された数値データに対して、文字列集合記憶部１１１が記憶する文字列集合に含まれる文字列要素のうちの１つを割り当てる。
【００４７】
図６は、文字列集合記憶部１１１が記憶する文字列集合を概念的に示す模式図である。文字列集合は、図６に示すように、照合規則に従って大小関係が一意に定まる複数の文字列要素が昇順に並んで管理されている。照合規則はコレーション（Ｃｏｌｌａｔｉｏｎ）と呼ばれることもあり、照合規則によって文字列要素の大小関係が一意に決定される。文字列集合に含まれる文字列要素は、任意の辞書から生成してもよいし、照合規則に従いランダムに生成してもよい。文字列要素は、ある程度大きめの個数を生成しておくことでセキュリティ強度を高めることができる。このため、文字列集合に含まれる文字列要素の個数に閾値を設けて、文字列集合の生成時に文字列要素の個数が閾値以上になるまで文字列要素の生成を継続するようにしてもよい。
【００４８】
図７は、同じ文字列であっても照合規則の違いによって大小関係が異なる例を示す図である。図７の例では、照合規則１に従うと文字列ａＥＥＲと文字列Ｒａとが同一値であるのに対して、照合規則２に従うと文字列ａＥＥＲが文字列Ｒａよりも大きくなることを示している。また、照合規則１に従うと文字列ＥＵＦＥＦＦＥｃＥＳが文字列ＦＥＥＥＥＦＵＳＲよりも大きくなるのに対して、照合規則２に従うと文字列ＥＵＦＥＦＦＥｃＥＳが文字列ＦＥＥＥＥＦＵＳＲよりも小さくなることを示している。照合規則は、文字に対する大小関係（同一値を含む）や、ダミーの文字である除去コード等を規定している。例えば、プログラム言語であるＪａｖａ（登録商標）等ではＣｏｌｌａｔｉｏｎクラスが標準的に実装されており、これらを照合規則として利用することができる。
【００４９】
文字列集合は、以上のような照合規則に従って大小関係が決定される複数の文字列要素の集合である。ただし、本実施形態で用いる文字列集合には同一値となる文字列要素は含まれておらず、すべての文字列要素間で大小関係が一意に特定されるものとする。また、文字列集合の生成に使用する照合規則は特に限定されるものではなく、一般的なラテン語規則（アルファベット文字の大小関係を定めた規則）等を照合規則として用いることもできる。
【００５０】
文字列要素割当決定部１２２は、文字列集合に含まれる文字列要素の中から、索引値を生成する対象となる数値データに対して割り当てる文字列要素を決定する。ここで、最も単純な割り当て方法は、文字列集合における文字列要素の並び順に沿って文字列要素に与えた数値と数値データが表す数値とをマッピングさせる方法である。しかし、任意の数値を有限の文字列要素で表現しようとする場合は、たとえ整数値に限ったとしても現実的には表現しきれない。そこで、本実施形態においては、索引値を生成する対象となる数値データが表す数値が文字列集合に含まれる文字列要素の個数よりも大きい場合に、文字列集合に含まれる文字列要素を循環させ、文字列要素の循環を必要な回数だけ繰り返すことで、数値データが表す数値に割り当てられる文字列要素を決定する方式とする。
【００５１】
すなわち、文字列集合に含まれる文字列要素の個数が例えば１００であり、文字列要素の並び順に沿って０〜９９の数値が与えられている場合、索引値を生成する対象となる数値データが表す数値が例えば１０３であれば、文字列集合に含まれる文字列要素を１回循環させて、文字列集合における並び順に沿って３の数値に該当する文字列要素を数値データ１０３に割り当てる。また、索引値を生成する対象となる数値データが表す数値が例えば２１５であれば、文字列集合に含まれる文字列要素を２回循環させて、文字列集合における並び順に沿って１５の数値に該当する文字列要素を数値データ２１５に割り当てる。ただし、このように割り当てられた文字列要素をそのまま索引値とすると索引値の大小関係が失われることになるので、後述の索引値生成部１２３では、文字列要素割当決定部１２２が割り当てた文字列要素に対して、循環の回数を表す情報を付加して索引値を生成する。具体的には、例えば、文字列集合に含まれる文字列要素を１回循環させて文字列要素を割り当てた場合は、その文字列要素の先頭にＸを付加したものを索引値とし、文字列集合に含まれる文字列要素を２回循環させて文字列要素を割り当てた場合は、その文字列要素の先頭にＸＸを付加したものを索引値とする。これにより、文字列集合に含まれる文字列要素の個数は一定のままとしながら、その個数を超える数値データについても、大小関係を維持した索引値を現実的なコストで生成することができる。なお、循環の回数を表す情報やその情報を文字列要素のどの位置に付加するか等、文字列集合を構成する有限個数の文字列要素を循環して使用する場合の規則は、補助情報として、補助情報記憶部１１２が記憶している。
【００５２】
また、文字列要素割当決定部１２２は、事前に定義された割当規則を用いて、文字列集合に含まれる文字列要素の中から、索引値を生成する対象となる数値データに対して割り当てる文字列要素を決定するようにしてもよい。例えば、割当関数Ｐｏｓを定義し、Ｐｏｓ＝ｎであれば、文字列集合における並び順に沿って与えられる数値が、数値データが表す数値（文字列集合を循環させる場合は循環後の余剰の数値）と一致する文字列要素を、数値データに対して割り当てる文字列要素とする。また、Ｐｏｓ＝２ｎであれば、文字列集合における並び順に沿って与えられる数値が、数値データが表す数値（文字列集合を循環させる場合は循環後の余剰の数値）の２倍と一致する文字列要素を、数値データに対して割り当てる文字列要素とする。
【００５３】
すなわち、索引値を生成する対象となる数値データが表す数値が例えば１５である場合、事前に定義された割当関数がＰｏｓ＝ｎであれば、文字列集合における並び順に沿って１５の数値に該当する文字列要素を数値データ１５に割り当てる。また、事前に定義された割当関数がＰｏｓ＝２ｎであれば、文字列集合における並び順に沿って３０の数値に該当する文字列要素を数値データ１５に割り当てる。これにより、索引値から数値が推定されるリスクを低減させることができ、セキュリティ性を向上させることができる。
【００５４】
また、上述したように、文字列集合に含まれる文字列要素を循環させて使用する場合、循環の回数ごとに異なる割当規則を定義するようにしてもよい。このように、循環の回数ごとに異なる割当規則を定義するようにすれば、索引値から数値を推定することがさらに困難になるため、セキュリティ性をさらに向上させることができる。なお、文字列要素の割り当てに用いる割当規則は、補助情報として、補助情報記憶部１１２が記憶している。
【００５５】
索引値生成部１２３は、索引値を生成する対象となる数値データに対して、文字列要素割当決定部１２２により割り当てられた文字列要素を用いて、索引値を生成する。例えば、文字列要素割当決定部１２２が文字列集合に含まれる文字列要素を１回循環させて文字列要素を割り当てた場合、索引値生成部１２３は、文字列要素割当決定部１２２により割り当てられた文字列要素の先頭にＸを付加したものを索引値として生成する。また、文字列要素割当決定部１２２が文字列集合に含まれる文字列要素を２回循環させて文字列要素を割り当てた場合、索引値生成部１２３は、文字列要素割当決定部１２２により割り当てられた文字列要素の先頭にＸＸを付加したものを索引値として生成する。
【００５６】
図８は、文字列要素割当決定部１２２が文字列要素を割り当てて索引値生成部１２３が索引値を生成する処理の一例を概念的に示す模式図である。図８の例は、文字列集合に含まれる文字列要素の個数が１００の場合を示しており、Ｃａｓｅ１はすべての循環において割当関数がＰｏｓ＝ｎとした例、Ｃａｓｅ２は循環ごとに割当関数Ｐｏｓを定義した例である。
【００５７】
文字列要素割当決定部１２２が数値に対して文字列要素を割り当てる場合、まず、対象となる数値に対応する循環回数が決定される。例えば、対象となる数値が１０２の場合は、文字列集合に含まれる文字列要素の循環回数は１回（循環１）である。
【００５８】
次に、文字列要素割当決定部１２２は、決定した循環回数において、割当規則Ｐｏｓに従って、対象となる数値に割り当てる文字列要素を決定する。例えば、対象となる数値が１０２の場合、Ｃａｓｅ１では循環１に対する割当関数はＰｏｓ＝ｎであるので、“ＡＢＤ”の文字列要素が割り当てられる。また、Ｃａｓｅ２では循環１に対する割当関数はＰｏｓ＝２ｎであるので、“ＢＣＤＦ”の文字列要素が割り当てられる。
【００５９】
次に、索引値生成部１２３は、文字列要素割当決定部１２２によって割り当てられた文字列要素に対して、循環回数を表す情報を付加して、対象となる数値に対応する索引値を生成する。例えば、対象となる数値が１０２の場合、Ｃａｓｅ１では文字列要素割当決定部１２２によって“ＡＢＤ”の文字列要素が割り当てられ、循環１では文字列要素の先頭にＸを付加することが定められているため、索引値として“ＸＡＢＤ”が生成される。また、Ｃａｓｅ２では文字列要素割当決定部１２２によって“ＢＣＤＦ”の文字列要素が割り当てられ、循環１では先頭にＸを付加することが定められているため、索引値として“ＸＢＣＤＦ”が生成される。このように生成された索引値は、文字列要素の先頭にＸが付加されていない値よりも文字列要素の先頭にＸが付加された値の方が大きく、文字列要素の先頭にＸが付加された値よりも文字列要素の先頭にＸＸが付加された値の方が大きいという順序関係が定められている。例えば、ＺＺＺ＜ＸＡＢであり、ＸＺＺＺ＜ＸＸＡＢである。
【００６０】
ところで、以上説明した方法で数値データに対応する索引値を生成すると、同じ数値を表す複数の数値データのそれぞれに索引値を生成する場合に同じ索引値が生成されることになり、サーバ側で元の数値を推定されるリスクが残る。このようなリスクを回避するため、索引値生成部１２３は、同じ数値を表す複数の数値データのそれぞれに対して索引値を生成する場合は、一方の索引値については、その元となる文字列要素を照合規則に従って変形した上で、索引値を生成する。このようにして生成された複数の索引値同士は、単純に文字列比較（デフォルト照合）した場合は異なる値であるが、文字列要素の変形に用いた照合規則を指定して比較した場合は、同じ値であることを正しく判定することができる。文字列要素の変形に用いる照合規則はデータ処理装置１００側で定義したものであるので、サーバ２００側では値の推定が難しくなり、セキュリティを向上させることができる。なお、文字列要素の変形に用いる照合規則は、文字列集合を生成するために用いた照合規則と同じ規則であってもよいし、異なる規則であってもよい。
【００６１】
図９は、同じ数値に対して割り当てられる文字列要素を照合規則に従って変形する処理を概念的に示す模式図である。例えば、従業員テーブルに含まれる２つのレコードにおいて、年収カラムに対応する数値データが表す数値がそれぞれ３である場合に、文字列要素割当決定部１２２によって数値３に対して割り当てられた文字列要素が“ＢＣＤＥ”であったとする。ここで、“Ｇ”および“Ｍ”を除去コードとし、“Ｃ”と“Ｈ”、“Ｌ”と“Ｅ”をそれぞれ同値とする照合規則を用いると、文字列要素“ＢＣＤＥ”を、例えば“ＧＢＭＨＤＭＬ”といった文字列に変形することができる。この場合、索引値生成部１２３は、２つのレコードの年収カラムに対応する一方の数値データに対応する索引値をＢＣＤＥとし、他方の数値データに対応する索引値を、例えばＧＢＭＨＤＭＬとすることができる。これらの索引値は、単純な文字列比較では異なる値であるが、照合規則を指定して比較した場合は同じ値となる。
【００６２】
ここで、照合規則に従って文字列要素を変形して索引値を生成する場合に幾つかのルールを設けることで、検索処理を高速化することができる。例えば、文字列要素を変形した場合であっても、循環回数を表す情報についてはそのまま維持させるというルールである。文字列集合に含まれる文字列要素の個数が１０００であり、循環ごとに文字列要素の先頭にＸを付加する規則である場合、先頭にＸが付いていない索引値が示す数値は０〜９９９の範囲であり、先頭にＸが１つだけ付いている索引値が示す数値は１０００〜１９９９の範囲であり、先頭にＸが２つ付いている索引値が示す数値は２０００〜２９９９の範囲となる。これは、サーバ２００側では分からないがデータ処理装置１００側では認識可能である。したがって、例えばこのカラムの索引値に対して、ＳＱＬ関数のｍａｔｃｈ（値，“Ｘ”）のような指定をすれば、１０００〜１９９９の要素を検索するというのと同義であり、ｍａｔｃｈ（値，“ＸＸ”）のような指定をすれば、２０００〜２９９９の要素を検索するというのと同義である。この方法は、データ処理装置１００側でしか照合規則を持てない場合の範囲（値）検索の解決時に有効であり、明らかに不要な範囲の索引値を除去することができる。
【００６３】
また、照合解決が必要な索引値とそれ以外を区別するための情報を保持することも有効である。すなわち、照合規則を用いて同一値から２つの異なる索引値を生成した場合、この索引値は照合規則を用いて大小関係が比較されることになる。しかし、照合規則を用いた処理は一般的な比較処理より低速になることが多いことから、できるだけデータ処理装置１００側でこれらを意識して問合せ式を最適化しておくことが望ましい。そこで、照合規則を用いて文字列要素を変形して索引値を生成した場合、その文字列要素に対して照合解決が必要となることを示す情報をビット列で保持しておく。また、循環ごとに、その循環内で同様に照合規則を用いて索引値を生成した場合、その循環内で照合解決が必要となることを示す情報をビット列で保持しておく。それぞれの循環において文字列要素に対してビット列を持たせるようにしてもよいが、ここでは情報量削減のために、文字列要素用のビット列と循環用のビット列との重ね合わせで管理する方式を取る。これにより、問合せ式の範囲検索に応じて照合規則を用いた照合解決を行う必要があるかどうかを判定できるようになり、値に関する問合せの最適化が行える。
【００６４】
上記のような照合解決が必要な索引値とそれ以外を区別するための情報は、例えば、補助情報の一つとして補助情報記憶部１１２に格納しておくことができる。また、照合解決が必要かどうかを示す情報を索引値に直接組み込む方法も考えられる。例えば、照合規則で除去コードとして指定されている文字の１つを判定用に予約して、文字列要素の先頭、あるいは上述した循環回数を表す情報（Ｘ，ＸＸ等）の次に付加したものを索引値とすればよい。
【００６５】
変換後管理対象データ生成部１２４は、暗号化・索引対象特定部１２１によって暗号化対象として特定された管理対象データＤ１の数値データを、鍵情報記憶部１１４が記憶する鍵情報を用いて暗号化するとともに、索引値生成部１２３が生成した索引値を付加して、変換後管理対象データＤ２を生成する。このように生成された変換後管理対象データＤ２は、上述したように、データ処理装置１００からサーバ２００へと送られて、サーバ２００のデータ格納部２１０に格納される。
【００６６】
次に、データ処理装置１００が備える問合せ式変換部１０５について、処理の具体例を例示しながらさらに詳しく説明する。図１０は、問合せ式変換部１０５の具体的な構成例を示すブロック図である。
【００６７】
問合せ式変換部１０５は、図１０に示すように、問合せ式解析部１５１と、最適化部１５２と、文字列要素割当決定部１５３と、変換後問合せ式生成部１５４と、を備える。
【００６８】
問合せ式解析部１５１は、入力された問合せ式Ｑ１を解析し、暗号化・索引対象情報記憶部１１３が記憶する暗号化・索引対象情報を用いて、索引値が生成された数値データを検索の対象とする条件部を特定する。
【００６９】
最適化部１５２は、補助情報記憶部１１２が記憶する補助情報（文字列要素を循環して使用する場合の規則、照合解決が必要な索引値とそれ以外を区別するための情報等）を用いて、問合せ式解析部１５１が特定した問合せ式Ｑ１の条件部を最適化する。
【００７０】
図１１は、補助情報を用いて問合せ式Ｑ１の条件部を最適化する処理の一例を概念的に示す模式図である。図１１の例では、文字列集合に含まれる文字列要素の個数が３０００（０〜２９９９）である。文字列集合に含まれる文字列要素を循環させない循環０では、割当関数がＰｏｓ＝３ｎであるため、循環０から文字列要素が割り当てられる数値は０〜９９９の範囲であり、照合解決の要否を示す情報が照合不要となっている。また、文字列集合に含まれる文字列要素を１回循環させた循環１では、割当関数がＰｏｓ＝３ｎであるため、循環１から文字列要素が割り当てられる数値は１０００〜１９９９の範囲であり、照合解決の要否を示す情報が照合必要となっている。また、文字列集合に含まれる文字列要素を２回循環させた循環２では、割当関数がＰｏｓ＝ｎであるため、循環２から文字列要素が割り当てられる数値は２０００〜４９９９の範囲であり、照合解決の要否を示す情報が照合不要となっている。循環ごとの割当関数や照合解決の要否を示す情報は、例えば、補助情報記憶部１１２から得られる情報である。
【００７１】
図１１の問合せ式１においては、条件部の数値で示される範囲は循環０の範囲内であることが分かる。そして、循環０の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が不要である。したがって、問合せ式１の条件部は、特に最適化することなく、循環０の文字列要素を用いて数値を索引値に変換すればよい。
【００７２】
図１１の問合せ式２においては、条件部の数値で示される範囲は循環１と循環２の２つの循環に跨がることが分かる。そして、循環２の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が不要であるが、循環１の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が必要となる。ここで、循環１を表す文字がＸであるとすると、ｍａｔｃｈ（ｔ．値，“Ｘ”）によって循環１の文字列要素を用いた索引値を持つレコードをすべて取り出すことができる。また、循環２に関しては、照合規則を用いた照合解決が不要であり、そのままサーバ２００側で処理させることができるので、この循環２に該当する数値のうちの先頭の数値から、条件部の数値範囲の上限値までを検索範囲とするように条件部の数値範囲を置き換える。ここで、単純に循環２に該当する数値のうちの先頭の数値を用いると、文字列集合の先頭の文字列要素が何であるかがサーバ２００側で特定されてしまうので、循環１を包含するように範囲を拡張した上で、条件部の数値範囲を置き換える。図１１の例では、循環１からランダムに選択した値１５３５を、数値範囲の下限値に設定している。この場合、一部区間のレコードが重複して検索されることになるので、これを防ぐためにｄｉｓｔｉｎｃｔ処理を問合せ式に追加している。
【００７３】
文字列要素割当決定部１５３は、データ変換部１０２の文字列要素割当決定部１２２と同様に、補助情報記憶部１１２が記憶する補助情報（文字列要素の割当に用いる割当関数、文字列要素を循環して使用する場合の規則等）を用いて、文字列集合記憶部１１１が記憶する文字列集合の中から、問合せ式Ｑ１の条件部の数値に対して割り当てる文字列要素を決定する。ここで、問合せ式Ｑ１の条件部は、必要に応じて最適化部１５２により最適化された条件部である。
【００７４】
変換後問合せ式生成部１５４は、問合せ式Ｑ１の条件部（必要に応じて最適化部１５２により最適化された条件部）を、文字列要素割当決定部１５３によって割り当てられた文字列要素を用いた条件部に変換し、変換後問合せ式Ｑ２を生成する。このように生成された変換後問合せ式Ｑ２は、上述したように、データ処理装置１００からサーバ２００へと送られて、サーバ２００における問合せ処理に用いられる。
【００７５】
その後、変換後問合せ式Ｑ２を用いた問合せ処理の結果である結果データ集合Ｒ１がサーバ２００からデータ処理装置１００へと送られると、上述したように、後処理部１０８において、この結果データ集合Ｒ１が最終的に問合せ式Ｑ１の応答としてユーザに返却する返却結果データ集合Ｒ２に変換される。なお、後処理部１０８での処理は、必要がある場合だけ行えばよく、検索結果が暗号化部分を含まない場合や、最適化によってデータ処理装置１００側での照合が不要であることが事前に分かっている場合等においては、結果データ集合Ｒ１をそのまま返却結果データ集合Ｒ２としてユーザに返却すればよい。
【００７６】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態は、索引値の照合解決を行うための照合解決プログラムをデータ処理装置１００からサーバ２００に送り、サーバ２００において、この照合解決プログラムを用いて索引値の照合解決を行うようにしたものである。
【００７７】
図１２は、第２実施形態に係るデータ管理システムの全体構成を示すブロック図である。本実施形態のデータ管理システムでは、データ処理装置１００の機能的な構成要素として、照合解決プログラムＰ１を生成するプログラム生成部１３０が追加されている。その他の構成は図１に示した第１実施形態のデータ管理システムの構成と同様である。
【００７８】
プログラム生成部１３０は、データ変換部１０２において索引値を生成する際に文字列要素の変形に用いた照合規則に従い、照合解決が必要な索引値に対する照合解決を行うための照合解決プログラムＰ１を生成する。プログラム生成部１３０が生成した照合解決プログラムＰ１は、問合せ式変換部１０５が生成した変換後問合せ式Ｑ２とともに、問合せ式送信部１０６からサーバ２００へと送信される。
【００７９】
第２実施形態の場合、データ処理装置１００の問合せ式変換部１０５は、問合せ式の条件部の照合解決が必要となる値に関して、ｃｏｌｌａｔｅ表記を付与した変換後問合せ式Ｑ２を生成する。図１３は、ｃｏｌｌａｔｅ表記を付与した変換後問合せ式Ｑ２の一例を示す図である。ｃｏｌｌａｔｅ表記は、例えば図１３に示すように、照合解決が必要となる構文の後に、照合解決に用いる照合解決プログラムＰ１を指定する形式で付与されるが、これは一般的な問合せ言語であるＳＱＬやＸＱＵＥＲＹでも規定されている構文である。
【００８０】
サーバ２００側では、問合せ処理実行部２０４が変換後問合せ式Ｑ２を用いて問合せ処理を実行する際に、変換後問合せ式Ｑ２を解析して、ｃｏｌｌａｔｅ表記（ｃｏｌｌａｔｅ“ｘｘｘ”）が付与された構文を検知した場合は、変換後問合せ式Ｑ２とともに送られた照合解決プログラムＰ１がｃｏｌｌａｔｅ表記で指定されたものであるかをチェックして、そうであるならばこの照合解決プログラムＰ１を用いて照合解決を行う。
【００８１】
照合解決プログラムＰ１は、例えば、プログラムインタフェースとして２値間の大小関係を特定する（−１，０，１を返却する）機能だけを持つ耐タンパ性が高いプログラム（ソフトウェア）であり、照合規則自体は特定されないような構成であることが望ましい。また、サーバ２００側でのセキュリティが保証されている場合は、問合せの度にデータ処理装置１００からサーバ２００に変換後問合せ式Ｑ２とともに照合解決プログラムＰ１を送るのではなく、事前にサーバ２００側に照合解決プログラムＰ１を登録しておくようにしてもよい。
【００８２】
第２実施形態の構成の場合、照合解決が必要な索引値が含まれていても、範囲検索、ＭＡＸ／ＭＩＮ処理、結合処理、ソート処理等のほとんどの処理をサーバ２００側で直接実行することができ、問合せ処理の結果である結果データ集合Ｒ１が暗号化された数値データを含まない限りは、結果データ集合Ｒ１を返却結果データ集合Ｒ２としてそのままユーザに返すことができる。
【００８３】
以上のように、第２実施形態の構成は、照合解決をデータ処理装置１００側で行う場合と比較してセキュリティレベルは若干劣るが、サーバ２００側でほとんどの値関係の処理を実行できるようになる。したがって、セキュリティ性よりも高性能性を重視する場合は、この構成を採用することが望ましい。
【００８４】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態は、サーバ２００とは別のサーバを用いて索引値の照合解決を行うようにしたものである。
【００８５】
図１４は、第３実施形態に係るデータ管理システムの全体構成を示すブロック図である。本実施形態のデータ管理システムは、図１４に示すように、データ処理装置１００やサーバ２００とは分離独立して構成され、サーバ２００に対してネットワークを介して通信可能に接続された照合解決サーバ３００を備える。その他の構成は図１に示した第１実施形態に係るデータ管理システムの構成と同様である。
【００８６】
照合解決サーバ３００は、照合要求受付部３０１と、プログラム選択部３０２と、照合解決処理部３０３と、プログラム記憶部３１０と、を備える。
【００８７】
プログラム記憶部３１０は、照合解決プログラムＰ１，Ｐ２，・・・，Ｐｎを記憶する。照合解決プログラムＰ１，Ｐ２，・・・，Ｐｎは、事前にデータ処理装置１００からの要求に応じて登録されたプログラムであり、データ処理装置１００で文字列要素の変形に用いた照合規則にそれぞれ対応している。これら照合解決プログラムＰ１，Ｐ２，・・・，Ｐｎは、各照合解決プログラムに対して与えられるＵＲＩによって特定することができる。例えば、照合解決サーバ３００のＵＲＬが“http://www.toshiba.co.jp”である場合、“collation1”の名称が与えられた照合解決プログラムのＵＲＩは“http://www.toshiba.co.jp/collation1”となり、このＵＲＩを指定することで“collation1”の名称が与えられた照合解決プログラムを取り出すことができる。なお、各照合解決プログラムのＵＲＩは、照合解決プログラムの登録時にデータ処理装置１００側に知らされているものとする。
【００８８】
照合要求受付部３０１は、サーバ２００からの照合要求を受け付けて、この照合要求に応じて照合解決処理部３０３によって照合解決処理が行われた結果を、サーバ２００に返却する。
【００８９】
プログラム選択部３０２は、サーバ２００からの照合要求に含まれるＵＲＩ表記に基づいて、プログラム記憶部３１０が記憶する照合解決プログラムＰ１，Ｐ２，・・・，Ｐｎのうち、照合解決処理部３０３での照合解決処理に用いる照合解決プログラムを選択し、照合解決処理部３０３に渡す。
【００９０】
照合解決処理部３０３は、プログラム選択部３０２によって選択された照合解決プログラムを用いて、サーバ２００からの照合要求に含まれる値の照合解決処理を行う。照合解決処理部３０３による照合解決処理の結果は、照合要求受付部３０１から、照合要求に対する応答としてサーバ２００に返却される。
【００９１】
第３実施形態の場合、データ処理装置１００の問合せ式変換部１０５は、問合せ式の条件部の照合解決が必要となる値に関して、照合解決に用いる照合解決プログラムをＵＲＩ表現で埋め込んだ形式の変換後問合せ式Ｑ２を生成する。図１５は、照合解決に用いる照合解決プログラムをＵＲＩ表現で埋め込んだ形式の変換後問合せ式Ｑ２の一例を示す図である。このような形式の問合せ式も、一般的な問合せ言語であるＳＱＬやＸＱＵＥＲＹの仕様から逸脱しない。
【００９２】
サーバ２００側では、問合せ処理実行部２０４が変換後問合せ式Ｑ２を用いて問合せ処理を実行する際に、変換後問合せ式Ｑ２を解析して、ＵＲＩ指定された構文を検知した場合は、照合解決サーバ３００に対して照合要求を出す。例えば、サーバ２００の問合せ処理実行部２０４は、照合関係を解決したい２つの文字列に対して、照合要求受付部３０１にＣｏｍｐａｒｅ（ｘ１，ｘ２，“http://www.toshiba.co.jp/collation1”）のような形式で照合要求を行う。この照合要求は、照合解決サーバ３００の照合要求受付部３０１によって受け付けられ、プログラム選択部３０２により、プログラム記憶部３１０の中から“collation1”の名称が与えられた照合解決プログラムが選択され、照合解決処理部３０３に渡される。照合解決処理部３０３は、“collation1”の名称が与えられた照合解決プログラムを用いて、ｘ１とｘ２の２つの値の大小比較を行って、その結果を照合要求受付部３０１からサーバ２００の問合せ処理実行部２０４に返す。
【００９３】
第３実施形態の構成では、サーバ２００側は２つの文字列間の大小関係のみを知ることができるのみであり、照合規則自体を知ることはできない。したがって、第３実施形態の構成の場合は、サーバ２００側で照合規則が特定されるリスクを削減することが可能となる。ただし、第３実施形態の構成では、照合解決サーバ３００も高信頼性を持たなければならないこと、照合規則が特定されるリスクを完全に排除することはできないこと、ネットワーク経由での照合解決処理になるため第２実施形態と比較して処理時間が長くなるとの欠点もある。しかし、第３実施形態の構成は、サーバ２００側だけで値に関する条件処理を完結させることができるので、第２実施形態と比較して、性能を若干劣化させてもよいがセキュリティ強度を上げたい場合などの利用に適している。
【００９４】
（実施例）
次に、上述した各実施形態の構成において、ユーザが発行する問合せ式Ｑ１に対して返却結果データ集合Ｒ２を返却するまでの挙動の具体例を、第１実施例〜第４実施例として説明する。図１６は、第１実施例〜第４実施例の概要を説明する模式図であり、図１６（ａ）が第１実施例、図１６（ｂ）が第２実施例、図１６（ｃ）が第３実施例、図１６（ｄ）が第４実施例をそれぞれ示している。
【００９５】
第１実施例は、第１実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行わない（つまり、同一の数値データに対して同一の索引値が生成されることを許容する）ようにした例である。第２実施例は、第２実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、データ処理装置１００からサーバ２００に対して照合解決プログラムを渡して、サーバ２００側でこの照合解決プログラムを用いて照合解決を行うようにした例である。第３実施例は、第３実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、照合解決サーバ３００を利用して照合解決を行うようにした例である。第４実施例は、第１実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、データ処理装置１００側で照合解決を行うようにした例である。
【００９６】
図１７は、第１実施例〜第４実施例で扱う条件を示す図である。第１実施例〜第４実施例では、ユーザが発行する問合せ式Ｑ１は、サーバ２００のデータ格納部２１０に格納された従業員テーブルの年収カラムが範囲検索の対象であり、かつ、その範囲内の年収を最終的にＯｒｄｅｒ  Ｂｙによりソートして、さらに、Ｓｅｌｅｃｔ部にて年収ではない従業員ＩＤだけを取り出して、ユーザに返却することを要求する問合せ式であるものとする。サーバ２００のデータ格納部２１０に格納された従業員テーブルの年収カラムは暗号化されているので、範囲検索の条件を年収カラムに対応する索引値のカラムに関する条件に変換し、最適化により上限値、下限値等を設定する。
【００９７】
索引値の生成に用いる文字列集合は、図８のＣａｓｅ２で説明したものと同様とし、循環０と循環２に関しては索引値に対する照合解決が不要であり、循環１の範囲内でのみ照合解決が必要であることを補助情報として記憶しているものとする。また、文字列要素の個数は１００個であり、文字列集合における並び順に従って与えられる数値が０〜５０の文字列要素は照合解決が不要であり、文字列集合における並び順に従って与えられる数値が５１〜９９の文字列要素は照合解決が必要であることを補助情報として記憶しているものとする。また、照合解決に用いる照合解決プログラムＰ１に与えられた名称は“collation1”であり、第３実施例において照合解決に用いる照合解決サーバ３００のＵＲＬは“http://www.toshiba.co.jp”であるものとする。
【００９８】
図１８は、第１実施例〜第４実施例においてデータ処理装置１００の問合せ式変換部１０５により生成される変換後問合せ式Ｑ２を示す図であり、第１実施例で生成される変換後問合せ式Ｑ２を変換後問合せ式１、第２実施例で生成される変換後問合せ式Ｑ２を変換後問合せ式２、第３実施例で生成される変換後問合せ式Ｑ２を変換後問合せ式３、第４実施例で生成される変換後問合せ式Ｑ２を変換後問合せ式４としてそれぞれ示している。
【００９９】
第１実施例においては、索引値に対する照合解決を行わないので、サーバ２００に格納された従業員テーブルの索引カラムの索引値を用いて、照合解決プログラムＰ１を用いることなく、サーバ２００だけで処理を完結させることができる。よって、第１実施例の場合は、問合せ式Ｑ１の結果取得部（ＳＱＬの場合Ｓｅｌｅｃｔ部）が暗号化されたデータの取得を要求していない限りは、サーバ２００の問合せ処理実行部２０４による問合せ処理の結果である結果データ集合Ｒ１を、そのまま返却結果データ集合Ｒ２としてユーザに返却することが可能である。
【０１００】
第１実施例の場合、問合せ式Ｑ１の条件部である１０２＜値＜１５２の部分は、データ登録時に用いた文字列集合を用いて“ＸＢＣＤＦ”＜値＜“ＸＸＡＢＤ”に変換される。また、Ｏｒｄｅｒ  Ｂｙの部分は、照合解決が不要であるためそのままでよい。したがって、第１実施例における最終的な変換後問合せ式Ｑ２は、図１８の変換後問合せ式１で示すように、
Ｓｅｌｅｃｔ  従業員ＩＤ
Ｆｒｏｍ  従業員テーブル
Ｗｈｅｒｅ  “ＸＢＣＤＦ”＜値＜“ＸＸＡＢＤ”
Ｏｒｄｅｒ  Ｂｙ  値
となる。この変換後問合せ式Ｑ２を用いた問合せ処理の結果である結果データ集合Ｒ１は、そのまま返却結果データ集合Ｒ２としてユーザに返却される。
【０１０１】
第２実施例においては、データ処理装置１００のプログラム生成部１３０が生成した照合解決プログラムＰ１を用いて、サーバ２００側で照合解決を行う。この場合も、第１実施例と同様に、問合せ式Ｑ１の結果取得部（ＳＱＬの場合Ｓｅｌｅｃｔ部）が暗号化されたデータの取得を要求していない限りは、サーバ２００の問合せ処理実行部２０４による問合せ処理の結果である結果データ集合Ｒ１を、そのまま返却結果データ集合Ｒ２としてユーザに返却することが可能である。ただし、照合解決プログラムＰ１を用いて照合解決を行う場合は、照合解決を行わない場合と比較して若干速度が低下するので、データ処理装置１００側で補助情報を用いてできる限り問合せ式を最適化する。
【０１０２】
図１７に示した条件により、１０２＜値＜１５２は、循環１と循環２の区間に跨がり、循環２に関しては照合解決が不要であることが補助情報から分かるので、循環２に属する１５０＜値＜１５２に関しては、照合解決プログラムＰ１を指定してサーバ２００に照合解決を行わせる必要がない。また、循環１については、いずれかの文字列要素において照合解決が必要となるが、これも補助情報から、１００＜値＜１２５の区間においては照合解決が不要であることが分かる。一方、１２５≦値＜１５０の区間においては照合解決が必要となるので、照合解決に用いる照合解決プログラムＰ１のプログラム名“collation1”を指定したｃｏｌｌａｔｅ表記を、照合解決が必要となる構文の後に付与する。そして、このように範囲分割した条件のＯＲを取れば、求めるべき問合せ式となる。
【０１０３】
つまり、第２実施例では、最適化処理によって問合せ式Ｑ１が、
Ｓｅｌｅｃｔ  従業員ＩＤ
Ｆｒｏｍ  従業員テーブル
Ｗｈｅｒｅ  （１０２＜値＜１２５）
Ｏｒ  （１２５≦値＜１５０  ｃｏｌｌａｔｅ“collation1”）
Ｏｒ  （１５０≦値＜１５２）
Ｏｒｄｅｒ  Ｂｙ  値  ｃｏｌｌａｔｅ“collation1”
のように変形される。
【０１０４】
このように、Ｏｒｄｅｒ  Ｂｙの部分に対しても、照合解決に用いる照合解決プログラムＰ１のプログラム名“collation1”を指定したｃｏｌｌａｔｅ表記を付与する。なお、範囲検索の条件部を分割した場合は、上述したように、文字列集合における先頭の文字列や末尾の文字列要素を不用意に用いないように、一部の範囲を重複させて分割後の範囲を設定することが望ましいが、ここではその処理は省略する。
【０１０５】
第２実施例では、以上のようにして変形された問合せ式Ｑ１に対して、条件部である（１０２＜値＜１２５）、（１２５≦値＜１５０）、（１５０≦値＜１５２）のそれぞれをデータ登録時に用いた文字列集合を用いて変換する。したがって、第２実施例における最終的な変換後問合せ式Ｑ２は、図１８の変換後問合せ式２で示すように、
Ｓｅｌｅｃｔ  従業員ＩＤ
Ｆｒｏｍ  従業員テーブル
Ｗｈｅｒｅ  （“ＸＢＣＤＦ”＜値＜“ＸＪＫＬＭ”）
Ｏｒ  （“ＸＪＫＬＭ”≦値＜“ＸＸＡＢ”  ｃｏｌｌａｔｅ“collation1”）
Ｏｒ  （“ＸＸＡＢ”≦値＜“ＸＸＡＢＤ”）
Ｏｒｄｅｒ  Ｂｙ  値  ｃｏｌｌａｔｅ“collation1”
となる。
【０１０６】
第３実施例においては、サーバ２００が照合解決を行うのではなく、照合解決サーバ３００の照合解決処理部３０３が、サーバ２００からの要求に応じて、事前に登録された照合解決プログラムＰ１を用いて照合解決を行う。第３実施例では、サーバ２００の外部の照合解決サーバ３００によって照合解決が実行されるため、データ処理装置１００側で補助情報を用いてできる限り問合せ式を最適化することが、第２実施例よりもさらに重要となる。
【０１０７】
第３実施例における問合せ式の最適化の方法は第２実施例と同様であるが、照合解決に用いる照合解決プログラムＰ１の指定は、ＵＲＩを用いて行われる。ここでは、照合解決サーバ３００のＵＲＬが“http://www.toshiba.co.jp”であり、照合解決プログラムＰ１に与えられた名称が“collation1”であるため、照合解決プログラムＰ１のＵＲＩは“http://www.toshiba.co.jp/collation1”となる。
【０１０８】
第３実施例では、この照合解決に用いる照合解決プログラムＰ１のＵＲＩを指定して、第２実施例と同様に条件部を分離するように問合せ式Ｑ１を変形した上で、分離した条件部のそれぞれをデータ登録時に用いた文字列集合を用いて変換する。したがって、第３実施例における最終的な変換後問合せ式Ｑ２は、図１８の変換後問合せ式３で示すように、
Ｓｅｌｅｃｔ  従業員ＩＤ
Ｆｒｏｍ  従業員テーブル
Ｗｈｅｒｅ  （“ＸＢＣＤＦ”＜値＜“ＸＪＫＬＭ”）
Ｏｒ  （“ＸＪＫＬＭ”≦値＜“ＸＸＡＢ”  ｃｏｌｌａｔｅ“http://www.toshiba.co.jp/collation1”）
Ｏｒ  （“ＸＸＡＢ”≦値＜“ＸＸＡＢＤ”）
Ｏｒｄｅｒ  Ｂｙ  値  ｃｏｌｌａｔｅ“http://www.toshiba.co.jp/collation1”
となる。
【０１０９】
第４実施例では、サーバ２００側で照合解決を行うことができず、かつ、問合せ式Ｑ１の条件部が照合解決を必要とする区間を含むことが補助情報から分かるので、データ処理装置１００の問合せ式変換部１０５は、サーバ２００から解候補を取得するような変換後問合せ式Ｑ２を生成し、変換後問合せ式Ｑ２で取得された結果データ集合Ｒ１を一次結果集合として後処理部１０８に入力し、後処理部１０８において照合解決を行った後にソート処理を行った結果を、返却結果データ集合Ｒ２としてユーザに返却する。
【０１１０】
問合せ式Ｑ１の条件部の１０２＜値＜１５２のうち、１０２＜値＜１５０の範囲は照合解決が必要な循環１に属するため、この範囲についてはｍａｔｃｈ関数を用いてこの範囲内の値を解候補とするような条件部に変換する。また、１５０≦値＜１５２の範囲は照合解決が不要な循環２に属するため、この範囲については通常の問合せ処理を行う範囲検索条件に変形し、データ登録時に用いた文字列集合を用いて変換する。したがって、第４実施例においてデータ処理装置１００からサーバ２００に送られる変換後問合せ式Ｑ２は、図１８の変換後問合せ式４−１で示すように、
Ｓｅｌｅｃｔ  ＊
Ｆｒｏｍ  従業員テーブル
Ｗｈｅｒｅ  ｍａｔｃｈ（値，“Ｘ”）Ｏｒ（“ＸＸＡＢ≦値＜“ＸＸＡＢＤ”）
Ｏｒｄｅｒ  Ｂｙ  値
となる。
【０１１１】
ここで、Ｏｒｄｅｒ  Ｂｙに関しては、サーバ２００に送る変換後問合せ式Ｑ２においては省略して、データ処理装置１００側でのみ実施することも可能であるが、ここでは照合解決を行わない状態でサーバ２００側で実施するものとする。これは、少なくとも循環の回数については照合解決を行うか否かとは関係なく定まることを利用して、極力処理コストが重い部分をサーバ２００側に行わせる狙いがある。また、データ処理装置１００側で照合解決の処理が必要なため、索引値を取得するためにＳｅｌｅｃｔ＊としている。この変換後問合せ式Ｑ１を用いた問合せ処理の結果である結果データ集合Ｒ１は、一次結果集合としてデータ処理装置１００の後処理部１０８に入力され、後処理部１０８において、文字列要素を変形する際に用いた照合規則に従ってさらに問合せ処理が行われる。
【０１１２】
一次結果集合に対する問合せ処理に用いられる変換後問合せ式Ｑ２は、元の問合せ式Ｑ１の条件部である１０２＜値＜１５２を特に変形せずに、上限値および下限値がデータ登録時に用いた文字列集合を用いて変換される。また、サーバ２００側での処理では不完全であったソート処理を、照合解決に用いる照合規則を指定して再度実行させるようにしている。ここでは、第２実施例や第３実施例と同様に、文字列要素の変形に用いた照合規則を元に生成された照合解決プログラムＰ１を用いて照合解決を行うものとし、照合解決プログラムＰ１の名称“collation1”が指定される。この場合、サーバ２００側でソート済み部分（照合解決を行わない状態でソートを行った部分）と、位置が確定していない部分（ｍａｔｃｈ関数でヒットさせた部分）が分かるので、これを利用してさらに問合せ処理を高速化することも可能である。
【０１１３】
第４実施例においてデータ処理装置１００の後処理部１０５が一次結果集合に対して行う問合せ処理に用いられる変換後問合せ式Ｑ２は、図１８の変換後問合せ式４−２で示すように、
Ｓｅｌｅｃｔ  従業員ＩＤ
Ｆｒｏｍ  一次結果集合
Ｗｈｅｒｅ  “ＸＢＣＤＦ”＜値＜“ＸＸＡＢＤ”  ｃｏｌｌａｔｅ“collation1”
Ｏｒｄｅｒ  Ｂｙ  値  ｃｏｌｌａｔｅ“collation1”
となる。第４実施例では、この変換後問合せ式Ｑ２を用いた問合せ処理の結果が、返却結果データＲ２としてユーザに返却される。
【０１１４】
以上の第１実施例〜第４実施例のように、上述した実施形態のデータ管理システムは、ユーザが所望するセキュリティレベル、応答性能等により、それぞれ適切なシステム構成を採用することが可能であり、セキュリティレベルと性能を極力両立させるように処理を行うことが可能である。このように、実施形態のデータ管理システムによれば、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができる。
【０１１５】
実施形態のデータ管理システムにおけるデータ処理装置１００の機能は、例えば、データ処理装置１００において所定のプログラムを実行することにより実現することができる。この場合、データ処理装置１００は、たとえば図１９に示すように、ＣＰＵ（Central  Processing  Unit）１５１などの制御装置、ＲＯＭ（Read  Only  Memory）１５２やＲＡＭ（Random  Access  Memory）１５３などの記憶装置、ネットワークに接続して通信を行う通信Ｉ／Ｆ１５４、各部を接続するバス１５５などを備えた、通常のコンピュータを利用したハードウェア構成となる。
【０１１６】
データ処理装置１００で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１１７】
また、データ処理装置１００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、データ処理装置１００で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１１８】
また、データ処理装置１００で実行されるプログラムを、ＲＯＭ１５２等に予め組み込んで提供するように構成してもよい。
【０１１９】
データ処理装置１００で実行されるプログラムは、データ処理装置１００の各処理部（データ受信部１０１、データ変換部１０２、データ送信部１０３、問合せ式受信部１０４、問合せ式変換部１０５、問合せ式送信部１０６、結果受信部１０７、後処理部１０８、結果送信部１０９、およびプログラム生成部１３０）を含むモジュール構成となっており、実際のハードウェアとしては、例えば、ＣＰＵ１５１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部が主記憶装置上にロードされ、上述した各処理部が主記憶装置上に生成されるようになっている。なお、データ処理装置１００は、上述した各処理部の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアを用いて実現することも可能である。
【０１２０】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2014045361.tif 000003
【図２】
2014045361.tif 000004
【図３】
2014045361.tif 000005
【図４】
2014045361.tif 000006
【図５】
2014045361.tif 000007
【図６】
2014045361.tif 000008
【図７】
2014045361.tif 000009
【図８】
2014045361.tif 000010
【図９】
2014045361.tif 000011
【図１０】
2014045361.tif 000012
【図１１】
2014045361.tif 000013
【図１２】
2014045361.tif 000014
【図１３】
2014045361.tif 000015
【図１４】
2014045361.tif 000016
【図１５】
2014045361.tif 000017
【図１６】
2014045361.tif 000018
【図１７】
2014045361.tif 000019
【図１８】
2014045361.tif 000020
【図１９】
2014045361.tif 000021
【国際調査報告】
2014045361.tif 000022
2014045361.tif 000023