JP5367179B1 - データ処理装置、データ管理システム、データ処理方法およびプログラム - Google Patents

データ処理装置、データ管理システム、データ処理方法およびプログラム Download PDF

Info

Publication number
JP5367179B1
JP5367179B1 JP2012543397A JP2012543397A JP5367179B1 JP 5367179 B1 JP5367179 B1 JP 5367179B1 JP 2012543397 A JP2012543397 A JP 2012543397A JP 2012543397 A JP2012543397 A JP 2012543397A JP 5367179 B1 JP5367179 B1 JP 5367179B1
Authority
JP
Japan
Prior art keywords
character string
data
query expression
collation
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012543397A
Other languages
English (en)
Other versions
JPWO2014045361A1 (ja
Inventor
拓也 金輪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP5367179B1 publication Critical patent/JP5367179B1/ja
Publication of JPWO2014045361A1 publication Critical patent/JPWO2014045361A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/2454Optimisation of common expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

実施形態のデータ処理装置(100)は、記憶部(111)と、データ変換部(102)と、第1送信部(103)と、問合せ式変換部(105)と、第2送信部(106)と、受信部(107)と、を備える。記憶部は、大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する。データ変換部は、管理対象データに含まれる数値データを暗号化するとともに、文字列集合に含まれる文字列要素を用いて数値データに対応する索引値を生成し、暗号化された数値データと索引値とを含む変換後管理対象データを生成する。第1送信部は、変換後管理対象データをサーバに送信する。問合せ式変換部は、問合せ式の数値を用いた条件部を、文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する。第2送信部は、変換後問合せ式をサーバに送信する。受信部は、変換後問合せ式を用いた問合せ処理の結果をサーバから受信する。

Description

本発明の実施形態は、データ処理装置、データ管理システム、データ処理方法およびプログラムに関する。
近年、クラウドコンピューティングサービスの一形態として、インターネット経由でデータベースの利用環境を提供するサービスであるDaaS(Database as a Service)が注目を浴びている。DaaSの利用者は、自らが所有するデータの永続管理ならびに一般的なデータベース管理業務をサービス提供者に委譲することで、コスト削減や管理の一元化を行うことが可能となる。しかし、サービス提供者が提供するデータベースサーバ(以下、単にサーバと称する。)の管理者は、サービスを享受する利用者(以下、クライアントと称する。)とは異なる第3者であることが多く、仮に第3者側でデータベース暗号化サービスが提供されたとしても情報漏洩が完全に防げるという保証はできない。また、第3者がセキュリティ攻撃者になるリスクもあるため、暗号化前の生データ自体をデータベース管理者に閲覧させたくない、といったニーズも高い。
そこで、管理対象のデータをクライアント側で暗号化した後にサーバに転送し、暗号化されたデータをサーバに管理させることでセキュリティを向上させる方法が提案されている。しかし、暗号化されたデータに対して直接検索を行うことは難しいため、サーバ側のデータを一旦クライアントに送り、その後、クライアント側でデータを復号化し、元の問合せ条件を満足するかどうかの結果照合処理を行う、という手順を踏む必要があった。これではデータベースの検索サービスをほとんど享受できず、クライアントに負荷がかかり、処理時間が非常に大きくなるという問題点があった。このような問題を解決すべく、暗号化データをサーバで検索可能に管理する幾つかの方法が提案されているが、これら従来の方法では、高いセキュリティ性を確保しながら、特に数値データに対する範囲検索等の検索処理を高性能に行うことは難しく、改善が望まれていた。
特許第4707198号公報 特開2009−251748号公報
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
本発明が解決しようとする課題は、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができるデータ処理装置、データ管理システム、データ処理方法およびプログラムを提供することである。
実施形態のデータ処理装置は、記憶部と、データ変換部と、第1送信部と、問合せ式変換部と、第2送信部と、受信部と、を備える。記憶部は、大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する。データ変換部は、管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成する。第1送信部は、前記変換後管理対象データをサーバに送信する。問合せ式変換部は、問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する。第2送信部は、前記変換後問合せ式を前記サーバに送信する。受信部は、前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する。
図1は、第1実施形態に係るデータ管理システムの全体構成を示すブロック図である。 図2は、管理対象データの表現形式とデータベースの形式および問合せ式の形式との対応関係を示す図である。 図3は、データ変換部の具体的な構成例を示すブロック図である。 図4は、暗号化・索引対象情報の一例を示す図である。 図5は、図4に示した暗号化・索引対象情報を用いて生成される変換後管理対象データの一例を示す図である。 図6は、文字列集合記憶部が記憶する文字列集合を概念的に示す模式図である。 図7は、同じ文字列であっても照合規則の違いによって大小関係が異なる例を示す図である。 図8は、文字列要素割当決定部が文字列要素を割り当てて索引値生成部が索引値を生成する処理の一例を概念的に示す模式図である。 図9は、同じ数値に対して割り当てられる文字列要素を照合規則に従って変形する処理を概念的に示す模式図である。 図10は、問合せ式変換部の具体的な構成例を示すブロック図である。 図11は、補助情報を用いて問合せ式の条件部を最適化する処理の一例を概念的に示す模式図である。 図12は、第2実施形態に係るデータ管理システムの全体構成を示すブロック図である。 図13は、collate表記を付与した変換後問合せ式の一例を示す図である。 図14は、第3実施形態に係るデータ管理システムの全体構成を示すブロック図である。 図15は、照合解決に用いる照合解決プログラムをURI表現で埋め込んだ形式の変換後問合せ式の一例を示す図である。 図16は、第1実施例〜第4実施例の概要を説明する模式図である。 図17は、第1実施例〜第4実施例で扱う条件を示す図である。 図18は、第1実施例〜第4実施例においてデータ処理装置の問合せ式変換部により生成される変換後問合せ式を示す図である。 図19は、データ処理装置のハードウェア構成の一例を示す図である。
以下、実施形態のデータ処理装置、データ管理システム、データ処理方法およびプログラムを、図面を参照して説明する。
(第1実施形態)
図1は、第1実施形態に係るデータ管理システムの全体構成を示すブロック図である。データ管理システムは、例えば、DaaSを提供するサービス提供者側で実現されるシステムであり、データ処理装置100と、サーバ200とを備える。データ処理装置100は、サーバ200に登録する管理対象データの暗号化や索引値の生成、問合せ式の変換などの処理を行う。サーバ200は、データ処理装置100から送られた管理対象データの格納、問合せ処理といった、一般的なデータベース処理機能を実現する役割を担う。データ処理装置100とサーバ200は互いに分離独立して構成される装置であり、ネットワークを介して通信可能に接続されている。なお、データ処理装置100とサーバ200は、異なる管理者によって管理されている。
まず、本実施形態に係るデータ管理システムを構成するデータ処理装置100およびサーバ200の具体的な構成を説明する前に、サーバ200に登録される管理対象データの表現形式と、それに応じたサーバ200のデータベースの形式およびデータベースに対する問合せ式の形式の具体例について説明する。以下では、従業員ID、従業員名、年収および年齢を1つのレコードに含む従業員テーブルを管理対象データとしてサーバ200に登録する場合を例示する。
図2は、管理対象データの表現形式とデータベースの形式および問合せ式の形式との対応関係を示す図である。管理対象データの表現形式は、図2に示すように、リレーション形式、キーバリュー形式、XML(Extensible Markup Language)形式等の様々な形式が考えられ、それぞれ適したデータベースの形式が存在する。例えば、リレーション形式の場合はリレーショナルデータベース(RDB)、キーバリュー形式の場合はキーバリューストア(KVS)、XML形式の場合はXMLデータベース(XMLDB)である。また、データベースの形式に応じて問合せ式の形式も異なり、リレーショナルデータベースに対する問合せ式はSQL、キーバリューストアに対する問合せ式はKVSクエリ、XMLデータベースに対する問合せ式はXQUERYで記述される。
本実施形態に係るデータ管理システムは、リレーション形式であれば<カラム名,値>、キーバリュー形式であれば<キー名,値>、XML形式であれば<要素(属性)名,値>のように、キーと値のペアで表現できるデータを管理対象データとして扱うものとし、サーバ200が管理するデータベースの形式や、データベースに対する問合せ式の形式は、管理対象データの表現形式に対応したものとする。
次に、データ処理装置100の構成について説明する。データ処理装置100は、機能的な構成要素として、図1に示すように、データ受信部101と、データ変換部102と、データ送信部103と、問合せ式受信部104と、問合せ式変換部105と、問合せ式送信部106と、結果受信部107と、後処理部108と、結果送信部109と、を備える。また、データ処理装置100は、データ変換部102や問合せ式変換部105での処理に用いる情報資源として、文字列集合記憶部111と、補助情報記憶部112と、暗号化・索引対象情報記憶部113と、鍵情報記憶部114と、を備える。
データ受信部101は、例えばDaaSの利用者等(以下、ユーザと称する。)から送られた管理対象データD1を受信する。
データ変換部102は、文字列集合記憶部111が記憶する文字列集合、補助情報記憶部112が記憶する補助情報、暗号化・索引対象情報記憶部113が記憶する暗号化・索引対象情報、および鍵情報記憶部114が記憶する鍵情報を用いて、データ受信部101が受信した管理対象データD1に対して暗号化処理や索引値の生成を行い、変換後管理対象データD2を生成する。なお、データ変換部102による処理の詳細は後述する。
データ送信部103は、データ変換部102が生成した変換後管理対象データD2を、登録要求とともにサーバ200に対して送信する。
問合せ式受信部104は、ユーザから送られた問合せ式Q1を受信する。
問合せ式変換部105は、文字列集合記憶部111が記憶する文字列集合、および補助情報記憶部112が記憶する補助情報を用いて、問合せ式受信部104が受信した問合せ式Q1の条件部(条件を指定した部分)の数値データを文字列要素に置き換え、変換後問合せ式Q2を生成する。なお、問合せ式変換部105による処理の詳細は後述する。
問合せ式送信部106は、問合せ式変換部105が生成した変換後問合せ式Q2をサーバ200に対して送信する。
結果受信部107は、サーバ200が変換後問合せ式Q2を用いた問合せ処理を行った結果である結果データ集合R1を受信する。
後処理部108は、結果受信部107が受信した結果データ集合R1、すなわち変換後問合せ式を用いた問合せ処理を行った結果である結果データ集合R1を、必要に応じて、変換前の元の問合せ式Q1の要求に適合するように変換し、返却結果データ集合R2を生成する。この際、後処理部108は、結果受信部107が受信した結果データ集合R1に暗号化された数値データが含まれている場合は、鍵情報記憶部114が記憶する鍵情報を用いてこれを復号化し、返却結果データ集合R2を生成する。
結果送信部109は、後処理部108が生成した返却結果データ集合R2を、問合せ式Q1を送信したユーザに対して送信する。
次に、サーバ200の構成について説明する。サーバ200は、機能的な構成要素として、図1に示すように、データ受信部201と、データ格納処理部202と、問合せ式受信部203と、問合せ処理実行部204と、結果送信部205と、を備える。また、サーバ200は、データベースとして機能するデータ格納部210を備える。
データ受信部201は、データ処理装置100から登録要求とともに送信された変換後管理対象データD2を受信する。
データ格納処理部202は、データ処理装置100からの登録要求に応じて、データ受信部201が受信した変換後管理対象データD2をデータ格納部210に格納する。
問合せ式受信部203は、データ処理部100から送信された変換後問合せ式Q2を受信する。
問合せ処理実行部204は、問合せ式受信部203が受信した変換後問合せ式Q2を用いてデータ格納部210に対する問合せ処理を実行し、結果データ集合R1を取得する。
結果送信部205は、問合せ処理実行部204が変換後問合せ式Q2を用いた問合せ処理の結果として取得した結果データ集合R1を、データ処理装置100に対して送信する。
次に、本実施形態に係るデータ管理システムにおける動作の概要について説明する。まず、データ登録時の動作を説明する。
ユーザは、サーバ200に永続管理させたい管理対象データD1をデータ処理装置100に送る。ユーザからデータ処理装置100に送られた管理対象データD1は、データ処理装置100のデータ受信部101により受信され、データ変換部102に送られる。
データ変換部102は、データ受信部101から管理対象データD1が送られると、暗号化・索引対象情報記憶部113が記憶する暗号化・索引対象情報を参照し、管理対象データD1に含まれる暗号化対象および索引値を生成する対象となる数値データを特定する。そして、データ変換部102は、特定した暗号化対象の数値データを、鍵情報記憶部114が記憶する鍵情報を用いて暗号化するとともに、暗号化した数値データのうちで索引値を生成する対象となる数値データに対応する索引値を生成する。
本実施形態では、データ変換部102が索引値を生成する際に、文字列集合記憶部111が記憶する文字列集合、および補助情報記憶部112が記憶する補助情報を用いる。文字列集合は、大小関係が一意に特定できる複数の文字列要素の集合であり、照合規則に従って事前に構築され、文字列集合記憶部111に格納されている。また、補助情報は、文字列用要素を用いて索引値を生成するために必要となる情報であり、例えば、文字列集合を構成する有限個数の文字列要素を循環して使用する場合の規則や、文字列要素を数値に割り当てる際の割当規則等の情報である。データ変換部102は、補助情報を用いて、文字列集合に含まれる複数の文字列要素のうち、索引値を生成する対象となる数値データに対応する文字列要素を特定し、特定した文字列要素を用いて、暗号化した数値データに対応する索引値を生成する。そして、データ変換部102は、暗号化した数値データと索引値とを含む変換後管理対象データD2を生成する。
データ変換部102で生成された変換後管理対象データD2は、データ送信部103からサーバ200へと送信され、サーバ200のデータ受信部201により受信されて、データ格納処理部202へと送られる。データ格納処理部202は、特殊な処理を行うことはせずに、データ受信部201が受信した変換後管理対象データD2をそのままデータ格納部210に格納する。
次に、問合せ式を用いたデータ検索時の動作を説明する。本実施形態のデータ管理システムでは、ユーザの問合せはサーバ200に対して直接行われるのではなく、データ処理装置100に対して行われる。
ユーザは、サーバ200に問合せ処理を実行させるための問合せ式Q1をデータ処理装置100に送る。ユーザからデータ処理装置100に送られた問合せ式Q1は、データ処理装置100の問合せ式受信部104により受信され、問合せ式変換部105に送られる。
問合せ式変換部105は、問合せ式受信部104から問合せ式Q1が送られると、この問合せ式Q1を元にして、データ登録時に生成した索引値で検索できるような変換後問合せ式Q2を生成する。具体的には、問合せ式変換部105は、文字列集合記憶部111が記憶する文字列集合、および補助情報記憶部112が記憶する補助情報を用いて、問合せ式Q1の数値を用いた条件部を、文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式Q2を生成する。
問合せ式変換部105で生成された変換後問合せ式Q2は、問合せ式送信部106からサーバ200へと送信され、サーバ200の問合せ式受信部203により受信されて、問合せ処理実行部204へと送られる。問合せ処理実行部204は、問合せ式受信部203が受信した変換後問合せ式Q2をそのまま用いてデータ格納部210に対する問合せ処理を実行し、変換後問合せ式Q2の条件部に適合する結果データ集合R1を取得する。
問合せ処理実行部204により取得された結果データ集合R1は、結果送信部205からデータ処理装置100へと送信され、データ処理装置100の結果受信部107により受信されて、後処理部108へと送られる。後処理部108は、結果受信部107が受信した結果データ集合R1を、必要に応じて元の問合せ式Q1の要求に適合するように変換し、返却結果データ集合R2を生成する。そして、この後処理部108で生成された返却結果データ集合R2が、結果送信部109から、問合せ式Q1に対する検索結果としてユーザに返却される。
以上のように、本実施形態に係るデータ管理システムでは、データ処理装置100において、管理対象データD1に含まれる秘匿したい数値データを暗号化し、さらに暗号化した数値データに対応する索引値を付加した変換後管理対象データD2を生成して、この変換後管理対象データD2をサーバ200のデータ格納部210に格納するようにしている。また、ユーザが発行する問合せ式Q1を、データ処理装置100において、索引値で検索できるような変換後問合せ式Q2に変換し、サーバ200は、この変換後問合せ式Q2を用いてデータ格納部210に対する問合せ処理を実行し、問合せ処理の結果である結果データ集合R1をデータ処理装置100に送信する。そして、データ処理装置100において、結果データ集合R1を必要に応じて問合せ式Q1の要求に適合するように変換して返却結果データ集合R2を生成し、この返却結果データ集合R2を、問合せ式Q1の結果としてユーザに返却するようにしている。したがって、本実施形態に係るデータ管理システムによれば、暗号化された数値データに関する演算、例えば、数値データに対する範囲検索、MAX/MIN処理、結合処理、ソート処理等の高速性が要求される構文に対する演算をサーバ200側で直接実行することができ、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができる。
次に、データ処理装置100が備えるデータ変換部102について、処理の具体例を例示しながらさらに詳しく説明する。図3は、データ変換部102の具体的な構成例を示すブロック図である。
データ変換部102は、図3に示すように、暗号化・索引対象特定部121と、文字列要素割当決定部122と、索引値生成部123と、変換後管理対象データ生成部124と、を備える。
暗号化・索引対象特定部121は、暗号化・索引対象情報記憶部113が記憶する暗号化・索引対象情報を参照し、入力された管理対象データD1に含まれる暗号化対象および索引値を生成する対象となる数値データを特定する。
図4は、暗号化・索引対象情報の一例を示す図である。暗号化・索引対象情報は、適用対象の管理対象データD1の種類を特定する情報と、その管理対象データD1の中で暗号化や索引値の生成が必要な部分を特定する情報とを含む。図4の例は、図2のリレーション形式で表現された従業員テーブルに対して適用される暗号化・索引対象情報の例を示しており、年収カラムおよび年齢カラムに対して暗号化の指定がなされ、さらに年収カラムに対しては索引値を生成する指定がなされ、その索引値を“索引1”というカラム値とすることを示している。
図5は、図4に示した暗号化・索引対象情報に従って、図2のリレーション形式で表現された従業員テーブルの年収カラムおよび年齢カラムの数値データを暗号化し、さらに年収カラムの数値データに対応する索引値を生成して、“索引1”というカラム値として付加した場合の例を示している。この図5に示す従業員テーブルは、後述の変換後管理対象データ生成部124により生成される変換後管理対象データD2に相当する。従業員テーブルをサーバ200で永続管理させることを考えた場合、特に年収や年齢といった情報は秘匿性が要求されるため、暗号化した状態でサーバ200に格納する。この際、暗号化された数値データに関する演算をサーバ200側で直接実行できるようにするため、演算の対象となる暗号化された数値データに対しては、その数値データに対応する文字列要素を用いて索引値を生成し、その索引値を用いて暗号化された数値データの大小関係を判断できるようにしている。
文字列要素割当決定部122は、暗号化・索引対象特定部121により索引値を生成する対象として特定された数値データに対して、文字列集合記憶部111が記憶する文字列集合に含まれる文字列要素のうちの1つを割り当てる。
図6は、文字列集合記憶部111が記憶する文字列集合を概念的に示す模式図である。文字列集合は、図6に示すように、照合規則に従って大小関係が一意に定まる複数の文字列要素が昇順に並んで管理されている。照合規則はコレーション(Collation)と呼ばれることもあり、照合規則によって文字列要素の大小関係が一意に決定される。文字列集合に含まれる文字列要素は、任意の辞書から生成してもよいし、照合規則に従いランダムに生成してもよい。文字列要素は、ある程度大きめの個数を生成しておくことでセキュリティ強度を高めることができる。このため、文字列集合に含まれる文字列要素の個数に閾値を設けて、文字列集合の生成時に文字列要素の個数が閾値以上になるまで文字列要素の生成を継続するようにしてもよい。
図7は、同じ文字列であっても照合規則の違いによって大小関係が異なる例を示す図である。図7の例では、照合規則1に従うと文字列aEERと文字列Raとが同一値であるのに対して、照合規則2に従うと文字列aEERが文字列Raよりも大きくなることを示している。また、照合規則1に従うと文字列EUFEFFEcESが文字列FEEEEFUSRよりも大きくなるのに対して、照合規則2に従うと文字列EUFEFFEcESが文字列FEEEEFUSRよりも小さくなることを示している。照合規則は、文字に対する大小関係(同一値を含む)や、ダミーの文字である除去コード等を規定している。例えば、プログラム言語であるJava(登録商標)等ではCollationクラスが標準的に実装されており、これらを照合規則として利用することができる。
文字列集合は、以上のような照合規則に従って大小関係が決定される複数の文字列要素の集合である。ただし、本実施形態で用いる文字列集合には同一値となる文字列要素は含まれておらず、すべての文字列要素間で大小関係が一意に特定されるものとする。また、文字列集合の生成に使用する照合規則は特に限定されるものではなく、一般的なラテン語規則(アルファベット文字の大小関係を定めた規則)等を照合規則として用いることもできる。
文字列要素割当決定部122は、文字列集合に含まれる文字列要素の中から、索引値を生成する対象となる数値データに対して割り当てる文字列要素を決定する。ここで、最も単純な割り当て方法は、文字列集合における文字列要素の並び順に沿って文字列要素に与えた数値と数値データが表す数値とをマッピングさせる方法である。しかし、任意の数値を有限の文字列要素で表現しようとする場合は、たとえ整数値に限ったとしても現実的には表現しきれない。そこで、本実施形態においては、索引値を生成する対象となる数値データが表す数値が文字列集合に含まれる文字列要素の個数よりも大きい場合に、文字列集合に含まれる文字列要素を循環させ、文字列要素の循環を必要な回数だけ繰り返すことで、数値データが表す数値に割り当てられる文字列要素を決定する方式とする。
すなわち、文字列集合に含まれる文字列要素の個数が例えば100であり、文字列要素の並び順に沿って0〜99の数値が与えられている場合、索引値を生成する対象となる数値データが表す数値が例えば103であれば、文字列集合に含まれる文字列要素を1回循環させて、文字列集合における並び順に沿って3の数値に該当する文字列要素を数値データ103に割り当てる。また、索引値を生成する対象となる数値データが表す数値が例えば215であれば、文字列集合に含まれる文字列要素を2回循環させて、文字列集合における並び順に沿って15の数値に該当する文字列要素を数値データ215に割り当てる。ただし、このように割り当てられた文字列要素をそのまま索引値とすると索引値の大小関係が失われることになるので、後述の索引値生成部123では、文字列要素割当決定部122が割り当てた文字列要素に対して、循環の回数を表す情報を付加して索引値を生成する。具体的には、例えば、文字列集合に含まれる文字列要素を1回循環させて文字列要素を割り当てた場合は、その文字列要素の先頭にXを付加したものを索引値とし、文字列集合に含まれる文字列要素を2回循環させて文字列要素を割り当てた場合は、その文字列要素の先頭にXXを付加したものを索引値とする。これにより、文字列集合に含まれる文字列要素の個数は一定のままとしながら、その個数を超える数値データについても、大小関係を維持した索引値を現実的なコストで生成することができる。なお、循環の回数を表す情報やその情報を文字列要素のどの位置に付加するか等、文字列集合を構成する有限個数の文字列要素を循環して使用する場合の規則は、補助情報として、補助情報記憶部112が記憶している。
また、文字列要素割当決定部122は、事前に定義された割当規則を用いて、文字列集合に含まれる文字列要素の中から、索引値を生成する対象となる数値データに対して割り当てる文字列要素を決定するようにしてもよい。例えば、割当関数Posを定義し、Pos=nであれば、文字列集合における並び順に沿って与えられる数値が、数値データが表す数値(文字列集合を循環させる場合は循環後の余剰の数値)と一致する文字列要素を、数値データに対して割り当てる文字列要素とする。また、Pos=2nであれば、文字列集合における並び順に沿って与えられる数値が、数値データが表す数値(文字列集合を循環させる場合は循環後の余剰の数値)の2倍と一致する文字列要素を、数値データに対して割り当てる文字列要素とする。
すなわち、索引値を生成する対象となる数値データが表す数値が例えば15である場合、事前に定義された割当関数がPos=nであれば、文字列集合における並び順に沿って15の数値に該当する文字列要素を数値データ15に割り当てる。また、事前に定義された割当関数がPos=2nであれば、文字列集合における並び順に沿って30の数値に該当する文字列要素を数値データ15に割り当てる。これにより、索引値から数値が推定されるリスクを低減させることができ、セキュリティ性を向上させることができる。
また、上述したように、文字列集合に含まれる文字列要素を循環させて使用する場合、循環の回数ごとに異なる割当規則を定義するようにしてもよい。このように、循環の回数ごとに異なる割当規則を定義するようにすれば、索引値から数値を推定することがさらに困難になるため、セキュリティ性をさらに向上させることができる。なお、文字列要素の割り当てに用いる割当規則は、補助情報として、補助情報記憶部112が記憶している。
索引値生成部123は、索引値を生成する対象となる数値データに対して、文字列要素割当決定部122により割り当てられた文字列要素を用いて、索引値を生成する。例えば、文字列要素割当決定部122が文字列集合に含まれる文字列要素を1回循環させて文字列要素を割り当てた場合、索引値生成部123は、文字列要素割当決定部122により割り当てられた文字列要素の先頭にXを付加したものを索引値として生成する。また、文字列要素割当決定部122が文字列集合に含まれる文字列要素を2回循環させて文字列要素を割り当てた場合、索引値生成部123は、文字列要素割当決定部122により割り当てられた文字列要素の先頭にXXを付加したものを索引値として生成する。
図8は、文字列要素割当決定部122が文字列要素を割り当てて索引値生成部123が索引値を生成する処理の一例を概念的に示す模式図である。図8の例は、文字列集合に含まれる文字列要素の個数が100の場合を示しており、Case1はすべての循環において割当関数がPos=nとした例、Case2は循環ごとに割当関数Posを定義した例である。
文字列要素割当決定部122が数値に対して文字列要素を割り当てる場合、まず、対象となる数値に対応する循環回数が決定される。例えば、対象となる数値が102の場合は、文字列集合に含まれる文字列要素の循環回数は1回(循環1)である。
次に、文字列要素割当決定部122は、決定した循環回数において、割当規則Posに従って、対象となる数値に割り当てる文字列要素を決定する。例えば、対象となる数値が102の場合、Case1では循環1に対する割当関数はPos=nであるので、“ABD”の文字列要素が割り当てられる。また、Case2では循環1に対する割当関数はPos=2nであるので、“BCDF”の文字列要素が割り当てられる。
次に、索引値生成部123は、文字列要素割当決定部122によって割り当てられた文字列要素に対して、循環回数を表す情報を付加して、対象となる数値に対応する索引値を生成する。例えば、対象となる数値が102の場合、Case1では文字列要素割当決定部122によって“ABD”の文字列要素が割り当てられ、循環1では文字列要素の先頭にXを付加することが定められているため、索引値として“XABD”が生成される。また、Case2では文字列要素割当決定部122によって“BCDF”の文字列要素が割り当てられ、循環1では先頭にXを付加することが定められているため、索引値として“XBCDF”が生成される。このように生成された索引値は、文字列要素の先頭にXが付加されていない値よりも文字列要素の先頭にXが付加された値の方が大きく、文字列要素の先頭にXが付加された値よりも文字列要素の先頭にXXが付加された値の方が大きいという順序関係が定められている。例えば、ZZZ<XABであり、XZZZ<XXABである。
ところで、以上説明した方法で数値データに対応する索引値を生成すると、同じ数値を表す複数の数値データのそれぞれに索引値を生成する場合に同じ索引値が生成されることになり、サーバ側で元の数値を推定されるリスクが残る。このようなリスクを回避するため、索引値生成部123は、同じ数値を表す複数の数値データのそれぞれに対して索引値を生成する場合は、一方の索引値については、その元となる文字列要素を照合規則に従って変形した上で、索引値を生成する。このようにして生成された複数の索引値同士は、単純に文字列比較(デフォルト照合)した場合は異なる値であるが、文字列要素の変形に用いた照合規則を指定して比較した場合は、同じ値であることを正しく判定することができる。文字列要素の変形に用いる照合規則はデータ処理装置100側で定義したものであるので、サーバ200側では値の推定が難しくなり、セキュリティを向上させることができる。なお、文字列要素の変形に用いる照合規則は、文字列集合を生成するために用いた照合規則と同じ規則であってもよいし、異なる規則であってもよい。
図9は、同じ数値に対して割り当てられる文字列要素を照合規則に従って変形する処理を概念的に示す模式図である。例えば、従業員テーブルに含まれる2つのレコードにおいて、年収カラムに対応する数値データが表す数値がそれぞれ3である場合に、文字列要素割当決定部122によって数値3に対して割り当てられた文字列要素が“BCDE”であったとする。ここで、“G”および“M”を除去コードとし、“C”と“H”、“L”と“E”をそれぞれ同値とする照合規則を用いると、文字列要素“BCDE”を、例えば“GBMHDML”といった文字列に変形することができる。この場合、索引値生成部123は、2つのレコードの年収カラムに対応する一方の数値データに対応する索引値をBCDEとし、他方の数値データに対応する索引値を、例えばGBMHDMLとすることができる。これらの索引値は、単純な文字列比較では異なる値であるが、照合規則を指定して比較した場合は同じ値となる。
ここで、照合規則に従って文字列要素を変形して索引値を生成する場合に幾つかのルールを設けることで、検索処理を高速化することができる。例えば、文字列要素を変形した場合であっても、循環回数を表す情報についてはそのまま維持させるというルールである。文字列集合に含まれる文字列要素の個数が1000であり、循環ごとに文字列要素の先頭にXを付加する規則である場合、先頭にXが付いていない索引値が示す数値は0〜999の範囲であり、先頭にXが1つだけ付いている索引値が示す数値は1000〜1999の範囲であり、先頭にXが2つ付いている索引値が示す数値は2000〜2999の範囲となる。これは、サーバ200側では分からないがデータ処理装置100側では認識可能である。したがって、例えばこのカラムの索引値に対して、SQL関数のmatch(値,“X”)のような指定をすれば、1000〜1999の要素を検索するというのと同義であり、match(値,“XX”)のような指定をすれば、2000〜2999の要素を検索するというのと同義である。この方法は、データ処理装置100側でしか照合規則を持てない場合の範囲(値)検索の解決時に有効であり、明らかに不要な範囲の索引値を除去することができる。
また、照合解決が必要な索引値とそれ以外を区別するための情報を保持することも有効である。すなわち、照合規則を用いて同一値から2つの異なる索引値を生成した場合、この索引値は照合規則を用いて大小関係が比較されることになる。しかし、照合規則を用いた処理は一般的な比較処理より低速になることが多いことから、できるだけデータ処理装置100側でこれらを意識して問合せ式を最適化しておくことが望ましい。そこで、照合規則を用いて文字列要素を変形して索引値を生成した場合、その文字列要素に対して照合解決が必要となることを示す情報をビット列で保持しておく。また、循環ごとに、その循環内で同様に照合規則を用いて索引値を生成した場合、その循環内で照合解決が必要となることを示す情報をビット列で保持しておく。それぞれの循環において文字列要素に対してビット列を持たせるようにしてもよいが、ここでは情報量削減のために、文字列要素用のビット列と循環用のビット列との重ね合わせで管理する方式を取る。これにより、問合せ式の範囲検索に応じて照合規則を用いた照合解決を行う必要があるかどうかを判定できるようになり、値に関する問合せの最適化が行える。
上記のような照合解決が必要な索引値とそれ以外を区別するための情報は、例えば、補助情報の一つとして補助情報記憶部112に格納しておくことができる。また、照合解決が必要かどうかを示す情報を索引値に直接組み込む方法も考えられる。例えば、照合規則で除去コードとして指定されている文字の1つを判定用に予約して、文字列要素の先頭、あるいは上述した循環回数を表す情報(X,XX等)の次に付加したものを索引値とすればよい。
変換後管理対象データ生成部124は、暗号化・索引対象特定部121によって暗号化対象として特定された管理対象データD1の数値データを、鍵情報記憶部114が記憶する鍵情報を用いて暗号化するとともに、索引値生成部123が生成した索引値を付加して、変換後管理対象データD2を生成する。このように生成された変換後管理対象データD2は、上述したように、データ処理装置100からサーバ200へと送られて、サーバ200のデータ格納部210に格納される。
次に、データ処理装置100が備える問合せ式変換部105について、処理の具体例を例示しながらさらに詳しく説明する。図10は、問合せ式変換部105の具体的な構成例を示すブロック図である。
問合せ式変換部105は、図10に示すように、問合せ式解析部151と、最適化部152と、文字列要素割当決定部153と、変換後問合せ式生成部154と、を備える。
問合せ式解析部151は、入力された問合せ式Q1を解析し、暗号化・索引対象情報記憶部113が記憶する暗号化・索引対象情報を用いて、索引値が生成された数値データを検索の対象とする条件部を特定する。
最適化部152は、補助情報記憶部112が記憶する補助情報(文字列要素を循環して使用する場合の規則、照合解決が必要な索引値とそれ以外を区別するための情報等)を用いて、問合せ式解析部151が特定した問合せ式Q1の条件部を最適化する。
図11は、補助情報を用いて問合せ式Q1の条件部を最適化する処理の一例を概念的に示す模式図である。図11の例では、文字列集合に含まれる文字列要素の個数が3000(0〜2999)である。文字列集合に含まれる文字列要素を循環させない循環0では、割当関数がPos=3nであるため、循環0から文字列要素が割り当てられる数値は0〜999の範囲であり、照合解決の要否を示す情報が照合不要となっている。また、文字列集合に含まれる文字列要素を1回循環させた循環1では、割当関数がPos=3nであるため、循環1から文字列要素が割り当てられる数値は1000〜1999の範囲であり、照合解決の要否を示す情報が照合必要となっている。また、文字列集合に含まれる文字列要素を2回循環させた循環2では、割当関数がPos=nであるため、循環2から文字列要素が割り当てられる数値は2000〜4999の範囲であり、照合解決の要否を示す情報が照合不要となっている。循環ごとの割当関数や照合解決の要否を示す情報は、例えば、補助情報記憶部112から得られる情報である。
図11の問合せ式1においては、条件部の数値で示される範囲は循環0の範囲内であることが分かる。そして、循環0の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が不要である。したがって、問合せ式1の条件部は、特に最適化することなく、循環0の文字列要素を用いて数値を索引値に変換すればよい。
図11の問合せ式2においては、条件部の数値で示される範囲は循環1と循環2の2つの循環に跨がることが分かる。そして、循環2の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が不要であるが、循環1の文字列要素が割り当てられる数値に対応する索引値は、照合規則を用いた照合解決が必要となる。ここで、循環1を表す文字がXであるとすると、match(t.値,“X”)によって循環1の文字列要素を用いた索引値を持つレコードをすべて取り出すことができる。また、循環2に関しては、照合規則を用いた照合解決が不要であり、そのままサーバ200側で処理させることができるので、この循環2に該当する数値のうちの先頭の数値から、条件部の数値範囲の上限値までを検索範囲とするように条件部の数値範囲を置き換える。ここで、単純に循環2に該当する数値のうちの先頭の数値を用いると、文字列集合の先頭の文字列要素が何であるかがサーバ200側で特定されてしまうので、循環1を包含するように範囲を拡張した上で、条件部の数値範囲を置き換える。図11の例では、循環1からランダムに選択した値1535を、数値範囲の下限値に設定している。この場合、一部区間のレコードが重複して検索されることになるので、これを防ぐためにdistinct処理を問合せ式に追加している。
文字列要素割当決定部153は、データ変換部102の文字列要素割当決定部122と同様に、補助情報記憶部112が記憶する補助情報(文字列要素の割当に用いる割当関数、文字列要素を循環して使用する場合の規則等)を用いて、文字列集合記憶部111が記憶する文字列集合の中から、問合せ式Q1の条件部の数値に対して割り当てる文字列要素を決定する。ここで、問合せ式Q1の条件部は、必要に応じて最適化部152により最適化された条件部である。
変換後問合せ式生成部154は、問合せ式Q1の条件部(必要に応じて最適化部152により最適化された条件部)を、文字列要素割当決定部153によって割り当てられた文字列要素を用いた条件部に変換し、変換後問合せ式Q2を生成する。このように生成された変換後問合せ式Q2は、上述したように、データ処理装置100からサーバ200へと送られて、サーバ200における問合せ処理に用いられる。
その後、変換後問合せ式Q2を用いた問合せ処理の結果である結果データ集合R1がサーバ200からデータ処理装置100へと送られると、上述したように、後処理部108において、この結果データ集合R1が最終的に問合せ式Q1の応答としてユーザに返却する返却結果データ集合R2に変換される。なお、後処理部108での処理は、必要がある場合だけ行えばよく、検索結果が暗号化部分を含まない場合や、最適化によってデータ処理装置100側での照合が不要であることが事前に分かっている場合等においては、結果データ集合R1をそのまま返却結果データ集合R2としてユーザに返却すればよい。
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態は、索引値の照合解決を行うための照合解決プログラムをデータ処理装置100からサーバ200に送り、サーバ200において、この照合解決プログラムを用いて索引値の照合解決を行うようにしたものである。
図12は、第2実施形態に係るデータ管理システムの全体構成を示すブロック図である。本実施形態のデータ管理システムでは、データ処理装置100の機能的な構成要素として、照合解決プログラムP1を生成するプログラム生成部130が追加されている。その他の構成は図1に示した第1実施形態のデータ管理システムの構成と同様である。
プログラム生成部130は、データ変換部102において索引値を生成する際に文字列要素の変形に用いた照合規則に従い、照合解決が必要な索引値に対する照合解決を行うための照合解決プログラムP1を生成する。プログラム生成部130が生成した照合解決プログラムP1は、問合せ式変換部105が生成した変換後問合せ式Q2とともに、問合せ式送信部106からサーバ200へと送信される。
第2実施形態の場合、データ処理装置100の問合せ式変換部105は、問合せ式の条件部の照合解決が必要となる値に関して、collate表記を付与した変換後問合せ式Q2を生成する。図13は、collate表記を付与した変換後問合せ式Q2の一例を示す図である。collate表記は、例えば図13に示すように、照合解決が必要となる構文の後に、照合解決に用いる照合解決プログラムP1を指定する形式で付与されるが、これは一般的な問合せ言語であるSQLやXQUERYでも規定されている構文である。
サーバ200側では、問合せ処理実行部204が変換後問合せ式Q2を用いて問合せ処理を実行する際に、変換後問合せ式Q2を解析して、collate表記(collate“xxx”)が付与された構文を検知した場合は、変換後問合せ式Q2とともに送られた照合解決プログラムP1がcollate表記で指定されたものであるかをチェックして、そうであるならばこの照合解決プログラムP1を用いて照合解決を行う。
照合解決プログラムP1は、例えば、プログラムインタフェースとして2値間の大小関係を特定する(−1,0,1を返却する)機能だけを持つ耐タンパ性が高いプログラム(ソフトウェア)であり、照合規則自体は特定されないような構成であることが望ましい。また、サーバ200側でのセキュリティが保証されている場合は、問合せの度にデータ処理装置100からサーバ200に変換後問合せ式Q2とともに照合解決プログラムP1を送るのではなく、事前にサーバ200側に照合解決プログラムP1を登録しておくようにしてもよい。
第2実施形態の構成の場合、照合解決が必要な索引値が含まれていても、範囲検索、MAX/MIN処理、結合処理、ソート処理等のほとんどの処理をサーバ200側で直接実行することができ、問合せ処理の結果である結果データ集合R1が暗号化された数値データを含まない限りは、結果データ集合R1を返却結果データ集合R2としてそのままユーザに返すことができる。
以上のように、第2実施形態の構成は、照合解決をデータ処理装置100側で行う場合と比較してセキュリティレベルは若干劣るが、サーバ200側でほとんどの値関係の処理を実行できるようになる。したがって、セキュリティ性よりも高性能性を重視する場合は、この構成を採用することが望ましい。
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態は、サーバ200とは別のサーバを用いて索引値の照合解決を行うようにしたものである。
図14は、第3実施形態に係るデータ管理システムの全体構成を示すブロック図である。本実施形態のデータ管理システムは、図14に示すように、データ処理装置100やサーバ200とは分離独立して構成され、サーバ200に対してネットワークを介して通信可能に接続された照合解決サーバ300を備える。その他の構成は図1に示した第1実施形態に係るデータ管理システムの構成と同様である。
照合解決サーバ300は、照合要求受付部301と、プログラム選択部302と、照合解決処理部303と、プログラム記憶部310と、を備える。
プログラム記憶部310は、照合解決プログラムP1,P2,・・・,Pnを記憶する。照合解決プログラムP1,P2,・・・,Pnは、事前にデータ処理装置100からの要求に応じて登録されたプログラムであり、データ処理装置100で文字列要素の変形に用いた照合規則にそれぞれ対応している。これら照合解決プログラムP1,P2,・・・,Pnは、各照合解決プログラムに対して与えられるURIによって特定することができる。例えば、照合解決サーバ300のURLが“http://www.toshiba.co.jp”である場合、“collation1”の名称が与えられた照合解決プログラムのURIは“http://www.toshiba.co.jp/collation1”となり、このURIを指定することで“collation1”の名称が与えられた照合解決プログラムを取り出すことができる。なお、各照合解決プログラムのURIは、照合解決プログラムの登録時にデータ処理装置100側に知らされているものとする。
照合要求受付部301は、サーバ200からの照合要求を受け付けて、この照合要求に応じて照合解決処理部303によって照合解決処理が行われた結果を、サーバ200に返却する。
プログラム選択部302は、サーバ200からの照合要求に含まれるURI表記に基づいて、プログラム記憶部310が記憶する照合解決プログラムP1,P2,・・・,Pnのうち、照合解決処理部303での照合解決処理に用いる照合解決プログラムを選択し、照合解決処理部303に渡す。
照合解決処理部303は、プログラム選択部302によって選択された照合解決プログラムを用いて、サーバ200からの照合要求に含まれる値の照合解決処理を行う。照合解決処理部303による照合解決処理の結果は、照合要求受付部301から、照合要求に対する応答としてサーバ200に返却される。
第3実施形態の場合、データ処理装置100の問合せ式変換部105は、問合せ式の条件部の照合解決が必要となる値に関して、照合解決に用いる照合解決プログラムをURI表現で埋め込んだ形式の変換後問合せ式Q2を生成する。図15は、照合解決に用いる照合解決プログラムをURI表現で埋め込んだ形式の変換後問合せ式Q2の一例を示す図である。このような形式の問合せ式も、一般的な問合せ言語であるSQLやXQUERYの仕様から逸脱しない。
サーバ200側では、問合せ処理実行部204が変換後問合せ式Q2を用いて問合せ処理を実行する際に、変換後問合せ式Q2を解析して、URI指定された構文を検知した場合は、照合解決サーバ300に対して照合要求を出す。例えば、サーバ200の問合せ処理実行部204は、照合関係を解決したい2つの文字列に対して、照合要求受付部301にCompare(x1,x2,“http://www.toshiba.co.jp/collation1”)のような形式で照合要求を行う。この照合要求は、照合解決サーバ300の照合要求受付部301によって受け付けられ、プログラム選択部302により、プログラム記憶部310の中から“collation1”の名称が与えられた照合解決プログラムが選択され、照合解決処理部303に渡される。照合解決処理部303は、“collation1”の名称が与えられた照合解決プログラムを用いて、x1とx2の2つの値の大小比較を行って、その結果を照合要求受付部301からサーバ200の問合せ処理実行部204に返す。
第3実施形態の構成では、サーバ200側は2つの文字列間の大小関係のみを知ることができるのみであり、照合規則自体を知ることはできない。したがって、第3実施形態の構成の場合は、サーバ200側で照合規則が特定されるリスクを削減することが可能となる。ただし、第3実施形態の構成では、照合解決サーバ300も高信頼性を持たなければならないこと、照合規則が特定されるリスクを完全に排除することはできないこと、ネットワーク経由での照合解決処理になるため第2実施形態と比較して処理時間が長くなるとの欠点もある。しかし、第3実施形態の構成は、サーバ200側だけで値に関する条件処理を完結させることができるので、第2実施形態と比較して、性能を若干劣化させてもよいがセキュリティ強度を上げたい場合などの利用に適している。
(実施例)
次に、上述した各実施形態の構成において、ユーザが発行する問合せ式Q1に対して返却結果データ集合R2を返却するまでの挙動の具体例を、第1実施例〜第4実施例として説明する。図16は、第1実施例〜第4実施例の概要を説明する模式図であり、図16(a)が第1実施例、図16(b)が第2実施例、図16(c)が第3実施例、図16(d)が第4実施例をそれぞれ示している。
第1実施例は、第1実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行わない(つまり、同一の数値データに対して同一の索引値が生成されることを許容する)ようにした例である。第2実施例は、第2実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、データ処理装置100からサーバ200に対して照合解決プログラムを渡して、サーバ200側でこの照合解決プログラムを用いて照合解決を行うようにした例である。第3実施例は、第3実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、照合解決サーバ300を利用して照合解決を行うようにした例である。第4実施例は、第1実施形態の構成を前提とし、データ登録時に照合規則を用いた文字列要素の変形を行い、データ処理装置100側で照合解決を行うようにした例である。
図17は、第1実施例〜第4実施例で扱う条件を示す図である。第1実施例〜第4実施例では、ユーザが発行する問合せ式Q1は、サーバ200のデータ格納部210に格納された従業員テーブルの年収カラムが範囲検索の対象であり、かつ、その範囲内の年収を最終的にOrder Byによりソートして、さらに、Select部にて年収ではない従業員IDだけを取り出して、ユーザに返却することを要求する問合せ式であるものとする。サーバ200のデータ格納部210に格納された従業員テーブルの年収カラムは暗号化されているので、範囲検索の条件を年収カラムに対応する索引値のカラムに関する条件に変換し、最適化により上限値、下限値等を設定する。
索引値の生成に用いる文字列集合は、図8のCase2で説明したものと同様とし、循環0と循環2に関しては索引値に対する照合解決が不要であり、循環1の範囲内でのみ照合解決が必要であることを補助情報として記憶しているものとする。また、文字列要素の個数は100個であり、文字列集合における並び順に従って与えられる数値が0〜50の文字列要素は照合解決が不要であり、文字列集合における並び順に従って与えられる数値が51〜99の文字列要素は照合解決が必要であることを補助情報として記憶しているものとする。また、照合解決に用いる照合解決プログラムP1に与えられた名称は“collation1”であり、第3実施例において照合解決に用いる照合解決サーバ300のURLは“http://www.toshiba.co.jp”であるものとする。
図18は、第1実施例〜第4実施例においてデータ処理装置100の問合せ式変換部105により生成される変換後問合せ式Q2を示す図であり、第1実施例で生成される変換後問合せ式Q2を変換後問合せ式1、第2実施例で生成される変換後問合せ式Q2を変換後問合せ式2、第3実施例で生成される変換後問合せ式Q2を変換後問合せ式3、第4実施例で生成される変換後問合せ式Q2を変換後問合せ式4としてそれぞれ示している。
第1実施例においては、索引値に対する照合解決を行わないので、サーバ200に格納された従業員テーブルの索引カラムの索引値を用いて、照合解決プログラムP1を用いることなく、サーバ200だけで処理を完結させることができる。よって、第1実施例の場合は、問合せ式Q1の結果取得部(SQLの場合Select部)が暗号化されたデータの取得を要求していない限りは、サーバ200の問合せ処理実行部204による問合せ処理の結果である結果データ集合R1を、そのまま返却結果データ集合R2としてユーザに返却することが可能である。
第1実施例の場合、問合せ式Q1の条件部である102<値<152の部分は、データ登録時に用いた文字列集合を用いて“XBCDF”<値<“XXABD”に変換される。また、Order Byの部分は、照合解決が不要であるためそのままでよい。したがって、第1実施例における最終的な変換後問合せ式Q2は、図18の変換後問合せ式1で示すように、
Select 従業員ID
From 従業員テーブル
Where “XBCDF”<値<“XXABD”
Order By 値
となる。この変換後問合せ式Q2を用いた問合せ処理の結果である結果データ集合R1は、そのまま返却結果データ集合R2としてユーザに返却される。
第2実施例においては、データ処理装置100のプログラム生成部130が生成した照合解決プログラムP1を用いて、サーバ200側で照合解決を行う。この場合も、第1実施例と同様に、問合せ式Q1の結果取得部(SQLの場合Select部)が暗号化されたデータの取得を要求していない限りは、サーバ200の問合せ処理実行部204による問合せ処理の結果である結果データ集合R1を、そのまま返却結果データ集合R2としてユーザに返却することが可能である。ただし、照合解決プログラムP1を用いて照合解決を行う場合は、照合解決を行わない場合と比較して若干速度が低下するので、データ処理装置100側で補助情報を用いてできる限り問合せ式を最適化する。
図17に示した条件により、102<値<152は、循環1と循環2の区間に跨がり、循環2に関しては照合解決が不要であることが補助情報から分かるので、循環2に属する150<値<152に関しては、照合解決プログラムP1を指定してサーバ200に照合解決を行わせる必要がない。また、循環1については、いずれかの文字列要素において照合解決が必要となるが、これも補助情報から、100<値<125の区間においては照合解決が不要であることが分かる。一方、125≦値<150の区間においては照合解決が必要となるので、照合解決に用いる照合解決プログラムP1のプログラム名“collation1”を指定したcollate表記を、照合解決が必要となる構文の後に付与する。そして、このように範囲分割した条件のORを取れば、求めるべき問合せ式となる。
つまり、第2実施例では、最適化処理によって問合せ式Q1が、
Select 従業員ID
From 従業員テーブル
Where (102<値<125)
Or (125≦値<150 collate“collation1”)
Or (150≦値<152)
Order By 値 collate“collation1”
のように変形される。
このように、Order Byの部分に対しても、照合解決に用いる照合解決プログラムP1のプログラム名“collation1”を指定したcollate表記を付与する。なお、範囲検索の条件部を分割した場合は、上述したように、文字列集合における先頭の文字列や末尾の文字列要素を不用意に用いないように、一部の範囲を重複させて分割後の範囲を設定することが望ましいが、ここではその処理は省略する。
第2実施例では、以上のようにして変形された問合せ式Q1に対して、条件部である(102<値<125)、(125≦値<150)、(150≦値<152)のそれぞれをデータ登録時に用いた文字列集合を用いて変換する。したがって、第2実施例における最終的な変換後問合せ式Q2は、図18の変換後問合せ式2で示すように、
Select 従業員ID
From 従業員テーブル
Where (“XBCDF”<値<“XJKLM”)
Or (“XJKLM”≦値<“XXAB” collate“collation1”)
Or (“XXAB”≦値<“XXABD”)
Order By 値 collate“collation1”
となる。
第3実施例においては、サーバ200が照合解決を行うのではなく、照合解決サーバ300の照合解決処理部303が、サーバ200からの要求に応じて、事前に登録された照合解決プログラムP1を用いて照合解決を行う。第3実施例では、サーバ200の外部の照合解決サーバ300によって照合解決が実行されるため、データ処理装置100側で補助情報を用いてできる限り問合せ式を最適化することが、第2実施例よりもさらに重要となる。
第3実施例における問合せ式の最適化の方法は第2実施例と同様であるが、照合解決に用いる照合解決プログラムP1の指定は、URIを用いて行われる。ここでは、照合解決サーバ300のURLが“http://www.toshiba.co.jp”であり、照合解決プログラムP1に与えられた名称が“collation1”であるため、照合解決プログラムP1のURIは“http://www.toshiba.co.jp/collation1”となる。
第3実施例では、この照合解決に用いる照合解決プログラムP1のURIを指定して、第2実施例と同様に条件部を分離するように問合せ式Q1を変形した上で、分離した条件部のそれぞれをデータ登録時に用いた文字列集合を用いて変換する。したがって、第3実施例における最終的な変換後問合せ式Q2は、図18の変換後問合せ式3で示すように、
Select 従業員ID
From 従業員テーブル
Where (“XBCDF”<値<“XJKLM”)
Or (“XJKLM”≦値<“XXAB” collate“http://www.toshiba.co.jp/collation1”)
Or (“XXAB”≦値<“XXABD”)
Order By 値 collate“http://www.toshiba.co.jp/collation1”
となる。
第4実施例では、サーバ200側で照合解決を行うことができず、かつ、問合せ式Q1の条件部が照合解決を必要とする区間を含むことが補助情報から分かるので、データ処理装置100の問合せ式変換部105は、サーバ200から解候補を取得するような変換後問合せ式Q2を生成し、変換後問合せ式Q2で取得された結果データ集合R1を一次結果集合として後処理部108に入力し、後処理部108において照合解決を行った後にソート処理を行った結果を、返却結果データ集合R2としてユーザに返却する。
問合せ式Q1の条件部の102<値<152のうち、102<値<150の範囲は照合解決が必要な循環1に属するため、この範囲についてはmatch関数を用いてこの範囲内の値を解候補とするような条件部に変換する。また、150≦値<152の範囲は照合解決が不要な循環2に属するため、この範囲については通常の問合せ処理を行う範囲検索条件に変形し、データ登録時に用いた文字列集合を用いて変換する。したがって、第4実施例においてデータ処理装置100からサーバ200に送られる変換後問合せ式Q2は、図18の変換後問合せ式4−1で示すように、
Select *
From 従業員テーブル
Where match(値,“X”)Or(“XXAB≦値<“XXABD”)
Order By 値
となる。
ここで、Order Byに関しては、サーバ200に送る変換後問合せ式Q2においては省略して、データ処理装置100側でのみ実施することも可能であるが、ここでは照合解決を行わない状態でサーバ200側で実施するものとする。これは、少なくとも循環の回数については照合解決を行うか否かとは関係なく定まることを利用して、極力処理コストが重い部分をサーバ200側に行わせる狙いがある。また、データ処理装置100側で照合解決の処理が必要なため、索引値を取得するためにSelect*としている。この変換後問合せ式Q1を用いた問合せ処理の結果である結果データ集合R1は、一次結果集合としてデータ処理装置100の後処理部108に入力され、後処理部108において、文字列要素を変形する際に用いた照合規則に従ってさらに問合せ処理が行われる。
一次結果集合に対する問合せ処理に用いられる変換後問合せ式Q2は、元の問合せ式Q1の条件部である102<値<152を特に変形せずに、上限値および下限値がデータ登録時に用いた文字列集合を用いて変換される。また、サーバ200側での処理では不完全であったソート処理を、照合解決に用いる照合規則を指定して再度実行させるようにしている。ここでは、第2実施例や第3実施例と同様に、文字列要素の変形に用いた照合規則を元に生成された照合解決プログラムP1を用いて照合解決を行うものとし、照合解決プログラムP1の名称“collation1”が指定される。この場合、サーバ200側でソート済み部分(照合解決を行わない状態でソートを行った部分)と、位置が確定していない部分(match関数でヒットさせた部分)が分かるので、これを利用してさらに問合せ処理を高速化することも可能である。
第4実施例においてデータ処理装置100の後処理部105が一次結果集合に対して行う問合せ処理に用いられる変換後問合せ式Q2は、図18の変換後問合せ式4−2で示すように、
Select 従業員ID
From 一次結果集合
Where “XBCDF”<値<“XXABD” collate“collation1”
Order By 値 collate“collation1”
となる。第4実施例では、この変換後問合せ式Q2を用いた問合せ処理の結果が、返却結果データR2としてユーザに返却される。
以上の第1実施例〜第4実施例のように、上述した実施形態のデータ管理システムは、ユーザが所望するセキュリティレベル、応答性能等により、それぞれ適切なシステム構成を採用することが可能であり、セキュリティレベルと性能を極力両立させるように処理を行うことが可能である。このように、実施形態のデータ管理システムによれば、高いセキュリティ性を確保しながら、高性能な検索処理を実現することができる。
実施形態のデータ管理システムにおけるデータ処理装置100の機能は、例えば、データ処理装置100において所定のプログラムを実行することにより実現することができる。この場合、データ処理装置100は、たとえば図19に示すように、CPU(Central Processing Unit)151などの制御装置、ROM(Read Only Memory)152やRAM(Random Access Memory)153などの記憶装置、ネットワークに接続して通信を行う通信I/F154、各部を接続するバス155などを備えた、通常のコンピュータを利用したハードウェア構成となる。
データ処理装置100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
また、データ処理装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、データ処理装置100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、データ処理装置100で実行されるプログラムを、ROM152等に予め組み込んで提供するように構成してもよい。
データ処理装置100で実行されるプログラムは、データ処理装置100の各処理部(データ受信部101、データ変換部102、データ送信部103、問合せ式受信部104、問合せ式変換部105、問合せ式送信部106、結果受信部107、後処理部108、結果送信部109、およびプログラム生成部130)を含むモジュール構成となっており、実際のハードウェアとしては、例えば、CPU151(プロセッサ)が上記記録媒体からプログラムを読み出して実行することにより、上述した各処理部が主記憶装置上にロードされ、上述した各処理部が主記憶装置上に生成されるようになっている。なお、データ処理装置100は、上述した各処理部の一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実現することも可能である。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1. 大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部と、
    管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するデータ変換部と、
    前記変換後管理対象データをサーバに送信する第1送信部と、
    問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する問合せ式変換部と、
    前記変換後問合せ式を前記サーバに送信する第2送信部と、
    前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する受信部と、を備えるデータ処理装置。
  2. 前記データ変換部は、前記数値データが表す数値が前記文字列集合に含まれる文字列要素の個数よりも大きい場合に、前記文字列集合に含まれる文字列要素を循環させて前記数値データが表す数値に割り当てられる文字列要素を特定し、特定した文字列要素に対して循環の回数を表す情報を付加して前記索引値を生成し、
    前記問合せ式変換部は、前記問合せ式の条件部に用いた数値が前記文字列集合に含まれる文字列要素の個数よりも大きい場合に、前記文字列集合に含まれる文字列要素を循環させて前記問合せ式の条件部に用いた数値に割り当てられる文字列要素を特定し、特定した文字列要素と循環の回数を表す情報とを用いて前記問合せ式の条件部を変換する、請求項1に記載のデータ処理装置。
  3. 前記データ変換部は、事前に定義された割当規則を用いて、前記文字列集合に含まれる複数の文字列要素のうち、前記数値データが表す数値に割り当てられる文字列要素を特定し、該文字列要素を用いて前記索引値を生成し、
    前記問合せ式変換部は、前記割当規則を用いて、前記文字列集合に含まれる複数の文字列要素のうち、前記問合せ式の条件部に用いた数値に割り当てられる文字列要素を特定し、該文字列要素を用いて前記問合せ式の条件部を変換する、請求項1に記載のデータ処理装置。
  4. 前記データ変換部は、前記数値データが表す数値に割り当てられる文字列要素を、事前に定義された照合規則に従って変形して前記索引値を生成するとともに、該索引値の生成に用いた文字列要素に対して、前記照合規則に従った大小関係の照合処理が必要であることを示す情報を付加し、
    前記問合せ式変換部は、前記問合せ式の条件部を、前記照合規則に従った大小関係の照合処理が必要である文字列要素を含む部分と、前記照合規則に従った大小関係の照合処理が必要である文字列要素を含まない部分とに分離した条件部に変換する、請求項1に記載のデータ処理装置。
  5. 前記照合規則に基づいて、文字列要素の大小関係の照合処理を行うための照合解決プログラムを生成するプログラム生成部をさらに備え、
    前記第2送信部は、前記照合解決プログラムを前記変換後問合せ式とともに前記サーバに送信する、請求項4に記載のデータ処理装置。
  6. データ処理装置と、該データ処理装置に対して通信可能に接続されたサーバと、を備えるデータ管理システムであって、
    前記データ処理装置は、
    大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部と、
    管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するデータ変換部と、
    前記変換後管理対象データを前記サーバに送信する第1送信部と、
    問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する問合せ式変換部と、
    前記変換後問合せ式を前記サーバに送信する第2送信部と、
    前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する第1受信部と、を備え、
    前記サーバは、
    前記変換後管理対象データを前記データ処理装置から受信する第2受信部と、
    前記変換後管理対象データを格納するデータ格納部と、
    前記変換後問合せ式を前記データ処理装置から受信する第3受信部と、
    前記変換後問合せ式を用いて前記データ格納部に対する問合せ処理を実行する問合せ処理実行部と、
    前記変換後問合せ式を用いた問合せ処理の結果を前記データ処理装置に送信する第3送信部と、を備えるデータ管理システム。
  7. 前記データ変換部は、前記数値データが表す数値に割り当てられる文字列要素を、事前に定義された照合規則に従って変形して前記索引値を生成し、
    前記サーバと通信可能に接続され、前記サーバからの要求に応じて、前記照合規則に基づいて生成された照合解決プログラムを用いて、文字列要素の大小関係の照合処理を行う照合解決サーバをさらに備える、請求項6に記載のデータ管理システム。
  8. 大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部を備えたデータ処理装置において実行されるデータ処理方法であって、
    前記データ処理装置のデータ変換部が、管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成するステップと、
    前記データ処理装置の第1送信部が、前記変換後管理対象データをサーバに送信するステップと、
    前記データ処理装置の問合せ式変換部が、問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成するステップと、
    前記データ処理装置の第2送信部が、前記変換後問合せ式を前記サーバに送信するステップと、
    前記データ処理装置の受信部が、前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信するステップと、を含むデータ処理方法。
  9. 大小関係が一意に特定できる複数の文字列要素の集合である文字列集合を記憶する記憶部を備えたコンピュータに、
    管理対象データに含まれる数値データを暗号化するとともに、前記文字列集合に含まれる文字列要素を用いて前記数値データに対応する索引値を生成し、暗号化された前記数値データと前記索引値とを含む変換後管理対象データを生成する機能と、
    前記変換後管理対象データをサーバに送信する機能と、
    問合せ式の数値を用いた条件部を、前記文字列集合に含まれる文字列要素を用いた条件部に変換して、変換後問合せ式を生成する機能と、
    前記変換後問合せ式を前記サーバに送信する機能と、
    前記変換後問合せ式を用いた問合せ処理の結果を前記サーバから受信する機能と、を実現させるためのプログラム。
JP2012543397A 2012-09-20 2012-09-20 データ処理装置、データ管理システム、データ処理方法およびプログラム Active JP5367179B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/074004 WO2014045361A1 (ja) 2012-09-20 2012-09-20 データ処理装置、データ管理システム、データ処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP5367179B1 true JP5367179B1 (ja) 2013-12-11
JPWO2014045361A1 JPWO2014045361A1 (ja) 2016-08-18

Family

ID=49850415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543397A Active JP5367179B1 (ja) 2012-09-20 2012-09-20 データ処理装置、データ管理システム、データ処理方法およびプログラム

Country Status (5)

Country Link
US (1) US10546136B2 (ja)
EP (1) EP2899648A1 (ja)
JP (1) JP5367179B1 (ja)
CN (1) CN103827862B (ja)
WO (1) WO2014045361A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380352B2 (en) * 2014-02-04 2019-08-13 International Business Machines Corporation Document security in enterprise content management systems
US20170134159A1 (en) * 2015-11-05 2017-05-11 Sze Yuen Wong Systems and methods for aggregating encrypted data
CN110019994A (zh) * 2017-11-13 2019-07-16 阿里巴巴集团控股有限公司 数据加密、解密及查询方法、数据加密解密及查询装置
CN114500356B (zh) * 2022-04-06 2022-07-05 广东省通信产业服务有限公司 数据交叉传输方法、装置及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436329A (en) * 1987-07-31 1989-02-07 Nec Corp Character string registration retriever
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
WO2010024116A1 (ja) * 2008-08-26 2010-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 公開された検索エンジンを用いた検索装置、検索方法及び検索プログラム
WO2012004880A1 (ja) * 2010-07-08 2012-01-12 三菱電機株式会社 キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法
WO2012095773A2 (en) * 2011-01-10 2012-07-19 Koninklijke Philips Electronics N.V. Computed tomography (ct) data acquisition

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS477198Y1 (ja) 1970-05-13 1972-03-15
US4853962A (en) * 1987-12-07 1989-08-01 Universal Computer Consulting, Inc. Encryption system
US5585793A (en) * 1994-06-10 1996-12-17 Digital Equipment Corporation Order preserving data translation
SG96597A1 (en) * 2000-02-17 2003-06-16 Ibm Archiving and retrieval method and apparatus
WO2001080557A1 (en) * 2000-04-18 2001-10-25 Matsushita Electric Industrial Co., Ltd. A storage medium, a data obtaining apparatus, a data holding apparatus, a data obtaining method, and a data holding method
US6877003B2 (en) * 2001-05-31 2005-04-05 Oracle International Corporation Efficient collation element structure for handling large numbers of characters
JP2004318927A (ja) 2003-04-11 2004-11-11 Sony Corp デジタルデータの保存方法および記録媒体
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US20050251519A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Efficient language-dependent sorting of embedded numerics
US7899665B2 (en) * 2004-08-20 2011-03-01 International Business Machines Corporation Methods and systems for detecting the alphabetic order used by different languages
US7676476B2 (en) * 2004-08-25 2010-03-09 Microsoft Corporation Data types with incorporated collation information
US8448158B2 (en) * 2005-02-03 2013-05-21 Mitsubishi Electric Corporation Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof
JP2007173912A (ja) * 2005-12-19 2007-07-05 Glory Ltd 印刷検査装置
WO2008047432A1 (fr) 2006-10-19 2008-04-24 Fujitsu Limited Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations
US8958562B2 (en) * 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
US20080181406A1 (en) * 2007-01-30 2008-07-31 Technology Properties Limited System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
US20090158054A1 (en) * 2007-12-13 2009-06-18 Massachusetts Institute Of Technology Private data processing
JP5056546B2 (ja) 2008-04-02 2012-10-24 日本電気株式会社 ファイル保護システム、方法及びプログラム
US9002976B2 (en) * 2008-09-15 2015-04-07 Vaultive Ltd System, apparatus and method for encryption and decryption of data transmitted over a network
US20120324240A1 (en) 2010-01-13 2012-12-20 Mitsubishi Electric Corporation Secure search system, public parameter generation device, encryption device, user secret key generation device, query issuing device, search device, computer program, secure search method, public parameter generation method, encryption method, user secret key generation method, query issuing method, and search method
CN103329184B (zh) * 2011-01-13 2016-02-03 三菱电机株式会社 数据处理装置以及数据保管装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436329A (en) * 1987-07-31 1989-02-07 Nec Corp Character string registration retriever
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2007124520A (ja) * 2005-10-31 2007-05-17 Ntt Data Corp データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
WO2010024116A1 (ja) * 2008-08-26 2010-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 公開された検索エンジンを用いた検索装置、検索方法及び検索プログラム
WO2012004880A1 (ja) * 2010-07-08 2012-01-12 三菱電機株式会社 キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法
WO2012095773A2 (en) * 2011-01-10 2012-07-19 Koninklijke Philips Electronics N.V. Computed tomography (ct) data acquisition

Also Published As

Publication number Publication date
US20140081949A1 (en) 2014-03-20
JPWO2014045361A1 (ja) 2016-08-18
US10546136B2 (en) 2020-01-28
EP2899648A1 (en) 2015-07-29
CN103827862A (zh) 2014-05-28
WO2014045361A1 (ja) 2014-03-27
CN103827862B (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
Kim et al. Provenance trails in the wings/pegasus system
US7299171B2 (en) Method and system for processing grammar-based legality expressions
US9514286B2 (en) Context-based security policy evaluation using weighted search trees
CN104967620B (zh) 一种基于属性访问控制策略的访问控制方法
US7822788B2 (en) Method, apparatus, and computer program product for searching structured document
US9934229B2 (en) Telemetry file hash and conflict detection
US8224834B2 (en) Database message analysis support technique
JP5367179B1 (ja) データ処理装置、データ管理システム、データ処理方法およびプログラム
JP6805765B2 (ja) ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
KR101679050B1 (ko) 규칙 기반 로그 데이터 그룹화를 이용한 개인 맞춤형 로그 분석 시스템 및 그 방법
Schueler et al. Querying for meta knowledge
JP2011257812A (ja) スキーマ定義生成装置、スキーマ定義生成方法およびスキーマ定義生成プログラム
JP2013152512A (ja) 情報処理装置及び情報処理方法及びプログラム
US8055744B2 (en) Resolution of group membership for resources
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
US11222131B2 (en) Method for a secure storage of data records
KR102253841B1 (ko) 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
Cho et al. Privacy-preserving similarity measurement for access control policies
JP5283600B2 (ja) 情報検索プログラム、情報検索システム
US20150286700A1 (en) Recording medium having stored thereon database access control program, method for controlling database access, and information processing apparatus
WO2020240873A1 (ja) 検証方法、情報処理装置及び検証プログラム
WO2021255841A1 (ja) 情報検索装置、情報検索方法、及びコンピュータ読み取り可能な記録媒体
CN104079676A (zh) 一种云计算集群主机地址查询方法及设备
JP6328078B2 (ja) データベースシステムおよびデータベースシステム用プログラム
CN101420454A (zh) 基于服务格的替代Web服务数据处理方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130910

R150 Certificate of patent or registration of utility model

Ref document number: 5367179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350