JP6642425B2 - 条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム - Google Patents

条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム Download PDF

Info

Publication number
JP6642425B2
JP6642425B2 JP2016529011A JP2016529011A JP6642425B2 JP 6642425 B2 JP6642425 B2 JP 6642425B2 JP 2016529011 A JP2016529011 A JP 2016529011A JP 2016529011 A JP2016529011 A JP 2016529011A JP 6642425 B2 JP6642425 B2 JP 6642425B2
Authority
JP
Japan
Prior art keywords
condition
search
search condition
database
value
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
JP2016529011A
Other languages
English (en)
Other versions
JPWO2015194117A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2015194117A1 publication Critical patent/JPWO2015194117A1/ja
Application granted granted Critical
Publication of JP6642425B2 publication Critical patent/JP6642425B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/465Structured object, e.g. database record
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (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)

Description

本発明は、データベース等に関する検索条件を求める条件生成装置等に関する。
データベース貸し出しサービス(DataBase_as_a_Service、以降、「DBaaS」と表す)は、ユーザが外部のデータベース(DataBase。以降、「DB」と表す)に、ユーザが有するデータを保管するサービスを表す。クラウドコンピューティングに見られるように、ユーザが外部の計算機リソースを利用するサービスが普及するにつれ、DBaaSは、広く普及すると期待される。
DBaaSは、DBが格納するデータ(情報)の中から、所望の情報を検索する機能を有する。ユーザは、該機能を利用することにより、該DBに格納されている情報に基づき所望の情報を抽出する。この場合に、DBaaSは、ユーザが送信する検索命令(クエリ)を受信するのに応じて、該検索命令を実行することにより、所望の情報を抽出する。次に、DBaaSは、抽出した情報を該ユーザに送信する。
しかし、DBが検索可能な検索命令の種類は、制限される場合がある。たとえば、DBが、「検索可能暗号」等の暗号方式を採用する場合(たとえば、非特許文献1及び2に例示されている「暗号化データベース」である場合)に、DBが検索可能な検索命令の種類は制限される。
検索可能暗号方式は、暗号化された情報(暗号文)を復号化することなく、検索を可能にする技術である。たとえば、検索可能暗号方式は、検索対象である情報に関して、暗号を用いることにより秘匿性を守りつつ、かつ、暗号化された情報において、検索命令に応じて検索することを可能にする。
たとえば、非特許文献3は、一致検索暗号方式と呼ばれる検索可能暗号方式の一例を開示する。該一致検索暗号方式においては、該情報を復号化することなく、暗号化された情報が所定の値に等しいか否かを判定する。
また、たとえば、非特許文献4は、順序保存暗号方式と呼ばれる検索可能暗号方式の一例を開示する。該順序保存暗号方式においては、該情報を復号化することなく、暗号化された情報が基準を満足するか否かを判定する。
ここで、順序保存暗号方式について説明する。暗号化されていない値xに関して、秘密鍵Kを用いて暗号化する場合に算出される暗号文をE(K、x)と表す。尚、順序保存暗号方式において、暗号文E(K、x)は、たとえば、整数値である。
この場合に、順序保存暗号方式において、暗号化されていない値aが、暗号化されていない値bより大きいことに関する必要十分条件は、暗号文E(K、a)の値が暗号文E(K、b)の値より大きいことである。したがって、「E(K、a)の値がE(K、b)の値より大きい」は、「整数値としてE(K、a)の値が値E(K、b)の値より大きい」ことを表す。
たとえば、暗号化されていない値aは、秘密鍵Kを用いて、暗号文E(K、a)に暗号化される。暗号化DBは、「E(K、a)の値以上である」という検索条件が成立する情報を全て抽出せよ」という検索命令を受信する。データベースは、受信した検索命令に従い、情報を抽出する。この場合に、情報は、暗号化されている。したがって、所望の情報は、データベースが抽出する情報を復号化することにより、抽出される。
暗号化DBは、DBaaSの一例であり、検索可能暗号方式を用いることにより実現されるセキュアなDBである。暗号化DBは、検索可能暗号方式に従い暗号化された情報を格納する。暗号化DBは、検索可能暗号方式に従い、暗号化された検索条件を用いて記述された検索命令を受信し、復号化することなく、該検索命令に応じて情報を抽出する。
しかし、暗号化DBが検索可能な検索命令の種類は、制限される場合がある。たとえば、非特許文献3に開示された一致検索暗号方式を採用する暗号化DBにおいて、復号化することなく検索可能な命令の種類は、「暗号化された情報が、所定の値に等しいか否か」に応じて検索する検索命令のみである。また、非特許文献4に開示された順序保存暗号方式を採用する暗号化DBにおいて、復号化することなく検索可能な命令の種類は、「暗号化された情報が、所定の値以上であるか否か」に応じて検索する検索命令のみである。
もちろん、暗号化DBは、暗号化された情報を、該暗号化する秘密鍵に基づき復号化し、復号化した情報を用いて検索可能になる。しかし、暗号化DBが暗号化する秘密鍵に関する情報を有するのは、情報に関する安全性の観点から好ましくない。したがって、暗号化DBは、暗号化する秘密鍵に関する情報を有さない構成が採用されることが多い。係る構成の場合に、暗号化DBに格納されている暗号化された情報を復号化することができないので、暗号化DBが検索可能な検索命令の種類は、制限される。
また、特許文献1は、格納対象である情報を暗号化する場合に、同一の情報であっても、暗号化された情報が異なる暗号方式を採用するデータベース暗号システムの一例を開示する。該データベース暗号システムは、上述した暗号化DBと同様に、一致検索する命令に応じて情報を抽出する。しかし、該データベース暗号システムによれば、抽出可能な情報が制限される。
特開2011−198079号公報
Raluca_Ada_Popa, Catherine_M.S.Redfield, Nickolai_Zeldovich, and Hari_Balakrishnan. CryptDB: Protecting_Confidentiality_with_Encrypted_Query_Processing. In_Proceedings_of_the_23rd_ACM_Symposium_on_Operating_Systems_Principles_(SOSP_2011): 85頁〜100頁 Craig_Gentry: Fully_homomorphic_encryption_using_ideal_lattices. STOC_2009, Proceedings_of_the_forty−first_annual_ACM_symposium_on_Theory_of_computing: 169頁〜178頁 Practical_Techniques_for_Searches_on_Encrypted_Data. D.Song, D.Wagner, and A.Perrig. In_the_Proceedings_of_IEEE_Symposium_on_Research_in_Security_and_Privacy, 2000.: 44頁〜55頁 Alexandra_Boldyreva, Nathan_Chenette, Younho_Lee, Adam_ONeill: Order−Preserving_Symmetric_Encryption. EUROCRYPT_2009: 224頁〜241頁
上述したように、たとえば、暗号化DBが検索可能な検索命令の種類は、制限される場合がある。たとえば、検索命令が、「2乗することにより算出される値が8以上になる」という検索条件が成立する情報を抽出する命令である場合に、暗号化DBは、該検索命令に応じた検索を実行することができない。この理由は、暗号化DBが、暗号化に必要な秘密鍵を有さないので、暗号文を復号化できないからである。
したがって、この場合に、暗号化DBは、必ずしも、所望の検索条件を用いて記述された検索命令に応じて情報を抽出できるとは限らない。
そこで、本発明の主たる目的は、データベースが検索できない情報が含まれていた場合であっても、高速な検索処理を可能にする条件生成装置等を提供することである。
前述の目的を達成するために、本発明の一態様において、条件生成装置は、
データベースから情報を抽出する条件を表す第1検索条件及び第2検索条件が含まれている対象検索条件のうち、前記第1検索条件に含まれている一部の検索条件が成り立つか否かを表す真偽値を算出し、算出した真偽値を前記一部の検索条件に設定し、前記真偽値を設定した前記対象検索条件の成否に応じて、前記第2検索条件の真偽に依存する第3検索条件を生成する条件生成手段
を備える。
また、本発明の他の見地として、条件生成方法は、
データベースから情報を抽出する条件を表す第1検索条件及び第2検索条件が含まれている対象検索条件のうち、前記第1検索条件に含まれている一部の検索条件が成り立つか否かを表す真偽値を算出し、算出した真偽値を前記一部の検索条件に設定し、前記真偽値を設定した前記対象検索条件の成否に応じて、前記第2検索条件の真偽に依存する第3検索条件を生成する。
さらに、同目的は、係る条件生成プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
本発明に係る条件生成装置等によれば、データベースが検索できない情報が含まれていた場合であっても、高速な検索処理が可能になる。
本発明の第1の実施形態に係る条件生成装置が有する構成を示すブロック図である。 第1の実施形態に係る条件生成装置における処理の流れを示すフローチャートである。 第2の実施形態に係る条件生成装置が有する構成を示すブロック図である。 第2の実施形態に係る条件生成装置における処理の流れを示すフローチャートである。 本発明の第3の実施形態に係るデータベース検索システムが有する構成を示すブロック図である。 第3の実施形態に係るデータベース検索システムにおける処理の流れを示すフローチャートである。 本発明の第4の実施形態に係るデータベース検索システムが有する構成を示すブロック図である。 第4の実施形態に係るデータベース検索システムにおける処理の流れを示すフローチャートである。 本発明の各実施形態に係る条件生成装置またはデータベース検索システムを実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
まず、発明の理解を容易にするため、本発明が解決しようとする課題を詳細に説明する。
暗号化DBは、暗号化されている情報を復号化することによって、所定の検索条件以外の条件を含む任意の検索命令を実行することができる。たとえば、検索命令が所定の検索条件以外のある検索条件を含む場合に、暗号化DBは、該暗号化DBにおける全ての暗号化された情報を復号化し、復号化した情報に対して、該ある検索条件に応じた検索命令を実行する。これによって、暗号化DBは、所定の検索条件以外の検索条件を含む検索命令であっても検索することができる。
本願発明者は、所望の検索条件に基づき、暗号化DBを検索する手法に関する課題を見出した。
すなわち、所望の検索条件にて検索する場合に、本発明の各実施形態に係る条件生成装置は、該所望の検索条件を、暗号化DBが検索可能な検索条件Pと、暗号化DBが検索不可能な検索条件Qとに分類する。次に、該条件生成装置は、検索条件Pを用いて記述された検索命令を暗号化DBに送信する。次に、該条件生成装置は、該暗号化DBから暗号文を受信し、受信した暗号文を復号化し、復号化した情報を用いて、検索条件Qに関する検索を実行する。
すなわち、本願発明者は、所望の検索条件を、検索条件Pと、検索条件Qとに分類することにより、該所望の検索条件に応じた検索を実行することができることを見出すとともに、上述した課題を解決する手段を導出するに至った。
以降、このような課題を解決可能な、本発明を実施する実施形態について、図面を参照しながら説明する。
<第1の実施形態>
本発明の第1の実施形態に係る条件生成装置101が有する構成と、条件生成装置101が行う処理とについて、図1と図2とを参照しながら詳細に説明する。図1は、本発明の第1の実施形態に係る条件生成装置101が有する構成を示すブロック図である。図2は、第1の実施形態に係る条件生成装置101における処理の流れを示すフローチャートである。
第1の実施形態に係る条件生成装置101は、条件生成部102を有する。
まず、たとえば、ユーザは、データベース151から所望の情報を抽出する対象検索条件201を用いて記述された検索命令を条件生成装置101に送信する。
対象検索条件201は、データベース151が検索可能な検索条件(以降、「第1検索条件」と表す)と、データベース151が検索不可能な検索条件(以降、「第2検索条件」と表す)とを含む。すなわち、対象検索条件201は、第1検索条件と、第2検索条件とを含む検索条件である。
たとえば、データベース151は、順序保存暗号方式に従い暗号化された情報を記憶可能な場合に、検索条件P「a以上である」によって記述された検索命令「検索条件Pが成立する情報を全て抽出する」に応じた検索を実行することができる。すなわち、第1検索条件は、検索条件Pを含む。その一方で、データベース151は、検索条件Q「2乗することにより算出される値が8以上になる」によって記述された検索命令「検索条件Qが成立する情報を全て抽出する」という命令に応じた検索を実行することができない。これは、データベース151が、暗号化に要する秘密鍵を有さないので、暗号文を復号化することができないからである。すなわち、第2検索条件は、検索条件Qを含む。
説明の便宜上、第1検索条件は、検索条件P、及び、検索条件Pを含むとする。第2検索条件は、検索条件Q、及び、検索条件Qを含むとする。また、対象検索条件201は、式1に示された関数Wを用いて表されているとする。すなわち、
(対象検索条件201)=W(P、P、Q、Q)・・・(式1)、
ただし、W(P、P、Q、Q)=(P∧Q)∨(¬P∧Q)であるとする。∧は、論理積演算子を表す。∨は、論理和演算子を表す。¬は、否定演算子を表す。また、Wは、対象検索条件201を表す関数である。
ただし、対象検索条件201、第1検索条件、及び、第2検索条件は、上述した例に限定されない。
式1に例示される対象検索条件201は、論理式を概念的に表すので、上述した表記に限定されない。たとえば、対象検索条件201は、ポーランド記法、あるいは、逆ポーランド記法に従い表されてもよい。
本実施形態において、第1検索条件及び第2検索条件に含まれる条件を、P等の条件を表す符号を用いて表すが、これらの符号は、実装上、たとえば、主記憶装置等における特定の記憶領域を示すアドレスであってもよい。したがって、条件を表す符号(アドレス)が指し示す領域は、真偽値を記憶することができる。また、対象検索条件201は、特定の記憶領域に記憶されている真偽値に基づく演算を表す。
以降、条件が成立することを表す真偽値を「真」(真値、以降、「T」と表す)、条件が成立しないことを表す真偽値を「偽」(偽値、以降、「F」と表す)と表す。
検索条件に含まれる条件は、該条件が成立するか否か(すなわち、「真偽を表す値」、「真偽値」)に応じて、「T」または「F」という真偽値を記憶することができる。
まず、条件生成部102は、対象検索条件201を受信する。次に、条件生成部102は、受信した対象検索条件201における第1検索条件に含まれる検索条件Aが成立するか否かを表す値(すなわち、「真偽値」)を算出する。次に、条件生成部102は、対象検索条件201における検索条件Aに、算出した真偽値が設定されている検索条件Bを作成(生成)する(ステップS101)。
すなわち、ステップS101において、条件生成部102は、検索条件P及び検索条件Pに関して、成立するか否かを表す真偽値を算出し、対象検索条件201に含まれている検索条件P及び検索条件Pに、算出した真偽値を設定することにより検索条件Bを作成する。この場合に、条件生成部102は、第1検索条件に含まれる検索条件Aに関して、それぞれ、真偽値を設定することにより、検索条件Bを作成してもよい。
たとえば、条件生成部102は、検索条件Pに関して「T」及び「F」を算出し、算出した真偽値を、対象検索条件201内の検索条件Pが指し示す記憶領域に設定することによって、検索条件Bを求める。条件生成部102は、対象検索条件201内の検索条件Aに真偽値が設定された検索条件Bを作成し、作成した検索条件Bと、該検索条件Aとが論理積演算を用いて結合された検索条件Cを作成する。この場合に、条件生成部102は、設定した真偽値が真である場合に、検索条件Aと、検索条件Bとが論理積演算を用いて結合された検索条件Cを作成する。また、条件生成部102は、設定した真偽値が偽である場合に、検索条件Aの否定(形)と、検索条件Bとが論理積演算を用いて結合された検索条件Cを作成する。条件生成部102は、作成した検索条件Cが論理和演算を用いて結合された検索条件Dを作成する。
尚、条件生成部102が作成した検索条件Dは、対象検索条件201と等価である。この理由は、対象検索条件201が、検索条件Aの真偽値を用いて場合わけされることによって検索条件Cが作成され、該場合わけされた場合の検索条件Cが論理和演算を用いて結合された検索条件Dが作成されるからである。
すなわち、この例において、条件生成部102は、まず、式1なる検索条件(すなわち、対象検索条件201)を構成している関数Wに含まれる検索条件Pに真偽値が設定された検索条件Aを作成する。より具体的に、条件生成部102は、対象検索条件201内の検索条件Pに真偽値を設定することによって、W(T、P、Q、Q)、及び、W(F、P、Q、Q)を算出する。
次に、条件生成部102は、検索条件Pと、該真偽値が設定された対象検索条件201とが、論理積演算を用いて結合された検索条件Cを作成する。検索条件Cは、上記の例の場合に、後述する式3及び式4に示す検索条件として求めることができる。より具体的に、条件生成部102は、たとえば、対象検索条件201内の検索条件Pに真値「T」を設定した場合に、式3(後述)なる検索条件Cを算出する。また、条件生成部102は、検索条件Pに偽値「F」を設定した場合に、式4(後述)なる検索条件Cを算出する。
次に、条件生成部102は、算出した検索条件C(たとえば、式3、及び、式4)が論理和演算を用いて結合された検索条件Dを作成する。すなわち、この例の場合に、条件生成部102は、式2になる検索条件Dを作成する。
(P∧W(T、P、Q、Q))∨(¬P∧W(F、P、Q、Q))・・・(式2)。
検索条件Pが成立する(すなわち、P=T)場合に、「¬P」は偽である。この結果、「¬P」と、W(F、P、Q、Q)とが論理積演算を用いて結合された検索条件C(この例の場合、式4)は、偽である。つまり、W(F、P、Q、Q)の値に関わらず、式4なる検索条件Cは、偽である。したがって、この場合に、式2なる検索条件Dにおいて式4なる検索条件Cが偽であるので、式2なる検索条件Dは、式3なる検索条件Cに等価である。
∧W(T、P、Q、Q)・・・(式3)。
一方、式2なる検索条件Dにおいて、検索条件Pが成立しない(すなわち、P=F)場合に、「P」は偽である。この結果、「P」と、W(T、P、Q、Q)とが論理積演算を用いて結合された検索条件C(この例の場合、式3)は、偽である。つまり、W(T、P、Q、Q)の値に関わらず、式3なる検索条件は偽である。したがって、この場合に、式2なる検索条件Dにおいて式3なる検索条件Cが偽であるので、式2なる検索条件Dは、式4なる検索条件Cに等価である。
¬P∧W(F、P、Q、Q)・・・(式4)。
式2乃至式4を参照しながら、条件生成部102における処理について説明する。条件生成部102は、対象検索条件201に含まれる検索条件P(すなわち、検索条件A)に「T」を設定することにより、W(T、P、Q、Q)(すなわち、検索条件B)を作成する。検索条件Aに「T」が設定されたので、条件生成部102は、検索条件Aと、検索条件Bとが論理積演算子を用いて結合された検索条件C(たとえば、式3)を作成する。
同様に、たとえば、条件生成部102は、対象検索条件201に含まれる検索条件P(すなわち、検索条件A)に「F」を設定することにより、W(F、P、Q、Q)(すなわち、検索条件B)を生成する。検索条件Aに「F」が設定されたので、条件生成部102は、検索条件Aの否定と、検索条件Bとが論理積演算子を用いて結合された検索条件C(たとえば、式4)を作成する。
次に、条件生成部102は、論理和演算を用いて、作成した検索条件Cを結合することにより、検索条件Dを生成する。
条件生成部102が、生成した検索条件D(たとえば、式2)に対して、さらに、検索条件Pに関して真偽値「T」及び「F」を算出し、算出した真偽値を、検索条件Pを指し示す記憶領域に設定する場合を考える。すなわち、この場合に、条件生成部102は、式3なる検索条件C、及び、式4なる検索条件Cに基づき、各検索条件に等価な検索条件を算出する。
より具体的に、条件生成部102は、式3なる検索条件Cにおいて、検索条件D内の検索条件Pを指し示す記憶領域に真偽値が設定された検索条件Eを作成する。この場合に、条件生成部102は、検索条件C内の検索条件Pに真偽値を設定することによって、検索条件E「P∧W(T、T、Q、Q)」、及び、検索条件E「P∧W(T、F、Q、Q)」を算出する。
次に、条件生成部102は、算出した検索条件Eと、検索条件Pとが論理積演算を用いて結合された検索条件Kを作成する。この場合に、検索条件Pに関する処理と同様に、条件生成部102は、設定した真偽値が真である場合に、検索条件Eと、検索条件Pとが論理積演算を用いて結合された検索条件Kを作成する。また、条件生成部102は、設定した真偽値が偽である場合に、検索条件Pの否定(形)と、検索条件Eとが論理積演算を用いて結合された検索条件Kを作成する。この例の場合に、条件生成部102は、式3なる検索条件Cに関して、検索条件K「P∧P∧W(T、T、Q、Q)」、及び、検索条件K「P∧¬P∧W(T、F、Q、Q)」を作成する。
条件生成部102は、算出した検索条件Kが論理和演算を用いて結合された検索条件Hを作成する。この例の場合に、条件生成部102は、式5なる検索条件Hを作成する。
(P∧P∧W(T、T、Q、Q))∨(P∧¬P∧W(T、F、Q、Q))・・・(式5)。
さらに、条件生成部102は、式5を算出した処理と同様の処理によって、検索条件D内の式4なる検索条件に関して、式6なる検索条件Hを算出する。
(¬P∧P∧W(F、T、Q、Q))∨(¬P∧¬P∧W(F、F、Q、Q))・・・(式6)。
条件生成部102は、算出した検索条件Hが論理和演算を用いて結合された検索条件Jを作成する。この例の場合に、条件生成部102は、式5なる検索条件と、式6なる検索条件とが結合された検索条件J(この例の場合に、式5∨式6)を算出する(ステップS102)。
この結果、条件生成部102が作成した検索条件Jは、検索条件Dと等価である。この理由は、検索条件Dが、検索条件の真偽値を用いて場合わけされることによって、検索条件Kが作成され、該場合わけされた場合の検索条件Kが論理和演算を用いて結合された検索条件Jが作成されるからである。
条件生成部102は、対象検索条件201に、さらに、他の第1検索条件が含まれている場合に、該他の第1検索条件に関して、PまたはPに真偽値を設定する場合に実行する処理と同様の処理を実行してもよい。
次に、条件生成部102は、前述した一連の処理によって算出した検索条件J(たとえば、式5∨式6)において、論理和演算によって結合されている各検索条件Kの成否(すなわち、検索条件Kが成り立つか否か)を判定する。この場合に、条件生成部102は、検索条件K「P∧P∧W(T、T、Q、Q)」、検索条件K「P∧¬P∧W(T、F、Q、Q)」、検索条件K「¬P∧P∧W(F、T、Q、Q)」、及び、検索条件K「¬P∧¬P∧W(F、F、Q、Q)」の成否をそれぞれ判定する。
一例として、検索条件K「¬P∧P∧W(F、T、Q、Q)」の成否に関して説明する。W(F、T、Q、Q)は、式Aに示されているように、Q、Qに関わらずに、偽である、
W(F、T、Q、Q)=(F∧Q)∨(¬T∧Q)=F・・・(式A)。
すなわち、W(F、T、Q、Q)は、第2検索条件(この例では、Q及びQ)に関わらずに成立しない。すなわち、式6において、「¬P∧P∧W(F、T、Q、Q)」は、式Aによれば、Q、Qに関わらずに、偽である。したがって、条件生成部102は、検索条件K「¬P∧P∧W(F、T、Q、Q)」が、第2検索条件に関わらずに成立しない(すなわち、偽である)と判定する。
同様に、条件生成部102は、検索条件K「P∧P∧W(T、T、Q、Q)」、検索条件K「P∧¬P∧W(T、F、Q、Q)」、及び、検索条件K「¬P∧¬P∧W(F、F、Q、Q)」の成否をそれぞれ判定する。これら3つの検索条件Kの成否が第2検索条件に応じて決まるので、条件生成部102は、該3つの検索条件Kの成否が、第2検索条件に応じて決まると判定する。
次に、条件生成部102は、検索条件Kのうち、第2検索条件に応じて成否が決まる検索条件が論理和演算を用いて結合された第3検索条件202を算出する。この例の場合に、条件生成部102は、第3検索条件202として、検索条件「(P∧P∧W(T、T、Q、Q))∨(P∧¬P∧W(T、F、Q、Q))∨(¬P∧¬P∧W(F、F、Q、Q))」を算出する。
この結果、条件生成部102が作成した第3検索条件202は、対象検索条件201と等価である。この理由は、対象検索条件201が検索条件Dと等価であり、検索条件Dが検索条件Jと等価であり、さらに、検索条件Jが第3検索条件202と等価であるからである。
尚、上述した例において、条件生成部102は、第1検索条件に含まれる検索条件に関して逐次的に真偽値を算出し、該検索条件に算出した真偽値を設定したが、まとめて真偽値を算出し、算出した真偽値を該検索条件に設定してもよい。すなわち、条件生成部102は、検索条件(P、P)に関して、(T、T)、(T、F)、(F、T)、及び、(F、F)なる真偽値を設定してもよい。条件生成部102が真偽値を設定する処理は、上述した例に限定されない。また、上述した説明において、第1検索条件、及び、第2検索条件は、それぞれ、2つの条件を含むが、必ずしも、2つである必要はなく、また、お互いに同じ個数である必要はない。また、対象検索条件201は、式1なる検索条件である必要はなく、他の検索条件であってもよい。
また、条件生成部102は、第1検索条件に含まれるすべての条件に関して真偽値を設定する必要はなく、一部の条件のみに関して真偽値を設定してもよい。たとえば、条件生成部102は、検索条件Pのみを設定する場合に、式1なる検索条件に等価な検索条件(式2)を、第3検索条件202として算出する。第3検索条件202は、対象検索条件201と等価な検索条件であって、対象検索条件201に含まれる一部の条件に真偽値が設定された場合に成り立たない検索条件を含まない検索条件である。また、すなわち、第3検索条件202は、対象検索条件201のうち、第2検索条件の成否に応じて成否が決定される検索条件を表す。
以降、対象検索条件201のうち、第2検索条件の成否に関わらずに成否が決定される検索条件を、「第4検索条件」とも表す。
換言すれば、条件生成部102は、対象検索条件201における第1検索条件に含まれる条件に真偽値を設定し、設定した真偽値に基づき対象検索条件の成否を判定し、判定した結果に基づき、第3検索条件を生成する。この場合に、条件生成部102は、第4検索条件を生成してもよい。
次に、第1の実施形態に係る条件生成装置101に関する効果について説明する。
条件生成装置101によれば、データベースが検索できない情報が含まれていた場合であっても、高速な検索処理が可能になる。
この理由は、第3検索条件202に関する検索処理が、検索条件に関する検索処理よりも低コストにて処理することが可能であるからである。すなわち、第3検索条件202に関する検索結果は、検索条件に関する検索結果よりも情報量が少ないからである。
ここで、該情報量が減少する理由について詳細に説明する。説明の便宜上、第1検索条件は、検索条件P、及び、検索条件Pを含むとする。また、検索条件Pが成立するデータ数がNであり、検索条件「¬P」が成立するデータ数がNであるとする。この場合に、特許文献1等に開示された装置は、積和標準形を算出する。したがって、該装置は、検索条件Pを用いて記述された検索命令、及び、検索条件「¬P」を用いて記述された検索命令を、データベース151に送信する。データベース151は、該検索命令を受信し、受信した検索命令に応じて(N+N)個のデータを抽出する。
説明の便宜上、検索条件「P∧P」が成立するデータ数をN、検索条件「P∧¬P」が成立するデータ数をN、検索条件「¬P∧¬P」が成立するデータ数をNとする。
この場合に、検索条件「(P∧P)∨(P∧¬P)」が検索条件Pに等価であるので、検索条件Pが成立するデータ数Nは、検索条件「P∧P」が成立するデータ数Nと、検索条件「P∧¬P」が成立するデータ数Nとの和に等しい。また、検索条件「(P∧¬P)∨(¬P∧¬P)」が検索条件「¬P」に等価であるので、検索条件「¬P」が成立するデータ数Nは、検索条件「P∧¬P」が成立するデータ数Nと、検索条件「¬P∧¬P」が成立するデータ数Nとの和に等しい。したがって、特許文献1等に開示された方法に従えば、検索条件「P∨¬P2」が成立するデータ数は、上検索条件Pが成立するデータ数と、検索条件「¬P」が成立するデータ数との合計を表す(N+2×N+N)個のデータ(検索結果)を受信する。
これに対して、本実施形態に関する条件生成装置101は、ステップS102に関する処理にて説明したようにW(F、T、Q、Q)が偽であるので、第3検索条件202(たとえば、「式5∨検索条件「¬P∧¬P∧W(F、F、Q、Q)」)を用いて記述された検索命令に応じて、データを受信する。すなわち、条件生成装置101は、検索条件「P∧P」が成立するデータ数N、検索条件「P∧¬P」が成立するデータ数N、及び、検索条件「¬P∧¬P」が成立するデータ数Nを合計した個数分のデータを受信する。すなわち、条件生成装置101は、(N+N+N)個のデータを受信する。したがって、受信するデータ数(情報量)は、特許文献1等に開示された方法に比べて少ない。
同様に、第1検索条件が3つ以上の検索条件を含む場合であっても、相互に重複するデータを含む場合に、特許文献1等に開示された検索手法は、該重複するデータを複数回抽出する。これに対して、本実施形態に係る条件生成装置101は、該重複する部分を検索結果が相互に独立する検索条件に分ける。この結果、検索結果に重複がなくなるので、抽出した結果に含まれる情報量は、少なくなる。
さらに、条件生成装置101は、積和標準形に変換することなく、対象検索条件201に基づき、対象検索条件201に等価な第3検索条件202を算出する。
対象検索条件201等を表す論理式を積和標準形に変換する処理は、ド・モルガンの法則を適用する処理方法等が知られている。このため、該処理方法に関する詳細な説明を省略する。該処理方法を適用する場合に、積和標準形は、最悪2(2のn乗。ただし、nは、変換前の論理式に含まれる項の個数を表す)個の項を含む。
しかし、本実施形態に係る条件生成装置101は、対象検索条件201に含まれる第1検索条件に値(すなわち、真偽値)を設定することにより、対象検索条件201に基づき第3検索条件202を算出する。したがって、対象検索条件201に真偽値を設定することにより、対象検索条件201から恒偽である項が減少するので、条件生成部102が設定する真偽値の個数は、2よりも少ない。この結果、第3検索条件202に含まれる項の個数が2よりも少ないので、条件生成装置101は、効率よく、対象検索条件201に基づき第3検索条件202を算出することができる。
すなわち、本実施形態に係る条件生成装置101によれば、データベースが検索できない情報が含まれていた場合であっても、高速な検索処理が可能になる。
尚、条件生成装置101は、上述した例に限定されない。また、第1検索条件と、第2検索条件とは、データベース151が検索可能か否かに関係しない検索条件であってもよい。すなわち、第1検索条件と、第2検索条件とは、単に、相互に異なる検索条件であってもよい。本発明の各実施形態においても、同様である。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図3と図4とを参照しながら、第2の実施形態に係る条件生成装置111が有する構成と、条件生成装置111が行う処理とについて説明する。図3は、本発明の第2の実施形態に係る条件生成装置111が有する構成を示すブロック図である。図4は、第2の実施形態に係る条件生成装置111における処理の流れを示すフローチャートである。
第2の実施形態に係る条件生成装置111は、条件生成部112を有する。
まず、条件生成部112は、対象検索条件201を受信する。次に、条件生成部112は、第1の実施形態に示した処理手順と同様な処理手順に従い、受信した対象検索条件201における検索条件Aが成立するか否かを表す真偽値を算出する。次に、条件生成部112は、対象検索条件201における検索条件Aに、算出した真偽値が設定されている検索条件Bを作成(生成)する(ステップS101)。
次に、条件生成部112は、検索条件Bと、検索条件Aとが論理積演算を用いて結合された検索条件Cを算出する。以降、条件生成部112は、第1の実施形態に示された処理と同様の処理を実行することにより検索条件Kを作成する(ステップS111)。第1の実施形態に示した例の場合、条件生成部112は、式7乃至式10なる4つの検索条件Kを算出する。
∧P∧W(T、T、Q、Q)・・・(式7)、
∧¬P∧W(T、F、Q、Q)・・・(式8)、
¬P∧P∧W(F、T、Q、Q)・・・(式9)、
¬P∧¬P∧W(F、F、Q、Q)・・・(式10)。
すなわち、式7乃至式10に示された4つの検索条件Kは、対象検索条件201(関数W)に含まれる検索条件(この例では、P、P)に真偽値(T、F)が設定され、設定された真偽値に関して、当該各式に示された論理積演算を用いて、それぞれ算出された検索条件を表す。
次に、条件生成部112は、算出した検索条件Kに関して、常に成立しないことを表す恒偽であるか否かを判定する(ステップS112)。すなわち、この例において、条件生成部112は、式7乃至式10が表す検索条件Kが、それぞれ、恒偽(恒偽命題)であるか否かを判定する。条件生成部112は、真偽値が設定された検索条件(たとえば、式10におけるW(F、F、Q、Q))に関して恒偽であるか否かを判定することにより、上述した処理を実行する。
「F∧Q」、及び、「¬T∧Q」が、偽に対する論理積演算であるので、該演算結果は、ともに、偽である。したがって、式1に示された関数Wに従えば、W(F、T、Q、Q)は、式9に示すように、Q、Qに関わらずに、恒偽である。
W(F、T、Q、Q)=(F∧Q)∨(¬T∧Q)=F。
したがって、条件生成部112は、式9なる検索条件が恒偽であり、式7、式8、及び、式10なる検索条件が恒偽でないと判定する。
次に、条件生成部112は、恒偽であると判定する検索条件を、論理和演算子を介することにより、第2検索条件Q1、及び、第2検索条件Qに関わらずに演算結果が偽である第4検索条件203を算出する(ステップS114)。この例において、条件生成部112は、式9なる検索条件を、第4検索条件203として算出する。すなわち、第4検索条件203は、第2検索条件に関わらずに演算結果が偽である検索条件を表す。
また、条件生成部112は、恒偽でないと判定する検索条件を、論理和演算子を介して演算することにより、第3検索条件202として算出する(ステップS113)。この例において、条件生成部112は、(式7∨式8∨式10)なる検索条件を、第3検索条件202として算出する。
尚、条件生成部112は、ステップS113に示された処理を実行し、その後、ステップS114に示された処理を実行してもよい。
次に、第2の実施形態に係る条件生成装置111に関する効果について説明する。
本実施形態に係る条件生成装置111によれば、第1の実施形態に係る条件生成装置101が有する効果に加え、一層、高速な検索処理が可能になる。
この理由は、理由1及び理由2である。すなわち、
(理由1)第2の実施形態に係る条件生成装置111が有する構成は、第1の実施形態に係る条件生成装置101が有する構成を含むからである、
(理由2)条件生成部112が算出する第4検索条件203を用いて記述された検索命令を、データベース151が実行する必要がないからである。
条件生成装置111によれば、一層、高速な検索処理が可能になる理由について以下に詳細に説明する。ステップS114における処理について説明したように、第4検索条件203は、常に成立しない条件である。たとえば、データベース151が、第4検索条件203を用いて記述された検索命令に応じて情報を抽出するとしても、抽出される情報は、何も含まない(空の)情報である。したがって、第4検索条件203を用いて記述された検索命令は、実行する必要のない命令である。
この結果、たとえば、通信ネットワークを介して、データベース151における情報を検索するシステムにおいて、条件生成装置111は、該通信ネットワークにおける通信量を低減することができるので、高速な検索処理が可能になる。
尚、第1検索条件が3つ以上の検索条件を含む場合であっても、本実施形態に係る条件生成装置111は、上述した処理と同様の処理を実行する。
<第3の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第3の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図5と図6とを参照しながら、第3の実施形態に係るデータベース検索システム121が有する構成と、データベース検索システム121が行う処理とについて説明する。図5は、本発明の第3の実施形態に係るデータベース検索システム121が有する構成を示すブロック図である。図6は、第3の実施形態に係るデータベース検索システム121における処理の流れを示すフローチャートである。
第3の実施形態に係るデータベース検索システム121は、条件生成装置101と、第1処理部122と、第2処理部123と、データベース124とを有する。尚、条件生成装置101は、本発明の第1の実施形態において説明した装置である。
データベース124は、たとえば、順序保存暗号方式等の検索可能暗号方式を採用する外部DBである。すなわち、データベース124が検索可能な検索命令の種類は、制限される。
まず、条件生成装置101は、上述した第1の実施形態に示した処理と同様な処理によって、第3検索条件202を算出する(ステップS102)。条件生成装置101は、さらに、第4検索条件203を算出してもよい。
次に、第1処理部122は、第3検索条件202のうち、第1検索条件を用いて記述された検索命令をデータベース124に送信する(ステップS121)。
上述した例の場合に、第1処理部122は、第3検索条件202として、第2の実施形態において上述した式7、式8、及び、式10なる検索条件を、論理和演算子を用いて演算する検索条件を算出する。この場合に、第1処理部122は、式7において検索条件「P∧P」によって記述された検索命令、式8において検索条件「P∧¬P」によって記述された検索命令、及び、式10において検索条件「¬P∧¬P」によって記述された検索命令を、データベース124に送信する。
データベース124は、第1処理部122が送信する検索命令を受信し、受信した検索命令に従い、情報(以降、「第1情報」と表す)を抽出する。すなわち、データベース124は、検索命令に応じて、第1情報を抽出する。
説明の便宜上、「P∧P」に応じて抽出された第1情報を、Ans[T、T]と表す。「P∧¬P」に応じて抽出された第1情報を、Ans[T、F]と表す。「¬P∧¬P」に応じて抽出された第1情報を、Ans[F、F]と表す。データベース124が暗号化DBである場合に、これらの第1情報は、暗号文である。
データベース124は、抽出した第1情報を第2処理部123に送信する。
第2処理部123は、該抽出した第1情報を受信する(ステップS122)。次に、第2処理部123は、データベース124が検索不可能な第2検索条件を用いて記述された検索命令を実行する。すなわち、式1に例示された対象検索条件201である場合に、第2処理部123は、検索条件「W(T、T、Q、Q)」、検索条件「W(T、F、Q、Q)」、及び、検索条件「W(F、F、Q、Q)を用いて記述された検索命令を実行する。第2処理部123は、検索条件「Q」、検索条件「Q∨Q」、及び、検索条件「Q」を用いて記述された検索命令を実行する。
次に、第2処理部123は、検索条件「W(T、T、Q、Q)」に関して、Ans[T、T]と、検索条件「Q」に関する検索結果との共通部分を算出する。さらに、第2処理部123は、検索条件「W(T、F、Q、Q)」に関して、Ans[T、F]と、検索条件「Q∨Q」に関する検索結果との共通部分を算出する。同様に、第2処理部123は、検索条件「W(F、F、Q、Q)」に関して、Ans[F、F]と、検索条件「Q」に関する検索結果との共通部分を算出する。
すなわち、条件生成装置101における条件生成部102が設定する真偽値に関して算出される検索条件に基づき、第2処理部123は、該検索条件を用いて記述された検索命令に応じた結果を算出する。
次に、第2処理部123は、算出した共通部分の和集合を算出することにより、所望の検索条件を用いて記述された検索命令に関する結果を算出する(ステップS123)。
尚、データベース124が暗号化DBである場合に、第2処理部123は、データベース124が抽出するAns[T、F]等の情報を、復号化してもよい。
次に、第3の実施形態に係るデータベース検索システム121に関する効果について説明する。
本実施形態に係るデータベース検索システム121によれば、第1の実施形態に係る条件生成装置101が有する効果に加え、さらに、効率よく情報を抽出することができるという効果を有する。
この理由は、理由1及び理由2である。すなわち、
(理由1)第3の実施形態に係るデータベース検索システム121が有する構成は、第1の実施形態に係る条件生成装置101が有する構成を含むからである、
(理由2)条件生成装置101が算出する検索条件を用いて記述された検索命令に応じて、データベース124が情報を抽出するからである。
理由2について、さらに詳細に説明する。
説明の便宜上、条件生成装置101は、式1なる検索条件を受信するとする。データベースは、1500個のデータa(i)(ただし、1≦i≦1500)を記憶するとする。さらに、検索条件P及び検索条件Pが成立するデータは、999個のa(i)(ただし、1≦i≦999)であるとする。さらに、検索条件Pのみが成立するデータは、ただ1つのa(1000)であり、検索条件Pのみが成立するデータは、499個のa(i)(ただし、1002≦i≦1500)であるとする。検索条件P及び検索条件Pがともに成立しないデータは、ただ1つのa(1001)であるとする。
この例の場合に、検索条件を積和標準形に変換する、一般的なデータベース検索システムは、式1なる検索条件のうち、データベース124が検索可能な検索条件Pを用いて記述された検索命令と、検索条件Pを用いて記述された検索命令とをデータベース124に送信する。データベース124は、検索条件Pを用いて記述された検索命令と、検索条件Pを用いて記述された検索命令とを受信し、それぞれ、情報を抽出する。
すなわち、Pが成立するデータがa(i)(ただし、1≦i≦1000)であるので、該データ数は1000である。Pが成立するデータがa(i)(ただし、1≦i≦999、及び、1002≦i≦1500)であるので、該データ数は1498個である。したがって、データベース124は、合計2498個のデータを抽出し、抽出したデータを第2処理部123に送信する。
一方、本実施形態に係る条件生成装置101は、上述した処理を実行することにより、(式7∨式8∨式10)なる検索条件を算出する。
第1処理部122は、第2の実施形態において上述した式7なる検索条件、式8なる検索条件、及び、式10なる検索条件を用いて記述された検索命令をデータベース124に送信する。すなわち、第1処理部122は、「P∧P」、「P∧¬P」、及び、「¬P∧¬P」なる3つの検索条件を用いて記述された検索命令を、それぞれ、データベース124に送信する。
データベース124は、該3つの検索命令を受信し、受信した検索命令に応じて情報を抽出する。
この例において、検索条件P及び検索条件Pが成立するデータが、999個のa(i)(ただし、1≦i≦999)であるので、「P∧P」が成立するデータ数は、999個である。検索条件Pのみが成立するデータが、a(1000)であるので、「P∧¬P」が成立するデータ数は、ただ1つである。また、検索条件P及び検索条件Pがともに成立しないデータがa(1001)であるので、「¬P∧¬P」が成立するデータ数は、ただ1つである。したがって、データベース124は、合計1001個のデータを抽出し、抽出したデータを第2処理部123に送信する。
したがって、本実施形態に係る条件生成装置101によれば、データベース124が抽出するデータ数は、2498個から1001個に減少する。Pが成立するデータ(すなわち、a(i)(ただし、1≦i≦1000))のうち、999個のデータは、Pが成立する。したがって、本実施形態に係る条件生成装置101は、データベース124が、重複するデータを抽出するのを防ぐので、効率よく検索することができる。
<第4の実施形態>
次に、上述した第3の実施形態を基本とする本発明の第4の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第3の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図7と図8とを参照しながら、第4の実施形態に係るデータベース検索システム131が有する構成と、データベース検索システム131が行う処理とについて説明する。図7は、本発明の第4の実施形態に係るデータベース検索システム131が有する構成を示すブロック図である。図8は、第4の実施形態に係るデータベース検索システム131における処理の流れを示すフローチャートである。
第4の実施形態に係るデータベース検索システム131は、条件生成装置101と、第1処理部122と、第2処理部132と、データベース124と、変換部133とを有する。
データベース124は、たとえば、順序保存暗号方式等の検索可能暗号方式を採用するDBであってもよい。すなわち、データベース124が検索可能な検索命令の種類は、制限される。
説明の便宜上、データベース124は、検索対象である情報を記憶しているとする。
条件生成装置101は、第1の実施形態において、図1及び図2を参照しながら説明した構成を有しており、検索命令に含まれる対象検索条件201を受信する。外部の装置、または、ユーザが、該検索命令を条件生成装置101に送信してもよいし、条件生成装置101におけるアプリケーション等が、該検索命令を条件生成装置101に送信してもよい。
条件生成部102は、条件生成装置101が受信した対象検索条件201に基づき、第3検索条件と、第4検索条件とを算出する。式1に例示された対象検索条件201の場合に、データベース124は、第3検索条件によって記述された検索命令を実行することができ、第4検索条件によって記述された検索命令を実行することができない。
条件生成部102が、第1の実施形態と同様の処理手順に従い算出した第3検索条件によって記述された検索命令のうち、第1処理部122は、第1検索条件によって記述された検索命令を、データベース124に送信する。
データベース124は、該検索命令を受信し、受信した検索命令に応じて、情報を抽出する。次に、データベース124は、抽出した情報を第2処理部132に送信する。
第2処理部132は、データベース124が抽出した情報を受信し、受信した情報に基づき、第3検索条件によって記述された検索命令のうち、第2検索条件によって記述された検索命令を実行することにより、対象検索条件201に応じた情報を抽出する。
説明の便宜上、暗号化関数をEと表し、復号化関数をDと表す。暗号化する対象である情報をMとする場合に、暗号文はE(M)と表すことができる。また、暗号化した後に復号化した情報D(E(M))は、Mに等しい。さらに、暗号化しない場合には、E及びDは、恒等関数であるとしてもよい。
以降の説明において、データベース124は、暗号化DBであっても、暗号化DBでなくてもよい。説明の便宜上、暗号化されていないDBであっても、暗号化関数Eと、復号化関数Dとを用いて説明する。
変換部133は、データベース124に格納する対象である情報Mに関して、暗号文E(M)を算出し、暗号文E(M)をデータベース124に送信する。
データベース124は、暗号文E(M)を受信し、受信した暗号文E(M)を記憶する。
尚、データベース124が受信する検索命令は、暗号化関数Eに従い暗号化した検索命令である。
また、条件生成装置101は、式11なる検索条件Rを受信するとする。
W(P、・・・、P、Q、・・・、Q)・・・(式11)、
ただし、P、・・・、Pは、データベース124が検索可能な検索条件(すなわち、第1検索条件)を表す。また、Q、・・・、Qは、データベース124が検索不可能な検索条件(すなわち、第2検索条件)を表す。
また、検索条件Rを用いて記述された検索命令は、「Rが成立する情報を全て抽出する」命令であるとする。
さらに、説明の便宜上、式12に示されているように関数Gを定義することとする。
G(T、P)=P、G(F、P)=¬P・・・(式12)、
ただし、Pは、検索条件を表す。
上述した例を用いながら、本実施形態に係るデータベース検索システム131における処理について説明する。
条件生成装置101における条件生成部102(図1に例示)は、式11なる検索条件を受信する。次に、条件生成部102は、検索条件を記憶可能な記憶部(不図示)を初期化する。
次に、条件生成部102は、第1検索条件に含まれる条件を記憶可能な記憶領域に、該条件が成立するか否か(たとえば、T、F)を表す情報を格納する。
尚、この例においては、第1検索条件に含まれる各条件に関して情報を格納するが、必ずしも、全ての条件に情報を格納する必要はない。
すなわち、条件生成部102は、第1検索条件に含まれる各条件に関して情報を格納することにより、式11なる検索条件が入力された場合に、式13なる検索条件を算出する。
G(B、P)∧・・・∧G(B、P)∧W(B、・・・、B、Q、・・・、Q)・・・(式13)、
ただし、B(1≦i≦n)は、「T」、または、「F」を表す。
また、条件生成部102は、各条件に設定可能な真偽値に関するすべての組み合わせに関して、式13なる検索条件を算出してもよい。
次に、条件生成部102は、真偽値が設定された検索条件(この場合に、W(B、・・・、B、Q、・・・、Q))における演算を実行することにより、検索条件(式13)が恒偽であるか否かを判定する。すなわち、条件生成部102は、真偽値が設定された検索条件に関する演算を実行することにより、上述したように恒偽であるか否かを判定する。また、条件生成部102は、真偽値が設定された検索条件に関して、第2検索条件に含まれる条件に関わらずに偽となる場合に、恒偽であると判定する。
条件生成部102は、恒偽でないと判定する検索条件(この場合に、式13)を記憶部に格納してもよい。
上述した処理は、条件生成部102が、検索条件Rに基づき、該検索条件Rに等価な検索条件を求める処理を表す。すなわち、条件生成部102は、第1検索条件に含まれる条件に関して設定可能な真偽値を算出し、算出した真偽値を該条件に設定することにより、式13なる検索条件を求める。次に、条件生成部102は、真偽値を設定した検索条件(この場合に、W(B、・・・、B、Q、・・・、Q))が恒偽であるか否かを判定する。次に、条件生成部102は、恒偽でないと判定する検索条件を含む検索条件(この場合に、式13)に関して、論理和演算子を介して結合することにより、検索条件Rに等価な検索条件を求める。
次に、第1処理部122は、算出した検索条件を用いて記述された検索命令を、データベース124に送信する。
たとえば、検索条件が「10よりも大きい」であり、さらに、設定される真偽値が「T」である場合に、第1処理部122は、「10よりも大きい値をすべて抽出する」という検索命令をデータベース124に送信する。また、検索条件が「10よりも大きい」であり、さらに、設定される真偽値が「F」である場合に、第1処理部122は、「10以下の値をすべて抽出する」という検索命令をデータベース124に送信する。
式11に示したように、検索条件P、・・・、Pは、データベース124において検索可能な検索条件である。したがって、第1処理部122は、受信した検索命令に含まれる検索条件(式13)のうち、該検索条件P、・・・、Pを用いて記述された検索条件(式14)からなる検索命令をデータベース124に送信する。
G(B、P)∧・・・∧G(B、P)・・・(式14)、
式14に示された検索条件は、第1検索条件のみを含む。すなわち、データベース124は、式14なる検索条件を用いて記述された検索命令に応じて、情報を抽出することができる。
データベース124は、該検索命令を受信し、受信した検索命令に応じて情報を抽出し、抽出した第1情報を、変換部133に送信する。
説明の便宜上、データベース124が、上述した検索命令に応じて、抽出する情報を、「Ans(B、・・・、B)」と表す。
変換部133は、データベース124が抽出した第1情報を受信する。変換部133は、受信した第1情報を、復号化する(ステップS131)。すなわち、変換部133は、Ans(B、・・・、B)に含まれる情報Mに関して、それぞれ、D(M)を算出することにより、受信した情報を復号化する。次に、変換部133は、復号化した情報を第2処理部132に送信する。
次に、第2処理部132は、該情報を受信し、式13なる検索条件を用いて記述された検索命令に従い情報を抽出することにより、復号化された情報に含まれる情報のうち、検索条件Rが成立する情報を抽出する(ステップS132)。条件生成部102が、各条件に設定可能な真偽値に関するすべての組み合わせに関して、式13なる検索条件を算出する場合に、第2処理部132は、該組み合わせに関して、検索条件Rが成立する情報を抽出する。この場合に、第2処理部132は、すべての組み合わせに関する、式13なる検索条件を用いて記述された検索命令に応じた情報(「J(B、・・・、B)」と表す)を抽出する。
式13なる検索条件を用いて記述された検索命令が、第2検索条件Q乃至Qを含むので、データベース124は、該検索命令を実行することができない。一方、式14なる検索条件を用いて記述された検索命令は、第1検索条件のみを含むので、データベース124は、該検索命令を実行することができる。すなわち、条件生成部102は、式11なる検索条件に基づき、データベース124が検索可能な検索条件(式14、すなわち、第3検索条件)と、データベース124が検索不可能な検索条件(式13、すなわち、第4検索条件)とを算出する。
また、第1処理部122は、検索条件に含まれる各第1検索条件を用いて記述された検索命令と、該第1検索条件に関して設定する真偽値とを、それぞれ、データベース124に送信してもよい。この場合に、データベース124は、各第1検索条件を用いて記述された検索命令と、第1検索条件に関して設定する真偽値とを受信する。データベース124は、受信した真偽値に基づき、検索命令に含まれる第1検索条件に関して論理積演算子を用いて演算することにより、上述した式(たとえば、式14)に応じた検索条件を算出する。次に、データベース124は、作成した検索条件を用いて記述された検索命令に従い、情報を抽出する。
すなわち、第1処理部122は、条件P(ただし、1≦i≦n)が表す検索命令を送信し、さらに、(B、・・・、B)が表す値を、データベース124に送信する。次に、データベース124は、これらの情報を受信し、受信した情報に基づき、式14に従う検索条件を算出する。
データベース124が検索条件を算出し、さらに、第1処理部122が設定した真偽値の組に関して逐次的に処理を実行する場合に、第1処理部122は、第1検索条件を繰り返しデータベース124に送信する必要がなくなる。このため、データベース124が検索条件を算出する場合に、第1処理部122がデータベース124に送信する情報量は少なくなる。
尚、データベース検索システム131は、式11なる検索条件に、設定可能な真偽値の組を逐次的に格納することにより情報を抽出してもよい。または、データベース検索システム131は、設定可能な真偽値の組を全て算出し、算出した組に関する論理和を算出し、算出した論理和を用いて記述された検索命令をデータベース124に送信してもよい。
次に、第4の実施形態に係るデータベース検索システム131に関する効果について説明する。
本実施形態に係るデータベース検索システム131によれば、第3の実施形態に係るデータベース検索システム121が有する効果に加え、さらに、より詳細に検索することができる。
この理由は、理由1及び理由2である。すなわち、
(理由1)第4の実施形態に係るデータベース検索システム131が有する構成は、第3の実施形態に係るデータベース検索システム121が有する構成を含むからである、
(理由2)データベース検索システム131が、式11乃至式14に示された処理に従い、情報を抽出するからである。すなわち、式11乃至式14に示された処理は、第3の実施形態に示された処理に比べ、広範な処理である。したがって、データベース検索システム131は、さらに、より詳細に検索することができる。
(ハードウェア構成例)
上述した本発明の各実施形態における条件生成装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係る条件生成装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係る条件生成装置は、専用の装置として実現してもよい。
図9は、第1及び第2の実施形態に係る条件生成装置、さらに、第3及び第4の実施形態に係るデータベース検索システムを実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、及び、不揮発性記録媒体24、及び、通信インターフェース(以降、「通信IF」と表す。)27を有する。計算処理装置20は、さらに、入力装置25、及び、出力装置26を有してもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等である。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
すなわち、CPU21は、ディスク23が記憶するソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ22にコピーし、演算処理を実行する。CPU21は、プログラム実行に必要なデータをメモリ22から読み取る。表示が必要な場合には、CPU21は、出力装置26に出力結果を表示する。外部からプログラムを入力する場合、CPU21は、入力装置25からプログラムを読み取る。CPU21は、上述した図1、図3、図5、または、図7に示された各部が表す機能(処理)に対応するところのメモリ22にある条件生成プログラム(図2または図4)、または、データベース検索プログラム(図6、または、図8)を解釈し実行する。CPU21は、上述した本発明の各実施形態において説明した処理を順次行う。
すなわち、このような場合、本発明は、係る条件生成プログラム、または、係るデータベース検索プログラムによっても成し得ると捉えることができる。更に、係る条件生成プログラムまたは係るデータベース検索プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2014年6月16日に出願された日本出願特願2014−122962を基礎とする優先権を主張し、その開示の全てをここに取り込む。
101 条件生成装置
102 条件生成部
151 データベース
201 対象検索条件
202 第3検索条件
203 第4検索条件
111 条件生成装置
112 条件生成部
121 データベース検索システム
122 第1処理部
123 第2処理部
124 データベース
131 データベース検索システム
132 第2処理部
133 変換部
20 計算処理装置
21 CPU
22 メモリ
23 ディスク
24 不揮発性記録媒体
25 入力装置
26 出力装置
27 通信IF

Claims (10)

  1. データベースから情報を抽出する条件を表す第1検索条件及び第2検索条件が含まれている対象検索条件のうち、前記第1検索条件に含まれている一部の検索条件が成り立つか否かを表す真偽値を算出し、算出した真偽値を前記一部の検索条件に設定し、前記真偽値を設定した前記対象検索条件の成否に応じて、前記第2検索条件の真偽に依存する第3検索条件を生成する条件生成手段
    を備える条件生成装置。
  2. 前記条件生成手段は、前記真偽値が設定された前記第1検索条件を含む前記対象検索条件が、前記第2検索条件に関する真偽値に関わらずに成否が決まるか否かを判定することによって、前記第3検索条件を生成する
    請求項1に記載の条件生成装置。
  3. 前記条件生成手段は、前記真偽値として、前記一部の検索条件が成立する真値、及び、前記条件が成立しない偽値を算出し、算出した前記真値を前記条件に設定することによって前記対象検索条件の成否を判定し、さらに、算出した前記偽値を前記一部の検索条件に設定することによって前記対象検索条件の成否を判定する
    請求項1または請求項2に記載の条件生成装置。
  4. 請求項1乃至請求項3のいずれかに記載の条件生成装置と、
    前記条件生成装置が算出する前記第3検索条件に含まれる前記第1検索条件を用いて記述された検索命令に従い、前記データベースから抽出される第1情報を得る第1処理手段と、
    前記第3検索条件に含まれている前記第2検索条件を用いて記述された検索命令を実行することにより、前記第1情報に含まれる値のうち、前記第3検索条件が成立する値を抽出する第2処理手段と
    を備えるデータベース検索システム。
  5. 前記第1処理手段、及び、前記第2処理手段は、前記条件生成装置が偽であると判定した検索条件を用いて記述された検索命令を実行しない
    請求項4に記載のデータベース検索システム。
  6. 情報処理装置によって、データベースから情報を抽出する条件を表す第1検索条件及び第2検索条件が含まれている対象検索条件のうち、前記第1検索条件に含まれている一部の検索条件が成り立つか否かを表す真偽値を算出し、算出した真偽値を前記一部の検索条件に設定し、前記真偽値を設定した前記対象検索条件の成否に応じて、前記第2検索条件の真偽に依存する第3検索条件を生成する条件生成方法。
  7. データベースから情報を抽出する条件を表す第1検索条件及び第2検索条件が含まれている対象検索条件のうち、前記第1検索条件に含まれている一部の検索条件が成り立つか否かを表す真偽値を算出し、算出した真偽値を前記一部の検索条件に設定し、前記真偽値を設定した前記対象検索条件の成否に応じて、前記第2検索条件の真偽に依存する第3検索条件を生成する条件生成機能
    をコンピュータに実現させる条件生成プログラム。
  8. 前記条件生成機能は、前記真偽値が設定された前記第1検索条件を含む前記対象検索条件が、前記第2検索条件に関する真偽値に関わらずに成否が決まるか否かを判定することによって、前記第3検索条件を生成する機能を含む
    請求項7に記載の条件生成プログラム。
  9. 前記条件生成機能は、前記真偽値として、前記条件が成立する真値、及び、前記条件が成立しない偽値を算出し、算出した前記真値を前記条件に設定することによって前記対象検索条件の成否を判定し、さらに、算出した前記偽値を前記条件に設定することによって前記対象検索条件の成否を判定する
    請求項8に記載の条件生成プログラム。
  10. 請求項7乃至請求項9のいずれかに記載の条件生成プログラムと、
    前記条件生成機能が算出する前記第3検索条件に含まれる前記第1検索条件を用いて記述された検索命令に従い、前記データベースが抽出する第1情報を得る第1処理機能と、
    前記第3検索条件に含まれている前記第2検索条件を用いて記述された検索命令を実行することにより、前記第1情報に含まれる値のうち、前記第3検索条件が成立する値を抽出する第2処理機能と
    をコンピュータに実現させるデータベース検索プログラム。
JP2016529011A 2014-06-16 2015-06-05 条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム Active JP6642425B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014122962 2014-06-16
JP2014122962 2014-06-16
PCT/JP2015/002841 WO2015194117A1 (ja) 2014-06-16 2015-06-05 条件生成装置、条件生成方法、条件生成プログラムが格納された記録媒体、データベース検索システム、及び、データベース検索プログラムが格納された記録媒体

Publications (2)

Publication Number Publication Date
JPWO2015194117A1 JPWO2015194117A1 (ja) 2017-04-27
JP6642425B2 true JP6642425B2 (ja) 2020-02-05

Family

ID=54935128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016529011A Active JP6642425B2 (ja) 2014-06-16 2015-06-05 条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム

Country Status (4)

Country Link
US (1) US10769144B2 (ja)
JP (1) JP6642425B2 (ja)
DE (1) DE112015002839T5 (ja)
WO (1) WO2015194117A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017117899A1 (de) * 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231231A (ja) * 1996-02-26 1997-09-05 Dainippon Screen Mfg Co Ltd データ検索装置
US6836770B2 (en) * 2002-08-09 2004-12-28 Joint Technology Corporation Method for transforming SQL queries
JP4291634B2 (ja) * 2003-07-15 2009-07-08 株式会社リコー ネットワークサービス検索装置、ネットワークサービス検索方法
US20080059439A1 (en) * 2006-08-30 2008-03-06 Lucent Technologies Inc. Query Translation from XPath to SQL in the Presence of Recursive DTDs
US8752045B2 (en) * 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US8688682B2 (en) * 2007-03-23 2014-04-01 International Business Machines Corporation Query expression evaluation using sample based projected selectivity
US8745082B2 (en) * 2007-06-29 2014-06-03 Alcatel Lucent Methods and apparatus for evaluating XPath filters on fragmented and distributed XML documents
JP5155001B2 (ja) * 2008-04-01 2013-02-27 株式会社日立製作所 文書検索装置
JP5408697B2 (ja) * 2008-10-30 2014-02-05 Kddi株式会社 コンテンツ配信方法およびシステム
US9805089B2 (en) * 2009-02-10 2017-10-31 Amazon Technologies, Inc. Local business and product search system and method
KR101362443B1 (ko) * 2009-08-03 2014-02-11 니뽄 덴신 덴와 가부시키가이샤 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체
JP5411034B2 (ja) 2010-03-19 2014-02-12 株式会社日立ソリューションズ データベース暗号化システム及び方法
JP2013529345A (ja) * 2010-05-21 2013-07-18 バウルティブ リミテッド メッセージングシステムを安全に使用するシステムおよび方法
US20120136858A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Method to Coordinate Data Collection Among Multiple System Components
US9262501B2 (en) * 2012-12-13 2016-02-16 Vinayak Borkar Method, apparatus, and computer-readable medium for optimized data subsetting
US9652511B2 (en) * 2013-03-13 2017-05-16 International Business Machines Corporation Secure matching supporting fuzzy data
US10728284B2 (en) * 2013-05-03 2020-07-28 Vmware, Inc. Methods and apparatus to assess compliance of a computing resource in a virtual computing environment
US10127391B1 (en) * 2015-12-28 2018-11-13 EMC IP Holding Company LLC Encrypted search indexes

Also Published As

Publication number Publication date
DE112015002839T5 (de) 2017-03-09
JPWO2015194117A1 (ja) 2017-04-27
US10769144B2 (en) 2020-09-08
US20170132279A1 (en) 2017-05-11
WO2015194117A1 (ja) 2015-12-23

Similar Documents

Publication Publication Date Title
JP6934963B2 (ja) データを暗号化する方法およびシステム
US10177906B2 (en) Method and apparatus for encrypting data
JP6732141B2 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
WO2024077948A1 (zh) 匿踪查询方法、装置和***及存储介质
US10339140B2 (en) Database search device, database search method, and program
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
Ram et al. Security as a service (sass): securing user data by coprocessor and distributing the data
WO2016072022A1 (ja) 暗号化グラフの検索方法、暗号化グラフの検索システム及び計算機
US11431489B2 (en) Encryption processing system and encryption processing method
CN112074889A (zh) 隐匿检索装置和隐匿检索方法
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP5992651B2 (ja) 暗号化方法、プログラム、および、システム
JP6642425B2 (ja) 条件生成装置、条件生成方法、条件生成プログラム、データベース検索システム、及び、データベース検索プログラム
WO2017168798A1 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
WO2019235102A1 (ja) 変換鍵生成装置、暗号文変換装置、復号装置、暗号文変換システム、変換鍵生成方法、暗号文変換方法、復号方法、及びプログラム
JP2019200382A (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
KR20150002821A (ko) 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법
Alrehaili et al. Cloud computing security challenges
Xu et al. End-to-end big data processing protection in cloud environment using black boxes—An FPGA approach
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
US11811741B2 (en) Information processing system and information processing method
JP6202969B2 (ja) 情報処理装置、暗号化方法
JP7440662B2 (ja) マルチキー情報検索
CN117992989B (zh) 一种解密方法、***、装置及存储介质
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190829

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: 20191203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191216

R150 Certificate of patent or registration of utility model

Ref document number: 6642425

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150