JP5425307B2 - キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法 - Google Patents
キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法 Download PDFInfo
- Publication number
- JP5425307B2 JP5425307B2 JP2012523478A JP2012523478A JP5425307B2 JP 5425307 B2 JP5425307 B2 JP 5425307B2 JP 2012523478 A JP2012523478 A JP 2012523478A JP 2012523478 A JP2012523478 A JP 2012523478A JP 5425307 B2 JP5425307 B2 JP 5425307B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- search condition
- keyword
- registration
- unit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3338—Query expansion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
この発明は、検索に使用するキーワードを変換するキーワード変換装置に関する。
近年、クラウドコンピューティングと呼ばれるコンピュータの利用形態が普及している。クラウドコンピューティングでは、利用者はデータの保管や管理などのコンピュータ処理を、ネットワーク経由で、サービスとして利用できる。このような形態においては、データの所有者であるサービス利用者とデータの管理者であるサービス提供者とが異なる。このため、サービス利用者の機密情報がデータの管理者に漏えいすることを防ぐために、利用者の保存データを暗号化することが一般的になりつつある。さらに、データを暗号化したまま所望するデータを検索できる秘匿検索サービスが実現できれば、利用者の利便性が大きく向上する。
このような秘匿検索を実現するために、キーワード検索のための索引の秘匿性を高める方法が考案されている(特許文献1参照)。また、暗号化された文字列の部分一致検索を提供するために、文字単位の暗号化を行うことで、文字単位の照合を可能とする方法が考案されている(特許文献2参照)。
特許文献1では、キーワードの完全一致による検索しか行うことができず、大小関係の比較や部分一致などができない。そのため、日付や数値などの範囲検索を行おうとすると、検索範囲に含まれる全ての要素を列挙して完全一致検索を行う必要があり、検索性能(検索速度)の点で課題がある。
特許文献2では、文字単位の暗号化後にも暗号化前と同じ文字の順序が保存されている。このため、保存された暗号化データに対する複数の文字の相関による頻度解析のような攻撃に弱く、秘匿性の点で課題がある。
この発明は、日付や数値のキーワードの階層化により、検索範囲に含まれる要素数を削減して照合回数を削減し、かつ、階層間の位置関係を示す位置ID(位置情報)を階層の値と合わせて秘匿する。これにより、高速化を図り、かつ安全性を高めた範囲検索方法を提供することを目的とする。
この発明のキーワード変換装置は、
複数の階層に分割する階層化が可能な所定の表現形式で表現された登録用キーワードを入力し、前記階層化のルールを定めた階層化ルールに基づいて前記登録用キーワードを階層ごとの要素に分割する登録側分割部と、
前記登録側分割部によって分割されたそれぞれの要素である登録用階層要素に、所属する階層を示す位置情報を付加する登録側位置情報付加部と、
前記登録側位置情報付加部によって前記位置情報が付加されたそれぞれの前記登録用階層要素を、所定のデータ変換規則に従ってデータ変換する登録側データ変換部と
を備えたことを特徴とする。
複数の階層に分割する階層化が可能な所定の表現形式で表現された登録用キーワードを入力し、前記階層化のルールを定めた階層化ルールに基づいて前記登録用キーワードを階層ごとの要素に分割する登録側分割部と、
前記登録側分割部によって分割されたそれぞれの要素である登録用階層要素に、所属する階層を示す位置情報を付加する登録側位置情報付加部と、
前記登録側位置情報付加部によって前記位置情報が付加されたそれぞれの前記登録用階層要素を、所定のデータ変換規則に従ってデータ変換する登録側データ変換部と
を備えたことを特徴とする。
この発明のキーワード変換装置により、階層化による検索の迅速化と、位置情報の秘匿化による情報の秘匿化向上を図ることができる。
実施の形態1.
図1は、実施の形態1に係る範囲検索方法を用いた検索システム100(キーワード変換装置)の構成を示す図である。
図1は、実施の形態1に係る範囲検索方法を用いた検索システム100(キーワード変換装置)の構成を示す図である。
(検索システム100の構成)
検索システム100は、登録部101、検索部102、および暗号化検索索引部200を備える。登録部101は、登録側分割部111、登録側シンボル化部112(登録側位置情報付加部)、登録側暗号化部113(登録側データ変換部)、索引登録部114を備える。検索部102は、キーワード生成部120(検索側キーワード生成部)、検索側分割部121、検索側シンボル化部122(検索側位置情報付加部)、検索側暗号化部123(検索側データ変換部)、および索引検索部124を備える。
検索システム100は、登録部101、検索部102、および暗号化検索索引部200を備える。登録部101は、登録側分割部111、登録側シンボル化部112(登録側位置情報付加部)、登録側暗号化部113(登録側データ変換部)、索引登録部114を備える。検索部102は、キーワード生成部120(検索側キーワード生成部)、検索側分割部121、検索側シンボル化部122(検索側位置情報付加部)、検索側暗号化部123(検索側データ変換部)、および索引検索部124を備える。
(登録時)
検索システム100は、登録用キーワードとその登録用キーワードが含まれる文書を特定する文書IDとを関連付け、登録用キーワードを暗号化して暗号化検索索引部200に登録する。図1に示すように、登録側分割部111が登録用キーワードと文書IDとを入力する。後述のように属性情報(属性ID)を含める場合には、登録側分割部111は属性情報も入力する。例えば、登録対象の文書に含まれる属性項目「生年月日」を検索キーとして使用する場合、登録対象の文書から抽出された生年月日の値(例えば「2000年4月1日」)を登録用キーワードとする。文書IDとしては、登録シリアル番号や、文書ファイル名など、文書を一意に特定可能となるIDを用いることができる。文書ファイル名を用いる場合には前もって暗号化を行うことで、文書ファイル名を秘匿化する。
検索システム100は、登録用キーワードとその登録用キーワードが含まれる文書を特定する文書IDとを関連付け、登録用キーワードを暗号化して暗号化検索索引部200に登録する。図1に示すように、登録側分割部111が登録用キーワードと文書IDとを入力する。後述のように属性情報(属性ID)を含める場合には、登録側分割部111は属性情報も入力する。例えば、登録対象の文書に含まれる属性項目「生年月日」を検索キーとして使用する場合、登録対象の文書から抽出された生年月日の値(例えば「2000年4月1日」)を登録用キーワードとする。文書IDとしては、登録シリアル番号や、文書ファイル名など、文書を一意に特定可能となるIDを用いることができる。文書ファイル名を用いる場合には前もって暗号化を行うことで、文書ファイル名を秘匿化する。
(検索時)
検索時には、検索システム100は、検索キーに関する「範囲検索条件」を入力し、範囲検索条件の範囲に含まれる文書IDを出力する。例えば、属性項目「生年月日」を検索キーとし、
範囲検索条件「2000年4月1日〜2000年4月30日」、
とする場合、検索システム100は、その範囲に含まれる文書IDを出力する。
検索時には、検索システム100は、検索キーに関する「範囲検索条件」を入力し、範囲検索条件の範囲に含まれる文書IDを出力する。例えば、属性項目「生年月日」を検索キーとし、
範囲検索条件「2000年4月1日〜2000年4月30日」、
とする場合、検索システム100は、その範囲に含まれる文書IDを出力する。
(登録処理)
図2は、実施の形態1に係る検索システム100の登録の流れ(登録工程S101〜S104)を示すフローチャートである。
(1)S101にて、登録側分割部111は、入力された登録用キーワードを予め定められた階層化ルールに基づき複数の階層の値に分割する。
(2)S102にて、登録側シンボル化部112は、分割された値と、その値の位置ID、あるいはそれらに加えて属性IDを合わせて1シンボルとしてエンコードする。
(3)S103にて、登録側暗号化部113は前記シンボルに対して特定の変換を行い、登録用変換済みシンボルを生成する。
(4)S104にて、索引登録部114は登録用変換済みシンボルのそれぞれを、登録用キーワードに関連する文書IDに関連付けて暗号化検索索引部200に登録する。
以下、図2で説明した各ステップを、さらに詳しくに説明する。
図2は、実施の形態1に係る検索システム100の登録の流れ(登録工程S101〜S104)を示すフローチャートである。
(1)S101にて、登録側分割部111は、入力された登録用キーワードを予め定められた階層化ルールに基づき複数の階層の値に分割する。
(2)S102にて、登録側シンボル化部112は、分割された値と、その値の位置ID、あるいはそれらに加えて属性IDを合わせて1シンボルとしてエンコードする。
(3)S103にて、登録側暗号化部113は前記シンボルに対して特定の変換を行い、登録用変換済みシンボルを生成する。
(4)S104にて、索引登録部114は登録用変換済みシンボルのそれぞれを、登録用キーワードに関連する文書IDに関連付けて暗号化検索索引部200に登録する。
以下、図2で説明した各ステップを、さらに詳しくに説明する。
(S101:登録側分割部111)
検索システム100に登録用キーワードが入力されると、登録側分割部111は、登録用キーワードを、予め定められた「階層化ルール」に基づき、複数の階層の値に分割する。例えば属性項目「生年月日」のような日付情報を階層化する場合、「生年月日」は、
「年」、「月」、「日」、
のように階層化することができる。
この場合、
「2000年4月1日」、
という登録用キーワードは、
「2000」、「4」、「1」、
という3個の値(登録用階層要素)に分割される。
検索システム100に登録用キーワードが入力されると、登録側分割部111は、登録用キーワードを、予め定められた「階層化ルール」に基づき、複数の階層の値に分割する。例えば属性項目「生年月日」のような日付情報を階層化する場合、「生年月日」は、
「年」、「月」、「日」、
のように階層化することができる。
この場合、
「2000年4月1日」、
という登録用キーワードは、
「2000」、「4」、「1」、
という3個の値(登録用階層要素)に分割される。
(階層化ルール)
階層化ルールについて、さらに説明する。階層化ルールは、日付や数値や文字列など、範囲を持ちうる値の種類毎に定めることができる。
(1)数値であれば、固定長の2進数を固定ビット数ごとに分割して階層化することができる。例えば、64ビット整数を8ビット(1バイト)ごとに分割すると8階層となる。その場合、位置IDとしてはMSBから数えた0から始まるバイト位置(0〜7)とする。
(2)また、数値の別な表現方法として、2進化10進数という表現方法を用いてもよい。その場合には固定長の2進化10進数を10進の桁数ごとに分割し、位置IDとしてMSBから数えた0から始まる桁位置とする。
(3)日付の場合、前述の例の他に、過去の特定日を0としたシリアル番号化し、数値として階層化することもできる。例えば、1900年1月1日をシリアル番号1とし、1900年1月1日からの経過日数で日付を表すことができる。また、日付を「YYYYMMDD」(YYYYは西暦年、MMは月、DDは日)のような特定の文字列フォーマットに表し、2進化10進数として階層化することもできる。
(4)時刻の場合も同様に、「時」、「分」、「秒」で階層化するか、「00:00:00」を0としたシリアル番号化するか、「HHmmSS」(HHは24時間表記の時間、mmは分、SSは秒)と表すなどの方法を用いることができる。
(5)文字列の場合には1文字単位で分割し、先頭を0から数えた文字位置を位置IDとすることで可変長の文字列を表すことができる。
階層化ルールについて、さらに説明する。階層化ルールは、日付や数値や文字列など、範囲を持ちうる値の種類毎に定めることができる。
(1)数値であれば、固定長の2進数を固定ビット数ごとに分割して階層化することができる。例えば、64ビット整数を8ビット(1バイト)ごとに分割すると8階層となる。その場合、位置IDとしてはMSBから数えた0から始まるバイト位置(0〜7)とする。
(2)また、数値の別な表現方法として、2進化10進数という表現方法を用いてもよい。その場合には固定長の2進化10進数を10進の桁数ごとに分割し、位置IDとしてMSBから数えた0から始まる桁位置とする。
(3)日付の場合、前述の例の他に、過去の特定日を0としたシリアル番号化し、数値として階層化することもできる。例えば、1900年1月1日をシリアル番号1とし、1900年1月1日からの経過日数で日付を表すことができる。また、日付を「YYYYMMDD」(YYYYは西暦年、MMは月、DDは日)のような特定の文字列フォーマットに表し、2進化10進数として階層化することもできる。
(4)時刻の場合も同様に、「時」、「分」、「秒」で階層化するか、「00:00:00」を0としたシリアル番号化するか、「HHmmSS」(HHは24時間表記の時間、mmは分、SSは秒)と表すなどの方法を用いることができる。
(5)文字列の場合には1文字単位で分割し、先頭を0から数えた文字位置を位置IDとすることで可変長の文字列を表すことができる。
(S102:登録側シンボル化部112)
登録側シンボル化部112は、分割された階層の値にタグを付加して、1シンボルとしてエンコードする。
例えば、日付情報を、
「年」、「月」、「日」、
のように階層化する場合、階層の位置情報を「年」「月」「日」とし、これらをタグとして、階層の値に付加する。ここで「位置情報」とは階層に分割された値(登録用階層要素)の所属する階層を示す情報である。
「2000年4月1日」
という登録用キーワードは、位置情報が付加されて、
「年:2000」、「月:4」、「日:1」
の3個のシンボルとなる。
ここでは、シンボルを「タグ:値」の形で表した。タグはXML(EXTENSIBLE MARKUP LANGUAGE)形式として、
「<タグ>値</タグ>」、
のようにしてもよい。
その場合、
「<年>2000</年>」、「<月>2000</月>」、「<日>1</日>」
のようになる。
また別の例としては、シンボルを固定長の2進整数にエンコードすることもできる。日付の場合、1シンボルを例えば32ビットで表すこととし、上位16ビットにタグをエンコードし、下位16ビットに値をエンコードしてもよい。
登録側シンボル化部112は、分割された階層の値にタグを付加して、1シンボルとしてエンコードする。
例えば、日付情報を、
「年」、「月」、「日」、
のように階層化する場合、階層の位置情報を「年」「月」「日」とし、これらをタグとして、階層の値に付加する。ここで「位置情報」とは階層に分割された値(登録用階層要素)の所属する階層を示す情報である。
「2000年4月1日」
という登録用キーワードは、位置情報が付加されて、
「年:2000」、「月:4」、「日:1」
の3個のシンボルとなる。
ここでは、シンボルを「タグ:値」の形で表した。タグはXML(EXTENSIBLE MARKUP LANGUAGE)形式として、
「<タグ>値</タグ>」、
のようにしてもよい。
その場合、
「<年>2000</年>」、「<月>2000</月>」、「<日>1</日>」
のようになる。
また別の例としては、シンボルを固定長の2進整数にエンコードすることもできる。日付の場合、1シンボルを例えば32ビットで表すこととし、上位16ビットにタグをエンコードし、下位16ビットに値をエンコードしてもよい。
(属性情報)
登録側シンボル化部112は、さらに、登録用キーワードとともに、属性を示す属性ID(属性情報)を、タグとしてシンボルに含めてエンコードしてもよい。属性IDは登録用キーワードとともに入力される。
例えば、シンボルを、
「属性ID:位置ID:値」、
として、タグを2重(属性IDと位置IDとのタグ)に付加することができる。
例えば、登録用キーワードが前述の
「2000年4月1日」、
という日付データの場合、
「属性ID=1」を属性項目「生年月日」とし、
「属性ID=2」を属性項目「入会日」とすれば、
「生年月日」である「2000年4月1日」、あるいは「入会日」である「2000年4月1日」を検索することができる。
「生年月日」であれば、「2000年4月1日」は「属性ID:位置ID:値」の表現として、
「1:年:2000」、「1:月:4」、「1:日:1」、
と表現できる。
また、XML形式であれば、
<属性ID><位置ID>値</位置ID></属性ID>、
のように入れ子構造と記載できる。
あるいは、
<属性ID 階層=”位置ID”>値</属性ID>
のように、1つのXMLタグに属性を付与してもよい。
また、シンボルを固定長の2進整数にエンコードする際に、属性ID領域を決めてエンコードするようにしてもよい。
例えば、1シンボルを32ビットで表すこととし、
上位8ビットに属性IDタグをエンコードし、
中位8ビットに位置IDタグをエンコードし、
下位16ビットに値をエンコードするというようにできる。
属性IDはシステムで一意に定まればよいため、属性名と属性IDとの対応付けをテーブル管理することにより、単純なシリアル番号にエンコードすることができる。
属性IDをシンボルに含めることにより、シンボルがどの属性に含まれるかということも秘匿化することができ、秘匿性が向上する。
登録側シンボル化部112は、さらに、登録用キーワードとともに、属性を示す属性ID(属性情報)を、タグとしてシンボルに含めてエンコードしてもよい。属性IDは登録用キーワードとともに入力される。
例えば、シンボルを、
「属性ID:位置ID:値」、
として、タグを2重(属性IDと位置IDとのタグ)に付加することができる。
例えば、登録用キーワードが前述の
「2000年4月1日」、
という日付データの場合、
「属性ID=1」を属性項目「生年月日」とし、
「属性ID=2」を属性項目「入会日」とすれば、
「生年月日」である「2000年4月1日」、あるいは「入会日」である「2000年4月1日」を検索することができる。
「生年月日」であれば、「2000年4月1日」は「属性ID:位置ID:値」の表現として、
「1:年:2000」、「1:月:4」、「1:日:1」、
と表現できる。
また、XML形式であれば、
<属性ID><位置ID>値</位置ID></属性ID>、
のように入れ子構造と記載できる。
あるいは、
<属性ID 階層=”位置ID”>値</属性ID>
のように、1つのXMLタグに属性を付与してもよい。
また、シンボルを固定長の2進整数にエンコードする際に、属性ID領域を決めてエンコードするようにしてもよい。
例えば、1シンボルを32ビットで表すこととし、
上位8ビットに属性IDタグをエンコードし、
中位8ビットに位置IDタグをエンコードし、
下位16ビットに値をエンコードするというようにできる。
属性IDはシステムで一意に定まればよいため、属性名と属性IDとの対応付けをテーブル管理することにより、単純なシリアル番号にエンコードすることができる。
属性IDをシンボルに含めることにより、シンボルがどの属性に含まれるかということも秘匿化することができ、秘匿性が向上する。
(S103:登録側暗号化部113)
登録側暗号化部113は、シンボルに対して所定のデータ変換規則による「特定の変換」を行い、登録用変換済みシンボルを生成する。1個の登録用キーワードがN個のシンボルにエンコードされた場合、N個の各シンボルが変換され、N個の登録用変換済みシンボルが生成される。上記の「2000年4月1日」の例では、「年:2000」、「月:4」、「日:1」の3つのシンボルが生成されたが、この場合、この3つのそれぞれの登録用変換済みシンボルが登録側暗号化部113によって生成される。登録側暗号化部113による「特定の変換」としては、暗号化やハッシュなどを行うことによりシンボルの秘匿性を高めることができる。暗号化の方法としては、一般の共通鍵暗号を用いることができる。
登録側暗号化部113は、シンボルに対して所定のデータ変換規則による「特定の変換」を行い、登録用変換済みシンボルを生成する。1個の登録用キーワードがN個のシンボルにエンコードされた場合、N個の各シンボルが変換され、N個の登録用変換済みシンボルが生成される。上記の「2000年4月1日」の例では、「年:2000」、「月:4」、「日:1」の3つのシンボルが生成されたが、この場合、この3つのそれぞれの登録用変換済みシンボルが登録側暗号化部113によって生成される。登録側暗号化部113による「特定の変換」としては、暗号化やハッシュなどを行うことによりシンボルの秘匿性を高めることができる。暗号化の方法としては、一般の共通鍵暗号を用いることができる。
(S104:索引登録部114)
索引登録部114は、登録側暗号化部113によって生成されたN個のそれぞれの登録用変換済みシンボルを、登録用キーワードに関連する文書IDに関連付けて暗号化検索索引部200に登録する。シンボルの登録順序が暗号化検索索引部200に保存されるような場合には、N個のシンボルをランダムな順序で登録することにより秘匿性を高めることができる。
索引登録部114は、登録側暗号化部113によって生成されたN個のそれぞれの登録用変換済みシンボルを、登録用キーワードに関連する文書IDに関連付けて暗号化検索索引部200に登録する。シンボルの登録順序が暗号化検索索引部200に保存されるような場合には、N個のシンボルをランダムな順序で登録することにより秘匿性を高めることができる。
以上述べたように、
(1)登録用キーワードを分割し(S101)、
(2)位置IDと値の組をシンボル化し(S102)、
(3)シンボルを暗号化等の変換を施した上で(S103)、
(4)暗号化検索索引に登録する(S104)。
登録用キーワードを階層に分割し、かつ、階層の値に登録用キーワード内の位置情報を含めるため、検索の迅速化と、秘匿化向上を図ることができる。また、複数の属性を検索キーとして使用する場合に属性IDをシンボルに含めるので、シンボルがどの属性に含まれるかを秘匿化することができる。
(1)登録用キーワードを分割し(S101)、
(2)位置IDと値の組をシンボル化し(S102)、
(3)シンボルを暗号化等の変換を施した上で(S103)、
(4)暗号化検索索引に登録する(S104)。
登録用キーワードを階層に分割し、かつ、階層の値に登録用キーワード内の位置情報を含めるため、検索の迅速化と、秘匿化向上を図ることができる。また、複数の属性を検索キーとして使用する場合に属性IDをシンボルに含めるので、シンボルがどの属性に含まれるかを秘匿化することができる。
(検索処理)
図3は、実施の形態1に係る検索システム100の検索処理(検索工程S201〜S205)の流れを示すフローチャートである。
(1)S201にて、キーワード生成部120は、入力された範囲検索条件の範囲に含まれる全ての要素の検索が可能な複数の検索キーワードを生成する。
(2)S202にて、検索側分割部121は検索キーワードを、予め定められた階層化ルール(登録時と同一)に基づき複数の階層の値に分割する。
(3)S203にて、検索側シンボル化部122は、分割された値とその値の位置ID、またはそれらに加えて属性IDを合わせて1シンボルとしてエンコードする。
(4)S204にて、検索側暗号化部123は前記シンボルに対して特定のデータ変換を行い、検索用変換済みシンボルを生成する。
(5)S205にて、索引検索部124は検索用変換済みシンボルの検索を暗号化検索索引部200を用いて行い、結果の文書IDを出力する。
以下、図3で説明した各ステップを、さらに詳しく説明する。
図3は、実施の形態1に係る検索システム100の検索処理(検索工程S201〜S205)の流れを示すフローチャートである。
(1)S201にて、キーワード生成部120は、入力された範囲検索条件の範囲に含まれる全ての要素の検索が可能な複数の検索キーワードを生成する。
(2)S202にて、検索側分割部121は検索キーワードを、予め定められた階層化ルール(登録時と同一)に基づき複数の階層の値に分割する。
(3)S203にて、検索側シンボル化部122は、分割された値とその値の位置ID、またはそれらに加えて属性IDを合わせて1シンボルとしてエンコードする。
(4)S204にて、検索側暗号化部123は前記シンボルに対して特定のデータ変換を行い、検索用変換済みシンボルを生成する。
(5)S205にて、索引検索部124は検索用変換済みシンボルの検索を暗号化検索索引部200を用いて行い、結果の文書IDを出力する。
以下、図3で説明した各ステップを、さらに詳しく説明する。
(S201:キーワード生成部120)
キーワード生成部120は、範囲検索条件が入力されると、範囲検索条件の範囲に含まれる全ての要素の検索が可能な複数の検索キーワードを生成する。キーワード生成部120は、ある階層が取りうる値がすべて範囲検索条件の範囲に含まれる場合には、その階層をドントケアとし、ドントケア階層を含む検索キーワードを1つにまとめる。例えば日付属性において、階層化ルールを「年」、「月」、「日」、とした場合、キーワード生成部120は、
範囲検索条件「2000年4月1日〜2000年4月30日」
を、1個の検索キーワード「2000年4月*日」(*はドントケア)、
とする。
また、
範囲検索条件「2000年4月16日〜2002年4月15日」、
であれば、キーワード生成部120は、以下のような<検索条件1>を生成する。
<検索条件1>
「2000年4月16日」OR
「2000年4月17日」OR
・・・(略)
「2000年4月30日」OR
「2000年5月*日」OR
「2000年6月*日」OR
・・・(略)
「2000年12月*日」OR
「2001年*月*日」OR
「2002年1月*日」OR
「2002年2月*日」OR
「2002年3月*日」OR
「2002年4月1日」OR
「2002年4月2日」OR
・・・(略)
「2002年4月15日」。
<検索条件1>に示すような検索キーワードを生成することで、範囲検索条件の範囲の全ての要素を検索できる。上記の<検索条件1>において、「OR」はキーワードの検索結果の論理和を意味する。このようにして、「ドントケア」を用いることで照合回数を減らし、検索速度を向上させることができる。さらに、「OR」で結合された部分については、順番を入れ替えても検索結果は変わらないため、順番をランダムに入れ替えることで、検索条件の秘匿性を高めることができる。
キーワード生成部120は、範囲検索条件が入力されると、範囲検索条件の範囲に含まれる全ての要素の検索が可能な複数の検索キーワードを生成する。キーワード生成部120は、ある階層が取りうる値がすべて範囲検索条件の範囲に含まれる場合には、その階層をドントケアとし、ドントケア階層を含む検索キーワードを1つにまとめる。例えば日付属性において、階層化ルールを「年」、「月」、「日」、とした場合、キーワード生成部120は、
範囲検索条件「2000年4月1日〜2000年4月30日」
を、1個の検索キーワード「2000年4月*日」(*はドントケア)、
とする。
また、
範囲検索条件「2000年4月16日〜2002年4月15日」、
であれば、キーワード生成部120は、以下のような<検索条件1>を生成する。
<検索条件1>
「2000年4月16日」OR
「2000年4月17日」OR
・・・(略)
「2000年4月30日」OR
「2000年5月*日」OR
「2000年6月*日」OR
・・・(略)
「2000年12月*日」OR
「2001年*月*日」OR
「2002年1月*日」OR
「2002年2月*日」OR
「2002年3月*日」OR
「2002年4月1日」OR
「2002年4月2日」OR
・・・(略)
「2002年4月15日」。
<検索条件1>に示すような検索キーワードを生成することで、範囲検索条件の範囲の全ての要素を検索できる。上記の<検索条件1>において、「OR」はキーワードの検索結果の論理和を意味する。このようにして、「ドントケア」を用いることで照合回数を減らし、検索速度を向上させることができる。さらに、「OR」で結合された部分については、順番を入れ替えても検索結果は変わらないため、順番をランダムに入れ替えることで、検索条件の秘匿性を高めることができる。
このように、キーワード生成部120は、複数の階層に分割する階層化が可能な所定の表現形式で表現された複数の検索用キーワード(2000年4月16日、2002年4月15日)を含み、かつ、複数の検索用キーワードに基づき検索対象範囲を指定する検索条件である「2000年4月16日〜2002年4月15日」(第1の検索条件)を入力する。キーワード生成部120は、入力された第1の検索条件を、第1の検索条件の前記検索対象範囲と同一の検索対象範囲を指定する第2の検索条件であって、第1の検索条件に含まれる検索用キーワードの表現形式で表現され、かつ、ドントケア表現の可能な特有階層を保有する検索用キーワードである少なくとも一つの「特有階層保有検索用キーワード」(<検索条件1>の例では、ドントケアを示す*を含む年月日)を含む第2の検索条件(上記の<検索条件1>)に変更可能かどうかを判定する。キーワード生成部120は、第1の検索条件(「2000年4月16日〜2002年4月15日」)を第2の検索条件(上記の<検索条件1>)に変更可能と判定すると第1の検索条件を第2の検索条件に変更して第2の検索条件を出力し、変更できないと判定すると第1の検索条件を出力する。「2000年4月16日〜2002年4月15日」の場合、キーワード生成部120は、変更可能と判定し、第2の検索条件として、上記の<検索条件1>を出力する。
(S202:検索側分割部121)
検索側分割部121は、登録側分割部111と同様に、検索用キーワードを予め定められた階層化ルールに基づき複数の階層の値に分割する。以下に示す<検索条件2>は、検索側分割部121が、キーワード生成部120により生成された<検索条件1>を分割した例である。
検索側分割部121は、登録側分割部111と同様に、検索用キーワードを予め定められた階層化ルールに基づき複数の階層の値に分割する。以下に示す<検索条件2>は、検索側分割部121が、キーワード生成部120により生成された<検索条件1>を分割した例である。
<検索条件2>
「2000年」AND
(「4月」AND(「16日」OR「17日」OR・・・(略)・・・OR「30日」))OR
「5月」OR「6月」OR・・・(略)・・・「12月」)OR
「2001年」OR
「2002年」AND
(「1月」OR「2月」OR「3月」OR
(「4月」AND(「1日」OR「2日」OR・・・(略)・・・OR「15日」)))。
<検索条件2>が上記のように生成されることで、範囲の全ての要素を検索可能であり、照合回数をさらに削減できる。<検索条件2>についても「OR」結合された部分については、順番を入れ替えても検索結果は変わらないため、順番をランダムに入れ替えることで、検索条件の秘匿性を高めることができる。
あるいは、「AND」結合部分を含めて順番を入れ替えて個別に検索し、中間結果を全て取得してから、検索結果の突合せを行うようにすれば、さらに検索条件の秘匿性を高めることができる。
「2000年」AND
(「4月」AND(「16日」OR「17日」OR・・・(略)・・・OR「30日」))OR
「5月」OR「6月」OR・・・(略)・・・「12月」)OR
「2001年」OR
「2002年」AND
(「1月」OR「2月」OR「3月」OR
(「4月」AND(「1日」OR「2日」OR・・・(略)・・・OR「15日」)))。
<検索条件2>が上記のように生成されることで、範囲の全ての要素を検索可能であり、照合回数をさらに削減できる。<検索条件2>についても「OR」結合された部分については、順番を入れ替えても検索結果は変わらないため、順番をランダムに入れ替えることで、検索条件の秘匿性を高めることができる。
あるいは、「AND」結合部分を含めて順番を入れ替えて個別に検索し、中間結果を全て取得してから、検索結果の突合せを行うようにすれば、さらに検索条件の秘匿性を高めることができる。
(S203:検索側シンボル化部122)
検索側シンボル化部122は、登録側シンボル化部112と同様に、位置IDと値、または属性IDと位置IDと値をシンボルにエンコードする。
検索側シンボル化部122は、登録側シンボル化部112と同様に、位置IDと値、または属性IDと位置IDと値をシンボルにエンコードする。
(S204:検索側暗号化部123)
検索側暗号化部123は、登録側暗号化部113と同様に、シンボルの変換を行い、検索用変換済みシンボルを生成する。以下に示す<検索条件3>は、検索側シンボル化部122が<検索条件2>をシンボル化し、シンボル化された検索条件2を、検索側暗号化部123がデータ変換した例である。<検索条件2>において、検索側シンボル化部122のエンコードをS(X)、検索側暗号化部123のデータ変換をE(Y)とすると、
検索条件全体は以下の様になる。
<検索条件3>
E(S(2000年))AND
(E(S(4月))AND(E(S(16日))OR E(S(17日))OR・・・(略)・・・OR E(S(30日))))OR
E(S(5月))OR E(S(6月」))OR・・・(略)・・・E(S(12月)))OR
E(S(2001年))OR
E(S(2002年))AND
(E(S(1月))OR E(S(2月))OR E(S(3月))OR
(E(S(4月))AND(E(S(1日))OR E(S(2日))OR・・・(略)・・・OR E(S(15日)))))。
検索側暗号化部123は、登録側暗号化部113と同様に、シンボルの変換を行い、検索用変換済みシンボルを生成する。以下に示す<検索条件3>は、検索側シンボル化部122が<検索条件2>をシンボル化し、シンボル化された検索条件2を、検索側暗号化部123がデータ変換した例である。<検索条件2>において、検索側シンボル化部122のエンコードをS(X)、検索側暗号化部123のデータ変換をE(Y)とすると、
検索条件全体は以下の様になる。
<検索条件3>
E(S(2000年))AND
(E(S(4月))AND(E(S(16日))OR E(S(17日))OR・・・(略)・・・OR E(S(30日))))OR
E(S(5月))OR E(S(6月」))OR・・・(略)・・・E(S(12月)))OR
E(S(2001年))OR
E(S(2002年))AND
(E(S(1月))OR E(S(2月))OR E(S(3月))OR
(E(S(4月))AND(E(S(1日))OR E(S(2日))OR・・・(略)・・・OR E(S(15日)))))。
(S205:索引検索部124)
索引検索部124は、暗号化検索索引部200を用いて検索を行う。
索引検索部124は、暗号化検索索引部200を用いて検索を行う。
以上述べたように、検索の階層化により範囲検索における照合回数を削減することで、検索を高速化できる。
(暗号化検索索引部200)
次に、暗号化検索索引部200について、詳しく説明する。登録側暗号化部113および検索側暗号化部123にて共通の確定的暗号を用いた場合の例を説明する。「確定的暗号」とは、鍵が同じであれば同じデータは常に同じ暗号化データに変換される暗号化方法を指す。従って、登録側暗号化部113と検索側暗号化部123にて鍵が同じであれば、変換済みシンボルを完全一致照合の検索が可能である。
次に、暗号化検索索引部200について、詳しく説明する。登録側暗号化部113および検索側暗号化部123にて共通の確定的暗号を用いた場合の例を説明する。「確定的暗号」とは、鍵が同じであれば同じデータは常に同じ暗号化データに変換される暗号化方法を指す。従って、登録側暗号化部113と検索側暗号化部123にて鍵が同じであれば、変換済みシンボルを完全一致照合の検索が可能である。
暗号化検索索引部200は、一般に用いられているリレーショナルデータベース技術を用いて構成できる。すなわち、変換済みシンボルと、変換済みシンボルに対応する文書IDとの2つのフィールドを含むテーブルを定義することにより、変換済みシンボルから該当(その変換済シンボルを含む)の文書IDを取得できる。さらに、文書IDは、ユーザ側で予め「非確定的暗号」により暗号化し、その後に登録する。そして、検索結果を取得後にユーザが復号することで、暗号化検索索引の秘匿性を向上することができる。
(暗号化検索索引部200)
図4は、暗号化検索索引部200のブロック図の一例を示す。暗号化検索索引部200は、ブロックテーブル参照部201、ブロックテーブル202、ブロックアクセス部203、索引ファイル204、登録処理部205、検索処理部206を備える。
図5は、ブロックテーブル202を示す図である。
図6は、索引ファイル204を示す図である。
図4は、暗号化検索索引部200のブロック図の一例を示す。暗号化検索索引部200は、ブロックテーブル参照部201、ブロックテーブル202、ブロックアクセス部203、索引ファイル204、登録処理部205、検索処理部206を備える。
図5は、ブロックテーブル202を示す図である。
図6は、索引ファイル204を示す図である。
(1)登録処理部205は、登録用変換済みシンボルの登録処理を行う。
(2)検索処理部206は、検索用変換済みシンボルの検索処理を行い、検索結果の文書IDを出力する。
(3)ブロックテーブル参照部201は、変換済みシンボルを入力し、ブロックテーブル202を参照して、変換済みシンボルに対応する文書IDが含まれる索引ブロック情報を取得する。
(4)ブロックアクセス部203は、索引ブロック情報を元に、索引ファイル204の該当するブロックにアクセスし、登録時には文書IDを該当ブロックに追加書き込みし、検索時には、該当ブロックの文書IDを読み出して出力する。
(5)ブロックテーブル参照部201は、ハッシュを用いることで、変換済みシンボルに対応する索引ブロック情報のアドレスを直接生成し、索引ブロック情報を高速に取り出すことができる。
(6)ブロックテーブル202は、ディスク上のファイルとして保存されるが、実行時には主記憶上に格納して高速化することもできる。索引ファイル204もディスク上のファイルとして保存される。
(7)ブロックテーブル202の索引ブロック情報には、索引ファイル内の該当シンボルに対する文書ID情報が格納されたブロックのオフセット及びブロックのサイズが格納される。索引ブロック情報により、ブロックアクセス部203は必要最小限のディスクアクセスにより、文書ID情報の読み書きが可能である。索引ブロックの秘匿化のために、索引ブロックは暗号化することができる。その場合、索引ファイル204全体ではなく、個々のブロック毎に暗号化される。
(2)検索処理部206は、検索用変換済みシンボルの検索処理を行い、検索結果の文書IDを出力する。
(3)ブロックテーブル参照部201は、変換済みシンボルを入力し、ブロックテーブル202を参照して、変換済みシンボルに対応する文書IDが含まれる索引ブロック情報を取得する。
(4)ブロックアクセス部203は、索引ブロック情報を元に、索引ファイル204の該当するブロックにアクセスし、登録時には文書IDを該当ブロックに追加書き込みし、検索時には、該当ブロックの文書IDを読み出して出力する。
(5)ブロックテーブル参照部201は、ハッシュを用いることで、変換済みシンボルに対応する索引ブロック情報のアドレスを直接生成し、索引ブロック情報を高速に取り出すことができる。
(6)ブロックテーブル202は、ディスク上のファイルとして保存されるが、実行時には主記憶上に格納して高速化することもできる。索引ファイル204もディスク上のファイルとして保存される。
(7)ブロックテーブル202の索引ブロック情報には、索引ファイル内の該当シンボルに対する文書ID情報が格納されたブロックのオフセット及びブロックのサイズが格納される。索引ブロック情報により、ブロックアクセス部203は必要最小限のディスクアクセスにより、文書ID情報の読み書きが可能である。索引ブロックの秘匿化のために、索引ブロックは暗号化することができる。その場合、索引ファイル204全体ではなく、個々のブロック毎に暗号化される。
次に、図4に示した暗号化検索索引部200の動作を説明する。
(暗号化検索索引部200の登録処理)
図7は、図4の暗号化検索索引部200における登録処理の流れ(登録処理工程S301〜S307)を示すフローチャートである。
(1)S301にて、登録処理部205は登録用変換済みシンボルを入力する。
(2)S302にて、登録処理部205は、ブロックテーブル参照部201に対して登録用変換済みシンボルのブロックテーブル202の参照を行わせ、該当する索引ブロック情報を取得させる。
(3)S303にて、登録処理部205は、ブロックテーブル202に該当するエントリがあったかどうかを確認する。
(4)該当するエントリがあった場合には、登録処理部205は、S304にて、取得した索引ブロック情報を元にブロックアクセス部203に索引ファイル204からの索引ブロック取得を行わせ、索引ブロックに登録用変換済みシンボルに関連付けられた文書IDを追加する。
(5)S303にて該当するエントリがなかった場合には、登録処理部205は、S305にて、ブロックテーブル参照部201に対して、ブロックテーブル202への新たなエントリ追加を行わせる。
(6)S306にて登録処理部205は、ブロックアクセス部203に対して索引ファイル204への新たな索引ブロック追加を行わせ、S307にて索引ブロックに文書IDを追加する。
図7は、図4の暗号化検索索引部200における登録処理の流れ(登録処理工程S301〜S307)を示すフローチャートである。
(1)S301にて、登録処理部205は登録用変換済みシンボルを入力する。
(2)S302にて、登録処理部205は、ブロックテーブル参照部201に対して登録用変換済みシンボルのブロックテーブル202の参照を行わせ、該当する索引ブロック情報を取得させる。
(3)S303にて、登録処理部205は、ブロックテーブル202に該当するエントリがあったかどうかを確認する。
(4)該当するエントリがあった場合には、登録処理部205は、S304にて、取得した索引ブロック情報を元にブロックアクセス部203に索引ファイル204からの索引ブロック取得を行わせ、索引ブロックに登録用変換済みシンボルに関連付けられた文書IDを追加する。
(5)S303にて該当するエントリがなかった場合には、登録処理部205は、S305にて、ブロックテーブル参照部201に対して、ブロックテーブル202への新たなエントリ追加を行わせる。
(6)S306にて登録処理部205は、ブロックアクセス部203に対して索引ファイル204への新たな索引ブロック追加を行わせ、S307にて索引ブロックに文書IDを追加する。
(検索処理)
図8は、図4の暗号化検索索引部200の検索処理の流れ(検索処理工程S401〜S406)の一例を示すフローチャートである。
(1)S401にて、検索処理部206は検索用変換済みシンボルを入力する。
(2)S402にて、検索処理部206は、ブロックテーブル参照部201に対して検索用変換済みシンボルのブロックテーブル202の参照を行わせ、ブロックテーブル202から該当する索引ブロック情報を取得させる。
(3)S403にて、ブロックテーブル202に該当するエントリがあったかどうかを確認する。
(4)該当するエントリがなかった場合には、S404にて、該当なしの検索結果を出力する。
(5)S403にて該当するエントリがあった場合には、S405にて、検索処理部206は、取得した索引ブロック情報を元にブロックアクセス部203に索引ファイル204からの索引ブロック取得を行わせ、S406にて索引ブロックから文書IDを取得して検索結果として出力する。
図8は、図4の暗号化検索索引部200の検索処理の流れ(検索処理工程S401〜S406)の一例を示すフローチャートである。
(1)S401にて、検索処理部206は検索用変換済みシンボルを入力する。
(2)S402にて、検索処理部206は、ブロックテーブル参照部201に対して検索用変換済みシンボルのブロックテーブル202の参照を行わせ、ブロックテーブル202から該当する索引ブロック情報を取得させる。
(3)S403にて、ブロックテーブル202に該当するエントリがあったかどうかを確認する。
(4)該当するエントリがなかった場合には、S404にて、該当なしの検索結果を出力する。
(5)S403にて該当するエントリがあった場合には、S405にて、検索処理部206は、取得した索引ブロック情報を元にブロックアクセス部203に索引ファイル204からの索引ブロック取得を行わせ、S406にて索引ブロックから文書IDを取得して検索結果として出力する。
実施の形態2.
実施の形態2は、コンピュータである端末装置100−1(ユーザが使用)のハードウェア構成を説明する。
図9は、端末装置100−1の外観の一例を示す図である。
実施の形態2は、コンピュータである端末装置100−1(ユーザが使用)のハードウェア構成を説明する。
図9は、端末装置100−1の外観の一例を示す図である。
図9において、端末装置100−1(キーワード変換装置の一例)はネットワーク(例えばインターネット)を介して、クラウド側(サービス提供者側)のクラウド側装置100−2と接続している。端末装置100−1は図1のデータ変換までの処理(図1の破線31の左側の処理)を実行する。クラウド側装置100−2は図1の登録及び検索の処理(図1の破線31の右側の処理)を実行する。端末装置100−1とクラウド側装置100−2とは検索システム100を構成される。端末装置100−1は、登録側分割部111、登録側シンボル化部112、登録側暗号化部113、キーワード生成部120、検索側分割部121、検索側シンボル化部122、検索側暗号化部123の機能を有する。またクラウド側装置100−2は、索引登録部114、索引検索部124、及び暗号化検索索引部200の機能を有する。
以下では端末装置100−1について説明するが、クラウド側装置100−2も端末装置100−1と同様のコンピュータであり、端末装置100−1についての説明はクラウド側装置100−2についても当てはまる。
図9に示すように、端末装置100−1は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、FDD817(Flexible・Disk・ Drive)、コンパクトディスク装置818(CDD:Compact Disk Drive)、プリンタ819などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット30はネットワークを介してクラウド側装置100−2に接続している。
図10は、端末装置100−1のハードウェア資源を示す図である。端末装置100−1は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、FDD817、CDD818、プリンタ装置819、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
RAM812は、揮発性メモリの一例である。ROM811、FDD817、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、「記憶装置」あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814、FDD817などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813、プリンタ装置819などは、出力部、出力装置の一例である。通信ボード816は、ネットワークに接続されている。
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
ファイル群824には、以上の実施の形態の説明において、「階層化ルール」として説明した情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」(DB)の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、FDD817のフレキシブルディスク、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ROM811に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させる。あるいは、プログラムは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
なお、以上の実施の形態では、キーワード変換装置を説明したが、キーワード変換装置の動作を、キーワード変換方法、あるいはキーワード変換プログラムとして把握することも可能である。さらに、キーワード変換プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。
以上の実施の形態では、以下のステップを備えた範囲検索方法を実施する検索システムを説明した。検索対象となるデータから抽出された検索対象キーワードを検索システムに登録し、値の範囲を持った検索条件に合致するデータを前記検索システムにより検索する範囲検索方法であって、
(1)前記検索対象キーワード1個をN個(N≧1)の値に分割する分割ステップと、
(2)前記N個の値のそれぞれについて、タグを付加したシンボルにエンコードするシンボル化ステップと、
(3)前記N個のシンボルに対してそれぞれ特定の変換によりN個の登録用変換済みシンボルに変換するデータ変換ステップと、
(4)前記N個の登録用変換済みシンボルを前記検索対象となるデータに関連付けて検索システムに登録する登録ステップと、
(5)値の範囲を持った検索条件から複数の検索キーワードを生成する検索キーワード生成ステップと、
(6)前記検索キーワード1個をN個の値に分割し、そのうちM個(N≧M≧1)の値を抽出する検索側分割ステップと、
(7)前記M個の値のそれぞれについてタグを付加したシンボルにエンコードする検索側シンボル化ステップと、
(8)前記M個のシンボルに対してそれぞれ特定の変換によりM個の検索用変換済みシンボルに変換する検索側データ変化テップと、
(9)M個の検索用変換済みシンボルが全て含まれる検索対象データを検索システムにて検索する検索ステップと
を含む範囲検索方法。
(1)前記検索対象キーワード1個をN個(N≧1)の値に分割する分割ステップと、
(2)前記N個の値のそれぞれについて、タグを付加したシンボルにエンコードするシンボル化ステップと、
(3)前記N個のシンボルに対してそれぞれ特定の変換によりN個の登録用変換済みシンボルに変換するデータ変換ステップと、
(4)前記N個の登録用変換済みシンボルを前記検索対象となるデータに関連付けて検索システムに登録する登録ステップと、
(5)値の範囲を持った検索条件から複数の検索キーワードを生成する検索キーワード生成ステップと、
(6)前記検索キーワード1個をN個の値に分割し、そのうちM個(N≧M≧1)の値を抽出する検索側分割ステップと、
(7)前記M個の値のそれぞれについてタグを付加したシンボルにエンコードする検索側シンボル化ステップと、
(8)前記M個のシンボルに対してそれぞれ特定の変換によりM個の検索用変換済みシンボルに変換する検索側データ変化テップと、
(9)M個の検索用変換済みシンボルが全て含まれる検索対象データを検索システムにて検索する検索ステップと
を含む範囲検索方法。
以上の実施の形態では、
前記分割するステップは、前記検索対象キーワードが文字列データである場合に、文字列データを文字単位の値に分割し、
前記エンコードするステップは、タグとして前記文字列データ中の文字の位置を付す範囲検索方法を説明した。
前記分割するステップは、前記検索対象キーワードが文字列データである場合に、文字列データを文字単位の値に分割し、
前記エンコードするステップは、タグとして前記文字列データ中の文字の位置を付す範囲検索方法を説明した。
以上の実施の形態では、
前記分割するステップは、前記検索対象キーワードが整数値データである場合に、整数値データをビット単位の数値に分割し、
前記エンコードするステップは、タグとして分割した数値のビット位置を付す範囲検索方法を説明した。
前記分割するステップは、前記検索対象キーワードが整数値データである場合に、整数値データをビット単位の数値に分割し、
前記エンコードするステップは、タグとして分割した数値のビット位置を付す範囲検索方法を説明した。
以上の実施の形態では、
前記検索側分割ステップは、前記検索対象キーワードが日付データまたは時刻データである場合に、日付データまたは時刻データをシリアル番号化して前記整数値データとして分割する範囲検索方法を説明した。
前記検索側分割ステップは、前記検索対象キーワードが日付データまたは時刻データである場合に、日付データまたは時刻データをシリアル番号化して前記整数値データとして分割する範囲検索方法を説明した。
以上の実施の形態では、
前記検索ステップは、検索用変換済みシンボルの順序をランダムに入れ替えてから検索する範囲検索方法を説明した。
前記検索ステップは、検索用変換済みシンボルの順序をランダムに入れ替えてから検索する範囲検索方法を説明した。
100 検索システム、100−1 端末装置、100−2 クラウド側装置、101 登録部、102 検索部、111 登録側分割部、112 登録側シンボル化部、113 登録側暗号化部、114 索引登録部、120 キーワード生成部、121 検索側分割部、122 検索側シンボル化部、123 検索側暗号化部、124 索引検索部、200 暗号化検索索引部、201 ブロックテーブル参照部、202 ブロックテーブル、203 ブロックアクセス部、204 索引ファイル、205 登録処理部、206 検索処理部。
Claims (7)
- 複数の階層に分割する階層化が可能な所定の表現形式で表現された登録用キーワードを入力し、前記階層化のルールを定めた階層化ルールに基づいて前記登録用キーワードを階層ごとの要素に分割する登録側分割部と、
前記登録側分割部によって分割されたそれぞれの要素である登録用階層要素に、所属する階層を示す位置情報を付加する登録側位置情報付加部と、
前記登録側位置情報付加部によって前記位置情報が付加されたそれぞれの前記登録用階層要素を、所定のデータ変換規則に従ってデータ変換する登録側データ変換部と、
前記登録用キーワードの前記表現形式で表現された複数の検索用キーワードを含み、かつ、前記複数の検索用キーワードに基づき検索対象範囲を指定する第1の検索条件を入力し、入力された前記第1の検索条件を、前記第1の検索条件の前記検索対象範囲と同一の検索対象範囲を指定する第2の検索条件であって、前記登録用キーワードの前記表現形式で表現され、かつ、ドントケア表現の可能な特有階層を保有する検索用キーワードである少なくとも一つの特有階層保有検索用キーワードを含む第2の検索条件に変更可能かどうかを判定し、前記第1の検索条件を前記第2の検索条件に変更可能と判定すると前記第1の検索条件を前記第2の検索条件に変更し、変更された前記第2の検索条件を出力し、変更できないと判定すると前記第1の検索条件を出力する検索側キーワード生成部と、
前記検索側キーワード生成部によって出力された前記第1の検索条件と前記第2の検索条件とのいずれかの前記検索条件を入力し、入力された前記検索条件に含まれる前記検索用キーワードの全てを前記登録側分割部の使用する前記階層化ルールに基づいて複数の要素に分割する検索側分割部と、
前記検索側分割部によって分割されたそれぞれの要素である検索用階層要素に、前記位置情報を付加する検索側位置情報付加部と、
前記検索側位置情報付加部によって前記位置情報が付加されたそれぞれの前記検索用階層要素を、前記登録側データ変換部の使用する前記データ変換規則に従ってデータ変換する検索側データ変換部と
を備えたことを特徴とするキーワード変換装置。 - 前記登録側位置情報付加部は、
前記登録用キーワードの属性を示す属性情報を入力し、前記属性情報をそれぞれの前記登録用階層要素に付加し、
前記登録側データ変換部は、
前記登録側位置情報付加部によって前記位置情報と前記属性情報とが付加されたそれぞれの前記登録用階層要素を、前記データ変換規則に従ってデータ変換することを特徴とする請求項1記載のキーワード変換装置。 - 前記検索側キーワード生成部は、
前記第2の検索条件が複数の前記検索用キーワードを含む場合に、前記第2の検索条件において、それぞれの前記検索用キーワードどうしを論理演算で結合し、
前記検索側分割部は、
前記第2の検索条件を入力すると、前記論理演算の関係を維持しつつ、前記第2の検索条件に含まれる前記検索用キーワードの全てを前記階層化ルールに基づいて複数の前記検索用階層要素に分割することを特徴とする請求項1または2のいずれかに記載のキーワード変換装置。 - 複数の階層に分割する階層化が可能な所定の表現形式で表現された複数の検索用キーワードを含み、かつ、前記複数の検索用キーワードに基づき検索対象範囲を指定する第1の検索条件を入力し、入力された前記第1の検索条件を、前記第1の検索条件の前記検索対象範囲と同一の検索対象範囲を指定する第2の検索条件であって、入力された前記検索用キーワードの前記表現形式で表現され、かつ、ドントケア表現の可能な特有階層を保有する検索用キーワードである少なくとも一つの特有階層保有検索用キーワードを含む第2の検索条件に変更可能かどうかを判定し、前記第1の検索条件を前記第2の検索条件に変更可能と判定すると前記第1の検索条件を前記第2の検索条件に変更し、変更された前記第2の検索条件を出力し、変更できないと判定すると前記第1の検索条件を出力する検索側キーワード生成部と、
前記検索側キーワード生成部によって出力された前記第1の検索条件と前記第2の検索条件とのいずれかの前記検索条件を入力し、入力された前記検索条件に含まれる前記検索用キーワードの全てを前記階層化のルールを定めた階層化ルールに基づいて複数の要素に分割する検索側分割部と、
前記検索側分割部によって分割されたそれぞれの要素である検索用階層要素に、所属する階層を示す位置情報を付加する検索側位置情報付加部と、
前記検索側位置情報付加部によって前記位置情報が付加されたそれぞれの前記検索用階層要素を、所定のデータ変換規則に従ってデータ変換する検索側データ変換部と
を備えたことを特徴とするキーワード変換装置。 - コンピュータに、
複数の階層に分割する階層化が可能な所定の表現形式で表現された複数の検索用キーワードを含み、かつ、前記複数の検索用キーワードに基づき検索対象範囲を指定する第1の検索条件を入力し、入力された前記第1の検索条件を、前記第1の検索条件の前記検索対象範囲と同一の検索対象範囲を指定する第2の検索条件であって、入力された前記検索用キーワードの前記表現形式で表現され、かつ、ドントケア表現の可能な特有階層を保有する検索用キーワードである少なくとも一つの特有階層保有検索用キーワードを含む第2の検索条件に変更可能かどうかを判定し、前記第1の検索条件を前記第2の検索条件に変更可能と判定すると前記第1の検索条件を前記第2の検索条件に変更し、変更された前記第2の検索条件を出力し、変更できないと判定すると前記第1の検索条件を出力するステップ、
出力された前記第1の検索条件と前記第2の検索条件とのいずれかの前記検索条件を入力し、入力された前記検索条件に含まれる前記検索用キーワードの全てを前記階層化のルールを定めた階層化ルールに基づいて複数の要素に分割するステップ、
分割されたそれぞれの要素である検索用階層要素に、所属する階層を示す位置情報を付加するステップ、
前記位置情報が付加されたそれぞれの前記検索用階層要素を、所定のデータ変換規則に従ってデータ変換するステップ、
を実行させるためのキーワード変換プログラム。 - 請求項5記載のキーワード変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
- (1)複数の階層に分割する階層化が可能な所定の表現形式で表現された複数の検索用キーワードを含み、かつ、前記複数の検索用キーワードに基づき検索対象範囲を指定する第1の検索条件を入力し、入力された前記第1の検索条件を、前記第1の検索条件の前記検索対象範囲と同一の検索対象範囲を指定する第2の検索条件であって、前記表現形式で表現され、かつ、ドントケア表現の可能な特有階層を保有する検索用キーワードである少なくとも一つの特有階層保有検索用キーワードを含む第2の検索条件に変更可能かどうかを判定し、前記第1の検索条件を前記第2の検索条件に変更可能と判定すると前記第1の検索条件を前記第2の検索条件に変更し、変更された前記第2の検索条件を出力し、変更できないと判定すると前記第1の検索条件を出力し、
(2)出力された前記第1の検索条件と前記第2の検索条件とのいずれかの前記検索条件を入力し、入力された前記検索条件に含まれる前記検索用キーワードの全てを前記階層化のルールを定めた階層化ルールに基づいて複数の要素に分割し、
(3)分割されたそれぞれの要素である検索用階層要素に、所属する階層を示す位置情報を付加し、
(4)前記位置情報が付加されたそれぞれの前記検索用階層要素を、所定のデータ変換規則に従ってデータ変換することを特徴とする装置のキーワード変換方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/061635 WO2012004880A1 (ja) | 2010-07-08 | 2010-07-08 | キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2012004880A1 JPWO2012004880A1 (ja) | 2013-09-02 |
JP5425307B2 true JP5425307B2 (ja) | 2014-02-26 |
Family
ID=45440879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012523478A Expired - Fee Related JP5425307B2 (ja) | 2010-07-08 | 2010-07-08 | キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP5425307B2 (ja) |
CN (1) | CN102985920A (ja) |
WO (1) | WO2012004880A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5367179B1 (ja) * | 2012-09-20 | 2013-12-11 | 株式会社東芝 | データ処理装置、データ管理システム、データ処理方法およびプログラム |
JP5255154B1 (ja) * | 2012-12-26 | 2013-08-07 | 株式会社エアー | 部分一致検索の可能な暗号システム |
WO2017122326A1 (ja) | 2016-01-14 | 2017-07-20 | 三菱電機株式会社 | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム |
EP3392865B1 (en) * | 2016-01-15 | 2021-06-02 | Mitsubishi Electric Corporation | Encryption device, encryption method, and encryption program |
US11106740B2 (en) | 2017-04-25 | 2021-08-31 | Mitsubishi Electric Corporation | Search device, search system, search method, and computer readable medium |
WO2019142268A1 (ja) | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342326A (ja) * | 1992-06-09 | 1993-12-24 | Fuji Xerox Co Ltd | 文書処理装置 |
JP2005284915A (ja) * | 2004-03-30 | 2005-10-13 | Canon Inc | 情報検索装置および方法、ならびに情報検索システムおよびその制御方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363377B1 (en) * | 1998-07-30 | 2002-03-26 | Sarnoff Corporation | Search data processor |
CN1588366A (zh) * | 2004-08-02 | 2005-03-02 | 中国科学院计算机网络信息中心 | 密文数据库检索技术 |
JP4722620B2 (ja) * | 2005-08-19 | 2011-07-13 | Kddi株式会社 | 暗号化文書検索方法および暗号化文書検索システム |
CN101561815B (zh) * | 2009-05-19 | 2010-10-13 | 华中科技大学 | 分布式密文全文检索系统 |
-
2010
- 2010-07-08 WO PCT/JP2010/061635 patent/WO2012004880A1/ja active Application Filing
- 2010-07-08 CN CN2010800679455A patent/CN102985920A/zh active Pending
- 2010-07-08 JP JP2012523478A patent/JP5425307B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342326A (ja) * | 1992-06-09 | 1993-12-24 | Fuji Xerox Co Ltd | 文書処理装置 |
JP2005284915A (ja) * | 2004-03-30 | 2005-10-13 | Canon Inc | 情報検索装置および方法、ならびに情報検索システムおよびその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102985920A (zh) | 2013-03-20 |
WO2012004880A1 (ja) | 2012-01-12 |
JPWO2012004880A1 (ja) | 2013-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778441B2 (en) | Redactable document signatures | |
US9576005B2 (en) | Search system | |
US7519835B2 (en) | Encrypted table indexes and searching encrypted tables | |
CN107209787B (zh) | 提高专用加密数据的搜索能力 | |
JP5425307B2 (ja) | キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法 | |
US8948375B2 (en) | Systems for embedding information in data strings | |
US8949625B2 (en) | Systems for structured encryption using embedded information in data strings | |
EP3245569B1 (en) | Record level data security | |
WO2004084483A1 (ja) | 情報管理システム | |
WO2015136801A1 (ja) | 情報管理システム | |
US10248668B2 (en) | Mapping database structure to software | |
Li et al. | CDPS: A cryptographic data publishing system | |
JP6781373B2 (ja) | 検索プログラム、検索方法、および検索装置 | |
WO2014141802A1 (ja) | 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム | |
JP5307199B2 (ja) | データ管理システム及びデータ管理方法 | |
JP2012248940A (ja) | データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム | |
US20230043544A1 (en) | Secure database extensions | |
CN116414854A (zh) | 数据资产查询方法、装置、计算机设备和存储介质 | |
US20210326470A1 (en) | Data sundering | |
JP2012247882A (ja) | 情報のマッチングシステム | |
JP2014098923A (ja) | デジタル情報の保護方法、装置およびコンピュータによるアクセス可能な記録媒体 | |
EP4137978A1 (en) | Enhanced data security through combination of encryption and vertical fragmentation of tabular data | |
JP6592301B2 (ja) | 匿名化装置、検索装置、方法及びプログラム | |
CN117521118B (zh) | 一种医疗数据可搜索加密隐私保护及系统 | |
US20130036474A1 (en) | Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130806 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130924 |
|
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: 20131029 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131126 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |